/* Field Manual: authored editorial identity.
   Public pages only. Loaded after shared density and demo rules; never in the portal. */
body[data-direction="02-field-manual"]{
  --bg:#f4f0e5;--panel:#fffcf5;--panel-sunk:#eae4d7;--ink:#202722;
  --muted:#565d56;--line:#cdc9bc;--line-strong:#828779;
  --accent:#164edb;--accent-2:#c43824;--accent-3:#efc93a;--accent-ink:#fff;
  --sans:Manrope,Arial,sans-serif;--display:Newsreader,Georgia,serif;
  --display-weight:450;--display-spacing:-.025em;--display-leading:1.08;
  --noise-opacity:.018;--motion-poster:url('/assets/img/tyler-manual.png');
  background-image:none;
}
.site-shell:before{opacity:var(--noise-opacity)}
.site-header{background:color-mix(in srgb,var(--bg) 96%,transparent);border-bottom:1px solid var(--ink);box-shadow:0 3px 0 var(--accent-3)}
.brand{font-family:Newsreader,Georgia,serif;font-size:1.5rem;font-weight:600}
.brand small{font-family:var(--sans);font-size:.57rem;letter-spacing:.11em;font-weight:650}
.brand-mark{border-radius:0;background:var(--accent);border-color:var(--accent);width:36px;height:36px;transform:rotate(-5deg)}
.brand-mark:before,.brand-mark:after,.brand-mark span{background:var(--bg)}
.desktop-nav{font-size:.68rem;letter-spacing:.055em}
.desktop-nav a{min-height:44px;display:flex;align-items:center}
.desktop-nav a[aria-current=page]{color:var(--accent)}
.nav-cta{background:var(--accent)!important;border-color:var(--accent)!important;color:white!important}
.menu-button{min-width:44px;min-height:44px;justify-content:center;align-items:center}
.mobile-panel{background:var(--accent);color:white;overflow-y:auto;--line:#ffffff45}
.mobile-panel a{font-size:1.65rem;line-height:1.15;padding:.6rem 0}
.mobile-panel .small{padding-top:1rem;font-size:.7rem}
.mobile-panel :focus-visible{outline-color:var(--accent-3)}
.display-xl,.hero .display-xl{font-size:clamp(2.5rem,3.65vw,3.55rem);letter-spacing:-.03em;line-height:1.08;max-width:19ch}
.display-lg{font-size:clamp(2rem,3vw,2.85rem);max-width:29ch;line-height:1.12;letter-spacing:-.025em}
.display-md{font-size:clamp(1.6rem,2.15vw,2.15rem);line-height:1.17;letter-spacing:-.02em}
.lede{font-size:1.03rem;line-height:1.75}
.kicker,.eyebrow,.meta,.card-num{font-family:var(--sans)}
.kicker{font-size:.68rem;letter-spacing:.12em;color:var(--accent-2)}
.kicker:before{height:4px;width:18px}
.button{font-size:.79rem;letter-spacing:.035em;min-height:48px;border-radius:0;text-transform:none;box-shadow:3px 3px 0 var(--ink);padding:.8rem 1.1rem}
.button:hover{box-shadow:1px 1px 0 var(--ink);transform:translate(2px,2px)}
.button:focus-visible,.card:focus-visible{outline-width:3px;outline-offset:5px}
.button-row{gap:1rem}
.hero{min-height:0;padding:0;align-items:stretch;border-bottom:1px solid var(--ink)}
.hero-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:3rem;align-items:center}
.hero-copy{padding-block:3.75rem!important}
.hero-copy:before{content:"TYLER HALL / INDEPENDENT PRACTICE";display:block;width:max-content;max-width:100%;background:var(--accent-3);color:var(--ink);padding:.4rem .65rem;letter-spacing:.12em;font-size:.58rem;margin-bottom:1.7rem}
.hero-index{margin-bottom:1.4rem;gap:.8rem}
.hero-index .eyebrow{font-size:.59rem;letter-spacing:.07em;color:var(--muted)}
.hero-index .line{flex:1;width:auto}
.hero-index .meta{font-size:.55rem}
.hero .outline,.display .outline{color:var(--accent);background:none;padding:0;font-style:italic;font-weight:450}
.hero-copy .lede{font-size:1rem;max-width:49ch;margin-top:1.4rem}
.hero-art{height:620px;min-height:0;max-width:none;max-height:none;align-self:stretch;border-inline:1px solid var(--line);background-color:#ebe5d7;background-image:linear-gradient(#164edb0b 1px,transparent 1px),linear-gradient(90deg,#164edb0b 1px,transparent 1px);background-size:32px 32px;overflow:hidden}
.hero-art:before{content:"01 / THE PERSON BEHIND THE PRACTICE";position:absolute;top:1.2rem;left:1.2rem;right:auto;font:650 .58rem var(--sans);letter-spacing:.11em;color:var(--accent);z-index:4}
.hero-art:after{content:"";position:absolute;inset:12% 3% 22%;border:1px solid var(--accent);border-radius:50%;opacity:.4}
.hero-art .portrait{position:absolute;inset:2.5rem 0 auto;width:100%;height:calc(100% - 2.5rem);padding:0;object-fit:contain;filter:none}
.portrait-caption{left:auto;right:1rem;bottom:1.2rem;max-width:235px;padding:1rem;background:var(--accent-3);border:1px solid var(--ink);box-shadow:4px 4px 0 var(--ink);transform:rotate(-1deg)}
.portrait-caption .kicker{font-size:.55rem;color:var(--ink)}
.portrait-caption p{font-size:.8rem;line-height:1.5;margin:.8rem 0}
.portrait-caption .card-link{margin-top:.75rem}
.hero-motion-window{left:1rem;bottom:1.2rem;width:37%;box-shadow:3px 3px 0 var(--accent);border:1px solid var(--ink)}
.hero-motion-window:after{content:"MOTION / SYSTEM STUDY";font-size:.45rem}
.hero-live-strip{font-size:.56rem;letter-spacing:.055em;padding-block:.9rem;border-color:var(--line-strong)}
.mini-spark i:nth-child(3n){background:var(--accent-2)}
.hero-rail{display:none}
.section{padding-block:4.5rem}
.section-head{border-bottom:1px solid var(--ink);padding-bottom:1.6rem;margin-bottom:2rem;gap:2.5rem}
.section-head:after{display:none}
.section-head .display{margin-bottom:1rem}
.section-head .lede{max-width:68ch;margin-bottom:0}
.section-head>.kicker{padding-top:.35rem}
.page-hero{padding:3.2rem 0 2.75rem;min-height:0;border-bottom:1px solid var(--ink);background:linear-gradient(90deg,#ebe7d900 70%,#ebe7d9 100%);position:relative}
.page-hero:after{display:block;content:attr(data-code);position:absolute;right:var(--gutter);top:2rem;color:var(--accent);font:650 .65rem var(--sans);letter-spacing:.1em;border-top:4px solid var(--accent-3);padding-top:.6rem}
.page-hero .display-lg{max-width:28ch;margin:1.5rem 0 1.2rem}
.page-hero .lede{font-size:1rem;max-width:70ch;margin:0}
.page-hero:has(.capability-intro):after{display:none}
.page-hero .display em{color:var(--accent);font-weight:inherit}
.plate-top .card-num,.page-index+.meta{font-family:ui-monospace,"SFMono-Regular",Consolas,monospace}
.page-index{font-family:var(--display);font-weight:400;color:var(--accent);font-size:clamp(3rem,5vw,5rem);line-height:1}
.quote{font:450 clamp(1.8rem,2.8vw,2.9rem)/1.22 Newsreader,Georgia,serif;letter-spacing:-.025em;max-width:1000px}
.quote em{color:var(--accent);font-weight:450}
.section:has(>.wrap>.quote){background:#ebe6d8;border-top:4px solid var(--accent-3)}
/* Capability plates: a visual notation for each discipline, not stock decoration. */
.capability-grid{gap:1rem;background:transparent;border:0}
.capability-card{display:flex;flex-direction:column;padding:1.25rem;border:1px solid var(--line)!important;background:var(--panel);--plate-color:var(--accent);--plate-bg:#e2e9ff;min-width:0}
.capability-card:nth-child(4n+2){--plate-color:#a72e21;--plate-bg:#f5dfd2}
.capability-card:nth-child(4n+3){--plate-color:#343c2e;--plate-bg:#eee09c}
.capability-card:nth-child(4n){--plate-color:#254e43;--plate-bg:#dce8de}
.card:nth-child(n){transform:none;box-shadow:none}
.card:after{display:none}
.card:hover{transform:translateY(-4px);box-shadow:4px 5px 0 var(--ink);border-color:var(--ink)!important}
.plate-top{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem}
.card-num{color:var(--plate-color,var(--accent));font-size:.67rem}
.plate-type{font:500 .56rem var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.capability-visual{height:116px;background:var(--plate-bg);color:var(--plate-color);overflow:hidden;position:relative;border-bottom:2px solid var(--plate-color)}
.capability-visual svg{width:100%;height:100%;stroke:currentColor;fill:none;stroke-width:1.5}
.capability-visual .solid{fill:currentColor;stroke:none}
.capability-visual .ghost{opacity:.22}
.capability-visual .type-large{font:italic 62px Newsreader,Georgia,serif;fill:currentColor;stroke:none}
.capability-visual .type-small{font:600 9px Manrope,sans-serif;letter-spacing:2px;fill:currentColor;stroke:none}
.capability-card h3{font-family:Manrope,sans-serif;font-size:1.06rem;line-height:1.4;letter-spacing:-.025em;font-weight:700;margin:1.2rem 0 .65rem;min-height:2.8em}
.capability-card p{font-size:.85rem;line-height:1.65;margin-bottom:1.1rem}
.capability-card .card-link{margin-top:auto;padding-top:.8rem;border-top:1px solid var(--line);font-size:.59rem}
.capability-card .card-link:after{color:var(--plate-color)}
.capability-card.revealed .ink-trace{stroke-dasharray:400;stroke-dashoffset:400;animation:plate-draw 1.4s var(--ease) forwards}
.capability-card:hover .type-large{transform:translateX(5px)}
.type-large{transition:transform .35s var(--ease)}
@keyframes plate-draw{to{stroke-dashoffset:0}}
.capability-intro{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:4rem;align-items:center}
.capability-intro .display-lg{max-width:22ch}
.connection-plate{border:1px solid var(--ink);padding:1.4rem;background:var(--accent);color:white;box-shadow:7px 7px 0 var(--accent-3);position:relative}
.connection-plate .meta{color:#dce6ff;font-size:.57rem}
.connection-plate h2{font:italic 450 2rem/1.1 Newsreader,serif;margin:1.1rem 0 1.3rem}
.connection-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}
.connection-links a{padding:.8rem;border:1px solid #ffffff60;font-size:.73rem;display:flex;gap:.75rem;justify-content:space-between;align-items:center;min-height:48px;transition:background .2s,color .2s}
.connection-links a:after{content:"↗";color:var(--accent-3)}
.connection-links a:hover{background:var(--panel);color:var(--accent)}
.connection-links a:hover:after{color:var(--accent)}
.connection-plate p{font-size:.65rem;line-height:1.7;margin:1rem 0 0;color:#e8edff}
.connection-plate :focus-visible{outline-color:var(--accent-3)}
/* Alternate paper, ink, and color with deliberate hierarchy. */
.stat-band{border:1px solid var(--ink);background:var(--accent-3);box-shadow:5px 5px 0 var(--ink)}
.stat{border-color:#20272250}
.stat strong{font-family:Newsreader,serif;font-size:2.8rem;color:var(--ink);font-weight:500}
.stat span{color:var(--ink);font-size:.64rem;letter-spacing:.07em}
.case-row{grid-template-columns:60px minmax(0,1.2fr) minmax(160px,.8fr) 36px;padding:1.6rem 0}
.case-row strong{font-size:1.6rem;line-height:1.2}
.case-row .meta{color:var(--accent);font-size:.7rem}
.case-row .arrow{background:var(--accent);color:#fff;width:32px;height:32px;display:grid;place-items:center;border-radius:50%}
.case-row:nth-child(3n+2) .arrow{background:var(--accent-2)}
.case-row:nth-child(3n) .arrow{background:var(--accent-3);color:var(--ink)}
.case-row:hover{background:#e7e9db}
.architecture-item{min-height:180px;padding:1.5rem}
.architecture-item:nth-child(3n+1){border-top:4px solid var(--accent)}
.architecture-item:nth-child(3n+2){border-top:4px solid var(--accent-2)}
.architecture-item:nth-child(3n){border-top:4px solid var(--accent-3)}
.architecture-item strong{margin-top:2.5rem;font-size:1.4rem;line-height:1.2}
.architecture-item p{font-size:.9rem;margin-top:1rem}
.project-node{border-top:4px solid var(--accent);border-radius:0}
.project-node:nth-child(3n+2){border-top-color:var(--accent-2)}
.project-node:nth-child(3n){border-top-color:var(--accent-3)}
.project-node small{font-size:.87rem;font-weight:600}
.project-node:hover,.project-node.active{transform:translateY(-3px)}
.project-drawer{border-top:3px solid var(--accent)}
.project-drawer h3{font-size:1.8rem;line-height:1.15}
.principle h3{font-size:1.8rem;line-height:1.15;margin-top:2rem}
.principle:nth-child(3n+1){border-top:3px solid var(--accent)}
.principle:nth-child(3n+2){border-top:3px solid var(--accent-2)}
.principle:nth-child(3n){border-top:3px solid var(--accent-3)}
.timeline-item h3{font-size:1.8rem;line-height:1.15}
.timeline-item:before{background:var(--accent-3);border-color:var(--ink)}
.tag:nth-child(3n+1){background:#e2e9ff;color:#143ea7;border-color:#b4c5f3}
.tag:nth-child(3n+2){background:#f5dfd2;color:#852c20;border-color:#dab6a3}
.tag:nth-child(3n){background:#eee09c;color:#414426;border-color:#bdb175}
/* Keep operational type compact; restore brand through chart, rail, and metric color. */
.sim-frame{border:1px solid var(--ink);border-radius:0;box-shadow:7px 7px 0 var(--accent-3)}
.sim-nav{background:#172b58;border-right:1px solid var(--ink)}
.sim-wordmark{font-family:Newsreader,serif;font-size:1.4rem}
.sim-nav button{min-height:48px}
.sim-nav button[aria-current=page]{box-shadow:inset 3px 0 var(--accent-3);background:#ffffff12}
.sim-nav :focus-visible{outline-color:var(--accent-3)}
.sim-metric{border-top:3px solid var(--accent);background:#f3f5ff}
.sim-metric:nth-child(2){border-top-color:#c43824;background:#fcf0e8}
.sim-metric:nth-child(3){border-top-color:#a17a04;background:#faf2d0}
.sim-metric:nth-child(4){border-top-color:#34624e;background:#edf4ed}
.sim-metric strong{font-family:Manrope,sans-serif;font-size:1.65rem;letter-spacing:-.04em;font-weight:650;font-variant-numeric:tabular-nums}
.sim-toolbar h2{font:450 2rem/1.1 Newsreader,serif}
.sim-main h3{font-family:Manrope,sans-serif;font-size:1.3rem}
.sim-chart{background-color:#f5f7fd}
.sim-panel{border-radius:0}
.sim-panel h4{font-family:Manrope,sans-serif}
.sim-panel>.button{margin:0 .6rem .75rem 0}
.sim-button{min-height:44px}
.dashboard-shell{box-shadow:6px 6px 0 var(--accent-3)}
.dashboard-title strong,.dash-metric strong{font-family:Manrope,sans-serif}
.dash-metric{border-top:3px solid var(--accent)}
.dash-metric:nth-child(3n+2){border-top-color:var(--accent-2)}
.dash-metric:nth-child(3n){border-top-color:var(--accent-3)}
.system-exhibit{background:#e6ecfb;border:1px solid #9faecc;border-top:4px solid var(--accent)}
.system-exhibit h3{font-size:1.8rem}
.exhibit-hub span{background:var(--accent-3);color:var(--ink);border-color:var(--ink)}
.film-frame{border:1px solid var(--ink);box-shadow:7px 7px 0 var(--accent)}
.film-caption strong{font-size:clamp(1.5rem,2.5vw,2.4rem);line-height:1.15}
.capability-marquee{width:100%;margin:0;transform:none;background:var(--accent-3);color:var(--ink);padding:.75rem 0;border-block:1px solid var(--ink)}
.marquee-track span{font-family:Newsreader,serif;font-style:italic;font-size:1.65rem;color:var(--ink);font-weight:450}
.marquee-track i{color:var(--accent-2);font-size:1rem;padding-inline:.6rem}
.canvas-demo{background-image:radial-gradient(var(--line) 1px,transparent 1px);background-size:14px 14px}
.canvas-demo .shape.a{background:var(--accent-3)}.canvas-demo .shape.b{background:var(--accent-2)}.canvas-demo .shape.c{background:var(--accent)}
.canvas-copy{background:var(--panel);padding:.6rem;font-size:2.2rem}
.private-gate{border-top:4px solid var(--accent);box-shadow:6px 6px 0 var(--accent-3)}
.private-gate h2{font-size:2.5rem;line-height:1.12}
.private-gate .lock{margin-bottom:2rem}
.proof-note{border-left:3px solid var(--accent);background:#e4eafa;color:#25345b}
.site-footer{background:#1c2b27;color:var(--bg);--line:#4f6259;--muted:#c3cdc4;border-top:5px solid var(--accent-3)}
.footer-brand{font-size:2.5rem;line-height:1.08;font-style:italic;margin-bottom:1.5rem}
.footer-col strong{color:var(--accent-3)}
.footer-col a{padding-block:.5rem;min-height:36px}
.site-footer :focus-visible{outline-color:var(--accent-3)}
/* Content remains visible if motion is delayed or JavaScript is unavailable. */
[data-reveal]{opacity:1;transform:none;transition:transform .55s var(--ease)}
@media(min-width:1051px){.hero-art{width:100%;margin:0}}
@media(max-width:1100px){.hero-grid{gap:1.8rem}.hero-art{height:600px}.capability-intro{gap:2rem}.hero-motion-window{width:34%}.portrait-caption{max-width:215px}.capability-card{padding:1rem}.capability-card h3{font-size:1rem}}
@media(max-width:1050px){.hero-grid{grid-template-columns:minmax(0,1fr) minmax(0,.9fr)}.hero-art{height:620px;width:100%;margin:0}.hero-copy .lede{font-size:.94rem}.hero-motion-window{display:none}.hero-index .meta,.hero-index .line{display:none}.hero .display-xl{font-size:2.65rem}.capability-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){
  .hero{padding:0}.hero-grid{display:grid;grid-template-columns:1fr;gap:0}.hero-copy{padding-block:2.5rem!important}
  .hero .display-xl{font-size:2.6rem;max-width:19ch}.hero-copy .lede{font-size:.97rem}
  .hero-art{height:470px;min-height:0;max-height:none;width:100%;max-width:none;border-top:1px solid var(--line)}
  .hero-art .portrait{inset:1.6rem 0 auto;height:calc(100% - 1.6rem)}
  .hero-motion-window{display:block;width:37%;left:.65rem;bottom:1rem}
  .portrait-caption{right:.65rem;bottom:1rem;max-width:52%;padding:.75rem}
  .portrait-caption p{font-size:.72rem}.portrait-caption .kicker{font-size:.49rem}.portrait-caption .card-link{font-size:.56rem}
  .section{padding-block:3rem}.section-head{gap:1.2rem;padding-bottom:1.25rem}
  .display-lg{font-size:2rem}.display-md{font-size:1.65rem}.lede{font-size:.98rem}
  .page-hero{padding-block:2.5rem}.page-hero:after{display:none}
  .page-hero .display-lg{margin-top:1rem}.page-hero .lede{font-size:.95rem}
  .capability-intro{grid-template-columns:1fr;gap:1.7rem}
  .connection-plate{padding:1.1rem}.connection-plate h2{font-size:1.7rem}
  .capability-grid{gap:.85rem}
  .case-row{grid-template-columns:32px minmax(0,1fr) 32px;gap:.8rem}.case-row strong{font-size:1.3rem}
  .quote{font-size:1.95rem}.stat strong{font-size:2.4rem}.stat span{font-size:.61rem}
  .architecture-item{padding:1.1rem;min-height:160px}.architecture-item strong{font-size:1.2rem;margin-top:1.7rem}
  .private-gate h2{font-size:2rem}.sim-toolbar h2{font-size:1.8rem}.film-caption strong{font-size:1.4rem}
  .footer-brand{font-size:2.2rem}.footer-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.6rem}.footer-grid>div:first-child{grid-column:1/-1}
}
@media(max-width:520px){.capability-grid{grid-template-columns:1fr}.capability-card{padding:1.25rem}.capability-visual{height:130px}.capability-card h3{min-height:0;font-size:1.16rem}.capability-card p{font-size:.9rem}.capability-card .card-link{margin-top:.2rem}.hero-live-strip{font-size:.51rem}.mini-spark{display:none}}
@media(prefers-reduced-motion:reduce){.capability-card.revealed .ink-trace{animation:none;stroke-dasharray:none;stroke-dashoffset:0}[data-reveal]{transition:none}.card:hover,.button:hover{transform:none}}
