@font-face{font-family:Space Grotesk;src:url(/fonts/space-grotesk.woff2)format("woff2");font-weight:300 700;font-display:swap}@font-face{font-family:IBM Plex Sans;src:url(/fonts/ibm-plex-sans.woff2)format("woff2");font-weight:100 700;font-display:swap}:root{--bg:#010103;--text:#eef0f6;--muted:#9aa0b4;--accent:#7fd6ff;--glass:#0e101c80;--border:#ffffff1f;color:var(--text);background:var(--bg);font-family:Space Grotesk,system-ui,sans-serif}[data-view=about]{--accent:#ffc27a}[data-view=vision]{--accent:#c3a4ff}[data-view=follow]{--accent:#6ff5d8}*{box-sizing:border-box}body{background:var(--bg);margin:0;overflow-x:hidden}.js body{overflow:hidden}#scene{width:100%;height:100%;display:block;position:fixed;inset:0}.screen{flex-direction:column;justify-content:center;min-height:100svh;padding:2rem clamp(1rem,8vw,8rem);display:flex;position:relative}.js .screen{opacity:0;visibility:hidden;pointer-events:none;transform:translate(calc(var(--dx,0) * 80px), calc(var(--dy,0) * 80px));transition:opacity .5s,transform .8s cubic-bezier(.5,0,.75,0),visibility 0s .8s;position:fixed;inset:0}.js[data-view=hero] #hero,.js[data-view=about] #about,.js[data-view=vision] #vision,.js[data-view=follow] #follow{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .9s .15s,transform 1.1s cubic-bezier(.2,.8,.2,1) .15s,visibility;transform:none}.snap .screen{transition:none!important}#flash{pointer-events:none;opacity:0;background:radial-gradient(circle at 50% 50%, #fff 0%, var(--accent) 35%, transparent 80%);mix-blend-mode:screen;z-index:2;position:fixed;inset:0}#loader{display:none}.js #loader{background:#ffffff14;width:72px;height:1px;margin-left:-36px;transition:opacity .4s;display:block;position:fixed;top:50%;left:50%;overflow:hidden}.js:not([data-view=loading]) #loader{opacity:0}#loader span{background:linear-gradient(90deg,#0000,#fff,#0000);width:40%;animation:.75s ease-in-out infinite sweep;position:absolute;inset:0}@keyframes sweep{0%{transform:translate(-100%)}to{transform:translate(250%)}}#hero{text-align:center;align-items:center}.greet{letter-spacing:.02em;text-shadow:0 0 24px #a0d2ff59,0 0 60px #010103e6,0 0 18px #010103e6;margin:0;font-size:clamp(2.2rem,7vw,5.6rem);font-weight:300;line-height:1.1}.greet .name{letter-spacing:-.03em;font-weight:700}.js .greet .ch{white-space:pre;display:inline-block}.js[data-view=hero] .greet .ch{animation:glyph 1s cubic-bezier(.2, .8, .2, 1) calc(.2s + var(--i) * 55ms) both}@keyframes glyph{0%{opacity:0;filter:blur(12px);transform:translateY(.35em)scale(1.25)}}.dims{justify-content:center;margin-top:clamp(2rem,6vh,3.5rem);display:flex}.dim{color:var(--text);flex-direction:column;align-items:center;gap:.35rem;padding:.9rem clamp(1rem,3.5vw,2.6rem);text-decoration:none;display:flex;position:relative}.dim+.dim:before{content:"";background:linear-gradient(#0000,#ffffff59,#0000);width:1px;position:absolute;top:22%;bottom:22%;left:0}.idx{letter-spacing:.3em;color:var(--accent);opacity:.8;font-variant-numeric:tabular-nums;font-size:.7rem}.dim .label{text-shadow:0 0 14px #010103f2;letter-spacing:.22em;text-transform:uppercase;font-size:clamp(.95rem,1.6vw,1.25rem);transition:letter-spacing .5s cubic-bezier(.2,.8,.2,1),text-shadow .4s}.dim:after{content:"";background:linear-gradient(90deg, transparent, var(--accent), transparent);width:0;height:1px;transition:width .5s cubic-bezier(.2,.8,.2,1),left .5s cubic-bezier(.2,.8,.2,1);position:absolute;bottom:.35rem;left:50%}.dim:hover:after,.dim:focus-visible:after{width:80%;left:10%}.dim:hover .label,.dim:focus-visible .label{letter-spacing:.34em;text-shadow:0 0 18px var(--accent)}.dim:focus-visible{outline:none}.js[data-view=hero] .dim{animation:rise 1.1s cubic-bezier(.2, .8, .2, 1) calc(1.3s + var(--n,0) * .15s) both}.dim:nth-child(2){--n:1}.dim:nth-child(3){--n:2}@keyframes rise{0%{opacity:0;filter:blur(6px);transform:translateY(18px)}}.page{align-items:flex-start}.page>*{max-width:36rem}.page h2{letter-spacing:-.04em;text-shadow:0 0 40px color-mix(in srgb, var(--accent) 45%, transparent);margin:0 0 1.5rem;font-size:clamp(3rem,9vw,7.5rem);font-weight:700;line-height:.95}p{font-family:IBM Plex Sans,system-ui,sans-serif}.page .body p{color:#c3c8d8;margin:0 0 1rem;font-size:clamp(1.1rem,1.6vw,1.3rem);line-height:1.6}.page .body p:first-child{color:var(--text);margin-bottom:1.2rem;font-size:clamp(1.35rem,2.3vw,1.85rem);line-height:1.4}.page .body em{color:var(--accent);background:linear-gradient(100deg, var(--accent) 35%, #fff 50%, var(--accent) 65%) 0 0 / 250% 100%;-webkit-text-fill-color:transparent;filter:drop-shadow(0 0 14px color-mix(in srgb, var(--accent) 45%, transparent));-webkit-background-clip:text;background-clip:text;font-style:normal;font-weight:600;animation:5s linear infinite shimmer}@keyframes shimmer{0%{background-position:150% 0}to{background-position:-100% 0}}.js .page .w{display:inline-block}.js .page em.w{display:inline}.js[data-view=about] #about .w,.js[data-view=vision] #vision .w,.js[data-view=follow] #follow .w{animation:word .9s cubic-bezier(.2, .8, .2, 1) calc(.6s + var(--i) * 40ms) both}@keyframes word{0%{opacity:0;filter:blur(8px);transform:translateY(.4em)}}.tiles{perspective:900px;grid-template-columns:repeat(3,7rem);gap:1rem;width:100%;margin-top:1rem;display:grid}.tile{aspect-ratio:1;color:var(--text);background:var(--glass);border:1px solid var(--border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transform:rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));border-radius:18px;justify-content:center;align-items:center;text-decoration:none;transition:transform .15s ease-out,border-color .2s;display:flex}a.tile:hover,a.tile:focus-visible{border-color:var(--accent);color:var(--accent)}.tile svg{width:3rem;height:3rem}.tiles .note{color:var(--accent);letter-spacing:.01em;white-space:nowrap;text-shadow:0 0 16px color-mix(in srgb, var(--accent) 50%, transparent);flex-direction:column;grid-column:2;justify-self:center;align-items:center;gap:.2rem;margin:0;font-family:Space Grotesk,system-ui,sans-serif;font-size:1.2rem;font-weight:600;animation:2.4s ease-in-out infinite bob;display:flex}.tiles .note svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:1.7rem;height:2.8rem}@keyframes bob{50%{transform:translateY(-5px)}}.sr{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.links{flex-wrap:wrap;gap:.75rem;margin-top:1.25rem;display:flex}.links a{color:var(--text);border:1px solid var(--border);border-radius:999px;padding:.75rem 1.3rem;text-decoration:none}.links a:hover,.links a:focus-visible{border-color:var(--accent);color:var(--accent)}.pagenav{display:none}.js .pagenav{opacity:0;visibility:hidden;z-index:1;align-items:center;gap:.25rem;transition:opacity .6s,visibility 0s .6s;display:flex;position:fixed;bottom:clamp(1rem,4vh,2rem);left:50%;transform:translate(-50%)}.js:is([data-view=about],[data-view=vision],[data-view=follow]) .pagenav{opacity:1;visibility:visible;transition:opacity .9s .4s,visibility}.pagenav a{min-height:44px;color:var(--muted);letter-spacing:.2em;text-transform:uppercase;white-space:nowrap;align-items:center;gap:.45rem;padding:0 .9rem;font-size:.78rem;text-decoration:none;transition:color .3s;display:flex}.pagenav .home:before{content:"↑";letter-spacing:0}.pagenav a:hover,.pagenav a:focus-visible{color:var(--text)}[data-view=about] .to[data-dim=about],[data-view=vision] .to[data-dim=vision],[data-view=follow] .to[data-dim=follow]{color:var(--accent)}@media (width<=700px){.js .page{scrollbar-width:none;justify-content:flex-start;padding-top:42svh;padding-bottom:5.5rem;overflow-y:auto}.page h2{margin-bottom:1rem;font-size:min(3rem,7svh)}.page .body p{font-size:min(1.05rem,2.3svh)}.page .body p:first-child{font-size:min(1.3rem,2.75svh)}.dim{padding:.9rem .8rem}.dim .label{letter-spacing:.14em}.dim:hover .label{letter-spacing:.2em}.pagenav .idx,.pagenav .home .label{display:none}.pagenav a{letter-spacing:.1em;padding:0 .5rem;font-size:.7rem}.tiles{grid-template-columns:repeat(3,5.5rem);gap:.75rem}.tile svg{width:2.4rem;height:2.4rem}}@media (prefers-reduced-motion:reduce){.js .screen{transition:opacity .3s,visibility;transform:none!important}.js .pagenav{transition:opacity .3s,visibility}.js[data-view=hero] .greet .ch,.js[data-view=hero] .dim,.js .page .w,.page .body em,.tiles .note{animation:none}}
