/* Fallback faces sized to the web fonts' measured widths, so the swap does not reflow text (CLS). */
@font-face{font-family:'Inter Tight Fallback';src:local('Arial'),local('Liberation Sans'),local('Helvetica');size-adjust:95.8%;ascent-override:101%;descent-override:25%;line-gap-override:0%}
@font-face{font-family:'Instrument Serif Fallback';src:local('Times New Roman'),local('Liberation Serif'),local('Times');size-adjust:84.5%}
@font-face{font-family:'Instrument Serif';src:url(/assets/fonts/instrument-serif-latin-400-normal.woff2) format('woff2');font-weight:400;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2190-2199}
@font-face{font-family:'Instrument Serif';src:url(/assets/fonts/instrument-serif-latin-400-italic.woff2) format('woff2');font-weight:400;font-style:italic;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+2000-206F,U+20AC}
@font-face{font-family:'Inter Tight';src:url(/assets/fonts/inter-tight-latin-wght-normal.woff2) format('woff2-variations');font-weight:100 900;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2190-2199}
/* MIF V3 — design system. Tokens per master prompt §4, motion per CS §9. */
:root{
  --mif-ink:#0D0C0A;--mif-paper:#F6F2E9;--mif-bone:#DED7CA;--mif-graphite:#494741;
  --mif-brass:#9A8058;--mif-brass-light:#C7B48D;--mif-oxide:#28302E;--mif-error:#A83B32;
  --brass-text:#6E5A38; /* brass darkened to 4.5:1+ on paper for text */
  --tint:#EEE8DC;--line:rgba(13,12,10,.14);--line-strong:rgba(13,12,10,.32);
  --serif:'Instrument Serif','Instrument Serif Fallback','Times New Roman',serif;
  --sans:'Inter Tight','Inter Tight Fallback',Arial,sans-serif;
  --mono:ui-monospace,'SF Mono','Cascadia Mono',Menlo,Consolas,monospace;
  --motion-instant:120ms;--motion-fast:220ms;--motion-base:420ms;--motion-slow:620ms;
  --ease-standard:cubic-bezier(.22,1,.36,1);--reveal-distance:18px;
  --gutter:16px;--max:1440px;--measure:66ch;
}
@media(min-width:768px){:root{--gutter:28px}}
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%;scroll-padding-top:5rem}
body{margin:0;background:var(--mif-paper);color:var(--mif-ink);font:400 1rem/1.6 var(--sans);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,svg{display:block;max-width:100%}
a{color:inherit;text-underline-offset:.2em;text-decoration-thickness:1px}
a:hover{text-decoration-color:var(--mif-brass)}
:focus-visible{outline:2px solid var(--mif-ink);outline-offset:3px;border-radius:2px}
.sec--ink :focus-visible,.is-dark :focus-visible{outline-color:var(--mif-brass-light)}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:1rem;top:-4rem;z-index:50;background:var(--mif-ink);color:var(--mif-paper);padding:.7rem 1rem}
.skip:focus{top:1rem}
.staging{background:var(--mif-oxide);color:var(--mif-paper);font:500 .72rem/1.4 var(--mono);letter-spacing:.04em;padding:.45rem var(--gutter);text-align:center}
main:focus{outline:none}

/* Type */
.mono{font-family:var(--mono);font-size:.74rem;letter-spacing:.06em;text-transform:uppercase}
.serif{font-family:var(--serif);font-weight:400}
.display{font-family:var(--serif);font-weight:400;font-size:clamp(2.5rem,7.2vw,6rem);line-height:1;letter-spacing:-.015em;margin:0 0 1.5rem;text-wrap:balance}
.display em{font-style:italic;color:var(--mif-graphite)}
.display-md{font-size:clamp(2.1rem,5vw,4.2rem);line-height:1.04}
.h2{font-family:var(--serif);font-weight:400;font-size:clamp(1.9rem,4vw,3.2rem);line-height:1.06;margin:0 0 1rem;text-wrap:balance}
.h3{font-family:var(--sans);font-weight:600;font-size:1.06rem;line-height:1.3;margin:0 0 .8rem}
.h4{font-weight:600;font-size:.95rem;margin:1.4rem 0 .6rem}
.eyebrow,.kicker{font-family:var(--mono);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--brass-text);margin:0 0 1.1rem}
.lead{font-size:clamp(1.05rem,1.5vw,1.22rem);line-height:1.55;max-width:var(--measure);color:var(--mif-graphite);margin:0 0 2rem}
.body{max-width:var(--measure);color:var(--mif-graphite)}
.narrow{max-width:30ch}.body.narrow,.lead.narrow{max-width:var(--measure)}
.note{font-size:.86rem;color:var(--mif-graphite);margin-top:1.4rem;max-width:var(--measure)}
.notice{border-left:2px solid var(--mif-brass);padding:.7rem 1rem;background:var(--tint);max-width:var(--measure)}

/* Layout */
.wrap{max-width:var(--max);margin-inline:auto;padding-inline:var(--gutter)}
.narrow-wrap > *{max-width:900px}
.sec{padding-block:clamp(4rem,9vw,8rem);border-top:1px solid var(--line)}
.sec--top0{padding-top:0;border-top:0}
.sec--tint{background:var(--tint)}
.sec--ink{background:var(--mif-ink);color:var(--mif-paper);border-top:0}
.sec--ink .body,.sec--ink .note{color:#CFC8BA}.sec--ink .kicker{color:var(--mif-brass-light)}
.split{display:grid;gap:2.5rem}
.grid2,.grid3{display:grid;gap:1.25rem 2rem}
@media(min-width:900px){.split{grid-template-columns:5fr 6fr;gap:5rem;align-items:start}.split--media{grid-template-columns:6fr 5fr;align-items:center}.grid2{grid-template-columns:1fr 1fr}.grid3{grid-template-columns:repeat(3,1fr);gap:3rem}}
.center{text-align:center}.center .display{margin-inline:auto;max-width:20ch}

/* Header */
.hd{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:1rem;padding:.7rem var(--gutter);background:rgba(246,242,233,.94);border-bottom:1px solid var(--line)}
@supports(backdrop-filter:blur(1px)){.hd{background:rgba(246,242,233,.82);backdrop-filter:saturate(1.2) blur(10px)}}
.logo{font-family:var(--serif);font-size:1.3rem;text-decoration:none;white-space:nowrap;margin:0;margin-right:auto}
.logo em{color:var(--mif-graphite)}
.hd{flex-wrap:wrap}
.menu{display:flex;flex-wrap:wrap;gap:.1rem;order:3;width:100%}
.menu a{text-decoration:none;padding:.6rem .7rem;min-height:44px;display:flex;align-items:center;font-size:.88rem}
.menu a:hover{background:var(--tint)}
.menu .lang{color:var(--mif-graphite)}
.menu__btn{font:500 .8rem var(--sans);letter-spacing:.06em;text-transform:uppercase;padding:.6rem .9rem;min-height:44px;background:none;border:1px solid var(--line-strong);border-radius:2px;cursor:pointer;color:inherit}
.js .menu{display:none}
.js .hd.is-open .menu{display:flex;flex-direction:column;padding:.5rem 0}
@media(min-width:1000px){.hd{flex-wrap:nowrap}.menu,.js .menu{display:flex;order:0;width:auto}.menu__btn{display:none!important}}
.hd__cta-s{display:none}
@media(max-width:520px){.hd__cta-l{display:none}.hd__cta-s{display:inline}.logo{font-size:1.12rem}.hd{gap:.5rem}}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;min-height:48px;padding:.85rem 1.5rem;background:var(--mif-ink);color:var(--mif-paper);border:1px solid var(--mif-ink);font:500 .9rem/1 var(--sans);letter-spacing:.02em;text-decoration:none;cursor:pointer;border-radius:2px;transition:background var(--motion-fast) var(--ease-standard),color var(--motion-fast) var(--ease-standard)}
.btn:hover{background:var(--mif-oxide)}
.btn--sm{min-height:44px;padding:.6rem 1rem;font-size:.82rem}
.btn--ghost{background:transparent;color:var(--mif-ink);border-color:var(--line-strong)}
.btn--ghost:hover{background:var(--tint)}
.btn--light{background:var(--mif-paper);color:var(--mif-ink);border-color:var(--mif-paper)}
.btn--light:hover{background:var(--mif-bone)}
.btn[disabled]{opacity:.55;cursor:progress}
.ctas{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}
.ctas--center{justify-content:center}
.link-arrow{display:inline-flex;align-items:center;gap:.5rem;min-height:44px;font-weight:500;text-decoration:none;border-bottom:1px solid var(--line-strong)}
.link-arrow::after{content:'→';transition:transform var(--motion-fast) var(--ease-standard)}
.link-arrow:hover::after{transform:translateX(3px)}

