
:root{
  color-scheme:light dark;
  --bg:#f7f6f3;--alt:#eeede8;--fg:#161615;--muted:#585750;--line:#d7d5cc;
  --accent:#0a6a5c;--on-accent:#fff;--amber:#8a5300;
  --m-body:#fff;--m-sub:#f0a3ac;
  --font:Pretendard,"Apple SD Gothic Neo","Noto Sans KR","Malgun Gothic",system-ui,-apple-system,"Segoe UI",sans-serif;
  --r:8px;--pad:clamp(1.25rem,4vw,2.5rem);--sec:clamp(4rem,8vw,7rem);
}
@media (prefers-color-scheme:dark){
:root{--bg:#121211;--alt:#191918;--fg:#ecebe6;--muted:#a5a49b;--line:#36352f;
    --accent:#5fd0ba;--on-accent:#0b1512;--amber:#e3a550;
    --m-body:#2a2c29;--m-sub:#e58b9a}
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--fg);font:400 1.0625rem/1.75 var(--font);word-break:keep-all;overflow-wrap:anywhere}
.wrap{max-width:74rem;margin:0 auto;padding:0 var(--pad)}
a{color:var(--accent);text-underline-offset:.2em;text-decoration-thickness:1px}
:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.skip{position:absolute;left:-999px;top:0;background:var(--bg);color:var(--fg);padding:.5rem 1rem;z-index:20}
.skip:focus{left:0}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.ic{width:.75em;height:.75em;flex:none}
p,ul,ol,dl{margin:0 0 1rem}
h1,h2,h3{margin:0;line-height:1.25}
.t{max-width:38rem}
.small{color:var(--muted);font-size:.875rem}
.muted{color:var(--muted)}
.fg{color:var(--fg)}
.mb3{margin-bottom:3rem}
/* header */
.top{position:sticky;top:0;z-index:10;background:var(--bg);border-bottom:1px solid var(--line)}
.top .wrap{display:flex;align-items:center;gap:1.5rem;height:3.5rem}
.brand{font-weight:800;letter-spacing:-.03em;color:var(--fg);text-decoration:none;font-size:1.125rem;margin-right:auto}
.top nav{display:flex;gap:1.5rem;font-size:.9375rem}
.top nav a{color:var(--muted);text-decoration:none}
.top nav a:hover{color:var(--fg);text-decoration:underline}
.btn{display:inline-block;background:var(--accent);color:var(--on-accent);font-weight:700;text-decoration:none;padding:.625rem 1.125rem;border-radius:var(--r);font-size:.9375rem;line-height:1.4}
.btn:hover{text-decoration:underline}
.btn.lg{padding:.875rem 1.5rem;font-size:1.0625rem}
:focus-visible.btn{outline-color:var(--fg)}
/* hero */
.hero{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(2rem,4vw,3.5rem);align-items:center;padding-block:clamp(2.5rem,5vw,5rem)}
h1{font-size:clamp(2.125rem,1rem + 3.2vw,3.375rem);font-weight:400;letter-spacing:-.045em;line-height:1.12}
h1 span{display:block;text-wrap:balance}
h1 strong{display:block;font-weight:800;text-wrap:balance}
.yrs{margin:1.5rem 0 0;font-size:clamp(1.375rem,1rem + 1.6vw,2rem);font-weight:500;letter-spacing:-.03em;line-height:1.3}
.yrs b{font-weight:800;color:var(--accent)}
.lead{font-size:1.1875rem;color:var(--muted);margin:1.25rem 0 2rem;max-width:32rem}
.cta{margin:0}
.stat-line{display:flex;flex-wrap:wrap;gap:.375rem 1.25rem;margin:0;font-size:.9375rem;color:var(--muted)}
.stat-line span{display:inline-flex;align-items:center;gap:.5rem}
.done{color:var(--accent)}
.part{color:var(--amber)}
.none{color:var(--muted)}
/* mockup frames: the only shadow in the page */
.frame{border:1px solid var(--line);border-radius:var(--r);background:var(--bg);overflow:hidden;box-shadow:0 24px 48px -28px rgba(0,0,0,.45)}
.frame .bar{display:flex;align-items:center;gap:.5rem;height:2rem;padding:0 .875rem;border-bottom:1px solid var(--line);background:var(--alt);font-size:.75rem;color:var(--muted);white-space:nowrap}
.frame img,.frame video{display:block;width:100%;height:auto}
/* mascot: one stroke weight, accent + neutral + one sub color */
.mascot{display:block;height:auto;max-width:100%;overflow:visible}
:is(symbol,defs) .s,:is(symbol,defs) .sb,:is(symbol,defs) .sa,:is(symbol,defs) .sk{stroke:var(--fg);stroke-width:6;stroke-linecap:round;stroke-linejoin:round}
:is(symbol,defs) .s,:is(symbol,defs) .sc{fill:none}
:is(symbol,defs) .sb{fill:var(--m-body)}
:is(symbol,defs) .sa{fill:var(--accent)}
:is(symbol,defs) .sk{fill:var(--fg)}
:is(symbol,defs) .sc{stroke:var(--accent);stroke-width:6;stroke-linecap:round;stroke-linejoin:round}
:is(symbol,defs) .fi{fill:var(--fg)}
:is(symbol,defs) .fo{fill:var(--on-accent)}
:is(symbol,defs) .fc{fill:var(--m-sub)}
:is(symbol,defs) .eye{transform-box:fill-box;transform-origin:center;animation:blink 5s infinite}
@keyframes blink{0%,93%,100%{transform:scaleY(1)}96.5%{transform:scaleY(.1)}}
.hero-m{justify-self:center;width:min(100%,30rem)}
.cap-m{justify-self:end}
.foot{display:flex;align-items:center;gap:1rem}
.foot-m{flex:none}
/* 01 skills */
.cap-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1rem 2rem;align-items:end;margin-bottom:3.5rem}
.cap-head p{max-width:34rem;margin:1rem 0 0;color:var(--muted)}
.flow{list-style:none;display:flex;flex-wrap:wrap;gap:.5rem 0;padding:0}
.flow li{padding:.5rem .875rem;border:1px solid var(--fg);border-left-width:0;font-size:.9375rem;font-weight:600}
.flow li:first-child{border-left-width:1px}
.flow li:not(:last-child)::after{content:"→";content:"→" / "";margin-left:.75rem;color:var(--accent)}
.dg{width:100%;max-width:24rem;height:auto}
.dg text{font:600 12.5px var(--font);fill:var(--fg)}
.dg .lb{font-weight:700;fill:var(--accent)}
.dg rect,.dg .ar{fill:none;stroke-width:2}
.dg .old{stroke:var(--muted);stroke-dasharray:5 4}
.dg .new{stroke:var(--accent)}
.dg .ar{stroke:var(--accent);stroke-linecap:round;stroke-linejoin:round}
/* 02 works list: one block per case */
.works{list-style:none;margin:0 0 1.5rem;padding:0;border-top:2px solid var(--fg)}
.work{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:1.5rem clamp(2rem,5vw,4rem);align-items:center;padding-block:2rem;border-bottom:1px solid var(--line)}
.work .thumb{display:block;text-decoration:none}
.work h3{font-size:clamp(1.75rem,1.2rem + 2vw,2.5rem);letter-spacing:-.04em}
.work h3 a{color:var(--fg);text-decoration:none}
.work h3 a:hover{color:var(--accent);text-decoration:underline}
.work .one{margin:.75rem 0 1.25rem;color:var(--muted)}
.areas{margin:0 0 1.25rem}
.areas .k{display:block;margin-bottom:.5rem;font-size:.75rem;font-weight:700;letter-spacing:.1em;color:var(--muted)}
.chips{list-style:none;display:flex;flex-wrap:wrap;gap:.5rem;padding:0;margin:0}
.chips li{padding:.25rem .75rem;border:1px solid var(--fg);border-radius:var(--r);font-size:.875rem;font-weight:600}
.work .stat-line{margin:0 0 1rem}
.work .links{display:flex;flex-wrap:wrap;gap:0 1.5rem;margin:0}
.work .links a{display:inline-block;padding:.5rem 0;font-weight:600}
.band{padding-block:var(--sec)}
.band.alt{background:var(--alt)}
/* section labels */
.label{display:flex;align-items:baseline;gap:.875rem;margin:0 0 1.25rem}
.label b{font-size:clamp(2.5rem,1.5rem + 3.5vw,4.5rem);font-weight:800;letter-spacing:-.05em;line-height:1;color:var(--accent);font-variant-numeric:tabular-nums}
.label span{font-size:.8125rem;font-weight:700;letter-spacing:.14em;color:var(--muted)}
h2{font-size:clamp(1.75rem,1.2rem + 2vw,2.625rem);font-weight:800;letter-spacing:-.035em}
h3{font-size:1.125rem;font-weight:700;letter-spacing:-.01em}
section{scroll-margin-top:4rem}
.note{display:flex;gap:1rem;align-items:flex-start;margin:0 0 2rem;padding:1rem 1.25rem;border:1px solid var(--line);border-left:4px solid var(--amber);border-radius:var(--r);background:var(--bg);max-width:48rem}
.note .ic{width:1.125rem;height:1.125rem;margin-top:.3rem;color:var(--amber)}
.note p{margin:0}
.note strong{display:block}
.note span{color:var(--muted);font-size:.9375rem}
figure{margin:0}
figcaption{color:var(--muted);font-size:.875rem;margin-top:.75rem;max-width:44rem}
.video{margin:0 0 4rem}
.video video{background:#000;aspect-ratio:16/9}
.gal-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem 2rem;margin-bottom:1rem}
.gal-head h3{font-size:1.375rem}
.gal-head p{margin:0}
.gal{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.75rem}
.gal input{position:absolute;opacity:0;width:1px;height:1px}
.gal .stage{grid-column:1/-1;grid-row:1}
.gal .stage figure{display:none}
.gal .stage a{display:block}
.gal .thumbs{display:contents}
.gal label{cursor:pointer;display:block;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:var(--bg)}
.gal label img{opacity:.6}
.gal label:hover img{opacity:1}
.gal label img{display:block;width:100%;height:auto}
.gal label span{display:block;padding:.375rem .625rem;font-size:.8125rem;line-height:1.4;color:var(--fg)}
.gal input:nth-of-type(1):checked~.stage figure:nth-child(1),.gal input:nth-of-type(2):checked~.stage figure:nth-child(2),.gal input:nth-of-type(3):checked~.stage figure:nth-child(3),.gal input:nth-of-type(4):checked~.stage figure:nth-child(4),.gal input:nth-of-type(5):checked~.stage figure:nth-child(5){display:block}
.gal input:nth-of-type(1):checked~.thumbs label:nth-child(1),.gal input:nth-of-type(2):checked~.thumbs label:nth-child(2),.gal input:nth-of-type(3):checked~.thumbs label:nth-child(3),.gal input:nth-of-type(4):checked~.thumbs label:nth-child(4),.gal input:nth-of-type(5):checked~.thumbs label:nth-child(5){border-color:var(--accent);outline:2px solid var(--accent)}
.gal input:nth-of-type(1):checked~.thumbs label:nth-child(1) img,.gal input:nth-of-type(2):checked~.thumbs label:nth-child(2) img,.gal input:nth-of-type(3):checked~.thumbs label:nth-child(3) img,.gal input:nth-of-type(4):checked~.thumbs label:nth-child(4) img,.gal input:nth-of-type(5):checked~.thumbs label:nth-child(5) img{opacity:1}
.gal input:nth-of-type(1):focus-visible~.thumbs label:nth-child(1),.gal input:nth-of-type(2):focus-visible~.thumbs label:nth-child(2),.gal input:nth-of-type(3):focus-visible~.thumbs label:nth-child(3),.gal input:nth-of-type(4):focus-visible~.thumbs label:nth-child(4),.gal input:nth-of-type(5):focus-visible~.thumbs label:nth-child(5){outline:4px solid var(--fg);outline-offset:2px}
.gal.g3{grid-template-columns:repeat(3,minmax(0,1fr))}
.crumb a,footer a{display:inline-block;padding:.375rem 0}
/* 02 scope */
.split{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:2rem clamp(2rem,6vw,5rem);align-items:start}
.side{position:sticky;top:5.5rem}
.side h2{margin-bottom:1.25rem}
.side p{color:var(--muted);max-width:22rem}
.legend{display:flex;flex-direction:column;gap:.5rem;margin:1.5rem 0 0;padding:1rem 0 0;border-top:1px solid var(--line);font-size:.9375rem}
.legend span{display:flex;align-items:center;gap:.625rem}
.legend b{margin-left:auto;font-variant-numeric:tabular-nums}
table{width:100%;border-collapse:collapse}
caption{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
th,td{padding:.9375rem 1rem .9375rem 0;text-align:left;vertical-align:top;font-weight:400;border-top:1px solid var(--line)}
thead th{border-top:0;border-bottom:1px solid var(--fg);color:var(--muted);font-size:.8125rem;font-weight:700;letter-spacing:.06em;padding-block:.5rem}
tbody th{font-weight:600;width:44%}
table.kv tbody th{width:28%}
tbody tr:last-child>*{border-bottom:1px solid var(--fg)}
td.st{white-space:nowrap;font-weight:700;font-size:.9375rem}
td.st .ic{margin-right:.5rem;vertical-align:-.0625em}
td.nt{color:var(--muted);font-size:.875rem}
tr.hl>*{background:var(--alt)}
tr.hl th{padding-left:.75rem}
/* 03 process */
.tl{list-style:none;padding:0;margin:0 0 4rem;display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
.tl li{position:relative;padding:2rem 2rem 0 0;border-top:2px solid var(--fg)}
.tl li::before{content:"";position:absolute;top:-7px;left:0;width:12px;height:12px;background:var(--accent)}
.tl .n{display:block;font-size:2.25rem;font-weight:800;letter-spacing:-.05em;line-height:1;color:var(--muted);font-variant-numeric:tabular-nums;margin-bottom:1rem}
.tl h3{margin-bottom:.25rem}
.tl p{font-size:.9375rem;color:var(--muted)}
/* compact process on home */
#process{padding-block:clamp(2.5rem,5vw,4rem)}
#process .label b{font-size:1.5rem}
#process h2{font-size:1.5rem;margin-bottom:2rem}
#process .tl .n{font-size:1.5rem;margin-bottom:.5rem}
/* 04 contact */
.contact{padding-block:var(--sec);border-top:1px solid var(--line)}
.mail-big{display:block;margin:0 0 1.5rem;font-size:clamp(1.75rem,.6rem + 5.6vw,4.5rem);font-weight:800;letter-spacing:-.045em;line-height:1.1;color:var(--fg);text-decoration-color:var(--accent);text-decoration-thickness:3px;text-underline-offset:.15em}
.mail-big:hover{color:var(--accent)}
footer{border-top:1px solid var(--line);padding:1.5rem 0 3rem;color:var(--muted);font-size:.875rem}
footer p{margin:0}
/* case detail page */
.nb{white-space:nowrap;font-style:normal}
.crumb{margin:0 0 1.5rem;font-size:.9375rem}
.page-head{padding-block:clamp(2rem,4vw,3.25rem) 0}
.ph{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1.5rem 3rem;align-items:center}
.ph-m{width:clamp(11rem,22vw,18rem)}
.ph .areas{margin:1.5rem 0 0}
.page-head h1{font-weight:800;font-size:clamp(2.25rem,1rem + 3.6vw,3.75rem);margin:1rem 0 1.5rem}
.page-head .lead{max-width:40rem}
.facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin:3rem 0 0;border-top:1px solid var(--fg)}
.facts div{padding:1rem 1.25rem 1rem 0}
.facts dt{font-size:.8125rem;font-weight:700;letter-spacing:.08em;color:var(--muted)}
.facts dd{margin:.25rem 0 0;font-weight:500;font-size:.9375rem;line-height:1.6}
.ch{padding-block:var(--sec)}
.ch + .ch{border-top:1px solid var(--line)}
.ch .split{margin-bottom:3rem}
.ch h3.sub{margin:3rem 0 1rem;font-size:1.375rem}
.mt4{margin-top:4rem}
.pubs{display:grid;grid-template-columns:minmax(0,8fr) minmax(0,4fr);gap:2rem clamp(1.5rem,3vw,2.5rem);align-items:start}
.pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.state{display:flex;align-items:center;gap:.875rem;margin:0 0 1rem;font-size:clamp(1.75rem,1.2rem + 2vw,2.625rem);font-weight:800;letter-spacing:-.04em;color:var(--amber)}
.state .ic{width:.8em;height:.8em}
.checks li.no{display:flex;gap:.875rem;align-items:baseline}
.checks .ic{transform:translateY(.05em)}
.checks{list-style:none;padding:0;margin:0 0 1rem;max-width:38rem}
.checks li{padding:.875rem 0;border-top:1px solid var(--line)}
.checks li:last-child{border-bottom:1px solid var(--line)}
@media (max-width:1000px){
.hero{grid-template-columns:minmax(0,1fr)}
.hero-m{width:min(100%,22rem);justify-self:start}
.work{grid-template-columns:minmax(0,1fr)}
.split,.pubs{grid-template-columns:minmax(0,1fr)}
.pair{max-width:30rem}
.side{position:static}
.tl{grid-template-columns:repeat(2,minmax(0,1fr));gap:2.5rem 0}
.facts{grid-template-columns:repeat(2,minmax(0,1fr))}
.ph{grid-template-columns:minmax(0,1fr)}
.ph-m{order:-1;width:9rem}
}
@media (max-width:640px){
.hero{gap:1.5rem;padding-top:1.75rem}
.hero .lead{font-size:1.0625rem}
.hero-m{width:10rem;order:-1;justify-self:start}
.cap-m{width:7.5rem;height:auto}
.cap-head{grid-template-columns:minmax(0,1fr)}
.cap-head>svg{order:-1;justify-self:start}
.top nav{display:none}
.gal{grid-template-columns:repeat(5,minmax(0,1fr));gap:.5rem}
.gal label span{display:none}
.tl{grid-template-columns:minmax(0,1fr);gap:0;margin-left:7px}
.tl li{border-top:0;border-left:2px solid var(--fg);padding:0 0 2.25rem 1.75rem}
.tl li::before{top:.25rem;left:-7px}
.tl li:last-child{padding-bottom:0}
.tl .n{font-size:1.75rem;margin-bottom:.5rem}
table,tbody,tr,th,td{display:block;width:auto}
thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
tbody tr{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:.125rem 1rem;padding:.875rem 0;border-top:1px solid var(--line)}
tbody tr:last-child{border-bottom:1px solid var(--fg)}
th,td,tbody tr:last-child>*{border:0;padding:0;background:none}
tbody th{width:auto}
td.nt{grid-column:1/-1}
td.nt:empty{display:none}
tr.hl{background:var(--alt);padding-inline:.75rem}
tr.hl th{padding-left:0}
.facts{grid-template-columns:minmax(0,1fr)}
.facts div{border-bottom:1px solid var(--line)}
.btn.lg{width:100%;text-align:center}
}
@media (prefers-reduced-motion:reduce){
*,*::before,*::after{animation:none!important;transition:none!important}
}
#arch .arch-lead{max-width:36rem;color:var(--muted);margin:1rem 0 0}
.lanes{display:grid;gap:1.5rem;margin:3rem 0 4rem}
.lane{display:grid;grid-template-columns:11rem minmax(0,1fr);gap:.75rem 2rem;align-items:center;border-top:2px solid var(--fg);padding-top:1rem}
.lane h3{font-size:1.125rem}
.lane h3 small{display:block;font-size:.8125rem;font-weight:600;color:var(--muted);letter-spacing:0;margin-top:.25rem}
.chain{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2.25rem}
.chain li{position:relative;border:2px solid var(--fg);border-radius:var(--r);padding:.875rem 1rem;background:var(--bg);display:flex;flex-direction:column;gap:.25rem}
.chain li+li::before{content:"";position:absolute;left:-1.85rem;top:50%;width:1.5rem;border-top:2px solid var(--accent)}
.chain li+li::after{content:"";position:absolute;left:-.55rem;top:calc(50% - 5px);border:5px solid transparent;border-left:7px solid var(--accent);border-right:0}
.chain b{font-weight:700;font-size:1rem}
.chain span{font-size:.875rem;color:var(--muted);line-height:1.5}
.chain .pend{border-style:dashed;border-color:var(--amber)}
.chain .pend span{color:var(--amber);font-weight:600}
.decisions{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2.5rem clamp(2rem,4vw,3.5rem);counter-reset:d}
.decisions li{counter-increment:d;border-top:1px solid var(--line);padding-top:1rem}
.decisions h3{font-size:1.125rem;margin:0 0 .5rem}
.decisions h3::before{content:counter(d,decimal-leading-zero);color:var(--accent);font-weight:800;margin-right:.75rem;font-variant-numeric:tabular-nums}
.decisions p{margin:0;color:var(--muted);font-size:.9375rem;line-height:1.7}
@media (max-width:52rem){
.lane{grid-template-columns:1fr}
.chain{grid-template-columns:1fr;gap:1.75rem}
.chain li+li::before{left:50%;top:-1.5rem;width:0;height:1.1rem;border-top:0;border-left:2px solid var(--accent)}
.chain li+li::after{left:calc(50% - 5px);top:-.5rem;border:5px solid transparent;border-top:7px solid var(--accent);border-bottom:0}
.decisions{grid-template-columns:1fr}
}
.phones{display:flex;gap:.75rem;justify-content:center;align-items:flex-start}
.phones img{width:calc(33.333% - .5rem);height:auto;border:1px solid var(--line);border-radius:14px}
/* v6: demand-led home */
.cta{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 1.5rem}
.ghost{display:inline-block;padding:.75rem 0;font-weight:700;color:var(--fg);text-decoration-color:var(--accent);text-decoration-thickness:2px}
.pubs-strip{list-style:none;margin:2.25rem 0 0;padding:0;border-top:1px solid var(--line)}
.pubs-strip li{display:grid;grid-template-columns:2.5rem auto minmax(0,1fr);gap:.5rem 1rem;align-items:baseline;padding:.75rem 0;border-bottom:1px solid var(--line);font-size:.9375rem}
.pubs-strip .k{font-size:.75rem;font-weight:800;letter-spacing:.1em;color:var(--accent)}
.pubs-strip a{font-weight:700;color:var(--fg)}
.pubs-strip span:last-child{color:var(--muted)}
.legend3{list-style:none;margin:0 0 3rem;padding:1rem 0;display:flex;flex-wrap:wrap;gap:.5rem 2.5rem;border-block:1px solid var(--line);font-size:.9375rem}
.legend3 li{display:flex;align-items:baseline;gap:.5rem}
.legend3 span{color:var(--muted)}
.tag{display:inline-flex;align-items:center;gap:.5rem;margin:0;font-size:.8125rem;font-weight:800;letter-spacing:.02em}
.tag span{font-weight:600;color:var(--muted);margin-left:.25rem}
.tag.pub,.legend3 .pub .ic{color:var(--accent)}
.tag.priv,.legend3 .priv .ic{color:var(--fg)}
.tag.none,.legend3 .none .ic{color:var(--amber)}
.legend3 .ic,.tag .ic{width:.8em;height:.8em}
.feat{display:grid;gap:1.5rem clamp(2rem,5vw,4.5rem);align-items:center;padding-block:2.5rem;border-top:2px solid var(--fg)}
.feat>div>*{margin:0 0 1rem}
.feat>div>:last-child{margin-bottom:0}
.feat h3{font-size:clamp(1.75rem,1.2rem + 2vw,2.5rem);letter-spacing:-.04em}
.feat .links{margin:0}
.feat .links a{display:inline-block;padding:.375rem 0;font-weight:700}
.gap{display:flex;gap:.625rem;align-items:baseline;color:var(--muted);font-size:.9375rem}
.gap .ic{color:var(--amber);width:.75em;height:.75em}
.f-shop{grid-template-columns:minmax(0,7fr) minmax(0,5fr)}
.f-admin{grid-template-columns:minmax(0,6fr) minmax(0,5fr)}
.f-app{grid-template-columns:minmax(0,5fr) minmax(0,6fr);align-items:start}
.nums{display:grid;grid-template-columns:repeat(3,auto);gap:1rem 2rem;margin:0;justify-content:start}
.nums dt{font-size:.8125rem;font-weight:700;letter-spacing:.06em;color:var(--muted)}
.nums dd{margin:0;font-size:clamp(3rem,1rem + 6vw,5.5rem);font-weight:800;letter-spacing:-.05em;line-height:1;font-variant-numeric:tabular-nums}
.nums small{font-size:.3em;font-weight:600;letter-spacing:0;margin-left:.15em;color:var(--accent)}
.stack{margin:0;border-top:1px solid var(--fg)}
.stack>div{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding:.875rem 0;border-bottom:1px solid var(--line)}
.stack dt{font-size:.9375rem;font-weight:600;color:var(--muted)}
.stack dd{margin:0;font-size:clamp(1.75rem,1rem + 2.4vw,2.75rem);font-weight:800;letter-spacing:-.04em;line-height:1.1;font-variant-numeric:tabular-nums}
.stack small{font-size:.45em;font-weight:600;letter-spacing:0;margin-left:.2em;color:var(--accent)}
.note-s{margin:.75rem 0 0;color:var(--muted);font-size:.8125rem}
.ledger{list-style:none;margin:0;padding:0;border-top:2px solid var(--fg)}
.ledger li{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr) minmax(0,3fr);gap:.75rem clamp(1.5rem,3vw,2.5rem);align-items:start;padding:1.5rem 0;border-bottom:1px solid var(--line)}
.ledger h3{font-size:1.25rem;letter-spacing:-.03em}
.ledger p{margin:0 0 .5rem;color:var(--muted);font-size:.9375rem;line-height:1.7}
.ledger .scale{color:var(--fg);font-weight:600;font-size:.875rem}
.ledger .tag{justify-self:end;text-align:right}
.ledger .dg{margin-top:.75rem}
.priv-scale{margin:3rem 0 0;border-top:1px solid var(--fg)}
.priv-scale summary{cursor:pointer;padding:1rem 0;font-weight:700}
.priv-scale>p{max-width:38rem;color:var(--muted);font-size:.9375rem}
.qa{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2rem clamp(2rem,4vw,3.5rem);margin:3.5rem 0 0}
.qa dt{font-weight:700;margin-bottom:.5rem}
.qa dd{margin:0;color:var(--muted);font-size:.9375rem}
#process .tl{margin-bottom:0}
#work{padding-bottom:clamp(3rem,6vw,5rem)}
@media (max-width:1000px){
  .feat,.f-shop,.f-admin,.f-app{grid-template-columns:minmax(0,1fr)}
  .f-admin .frame{order:2}
  .ledger li{grid-template-columns:minmax(0,1fr)}
  .ledger .tag{justify-self:start;text-align:left;order:2}
  .ledger h3{order:1}
  .ledger li>div{order:3}
  .qa{grid-template-columns:minmax(0,1fr);gap:1.5rem}
}
@media (max-width:640px){
  .pubs-strip li{grid-template-columns:2.5rem minmax(0,1fr)}
  .pubs-strip span:last-child{grid-column:2}
  .nums{grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem 1rem}
  .nums dd{font-size:clamp(2.25rem,12vw,3rem)}
  .legend3{flex-direction:column}
  .cta .btn.lg{width:100%}
}

.arch-fig{margin:2rem 0}.arch-fig img{display:block;width:100%;height:auto;border:1px solid var(--line);border-radius:var(--r)}.arch-fig figcaption{margin-top:.5rem}
