:root{color-scheme:dark;--bg:#070e19;--surface:#0d1929;--surface-2:#112235;--line:#294057;--ink:#f4f6f4;--muted:#b2c1ca;--teal:#89dfd0;--amber:#e3bb82;--violet:#baa6ed;--mono:ui-monospace,SFMono-Regular,Consolas,monospace;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:16px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);line-height:1.55}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer}a{color:var(--teal);text-underline-offset:5px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--amber);outline-offset:4px}::selection{background:var(--teal);color:var(--bg)}
.skip{position:absolute;top:-100px;left:16px;z-index:1000;background:var(--teal);color:var(--bg);padding:10px 16px}.skip:focus{top:12px}.site-header{height:78px;display:flex;align-items:center;gap:36px;padding:0 clamp(22px,4.5vw,82px);border-bottom:1px solid #294057b0;background:#08111deb;backdrop-filter:blur(18px);position:relative;z-index:20}.brand{display:flex;align-items:center;gap:14px;color:var(--ink);text-decoration:none;white-space:nowrap}.brand-mark{width:44px;height:44px;border:1px solid var(--teal);display:grid;place-items:center;font-family:var(--mono);font-size:1rem;font-weight:700;position:relative;letter-spacing:-.08em}.brand-pulse{position:absolute;width:5px;height:5px;background:var(--teal);right:-3px;bottom:-3px;box-shadow:0 0 15px var(--teal)}.brand-text{font-weight:700;font-size:.82rem;letter-spacing:.14em;line-height:1.25}.brand-text small{display:block;color:var(--teal);font-family:var(--mono);font-size:.64rem;font-weight:500;letter-spacing:.16em;margin-top:3px}.site-header nav{display:flex;align-items:center;gap:clamp(14px,1.7vw,28px);margin-left:auto}.site-header nav a,.header-contact{color:#d5e0e2;text-decoration:none;font-size:.83rem;font-weight:600}.site-header nav a:hover,.header-contact:hover{color:var(--teal)}.header-contact{border:1px solid var(--line);padding:9px 14px;white-space:nowrap}.header-contact span{color:var(--teal);margin-left:8px}
.hero{position:relative;min-height:750px;overflow:hidden;background:#0b1a2e}.hero-art{position:absolute;inset:0;background-image:url("assets/atlas-concept.webp");background-position:center center;background-size:cover;transform:scale(1.015);animation:hero-breathe 24s ease-in-out infinite alternate}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,#07101f 0%,#081324f5 20%,#091627d9 32%,#0b1a29a1 46%,#07121e2b 70%,#07111b55 100%),linear-gradient(0deg,#060e19 0%,transparent 34%)}.hero-copy{position:relative;z-index:5;width:min(630px,48%);padding:clamp(58px,5.5vw,88px) 0 190px clamp(22px,4.5vw,82px);pointer-events:none}.hero-copy a,.hero-copy button{pointer-events:auto}.eyebrow{color:var(--teal);font-family:var(--mono);font-size:.72rem;line-height:1.5;letter-spacing:.19em;font-weight:600;margin:0 0 24px}.eyebrow-line{display:inline-block;width:22px;height:1px;background:var(--teal);vertical-align:middle;margin-right:8px}.hero-overline{font-family:var(--mono);color:#d8e8ec;font-size:.8rem;letter-spacing:.075em;margin:0 0 12px}.hero-overline span{color:var(--teal);margin:0 6px}.hero h1{font-size:clamp(3.4rem,5.15vw,6.8rem);line-height:.98;letter-spacing:-.075em;max-width:760px;margin:0;text-wrap:balance}.hero h1 em{font-family:Georgia,serif;font-size:.93em;font-weight:400;letter-spacing:-.075em;color:var(--teal)}.hero-intro{font-size:clamp(1.04rem,1.32vw,1.25rem);max-width:530px;margin:27px 0 26px;color:#e0e9e9;line-height:1.65}.hero-actions{display:flex;align-items:center;gap:11px;flex-wrap:wrap}.button{display:inline-flex;align-items:center;justify-content:center;gap:20px;min-height:49px;padding:10px 20px;text-decoration:none;font-size:.86rem;font-weight:700;border:1px solid var(--line);background:transparent;color:var(--ink);transition:background .2s,border-color .2s,transform .2s}.button:hover{transform:translateY(-2px)}.button-primary{background:var(--teal);border-color:var(--teal);color:#09211e}.button-primary:hover{background:#b5f0e7}.button-quiet{background:#112538aa;border-color:#618083;color:var(--ink)}.button-quiet:hover{background:#214057}.hero-source{font-size:.73rem;max-width:490px;color:#d3dee0b8;margin-top:17px}.map-stage{position:absolute;z-index:3;top:0;right:0;width:66%;height:79%;overflow:hidden;outline-offset:-7px}.map-stage-label{position:absolute;right:clamp(25px,4vw,65px);top:26px;color:#ecf2f5;font:600 .66rem var(--mono);letter-spacing:.12em;background:#0a1724bc;border:1px solid #8ca9b66b;padding:9px 12px}.live-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--teal);box-shadow:0 0 11px var(--teal);margin:0 7px}.landmark{position:absolute;left:var(--x);top:var(--y);z-index:5;display:flex;align-items:center;gap:8px;transform:translate(-50%,-50%);border:0;background:#07111cdc;color:#f4f7f9;padding:7px 10px 7px 7px;box-shadow:0 8px 25px #030a15a8;text-align:left;white-space:nowrap;font:700 .68rem var(--mono);letter-spacing:.04em}.landmark:hover,.landmark[aria-current=true]{background:#e5f5f0;color:#06201d}.landmark-dot{display:grid;place-items:center;width:23px;height:23px;flex:none;background:#75dcca;color:#081928;border:3px solid #122a31;border-radius:50%}.landmark[aria-current=true] .landmark-dot{background:var(--amber);box-shadow:0 0 0 5px #e3bb8266}.landmark-name{display:block}.rover{position:absolute;z-index:4;left:51%;top:74%;width:30px;height:16px;pointer-events:none;transform:translate(-50%,-50%) rotate(-27deg);transition:left .13s linear,top .13s linear,transform .15s linear;filter:drop-shadow(0 0 9px #9be4ff)}.rover:before{content:"";position:absolute;inset:2px 0;background:#b5e7ff;border:2px solid #063966;border-radius:7px 4px 4px 7px}.rover:after{content:"";position:absolute;left:10px;top:4px;width:9px;height:8px;background:#235d89;border-radius:3px}.rover span{position:absolute;inset:-5px -8px;border:1px solid #b0eaff66;border-radius:50%}.map-controls{position:absolute;right:clamp(25px,4vw,65px);bottom:20px;color:#e4e9ec;font:600 .69rem var(--mono);letter-spacing:.08em;background:#07111cc9;padding:8px 12px}.map-controls span{color:var(--teal);margin:0 3px 0 9px}.map-controls span:first-child{margin-left:0}.landmark-panel{position:absolute;z-index:7;right:clamp(25px,4vw,65px);bottom:69px;width:min(470px,42vw);min-height:116px;display:grid;grid-template-columns:52px 1fr;gap:9px 13px;background:#0a1724ed;border:1px solid #79aeab9c;box-shadow:0 22px 60px #06111aa8;padding:18px 20px;backdrop-filter:blur(8px)}.landmark-panel>span{font:600 .67rem var(--mono);color:var(--teal);padding-top:3px}.landmark-panel strong{font-size:1.05rem}.landmark-panel p{font-size:.78rem;color:#c1d0d4;margin:3px 0 0;line-height:1.4}.landmark-panel button{grid-column:2;justify-self:start;border:0;background:transparent;color:var(--teal);padding:0;font-weight:700;font-size:.78rem;text-align:left}.landmark-panel button:hover{text-decoration:underline}.art-caption{position:absolute;bottom:16px;left:clamp(22px,4.5vw,82px);z-index:5;color:#b9c8d0;font-size:.68rem;max-width:340px;margin:0}
.content-wrap{max-width:1600px;padding:0 clamp(22px,4.5vw,82px);margin:auto}.section{padding:clamp(70px,8vw,120px) 0;border-bottom:1px solid var(--line);scroll-margin-top:20px}.section-heading{max-width:840px;margin-bottom:42px}.section-heading h2,.research h2,.contact-block h2{font-size:clamp(2.4rem,4.7vw,5rem);line-height:1.05;letter-spacing:-.06em;margin:0 0 18px;text-wrap:balance}.section-heading p:not(.eyebrow){font-size:1.08rem;color:var(--muted);max-width:680px;margin:0}.focus-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.focus-card{min-height:310px;display:flex;flex-direction:column;position:relative;overflow:hidden;padding:30px;border:1px solid #486576;color:var(--ink);text-decoration:none;background:linear-gradient(155deg,#142c3b,#0b1726 60%);transition:transform .25s,border-color .25s}.focus-card:before{content:"";position:absolute;width:250px;height:250px;right:-90px;bottom:-90px;border-radius:50%;border:40px solid #8adacc0b;box-shadow:0 0 0 40px #8adacc08,0 0 0 80px #8adacc05;pointer-events:none}.focus-learning{background:linear-gradient(155deg,#242641,#0b1726 60%)}.focus-learning:before{border-color:#c8aff111;box-shadow:0 0 0 40px #c8aff108,0 0 0 80px #c8aff105}.focus-cloud{background:linear-gradient(155deg,#312b28,#0b1726 60%)}.focus-cloud:before{border-color:#e4bb8211;box-shadow:0 0 0 40px #e4bb8208,0 0 0 80px #e4bb8205}.focus-card:hover{transform:translateY(-5px);border-color:var(--teal)}.focus-index{color:var(--teal);font:600 .7rem var(--mono);letter-spacing:.11em}.focus-learning .focus-index{color:var(--violet)}.focus-cloud .focus-index{color:var(--amber)}.focus-card strong{font-size:clamp(1.7rem,2.5vw,2.7rem);line-height:1.09;letter-spacing:-.04em;max-width:290px;margin-top:auto}.focus-card>span:nth-of-type(2){color:#c8d6da;margin:16px 0 28px;max-width:310px;font-size:.94rem}.focus-link{font-size:.78rem;font-weight:700;border-top:1px solid #6f879455;padding-top:16px;margin-top:auto}
.section-heading-row{max-width:none;display:flex;justify-content:space-between;align-items:end;gap:30px}.section-heading-row>div{max-width:730px}.search-label{display:grid;gap:8px;color:#cbd8dc;font-size:.76rem;font-family:var(--mono);min-width:min(320px,100%)}input,select{min-width:0;max-width:100%;background:#081522;border:1px solid #52677c;color:var(--ink);padding:12px 13px;border-radius:0}input::placeholder{color:#8fa3ae}.filters{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 23px}.filters button{color:#ccdade;background:#0d1b2a;border:1px solid var(--line);padding:8px 13px;font:600 .75rem var(--mono)}.filters button:hover{border-color:#8abdb9}.filters button[aria-pressed=true]{background:var(--teal);border-color:var(--teal);color:#08211e}.workspace{display:grid;grid-template-columns:minmax(300px,.85fr) minmax(0,1.35fr);gap:22px;align-items:start}.project-list-wrap{min-width:0}.project-count{font:.74rem var(--mono);color:#a9bac5;margin:0 0 12px}.projects{display:grid;gap:8px;max-height:760px;overflow:auto;padding:2px 8px 2px 2px;scrollbar-color:#436374 #0d1929}.project{position:relative;text-align:left;width:100%;padding:17px 45px 17px 20px;color:var(--ink);background:#0e1b2a;border:1px solid #294159;transition:background .2s,border-color .2s,transform .2s}.project:hover{background:#13273b;transform:translateX(3px)}.project[aria-pressed=true]{border-color:var(--teal);background:#173443}.project:after{content:"↗";position:absolute;right:20px;top:42%;font-size:1rem;color:var(--teal)}.project strong{font-size:1.08rem;display:block;line-height:1.25;margin:7px 0 4px}.project small{display:block;color:#afc1ca;font-size:.78rem}.project .category{font:.65rem var(--mono);color:var(--teal);letter-spacing:.12em;text-transform:uppercase}.detail{background:linear-gradient(145deg,#13283a,#0c1929 65%);border:1px solid #496479;padding:clamp(22px,3vw,40px);min-height:590px;position:sticky;top:18px}.detail h2{font-size:clamp(2.4rem,3.1vw,3.7rem);line-height:1.08;letter-spacing:-.055em;margin:20px 0 15px}.detail h3{font-size:.8rem;font-family:var(--mono);color:var(--teal);letter-spacing:.1em;margin:28px 0 8px;text-transform:uppercase}.detail p{color:#c6d4d9;line-height:1.65}.detail .detail-lead{font-size:1.08rem;color:#e8f1f0}.pill,.source-chip{display:inline-flex;font:.66rem var(--mono);letter-spacing:.06em;text-transform:uppercase;background:#21413e;color:#bff7e8;padding:5px 8px}.detail .evidence-row{font-size:.78rem;border-left:2px solid #88dfd0;padding-left:13px;color:#aac3c8}.tags{display:flex;gap:8px;flex-wrap:wrap;margin:24px 0}.tags span{font:.74rem var(--mono);color:#cee1e3;border:1px solid #486476;padding:6px 9px}.detail a{font-weight:700}.detail-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:18px}.detail-actions a{font-size:.82rem}.demo{background:#081724;border:1px solid #3c5666;padding:22px;margin-top:30px}.demo h3{font-size:1.24rem;letter-spacing:-.02em;font-family:inherit;text-transform:none;color:var(--ink);margin:0 0 8px}.demo p{font-size:.87rem;margin:0 0 12px}.demo .eyebrow{font-size:.67rem;margin-bottom:10px}.demo label{display:grid;gap:5px;margin:12px 0;color:#b9cdd2;font-size:.8rem}.demo button{background:var(--teal);border:0;color:#06211f;padding:9px 14px;font-weight:700}.demo output{display:block;font-family:var(--mono);font-size:.81rem;overflow-wrap:anywhere;color:#c0f2e9;margin-top:14px;min-height:26px}.fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 12px}.demo .small{font-size:.76rem;color:#a9bec6}.demo .case-note p{margin:0}.detail .world-status{margin-top:25px;padding:13px 15px;border:1px dashed #70918f;color:#c8dadb;font-size:.83rem;background:#0e2830}
.experience-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.experience-grid article{min-height:250px;padding:25px;border:1px solid var(--line);background:#0c1b2b}.experience-grid .experience-lead{background:linear-gradient(145deg,#17343e,#0c1b2b);border-color:#5c8e91}.kicker{font:600 .68rem var(--mono);letter-spacing:.1em;color:var(--teal)}.experience-grid h3,.credential-grid h3{font-size:clamp(1.35rem,2vw,2rem);letter-spacing:-.04em;line-height:1.18;margin:21px 0 10px}.experience-grid p,.credential-grid p{color:#beccd3;margin:0}.experience-grid a,.credential-grid a{display:inline-block;margin-top:22px;font-size:.83rem;font-weight:700}.text-link{display:inline-block;margin-top:23px;font-weight:700;font-size:.84rem}.education-list{border-top:1px solid var(--line)}.education-list article{display:grid;grid-template-columns:60px 1fr;gap:25px;padding:25px 0;border-bottom:1px solid var(--line)}.school-number{font:600 .7rem var(--mono);color:var(--teal);padding-top:7px}.education-list h3{font-size:clamp(1.3rem,2.1vw,2rem);line-height:1.2;letter-spacing:-.04em;margin:0 0 8px}.education-list p{color:#c5d3da;margin:0}.source-chip{vertical-align:baseline;margin-left:6px;padding:2px 6px;font-size:.56rem;background:#2b3541;color:#d3dee3}.credential-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.credential-grid article{padding:26px;border:1px solid var(--line);background:#0e1b2b;min-height:260px}.credential-grid .credential-feature{background:linear-gradient(145deg,#183b40,#0e1b2b);border-color:#669b95}.credentials-note{font-size:.84rem;color:#aebfc7;max-width:900px;margin:22px 0 0}.research{position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(200px,.8fr) minmax(0,1.2fr);gap:7vw;align-items:center;min-height:520px}.research-visual{position:relative;min-height:340px;border:1px solid #426176;background:radial-gradient(circle at center,#2b526172,#091929 55%);overflow:hidden}.research-visual:before,.research-visual:after{content:"";position:absolute;inset:15%;border:1px solid #76b8b358;border-radius:50%;transform:rotateX(65deg) rotate(-28deg)}.research-visual:after{inset:28%;transform:rotateX(55deg) rotate(35deg);border-color:#ceae8166}.orb{position:absolute;display:block;border-radius:50%;box-shadow:0 0 30px currentColor}.orb-one{width:80px;height:80px;background:#83d9cc;color:#83d9cc;top:37%;left:43%}.orb-two{width:32px;height:32px;background:#b6a5ed;color:#b6a5ed;top:25%;left:72%}.orb-three{width:23px;height:23px;background:#e5b780;color:#e5b780;top:70%;left:22%}.research h2{max-width:720px}.research-content>p:not(.eyebrow){color:#c7d5d8;font-size:1.02rem;max-width:680px}.research-content .research-footnote{font-size:.78rem;color:#9db2ba}.research-content .button{margin-top:12px}.contact-block{text-align:center;border:0}.contact-block .eyebrow{margin-bottom:18px}.contact-block h2{margin-bottom:16px}.contact-block>p:not(.eyebrow){font-size:1.04rem;color:#bdccd3;margin:0 auto 26px;max-width:600px}.contact-block>div{display:flex;justify-content:center;gap:10px;flex-wrap:wrap}footer{display:flex;justify-content:space-between;gap:40px;align-items:start;padding:34px clamp(22px,4.5vw,82px);background:#091624;border-top:1px solid var(--line)}footer strong{font:.78rem var(--mono);letter-spacing:.13em}footer p{color:#9db2ba;font-size:.76rem;max-width:620px;margin:8px 0 0}footer a{font-size:.8rem;white-space:nowrap}
.certificate-drawer{margin-top:18px;border:1px solid var(--line);background:#0c1a29;padding:0 23px}.certificate-drawer summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:21px 0;color:#e5efec;font-weight:700}.certificate-drawer summary::-webkit-details-marker{display:none}.certificate-drawer summary span{color:var(--teal);font-size:1.4rem;font-weight:400}.certificate-drawer[open] summary span{transform:rotate(45deg)}.certificate-drawer>p{font-size:.79rem;color:#aebfc7;margin:0 0 22px}.certificate-drawer ol{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 26px;margin:0 0 24px;padding-left:25px}.certificate-drawer li{padding:10px 2px;border-top:1px solid #2e4657;color:var(--teal);font-size:.86rem}.certificate-drawer li a{color:#e1eeee;font-weight:600}.certificate-drawer li time{display:block;color:#9fb5bd;font:500 .72rem var(--mono);margin-top:5px}
.game-preview{margin-top:24px;border:1px solid #486779;background:#081622;padding:15px}.game-preview .eyebrow{font-size:.64rem;margin:1px 0 12px}.game-preview a{display:block;line-height:0;overflow:hidden}.game-preview img{display:block;width:100%;height:auto;transition:transform .25s}.game-preview a:hover img{transform:scale(1.025)}.game-preview-pair{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}.game-caption{font-size:.75rem;color:#adbec6!important;margin:12px 0 2px!important}
.history-drawer{margin-top:14px;border:1px solid var(--line);background:#0b1827;padding:0 24px}.history-drawer summary{cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 0;font-weight:700;list-style:none}.history-drawer summary::-webkit-details-marker{display:none}.history-drawer summary span{font-size:1.4rem;font-weight:400;color:var(--teal)}.history-drawer[open] summary span{transform:rotate(45deg)}.history-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 25px;padding-bottom:14px}.history-grid p{border-top:1px solid var(--line);padding:16px 0;margin:0;color:#bdccd4;font-size:.87rem}.history-grid strong{display:block;color:var(--ink);font-size:.82rem;margin-bottom:6px}.history-grid p span{color:#8ebfb9;font-size:.72rem}
.skills-band{display:grid;grid-template-columns:170px 1fr;gap:22px;margin-top:32px;padding:23px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.skills-band>span{font:700 .7rem var(--mono);letter-spacing:.08em;color:var(--teal)}.skills-band small{display:block;letter-spacing:0;color:#92aab4;font-size:.64rem;font-weight:400;margin-top:5px}.skills-band ul{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px;list-style:none;margin:0;padding:0}.skills-band li{color:#b5c7ce;font-size:.73rem;line-height:1.4}.skills-band li strong{display:block;color:var(--ink);font-size:.77rem;margin-bottom:4px}
.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
#scrub{--scrub-pin-h:100vh;--scrub-stage-bg:#06101b;--scrub-chapter-in:.45s;--scrub-progress:0;position:relative;z-index:1;isolation:isolate;background:var(--scrub-stage-bg);color:var(--ink)}
.scrub-skip{position:absolute;top:12px;left:clamp(22px,4.5vw,82px);z-index:30;background:var(--teal);color:#09211e;padding:10px 16px;font-weight:700;text-decoration:none;border:1px solid var(--teal);clip-path:inset(50%);width:1px;height:1px;overflow:hidden;white-space:nowrap}.scrub-skip:focus,.scrub-skip:focus-visible{clip-path:none;width:auto;height:auto;overflow:visible;outline:3px solid var(--amber);outline-offset:4px}
.scrub-pin{position:relative;min-height:var(--scrub-pin-h);min-height:100svh}
.scrub-stage{position:relative;z-index:1;width:100%;height:100vh;height:100svh;min-height:100vh;min-height:100svh;overflow:hidden;background:var(--scrub-stage-bg);transform:translate3d(0,0,0);will-change:transform;isolation:isolate}
.scrub-stage:before{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(90deg,#06101bf2 0%,#06101bcc 18%,#06101b66 42%,#06101b1a 68%,transparent 100%),linear-gradient(0deg,#06101bf5 0%,#06101b99 22%,transparent 48%),linear-gradient(180deg,#06101bcc 0%,transparent 18%,transparent 72%,#06101be6 100%);box-shadow:inset 0 0 120px #02060ccc}
.scrub-stage:after{content:"";position:absolute;left:0;right:0;bottom:0;z-index:3;height:min(28vh,220px);pointer-events:none;background:linear-gradient(180deg,transparent 0%,var(--bg) 92%)}
#scrub-video,.scrub-stage>video,#scrub-canvas,.scrub-stage>canvas{position:absolute;inset:0;z-index:0;width:100%;height:100%;object-fit:cover;display:block;pointer-events:none;border:0}
#scrub-canvas[hidden],.scrub-stage>canvas[hidden]{display:none!important}
.scrub-chapters{position:absolute;inset:0;z-index:4;pointer-events:none;padding:0 clamp(22px,4.5vw,82px) clamp(56px,8vh,110px)}
.scrub-chapters>[data-chapter]{position:absolute;left:clamp(22px,4.5vw,82px);right:auto;bottom:clamp(56px,8vh,110px);width:min(560px,78vw);max-width:560px;opacity:0;transform:translate3d(0,18px,0);transition:opacity var(--scrub-chapter-in) ease,transform var(--scrub-chapter-in) ease;pointer-events:none}
.scrub-chapters>[data-chapter].is-active{opacity:1;transform:translate3d(0,0,0)}
.scrub-chapters>[data-chapter] h3{margin:0 0 10px;font-size:clamp(2.4rem,4.7vw,5rem);line-height:1.05;letter-spacing:-.06em;color:var(--ink);text-shadow:0 2px 24px #06101bcc}
.scrub-chapters>[data-chapter] p{margin:0;font-size:clamp(1.02rem,1.3vw,1.18rem);line-height:1.6;color:#f4f6f4;background:rgba(6,16,27,.72);padding:12px 14px;border-left:2px solid var(--teal);max-width:34rem;text-shadow:none}
.scrub-rail{list-style:none;margin:0;padding:0;position:absolute;z-index:5;top:50%;right:clamp(14px,2.4vw,36px);transform:translateY(-50%);display:flex;flex-direction:column;justify-content:space-between;height:min(46vh,320px);width:14px;pointer-events:none}
.scrub-rail:before{content:"";position:absolute;left:5px;top:0;bottom:0;width:1px;background:linear-gradient(180deg,#89dfd033,#89dfd0aa,#89dfd033)}
.scrub-rail:after{content:"";position:absolute;left:3px;top:0;width:5px;height:5px;border-radius:50%;background:var(--teal);box-shadow:0 0 10px var(--teal);transform:translateY(calc(var(--scrub-progress) * (min(46vh,320px) - 5px)))}
.scrub-rail li{position:relative;flex:1;min-height:0}
.scrub-rail li span{position:absolute;right:18px;top:0;font:600 .62rem var(--mono);letter-spacing:.12em;text-transform:uppercase;color:#b2c1ca;white-space:nowrap;opacity:.85}
.scrub.is-static .scrub-pin,.scrub.is-static .scrub-stage,.scrub:has([data-chapter].is-static) .scrub-pin,.scrub:has([data-chapter].is-static) .scrub-stage{height:auto;min-height:0;transform:none}
.scrub.is-static #scrub-video,.scrub.is-static #scrub-canvas,.scrub:has([data-chapter].is-static) #scrub-video,.scrub:has([data-chapter].is-static) #scrub-canvas{display:none!important}
.scrub.is-static .scrub-stage,.scrub:has([data-chapter].is-static) .scrub-stage{background:var(--surface);border-bottom:1px solid var(--line)}
.scrub.is-static .scrub-stage:before,.scrub.is-static .scrub-stage:after,.scrub.is-static .scrub-rail,.scrub:has([data-chapter].is-static) .scrub-stage:before,.scrub:has([data-chapter].is-static) .scrub-stage:after,.scrub:has([data-chapter].is-static) .scrub-rail{display:none}
.scrub.is-static .scrub-chapters,.scrub:has([data-chapter].is-static) .scrub-chapters{position:relative;inset:auto;display:grid;gap:14px;padding:clamp(40px,6vw,72px) clamp(22px,4.5vw,82px)}
.scrub.is-static .scrub-chapters>[data-chapter],.scrub.is-static .scrub-chapters>[data-chapter].is-static,[data-chapter].is-static{position:relative;left:auto;right:auto;bottom:auto;width:auto;max-width:none;opacity:1;transform:none;transition:none;padding:22px 24px;border:1px solid var(--line);background:linear-gradient(145deg,#13283a,#0c1929 65%);pointer-events:auto}
.scrub.is-static .scrub-chapters>[data-chapter] p,[data-chapter].is-static p{background:transparent;padding:0;border-left:0;color:var(--muted)}
.scrub-noscript{display:grid;gap:18px;padding:clamp(28px,5vw,56px) clamp(22px,4.5vw,82px);background:var(--surface)}
.scrub-noscript img{display:block;width:100%;height:auto;max-height:70vh;aspect-ratio:16/9;object-fit:cover;border:1px solid var(--line)}
.scrub-noscript-chapters{display:grid;gap:12px}
.scrub-noscript-chapters article{padding:20px 22px;border:1px solid var(--line);background:#0c1b2b}
.scrub-noscript-chapters h3{margin:0 0 8px;font-size:clamp(1.5rem,2.4vw,2.2rem);letter-spacing:-.04em}
.scrub-noscript-chapters p{margin:0;color:var(--muted);font-size:1rem}
@keyframes hero-breathe{to{transform:scale(1.05) translateX(-.5%)}}@media(max-width:1200px){.site-header{gap:20px}.site-header nav{gap:13px}.site-header nav a{font-size:.75rem}.hero-copy{width:52%}.landmark{font-size:.6rem}.landmark-name{max-width:80px;white-space:normal}.landmark-panel{width:min(430px,47vw)}}
@media(max-width:950px){.site-header{height:auto;min-height:72px;flex-wrap:wrap;padding-top:12px;padding-bottom:12px}.site-header nav{order:3;width:100%;margin:0;justify-content:space-between}.hero{min-height:760px}.hero-copy{width:66%;padding-top:60px}.hero h1{font-size:clamp(3.7rem,6vw,5.4rem)}.map-stage{width:73%;height:74%}.landmark-panel{right:22px;bottom:70px;width:400px}.focus-grid{grid-template-columns:1fr 1fr}.focus-card:last-child{grid-column:1/-1;min-height:220px}.skills-band{grid-template-columns:1fr}.skills-band ul{grid-template-columns:repeat(3,minmax(0,1fr))}.workspace{grid-template-columns:minmax(230px,.85fr) minmax(0,1.2fr);gap:12px}.detail{padding:22px}.detail h2{font-size:2.4rem}.fields{grid-template-columns:1fr 1fr}}
@media(max-width:720px){.site-header{padding:12px 20px}.site-header nav{gap:8px 14px;justify-content:flex-start;flex-wrap:wrap}.site-header nav a{font-size:.75rem}.header-contact{margin-left:auto}.hero{min-height:0}.hero-art{background-position:64% top}.hero-shade{background:linear-gradient(180deg,#06101be6 0%,#071522f0 44%,#071522b9 67%,#06101af7 100%)}.hero-copy{width:100%;padding:48px 22px 10px}.hero h1{font-size:clamp(3.25rem,10.5vw,5.4rem)}.hero-intro{font-size:1.03rem}.hero-source{max-width:610px}.map-stage{position:relative;top:auto;right:auto;width:100%;height:330px;margin-top:0}.map-stage-label{top:10px;right:15px}.map-controls{right:12px;bottom:8px}.landmark{min-height:44px;font-size:.54rem;padding:4px 6px 4px 4px;gap:4px}.landmark-dot{width:18px;height:18px}.landmark-name{max-width:75px}.landmark-panel{position:relative;right:auto;bottom:auto;width:auto;min-height:0;margin:0 20px 34px}.art-caption{position:relative;left:auto;bottom:auto;margin:0 20px 18px}.section{padding:70px 0}.section-heading h2,.research h2,.contact-block h2{font-size:clamp(2.3rem,8vw,4rem)}.section-heading-row{display:block}.search-label{max-width:500px;margin-top:28px}.workspace{grid-template-columns:1fr}.projects{max-height:280px}.detail{position:static;min-height:0}.experience-grid,.credential-grid,.history-grid{grid-template-columns:1fr}.experience-grid article,.credential-grid article{min-height:0}.certificate-drawer ol{grid-template-columns:1fr}.skills-band ul{grid-template-columns:repeat(2,minmax(0,1fr))}.research{grid-template-columns:1fr;gap:32px}.research-visual{min-height:260px}.research-content{order:-1}.focus-grid{grid-template-columns:1fr}.focus-card,.focus-card:last-child{grid-column:auto;min-height:260px}.fields{grid-template-columns:1fr 1fr}.scrub-chapters{padding:0 22px 48px}.scrub-chapters>[data-chapter]{left:22px;right:22px;bottom:48px;width:auto;max-width:none}.scrub-chapters>[data-chapter] h3{font-size:clamp(2.3rem,8vw,4rem)}.scrub-rail{right:10px;height:min(38vh,240px)}.scrub-rail li span{font-size:.55rem;right:16px}}
@media(max-width:480px){.site-header{gap:10px;padding:10px 14px}.brand{gap:10px}.brand-text{font-size:.68rem;letter-spacing:.1em}.brand-text small{font-size:.58rem;letter-spacing:.12em}.brand-mark{width:40px;height:40px;min-width:40px}.site-header nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:2px 4px;width:100%;margin:0;justify-content:stretch}.site-header nav a{display:flex;align-items:center;justify-content:center;min-height:44px;padding:8px 2px;font-size:.62rem;letter-spacing:.01em;text-align:center;line-height:1.15}.header-contact{margin-left:0;min-height:44px;display:inline-flex;align-items:center;justify-content:center;font-size:.68rem;padding:8px 12px}.hero h1{font-size:clamp(2.85rem,11vw,3.5rem)}.hero-actions .button{width:100%;min-height:44px}.map-stage{height:290px}.map-stage-label{font-size:.53rem}.landmark-name{max-width:60px;font-size:.5rem}.landmark[data-stop="sanctum"]{left:39%!important}.landmark[data-stop="leadership"]{top:24%!important}.landmark-panel{grid-template-columns:44px 1fr;padding:14px}.landmark-panel p{font-size:.73rem}.education-list article{grid-template-columns:32px 1fr;gap:10px}.fields,.game-preview-pair{grid-template-columns:1fr}.focus-card{min-height:270px}.section{padding:55px 0}.detail{padding:18px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero-art{animation:none}.button,.focus-card,.project,.rover,.scrub-chapters>[data-chapter],.scrub-stage{transition:none}.scrub-chapters>[data-chapter]{transition:none}.research-visual *{animation:none}}
@media print{.site-header nav,.header-contact,.map-stage,.landmark-panel,.art-caption,.filters,.search-label,.project-list-wrap,.demo,.research-visual,.button,footer,.scrub-skip,.scrub-rail,#scrub-video,#scrub-canvas,.scrub-stage:before,.scrub-stage:after{display:none!important}.site-header{height:auto;background:white;color:black}.hero{min-height:0;background:white}.hero-art,.hero-shade{display:none}.hero-copy{width:100%;padding:20px 0}.hero h1,.section-heading h2,.research h2,.contact-block h2{font-size:25pt;color:black}.hero h1 em{color:black}.hero-intro,.hero-source,.section-heading p,.experience-grid p,.education-list p,.credential-grid p,.research-content p{color:#222!important}.content-wrap{padding:0}.section{padding:20px 0;break-inside:avoid}.focus-grid,.experience-grid,.credential-grid{display:block}.focus-card,.experience-grid article,.credential-grid article,.detail{background:white;color:black;border:1px solid #999;min-height:0;margin:8px 0}.focus-card strong,.focus-card span,.detail p{color:black}.workspace{display:block}.research{display:block}.source-chip{color:black}#scrub,.scrub-pin,.scrub-stage{height:auto!important;min-height:0!important;background:white!important;transform:none!important;overflow:visible!important}.scrub-chapters{position:static!important;padding:12px 0!important;display:grid!important;gap:10px!important}.scrub-chapters>[data-chapter]{position:static!important;opacity:1!important;transform:none!important;width:auto!important;max-width:none!important;color:black!important;border:1px solid #999;padding:12px;background:white}.scrub-chapters>[data-chapter] h3{color:black!important;text-shadow:none!important;font-size:16pt}.scrub-chapters>[data-chapter] p{color:#222!important;background:transparent!important;border:0!important;padding:0!important}}

.demo-badge{display:inline-block;margin-top:8px;font:.62rem var(--mono);letter-spacing:.08em;text-transform:uppercase;color:#0b241f;background:#8adacc;padding:4px 7px}
.project .demo-badge{margin-top:10px;background:#1a3a3a;color:#b7efe4;border:1px solid #4f7f7a}
.package-card{margin-top:22px;padding:18px;border:1px solid #456778;background:#0a1a28}
.package-card.package-case-study{border-style:dashed;color:#b7c8cf}
.package-role{margin:12px 0 0;color:#d5e3e7;font-size:.92rem}
.evidence-labels{margin:8px 0 0;padding-left:18px;color:#b8ccd3;font-size:.84rem}
.evidence-labels li{margin:4px 0}
.honors-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.honors-grid article{padding:24px;border:1px solid var(--line);background:#0c1b2b}
.honors-grid h3{font-size:clamp(1.2rem,1.8vw,1.7rem);letter-spacing:-.03em;margin:18px 0 10px}
.honors-grid ul{margin:0;padding-left:18px;color:#beccd3}
.honors-grid li{margin:6px 0;line-height:1.45}
@media(max-width:720px){.honors-grid{grid-template-columns:1fr}}

/* ==========================================================================
   01. INVASION SCROLL HERO (TOP OF PAGE)
   ========================================================================== */
#invasion-hero{--invasion-pin-h:100vh;--invasion-bg:#030810;--invasion-progress:0;position:relative;width:100%;min-height:100vh;min-height:100svh;z-index:10;background:var(--invasion-bg);color:var(--ink);overflow:hidden;border-bottom:1px solid var(--line)}
.invasion-pin{position:relative;width:100%;height:100vh;height:100svh;min-height:100vh;min-height:100svh}
.invasion-stage{position:relative;width:100%;height:100vh;height:100svh;overflow:hidden;background:var(--invasion-bg);display:flex;align-items:center;justify-content:center}
.invasion-canvas,.invasion-video{position:absolute;inset:0;width:100%!important;height:100%!important;object-fit:cover;display:block;z-index:1;border:0}
.invasion-video[hidden],.invasion-canvas[hidden]{display:none!important}
.invasion-vignette{position:absolute;inset:0;z-index:2;pointer-events:none;background:radial-gradient(ellipse at center,transparent 30%,rgba(3,8,16,.75) 75%,rgba(3,8,16,.96) 100%),linear-gradient(180deg,rgba(3,8,16,.8) 0%,transparent 22%,transparent 75%,rgba(3,8,16,.96) 100%)}
.invasion-chapters{position:absolute;inset:0;z-index:3;pointer-events:none;display:flex;align-items:center;justify-content:center;padding:0 clamp(20px,5vw,80px)}
.invasion-chapter{position:absolute;max-width:min(840px,90vw);text-align:center;opacity:0;transform:translateY(24px) scale(.97);transition:opacity .45s cubic-bezier(.16,1,.3,1),transform .45s cubic-bezier(.16,1,.3,1);pointer-events:none;padding:26px 34px;background:rgba(7,16,29,.78);border:1px solid rgba(137,223,208,.25);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 24px 60px rgba(2,6,12,.75)}
.invasion-chapter.is-active{opacity:1!important;transform:translateY(0) scale(1);pointer-events:auto}
.invasion-badge{display:inline-block;font-family:var(--mono);font-size:clamp(.68rem,.85vw,.8rem);font-weight:700;letter-spacing:.18em;color:var(--teal);text-transform:uppercase;margin-bottom:12px;padding:4px 10px;background:rgba(137,223,208,.12);border:1px solid rgba(137,223,208,.3)}
.invasion-title{font-size:clamp(2.2rem,5vw,4.2rem);font-weight:800;letter-spacing:-.04em;line-height:1.08;margin:0 0 14px;color:#fff;text-shadow:0 4px 30px rgba(0,0,0,.85)}
.invasion-desc{font-size:clamp(.95rem,1.3vw,1.2rem);color:#d8e5e8;line-height:1.55;margin:0 auto;max-width:620px}
.invasion-hud{position:absolute;bottom:clamp(20px,4vh,40px);left:50%;transform:translateX(-50%);z-index:4;display:flex;flex-direction:column;align-items:center;gap:8px;pointer-events:none}
.invasion-indicator{font-family:var(--mono);font-size:.68rem;letter-spacing:.14em;color:var(--teal);background:rgba(7,16,29,.85);padding:5px 12px;border:1px solid rgba(137,223,208,.3);text-transform:uppercase}
.invasion-progress-bar{width:180px;height:3px;background:rgba(255,255,255,.15);border-radius:2px;overflow:hidden}
.invasion-progress-fill{width:0%;height:100%;background:var(--teal);box-shadow:0 0 8px var(--teal);transition:width .08s linear}
.invasion-skip{position:absolute;top:clamp(16px,3vh,32px);right:clamp(16px,4vw,50px);z-index:5;font-family:var(--mono);font-size:.72rem;font-weight:700;letter-spacing:.08em;text-decoration:none;color:var(--teal);background:rgba(7,16,29,.85);border:1px solid rgba(137,223,208,.35);padding:8px 14px;transition:background .2s,border-color .2s,color .2s}
.invasion-skip:hover{background:var(--teal);color:#030810}
@media(max-width:720px){
  .invasion-chapter{padding:18px 20px}
  .invasion-title{font-size:clamp(1.8rem,7.5vw,2.8rem)}
  .invasion-desc{font-size:.9rem}
  .invasion-hud{bottom:15px}
  .invasion-progress-bar{width:130px}
  .invasion-skip{top:12px;right:14px;padding:6px 10px;font-size:.65rem}
}
@media(prefers-reduced-motion:reduce){
  #invasion-hero{height:auto;overflow:visible}
  .invasion-pin{height:auto;min-height:0}
  .invasion-stage{height:auto;min-height:0;padding:60px 20px;flex-direction:column}
  .invasion-canvas,.invasion-video{display:none!important}
  .invasion-chapters{position:static;display:grid;gap:20px;padding:0;width:100%}
  .invasion-chapter{position:static;opacity:1;transform:none;max-width:700px;margin:0 auto;pointer-events:auto}
  .invasion-hud,.invasion-skip{display:none}
}
