:root{--ink:#d7e1dd;--paper:#d8d2b9;--navy:#08131e;--cyan:#8bdace;--amber:#ce9c5f;--sans:"Arial Narrow", "Roboto Condensed", "Segoe UI", Arial, sans-serif;--mono:"Lucida Console", "Courier New", monospace;font-family:var(--sans);color:var(--ink);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#2a1a14}*{box-sizing:border-box}html{scroll-behavior:smooth;background:#2a1a14;min-width:320px;min-height:100%}body{min-width:320px;min-height:100svh;margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button,a{transition:color .15s,background-color .15s,border-color .15s,box-shadow .15s,transform .15s}button:focus-visible,a:focus-visible{outline-offset:3px;outline:2px solid #e7bc82}::selection{color:#071117;background:#9ce1d5}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:#061019}::-webkit-scrollbar-thumb{background:#395567;border:2px solid #061019}.skip-link{z-index:1000;color:#07131d;background:var(--paper);padding:10px 14px;transition:transform .16s;position:fixed;top:12px;left:12px;transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}.mobile-skip-link,.mobile-menu-toggle,.mobile-lab-menu{display:none}.door-screen{isolation:isolate;background:linear-gradient(90deg,#0000 0 5%,#00000029 5% 5.4%,#0000 5.4% 94.6%,#00000029 94.6% 95%,#0000 95%),#101c2b;place-items:center;min-height:100svh;display:grid;position:relative;overflow:hidden}.door-screen:after,.lab-app:after{content:"";z-index:900;pointer-events:none;opacity:.16;mix-blend-mode:soft-light;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' 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%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.42'/%3E%3C/svg%3E");position:fixed;inset:0}.door-wall{z-index:-2;background:linear-gradient(#152338 0 72%,#09101a 72%),#152338;position:absolute;inset:0}.door-wall:after{content:"";background:#26384b;height:18px;position:absolute;bottom:27%;left:0;right:0;box-shadow:0 6px #070c14}.wall-line{background:#87a7b31f;width:1px;height:45%;position:absolute;top:0}.wall-line-one{left:20%}.wall-line-two{right:20%}.hall-light{z-index:-1;background:radial-gradient(circle,#90ddd630,#0000 66%);border-radius:50%;width:760px;height:760px;position:absolute;top:-35%}.lab-door{background:linear-gradient(90deg,#ffffff0d,#0000 12% 88%,#0003),#314251;border:12px solid #0a111c;border-bottom-width:5px;width:min(390px,72vw);height:min(650px,69svh);margin-top:-4svh;position:relative;box-shadow:0 0 0 5px #455765,0 42px 70px #00000080}.door-window{background:#173945;border:9px solid #17232d;width:68%;height:25%;position:absolute;top:7%;left:16%;overflow:hidden;box-shadow:inset 0 0 35px #43b1af}.window-glow{background:radial-gradient(circle at 60% 55%,#82f2e38f,#0000 28%),linear-gradient(155deg,#0000 30%,#aef3e62e 31% 34%,#0000 35%);animation:8s step-end infinite roomFlicker;position:absolute;inset:0}.window-blind{background:#0e1b24;width:100%;height:7px;position:absolute;left:0;box-shadow:0 4px #05090d59}.blind-one{top:24%}.blind-two{top:49%}.blind-three{top:74%}.door-plaque{color:#132029;text-align:center;background:repeating-linear-gradient(0deg,#161f200a 0 1px,#0000 1px 3px),#c6c4ad;border:4px solid #121d29;width:76%;padding:16px 12px 14px;position:absolute;top:39%;left:50%;transform:translate(-50%)rotate(-.6deg);box-shadow:0 3px #ffffff1f,0 7px 12px #0000004d}.door-plaque span,.door-plaque small{font:700 .59rem/1.3 var(--mono);letter-spacing:.22em;display:block}.door-plaque strong{font:800 clamp(1.55rem, 5vw, 2.3rem)/1 var(--sans);letter-spacing:-.07em;margin:6px 0 4px;display:block}.door-handle{background:linear-gradient(90deg,#5f6d6e,#d1cfb5 45%,#6f7a77);border-radius:5px;width:19px;height:60px;position:absolute;top:65%;right:12%;box-shadow:-7px 0 #19232b,0 4px 8px #0006}.enter-button{color:#c9f5e9;background:#0c282e;border:2px solid #a6dbcf;width:78%;padding:13px 20px 11px;position:absolute;bottom:8%;left:50%;transform:translate(-50%);box-shadow:5px 5px #081218}.enter-button span,.enter-button small{display:block}.enter-button span{font:700 .84rem/1.2 var(--mono);letter-spacing:.18em}.enter-button small{color:#7daaa5;font:500 .58rem/1.2 var(--mono);margin-top:5px}.enter-button:hover{color:#061419;background:#b7ecdf;transform:translate(-50%)translate(-2px,-2px);box-shadow:8px 8px #081218}.door-caption{color:#708899;font:600 .62rem/1 var(--mono);letter-spacing:.18em;margin:0;position:absolute;bottom:5.5%}.door-screen>.sound-button{position:absolute;top:25px;right:25px}.sound-button{color:#9dbdbb;font:700 .58rem/1 var(--mono);letter-spacing:.1em;background:#050e16c7;border:1px solid #9dc6c259;align-items:center;gap:9px;padding:9px 11px;display:inline-flex}.sound-bars{align-items:end;gap:2px;height:11px;display:flex}.sound-bars i{background:currentColor;width:2px;height:45%}.sound-bars i:nth-child(2){height:100%}.sound-bars i:nth-child(3){height:70%}.sound-button[aria-pressed=true] .sound-bars i{animation:.8s ease-in-out infinite alternate soundBars}.sound-button[aria-pressed=true] .sound-bars i:nth-child(2){animation-delay:-.4s}.lab-app{height:100svh;min-height:100svh;color:var(--ink);background:#050a11;flex-direction:column;display:flex;overflow:hidden}.lab-header{z-index:20;background:#050c14f5;border-bottom:1px solid #27394a;flex-shrink:0;justify-content:space-between;align-items:center;gap:20px;min-height:66px;padding:0 24px;display:flex;position:relative}.lab-brand,.header-actions{align-items:center;gap:12px;display:flex}.lab-brand strong,.lab-brand small{display:block}.lab-brand strong{color:#d4e2da;letter-spacing:-.04em;font-size:1rem}.lab-brand small{color:#728797;font:600 .52rem/1 var(--mono);letter-spacing:.14em;margin-top:3px}.status-light{background:#76e2b0;border-radius:50%;width:8px;height:8px;animation:3s step-end infinite statusBlink;box-shadow:0 0 12px #76e2b0}.room-status{color:#637a89;font:600 .55rem/1 var(--mono);letter-spacing:.12em}.directory-toggle{color:#d1a46c;font:700 .58rem/1 var(--mono);letter-spacing:.1em;background:#17140f;border:1px solid #a27743;padding:10px 13px}.room-shell{background:#4a2c18;flex-direction:column;flex:1;min-height:0;display:flex;position:relative;overflow:hidden}.room-viewport{--lab-wall-ratio:21.777%;isolation:isolate;scrollbar-width:thin;scrollbar-color:#446274 #07101b;background:#4a2c18;flex:1;place-items:center;min-height:0;display:grid;position:relative;overflow:hidden;container-type:size}.room-viewport:before{content:"";z-index:0;pointer-events:none;image-rendering:pixelated;filter:brightness(.7)saturate(.92);background:linear-gradient(#d4ae78, #d4ae78) 0 calc(var(--lab-wall-ratio) - 8px) / 100% 4px no-repeat, linear-gradient(#8a5a34, #8a5a34) 0 calc(var(--lab-wall-ratio) - 4px) / 100% 12px no-repeat, linear-gradient(#4a2c1859, #4a2c1859) 0 var(--lab-wall-ratio) / 100% 8px no-repeat, repeating-linear-gradient(90deg, #c49a62 0 14px, #b48954 14px 16px, #c49a62 16px 30px, #b48954 30px 32px, #c49a62 32px 46px, #a87d4a 46px 48px) 0 0 / 48px var(--lab-wall-ratio) no-repeat, repeating-linear-gradient(180deg, transparent 0 22px, #a87d4a 22px 24px, transparent 24px 48px) 0 0 / 100% var(--lab-wall-ratio) no-repeat, #c49a62 0 0 / 100% var(--lab-wall-ratio) no-repeat, repeating-conic-gradient(#e1e2dd 0 25%, #b9bdbb 0 50%) 0 var(--lab-wall-ratio) / 64px 64px, #b9bdbb;position:absolute;inset:0}.room-viewport:after{content:"";z-index:0;pointer-events:none;background:repeating-linear-gradient(90deg, transparent 0 31px, #8d92918c 31px 32px, transparent 32px 63px, #8d92918c 63px 64px) 0 var(--lab-wall-ratio) / 64px calc(100% - var(--lab-wall-ratio)), repeating-linear-gradient(180deg, transparent 0 31px, #8d92918c 31px 32px, transparent 32px 63px, #8d92918c 63px 64px) 0 var(--lab-wall-ratio) / 64px calc(100% - var(--lab-wall-ratio));opacity:.7;filter:brightness(.7)saturate(.92);image-rendering:pixelated;position:absolute;inset:0}.room-canvas{z-index:1;aspect-ratio:16/9;width:min(100%,177.778svh - 220.444px);max-width:100%;height:auto;max-height:100%;position:relative}@supports (width:1cqw){.room-canvas{width:min(100cqw,177.778cqh);height:min(100cqh,56.25cqw)}}.classroom-art{width:100%;height:100%;display:block}.room-hotspots{position:absolute;inset:0}.room-hotspot{color:#e3f1e9;background:0 0;border:0;place-items:center;display:grid;position:absolute}.hotspot-pulse{background:#07141c8c;border:1px solid #bbeee4d9;border-radius:50%;width:28px;height:28px;position:absolute;box-shadow:0 0 0 7px #69daca14,0 0 20px #69daca4d}.hotspot-pulse:before,.hotspot-pulse:after{content:"";background:#c5f6ec;width:8px;height:1px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.hotspot-pulse:after{transform:translate(-50%,-50%)rotate(90deg)}.hotspot-label{color:#d2eee5;width:max-content;max-width:170px;font:700 .58rem/1.2 var(--mono);letter-spacing:.06em;opacity:0;background:#040e14e6;border:1px solid #63877f;padding:7px 9px;transition:opacity .15s,transform .15s;position:absolute;bottom:4%;left:50%;transform:translate(-50%,8px)}.room-hotspot:hover .hotspot-label,.room-hotspot:focus-visible .hotspot-label{opacity:1;transform:translate(-50%)}.room-hotspot:hover .hotspot-pulse:before,.room-hotspot:hover .hotspot-pulse:after,.room-hotspot:focus-visible .hotspot-pulse:before,.room-hotspot:focus-visible .hotspot-pulse:after{background:#07151a}.hotspot-number{color:#d6eee78c;font:700 .55rem/1 var(--mono);position:absolute;top:4%;left:5%}.hotspot-whiteboard{width:19%;height:16%;top:5%;left:5%}.hotspot-corkboard{width:20%;height:16%;top:5%;left:73%}.hotspot-station-smcmc{width:14%;height:24%;top:18%;left:8%}.hotspot-station-one{width:16%;height:32%;top:50%;left:12%}.hotspot-station-two{width:18%;height:36%;top:36%;left:42%}.hotspot-station-three{width:16%;height:32%;top:50%;left:67%}.hotspot-teacher{width:16%;height:24%;top:71%;left:79%}.hotspot-floppy{width:5%;height:10%;top:76%;left:32%}.hotspot-floppy .hotspot-pulse{border-color:#d9a05d;width:18px;height:18px;box-shadow:0 0 14px #d9a05d80}.hotspot-floppy .hotspot-label{color:#f2c990;border-color:#8f633b}.room-legend{z-index:10;color:#718795;height:38px;font:600 .52rem/1 var(--mono);letter-spacing:.1em;background:#040a10f5;border-top:1px solid #263a4b;align-items:center;gap:28px;padding:0 20px;display:flex;position:absolute;bottom:0;left:0;right:0}.legend-dot{background:#718795;border-radius:50%;width:6px;height:6px;margin-right:6px;display:inline-block}.legend-dot.active{background:#6de0ad;box-shadow:0 0 8px #6de0ad}.clock-readout{margin-left:auto}.pan-hint{display:none}.lexthetics-loop{transform-origin:50%;animation:5s ease-in-out infinite monitorFloat}.respawn-loop{animation:4.5s step-end infinite crtFlicker}.sump-loop{animation:3.2s step-end infinite crtFlicker}.smcmc-loop .smcmc-geo-a{transform-origin:56px 40px;animation:7s linear infinite smcmcGeoSpin}.smcmc-loop .smcmc-geo-b{transform-origin:38px 48px;animation:4.5s ease-in-out infinite smcmcGeoPulse}.smcmc-loop .smcmc-geo-c{transform-origin:67px 31px;animation:9s linear infinite reverse smcmcGeoSpin}.screen-cursor{animation:2.6s steps(2,end) infinite cursorSelect}.glitch-window{animation:3.3s step-end infinite svgGlitch}.project-directory{z-index:100;color:#d6e2dd;background:#060e16fa;border-left:1px solid #314b59;width:min(510px,92vw);padding:34px;transition:transform .3s cubic-bezier(.22,.8,.22,1);position:fixed;top:66px;bottom:0;right:0;overflow-y:auto;transform:translate(102%);box-shadow:-30px 0 60px #0000006b}.project-directory.is-open{transform:translate(0)}.directory-heading{justify-content:space-between;align-items:start;gap:20px;margin-bottom:28px;display:flex}.directory-heading h2{margin:3px 0 0;font-size:2.5rem}.directory-heading button,.directory-resources button{color:#9db4b8;font:700 .58rem/1 var(--mono);letter-spacing:.1em;background:0 0;border:1px solid #4d6572}.directory-heading button{padding:9px 11px}.directory-grid{gap:10px;display:grid}.directory-grid button{color:#dceae3;text-align:left;background:#0c1925;border:1px solid #293d4b;grid-template-columns:88px 1fr;gap:3px 15px;padding:18px;display:grid}.directory-grid button:hover,.directory-grid button:focus-visible{background:#10242d;border-color:#7eb8ac}.directory-grid span{color:#c59658;font:700 .6rem/1.5 var(--mono);grid-row:span 2}.directory-grid strong{font-size:1rem}.directory-grid small{color:#8197a2;font-size:.72rem}.directory-resources{border-top:1px dashed #334957;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:25px;padding-top:25px;display:grid}.directory-resources button{padding:13px 8px}.panel-overlay{z-index:300;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#02070cc7;place-items:center;padding:32px;animation:.2s both overlayIn;display:grid;position:fixed;inset:0}.overlay-close{z-index:2;color:#cadbd6;width:42px;height:42px;font:300 1.65rem/1 var(--sans);background:#0a1721;border:1px solid #617986;position:absolute;top:19px;right:23px}.panel-card{color:#d9e3de;background:#0a151f;border:1px solid #3b5360;width:min(1120px,94vw);max-height:88svh;animation:.35s cubic-bezier(.16,.8,.26,1) both panelIn;overflow-y:auto;box-shadow:14px 14px #02060a8c}.panel-topline{z-index:3;color:#7c949e;height:42px;font:700 .57rem/1 var(--mono);letter-spacing:.11em;background:#0e1e2a;border-bottom:1px solid #344c59;justify-content:space-between;align-items:center;padding:0 16px;display:flex;position:sticky;top:0}.panel-topline button{color:#ba9363;font:inherit;background:0 0;border:0}.project-panel-grid{grid-template-columns:minmax(0,1.2fr) minmax(330px,.8fr);min-height:600px;display:grid}.project-preview{background:#060a0e;border:10px solid #222c33;border-radius:28px;min-height:560px;margin:24px;position:relative;overflow:hidden;box-shadow:inset 0 0 0 4px #586267,inset 0 0 60px #53d2c826}.project-preview:after{content:"";z-index:8;pointer-events:none;background:repeating-linear-gradient(0deg,#ffffff06 0 1px,#0000 1px 4px),radial-gradient(#0000 55%,#00000078);border-radius:16px;position:absolute;inset:0}.preview-browser{z-index:10;color:#ffffff8c;height:28px;font:500 .48rem/1 var(--mono);background:#060a0f94;border:1px solid #ffffff21;align-items:center;gap:5px;padding:0 10px;display:flex;position:absolute;top:18px;left:22px;right:22px}.preview-browser>span{background:#829196;border-radius:50%;width:6px;height:6px}.preview-browser small{margin-left:6px}.preview-live{z-index:10;color:#ffffffa6;font:600 .48rem/1 var(--mono);letter-spacing:.1em;position:absolute;bottom:17px;right:21px}.preview-lexthetics,.preview-respawn,.preview-sump,.preview-smcmc{position:absolute;inset:0}.preview-lexthetics{background:linear-gradient(160deg,#f2a36c 0%,#ef6fa2 43%,#6745c5 100%);overflow:hidden}.preview-cloud{filter:blur(5px);background:#fff4d999;border-radius:50%;width:220px;height:80px;animation:9s linear infinite cloudMove;position:absolute}.cloud-a{top:95px;left:-120px}.cloud-b{animation-duration:12s;animation-delay:-4s;top:250px;left:55%}.xp-panel{color:#382542;background:#fff6e7;border:3px solid #eee2c6;border-radius:9px 9px 2px 2px;min-height:230px;padding:58px 30px 30px;animation:6s ease-in-out infinite windowDrift;position:absolute;top:25%;left:12%;right:12%;box-shadow:9px 12px #2d194633}.xp-title{color:#fff;font:700 .7rem/1 var(--sans);background:linear-gradient(90deg,#335db7,#759ed7);padding:10px 12px;position:absolute;top:0;left:0;right:0}.xp-panel strong{font:800 clamp(1.5rem, 4vw, 3rem)/.95 var(--sans);display:block}.xp-preview-button{color:#fff;background:#3566bf;border:2px outset #d7d5cc;margin-top:25px;padding:10px 18px;display:inline-block}.xp-taskbar{color:#fff;height:36px;font:700 .72rem/36px var(--sans);background:#2e67c5;padding-left:15px;position:absolute;bottom:0;left:0;right:0}.preview-respawn{color:#6bf29b;font-family:var(--mono);text-align:center;background:radial-gradient(circle,#3ba45a21,#0000 55%),#050d08;flex-direction:column;justify-content:center;align-items:center;display:flex}.preview-respawn strong{letter-spacing:-.09em;text-shadow:0 0 15px #6bf29b73;font-size:clamp(2.5rem,6vw,5.8rem);line-height:.82;animation:3s ease-in-out infinite titlePulse}.preview-respawn p{color:#b08644;letter-spacing:.17em;font-size:.65rem}.preview-respawn ul{text-align:left;margin:35px 0 0;padding:0;list-style:none}.preview-respawn li{margin:12px;font-weight:700;position:relative}.preview-respawn li:first-child:before{content:"▶";animation:2.5s step-end infinite menuCursor;position:absolute;left:-25px}.preview-scanlines{background:repeating-linear-gradient(0deg,#ffffff09 0 1px,#0000 1px 5px);position:absolute;inset:0}.preview-sump{color:#17d9c9;background:#05050b;overflow:hidden}.matrix-field{overflow-wrap:anywhere;color:#0ba391;font:700 2.3rem/1.2 var(--mono);opacity:.28;animation:4s linear infinite matrixScroll;position:absolute;inset:-20% 0}.mac-menu{z-index:2;color:#121318;height:27px;font:700 .56rem/27px var(--sans);background:#cac9c2;padding:0 10px;position:absolute;top:58px;left:18px;right:18px}.mac-window{z-index:3;color:#15151a;background:#c9c8c1;border:3px outset #deded7;padding:35px 12px 12px;animation:5s ease-in-out infinite windowDrift;position:absolute;box-shadow:8px 8px #00000073}.mac-window b{font:700 .55rem/1 var(--sans);position:absolute;top:5px;left:8px}.mac-window span{font:700 .8rem/1.4 var(--mono);display:block}.window-a{width:58%;min-height:120px;top:27%;left:10%}.window-b{width:34%;min-height:90px;animation-delay:-2s;bottom:15%;right:10%}.window-b span{color:#ef31b7;text-align:center;font-size:3rem}.preview-smcmc{color:#f2f2f2;background:radial-gradient(70% 45% at 20% 15%,#ffffff14,#0000 55%),radial-gradient(50% 40% at 85% 80%,#ffffff0d,#0000 50%),#0a0a0a;overflow:hidden}.smcmc-geo-shape{pointer-events:none;background:#f2f2f21f;position:absolute}.smcmc-geo-shape.shape-a{aspect-ratio:1;width:46%;animation:8s ease-in-out infinite smcmcPreviewDrift;top:8%;right:-6%;rotate:18deg}.smcmc-geo-shape.shape-b{aspect-ratio:1;background:#f2f2f214;border-radius:50%;width:34%;animation:6.5s ease-in-out infinite reverse smcmcPreviewDrift;bottom:10%;left:-8%}.smcmc-geo-shape.shape-c{aspect-ratio:1;background:#f2f2f229;width:26%;animation:14s linear infinite smcmcGeoSpin;top:42%;left:52%;rotate:-12deg}.smcmc-preview-copy{z-index:2;text-align:center;place-content:center;gap:10px;padding:24px;display:grid;position:absolute;inset:0}.smcmc-preview-copy strong{font:700 clamp(1.6rem, 4vw, 3.2rem)/.95 var(--sans);letter-spacing:-.04em}.smcmc-preview-copy p{color:#9a9a9a;font:500 .78rem/1.4 var(--sans);letter-spacing:.04em;margin:0}.smcmc-preview-copy span{color:#e8e8e8;font:700 .55rem/1 var(--mono);letter-spacing:.14em;background:#0a0a0ab3;border:1px solid #2a2a2a;justify-self:center;margin-top:8px;padding:8px 14px}.project-copy{padding:58px 42px 42px 20px}.eyebrow{color:#c6965b;font:700 .57rem/1.2 var(--mono);letter-spacing:.18em;margin:0 0 12px}.project-copy h2,.info-inner h2{color:#e5ebe6;letter-spacing:-.07em;margin:0;font-size:clamp(2.4rem,5vw,4.8rem);line-height:.92}.project-kicker{color:#8ea3aa;margin:15px 0 32px;font-size:1rem;line-height:1.5}.project-copy dl{margin:0}.project-copy dl>div{border-top:1px solid #273b47;padding:16px 0}.project-copy dt{color:#78919b;font:700 .55rem/1 var(--mono);letter-spacing:.13em;margin-bottom:7px}.project-copy dd{color:#bbc9c6;margin:0;font-size:.82rem;line-height:1.55}.stack-list{flex-wrap:wrap;gap:6px;margin:20px 0 24px;padding:0;list-style:none;display:flex}.stack-list li{color:#9cb2b4;font:600 .55rem/1 var(--mono);background:#0c1c26;border:1px solid #344b56;padding:7px 9px}.launch-link,.paper-link,.resume-open{color:#e0b276;font:700 .65rem/1 var(--mono);letter-spacing:.1em;cursor:pointer;background:#1c1711;border:1px solid #b88a52;justify-content:space-between;align-items:center;gap:24px;padding:14px 16px;text-decoration:none;display:inline-flex}.launch-link:hover,.paper-link:hover,.resume-open:hover{color:#111a1d;background:#e0b276}.resume-viewer{flex-direction:column;gap:16px;min-height:min(78svh,820px);display:flex}.resume-viewer-header{flex-wrap:wrap;justify-content:space-between;align-items:end;gap:16px;display:flex}.resume-viewer-header h2{margin:0}.resume-viewer-actions{flex-wrap:wrap;gap:8px;display:flex}.resume-download{color:#111a1d;min-height:44px;font:700 .72rem/1 var(--mono);letter-spacing:.12em;background:#e0b276;border:2px solid #e0b276;justify-content:center;align-items:center;padding:12px 18px;text-decoration:none;display:inline-flex;box-shadow:4px 4px #03090f73}.resume-download:hover{color:#efe3b0;background:#5a3d28;border-color:#d9a05d}.resume-back{color:#d4a66a;min-height:44px;font:700 .6rem/1 var(--mono);letter-spacing:.1em;background:#2a1a14;border:1px solid #8a5a34;justify-content:center;align-items:center;padding:12px 14px;display:inline-flex}.resume-back:hover{color:#f0d2a0;border-color:#d9a05d}.resume-frame-shell{background:#1a140f;border:2px solid #8a5a34;flex:1;min-height:560px;box-shadow:inset 0 0 0 1px #3d2818}.resume-frame{background:#fff;border:0;width:100%;height:100%;min-height:560px;display:block}.resume-fallback{color:#8fa39c;font:500 .72rem/1.4 var(--sans);margin:0}.resume-fallback a{color:#e0b276;font-weight:700}.project-status{color:#b69a77;font:600 .6rem/1.4 var(--mono);background:#b88a5214;border-left:2px solid #b88a52;padding:12px 14px}.info-panel{width:min(800px,92vw)}.info-panel:has(.resume-viewer){width:min(960px,96vw);max-height:94svh}.info-inner{padding:clamp(34px,7vw,80px)}.info-panel:has(.resume-viewer) .info-inner{flex-direction:column;min-height:0;padding:28px 28px 24px;display:flex}.large-copy{color:#c4d0cc;margin:24px 0 16px;font-size:clamp(1.15rem,2.2vw,1.6rem);line-height:1.45}.info-inner>p:not(.eyebrow):not(.large-copy):not(.location-line){color:#8fa3aa;max-width:62ch;line-height:1.65}.location-line{color:#c9975d;font:700 .6rem/1 var(--mono);letter-spacing:.15em;margin:35px 0 0}.skills-board{margin:32px 0;position:relative;overflow:visible}.skills-grid{grid-template-columns:repeat(2,1fr);gap:8px;margin:0;padding:0;list-style:none;display:grid}.skills-grid>li{background:#0d1b25;border:1px solid #2f4551;flex-direction:column;gap:0;min-width:0;transition:border-color .15s,background-color .15s,box-shadow .15s,transform .15s;display:flex}.skill-tile{color:#bfcfca;text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:auto 1fr auto;align-items:center;gap:13px;width:100%;padding:15px;display:grid}.skill-index{color:#c59658;font:700 .55rem/1 var(--mono)}.skill-label{font:700 .72rem/1.2 var(--sans);letter-spacing:.02em}.skill-hint{color:#7a9089;font:700 .5rem/1 var(--mono);letter-spacing:.12em;opacity:0;transition:opacity .15s,transform .15s,color .15s;transform:translate(-4px)}.skills-grid>li:hover,.skills-grid>li:focus-within{background:#142430;border-color:#c59658;transform:translate(-2px,-2px);box-shadow:4px 4px #03090f73}.skills-grid>li:hover .skill-tile,.skills-grid>li:focus-within .skill-tile{color:#e7d7b0}.skills-grid>li:hover .skill-hint,.skills-grid>li:focus-within .skill-hint,.skills-grid>li.is-open .skill-hint{opacity:1;color:#d4a66a;transform:translate(0)}.skills-grid>li.is-open{background:#142430;border-color:#c59658;box-shadow:4px 4px #03090f73}.skill-float-scrim{z-index:2;cursor:pointer;background:#060c1247;border:0;position:absolute;inset:0}.skill-float{z-index:3;color:#d7e1dd;background:#13212c;border:1px solid #c59658;width:min(100%,440px);padding:14px 16px 16px;animation:.22s ease-out skillFloatIn,3.2s ease-in-out .22s infinite skillFloatBob;position:absolute;top:50%;left:50%;overflow:visible;transform:translate(-50%,-50%);box-shadow:10px 12px #03090f8c,0 18px 40px #00000059}.skill-float-topline{color:#8fa39c;font:700 .5rem/1 var(--mono);letter-spacing:.12em;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.skill-float-topline button{color:#d4a66a;font:700 .5rem/1 var(--mono);letter-spacing:.1em;background:#1a140f;border:1px solid #6d5840;padding:6px 8px}.skill-float-topline button:hover{color:#f0d2a0;border-color:#c59658}.skill-float h3{color:#efe3b0;letter-spacing:-.02em;margin:0 0 12px;font-size:1.15rem}.skill-examples{margin:0;padding:0;list-style:none}.skill-examples li{color:#9eb4ae;font:500 .68rem/1.45 var(--sans);border-top:1px solid #2f4551;margin:0;padding:8px 0 8px 14px;position:relative}.skill-examples li:first-child{border-top:0;padding-top:0}.skill-examples li:before{content:"";background:#c59658;width:6px;height:6px;position:absolute;top:1.05em;left:0}.skill-examples li:first-child:before{top:.55em}@keyframes skillFloatIn{0%{opacity:0;transform:translate(-50%,calc(14px - 50%))scale(.96)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}@keyframes skillFloatBob{0%,to{transform:translate(-50%,-50%)}50%{transform:translate(-50%,calc(-50% - 6px))}}.contact-links{gap:8px;margin-top:32px;display:grid}.contact-links a,.contact-unavailable{color:#c5d4d0;font:700 .63rem/1 var(--mono);letter-spacing:.1em;background:#0c1b25;border:1px solid #324a56;justify-content:space-between;gap:15px;padding:16px;text-decoration:none;display:flex}.contact-links a span,.contact-unavailable span{color:#7fa09f;font-weight:500}.contact-links a:hover{color:#e5ba80;border-color:#c59658}.contact-unavailable{opacity:.55}.dialtone{color:#68e4ae;background:#050b09;border:8px solid #414a4d;border-radius:14px;margin-top:30px;padding:24px;box-shadow:inset 0 0 35px #46e19b24}.dialtone pre{white-space:pre-wrap;font:700 .76rem/1.7 var(--mono);margin:18px 0}.dial-leds{gap:8px;display:flex}.dial-leds i{background:#21372c;border-radius:50%;width:8px;height:8px;animation:1.2s step-end infinite ledSequence}.dial-leds i:nth-child(2){animation-delay:.2s}.dial-leds i:nth-child(3){animation-delay:.4s}.dial-leds i:nth-child(4){animation-delay:.6s}.signal-wave{align-items:center;gap:4px;height:42px;display:flex}.signal-wave i{width:5px;height:calc(5px + (var(--wave-index) % 7) * 5px);animation:.65s ease-in-out infinite alternate wave;animation-delay:calc(var(--wave-index) * -45ms);background:#68e4ae}.lab-footer{color:#5f7885;min-height:58px;font:600 .52rem/1 var(--mono);letter-spacing:.13em;background:#050b12;border-top:1px solid #253846;flex-shrink:0;justify-content:space-between;align-items:center;gap:20px;padding:0 24px;display:flex}.lab-footer p{margin:0}.lab-footer ul{gap:18px;margin:0;padding:0;list-style:none;display:flex}.lab-footer a{color:#8098a2;text-decoration:none}.lab-footer a:hover{color:#deb176}.door-screen,.lab-app,.panel-card,.project-directory{image-rendering:pixelated}.door-screen:after,.lab-app:after{opacity:.08;mix-blend-mode:overlay;background-image:linear-gradient(90deg,#ffffff1f 1px,#0000 1px),linear-gradient(#ffffff14 1px,#0000 1px);background-size:4px 4px}.door-screen{background:repeating-linear-gradient(90deg,#3d5a48 0 32px,#355240 32px 64px)}.door-wall{background:linear-gradient(#0000 0 71%,#4a2c18 71%),repeating-linear-gradient(90deg,#c49a62 0 48px,#b48954 48px 96px)}.door-wall:after{background:#8a5a34;height:16px;bottom:27%;box-shadow:0 8px #4a2c18}.wall-line{background:#a87d4a;width:4px}.hall-light{opacity:.18;background:linear-gradient(90deg,#0000 0 8%,#f0c878 8% 92%,#0000 92%);border-radius:0;width:480px;height:120px;top:0}.lab-door{background:repeating-linear-gradient(90deg,#8a5530 0 24px,#7a4a28 24px 48px);border:16px solid #5a3a28;border-bottom-width:8px;width:min(384px,76vw);height:min(640px,70svh);box-shadow:0 0 0 8px #c49a62,24px 24px #2a1a148c}.door-window{background:#1a3344;border:12px solid #5a3a28;border-radius:0;box-shadow:inset 0 0 0 8px #3d5a6e}.window-glow{background:linear-gradient(135deg,#0000 0 36%,#6ec8d8 36% 46%,#0000 46%),#2a4a5e}.window-blind{background:#0a1723;height:8px;box-shadow:0 8px #03080d73}.door-plaque{background:repeating-linear-gradient(0deg,#efe3b0 0 4px,#e0d29a 4px 8px);border:8px solid #5a3a28;transform:translate(-50%);box-shadow:8px 8px #2a1a1473}.door-plaque strong{font-family:var(--mono);letter-spacing:-.1em;font-size:clamp(1.2rem,4vw,1.8rem)}.door-handle{background:#c7c4a8;border-radius:0;width:20px;height:56px;box-shadow:-8px 0 #1a2530,inset -8px 0 #6c7875}.enter-button,.sound-button,.directory-toggle,.panel-card,.project-directory,.directory-grid button,.directory-heading button,.directory-resources button,.stack-list li,.launch-link,.paper-link,.resume-open,.resume-download,.resume-back,.contact-links a,.contact-unavailable,.dialtone,.project-preview{border-radius:0}.enter-button{border:4px solid #99d8cc;box-shadow:8px 8px #07111b}.enter-button:hover{transform:translate(-50%)translate(-4px,-4px);box-shadow:12px 12px #07111b}.classroom-art{image-rendering:pixelated;filter:brightness(.7)saturate(.92)}.monitor-loop,.pixel-light-pool{animation-timing-function:steps(2,jump-none)}.crt-aura{filter:blur(12px)brightness(2.2)}.crt-screen-glow{filter:brightness(2.45)saturate(1.35)drop-shadow(0 0 7px #b5f4e1d9)}.monitor-loop{filter:brightness(1.85)saturate(1.2)}.room-shell{background:#4a2c18}.room-hotspot{image-rendering:pixelated}.hotspot-pulse{background:#396067;border:4px solid #d8d7b1;border-radius:0;width:24px;height:24px;animation:1.8s steps(2,jump-none) infinite pixelHotspot;transform:rotate(45deg);box-shadow:0 0 0 4px #3e5b57cc,8px 8px #03090f73}.hotspot-pulse:before,.hotspot-pulse:after{width:8px;height:2px}.room-hotspot:hover .hotspot-pulse,.room-hotspot:focus-visible .hotspot-pulse{background:#d49b52;border-color:#f4e2a8;box-shadow:0 0 0 4px #694f37,8px 8px #03090f8c}.hotspot-label{border:4px solid #66897f;padding:8px 10px;box-shadow:6px 6px #03090f8c}.hotspot-floppy .hotspot-pulse{border:4px solid #d9a05d;width:18px;height:18px;box-shadow:0 0 0 4px #62462e,6px 6px #03090f80}.panel-card,.project-directory{border:4px solid #886348;box-shadow:12px 12px #02070d}.panel-topline{background:#243b42;border-bottom:4px solid #886348}.overlay-close{border:4px solid #617986;border-radius:0;box-shadow:6px 6px #02070d}.status-light,.legend-dot,.sound-bars i{border-radius:0}.lab-header{background:#3d2818;border-bottom:4px solid #8a5a34}.room-legend{background:#3d2818;border-top:4px solid #8a5a34}.project-directory{color:#efe3b0;background:#3d2818}.directory-grid button,.contact-links a,.contact-unavailable,.skills-grid>li{background:#4a3220;border-color:#8a5a34}.skills-grid>li:hover,.skills-grid>li:focus-within,.skills-grid>li.is-open{background:#5a3d28;border-color:#d9a05d;box-shadow:6px 6px #03090f8c}.skill-float{background:#3d2818;border-color:#d9a05d;box-shadow:10px 12px #03090f8c,0 18px 40px #00000059}.skill-float-topline button{background:#2a1a14;border-color:#8a5a34}.skill-examples li{border-top-color:#8a5a34}.skill-examples li:before{background:#d9a05d}.panel-card{background:#3d2818}.lab-app{background:#2a1a14}@keyframes pixelHotspot{50%{outline-offset:4px;outline:4px solid #84dacb38}}@keyframes roomFlicker{0%,94%,to{opacity:1}95%{opacity:.55}96%{opacity:.9}}@keyframes soundBars{to{height:25%}}@keyframes statusBlink{0%,88%{opacity:1}89%,94%{opacity:.25}}@keyframes monitorFloat{50%{opacity:.9;transform:translateY(-2px)}}@keyframes crtFlicker{0%,96%,to{opacity:1}97%{opacity:.62}}@keyframes smcmcGeoSpin{to{transform:rotate(360deg)}}@keyframes smcmcGeoPulse{0%,to{opacity:.7;transform:scale(1)}50%{opacity:1;transform:scale(1.18)}}@keyframes smcmcPreviewDrift{0%,to{transform:translate(0, 0) rotate(var(--smcmc-rot,0deg))}50%{transform:translate(10px, -14px) rotate(var(--smcmc-rot,0deg))}}@keyframes cursorSelect{0%,42%{transform:translateY(0)}50%,92%{transform:translateY(12px)}}@keyframes svgGlitch{0%,87%,to{transform:translate(0)}88%{transform:translate(7px,-3px)}90%{transform:translate(-4px,2px)}}@keyframes overlayIn{0%{opacity:0}}@keyframes panelIn{0%{opacity:0;transform:translateY(24px)scale(.98)}}@keyframes cloudMove{0%{transform:translate(-40px)}to{transform:translate(620px)}}@keyframes windowDrift{50%{transform:translate(4px,-5px)}}@keyframes titlePulse{50%{opacity:.76;text-shadow:0 0 28px #6bf29ba6}}@keyframes menuCursor{0%,45%{transform:translateY(0)}50%,95%{transform:translateY(31px)}}@keyframes matrixScroll{to{transform:translateY(20%)}}@keyframes ledSequence{0%,20%{background:#68e4ae;box-shadow:0 0 8px #68e4ae}21%,to{box-shadow:none;background:#21372c}}@keyframes wave{to{opacity:.45;transform:scaleY(.25)}}@media (width<=900px){.room-status{display:none}.project-panel-grid{grid-template-columns:1fr}.project-preview{min-height:390px}.project-copy{padding:25px 32px 40px}.room-viewport{place-items:unset;display:block;overflow:auto hidden}.room-canvas{aspect-ratio:auto;width:1120px;min-width:1120px;max-width:none;height:100%;max-height:none}.pan-hint{z-index:12;color:#87a6ab;font:700 .5rem/1 var(--mono);letter-spacing:.1em;pointer-events:none;background:#050e14cc;padding:7px 9px;display:block;position:absolute;top:78px;right:15px}}@media (width<=640px){.lab-header{min-height:58px;padding:0 12px}.lab-brand small{display:none}.lab-brand strong{font-size:.85rem}.header-actions{gap:6px}.header-actions .sound-button{justify-content:center;width:37px;height:34px;padding:0;font-size:0}.mobile-menu-open .header-actions>.sound-button,.directory-toggle,.project-directory,.desktop-skip-link{display:none}.mobile-skip-link{display:block}.mobile-menu-toggle{color:#e0b276;font:700 .55rem/1 var(--mono);letter-spacing:.1em;background:#17140f;border:1px solid #a27743;padding:10px 11px;display:block}.room-shell{min-height:0}.room-canvas{width:1040px;min-width:1040px;height:100%}.room-legend{gap:12px;padding:0 10px;font-size:.45rem}.room-legend span:nth-child(2),.clock-readout{display:none}.mobile-lab-menu{z-index:40;isolation:isolate;color:#efe3b0;opacity:0;visibility:hidden;pointer-events:none;background:#121a1c;transition:opacity .18s,transform .18s,visibility 0s linear .18s;display:block;position:fixed;inset:58px 0 0;overflow:hidden auto;transform:translateY(-12px)}.mobile-lab-menu.is-open{opacity:1;visibility:visible;pointer-events:auto;transition-delay:0s;transform:translateY(0)}.mobile-menu-background{z-index:-2;pointer-events:none;position:fixed;inset:58px 0 0;overflow:hidden}.mobile-menu-background:after{content:"";background:linear-gradient(#03080cb3,#03080ce6),#070d116b;position:absolute;inset:0}.mobile-menu-background .classroom-art{filter:brightness(.48)saturate(.65);width:auto;min-width:1040px;height:100%;transform:translate(-31%)}.mobile-menu-background *,.mobile-menu-background :before,.mobile-menu-background :after{animation:none!important}.mobile-menu-content{width:min(100%,520px);min-height:100%;margin:0 auto;padding:clamp(28px,6svh,56px) 18px 38px}.mobile-menu-content h1{color:#f1e7bf;letter-spacing:-.08em;max-width:9ch;margin:0;font-size:clamp(2.6rem,13vw,4.2rem);line-height:.88}.mobile-menu-intro{color:#aebcb4;max-width:36ch;margin:18px 0 26px;font-size:.82rem;line-height:1.55}.mobile-projects,.mobile-resources{gap:10px;display:grid}.mobile-projects button{color:#ece4c2;text-align:left;background:#302319eb;border:4px solid #75583f;grid-template-columns:68px 1fr 24px;gap:4px 12px;min-height:88px;padding:16px;display:grid;position:relative;box-shadow:7px 7px #010508b8}.mobile-projects button span{color:#d7a761;font:700 .55rem/1.4 var(--mono);letter-spacing:.08em;grid-row:span 2}.mobile-projects button strong{align-self:end;font-size:1.05rem;line-height:1.1}.mobile-projects button small{color:#9dacaa;text-overflow:ellipsis;white-space:nowrap;font-size:.68rem;line-height:1.3;overflow:hidden}.mobile-projects button i{color:#8bd0c0;font:normal 700 .8rem/1 var(--mono);grid-area:1/3/span 2;align-self:center}.mobile-resources{border-top:2px dashed #aa8b5b80;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:24px;padding-top:22px}.mobile-resources button{color:#d3ddd4;min-height:48px;font:700 .58rem/1 var(--mono);letter-spacing:.08em;text-align:left;background:#081419e6;border:2px solid #687b73;padding:12px 10px}.mobile-resources button span{color:#d4a25e;margin-right:8px}.mobile-resources .sound-button{justify-content:flex-start;width:100%}.mobile-projects button:hover,.mobile-projects button:focus-visible,.mobile-resources button:hover,.mobile-resources button:focus-visible{color:#fff4cf;background:#453323fa;border-color:#b79a68}.explore-classroom{color:#08161a;width:100%;font:800 .7rem/1 var(--mono);letter-spacing:.1em;background:#b9eadc;border:4px solid #9bd6c8;justify-content:space-between;align-items:center;gap:18px;margin-top:28px;padding:18px;display:flex;box-shadow:8px 8px #010508cc}.explore-classroom:hover,.explore-classroom:focus-visible{color:#fff1c6;background:#785637;border-color:#e2b778}.panel-overlay{align-items:end;padding:11px}.overlay-close{top:8px;right:8px}.panel-card{width:100%;max-height:88svh}.project-preview{border-width:7px;border-radius:21px;min-height:320px;margin:12px}.project-copy{padding:22px}.project-copy h2,.info-inner h2{font-size:2.6rem}.info-inner{padding:34px 22px}.skills-grid{grid-template-columns:1fr}.contact-links a,.contact-unavailable{flex-direction:column}.lab-footer{flex-direction:column;align-items:start;padding:20px}.door-caption{font-size:.5rem}.door-screen>.sound-button{top:14px;right:14px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
