:root{color-scheme:dark;--canvas:#000;--surface:#111316;--surface-strong:#1b1e23;--text:#f1f0eb;--muted:#a4a7ad;--subtle:#7b8088;--border:#30343a;--accent:#73a9ff;--accent-strong:#9cc2ff;--focus:#d7e6ff;--max-width:1180px;--radius:16px;font-synthesis:none;text-rendering:optimizelegibility;font-family:Geist,Inter,ui-sans-serif,system-ui,sans-serif}:root[data-theme=light]{color-scheme:light;--canvas:#f5f4ef;--surface:#fff;--surface-strong:#e9e9e3;--text:#17191c;--muted:#5e6269;--subtle:#6a6f77;--border:#d6d7d2;--accent:#175bb5;--accent-strong:#0d4b9c;--focus:#0c4ea8}@media (prefers-color-scheme:light){:root[data-theme=system]{color-scheme:light;--canvas:#f5f4ef;--surface:#fff;--surface-strong:#e9e9e3;--text:#17191c;--muted:#5e6269;--subtle:#6a6f77;--border:#d6d7d2;--accent:#175bb5;--accent-strong:#0d4b9c;--focus:#0c4ea8}}*{box-sizing:border-box}html{scroll-behavior:smooth}body{isolation:isolate;background:var(--canvas);color:var(--text);margin:0;line-height:1.5;transition:background-color .18s,color .18s;position:relative;overflow-x:hidden}body:has(.typing-dialog[open]){overflow:hidden}::view-transition-old(root),::view-transition-new(root){animation-duration:.42s}::view-transition-old(root){animation-name:theme-fade-out}::view-transition-new(root){animation-name:theme-reveal}@keyframes theme-fade-out{to{opacity:.6}}@keyframes theme-reveal{0%{clip-path:circle(0 at var(--theme-x,50%) var(--theme-y,50%))}to{clip-path:circle(150vmax at var(--theme-x,50%) var(--theme-y,50%))}}main,.site-footer{z-index:1;position:relative}main{overflow-x:clip}a{color:inherit}button,a{-webkit-tap-highlight-color:transparent}:focus-visible{outline:3px solid var(--focus);outline-offset:4px}.skip-link{z-index:10;background:var(--text);color:var(--canvas);border-radius:999px;padding:10px 14px;transition:transform .16s;position:fixed;top:12px;left:12px;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}.shell{width:min(calc(100% - 40px), var(--max-width));margin-inline:auto}.site-frame{min-height:100vh}.glass-filter-defs{width:0;height:0;position:absolute;overflow:hidden}.site-sidebar{z-index:6;border-right:1px solid color-mix(in srgb, var(--text) 22%, transparent);background:color-mix(in srgb, var(--surface-strong) 96%, var(--canvas));width:260px;box-shadow:14px 0 38px color-mix(in srgb, var(--canvas) 18%, transparent), inset -1px 0 #ffffff1f, inset 0 1px 0 #ffffff0d;-webkit-backdrop-filter:blur(14px)saturate(1.3)contrast(1.02);flex-direction:column;padding:32px 28px 28px;display:flex;position:fixed;inset:0 auto 0 0}.site-sidebar:before{z-index:0;content:"";pointer-events:none;background:linear-gradient(118deg,#ffffff14,#0000 26% 72%,#ffffff05);position:absolute;inset:0}.site-sidebar:after{z-index:0;content:"";pointer-events:none;background:linear-gradient(#0000,#ffffff6b 18%,#ffffff14 78%,#0000);width:1px;position:absolute;top:0;bottom:0;right:-1px}.site-sidebar>*{z-index:1;position:relative}@supports (backdrop-filter:url("#sidebar-glass-distortion")){.site-sidebar{backdrop-filter:url(#sidebar-glass-distortion)blur(14px)saturate(1.3)contrast(1.02)}}.sidebar-identity{gap:10px;display:grid}.wordmark{letter-spacing:-.04em;font-size:1rem;font-weight:750;text-decoration:none;position:relative}.wordmark.is-active,.sidebar-nav a.is-active{color:var(--accent-strong);text-shadow:0 0 16px color-mix(in srgb, var(--accent) 60%, transparent);position:relative}.wordmark.is-active:before,.sidebar-nav a.is-active:before{background:var(--accent-strong);width:5px;height:5px;box-shadow:0 0 10px var(--accent-strong);content:"";border-radius:50%;position:absolute;top:50%;left:-14px;transform:translateY(-50%)}.wordmark span{color:var(--accent)}.sidebar-identity p{color:var(--subtle);letter-spacing:.06em;text-transform:uppercase;margin:0;font-family:Geist Mono,SFMono-Regular,Consolas,monospace;font-size:.66rem}.sidebar-nav{gap:28px;margin-top:72px;display:grid}.sidebar-nav-group{gap:7px;display:grid}.sidebar-nav-group+.sidebar-nav-group{border-top:1px solid var(--border);padding-top:24px}.sidebar-nav-label{color:var(--subtle);letter-spacing:.08em;text-transform:uppercase;margin:0 0 7px;font-family:Geist Mono,SFMono-Regular,Consolas,monospace;font-size:.64rem}.sidebar-nav a,.sidebar-action{color:var(--muted);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;justify-content:space-between;align-items:center;gap:12px;padding:5px 0;font-size:.84rem;text-decoration:none;transition:color .16s;display:flex}.sidebar-nav a:hover,.sidebar-action:hover{color:var(--accent-strong)}.sidebar-action kbd{border:1px solid var(--border);color:var(--subtle);border-radius:4px;padding:2px 5px;font-family:Geist Mono,SFMono-Regular,Consolas,monospace;font-size:.58rem}.sidebar-bottom{gap:16px;margin-top:auto;display:grid}.sidebar-bottom .theme-pill{justify-self:start}.sidebar-email{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-family:Geist Mono,SFMono-Regular,Consolas,monospace;font-size:.68rem;text-decoration:none;overflow:hidden}.sidebar-email:hover{color:var(--accent-strong)}.sidebar-note{color:var(--subtle);letter-spacing:.06em;text-transform:uppercase;margin:0;font-family:Geist Mono,SFMono-Regular,Consolas,monospace;font-size:.6rem}.site-main{min-width:0;margin-left:260px}.text-link,.footer-links a,.back-link{color:var(--muted);font-size:.88rem;text-decoration:none;transition:color .16s}.text-link:hover,.footer-links a:hover,.back-link:hover,.email-link:hover{color:var(--accent-strong)}.theme-pill{border:1px solid color-mix(in srgb, var(--text) 18%, transparent);background:color-mix(in srgb, var(--surface-strong) 42%, transparent);-webkit-backdrop-filter:blur(12px)saturate(1.15);border-radius:999px;gap:2px;width:fit-content;padding:3px;display:flex;position:relative}.theme-pill button{z-index:1;width:44px;height:44px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;padding:0;display:grid;position:relative}.theme-pill button svg{width:14px;height:14px}.theme-pill button[aria-pressed=true]{color:var(--text)}.theme-indicator{background:color-mix(in srgb, var(--text) 14%, transparent);width:44px;height:44px;box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--text) 14%, transparent);border-radius:50%;transition:transform .2s;position:absolute;top:3px;left:3px}html[data-theme=light] .theme-indicator{transform:translate(46px)}html[data-theme=system] .theme-indicator{transform:translate(92px)}.hero-actions,.contact-actions,.footer-links{align-items:center;gap:20px;display:flex}.footer-button{color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;font-size:.88rem}.footer-button:hover{color:var(--accent-strong)}.footer-button{padding:0;font-size:.78rem}.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}.eyebrow,.kicker,.mono-label,.contact-label{letter-spacing:.08em;text-transform:uppercase;margin:0;font-family:Geist Mono,SFMono-Regular,Consolas,monospace;font-size:.72rem;line-height:1.4}.eyebrow{color:var(--muted)}.eyebrow-index{min-width:2.2em;color:var(--accent);margin-right:12px;display:inline-block}h1,h2,h3,p{margin-top:0}h1,h2,h3{letter-spacing:-.075em;font-weight:540;line-height:.98}h1,h2{margin-bottom:0}h1{font-size:clamp(3.8rem,10vw,9.2rem)}h2{font-size:clamp(2.6rem,6vw,5.5rem)}h3{margin-bottom:16px;font-size:clamp(1.65rem,3vw,2.5rem)}em{color:var(--muted);font-style:normal}.contour-field{z-index:0;opacity:.72;pointer-events:none;width:100%;height:100%;position:fixed;inset:0}:root[data-theme=light] .contour-field{filter:brightness(.82)saturate(1.1)}@media (prefers-color-scheme:light){:root[data-theme=system] .contour-field{filter:brightness(.82)saturate(1.1)}}.hero{padding:clamp(88px,15vw,180px) 0 64px}.hero-grid{grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);align-items:start;gap:clamp(44px,9vw,140px);padding-top:40px;display:grid}.kicker{color:var(--accent-strong);margin-bottom:24px}.typewriter-caret{vertical-align:-.12em;background:var(--accent-strong);width:1px;height:.95em;margin-left:3px;animation:.9s step-end infinite caret-blink;display:inline-block}@keyframes caret-blink{0%,45%{opacity:1;background:var(--accent-strong)}50%,95%{opacity:0}to{opacity:1;background:var(--accent)}}@keyframes rainbow-hue{to{filter:hue-rotate(360deg)}}@keyframes caret-cycle{0%,24%{opacity:1;background:var(--accent-strong);border-color:var(--accent-strong)}25%,49%{opacity:0}50%,74%{opacity:1;background:var(--accent);border-color:var(--accent)}75%,99%{opacity:0}to{opacity:1;background:var(--accent-strong);border-color:var(--accent-strong)}}.hero-aside{padding-bottom:8px}.hero-portrait{width:min(100%,220px);margin:0 0 32px}.portrait-reveal-frame{width:100%;position:relative}.portrait-reveal-frame img{aspect-ratio:1;border:1px solid var(--border);background:var(--surface);object-fit:cover;object-position:center;filter:saturate(.88)contrast(1.03);border-radius:24px;width:100%;height:auto;display:block}.portrait-reveal-frame .portrait-reveal-image{opacity:0;object-fit:cover;object-position:center;pointer-events:none;visibility:hidden;border-radius:24px;width:100%;height:100%;margin:0;position:absolute;inset:0}.portrait-pixels{pointer-events:none;border-radius:24px;position:absolute;inset:0;overflow:hidden}.portrait-pixel{opacity:0;background-repeat:no-repeat;transition:opacity .55s;position:absolute}.is-pixel-revealed .portrait-pixel{opacity:1}@media (prefers-reduced-motion:reduce){.portrait-reveal-image{visibility:hidden}.portrait-pixel{transition:none}.typing-passage span.is-current{animation:none}}.hero-portrait figcaption{color:var(--subtle);letter-spacing:.05em;text-transform:uppercase;justify-content:space-between;gap:12px;margin-top:10px;font-family:Geist Mono,SFMono-Regular,Consolas,monospace;font-size:.66rem;line-height:1.4;display:flex}.hero-value{letter-spacing:-.025em;max-width:470px;margin-bottom:24px;font-size:clamp(1.15rem,2vw,1.5rem);line-height:1.3}.hero-availability{max-width:390px;color:var(--muted);margin-bottom:32px;font-size:.96rem}.hero-actions{flex-wrap:wrap}.button{border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;min-height:48px;padding:11px 16px;font-size:.86rem;font-weight:650;text-decoration:none;transition:transform .16s,background-color .16s,border-color .16s;display:inline-flex}.button:hover{transform:translateY(-2px)}.button-primary{background:var(--accent);color:#07101f}.button-primary:hover{background:var(--accent-strong)}.button-secondary{border-color:var(--border);background:var(--surface);color:var(--text);cursor:pointer;font:inherit}.button-secondary:hover{border-color:var(--accent)}:root[data-theme=light] .button-primary{color:#fff}@media (prefers-color-scheme:light){:root[data-theme=system] .button-primary{color:#fff}}.text-link{border-bottom:1px solid var(--border);padding-bottom:4px}.hero-foot{border-top:1px solid var(--border);color:var(--subtle);text-transform:uppercase;flex-wrap:wrap;gap:12px 24px;margin-top:clamp(72px,12vw,150px);padding-top:20px;font-family:Geist Mono,SFMono-Regular,Consolas,monospace;font-size:.72rem;display:flex}.section{padding:88px 0 120px}.section-heading{gap:34px;margin-bottom:56px;display:grid}.section-heading.compact{margin-bottom:40px}.section-intro{max-width:58ch;color:var(--muted);margin:0;font-size:1.05rem}.project-stage{perspective:1400px;min-height:540px;margin:8px auto 160px;transition:height .48s cubic-bezier(.2,.8,.2,1);position:relative}.project-stage-line{background:linear-gradient(90deg, transparent, var(--border) 18%, var(--border) 82%, transparent);opacity:.8;height:1px;position:absolute;top:52%;left:8%;right:8%}.showcase-card{--card-x:50%;--card-y:50%;--card-tilt-x:0deg;--card-tilt-y:0deg;--card-shine-angle:115deg;--card-foil-x:0px;--card-foil-y:0px;z-index:1;border:1px solid var(--border);border-radius:var(--radius);background:linear-gradient(145deg, color-mix(in srgb, var(--surface-strong) 66%, transparent), transparent 58%), var(--surface);width:min(100%,460px);min-height:450px;color:var(--text);opacity:0;pointer-events:none;transform-style:preserve-3d;flex-direction:column;padding:20px;text-decoration:none;transition:transform .48s cubic-bezier(.2,.8,.2,1),opacity .36s,border-color .18s,box-shadow .18s;display:flex;position:absolute;top:18px;left:50%;overflow:hidden;transform:translate3d(-50%,38px,-260px)scale(.72)}.showcase-card:before{z-index:0;background:radial-gradient(circle at var(--card-x) var(--card-y), #ffffffe6, transparent 19%), linear-gradient(112deg, transparent 32%, #ffffff7a 48%, transparent 58%), conic-gradient(from var(--card-shine-angle) at var(--card-x) var(--card-y), #5ad8ff33, #bc7bff33, #ff89b22e, #ffde852e, #6aeecd2e, #5ad8ff33), repeating-linear-gradient(110deg, #ffffff14 0 1px, transparent 1px 9px);content:"";opacity:.2;pointer-events:none;mix-blend-mode:screen;transition:opacity .18s;position:absolute;inset:-45%}.showcase-card:after{z-index:2;border-radius:calc(var(--radius) - 1px);content:"";pointer-events:none;border:1px solid #ecf2fa52;position:absolute;inset:1px;box-shadow:inset 0 0 0 1px #ffffff12,inset 0 0 28px #ffffff09}.showcase-card>*{z-index:3;position:relative;transform:translateZ(14px)}.showcase-card>.showcase-card-art{transform:translate3d(var(--card-foil-x), var(--card-foil-y), 24px)}.showcase-card[data-position=active]{z-index:3;transform:translate3d(-50%, 0, 0) rotateX(var(--card-tilt-x)) rotateY(var(--card-tilt-y)) scale(1);opacity:1;pointer-events:auto;box-shadow:0 28px 80px #00000047}.showcase-card[data-position=prev]{z-index:2;opacity:.46;pointer-events:auto;transform:translate3d(calc(-50% - 310px),42px,-120px)rotateY(14deg)rotate(-3deg)scale(.86)}.showcase-card[data-position=next]{z-index:2;opacity:.46;pointer-events:auto;transform:translate3d(calc(310px - 50%),42px,-120px)rotateY(-14deg)rotate(3deg)scale(.86)}.showcase-card[data-position=prev]:hover{transform:translate3d(calc(-50% - 300px),30px,-110px)rotateY(12deg)rotate(-3deg)scale(.88)}.showcase-card[data-position=next]:hover{transform:translate3d(calc(300px - 50%),30px,-110px)rotateY(-12deg)rotate(3deg)scale(.88)}.showcase-card:hover:before{opacity:.72}.showcase-card-topline{justify-content:space-between;align-items:center;gap:16px;display:flex}.showcase-card-label{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-family:Geist Mono,SFMono-Regular,Consolas,monospace;font-size:.68rem}.showcase-card-art{border-radius:calc(var(--radius) - 4px);background:linear-gradient(115deg,#1d2025 0%,#dce3eb 8%,#4c535d 18%,#15171a 34%,#f5f7fa 49%,#555d68 64%,#c6cdd6 82%,#17191d 100%);background-position:calc(50% + var(--card-foil-x)) center;background-size:180% 180%;border:1px solid #ebf1f894;place-items:center;min-height:178px;margin:20px 0 24px;transition:transform .16s,border-color .18s,background-position .16s;display:grid;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffffb8,inset 0 -16px 28px #00000038,0 12px 28px #0000002e}.showcase-card-art:before{background:conic-gradient(from var(--card-shine-angle) at var(--card-x) var(--card-y), #53dbff14, #b570ff57, #ff72b24d, #ffdc7157, #5befc740, #53dbff14);content:"";opacity:.78;mix-blend-mode:color-dodge;transform:translate3d(var(--card-foil-x), var(--card-foil-y), 0);transition:transform .16s;position:absolute;inset:-25%}.showcase-card-art:after{background:linear-gradient(var(--card-shine-angle), transparent 28%, #ffffff94 46%, #ffffff24 52%, transparent 66%), repeating-linear-gradient(102deg, #ffffff26 0 1px, transparent 1px 11px);content:"";opacity:.58;mix-blend-mode:screen;position:absolute;inset:0}.showcase-card-art span{z-index:1;color:var(--text);letter-spacing:-.12em;text-shadow:0 0 24px color-mix(in srgb, var(--accent) 48%, transparent);font-family:Geist Mono,SFMono-Regular,Consolas,monospace;font-size:clamp(3rem,7vw,5.8rem);font-weight:650;position:relative}.showcase-card-art i{aspect-ratio:1;border:1px solid color-mix(in srgb, var(--accent-strong) 45%, transparent);border-radius:50%;width:74%;position:absolute;transform:rotate(24deg)scaleY(.42)}.showcase-card-art i:last-child{border-color:#d980ff6b;width:56%;transform:rotate(-34deg)scaleY(.34)}.showcase-card-copy{flex-direction:column;min-height:132px;display:flex}.showcase-card-copy h3{margin-bottom:12px;font-size:clamp(1.8rem,3vw,2.8rem)}.showcase-card-copy p{max-width:44ch;color:color-mix(in srgb, var(--text) 82%, var(--canvas));margin:0 0 16px;font-size:.95rem;line-height:1.55}.showcase-card-techs{flex-wrap:wrap;gap:6px;margin-top:auto;display:flex}.showcase-card-techs span{border:1px solid var(--border);color:var(--subtle);border-radius:999px;padding:5px 7px;font-family:Geist Mono,SFMono-Regular,Consolas,monospace;font-size:.62rem}.showcase-card-footer{border-top:1px solid var(--border);color:var(--muted);justify-content:space-between;align-items:end;gap:14px;margin-top:auto;padding-top:16px;font-size:.72rem;line-height:1.4;display:flex}.showcase-card-footer span{max-width:28ch}.showcase-card-footer strong{color:var(--accent-strong);white-space:nowrap;flex:none;font-weight:500}.project-stage-control{z-index:4;border:1px solid var(--border);background:var(--surface);width:44px;height:44px;color:var(--text);font:inherit;cursor:pointer;border-radius:50%;place-items:center;transition:border-color .16s,color .16s,transform .16s;display:grid;position:absolute;top:50%;transform:translateY(-50%)}.project-stage-control:hover{border-color:var(--accent);color:var(--accent-strong);transform:translateY(-50%)scale(1.05)}.project-stage-control-prev{left:3%}.project-stage-control-next{right:3%}.project-stage-status{color:var(--subtle);text-align:center;text-transform:uppercase;margin:0;font-family:Geist Mono,SFMono-Regular,Consolas,monospace;font-size:.68rem;position:absolute;bottom:4px;left:0;right:0}.page-layout{grid-template-columns:minmax(150px,.28fr) minmax(0,1fr);align-items:start;gap:clamp(32px,8vw,110px);display:grid}.page-layout-main{min-width:0}.page-block{padding-bottom:112px}.page-block:last-child{padding-bottom:0}.page-sidebar{align-self:start;padding-top:4px;position:sticky;top:104px}.page-sidebar .mono-label{color:var(--accent);margin-bottom:16px}.page-sidebar nav{gap:4px;display:grid}.page-sidebar a{border-bottom:1px solid var(--border);color:var(--muted);padding:8px 0;font-size:.8rem;text-decoration:none;transition:border-color .16s,color .16s}.page-sidebar a:hover{border-color:var(--accent);color:var(--accent-strong)}.page-sidebar-note{color:var(--subtle);margin:32px 0 0;font-size:.76rem}.filter-toolbar{gap:12px;margin-bottom:20px;display:grid}.filter-group{flex-wrap:wrap;gap:8px;display:flex}.filter-group button{border:1px solid var(--border);background:var(--surface);min-height:44px;color:var(--muted);font:inherit;cursor:pointer;border-radius:999px;padding:8px 14px;font-size:.82rem}.filter-group button:hover{border-color:var(--accent);color:var(--text)}.filter-group button.is-active,.filter-group button[aria-pressed=true]{border-color:var(--accent);background:var(--accent);color:#07101f}:root[data-theme=light] .filter-group button.is-active{color:#fff}.filter-search{display:block}.filter-search input{border:1px solid var(--border);background:var(--surface);width:100%;min-height:44px;color:var(--text);font:inherit;border-radius:12px;padding:10px 14px;font-size:.9rem}.filter-search input::placeholder{color:var(--subtle)}.filter-search input:focus{outline:2px solid var(--focus);outline-offset:2px;border-color:var(--focus)}.filter-empty{color:var(--subtle);font-size:.9rem}.filter-empty[hidden]{display:none}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.project-card{--card-x:50%;--card-y:50%;--card-tilt-x:0deg;--card-tilt-y:0deg;--card-lift:0px;--card-shine-angle:115deg;--card-foil-x:0px;--card-foil-y:0px;isolation:isolate;border:1px solid var(--border);border-radius:var(--radius);background:linear-gradient(145deg, color-mix(in srgb, var(--surface-strong) 58%, transparent), transparent 58%), var(--surface);min-height:430px;transform:perspective(1200px) rotateX(var(--card-tilt-x)) rotateY(var(--card-tilt-y)) translateY(var(--card-lift));transform-style:preserve-3d;will-change:transform;flex-direction:column;padding:20px;text-decoration:none;transition:border-color .18s,transform .18s,box-shadow .18s,background-color .18s;display:flex;position:relative;overflow:hidden;box-shadow:0 12px 30px #0000001f}.project-card:before{z-index:0;border-radius:inherit;background:radial-gradient(circle at var(--card-x) var(--card-y), #ffffffdb, transparent 19%), linear-gradient(112deg, transparent 32%, #ffffff6b 48%, transparent 58%), conic-gradient(from var(--card-shine-angle) at var(--card-x) var(--card-y), #5ad8ff2e, #bc7bff33, #ff89b22e, #ffde852e, #6aeecd29, #5ad8ff2e), repeating-linear-gradient(110deg, #ffffff14 0 1px, transparent 1px 9px);background-position:center, center, calc(50% + var(--card-foil-x)) calc(50% + var(--card-foil-y)), center;content:"";opacity:.22;pointer-events:none;mix-blend-mode:screen;transform:translate3d(var(--card-foil-x), var(--card-foil-y), 0) scale(.98);filter:saturate(1.35)contrast(1.08);background-size:100% 100%,180% 180%,130% 130%,100% 100%;transition:opacity .18s,transform .16s;position:absolute;inset:-45%}.project-card:after{z-index:2;border-radius:calc(var(--radius) - 1px);background:linear-gradient(var(--card-shine-angle), transparent 34%, #ffffff7a 48%, #ffffff1a 53%, transparent 64%), radial-gradient(circle at var(--card-x) var(--card-y), #ffffff57, transparent 26%);content:"";opacity:.34;pointer-events:none;mix-blend-mode:screen;border:1px solid #ecf2fa47;transition:opacity .18s;position:absolute;inset:1px;box-shadow:inset 0 0 0 1px #ffffff0e}.project-card>*{z-index:3;position:relative;transform:translateZ(18px)}.project-card-topline{justify-content:space-between;align-items:center;gap:16px;display:flex}.project-card-label{color:var(--subtle);letter-spacing:.08em;text-transform:uppercase;font-family:Geist Mono,SFMono-Regular,Consolas,monospace;font-size:.66rem}.project-card-art{border-radius:calc(var(--radius) - 4px);background:linear-gradient(115deg,#1d2025 0%,#dce3eb 8%,#4c535d 18%,#15171a 34%,#f5f7fa 49%,#555d68 64%,#c6cdd6 82%,#17191d 100%);background-position:calc(50% + var(--card-foil-x)) center;min-height:170px;transform:translate3d(var(--card-foil-x), var(--card-foil-y), 24px);background-size:180% 180%;border:1px solid #ebf1f885;place-items:center;margin:18px 0 22px;transition:transform .16s,border-color .18s,background-position .16s;display:grid;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffffb8,inset 0 -16px 28px #00000038,0 12px 28px #0000002e}.project-card-art:before{background:conic-gradient(from var(--card-shine-angle) at var(--card-x) var(--card-y), #53dbff14, #b570ff57, #ff72b24d, #ffdc7157, #5befc740, #53dbff14);content:"";opacity:.78;mix-blend-mode:color-dodge;transform:translate3d(var(--card-foil-x), var(--card-foil-y), 0);transition:transform .16s;position:absolute;inset:-25%}.project-card-art:after{background:linear-gradient(var(--card-shine-angle), transparent 28%, #ffffff94 46%, #ffffff24 52%, transparent 66%), repeating-linear-gradient(102deg, #ffffff26 0 1px, transparent 1px 11px);content:"";opacity:.58;mix-blend-mode:screen;position:absolute;inset:0}.project-card-art-mark{z-index:1;color:var(--text);letter-spacing:-.12em;text-shadow:0 0 24px color-mix(in srgb, var(--accent) 48%, transparent);font-family:Geist Mono,SFMono-Regular,Consolas,monospace;font-size:clamp(2.8rem,7vw,5.4rem);font-weight:650;position:relative}.project-card-art-signal{aspect-ratio:1;border:1px solid color-mix(in srgb, var(--accent-strong) 45%, transparent);border-radius:50%;width:74%;position:absolute;transform:rotate(24deg)scaleY(.42)}.project-card-art-signal-two{border-color:#d980ff6b;width:56%;transform:rotate(-34deg)scaleY(.34)}.project-card:hover{--card-lift:-4px;border-color:color-mix(in srgb, var(--accent) 72%, var(--border));box-shadow:0 22px 46px color-mix(in srgb, var(--accent) 15%, transparent)}.project-card:hover:before{opacity:.72}.project-card:hover:after{opacity:.62}.project-card:hover .project-card-art{border-color:color-mix(in srgb, var(--accent) 72%, var(--border))}.project-card:focus-visible{border-color:var(--focus);box-shadow:0 0 0 4px color-mix(in srgb, var(--focus) 22%, transparent), 0 18px 38px color-mix(in srgb, var(--accent) 12%, transparent)}:root[data-theme=light] .project-card:before{opacity:.16;mix-blend-mode:multiply}:root[data-theme=light] .project-card:after{opacity:.2;mix-blend-mode:multiply}:root[data-theme=light] .project-card:hover:before{opacity:.48}:root[data-theme=light] .project-card:hover:after{opacity:.34}@media (prefers-color-scheme:light){:root[data-theme=system] .project-card:before{opacity:.16;mix-blend-mode:multiply}:root[data-theme=system] .project-card:after{opacity:.2;mix-blend-mode:multiply}:root[data-theme=system] .project-card:hover:before{opacity:.48}:root[data-theme=system] .project-card:hover:after{opacity:.34}}:root[data-theme=light] .showcase-card:before{opacity:.16;mix-blend-mode:multiply}:root[data-theme=light] .showcase-card:after{border-color:#272c3447}@media (prefers-color-scheme:light){:root[data-theme=system] .showcase-card:before{opacity:.16;mix-blend-mode:multiply}}.project-card-index{color:var(--accent);font-family:Geist Mono,SFMono-Regular,Consolas,monospace;font-size:.75rem}.project-card-body{flex-direction:column;min-width:0;display:flex}.project-card-meta{flex-wrap:wrap;align-items:center;gap:8px 16px;margin-bottom:20px;display:flex}.status-chip{border:1px solid color-mix(in srgb, var(--accent) 55%, var(--border));width:fit-content;color:var(--accent-strong);border-radius:999px;padding:5px 8px;font-size:.74rem;line-height:1.2;display:inline-flex}.project-card h3{margin-bottom:14px;font-size:clamp(1.8rem,3vw,2.65rem)}.project-card p{max-width:48ch;color:var(--muted);margin-bottom:18px}.project-card-techs{flex-wrap:wrap;gap:6px;margin-bottom:20px;display:flex}.project-card-techs span{border:1px solid var(--border);color:var(--subtle);border-radius:999px;padding:5px 7px;font-family:Geist Mono,SFMono-Regular,Consolas,monospace;font-size:.65rem}.project-card-footer{border-top:1px solid var(--border);color:var(--subtle);justify-content:space-between;align-items:end;gap:16px;margin-top:auto;padding-top:16px;font-size:.8rem;display:flex}.project-card-footer span:first-child{max-width:38ch;font-size:.72rem;line-height:1.35}.card-arrow{color:var(--accent-strong);font-size:1.2rem}.section-link{margin:32px 0 0}.capability-grid{border:1px solid var(--border);background:var(--border);grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;display:grid}.capability{background:var(--surface);min-width:0;padding:24px}.capability .mono-label{color:var(--accent);margin-bottom:48px}.capability h3{margin-bottom:16px;font-size:clamp(1.4rem,2.2vw,2rem)}.capability p:not(.mono-label){min-height:96px;color:var(--muted);margin-bottom:24px;font-size:.92rem}.proof-link{color:var(--accent-strong);font-size:.82rem;text-decoration:none}.proof-link:hover{text-underline-offset:4px;text-decoration:underline}.tech-block{border-top:1px solid var(--border);margin-top:88px;padding-top:24px}.tech-heading{justify-content:space-between;align-items:baseline;gap:32px;margin-bottom:24px;display:flex}.tech-heading p:last-child{max-width:46ch;color:var(--muted);margin:0;font-size:.86rem}.tech-marquee{contain:layout paint;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);height:78px;position:relative;overflow:clip}.tech-track{width:max-content;animation:36s linear infinite tech-scroll;display:flex;position:absolute;top:0;left:0}.tech-track.is-paused,.tech-track.is-offscreen,.tech-track.is-static{animation-play-state:paused}.tech-list{flex:none;gap:12px;margin:0;padding:12px;list-style:none;display:flex}.tech-item{border:1px solid var(--border);min-height:52px;color:var(--text);white-space:nowrap;border-radius:999px;align-items:center;gap:10px;padding:8px 16px;display:inline-flex;position:relative}.tech-item img{flex:none;width:28px;height:28px}:root[data-theme=dark] .tech-item img{filter:brightness(0)invert()}@media (prefers-color-scheme:dark){:root[data-theme=system] .tech-item img{filter:brightness(0)invert()}}.tech-name{font-size:.82rem}.stack-list{flex-wrap:wrap;padding:0}.stack-list .tech-item{border-radius:var(--radius);background:var(--surface)}@keyframes tech-scroll{0%{transform:translate(0)}to{transform:translate(-50%)}}.split-section{grid-template-columns:minmax(0,1fr) minmax(280px,1fr);align-items:end;gap:clamp(40px,6vw,96px);display:grid}.split-section>*{min-width:0}.split-section h2{font-size:clamp(2.6rem,5vw,5.2rem)}.recognition-panel{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:clamp(24px,5vw,52px)}.recognition-panel .mono-label{color:var(--accent);margin-bottom:24px}.recognition-panel h3{margin-bottom:20px;font-size:clamp(1.8rem,4vw,3.2rem)}.activity-head{justify-content:space-between;align-items:end;gap:20px;margin-bottom:20px;display:flex}.activity-summary{color:var(--muted);margin:0;font-family:Geist Mono,SFMono-Regular,Consolas,monospace;font-size:.78rem}.activity-year-label{color:var(--subtle);letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:10px;font-family:Geist Mono,SFMono-Regular,Consolas,monospace;font-size:.6rem;display:flex}.activity-year-label select{border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;cursor:pointer;border-radius:6px;padding:5px 8px;font-size:.72rem}.activity-grid-wrap{--activity-0:color-mix(in srgb, var(--text) 9%, transparent);--activity-1:#0e4429;--activity-2:#006d32;--activity-3:#26a641;--activity-4:#39d353;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:clamp(20px,4vw,40px);overflow-x:auto}:root[data-theme=light] .activity-grid-wrap{--activity-0:#ebedf0;--activity-1:#9be9a8;--activity-2:#40c463;--activity-3:#30a14e;--activity-4:#216e39}.activity-grid{border-spacing:3px;border-collapse:separate;width:max-content;min-width:100%}.activity-grid-month{width:11px;height:14px;color:var(--subtle);letter-spacing:.04em;padding:0;font-family:Geist Mono,SFMono-Regular,Consolas,monospace;font-size:.55rem;font-weight:400;position:relative}.activity-grid-month span{position:absolute;top:0;left:0}.activity-grid-cell{background:var(--activity-0);border-radius:3px;width:11px;height:11px;padding:0}.activity-grid-cell.level-1{background:var(--activity-1)}.activity-grid-cell.level-2{background:var(--activity-2)}.activity-grid-cell.level-3{background:var(--activity-3)}.activity-grid-cell.level-4{background:var(--activity-4)}.activity-tooltip{z-index:10;border:1px solid var(--border);background:color-mix(in srgb, var(--canvas) 92%, transparent);color:var(--text);white-space:nowrap;pointer-events:none;backdrop-filter:blur(6px);border-radius:6px;padding:5px 9px;font-family:Geist Mono,SFMono-Regular,Consolas,monospace;font-size:.6rem;position:fixed}.activity-tooltip[hidden]{display:none}.recognition-panel p:last-child{max-width:52ch;color:var(--muted);margin:0}.background-grid{border-top:1px solid var(--border);grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;padding-top:16px;display:grid}.background-item{padding-top:24px}.background-item .mono-label{color:var(--accent);margin-bottom:32px}.background-item h3{margin-bottom:14px;font-size:1.5rem}.background-item p:last-child{color:var(--muted);margin:0;font-size:.9rem}.contact-section{border-top:1px solid var(--border);grid-template-columns:minmax(0,1fr) minmax(280px,.75fr);align-items:end;gap:48px;padding:82px 0;display:grid}.contact-panel{border:1px solid var(--border);border-radius:var(--radius);background:color-mix(in srgb, var(--surface) 88%, transparent);padding:clamp(24px,4vw,40px)}.contact-label{color:var(--subtle)}.email-link{color:var(--accent-strong);letter-spacing:-.04em;margin:14px 0 28px;font-size:clamp(1.1rem,2.4vw,1.65rem);text-decoration:none;display:inline-block}.copy-status{min-height:1.5em;color:var(--muted);margin:16px 0 0;font-size:.82rem}.proof-links{border-top:1px solid var(--border);flex-wrap:wrap;gap:16px 24px;margin-top:20px;padding-top:16px;display:flex}.proof-links a{color:var(--muted);font-size:.82rem;text-decoration:none}.proof-links a:hover{color:var(--accent-strong)}.typing-dialog{width:100%;max-width:none;height:100%;max-height:none;color:var(--text);background:0 0;border:0;margin:0;padding:0;inset:0}.typing-dialog::backdrop{background:color-mix(in srgb, var(--canvas) 62%, transparent);-webkit-backdrop-filter:blur(24px)saturate(.68)contrast(1.03)}.typing-shell{place-items:center;width:100%;min-height:100dvh;padding:0;display:grid}.typing-interface{background:color-mix(in srgb, var(--canvas) 92%, transparent);width:100%;min-height:100dvh;box-shadow:none;-webkit-backdrop-filter:blur(24px)saturate(.72)contrast(1.04);border:0;border-radius:0;align-content:center;padding:clamp(92px,16vh,160px) clamp(18px,6vw,84px) clamp(24px,4vh,56px);display:grid;position:relative;overflow:hidden}.typing-interface:before{z-index:0;content:"";pointer-events:none;background:linear-gradient(120deg,#ffffff14,#0000 28% 70%,#ffffff06);position:absolute;inset:0}.typing-interface>*{z-index:1;position:relative}.typing-close{z-index:2;width:44px;height:44px;color:var(--subtle);font:inherit;cursor:pointer;opacity:.28;background:0 0;border:0;font-size:1.25rem;line-height:1;transition:color .16s,opacity .16s;position:absolute;top:24px;right:24px}.typing-close:hover{color:var(--text);opacity:1}.typing-close:focus-visible{outline:1px solid color-mix(in srgb, var(--focus) 78%, transparent);outline-offset:3px;background:color-mix(in srgb, var(--surface-strong) 34%, transparent);border-radius:50%}.typing-metrics{color:var(--text);text-align:center;justify-content:center;gap:clamp(34px,7vw,72px);margin-bottom:clamp(44px,7vh,74px);font-family:Geist Mono,SFMono-Regular,Consolas,monospace;display:flex}.typing-metrics span{gap:3px;min-width:48px;display:grid}.typing-metrics strong{letter-spacing:-.06em;font-size:clamp(1.35rem,3vw,2.05rem);font-weight:500;line-height:1}.typing-metrics small,.typing-result-grid small{color:var(--subtle);letter-spacing:.14em;text-transform:uppercase;font-size:.58rem;line-height:1}.typing-passage-frame{cursor:text;outline:0;width:min(100%,900px);min-height:92px;margin-inline:auto;position:relative}.typing-passage-frame:focus-visible,.typing-passage-frame:focus-within{box-shadow:0 0 0 4px color-mix(in srgb, var(--focus) 18%, transparent);border-radius:4px}.typing-passage{min-height:92px;color:var(--muted);letter-spacing:-.045em;text-align:left;white-space:pre-wrap;user-select:none;margin:0;font-family:Geist Mono,SFMono-Regular,Consolas,monospace;font-size:clamp(1rem,1.35vw,1.5rem);line-height:1.85;display:block}.typing-passage span{color:color-mix(in srgb, var(--muted) 42%, transparent);transition:color 80ms,background-color 80ms}.typing-passage span.is-correct{color:var(--text)}.typing-passage span.is-incorrect{color:#e86c7c;text-underline-offset:4px;text-decoration:underline 1px}.typing-passage span.is-current{border-left:1px solid var(--accent-strong);animation:1.6s step-end infinite caret-cycle-border,5s linear infinite rainbow-hue}@keyframes caret-cycle-border{0%,24%{border-color:var(--accent-strong)}25%,49%{border-color:#0000}50%,74%{border-color:var(--accent)}75%,99%{border-color:#0000}to{border-color:var(--accent-strong)}}.typing-input{z-index:1;color:#0000;caret-color:#0000;width:100%;height:100%;font:inherit;opacity:0;cursor:text;background:0 0;border:0;outline:0;padding:0;display:block;position:absolute;inset:0}.typing-input::selection{background:0 0}.typing-keyboard{opacity:1;gap:8px;width:min(100%,560px);margin:clamp(42px,6vh,72px) auto 0;display:grid}@media (pointer:coarse){.typing-keyboard{display:none}}.typing-keyboard-row{justify-content:center;gap:8px;display:flex}.typing-keyboard-row span{border:1px solid color-mix(in srgb, var(--text) 16%, transparent);background:color-mix(in srgb, var(--surface-strong) 62%, transparent);width:48px;height:48px;box-shadow:inset 0 1px 0 color-mix(in srgb, var(--text) 7%, transparent), 0 4px 12px color-mix(in srgb, var(--canvas) 20%, transparent);color:var(--subtle);text-transform:lowercase;border-radius:10px;place-items:center;font-family:Geist Mono,SFMono-Regular,Consolas,monospace;font-size:.7rem;transition:background-color 80ms,border-color 80ms,color 80ms,transform 80ms;display:grid}.typing-keyboard-row span.is-pressed{border-color:color-mix(in srgb, var(--text) 30%, transparent);background:color-mix(in srgb, var(--text) 16%, transparent);color:var(--text);transform:translateY(1px)}.typing-keyboard-space span{text-transform:uppercase;letter-spacing:.12em;width:300px}.typing-shortcuts{color:var(--subtle);text-transform:lowercase;justify-content:center;gap:20px;margin:32px 0 0;font-family:Geist Mono,SFMono-Regular,Consolas,monospace;font-size:.68rem;display:flex}.typing-shortcuts span{align-items:center;gap:7px;display:inline-flex}.typing-shortcuts kbd,.typing-restart-confirm kbd{border:1px solid color-mix(in srgb, var(--text) 14%, transparent);min-width:28px;color:var(--muted);font:inherit;text-align:center;border-radius:5px;padding:3px 6px;font-size:.62rem}.typing-status{margin:0}.typing-restart-confirm{color:var(--muted);text-transform:lowercase;justify-content:center;gap:18px;margin-top:34px;font-family:Geist Mono,SFMono-Regular,Consolas,monospace;font-size:.72rem;display:flex}.typing-restart-confirm span:last-child{color:var(--subtle)}.typing-result-view{text-align:center}.typing-result-grid span{--card-x:50%;--card-y:50%;--card-tilt-x:0deg;--card-tilt-y:0deg;--card-shine-angle:115deg;--card-foil-x:0px;--card-foil-y:0px;border:1px solid color-mix(in srgb, var(--text) 14%, transparent);border-radius:var(--radius);background:color-mix(in srgb, var(--surface-strong) 62%, transparent);transform:perspective(1200px) rotateX(var(--card-tilt-x)) rotateY(var(--card-tilt-y));transform-style:preserve-3d;will-change:transform;padding:18px 8px;position:relative;overflow:hidden}.typing-result-grid span:before{z-index:0;background:radial-gradient(circle at var(--card-x) var(--card-y), #ffffffdb, transparent 19%), linear-gradient(112deg, transparent 32%, #ffffff6b 48%, transparent 58%), conic-gradient(from var(--card-shine-angle) at var(--card-x) var(--card-y), #5ad8ff2e, #bc7bff33, #ff89b22e, #ffde852e, #6aeecd29, #5ad8ff2e), repeating-linear-gradient(110deg, #ffffff14 0 1px, transparent 1px 9px);content:"";opacity:.2;pointer-events:none;mix-blend-mode:screen;transform:translate3d(var(--card-foil-x), var(--card-foil-y), 0) scale(.98);transition:opacity .18s,transform .16s;position:absolute;inset:-45%}.typing-result-grid span:after{z-index:2;border-radius:calc(var(--radius) - 1px);background:linear-gradient(var(--card-shine-angle), transparent 34%, #ffffff7a 48%, #ffffff1a 53%, transparent 64%), radial-gradient(circle at var(--card-x) var(--card-y), #ffffff57, transparent 26%);content:"";opacity:.3;pointer-events:none;mix-blend-mode:screen;border:1px solid #ecf2fa47;position:absolute;inset:1px}.typing-result-grid span strong,.typing-result-grid span small{z-index:3;position:relative}.typing-result-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(16px,4vw,42px);margin-bottom:42px;display:grid}.typing-result-grid span{gap:8px;display:grid}.typing-result-grid strong{color:var(--text);letter-spacing:-.08em;font-family:Geist Mono,SFMono-Regular,Consolas,monospace;font-size:clamp(1.55rem,4vw,2.75rem);font-weight:500;line-height:1}.typing-result-grid small{color:var(--muted);letter-spacing:.04em;text-transform:lowercase;font-size:.62rem}.typing-retry{border:0;border-bottom:1px solid color-mix(in srgb, var(--text) 22%, transparent);color:var(--muted);font:inherit;cursor:pointer;background:0 0;font-family:Geist Mono,SFMono-Regular,Consolas,monospace;font-size:.78rem;transition:border-color .16s,color .16s}.typing-retry:hover{border-color:var(--accent);color:var(--accent-strong)}.typing-view[hidden],.typing-restart-confirm[hidden]{display:none}.not-found{place-items:center;min-height:calc(100vh - 150px);padding-block:72px;display:grid}.not-found-panel{border:1px solid var(--accent);background:var(--surface);width:min(100%,820px);padding:clamp(28px,6vw,72px)}.stop-code{color:var(--accent);letter-spacing:.12em;margin-bottom:28px;font-family:Geist Mono,SFMono-Regular,Consolas,monospace;font-size:.8rem}.not-found h1{margin-bottom:28px;font-size:clamp(3rem,9vw,7rem)}.not-found-panel>p:not(.stop-code){max-width:46ch;color:var(--muted);margin-bottom:32px;font-size:1.05rem}.page-header{border-bottom:1px solid var(--border);padding:clamp(72px,12vw,140px) 0 64px}.page-header h1{max-width:900px;margin-top:34px}.page-header .section-intro{margin-top:28px}.back-link{margin-bottom:48px;display:inline-block}.case-study{padding:64px 0 120px}.case-header{grid-template-columns:minmax(0,1fr) minmax(280px,.7fr);align-items:end;gap:56px;display:grid}.case-header h1{margin:0;font-size:clamp(3.2rem,8vw,7.3rem)}.case-lede{max-width:46ch;color:var(--muted);margin:0;font-size:clamp(1.1rem,2vw,1.35rem);line-height:1.35}.case-meta-grid{border:1px solid var(--border);background:var(--border);grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;margin:72px 0;display:grid}.case-meta{background:var(--surface);min-width:0;padding:20px}.case-meta .mono-label{color:var(--subtle);margin-bottom:12px}.case-meta strong,.case-meta span:not(.mono-label){color:var(--text);font-size:.9rem;font-weight:520;display:block}.case-content{grid-template-columns:minmax(0,.72fr) minmax(0,1.28fr);gap:clamp(40px,9vw,140px);display:grid}.case-aside{align-self:start;position:sticky;top:112px}.case-aside .mono-label{color:var(--accent);margin-bottom:16px}.case-aside ul{margin:0;padding:0;list-style:none}.case-aside li{border-bottom:1px solid var(--border);color:var(--muted);padding:9px 0;font-size:.88rem}.case-aside a{color:var(--accent-strong)}.prose{max-width:68ch}.prose h2{margin:0 0 18px;font-size:clamp(1.8rem,3vw,2.6rem)}.prose p{color:var(--muted);margin-bottom:22px;font-size:1.02rem}.prose p:last-child{margin-bottom:0}.evidence-note{border-left:2px solid var(--accent);background:var(--surface);color:var(--muted);margin-top:36px;padding:18px;font-size:.88rem}.case-cta{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:24px;margin-top:84px;padding-top:24px;display:flex}.case-cta p{color:var(--muted);margin:0}.related-projects{margin-top:84px}.related-projects>.mono-label{color:var(--accent);margin-bottom:16px}.related-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.related-link{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:12px;justify-content:space-between;align-items:center;gap:20px;padding:18px;font-size:.9rem;text-decoration:none;transition:border-color .16s,transform .16s;display:flex}.related-link:hover{border-color:var(--accent);transform:translateY(-2px)}.related-link span:last-child{color:var(--accent-strong);font-size:1.15rem}.site-footer{border-top:1px solid var(--border);color:var(--subtle);justify-content:space-between;gap:20px;padding:24px 0 32px;font-size:.78rem;display:flex}.footer-links{gap:20px}@media (width<=820px){.site-sidebar{border-right:0;border-bottom:1px solid var(--border);flex-direction:row;align-items:center;gap:20px;width:auto;height:auto;padding:14px 20px;position:sticky;top:0}.sidebar-identity{flex:none}.sidebar-identity p,.sidebar-nav-label,.sidebar-email,.sidebar-note{display:none}.sidebar-nav{scrollbar-width:none;flex:1;gap:18px;min-width:0;margin:0;display:flex;overflow-x:auto}.sidebar-nav::-webkit-scrollbar{display:none}.sidebar-nav-group,.sidebar-nav-group+.sidebar-nav-group{border:0;flex:none;gap:18px;padding:0;display:flex}.sidebar-nav a,.sidebar-action{white-space:nowrap;padding:4px 0;font-size:.78rem}.sidebar-action kbd{display:none}.sidebar-bottom{flex:none;margin:0;display:block}.site-main{margin-left:0}.hero-grid,.case-header,.case-content,.contact-section,.split-section,.page-layout{grid-template-columns:1fr;gap:42px}.case-aside{position:static}.page-sidebar{justify-content:space-between;align-items:flex-start;gap:24px;display:flex;position:static}.page-sidebar nav{flex-wrap:wrap;gap:0 18px;display:flex}.page-sidebar a{border-bottom:0}.page-sidebar-note{text-align:right;margin:0}.case-meta-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.capability-grid,.background-grid{grid-template-columns:1fr}.capability p:not(.mono-label){min-height:0}.project-stage{min-height:600px;margin-bottom:58px}.showcase-card[data-position=prev],.showcase-card[data-position=next]{opacity:0;pointer-events:none;transform:translate3d(-50%,40px,-180px)scale(.8)}.project-stage-control{top:auto;bottom:-50px;transform:none}.project-stage-control:hover{transform:scale(1.05)}.project-stage-control-prev{left:calc(50% - 54px)}.project-stage-control-next{right:calc(50% - 54px)}}@media (width<=900px) and (width>=821px){.hero-grid,.case-header,.contact-section{grid-template-columns:1fr;gap:42px}}@media (width<=1100px) and (width>=821px){.split-section{grid-template-columns:1fr;gap:42px}}@media (width>=1101px){.split-section .section-heading{transform:translateY(-48px)}}@media (width<=650px){.shell{width:min(calc(100% - 28px), var(--max-width))}.site-sidebar{gap:12px;padding:12px 14px}.sidebar-nav,.sidebar-nav-group,.sidebar-nav-group+.sidebar-nav-group{gap:14px}.sidebar-nav a,.sidebar-action{font-size:.72rem}.sidebar-nav-group.sidebar-nav-group-secondary .sidebar-action{display:none}.hero{padding-top:72px}.hero-portrait{max-width:180px;margin-bottom:28px}h1{font-size:clamp(3.15rem,15.2vw,5.4rem)}h2{font-size:clamp(2.5rem,12vw,4rem)}.project-grid{grid-template-columns:1fr}.project-card{will-change:auto;min-height:390px;transform:none}.project-card-art{min-height:148px}.project-stage{min-height:600px}.showcase-card{width:calc(100% - 4px);min-height:420px;padding:18px}.showcase-card-art{min-height:150px}.tech-heading{flex-direction:column;align-items:flex-start;gap:12px}.tech-marquee .tech-item{justify-content:center;width:56px;padding-inline:12px}.tech-marquee .tech-name{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.case-meta-grid{grid-template-columns:1fr}.hero-actions,.contact-actions{flex-wrap:wrap;align-items:flex-start;gap:14px}.hero-foot{gap:9px 16px}.section{padding:72px 0 88px}.contact-section{padding:64px 0}.case-cta,.site-footer{flex-direction:column;align-items:flex-start}.related-grid{grid-template-columns:1fr}.footer-links{flex-wrap:wrap}.page-sidebar{flex-direction:column}.page-sidebar-note{text-align:left}.typing-dialog{overflow:auto}.typing-shell{min-height:100dvh}.typing-interface{align-content:start;min-height:100dvh;padding:76px 18px 40px}.typing-close{top:18px;right:14px}.typing-metrics{gap:28px;margin-bottom:40px}.typing-keyboard{gap:6px;margin-top:38px}.typing-keyboard-row{gap:4px}.typing-keyboard-row span{border-radius:7px;width:29px;height:31px;font-size:.62rem}.typing-keyboard-space span{width:194px}.typing-result-grid{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:28px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}::view-transition-old(root),::view-transition-new(root){animation:none}}.resume-actions{flex-wrap:wrap;gap:12px;margin-top:28px;display:flex}.resume-page{max-width:860px;padding-block:8px 64px}.resume-viewer{border:1px solid var(--border);border-radius:var(--radius);background:#fff;overflow:hidden}.resume-viewer img{width:100%;height:auto;display:block}.resume-note{color:var(--muted);margin:14px 0 0;font-size:.9rem;line-height:1.55}.resume-contact{color:var(--muted);margin:28px 0 0;font-size:.92rem}@media print{:root{--canvas:#fff;--surface:#fff;--text:#000;--muted:#333;--subtle:#555;--border:#ccc}.site-sidebar,.site-footer,.back-link,.resume-actions,.eyebrow,.hero,.typing-dialog{display:none!important}.site-main{margin-left:0!important}.page-header{padding-top:0}.resume-page{max-width:none;padding-block:0}.resume-viewer{display:none}a{color:#000;text-decoration:none}}
