@import url('./assets/fonts.css');

:root{color-scheme:dark;--bg:#0b0d0e;--ink:#f0ece5;--muted:#a3a5a3;--amber:#d6b78e;--line:rgba(224,223,214,.18);--mono:'IBM Plex Mono',monospace;--sans:'DM Sans',Arial,sans-serif;--serif:'Instrument Serif',Georgia,serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scrollbar-color:#625845 #111}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased}body.modal-open{overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button,a{touch-action:manipulation}a{color:inherit;text-decoration:none}button{border:0;background:none}button:focus-visible,a:focus-visible{outline:2px solid var(--amber);outline-offset:6px}button:hover,a:hover{color:var(--amber)}::selection{background:#d6b78e;color:#111}.skip-link{position:fixed;top:-100px;left:20px;z-index:100;background:var(--ink);color:var(--bg);padding:16px}.skip-link:focus{top:10px}.no-script{position:fixed;z-index:101;inset:0;background:#101212;padding:25vh 10vw;font-size:24px}.no-script a{display:block;color:var(--amber);margin-top:30px}
#prologue{position:fixed;inset:0;background:#030404;z-index:100;display:grid;place-items:center;pointer-events:none;animation:prologue 1.65s ease-in-out forwards}#prologue span{font:24px var(--mono);color:var(--amber)}@keyframes prologue{0%,25%{opacity:1}100%{opacity:0;visibility:hidden}}
#stage{position:fixed;inset:0;overflow:hidden;pointer-events:none;background:#0b0e10}.room{position:absolute;inset:-2%;background:url('assets/room.webp') 66% 50%/cover no-repeat;will-change:transform,opacity;transition:opacity .65s}.room:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,7,8,.75),rgba(5,7,8,.32) 45%,transparent 75%),linear-gradient(0deg,#080b0dea,transparent 35%,transparent 80%,#080b0d80)}#world{position:absolute;inset:0;width:100%;height:100%}.vignette{position:absolute;inset:0;background:linear-gradient(0deg,#0b0d0e 0%,transparent 20%,transparent 80%,#0b0d0e70),radial-gradient(ellipse at 65% 50%,transparent 20%,#080a0c80 100%)}.grain{position:absolute;inset:0;opacity:.065;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath filter='url(%23n)' opacity='.6' d='M0 0h180v180H0z'/%3E%3C/svg%3E");mix-blend-mode:screen}.frame-corner{position:absolute;width:15px;height:15px;opacity:.35}.corner-tl{left:27px;top:102px;border-left:1px solid var(--amber);border-top:1px solid var(--amber)}.corner-br{right:27px;bottom:102px;border-right:1px solid var(--amber);border-bottom:1px solid var(--amber)}
.film-header{position:fixed;top:0;left:0;right:0;height:100px;padding:0 4.4vw;display:flex;align-items:center;justify-content:space-between;z-index:20;background:linear-gradient(#0a0c0e88,transparent);animation:controls-in 2.5s both}.film-mark{display:flex;align-items:center;gap:15px;font:10px var(--mono);letter-spacing:2px}.mark-icon{display:flex;align-items:center;gap:5px;color:var(--amber);font-size:23px;letter-spacing:0}.mark-icon i{width:9px;height:2px;background:var(--amber);margin-top:10px}.header-actions{display:flex;gap:32px;align-items:center}.header-actions button{font:10px var(--mono);letter-spacing:1.4px;min-height:44px;display:flex;align-items:center;gap:12px}#quick-view{border-bottom:1px solid #d6b78e65}#quick-view span{font-size:18px}.sound-bars{display:flex;gap:3px;height:13px;align-items:center}.sound-bars i{width:1px;height:3px;background:var(--muted)}.sound-bars i:nth-child(2){height:10px}.sound-bars i:nth-child(3){height:6px}#sound[aria-pressed=true] .sound-bars i{background:var(--amber);animation:sound 1.2s ease-in-out infinite alternate}#sound[aria-pressed=true] .sound-bars i:nth-child(2){animation-delay:-.4s}#sound[aria-pressed=true] .sound-bars i:nth-child(3){animation-delay:-.7s}@keyframes sound{to{height:14px}}@keyframes controls-in{0%,50%{opacity:0}100%{opacity:1}}
.scene{position:relative;height:175svh;min-height:950px;pointer-events:none}.scene:first-child{height:180svh}.scene-inner{position:sticky;top:0;height:100svh;min-height:600px;display:flex;flex-direction:column;justify-content:center;padding:110px 8.4vw 125px;opacity:var(--visibility,1);transform:translateY(var(--rise,0px));will-change:opacity,transform}.scene-copy{max-width:950px}.eyebrow{font:10px/1.8 var(--mono);letter-spacing:2.3px;color:var(--amber);display:flex;align-items:center;gap:14px;margin:0 0 30px}.eyebrow:before{content:'';width:30px;height:1px;background:var(--amber)}h1,h2,h3,p{margin-top:0}.scene h1,.scene h2{font:clamp(66px,7.2vw,115px)/.99 var(--serif);letter-spacing:-2.6px;font-weight:400;margin-bottom:30px;text-wrap:balance}.scene h1{font-size:clamp(90px,9.1vw,145px)}em{font-weight:400;color:var(--amber)}.narration{font-size:14px;line-height:1.9;color:#bdbfbc;max-width:480px;margin-bottom:24px}.terminal{font:12px var(--mono);color:var(--amber);margin-top:28px;letter-spacing:.5px}.terminal:before{content:'> ';opacity:.6}.cursor{animation:blink 1.15s steps(1) infinite}@keyframes blink{50%{opacity:0}}.side-note{position:absolute;right:5vw;bottom:24%;font:9px/2 var(--mono);letter-spacing:1.5px;color:#9aacae;text-align:right;border-right:1px solid #b7c4c840;padding-right:18px}.first-scroll{position:absolute;bottom:140px;left:8.4vw;display:flex;gap:15px;align-items:center;font:9px var(--mono);letter-spacing:2px;pointer-events:auto}.scroll-line{height:37px;width:1px;background:#aaa5;position:relative;overflow:hidden}.scroll-line:after{content:'';position:absolute;top:0;width:1px;height:18px;background:var(--amber);animation:scroll-line 2s ease-in-out infinite}@keyframes scroll-line{from{transform:translateY(-20px)}to{transform:translateY(40px)}}.scene-action{display:inline-flex;align-items:center;gap:35px;padding:15px 0;font:10px var(--mono);letter-spacing:1.5px;border-bottom:1px solid #d6b78e70;pointer-events:auto}.scene-action span{font-size:19px;transition:transform .25s}.scene-action:hover span{transform:translateX(5px)}.scene-tag{position:absolute;top:145px;right:4.5vw;font:9px var(--mono);color:#898f8c;letter-spacing:2px}.scene-tag b{font-weight:400;color:var(--amber);margin-right:15px}
.film-footer{position:fixed;bottom:0;left:0;right:0;z-index:20;height:94px;display:flex;align-items:center;justify-content:space-between;gap:35px;padding:0 4.4vw;background:linear-gradient(transparent,#0a0c0ef5 60%);animation:controls-in 2.5s both}.film-footer button{min-height:44px}.film-footer #chapter-toggle{display:flex;align-items:center;gap:13px;font:9px var(--mono);letter-spacing:1px;white-space:nowrap;padding:0}.live-dot{height:5px;width:5px;border-radius:50%;background:var(--amber);box-shadow:0 0 12px #d6b78e70}#chapter-number{color:var(--amber)}#chapter-name{text-transform:uppercase}#chapter-toggle>span:last-child{color:var(--muted);margin-left:5px}.timeline{display:flex;align-items:center;gap:7px;max-width:480px;flex:1}.timeline a{height:44px;position:relative;flex:1;display:block}.timeline a:before{content:'';height:1px;position:absolute;top:22px;left:0;right:0;background:#67706d66;transition:background .4s}.timeline a.visited:before{background:#d6b78e70}.timeline a[aria-current=true]:before{height:2px;background:var(--amber)}.timeline a:after{content:attr(data-title);position:absolute;left:50%;bottom:39px;transform:translateX(-50%);font:9px var(--mono);white-space:nowrap;padding:8px 10px;background:#121719;opacity:0;pointer-events:none;transition:opacity .2s}.timeline a:hover:after,.timeline a:focus-visible:after{opacity:1}.journey-progress{font:9px var(--mono);letter-spacing:1px;white-space:nowrap}.muted{color:#9c9e99;margin-left:7px}.chapter-menu{position:fixed;bottom:84px;left:4.4vw;width:300px;padding:15px 24px;background:#101517fa;border:1px solid var(--line);z-index:25;box-shadow:0 20px 70px #0008;max-height:70svh;overflow:auto}.chapter-menu a{display:flex;gap:20px;align-items:center;min-height:42px;font:11px var(--mono);border-bottom:1px solid #ffffff0a}.chapter-menu a span{color:var(--amber);font-size:9px}.chapter-menu a[aria-current=true]{color:var(--amber)}
.toolbox-scene .scene-inner{padding-top:100px}.toolbox-scene h2{font-size:clamp(55px,5vw,78px)}.tool-tabs{display:flex;gap:28px;flex-wrap:wrap;margin:8px 0 28px;pointer-events:auto}.tool-tabs button{padding:12px 0;font:10px var(--mono);color:var(--muted);border-bottom:1px solid transparent}.tool-tabs button[aria-selected=true]{color:var(--amber);border-bottom-color:var(--amber)}.tool-panel{max-width:530px;min-height:135px}.tool-panel h3{font:27px var(--serif);margin-bottom:10px}.tool-panel p{font-size:12px;line-height:1.8;color:#adb3ae}.tool-names{font:10px/2 var(--mono);color:var(--amber)}
.archive-scene{height:155svh}.archive-scene .scene-inner{padding:100px 6vw 100px}.archive-scene .scene-copy{max-width:none}.archive-scene h2{font-size:clamp(60px,6vw,92px);margin-bottom:15px}.archive-scene .eyebrow{margin-bottom:16px}.archive-portals{display:grid;grid-template-columns:repeat(5,1fr);gap:20px;margin-top:30px;pointer-events:auto}.portal{text-align:left;min-width:0;padding:0;position:relative}.door{height:clamp(160px,25vh,270px);position:relative;overflow:hidden;background:linear-gradient(180deg,#18212544,#13191d09);border-top:1px solid #b7ccd642;border-left:1px solid #b7ccd623;border-right:1px solid #b7ccd623;box-shadow:inset 0 0 24px #80bdd608;transition:box-shadow .6s,transform .6s}.door:before{content:'';position:absolute;inset:12px 12px 0;border:1px solid #b3ced81a;border-bottom:0;transition:border-color .5s}.door:after{content:'';position:absolute;height:60%;width:100%;bottom:-40%;background:#8cc5d922;filter:blur(25px);transition:bottom .6s}.portal:hover .door,.portal:focus-visible .door{box-shadow:inset 0 0 70px #80bdd621;transform:translateY(-7px)}.portal:hover .door:before,.portal:focus-visible .door:before{border-color:#b3ced880}.portal:hover .door:after{bottom:-20%}.portal-number{position:absolute;left:23px;top:22px;font:9px var(--mono);color:#a6b2b2}.portal-category{display:block;font:8px var(--mono);letter-spacing:1.2px;color:#99a6a6;margin:18px 0 8px}.portal-title{display:block;font:27px var(--serif);margin-bottom:13px}.portal-link{display:flex;justify-content:space-between;font:8px var(--mono);letter-spacing:.8px;color:var(--amber)}.portal-link span{font-size:15px}.portal-symbol{position:absolute;inset:35% 20% 17%;display:grid;place-items:center}.portal-symbol svg{width:100%;height:100%;overflow:visible;stroke:#8fbdc9;fill:none;stroke-width:1;opacity:.7;transition:opacity .4s}.portal:hover svg{opacity:1}.tone-green svg{stroke:#9cba8e}.tone-amber svg{stroke:#d6b78e}.proof-list{display:grid;grid-template-columns:repeat(4,1fr);gap:35px;max-width:1060px;margin-top:45px}.proof-item{border-top:1px solid #d6b78e60;padding-top:24px}.proof-item strong{display:block;font:47px var(--serif);color:var(--amber);margin-bottom:10px}.proof-item p{font-size:11px;line-height:1.7;color:#b1b3b0;max-width:190px}.certifications{font:9px/2 var(--mono);color:#969b97;margin-top:26px;max-width:800px}.university-details{margin-top:24px;font:10px/2 var(--mono);color:#9bafaf;max-width:490px}.ending-scene{height:210svh}.ending-scene .scene-inner{overflow:hidden}.ending-memory,.identity{transition:opacity .6s,transform .6s}.identity{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:110px 6vw;opacity:0;transform:translateY(25px);pointer-events:none}.identity .eyebrow:before{display:none}.identity h2{font:clamp(60px,8vw,125px)/.94 var(--serif);letter-spacing:-3px;margin:15px 0 24px}.identity h2 span{display:block}.identity .role{font:10px var(--mono);letter-spacing:3px;color:#c5c7c2}.identity .location{font:11px var(--sans);color:#979e99;margin-top:16px}.identity-links{display:flex;gap:30px;margin:30px 0}.identity-links a{font:10px var(--mono);letter-spacing:1.5px;padding:12px 0;border-bottom:1px solid var(--line)}.identity .terminal{font-size:10px;margin-top:28px}.ending-scene.revealed .ending-memory{opacity:0;transform:translateY(-20px)}.ending-scene.revealed .identity{opacity:1;transform:none;pointer-events:auto}
dialog{color:var(--ink);background:#101517;border:1px solid #455052;padding:0;width:min(1100px,calc(100% - 70px));max-height:88svh;overflow:auto;box-shadow:0 25px 120px #000b;scrollbar-color:#625845 #111}dialog::backdrop{background:#020607c9;backdrop-filter:blur(12px)}dialog[open]{animation:dialog-in .35s ease-out}@keyframes dialog-in{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}.dialog-top{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:17px 35px;position:sticky;top:0;background:#101517f5;border-bottom:1px solid var(--line);z-index:2}.dialog-top button,.dialog-top>span{font:9px var(--mono);letter-spacing:1.2px}.dialog-top button{min-height:44px;color:var(--amber)}.dialog-top>span{color:#97a4a5}.detail-body,.quick-body{padding:45px 60px 55px}.detail-body h2{font:76px var(--serif);letter-spacing:-2px;margin-bottom:10px}.detail-question{font:30px/1.25 var(--serif);max-width:650px;color:var(--amber);margin:30px 0}.detail-meta{font:9px var(--mono);letter-spacing:1.5px;color:#9eaaa9}.detail-flow{display:flex;align-items:stretch;margin:35px 0;padding:30px 0;border-block:1px solid var(--line);gap:12px}.detail-flow span{font:10px/1.6 var(--mono);flex:1;color:#a9c2ca;display:flex;align-items:center}.detail-flow span:not(:last-child):after{content:'→';margin-left:auto;padding-left:10px;color:var(--amber)}.detail-columns{display:grid;grid-template-columns:1fr 1.4fr;gap:45px}.detail-columns h3,.detail-tools h3{font:9px var(--mono);letter-spacing:2px;color:var(--amber);margin-bottom:15px}.detail-columns p{font-size:13px;line-height:1.9;color:#bbc1bd}.detail-tools{margin-top:25px}.detail-tools p{font:11px/2 var(--mono);color:#b4c1c2}.detail-note{font-size:11px;line-height:1.8;color:#8d9a96;margin-top:30px}.quick-heading{display:flex;justify-content:space-between;gap:20px;align-items:center}.quick-heading h2{font:58px var(--serif);margin:0 0 12px}.quick-heading p{font:10px/1.8 var(--mono);letter-spacing:1px;color:#a9b1ac}.resume-link{border:1px solid var(--line);padding:16px;font:10px var(--mono);white-space:nowrap}.quick-links{display:flex;gap:24px;font:10px var(--mono);color:var(--amber);margin:22px 0 35px;flex-wrap:wrap}.quick-section{display:grid;grid-template-columns:150px 1fr;gap:25px;padding:25px 0;border-top:1px solid var(--line)}.quick-section>h3{font:9px var(--mono);color:var(--amber);letter-spacing:1.5px;padding-top:4px}.quick-section h4{font-size:16px;font-weight:500;margin:0 0 8px}.quick-section p{font-size:12px;line-height:1.9;color:#b7beba;margin-bottom:10px}.quick-section .meta{font:9px/1.8 var(--mono);color:#98a5a4}.quick-project{display:flex;align-items:center;justify-content:space-between;width:100%;padding:12px 0;text-align:left;border-bottom:1px solid #fff1;gap:15px}.quick-project span{font:10px var(--mono);color:#96a5a7}.quick-project b{font-weight:500;font-size:14px}.quick-skills p{display:grid;grid-template-columns:105px 1fr;gap:10px}.quick-skills b{font-weight:500;color:#d3d5ce}
@media(min-width:1600px){.scene-inner{padding-left:11vw}.first-scroll{left:11vw}}@media(max-height:750px) and (min-width:761px){.scene h1{font-size:105px}.scene h2{font-size:78px}.eyebrow{margin-bottom:20px}.narration{font-size:13px;margin-bottom:12px}.scene-inner{padding-top:95px;padding-bottom:95px}.first-scroll{bottom:107px}.terminal{margin-top:18px}.archive-scene h2{font-size:64px}.archive-portals{margin-top:15px}.door{height:170px}.proof-list{margin-top:20px}.toolbox-scene h2{font-size:65px}.tool-tabs{margin-bottom:15px}.tool-panel{min-height:115px}.scene-tag{top:110px}}
@media(max-width:760px){.film-header{height:78px;padding:0 24px}.film-mark{font-size:8px;letter-spacing:1.4px;gap:9px}.mark-icon{font-size:18px}.header-actions{gap:15px}.header-actions button{font-size:8px;letter-spacing:.5px;gap:7px}.sound-bars{display:none}.frame-corner{display:none}.film-footer{height:79px;padding:0 24px;gap:16px}.film-footer #chapter-toggle{font-size:8px;gap:9px}.timeline{position:absolute;bottom:0;left:24px;right:24px;max-width:none;gap:5px;height:18px}.timeline a{height:18px}.timeline a:before{top:9px}.timeline a:after{display:none}.journey-progress{font-size:8px}.journey-progress .muted{display:none}.scene,.scene:first-child{height:155svh;min-height:850px}.scene-inner{height:100svh;min-height:620px;padding:120px 27px 120px;justify-content:center}.scene h1{font-size:clamp(72px,14.8vw,108px);letter-spacing:-2px}.scene h2{font-size:clamp(54px,11vw,83px);letter-spacing:-1.8px}.eyebrow{font-size:8px;letter-spacing:1.4px;gap:10px;margin-bottom:25px}.eyebrow:before{width:20px}.narration{font-size:13px;max-width:340px;line-height:1.8}.side-note{font-size:7px;right:27px;bottom:14%;max-width:70%;letter-spacing:.8px}.scene-tag{top:93px;right:27px;font-size:7px}.terminal{font-size:10px}.first-scroll{left:27px;bottom:130px;font-size:8px}.room{background-position:62% center}.room:after{background:linear-gradient(90deg,#06090ba3,#06090b25),linear-gradient(0deg,#080b0df0,transparent 50%,#080b0d60)}.scene-copy{position:relative;z-index:1;text-shadow:0 2px 25px #0008}.toolbox-scene .scene-inner{padding-top:110px}.toolbox-scene h2{font-size:51px}.tool-tabs{gap:8px 22px;max-width:360px;margin-bottom:24px}.tool-tabs button{font-size:10px;min-height:42px;padding:10px 0}.tool-panel{min-height:180px}.tool-panel h3{font-size:26px}.tool-panel p{font-size:12px;max-width:340px}.tool-names{font-size:9px}.archive-scene{height:auto;min-height:0}.archive-scene .scene-inner{height:auto;min-height:100svh;position:relative;padding:130px 27px 125px;transform:none!important;opacity:1!important}.archive-scene h2{font-size:57px}.archive-portals{grid-template-columns:repeat(2,1fr);gap:30px 20px}.portal:last-child{grid-column:1 / -1;max-width:calc(50% - 10px);width:100%}.door{height:195px}.portal-title{font-size:26px}.portal-category{font-size:7px;letter-spacing:.6px;line-height:1.7;min-height:24px}.portal-link{font-size:8px}.proof-list{grid-template-columns:repeat(2,1fr);gap:16px 25px;margin-top:28px}.proof-item{padding-top:13px}.proof-item strong{font-size:36px}.proof-item p{font-size:10px}.proof-scene h2{font-size:52px}.certifications{font-size:8px;line-height:1.8;margin-top:16px}.ending-scene{height:210svh}.identity{padding:100px 24px}.identity h2{font-size:clamp(60px,14vw,90px);letter-spacing:-2px}.identity .role{font-size:8px;letter-spacing:1.8px}.identity-links{gap:18px;flex-wrap:wrap;justify-content:center;max-width:320px}.identity-links a{font-size:9px}.identity .eyebrow{font-size:7px}.identity .terminal{font-size:8px}.chapter-menu{left:24px;bottom:75px}.university-details{font-size:9px;max-width:320px}.scene-action{font-size:9px}.dialog-top{padding:10px 20px}.dialog-top>span{font-size:7px}.dialog-top button{font-size:8px}dialog{width:calc(100% - 24px);max-height:94svh}.detail-body,.quick-body{padding:30px 24px}.detail-body h2{font-size:60px}.detail-question{font-size:27px}.detail-flow{flex-direction:column;gap:14px;padding:24px 0}.detail-flow span:not(:last-child):after{content:'↓'}.detail-columns{grid-template-columns:1fr;gap:12px}.detail-columns p{font-size:12px}.quick-heading{display:block}.quick-heading h2{font-size:44px}.resume-link{display:inline-block;margin:10px 0}.quick-section{grid-template-columns:1fr;gap:6px}.quick-section>h3{margin-bottom:10px}.quick-project{align-items:flex-start}.quick-project span{font-size:8px}.quick-skills p{grid-template-columns:80px 1fr}.quick-links{gap:17px}.quick-section p{font-size:11px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.scene-inner{transform:none!important;opacity:1!important}#prologue{display:none}.room{transform:none!important}.ending-memory,.identity{transition:none!important}.portal:hover .door{transform:none}}
