@font-face{font-family:ES Klarheit Grotesk Pan;src:local("ES Klarheit Grotesk Pan TRIAL Regular"),local("ESKlarheitGroteskPanTRIAL-Regular");font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:ES Klarheit Grotesk Pan;src:local("ES Klarheit Grotesk Pan TRIAL Medium"),local("ESKlarheitGroteskPanTRIAL-Medium");font-style:normal;font-weight:500;font-display:swap}@font-face{font-family:ES Klarheit Grotesk Pan;src:local("ES Klarheit Grotesk Pan TRIAL Semibold"),local("ESKlarheitGroteskPanTRIAL-Semibold");font-style:normal;font-weight:600;font-display:swap}@font-face{font-family:ES Klarheit Kurrent Mono;src:local("ES Klarheit Kurrent Mono TRIAL Regular"),local("ESKlarheitKurrentMono-Rg-TRIAL");font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:Space Mono;src:url(/assets/fonts/space-mono/space-mono-regular.ttf) format("truetype");font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:ES Klarheit Kurrent Mono;src:local("ES Klarheit Kurrent Mono TRIAL Medium"),local("ESKlarheitKurrentMono-Md-TRIAL");font-style:normal;font-weight:500;font-display:swap}:root{color:#f5f2ea;background:#030303;font-family:ES Klarheit Grotesk Pan,Helvetica Neue,Arial,sans-serif;font-synthesis:none;text-rendering:geometricPrecision;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html,body,#root{width:100%;height:100%;margin:0;overflow:hidden}body{background:#030303}button,a{font:inherit}.app-shell{position:relative;width:100%;height:100%;min-height:100vh;overflow:hidden;background:#030303}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.landing-chrome{position:fixed;inset:0;z-index:10;color:#f7f7f5;pointer-events:none}.landing-chrome.has-modal-open{z-index:100}.landing-intro{position:absolute;z-index:11;pointer-events:auto;top:clamp(28px,4.2vh,66px);left:clamp(26px,3.2vw,68px);width:min(52vw,980px);font-weight:400;letter-spacing:-.025em;line-height:1.08}.landing-intro p,.landing-intro h1{margin:0;font:inherit}.landing-intro h1{font-size:clamp(34px,3vw,64px)}.landing-intro .landing-greeting{color:#f7f7f56b;font-family:Space Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;width:min(43vw,690px);min-height:2.14em;font-size:clamp(24px,1.85vw,42px);font-weight:400;letter-spacing:.005em;line-height:1.07;overflow-wrap:normal;text-wrap:balance}.landing-greeting span{display:inline-block;min-width:.1em}.landing-greeting-caret{display:inline-block;width:.065em;height:.84em;margin-left:.055em;background:currentColor;vertical-align:-.02em;animation:landing-greeting-caret .76s steps(1,end) infinite}@keyframes landing-greeting-caret{0%,46%{opacity:1}47%,to{opacity:0}}.landing-intro h1{margin-top:clamp(34px,5.4vh,70px);font-weight:400}.landing-intro h1 span{display:inline-block;font-size:.86em;transform:translateY(-.02em)}.landing-name{appearance:none;position:relative;border:0;padding:0;background:transparent;color:inherit;cursor:pointer;font:inherit;text-decoration:none;transition:color .15s ease}.landing-name:hover,.landing-name:focus-visible{outline:0;text-decoration:underline;text-decoration-thickness:.055em;text-underline-offset:.12em}.room-pet{position:fixed;z-index:48;width:82px;height:89px;pointer-events:none;user-select:none;touch-action:none;filter:drop-shadow(0 5px 7px rgba(0,0,0,.28))}.room-pet-sprite{appearance:none;display:block;width:82px;height:89px;border:0;padding:0;background-color:transparent;background-repeat:no-repeat;background-size:800% 1100%;cursor:grab;image-rendering:auto;pointer-events:auto;touch-action:none}.room-pet.is-dragging .room-pet-sprite{cursor:grabbing}.room-pet-sprite:focus-visible{border-radius:18px;outline:2px solid #f7f7f5;outline-offset:3px}.room-pet-message{position:absolute;left:50%;bottom:calc(100% + 6px);width:max-content;max-width:min(180px,calc(100vw - 16px));border:1px solid rgba(3,3,3,.78);border-radius:12px 12px 12px 3px;padding:6px 9px 7px;background:#f8f8f5f5;color:#080808;box-shadow:0 4px 18px #0003;font-size:13px;line-height:1.25;overflow-wrap:anywhere;text-align:center;transform:translate(-50%);white-space:normal}.room-pet-message.align-left{left:0;transform:none}.room-pet-message.align-right{right:0;left:auto;transform:none}.landing-bio{margin-top:clamp(52px,6vh,82px)!important;font-size:clamp(34px,2.8vw,58px)!important;line-height:1.13!important}.landing-bio-nowrap{white-space:nowrap}.landing-contact{position:fixed;left:clamp(18px,3.2vw,68px);bottom:clamp(126px,15vh,170px);z-index:29;display:grid;justify-items:start;gap:clamp(7px,1vh,12px);pointer-events:auto}.landing-chat-trigger{appearance:none;border:0;padding:0;background:transparent;color:#f7f7f5;cursor:pointer;font:inherit;font-size:clamp(27px,2.45vw,48px);letter-spacing:-.035em;line-height:1;text-align:left;transition:color .18s ease}.landing-chat-trigger:hover,.landing-chat-trigger:focus-visible{color:#fff;outline:0;text-decoration:underline;text-decoration-thickness:.055em;text-underline-offset:.12em}.landing-email{display:flex;align-items:center;gap:7px;margin:0!important;color:#f7f7f545;font-size:clamp(16px,1.35vw,26px)!important;line-height:1.2!important;white-space:nowrap}.landing-email a{width:fit-content;color:inherit;text-decoration:none;pointer-events:auto}.landing-home-glyph{display:block;width:28px;height:28px;overflow:visible}.landing-email a:hover,.landing-email a:focus-visible{text-decoration:underline;text-decoration-thickness:.055em;text-underline-offset:.12em;outline:0}.scheduler-overlay{position:fixed;inset:0;z-index:60;display:grid;padding:clamp(18px,4vw,64px);place-items:center;background:#000000c2;color:#f7f7f5;pointer-events:auto;backdrop-filter:blur(14px);animation:scheduler-overlay-in .24s ease both}.scheduler-panel{display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;width:min(1080px,100%);max-height:min(820px,calc(100vh - clamp(36px,8vw,128px)));overflow:hidden;border:1px solid rgba(255,255,255,.28);background:#050505;box-shadow:0 24px 90px #0000009e;animation:scheduler-panel-in .32s cubic-bezier(.22,1,.36,1) both}.scheduler-header{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:28px;padding:clamp(24px,3vw,42px);border-bottom:1px solid rgba(255,255,255,.18)}.scheduler-header h2,.scheduler-header p,.scheduler-day h3{margin:0}.scheduler-header h2{margin-top:8px;font-size:clamp(36px,4.2vw,72px);font-weight:400;letter-spacing:-.045em;line-height:.95}.scheduler-header #scheduler-description{max-width:720px;margin-top:16px;color:#f7f7f594;font-size:clamp(14px,1.25vw,19px);line-height:1.35}.scheduler-kicker{color:#f7f7f566;font-size:12px;letter-spacing:.13em;text-transform:uppercase}.scheduler-close{display:grid;width:46px;height:46px;border:1px solid rgba(255,255,255,.3);padding:0;place-items:center;background:transparent;color:inherit;cursor:pointer}.scheduler-close svg{width:23px;height:23px}.scheduler-close:hover,.scheduler-close:focus-visible{background:#f7f7f5;color:#050505;outline:0}.scheduler-duration{display:flex;gap:8px;padding:18px clamp(24px,3vw,42px);border-bottom:1px solid rgba(255,255,255,.18)}.scheduler-duration button,.scheduler-slots button{appearance:none;border:1px solid rgba(255,255,255,.28);background:transparent;color:inherit;cursor:pointer;font:inherit}.scheduler-duration button{min-width:92px;padding:10px 15px;font-size:15px}.scheduler-duration button:hover,.scheduler-duration button:focus-visible,.scheduler-duration button.is-active{background:#f7f7f5;color:#050505;outline:0}.scheduler-days{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-content:start;overflow-y:auto;scrollbar-color:rgba(255,255,255,.38) transparent}.scheduler-day{min-width:0;padding:clamp(18px,2.2vw,30px);border-right:1px solid rgba(255,255,255,.14);border-bottom:1px solid rgba(255,255,255,.14)}.scheduler-day:nth-child(3n){border-right:0}.scheduler-day h3{color:#f7f7f58f;font-size:15px;font-weight:400;letter-spacing:.04em}.scheduler-slots{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.scheduler-slots button{padding:9px 11px;font-size:14px}.scheduler-slots button:hover,.scheduler-slots button:focus-visible{border-color:#fff;background:#fff;color:#050505;outline:0}.scheduler-footer{display:flex;justify-content:space-between;gap:24px;padding:16px clamp(24px,3vw,42px);border-top:1px solid rgba(255,255,255,.18);color:#f7f7f566;font-size:12px;letter-spacing:.04em}@keyframes scheduler-overlay-in{0%{opacity:0}}@keyframes scheduler-panel-in{0%{opacity:0;transform:translateY(18px) scale(.985)}}.landing-nav{position:absolute;z-index:1101;top:clamp(24px,4vh,58px);right:clamp(26px,3.2vw,68px);display:flex;align-items:center;gap:clamp(14px,2.3vw,48px);pointer-events:auto}.landing-nav button,.landing-projects{appearance:none;border:0;background:transparent;color:inherit;cursor:pointer}.landing-nav button{min-height:42px;padding:7px 13px 9px;border-radius:999px;font-size:clamp(17px,1.35vw,28px);line-height:1;transition:background-color .24s ease,color .24s ease,transform .24s ease}.landing-nav button:hover,.landing-nav button:focus-visible,.landing-nav button.is-active{background:#ececec;color:#080808;outline:0}.landing-nav button:hover,.landing-nav button:focus-visible{transform:translateY(-2px)}.landing-home{display:inline-grid;width:42px;min-width:42px;padding:7px!important;place-items:center;border-radius:0!important;transition:color .18s ease!important}.landing-nav button.landing-home:hover,.landing-nav button.landing-home:focus-visible,.landing-nav button.landing-home.is-active{background:transparent!important;color:inherit!important;transform:none!important;outline:0}.landing-home-glyph{fill:transparent;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.9}.landing-home-body{transition:fill .18s ease}.landing-home:hover .landing-home-body,.landing-home:focus-visible .landing-home-body,.landing-home.is-active .landing-home-body{fill:#fff}.floating-window-overlay{position:fixed;inset:0;display:grid;padding:56px 24px 72px;place-items:center;background:transparent;pointer-events:none}.floating-window-frame{position:relative;pointer-events:auto;border:1px solid rgba(255,255,255,.2);border-radius:18px;background:#151516e0;box-shadow:0 28px 68px #0000008f,0 0 0 1px #0000005c;overflow:hidden;transform:translate(var(--floating-window-x, 0),var(--floating-window-y, 0));animation:profile-video-in .36s cubic-bezier(.22,1,.36,1) both}.floating-window-titlebar{position:relative;display:grid;height:38px;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 14px;border-bottom:1px solid rgba(255,255,255,.14);background:linear-gradient(180deg,#f8f8f838,#52525629);cursor:grab;user-select:none}.floating-window-titlebar:active{cursor:grabbing}.floating-window-titlebar:has(.floating-window-control.is-close:focus-visible){box-shadow:inset 0 0 0 2px #ffffff8f}.floating-window-controls{display:flex;align-items:center;gap:8px}.floating-window-control{display:block;width:13px;height:13px;padding:0;border:0;border-radius:999px;box-shadow:inset 0 0 0 1px #0000003d}.floating-window-control.is-close{appearance:none;background:#ff5f57;cursor:pointer}.floating-window-control.is-minimize{background:#ffbd2e}.floating-window-control.is-zoom{background:#28c840}.floating-window-control.is-close:hover{filter:brightness(1.13);outline:0}.floating-window-control.is-close:focus-visible{outline:0}.floating-window-title{justify-self:center;color:#f7f7f594;font-family:Space Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:12px;line-height:1;white-space:nowrap}.profile-video-frame{width:min(42vw,440px,calc((100vh - 154px)*.5625))}.profile-video-body{position:relative;width:100%;aspect-ratio:9 / 16;background:#050505;overflow:hidden}.profile-video{display:block;width:100%;height:100%;object-fit:cover}.profile-video-play{appearance:none;border:1px solid rgba(255,255,255,.72);background:#050505b8;color:#fff;cursor:pointer;font:inherit;backdrop-filter:blur(8px)}.profile-video-play{position:absolute;top:50%;left:50%;min-height:44px;padding:10px 16px 12px;font-size:15px;transform:translate(-50%,-50%);white-space:nowrap}.profile-video-play:hover,.profile-video-play:focus-visible{background:#fff;color:#050505;outline:0}.readme-window-frame{width:min(760px,calc(100vw - 48px))}.readme-window-body{height:min(64vh,560px);padding:clamp(26px,4vw,54px);overflow-y:auto;background:#f2f0e9;color:#181818;font-family:Space Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:clamp(13px,1vw,16px);line-height:1.62;scrollbar-color:rgba(10,10,10,.38) transparent}.readme-window-body h3,.readme-window-body h4,.readme-window-body p,.readme-window-body ul{margin:0}.readme-window-body h3{max-width:34ch;margin-top:14px;font-size:clamp(20px,2.2vw,34px);font-weight:400;letter-spacing:-.035em;line-height:1.16}.readme-window-body h3+p{margin-top:24px}.readme-window-body h4{margin-top:30px;color:#575757;font-size:.8em;font-weight:400;letter-spacing:.13em;text-transform:uppercase}.readme-window-body h4+p,.readme-window-body h4+ul{margin-top:9px}.readme-window-body ul{padding-left:1.3em}.readme-kicker{color:#6b6b6b;font-size:.76em;letter-spacing:.1em}.globe-window-frame{width:min(68vw,640px,calc(100vh - 130px))}.globe-window-body,.globe-loading{position:relative;width:100%;aspect-ratio:1;overflow:hidden;background:radial-gradient(circle at 50% 42%,#14263b 0,#07101c 46%,#02050a)}.globe-loading{display:grid;place-items:center;color:#ffffff8f;font-family:Space Mono,ui-monospace,monospace;font-size:12px}.globe-interaction,.globe-canvas{position:absolute!important;inset:0;width:100%!important;height:100%!important}.globe-interaction{cursor:grab;outline:0;touch-action:none}.globe-interaction:active{cursor:grabbing}.globe-interaction:focus-visible{box-shadow:inset 0 0 0 2px #80beffb8}.globe-pin-label{display:block;border:1px solid rgba(255,255,255,.36);border-radius:999px;padding:3px 6px 4px;background:#03070cc2;color:#fff;box-shadow:0 4px 14px #00000059;font-family:Space Mono,ui-monospace,monospace;font-size:9px;line-height:1;white-space:nowrap;backdrop-filter:blur(5px)}.globe-instructions,.globe-credit{position:absolute;z-index:4;bottom:14px;margin:0;color:#ffffff94;font-family:Space Mono,ui-monospace,monospace;font-size:9px;letter-spacing:.04em;pointer-events:none}.globe-instructions{left:16px}.globe-credit{right:16px;text-align:right}.globe-fallback{position:absolute;inset:0;display:grid;align-content:center;justify-items:center;gap:16px;color:#ffffff9e;font-family:Space Mono,ui-monospace,monospace;font-size:11px}.globe-fallback-earth{width:68%;aspect-ratio:1;border-radius:50%;background-image:url(/assets/globe/nasa-blue-marble-august-2004-r01.webp);background-position:28% 50%;background-size:auto 100%;box-shadow:inset -32px -16px 54px #000000b8,0 0 54px #4184cd38}.globe-fallback p{margin:0}@keyframes profile-video-in{0%{opacity:0}}.landing-projects{position:absolute;z-index:11;top:38vh;right:clamp(24px,4.2vw,90px);width:min(20vw,420px);padding:0;text-align:center;pointer-events:auto}.project-list{display:grid;gap:9px;margin-top:clamp(34px,5vh,68px);text-align:left;font-size:clamp(28px,3vw,62px);font-weight:400;letter-spacing:-.08em;line-height:.94}.project-list button{appearance:none;border:0;background:transparent;color:inherit;cursor:pointer;font:inherit;font-size:inherit;letter-spacing:inherit;line-height:inherit;padding:5px 0 8px;text-align:left}.project-list button:hover,.project-list button:focus-visible{color:#f7f7f56b;outline:0}.landing-projects-title{display:block;font-size:clamp(36px,3.2vw,68px);letter-spacing:-.035em;line-height:1}.project-pattern{display:grid;justify-items:center;gap:0;margin-top:clamp(44px,7vh,94px);font-size:clamp(28px,3vw,62px);font-weight:400;letter-spacing:-.08em;line-height:.94}.landing-projects:hover .landing-projects-title,.landing-projects:focus-visible .landing-projects-title{text-decoration:underline;text-decoration-thickness:.055em;text-underline-offset:.12em}.landing-projects:focus-visible{outline:0}.landing-welcome{position:absolute;z-index:11;top:26.5vh;right:clamp(28px,3.1vw,66px);width:min(24vw,470px);color:#f7f7f5;font-size:clamp(35px,2.8vw,58px);font-weight:400;letter-spacing:-.035em;line-height:1.01;text-align:right;pointer-events:auto}.landing-welcome p{margin:0}.landing-welcome p+p{margin-top:clamp(60px,9vh,128px)}.landing-welcome-trigger{appearance:none;border:0;padding:0;background:transparent;color:inherit;cursor:pointer;font:inherit;text-align:inherit}.landing-welcome-trigger:hover,.landing-welcome-trigger:focus-visible{outline:0;text-decoration:underline;text-decoration-thickness:.055em;text-underline-offset:.12em}.landing-signoff{position:absolute;right:clamp(28px,3.1vw,66px);bottom:clamp(20px,4.6vh,58px);z-index:12;display:grid;justify-items:end;gap:clamp(15px,2.6vh,30px);width:min(31vw,560px)}.landing-signoff>p{margin:0;color:#f7f7f545;font-size:clamp(17px,1.45vw,30px);letter-spacing:-.035em;line-height:1;text-align:right}.landing-signoff>p span{white-space:nowrap}.signature-ink{position:relative;display:block;width:min(100%,440px);aspect-ratio:956 / 288;background:transparent;overflow:visible;isolation:isolate;pointer-events:auto;cursor:crosshair;touch-action:none}.signature-ink:after{position:absolute;inset:0;z-index:3;background:linear-gradient(92deg,#fff,#7bffdf 18%,#ff5df7 38%,#ffed5c 56%,#69a7ff 76%,#fff);background-size:240% 100%;content:"";opacity:0;pointer-events:none;transition:opacity .1s ease;-webkit-mask:url(/assets/branding/davidlafond-signature-white-r01.png) center / contain no-repeat;mask:url(/assets/branding/davidlafond-signature-white-r01.png) center / contain no-repeat}.signature-ink:hover:after{opacity:.92;animation:signature-psychedelia .9s linear infinite}@keyframes signature-psychedelia{to{background-position:240% 50%}}.signature-ink-fallback,.signature-ink-canvas{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:contain;pointer-events:none;z-index:1}.signature-aura-canvas{position:absolute;inset:calc(-1 * var(--signature-aura-spill, 64px));display:block;width:calc(100% + var(--signature-aura-spill, 64px) + var(--signature-aura-spill, 64px));height:calc(100% + var(--signature-aura-spill, 64px) + var(--signature-aura-spill, 64px));pointer-events:none;z-index:0}.signature-ink-fallback{opacity:1;transition:opacity .18s ease}.signature-ink-fallback.is-hidden{opacity:0}.resume-overlay{position:fixed;inset:0;z-index:1000;background:#000000ad;pointer-events:auto}.resume-document{position:relative;width:100%;height:100%}.resume-stage{position:relative;display:grid;height:100%;place-items:center;padding:7vh 10vw 13vh;perspective:1200px;overflow:hidden}.resume-float{width:min(62vw,calc(58vh * 1.4142),1040px);aspect-ratio:4961 / 3508;animation:resume-float 5.5s ease-in-out infinite;filter:drop-shadow(0 34px 42px rgba(0,0,0,.58));transform-style:preserve-3d}.resume-paper{position:relative;width:100%;height:100%;cursor:grab;background:#f4f2ed;transform:translate3d(var(--paper-pan-x),var(--paper-pan-y),0) rotateX(var(--paper-rotate-x)) rotateY(var(--paper-rotate-y)) scale(var(--paper-zoom));transform-style:preserve-3d;transition:transform .16s ease;touch-action:none;user-select:none}.resume-paper:active{cursor:grabbing}.resume-paper:after{position:absolute;inset:6px -8px -8px 6px;z-index:-1;border:1px solid rgba(25,21,17,.25);background:#c9c3b8;box-shadow:0 32px 64px #0000007a;content:"";pointer-events:none;transform:translateZ(-12px)}.resume-paper>img{display:block;width:100%;height:100%;object-fit:contain}.resume-scroll-cue{position:absolute;top:50%;left:50%;z-index:3;display:grid;justify-items:center;gap:10px;color:#080808;font-size:13px;letter-spacing:.04em;text-transform:uppercase;transform:translate(-50%,-50%);animation:resume-scroll-cue 2.8s ease forwards;pointer-events:none}.resume-scroll-cue-wheel{position:relative;width:31px;height:46px;border:1.5px solid currentColor;border-radius:20px}.resume-scroll-cue-wheel:after{position:absolute;top:8px;left:50%;width:3px;height:9px;border-radius:3px;background:currentColor;content:"";transform:translate(-50%);animation:resume-scroll-wheel 1.1s ease-in-out infinite}.resume-actions{position:absolute;bottom:clamp(22px,4vh,52px);left:50%;display:flex;gap:8px;max-width:calc(100vw - 28px);transform:translate(-50%);z-index:2}.resume-actions a,.resume-actions button{display:inline-flex;align-items:center;gap:7px;min-height:34px;border:1px solid rgba(255,255,255,.42);border-radius:999px;padding:7px 12px;background:#070707db;color:#fff;cursor:pointer;font-size:13px;line-height:1;text-decoration:none;backdrop-filter:blur(12px)}.resume-actions a:hover,.resume-actions a:focus-visible,.resume-actions button:hover,.resume-actions button:focus-visible{background:#f2f2f2;color:#080808;outline:0}.resume-actions svg{width:15px;height:15px}@keyframes resume-float{0%,to{transform:translateZ(0)}50%{transform:translate3d(0,-14px,0)}}@keyframes resume-scroll-wheel{0%{opacity:0;transform:translate(-50%)}35%{opacity:1}to{opacity:0;transform:translate(-50%,16px)}}@keyframes resume-scroll-cue{0%,68%{opacity:0;transform:translate(-50%,-50%) scale(.92)}15%,58%{opacity:1;transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(-50%,-55%) scale(1.03)}}@media(prefers-reduced-motion:reduce){.resume-float{animation:none}.resume-paper{transition:none}.resume-scroll-cue,.resume-scroll-cue-wheel:after{animation:none}}.portfolio-book-overlay{position:fixed;inset:0;z-index:1100;background:#000000b8;pointer-events:auto}.portfolio-book-loading{display:grid;place-items:center;color:#fff;font-size:13px;letter-spacing:.08em;text-transform:uppercase}.portfolio-book-viewer{position:relative;width:100%;height:100%}.portfolio-book-stage{position:absolute;inset:0;overflow:hidden;cursor:grab;perspective:1300px;touch-action:none;user-select:none}.portfolio-book-stage.is-closed{cursor:pointer}.portfolio-book-stage.is-zoomed,.portfolio-book-stage:active{cursor:grabbing}.portfolio-book-canvas{width:100%!important;height:100%!important;filter:drop-shadow(0 32px 38px rgba(0,0,0,.56));touch-action:none}.portfolio-book-open-cue{position:absolute;top:50%;left:50%;z-index:3;border:1px solid rgba(255,255,255,.42);border-radius:999px;padding:8px 12px;background:#070707c7;color:#fff;font-size:12px;letter-spacing:.06em;text-transform:uppercase;transform:translate(-50%,250%);backdrop-filter:blur(10px);pointer-events:none;animation:portfolio-book-cue 1.8s ease-in-out infinite}.portfolio-book-scroll-cue{color:#080808}.portfolio-book-page-status{position:absolute;top:clamp(18px,3vh,34px);left:50%;z-index:4;border:1px solid rgba(255,255,255,.28);border-radius:999px;padding:7px 11px;background:#070707b8;color:#ffffffe6;font-size:12px;letter-spacing:.04em;text-transform:uppercase;transform:translate(-50%);backdrop-filter:blur(10px);pointer-events:none}.portfolio-book-actions{z-index:5;align-items:center}.portfolio-book-actions button:disabled{opacity:.35;cursor:default;pointer-events:none}.portfolio-book-fallback{position:absolute;top:50%;left:50%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:min(82vw,calc(77vh * 1.4142),1260px);aspect-ratio:4960 / 3508;filter:drop-shadow(0 32px 38px rgba(0,0,0,.56));transform:translate(calc(-50% + var(--book-pan-x)),calc(-50% + var(--book-pan-y))) rotateX(var(--book-rotate-x)) rotateY(var(--book-rotate-y)) scale(var(--book-zoom));transform-style:preserve-3d;transform-origin:center}.portfolio-book-fallback.is-single{grid-template-columns:1fr;width:min(42vw,calc(77vh / 1.4142),620px);aspect-ratio:2480 / 3508}.portfolio-book-fallback img{display:block;width:100%;height:100%;object-fit:cover;pointer-events:none}@keyframes portfolio-book-cue{0%,to{opacity:.65;transform:translate(-50%,250%) scale(.98)}50%{opacity:1;transform:translate(-50%,240%) scale(1)}}@media(prefers-reduced-motion:reduce){.portfolio-book-open-cue{animation:none}}.canvas-shell{position:absolute;inset:0;cursor:grab}.canvas-shell:active{cursor:grabbing}.baked-room-stage{position:absolute;inset:0;display:grid;place-items:center;background:#030303;cursor:default;touch-action:auto}.baked-room-stage.is-chill.has-chill-object-hover{cursor:pointer}.render-frame{position:relative;width:min(100vw,177.7778vh);height:min(56.25vw,100vh);overflow:hidden;background:#050505;box-shadow:none}@media(min-width:1101px){.render-frame{width:min(105vw,186.6667vh);height:min(59.0625vw,105vh)}}.render-plate{position:absolute;inset:0}.render-parallax-layer{position:absolute;inset:-16px;will-change:transform}.render-frame img{display:block;width:100%;height:100%;object-fit:cover;user-select:none;pointer-events:none}.axo-object-outline{position:absolute;inset:0;z-index:1;display:block;width:100%;height:100%;pointer-events:none}.chill-object-outline{position:absolute;inset:0;z-index:1;pointer-events:none}.chill-object-outline img{display:block;width:100%;height:100%;object-fit:cover;pointer-events:none}.axo-object-keyboard-controls,.chill-object-keyboard-controls{position:absolute;inset:0;z-index:3;pointer-events:none}.axo-object-keyboard-button,.chill-object-keyboard-button{pointer-events:auto}.axo-keyboard-object-label{position:absolute;left:50%;bottom:clamp(18px,4vh,42px);z-index:4;max-width:min(70vw,360px);padding:5px 8px 6px;overflow:hidden;background:#fff;color:#030303;font-size:12px;font-weight:800;line-height:1;text-overflow:ellipsis;white-space:nowrap;transform:translate(-50%);pointer-events:none}.hotspot-layer{position:absolute;inset:0;z-index:2}.render-hotspot{position:absolute;appearance:none;border:2px solid transparent;padding:0;background:transparent;cursor:pointer;opacity:0;transition:opacity .15s ease}.render-hotspot span{position:absolute;left:0;bottom:calc(100% + 4px);display:none;max-width:180px;padding:3px 5px 4px;overflow:hidden;background:#fff;color:#030303;font-size:11px;font-weight:800;line-height:1;text-overflow:ellipsis;white-space:nowrap}.render-hotspot:hover,.render-hotspot:focus-visible{opacity:1;outline:0}.render-hotspot:hover span,.render-hotspot:focus-visible span{display:block}.render-hotspot:focus-visible{box-shadow:inset 0 0 0 2px #ffffffbf;opacity:1}@media(hover:hover)and (pointer:fine){.baked-room-stage.is-axo.has-axo-object-mask .hotspot-layer,.baked-room-stage.is-chill.has-chill-object-mask .hotspot-layer{pointer-events:none}}.is-debugging-hotspots .render-hotspot{border-color:#00ffffd9;background:repeating-linear-gradient(-45deg,#00ffff24,#00ffff24 7px,#fff3 7px 10px);opacity:1}.is-debugging-hotspots .render-hotspot span{display:block}.zoom-out-button{position:fixed;top:clamp(16px,3vw,34px);right:clamp(16px,3vw,34px);z-index:16;display:inline-flex;align-items:center;gap:8px;min-height:36px;padding:8px 11px;border:1px solid rgba(248,245,238,.84);background:#030303;color:#f8f5ee;cursor:pointer;font-size:13px;font-weight:800;line-height:1;text-transform:lowercase}.zoom-out-button svg{width:15px;height:15px;stroke-width:2.4}.zoom-out-button:hover,.zoom-out-button:focus-visible{background:#f8f5ee;color:#030303;outline:0}.scene-title{position:fixed;top:clamp(18px,4vw,42px);left:clamp(18px,4vw,48px);z-index:5;display:flex;align-items:center;gap:16px;color:#fffdf8;font-size:clamp(28px,6vw,86px);font-weight:500;letter-spacing:0;line-height:.9;text-transform:lowercase;pointer-events:none;mix-blend-mode:difference}.scene-title-icon{width:clamp(34px,6vw,72px);height:clamp(34px,6vw,72px);display:grid;place-items:center}.scene-title svg{width:100%;height:100%;stroke-width:1.7}.welcome-note{position:fixed;left:50%;top:50%;z-index:7;max-width:min(720px,calc(100vw - 40px));padding:14px 18px 16px;border:1px solid #f7f3ea;background:#030303;color:#fffaf0;font-size:clamp(22px,3vw,42px);line-height:1.05;text-align:center;transform:translate(-50%,-50%) scale(.96);opacity:0;pointer-events:none;transition:opacity .7s ease,transform .7s ease}.welcome-note.is-visible{opacity:1;transform:translate(-50%,-50%) scale(1)}.bottom-nav{position:fixed;z-index:12;left:50%;bottom:clamp(18px,4vh,36px);display:grid;grid-template-columns:repeat(4,minmax(58px,82px));gap:clamp(6px,1.4vw,18px);align-items:end;transform:translate(-50%);padding:12px 14px 10px;background:#030303c7;border:1px solid rgba(255,255,255,.16);backdrop-filter:blur(16px)}.nav-button{appearance:none;display:grid;gap:6px;place-items:center;min-width:0;border:0;padding:0;background:transparent;color:#f8f5ee;cursor:pointer;opacity:.72;transition:transform .18s ease,opacity .18s ease}.nav-button:hover,.nav-button:focus-visible,.nav-button.is-active{opacity:1}.nav-button:focus-visible{outline:2px solid #fff;outline-offset:6px}.nav-button-main{transform:translateY(-4px)}.nav-button-main .nav-icon-wrap{width:58px;height:58px}.nav-button-main svg{width:56px;height:56px}.nav-icon-wrap{width:34px;height:34px;display:grid;place-items:center}.nav-icon-wrap svg{width:31px;height:31px}.nav-label{display:block;max-width:100%;overflow:hidden;color:inherit;font-size:15px;line-height:1;text-overflow:ellipsis;white-space:nowrap}.cursor-label{position:fixed;top:0;left:0;z-index:20;display:grid;gap:6px;width:max-content;max-width:min(320px,calc(100vw - 24px));padding:4px 8px 5px;background:#f8f5ee;color:#030303;font-size:16px;font-weight:700;line-height:1;pointer-events:none;box-shadow:0 0 0 1px #030303}.cursor-label>span{white-space:nowrap}.cursor-label small{display:block;max-width:240px;color:#030303b8;font-size:11px;font-weight:800;line-height:1.15;white-space:normal}.sound-toggle{position:fixed;right:clamp(14px,3vw,34px);top:clamp(18px,4vw,42px);z-index:13;display:inline-flex;align-items:center;gap:9px;min-height:38px;max-width:min(260px,calc(100vw - 28px));padding:8px 10px;border:1px solid rgba(255,255,255,.35);background:#030303b8;color:#fffaf0;cursor:pointer;backdrop-filter:blur(14px)}.sound-toggle svg{flex:0 0 auto;width:20px;height:20px}.sound-toggle span{overflow:hidden;font-size:12px;font-weight:700;letter-spacing:.08em;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.music-player{position:fixed;left:clamp(18px,3.2vw,68px);bottom:clamp(18px,3.2vw,46px);z-index:28;width:min(660px,calc(100vw - 36px));padding:8px;overflow:hidden;border:0;border-radius:18px;background:#121d1c47;color:#f8f5ee;box-shadow:0 18px 64px #00000042;isolation:isolate;pointer-events:auto;transition:width .26s cubic-bezier(.22,.7,.25,1),border-radius .26s ease,box-shadow .26s ease}.music-player:before,.music-player:after{position:absolute;inset:-24px;content:"";pointer-events:none}.music-player:before{z-index:0;background-image:var(--music-thumbnail);background-position:center;background-size:cover;filter:blur(28px) saturate(1.24);opacity:.42;transform:scale(1.08)}.music-player:after{z-index:1;background:#090f0e47;backdrop-filter:blur(24px) saturate(1.35)}.music-compact-row,.music-expanded-panel,.music-status,.music-chapters-header,.music-chapter-list{position:relative;z-index:2}.music-player.is-collapsed{width:min(520px,calc(100vw - 36px));border-radius:999px}.music-compact-row{display:flex;min-width:0;align-items:center;gap:10px}.music-thumbnail{position:relative;flex:0 0 54px;width:54px;height:54px;overflow:hidden;border:1px solid rgba(255,255,255,.28);border-radius:50%;padding:0;background:#101918;cursor:pointer}.music-thumbnail span{position:absolute;inset:0;background-image:var(--music-thumbnail);background-position:center;background-size:cover;transition:transform .4s ease}.music-thumbnail:hover span,.music-thumbnail:focus-visible span{transform:scale(1.08)}.music-thumbnail:focus-visible{outline:2px solid #f8f5ee;outline-offset:2px}.music-thumbnail:disabled{cursor:wait;opacity:.66}.music-copy{display:grid;min-width:0;flex:1;gap:1px}.music-copy strong,.music-copy span,.music-copy small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.music-copy strong{font-size:13px;font-weight:500;line-height:1.2}.music-copy span{color:#f8f5eec2;font-size:11px}.music-copy small{color:#f8f5ee7a;font-size:9px;letter-spacing:.025em}.music-volume{display:flex;flex:0 1 108px;min-width:68px;align-items:center;gap:5px;color:#f8f5eeb8}.music-volume svg{flex:0 0 auto;width:14px;height:14px}.music-volume input{width:100%;min-width:0;height:14px;margin:0;appearance:none;background:transparent;cursor:pointer}.music-volume input::-webkit-slider-runnable-track{height:2px;background:linear-gradient(to right,rgba(248,245,238,.92) var(--music-volume),rgba(248,245,238,.24) var(--music-volume))}.music-volume input::-moz-range-track{height:2px;background:#f8f5ee3d}.music-volume input::-moz-range-progress{height:2px;background:#f8f5eeeb}.music-volume input::-webkit-slider-thumb{width:8px;height:8px;margin-top:-3px;appearance:none;border:0;border-radius:50%;background:#f8f5ee}.music-volume input::-moz-range-thumb{width:8px;height:8px;border:0;border-radius:50%;background:#f8f5ee}.music-volume input:focus-visible{outline:1px solid #f8f5ee;outline-offset:3px}.music-actions{display:flex;flex:0 0 auto;align-items:center;gap:1px}.music-actions button,.music-chapters-header button{display:grid;width:30px;height:30px;place-items:center;border:0;border-radius:50%;background:transparent;color:#f8f5ee;cursor:pointer}.music-actions button:hover,.music-actions button:focus-visible,.music-chapters-header button:hover,.music-chapters-header button:focus-visible{background:#ffffff21;outline:0}.music-actions button:disabled,.music-chapters-header button:disabled{cursor:wait;opacity:.36}.music-actions svg,.music-chapters-header svg{width:15px;height:15px}.music-actions .music-primary-action{background:#ffffff1f}.music-expanded-panel{display:grid;grid-template-columns:240px minmax(0,1fr);gap:14px;height:0;margin-top:0;overflow:hidden;visibility:hidden;opacity:1;pointer-events:none;transition:opacity .18s ease,margin-top .22s cubic-bezier(.22,.7,.25,1)}.music-player.is-expanded .music-expanded-panel{height:auto;margin-top:8px;visibility:visible;opacity:1;pointer-events:auto}.youtube-video-shell{position:relative;width:240px;height:200px;overflow:hidden;align-self:center;border-radius:10px;background:#071010;box-shadow:0 5px 22px #00000057}.youtube-video-shell>div:first-child,.youtube-video-frame{display:block;width:240px;height:200px;border:0}.youtube-loading{position:absolute;inset:0;display:grid;place-items:center;padding:20px;color:#f8f5eea3;font-size:10px;font-weight:700;letter-spacing:.08em;text-align:center;text-transform:uppercase}.music-chapters-panel{display:grid;min-width:0;grid-template-rows:auto auto minmax(0,1fr) auto;gap:7px}.music-chapters-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.music-chapters-header>div{display:grid;gap:1px}.music-chapters-header span{font-size:12px;font-weight:500}.music-chapters-header small{color:#f8f5ee80;font-size:9px}.music-progress{display:block;width:100%;height:11px;margin:0;appearance:none;background:transparent;cursor:pointer}.music-progress::-webkit-slider-runnable-track{height:2px;background:linear-gradient(to right,rgba(248,245,238,.86) var(--music-progress),rgba(248,245,238,.2) var(--music-progress))}.music-progress::-moz-range-track{height:2px;background:#f8f5ee33}.music-progress::-moz-range-progress{height:2px;background:#f8f5eedb}.music-progress::-webkit-slider-thumb{width:9px;height:9px;margin-top:-3.5px;appearance:none;border:0;border-radius:50%;background:#f8f5ee}.music-progress::-moz-range-thumb{width:9px;height:9px;border:0;border-radius:50%;background:#f8f5ee}.music-progress:disabled{cursor:wait;opacity:.48}.music-chapter-list{display:grid;min-height:0;overflow:auto;border-top:1px solid rgba(255,255,255,.1);border-bottom:1px solid rgba(255,255,255,.1);scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.35) transparent}.music-chapter-list button{display:grid;grid-template-columns:38px minmax(0,1fr);gap:8px;align-items:start;border:0;border-bottom:1px solid rgba(255,255,255,.07);padding:5px 7px;background:transparent;color:#f8f5eea8;cursor:pointer;text-align:left}.music-chapter-list button:last-child{border-bottom:0}.music-chapter-list button:hover,.music-chapter-list button:focus-visible,.music-chapter-list button.is-active{background:#ffffff17;color:#f8f5ee;outline:0}.music-chapter-list time{padding-top:1px;font-size:9px;font-variant-numeric:tabular-nums}.music-chapter-list button>span{display:grid;min-width:0;gap:1px}.music-chapter-list strong,.music-chapter-list small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.music-chapter-list strong{font-size:10px;font-weight:500}.music-chapter-list small{color:#f8f5ee7a;font-size:8px}.music-status{display:flex;min-height:18px;align-items:center;justify-content:space-between;gap:8px;color:#f8f5ee94;font-size:8px;line-height:1.2}.music-status.is-error{color:#ffd6c8}.music-status a{display:inline-flex;flex:0 0 auto;align-items:center;gap:4px;color:#fffaf0;font-weight:700;text-underline-offset:2px}.music-status svg{width:10px;height:10px}.music-player.is-expanded{width:min(520px,calc(100vw - 36px));border-radius:24px}.music-player.is-expanded .music-expanded-panel{display:block;max-height:min(46vh,430px);overflow:hidden}.music-expanded-panel{max-height:0;transition:max-height .22s cubic-bezier(.22,.7,.25,1),opacity .18s ease,margin-top .22s cubic-bezier(.22,.7,.25,1)}.music-player.is-expanded .music-expanded-panel{max-height:min(46vh,430px)}.music-player.is-expanded .music-chapters-panel{gap:8px}.music-player.is-expanded .music-chapter-list{max-height:min(30vh,270px)}.music-player audio{display:none}.music-player.is-expanded .music-expanded-panel{transition:opacity .18s ease,margin-top .22s cubic-bezier(.22,.7,.25,1)}.info-overlay{position:fixed;inset:0;z-index:30;display:grid;grid-template-columns:minmax(240px,.9fr) minmax(360px,1fr);place-content:center;gap:0;padding:clamp(18px,4vw,56px);background:#03030359;backdrop-filter:blur(16px)}.focus-stage{width:min(42vw,440px);height:min(58vh,520px);min-width:240px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.28);border-right:0;background:#0000006b;cursor:grab;perspective:900px;box-shadow:0 28px 90px #00000085}.focus-stage.is-dragging{cursor:grabbing}.focus-object{position:relative;width:min(28vw,300px);aspect-ratio:1 / 1;transform-style:preserve-3d;transition:transform .62s cubic-bezier(.2,.9,.15,1)}.focus-stage.is-dragging .focus-object{transition:none}.focus-object span{position:absolute;inset:18%;border:2px solid #f8f5ee;background:#111;transform-style:preserve-3d}.focus-object span:nth-child(1){transform:translateZ(58px)}.focus-object span:nth-child(2){inset:28% 12%;background:#d96a3a;transform:rotateY(70deg) translateZ(70px)}.focus-object span:nth-child(3){inset:12% 32%;background:#f5ead8;transform:rotateX(70deg) translateZ(70px)}.focus-object-stm_map span:nth-child(1),.focus-object-mit_flag span:nth-child(1),.focus-object-mcgill_flag span:nth-child(1){background:#f8f5ee}.focus-object-mit_flag span:nth-child(2),.focus-object-mcgill_flag span:nth-child(2){background:#c92230}.focus-object-ps2 span:nth-child(1),.focus-object-nintendo_pokemon span:nth-child(1){background:#050505}.focus-object-acoustic_guitar span,.focus-object-electric_fender_guitar_amp span{border-radius:50%}.info-card{position:relative;width:min(46vw,520px);max-height:min(72vh,620px);min-width:360px;display:flex;flex-direction:column;justify-content:center;gap:16px;overflow:auto;padding:clamp(28px,4vw,48px);border:1px solid rgba(255,255,255,.28);background:#0c0c0c94;color:#f8f5ee;box-shadow:0 28px 90px #00000085;backdrop-filter:blur(22px) saturate(1.16)}.close-button{position:absolute;top:18px;right:18px;display:inline-flex;align-items:center;gap:8px;width:fit-content;border:0;padding:0;background:transparent;color:#f8f5eec2;cursor:pointer;font-weight:800}.close-button svg{width:18px;height:18px}.info-card h1{margin:0;color:#fff;font-size:clamp(34px,4vw,58px);line-height:.95;letter-spacing:0}.info-card h2{margin:8px 0 0;font-size:15px;letter-spacing:.1em;text-transform:uppercase}.info-card p{max-width:620px;margin:0;color:#f8f5eedb;font-size:clamp(17px,1.3vw,21px);line-height:1.28}.info-meta{display:grid;margin:0;border-top:1px solid rgba(255,255,255,.22)}.info-meta div{display:grid;grid-template-columns:120px minmax(0,1fr);gap:20px;padding:8px 0;border-bottom:1px solid rgba(255,255,255,.18)}.info-meta dt{color:#f8f5ee8a;font-weight:800}.info-meta dd{min-width:0;margin:0;color:#f8f5eedb;font-weight:800}.info-card ul{display:grid;gap:8px;margin:0;padding-left:19px;color:#f8f5eed6}.info-links{display:flex;flex-wrap:wrap;gap:10px}.info-links a,.pending-link{display:inline-flex;align-items:center;gap:8px;min-height:36px;padding:8px 10px;border:1px solid rgba(255,255,255,.28);color:#fff;text-decoration:none}.info-links svg{width:16px;height:16px}.info-links .is-disabled,.pending-link{color:#f8f5ee7a;pointer-events:none}.whiteboard-canvas{position:fixed;z-index:14;left:28%;top:5%;width:42vw;height:50vh;cursor:crosshair;transform:rotate(-.5deg);touch-action:none}.whiteboard-canvas.is-erasing{cursor:cell}@media(max-width:1100px){.landing-intro{width:min(36vw,440px)}.landing-projects{right:2.5vw;width:22vw}.landing-nav{gap:10px}.landing-welcome{width:min(26vw,360px);font-size:clamp(28px,3vw,42px)}.landing-signoff{width:min(30vw,390px)}}.music-player,.music-expanded-panel{transition:none}.music-thumbnail{overflow:visible}.music-thumbnail span{z-index:1;border-radius:50%;box-shadow:0 5px 18px #0000003d}.music-player,.music-player.is-collapsed{width:min(520px,calc(100vw - 36px));border-radius:999px;transition:none}.music-player.is-expanded{width:min(520px,calc(100vw - 36px));border-radius:24px;transition:none}.music-expanded-panel{display:block;height:auto;max-height:0;margin-top:0;overflow:hidden;visibility:hidden;opacity:0;transform:translateY(-4px);pointer-events:none;transition:max-height .21s ease-out,margin-top .21s ease-out,transform .21s ease-out,visibility 0s linear .21s}.music-player.is-expanded .music-expanded-panel{max-height:min(46vh,430px);margin-top:8px;visibility:visible;opacity:1;transform:translateY(0);pointer-events:auto;transition:max-height .21s ease-out,margin-top .21s ease-out,transform .21s ease-out,visibility 0s linear 0s}.music-player,.music-expanded-panel,.music-player.is-expanded .music-expanded-panel{opacity:1}@media(max-width:410px){.music-player,.music-player.is-collapsed,.music-player.is-expanded{width:calc(100vw - 24px)}}@media(prefers-reduced-motion:reduce){.music-expanded-panel,.music-player.is-expanded .music-expanded-panel{transition:none!important;transform:none!important}}@media(max-width:820px){.landing-intro{top:82px;left:18px;width:min(62vw,470px)}.landing-intro h1{font-size:clamp(30px,8vw,48px)}.landing-intro .landing-greeting{width:min(62vw,470px);min-height:2.2em;font-size:clamp(20px,4.4vw,30px)}.landing-intro h1{margin-top:clamp(30px,4.6vh,44px)}.landing-bio{margin-top:34px!important;font-size:clamp(28px,7.2vw,40px)!important}.landing-contact{position:fixed;right:auto;bottom:116px;left:18px;margin-top:0!important;gap:7px}.landing-chat-trigger{font-size:clamp(22px,5.6vw,32px)}.landing-email{color:#f7f7f56b;font-size:clamp(15px,3.8vw,20px)!important;line-height:1.1!important;text-align:left}.landing-email a{width:fit-content}.landing-home-glyph{width:24px;height:24px}.scheduler-overlay{padding:0;place-items:end center}.scheduler-panel{width:100%;max-height:min(88vh,760px);border-right:0;border-bottom:0;border-left:0}.scheduler-header{gap:16px;padding:22px 18px 20px}.scheduler-header h2{font-size:clamp(34px,10vw,52px)}.scheduler-duration{padding:14px 18px}.scheduler-days{grid-template-columns:1fr}.scheduler-day,.scheduler-day:nth-child(3n){display:grid;grid-template-columns:minmax(108px,.8fr) minmax(0,1.2fr);align-items:center;gap:12px;padding:16px 18px;border-right:0}.scheduler-slots{justify-content:flex-end;margin-top:0}.scheduler-footer{align-items:flex-start;padding:13px 18px}.landing-nav{top:14px;right:14px;left:14px;justify-content:center;gap:clamp(2px,1.6vw,10px);overflow-x:auto}.landing-nav button{min-height:34px;padding:5px 8px 7px;flex:0 1 auto;font-size:clamp(13px,3.8vw,18px)}.landing-home{width:34px;min-width:34px;padding:5px!important}.landing-home svg{width:24px;height:24px}.floating-window-overlay{padding:58px 18px 76px}.profile-video-frame{width:min(calc(100vw - 36px),calc((100vh - 150px)*.5625),440px)}.readme-window-frame,.globe-window-frame{width:min(calc(100vw - 36px),calc(100vh - 132px))}.readme-window-body{height:min(68vh,570px);padding:26px 22px 34px}.landing-projects{display:none}.landing-welcome{top:auto;right:18px;bottom:clamp(220px,26vh,260px);width:min(39vw,300px);font-size:clamp(21px,4.5vw,34px)}.landing-welcome p+p{margin-top:30px}.landing-signoff{right:18px;bottom:16px;width:min(40vw,280px);gap:12px}.landing-signoff>p{font-size:clamp(12px,2.3vw,16px)}.resume-overlay{padding:76px 14px 100px}.resume-document{width:100%}.resume-stage{padding:7vh 4vw 17vh}.resume-float{width:min(88vw,76.3668vh)}.resume-actions{flex-wrap:wrap;justify-content:center}.scene-title{top:18px;left:18px;font-size:44px}.sound-toggle{top:auto;right:14px;bottom:114px}.music-player{left:50%;bottom:12px;width:min(640px,calc(100vw - 24px));transform:translate(-50%)}.music-expanded-panel{grid-template-columns:200px minmax(0,1fr);gap:10px}.youtube-video-shell,.youtube-video-shell>div:first-child,.youtube-video-frame{width:200px;height:200px}.music-player.is-collapsed{width:min(440px,calc(100vw - 24px))}.music-volume{flex-basis:86px}.render-plate,.hotspot-layer{transform:scale(10);transform-origin:52% 58%}.bottom-nav{width:calc(100vw - 20px);grid-template-columns:repeat(4,minmax(0,1fr));gap:2px;padding-inline:8px}.nav-button-main .nav-icon-wrap{width:48px;height:48px}.nav-button-main svg{width:46px;height:46px}.nav-label{font-size:12px}.info-overlay{grid-template-columns:1fr;grid-template-rows:minmax(180px,26vh) minmax(0,auto);align-content:center;overflow:auto}.focus-stage,.info-card{width:min(100%,520px);min-width:0}.focus-stage{height:220px;border-right:1px solid rgba(255,255,255,.28);border-bottom:0}.focus-object{width:min(46vw,220px)}.info-card{justify-content:start;max-height:58vh;padding:54px 22px 24px}.close-button{right:22px;top:20px}.info-meta div{grid-template-columns:86px minmax(0,1fr)}.whiteboard-canvas{left:19%;top:36%;width:64vw;height:24vh}}@media(max-width:560px){.landing-intro{width:calc(100vw - 36px)}.landing-signoff{display:none}.landing-intro .landing-greeting{width:100%}.landing-welcome{display:block;top:auto;right:18px;bottom:198px;width:38vw;font-size:clamp(13px,3.8vw,17px)}.landing-welcome p+p{margin-top:14px}.floating-window-title{max-width:52vw;overflow:hidden;text-overflow:ellipsis}.globe-instructions,.globe-credit{bottom:10px;font-size:7px}.music-player.is-expanded{max-height:calc(100vh - 96px);overflow:auto}.music-expanded-panel{grid-template-columns:minmax(0,1fr)}.youtube-video-shell,.youtube-video-shell>div:first-child,.youtube-video-frame{width:100%;min-width:200px}.music-chapter-list{max-height:190px}}@media(prefers-reduced-motion:reduce){.profile-video-frame{animation:none}.landing-greeting-caret{animation:none;display:none}.signature-ink-fallback{transition:none}}@media(max-width:410px){.music-player,.music-player.is-collapsed{width:calc(100vw - 24px)}.music-thumbnail{flex-basis:46px;width:46px;height:46px}.music-actions button:nth-child(1),.music-actions button:nth-child(3){display:none}.music-copy strong{font-size:12px}.music-copy span{font-size:10px}.landing-email{max-width:calc(100vw - 36px);flex-wrap:wrap;white-space:normal}.scheduler-footer{display:grid;gap:4px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}@media(max-width:720px){.portfolio-book-page-status{top:14px;font-size:11px}.portfolio-book-actions{bottom:12px;flex-wrap:wrap;justify-content:center;width:min(560px,calc(100vw - 20px))}.portfolio-book-actions a,.portfolio-book-actions button{min-height:42px}.portfolio-book-open-cue{transform:translate(-50%,210%)}.portfolio-book-fallback{width:min(94vw,90.5088vh)}.portfolio-book-fallback.is-single{width:min(70vw,calc(66vh / 1.4142))}}@media(max-height:620px){.portfolio-book-actions{bottom:8px}.portfolio-book-page-status{top:8px}}
