@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-vietnamese-wght-normal-CnvboYUG.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-ext-wght-normal-Ca2vKHc0.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-wght-normal-ukD16Tqj.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg: #07060f;--ink: #f4f0ff;--muted: #b7b0d6;--accent: #b79cff;--accent2: #4fd8ff;--gold: #ffd28a;--panel: rgba(12, 9, 28, .86);--line: rgba(183, 156, 255, .28);--serif: "Fraunces Variable", Georgia, "Times New Roman", serif;--sans: "Inter Variable", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--pad: clamp(14px, 3.4vw, 48px)}*{box-sizing:border-box}html{background:var(--bg)}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;line-height:1.55}body.is-text{overflow:auto}button{font:inherit;color:inherit;cursor:pointer}a{color:var(--accent2)}:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:6px}.stage{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;background:var(--bg)}.stage canvas{display:block}.panels{position:fixed;top:0;right:0;bottom:0;left:0;z-index:5;pointer-events:none}.panels>*,.panels button,.panels a{pointer-events:auto}.hud-top,.chapters,.subtitles,.progress,.modal,.modal-wrap,.skip{z-index:20}.vignette{position:fixed;top:0;right:0;bottom:0;left:0;z-index:3;pointer-events:none;background:radial-gradient(ellipse at 50% 45%,transparent 55%,rgba(3,2,12,.55) 100%)}.grain{position:fixed;top:-50%;right:-50%;bottom:-50%;left:-50%;z-index:4;pointer-events:none;opacity:.07;mix-blend-mode:overlay;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>")}.bar{position:fixed;left:0;right:0;background:#000;z-index:6;pointer-events:none;height:0}.bar--top{top:0}.bar--bot{bottom:0}.outro{position:fixed;top:0;right:0;bottom:0;left:0;z-index:6;background:#05030d;opacity:0;pointer-events:none}.skip{position:fixed;left:12px;top:-60px;background:var(--gold);color:#1a1030;padding:8px 14px;border-radius:8px;font-weight:600}.skip:focus{top:12px}.hud-top{position:fixed;top:0;left:0;right:0;display:flex;justify-content:space-between;align-items:center;padding:calc(var(--pad) * .6) var(--pad);pointer-events:none}.hud-top>*{pointer-events:auto}.brand{display:inline-flex;align-items:center;gap:10px;color:var(--ink);text-decoration:none;font-family:var(--serif);font-size:1.15rem;letter-spacing:.02em}.brand__dot{width:10px;height:10px;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--accent2));box-shadow:0 0 14px var(--accent)}.controls{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.icon-btn{display:inline-flex;align-items:center;gap:8px;height:38px;min-width:38px;justify-content:center;padding:0 10px;background:#0c091cb3;border:1px solid var(--line);border-radius:999px;transition:background .2s,border-color .2s}.icon-btn:hover,.icon-btn[aria-pressed=true]{background:#785aff59;border-color:var(--accent)}.icon-btn--text span{font-size:.8rem}.chapters{position:fixed;right:calc(var(--pad) * .5);top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:2px;align-items:flex-end}.chapters button{display:flex;align-items:center;gap:10px;background:none;border:0;padding:7px 6px;color:var(--muted)}.chapters__label{font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;opacity:0;transform:translate(6px);transition:.2s;white-space:nowrap}.chapters button:hover .chapters__label,.chapters button:focus-visible .chapters__label,.chapters button.is-active .chapters__label{opacity:1;transform:none}.chapters button.is-active{color:var(--gold)}.chapters__dot{width:8px;height:8px;border-radius:50%;border:1.5px solid currentColor;transition:.2s}.chapters button.is-active .chapters__dot{background:currentColor;box-shadow:0 0 12px currentColor;transform:scale(1.3)}.progress{position:fixed;top:0;left:0;right:0;height:3px;pointer-events:none}.progress span{display:block;height:100%;transform-origin:0 50%;transform:scaleX(0);background:linear-gradient(90deg,var(--accent),var(--accent2),var(--gold))}.subtitles{position:fixed;left:50%;bottom:calc(var(--pad) * .7);transform:translate(-50%);width:min(760px,calc(100vw - 2 * var(--pad)));text-align:center;pointer-events:none}.subtitles p{margin:0;display:inline-block;padding:8px 16px;background:#04030eb8;border-radius:12px;font-size:clamp(.88rem,1.6vw,1.05rem);text-shadow:0 1px 2px #000}.subtitles span{opacity:0;animation:word .5s ease forwards}@keyframes word{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}.hero{position:absolute;top:15vh;left:0;right:0;text-align:center;padding:0 var(--pad)}.hero h1{font-family:var(--serif);font-weight:500;font-size:clamp(2.1rem,6.4vw,5rem);line-height:1.05;margin:.2em 0 0;text-shadow:0 4px 40px rgba(122,92,255,.55);background:linear-gradient(180deg,#fff,#cbb8ff 85%);-webkit-background-clip:text;background-clip:text;color:transparent}.hint{position:absolute;left:0;right:0;bottom:14vh;display:flex;flex-direction:column;align-items:center;gap:6px;color:var(--muted);letter-spacing:.16em;text-transform:uppercase;font-size:.78rem}.bounce{animation:bounce 1.6s ease-in-out infinite}@keyframes bounce{50%{transform:translateY(7px)}}.kicker{margin:0 0 .4rem;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--accent)}.panel{position:absolute;bottom:clamp(60px,11vh,110px);width:min(460px,calc(100vw - 2 * var(--pad)));max-height:calc(100svh - 190px);overflow-y:auto;padding:22px 24px;background:linear-gradient(180deg,rgba(20,14,44,.92),var(--panel));border:1px solid var(--line);border-radius:18px;box-shadow:0 20px 60px #00000073;scrollbar-width:thin}.panel--right{right:calc(var(--pad) + 40px)}.panel--left{left:var(--pad)}.panel--wide{width:min(540px,calc(100vw - 2 * var(--pad)))}.panel--compact{width:min(340px,calc(100vw - 2 * var(--pad)))}.panel--center{left:50%;margin-left:calc(min(560px,calc(100vw - 2 * var(--pad)))/-2);width:min(560px,calc(100vw - 2 * var(--pad)))}.panel h2{font-family:var(--serif);font-weight:500;font-size:clamp(1.4rem,2.6vw,2rem);line-height:1.15;margin:0 0 .7rem}.panel h3{margin:1rem 0 .35rem;font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);font-weight:600}.panel p{margin:0 0 .6rem}.lead{color:#e6e0ff}.meta{color:var(--accent2);font-size:.9rem}.muted{color:var(--muted);font-size:.85rem}.list{margin:0;padding-left:1.1rem;color:#e0daf8;font-size:.95rem}.list li{margin:.25rem 0}.chips{display:flex;flex-wrap:wrap;gap:8px;margin:.4rem 0 0}.chips span,.skill-groups p span{padding:4px 11px;border:1px solid var(--line);border-radius:999px;font-size:.82rem;background:#785aff24}.ph{border-bottom:1.5px dashed var(--gold);color:#ffe9c0;cursor:help}.inline-icon{vertical-align:-2px;color:var(--accent2)}.project-list{display:grid;gap:8px}.project-list button,.doc-buttons button{display:flex;align-items:center;gap:12px;text-align:left;padding:10px 12px;background:#ffffff0a;border:1px solid var(--line);border-left:3px solid var(--c, var(--accent));border-radius:10px;transition:.2s}.project-list button:hover,.doc-buttons button:hover{background:#785aff38;transform:translate(3px)}.project-list b{color:var(--c);font-family:var(--serif);font-size:1.1rem}.project-list small{display:block;color:var(--muted);font-size:.78rem}.doc-buttons{display:grid;gap:8px;margin-top:.9rem}.doc-buttons button{gap:8px;border-left-width:1px;font-size:.9rem}.skill-groups{display:grid;gap:10px}.skill-groups h3{margin:0 0 4px;color:var(--c)}.skill-groups p{display:flex;flex-wrap:wrap;gap:6px;margin:0}.skill-groups p span{border-color:var(--c)}.reveal-line{position:absolute;left:0;right:0;top:17vh;text-align:center;padding:0 var(--pad)}.reveal-line p{margin:0;font-family:var(--serif);font-size:clamp(2rem,6.5vw,5.2rem);font-weight:500;line-height:1.08;text-shadow:0 6px 50px rgba(255,170,90,.55)}.reveal-line strong{color:var(--gold);font-style:italic;font-weight:600}.reveal-name{position:absolute;left:0;right:0;bottom:clamp(70px,14vh,130px);text-align:center;padding:0 var(--pad)}.reveal-name p{display:inline-block;margin:0;padding:12px 24px;background:#0c081e99;border-radius:14px;font-family:var(--serif);font-size:clamp(1.1rem,2.6vw,1.8rem)}.reveal-name strong{color:var(--gold);font-weight:600}.contact{bottom:clamp(60px,10vh,100px);text-align:center}.contact h2{font-size:clamp(1.8rem,4vw,2.6rem)}.links{list-style:none;padding:0;margin:.8rem 0;display:grid;grid-template-columns:1fr 1fr;gap:8px;text-align:left}.links a{display:grid;grid-template-columns:auto 1fr;column-gap:8px;align-items:center;padding:9px 12px;border:1px solid var(--line);border-radius:10px;color:var(--ink);text-decoration:none;background:#ffffff0a}.links a:hover{border-color:var(--accent2);background:#4fd8ff1a}.links a small{grid-column:2;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.links a.is-ph small{border-bottom:1px dashed var(--gold);width:max-content;max-width:100%}.final{font-family:var(--serif);font-size:1.15rem;font-style:italic;color:var(--gold);margin:.8rem 0!important}.cta{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:.8rem}.btn{display:inline-flex;align-items:center;gap:8px;padding:11px 20px;border-radius:999px;border:1px solid transparent;background:linear-gradient(135deg,#7b5cff,#3ab7ff);color:#fff;text-decoration:none;font-weight:600;transition:transform .2s,box-shadow .2s}.btn:hover{transform:translateY(-2px);box-shadow:0 8px 30px #6e5aff80}.btn--ghost{background:#0c091c99;border-color:var(--accent)}.replay{position:absolute;left:0;right:0;top:22vh;text-align:center}.modal{position:fixed;background:linear-gradient(180deg,#160f32f7,#0a0718f7);border:1px solid var(--line);border-top:3px solid var(--c, var(--accent));border-radius:18px;padding:24px;box-shadow:0 30px 80px #0009;animation:pop .35s ease;overflow-y:auto}.modal--side{right:var(--pad);top:76px;bottom:var(--pad);width:min(400px,calc(100vw - 2 * var(--pad)))}.modal h2{font-family:var(--serif);font-weight:500;font-size:1.9rem;margin:0 0 .3rem}.modal h3{margin:1rem 0 .3rem;font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold)}.modal__close{position:absolute;right:12px;top:12px;width:34px;height:34px;border-radius:50%;border:1px solid var(--line);background:#ffffff0f;display:grid;place-items:center}.modal__nav{display:flex;justify-content:space-between;margin-top:1.2rem}.modal__nav button{display:inline-flex;align-items:center;gap:4px;background:none;border:0;color:var(--muted)}.modal__nav button:hover{color:var(--ink)}.shot{width:100%;border-radius:10px;margin:.5rem 0;border:1px solid var(--line)}.modal-wrap{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:#03020ab3;padding:var(--pad)}.modal--doc{position:relative;width:min(820px,100%);max-height:92svh}.doc-view{width:100%;height:62vh;border:0;border-radius:8px;background:#fff;margin-bottom:.8rem}.doc-img{max-width:100%;max-height:62vh;display:block;margin:0 auto .8rem;border-radius:8px}.is-focus .panel,.is-focus .hero,.is-focus .hint{visibility:hidden!important}@keyframes pop{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}.loader{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:grid;place-items:center;background:radial-gradient(ellipse at 50% 40%,#1a1240,#05040d 70%);transition:opacity 1s ease,visibility 1s;text-align:center;padding:var(--pad)}.loader--out{opacity:0;visibility:hidden}.loader__kicker{letter-spacing:.3em;text-transform:uppercase;font-size:.72rem;color:var(--accent);margin:0 0 .6rem}.loader__title{font-family:var(--serif);font-weight:500;font-size:clamp(1.7rem,5vw,3.2rem);margin:0 0 1.6rem}.loader__bar{width:min(320px,70vw);height:3px;margin:0 auto .8rem;background:#ffffff1f;border-radius:3px;overflow:hidden}.loader__bar span{display:block;height:100%;transform-origin:0 50%;background:linear-gradient(90deg,var(--accent),var(--accent2));transition:transform .2s}.loader__pct{color:var(--muted);font-size:.85rem;margin:0}.text-version{max-width:760px;margin:0 auto;padding:32px var(--pad) 80px}.text-version h1{font-family:var(--serif);font-weight:500;font-size:2.6rem;margin:1rem 0 .2rem}.text-version h2{font-family:var(--serif);font-weight:500;margin-top:2.2rem;border-bottom:1px solid var(--line);padding-bottom:.3rem}.text-version small{color:var(--muted);font-weight:400}@media (max-width: 860px){.chapters{right:2px}.chapters__label{display:none}.panel{left:50%!important;right:auto!important;margin-left:calc(min(460px,calc(100vw - 2 * var(--pad)))/-2);bottom:92px;max-height:40svh;padding:16px 18px}.panel--wide{margin-left:calc(min(540px,calc(100vw - 2 * var(--pad)))/-2);max-height:62svh}.panel--center{margin-left:calc(min(560px,calc(100vw - 2 * var(--pad)))/-2);max-height:62svh}.modal--side{top:auto;height:56svh;bottom:0;right:0;left:0;width:auto;border-radius:18px 18px 0 0}.icon-btn--text span{display:none}.links{grid-template-columns:1fr}.subtitles{bottom:10px}.subtitles p{font-size:.82rem}.reveal-line{top:12vh}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}
