.gl,.gl-fallback{z-index:0;width:100%;height:100lvh;display:block;position:fixed;top:0;left:0}.gl{opacity:0;transition:opacity 1.2s}.gl.is-ready{opacity:1}.gl-fallback{z-index:0;background:radial-gradient(60% 55% at 72% 45%, #0b3a35f2, transparent 70%), radial-gradient(40% 40% at 20% 80%, #0b3a3573, transparent 70%), var(--abyss)}.labels{z-index:1;pointer-events:none;width:100%;height:100lvh;position:fixed;top:0;left:0;overflow:hidden}.label{opacity:0;will-change:transform, opacity;font-size:var(--step--2);white-space:nowrap;color:var(--pearl);line-height:1.2;text-decoration:none;position:absolute;top:0;left:0}.label>span{display:inline-block}.label--node>span{letter-spacing:.01em;font-weight:520;transition:color .3s,text-shadow .3s;transform:translate(-50%,-50%)}.label--node.is-hit>span{color:var(--gold);text-shadow:0 0 18px #e7b65ce6}.label--moon>span,.label--place>span{border:1px solid var(--line);-webkit-backdrop-filter:blur(6px);background:#0416148c;border-radius:999px;padding:.28rem .6rem;transform:translate(.85rem,-50%)}.label.is-flipped>span{transform:translate(calc(-100% - .85rem),-50%)}.label--moon[data-visible="1"]{pointer-events:auto}.label--moon:hover>span,.label--moon.is-active>span{border-color:var(--gold);color:var(--gold)}.label--place>span{font-family:var(--font-display);font-size:1rem;font-weight:500}.label--dubai>span{border-color:#e7b65c99}.rail{z-index:4;--p:0;position:fixed;top:50%;right:clamp(1rem,2.4vw,2.2rem);transform:translateY(-50%)}.rail ol{gap:1.35rem;margin:0;padding:0;list-style:none;display:grid;position:relative}.rail ol:before{content:"";background:var(--line);width:1px;position:absolute;top:.45rem;bottom:.45rem;right:.3rem}.rail a{font-size:var(--step--2);color:var(--mist);opacity:.7;justify-content:flex-end;align-items:center;gap:.75rem;text-decoration:none;transition:opacity .3s,color .3s;display:flex}.rail a:hover,.rail a.is-active{opacity:1;color:var(--pearl)}.rail__label{opacity:0;order:-1;transition:opacity .3s,transform .3s;transform:translate(.4rem)}.rail a.is-active .rail__label,.rail:hover .rail__label,.rail:focus-within .rail__label{opacity:1;transform:none}.rail__dot{background:var(--abyss);border:1px solid #f1ead873;border-radius:50%;width:.6rem;height:.6rem;transition:background .3s,border-color .3s,transform .3s;position:relative}.rail a.is-active .rail__dot{background:var(--gold);border-color:var(--gold);transform:scale(1.25)}.rail__packet{right:calc(.3rem - 2px);top:calc(.45rem + (100% - .9rem) * var(--p));background:var(--gold);pointer-events:none;border-radius:50%;width:5px;height:5px;margin-top:-2.5px;position:absolute;box-shadow:0 0 12px 3px #e7b65cbf}.hud{left:var(--gutter);right:var(--gutter);z-index:4;pointer-events:none;font-size:var(--step--2);color:var(--mist);font-variant-numeric:tabular-nums;justify-content:space-between;transition:opacity .4s;display:flex;position:fixed;bottom:1.1rem}.hud__value{color:var(--pearl);font-variation-settings:"MONO" 1}.hud.is-hidden{opacity:0}.exp{z-index:2;position:relative;overflow-x:clip}.stage{min-height:112svh;padding:calc(var(--header-h) + 8vh) var(--gutter) 12vh;pointer-events:none;align-items:center;display:grid;position:relative}.stage__inner{isolation:isolate;width:min(var(--col), 100%);pointer-events:auto;gap:1.4rem;display:grid;position:relative}.stage__inner:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(closest-side,#0416149e,#04161400);position:absolute;inset:-6rem -8rem}.stage[data-text=right] .stage__inner{justify-self:end;margin-right:clamp(3rem,7vw,8rem)}.stage[data-text=left] .stage__inner{justify-self:start}.stage__head{grid-template-columns:auto 1fr;align-items:end;column-gap:1.1rem;display:grid}.stage__num{font-family:var(--font-display);letter-spacing:-.04em;color:var(--gold);grid-row:1/span 2;font-size:clamp(3.6rem,2.4rem + 4vw,6rem);font-weight:400;line-height:.8}.stage__name{font-size:var(--step--1);color:var(--sea);font-variation-settings:"MONO" 0;letter-spacing:.01em;margin-bottom:.35rem;font-style:oblique 10deg}.stage__title{font-size:var(--step-3);grid-column:2}.stage__body{color:#f1ead8db;max-width:34rem}.jobs{gap:.7rem;margin:0;padding:0;list-style:none;display:grid}.jobs li{color:#f1ead8db;padding-left:1.6rem;position:relative}.jobs li:before{content:"";background:var(--gold);width:.9rem;height:1px;position:absolute;top:.82em;left:0}.tools{font-size:var(--step--1);color:var(--mist);max-width:32rem}.tools span{color:var(--sea);margin-right:.25rem;font-style:oblique 10deg}.hero{align-items:end;min-height:100svh;padding-bottom:clamp(5rem,13vh,9rem)}.hero .stage__inner{gap:1.3rem;width:min(44rem,100%)}.hero__name{font-size:var(--step-name);letter-spacing:-.025em;font-weight:430;line-height:.88;display:grid}.hero__name span:last-child{padding-left:.42em}.hero__lead{font-size:var(--step-1);max-width:30rem;margin-top:.6rem;line-height:1.45}.hero__hook{color:var(--mist);max-width:30rem}.hero__cta{flex-wrap:wrap;gap:.75rem;margin-top:.4rem;display:flex}.hero__scroll{font-size:var(--step--2);color:var(--mist);pointer-events:auto;justify-items:center;gap:.55rem;text-decoration:none;display:grid;position:absolute;bottom:3.2rem;left:50%;transform:translate(-50%)}.hero__scroll i{background:linear-gradient(var(--gold), transparent);transform-origin:top;width:1px;height:2.6rem;animation:2.4s ease-in-out infinite drip;display:block}@keyframes drip{0%{opacity:1;transform:scaleY(0)}60%{opacity:1;transform:scaleY(1)}to{opacity:0;transform:scaleY(1)}}.panel{border:1px solid var(--line);background:var(--glass);-webkit-backdrop-filter:blur(14px)saturate(1.2);border-radius:14px;overflow:hidden}.panel__bar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:1rem;padding:.75rem .9rem .75rem 1.1rem;display:flex}.panel__title{font-size:var(--step--1);flex-wrap:wrap;align-items:center;gap:.6rem;font-weight:560;display:flex}.panel__hint{font-size:var(--step--2);color:var(--mist)}.chip{font-size:var(--step--2);color:var(--sea);border:1px solid #7fd9c466;border-radius:999px;padding:.05rem .55rem;font-weight:450}.btn--small{min-height:2.3rem;font-size:var(--step--2);white-space:nowrap;padding:.4rem .95rem}.flowlog__rows{font-size:var(--step--1);margin:0;padding:.7rem 0;line-height:1.45;list-style:none}.flowlog__rows li{grid-template-columns:5.6rem 6.6rem 1fr;gap:.7rem;padding:.32rem 1.1rem;transition:opacity .35s,background .35s;display:grid}.flowlog__t{font-variation-settings:"MONO" 1;font-variant-numeric:tabular-nums;color:var(--gold);font-size:var(--step--2);padding-top:.12em}.flowlog__who{font-weight:560}.flowlog__msg{color:var(--mist)}.flowlog.is-running li{opacity:.18}.flowlog.is-running li.is-done{opacity:1}.flowlog li.is-now{background:#e7b65c1a}.flowlog__status{font-size:var(--step--2);color:var(--sea);min-height:0;padding:0 1.1rem}.flowlog__status:not(:empty){padding-bottom:.8rem}.term__out{white-space:pre-wrap;word-break:break-word;scrollbar-width:thin;scrollbar-color:#f1ead840 transparent;min-height:7.5rem;max-height:15.5rem;padding:.85rem 1.1rem .3rem;font-size:.86rem;line-height:1.55;overflow:auto}.term__out p{margin:0}.term__out .is-cmd{margin-top:.55rem}.term__out .is-err{color:#f0a58e}.term__out .is-accent,.term__out .tok-k{color:var(--gold)}.term__out .tok-s{color:var(--sea)}.term__out .tok-c{color:#a8b8b1b3}.term__out .tok-n{color:#f2c878}.term__prompt{color:var(--sea);white-space:nowrap}.term__form{align-items:center;gap:.6rem;padding:.5rem 1.1rem .85rem;font-size:.86rem;display:flex}.term__form input{min-width:0;color:var(--pearl);font:inherit;caret-color:var(--gold);background:0 0;border:0;outline:0;flex:1;padding:.2rem 0;font-size:max(16px,.86rem)}.term__form input::placeholder{color:#a8b8b199}.term:focus-within{border-color:#e7b65c8c}.projects__title{font-size:var(--step-1);font-family:var(--font-body);color:var(--sea);margin-top:.6rem;font-style:oblique 10deg;font-weight:560}.projects{gap:1.35rem;margin:0;padding:0;list-style:none;display:grid}.project{border-left:1px solid var(--line);gap:.35rem;padding-left:1rem;transition:border-color .3s;display:grid}.project:hover,.project.is-active{border-left-color:var(--gold)}.project__head{flex-wrap:wrap;align-items:baseline;gap:.4rem .9rem;display:flex}.project__name{font-family:var(--font-display);font-size:var(--step-2);margin:0;font-weight:450;line-height:1.1}.project__kind{font-size:var(--step--2);color:var(--sea);font-style:oblique 10deg}.projects--dev .project__name{font-size:var(--step-1)}.projects+.projects__title{margin-top:1.2rem}.status{font-size:var(--step--2);color:var(--mist);align-items:center;gap:.4rem;display:inline-flex}.status:before{content:"";border-radius:50%;width:.45rem;height:.45rem}.status--live:before{background:var(--sea);box-shadow:0 0 10px #7fd9c4cc}.status--dev:before{border:1px solid var(--gold)}.project__desc{color:#f1ead8d1;font-size:.98rem}.project__links{font-size:var(--step--1);flex-wrap:wrap;gap:.3rem 1.1rem;display:flex}.stage--contact{min-height:125svh}.contact{border:1px solid var(--line);background:var(--glass);-webkit-backdrop-filter:blur(14px);border-radius:18px;gap:.9rem;margin-top:.8rem;padding:1.4rem 1.4rem 1.2rem;display:grid}.contact__title{font-size:var(--step-2)}.contact__intro{color:var(--mist);font-size:.98rem}.contact__links{margin:.2rem 0 0;padding:0;list-style:none;display:grid}.contact__links a{border-top:1px solid var(--line);grid-template-columns:6.5rem minmax(0,1fr);align-items:baseline;gap:1rem;padding:.85rem 0;text-decoration:none;display:grid}.contact__label{font-size:var(--step--1);color:var(--sea);font-style:oblique 10deg}.contact__value{font-family:var(--font-display);font-size:var(--step-1);overflow-wrap:anywhere;transition:color .2s}.contact__links a:hover .contact__value,.contact__links a:focus-visible .contact__value{color:var(--gold)}.contact__business{border-top:1px solid var(--line);font-size:var(--step--1);color:var(--mist);padding-top:.9rem}.archive{z-index:2;padding:16vh var(--gutter) 14vh;background:linear-gradient(#04161400,#041614e6 30%);position:relative}.archive__inner{grid-template-columns:minmax(0,28rem) minmax(0,1fr);align-items:start;gap:clamp(2rem,6vw,6rem);display:grid}.archive__intro{justify-items:start;gap:1.2rem;display:grid}.archive__intro h2{font-size:var(--step-4)}.archive__intro p{color:#f1ead8d1}.archive__list{margin:0;padding:0;list-style:none;display:grid}.archive__list a{border-bottom:1px solid var(--line);gap:.2rem;padding:1.15rem 0;text-decoration:none;display:grid}.archive__list li:first-child a{border-top:1px solid var(--line)}.archive__date{font-size:var(--step--2);color:var(--mist)}.archive__title{font-family:var(--font-display);font-size:var(--step-2);line-height:1.15}.nowebgl-note{left:50%;top:calc(var(--header-h) + .5rem);z-index:5;background:var(--glass);border:1px solid var(--line);max-width:90vw;font-size:var(--step--2);color:var(--mist);border-radius:999px;padding:.5rem 1rem;position:fixed;transform:translate(-50%)}@media (width<=1100px){.rail{display:none}.stage[data-text=right] .stage__inner{margin-right:0}}@media (width<=860px),(aspect-ratio<=9/10){:root{--header-h:3.75rem}.stage{min-height:auto;padding:50svh var(--gutter) 16svh;align-items:start}.stage[data-text] .stage__inner{justify-self:stretch;width:100%;margin-right:0}.stage__inner:before{inset:-3rem calc(var(--gutter) * -1) -4rem;background:linear-gradient(#04161400,#041614d1 3.5rem calc(100% - 4rem),#04161400)}.hero{align-items:end;min-height:100svh;padding-top:40svh;padding-bottom:6.5rem}.hero .stage__inner:before{background:linear-gradient(#04161400,#0416148c 4rem,#041614b3)}.hero__name span:last-child{padding-left:.3em}.hero__scroll{display:none}.stage--contact{min-height:auto}.contact__links a{grid-template-columns:1fr;gap:.15rem}.flowlog__rows li{grid-template-columns:4.9rem 1fr;row-gap:.05rem}.flowlog__msg{grid-column:2}.archive__inner{grid-template-columns:1fr}.hud{bottom:.7rem}}@media (width<=600px){.label--moon{display:none}}@media (height<=500px){.label--node,.label--moon{display:none}}.no-webgl .gl,.no-webgl .labels,.no-webgl .rail__packet,.no-webgl .hud__item--right{display:none}@media (prefers-reduced-motion:reduce){.hero__scroll i{animation:none}}html.lenis,html.lenis body{height:auto}.lenis:not(.lenis-autoToggle).lenis-stopped{overflow:clip}.lenis [data-lenis-prevent],.lenis [data-lenis-prevent-wheel],.lenis [data-lenis-prevent-touch],.lenis [data-lenis-prevent-vertical],.lenis [data-lenis-prevent-horizontal]{overscroll-behavior:contain}.lenis.lenis-smooth iframe{pointer-events:none}.lenis.lenis-autoToggle{transition-behavior:allow-discrete;transition-property:overflow;transition-duration:1ms}