/* Hero — Signature 1 */
.hero{padding-block:clamp(3rem,8vw,6.5rem) clamp(3rem,7vw,5.5rem)}
.hero__grid{display:grid;gap:2rem;align-items:center}
@media(min-width:960px){.hero__grid{grid-template-columns:7fr 4fr;gap:4rem}}
.hero__fig{margin:0;max-width:420px;width:100%;justify-self:center}
@media(max-width:959px){.hero__fig{max-width:300px;order:2}}
.hero__fig .grid line{stroke:var(--line);stroke-width:1}
.hero__fig .lines path{fill:none;stroke:var(--mif-ink);stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.hero__fig .dash{stroke-dasharray:.012 .012}
.hero__fig .labels text{fill:var(--mif-graphite);font-size:11px}
.hero__fig .stamp rect{fill:none;stroke:var(--mif-brass);stroke-width:1.2}
.hero__fig .stamp text{fill:var(--brass-text);font-size:10.5px;letter-spacing:.08em}
@media(prefers-reduced-motion:no-preference){
  .js .hero__fig .draw:not(.dash){stroke-dasharray:1;stroke-dashoffset:1;animation:draw 1.6s var(--ease-standard) forwards}
  .js .hero__fig .dash{opacity:0;animation:fade var(--motion-slow) var(--ease-standard) 1.2s forwards}
  .js .hero__fig .d2{animation-delay:.35s}.js .hero__fig .d3{animation-delay:.7s}.js .hero__fig .d4{animation-delay:1s}
  .js .hero__fig .labels,.js .hero__fig .stamp{opacity:0;animation:fade var(--motion-slow) var(--ease-standard) 1.7s forwards}
  .js .hero__fig .stamp{animation-delay:2.3s}
}
@keyframes draw{to{stroke-dashoffset:0}}
@keyframes fade{to{opacity:1}}

/* Ledger */
.ledger{width:100%;border-collapse:collapse;font-size:.95rem}
.ledger th,.ledger td{text-align:left;padding:.95rem 0;border-bottom:1px solid var(--line);vertical-align:top}
.ledger thead th{font:500 .7rem var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--mif-graphite)}
.ledger tbody th{font-weight:500;padding-right:1rem}
.state{display:inline-block;font:500 .72rem/1.3 var(--mono);letter-spacing:.04em;padding:.3rem .55rem;border:1px solid var(--line-strong);border-radius:2px}
.state--verified{background:var(--mif-ink);color:var(--mif-paper);border-color:var(--mif-ink)}
.state--supported{border-color:var(--mif-brass);color:var(--brass-text)}
.state--unknown,.state--none{color:var(--mif-graphite);border-style:dashed}

/* Paths */
.paths{display:grid;gap:0;border-top:1px solid var(--line-strong);margin-top:3rem}
@media(min-width:900px){.paths{grid-template-columns:repeat(3,1fr)}.path+.path{border-left:1px solid var(--line);padding-left:1.6rem}}
.path{padding:2rem 1.6rem 1.6rem 0;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:.6rem}
.path__n{color:var(--brass-text);margin:0}
.path__name{font-family:var(--serif);font-weight:400;font-size:2rem;line-height:1.1;margin:.2rem 0}
.path__sig{font-size:1.2rem;line-height:1.35;color:var(--mif-graphite);margin:0}
.path p{margin:0}.path__for{color:var(--mif-graphite);margin-top:auto!important;padding-top:1rem}
.path .link-arrow{align-self:flex-start}

/* Focus */
.focus{display:grid;gap:2.5rem;margin-top:3rem}
@media(min-width:900px){.focus{grid-template-columns:repeat(3,1fr);gap:3rem}}
.focus__item{border-top:1px solid var(--line-strong);padding-top:1.4rem}
.focus__item .mono{color:var(--brass-text)}
.focus__item .h3.serif{font-size:1.5rem;font-weight:400;line-height:1.2}
.focus__item p{color:var(--mif-graphite)}

