.backdrop{position:fixed;inset:0;z-index:-1;overflow:hidden;pointer-events:none;background:var(--bg)}.backdrop-mesh{position:absolute;inset:-20%;background:radial-gradient(42% 38% at 18% 12%,rgba(110,123,255,.16),transparent 62%),radial-gradient(38% 34% at 84% 22%,rgba(167,139,250,.13),transparent 60%),radial-gradient(46% 40% at 52% 92%,rgba(99,210,195,.075),transparent 64%);filter:blur(28px)}.blob{position:absolute;border-radius:50%;filter:blur(88px);opacity:.42;will-change:transform}.blob-1{width:46vw;height:46vw;min-width:340px;min-height:340px;top:-12%;left:-8%;background:radial-gradient(circle,rgba(110,123,255,.5),transparent 70%);animation:drift-1 26s var(--ease-soft) infinite alternate}.blob-2{width:38vw;height:38vw;min-width:280px;min-height:280px;top:8%;right:-10%;background:radial-gradient(circle,rgba(167,139,250,.44),transparent 70%);animation:drift-2 32s var(--ease-soft) infinite alternate}.blob-3{width:42vw;height:42vw;min-width:300px;min-height:300px;bottom:-18%;left:32%;background:radial-gradient(circle,rgba(99,210,195,.3),transparent 70%);animation:drift-3 38s var(--ease-soft) infinite alternate}@keyframes drift-1{0%{transform:translateZ(0) scale(1)}to{transform:translate3d(7vw,9vh,0) scale(1.12)}}@keyframes drift-2{0%{transform:translateZ(0) scale(1.08)}to{transform:translate3d(-8vw,12vh,0) scale(.94)}}@keyframes drift-3{0%{transform:translateZ(0) scale(.96)}to{transform:translate3d(6vw,-10vh,0) scale(1.14)}}.backdrop-grain{position:absolute;inset:0;opacity:.16;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='0.5'/%3E%3C/svg%3E")}@media(prefers-reduced-motion:reduce){.blob{animation:none}}.nav{position:fixed;top:0;left:0;right:0;z-index:100;height:var(--nav-h);border-bottom:1px solid transparent;transition:background var(--d-base) var(--ease),border-color var(--d-base) var(--ease),backdrop-filter var(--d-base) var(--ease)}.nav-scrolled{border-bottom-color:var(--border)}.nav-inner{height:100%;display:flex;align-items:center;gap:var(--s-5)}.nav-brand{display:flex;align-items:center;gap:var(--s-3);margin-right:auto}.nav-mark{height:26px;width:auto;object-fit:contain}.nav-name{font-size:var(--t-sm);font-weight:560;letter-spacing:-.015em}.nav-links{display:flex;align-items:center;gap:var(--s-2)}.nav-link{position:relative;padding:var(--s-2) var(--s-3);border-radius:var(--r-xs);font-size:var(--t-sm);color:var(--text-muted);transition:color var(--d-fast) var(--ease),background var(--d-fast) var(--ease)}.nav-link:hover{color:var(--text);background:var(--surface)}.nav-cta{height:38px;padding-inline:var(--s-4)}.nav-immersive{display:inline-flex;align-items:center;gap:6px;overflow:hidden;color:var(--iris);font-weight:560}.nav-immersive:hover{background:var(--iris-soft)}.nav-immersive-label{display:inline-block;background:linear-gradient(110deg,transparent 40%,rgba(255,255,255,.95) 50%,transparent 60%),var(--gradient-accent);background-size:300% 100%,100% 100%;background-position:100% 0,0 0;-webkit-background-clip:text;background-clip:text;color:transparent;animation:nav-immersive-sheen 5s var(--ease-soft) infinite}@keyframes nav-immersive-sheen{0%,55%{background-position:100% 0,0 0}to{background-position:0% 0,0 0}}.nav-immersive-tap{position:relative;display:inline-flex;color:var(--mint);transform-origin:20% 10%;animation:nav-immersive-tap 3.2s var(--ease) infinite}.nav-immersive-tap svg{fill:currentColor;stroke:var(--bg);stroke-width:1;stroke-linejoin:round}.nav-immersive-tap:after{content:"";position:absolute;left:3px;top:1px;width:8px;height:8px;margin:-4px 0 0 -4px;border:1px solid var(--mint);border-radius:50%;opacity:0;pointer-events:none;animation:nav-immersive-ring 3.2s var(--ease-soft) infinite}@keyframes nav-immersive-tap{0%,70%,to{transform:translate(0) scale(1)}76%{transform:translate(-1px,-1px) scale(.8)}84%{transform:translate(0) scale(1)}}@keyframes nav-immersive-ring{0%,74%{transform:scale(.4);opacity:0}77%{opacity:.9}to{transform:scale(2.8);opacity:0}}.nav-immersive.is-launching .nav-immersive-label{animation:nav-immersive-flash .42s var(--ease) forwards}.nav-immersive.is-launching .nav-immersive-tap{animation:nav-immersive-press .42s var(--ease) forwards}.nav-immersive.is-launching .nav-immersive-tap:after{animation:nav-immersive-burst .42s var(--ease-soft) forwards}@keyframes nav-immersive-flash{0%{filter:brightness(1);transform:scale(1)}40%{filter:brightness(1.9);transform:scale(1.06)}to{filter:brightness(1.3);transform:scale(1)}}@keyframes nav-immersive-press{30%{transform:scale(.7)}to{transform:scale(1)}}@keyframes nav-immersive-burst{0%{transform:scale(.4);opacity:1}to{transform:scale(4.5);opacity:0}}@media(prefers-reduced-motion:reduce){.nav-immersive-label,.nav-immersive-tap,.nav-immersive-tap:after{animation:none}}@media(max-width:720px){.nav-links .nav-link:not(.nav-immersive){display:none}.nav-name{display:none}}.portrait{--tilt-x: 0deg;--tilt-y: 0deg;position:relative;width:clamp(210px,25vw,310px);aspect-ratio:1;margin-inline:auto;perspective:780px;perspective-origin:50% 45%}.portrait-scene{position:absolute;inset:0;transform-style:preserve-3d;transform:rotateX(var(--tilt-x)) rotateY(var(--tilt-y));transition:transform var(--d-base) var(--ease);animation:portrait-float 10s var(--ease-soft) infinite alternate}.portrait-glow{position:absolute;inset:-26%;border-radius:50%;background:radial-gradient(circle,rgba(110,123,255,.34),transparent 64%);filter:blur(36px);transform:translateZ(-90px);animation:portrait-breathe 8s var(--ease-soft) infinite alternate}.portrait-disc{position:absolute;inset:9%;border-radius:50%;overflow:hidden;transform:translateZ(0);background:var(--bg-elevated);box-shadow:0 26px 60px #0000008c,0 0 0 1px #ffffff12;-webkit-mask-image:radial-gradient(circle at 50% 46%,#000 62%,rgba(0,0,0,.55) 82%,transparent 97%);mask-image:radial-gradient(circle at 50% 46%,#000 62%,rgba(0,0,0,.55) 82%,transparent 97%)}.portrait-img{width:100%;height:100%;object-fit:cover;object-position:50% 17%;transform:scale(1.52);filter:grayscale(.5) contrast(1.22) saturate(.78) brightness(.8)}.portrait-duotone{position:absolute;inset:0;background:linear-gradient(165deg,#6e7bff66,#a78bfa29 45%,#08080a80);mix-blend-mode:soft-light}.portrait-vignette{position:absolute;inset:0;background:radial-gradient(circle at 50% 40%,transparent 24%,rgba(8,8,10,.42) 52%,rgba(8,8,10,.82) 76%,rgba(8,8,10,.99) 96%)}.portrait-rim{position:absolute;inset:0;background:radial-gradient(70% 60% at 22% 14%,rgba(168,178,255,.3),transparent 56%),radial-gradient(50% 46% at 84% 78%,rgba(99,210,195,.16),transparent 60%);mix-blend-mode:screen}.portrait[data-graded=light] .portrait-img{object-position:48% 0%;transform:scale(1.75);transform-origin:50% 0%;filter:contrast(1.05) saturate(1.02) brightness(1.02)}.portrait[data-graded=light] .portrait-duotone{opacity:.28}.portrait[data-graded=light] .portrait-rim{opacity:.55}.portrait[data-graded=light] .portrait-vignette{background:radial-gradient(circle at 50% 44%,transparent 56%,rgba(8,8,10,.4) 82%,rgba(8,8,10,.9) 99%)}.portrait-particle{position:absolute;top:50%;left:50%;width:5px;height:5px;border-radius:50%;background:var(--mint);box-shadow:0 0 12px #63d2c3d9}.portrait-particle-1{--pz: 80px;--pr: clamp(112px, 13vw, 165px);animation:portrait-orbit 13s linear infinite}.portrait-particle-2{--pz: -60px;--pr: clamp(126px, 14.5vw, 182px);background:var(--violet);box-shadow:0 0 12px #a78bfad9;animation:portrait-orbit 18s linear infinite reverse;animation-delay:-7s}.portrait-particle-3{--pz: 46px;--pr: clamp(100px, 11.5vw, 148px);background:var(--amber);box-shadow:0 0 12px #f5b45cbf;animation:portrait-orbit 23s linear infinite;animation-delay:-15s}.portrait-shadow{position:absolute;left:50%;bottom:-9%;width:66%;height:13%;translate:-50% 0;border-radius:50%;background:radial-gradient(ellipse,rgba(0,0,0,.62),transparent 72%);filter:blur(14px);transform:translateZ(-70px)}@keyframes portrait-float{0%{translate:0 -7px}to{translate:0 9px}}@keyframes portrait-breathe{0%{opacity:.72;scale:.95}to{opacity:1;scale:1.05}}@keyframes portrait-orbit{0%{transform:translateZ(var(--pz)) rotate(0) translate(var(--pr)) rotate(0)}to{transform:translateZ(var(--pz)) rotate(360deg) translate(var(--pr)) rotate(-360deg)}}@media(prefers-reduced-motion:reduce){.portrait-scene,.portrait-glow,.portrait-particle{animation:none}}@media(hover:none){.portrait-scene{transform:none}}.portrait[data-cropped] .portrait-img{transform:none;transform-origin:50% 50%;object-position:50% 50%;object-fit:cover}.portrait[data-cropped] .portrait-disc{-webkit-mask-image:none;mask-image:none}.portrait[data-cropped] .portrait-vignette{background:radial-gradient(circle at 50% 50%,transparent 88%,rgba(8,8,10,.45) 100%)}.portrait[data-cropped] .portrait-duotone{opacity:.12}.portrait[data-cropped] .portrait-rim{opacity:.3}.hero{position:relative;min-height:100svh;display:flex;align-items:center;padding-top:calc(var(--nav-h) + var(--s-7));padding-bottom:var(--s-9)}.hero-inner{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(var(--s-7),6vw,var(--s-9));align-items:center}.hero-content{display:flex;flex-direction:column;align-items:flex-start;gap:var(--s-5)}.hero-badge{height:var(--hero-badge-h, 32px);gap:var(--s-2);color:var(--text-muted);font-size:var(--t-xs)}.hero-badge-sep{color:var(--text-dim)}.hero-title{max-width:15ch}.hero-title[data-loading]{color:transparent;background:linear-gradient(100deg,var(--surface) 30%,var(--surface-hover) 50%,var(--surface) 70%);background-size:200% 100%;-webkit-background-clip:initial;background-clip:initial;border-radius:var(--r-md);animation:shimmer 1.6s linear infinite}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.hero-lead{max-width:46ch}.hero-actions{display:flex;flex-wrap:wrap;gap:var(--s-3);margin-top:var(--s-2)}.hero-aside{display:flex;flex-direction:column;gap:var(--s-6);min-width:0}.hero-orb-wrap{display:grid;place-items:center}@media(min-width:961px)and (max-height:820px){.hero{padding-top:calc(var(--nav-h) + var(--s-5));padding-bottom:var(--s-7)}.hero-content{gap:var(--s-4)}.hero .hero-title{font-size:clamp(2.5rem,5vw,4rem)}.hero-lead{font-size:var(--t-body)}.orb{width:clamp(150px,17vw,210px)}.portrait{width:clamp(170px,19vw,240px)}.hero-aside{gap:var(--s-5)}}@media(max-width:960px){.hero{min-height:auto;padding-block:calc(var(--nav-h) + var(--s-6)) var(--s-8)}.hero-inner{grid-template-columns:minmax(0,1fr) auto;align-items:start;column-gap:var(--s-5);row-gap:var(--s-6)}.hero-aside{display:contents}.hero-content{grid-column:1;grid-row:1}.hero-orb-wrap{display:grid;grid-column:2;grid-row:1;margin-top:calc(var(--hero-badge-h, 32px) + var(--s-5))}.hero-status-wrap{grid-column:1 / -1;grid-row:2}.hero .hero-title{font-size:clamp(1.75rem,7vw,2.75rem);max-width:14ch}.hero-lead{max-width:34ch}.portrait{width:clamp(116px,30vw,200px)}}@media(max-width:560px){.hero-inner{column-gap:var(--s-4)}.portrait{width:clamp(104px,32vw,150px)}}.status{position:relative;padding:var(--s-5);border-radius:var(--r-xl);box-shadow:var(--shadow-lg),var(--shadow-glow);overflow:hidden}.status:after{content:"";position:absolute;top:0;left:var(--s-5);right:var(--s-5);height:1px;background:var(--gradient-accent);opacity:.6}.status[data-loading]{opacity:.55}.status-head{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);padding-bottom:var(--s-4)}.status-avail{display:flex;align-items:center;gap:var(--s-2);min-width:0}.status-avail-text{font-size:var(--t-sm);font-weight:550;letter-spacing:-.01em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-time{color:var(--text-dim);flex-shrink:0}.status-current{display:grid;grid-template-columns:1fr auto;gap:var(--s-2) var(--s-3);padding-block:var(--s-4);border-top:1px solid var(--border)}.status-current .eyebrow{grid-column:1 / -1}.status-project{grid-column:1 / -1;font-size:var(--t-h3);font-weight:640;letter-spacing:-.025em;line-height:1.2}.status-project a{transition:color var(--d-fast) var(--ease)}.status-project a:hover{color:var(--iris)}.status-bar{align-self:center;height:6px;border-radius:var(--r-pill);background:#ffffff12;overflow:hidden}.status-bar-fill{display:block;height:100%;width:var(--progress, 0%);border-radius:inherit;background:var(--gradient-accent);background-size:200% 100%;transition:width var(--d-slow) var(--ease);animation:bar-flow 5s linear infinite}@keyframes bar-flow{0%{background-position:0% 0}to{background-position:200% 0}}.status-progress{color:var(--text-muted);font-weight:500}.status-rows{display:flex;flex-direction:column;border-top:1px solid var(--border);padding-top:var(--s-2)}.status-row{display:flex;align-items:center;justify-content:space-between;gap:var(--s-4);padding-block:var(--s-3);font-size:var(--t-sm);min-width:0}.status-row+.status-row{border-top:1px solid rgba(255,255,255,.04)}.status-link{display:flex;align-items:center;justify-content:space-between;gap:var(--s-4);padding:var(--s-3) var(--s-2);margin-inline:calc(var(--s-2) * -1);border-radius:var(--r-sm);font-size:var(--t-sm);min-width:0;transition:background var(--d-fast) var(--ease),color var(--d-fast) var(--ease)}.status-link+.status-link{border-top:1px solid rgba(255,255,255,.04)}.status-link:hover{background:var(--surface-hover)}.status-link-label{display:flex;align-items:center;gap:var(--s-2);color:var(--text);white-space:nowrap}.status-link-go{display:flex;align-items:center;gap:6px;min-width:0;color:var(--text-dim);transition:color var(--d-fast) var(--ease),gap var(--d-fast) var(--ease)}.status-link:hover .status-link-go{color:var(--iris);gap:9px}.status-link-url{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--t-xs)}.status-row-label{color:var(--text-dim);white-space:nowrap}.status-row-value{display:flex;align-items:center;gap:var(--s-2);color:var(--text-muted);min-width:0;text-transform:capitalize}.status-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-transform:none}.status-ago{color:var(--text-dim);font-size:var(--t-xs);flex-shrink:0;text-transform:none}@media(prefers-reduced-motion:reduce){.status-bar-fill{animation:none}}.lightbox{position:fixed;inset:0;z-index:500;display:grid;place-items:center;padding:clamp(var(--s-4),5vw,var(--s-8));background:#040406db;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);animation:lightbox-in var(--d-base) var(--ease);cursor:zoom-out}@keyframes lightbox-in{0%{opacity:0}to{opacity:1}}.lightbox-img{max-width:100%;max-height:100%;width:auto;height:auto;border-radius:var(--r-lg);border:1px solid var(--border-strong);box-shadow:var(--shadow-lg);cursor:default;animation:lightbox-rise var(--d-slow) var(--ease)}@keyframes lightbox-rise{0%{opacity:0;transform:scale(.97) translateY(10px)}to{opacity:1;transform:none}}.lightbox-close{position:absolute;top:clamp(var(--s-3),3vw,var(--s-5));right:clamp(var(--s-3),3vw,var(--s-5));display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--surface);border:1px solid var(--border-strong);color:var(--text-muted);transition:color var(--d-fast) var(--ease),background var(--d-fast) var(--ease)}.lightbox-close:hover{color:var(--text);background:var(--surface-hover)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.project-media-btn{display:block;width:100%;height:100%;padding:0;border:0;background:none;cursor:zoom-in}@media(prefers-reduced-motion:reduce){.lightbox,.lightbox-img{animation:none}}.project-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,400px),1fr));gap:clamp(var(--s-4),2.4vw,var(--s-6))}.project{--accent: var(--iris);--tilt-x: 0deg;--tilt-y: 0deg;display:flex;flex-direction:column;overflow:hidden;height:100%;transform-style:preserve-3d;transform:perspective(1000px) rotateX(var(--tilt-x)) rotateY(var(--tilt-y));transition:transform var(--d-base) var(--ease),border-color var(--d-base) var(--ease),box-shadow var(--d-base) var(--ease),background var(--d-base) var(--ease);will-change:transform}.project:hover{background:var(--surface-hover);border-color:var(--border-strong);box-shadow:var(--shadow-lg);transform:perspective(1000px) rotateX(var(--tilt-x)) rotateY(var(--tilt-y)) translateY(-6px)}.project.gradient-border:before{background:linear-gradient(135deg,var(--accent),transparent 55%,var(--accent))}.project-media{position:relative;aspect-ratio:16 / 10;overflow:hidden;background:var(--bg-elevated);border-bottom:1px solid var(--border)}.project-media img{width:100%;height:100%;object-fit:cover;transition:transform var(--d-slow) var(--ease),filter var(--d-slow) var(--ease);filter:saturate(.94) brightness(.94)}.project:hover .project-media img{transform:scale(1.035);filter:saturate(1) brightness(1)}.project-media-empty{display:grid;place-items:center;width:100%;height:100%;background:radial-gradient(120% 120% at 24% 12%,var(--accent-soft),transparent 62%),var(--bg-elevated);color:var(--accent);font-size:clamp(3rem,7vw,4.5rem);font-weight:700;opacity:.44}.project-sheen{position:absolute;inset:0;background:radial-gradient(38% 60% at var(--mx, 50%) var(--my, 50%),rgba(255,255,255,.1),transparent 68%);opacity:0;transition:opacity var(--d-base) var(--ease);pointer-events:none}.project:hover .project-sheen{opacity:1}.project-body{display:flex;flex-direction:column;gap:var(--s-3);padding:var(--s-5);flex:1}.project-heading{display:flex;align-items:center;gap:var(--s-3);justify-content:space-between}.project-title{font-size:var(--t-h3);font-weight:620;letter-spacing:-.025em}.project-flag{flex-shrink:0;padding:3px var(--s-2);border-radius:var(--r-pill);background:var(--accent-soft);color:var(--accent);font-size:var(--t-micro);font-weight:600;letter-spacing:.06em;text-transform:uppercase}.project-summary{color:var(--text-muted);font-size:var(--t-sm);line-height:1.6}.project-tech{display:flex;flex-wrap:wrap;gap:var(--s-2);margin-top:auto;padding-top:var(--s-2)}.project-tech-item{height:26px;font-size:var(--t-micro)}.project-links{display:flex;flex-wrap:wrap;gap:var(--s-4);padding-top:var(--s-4);border-top:1px solid var(--border)}.project-link{display:inline-flex;align-items:center;gap:6px;font-size:var(--t-sm);font-weight:550;color:var(--text-muted);transition:color var(--d-fast) var(--ease),gap var(--d-fast) var(--ease)}.project-link:hover{color:var(--text);gap:10px}.project-link-primary{color:var(--accent)}.project-link-primary:hover{color:var(--accent);filter:brightness(1.2)}.project-skeleton{min-height:420px;background:linear-gradient(100deg,var(--surface) 30%,var(--surface-hover) 50%,var(--surface) 70%);background-size:200% 100%;animation:shimmer 1.6s linear infinite}@media(hover:none){.project,.project:hover{transform:none}}@media(prefers-reduced-motion:reduce){.project,.project:hover,.project-media img,.project:hover .project-media img{transform:none}.project-skeleton{animation:none}}.project-details{margin-top:var(--s-4)}.project-details-toggle{display:flex;align-items:center;gap:var(--s-3);width:100%;color:var(--text-dim);font-size:var(--t-xs);transition:color var(--d-fast) var(--ease)}.project-details-toggle:hover{color:var(--text-muted)}.project-details-rule{flex:1;height:1px;background:var(--border)}.project-details-label{flex-shrink:0}.project-details-chevron{flex-shrink:0;transition:transform var(--d-base) var(--ease)}.project-details[data-open] .project-details-chevron{transform:rotate(180deg)}.project-details-panel{display:grid;grid-template-rows:0fr;visibility:hidden;transition:grid-template-rows var(--d-base) var(--ease),visibility var(--d-base) var(--ease)}.project-details[data-open] .project-details-panel{grid-template-rows:1fr;visibility:visible}.project-details-inner{overflow:hidden}.project-details-inner p{margin:0;padding-top:var(--s-3);color:var(--text-muted);font-size:var(--t-sm);line-height:1.65;white-space:pre-wrap}@media(prefers-reduced-motion:reduce){.project-details-panel,.project-details-chevron{transition:none}}.project-media-btn{position:relative;display:block;width:100%;height:100%;cursor:zoom-in}.project-media-btn[data-press] img{animation:project-press .46s var(--ease)}@keyframes project-press{0%{transform:scale(1.035)}20%{transform:scale(.992)}to{transform:scale(1.035)}}.project-ripple{position:absolute;left:var(--px, 50%);top:var(--py, 50%);width:14px;height:14px;margin:-7px 0 0 -7px;border-radius:50%;opacity:0;pointer-events:none;background:radial-gradient(circle,rgba(255,255,255,.32) 0%,color-mix(in srgb,var(--accent) 45%,transparent) 52%,rgba(255,255,255,.55) 70%,transparent 73%)}.project-media-btn[data-press] .project-ripple{animation:project-ripple .62s var(--ease-soft, var(--ease)) forwards}@keyframes project-ripple{0%{opacity:.9;transform:scale(.35)}to{opacity:0;transform:scale(30)}}@media(prefers-reduced-motion:reduce){.project-media-btn[data-press] img,.project-media-btn[data-press] .project-ripple{animation:none}}.project-zoom{position:absolute;top:var(--s-3);right:var(--s-3);display:grid;place-items:center;width:28px;height:28px;border-radius:var(--r-sm);background:#08080a8c;border:1px solid rgba(255,255,255,.14);color:#ffffffd1;backdrop-filter:blur(8px);opacity:.7;pointer-events:none;transition:opacity var(--d-base) var(--ease),transform var(--d-base) var(--ease),border-color var(--d-base) var(--ease)}.project:hover .project-zoom{opacity:1;transform:scale(1.06);border-color:#ffffff47}.project-media-btn[data-press] .project-zoom{transform:scale(.92)}@media(prefers-reduced-motion:reduce){.project-zoom{transition:none}}.stack-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:var(--s-4)}.stack-group{display:flex;flex-direction:column;gap:var(--s-4);padding:var(--s-5);height:100%}.stack-group:hover{background:var(--surface-hover);border-color:var(--border-strong)}.stack-list{display:flex;flex-direction:column;gap:var(--s-3)}.stack-item{display:grid;grid-template-columns:1fr 72px;align-items:center;gap:var(--s-3)}.stack-name{font-size:var(--t-sm);color:var(--text)}.stack-meter{height:4px;border-radius:var(--r-pill);background:#ffffff12;overflow:hidden}.stack-meter-fill{display:block;height:100%;width:var(--level, 0%);border-radius:inherit;background:var(--gradient-accent);transition:width var(--d-slow) var(--ease)}.contact{--accent: var(--iris);padding:clamp(var(--s-6),6vw,var(--s-9)) var(--s-5);border-radius:var(--r-2xl);background:radial-gradient(90% 130% at 50% 0%,var(--iris-soft),transparent 62%),var(--surface);overflow:hidden}.contact.gradient-border:before{opacity:.5}.contact.gradient-border:hover:before{opacity:.85}.contact-inner{display:flex;flex-direction:column;align-items:center;gap:var(--s-4);text-align:center;max-width:620px;margin-inline:auto}.contact-title{max-width:16ch}.contact-lead{max-width:44ch}.contact-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--s-3);margin-top:var(--s-3)}.contact-socials{display:flex;gap:var(--s-2);margin-top:var(--s-4)}.contact-social{display:grid;place-items:center;width:42px;height:42px;border-radius:var(--r-sm);background:var(--surface);border:1px solid var(--border);color:var(--text-muted);transition:color var(--d-fast) var(--ease),background var(--d-fast) var(--ease),transform var(--d-fast) var(--ease),border-color var(--d-fast) var(--ease)}.contact-social:hover{color:var(--text);background:var(--surface-hover);border-color:var(--border-strong);transform:translateY(-2px)}.footer{border-top:1px solid var(--border);padding-block:var(--s-6);margin-top:var(--s-7)}.footer-inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s-4)}.footer-meta{display:flex;flex-direction:column;gap:2px}.footer-name{font-size:var(--t-sm);font-weight:560}.footer-copy{font-size:var(--t-xs);color:var(--text-dim)}.footer-socials{display:flex;flex-wrap:wrap;gap:var(--s-4)}.footer-social{display:inline-flex;align-items:center;gap:6px;font-size:var(--t-xs);color:var(--text-dim);transition:color var(--d-fast) var(--ease)}.footer-social:hover{color:var(--text)}.error-banner{position:fixed;left:50%;bottom:var(--s-5);translate:-50% 0;z-index:200;display:flex;align-items:center;gap:var(--s-3);max-width:calc(100vw - var(--s-6));padding:var(--s-3) var(--s-3) var(--s-3) var(--s-4);border-radius:var(--r-pill);box-shadow:var(--shadow-lg);font-size:var(--t-sm);animation:banner-in var(--d-base) var(--ease)}@keyframes banner-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.error-banner-text{color:var(--text-muted)}.error-banner-detail{color:var(--text-dim)}@media(max-width:560px){.error-banner-detail{display:none}}.timeline{position:relative;display:flex;flex-direction:column;gap:var(--s-4);padding-left:var(--s-6)}.timeline:before{content:"";position:absolute;left:7px;top:10px;bottom:10px;width:1px;background:linear-gradient(to bottom,transparent,var(--border-strong) 12%,var(--border-strong) 88%,transparent)}.timeline-item{position:relative}.timeline-marker{position:absolute;left:calc(var(--s-6) * -1 + 3px);top:26px;width:9px;height:9px;border-radius:50%;background:var(--gradient-accent);box-shadow:0 0 0 4px var(--bg)}.timeline-card{padding:var(--s-5);display:flex;flex-direction:column;gap:var(--s-2)}.timeline-card:hover{background:var(--surface-hover);border-color:var(--border-strong)}.timeline-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--s-4);flex-wrap:wrap}.timeline-title{font-size:var(--t-h3);font-weight:620;letter-spacing:-.022em}.timeline-period{color:var(--text-dim);white-space:nowrap;flex-shrink:0}.timeline-org{color:var(--text-muted);font-size:var(--t-sm)}.timeline-dim{color:var(--text-dim)}.timeline-badge{align-self:flex-start;padding:3px var(--s-3);border-radius:var(--r-pill);background:var(--iris-soft);border:1px solid var(--border);color:var(--iris);font-size:var(--t-micro);font-weight:600;letter-spacing:.04em}.timeline-desc{color:var(--text-muted);font-size:var(--t-sm);line-height:1.6}.timeline-tech{display:flex;flex-wrap:wrap;gap:var(--s-2);margin-top:var(--s-1)}.timeline-tech-item{height:24px;font-size:var(--t-micro)}.timeline-link{align-self:flex-start;display:inline-flex;align-items:center;gap:5px;margin-top:var(--s-1);font-size:var(--t-sm);font-weight:550;color:var(--iris);transition:gap var(--d-fast) var(--ease)}.timeline-link:hover{gap:9px}@media(max-width:560px){.timeline{padding-left:var(--s-5)}.timeline-marker{left:calc(var(--s-5) * -1 + 2px)}.timeline:before{left:5px}.timeline-head{gap:var(--s-2)}}.gh-buttons{display:flex;gap:var(--s-2);flex-wrap:wrap}.gh-btn{display:inline-flex;align-items:center;gap:var(--s-2);height:34px;padding-inline:var(--s-3);border-radius:var(--r-pill);background:var(--surface);border:1px solid var(--border);font-size:var(--t-xs);font-weight:550;color:var(--text-muted);white-space:nowrap;transition:color var(--d-fast) var(--ease),background var(--d-fast) var(--ease),border-color var(--d-fast) var(--ease),transform var(--d-fast) var(--ease)}.gh-btn:hover{color:var(--text);background:var(--surface-hover);border-color:var(--border-strong);transform:translateY(-1px)}.gh-count{display:inline-grid;place-items:center;min-width:22px;height:20px;padding-inline:6px;margin-right:-4px;border-radius:var(--r-pill);background:#ffffff12;font-size:var(--t-micro);font-weight:600;font-variant-numeric:tabular-nums;color:var(--text)}@media(max-width:560px){.gh-btn{height:32px}}.ask-fab{--fab-h: 46px;--fab-gap: calc(clamp(var(--s-4), 3vw, var(--s-6)) + env(safe-area-inset-bottom, 0px)) ;position:fixed;right:clamp(var(--s-4),3vw,var(--s-6));bottom:var(--fab-gap);z-index:300;transform:translateZ(0);backface-visibility:hidden;display:inline-flex;align-items:center;gap:var(--s-2);height:46px;padding-inline:var(--s-5);border-radius:var(--r-pill);background:var(--gradient-accent);color:#0a0a0c;font-size:var(--t-sm);font-weight:620;box-shadow:var(--shadow-lg),0 0 34px #6e7bff52;transition:transform var(--d-fast) var(--ease),box-shadow var(--d-base) var(--ease)}.ask-fab:hover{transform:translateZ(0) translateY(-2px);box-shadow:var(--shadow-lg),0 0 46px #6e7bff75}.ask-fab:active{transform:translateZ(0) scale(.97)}.ask-panel{position:fixed;right:clamp(var(--s-4),3vw,var(--s-6));bottom:calc(clamp(var(--s-4),3vw,var(--s-6)) + 58px + env(safe-area-inset-bottom,0px));z-index:301;width:min(380px,calc(100vw - var(--s-6)));max-height:min(520px,calc(100vh - 140px));display:flex;flex-direction:column;border-radius:var(--r-xl);box-shadow:var(--shadow-lg);overflow:hidden;animation:ask-in var(--d-base) var(--ease)}@keyframes ask-in{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}.ask-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s-3);padding:var(--s-4);border-bottom:1px solid var(--border)}.ask-title{display:block;font-size:var(--t-sm);font-weight:620}.ask-note{display:block;margin-top:2px;font-size:var(--t-micro);color:var(--text-dim)}.ask-close{color:var(--text-dim);padding:4px;border-radius:var(--r-xs);transition:color var(--d-fast) var(--ease)}.ask-close:hover{color:var(--text)}.ask-feed{flex:1;overflow-y:auto;padding:var(--s-4);display:flex;flex-direction:column;gap:var(--s-3)}.ask-msg{max-width:92%;padding:var(--s-3) var(--s-4);border-radius:var(--r-md);font-size:var(--t-sm);line-height:1.55;white-space:pre-wrap}.ask-bot{align-self:flex-start;background:var(--surface);border:1px solid var(--border);color:var(--text-muted);border-bottom-left-radius:var(--r-xs)}.ask-bot[data-error]{border-color:#e86a8a66;color:var(--rose)}.ask-user{align-self:flex-end;background:var(--iris-soft);border:1px solid rgba(110,123,255,.3);color:var(--text);border-bottom-right-radius:var(--r-xs)}.ask-typing{display:flex;gap:5px;align-items:center;padding-block:var(--s-4)}.ask-typing span{width:6px;height:6px;border-radius:50%;background:var(--text-dim);animation:ask-blink 1.3s var(--ease-soft) infinite}.ask-typing span:nth-child(2){animation-delay:.18s}.ask-typing span:nth-child(3){animation-delay:.36s}@keyframes ask-blink{0%,60%,to{opacity:.25;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}.ask-form{display:flex;gap:var(--s-2);padding:var(--s-3) var(--s-4) var(--s-4);border-top:1px solid var(--border)}.ask-input{flex:1;min-width:0;height:38px;padding-inline:var(--s-3);border-radius:var(--r-sm);background:var(--bg);border:1px solid var(--border);color:var(--text);font-size:var(--t-sm)}.ask-input:focus{outline:none;border-color:var(--iris)}.ask-input:disabled{opacity:.6}.ask-send{display:grid;place-items:center;width:38px;height:38px;border-radius:var(--r-sm);background:var(--gradient-accent);color:#0a0a0c;flex-shrink:0;transition:opacity var(--d-fast) var(--ease)}.ask-send:disabled{opacity:.4;cursor:not-allowed}@supports (height: 100svh){.ask-fab{bottom:calc(100lvh - 100svh + var(--fab-gap))}.ask-panel{bottom:calc(100lvh - 100svh + clamp(var(--s-4),3vw,var(--s-6)) + 58px + env(safe-area-inset-bottom,0px));max-height:min(520px,calc(100svh - 140px))}}@media(max-width:480px){.ask-fab{--fab-h: 42px;height:var(--fab-h);padding-inline:var(--s-4);font-size:var(--t-xs);gap:6px}.ask-panel{right:var(--s-3);left:var(--s-3);width:auto}}@media(prefers-reduced-motion:reduce){.ask-panel{animation:none}.ask-typing span{animation:none;opacity:.5}}.ask-link{color:var(--iris);text-decoration:underline;text-underline-offset:2px;word-break:break-word}.ask-link:hover{color:var(--text)}:root{--bg: #08080A;--bg-elevated: #0D0D10;--bg-raised: #131318;--surface: rgba(255, 255, 255, .026);--surface-hover: rgba(255, 255, 255, .045);--glass: rgba(14, 14, 18, .62);--glass-blur: 20px;--border: rgba(255, 255, 255, .075);--border-strong: rgba(255, 255, 255, .14);--text: #F5F5F7;--text-muted: #9A9AA5;--text-dim: #6E6E7A;--iris: #6E7BFF;--violet: #A78BFA;--mint: #63D2C3;--amber: #F5B45C;--rose: #E86A8A;--iris-soft: rgba(110, 123, 255, .14);--violet-soft: rgba(167, 139, 250, .12);--mint-soft: rgba(99, 210, 195, .12);--amber-soft: rgba(245, 180, 92, .12);--gradient-accent: linear-gradient(110deg, var(--iris), var(--violet) 48%, var(--mint));--gradient-text: linear-gradient(180deg, #FFFFFF 30%, rgba(245, 245, 247, .62));--r-xs: 8px;--r-sm: 12px;--r-md: 16px;--r-lg: 20px;--r-xl: 24px;--r-2xl: 32px;--r-pill: 999px;--s-1: 4px;--s-2: 8px;--s-3: 12px;--s-4: 16px;--s-5: 24px;--s-6: 32px;--s-7: 48px;--s-8: 64px;--s-9: 96px;--s-10: 128px;--s-11: 180px;--font-sans: "Geist", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono: "Geist Mono", "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--t-display: clamp(2.75rem, 7.4vw, 6.5rem);--t-h1: clamp(2.25rem, 4.6vw, 3.75rem);--t-h2: clamp(1.75rem, 3.2vw, 2.75rem);--t-h3: clamp(1.25rem, 1.9vw, 1.6rem);--t-lead: clamp(1.0625rem, 1.35vw, 1.3125rem);--t-body: 1rem;--t-sm: .875rem;--t-xs: .8125rem;--t-micro: .6875rem;--ease: cubic-bezier(.16, 1, .3, 1);--ease-soft: cubic-bezier(.4, 0, .2, 1);--d-fast: .18s;--d-base: .28s;--d-slow: .6s;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow-md: 0 4px 16px rgba(0, 0, 0, .34), 0 1px 2px rgba(0, 0, 0, .4);--shadow-lg: 0 18px 48px rgba(0, 0, 0, .46), 0 2px 8px rgba(0, 0, 0, .34);--shadow-glow: 0 0 64px rgba(110, 123, 255, .14);--max-w: 1180px;--gutter: clamp(20px, 5vw, 48px);--nav-h: 68px}[data-accent=iris]{--accent: var(--iris);--accent-soft: var(--iris-soft)}[data-accent=violet]{--accent: var(--violet);--accent-soft: var(--violet-soft)}[data-accent=mint]{--accent: var(--mint);--accent-soft: var(--mint-soft)}[data-accent=amber]{--accent: var(--amber);--accent-soft: var(--amber-soft)}[data-accent=rose]{--accent: var(--rose);--accent-soft: rgba(232, 106, 138, .12)}@media(prefers-reduced-motion:reduce){:root{--d-fast: 1ms;--d-base: 1ms;--d-slow: 1ms}}*,*:before,*:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--nav-h) + var(--s-5))}body{background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:var(--t-body);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-synthesis-weight:none;text-rendering:optimizeLegibility;overflow-x:hidden}img,svg,video{display:block;max-width:100%}button,input,textarea,select{font:inherit;color:inherit}button{background:none;border:none;cursor:pointer}a{color:inherit;text-decoration:none}ul,ol{list-style:none;padding:0}:focus-visible{outline:2px solid var(--iris);outline-offset:3px;border-radius:var(--r-xs)}::selection{background:#6e7bff4d;color:#fff}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:var(--r-pill);border:3px solid var(--bg)}::-webkit-scrollbar-thumb:hover{background:#ffffff38}h1,h2,h3,h4{font-weight:600;line-height:1.06;letter-spacing:-.03em;text-wrap:balance}p{text-wrap:pretty}.display{font-size:var(--t-display);font-weight:620;letter-spacing:-.045em;line-height:.98;background:var(--gradient-text);-webkit-background-clip:text;background-clip:text;color:transparent}.h2{font-size:var(--t-h2)}.h3{font-size:var(--t-h3)}.lead{font-size:var(--t-lead);color:var(--text-muted);line-height:1.55;letter-spacing:-.011em}.eyebrow{font-size:var(--t-micro);font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--text-dim)}.mono{font-family:var(--font-mono);font-size:var(--t-xs)}.container{width:100%;max-width:var(--max-w);margin-inline:auto;padding-inline:var(--gutter)}.section{padding-block:clamp(72px,11vw,160px)}.section-head{display:flex;flex-direction:column;gap:var(--s-3);margin-bottom:var(--s-8);max-width:640px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-xl);transition:background var(--d-base) var(--ease),border-color var(--d-base) var(--ease),transform var(--d-base) var(--ease)}.glass{background:var(--glass);backdrop-filter:blur(var(--glass-blur)) saturate(160%);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(160%);border:1px solid var(--border)}.gradient-border{position:relative}.gradient-border:before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;background:var(--gradient-accent);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:0;transition:opacity var(--d-base) var(--ease);pointer-events:none}.gradient-border:hover:before,.gradient-border:focus-within:before{opacity:.75}.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:var(--s-2);height:48px;padding-inline:var(--s-5);border-radius:var(--r-pill);font-size:var(--t-sm);font-weight:550;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;transition:transform var(--d-fast) var(--ease),background var(--d-fast) var(--ease),border-color var(--d-fast) var(--ease),box-shadow var(--d-base) var(--ease)}.btn:active{transform:scale(.975)}.btn-primary{background:var(--text);color:#0a0a0c;font-weight:600}.btn-primary:hover{box-shadow:0 8px 30px #ffffff1f;transform:translateY(-1px)}.btn-secondary{background:var(--surface);border:1px solid var(--border-strong);color:var(--text)}.btn-secondary:hover{background:var(--surface-hover);border-color:#ffffff3d;transform:translateY(-1px)}.btn-ghost{color:var(--text-muted);height:38px;padding-inline:var(--s-3)}.btn-ghost:hover{color:var(--text)}.ripple{position:absolute;border-radius:50%;transform:scale(0);background:currentColor;opacity:.22;pointer-events:none;animation:ripple .62s var(--ease) forwards}@keyframes ripple{to{transform:scale(2.6);opacity:0}}.pill{display:inline-flex;align-items:center;gap:var(--s-2);height:28px;padding-inline:var(--s-3);border-radius:var(--r-pill);background:var(--surface);border:1px solid var(--border);font-size:var(--t-xs);color:var(--text-muted);white-space:nowrap}.dot{width:6px;height:6px;border-radius:50%;background:var(--text-dim);flex-shrink:0}.dot[data-state=operational],.dot[data-state=ready]{background:var(--mint)}.dot[data-state=building],.dot[data-state=degraded]{background:var(--amber)}.dot[data-state=error],.dot[data-state=down]{background:var(--rose)}.dot-pulse{position:relative}.dot-pulse:after{content:"";position:absolute;inset:-3px;border-radius:50%;background:inherit;opacity:.4;animation:pulse 2.4s var(--ease-soft) infinite}@keyframes pulse{0%{transform:scale(1);opacity:.4}70%{transform:scale(2.4);opacity:0}to{transform:scale(2.4);opacity:0}}.reveal{opacity:0;transform:translateY(22px);transition:opacity var(--d-slow) var(--ease),transform var(--d-slow) var(--ease);transition-delay:var(--reveal-delay, 0ms);will-change:opacity,transform}.reveal[data-visible=true]{opacity:1;transform:none;will-change:auto}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.reveal{opacity:1;transform:none}}:root[data-route=world]{--w-ink: #171614;--w-paper: #efece5;--w-warm: #d8b981;--w-meta: .6875rem;--w-track: .22em;--w-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--w-ease: cubic-bezier(.16, 1, .3, 1);background:#b9c0c7;scrollbar-width:none}:root[data-route=world]::-webkit-scrollbar{display:none}:root[data-route=world] body{background:#b9c0c7}.w-work{position:fixed;inset:0;z-index:1;overflow:hidden;pointer-events:none;opacity:0;font-family:var(--w-mono);color:#1f262b}.w-work.is-live a{pointer-events:auto}.w-work-col{width:min(34rem,100%);box-sizing:border-box;margin:0 auto;padding:clamp(96px,18vh,170px) clamp(16px,2.4vw,34px) 160px;font-size:.8rem;line-height:1.65;will-change:transform}.w-work-rule{margin:2.2em 0 .8em;font-size:.72rem;letter-spacing:.08em;color:#3f485599}.w-work-rule:first-child{margin-top:0}.w-work-intro{margin:0;font-size:var(--w-meta);letter-spacing:var(--w-track);text-transform:uppercase;color:#1f262b99}.w-work-item{margin-top:3rem;padding-top:2.4rem;border-top:1px solid rgba(63,72,85,.2)}.w-work-code{margin:0 0 .6em;font-size:.66rem;letter-spacing:.22em;color:#3f48559e}.w-work-title{margin:0;min-height:1.2em;font:700 clamp(1.05rem,2vw,1.4rem) / 1.2 var(--w-mono);letter-spacing:.04em;text-transform:uppercase;color:var(--w-ink);overflow-wrap:anywhere}.w-work-lead{margin:1.2em 0 0;font-size:.92rem;line-height:1.65;color:var(--w-ink)}.w-work-body{margin:.9em 0 0;white-space:pre-line;font-size:.84rem;line-height:1.72;color:#1f262be0}.w-work-tech{display:flex;flex-wrap:wrap;gap:.3rem 1.1rem;margin:0;padding:0;list-style:none;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase}.w-work-shot{display:block;width:100%;height:auto;margin-top:1.8em;border:1px solid rgba(63,72,85,.2)}.w-work-links{display:flex;flex-wrap:wrap;gap:.5rem 1.4rem;margin:0}.w-work-links a{color:var(--w-ink);font-weight:600;text-decoration:none}.w-work-links a:hover,.w-work-links a:focus-visible{text-decoration:underline}.w-work-empty{margin:2rem 0 0;color:#1f262b99}.w-hint.is-away{visibility:hidden}.w-stage{position:fixed;inset:0;width:100vw;height:100svh;z-index:0}.w-canvas{display:block;touch-action:pan-y;outline:none}.w-annotation-wrap,.w-measure-wrap{pointer-events:none}.w-node{display:inline-flex;align-items:center;gap:4px;position:relative;font-family:var(--w-mono);font-size:.72rem;font-weight:700;letter-spacing:.06em;color:#fff;text-shadow:0 0 10px rgba(255,255,255,.9),0 2px 6px rgba(0,0,0,.9);pointer-events:none;opacity:0;transform:translate(-50%,-50%);white-space:nowrap}.w-node-cross{display:inline-block;font-size:.82rem;font-weight:400;color:#fff;opacity:.95;line-height:1}.w-node-value{display:inline-block;white-space:nowrap;font-size:.72rem;font-weight:700;color:#fff}.w-measure{display:block;padding:2px 6px;white-space:nowrap;font-family:var(--w-mono);font-size:.5625rem;font-weight:700;letter-spacing:.12em;color:#1f262b;background:#e2e8edd6;opacity:0;transition:none}.w-annotation{display:flex;flex-direction:column;gap:2px;padding:5px 9px;border-left:1px solid rgba(23,22,20,.45);white-space:nowrap;font-family:var(--w-mono);font-size:.625rem;letter-spacing:.14em;text-transform:uppercase;color:var(--w-ink);animation:w-annotation-in .26s var(--w-ease) both}.w-annotation-code{opacity:.45;font-size:.5625rem}.w-annotation-value{font-weight:700}@keyframes w-annotation-in{0%{opacity:0;transform:translate(-4px)}to{opacity:1;transform:translate(0)}}@media(prefers-reduced-motion:reduce){.w-annotation{animation:none}}.w-hud{position:fixed;inset:0;z-index:2;display:flex;flex-direction:column;justify-content:space-between;padding:clamp(16px,2.4vw,34px);pointer-events:none;font-family:var(--w-mono);color:var(--w-ink);text-transform:uppercase;letter-spacing:var(--w-track);font-size:var(--w-meta);font-weight:500}.w-hud>*{pointer-events:none}.w-hud a,.w-hud button{pointer-events:auto}.w-hud-top{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.w-hud-brand{display:flex;flex-direction:column;gap:4px}.w-glass{position:relative;display:inline-flex;align-items:center;padding:10px 16px;color:var(--w-ink);text-decoration:none;white-space:nowrap;-webkit-tap-highlight-color:transparent;touch-action:none}.w-glass-frost{position:absolute;-webkit-backdrop-filter:blur(14px) saturate(1.4);backdrop-filter:blur(14px) saturate(1.4);pointer-events:none}.w-glass-shape{position:absolute;overflow:visible;pointer-events:none;filter:drop-shadow(0 8px 16px rgba(40,60,90,.16))}.w-glass-pane{fill:url(#w-glass-fill);stroke:url(#w-glass-rim);stroke-width:1}.w-glass-sheen{fill:#fff;opacity:0;transition:opacity .26s ease}.w-glass:hover .w-glass-sheen{opacity:.16}.w-glass-label{position:relative;z-index:1;display:inline-flex;gap:8px}@media(max-width:480px){.w-glass{padding:8px 13px}}.w-glass:focus-visible{outline:1px solid var(--w-ink);outline-offset:3px}@media(prefers-reduced-motion:reduce){.w-glass{transition:none}.w-glass:hover{transform:none}}.w-mark{margin:0;font-size:clamp(.8rem,1.1vw,1rem);font-weight:700;letter-spacing:.1em}.w-role{margin:0;opacity:.6}.w-hud-bottom{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:clamp(16px,4vw,60px)}.w-hud-bottom>:first-child{justify-self:start}.w-hint{opacity:.55}@media(max-width:700px){.w-hint{display:none}}.w-loader{position:fixed;inset:0;z-index:40;display:grid;place-items:center;background:transparent;pointer-events:auto}.w-loader-curtain{position:absolute;inset:0;background-color:#cbd7e4;background-image:radial-gradient(circle at 50% 50%,#ffffff73,#c8d6e633),radial-gradient(circle,rgba(118,142,170,.42) 1.25px,transparent 1.25px);background-size:100% 100%,36px 36px;background-position:0 0,18px 18px;-webkit-mask-image:radial-gradient(circle at 50% 50%,transparent 0%,transparent 0%,#000 0%);mask-image:radial-gradient(circle at 50% 50%,transparent 0%,transparent 0%,#000 0%);transition:-webkit-mask-image 1.3s cubic-bezier(.25,1,.35,1),mask-image 1.3s cubic-bezier(.25,1,.35,1),opacity .9s ease}.w-loader.is-opening .w-loader-curtain{-webkit-mask-image:radial-gradient(circle at 50% 50%,transparent 0%,transparent 115%,#000 135%);mask-image:radial-gradient(circle at 50% 50%,transparent 0%,transparent 115%,#000 135%);opacity:0}.w-loader-inner{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;gap:1.15rem;padding:0 1.5rem;transition:opacity .45s ease,transform .65s cubic-bezier(.16,1,.3,1)}.w-loader.is-ready .w-loader-inner{opacity:0;transform:scale(.96) translateY(-4px);pointer-events:none}.w-loader.is-opening{pointer-events:none}.w-loader-mark{margin:0;font-size:.72rem;letter-spacing:.42em;text-transform:uppercase;color:#3f4855}.w-loader-bar{display:block;width:min(240px,52vw);height:1px;background:#3f485538;overflow:hidden}.w-loader-bar i{display:block;width:100%;height:100%;background:#3f4855;transform-origin:0 50%;transform:scaleX(0);transition:transform .5s cubic-bezier(.16,1,.3,1)}.w-loader-note{display:flex;gap:.9em;margin:0;font-size:.62rem;letter-spacing:.28em;text-transform:uppercase;color:#3f48558c}.w-loader-pct{display:inline-block;min-width:3.4em;text-align:right;font-variant-numeric:tabular-nums;color:#3f4855}@media(prefers-reduced-motion:reduce){.w-loader,.w-loader-bar i{transition:none}}.w-sound{display:inline-flex;align-items:center;gap:8px;padding:0;border:0;background:none;color:inherit;font:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer;opacity:.55;transition:opacity .26s ease}.w-sound:hover,.w-sound:focus-visible{opacity:.9}.w-sound-bars{display:inline-flex;align-items:flex-end;gap:2px;height:9px}.w-sound-bars i{width:2px;height:2px;background:currentColor;transition:height .32s ease}.w-sound.is-on .w-sound-bars i{animation:w-sound-bar 1.15s ease-in-out infinite}.w-sound.is-on .w-sound-bars i:nth-child(2){animation-delay:.19s}.w-sound.is-on .w-sound-bars i:nth-child(3){animation-delay:.38s}@keyframes w-sound-bar{0%,to{height:3px}50%{height:9px}}@media(prefers-reduced-motion:reduce){.w-sound.is-on .w-sound-bars i{animation:none;height:7px}.w-sound-bars i{transition:none}}.w-water{position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .24s cubic-bezier(.22,.61,.36,1)}.w-work.is-live .w-water{opacity:1;pointer-events:auto;cursor:pointer}.w-water canvas{display:block;width:100%!important;height:100%!important}.w-water-ring{position:absolute;top:0;left:0;width:62px;height:62px;margin:-31px 0 0 -31px;border:1px solid rgba(255,255,255,.9);border-radius:50%;box-shadow:0 0 18px 2px #ffffff8c,inset 0 0 12px #ffffff59;opacity:0;transition:opacity .22s ease;pointer-events:none;will-change:transform}.w-water-ring[data-on]{opacity:1}.w-water-hint{position:absolute;left:50%;bottom:clamp(18px,4vh,38px);transform:translate(-50%);margin:0;font-size:var(--w-meta);letter-spacing:var(--w-track);text-transform:uppercase;color:#1f262b8c;white-space:nowrap;pointer-events:none}.w-detail{position:fixed;inset:0;z-index:50;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;box-sizing:border-box;padding:clamp(48px,9vh,88px) clamp(20px,5vw,48px) 120px;background:transparent;animation:w-detail-in .26s cubic-bezier(.22,.61,.36,1) both}.w-work.has-detail{z-index:60;pointer-events:auto}.w-work.has-detail .w-detail,.w-work.is-live .w-detail{pointer-events:auto}.w-detail::-webkit-scrollbar{width:6px}.w-detail::-webkit-scrollbar-track{background:transparent}.w-detail::-webkit-scrollbar-thumb{background:#3f485540;border-radius:3px}.w-detail::-webkit-scrollbar-thumb:hover{background:#3f485573}@keyframes w-detail-in{0%{opacity:0}to{opacity:1}}.w-detail-panel{position:relative;z-index:2;width:min(38rem,100%);margin:0 auto;padding:0 0 5rem;border:none;background:transparent;box-sizing:border-box;font-size:.85rem;line-height:1.7}.w-detail-bg{position:fixed;top:0;left:0;width:100vw;height:100vh;pointer-events:none;z-index:0;display:block}.w-detail-glass-close{position:fixed;top:clamp(16px,2.4vw,34px);right:clamp(16px,2.4vw,34px);z-index:70;border:none!important;outline:none!important;box-shadow:none!important;background:none;font:inherit;font-family:var(--w-mono);font-size:var(--w-meta);letter-spacing:var(--w-track);text-transform:uppercase;font-weight:500;cursor:pointer}.w-detail-glass-close:focus,.w-detail-glass-close:focus-visible,.w-detail-glass-close:active{border:none!important;outline:none!important;box-shadow:none!important}.w-detail-sound-bar{position:fixed;bottom:clamp(16px,2.4vw,34px);left:clamp(16px,2.4vw,34px);z-index:70;pointer-events:auto;font-family:var(--w-mono);color:var(--w-ink);text-transform:uppercase;letter-spacing:var(--w-track);font-size:var(--w-meta);font-weight:500}@media(prefers-reduced-motion:reduce){.w-water,.w-water-ring{transition:none}.w-detail{animation:none}}.w-readout{position:absolute;top:var(--ay, 50%);left:var(--ax, 50%);width:min(72vh,92vw);aspect-ratio:1;transform:translate(-50%,-50%);pointer-events:none;font-size:clamp(.56rem,.72vw,.7rem);letter-spacing:.16em;text-transform:uppercase;color:#1f262bc7;animation:w-readout-in .42s cubic-bezier(.22,.61,.36,1) both}@keyframes w-readout-in{0%{opacity:0}to{opacity:1}}.w-readout-lines{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.w-readout-lines path{fill:none;stroke:#1f262b6b;stroke-width:.25;vector-effect:non-scaling-stroke;stroke-dasharray:1 2;stroke-dashoffset:1;animation:w-leader-draw .36s cubic-bezier(.22,.61,.36,1) both}.w-readout-lines path:nth-child(2){animation-delay:40ms}.w-readout-lines path:nth-child(3){animation-delay:80ms}@keyframes w-leader-draw{to{stroke-dashoffset:0}}.w-readout p{margin:0}.w-readout-code{position:absolute;left:2%;top:16%;max-width:24%;line-height:1.5}.w-readout-name{display:block;font-weight:600;color:var(--w-ink);overflow-wrap:anywhere}.w-readout-stat{position:absolute;left:75%;top:35%;line-height:1.7;white-space:nowrap}.w-readout-stat span{color:#3f485599}.w-readout-cta{position:absolute;left:73%;top:66%;line-height:1.7;white-space:nowrap}.w-readout-date{display:block;color:#3f485599}.w-readout-go{display:block;padding-bottom:.4em;border-bottom:1px solid rgba(31,38,43,.42);font-weight:600;color:var(--w-ink)}@media(max-width:700px){.w-readout{width:94vw}.w-readout-lines{display:none}.w-readout-code{left:0;top:2%;max-width:60%}.w-readout-stat{left:auto;right:0;top:2%;text-align:right}.w-readout-cta{left:0;top:auto;bottom:8%}}@media(prefers-reduced-motion:reduce){.w-readout{animation:none}}.w-about{position:absolute;top:50%;left:50%;width:min(38rem,88vw);box-sizing:border-box;transform:translate(-50%,-50%);text-align:left;pointer-events:none;will-change:transform,opacity}.w-about-rule{margin:0 0 1.6em;font-size:.72rem;letter-spacing:.08em;color:#3f485599}.w-about-name{margin:0;font:700 clamp(1.4rem,3.4vw,2.4rem) / 1.15 var(--w-mono);letter-spacing:.02em;text-transform:uppercase;color:var(--w-ink)}.w-about-role{margin:.6em 0 0;font-size:var(--w-meta);letter-spacing:var(--w-track);text-transform:uppercase;color:#1f262b9e}.w-about-body{margin:2em 0 0;max-width:34em;font-size:.86rem;line-height:1.75;color:#1f262bd6}.w-about-meta{display:flex;flex-wrap:wrap;gap:.6em 2.2em;margin:2.6em 0 0;padding-top:1.4em;border-top:1px solid rgba(63,72,85,.2);font-size:var(--w-meta);letter-spacing:var(--w-track);text-transform:uppercase;color:#3f48559e}@media(prefers-reduced-motion:reduce){.w-about{transition:none}}.w-about>*{opacity:0}.w-about.is-in>*{animation:w-about-line .52s cubic-bezier(.22,.61,.36,1) both}.w-about.is-in .w-about-rule{animation-delay:40ms}.w-about.is-in .w-about-name{animation-delay:.11s}.w-about.is-in .w-about-role{animation-delay:.17s}.w-about.is-in .w-about-body{animation-delay:.23s}.w-about.is-in .w-about-meta{animation-delay:.3s}@keyframes w-about-line{0%{opacity:0;transform:translateY(.9em)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.w-about>*{animation:none;opacity:1}}.w-readout-code,.w-readout-stat,.w-readout-cta{animation:w-readout-label .34s cubic-bezier(.22,.61,.36,1) both}.w-readout-code{animation-delay:80ms}.w-readout-stat{animation-delay:.14s}.w-readout-cta{animation-delay:.2s}@keyframes w-readout-label{0%{opacity:0;transform:translateY(.5em)}to{opacity:1;transform:none}}.w-readout-go{background-image:linear-gradient(#1f262b6b,#1f262b6b);background-repeat:no-repeat;background-position:0 100%;background-size:0% 1px;border-bottom:0;animation:w-readout-rule .36s cubic-bezier(.22,.61,.36,1) .24s both}@keyframes w-readout-rule{to{background-size:100% 1px}}@media(prefers-reduced-motion:reduce){.w-readout-code,.w-readout-stat,.w-readout-cta,.w-readout-go,.w-readout-lines path{animation:none}.w-readout-lines path{stroke-dashoffset:0}.w-readout-go{background-size:100% 1px}}
