:root{--bg-void:#05070f;--surface-raised:#0c111cc7;--surface-solid:#0c111c;--hairline:#ffffff17;--hairline-strong:#ffffff2b;--text-primary:#eef2f8;--text-muted:#97a3b8;--text-dim:#5c6980;--accent-bio:#45d0c8;--accent-skills:#e2ab52;--accent-projects:#2fae8f;--accent-core:#ffd9a8;--font-display:"Outfit", system-ui, sans-serif;--font-body:"Outfit", system-ui, sans-serif;--font-mono:"Space Mono", ui-monospace, monospace;--ease-out:cubic-bezier(.16, 1, .3, 1);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg-void);color:var(--text-primary);font-family:var(--font-body);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-size:15px;line-height:1.6;overflow:hidden}a{color:inherit}button{cursor:pointer;color:inherit;font-family:inherit}:focus-visible{outline:1px solid var(--text-primary);outline-offset:3px;border-radius:2px}::selection{background:var(--text-primary);color:var(--bg-void)}.panel::-webkit-scrollbar{width:8px}.panel::-webkit-scrollbar-thumb{background:var(--hairline-strong);border-radius:4px}.panel::-webkit-scrollbar-track{background:0 0}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important}}.app{width:100%;height:100%;position:relative}.scene-canvas{z-index:0;position:fixed;inset:0}.boot{z-index:60;background:var(--bg-void);transition:opacity .6s var(--ease-out);flex-direction:column;justify-content:center;align-items:center;gap:20px;display:flex;position:fixed;inset:0}.boot[data-hidden=true]{opacity:0;pointer-events:none}.boot__mark{font-family:var(--font-mono);letter-spacing:.14em;color:var(--text-dim);text-transform:uppercase;font-size:13px}.boot__bar{background:var(--hairline);width:160px;height:1px;overflow:hidden}.boot__bar:after{content:"";background:var(--text-primary);width:40%;height:100%;animation:boot-sweep 1.1s var(--ease-out) infinite;display:block}@keyframes boot-sweep{0%{transform:translate(-100%)}to{transform:translate(350%)}}.header{z-index:10;pointer-events:none;justify-content:space-between;align-items:flex-start;gap:24px;padding:32px 36px;display:flex;position:fixed;top:0;left:0;right:0}.header__name{font-family:var(--font-display);letter-spacing:-.02em;margin:0;font-size:clamp(26px,3vw,34px);font-weight:600;line-height:1.15}.header__role{color:var(--text-muted);margin:9px 0 0;font-size:19px}.header__status{font-family:var(--font-mono);letter-spacing:.03em;color:var(--text-dim);pointer-events:auto;flex-direction:column;align-items:flex-end;gap:7px;font-size:13px;display:flex}.header__badge{color:var(--text-muted);align-items:center;gap:8px;display:inline-flex}.header__badge:before{content:"";background:var(--accent-projects);width:6px;height:6px;box-shadow:0 0 0 3px color-mix(in srgb, var(--accent-projects) 18%, transparent);border-radius:50%}.header__mail{color:var(--text-muted);transition:color .2s var(--ease-out), border-color .2s var(--ease-out);border-bottom:1px solid #0000;text-decoration:none}.header__mail:hover{color:var(--text-primary);border-bottom-color:var(--hairline-strong)}.header__hint{z-index:10;font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);pointer-events:none;white-space:nowrap;align-items:center;gap:12px;font-size:13px;display:flex;position:fixed;bottom:116px;left:50%;transform:translate(-50%)}.header__hint:before,.header__hint:after{content:"";background:var(--hairline);width:30px;height:1px}.nav-list{z-index:10;border:1px solid var(--hairline);background:var(--surface-raised);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);scrollbar-width:none;border-radius:999px;gap:2px;max-width:calc(100vw - 32px);padding:4px;display:flex;position:fixed;bottom:34px;left:50%;overflow-x:auto;transform:translate(-50%)}.nav-list::-webkit-scrollbar{display:none}.nav-list__item{isolation:isolate;white-space:nowrap;font-family:var(--font-mono);letter-spacing:.01em;color:var(--text-muted);transition:color .2s var(--ease-out);background:0 0;border:none;border-radius:999px;align-items:center;gap:10px;padding:11px 20px;font-size:14px;display:inline-flex;position:relative}.nav-list__item:hover{color:var(--text-primary)}.nav-list__highlight{z-index:-1;background:#ffffff17;border-radius:999px;position:absolute;inset:0}.nav-list__dot{opacity:.55;width:7px;height:7px;transition:opacity .2s var(--ease-out);border-radius:50%;flex:none}.nav-list__item[data-active=true]{color:var(--text-primary)}.nav-list__item[data-active=true] .nav-list__dot{opacity:1}.nav-list__index{color:var(--text-dim)}.nav-list__item[data-active=true] .nav-list__index{color:var(--text-muted)}.planet-tag{font-family:var(--font-mono);letter-spacing:.08em;color:var(--text-primary);white-space:nowrap;border:1px solid var(--hairline-strong);pointer-events:none;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#05070fd1;border-radius:999px;align-items:center;gap:9px;padding:6px 13px;font-size:12px;display:inline-flex}.planet-tag__index{color:var(--tag-accent)}.panel{z-index:20;background:var(--surface-raised);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-left:1px solid var(--hairline);width:min(440px,100%);padding:40px 38px 64px;position:fixed;top:0;bottom:0;right:0;overflow-y:auto}.panel__close{border:1px solid var(--hairline);width:34px;height:34px;color:var(--text-muted);transition:color .2s var(--ease-out), border-color .2s var(--ease-out);background:0 0;border-radius:50%;justify-content:center;align-items:center;font-size:14px;line-height:1;display:flex;position:absolute;top:30px;right:30px}.panel__close:hover{color:var(--text-primary);border-color:var(--hairline-strong)}.panel__kicker{font-family:var(--font-mono);letter-spacing:.11em;text-transform:uppercase;align-items:center;gap:10px;margin:0 0 16px;font-size:12px;display:inline-flex}.panel__kicker:before{content:"";opacity:.7;background:currentColor;width:20px;height:1px}.panel__title{font-family:var(--font-display);letter-spacing:-.02em;margin:0 0 26px;padding-right:44px;font-size:30px;font-weight:600;line-height:1.2}.panel__lead{color:var(--text-muted);margin:0 0 16px;font-size:15.5px;line-height:1.7}.panel__lead:first-of-type{color:var(--text-primary)}.panel__meta{border-top:1px solid var(--hairline);flex-direction:column;gap:0;margin-top:30px;display:flex}.panel__meta-row{font-family:var(--font-mono);border-bottom:1px solid var(--hairline);justify-content:space-between;gap:16px;padding:12px 0;font-size:13px;display:flex}.panel__meta-row span:first-child{color:var(--text-dim);letter-spacing:.04em}.panel__meta-row span:last-child{color:var(--text-primary)}.panel__category{margin-bottom:26px}.panel__category-label{font-family:var(--font-mono);color:var(--text-dim);letter-spacing:.11em;text-transform:uppercase;margin:0 0 12px;font-size:12px}.panel__chips{flex-wrap:wrap;gap:8px;display:flex}.panel__chip{font-family:var(--font-mono);border:1px solid var(--hairline);color:var(--text-muted);transition:border-color .2s var(--ease-out), color .2s var(--ease-out);border-radius:5px;padding:6px 11px;font-size:13px}.panel__chip:hover{border-color:var(--hairline-strong);color:var(--text-primary)}.panel__project{border-top:1px solid var(--hairline);padding:22px 0}.panel__project:first-of-type{border-top:none;padding-top:2px}.panel__project-name{font-family:var(--font-display);letter-spacing:-.01em;margin:0 0 8px;font-size:17px;font-weight:600}.panel__project-desc{color:var(--text-muted);margin:0 0 14px;font-size:14.5px;line-height:1.65}.panel__project-link{font-family:var(--font-mono);letter-spacing:.04em;opacity:.9;transition:gap .2s var(--ease-out), opacity .2s var(--ease-out);align-items:center;gap:8px;font-size:13px;text-decoration:none;display:inline-flex}.panel__project-link:hover{opacity:1;gap:12px}@media (width<=720px){.header{padding:22px 20px}.header__status{display:none}.header__role{font-size:15px}.header__hint{letter-spacing:.1em;font-size:11px;bottom:118px}.header__hint:before,.header__hint:after{width:18px}.nav-list{bottom:22px}.nav-list__item{gap:8px;padding:10px 13px;font-size:12px}.nav-list__index{display:none}.panel{border-left:none;border-top:1px solid var(--hairline);border-radius:16px 16px 0 0;width:100%;height:min(80vh,580px);padding:28px 22px 48px;inset:auto 0 0}.panel__title{font-size:24px}}
