:root{--bg-bone: #f5f2e9;--fg-blueprint: #4a4a4a;--fg-muted: #8c8c8c;--accent: #2c2c2c}html,body,#root{width:100%;height:100%;margin:0;padding:0;overflow:hidden;background:var(--bg-bone);color:var(--fg-blueprint);font-family:Outfit,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}body.allow-scroll{overflow-y:auto;height:200vh}.canvas-container{width:100%;height:100%;position:relative;overflow:hidden}.desk-blueprint{position:relative;width:100%;height:100%;background-color:var(--bg-bone)}.blueprint-container{position:absolute;top:0;left:0;width:100%;height:100%}.blueprint-square{position:absolute;transform:translate(-50%,-50%);cursor:pointer;display:flex;flex-direction:column;justify-content:center;align-items:center;transition:all .3s cubic-bezier(.16,1,.3,1);overflow:visible;padding:10px;opacity:1}.blueprint-square[data-is-laptop=true],.blueprint-square[data-is-business-card=true]{cursor:default}.scene-home.fade-in .blueprint-square{opacity:0;animation:fadeInCard .8s ease-in forwards;animation-delay:calc(var(--card-index, 0) * .05s)}@keyframes fadeInCard{0%{opacity:0;transform:translate(-50%,-50%) translateY(20px)}to{opacity:1;transform:translate(-50%,-50%) translateY(0)}}.blueprint-square:hover{transform:translate(-50%,-52%) scale(1.02)}.image-stack{width:100%;height:100%;position:relative;display:flex;justify-content:center;align-items:center;margin-bottom:15px}.blueprint-image{position:absolute;max-width:90%;max-height:90%;object-fit:contain;transition:all .4s cubic-bezier(.16,1,.3,1)}.image-open{z-index:1;transform:rotate(-8deg);opacity:.8}.image-closed{z-index:2;transform:rotate(7deg)}.blueprint-square:hover .image-open{z-index:3;transform:rotate(0) scale(1.1);opacity:1}.blueprint-square:hover .image-closed{z-index:1;transform:rotate(15deg) translate(20px,-10px);opacity:.5}.blueprint-label{font-size:9px;font-weight:600;letter-spacing:.15em;text-align:center;color:var(--fg-muted);-webkit-user-select:none;user-select:none;text-transform:uppercase}.blueprint-square:hover .blueprint-label{color:var(--accent);font-weight:700}.app-container{width:100%;height:100%;position:relative;background:var(--bg-bone);overflow:hidden}.scene-root{width:100%;height:100%;position:absolute;top:0;left:0;will-change:transform,opacity,filter;transform:translateZ(0);backface-visibility:hidden;contain:layout style paint}.scene-home{z-index:1;opacity:1;transition:opacity .8s ease-in;height:100vh;height:100dvh;width:100%;position:absolute;top:0;left:0}.scene-home.transitioning{transform:scale(1.05) translateY(-140px);opacity:0;pointer-events:none}.scene-home.transitioning.is-headphones-transition{transform:none!important;opacity:.15}.scene-home.transitioning.is-laptop-transition{transform:none!important;opacity:1!important;filter:none!important}.scene-home.transitioning.is-wipe-transition{transform:none!important;opacity:1!important}.scene-home.fade-in{opacity:0;animation:fadeInHome .8s ease-in forwards}@keyframes fadeInHome{0%{opacity:0}to{opacity:1}}.scene-detail{z-index:2;overflow-y:auto;padding:4rem 2rem;box-sizing:border-box;background:var(--bg-bone);opacity:0;transform:scale(.95);filter:blur(10px);transition:opacity .75s cubic-bezier(.2,.8,.2,1),transform .75s cubic-bezier(.2,.8,.2,1),filter .75s cubic-bezier(.2,.8,.2,1)}.scene-detail.active{opacity:1;transform:scale(1);filter:blur(0)}.scene-detail.transitioning-out{opacity:0!important;transform:scale(.95)!important;filter:blur(10px)!important}.scene-spotify{z-index:10001;width:100%;height:100vh;height:100dvh;background:#000;opacity:0;transition:opacity .8s ease-in;overflow:hidden;position:fixed;top:0;left:0}.scene-spotify.active{opacity:1!important}.scene-spotify.active,.scene-spotify:not(.transitioning-in){opacity:1!important}.scene-spotify.transitioning-in{opacity:0}.scene-spotify.transitioning .spotify-back-btn,.scene-spotify.transitioning-in .spotify-back-btn{opacity:0;pointer-events:none;transition:opacity .3s ease}.spotify-container{width:100%;height:100%;position:relative;display:flex;flex-direction:column}.spotify-back-btn{position:absolute;top:2rem;left:2rem;z-index:10001;background:#000000b3;border:1px solid rgba(255,255,255,.3);color:#fff;padding:.6rem 1.2rem;font-family:inherit;font-size:.75rem;font-weight:600;letter-spacing:.1em;cursor:pointer;transition:all .2s}.spotify-back-btn:hover{border-color:#fff9;background:#000000e6}.spotify-iframe{width:100%;height:100%;border:none;background:#000}.transition-clone.headphones-falling{will-change:transform,opacity}.black-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;height:100dvh;min-height:100%;background:#000;z-index:10002;opacity:0;pointer-events:none;will-change:opacity;transform:translateZ(0);backface-visibility:hidden;contain:strict}.black-overlay.forward,.black-overlay.reverse{animation:fadeToBlack 2s cubic-bezier(.4,0,.2,1) forwards}.black-overlay.fade-out{animation:fadeToBone 2s cubic-bezier(.4,0,.2,1) forwards}.black-overlay.fade-out-black{animation:fadeOutBlack 2s cubic-bezier(.4,0,.2,1) forwards}@keyframes fadeToBlack{0%{opacity:0}to{opacity:1}}@keyframes fadeOutBlack{0%{opacity:1;background:#000}to{opacity:0;background:#000;visibility:hidden}}@keyframes fadeToBone{0%{opacity:1;background:#000}to{opacity:0;background:var(--bg-bone);visibility:hidden}}.blueprint-square[data-is-laptop=true]:hover{z-index:10}.detail-container{max-width:900px;margin:0 auto;opacity:1}.detail-header{display:flex;align-items:center;gap:2rem;margin-bottom:3rem}.back-btn{background:none;border:1px solid var(--fg-muted);color:var(--fg-muted);padding:.6rem 1.2rem;font-family:inherit;font-size:.75rem;font-weight:600;letter-spacing:.1em;cursor:pointer;transition:all .2s}.back-btn:hover{border-color:var(--accent);color:var(--accent);background:#00000005}.detail-title{font-size:3rem;margin:0;letter-spacing:-.02em;font-weight:400}.hero-placeholder-wrapper{width:100%;display:flex;justify-content:center;margin:2rem 0 4rem}.hero-placeholder{width:420px;max-width:70vw;aspect-ratio:1/1.2;background:#00000005;border:1px dashed #ccc}.detail-content{font-size:1.1rem;line-height:1.8;max-width:600px;margin:0 auto}.description-lead{font-size:1.4rem;line-height:1.5;color:var(--fg-blueprint);margin-bottom:4rem;font-weight:300}.section-block{margin-top:4rem}.section-label{font-size:.75rem;text-transform:uppercase;letter-spacing:.2em;color:var(--fg-muted);margin-bottom:2rem;border-bottom:1px solid #eee;padding-bottom:.5rem}.content-list{list-style:none;padding:0}.content-item{padding:1.5rem 0;border-bottom:1px solid #eee;display:flex;align-items:flex-start;gap:1.5rem}.item-index{font-size:.75rem;font-weight:700;color:var(--accent);margin-top:.3rem}.filler-text{margin-top:6rem;font-size:.9rem;color:var(--fg-muted);font-style:italic;border-left:2px solid #eee;padding-left:2rem}.is-transitioning{pointer-events:none;cursor:wait}.transition-clone{position:fixed;z-index:9999;pointer-events:none;background:transparent;box-shadow:none;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:0;will-change:transform,opacity;box-sizing:border-box;transform:translateZ(0);backface-visibility:hidden;perspective:1000px;contain:layout style paint}.transition-clone .clone-image-wrapper{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:transparent;margin-bottom:15px;transform:translateZ(0);will-change:transform}.transition-clone img{max-width:90%;max-height:90%;object-fit:contain;image-rendering:-webkit-optimize-contrast;image-rendering:crisp-edges;transform:translateZ(0);will-change:transform,filter;backface-visibility:hidden}.transition-clone .blueprint-label{font-size:10px;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--accent)}@media(prefers-reduced-motion:reduce){.scene-root,.polaroid-card,.transition-clone{transition:opacity .3s ease!important;transform:none!important}}.work-immersive,.about-immersive{background:#000!important;display:flex!important;flex-direction:column!important;justify-content:center!important;align-items:center!important;padding:0!important;overflow:hidden;width:100vw;height:100vh;height:100dvh}.about-immersive.active{opacity:1!important;transform:none!important;filter:none!important;transition:none!important}.immersive-content{text-align:center;width:100%;height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center}.scroll-story-container{width:100%;min-height:300vh;height:auto}.central-circle{position:fixed;top:40%;left:50%;transform:translate(-50%,-50%);width:12px;height:12px;background-color:#fff;border-radius:50%;box-shadow:0 0 15px #fffc;z-index:100;pointer-events:none}.vertical-line{position:fixed;top:40%;left:50%;width:1px;height:500vh;background-color:#fff;transform:translate(-50%);z-index:90;pointer-events:none}.story-item{width:100%;max-width:1400px;margin:100vh 0;display:flex;position:relative;opacity:0;filter:blur(8px);transform:translateY(40px);transition:all .6s cubic-bezier(.2,.8,.2,1);align-items:center}.story-item.active{opacity:1;filter:blur(0);transform:translateY(0)}.story-item.left{justify-content:flex-start;padding-left:10%}.story-item.right{justify-content:flex-end;padding-right:10%}.story-connector{position:absolute;top:50%;height:1px;border-top:1px dashed rgba(255,255,255,.6);z-index:80;opacity:0;transition:opacity .4s ease .2s,width .6s ease .2s}.story-item.left .story-connector{left:45%;right:50%;width:auto}.story-item.right .story-connector{left:50%;right:45%;width:auto}.story-item.active .story-connector{opacity:1}.story-content{width:35%;padding:2.5rem;background:#ffffff0d;border-radius:24px;border:1px solid rgba(255,255,255,.1);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);text-align:left;z-index:100}.story-content h3{font-family:Outfit,sans-serif;font-size:1.8rem;margin-bottom:1.2rem;color:#fff}.story-content p{font-size:1.1rem;line-height:1.7;color:#ffffffb3}.about-content{text-align:left;max-width:800px;width:100%;padding:4rem}.immersive-title{color:#fff;font-size:8vw;font-weight:200;letter-spacing:.5em;margin:0;text-transform:uppercase;font-family:Outfit,sans-serif}.immersive-back{position:absolute;top:2rem;left:2rem;color:#fff!important;border-color:#ffffff4d!important;z-index:10}.immersive-back:hover{background:#ffffff1a!important;border-color:#fff!important}.scene-detail.is-wipe-reveal{opacity:1!important;transform:none!important;filter:none!important;clip-path:inset(0 0 0 100%);animation:wipeReveal .5s cubic-bezier(.4,0,.2,1) forwards;animation-delay:.5s}@keyframes wipeReveal{0%{clip-path:inset(0 0 0 100%)}to{clip-path:inset(0 0 0 0%)}}@media(max-width:768px){.blueprint-square{left:50%!important;width:240px!important;height:240px!important}.blueprint-square[data-card-id=obj_headphones]{top:20%!important}.blueprint-square[data-card-id=obj_laptop]{top:40%!important}.blueprint-square[data-card-id=obj_business_cards]{top:60%!important}.blueprint-square[data-card-id=obj_ps4]{top:80%!important}.immersive-title{font-size:12vw;letter-spacing:.3em}.immersive-back{top:1rem;left:1rem;padding:.4rem .8rem;font-size:.7rem}.scene-detail{padding:3rem 1rem}.scene-detail.is-wipe-reveal{clip-path:inset(0 0 0 100%);animation:wipeRevealMobile 1s cubic-bezier(.4,0,.2,1) forwards}}@keyframes wipeRevealMobile{0%{clip-path:inset(0 0 0 100%)}to{clip-path:inset(0 0 0 -5%)}}.loading-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:var(--bg-bone);display:flex;justify-content:center;align-items:center;z-index:200}.loading-text{font-size:10px;letter-spacing:.2em;color:var(--fg-muted)}.typewriter-container{position:absolute;top:10%;left:50%;transform:translate(-50%);width:90%;max-width:800px;z-index:10;pointer-events:none;text-align:center;transition:opacity .5s ease}.scene-home.transitioning .typewriter-container{opacity:0}.typewriter h1{overflow:hidden;margin:0 auto;letter-spacing:.08em;font-size:1.4rem;font-weight:400;color:var(--fg-blueprint);line-height:1.6;font-family:Outfit,sans-serif;display:inline-block;text-align:left}.typewriter h1 .cursor{display:inline-block;width:.15em;height:1em;background-color:#000;margin-left:4px;vertical-align:middle;animation:blink-caret .75s step-end infinite}@keyframes blink-caret{0%,to{border-color:transparent;background-color:transparent}50%{background-color:#000}}@media(max-width:768px){.typewriter-container{top:5%}.typewriter h1{font-size:1.1rem;letter-spacing:.04em}}
