:root{color-scheme:dark;--bg:#090a09;--fg:#f0f1e9;--dim:#96998f;--acid:#e4f46e;--line:#ffffff24;--mono:"Courier New",monospace;--sans:Arial,Helvetica,sans-serif}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--fg);font-family:var(--sans)}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;border:0;background:none;cursor:pointer}button:focus-visible,a:focus-visible{outline:2px solid var(--acid);outline-offset:7px}button:disabled{opacity:.4;cursor:default}::selection{background:var(--acid);color:#10120d}.panel{position:absolute;top:0;bottom:0;width:min(420px,35vw);z-index:20;padding:35px 36px;display:flex;flex-direction:column;background:linear-gradient(130deg,#d8dfcd15,#11160eab 65%);backdrop-filter:blur(28px) saturate(.7);-webkit-backdrop-filter:blur(28px) saturate(.7);transition:transform .38s cubic-bezier(.22,.8,.2,1),visibility .38s;visibility:hidden;overflow-y:auto}.panel.left{left:0;transform:translate(-102%);border-right:1px solid #e8efdc30}.panel.right{right:0;transform:translate(102%);border-left:1px solid #e8efdc30}.panel.open{transform:translate(0);visibility:visible}.panel-head{display:flex;justify-content:space-between;align-items:center;font:12px var(--mono);letter-spacing:2px;color:#bfc7b4}.close{font-size:28px;font-family:var(--sans);width:40px;height:40px;border:1px solid var(--line);border-radius:50%;line-height:1}.panel-body{margin:auto 0}.panel h2{font-size:clamp(28px,3.5vw,50px);font-weight:400;letter-spacing:-2px;line-height:1.1;margin:40px 0}.menu-item{width:100%;display:flex;align-items:center;text-align:left;border-top:1px solid #ffffff26;padding:24px 0;gap:16px}.menu-item .num{font:12px var(--mono);color:#929d82;align-self:flex-start;margin-top:6px}.menu-item .name{font-size:25px;letter-spacing:-.7px;flex:1}.menu-item .arrow{font-size:25px;transition:transform .2s}.menu-item:hover{color:var(--acid)}.menu-item:hover .arrow{transform:translate(3px,-3px)}.menu-item:last-child{border-bottom:1px solid #ffffff26}.panel-foot{font:12px/1.7 var(--mono);color:#b2bba6;padding-top:35px}.panel-foot span{display:block;color:var(--acid);letter-spacing:2px;margin-bottom:12px}.panel p{font:16px/1.65 var(--sans);color:#c2cab8}.detail{margin:10px 0 25px;border-left:2px solid var(--acid);padding:0 0 0 18px}.detail h3{font-size:22px;font-weight:400;margin:0 0 12px}.detail p{margin:0;font-size:15px}.back{font:12px var(--mono);color:var(--acid);padding:14px 0}.contact-note{padding:15px 0;color:#b4bca9;font:14px/1.65 var(--sans)}.cursor{position:fixed;left:0;top:0;width:36px;height:36px;border:1px dashed #e4f46eaa;border-radius:50%;z-index:100;pointer-events:none;transform:translate(-100px,-100px);mix-blend-mode:difference;box-shadow:0 0 0 3px #cddc8e16,inset 0 0 0 2px #cddc8e16;transition:width .18s,height .18s,margin .18s;opacity:0}.cursor:before{content:"";position:absolute;inset:4px;border:1px dotted #e4f46e88;border-radius:50%;transform:rotate(25deg)}.cursor:after{content:"";position:absolute;width:4px;height:4px;border-radius:50%;background:var(--acid);left:calc(50% - 2px);top:calc(50% - 2px)}.cursor.hover{width:52px;height:52px;margin:-8px}.cursor.down{width:28px;height:28px;margin:4px}.cursor-on,.cursor-on button,.cursor-on a{cursor:none}body{overflow:hidden}main{height:100svh;position:relative;isolation:isolate;overflow:clip}.stage{position:absolute;inset:0;display:grid;place-items:center}.hero{position:relative;width:min(62vw,920px);aspect-ratio:2.29;padding:0;-webkit-user-select:none;user-select:none;touch-action:manipulation}.logo-art,.logo-art>svg,.logo-art>img{display:block;width:100%;height:100%}.logo-art>svg{overflow:hidden}.logo-art>img{object-fit:fill}.edge{position:absolute;top:0;bottom:0;width:64px;display:flex;align-items:center;justify-content:center;z-index:13}.edge.left{left:0}.edge.right{right:0}.edge button{writing-mode:vertical-rl;font:12px var(--mono);letter-spacing:3px;padding:28px 17px;display:flex;align-items:center;gap:25px;color:#bdc2b2}.edge.left button{transform:rotate(180deg)}.edge button:after{content:"";height:42px;width:1px;background:#aab58a}.edge button:hover{color:var(--acid)}.pause{position:absolute;bottom:25px;left:calc(50% - 22px);width:44px;height:44px;border:1px solid #ffffff30;border-radius:50%;font-size:17px;display:grid;place-items:center}.panel h2,.panel h2 em{font-family:var(--sans);font-weight:400;font-size:clamp(28px,3.5vw,50px);font-style:normal;letter-spacing:-2px;line-height:1.1}.panel h2 em{color:var(--acid)}.panel .menu-item .name{font-family:var(--sans);font-weight:400;font-size:25px;letter-spacing:-.7px}.grain{position:fixed;inset:0;pointer-events:none;opacity:.045;z-index:9;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23fff' filter='url(%23n)' opacity='.8' d='M0 0h180v180H0z'/%3E%3C/svg%3E")}.loader{position:fixed;inset:0;background:var(--bg);z-index:110;display:grid;place-items:center;transition:opacity .25s,visibility .25s}.loader span{font:900 clamp(90px,20vw,280px)/1 var(--sans);letter-spacing:-.08em;padding-right:.08em}.loader.done{opacity:0;visibility:hidden;pointer-events:none}@media(max-width:800px){.hero{width:72vw}.edge{width:44px}.edge button{font-size:11px;padding:25px 14px;letter-spacing:2px}.panel{width:min(440px,88vw);padding:25px 28px}.panel h2,.panel h2 em{font-size:42px}.pause{bottom:20px}}@media(max-height:650px){.panel h2{margin:24px 0}.menu-item{padding:17px 0}.panel-foot{padding-top:20px}.hero{width:min(62vw,110svh)}}.particle-field{position:absolute;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none}@media(pointer:coarse){.cursor{display:none!important}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.cursor{display:none!important}.cursor-on,.cursor-on button,.cursor-on a{cursor:auto}}.scene{position:absolute;inset:0;z-index:10;display:flex;flex-direction:column;align-items:center;justify-content:center;animation:sceneIn .8s cubic-bezier(.22,.8,.2,1) forwards;pointer-events:none}@keyframes sceneIn{0%{opacity:0;transform:translateY(20px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.scene h1{font-size:clamp(40px,8vw,120px);font-weight:400;letter-spacing:-3px;color:var(--fg);mix-blend-mode:difference}.stage.intro-active{pointer-events:none}.scene{position:absolute;inset:0;z-index:10;display:flex;flex-direction:column;align-items:center;justify-content:center;animation:sceneReveal .8s cubic-bezier(.16,1,.3,1) forwards;pointer-events:none;opacity:0}@keyframes sceneReveal{0%{opacity:0;filter:blur(10px);transform:scale(1.03)}to{opacity:1;filter:blur(0);transform:scale(1)}}@media(prefers-reduced-motion:reduce){@keyframes sceneReveal{0%{opacity:0}to{opacity:1}}}.scene>*{pointer-events:auto}.cursor.view-mode{width:70px;height:70px;margin:-17px;background:var(--acid);color:var(--bg);mix-blend-mode:normal;border:none;box-shadow:none;display:flex;align-items:center;justify-content:center;font:10px var(--mono);letter-spacing:1px}.cursor.view-mode:before,.cursor.view-mode:after{display:none}.cursor.view-mode:after{content:"VIEW";display:block;position:static;width:auto;height:auto;background:none}.cursor.open-mode{width:50px;height:50px;margin:-7px;border-color:var(--acid);mix-blend-mode:normal;display:flex;align-items:center;justify-content:center;font:10px var(--mono);color:var(--acid)}.cursor.open-mode:before,.cursor.open-mode:after{display:none}.cursor.open-mode:after{content:"OPEN";display:block;position:static;width:auto;height:auto;background:none}.cursor.drag-mode{width:50px;height:50px;margin:-7px;border-color:var(--acid);display:flex;align-items:center;justify-content:center;font:10px var(--mono);color:var(--acid)}.cursor.drag-mode:before,.cursor.drag-mode:after{display:none}.cursor.drag-mode:after{content:"DRAG";display:block;position:static;width:auto;height:auto;background:none}.about-content{max-width:800px;padding:10vw;width:100%}.about-title{font-size:clamp(60px,12vw,150px);margin:0 0 20px;font-weight:400;letter-spacing:-3px;line-height:.9;mix-blend-mode:difference}.about-subtitle{font-size:clamp(20px,4vw,40px);letter-spacing:-1px;color:var(--acid)}.about-text{display:flex;flex-direction:column;gap:10px;font:16px/1.4 var(--mono);color:#c2cab8;margin-top:40px}.contact-content{text-align:center}.contact-label{font:16px var(--mono);color:var(--acid);letter-spacing:3px;margin-bottom:30px;font-weight:400}.contact-email{display:block;font-size:clamp(40px,8vw,120px);color:var(--fg);text-decoration:none;letter-spacing:-3px;transition:color .4s;mix-blend-mode:difference}.contact-email:hover{color:var(--acid)}.scene.exiting{animation:sceneExit .6s cubic-bezier(.16,1,.3,1) forwards;pointer-events:none}@keyframes sceneExit{0%{opacity:1;filter:blur(0);transform:scale(1)}to{opacity:0;filter:blur(10px);transform:scale(.97)}}@media(prefers-reduced-motion:reduce){@keyframes sceneExit{0%{opacity:1}to{opacity:0}}}.scene-wrapper{display:contents}.scene-wrapper.exiting .scene{animation:sceneExit .6s cubic-bezier(.16,1,.3,1) forwards;pointer-events:none}.edge button{color:transparent;transition:color .4s}.edge button:after{transition:transform .4s,background .4s;background:#fff3}.edge:hover button{color:var(--fg)}.edge:hover button:after{background:var(--acid);transform:scaleY(1.5)}@media(max-width:800px){.edge button{color:var(--fg)}}.stage{--mx: 0;--my: 0;perspective:1000px}.stage:not(.intro-active) .hero{transform:rotateY(calc(var(--mx) * 5deg)) rotateX(calc(var(--my) * -5deg));transition:transform .1s}.work-scene{width:100%;height:100dvh;overflow:hidden}.work-slider{display:flex;flex-direction:column;width:100%;transition:transform .8s cubic-bezier(.22,1,.36,1)}.work-item{height:100dvh;width:100%;display:flex;align-items:center;justify-content:center;padding:10vw;opacity:.3;transform:scale(.9);transition:opacity .8s,transform .8s cubic-bezier(.22,1,.36,1);pointer-events:none}.work-item.active{opacity:1;transform:scale(1);pointer-events:auto}.work-meta{flex:1;display:flex;flex-direction:column;gap:20px;z-index:2}.work-num{font:12px var(--mono);color:var(--acid)}.work-title{font-size:clamp(40px,8vw,120px);margin:0;line-height:.9;letter-spacing:-.05em}.work-tags{display:flex;gap:20px;font:14px var(--mono);color:#fff}.work-desc{font:18px/1.6 var(--sans);color:#c2cab8;max-width:400px;margin:20px 0 0}.work-visual-wrapper{flex:1;display:flex;justify-content:flex-end;perspective:1200px}.work-preview-btn{--rx: 0deg;--ry: 0deg;width:min(500px,50vw);aspect-ratio:4/5;background:#11160e;border:1px solid var(--line);position:relative;overflow:hidden;padding:0;display:block;transform:rotateY(var(--ry)) rotateX(var(--rx));transition:transform .1s;transform-style:preserve-3d}.work-item:not(.active) .work-preview-btn{transform:rotateY(10deg) scale(.9);transition:transform 1s cubic-bezier(.22,1,.36,1)}.work-item.active .work-preview-btn{transition:transform .1s ease-out}.preview-inner{width:100%;height:100%;position:relative;pointer-events:none}.preview-media{width:100%;height:100%;object-fit:cover;opacity:.8}.preview-placeholder{position:absolute;inset:0;display:grid;place-items:center;color:#555;font:12px var(--mono)}.preview-overlay{position:absolute;inset:0;background:var(--acid);mix-blend-mode:overlay;opacity:.05;transition:opacity .4s}.work-preview-btn:hover .preview-overlay{opacity:.15}.work-preview-btn:focus-visible{outline:2px solid var(--acid);outline-offset:10px}.work-nav{position:absolute;right:40px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:12px;z-index:10}.work-dot{width:8px;height:8px;border-radius:50%;background:#fff3;padding:0;transition:background .3s,transform .3s}.work-dot.active{background:var(--acid);transform:scale(1.5)}@media(max-width:800px){.work-item{flex-direction:column;padding:15vh 8vw 5vh;justify-content:flex-start;gap:40px}.work-visual-wrapper{width:100%;justify-content:center}.work-preview-btn{width:100%;max-height:40vh;aspect-ratio:auto}.work-nav{right:15px}}@media(prefers-reduced-motion:reduce){.work-preview-btn{transform:none!important;transition:none!important}}.services-scene{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.services-fx{position:absolute;inset:0;pointer-events:none;z-index:-1;transition:opacity .6s}.fx-web{position:absolute;inset:0;opacity:0;transition:opacity .6s;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:40px 40px}.fx-web.active{opacity:.4}.fx-apps-outer{position:absolute;inset:10%;opacity:0;transition:all .6s cubic-bezier(.22,1,.36,1);border:1px solid var(--line);transform:translateY(40px) scale(.95);border-top:24px solid var(--line)}.fx-apps-outer.active{opacity:1;transform:translateY(0) scale(1)}.fx-apps-inner{position:absolute;inset:15% 20%;opacity:0;transition:all .8s cubic-bezier(.22,1,.36,1);border:1px solid var(--line);transform:translateY(60px) scale(.9);border-top:24px solid var(--line)}.fx-apps-inner.active{opacity:.5;transform:translateY(0) scale(1)}.fx-games-int{position:absolute;inset:0;opacity:0;transition:opacity .6s;background:radial-gradient(circle at center,transparent 0%,var(--bg) 100%);mix-blend-mode:multiply}.fx-games-int.active{opacity:1}.services-list{display:flex;flex-direction:column;width:100%;padding:0 10vw}.service-item{padding:2vh 0;border-bottom:1px solid var(--line);color:var(--fg);transition:color .4s,padding .4s;cursor:none;display:flex;align-items:baseline;gap:40px}.service-item:first-child{border-top:1px solid var(--line)}.service-item.hovered{color:var(--acid)}.service-item.dimmed{color:#fff3}.service-num{font:14px var(--mono);opacity:.5}.service-name{font-size:clamp(40px,8vw,150px);margin:0;font-weight:400;letter-spacing:-2px;line-height:.9;transform:translate(0);transition:transform .5s cubic-bezier(.22,1,.36,1)}.service-item.hovered .service-name{transform:translate(20px)}.detail-scene{width:100%;height:100%;overflow-y:auto;display:block;pointer-events:auto}.detail-hero{height:70vh;width:100%;display:flex;flex-direction:column;justify-content:flex-end;padding:10vw;position:relative}.detail-back-btn{position:absolute;top:40px;left:40px;font:12px var(--mono);color:var(--acid);z-index:10}.detail-title{font-size:clamp(50px,10vw,150px);margin:0 0 20px;line-height:.9;letter-spacing:-2px}.detail-meta-row{display:flex;gap:40px;font:14px var(--mono);color:#c2cab8;border-top:1px solid var(--line);padding-top:20px;flex-wrap:wrap}.detail-meta-label{display:block;color:#888;margin-bottom:5px}.detail-content{padding:0 10vw 10vw;max-width:1200px}.detail-desc{font-size:clamp(20px,3vw,32px);line-height:1.5;color:#fff;margin-bottom:60px}.detail-tech-title{font:12px var(--mono);color:var(--acid);margin-bottom:20px}.detail-tech-list{display:flex;gap:15px;flex-wrap:wrap}.detail-tech-tag{padding:8px 16px;border:1px solid var(--line);border-radius:20px;font:12px var(--sans)}.detail-live-btn{display:inline-block;font:16px var(--mono);color:var(--bg);background:var(--acid);padding:20px 40px;text-decoration:none;border-radius:40px}.detail-gallery{padding:0 10vw 10vw;display:flex;flex-direction:column;gap:40px}.detail-gallery img{width:100%;border:1px solid var(--line)}@media(max-width:800px){.detail-hero{padding-bottom:40px}.detail-meta-row{flex-direction:column;gap:20px}.detail-back-btn{left:20px;top:20px}.service-item{gap:20px}}.detail-hero{padding:15vh 10vw 5vh;min-height:50vh;justify-content:flex-start}.detail-hero-media{width:100%;aspect-ratio:16/9;background:#090a09;border:1px solid var(--line);margin-bottom:80px;position:relative;overflow:hidden}.detail-next{border-top:1px solid var(--line);margin-top:10vw}.next-project-btn{width:100%;padding:10vw;text-align:left;display:flex;flex-direction:column;gap:20px;transition:background .4s}.next-project-btn:hover{background:#ffffff05}.next-label{font:12px var(--mono);color:#888;letter-spacing:2px}.next-title{font-size:clamp(40px,8vw,150px);margin:0;line-height:.9;letter-spacing:-2px;color:var(--fg);transition:color .4s,transform .4s cubic-bezier(.22,1,.36,1)}.next-project-btn:hover .next-title{color:var(--acid);transform:translate(20px)}.detail-tech-tag{border-radius:0;border:1px solid var(--line)}.detail-live-btn{border-radius:0;font-size:20px;padding:20px 40px}@media(max-width:800px){.detail-hero{padding:15vh 5vw 5vh}.detail-content,.detail-gallery{padding:0 5vw 10vw}.next-project-btn{padding:10vw 5vw}}.preview-fallback-msg{display:none;position:absolute;inset:0;place-items:center;color:#555;font:12px var(--mono)}.preview-inner.media-error .preview-fallback-msg{display:grid}.preview-inner.media-error .preview-media{display:none!important}.detail-hero-media.media-error{display:flex;align-items:center;justify-content:center;font:12px var(--mono);color:#555}.detail-hero-media.media-error:after{content:"MEDIA UNAVAILABLE"}.detail-hero-media.media-error video,.detail-hero-media.media-error img{display:none!important}.media-container{width:100%;height:100%;position:relative}.media-container .preview-media{opacity:0;transition:opacity .5s ease-out}.media-container.is-loaded .preview-media{opacity:1}.media-loading-state{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;font:10px var(--mono);color:#555;z-index:1;letter-spacing:2px}.loading-line{width:40px;height:1px;background:#333;position:relative;overflow:hidden;margin-top:10px}.loading-line:after{content:"";position:absolute;top:0;left:0;bottom:0;width:30%;background:var(--acid);animation:loadLine 1.5s infinite ease-in-out}@keyframes loadLine{0%{transform:translate(-100%)}to{transform:translate(300%)}}.error-scene{display:flex;align-items:center;justify-content:center}.error-content{text-align:center}.error-code{font-size:clamp(80px,15vw,200px);color:var(--acid);margin:0;line-height:.8;letter-spacing:-4px}.error-msg{font:20px var(--mono);color:#888;margin:20px 0 40px;letter-spacing:2px}.error-back-btn{font:14px var(--mono);color:var(--fg);border-bottom:1px solid var(--acid);padding-bottom:4px;transition:color .3s}.error-back-btn:hover{color:var(--acid)}.lab-scene{width:100%;height:100%;display:flex;align-items:center;justify-content:center;position:relative}.takeover-active{animation:takeoverShake .2s infinite}.takeover-glitch{position:absolute;inset:0;background:var(--fg);mix-blend-mode:exclusion;animation:glitchFlicker .1s infinite;pointer-events:none}.terminal-scene{align-items:flex-start;justify-content:flex-start;padding:40px;background:#000}.terminal-window{width:100%;height:100%;font:16px var(--mono);color:var(--acid);display:flex;flex-direction:column;overflow-y:auto}.term-line{margin-bottom:10px;word-break:break-all}.term-line.out{opacity:.8}.term-input-line{display:flex;gap:10px;margin-top:10px;align-items:center}.term-input-line input{background:transparent;border:none;color:var(--acid);font:inherit;flex:1;outline:none;caret-color:transparent}.term-input-line input:focus+.cursor-blink{display:inline-block}.fullscreen-takeover{position:fixed;inset:0;z-index:9999;background:#000}.doom-container{width:100%;height:100%;display:flex;flex-direction:column;outline:none}.doom-header{display:flex;justify-content:space-between;padding:15px 20px;font:12px var(--mono);color:var(--bg);background:var(--acid)}.doom-close-btn{font:inherit;color:inherit;text-decoration:underline}.doom-viewport{flex:1;display:flex;align-items:center;justify-content:center;position:relative;background:#050505}.doom-loader{color:var(--acid);font:14px var(--mono);text-align:left;line-height:1.5}.doom-error-state{text-align:center;max-width:600px;padding:40px;border:1px solid var(--acid);color:var(--acid);font:var(--mono)}.error-title{font-size:24px;margin-bottom:20px}.error-desc{font-size:14px;opacity:.8;line-height:1.6;margin-bottom:40px}.doom-retry-btn{border:1px solid var(--acid);padding:10px 20px;color:var(--acid);font:inherit;transition:all .3s}.doom-retry-btn:hover{background:var(--acid);color:var(--bg)}.cursor-blink{animation:blink 1s step-end infinite}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}@keyframes takeoverShake{0%,to{transform:translate(0)}50%{transform:translate(-5px,5px)}}@keyframes glitchFlicker{0%{opacity:0}50%{opacity:.5}to{opacity:0}}@media(prefers-reduced-motion:reduce){.takeover-active{animation:none}.takeover-glitch{animation:none;opacity:.1}}.doom-action-btn{font:inherit;color:inherit;text-decoration:underline;background:transparent;border:none;padding:0;cursor:pointer}.doom-action-btn:hover{color:#fff}.js-dos-container{display:flex;align-items:center;justify-content:center}.js-dos-container canvas{max-width:100%;max-height:100%;object-fit:contain}
