@font-face{font-family:"Inter";font-weight:400;font-display:swap;src:url("/fonts/inter-400.woff2") format("woff2")}
@font-face{font-family:"Inter";font-weight:600;font-display:swap;src:url("/fonts/inter-600.woff2") format("woff2")}
@font-face{font-family:"Inter Fallback";src:local("Arial");ascent-override:90.2%;descent-override:22.48%;line-gap-override:0%;size-adjust:107.4%}
@font-face{font-family:"Fraunces";font-weight:100 900;font-display:swap;src:url("/fonts/fraunces-var.woff2") format("woff2-variations")}
*{box-sizing:border-box;margin:0;padding:0;border-radius:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:"Inter","Inter Fallback",system-ui,sans-serif;background:#FFF;color:#000;-webkit-font-smoothing:antialiased;
line-height:1.7;font-feature-settings:"kern" 1,"liga" 1,"calt" 1;hanging-punctuation:first allow-end last;text-rendering:optimizeLegibility}
::selection{background:#FF4D00;color:#FFF}
::-moz-selection{background:#FF4D00;color:#FFF}
:root{--accent:#FF4D00;--accent-ink:#C2410C;--ink:#000;--paper:#FFF;--mute:#6b6b6b;--faint:#767676;
--xs:16px;--sm:32px;--md:64px;--lg:128px;--xl:200px;--measure:66ch;--gut:clamp(20px,6vw,56px);--rule:#e6e6e6;
--ease:cubic-bezier(.16,1,.3,1)}
a{color:inherit;text-decoration:none}
.skip{position:absolute;left:-9999px}
.skip:focus{left:16px;top:16px;background:var(--ink);color:var(--paper);padding:12px 16px;z-index:200}
.disp{font-family:"Fraunces",Georgia,"Times New Roman",serif;font-variation-settings:"opsz" 80,"wght" 560}
.num{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}
header.bar{position:sticky;top:0;z-index:50;background:var(--paper);border-bottom:1px solid var(--ink);
display:flex;justify-content:space-between;align-items:flex-start;padding:36px var(--gut)}
.wordmark{font-family:"Fraunces",Georgia,serif;font-variation-settings:"opsz" 30,"wght" 600;font-size:1.45rem;line-height:0.96;letter-spacing:-0.02em}
nav.main{display:flex;gap:var(--sm);padding-top:6px;align-items:center}
nav.main a{font-size:0.9rem;letter-spacing:0.01em;color:var(--mute);position:relative}
nav.main a::after{content:"";position:absolute;left:0;bottom:-5px;width:0;height:1px;background:var(--ink);transition:width 320ms var(--ease)}
nav.main a:hover,nav.main a:focus{color:var(--ink)}
nav.main a:hover::after,nav.main a:focus::after{width:100%}
.lang{font-size:0.85rem;font-weight:500;border:1px solid var(--rule);padding:6px 10px;background:var(--paper);color:var(--mute);letter-spacing:0.02em}
.lang:hover{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.marq{overflow:hidden;background:var(--ink);color:var(--paper);border-bottom:1px solid var(--ink)}
.marq-track{display:flex;width:max-content;white-space:nowrap;will-change:transform;animation:marq 64s linear infinite}
.marq:hover .marq-track{animation-play-state:paused}
.marq span{font-family:"Fraunces",Georgia,serif;font-variation-settings:"opsz" 36,"wght" 460;font-size:clamp(1rem,2vw,1.45rem);padding:18px 30px;letter-spacing:0.01em;opacity:0.92}
.marq span[aria-hidden]{opacity:0.4}
@keyframes marq{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.phead{padding:clamp(96px,14vh,160px) var(--gut) clamp(56px,8vh,96px);max-width:var(--measure);margin:0 auto}
.kick{font-size:0.78rem;font-weight:600;letter-spacing:0.16em;text-transform:uppercase;color:var(--mute);margin-bottom:28px;font-variant-numeric:tabular-nums}
.phead h1{font-family:"Fraunces",Georgia,serif;font-variation-settings:"opsz" 144,"wght" 600;font-size:clamp(2.6rem,7.5vw,5rem);line-height:1.0;letter-spacing:-0.02em;text-wrap:balance}
.bc{margin-top:44px;font-size:14px;color:var(--faint);letter-spacing:0.01em}
.bc a{color:var(--mute);border-bottom:1px solid var(--rule)}
.bc a:hover{color:var(--ink)}
.bc span{padding:0 10px;color:var(--faint)}
.mbody{padding:0 var(--gut) clamp(96px,14vh,176px);max-width:var(--measure);margin:0 auto}
.mbody h2{font-family:"Fraunces",Georgia,serif;font-variation-settings:"opsz" 72,"wght" 580;font-size:clamp(1.7rem,3.6vw,2.4rem);letter-spacing:-0.015em;line-height:1.12;margin:104px 0 20px;text-wrap:balance}
.mbody h2:first-child{margin-top:0}
.mbody h3,.mbody .lead{font-size:1.16rem;font-weight:600;letter-spacing:-0.005em;line-height:1.4;margin:60px 0 10px;text-wrap:balance}
.mbody p{font-size:1.0625rem;margin:0 0 18px;hyphens:auto;-webkit-hyphens:auto;hyphenate-limit-chars:8 3 3;text-wrap:pretty}
.mbody p+p{margin-top:0}
.mbody ul,.mbody ol{margin:10px 0 34px;padding-left:24px}
.mbody li{margin:9px 0;font-size:1.0625rem;text-wrap:pretty}
.mbody strong{font-weight:600}
.mbody a{color:var(--ink);border-bottom:1px solid var(--ink);text-underline-offset:3px}
.mbody a:hover{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.mbody p.concl{margin-top:clamp(72px,10vh,112px);font-family:"Fraunces",Georgia,serif;font-variation-settings:"opsz" 40,"wght" 440;font-size:1.32rem;line-height:1.5;hyphens:none;text-wrap:pretty}
.faq{margin-top:104px}
.faq>h2{margin-bottom:8px}
.faq-row{padding:34px 0;border-top:1px solid var(--rule)}
.faq-row:first-of-type{border-top:0}
.faq-row h3{font-family:"Fraunces",Georgia,serif;font-variation-settings:"opsz" 48,"wght" 560;margin:0 0 10px;font-size:1.28rem;letter-spacing:-0.005em}
.faq-row p{margin:0;font-size:1.0625rem;hyphens:auto;-webkit-hyphens:auto;text-wrap:pretty}
form.nl{display:flex;flex-wrap:wrap;margin:8px 0 var(--sm);border:1px solid var(--ink);max-width:520px}
form.nl input[type=email]{flex:1;min-width:200px;padding:14px 16px;border:0;font-family:inherit;font-size:16px;background:var(--paper);color:var(--ink)}
form.nl input[type=email]:focus{outline:2px solid var(--ink);outline-offset:-2px}
form.nl button{padding:14px 28px;border:0;background:var(--ink);color:var(--paper);font-family:inherit;font-weight:600;font-size:16px;cursor:pointer}
form.nl button:hover{background:var(--accent-ink)}
.status{border:1px solid var(--rule);padding:var(--xs);font-size:15px;color:var(--mute);margin:0 0 var(--md)}
/* home */
.hero{padding:clamp(120px,20vh,240px) var(--gut) clamp(96px,14vh,160px);border-bottom:1px solid var(--ink);max-width:1120px;margin:0 auto}
.hero h1{font-family:"Fraunces",Georgia,serif;font-variation-settings:"opsz" 144,"wght" 600;font-size:clamp(3rem,11vw,7.5rem);line-height:0.97;letter-spacing:-0.025em;text-wrap:balance}
.hero h1 .ac{color:var(--accent)}
.hero p{margin-top:clamp(40px,6vh,72px);max-width:60ch;font-size:clamp(1.05rem,1.5vw,1.2rem);color:var(--mute);text-wrap:pretty}
section.case{border-bottom:1px solid var(--ink)}
.case-inner{display:flex;min-height:80vh}
.case-left{width:44%;padding:clamp(40px,6vw,88px);display:flex;flex-direction:column;justify-content:space-between;border-right:1px solid var(--ink)}
.case-meta{display:flex;gap:var(--sm);font-size:0.78rem;text-transform:uppercase;letter-spacing:0.16em;color:var(--mute);font-variant-numeric:tabular-nums}
.case-meta .nn{color:var(--ink);font-weight:600}
.case-left h2{font-family:"Fraunces",Georgia,serif;font-variation-settings:"opsz" 110,"wght" 580;font-size:clamp(2.1rem,4.6vw,3.6rem);letter-spacing:-0.02em;line-height:1.0;margin-top:auto}
.case-disc{margin-top:14px;font-size:0.95rem;color:var(--mute);letter-spacing:0.01em}
.case-text{margin-top:var(--sm);font-size:1.0625rem;max-width:42ch;color:var(--ink);text-wrap:pretty}
.case-right{width:56%;position:relative;background:var(--paper);overflow:hidden;display:flex;align-items:center;justify-content:center}
.case-right .vis{width:min(70%,420px);color:var(--ink)}
.case-right .vis svg{width:100%;height:auto;display:block;overflow:visible}
.vis [stroke]{vector-effect:non-scaling-stroke}
.vis .act{stroke:var(--accent);stroke-width:2.2}
.vis .dr{stroke-dasharray:1;stroke-dashoffset:1}
body.anim .case.in .vis .dr{animation:draw 1100ms var(--ease) forwards}
@keyframes draw{to{stroke-dashoffset:0}}
.block{padding:clamp(96px,14vh,176px) var(--gut);max-width:1120px;margin:0 auto;border-bottom:1px solid var(--ink)}
.block:last-of-type{border-bottom:0}
.block>h2{font-family:"Fraunces",Georgia,serif;font-variation-settings:"opsz" 120,"wght" 580;font-size:clamp(2rem,5vw,3.4rem);letter-spacing:-0.02em;margin-bottom:clamp(48px,7vh,80px);text-wrap:balance}
.qwrap{max-width:var(--measure)}
details.qa{border-top:1px solid var(--rule)}
details.qa:last-of-type{border-bottom:1px solid var(--rule)}
details.qa>summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:baseline;gap:var(--sm);
padding:30px 0;font-family:"Fraunces",Georgia,serif;font-variation-settings:"opsz" 56,"wght" 540;font-size:clamp(1.2rem,2.6vw,1.7rem);letter-spacing:-0.01em}
details.qa>summary::-webkit-details-marker{display:none}
details.qa>summary .pl{font-family:Inter,sans-serif;font-size:1.3rem;color:var(--mute);transition:transform 420ms var(--ease)}
details.qa[open]>summary .pl{transform:rotate(45deg);color:var(--ink)}
details.qa .ab{font-size:1.0625rem;max-width:64ch;padding:0 0 32px;color:var(--ink);hyphens:auto;-webkit-hyphens:auto;text-wrap:pretty}
.bgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--rule);border:1px solid var(--rule)}
.bcard{background:var(--paper);padding:28px;min-height:160px;display:flex;flex-direction:column;justify-content:space-between;transition:background 240ms var(--ease),color 240ms var(--ease)}
.bcard:hover{background:var(--ink);color:var(--paper)}
.bcard .bn{font-size:0.78rem;font-weight:600;color:var(--faint);letter-spacing:0.1em;font-variant-numeric:tabular-nums}
.bcard:hover .bn{color:var(--accent-ink)}
.bcard .bt{font-family:"Fraunces",Georgia,serif;font-variation-settings:"opsz" 44,"wght" 560;font-size:1.5rem;letter-spacing:-0.015em;margin:14px 0}
.bcard .bd{font-size:0.9rem;line-height:1.5;color:var(--mute)}
.bcard:hover .bd{color:var(--paper)}
.endnote{max-width:var(--measure);margin-top:clamp(56px,8vh,88px);font-size:1.0625rem;color:var(--mute)}
.endnote a{color:var(--ink);border-bottom:1px solid var(--ink);text-underline-offset:3px}
.endnote a:hover{background:var(--ink);color:var(--paper)}
footer{padding:clamp(120px,18vh,220px) var(--gut) clamp(96px,14vh,160px);border-top:1px solid var(--ink);max-width:1120px;margin:0 auto}
footer .fh{font-family:"Fraunces",Georgia,serif;font-variation-settings:"opsz" 144,"wght" 580;font-size:clamp(2.4rem,8vw,5.4rem);letter-spacing:-0.025em;line-height:0.98;text-wrap:balance}
.foot-row{margin-top:clamp(56px,8vh,88px);display:flex;flex-wrap:wrap;gap:var(--md);align-items:flex-end;justify-content:space-between}
.mail{font-family:"Fraunces",Georgia,serif;font-variation-settings:"opsz" 40,"wght" 520;font-size:1.5rem;border-bottom:1px solid var(--ink)}
.mail:hover{background:var(--ink);color:var(--paper)}
.foot-addr{font-size:0.95rem;text-align:right;color:var(--mute);line-height:1.6}
.foot-legal{margin-top:clamp(96px,14vh,160px);padding-top:24px;border-top:1px solid var(--rule);display:flex;justify-content:space-between;flex-wrap:wrap;gap:var(--xs);font-size:13px;color:var(--faint);letter-spacing:0.01em}
.foot-legal a{color:var(--mute);border-bottom:1px solid var(--rule)}
.foot-legal a:hover{color:var(--ink);border-color:var(--ink)}
.rv{opacity:1}
body.anim .rv{opacity:0;transform:translateY(14px);transition:opacity 720ms var(--ease),transform 720ms var(--ease)}
body.anim .rv.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.marq-track{animation:none}body.anim .rv{opacity:1;transform:none;transition:none}.vis .dr{stroke-dashoffset:0!important;animation:none!important}}
@media(max-width:880px){
header.bar{padding:20px var(--gut)}nav.main{gap:18px;flex-wrap:wrap}nav.main a{font-size:0.82rem}
.phead{padding:clamp(80px,12vh,120px) var(--gut) clamp(40px,6vh,64px)}.hero{padding:clamp(88px,14vh,128px) var(--gut) clamp(64px,9vh,96px)}
.block{padding:clamp(64px,9vh,96px) var(--gut)}.foot-addr{text-align:left}
.case-inner{flex-direction:column;min-height:0}.case-left,.case-right{width:100%}
.case-left{border-right:0;border-bottom:1px solid var(--ink);min-height:62vh}.case-right{padding:56px 0;min-height:300px}
.case-right .vis{width:62%}
.bgrid{grid-template-columns:repeat(2,1fr)}
.foot-row{gap:var(--sm)}
}
@media(max-width:540px){.bgrid{grid-template-columns:1fr}.hero h1{font-size:clamp(2.4rem,14vw,3.6rem)}.case-left h2{font-size:clamp(1.9rem,9vw,2.6rem)}}
@view-transition{navigation:auto}
::view-transition-old(root){animation:vt-out 260ms var(--ease) both}
::view-transition-new(root){animation:vt-in 360ms var(--ease) both}
@keyframes vt-out{to{opacity:0;transform:translateY(-8px)}}
@keyframes vt-in{from{opacity:0;transform:translateY(10px)}}
@media(prefers-reduced-motion:reduce){::view-transition-old(root),::view-transition-new(root){animation:none}}

.meta{margin-top:22px;font-size:14px;color:var(--mute);letter-spacing:0.01em}
.meta a{border-bottom:1px solid var(--rule)}
.lede{font-size:1.2rem;line-height:1.6;margin-bottom:28px!important}
.toc{border:1px solid var(--ink);padding:24px 28px;margin:0 0 56px}
.toc p{font-size:0.78rem!important;font-weight:600;letter-spacing:0.16em;text-transform:uppercase;color:var(--mute);margin:0 0 10px!important}
.toc ol{margin:0;padding-left:20px}.toc li{margin:4px 0;font-size:1rem}
.toc a{border:0}.toc a:hover{background:none;color:var(--accent-ink)}
.mbody h2{scroll-margin-top:140px}
figure{margin:44px 0}
figure img{display:block;width:100%;height:auto;background:#f2f2f2}
figure.dia svg{display:block;width:100%;height:auto;max-width:560px;margin:0 auto}
.vid-play svg{width:20px;height:22px;display:block}
figure.dia{border:1px solid var(--rule);padding:28px 20px 16px}
figcaption{font-size:13px;line-height:1.5;color:var(--mute);margin-top:10px}
figcaption a{border-bottom:1px solid var(--rule)!important;color:var(--mute)!important}
figcaption a:hover{background:none!important;color:var(--ink)!important}
.dia .act{stroke:var(--accent)}.dia text{font-family:Inter,system-ui,sans-serif;font-size:13px;fill:var(--mute);stroke:none}
.note{border-left:3px solid var(--accent);padding:6px 0 6px 20px;margin:32px 0}
.note p:last-child{margin-bottom:0}
.note strong:first-child{display:block;font-size:0.78rem;letter-spacing:0.16em;text-transform:uppercase;margin-bottom:6px}
.mbody table{width:100%;border-collapse:collapse;margin:24px 0 40px;font-size:0.98rem}
.mbody th,.mbody td{text-align:left;vertical-align:top;padding:12px 10px;border-bottom:1px solid var(--rule)}
.mbody th{font-weight:600;border-bottom:1px solid var(--ink);font-size:0.85rem;letter-spacing:0.04em}
.tscroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
ol.steps{list-style:none;padding-left:0;counter-reset:st}
ol.steps>li{counter-increment:st;position:relative;padding-left:52px;margin:18px 0}
ol.steps>li::before{content:counter(st,decimal-leading-zero);position:absolute;left:0;top:1px;font-weight:600;font-size:0.85rem;color:var(--accent);font-variant-numeric:tabular-nums;letter-spacing:0.05em;color:var(--accent-ink)}
ol.steps>li strong{display:block}
.vid{margin:44px 0}
.vid-box{position:relative;aspect-ratio:16/9;background:var(--ink);color:var(--paper);display:flex;align-items:flex-end}
.vid-box iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.vid-btn{all:unset;box-sizing:border-box;cursor:pointer;position:absolute;inset:0;display:flex;flex-direction:column;justify-content:space-between;padding:clamp(18px,4vw,32px)}
.vid-btn:focus-visible{outline:3px solid var(--accent);outline-offset:-3px}
.vid-play{width:64px;height:64px;border:1px solid var(--paper);display:flex;align-items:center;justify-content:center;transition:background 240ms var(--ease)}
.vid-btn:hover .vid-play{background:var(--accent);border-color:var(--accent)}
.vid-t{font-family:"Fraunces",Georgia,serif;font-variation-settings:"opsz" 40,"wght" 520;font-size:clamp(1.1rem,2.4vw,1.5rem);line-height:1.25;max-width:32ch}
.vid-s{font-size:13px;opacity:0.75;margin-top:8px;font-family:Inter,sans-serif}
.srcs{margin-top:88px;border-top:1px solid var(--ink);padding-top:28px}
.srcs h2{font-size:1.3rem!important;margin:0 0 12px!important}
.srcs li{font-size:0.95rem}
.rel{margin-top:72px}
.rel h2{font-size:1.3rem!important;margin:0 0 16px!important}
.rel ul{list-style:none;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--rule);border:1px solid var(--rule)}
.rel li{margin:0;background:var(--paper)}
.rel a{display:block;border:0;padding:16px 18px;font-size:0.98rem}
.rel a:hover{background:var(--ink);color:var(--paper)}
.cta{margin:56px 0;border:1px solid var(--ink);padding:24px 28px}
.cta p{margin:0!important}
:root{--faint:#767676}
nav.main{margin-top:-12px}nav.main a{padding-block:12px}
.foot-legal a{display:inline-block;padding-block:8px}
.marq:focus-within .marq-track,.marq:active .marq-track{animation-play-state:paused}
form.nl input[type=email]{min-height:48px}
.hub{grid-template-columns:repeat(2,1fr);margin:24px 0 56px}.hub a{border:0}.hub a:hover{background:var(--ink)}@media(max-width:540px){.hub{grid-template-columns:1fr}}
.qk{border:1px solid var(--ink);background:#fafafa;padding:22px 26px;margin:0 0 40px}.qk p{margin:0!important}.qk-l{font-size:0.78rem;font-weight:600;letter-spacing:0.16em;text-transform:uppercase;color:var(--accent-ink)}.qk-q{font-weight:600;margin:8px 0 6px!important}.qk-a{font-size:1.0625rem}
.tm{margin-top:18px;font-size:12px;color:var(--mute)}
@media(max-width:540px){.mbody table,.mbody thead,.mbody tbody,.mbody tr,.mbody td{display:block;width:100%}.mbody thead{position:absolute;left:-9999px}.mbody tr{border-bottom:1px solid var(--rule);padding:12px 0}.mbody td{border:0;padding:3px 0}.mbody td::before{content:attr(data-label);display:block;font-size:0.72rem;font-weight:600;letter-spacing:0.08em;text-transform:uppercase;color:var(--mute)}}
@media(max-width:540px){.rel ul{grid-template-columns:1fr}.toc{padding:18px 18px}ol.steps>li{padding-left:40px}}

figure.leadimg{margin:0 0 48px}figure img{background:#f2f2f2}
.mbody>figure.leadimg:first-child{margin-top:0}
.fx{border:1px solid var(--ink);margin:8px 0 40px}
.fx-in{display:grid;grid-template-columns:1fr 1fr}
.fx-in>div{padding:24px 26px}
.fx-in>div+div{border-left:1px solid var(--rule)}
.fx fieldset{border:0;margin:0;padding:0;min-width:0}
.fx legend,.fx .flabel{font-size:0.78rem;font-weight:600;letter-spacing:0.16em;text-transform:uppercase;margin:0 0 14px;padding:0;display:block}
.lw{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 18px}
.lw button{font:inherit;font-weight:600;font-variant-numeric:tabular-nums;min-width:52px;padding:10px 12px;border:1px solid var(--ink);background:var(--paper);color:var(--ink);cursor:pointer}
.lw button:hover{background:#f2f2f2}
.lw button[aria-pressed="true"]{background:var(--ink);color:var(--paper)}
.lw button.odd::after{content:"\00B7";margin-left:2px}
.fx input[type=number]{font:inherit;width:120px;padding:10px 12px;border:1px solid var(--ink);background:var(--paper);color:var(--ink)}
.mbody .fx .hint{font-size:0.92rem;color:var(--mute);margin:18px 0 0}
.mbody .ro .empty{color:var(--mute);margin:0}
.ro dl{margin:0}
.ro dl div{display:flex;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px solid var(--rule)}
.ro dt{font-size:0.92rem;color:var(--mute)}
.ro dd{margin:0;font-weight:600;font-variant-numeric:tabular-nums;text-align:right}
.ro .note{display:block;font-weight:400;font-size:0.85rem;color:var(--accent-ink)}
.fx input[type=range]{width:100%;accent-color:var(--ink);margin:6px 0 14px}
.mbody .wout{font-family:"Fraunces",Georgia,serif;font-variation-settings:"opsz" 72,"wght" 580;font-size:1.6rem;margin:0}
.mbody .wout span{font-family:Inter,system-ui,sans-serif;font-size:0.95rem;color:var(--mute);font-variation-settings:normal}
.ruler{height:22px;position:relative;border-bottom:1px solid var(--ink);margin:0 0 48px}
.ruler span{position:absolute;bottom:0;width:1px;height:7px;background:var(--ink)}
.ruler span.t{height:16px}
@media (max-width:760px){.fx-in{grid-template-columns:1fr}.fx-in>div+div{border-left:0;border-top:1px solid var(--rule)}}
