@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(../media/bricolage-grotesque-vietnamese-wght-normal.0h_qcmzvudf58.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:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(../media/bricolage-grotesque-latin-ext-wght-normal.0i4j_a8lim1a-.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:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(../media/bricolage-grotesque-latin-wght-normal.300rpl789hft0.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:Instrument Sans;font-style:normal;font-display:swap;font-weight:400;src:url(../media/instrument-sans-latin-400-normal.350ekqw02c4ub.woff2)format("woff2"),url(../media/instrument-sans-latin-400-normal.0y101ejb90zo_.woff)format("woff")}
@font-face{font-family:Instrument Sans;font-style:normal;font-display:swap;font-weight:500;src:url(../media/instrument-sans-latin-500-normal.1m_u3k-3_nxk9.woff2)format("woff2"),url(../media/instrument-sans-latin-500-normal.16b_u8jrvdjgm.woff)format("woff")}
@font-face{font-family:Instrument Sans;font-style:normal;font-display:swap;font-weight:600;src:url(../media/instrument-sans-latin-600-normal.31b98hgxp8isy.woff2)format("woff2"),url(../media/instrument-sans-latin-600-normal.09hqi4pw218gc.woff)format("woff")}
:root{--red:#cf5a12;--canvas:#f8f1e7;--hero-ink:#141211;--panel:#1e1b19f0;--ink:#f6efe2;--muted:#bdb3a3;--line:#3d3733;--accent:#f08a4b;box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--panel:#181514f2;--line:#3a3430}}:root[data-theme=dark]{--panel:#181514f2;--line:#3a3430}html{scroll-padding-top:calc(env(safe-area-inset-top,0px) + 4rem)}*,:before,:after{box-sizing:border-box}body{background:var(--canvas);color:var(--ink);margin:0;font:400 1.0625rem/1.65 Instrument Sans,system-ui,-apple-system,Segoe UI,sans-serif}h1,h2,h3{letter-spacing:-.02em;margin:0;font-family:Bricolage Grotesque Variable,Bricolage Grotesque,Arial Black,system-ui,sans-serif;line-height:1.05}a{color:inherit}:focus-visible{outline:3px solid var(--focus,#141211);outline-offset:3px;border-radius:4px}.panel,.nav,dialog.study{--focus:#f6efe2}#scene{pointer-events:none;z-index:0;background:radial-gradient(ellipse 42vw 92vh at 104% 49%, #171716 0 68%, transparent 68.4%), radial-gradient(ellipse 62vw 112vh at 79% 57%, #d5681e 0 59%, transparent 59.4%), var(--canvas);position:fixed;inset:0;overflow:hidden}#scene:before{content:"";z-index:0;opacity:.9;border:1.5px solid #d5681e;border-radius:50%;width:66vw;height:125vh;position:absolute;top:-28vh;left:54vw}#scene:after{content:"";z-index:0;opacity:.72;background-image:radial-gradient(circle,#d5681e 1.6px,#0000 1.8px);background-size:25px 25px;width:9vw;height:19vh;position:absolute;top:10vh;right:3.5vw}#stage{z-index:1;transform-origin:0 0;width:1024px;height:1536px;position:absolute;top:0;left:0}#stage img,#stage .eye{-webkit-user-select:none;user-select:none;-webkit-user-drag:none;pointer-events:none;position:absolute}#bg{-webkit-mask-composite:source-in;width:1024px;height:1536px;top:0;left:0;-webkit-mask-image:linear-gradient(90deg,#0000,#000 12% 88%,#0000),linear-gradient(#0000,#000 8%);mask-image:linear-gradient(90deg,#0000,#000 12% 88%,#0000),linear-gradient(#0000,#000 8%);-webkit-mask-composite:source-in;mask-composite:intersect}.eye{width:100px;height:100px}.eye svg{width:100px;height:100px;position:absolute;top:0;left:0;overflow:visible}.nav{z-index:5;left:max(1.25rem,6vw);top:calc(env(safe-area-inset-top,0px) + .8rem);background:var(--panel);border:1px solid #f6efe238;border-radius:999px;gap:1.1rem;padding:.6rem 1.1rem;font-size:.92rem;font-weight:600;display:flex;position:fixed;box-shadow:0 6px 20px #00000040}.nav a{color:var(--ink);text-decoration:none}.nav a:hover{color:var(--accent)}.page{z-index:1;padding-left:max(1.25rem,6vw);padding-right:1.25rem;position:relative}.col{width:min(580px,100%)}.hero{min-height:100svh;color:var(--hero-ink);flex-direction:column;justify-content:center;padding-top:5rem;padding-bottom:3rem;display:flex}.hero h1{font-size:clamp(2.8rem,6vw,5.4rem);font-weight:800}.hero p.lead{max-width:28ch;margin:1.3rem 0 1.8rem;font-size:clamp(1.15rem,2vw,1.4rem);font-weight:500;line-height:1.4}.availability{width:fit-content;color:var(--hero-ink);border:1px solid #14121147;border-radius:999px;align-items:center;gap:.5rem;margin:-1rem 0 1.5rem;padding:.38rem .72rem;font-size:.88rem;font-weight:700;display:inline-flex}.availability span{background:#176b42;border-radius:50%;width:.55rem;height:.55rem;box-shadow:0 0 0 3px #176b4229}.btns{flex-wrap:wrap;gap:.75rem;display:flex}.btn{border:2px solid var(--hero-ink);color:var(--hero-ink);border-radius:999px;padding:.8rem 1.3rem;font-weight:600;text-decoration:none;display:inline-block}.btn.solid{background:var(--hero-ink);color:#f6efe2}.panel{background:var(--panel);border-radius:22px;margin-bottom:1.25rem;padding:clamp(1.4rem,3vw,2.2rem)}.panel h2{margin-bottom:1.1rem;font-size:clamp(1.7rem,3vw,2.2rem);font-weight:800}.panel p{margin:0}.about p{font-size:1.2rem;font-weight:500;line-height:1.5}dl.skills{margin:0}dl.skills div{border-bottom:1px solid var(--line);padding:.9rem 0}dl.skills div:first-child{padding-top:0}dl.skills div:last-child{border-bottom:0;padding-bottom:0}dl.skills dt{color:var(--muted);font-size:.95rem;font-weight:600}dl.skills dd{margin:.15rem 0 0}h3{font-size:1.35rem;font-weight:800}.meta{color:var(--muted);font-size:.98rem;font-weight:500;margin:.3rem 0 .9rem!important}ul.points{margin:0;padding-left:1.2rem}ul.points li{margin-bottom:.45rem}ul.points li::marker{color:var(--accent)}.proj+.proj{border-top:1px solid var(--line);margin-top:2rem;padding-top:2rem}.stack{flex-wrap:wrap;gap:.4rem;margin-bottom:.9rem;display:flex}.stack span{border:1px solid var(--line);border-radius:999px;padding:.15rem .65rem;font-size:.88rem}.edu+.edu{margin-top:1.5rem}.contact h2{max-width:14ch;font-size:clamp(2rem,4vw,3rem)}.contact ul{overflow-wrap:anywhere;gap:.5rem;margin:1.4rem 0 0;padding:0;font-size:1.1rem;list-style:none;display:grid}.contact a{text-underline-offset:5px}.contact a:hover{color:var(--accent)}footer{color:var(--hero-ink);padding:1rem 0 2rem;font-size:.9rem;font-weight:500}body:has(.not-found){background:#ec2b35 url(/not-found-background.webp) 50%/cover no-repeat fixed}body:has(.not-found) #scene{background:0 0}body:has(.not-found) #scene:before{display:none}body:has(.not-found) #scene:after{display:none}body:has(.not-found) #stage{display:none}body:has(.not-found) footer{color:#fff;text-shadow:0 1px 3px #0000008c}@media (max-width:900px){.page{padding-right:1.25rem}.nav .home{display:none}.col{width:100%}.hero{justify-content:flex-start;min-height:100svh;padding-top:5.5rem}.nav{justify-content:space-between;gap:.8rem;padding:.55rem .9rem;font-size:.85rem;left:1.25rem;right:1.25rem}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.btn:hover{transform:none}}#progress{z-index:6;left:0;right:0;top:env(safe-area-inset-top,0px);transform-origin:0;height:3px;transform:scaleX(var(--p,0));background:#d5681e;position:fixed}.nav a{border-radius:999px;padding:.2rem .65rem;transition:background .25s,color .25s}.nav a.active{color:#f6efe2;background:#f6efe229}.btn{isolation:isolate;--wipe:var(--hero-ink);transform:translate(var(--tx,0px), var(--ty,0px)) scale(var(--sc,1));will-change:transform;transition:transform .3s cubic-bezier(.2,.8,.2,1),color .3s,box-shadow .3s;position:relative;overflow:hidden}.btn:before{content:"";background:var(--wipe);z-index:-1;transition:transform .38s cubic-bezier(.2,.8,.2,1);position:absolute;inset:-1px;transform:translateY(102%)}.btn:hover,.btn:focus-visible{color:#f6efe2;box-shadow:0 10px 24px #1e1b1959}.btn:hover:before,.btn:focus-visible:before{transform:translateY(0)}.btn.solid{--wipe:#f6efe2}.btn.solid:hover,.btn.solid:focus-visible{color:var(--hero-ink)}.btn:active{--sc:.95}.btn:hover{transform:translate(var(--tx,0px), calc(var(--ty,0px) - 2px)) scale(var(--sc,1))}.btn.sm{color:#f6efe2;--wipe:#f6efe2;border-color:#f6efe2b3;align-items:center;gap:.5rem;padding:.6rem 1.1rem;display:inline-flex}.btn.sm:hover,.btn.sm:focus-visible{color:var(--hero-ink);box-shadow:0 10px 24px #00000059}.btn .ico{transition:transform .3s cubic-bezier(.2,.8,.2,1)}.btn:hover .ico{transform:translate(3px,-3px)}.ripple{pointer-events:none;z-index:-1;background:#f6efe266;border-radius:50%;animation:.65s ease-out forwards rip;position:absolute;transform:scale(0)}@keyframes rip{to{opacity:0;transform:scale(1)}}.panel{transition:translate .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s;position:relative;overflow:hidden}.panel:before{content:"";background:radial-gradient(420px circle at var(--mx,50%) var(--my,0%), #f08a4b33, transparent 60%);opacity:0;pointer-events:none;transition:opacity .3s;position:absolute;inset:0}.panel:hover:before{opacity:1}.panel:hover{translate:0 -4px;box-shadow:0 20px 44px #00000052}.stack span{transition:translate .25s,background .25s,color .25s,border-color .25s}.stack span:hover{background:var(--accent);color:var(--hero-ink);border-color:var(--accent);translate:0 -2px}ul.points li{transition:translate .25s}ul.points li:hover{translate:5px}.contact a{background:linear-gradient(currentColor,currentColor) 0 100%/0 2px no-repeat;padding-bottom:2px;text-decoration:none;transition:background-size .35s,color .3s}.contact a:hover,.contact a:focus-visible{background-size:100% 2px}.tag{color:var(--accent);font-family:Bricolage Grotesque Variable,Bricolage Grotesque,sans-serif;font-size:1.1rem;font-weight:600;margin-top:-.5rem!important}.sub{color:var(--muted);letter-spacing:0;margin:1.2rem 0 .5rem;font-size:1rem;font-weight:600}.case-actions{margin:1.3rem 0 .6rem}details.more{border-top:1px solid var(--line);margin-top:1rem;padding-top:1rem}details.more summary{cursor:pointer;justify-content:space-between;align-items:center;gap:1rem;font-weight:600;list-style:none;transition:color .25s;display:flex}details.more summary::-webkit-details-marker{display:none}details.more summary:hover{color:var(--accent)}details.more summary:after{content:"+";font-size:1.6rem;line-height:1;transition:transform .3s}details.more[open] summary:after{transform:rotate(45deg)}details.more[open] .more-body{animation:.45s cubic-bezier(.2,.8,.2,1) open}@keyframes open{0%{opacity:0;translate:0 -8px}}.eye svg{transform-origin:50%;transition:transform 90ms ease-in}.eye.blink svg{transform:scaleY(.07)}.hero>*{animation:.9s cubic-bezier(.2,.8,.2,1) both rise}.hero>:nth-child(2){animation-delay:.12s}.hero>:nth-child(3){animation-delay:.24s}@keyframes rise{0%{opacity:0;transform:translateY(26px)}}.js .reveal{opacity:0;transition:opacity .7s,transform .8s cubic-bezier(.2,.8,.2,1),translate .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s;transform:translateY(28px)}.js .reveal.in{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation:none!important}.js .reveal{opacity:1;transform:none}}button.btn{font:inherit;cursor:pointer;background:0 0}.btn.sm.fill{color:var(--hero-ink);--wipe:var(--accent);background:#f6efe2;border-color:#f6efe2}.btn.sm.fill:hover,.btn.sm.fill:focus-visible{color:var(--hero-ink);border-color:var(--accent)}.case-actions{flex-wrap:wrap;gap:.6rem;margin:1.1rem 0 .2rem;display:flex}dialog.study{width:min(700px,100% - 2rem);max-height:min(88vh,900px);color:var(--ink);background:#1e1b19;border:0;border-radius:24px;padding:0;overflow:hidden;box-shadow:0 30px 80px #00000080}dialog.study::backdrop{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#141110bd}dialog.study[open]{animation:.45s cubic-bezier(.2,.8,.2,1) pop}dialog.study[open]::backdrop{animation:.35s fade}@keyframes pop{0%{opacity:0;transform:translateY(28px)scale(.96)}}@keyframes fade{0%{opacity:0}}.study-in{overscroll-behavior:contain;max-height:min(88vh,900px);padding:clamp(1.4rem,4vw,2.4rem);overflow-y:auto}.study h2{margin:0 2.5rem .8rem 0;font-size:clamp(1.7rem,4vw,2.3rem);font-weight:800}.study .more-body{margin-top:.5rem}.close{color:#f6efe2;cursor:pointer;background:0 0;border:1px solid #f6efe24d;border-radius:50%;width:2.5rem;height:2.5rem;font-size:1.6rem;line-height:1;transition:transform .3s,background .25s,color .25s;position:absolute;top:.9rem;right:.9rem}.close:hover,.close:focus-visible{color:var(--hero-ink);background:#f6efe2;transform:rotate(90deg)}html:has(dialog[open]){overflow:hidden}ol.points{margin:0;padding-left:1.4rem}ol.points li{margin-bottom:.5rem}ol.points li::marker{color:var(--accent);font-weight:600}.study ul.points+.sub,.study ol.points+.sub{margin-top:1.3rem}.study .proj-objs{margin-top:.5rem}.shot{isolation:isolate;text-shadow:0 1px 8px #00000073;border-radius:18px;margin-top:1rem;padding:1.4rem;position:relative;overflow:hidden;border-top:0!important}.shot+.shot{padding-top:1.4rem}.shot:before,.shot:after{content:"";z-index:-1;position:absolute;inset:0}.shot:before{background-position:50%;background-size:cover;transition:transform .9s cubic-bezier(.2,.8,.2,1)}.shot:after{background:linear-gradient(100deg,#1e1b19db 0%,#1e1b1980 65%,#1e1b1947 100%);transition:opacity .5s}.shot:hover:before{transform:scale(1.07)}.shot:hover:after{opacity:.8}.shot .meta{color:#e4daca}.shot-camp:before{background-image:url(/work-camptop.webp)}.shot-grace:before{background-image:url(/work-grace.webp)}.intro{color:var(--muted);max-width:46ch;font-size:1rem;margin:-.6rem 0 1.3rem!important}.nav a{align-items:center;gap:.45rem;display:inline-flex}.nav .ico-nav{display:none}.sub-page{min-height:100svh;padding-top:6rem;padding-bottom:2rem}.page-enter{animation:.6s cubic-bezier(.2,.8,.2,1) both rise}@media (max-width:900px){#scene{background:radial-gradient(ellipse 104vw 58vh at 116% 20%, #d5681e 0 62%, transparent 62.5%), radial-gradient(ellipse 105vw 42vh at -17% 96%, #d5681e 0 67%, transparent 67.5%), var(--canvas)}#scene:before{border-color:#d5681ea6;width:88vw;height:56vh;top:59vh;left:-48vw}#scene:after{display:none}.nav{top:auto;bottom:calc(env(safe-area-inset-bottom,0px) + 1.8rem);border-radius:24px;justify-content:space-around;gap:0;padding:.3rem;font-size:.68rem;left:.75rem;right:.75rem}.nav a{text-align:center;border-radius:18px;flex-direction:column;flex:1;justify-content:center;gap:.15rem;min-width:0;padding:.45rem .1rem}.nav .home{display:inline-flex}.nav .ico-nav{width:22px;height:22px;display:block}.page{padding-bottom:calc(env(safe-area-inset-bottom,0px) + 8.8rem)}.sub-page{min-height:0;padding-top:1.5rem}.hero{padding-top:2rem}.work-cta,.home-contact,.home-github,.home-linkedin{display:none}footer{z-index:4;background:var(--canvas);padding:.25rem .75rem calc(env(safe-area-inset-bottom,0px) + .25rem);text-align:center;font-size:.8rem;line-height:1.35;position:fixed;bottom:0;left:0;right:0}}.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:20;color:#f6efe2;background:#141211;border:2px solid #f6efe2;border-radius:999px;padding:.7rem 1.1rem;font-weight:600;text-decoration:none;transition:top .2s;position:fixed;top:-5rem;left:.75rem;box-shadow:0 6px 20px #00000059}.skip-link:focus{top:calc(env(safe-area-inset-top,0px) + .6rem)}main:focus{outline:none}.panel h1{margin-bottom:1.1rem;font-size:clamp(1.7rem,3vw,2.2rem);font-weight:800}.contact h1{max-width:14ch;font-size:clamp(2rem,4vw,3rem)}.btn{min-height:44px}.hero p.lead{font-weight:600}.legal h2.sub{font-size:1rem}footer a{color:inherit}.contact li{flex-wrap:wrap;align-items:center;gap:.4rem .8rem;display:flex}.contact-form{border-top:1px solid var(--line);margin-top:2rem;padding-top:1.5rem}.contact-form .sub{margin-top:0}.form-note{color:var(--muted);font-size:.95rem;margin:0 0 1.1rem!important}.form-field{margin:0 0 1rem}.form-field label{margin-bottom:.35rem;font-weight:600;display:block}.optional{color:var(--muted);font-weight:400}.form-field input,.form-field textarea{width:100%;color:var(--ink);font:inherit;background:#00000029;border:1px solid #f6efe26b;border-radius:.65rem;padding:.7rem .8rem}.form-field textarea{resize:vertical;min-height:7rem}.form-field input:focus-visible,.form-field textarea:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.form-field [aria-invalid=true]{border-color:#ffb9a2}.field-error{color:#ffcfbe;font-size:.92rem;font-weight:600;margin:.35rem 0 0!important}.form-status{min-height:1.6em;color:var(--muted);font-size:.92rem;margin:.7rem 0 0!important}.copy{font:inherit;cursor:pointer;min-width:44px;min-height:44px;color:var(--ink);background:0 0;border:1px solid #f6efe266;border-radius:999px;padding:0 .9rem;font-size:.85rem;font-weight:600;transition:background .25s,color .25s}.copy:hover,.copy:focus-visible{background:var(--ink);color:#141211}.to-top{z-index:4;right:max(1rem, env(safe-area-inset-right,0px));bottom:calc(env(safe-area-inset-bottom,0px) + 1.2rem);background:var(--panel);width:48px;height:48px;color:var(--ink);cursor:pointer;opacity:0;visibility:hidden;border:1px solid #f6efe240;border-radius:50%;place-items:center;transition:opacity .3s,translate .3s,visibility .3s,background .25s,color .25s;display:grid;position:fixed;translate:0 12px;box-shadow:0 8px 22px #0000004d}.to-top.show{opacity:1;visibility:visible;translate:0}.to-top:hover,.to-top:focus-visible{background:var(--ink);color:#141211}.to-top:focus-visible{outline-offset:2px;outline:3px solid #141211;box-shadow:0 0 0 6px #f6efe2}@media (max-width:900px){.to-top{bottom:calc(env(safe-area-inset-bottom,0px) + 7rem)}}@media (prefers-reduced-motion:reduce){.to-top,.skip-link{transition:none}}.form-hint{color:var(--muted);font-size:.85rem;margin:.3rem 0 0!important}.col:has(.wide-page){width:min(740px,100%)}.wide-page .panel:hover{box-shadow:none;translate:none}.wide-page .panel:before{display:none}.crumb{margin:0 0 1rem;font-weight:600}.crumb a{text-underline-offset:4px;align-items:center;min-height:44px;display:inline-flex}.sub-page>.crumb a{color:var(--hero-ink)}.avatar{object-fit:cover;background:#d5681e;border-radius:50%;flex:none}.avatar-lg{width:160px;height:160px}.author-chip{z-index:1;align-items:center;gap:.55rem;min-height:44px;font-weight:600;text-decoration:none;display:inline-flex;position:relative}.author-chip:hover span,.author-chip:focus-visible span{text-underline-offset:4px;text-decoration:underline}.acard-cat{color:var(--accent);letter-spacing:.06em;text-transform:uppercase;font-size:.82rem;font-weight:700;margin:0 0 .4rem!important}.tag-list,.link-list{flex-wrap:wrap;gap:.45rem;margin:0;padding:0;list-style:none;display:flex}.tag-list li{border:1px solid var(--line);border-radius:999px;padding:.15rem .7rem;font-size:.88rem}.link-list a{border:1px solid var(--line);border-radius:999px;align-items:center;min-height:44px;padding:0 1rem;font-weight:600;text-decoration:none;transition:background .25s,color .25s;display:inline-flex}.link-list a:hover,.link-list a:focus-visible{background:var(--ink);color:#141211}.cover{aspect-ratio:3/2;background:#2a2522;border-radius:14px;position:relative;overflow:hidden}.cover-img{object-fit:cover}.cover-fallback{background:linear-gradient(135deg,#d5681e 0%,#8a3d0c 55%,#1e1b19 100%);place-items:end start;padding:1rem;display:grid}.cover-fallback span{color:#f6efe2;font-family:Bricolage Grotesque Variable,Bricolage Grotesque,sans-serif;font-size:1.1rem;font-weight:800;line-height:1.1}.acard-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,270px),1fr));gap:1.25rem;display:grid}.acard{border:1px solid var(--line);border-radius:18px;flex-direction:column;gap:.9rem;padding:.8rem;transition:border-color .25s,background .25s;display:flex;position:relative}.acard:hover{border-color:var(--accent);background:#f6efe20a}.acard-body{flex-direction:column;flex:1;gap:.15rem;padding:0 .35rem .35rem;display:flex}.acard-title{font-size:1.25rem;line-height:1.2}.acard-title a{text-decoration:none}.acard-title a:after{content:"";border-radius:18px;position:absolute;inset:0}.acard-title a:focus-visible{outline:none}.acard:has(.acard-title a:focus-visible){outline-offset:3px;outline:3px solid #f6efe2}.acard-excerpt{color:var(--muted);font-size:.97rem;margin:.35rem 0 .9rem!important}.acard-meta{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.25rem .9rem;margin-top:auto;display:flex}.acard-date{color:var(--muted);font-size:.88rem}.acard-featured .acard-title{font-size:clamp(1.5rem,3vw,2rem)}.featured-panel .sub{margin-top:0}.filters{gap:1rem;margin-bottom:1rem;display:grid}.search-field label{margin-bottom:.35rem;font-weight:600;display:block}.search-field input{width:100%;min-height:44px;color:var(--ink);font:inherit;background:#00000029;border:1px solid #f6efe26b;border-radius:.65rem;padding:.6rem .8rem}.search-field input:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.chips{flex-wrap:wrap;gap:.5rem;display:flex}.chip{border:1px solid var(--line);min-height:44px;color:var(--ink);font:inherit;cursor:pointer;background:0 0;border-radius:999px;padding:0 1rem;font-weight:600;transition:background .25s,color .25s}.chip:hover{border-color:var(--accent)}.chip[aria-pressed=true]{background:var(--ink);color:#141211;border-color:var(--ink)}.result-count{color:var(--muted);font-size:.92rem;margin:0 0 1rem!important}.empty-state{border:1px dashed var(--line);border-radius:16px;padding:1.5rem}.empty-state .sub{margin-top:0}.empty-state .btn{margin-top:1rem}.load-more{justify-content:center;margin-top:1.5rem;display:flex}.article-head h1{overflow-wrap:anywhere;margin-bottom:.9rem;font-size:clamp(1.9rem,5vw,2.8rem);line-height:1.08}.article-excerpt{color:var(--muted);font-size:1.15rem;margin-bottom:1.2rem!important}.article-meta{flex-wrap:wrap;align-items:center;gap:.3rem 1.4rem;margin-bottom:1rem;display:flex}.meta-list{color:var(--muted);flex-wrap:wrap;gap:.1rem 1rem;margin:0;padding:0;font-size:.92rem;list-style:none;display:flex}.article-cover{margin-top:1.4rem}.toc{border:1px solid var(--line);border-radius:16px;margin-bottom:1.8rem;padding:1rem 1.2rem}.toc summary{cursor:pointer;min-height:32px;font-weight:700}.toc ol{margin:.7rem 0 0;padding-left:1.2rem}.toc li{margin:.3rem 0}.toc .toc-sub{margin-left:1rem;font-size:.95rem;list-style-type:circle}.toc a{text-underline-offset:4px}.toc a:hover{color:var(--accent)}.prose{overflow-wrap:anywhere;font-size:1.0625rem;line-height:1.8}.prose>:first-child{margin-top:0}.panel .prose p,.prose p{margin:0 0 1.15em}.prose h2{margin:2.2em 0 .6em;scroll-margin-top:5rem;font-size:clamp(1.45rem,3.5vw,1.8rem)}.prose h3{margin:1.8em 0 .5em;scroll-margin-top:5rem;font-size:1.25rem}.prose h4{margin:1.5em 0 .4em;font-size:1.05rem}.prose a{color:var(--accent);text-underline-offset:4px}.prose a:hover{text-decoration-thickness:2px}.prose ul,.prose ol{margin:0 0 1.15em;padding-left:1.35rem}.prose li{margin:.35em 0}.prose li::marker{color:var(--accent)}.prose blockquote{border-left:4px solid var(--accent);color:var(--muted);margin:1.6em 0;padding:.3em 0 .3em 1.2rem;font-size:1.08em}.prose blockquote p:last-child{margin-bottom:0}.prose hr{border:0;border-top:1px solid var(--line);margin:2.2em 0}.prose img{border-radius:12px;max-width:100%;height:auto;margin:1.6em auto;display:block}.prose code{overflow-wrap:anywhere;background:#f6efe21a;border-radius:6px;padding:.12em .4em;font-size:.9em}.prose pre{border:1px solid var(--line);-webkit-overflow-scrolling:touch;background:#141211;border-radius:14px;margin:1.5em 0;padding:1rem 1.2rem;font-size:.92rem;line-height:1.6;overflow-x:auto}.prose pre code{font-size:inherit;overflow-wrap:normal;white-space:pre;background:0 0;padding:0}.prose pre:focus-visible,.table-scroll:focus-visible{outline-offset:2px;outline:3px solid #f6efe2}.table-scroll{border:1px solid var(--line);border-radius:12px;margin:1.5em 0;overflow-x:auto}.prose table{border-collapse:collapse;width:100%;font-size:.96rem;line-height:1.5}.prose th,.prose td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:.65rem .9rem}.prose th{color:var(--muted);font-weight:700}.prose tr:last-child td{border-bottom:0}.author-card{align-items:flex-start;gap:1.3rem;display:flex}.author-card-avatar{border-radius:50%;flex:none}.author-card .avatar{width:88px;height:88px}.author-name{color:var(--ink);font-size:1.35rem;margin:0 0 .1rem!important}.author-name a{text-decoration:none}.author-name a:hover{color:var(--accent)}.author-role{color:var(--muted);font-weight:600;margin:0 0 .8rem!important}.author-more{font-weight:600;margin-top:.8rem!important}.author-more a{color:var(--accent);text-underline-offset:4px}.author-profile{grid-template-columns:auto 1fr;align-items:start;gap:1.6rem;display:grid}.author-profile h1{margin-bottom:.3rem;font-size:clamp(1.9rem,5vw,2.8rem)}.author-bio{margin:0 0 .9rem!important}.author-profile .sub{margin-top:1.4rem}.pager{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.pager a{border:1px solid var(--line);overflow-wrap:anywhere;border-radius:14px;padding:.9rem 1rem;font-weight:700;line-height:1.3;text-decoration:none;transition:border-color .25s;display:block}.pager a:hover{border-color:var(--accent)}.pager a span{color:var(--muted);margin-bottom:.2rem;font-size:.82rem;font-weight:600;display:block}.pager-next{text-align:right}@media (max-width:900px){.author-profile{grid-template-columns:1fr}.author-card{flex-direction:column}.pager{grid-template-columns:1fr}.pager-next{text-align:left}}@media (max-width:380px){.nav{font-size:.6rem;left:.4rem;right:.4rem}.nav a{padding:.45rem 0}}.panel h2.sub{margin-bottom:.6rem;font-size:1.05rem}.panel .author-name{font-size:1.35rem}.prose .contains-task-list{padding-left:0;list-style:none}.prose .task-list-item{align-items:flex-start;gap:.6rem;display:flex}.prose .task-list-item input{width:1.1rem;height:1.1rem;accent-color:var(--accent);flex:none;margin-top:.45rem}.prose .task-list-item::marker{content:none}.about p+p{margin-top:1rem}.about .case-actions{margin-top:1.6rem}.principles{counter-reset:principle;gap:.9rem;margin:0;padding:0;list-style:none;display:grid}.principle{border:1px solid var(--line);counter-increment:principle;border-radius:16px;padding:1.1rem 1.2rem 1.1rem 3.6rem;transition:border-color .25s,background .25s;position:relative}.principle:hover{border-color:var(--accent);background:#f6efe20a}.principle:before{content:counter(principle, decimal-leading-zero);color:var(--accent);font-family:Bricolage Grotesque Variable,Bricolage Grotesque,sans-serif;font-size:1.05rem;font-weight:800;position:absolute;top:1.15rem;left:1.2rem}.principle h3{margin:0 0 .35rem;font-size:1.15rem}.principle p{color:var(--muted);margin:0}@media (max-width:400px){.principle{padding-top:2.8rem;padding-left:1.2rem}}.page{min-height:calc(100svh - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));flex-direction:column;display:flex}.col,.col>main,.col>main>.page-enter{flex-direction:column;flex:1;display:flex}.hero{flex:1;min-height:0}.sub-page{min-height:0}.col>main>.page-enter>.sub-page{flex:1}@media (max-width:900px){#scene{background:radial-gradient(ellipse 104vw 58lvh at 116% 20%, #d5681e 0 62%, transparent 62.5%), radial-gradient(ellipse 105vw 42lvh at -17% 96%, #d5681e 0 67%, transparent 67.5%), var(--canvas);height:100lvh;bottom:auto}#scene:before{height:56lvh;top:59lvh}.js .reveal{transition:opacity .4s,transform .45s cubic-bezier(.2,.8,.2,1);transform:translateY(12px)}}@media (hover:none){.panel:hover{box-shadow:none;translate:none}.panel:hover:before{opacity:0}.stack span:hover,ul.points li:hover,.acard:hover{translate:none}.btn:hover{transform:translate(var(--tx,0px), var(--ty,0px)) scale(var(--sc,1))}}body:has(.not-found) footer{background:0 0}
