@font-face{font-family:Aspekta;src:url(/fonts/AspektaVF.woff2)format("woff2");font-weight:100 900;font-display:swap}:root{--ink:#f3f5fb;--ink-dim:#f3f5fbb8;--ink-faint:#f3f5fb7a;--glass:#0d101c7a;--glass-hover:#121626a3;--glass-edge:#ffffff29;--glass-active:#ffffff29;--glass-active-edge:#ffffff52;--radius:10px;--control:36px;--nav-width:262px;--font:"Aspekta", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--ease:cubic-bezier(.22, 1, .36, 1);--gutter:clamp(14px, 2.4vw, 28px);--safe-top:env(safe-area-inset-top,0px);--safe-right:env(safe-area-inset-right,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--lift:0 1px 2px #080a1459, 0 0 22px #080a1452;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{height:100%;color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;background:#cfe1f8;margin:0;font-weight:400;overflow:hidden}#scene{touch-action:none;cursor:grab;width:100%;height:100%;display:block;position:fixed;inset:0}#scene:active{cursor:grabbing}.touch-stick{z-index:4;-webkit-backdrop-filter:blur(10px)saturate(140%);pointer-events:none;-webkit-user-select:none;user-select:none;opacity:0;width:56px;height:56px;transition:opacity .15s var(--ease);will-change:transform, opacity;background:#0d101c3d;border-radius:50%;margin:-28px 0 0 -28px;position:fixed;top:0;left:0;box-shadow:inset 0 0 0 1px #ffffff2e,0 8px 24px #00000024}.touch-stick[data-active=true]{opacity:1}html[data-boot=loading] .touch-stick{opacity:0!important}.touch-stick-knob{will-change:transform;background:#f3f5fb6b;border-radius:50%;width:18px;height:18px;margin:-9px 0 0 -9px;position:absolute;top:50%;left:50%;box-shadow:inset 0 0 0 1px #ffffff8c,0 2px 8px #080a1438}button{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--ink);outline-offset:3px}.control,.control-bar{height:var(--control);border-radius:var(--radius);background:var(--glass);box-shadow:inset 0 0 0 1px var(--glass-edge), 0 10px 28px #0000002e;-webkit-backdrop-filter:blur(18px)saturate(150%)}.control{color:var(--ink);white-space:nowrap;cursor:pointer;transition:background-color .25s var(--ease), box-shadow .25s var(--ease), transform .2s var(--ease);border:0;align-items:center;gap:8px;padding:0 13px;font-size:13.5px;font-weight:450;line-height:1;display:inline-flex}.control:hover{background:var(--glass-hover)}.control:active{transform:scale(.98)}.control[aria-pressed=true]{box-shadow:inset 0 0 0 1px var(--glass-active-edge), 0 10px 28px #00000038;background:#1c2236a8}.control-icon{flex:none;width:10.5px;height:10.5px}.icon-toggle{width:var(--control);flex:none;justify-content:center;padding:0}.control-close{border-radius:9px;justify-content:center;width:30px;height:30px;padding:0}.control-close svg{width:12px;height:12px}.control-bar{align-items:center;gap:2px;padding:3px;display:inline-flex}.nav-pill{height:calc(var(--control) - 6px);color:var(--ink-dim);white-space:nowrap;cursor:pointer;transition:background-color .22s var(--ease), color .22s var(--ease);background:0 0;border:0;border-radius:7px;padding:0 11.5px;font-size:13px;font-weight:450;line-height:1}.nav-pill:hover{color:var(--ink);background:#ffffff0f}.nav-pill[aria-pressed=true]{color:var(--ink);background:var(--glass-active);box-shadow:inset 0 0 0 1px #ffffff24}.corner-bottom-left,.corner-bottom-right{z-index:6;transition:opacity .55s var(--ease), transform .55s var(--ease);align-items:center;gap:7px;display:flex;position:fixed}.corner-bottom-left{bottom:calc(var(--gutter) + var(--safe-bottom));left:calc(var(--gutter) + var(--safe-left))}.corner-bottom-right{bottom:calc(var(--gutter) + var(--safe-bottom));right:calc(var(--gutter) + var(--safe-right))}html[data-boot=loading] .corner-bottom-left,html[data-boot=loading] .corner-bottom-right{opacity:0;pointer-events:none;transform:translateY(5px)}html[data-boot=loading] .settings-popover,html[data-boot=loading] .nav{opacity:0;pointer-events:none;transform:translateY(-5px)}.settings-icon{opacity:.78;width:14px;height:14px;transition:opacity .22s var(--ease)}.settings-toggle:hover .settings-icon,.settings-toggle[aria-pressed=true] .settings-icon{opacity:1}.settings-popover{right:calc(var(--gutter) + var(--safe-right));bottom:calc(var(--gutter) + var(--safe-bottom) + var(--control) + 8px);z-index:8;width:min(var(--nav-width), calc(100vw - 2 * var(--gutter) - var(--safe-left) - var(--safe-right)));border-radius:var(--radius);background:var(--glass);box-shadow:inset 0 0 0 1px var(--glass-edge), 0 20px 50px #00000047;-webkit-backdrop-filter:blur(18px)saturate(150%);opacity:0;pointer-events:none;transition:opacity .24s var(--ease), transform .3s var(--ease);flex-direction:column;gap:6px;padding:8px 10px;display:flex;position:fixed;transform:translateY(6px)}.settings-popover[hidden]{display:none}.settings-popover[data-open=true]{opacity:1;pointer-events:auto;transform:none}.settings-row{justify-content:space-between;align-items:center;gap:10px;min-height:28px;display:flex}.settings-label{color:var(--ink-dim);-webkit-user-select:none;user-select:none;padding-left:2px;font-size:12.5px;font-weight:450}.settings-seg{background:#ffffff0b;border-radius:7px;align-items:center;gap:2px;height:28px;padding:2px;display:inline-flex;box-shadow:inset 0 0 0 1px #ffffff0f}.settings-opt{height:24px;color:var(--ink-dim);white-space:nowrap;cursor:pointer;transition:background-color .2s var(--ease), color .2s var(--ease);background:0 0;border:0;border-radius:5.5px;padding:0 8px;font-size:12px;font-weight:450;line-height:1}.settings-opt:hover{color:var(--ink);background:#ffffff0f}.settings-opt[aria-pressed=true]{color:var(--ink);background:var(--glass-active);box-shadow:inset 0 0 0 1px #ffffff24}.sound-toggle{width:var(--control);justify-content:center;padding:0}.eq{align-items:center;gap:2.5px;height:14px;display:inline-flex}.eq i{background:var(--ink);opacity:.45;width:2px;height:4px;transition:height .25s var(--ease), opacity .25s var(--ease);border-radius:2px;display:block}.sound-toggle[aria-pressed=true] .eq i{opacity:.95;animation:1.15s ease-in-out infinite eqWave}.sound-toggle[aria-pressed=true][data-playing=false] .eq i{opacity:.72;height:7px;animation-play-state:paused}.sound-toggle[aria-pressed=true] .eq i:first-child{height:6px;animation-delay:0s}.sound-toggle[aria-pressed=true] .eq i:nth-child(2){height:12px;animation-delay:.18s}.sound-toggle[aria-pressed=true] .eq i:nth-child(3){height:9px;animation-delay:.36s}.sound-toggle[aria-pressed=true] .eq i:nth-child(4){height:5px;animation-delay:.52s}@keyframes eqWave{0%,to{transform:scaleY(.45)}50%{transform:scaleY(1.15)}}.nav{top:calc(var(--gutter) + var(--safe-top));right:calc(var(--gutter) + var(--safe-right));max-height:calc(100dvh - 2 * var(--gutter) - var(--safe-top) - var(--safe-bottom) - var(--control) - 12px);z-index:6;width:min(var(--nav-width), calc(100vw - 2 * var(--gutter) - var(--safe-left) - var(--safe-right)));pointer-events:none;transition:opacity .55s var(--ease), transform .55s var(--ease);flex-direction:column;align-items:stretch;display:flex;position:fixed}.nav-bar{pointer-events:auto;width:100%;display:flex}.nav-pill{flex:1;justify-content:center;align-items:center;padding:0 10px;display:inline-flex}.nav-body{pointer-events:auto;border-radius:var(--radius);background:var(--glass);width:100%;min-height:0;box-shadow:inset 0 0 0 1px var(--glass-edge), 0 20px 50px #00000040;-webkit-backdrop-filter:blur(18px)saturate(150%);scrollbar-width:thin;scrollbar-color:#fff3 transparent;transition:opacity .28s var(--ease), transform .36s var(--ease);margin-top:8px;overflow-y:auto}.nav[data-section=""] .nav-body{opacity:0;pointer-events:none;transform:translateY(-6px)}.nav-list{margin:0;padding:6px;list-style:none}.nav-list[hidden]{display:none}.project-row{text-align:left;width:100%;color:var(--ink-dim);cursor:pointer;transition:background-color .2s var(--ease), color .25s var(--ease);background:0 0;border:0;border-radius:8px;align-items:center;gap:10px;padding:8.5px 10px;font-size:14px;text-decoration:none;display:flex}.project-row:hover{color:var(--ink);background:#ffffff0f}.project-row[aria-pressed=true]{color:var(--ink);background:#ffffff1c}.project-name{flex:1;min-width:0}.project-dot{background:var(--dot);opacity:.78;width:8px;height:8px;transition:opacity .3s var(--ease), box-shadow .3s var(--ease);border-radius:50%;flex:none}.project-row:hover .project-dot,.project-row[aria-pressed=true] .project-dot{opacity:1;box-shadow:0 0 10px var(--dot)}.row-icon{object-fit:contain;-webkit-user-select:none;user-select:none;pointer-events:none;opacity:.9;width:17px;height:17px;transition:opacity .22s var(--ease), transform .22s var(--ease);flex:none;display:block}.project-row:hover .row-icon,.project-row[aria-pressed=true] .row-icon{opacity:1;transform:scale(1.04)}.connect-row .link-icon{opacity:.58;transition:opacity .2s var(--ease), transform .2s var(--ease)}.connect-row:hover .link-icon{opacity:1;transform:translate(1px,-1px)}.edu-item{border-radius:8px;align-items:flex-start;gap:10.5px;padding:8.5px 10px;display:flex}.edu-icon{opacity:.96;width:19px;height:19px;margin-top:2px}.edu-text{flex-direction:column;gap:2px;min-width:0;display:flex}.edu-school{color:var(--ink);font-size:14px;font-weight:450;line-height:1.3}.edu-detail{color:var(--ink-dim);font-size:12.5px;line-height:1.35}.showcase{right:calc(var(--gutter) + var(--safe-right));bottom:calc(var(--gutter) + var(--safe-bottom) + var(--control) + 10px);z-index:7;width:min(400px, calc(100vw - 2 * var(--gutter) - var(--safe-left) - var(--safe-right)));background:var(--glass);box-shadow:inset 0 0 0 1px var(--glass-edge), 0 24px 60px #0000004d;-webkit-backdrop-filter:blur(22px)saturate(150%);opacity:0;transition:opacity .35s var(--ease), transform .5s var(--ease), right .45s var(--ease);border-radius:14px;padding:8px;position:fixed;transform:translateY(8px)}.showcase[hidden]{display:none}.showcase[data-show=true]{opacity:1;transform:none}body:has(.nav:not([data-section=""])) .showcase{right:calc(var(--gutter) + var(--safe-right) + min(var(--nav-width), calc(100vw - 2 * var(--gutter))) + 12px)}.showcase-media{aspect-ratio:16/10;background:color-mix(in srgb, var(--dot) 18%, #0d1018);border-radius:10px;position:relative;overflow:hidden}.showcase-media video,.showcase-media img{object-fit:cover;width:100%;height:100%;display:block;position:absolute;inset:0}.showcase-media[data-fit=contain] img{object-fit:contain;padding:10px 0}.showcase-media img{opacity:0;transition:opacity .9s var(--ease)}.showcase-media img[data-on=true]{opacity:1}.showcase-blank{background:radial-gradient(120% 90% at 20% 15%, color-mix(in srgb, var(--dot) 70%, transparent), transparent 60%), radial-gradient(120% 90% at 85% 90%, color-mix(in srgb, var(--dot) 40%, #0d1018), transparent 70%);letter-spacing:-.02em;color:var(--ink);text-shadow:var(--lift);place-items:center;font-size:30px;font-weight:260;display:grid;position:absolute;inset:0}.showcase-body{padding:12px 8px 6px}.showcase-head{align-items:center;gap:9px;min-width:0;display:flex}.showcase-dot{background:var(--dot);width:9px;height:9px;box-shadow:0 0 10px var(--dot);border-radius:50%;flex:none}.showcase-title{letter-spacing:-.01em;margin:0;font-size:18px;font-weight:450}.showcase-desc{color:var(--ink-dim);margin:6px 0 0;font-size:14px;line-height:1.45}.showcase-link{color:var(--ink);align-items:center;gap:6px;margin-top:10px;font-size:13px;text-decoration:none;display:inline-flex}.showcase-link:hover span{text-underline-offset:3px;text-decoration:underline}.showcase-link[hidden]{display:none}.link-icon{flex:none;width:10px;height:10px}.showcase-close{position:absolute;top:16px;right:16px}.welcome{--rule-glow:#ffe8acd1;z-index:4;text-align:center;pointer-events:none;-webkit-user-select:none;user-select:none;opacity:0;transition:opacity .92s var(--ease);will-change:opacity;background:linear-gradient(#2e4e863d 0%,#34548c2b 48%,#3858900f 76%,#38589000 100%);flex-direction:column;align-items:center;padding:clamp(90px,14vh,138px) 24px 64px;display:flex;position:fixed;inset:0 0 auto;transform:translate(0,0)}.welcome[data-tone=night]{background:0 0}.welcome[hidden]{display:none}.welcome[data-state=visible]{opacity:1}.welcome[data-state=leaving]{opacity:0;transition:opacity .58s var(--ease)}html[data-boot=loading] .welcome{opacity:0!important}body:has(.showcase[data-show=true]) .welcome{opacity:0!important}body:has(.nav:not([data-section=""])) .welcome{opacity:0!important}.welcome-title,.welcome-sub{filter:blur(5px);transition:transform 1.02s var(--ease), filter .92s var(--ease);will-change:transform, filter;transform:translateY(8px)}.welcome[data-state=visible] .welcome-title,.welcome[data-state=visible] .welcome-sub{filter:blur();transform:translate(0,0)}.welcome[data-state=leaving] .welcome-title,.welcome[data-state=leaving] .welcome-sub{filter:blur(4px);transition:transform .64s var(--ease), filter .58s var(--ease);transform:translateY(-6px)}.welcome-title{letter-spacing:-.014em;color:#fffaf0;text-shadow:0 1px 2.5px #182a4c80,0 3px 14px #1c305652,0 0 22px #ffe4a28c;white-space:nowrap;margin:0;font-size:clamp(24px,2.7vw,32px);font-weight:340;line-height:1.1}.welcome[data-mode=realm] .welcome-title{letter-spacing:.004em;font-size:clamp(18px,2vw,23px);font-weight:360}.welcome[data-tone=night] .welcome-title{color:#f8f9fd;text-shadow:0 1px 3px #040710c7, 0 3px 18px #040710a8, 0 0 22px var(--rule-glow)}.welcome-rule{background:linear-gradient(90deg, #fff0c600 0%, var(--rule-glow) 28%, #fffef9 50%, var(--rule-glow) 72%, #fff0c600 100%);width:clamp(118px,12.5vw,156px);height:1px;box-shadow:0 1px 4px #1424445c, 0 0 12px var(--rule-glow);opacity:0;transition:transform 1.12s var(--ease), opacity .92s var(--ease);margin-top:10px;display:block;position:relative;transform:scaleX(.42)}.welcome-rule:after{content:"";background:radial-gradient(50% 50% at 50% 50%, #fff 0%, var(--rule-glow) 45%, transparent 100%);border-radius:50%;width:14px;height:5px;margin-left:-7px;position:absolute;top:-2px;left:50%}.welcome[data-state=visible] .welcome-rule{opacity:1;transform:scaleX(1)}.welcome[data-state=leaving] .welcome-rule{opacity:0;transition:transform .58s var(--ease), opacity .48s var(--ease);transform:scaleX(.72)}.welcome-sub{letter-spacing:.065em;color:#fff9ecdb;text-shadow:0 1px 2px #14244494,0 2px 10px #16284c6b;white-space:nowrap;margin:9px 0 0;font-size:clamp(12px,1.1vw,13px);font-weight:410;line-height:1.1}.welcome[data-mode=realm] .welcome-sub{display:none}.noscript{text-align:center;color:var(--ink-dim);position:fixed;inset:auto 0 40%}@media (width<=760px){:root{--nav-width:256px}.nav-pill{padding:0 9px;font-size:12.5px}.showcase{left:calc(var(--gutter) + var(--safe-left));right:calc(var(--gutter) + var(--safe-right));width:auto}body:has(.nav:not([data-section=""])) .showcase{left:calc(var(--gutter) + var(--safe-left));right:calc(var(--gutter) + var(--safe-right));width:auto}}@media (width<=560px){.corner-bottom-right{gap:6px}#roam-toggle{gap:7px;padding:0 11px;font-size:13px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