/* Acts */
.acts{list-style:none;padding:0;margin:3rem 0 0;display:grid;gap:0;border-top:1px solid var(--line-strong)}
@media(min-width:900px){.acts{grid-template-columns:repeat(5,1fr)}.acts--path{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.acts .act+.act{border-left:1px solid var(--line)}}
.act{padding:1.4rem 1.2rem 1.6rem 0;border-bottom:1px solid var(--line)}
@media(min-width:900px){.act{padding:1.6rem 1.4rem;border-bottom:0}.act:first-child{padding-left:0}}
.act__n{color:var(--brass-text)}
.act__name{font-family:var(--serif);font-weight:400;font-size:1.7rem;margin:.6rem 0 .5rem}
.act__q{color:var(--mif-graphite);margin:0 0 .9rem}
.act__out{margin:0;color:var(--mif-ink);text-transform:none;letter-spacing:.01em;font-size:.78rem}

/* Dossier */
.dossier dl{margin:0}.dossier{margin:0;border:1px solid var(--line-strong);background:var(--mif-paper)}
.dossier__head{margin:0;display:flex;justify-content:space-between;gap:1rem;padding:.9rem 1.2rem;border-bottom:1px solid var(--line-strong)}
.dossier__head span:last-child{color:var(--brass-text)}
.dossier__row{display:grid;grid-template-columns:minmax(120px,38%) 1fr;border-bottom:1px solid var(--line);padding:.8rem 1.2rem}
.dossier__row:last-child{border-bottom:0}
.dossier dt{color:var(--mif-graphite)}.dossier dd{margin:0;color:var(--mif-graphite)}

/* Media slot (labelled placeholder — never stock) */
.slot{aspect-ratio:4/3;display:flex;align-items:flex-end;padding:1.2rem;border:1px dashed var(--line-strong);background:repeating-linear-gradient(135deg,transparent 0 14px,rgba(13,12,10,.035) 14px 15px),var(--tint)}
.slot .mono{color:var(--mif-graphite);text-transform:none;letter-spacing:.02em;max-width:34ch}

/* Lists */
.list{padding-left:1.1rem;margin:0;color:var(--mif-graphite)}
.list li{margin:.45rem 0}
.list--mono{list-style:none;padding:0;margin-top:1.5rem;border-top:1px solid var(--line)}
.list--mono li{font:.82rem var(--mono);padding:.7rem 0;margin:0;border-bottom:1px solid var(--line);color:var(--mif-ink)}
.list--cols{columns:2;column-gap:2rem;font-size:.9rem}
.list--num li{padding-left:.3rem}

/* Estimate band formula */
.formula{border:1px solid rgba(246,242,233,.25);padding:2rem;display:grid;gap:1rem}
.formula .mono{color:var(--mif-brass-light);margin:0}
.formula__eq{font-size:clamp(1.6rem,3vw,2.4rem);line-height:1.15;margin:0}

/* Lanes */
.lanes{display:grid;gap:1rem;margin-top:2.5rem}
@media(min-width:800px){.lanes{grid-template-columns:1fr 1fr}}
.lane{display:grid;gap:.5rem;padding:1.6rem;border:1px solid var(--line-strong);text-decoration:none;transition:border-color var(--motion-fast),background var(--motion-fast)}
.lane:hover{border-color:var(--mif-ink);background:var(--tint)}
.lane .mono{color:var(--brass-text)}
.lane__name{font-family:var(--serif);font-size:1.7rem;line-height:1.1}
.lane span:last-child{color:var(--mif-graphite)}

/* Commitments */
.commit{list-style:none;counter-reset:c;padding:0;margin:0}
.commit li{counter-increment:c;display:grid;grid-template-columns:2.5rem 1fr;padding:1rem 0;border-bottom:1px solid var(--line)}
.commit li::before{content:counter(c,decimal-leading-zero);font:.74rem var(--mono);color:var(--brass-text);padding-top:.2rem}

.sec--close{padding-block:clamp(5rem,11vw,9rem)}

/* Page hero */
.phero{padding-block:clamp(2.5rem,6vw,5rem) clamp(2rem,5vw,4rem)}
.crumbs{margin-bottom:2rem;color:var(--mif-graphite)}
.crumbs a{text-decoration:none;border-bottom:1px solid var(--line-strong)}

/* Forms */
.field{display:grid;gap:.4rem;margin-bottom:1.2rem}
.field label,.sub legend{font-weight:500;font-size:.92rem}
input,select,textarea{font:inherit;color:inherit;width:100%;min-height:48px;padding:.75rem .9rem;background:#FBF9F4;border:1px solid var(--line-strong);border-radius:2px}
textarea{min-height:120px;resize:vertical}
input:focus,select:focus,textarea:focus{outline:2px solid var(--mif-ink);outline-offset:1px}
input[type=file]{padding:.6rem;background:transparent}
.hint{font-size:.84rem;color:var(--mif-graphite);margin:0}
.field-err{color:var(--mif-error);font-size:.86rem;font-weight:500;margin:.25rem 0 0}
[aria-invalid=true]{border-color:var(--mif-error);box-shadow:inset 3px 0 0 var(--mif-error)}
.req{color:var(--mif-error);margin-left:.15rem}
fieldset{border:0;padding:0;margin:0;min-width:0}
.sub{margin:1.6rem 0}.sub legend{margin-bottom:.7rem;padding:0}
.choices{display:grid;gap:.6rem}
@media(min-width:700px){.choices{grid-template-columns:1fr 1fr}.choices--4{grid-template-columns:repeat(2,1fr)}.choices--3{grid-template-columns:repeat(3,1fr)}}
@media(min-width:1100px){.choices--4{grid-template-columns:repeat(4,1fr)}}
.choice{position:relative;display:grid;gap:.35rem;padding:1.1rem 1.1rem 1.1rem 2.9rem;border:1px solid var(--line-strong);cursor:pointer;background:#FBF9F4;min-height:56px;border-radius:2px}
.choice input{position:absolute;left:1.05rem;top:1.2rem;width:1.1rem;height:1.1rem;min-height:0;margin:0;accent-color:var(--mif-ink)}
.choice__t{font-weight:600}.choice__h{font-size:.86rem;color:var(--mif-graphite)}
.choice:has(input:checked){border-color:var(--mif-ink);box-shadow:inset 0 0 0 1px var(--mif-ink)}
.chips{display:flex;flex-wrap:wrap;gap:.5rem}
.chip{display:inline-flex;align-items:center;gap:.5rem;padding:.55rem .9rem;min-height:44px;border:1px solid var(--line-strong);border-radius:2px;cursor:pointer;background:#FBF9F4;font-size:.9rem}
.chip input{width:1rem;height:1rem;min-height:0;margin:0;accent-color:var(--mif-ink)}
.chip:has(input:checked){border-color:var(--mif-ink);background:var(--mif-bone)}
.check{display:flex;gap:.75rem;align-items:flex-start;margin:1rem 0;font-size:.92rem}
.check input{width:1.2rem;height:1.2rem;min-height:0;margin-top:.15rem;flex:none;accent-color:var(--mif-ink)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* Desk */
.desk{max-width:980px}
.desk__form{scroll-margin-top:5.5rem}
.desk__steps{display:none}
.js .desk__steps{display:flex;gap:.4rem;list-style:none;padding:0;margin:0 0 .6rem;flex-wrap:wrap}
.desk__steps li{padding:.35rem .6rem;border:1px solid var(--line);color:var(--mif-graphite)}
.desk__steps li.is-now{border-color:var(--mif-ink);color:var(--mif-ink)}
.desk__steps li.is-done{color:var(--mif-ink);background:var(--tint)}
.desk__progress{color:var(--mif-graphite);margin:0 0 1.5rem}
.step{padding:2rem 0;border-top:1px solid var(--line)}
.js .step:not(.is-active){display:none}
.js .step{border-top:0;padding-top:.5rem}
.js .lanebox{display:none}.js .lanebox.is-on{display:block}
.lanebox{padding-top:.4rem}
.desk__nav{display:flex;gap:.75rem;justify-content:space-between;padding-top:1.6rem;border-top:1px solid var(--line);margin-top:1rem}
.desk__nav [data-nav=next],.desk__nav [data-nav=send]{margin-left:auto}
.errsum{border:2px solid var(--mif-error);padding:1rem 1.2rem;margin-bottom:1.5rem}
.errsum p{margin:0 0 .4rem;font-weight:600}.errsum ul{margin:0;padding-left:1.1rem}.errsum a{color:var(--mif-error)}
.status:empty{display:none}
.status{margin-top:1.4rem;padding:1rem 1.2rem;border-left:3px solid var(--mif-ink);background:var(--tint)}
.status.is-fail{border-color:var(--mif-error)}
.status .ctas{margin-top:.8rem}

/* Route panel — Signature 3 */
.route-card{border:1px solid var(--mif-ink);background:#FBF9F4}
.route-card__row{display:grid;gap:.4rem;padding:1.1rem 1.3rem;border-bottom:1px solid var(--line)}
@media(min-width:700px){.route-card__row{grid-template-columns:200px 1fr;gap:1.5rem}}
.route-card__row:last-child{border-bottom:0}
.route-card dt{color:var(--mif-graphite)}.route-card dd{margin:0}
.route-card .state{margin-bottom:.4rem}
.route-card ul{margin:.2rem 0 0;padding-left:1.1rem}
.route-card .big{font-family:var(--serif);font-size:1.5rem;line-height:1.2}
.route-actions{margin-top:1rem}
@media(prefers-reduced-motion:no-preference){.js .route-card__row{animation:rise var(--motion-base) var(--ease-standard) both}.js .route-card__row:nth-child(2){animation-delay:60ms}.js .route-card__row:nth-child(3){animation-delay:120ms}.js .route-card__row:nth-child(4){animation-delay:180ms}.js .route-card__row:nth-child(5){animation-delay:240ms}}
@keyframes rise{from{opacity:0;transform:translateY(12px)}}

/* Estimator */
.est{display:grid;gap:2.5rem}
@media(min-width:960px){.est{grid-template-columns:4fr 7fr;align-items:start}}
.estimate-block{border:1px solid var(--mif-ink);padding:1.6rem;background:#FBF9F4}
.estimate-block h2{margin:0 0 1rem;color:var(--brass-text)}
.est__fig{font-family:var(--serif);font-size:clamp(2rem,4.5vw,3.2rem);line-height:1.05;margin:.2rem 0 1rem}
.est__rows{display:grid;gap:.4rem;margin:0 0 1rem;font-size:.95rem}
.est__rows div{display:flex;justify-content:space-between;gap:1rem;border-bottom:1px solid var(--line);padding:.45rem 0}
.est__basis{color:var(--mif-graphite);text-transform:none;letter-spacing:.01em}
.est__msg{font-size:1.05rem;max-width:56ch}
.est__ctas{margin-top:1.4rem}
.disclaimer{margin-top:1.4rem;padding:1rem 1.1rem;border-left:2px solid var(--mif-brass);background:var(--tint);font-size:.86rem;line-height:1.55}
.disclaimer p{margin:0 0 .5rem}.disclaimer__label{color:var(--brass-text)}.disclaimer__note{font-style:italic;color:var(--mif-graphite)}
.ptable{width:100%;border-collapse:collapse;font-size:.9rem}.ptable th,.ptable td{text-align:left;padding:.6rem;border-bottom:1px solid var(--line)}

/* Footer */
.ft{background:var(--mif-ink);color:#CFC8BA;padding:4rem 0 2rem;margin-top:0}
.ft .logo{color:var(--mif-paper)}.ft .logo em{color:#A9A294}
.ft__grid{display:grid;gap:2rem}
@media(min-width:800px){.ft__grid{grid-template-columns:2fr 1fr 1fr}}
.ft__tag{max-width:40ch}
.ft__h{font:500 .72rem var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--mif-brass-light);margin:0 0 .8rem}
.ft a{display:flex;align-items:center;min-height:44px;color:#E9E3D6;text-decoration:none;overflow-wrap:anywhere}
.ft a:hover{text-decoration:underline}
.ft__base{font-size:.78rem;margin-top:2.5rem;padding-top:1.5rem;border-top:1px solid rgba(246,242,233,.15)}

/* Reveal: opacity + translate only; content visible without JS; never blur. */
@media(prefers-reduced-motion:no-preference){
  .js .reveal{opacity:0;transform:translateY(var(--reveal-distance));transition:opacity var(--motion-base) var(--ease-standard),transform var(--motion-base) var(--ease-standard)}
  .js .reveal.in{opacity:1;transform:none}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Print: estimate/route + disclaimer stay together */
@media print{
  .js .reveal{opacity:1!important;transform:none!important}
  .hd,.ft,.staging,.skip,.desk__nav,.est__form,.ctas,.desk__steps,.errsum,.route-actions{display:none!important}
  body{background:#fff}.sec,.phero{padding:1rem 0;border:0}
  .js .step{display:none!important}.js .step.route{display:block!important}
  .estimate-block,.route-card,.disclaimer{break-inside:avoid;border-color:#000}
  .print-only{display:block!important}
}
.print-only{display:none}

/* ===== V3.1 — editorial media system ===== */
.r-4-5{aspect-ratio:4/5}.r-4-3{aspect-ratio:4/3}.r-3-2{aspect-ratio:3/2}.r-21-9{aspect-ratio:21/9}.r-16-9{aspect-ratio:16/9}
.media{position:relative;margin:0;overflow:hidden;background:repeating-linear-gradient(135deg,transparent 0 14px,rgba(13,12,10,.04) 14px 15px),var(--mif-bone)}
.media img,.media video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.media video{opacity:0;transition:opacity var(--motion-slow) var(--ease-standard)}
.media video.is-playing{opacity:1}
.media figcaption{position:absolute;left:0;right:0;bottom:0;display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;padding:.6rem .7rem;pointer-events:none}
.media__tag{font-size:.6rem;letter-spacing:.08em;background:rgba(13,12,10,.62);color:#F6F2E9;padding:.22rem .45rem;margin-left:auto;white-space:nowrap}
.media__cap{font-size:.8rem;color:#F6F2E9;text-shadow:0 1px 8px rgba(0,0,0,.6)}

/* Hero with film — Signature 1 over footage */
.hero--film{background:var(--mif-ink);color:var(--mif-paper);padding:0}
.hero--film .hero__grid{display:grid;gap:0;max-width:none;align-items:stretch}
@media(min-width:960px){.hero--film .hero__grid{grid-template-columns:minmax(0,7fr) minmax(0,5fr);min-height:min(88vh,860px)}}
.hero--film .hero__text{padding:clamp(3rem,7vw,6rem) var(--gutter) clamp(2.5rem,5vw,4rem);display:flex;flex-direction:column;justify-content:center;max-width:860px;margin-left:max(0px,calc((100vw - var(--max))/2))}
@media(min-width:960px){.hero--film .hero__text{padding-left:max(var(--gutter),3vw)}}
.hero--film .eyebrow{color:var(--mif-brass-light)}
.hero--film .display em{color:var(--mif-bone)}
.hero--film .lead{color:#D2CBBD}
.hero__film{position:relative;min-height:420px}
.hero__film .media{position:absolute;inset:0;aspect-ratio:auto;height:100%}
@media(max-width:959px){.hero__film{min-height:0}.hero__film .media{position:relative;aspect-ratio:4/5;max-height:72vh;width:100%}}
.hero__film::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(13,12,10,.55),transparent 35%,transparent 70%,rgba(13,12,10,.25));pointer-events:none}
@media(max-width:959px){.hero__film::after{background:linear-gradient(180deg,rgba(13,12,10,.5),transparent 30%)}}
.hero__film .hero__fig{position:absolute;inset:6% 8% auto auto;width:min(62%,340px);max-width:none;z-index:2;pointer-events:none}
.hero__film .hero__fig .grid{display:none}
.hero__film .hero__fig .lines path{stroke:rgba(246,242,233,.92);stroke-width:1.6}
.hero__film .hero__fig .labels text{fill:rgba(246,242,233,.85)}
.hero__film .hero__fig .stamp rect{stroke:var(--mif-brass-light)}
.hero__film .hero__fig .stamp text{fill:var(--mif-brass-light)}
.hero__strip{display:flex;flex-wrap:wrap;gap:.2rem .9rem;margin-top:2.6rem;padding-top:1.2rem;border-top:1px solid rgba(246,242,233,.18)}
.hero__strip a{color:#CFC8BA;text-decoration:none;min-height:32px;display:inline-flex;align-items:center}
.hero__strip a:hover{color:var(--mif-paper);text-decoration:underline}
.btn--ghost-light{background:transparent;color:var(--mif-paper);border-color:rgba(246,242,233,.45)}
.btn--ghost-light:hover{background:rgba(246,242,233,.1)}
.hero--film :focus-visible,.sec--close :focus-visible,.cinema :focus-visible{outline-color:var(--mif-brass-light)}

/* Section head: title left, copy right */
.sec__head{display:grid;gap:1rem 4rem;margin-bottom:clamp(2rem,4vw,3.5rem)}
.sec__head .h2{margin:0}.sec__head .body{margin:0}
@media(min-width:900px){.sec__head{grid-template-columns:6fr 5fr;align-items:end}}
.sec--ink .sec__head .body{color:#CFC8BA}

/* Paths with media */
.paths{margin-top:0}
.path__media{display:block;margin-bottom:1.1rem;text-decoration:none}
.path__name a{text-decoration:none}.path__name a:hover{text-decoration:underline;text-decoration-thickness:1px}

/* Cinema band */
.cinema{position:relative;background:var(--mif-ink)}
.cinema .media{aspect-ratio:21/9;max-height:78vh;width:100%}
@media(max-width:700px){.cinema .media{aspect-ratio:4/5}}
.cinema::after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,rgba(13,12,10,.72),transparent 55%);pointer-events:none}
.cinema__cap{position:absolute;z-index:2;left:var(--gutter);right:var(--gutter);bottom:clamp(1.5rem,4vw,3rem);margin:0;display:grid;gap:.6rem;max-width:var(--max);margin-inline:auto;color:var(--mif-paper)}
@media(min-width:1500px){.cinema__cap{left:calc((100vw - var(--max))/2 + var(--gutter))}}
.cinema__cap .mono{color:var(--mif-brass-light)}
.cinema__cap .serif{font-size:clamp(1.5rem,3.4vw,2.8rem);line-height:1.1;max-width:22ch}
.cinema .media figcaption{top:0;bottom:auto}

/* Focus textures */
.focus__tex{aspect-ratio:4/3;margin-bottom:1.2rem;overflow:hidden;border:1px solid var(--line)}
.tex{display:block;width:100%;height:100%}
.focus__item{border-top:0;padding-top:0}
.focus__n{color:var(--brass-text)}
.focus__h{font-family:var(--serif);font-weight:400;font-size:1.65rem;line-height:1.15;margin:.5rem 0 .7rem}
.focus__links{display:flex;flex-wrap:wrap;gap:.4rem 1.4rem;align-items:center;margin-top:.6rem}
.link-plain{min-height:44px;display:inline-flex;align-items:center;color:var(--mif-graphite)}

/* Method acts with media */
.acts--media .media{margin-bottom:1rem}
@media(min-width:900px){.acts--media .act{padding-top:1.4rem}}

/* Service ladder (home) */
.ladder{list-style:none;margin:0 0 2.5rem;padding:0;border-top:1px solid rgba(246,242,233,.2)}
.ladder__row{display:grid;gap:.8rem 2rem;padding:1.6rem 0;border-bottom:1px solid rgba(246,242,233,.14)}
@media(min-width:900px){.ladder__row{grid-template-columns:4rem minmax(0,5fr) minmax(0,6fr);align-items:baseline}}
.ladder__n{color:var(--mif-brass-light)}
.ladder__name{font-size:2rem;line-height:1.05;margin:0 0 .4rem}
.ladder__row p{margin:0;color:#CFC8BA}
.ladder__svc{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:.45rem}
.ladder__svc a{display:inline-flex;align-items:center;min-height:40px;padding:.4rem .8rem;border:1px solid rgba(246,242,233,.25);color:var(--mif-paper);text-decoration:none;font-size:.88rem}
.ladder__svc a:hover{background:rgba(246,242,233,.1);border-color:var(--mif-brass-light)}

/* Lanes affordance */
.lane{position:relative;padding-right:3.5rem}
.lane__go{position:absolute;right:1.4rem;top:1.4rem;font-size:1.4rem;transition:transform var(--motion-fast) var(--ease-standard)}
.lane:hover .lane__go,.cap-card:hover .lane__go{transform:translateX(4px)}

/* Closing with background film still */
.sec--close{position:relative;overflow:hidden;color:var(--mif-paper);border-top:0;background:var(--mif-ink)}
.close__bg{position:absolute;inset:0}
.close__bg .media{position:absolute;inset:0;aspect-ratio:auto;height:100%}
.close__bg::after{content:'';position:absolute;inset:0;background:rgba(13,12,10,.74)}
.close__in{position:relative;z-index:2}
.sec--close .eyebrow{color:var(--mif-brass-light)}
.sec--close .media figcaption{z-index:3;top:0;bottom:auto}

/* Page hero split */
.phero__grid{display:grid;gap:2.5rem;align-items:center}
@media(min-width:960px){.phero__grid{grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:4rem}}
.phero--split .media{width:100%}
.serif-lg{font-family:var(--serif);font-weight:400;font-size:clamp(1.6rem,3vw,2.3rem);line-height:1.1}

/* Services */
.jump{display:flex;flex-wrap:wrap;gap:.5rem;margin:1.5rem 0 .5rem}
.jump a{display:inline-flex;align-items:center;min-height:44px;padding:.4rem .8rem;border:1px solid var(--line-strong);text-decoration:none}
.jump a:hover{background:var(--tint)}
.svc-grid{display:grid;gap:1.25rem}
@media(min-width:760px){.svc-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1200px){.svc-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
.svc{display:flex;flex-direction:column;border:1px solid var(--line-strong);background:#FBF9F4;scroll-margin-top:5.5rem}
.svc__body{padding:1.4rem;display:flex;flex-direction:column;gap:.55rem;flex:1}
.svc__body p{margin:0;color:var(--mif-graphite)}
.svc__meta{display:flex;justify-content:space-between;align-items:center;margin:0!important;color:var(--brass-text)!important}
.svc__name{font-family:var(--sans);font-weight:600;font-size:1.1rem;margin:.2rem 0 0}
.svc__promise{font-size:1.35rem;line-height:1.2;color:var(--mif-ink)!important}
.svc__lbl{margin:.6rem 0 0;color:var(--brass-text);font-weight:500}
.list--tight{margin:.1rem 0 0}.list--tight li{margin:.2rem 0}
.svc__boundary{border-top:1px solid var(--line);padding-top:.7rem;margin-top:.4rem!important;font-size:.88rem}
.svc__boundary .mono{display:block;color:var(--brass-text);margin-bottom:.2rem}
.svc .link-arrow{margin-top:auto;align-self:flex-start}

/* Capabilities */
.cap-grid{display:grid;gap:1.25rem}
@media(min-width:700px){.cap-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1100px){.cap-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
.cap-card{position:relative;display:grid;gap:.5rem;padding:0 0 1.4rem;border:1px solid var(--line-strong);text-decoration:none;background:#FBF9F4;transition:border-color var(--motion-fast)}
.cap-card:hover{border-color:var(--mif-ink)}
.cap-card > *:not(.cap-card__tex){padding-inline:1.3rem}
.cap-card__tex{aspect-ratio:16/9;overflow:hidden;margin-bottom:.6rem}
.cap-card .mono{color:var(--brass-text)}
.cap-card__name{font-size:1.75rem;line-height:1.1}
.cap-card__h{color:var(--mif-graphite)}
.cap-card .lane__go{top:auto;bottom:1.3rem;right:1.3rem;padding:0}
.cap-hero{position:relative}
.cap-hero__tex{position:absolute;left:-1.2rem;bottom:-1.2rem;width:38%;aspect-ratio:1;border:6px solid var(--mif-paper);box-shadow:0 18px 40px -20px rgba(13,12,10,.5)}
@media(max-width:959px){.cap-hero__tex{left:.8rem;bottom:-1rem;width:30%}}
.grid4{display:grid;gap:2rem}
@media(min-width:760px){.grid4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1200px){.grid4{grid-template-columns:repeat(4,minmax(0,1fr))}}
.chips-nav{list-style:none;display:flex;flex-wrap:wrap;gap:.5rem;padding:0;margin:0}
.chips-nav a{display:inline-flex;align-items:center;min-height:44px;padding:.4rem .9rem;border:1px solid var(--line-strong);text-decoration:none}
.chips-nav a:hover{background:var(--tint)}

/* Footer v3.1 */
@media(min-width:800px){.ft__grid{grid-template-columns:2fr 1fr 1fr 1.4fr}}
.ft__brand .btn{margin-top:1rem}
.ft__note{font-size:.76rem;color:#A9A294;margin-top:2.5rem;max-width:90ch}
.menu a[aria-current=page]{text-decoration:underline;text-decoration-color:var(--mif-brass);text-underline-offset:.35em}
.ft a.btn--light{display:inline-flex;color:var(--mif-ink);min-height:48px;text-decoration:none}
.ft a.btn--light:hover{background:var(--mif-bone);text-decoration:none}
.ft__note{max-width:var(--max)}
@media(min-width:1200px){.svc-grid--even{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:599px){.hero__strip{display:none}}
@media(max-width:899px){.path{padding-right:0}.path__media .media{aspect-ratio:3/2}.acts--media .media{aspect-ratio:16/9}}

/* ===== v3.2 — editorial system ===== */
/* Section pagination */
.kicker__n{display:inline-block;margin-right:.9em;padding-right:.9em;border-right:1px solid currentColor;color:var(--mif-ink)}
.sec--ink .kicker__n,.hero--film .kicker__n{color:var(--mif-paper)}
/* One grade for all editorial imagery, so mixed stock reads as a single art direction */
:root{--grade:saturate(.78) contrast(1.04) sepia(.08) brightness(.98)}
.media img,.media video{filter:var(--grade)}
@media(hover:hover) and (prefers-reduced-motion:no-preference){
  .media img{transition:transform 1.2s var(--ease-standard),filter .6s var(--ease-standard)}
  a:hover > .media img,.path:hover .media img,.act:hover .media img{transform:scale(1.025);filter:saturate(.95) contrast(1.04)}
}
/* Column rows: equal widths, dividers drawn in the gap, nothing outside the gutter */
@media(min-width:900px){
  .paths{column-gap:3.2rem;border-top:1px solid var(--line-strong)}
  .path,.path+.path{position:relative;padding:2rem 0 1.6rem;border-top:0}
  .path+.path::before{content:'';position:absolute;left:-1.6rem;top:0;bottom:0;border-left:1px solid var(--line)}
  .acts{column-gap:2.4rem}
  .acts .act,.acts .act:first-child,.acts .act+.act{position:relative;padding:1.6rem 0 1.4rem;border-left:0}
  .acts .act+.act::before{content:'';position:absolute;left:-1.2rem;top:0;bottom:0;border-left:1px solid var(--line)}
}
/* Phones: long card lists become a swipeable row with a visible peek of the next card */
@media(max-width:899px){
  .snap{display:grid;grid-auto-flow:column;grid-auto-columns:82%;grid-template-columns:none;gap:1rem;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;margin-inline:calc(var(--gutter) * -1);padding:0 var(--gutter) .8rem;scroll-padding-inline:var(--gutter);border-top:0;scrollbar-width:thin}
  .snap > *{scroll-snap-align:start;min-width:0}
  .acts.snap .act,.acts.snap .act:first-child{padding:0;border:0}
  .acts--media.snap .media{aspect-ratio:4/3}
}
/* Secondary link */
.link-sub{display:inline-flex;align-items:center;min-height:44px;color:var(--mif-graphite);text-decoration:none;text-transform:none;letter-spacing:.02em;font-size:.8rem;border-bottom:1px dashed var(--line-strong)}
.link-sub:hover{color:var(--mif-ink);border-bottom-style:solid}
.link-sub::before{content:'↳';margin-right:.45em;color:var(--brass-text)}
/* Technical flats */
.flat{display:block;width:100%;height:100%;background:#F1EBDF}
.flat .fl-grid line{stroke:rgba(13,12,10,.06);stroke-width:1}
.flat .fl-ink{fill:none;stroke:var(--mif-ink);stroke-width:1.5;stroke-linejoin:round;stroke-linecap:round}
.flat .fl-fill{fill:#FBF8F1;stroke:none}.flat .fl-indigo{fill:#DCE2EC}
.flat .fl-stitch{fill:none;stroke:var(--mif-ink);stroke-width:.9;stroke-dasharray:3 2.5;opacity:.75}
.flat .fl-dash{stroke-dasharray:2 3}
.flat .fl-dim,.flat .fl-lead{fill:none;stroke:var(--mif-brass);stroke-width:1}
.flat .fl-lead{stroke-dasharray:2 2}
.flat .fl-note{font:500 9px var(--mono);letter-spacing:.08em;fill:var(--brass-text)}
.flat .fl-rivet{fill:var(--mif-brass)}
.flat .fl-rib line{stroke:var(--mif-ink);stroke-width:.7;opacity:.6}
.flat .fl-notch{fill:none;stroke:var(--mif-ink);stroke-width:1.6}
.flat .fl-grain{fill:none;stroke:var(--mif-brass);stroke-width:1.1}
.flat .fl-tag rect{fill:none;stroke:var(--mif-brass);stroke-width:1}
.flat .fl-sheet{fill:#FBF8F1;stroke:var(--mif-ink);stroke-width:1.2}
.flat .fl-row{stroke:rgba(13,12,10,.18);stroke-width:1}
.flat .fl-swatch{stroke:rgba(13,12,10,.25);stroke-width:1}
.flat .fl-weave line{stroke:rgba(13,12,10,.12);stroke-width:1.6}
.flat .fl-brand{font:400 22px var(--serif);letter-spacing:.18em;fill:var(--mif-ink)}
@media(prefers-reduced-motion:no-preference){
  .js .reveal .flat .fl-ink{stroke-dasharray:1400;stroke-dashoffset:1400;transition:stroke-dashoffset 1.6s var(--ease-standard)}
  .js .reveal.in .flat .fl-ink{stroke-dashoffset:0}
}
.focus__tex{display:block;aspect-ratio:4/3;margin-bottom:1.2rem;overflow:hidden;border:1px solid var(--line)}
.focus__links{gap:.2rem 1.4rem}
/* Estimate formula card */
.formula{gap:0;padding:2rem 2rem 1.6rem;align-self:center}
.formula__t{margin:0 0 1rem!important}
.formula__row{display:grid;grid-template-columns:auto 1fr auto;gap:.8rem;align-items:baseline;padding:.85rem 0;border-bottom:1px solid rgba(246,242,233,.14);color:#E9E3D6}
.formula__lead{border-bottom:1px dotted rgba(246,242,233,.3);transform:translateY(-.25em)}
.formula__row .mono{color:var(--mif-brass-light)}
.formula__row--total{border-bottom:0;padding-top:1.1rem}.formula__row--total .serif{font-size:1.7rem;line-height:1}
.formula__note{margin:.6rem 0 0;font-size:.82rem;color:#A9A294}
/* Services: phase index */
.phero--svc .phero__lead{max-width:900px}
.phase-nav{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:0;margin:2.4rem 0 1.4rem;border-top:1px solid var(--line-strong)}
.phase-nav a{display:grid;gap:.25rem;padding:1rem 1rem 1rem 0;text-decoration:none;border-bottom:1px solid var(--line);min-height:44px}
.phase-nav a:hover .serif{text-decoration:underline;text-decoration-color:var(--mif-brass)}
.phase-nav .mono{color:var(--brass-text)}.phase-nav .serif{font-size:1.6rem;line-height:1.05}.phase-nav__c{color:var(--mif-graphite)!important;text-transform:none;letter-spacing:.02em}
.phase__grid{display:grid;gap:2rem}
@media(min-width:1000px){.phase__grid{grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:4.5rem}.phase__sticky{position:sticky;top:6.5rem}}
.phase__aside .media{margin-top:1.6rem}
@media(max-width:999px){.phase__aside .media{display:none}}
.phase__list{border-top:1px solid var(--line-strong)}
.svc-row{display:grid;gap:.8rem 2.4rem;padding:1.8rem 0 1.6rem;border-bottom:1px solid var(--line);scroll-margin-top:6rem}
@media(min-width:760px){.phase__list--full .svc-row{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}}
.svc-row__meta{display:flex;align-items:center;gap:1rem;margin:0 0 .6rem;color:var(--brass-text)}
.svc-row__name{font:600 1.15rem/1.25 var(--sans);margin:0 0 .35rem}
.svc-row__promise{font-size:1.45rem;line-height:1.2;margin:0}
.svc-row__body > p{margin:0 0 1rem;color:var(--mif-graphite);max-width:var(--measure)}
.svc-row__facts{display:grid;gap:.1rem;margin:0}
.svc-row__facts > div{display:grid;gap:.15rem 1.2rem;padding:.55rem 0;border-top:1px dashed var(--line)}
@media(min-width:600px){.svc-row__facts > div{grid-template-columns:9.5rem 1fr}}
.svc-row__facts dt{color:var(--brass-text);padding-top:.15rem}.svc-row__facts dd{margin:0;font-size:.92rem}
.svc-row__cta{display:flex;flex-wrap:wrap;gap:.2rem 1.6rem;align-items:center;margin-top:.8rem}
.svc-row:target{background:linear-gradient(90deg,rgba(154,128,88,.12),transparent 60%)}
/* Capabilities */
.cap-group{color:var(--brass-text);margin:2.6rem 0 1rem;font-weight:500}
.cap-group:first-child{margin-top:0}
.cap-grid--3,.cap-grid--4{display:grid;gap:1.25rem}
@media(min-width:700px){.cap-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}.cap-grid--4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1100px){.cap-grid--4{grid-template-columns:repeat(4,minmax(0,1fr))}}
.cap-card{display:flex;flex-direction:column;padding:0;gap:0}
.cap-card > *:not(.cap-card__tex){padding-inline:0}
.cap-card__art{display:block;aspect-ratio:4/3;overflow:hidden;border-bottom:1px solid var(--line)}
.cap-card > .cap-card__body{display:grid;gap:.45rem;padding:1.2rem 1.3rem 3.4rem}
.cap-card--big .cap-card__name{font-size:2rem}
.cap-card:not(.cap-card--big) .cap-card__name{font-size:1.45rem}
.cap-card__go{position:absolute;left:1.3rem;bottom:1.1rem;font-size:1.3rem;transition:transform var(--motion-fast) var(--ease-standard)}
.cap-card:hover .cap-card__go{transform:translateX(4px)}
.cap-hero__art{position:absolute;left:-1.4rem;bottom:-1.4rem;width:46%;aspect-ratio:4/3;border:6px solid var(--mif-paper);box-shadow:0 22px 44px -22px rgba(13,12,10,.55);background:#F1EBDF}
@media(max-width:959px){.cap-hero__art{left:.8rem;bottom:-1rem;width:44%}}
/* Footer wordmark */
.ft__mark{display:block;font:400 clamp(3rem,13.4vw,13.5rem)/.82 var(--serif);letter-spacing:-.025em;color:rgba(246,242,233,.92);margin:3.5rem 0 0;white-space:nowrap;overflow:hidden}
.ft__mark em{color:var(--mif-brass-light)}
.focus__links{flex-direction:column;align-items:flex-start;gap:0}
.kicker:has(.kicker__n){display:flex;align-items:baseline}.kicker__n{flex:none}
.flat .fl-seal{fill:#7A2E26;opacity:.9}
/* ===== v3.3 — inner pages ===== */
/* Estimator: pending state uses the full width; live state keeps the form column */
.est:has(#estForm[hidden]){grid-template-columns:1fr}
@media(min-width:1000px){.est:has(#estForm[hidden]) .estimate-block{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:1rem 3.5rem;padding:2.4rem}}
.est__main .ctas{margin-top:1.4rem}
.est__state{font-size:clamp(1.8rem,3.4vw,2.6rem);line-height:1.05;margin:.2rem 0 1rem}
.est__side .h4:first-child{margin-top:0}
.list--cols li{break-inside:avoid;margin:0 0 .55rem}
.estimate-block .est__ctas{grid-column:1/-1}
/* Desk: form + sticky explainer, aligned to the page gutter */
.desk-layout{display:grid;gap:2.5rem}
.desk-layout .desk{max-width:none;margin:0}
@media(min-width:1100px){.desk-layout{grid-template-columns:minmax(0,8fr) minmax(0,3.6fr);gap:4rem;align-items:start}.desk-aside{position:sticky;top:6.5rem}}
.desk-aside{border-top:1px solid var(--mif-ink);padding-top:1.2rem}
.desk-aside h2{color:var(--brass-text);margin:0 0 1rem}
.desk-aside ol{list-style:none;margin:0;padding:0}
.desk-aside li{display:grid;grid-template-columns:2.2rem 1fr;gap:.15rem .4rem;padding:.9rem 0;border-bottom:1px solid var(--line)}
.desk-aside li .mono{grid-row:span 2;color:var(--brass-text);padding-top:.2rem}
.desk-aside li span:last-child{color:var(--mif-graphite);font-size:.92rem}
.desk-aside__note{font-size:.86rem;color:var(--mif-graphite);margin:1rem 0 .4rem}
/* Drawn hero frame */
.art-frame{aspect-ratio:4/3;border:1px solid var(--line-strong);box-shadow:0 30px 60px -36px rgba(13,12,10,.45);overflow:hidden}
/* Confidentiality lists */
.nda-cols{margin-top:3rem;padding-top:2rem;border-top:1px solid var(--line)}
.list--check,.list--lock{list-style:none;padding:0}
.list--check li,.list--lock li{padding:.7rem 0 .7rem 2rem;border-bottom:1px solid var(--line);position:relative;margin:0}
.list--check li::before{content:'→';position:absolute;left:0;color:var(--brass-text)}
.list--lock li::before{content:'';position:absolute;left:.15rem;top:1.05rem;width:.7rem;height:.55rem;border:1.5px solid var(--mif-ink);border-radius:1px}
.list--lock li::after{content:'';position:absolute;left:.3rem;top:.68rem;width:.4rem;height:.4rem;border:1.5px solid var(--mif-ink);border-bottom:0;border-radius:.3rem .3rem 0 0}
/* Other paths */
.other-paths{display:grid;gap:1.25rem;margin-top:1.4rem}
@media(min-width:760px){.other-paths{grid-template-columns:1fr 1fr}}
.other-path{position:relative;display:grid;gap:.4rem;padding:1.6rem 1.6rem 3.4rem;border:1px solid var(--line-strong);background:#FBF9F4;text-decoration:none;transition:border-color var(--motion-fast)}
.other-path:hover{border-color:var(--mif-ink)}.other-path:hover .cap-card__go{transform:translateX(4px)}
.other-path .mono{color:var(--brass-text)}.other-path__n{font-size:2rem;line-height:1.05}
.other-path > span:nth-child(3){color:var(--mif-graphite)}
.other-path .cap-card__go{left:1.6rem}
.choice{align-content:start}
.flat .fl-seal-t{font:600 11px var(--mono);letter-spacing:.12em;fill:#F6F2E9}
@media(min-width:900px){.sticky-col{position:sticky;top:6.5rem}}
.cta-band .split{align-items:end}
.phero + .sec:not(.sec--tint):not(.sec--ink){padding-top:clamp(2.5rem,5vw,4rem)}
@media(max-width:799px){.ft__grid{grid-template-columns:1fr 1fr;gap:2rem 1.2rem}.ft__brand,.ft__grid > div:last-child{grid-column:1/-1}}
.phero--desk{padding-bottom:clamp(1rem,3vw,2.5rem)}
/* ===== v3.4 — Product Studio (Signature 2, 2D) ===== */
.studio{display:grid;gap:2rem}
@media(min-width:1000px){.studio{grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:3.5rem;align-items:start}.studio__stage{position:sticky;top:6.5rem}}
.studio__frame{position:relative;aspect-ratio:4/3;border:1px solid var(--line-strong);background:#F1EBDF;box-shadow:0 30px 60px -36px rgba(13,12,10,.45)}
.studio__art,.studio__art svg{position:absolute;inset:0;width:100%;height:100%}
.studio__art .st-fill{transition:fill var(--motion-base) var(--ease-standard)}
.studio__hot{position:absolute;inset:0;pointer-events:none}
.st-hot{position:absolute;transform:translate(-50%,-50%);pointer-events:auto;width:44px;height:44px;border-radius:50%;border:0;background:transparent;cursor:pointer;font:600 .72rem var(--mono);color:var(--mif-paper);display:grid;place-items:center}
.st-hot::before{content:'';position:absolute;inset:10px;border-radius:50%;background:var(--mif-ink);box-shadow:0 0 0 3px rgba(246,242,233,.85);transition:transform var(--motion-fast) var(--ease-standard),background var(--motion-fast)}
.st-hot{isolation:isolate}.st-hot::before{z-index:-1}
.st-hot:hover::before,.st-hot[aria-pressed=true]::before{transform:scale(1.18);background:var(--brass-text)}
@media(prefers-reduced-motion:no-preference){.st-hot[aria-pressed=false]::after{content:'';position:absolute;inset:8px;border-radius:50%;border:1px solid var(--mif-ink);animation:pulse 2.4s var(--ease-standard) infinite;z-index:-2}}
@keyframes pulse{0%{transform:scale(1);opacity:.6}100%{transform:scale(1.8);opacity:0}}
.studio:not(.is-live) .studio__hot{display:none}
.studio__note{min-height:3.4em;margin:1rem 0 .4rem;padding:.9rem 1rem;border-left:2px solid var(--mif-brass);background:var(--tint);font-size:.95rem}
.studio__note .mono{color:var(--brass-text);margin-right:.5em}
.studio__disc{font-size:.8rem;color:var(--mif-graphite);margin:0}
.studio__panel{display:grid;gap:1.3rem}
.st-group legend{font-family:var(--mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--brass-text);margin-bottom:.6rem;padding:0}
.st-opts{display:flex;flex-wrap:wrap;gap:.45rem}
.st-opt{display:inline-flex;align-items:center;gap:.5rem;min-height:44px;padding:.45rem .85rem;border:1px solid var(--line-strong);background:#FBF9F4;cursor:pointer;font-size:.9rem;border-radius:2px}
.st-opt input{position:absolute;opacity:0;width:1px;height:1px}
.st-opt:has(input:checked){border-color:var(--mif-ink);box-shadow:inset 0 0 0 1px var(--mif-ink);background:#fff}
.st-opt:has(input:focus-visible){outline:2px solid var(--mif-ink);outline-offset:2px}
.st-sw{width:16px;height:16px;flex:none}
.st-opts--garment{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.st-opt--big{justify-content:center;text-align:center;min-height:56px;font-weight:500}
@media(max-width:520px){.st-opts--garment{grid-template-columns:1fr}}
.st-summary{border-top:1px solid var(--mif-ink);padding-top:1rem}
.st-summary h2,.st-summary h3{color:var(--brass-text);margin:0 0 .5rem;font-weight:500}
.st-summary h3{margin-top:1rem}
.st-summary__line{font-size:1.5rem;line-height:1.2;margin:0}
.lanes__alt{margin:1.4rem 0 0}
.studio__disc--m{display:none}
@media(max-width:999px){
  .studio.is-live .studio__stage{position:sticky;top:64px;z-index:6;background:var(--mif-paper);padding:.4rem 0 .5rem;margin-inline:calc(var(--gutter) * -1);padding-inline:var(--gutter);box-shadow:0 12px 18px -16px rgba(13,12,10,.35)}
  .studio.is-live .studio__frame{aspect-ratio:4/3;height:auto;width:min(100%,calc(min(30vh,260px) * 4 / 3));margin-inline:auto;box-shadow:none}
  .studio.is-live .studio__note{min-height:0;margin:.5rem 0 0;padding:.5rem .8rem;font-size:.85rem}
  .studio.is-live .studio__disc--d{display:none}
  .studio.is-live .studio__disc--m{display:block}
}
@media(min-width:1000px){.studio__frame{max-width:calc((100vh - 15rem) * 4 / 3)}}
/* ===== v3.6 — fixes from independent audit ===== */
.ft a[href^="mailto:"]{overflow-wrap:normal;word-break:normal}
@media(min-width:800px) and (max-width:1149px){.ft a[href^="mailto:"]{font-size:.86rem}}
.phase-nav{grid-template-columns:repeat(5,minmax(0,1fr))}
@media(max-width:899px){.phase-nav{grid-template-columns:repeat(2,minmax(0,1fr))}.phase-nav a:last-child:nth-child(odd){grid-column:1/-1}}
.ft__mark{overflow:visible;padding-bottom:.18em;font-size:clamp(3rem,12.6vw,13rem);max-width:100%}
.ft{overflow:hidden}
.phero .list + .h3,.phero ol + .h3,.phero .list + h2{margin-top:2.4rem}
.dossier__row{column-gap:1rem}
@media(min-width:700px) and (max-width:999px){
  .cap-grid--3{grid-template-columns:1fr}
  .cap-card--big{flex-direction:row}
  .cap-card--big .cap-card__art{width:46%;flex:none;border-bottom:0;border-right:1px solid var(--line)}
}
@media(min-width:600px) and (max-width:799px){.ft__grid{grid-template-columns:repeat(3,minmax(0,1fr))}.ft__brand{grid-column:1/-1}.ft__grid > div:last-child{grid-column:auto}}
.crumbs a{display:inline-flex;align-items:center;min-height:44px}
@media(max-width:959px){.cap-hero__art .fl-note,.cap-hero__art .fl-brand{display:none}}
@media(max-width:520px){.focus__tex .fl-note,.cap-card__art .fl-note{font-size:11px}}
@media print{.desk-aside,.studio__panel .ctas{display:none!important}}
.nf-it{margin-top:2.4rem;padding-top:1.6rem;border-top:1px solid var(--line)}.nf-it .h3{margin-bottom:.4rem}
.ft__mark{line-height:.92;padding-bottom:.22em}
@media(min-width:700px) and (max-width:999px){.cap-card--big .cap-card__go{left:calc(46% + 1.3rem)}}
/* ===== v3.7 — legal pages, footer legal row ===== */
.legal .lead{max-width:62ch}
.legal__toc{display:flex;flex-wrap:wrap;gap:.3rem 1.2rem;margin:0 0 2.6rem;padding:1rem 0;border-block:1px solid var(--line)}
.legal__toc a{min-height:36px;display:inline-flex;align-items:center;text-decoration:none;text-transform:none;letter-spacing:.02em;color:var(--mif-graphite)}
.legal__toc a:hover{color:var(--mif-ink);text-decoration:underline}
.legal__s{scroll-margin-top:6rem;padding:1.4rem 0;border-bottom:1px solid var(--line)}
.legal__s p,.legal__s li{max-width:70ch;color:var(--mif-graphite)}
.legal__s strong{color:var(--mif-ink);font-weight:600}
.legal__s .h3{margin-bottom:.6rem}
mark.todo{background:#F3E2B5;color:#5A3E00;padding:0 .3em;border-radius:2px;font-weight:600}
.ft__base{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.6rem 2rem;align-items:center}
.ft__base p{margin:0}
.ft__legal{display:flex;flex-wrap:wrap;gap:0 1.2rem}
.ft .ft__legal a{min-height:44px;font-size:.8rem;color:#CFC8BA}
/* ===== v3.7 — fluidity ===== */
/* Cross-document view transitions (Chrome/Edge 126+, Safari 18.2+): a short cross-fade between pages. */
@media(prefers-reduced-motion:no-preference){
  @view-transition{navigation:auto}
  ::view-transition-old(root),::view-transition-new(root){animation-duration:var(--motion-fast);animation-timing-function:var(--ease-standard)}
  .hd{view-transition-name:site-header}
}
/* content-visibility:auto was tried and removed: it made anchors and the scrollbar jump on long pages. */
/* Snappier taps on touch devices */
a,button,label,summary{touch-action:manipulation;-webkit-tap-highlight-color:rgba(154,128,88,.18)}

/* No layout shift on load: the menu button and the Desk's first step are visible from the first frame. */
.menu__btn{display:none}
.js .menu__btn{display:inline-flex;align-items:center}
@media(min-width:1000px){.js .menu__btn{display:none}}
html:not(.js) [data-nav=next]{display:none}
.js .desk__form:not(.is-ready) [data-nav=send]{display:none}

/* v3.8 — brand mark: crest in the header, full logo + seal in the footer, crest on the closing film */
.logo{display:inline-flex;align-items:center;gap:.65rem}
.logo__crest{display:block;height:44px;width:auto;flex:none;transition:transform var(--motion-fast)}
.logo:hover .logo__crest{transform:translateY(-1px)}
.logo__word{display:block}
@media(max-width:520px){.logo{gap:.45rem}.logo__crest{height:32px}}
@media(max-width:374px){.logo__crest{height:28px}.logo{font-size:1rem}}
.ft__logo{display:block;width:min(300px,72vw);height:auto;margin:0 0 1.1rem -8px}
.ft__seal{display:flex;align-items:center;gap:1.3rem;margin-top:2.5rem;padding-top:2rem;border-top:1px solid rgba(246,242,233,.12)}
.ft__seal img{flex:none;width:112px;height:112px;border-radius:50%;box-shadow:0 0 0 1px rgba(199,180,141,.28),0 12px 32px rgba(0,0,0,.5)}
.ft__seal p{margin:0;display:grid;gap:.4rem;font-size:.8rem;line-height:1.5;color:#A9A294;max-width:62ch}
.ft__seal .mono{font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--mif-brass-light)}
@media(max-width:480px){.ft__seal{align-items:flex-start}.ft__seal img{width:84px;height:84px}}
.close__crest{display:block;height:clamp(76px,9vw,110px);width:auto;margin:0 auto 1.6rem;filter:drop-shadow(0 10px 26px rgba(0,0,0,.55))}
@media(max-width:440px){.logo__word{font-size:1.02rem;line-height:1}.logo__word em{display:block;font-size:.94em}.logo__crest{height:36px}}
@media(max-width:340px){.logo__crest{height:30px}.logo__word{font-size:.94rem}}
@media(max-width:360px){.hd{gap:.35rem}.menu__btn{padding:.6rem .55rem;font-size:.74rem}.hd__cta{padding-inline:.6rem;font-size:.8rem}.logo{gap:.35rem}}
/* audit 2: minimum 12px on real content; visible focus on the Desk step line */
.media__tag{font-size:.75rem}
.legal__toc a{font-size:.8rem}
.ledger thead th,.legal th{font-size:.75rem}
.desk__progress:focus{outline:2px solid var(--mif-brass);outline-offset:4px}

/* v3.9 — maison finish: dark header framing the gold crest, hero entrance, cinematic scroll, gold interactions */
.hd{background:rgba(13,12,10,.97);color:var(--mif-paper);border-bottom:1px solid rgba(199,180,141,.2)}
@supports(backdrop-filter:blur(1px)){.hd{background:rgba(13,12,10,.93);backdrop-filter:saturate(1.3) blur(14px)}}
.hd .logo{color:var(--mif-paper)}.hd .logo em{color:var(--mif-brass-light)}
.hd .menu a{color:#E9E3D6;transition:color var(--motion-fast),background var(--motion-fast)}
.hd .menu a:hover{background:rgba(246,242,233,.07);color:var(--mif-paper)}
.hd .menu .lang{color:#A9A294}
.hd .menu a[aria-current=page]{color:var(--mif-paper);text-decoration-color:var(--mif-brass-light)}
.hd .menu__btn{border-color:rgba(246,242,233,.38);color:var(--mif-paper)}
.hd .hd__cta{background:var(--mif-paper);color:var(--mif-ink);border-color:var(--mif-paper)}
.hd .hd__cta:hover{background:var(--mif-brass-light);border-color:var(--mif-brass-light)}
.hd :focus-visible{outline-color:var(--mif-brass-light)}
.js .hd.is-open .menu{border-top:1px solid rgba(199,180,141,.16);margin-top:.4rem}
.staging{border-bottom:1px solid rgba(199,180,141,.14)}
/* gold, not grey, on dark buttons */
.btn--light:hover,.ft a.btn--light:hover{background:var(--mif-brass-light);border-color:var(--mif-brass-light)}
.btn--ghost-light:hover{border-color:var(--mif-brass-light);color:var(--mif-brass-light)}
::selection{background:var(--mif-brass-light);color:var(--mif-ink)}
/* provenance labels: present but quiet */
.media__tag{font-size:.75rem;letter-spacing:.04em;text-transform:none;background:rgba(13,12,10,.4);color:rgba(246,242,233,.92);padding:.16rem .5rem;border-radius:2px}
@supports(backdrop-filter:blur(1px)){.media__tag{backdrop-filter:blur(6px)}}
@media(prefers-reduced-motion:no-preference){
  /* hero entrance: transform-only on the headline so it still paints first (LCP), the rest fades up after */
  .hero--film .eyebrow,.hero--film .lead,.hero--film .ctas,.hero--film .hero__strip{animation:mifRise .9s var(--ease-standard) both}
  .hero--film .lead{animation-delay:.18s}.hero--film .ctas{animation-delay:.3s}.hero--film .hero__strip{animation-delay:.42s}
  .hero--film h1{animation:mifLift 1.1s var(--ease-standard) both}
  body:has(.hero--film) .logo__crest{animation:mifCrest 1.2s var(--ease-standard) backwards}
  /* the film band settles as it crosses the screen (browsers with scroll timelines; GPU transform only) */
  @supports(animation-timeline:view()){
    .cinema .media img,.cinema .media video,.close__bg .media img{animation:mifSettle linear both;animation-timeline:view();animation-range:entry 0% exit 100%}
  }
}
@keyframes mifRise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes mifLift{from{transform:translateY(18px)}to{transform:none}}
@keyframes mifCrest{from{opacity:0;transform:scale(.92)}to{opacity:1;transform:none}}
@keyframes mifSettle{from{transform:scale(1.14) translateY(-2%)}to{transform:scale(1.02) translateY(2%)}}
/* services ladder and chips: gold response */
.ladder__svc a{transition:border-color var(--motion-fast),color var(--motion-fast)}
.ladder__svc a:hover{border-color:var(--mif-brass-light);color:var(--mif-brass-light)}
