:root{--night:#060b14;--sand:#e8d5bd;--sky:#84a9eb;--sand-rgb:232 213 189;--sky-rgb:132 169 235;--background:var(--night);--foreground:var(--sand);--card:var(--night);--card-foreground:var(--sand);--popover:var(--night);--popover-foreground:var(--sand);--primary:var(--sand);--primary-foreground:var(--night);--secondary:rgb(var(--sky-rgb) / .12);--secondary-foreground:var(--sand);--muted:rgb(var(--sand-rgb) / .05);--muted-foreground:rgb(var(--sand-rgb) / .62);--accent:var(--sky);--accent-foreground:var(--night);--border:rgb(var(--sand-rgb) / .14);--border-strong:rgb(var(--sand-rgb) / .26);--input:rgb(var(--sand-rgb) / .14);--ring:var(--accent);--radius:8px;--radius-sm:2px;--foreground-80:rgb(var(--sand-rgb) / .8);--foreground-70:rgb(var(--sand-rgb) / .7);--foreground-62:rgb(var(--sand-rgb) / .62);--foreground-45:rgb(var(--sand-rgb) / .45);--accent-06:rgb(var(--sky-rgb) / .06);--accent-12:rgb(var(--sky-rgb) / .12);--accent-20:rgb(var(--sky-rgb) / .2);--accent-line:rgb(var(--sky-rgb) / .34);--font-display:var(--font-playfair-display,"Playfair Display"), Georgia, "Times New Roman", serif;--font-mono:var(--font-jetbrains-mono,"JetBrains Mono"), Consolas, "Courier New", monospace;--font-body:var(--font-noto-sans,"Noto Sans"), Georgia, "Times New Roman", serif;--space-1:8px;--space-2:16px;--space-3:24px;--space-4:32px;--space-5:48px;--space-6:64px;--dur-fast:.18s;--dur:.24s;--dur-slow:.42s;--ease:cubic-bezier(.22, .61, .36, 1);--shell:1320px;--head-h:clamp(50px, 6.5svh, 64px);--stack-band:clamp(96px, 13svh, 140px);--portrait-size:clamp(210px, 28svh, 300px);--layer-stage:0;--layer-flow:2;--layer-menu:4;--layer-header:5}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{background:var(--background);min-height:100svh;color:var(--foreground);font-family:var(--font-mono);-webkit-font-smoothing:antialiased;flex-direction:column;margin:0;font-size:.9375rem;font-weight:300;line-height:1.6;display:flex;overflow-x:clip}img{max-width:100%}a{color:inherit}p{margin:0}:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:2px}::selection{background:var(--accent);color:var(--night)}main{z-index:var(--layer-flow);flex-direction:column;flex:1;display:flex;position:relative}.shell{z-index:var(--layer-flow);width:100%;max-width:var(--shell);margin-inline:auto;padding-inline:clamp(20px,4vw,56px);position:relative}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}}html.is-reading-mode{scroll-behavior:auto}html.is-reading-mode *,html.is-reading-mode :before,html.is-reading-mode :after{transition-duration:1ms!important;transition-delay:0s!important;animation:none!important}html.js [data-reveal]{opacity:0;transition:opacity .76s var(--ease), transform .76s var(--ease);will-change:opacity, transform}html.js [data-reveal].is-revealed{opacity:1;transform:none}html.js [data-reveal=up]{transform:translateY(28px)}html.js [data-reveal=bottom]{transform:translateY(52px)}html.js [data-reveal=zoom]{transform:scale(.88)}html.js [data-reveal=right]{transform:translate(52px)}.stage{z-index:var(--layer-stage);pointer-events:none;position:fixed;inset:0;overflow:hidden}.stage-glow{opacity:0;background:radial-gradient(820px circle at var(--px,50%) var(--py,38%), #84a9eb0b, #84a9eb05 48%, transparent 78%), radial-gradient(300px circle at var(--px,50%) var(--py,38%), #e8d5bd07, transparent 74%);mix-blend-mode:screen;transition:opacity 1s var(--ease);position:absolute;inset:0}.stage.is-lit .stage-glow{opacity:1}.ambient-grid{opacity:.28;transform-origin:bottom;background-image:linear-gradient(#84a9eb0a 1px,#0000 1px),linear-gradient(90deg,#84a9eb0a 1px,#0000 1px);background-size:64px 64px;position:absolute;inset:-12%;transform:perspective(900px)rotateX(58deg)translateY(18%);mask-image:radial-gradient(#000 0%,#0000 72%)}.ambient-corners{aspect-ratio:1;opacity:.36;border:1px solid #e8d5bd1f;width:clamp(30px,4.25vw,65px);position:absolute}.ambient-corners:before,.ambient-corners:after{content:"";border-style:solid;border-color:#84a9eb57;width:34%;height:34%;position:absolute}.ambient-corners--tl{border-bottom:0;border-right:0;top:11%;left:4%}.ambient-corners--tl:before{border-width:2px 0 0 2px;top:-1px;left:-1px}.ambient-corners--tl:after{border-width:0 2px 2px 0;bottom:-1px;right:-1px}.ambient-corners--br{border-top:0;border-left:0;bottom:12%;right:5%}.ambient-corners--br:before{border-width:2px 0 0 2px;top:-1px;left:-1px}.ambient-corners--br:after{border-width:0 2px 2px 0;bottom:-1px;right:-1px}.ambient-particles{opacity:.55;width:100%;height:100%;position:absolute;inset:0}.mesh{aspect-ratio:1;pointer-events:none;display:block;position:absolute}.mesh--a{opacity:.85;width:min(64vw,820px);top:0;left:-14%}.mesh--b{opacity:.65;width:min(30vw,380px);top:-2%;right:3%}.mesh--c{opacity:.55;width:min(22vw,280px);bottom:-2%;right:13%}@media (width<=820px){.ambient-grid{opacity:.2;background-size:44px 44px}.ambient-corners{opacity:.24}.mesh--a{width:128vw;left:-48%}.mesh--b{width:58vw;right:-16%}.mesh--c{display:none}}@media (hover:none){.stage-glow{display:none}}@media (prefers-reduced-motion:reduce){.ambient-grid{transform:none;mask-image:radial-gradient(#000 0%,#0000 78%)}.ambient-particles{opacity:.3}}html.is-reading-mode .ambient-grid{transform:none;mask-image:radial-gradient(#000 0%,#0000 78%)}html.is-reading-mode .ambient-particles{opacity:.3}:where(.text){font-family:var(--font-mono);margin:0;line-height:1.6}.text--display{font-family:var(--font-display);letter-spacing:.005em;text-transform:uppercase;font-size:clamp(2.15rem,4vw,3.75rem);font-weight:400;line-height:.96}.text--title,.prose h1{font-family:var(--font-display);letter-spacing:.01em;font-size:clamp(2rem,4vw,3.4rem);font-weight:400;line-height:1}.text--display-accent{font-size:.7em;font-style:normal}.text--statement{font-family:var(--font-display);letter-spacing:.01em;font-size:clamp(2rem,4.6vw,3.8rem);font-weight:400;line-height:1.06}.text--heading,.prose h2{font-family:var(--font-display);font-size:clamp(1.35rem,2.3vw,2rem);font-weight:400;line-height:1.08}.text--subheading,.prose h3{font-family:var(--font-display);letter-spacing:.01em;font-size:clamp(1.15rem,1.7vw,1.45rem);font-weight:400;line-height:1.15}.text--wordmark{font-family:var(--font-display);letter-spacing:.08em;font-size:1.25rem;font-weight:400;line-height:1}.text--subtitle{font-family:var(--font-display);letter-spacing:.01em;color:var(--accent);font-size:clamp(1.15rem,1.8vw,1.55rem);font-style:italic;line-height:1.25}.text--body,.prose p,.prose li,.prose dd,.prose blockquote{font-family:var(--font-body);color:var(--foreground-80);font-size:1.05rem;font-weight:400;line-height:1.55}.text--kicker{letter-spacing:.24em;text-transform:uppercase;font-size:.5938rem}.text--meta,.prose small,.prose figcaption{letter-spacing:.16em;text-transform:uppercase;font-size:.5938rem}.text--nav{letter-spacing:.22em;text-transform:uppercase;font-size:.6563rem}.text--label,.prose h4,.prose h5,.prose h6{letter-spacing:.16em;text-transform:uppercase;font-size:.625rem}.text--chip{letter-spacing:.12em;text-transform:uppercase;font-size:.5625rem}.text--link{letter-spacing:.14em;text-transform:uppercase;color:var(--accent);font-size:.66rem}.text--link:hover,.text--link:focus-visible{color:var(--foreground)}.text--lead{letter-spacing:.01em;font-size:clamp(1.05rem,1.8vw,1.5rem);line-height:1.4}.text--metric{font-size:2.8rem;font-weight:300;line-height:1.05}.text--action{letter-spacing:.16em;text-transform:uppercase;font-size:.6563rem;font-weight:400}.text--annotation{letter-spacing:.12em;font-size:.5938rem}.text--tag{font-size:clamp(.68rem,.9vw,.78rem);line-height:1.4}.text--category{letter-spacing:.08em;text-transform:uppercase;font-size:clamp(.72rem,1vw,.86rem);font-weight:500;line-height:1.4}.text--console{font-size:clamp(.875rem,.95vw,.9375rem);line-height:1.5}.text--console-detail{letter-spacing:.02em;font-size:.75rem}.text--console-meta{letter-spacing:.12em;font-size:.6875rem}.text--console-key{letter-spacing:.16em;text-transform:uppercase;font-size:.6875rem}.text--console-chrome{letter-spacing:.18em;text-transform:uppercase;font-size:.5625rem}.text--console-art{letter-spacing:0;font-size:.5rem;font-weight:500;line-height:1}.text--tone-muted{color:var(--foreground-80)}.text--tone-soft{color:var(--foreground-62)}.text--tone-medium{color:var(--foreground-70)}.text--tone-faint{color:var(--foreground-45)}.text--tone-accent{color:var(--accent)}.prose{gap:clamp(14px,2vh,20px);max-width:70ch;display:grid}.prose>*{margin:0}.prose ul,.prose ol{gap:8px;padding-left:22px;display:grid}.prose li::marker{color:var(--accent)}.prose blockquote{border-left:2px solid var(--accent-line);padding-left:18px}.prose a{color:var(--accent);text-decoration:underline;text-decoration-color:var(--accent-line);text-underline-offset:3px}.prose a:hover,.prose a:focus-visible{color:var(--foreground);text-decoration-color:var(--foreground-45)}.prose strong{color:var(--foreground);font-weight:500}.prose code{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--muted);font-family:var(--font-mono);padding:2px 6px;font-size:.8125rem}.prose pre{border:1px solid var(--border);border-radius:var(--radius);background:#060b14a8;padding:16px 18px;overflow-x:auto}.prose pre code{background:0 0;border:0;padding:0;font-size:.8125rem;line-height:1.6}.prose hr{background:var(--border);border:0;width:100%;height:1px}.prose table{border-collapse:collapse;width:100%}.prose th,.prose td{border-bottom:1px solid var(--border);text-align:left;padding:8px 10px}.prose th{color:var(--foreground-45);letter-spacing:.16em;text-transform:uppercase;font-size:.5938rem}.prose img{border:1px solid var(--border);border-radius:var(--radius);width:100%}@media (width<=639px){.text--display{font-size:clamp(2.2rem,11vw,3rem)}.text--subtitle{font-size:1.15rem}.text--nav{letter-spacing:.18em;font-size:.5625rem}.text--console{font-size:clamp(.75rem,3.2vw,.8125rem);line-height:1.45}.text--console-detail{font-size:.6875rem}.text--console-art{font-size:.4375rem}}.site-head{z-index:3;justify-content:space-between;align-items:center;gap:var(--space-3);height:var(--head-h);display:flex;position:relative}.shell--header{z-index:var(--layer-header)}.site-head__identity{flex:none;align-items:center;gap:12px;display:inline-flex}.brand{align-items:center;gap:12px;text-decoration:none;display:inline-flex}.brand-sep{background:var(--border-strong);width:1px;height:15px}.language-switch{align-items:center;display:inline-flex}.language-switch a{transition:color var(--dur) var(--ease);text-decoration:none}.language-switch a+a:before{content:"/";color:var(--foreground-45);margin-inline:.5rem}.language-switch a[aria-current=page],.language-switch a:hover,.language-switch a:focus-visible{color:var(--foreground)}.site-nav{align-items:center;gap:clamp(16px,2.6vw,34px);display:flex}.site-nav a,.site-nav button{transition:color var(--dur) var(--ease);padding-block:6px;text-decoration:none;position:relative}.site-nav button{cursor:pointer;background:0 0;border:0}.reading-mode-toggle{display:none}.js .site-nav .reading-mode-toggle{display:inline-flex}.js .mobile-menu .reading-mode-toggle{display:block}.site-nav a:after,.site-nav button:after{content:"";background:var(--accent);height:1px;transition:right .26s var(--ease);position:absolute;bottom:0;left:0;right:100%}.site-nav a:hover,.site-nav a:focus-visible,.site-nav button:hover,.site-nav button:focus-visible{color:var(--foreground)}.site-nav button[aria-pressed=true],.mobile-menu button[aria-pressed=true]{color:var(--accent)}.site-nav a:hover:after,.site-nav a:focus-visible:after,.site-nav button:hover:after,.site-nav button:focus-visible:after{right:0}.menu-toggle,.mobile-menu{display:none}@media (width<=639px){.site-nav{display:none}.menu-toggle{color:var(--foreground-62);cursor:pointer;background:0 0;border:0;align-items:center;gap:9px;padding:8px 0 8px 12px;display:inline-flex}.menu-toggle:hover,.menu-toggle:focus-visible{color:var(--foreground)}.menu-toggle__icon{gap:4px;width:18px;display:grid}.menu-toggle__icon span{height:1px;transition:transform .18s var(--ease), opacity .18s var(--ease);background:currentColor;display:block}.menu-toggle[aria-expanded=true] .menu-toggle__icon span:first-child{transform:translateY(5px)rotate(45deg)}.menu-toggle[aria-expanded=true] .menu-toggle__icon span:nth-child(2){opacity:0}.menu-toggle[aria-expanded=true] .menu-toggle__icon span:nth-child(3){transform:translateY(-5px)rotate(-45deg)}.mobile-menu{z-index:var(--layer-menu);border:1px solid var(--border);background:color-mix(in srgb, var(--background) 94%, transparent);flex-direction:column;min-width:min(220px,100vw - 32px);padding:8px;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 18px 36px #0000003d}.mobile-menu:not([hidden]){display:flex}.mobile-menu a,.mobile-menu button{text-align:left;padding:10px 12px;text-decoration:none}.mobile-menu button{cursor:pointer;background:0 0;border:0}.mobile-menu a:hover,.mobile-menu a:focus-visible,.mobile-menu button:hover,.mobile-menu button:focus-visible{color:var(--foreground);background:var(--border)}}.hero-identity{justify-content:flex-start;align-items:center;gap:clamp(1rem,2.4vw,2rem);width:100%;display:flex}.hero-identity .portrait{transition:opacity .7s var(--ease) .1s, transform .7s var(--ease) .1s;flex:none}@media (width<=1023px){.hero-identity{justify-content:center}}@media (width<=639px){.hero-identity{text-align:center;flex-direction:column;align-items:center;gap:1.5rem}.hero-identity .portrait{--portrait-size:clamp(155px, 48vw, 210px)}.hero-identity .copy{align-items:center}}.portrait{width:var(--portrait-size);aspect-ratio:1;flex:none;place-items:center;margin:0;display:grid;position:relative}.portrait-disc{background:var(--background);border-radius:50%;width:100%;height:100%;position:relative;overflow:hidden;-webkit-mask-image:radial-gradient(circle,#000 78%,#000000f0 88%,#00000061 97%,#0000 100%);mask-image:radial-gradient(circle,#000 78%,#000000f0 88%,#00000061 97%,#0000 100%)}.portrait-disc img{object-fit:cover;object-position:50% 42%;filter:brightness(.86)saturate(.95)contrast(1.02);width:100%;height:100%;display:block;transform:scale(1.04)}.portrait-wash{mix-blend-mode:soft-light;background:radial-gradient(120% 110% at 50% 18%,#e8d5bd29,#0000 58%),linear-gradient(#0000 50%,#060b1494 100%);border-radius:50%;position:absolute;inset:0}.portrait-ring{pointer-events:none;border:1px solid #e8d5bd1f;border-radius:50%;position:absolute;inset:-10px}.portrait-orbit{border:1px dashed var(--accent-line);pointer-events:none;border-radius:50%;animation:68s linear infinite orbit;position:absolute;inset:-22px}.portrait-orbit:before{content:"";background:var(--accent);border-radius:50%;width:5px;height:5px;position:absolute;top:50%;left:-3px;box-shadow:0 0 12px #84a9ebcc}@keyframes orbit{to{transform:rotate(360deg)}}@media (width<=620px){.portrait{--portrait-size:clamp(165px, 46vw, 225px)}.portrait-orbit{inset:-16px}.portrait-ring{inset:-8px}}.copy{-webkit-user-select:text;user-select:text;flex-direction:column;align-items:flex-start;width:100%;min-width:0;max-width:100%;display:flex}.copy .specialties{margin-top:clamp(.75rem,1.8vh,1.25rem)}.name .line{display:block}.specialties{flex-wrap:wrap;align-items:center;gap:10px;margin-top:0;display:flex}.diamond{background:var(--accent);opacity:.6;flex:none;width:4.5px;height:4.5px;transform:rotate(45deg)}@media (width<=1023px){.copy{align-items:center;width:100%;max-width:520px}.specialties{justify-content:center}}@media (width<=639px){.specialties{gap:8px}.copy .specialties{margin-top:.75rem}}.actions{flex-wrap:wrap;align-items:center;gap:12px;margin-top:0;display:flex}@media (width>=1024px){.actions{margin-top:clamp(1.25rem,3vh,2rem)}}@media (width<=1023px){.actions{justify-content:center;width:100%}}.btn{border-radius:var(--radius-sm);cursor:pointer;min-height:42px;transition:transform var(--dur) var(--ease), background-color var(--dur) var(--ease), border-color var(--dur) var(--ease), color var(--dur) var(--ease);border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding-inline:20px;text-decoration:none;display:inline-flex}.btn--primary{background:var(--primary);border-color:var(--primary);color:var(--primary-foreground)}.btn svg{width:13px;height:13px;transition:transform var(--dur) var(--ease);flex:none;display:block}.btn--primary:hover{background:var(--primary);border-color:var(--primary);filter:brightness(1.04);transform:translateY(-2px)}.btn--primary:hover svg{transform:translate(3px)}.btn--ghost{border-color:var(--border-strong);color:var(--foreground);background:0 0}.btn--ghost:hover{border-color:var(--accent-line);background:var(--accent-06)}.btn:active{transform:translateY(0)}@media (width<=639px){.btn{flex:auto;padding-inline:16px}}.term-chrome{border-bottom:1px solid var(--border);background:#060b1473;align-items:center;gap:10px;padding:6px clamp(12px,1.8vw,16px);display:flex}.term-dots{align-items:center;gap:5px;display:flex}.term-dots i{background:#e8d5bd3d;border-radius:50%;width:5px;height:5px;display:block}.term-dots i:first-child{background:#84a9eb8c}.term-out{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent;-webkit-user-select:text;user-select:text;cursor:text;height:clamp(320px,40vh,400px);min-height:0;padding-right:6px;overflow-y:auto}.term-out:focus{outline:none}.term-out::-webkit-scrollbar{width:6px}.term-out::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:999px}.term-out::-webkit-scrollbar-track{background:0 0}.term-line{white-space:pre-wrap;overflow-wrap:anywhere;-webkit-user-select:text;user-select:text;animation:term-in .15s var(--ease) both;display:block}.term-line--muted{color:var(--foreground-45)}.term-line--strong{color:var(--foreground)}.term-line--dir,.term-line--ok{color:var(--accent)}.term-line--error{color:var(--foreground-80);text-decoration:underline dotted var(--border-strong)}.term-line--cmd{color:var(--foreground-80)}.term-echo-prompt{color:var(--accent);-webkit-user-select:text;user-select:text}.term-echo-text{-webkit-user-select:text;user-select:text}.term-caret{background:var(--accent);vertical-align:-.16em;width:7px;height:1em;margin-left:2px;animation:1.1s step-end infinite caret-blink;display:inline-block}.term-fetch{text-align:left;-webkit-user-select:text;user-select:text;animation:term-in .18s var(--ease) both;align-items:center;gap:clamp(10px,1.6vw,14px);margin:4px 0 9px;display:flex}.term-fetch__art{white-space:pre;color:var(--foreground);text-shadow:0 0 16px #e8d5bd29;-webkit-user-select:text;user-select:text;flex:none;margin:0}.term-fetch__info{flex-direction:column;flex:auto;align-items:flex-start;min-width:0;display:flex}.term-fetch__head{border-bottom:1px solid var(--border);white-space:nowrap;margin:0 0 5px;padding-bottom:4px}.term-fetch__user{color:var(--accent)}.term-fetch__host{color:var(--foreground-45)}.term-fetch__specs{grid-template-columns:max-content minmax(0,1fr);align-items:baseline;gap:1px 6px;margin:0;display:grid}.term-fetch__specs dt{color:var(--accent)}.term-fetch__specs dt:after{content:":";color:var(--foreground-45)}.term-fetch__specs dd{color:var(--foreground-80);overflow-wrap:anywhere;margin:0}.term-fetch__links{flex-wrap:wrap;column-gap:8px;display:flex}.term-fetch__link{color:var(--foreground-80);border-bottom:1px solid var(--border-strong);transition:color var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease);flex:none;text-decoration:none}.term-fetch__link:hover,.term-fetch__link:focus-visible{color:var(--accent);border-bottom-color:var(--accent-line)}.term-fetch__palette{gap:3px;margin-top:8px;display:flex}.term-fetch__palette i{background:var(--accent);border-radius:1px;width:16px;height:5px}.term-fetch__palette i:first-child{background:#84a9ebe6}.term-fetch__palette i:nth-child(2){background:#84a9ebad}.term-fetch__palette i:nth-child(3){background:#84a9eb75}.term-fetch__palette i:nth-child(4){background:#84a9eb42}.term-fetch__palette i:nth-child(5){background:#e8d5bde6}.term-fetch__palette i:nth-child(6){background:#e8d5bda8}.term-fetch__palette i:nth-child(7){background:#e8d5bd70}.term-fetch__palette i:nth-child(8){background:#e8d5bd3d}.term-grid{-webkit-user-select:text;user-select:text;animation:term-in .15s var(--ease) both;grid-template-columns:repeat(4,minmax(0,1fr));gap:3px 12px;margin:3px 0 8px;padding-left:1px;display:grid}.term-grid__item{color:var(--foreground-62);-webkit-user-select:text;user-select:text;align-items:center;gap:6px;display:flex}.term-grid__item:before{content:"";background:var(--accent);opacity:.45;flex:none;width:3.5px;height:3.5px;transform:rotate(45deg)}@media (width<=639px){.term-out{height:clamp(240px,32svh,300px)}.term-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 12px}.term-fetch{flex-direction:column;align-items:center;gap:9px}.term-fetch__info{width:100%}.term-fetch__specs{column-gap:6px;width:100%}}@media (prefers-reduced-motion:reduce){.term-line,.term-grid,.term-fetch{animation:none}.term-caret{opacity:1;animation:none}}.term-inputline{border-top:1px solid var(--border);align-items:center;gap:8px;margin-top:5px;padding-top:6px;display:flex}.term-prompt{white-space:nowrap;flex:none;align-items:baseline;display:inline-flex}.term-user{color:var(--accent)}.term-path{color:var(--foreground-45)}.term-symbol{color:var(--accent);margin-left:7px}.term-field{flex:auto;min-width:0;display:flex;position:relative}.term-input{z-index:1;width:100%;min-width:0;color:var(--foreground);font:inherit;caret-color:#0000;background:0 0;border:0;padding:0;position:relative}.term-input:focus{outline:none}.term-input:disabled{color:var(--foreground-45);cursor:default}.term-measure,.term-ghost{white-space:pre;font:inherit;pointer-events:none;-webkit-user-select:none;user-select:none;position:absolute;top:0;left:0}.term-measure{visibility:hidden}.term-ghost{z-index:0;color:var(--foreground-45);opacity:.65}.term-ghost[hidden]{display:none}.term-input-cursor{z-index:2;background:var(--accent);opacity:.9;pointer-events:none;width:7px;height:1em;animation:1.1s step-end infinite caret-blink;position:absolute;top:0;left:1px}.term-input-cursor[hidden]{display:none}@media (prefers-reduced-motion:reduce){.term-input-cursor{animation:none}}.term-foot{border-top:1px solid var(--border);background:#060b1466;justify-content:space-between;align-items:center;gap:12px;padding:5px clamp(12px,1.8vw,16px);display:flex}.term-status{color:var(--foreground-62)}.term-hint{display:none}@media (width>=720px){.term-hint{display:inline}}.term-fallback{margin:0;padding:22px clamp(16px,2.4vw,26px);display:none}html:not(.js) .term-fallback{display:block}html:not(.js) .term-chrome,html:not(.js) .term-body,html:not(.js) .term-foot{display:none}.portfolio-terminal{text-align:left;border:1px solid var(--border);border-radius:var(--radius);background:radial-gradient(120% 130% at 8% -20%, var(--accent-06), transparent 58%), #060b14a8;min-height:clamp(420px,48vh,480px);transition:border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);flex-direction:column;display:flex;position:relative;overflow:hidden;box-shadow:0 50px 120px -70px #000000f2}.portfolio-terminal:focus-within{border-color:var(--accent-line);box-shadow:0 0 0 1px var(--accent-06), 0 50px 120px -70px #000000f2}.term-body{flex-direction:column;flex:auto;min-height:0;padding:clamp(6px,1.2vw,10px) clamp(12px,1.8vw,16px) clamp(5px,.9vh,7px);display:flex}@keyframes caret-blink{0%,49%{opacity:1}50%,to{opacity:0}}@keyframes term-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@media (width<=639px){.portfolio-terminal{min-height:0}}.hero{z-index:var(--layer-flow);min-height:calc(100svh - var(--head-h) - var(--stack-band));flex:auto;align-items:center;padding-block:clamp(6px,1.4vh,16px);display:flex;position:relative}html.is-reading-mode .hero{flex-shrink:0;min-height:0}.shell--hero{grid-template-columns:minmax(0,.45fr) minmax(0,.55fr);align-items:center;gap:clamp(2rem,5vw,5rem);display:grid}.hero-left{flex-direction:column;align-items:flex-start;gap:clamp(1rem,2.2vh,1.5rem);width:100%;min-width:0;display:flex}.hero-left>.actions{justify-content:center;width:100%}.portrait,.name,.role{transition:opacity .7s var(--ease), transform .7s var(--ease)}.js:not(.is-identity) .portrait,.js:not(.is-identity) .name,.js:not(.is-identity) .role{opacity:0;pointer-events:none;transform:translateY(12px)}.specialties{transition:opacity .65s var(--ease), transform .65s var(--ease)}.actions{transition:opacity .65s var(--ease) .12s, transform .65s var(--ease) .12s}.js:not(.is-skills) .specialties,.js:not(.is-skills) .actions{opacity:0;pointer-events:none;transform:translateY(12px)}@media (width>=901px) and (height<=780px){.hero{padding-block:6px}.hero-left{gap:12px}}@media (width<=1023px){.shell--hero{text-align:center;grid-template-columns:minmax(0,1fr);justify-items:center;gap:clamp(20px,3vh,32px)}.hero-left{align-items:center;width:100%;max-width:680px}}@media (width<=639px){.hero-left>.actions{gap:8px;width:100%}}@media (prefers-reduced-motion:reduce){.portrait,.copy{transition-delay:0s!important}}.stack{z-index:var(--layer-flow);scroll-margin-top:var(--head-h);padding-block:0 clamp(48px,8vh,96px);position:relative}.stack__title{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.stack-transform{--stack-panel-pad:clamp(18px, 2.4vh, 26px);--stack-band-tone:linear-gradient(180deg, color-mix(in srgb, var(--card) 68%, transparent), color-mix(in srgb, var(--card) 78%, transparent));--stack-band-fade:linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent);pointer-events:none;position:relative}html.js:not(.is-stack) .stack-transform{visibility:hidden;opacity:0;pointer-events:none;transition:opacity .32s var(--ease), visibility 0s linear .32s}html.js.is-stack .stack-transform{visibility:visible;opacity:1;transition:opacity .32s var(--ease), visibility 0s linear 0s}.stack-transform__panel{position:relative;overflow:visible}.stack-transform__shell{width:100%;display:grid}.stack-ribbon{z-index:0;min-height:var(--stack-band);padding-block:var(--stack-panel-pad);border-block:1px solid var(--border);background:var(--stack-band-tone);backdrop-filter:blur(18px);-webkit-mask-image:var(--stack-band-fade);mask-image:var(--stack-band-fade);grid-area:1/1;align-self:start;align-items:center;display:none;overflow:hidden}.stack-ribbon__track{width:max-content;display:flex}.stack-categories{flex-direction:column;gap:clamp(18px,2.6svh,26px);display:flex}.stack-category{min-width:0}.stack-category__title{color:var(--foreground);text-align:center;justify-content:center;align-items:center;gap:10px;margin:0 0 13px;display:flex}.stack-category__line{background:var(--border-strong);flex:0 0 clamp(24px,6vw,76px);height:1px}.stack-category__line--left{transform-origin:100%}.stack-category__line--right{transform-origin:0}.stack-category ul{flex-wrap:wrap;justify-content:center;align-items:center;gap:clamp(12px,1.8vw,22px) clamp(20px,2.7vw,34px);margin:0;padding:0;list-style:none;display:flex}.stack-organized .stack-category ul{width:100%;max-width:760px;margin-inline:auto}.stack-tech{white-space:nowrap;align-items:center;gap:9px;min-width:0;padding:2px 15px;display:inline-flex}.stack-tech img{object-fit:contain;flex:0 0 22px;width:22px;height:22px;display:block}.stack-organized{padding-block:var(--stack-panel-pad);flex-direction:column;grid-area:1/1;gap:clamp(18px,2.6svh,26px);padding-inline:clamp(20px,3vw,44px);display:flex;position:relative}.stack-organized:before{content:"";z-index:-1;border-block:1px solid var(--border);background:var(--stack-band-tone);backdrop-filter:blur(18px);-webkit-mask-image:var(--stack-band-fade);mask-image:var(--stack-band-fade);position:absolute;inset:0}.stack-transform[data-transform=true] .stack-ribbon{display:flex}html.js .stack-transform:not([data-view=organized]) .stack-organized{visibility:hidden;opacity:0}.stack-transform[data-transform=true] .stack-ribbon__track{will-change:transform;animation:64s linear infinite stack-ribbon-scroll}.stack-transform[data-transform=true] .stack-ribbon .stack-categories{flex-direction:row;flex:none;align-items:center;gap:clamp(24px,3vw,42px);width:max-content;padding-right:clamp(24px,3vw,42px)}.stack-transform[data-transform=true] .stack-ribbon .stack-category{flex:none;align-items:center;gap:clamp(24px,3vw,42px);display:flex}.stack-transform[data-transform=true] .stack-ribbon .stack-category__title{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.stack-transform[data-transform=true] .stack-ribbon .stack-category ul{flex-wrap:nowrap;gap:clamp(24px,3vw,42px)}@keyframes stack-ribbon-scroll{to{transform:translate(-50%)}}@media (width<=900px){.stack-category ul{gap:12px 20px}}@media (width<=720px){.stack-organized{gap:20px}.stack-category__title{margin-bottom:11px}.stack-category ul{gap:11px 16px}.stack-tech{gap:7px}.stack-tech img{flex-basis:19px;width:19px;height:19px}}html.is-reading-mode .stack-transform__panel{box-shadow:none;border:0;overflow:visible;mask-image:none}html.is-reading-mode .stack-ribbon{display:none!important}html.is-reading-mode .stack-organized,html.is-reading-mode .stack-organized .stack-category{opacity:1!important;visibility:visible!important;transform:none!important}@media (prefers-reduced-motion:reduce){.stack-ribbon__track{animation:none!important;transform:none!important}}.section-head{border-bottom:1px solid var(--border);padding-bottom:clamp(22px,3.4vh,34px)}.section-head--plain{border-bottom:0;padding-bottom:0;display:block}.section-kicker{margin:0 0 12px}.timeline-aside{align-self:stretch;min-width:0;position:relative}.timeline-focus{gap:14px;padding-bottom:8px;display:grid;position:sticky;top:clamp(24px,7vh,64px)}.timeline-focus__label{margin:0 0 4px;padding-left:26px}.timeline-companies{gap:0;margin:0;padding:0;list-style:none;display:grid}.timeline-companies li{margin:0}.timeline-company{border:0;border-left:1px solid var(--border);text-align:left;cursor:pointer;width:100%;transition:color var(--dur) var(--ease), padding-left .34s var(--ease);background:0 0;gap:7px;padding:20px 0 20px 26px;display:grid;position:relative}.timeline-company:before{content:"";background:var(--accent);transform-origin:top;width:1px;transition:transform .48s var(--ease), background-color .32s var(--ease);position:absolute;top:20px;bottom:20px;left:-1px;transform:scaleY(0)}.timeline-company.is-passed:before{background:var(--accent-line);transform:scaleY(1)}.timeline-company.is-active:before{background:var(--accent);transform:scaleY(1)}.timeline-company__meta{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.timeline-company__year{white-space:nowrap}.timeline-company__name{transition:color .34s var(--ease), transform .34s var(--ease)}.timeline-company__role{transition:color .34s var(--ease)}.timeline-company.is-active{padding-left:32px}.timeline-company.is-active .timeline-company__name{color:var(--foreground);transform:translate(0)}.timeline-company.is-active .timeline-company__role{color:var(--accent)}.timeline-company.is-active .timeline-company__meta{color:var(--foreground-62)}@media (hover:hover){.timeline-company:hover .timeline-company__name{color:var(--foreground-80)}.timeline-company.is-active:hover .timeline-company__name{color:var(--foreground)}}.timeline-company:focus-visible{outline-offset:2px}@media (width<=860px){.timeline-aside{display:none}}@media (prefers-reduced-motion:reduce){.timeline-focus{position:static}.timeline-company{padding-left:26px}}.timeline-entry{border-top:1px solid var(--border);padding-block:clamp(28px,4.6vh,46px) clamp(32px,5.2vh,56px);scroll-margin-top:32px;position:relative}html.js .timeline-entry[data-reveal=right]{transition:opacity .82s var(--ease), transform .82s var(--ease)}.timeline-entry[data-reveal=right]:nth-child(2){transition-delay:.12s}.timeline-entry[data-reveal=right]:nth-child(3){transition-delay:.24s}.timeline-entry:first-child{border-top:0;padding-top:0}.timeline-entry__period{transition:color .34s var(--ease);align-items:center;gap:10px;display:inline-flex}.timeline-entry__period:before{content:"";background:var(--border-strong);width:5px;height:5px;transition:background-color .34s var(--ease);flex:none;transform:rotate(45deg)}.timeline-entry.is-active .timeline-entry__period{color:var(--accent)}.timeline-entry.is-active .timeline-entry__period:before{background:var(--accent)}.timeline-entry h3{margin:14px 0 0}.timeline-entry__company{margin-top:8px;display:none}.timeline-entry__bullets{gap:10px;max-width:62ch;margin:22px 0 0;padding:0;list-style:none;display:grid}.timeline-entry__bullets li{padding-left:18px;position:relative}.timeline-entry__bullets li:before{content:"";background:var(--border-strong);width:4px;height:4px;position:absolute;top:.68em;left:2px;transform:rotate(45deg)}.timeline-entry__tech{flex-wrap:wrap;gap:8px;margin:24px 0 0;padding:0;list-style:none;display:flex}.timeline-entry__tech li{border:1px solid var(--border);white-space:nowrap;transition:border-color var(--dur) var(--ease), color var(--dur) var(--ease);border-radius:999px;align-items:center;gap:7px;padding:6px 12px 6px 10px;display:inline-flex}.timeline-entry__tech li:hover{border-color:var(--accent-line);color:var(--foreground)}.timeline-entry__tech img{object-fit:contain;opacity:.85;width:14px;height:14px;display:block}@media (width<=860px){.timeline-entry{padding-block:clamp(26px,4.4vh,40px) clamp(30px,5vh,48px)}.timeline-entry:first-child{padding-top:0}.timeline-entry__company{display:block}}.experience{z-index:var(--layer-flow);border-top:1px solid var(--border);background:var(--background);margin-top:0;padding-block:clamp(24px,3.5vh,48px) clamp(40px,6vh,72px);scroll-margin-top:80px;position:relative}.timeline{grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr);align-items:start;gap:clamp(28px,6vw,96px);margin-top:clamp(36px,6vh,68px);display:grid}.timeline-entries{min-width:0;display:grid}@media (width<=860px){.timeline{grid-template-columns:minmax(0,1fr);gap:0;margin-top:clamp(28px,4.5vh,44px)}}.project-panel__media{z-index:0;border-radius:inherit;filter:brightness(.48);width:100%;height:100%;position:absolute;inset:0;overflow:hidden}.project-panel__media.is-showing-architecture{filter:none}.project-panel__asset{min-width:0;min-height:0;display:none;position:absolute;inset:0;overflow:hidden}.project-panel__asset.is-active{display:block}.project-panel__asset img,.project-panel__asset video{object-fit:cover;object-position:center center;width:100%;height:100%;display:block}.project-panel__asset--architecture{background:var(--card)}.project-panel__asset--architecture img{object-fit:contain;width:auto;max-width:100%;height:100%;margin-inline:auto}html.is-reading-mode .project-panel__media:not([data-media-open]) .project-panel__asset--video{display:none}html.is-reading-mode .project-panel__media:not([data-media-open]) .project-panel__asset--preview{display:block}.project-panel__media-control{z-index:2;color:#fff;width:28px;height:36px;font:inherit;cursor:pointer;background:0 0;border:0;place-items:center;padding:0;display:grid;position:absolute;top:50%;transform:translateY(-50%)}.project-panel__media-control span{text-shadow:0 1px 6px #000c;font-size:24px;line-height:1}.project-panel__media-control--previous{left:12px}.project-panel__media-control--next{right:12px}.project-panel__media-control:hover span,.project-panel__media-control:focus-visible span{transform:scale(1.15)}.project-panel__media-control:focus-visible{outline-offset:3px;outline:2px solid}.project-panel__media-open{width:56px;height:56px;display:none;left:50%;transform:translate(-50%,-50%)}html.is-reading-mode .project-panel__media-open{display:grid}html.is-reading-mode .project-panel__media[data-media-open] .project-panel__media-open{display:none}@media (width<=700px){.project-panel__media-control{width:38px;height:38px}}.project-panel{color:#e8edf7;transform-origin:bottom;will-change:transform, opacity, filter;background:radial-gradient(circle at 80% 20%,#84a9eb38,#0000 38%),#0b1423;border:1px solid #ffffff1f;border-radius:clamp(22px,3vw,42px);flex-direction:column;justify-content:flex-end;gap:clamp(18px,3vh,30px);padding:clamp(24px,7vw,100px) clamp(20px,6vw,88px);display:flex;position:relative;overflow:hidden}.project-panel[data-project=vault]{background:radial-gradient(circle at 25% 55%,#b897ff38,#0000 35%),#171122}.project-panel[data-project=relay]{background:radial-gradient(circle at 70% 35%,#49d0a829,#0000 36%),#0c1719}.project-panel__caption{z-index:1;text-align:right;justify-items:end;gap:8px;width:min(48%,580px);margin:0;display:grid;position:absolute;bottom:clamp(20px,5vw,72px);right:clamp(20px,6vw,88px)}.project-panel:not([data-has-media]) .project-panel__caption{width:min(100%,760px)}.project-panel__caption>.text--body{font-weight:400}.project-panel__caption span,.project-panel__caption small{color:#e8edf79e}.project-panel__github-link{border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;display:inline-flex}.project-panel__github-link img{object-fit:contain;width:24px;height:24px;display:block}.project-panel__github-link:focus-visible{outline-offset:3px;outline:2px solid}@media (width<=700px){.project-panel{border-radius:24px;padding:24px 18px}.project-panel__caption{gap:4px;width:72%;bottom:18px;right:18px}.project-panel:not([data-has-media]) .project-panel__caption{width:calc(100% - 36px)}}.projects{z-index:var(--layer-flow);border-top:1px solid var(--border);margin-top:clamp(32px,5vh,56px);padding-block:clamp(34px,5vh,64px) clamp(40px,6vh,72px);scroll-margin-top:80px;position:relative}.projects-scene{z-index:3;margin-top:0;position:relative}.projects .section-head{padding-bottom:clamp(12px,2vh,20px)}.projects-stage{gap:24px;padding-block:12px 24px;display:grid;position:relative}.projects-stage .project-panel{min-height:70svh;position:relative}.projects-scene.is-pinned .projects-stage{overflow-anchor:none;height:100svh;min-height:0;padding-block:0;display:block;overflow:hidden}.projects-scene.is-pinned .projects-stage .project-panel{min-height:0;position:absolute;inset:clamp(16px,3vh,32px) clamp(16px,5vw,72px)}html.is-reading-mode .projects-scene,html.is-reading-mode .projects-scene.is-pinned{height:auto}html.is-reading-mode .projects-scene .projects-stage{width:100%;max-width:var(--shell);grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;height:auto;min-height:0;margin-inline:auto;padding:24px clamp(20px,4vw,56px);display:grid;overflow:visible}html.is-reading-mode .projects-scene .projects-stage .project-panel{background:var(--card);min-height:250px;color:var(--card-foreground);will-change:auto;border-radius:16px;flex-direction:column;justify-content:flex-start;align-items:stretch;gap:0;padding:0;display:flex;position:relative;inset:auto;opacity:1!important;visibility:visible!important;filter:none!important;transform:none!important}html.is-reading-mode .projects-scene .project-panel__media{aspect-ratio:16/9;filter:none;border-radius:0;flex:none;width:100%;height:auto;position:relative;inset:auto}html.is-reading-mode .project-panel__caption{text-align:left;align-content:start;justify-items:start;gap:12px;width:100%;margin:0;padding:clamp(22px,3vw,32px);display:grid;position:relative;bottom:auto;right:auto}html.is-reading-mode .project-panel__caption small{overflow-wrap:anywhere}@media (width<=700px){.projects-scene.is-pinned .projects-stage .project-panel{inset:12px 0}html.is-reading-mode .projects-scene .projects-stage{grid-template-columns:minmax(0,1fr);padding-inline:16px}html.is-reading-mode .projects-scene .projects-stage .project-panel{width:100%}}.certification-grid article{border-right:1px solid var(--border);background:var(--background);height:100%;min-height:250px;transition:background-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease), transform var(--dur) var(--ease);grid-template-rows:minmax(2.8em,auto) auto minmax(2.5em,1fr) auto;gap:16px;padding:clamp(22px,3vw,32px);display:grid}.certification-grid article:last-child{border-right:0}.certification-grid article:hover{z-index:1;position:relative;transform:translateY(-4px);box-shadow:0 14px 28px #0000002e}.certification-card__details{grid-template-rows:repeat(2,minmax(1.2em,auto));display:grid}.certification-card__issuer,.certification-card__date{color:var(--muted-foreground)}.certification-card__description-slot{min-height:2.5em}.certification-card__description-slot .text--body{font-weight:400}.certification-card__action-slot{min-height:1.2em}.certification-card__link{width:fit-content;color:var(--primary);text-underline-offset:3px;font-size:.9rem;font-weight:600;text-decoration:underline}@media (width<=700px){.certification-grid article{border-right:0;border-bottom:1px solid var(--border)}.certification-grid article:last-child{border-bottom:0}}.certifications{z-index:var(--layer-flow);border-top:1px solid var(--border);padding-block:clamp(72px,12vh,150px);scroll-margin-top:80px;position:relative}.certification-grid{background:var(--background);overflow-anchor:none;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:minmax(250px,auto);gap:0;margin-top:clamp(34px,5vh,56px);display:grid}.certification-grid article:nth-child(2){transition-delay:.1s}.certification-grid article:nth-child(3){transition-delay:.2s}@media (width<=700px){.certification-grid{grid-template-columns:1fr}}.education-grid article{border-right:1px solid var(--border);background:var(--background);min-height:250px;transition:background-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease), transform var(--dur) var(--ease);align-content:start;gap:16px;padding:clamp(22px,3vw,34px);display:grid}.education-grid article:last-child{border-right:0}.education-grid article:hover{z-index:1;position:relative;transform:translateY(-4px);box-shadow:0 14px 28px #0000002e}.education-card__detail{max-width:48ch;font-weight:400}@media (width<=700px){.education-grid article{border-right:0;border-bottom:1px solid var(--border)}.education-grid article:last-child{border-bottom:0}}.education{z-index:var(--layer-flow);border-top:1px solid var(--border);padding-block:clamp(48px,7vh,92px);scroll-margin-top:80px;position:relative}.education-grid{background:var(--background);grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;margin-top:clamp(34px,5vh,56px);display:grid}.education-grid article:nth-child(2){transition-delay:.1s}@media (width<=700px){.education-grid{grid-template-columns:1fr}}.contact{z-index:var(--layer-flow);border-top:1px solid var(--border);padding-block:clamp(44px,7vh,88px) clamp(40px,6vh,72px);scroll-margin-top:80px;position:relative}.contact-inner{justify-items:start;gap:clamp(18px,3vh,28px);max-width:980px;display:grid}.contact-kicker{margin:0 0 12px}.contact-title{max-width:22ch}.contact-links{align-items:center;gap:16px;display:flex}.contact-link{border:1px solid var(--border);width:56px;height:56px;transition:border-color var(--dur) var(--ease), transform var(--dur) var(--ease);border-radius:12px;place-items:center;display:grid}.contact-link:hover,.contact-link:focus-visible{border-color:var(--foreground-45);transform:translateY(-2px)}.contact-link:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.contact-link img{width:40px;height:40px;display:block}.site-foot{z-index:var(--layer-flow);padding-block:18px;position:relative}.shell--foot{justify-content:space-between;align-items:center;gap:var(--space-2);border-top:1px solid var(--border);flex-wrap:wrap;padding-top:14px;display:flex}
