@font-face{font-family:Newsreader Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(../media/newsreader-vietnamese-opsz-normal.08j2b6pxs_rp6.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Newsreader Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(../media/newsreader-latin-ext-opsz-normal.0w2l6u35x0wai.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Newsreader Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(../media/newsreader-latin-opsz-normal.0dc79pquxokce.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(../media/geist-cyrillic-ext-wght-normal.1o60yhwqd7ueg.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(../media/geist-cyrillic-wght-normal.0n0q_nh7u2mrm.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(../media/geist-vietnamese-wght-normal.0nt7ek_nfk5a4.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(../media/geist-latin-ext-wght-normal.39q78sztp1ci5.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(../media/geist-latin-wght-normal.20f3xrkj613ah.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:400;src:url(../media/geist-mono-cyrillic-ext-400-normal.1_3w-6xrxnic8.woff2)format("woff2"),url(../media/geist-mono-cyrillic-ext-400-normal.28zojgogwadbn.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:400;src:url(../media/geist-mono-cyrillic-400-normal.0w64r7z8-ih-_.woff2)format("woff2"),url(../media/geist-mono-cyrillic-400-normal.02c-zap_5oput.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:400;src:url(../media/geist-mono-symbols2-400-normal.3rf535oh7emi7.woff2)format("woff2"),url(../media/geist-mono-symbols2-400-normal.3q0ydwitqs4g1.woff)format("woff");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:400;src:url(../media/geist-mono-vietnamese-400-normal.2-w98qwfhss3t.woff2)format("woff2"),url(../media/geist-mono-vietnamese-400-normal.29k50zjumvkn0.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:400;src:url(../media/geist-mono-latin-ext-400-normal.06e95wwtohjhy.woff2)format("woff2"),url(../media/geist-mono-latin-ext-400-normal.3up5nfrss5o9p.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:400;src:url(../media/geist-mono-latin-400-normal.1pils9mz99gi8.woff2)format("woff2"),url(../media/geist-mono-latin-400-normal.3hdm2x6oajrio.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
:root{--page:#0b0b0b;--surface:#111;--surface-soft:#181818;--text:#ececec;--soft:#b0b0b0;--muted:#7f7f7f;--faint:#7f7f7f;--line:#222;--line-strong:#3a3a3a;--accent:#ececec;--accent-soft:#1c1c1c;--shadow:#0008;--success:#9fd4b0;--danger:#f0a8a0;--serif:"Newsreader Variable", "Iowan Old Style", Georgia, serif;--sans:"Geist Variable", "Helvetica Neue", Arial, system-ui, sans-serif;--mono:"Geist Mono", ui-monospace, "SF Mono", Menlo, monospace;--ease:cubic-bezier(.2, .7, .2, 1);--gutter:max(20px, env(safe-area-inset-left,0px));--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-synthesis:none}*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--page);scroll-padding-top:76px}body{background:var(--page);color:var(--text);font:400 16px/1.6 var(--sans);-webkit-font-smoothing:antialiased;margin:0}::selection{background:var(--text);color:var(--page)}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:0}button:disabled{cursor:wait;opacity:.6}a,button{touch-action:manipulation;-webkit-tap-highlight-color:transparent}button svg,a svg{flex-shrink:0}:focus-visible{outline:1px solid var(--text);outline-offset:4px;border-radius:2px}img,video{max-width:100%;display:block}h1,h2,h3,h4,p,figure{margin-top:0}h1,h2,h3{font-family:var(--serif);letter-spacing:-.015em;overflow-wrap:break-word;font-weight:300}h1{letter-spacing:-.025em;margin-bottom:24px;font-size:clamp(2.6rem,7vw,4.75rem);line-height:1}h2{margin-bottom:28px;font-size:clamp(1.8rem,3.4vw,2.4rem);line-height:1.1}h3{margin-bottom:8px;font-size:1.35rem;font-weight:400;line-height:1.2}p{color:var(--soft)}ul{padding-left:20px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:200;background:var(--text);color:var(--page);border-radius:999px;padding:12px 16px;font-size:.88rem;position:fixed;top:-100px;left:20px}.skip-link:focus{top:16px}.page-shell{flex-direction:column;min-height:100vh;display:flex;position:relative}.wrap{z-index:1;max-width:1000px;margin:0 auto;position:relative}.site-main{padding-inline:var(--gutter);flex:1}.dots{pointer-events:none;z-index:0;width:100%;height:100%;position:fixed;inset:0}.site-nav{z-index:10;padding-inline:var(--gutter);transition:background .4s var(--ease);position:sticky;top:0}.site-nav.scrolled{-webkit-backdrop-filter:blur(10px);background:#0b0b0bdb}.site-nav .wrap{justify-content:space-between;align-items:center;gap:16px;padding-block:18px;display:flex}.mark{font-family:var(--serif);white-space:nowrap;font-size:1.15rem}.site-nav ul{gap:26px;margin:0;padding:0;list-style:none;display:flex}.site-nav ul a{color:var(--muted);transition:color .3s var(--ease);padding-block:4px;font-size:.88rem;position:relative}.site-nav ul a:after{content:"";background:var(--text);transform-origin:0;height:1px;transition:transform .45s var(--ease);position:absolute;bottom:-1px;left:0;right:0;transform:scaleX(0)}.site-nav ul a:hover,.site-nav ul a.active{color:var(--text)}.site-nav ul a.active:after,.site-nav ul a:hover:after{transform:scaleX(1)}.eyebrow{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0 0 16px;font-size:.74rem;line-height:1.6}.eyebrow>span:empty{display:none}.statement{font-family:var(--serif);color:var(--soft);text-wrap:pretty;max-width:30ch;margin:0 0 32px;font-size:clamp(1.3rem,2.5vw,1.7rem);font-weight:300;line-height:1.35}.statement strong{color:var(--text);font-weight:500}.links{flex-wrap:wrap;gap:24px;display:flex}.ext,.back-link,.case-links a,.text-link{color:var(--text);transition:color .3s var(--ease);align-items:center;gap:6px;font-size:.92rem;display:inline-flex}.ext svg{width:10px;height:10px;color:var(--muted);transition:transform .35s var(--ease), color .3s var(--ease)}.ext:hover svg{color:var(--text);transform:translate(2px,-2px)}.ext-download:hover svg{transform:translateY(2px)}.back-link{color:var(--muted);font-size:.88rem}.back-link:hover{color:var(--text)}.rise{animation:rise .9s var(--ease) both;animation-delay:var(--d,0s)}@keyframes rise{0%{opacity:.25;transform:translateY(12px)}to{opacity:1;transform:none}}.btn,.button{font:500 .88rem/1.3 var(--sans);color:var(--page);background:var(--text);border:1px solid var(--text);cursor:pointer;transition:background .3s var(--ease), color .3s var(--ease), border-color .3s var(--ease);border-radius:999px;justify-content:center;align-items:center;gap:10px;padding:11px 20px;display:inline-flex}.btn:hover,.button:hover{color:var(--text);background:0 0}.button-secondary{color:var(--text);border-color:var(--line-strong);background:0 0}.button-secondary:hover{border-color:var(--text)}.button-danger{color:var(--danger);background:0 0;border-color:#7a3d37}.button-danger:hover{color:var(--page);background:var(--danger);border-color:var(--danger)}.hero{max-width:760px;padding-block:88px 96px}.hero h1{letter-spacing:-.025em;margin:20px 0 26px;font-size:clamp(3rem,8.5vw,6rem);line-height:.98}.hero .eyebrow{margin:0}.facts{color:var(--muted);flex-wrap:wrap;gap:8px 28px;margin:0 0 28px;font-size:.92rem;display:flex}.facts span{color:var(--text)}.block{padding-block:56px}.index{margin:0;padding:0;list-style:none}.row{border-top:1px solid var(--line);transition:opacity .45s var(--ease);grid-template-columns:1fr 200px;gap:32px;padding:30px 0;display:grid}.row>*{min-width:0}@media (hover:hover) and (pointer:fine){.index:hover .row:not(:hover){opacity:.4}.row:hover h3:after,.row:hover h2:after{transform:scaleX(1)}}.row h3,.project-row h2{font-family:var(--serif);letter-spacing:-.01em;margin:0 0 4px;font-size:clamp(1.45rem,2.5vw,1.85rem);font-weight:400;line-height:1.15;display:inline-block;position:relative}.row h3:after,.project-row h2:after{content:"";background:var(--text);transform-origin:0;height:1px;transition:transform .55s var(--ease);position:absolute;bottom:-2px;left:0;right:0;transform:scaleX(0)}.role{color:var(--muted);margin:0 0 12px;font-size:.88rem}.desc{color:var(--soft);max-width:56ch;margin:0 0 12px}.stack{font-family:var(--mono);color:var(--muted);font-size:.74rem}.row .links{gap:20px;margin-top:14px}.row .ext{font-size:.85rem}.figure{text-align:right;padding-top:4px}.figure b{font-family:var(--serif);letter-spacing:-.02em;font-variant-numeric:lining-nums;font-size:clamp(2rem,3.4vw,2.6rem);font-weight:300;line-height:1;display:block}.figure b.word{font-size:1.45rem;line-height:1.2}.figure span{color:var(--muted);margin-top:8px;font-size:.84rem;line-height:1.4;display:block}.index-more{border-top:1px solid var(--line);margin:0;padding-top:24px}.activity-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 24px;margin-bottom:20px;display:flex}.activity-total{color:var(--muted);margin:0}.activity-total span{font-family:var(--serif);letter-spacing:-.02em;color:var(--text);font-variant-numeric:lining-nums;margin-right:4px;font-size:clamp(1.6rem,3vw,2rem);font-weight:300}.activity-range{display:block}.activity-range select{background:var(--page);cursor:pointer;border-radius:999px;width:auto;min-height:38px;padding:6px 12px;font-size:.88rem}.calendar-scroll{scrollbar-width:thin;margin:0 -2px;padding:4px 2px 6px;overflow-x:auto}.calendar{--cols:repeat(var(--weeks), minmax(0, 1fr));min-width:calc(var(--weeks) * 13px);transition:opacity .3s var(--ease)}.calendar[aria-busy=true]{opacity:.45}.calendar-months{grid-template-columns:var(--cols);height:22px;color:var(--muted);column-gap:3px;font-size:.74rem;display:grid}.calendar-months span{white-space:nowrap;grid-row:1}.calendar-grid{gap:3px;display:grid}.calendar-row{grid-template-columns:var(--cols);column-gap:3px;display:grid}.day{aspect-ratio:1;background:#1a1a1a;border-radius:2px;display:block}.calendar-grid .day[data-date]{cursor:pointer}.day.is-empty{background:0 0}.day.is-future{background:0 0;box-shadow:inset 0 0 0 1px #1f1f1f}.day.level-1{background:#3a3a3a}.day.level-2{background:#666}.day.level-3{background:#a0a0a0}.day.level-4{background:var(--text)}.calendar-grid .day[aria-selected=true],.calendar-grid .day:focus-visible{outline:1px solid var(--text);outline-offset:1px;border-radius:2px}.activity-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 24px;margin-top:14px;display:flex}.activity-detail{color:var(--soft);min-height:1.6em;margin:0;font-size:.88rem}.legend{color:var(--muted);align-items:center;gap:4px;font-size:.74rem;display:flex}.legend .day{width:10px;margin-inline:1px}.legend .day:first-of-type{margin-left:6px}.legend .day:last-of-type{margin-right:6px}.activity-links{color:var(--muted);flex-wrap:wrap;align-items:center;gap:8px 24px;margin-top:20px;font-size:.84rem;display:flex}.xp{gap:22px;margin:0;padding:0;list-style:none;display:grid}.xp li,.creds li{grid-template-columns:150px 1fr;gap:24px;display:grid}.xp li>*,.creds li>*{min-width:0}.when{font-family:var(--mono);color:var(--muted);font-variant-numeric:tabular-nums;transition:color .3s var(--ease);padding-top:3px;font-size:.76rem}.xp li:hover .when{color:var(--text)}.xp h3{font:500 1rem/1.6 var(--sans);letter-spacing:0;margin:0}.xp h3 span{color:var(--muted);font-weight:400}.xp p{color:var(--soft);margin:2px 0 0;font-size:.94rem}.pt{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin-top:2px;font-size:.7rem;display:block}.skills{grid-template-columns:repeat(2,1fr);gap:22px 40px;margin:0;display:grid}.skills div{min-width:0}.skills dt{color:var(--muted);margin-bottom:2px;font-size:.84rem}.skills dd{color:var(--soft);margin:0}.creds{gap:14px;margin:0;padding:0;list-style:none;display:grid}.contact{padding-block:72px 80px}.mail{font-family:var(--serif);letter-spacing:-.02em;-webkit-user-select:all;user-select:all;overflow-wrap:anywhere;margin:0 0 16px;font-size:clamp(1.7rem,6vw,3.6rem);font-weight:300;line-height:1.1;display:block}.contact>p{color:var(--muted);max-width:48ch;margin:0 0 28px}.actions{flex-wrap:wrap;align-items:center;gap:24px;display:flex}.contact-form{gap:18px;max-width:640px;margin-top:64px;display:grid;position:relative}.contact-form h3{margin:0 0 4px;font-size:1.35rem}.form-row{grid-template-columns:1fr 1fr;align-items:start;gap:18px;display:grid}label{min-width:0;color:var(--muted);gap:6px;font-size:.84rem;display:grid}.field-label{align-items:center;gap:6px;display:flex}label small{color:var(--faint);font-size:.75rem}input,textarea,select{border:1px solid var(--line-strong);width:100%;color:var(--text);min-height:46px;transition:border-color .3s var(--ease);background:#0b0b0bb3;border-radius:10px;padding:11px 14px;font-size:.95rem}input:hover,textarea:hover,select:hover{border-color:#555}input:focus,textarea:focus,select:focus{border-color:var(--text);outline:none}input:focus-visible,textarea:focus-visible,select:focus-visible{outline:1px solid var(--text);outline-offset:2px}input[type=checkbox]{width:18px;min-height:18px;accent-color:var(--text);margin:0}textarea{resize:vertical;min-height:140px;line-height:1.6}input::placeholder,textarea::placeholder{color:var(--faint)}.contact-honeypot{opacity:0;pointer-events:none;left:-9999px;position:absolute!important}.form-submit{margin-top:4px}.form-status{border:1px solid var(--line);border-radius:10px;margin:0;padding:12px 14px;font-size:.9rem}.is-error,[role=alert]{color:var(--danger)}.is-success{color:var(--success)}.site-footer{padding:24px var(--gutter) 32px;color:var(--muted);z-index:1;font-size:.82rem;position:relative}.site-footer .wrap{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;gap:12px;padding-top:20px;display:flex}.page-intro{max-width:760px;padding-block:88px 40px}.page-intro .statement{margin-bottom:0}.catalogue-index{padding-bottom:56px}.project-row{padding:0;display:block}.project-link{grid-template-columns:1fr 240px;gap:32px;padding:30px 0;display:grid}.project-link>*{min-width:0}.project-text,.project-text>span{display:block}.project-text .role{margin-bottom:8px}.project-text h2{margin-bottom:10px}.project-thumb{padding-top:4px;display:block}.project-thumb img{aspect-ratio:16/9;object-fit:cover;border:1px solid var(--line);width:100%;height:auto;transition:transform .55s var(--ease);border-radius:6px}.project-row:hover .project-thumb img{transform:scale(1.02)}.case-study{padding-bottom:24px}.case-header{max-width:760px;padding-block:64px 40px}.case-header .back-link{margin-bottom:40px}.case-header h1{overflow-wrap:anywhere;font-size:clamp(2.8rem,7vw,4.75rem)}.case-lede{font-family:var(--serif);color:var(--soft);max-width:40ch;margin-bottom:24px;font-size:clamp(1.25rem,2.3vw,1.55rem);font-weight:300;line-height:1.4}.case-byline{color:var(--muted);flex-wrap:wrap;gap:8px 28px;margin-bottom:20px;font-size:.92rem;display:flex}.case-byline span:first-child{color:var(--text)}.case-links{flex-wrap:wrap;gap:20px;display:flex}.case-links svg{color:var(--muted)}.case-cover{margin:0 0 24px}.case-cover>img{border:1px solid var(--line);border-radius:8px;width:100%;height:auto}figcaption{color:var(--muted);margin-top:10px;font-size:.84rem;line-height:1.5}.case-section{padding-block:56px}.case-section>p:not(.eyebrow){max-width:62ch}.case-section .lead-copy{font-family:var(--serif);max-width:44ch;color:var(--soft);font-size:clamp(1.25rem,2.2vw,1.5rem);font-weight:300;line-height:1.45}.facts-grid{border-top:1px solid var(--line);grid-template-columns:repeat(4,minmax(0,1fr));gap:28px 32px;margin:40px 0 0;padding-top:28px;display:grid}.facts-grid dt{color:var(--muted);margin-bottom:6px;font-size:.84rem}.facts-grid dd{font-family:var(--serif);overflow-wrap:anywhere;margin:0;font-size:clamp(1.4rem,2.4vw,1.8rem);font-weight:300;line-height:1.15}.facts-grid p{color:var(--muted);margin:8px 0 0;font-size:.86rem;line-height:1.5}.principle-grid,.responsibility-grid,.surface-grid,.results-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;margin-top:36px;display:grid}.principle-grid article,.responsibility-grid article,.surface-grid article,.results-list article{border-top:1px solid var(--line);min-width:0;padding-top:20px}.principle-grid p,.responsibility-grid p,.surface-grid p,.results-list p{margin-bottom:0;font-size:.94rem}.principle-icon{color:var(--muted);margin-bottom:14px;display:inline-flex}.case-section h3{font-size:1.3rem}.case-section ul{color:var(--soft);margin:12px 0 0;padding-left:18px;font-size:.94rem}.case-section li{margin-bottom:6px;line-height:1.6}.surface-grid .eyebrow{margin-bottom:10px}.lifecycle{border-top:1px solid var(--line);grid-template-columns:repeat(6,minmax(0,1fr));gap:0;margin:40px 0 0;padding:0;list-style:none;display:grid}.lifecycle>li{min-width:0;padding:20px 16px 0 0}.lifecycle span{color:var(--muted);margin-bottom:12px;display:inline-flex}.lifecycle strong{font-size:.95rem;font-weight:500;display:block}.lifecycle p{color:var(--muted);margin:4px 0 0;font-size:.86rem;line-height:1.45}.media-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-top:36px;display:grid}.media-gallery:empty{display:none}.media-gallery figure{min-width:0;margin:0}.media-gallery img,.media-gallery video{border:1px solid var(--line);background:var(--surface);border-radius:6px;width:100%;height:auto}.image-placeholder{aspect-ratio:16/10;border:1px dashed var(--line-strong);color:var(--muted);font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;background:#ffffff04;border-radius:6px;place-items:center;font-size:.74rem;display:grid}.tag-list{font-family:var(--mono);color:var(--muted);flex-wrap:wrap;gap:4px 14px;margin-top:14px;font-size:.74rem;display:flex}.case-cta{padding-block:72px 56px}.case-cta h2{font-size:clamp(2rem,4.5vw,3rem)}.case-cta>p:not(.eyebrow){color:var(--muted);max-width:48ch;margin-bottom:28px}.preview-banner{border:1px solid var(--line-strong);font-family:var(--mono);color:var(--soft);border-radius:10px;flex-wrap:wrap;justify-content:space-between;gap:8px 16px;margin-top:24px;padding:12px 16px;font-size:.78rem;display:flex}.preview-banner a{color:var(--text);text-underline-offset:3px;text-decoration:underline}.error-panel{max-width:640px;padding-block:120px 96px}.error-panel p:not(.eyebrow){margin-bottom:28px}@media (max-width:820px){.row{grid-template-columns:1fr;gap:0;padding:26px 0}.figure{text-align:left;order:2;margin:2px 0 12px;padding-top:0}.figure b,.figure b.word{font-family:var(--sans);letter-spacing:0;color:var(--text);font-size:.92rem;font-weight:500;display:inline}.figure span{margin:0;font-size:.92rem;display:inline}.row>div:first-child{display:contents}.row h3{order:0}.role{order:1;margin-bottom:0}.desc{order:3}.stack{order:4}.row .links{order:5}.project-row{padding:0}.project-link{grid-template-columns:1fr 160px;gap:20px;padding:26px 0}.facts-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.principle-grid,.responsibility-grid,.surface-grid,.results-list{grid-template-columns:1fr;gap:24px}.lifecycle{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:24px}}@media (max-width:600px){body{font-size:15px}.site-nav .wrap{padding-block:14px}.mark{font-size:1.05rem}.site-nav ul{gap:16px}.site-nav ul a{font-size:.84rem}.site-nav ul li.opt{display:none}.hero,.page-intro{padding-block:48px 56px}.page-intro{padding-bottom:32px}.hero h1{margin:14px 0 20px}.statement{margin-bottom:24px}.block,.case-section{padding-block:40px}h2{margin-bottom:20px}.xp{gap:18px}.xp li,.creds li{grid-template-columns:1fr;gap:2px}.pt{margin:0 0 0 6px;display:inline}.pt:before{content:"· "}.skills{grid-template-columns:1fr;gap:16px}.contact{padding-block:48px 56px}.contact-form{margin-top:48px}.project-link{grid-template-columns:1fr;gap:16px}.project-thumb{order:-1;padding-top:0}.case-header{padding-block:40px 32px}.case-header .back-link{margin-bottom:28px}.lifecycle{grid-template-columns:repeat(2,minmax(0,1fr))}.media-gallery{grid-template-columns:1fr}}@media (max-width:480px){.form-row{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.rise{animation:none}*,:before,:after{transition:none!important}}@media (forced-colors:active){.dots{display:none}.day{forced-color-adjust:none}}
.admin-login-page{background:var(--page);align-content:center;place-items:center;gap:32px;min-height:100vh;padding:40px 24px;display:grid}.admin-login-page>:not(canvas){z-index:1;position:relative}.admin-login-card{border:1px solid var(--line);background:var(--surface);border-radius:14px;width:min(100%,510px);padding:46px}.admin-login-card h1{letter-spacing:-.02em;margin:0;font-size:clamp(42px,7vw,66px);line-height:.95}.admin-login-card>p:not(.eyebrow){color:var(--muted);margin:22px 0 28px;line-height:1.65}.admin-login-form{gap:18px;display:grid}.login-message{padding:20px 0 0}.login-message svg{color:var(--accent)}.login-message h2{margin:18px 0 8px}.login-message p{color:var(--muted);line-height:1.65}.text-button{color:var(--accent);cursor:pointer;background:0 0;border:0;padding:0;font-weight:600}.admin-shell{background:var(--page);grid-template-columns:250px minmax(0,1fr);min-height:100vh;display:grid}.admin-sidebar{border-right:1px solid var(--line);background:var(--surface);flex-direction:column;height:100vh;padding:28px 22px;display:flex;position:sticky;top:0}.admin-sidebar nav{gap:6px;margin-top:46px;display:grid}.admin-sidebar nav a{color:var(--muted);border-radius:5px;align-items:center;gap:11px;padding:11px 12px;font-size:13px;display:flex}.admin-sidebar nav a:hover{color:var(--accent);background:var(--accent-soft)}.admin-identity{border-top:1px solid var(--line);gap:5px;margin-top:auto;padding-top:20px;display:grid}.admin-identity strong{font-size:13px}.admin-identity span{color:var(--muted);font:400 10px var(--mono), monospace;text-overflow:ellipsis;overflow:hidden}.admin-identity small{width:max-content;color:var(--accent);border:1px solid var(--accent);font:500 9px var(--mono), monospace;border-radius:3px;margin-top:5px;padding:3px 6px}.admin-sign-out{color:var(--muted);cursor:pointer;background:0 0;border:0;align-items:center;gap:8px;margin-top:12px;padding:8px 0;font-size:12px;display:flex}.admin-main{min-width:0;padding:54px clamp(24px,5vw,72px) 80px}.admin-page-header{justify-content:space-between;align-items:end;gap:30px;margin-bottom:34px;display:flex}.admin-page-header .eyebrow{margin-bottom:14px}.admin-page-header h1{letter-spacing:-.02em;margin:0;font-size:clamp(38px,5vw,58px);line-height:1}.admin-meta{color:var(--faint);font:400 10px var(--mono), monospace}.admin-stats{border-top:1px solid var(--line);border-left:1px solid var(--line);background:var(--surface);grid-template-columns:repeat(4,1fr);margin-bottom:28px;display:grid}.admin-stats article{border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-height:135px;padding:24px}.admin-stats span{color:var(--muted);font:400 10px var(--mono), monospace;text-transform:uppercase;display:block}.admin-stats strong{letter-spacing:-.02em;margin-top:24px;font-size:34px;display:block}.admin-panel{border:1px solid var(--line);background:var(--surface);margin-bottom:28px;padding:28px}.admin-panel h2{margin:0 0 22px;font-size:19px}.admin-panel-heading{justify-content:space-between;align-items:center;display:flex}.admin-panel-heading a{color:var(--accent);font-size:12px;font-weight:600}.admin-table-wrap{overflow-x:auto}.admin-table{border-collapse:collapse;width:100%;font-size:12px}.admin-table th{border-bottom:1px solid var(--line-strong);color:var(--faint);font:500 9px var(--mono), monospace;text-align:left;text-transform:uppercase;padding:11px 12px}.admin-table td{border-bottom:1px solid var(--line);vertical-align:top;padding:15px 12px}.admin-table td strong,.admin-table td span{display:block}.admin-table td span:not(.status-badge){color:var(--muted);margin-top:4px;font-size:10px}.status-badge{border:1px solid var(--line-strong);width:max-content;color:var(--muted);font:500 9px var(--mono), monospace;border-radius:3px;padding:4px 6px;display:inline-flex!important}.status-new,.status-pending{color:var(--accent);border-color:var(--accent);background:var(--accent-soft)}.status-sent,.status-replied{color:#9fd4b0;border-color:#3f6b4f}.status-failed,.status-trashed{color:#f0a8a0;border-color:#7a3d37}.empty-state{color:var(--faint);font:400 12px/1.6 var(--mono), monospace}.admin-toolbar{gap:18px;margin-bottom:24px;display:grid}.admin-toolbar form{gap:10px;display:flex}.filter-links{flex-wrap:wrap;gap:7px;display:flex}.filter-links a{border:1px solid var(--line);color:var(--muted);font:500 9px var(--mono), monospace;border-radius:4px;padding:7px 10px}.filter-links a.is-active{color:var(--accent);border-color:var(--accent);background:var(--accent-soft)}.submission-list{gap:12px;display:grid}.submission-card{border:1px solid var(--line);background:var(--surface)}.submission-card summary{cursor:pointer;grid-template-columns:1fr 1.6fr auto;align-items:center;gap:24px;padding:20px 22px;list-style:none;display:grid}.submission-card summary::-webkit-details-marker{display:none}.submission-card summary div{min-width:0}.submission-card summary strong,.submission-card summary span{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.submission-card summary div>span{color:var(--muted);margin-top:5px;font-size:10px}.submission-summary-subject strong{font-size:13px}.submission-detail{border-top:1px solid var(--line);grid-template-columns:1.5fr .8fr;gap:35px;padding:28px;display:grid}.submission-detail h2{margin:0 0 16px;font-size:15px}.submission-detail article>p{white-space:pre-wrap;color:var(--muted);line-height:1.75}.submission-actions,.submission-actions form{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.submission-actions select{width:auto}.delivery-state{border-top:1px solid var(--line);margin-top:32px;padding-top:22px}.delivery-state h3{font-size:12px}.delivery-state p{color:var(--muted);font-size:11px}.admin-note{background:var(--surface-soft);margin-bottom:8px;padding:12px}.admin-note p{color:var(--muted);white-space:pre-wrap;margin:0;font-size:12px;line-height:1.6}.admin-note span{color:var(--faint);font:400 9px var(--mono), monospace;margin-top:8px;display:block}.note-form{gap:9px;margin-top:15px;display:grid}.traffic-chart{align-items:end;gap:4px;height:220px;padding-top:20px;display:flex}.traffic-day{flex-direction:column;flex:1;justify-content:end;align-items:stretch;gap:7px;min-width:4px;height:100%;display:flex}.traffic-day div{background:var(--accent);min-height:4px}.traffic-day span{color:var(--faint);font:400 8px var(--mono), monospace;text-align:center}.admin-two-column{grid-template-columns:1fr 1fr;gap:28px;display:grid}.privacy-note{color:var(--faint);font:400 10px/1.7 var(--mono), monospace}.invite-panel{grid-template-columns:.7fr 1.3fr;gap:42px;display:grid}.invite-panel p{color:var(--muted);font-size:13px;line-height:1.6}.invite-panel form{grid-template-columns:1fr 1fr;gap:14px;display:grid}.invite-panel form .button{grid-column:1/-1}.table-actions{flex-wrap:wrap;gap:12px;display:flex}.admin-shell{z-index:1;background:0 0;position:relative}.admin-sidebar{background:var(--surface)}.admin-main{width:100%;max-width:1600px}.admin-page-header h1{font-size:42px;font-weight:400;line-height:1.1}.admin-panel,.admin-login-card,.admin-stats{border-radius:10px;overflow:hidden}.admin-login-card h1{font-size:44px;font-weight:400;line-height:1.1}.admin-login-page{z-index:1;background:0 0;position:relative}.admin-sidebar .brand{align-items:center}.admin-page-header .button{white-space:nowrap}.admin-table th{font-size:10px}.admin-table td{font-size:13px}.admin-table td span:not(.status-badge){font-size:12px}.admin-meta{font-family:var(--sans);font-size:12px}.editor-tabs{border-bottom:1px solid var(--line);gap:6px;margin:0 0 25px;padding-bottom:12px;display:flex;overflow:auto}.editor-tabs button{white-space:nowrap;color:var(--muted);border-radius:20px;padding:11px 15px;font-size:12px}.editor-tabs button[aria-selected=true]{background:var(--accent-soft);color:var(--accent)}.editor-form{gap:22px;display:grid}.editor-grid{grid-template-columns:1fr 1fr;gap:20px;display:grid}.editor-form fieldset{border:1px solid var(--line);border-radius:8px;gap:17px;margin:0;padding:22px;display:grid}.editor-form legend{padding:0 8px;font-size:14px}.editor-form textarea{min-height:100px}.editor-form .check-label{align-items:center;gap:10px;min-height:44px;display:flex}.editor-form .help{margin:0;font-size:12px}.editor-actions{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.editor-savebar{background:var(--surface);border:1px solid var(--line);z-index:4;border-radius:8px;justify-content:space-between;align-items:center;gap:16px;margin-top:25px;padding:16px;display:flex;position:sticky;bottom:0}.editor-savebar p{margin:0;font-size:12px}.repeat-item{border-left:2px solid var(--line);gap:15px;padding:0 0 4px 18px;display:grid}.repeat-heading{justify-content:space-between;align-items:center;display:flex}.repeat-heading h3{margin:0;font-size:15px}.small-button{border:1px solid var(--line-strong);border-radius:20px;min-height:34px;padding:8px 12px;font-size:11px}.small-button:hover{background:var(--surface-soft)}.media-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;display:grid}.media-tile{border:1px solid var(--line);background:var(--surface);border-radius:8px;min-width:0;padding:15px}.media-tile img,.media-tile video{object-fit:contain;background:var(--surface-soft);border-radius:5px;width:100%;height:130px}.media-tile h3{overflow-wrap:anywhere;margin:14px 0 8px;font-size:13px}.media-tile p{margin-bottom:10px;font-size:11px}.media-tile .editor-actions{gap:6px}.media-placeholder{background:var(--surface-soft);height:130px;color:var(--faint);border-radius:5px;place-items:center;font-size:12px;display:grid}.upload-box{border:1px dashed var(--line-strong);border-radius:8px;gap:15px;margin-bottom:25px;padding:24px;display:grid}.upload-box p{margin:0;font-size:12px}.upload-box progress{width:100%;accent-color:var(--accent)}.status-badge{white-space:nowrap}.editor-history{gap:10px;padding:0;list-style:none;display:grid}.editor-history li{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:20px;padding:12px 0;font-size:12px;display:flex}.editor-history small{color:var(--faint);display:block}.empty-state{border:1px dashed var(--line);text-align:center;color:var(--muted);border-radius:8px;padding:35px}.admin-nav-bottom{align-items:center;gap:15px;margin-top:20px;font-size:12px;display:flex}@media (max-width:1000px){.admin-shell{grid-template-columns:200px minmax(0,1fr)}.admin-sidebar{padding:25px 15px}.admin-main{padding:35px 25px}.media-grid{grid-template-columns:1fr 1fr}.admin-two-column{grid-template-columns:1fr}.admin-stats{grid-template-columns:1fr 1fr}.admin-page-header{flex-wrap:wrap;align-items:flex-start}}@media (max-width:700px){.admin-shell{display:block}.admin-sidebar{border-right:0;border-bottom:1px solid var(--line);height:auto;padding:18px 20px;position:relative}.admin-sidebar nav{flex-wrap:wrap;gap:3px;margin-top:15px;display:flex}.admin-sidebar nav a{padding:8px;font-size:12px}.admin-nav-bottom{margin-top:10px}.admin-main{padding:30px 20px 60px}.admin-page-header h1{font-size:34px}.admin-login-card{padding:28px}.admin-panel{padding:20px}.editor-grid{grid-template-columns:1fr}.editor-form fieldset{padding:18px}.editor-savebar{flex-wrap:wrap;align-items:flex-start}.media-grid{grid-template-columns:1fr 1fr;gap:12px}.media-tile{padding:12px}.media-tile img,.media-placeholder{height:95px}.admin-table td,.admin-table th{padding:12px 8px}.admin-toolbar form{flex-wrap:wrap}.editor-history li{flex-wrap:wrap;align-items:flex-start}.editor-tabs{margin-right:-20px}.admin-stats article{min-height:105px;padding:20px}.admin-stats strong{margin-top:15px}.admin-identity{border-top:0;flex-wrap:wrap;align-items:center;gap:12px;margin-top:0;padding-top:8px;display:flex}.admin-identity strong,.admin-identity span,.admin-identity small{display:none}.admin-sign-out{margin-top:0}.submission-detail,.invite-panel{grid-template-columns:1fr}}.admin-page-header h1{overflow-wrap:anywhere}

