*{margin:0;padding:0;box-sizing:border-box}html{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='24'%3E%3Cpolygon points='0,0 0,18 4,14 7,21 9,20 6,13 11,13' fill='black' stroke='white' stroke-width='1'/%3E%3C/svg%3E") 0 0,auto}html,body{background:#0a0a0f;color:#c8c8d4;font-family:VT323,monospace;height:100%;overflow:hidden}#app{width:100vw;height:100vh;position:relative;overflow:hidden}#mobile-gate{display:none;position:fixed;inset:0;z-index:99999;background:#0a0a0f;align-items:center;justify-content:center;text-align:center;font-family:"Press Start 2P",monospace;font-size:14px;color:#888;line-height:2.2}@media(max-width:768px){#mobile-gate{display:flex}#app{display:none}}.home{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;background:#0c0c0e;position:relative;overflow:hidden}.home:before{content:"";position:absolute;inset:0;background:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");opacity:.04;pointer-events:none;z-index:1}.home-subtitle{font-family:DM Sans,sans-serif;font-weight:400;font-size:10px;text-transform:uppercase;letter-spacing:.4em;color:#ffffff40;margin-bottom:12px;position:relative;z-index:3}.home-title{font-family:Playfair Display,serif;font-weight:700;font-size:clamp(16px,2.2vw,28px);color:#ffffffbf;letter-spacing:.25em;text-transform:uppercase;line-height:1;margin-bottom:60px;position:relative;z-index:3}.home-nav{display:flex;flex-direction:row;align-items:center;gap:32px;position:relative;z-index:3;flex-wrap:wrap;justify-content:center}.home-link{font-family:DM Sans,sans-serif;font-weight:500;font-size:8px;text-transform:uppercase;letter-spacing:.18em;color:#ffffff80;background:none;border:.5px solid rgba(255,255,255,.18);border-radius:50%;width:110px;height:110px;display:flex;align-items:center;justify-content:center;text-align:center;line-height:1.5;cursor:pointer;padding:0 14px;transition:color .3s,border-color .3s}.home-link:hover{color:#ffffffe6;border-color:#ffffff73}.mk{position:absolute;pointer-events:none}.mk-crop{width:20px;height:20px}.mk-c-tl{top:28px;left:28px;border-top:.5px solid rgba(255,255,255,.15);border-left:.5px solid rgba(255,255,255,.15)}.mk-c-tr{top:28px;right:28px;border-top:.5px solid rgba(255,255,255,.15);border-right:.5px solid rgba(255,255,255,.15)}.mk-c-bl{bottom:28px;left:28px;border-bottom:.5px solid rgba(255,255,255,.15);border-left:.5px solid rgba(255,255,255,.15)}.mk-c-br{bottom:28px;right:28px;border-bottom:.5px solid rgba(255,255,255,.15);border-right:.5px solid rgba(255,255,255,.15)}.mk-x{width:16px;height:16px}.mk-x:before,.mk-x:after{content:"";position:absolute;background:#ffffff21}.mk-x:before{width:.5px;height:100%;left:50%;top:0}.mk-x:after{height:.5px;width:100%;top:50%;left:0}.mk-o{width:14px;height:14px;border:.5px solid rgba(255,255,255,.13);border-radius:50%}.mk-o:before,.mk-o:after{content:"";position:absolute;background:#ffffff1a}.mk-o:before{width:.5px;height:22px;left:50%;top:-4px}.mk-o:after{height:.5px;width:22px;top:50%;left:-4px}.mk-h{height:.5px;background:#ffffff14}.mk-v{width:.5px;background:#ffffff14}.mk-t{font-family:DM Sans,sans-serif;font-weight:400;font-size:7px;letter-spacing:.2em;text-transform:uppercase;color:#ffffff21;white-space:nowrap}.mk-cjk{writing-mode:vertical-rl;text-orientation:upright;font-weight:900;color:#ffffff0a;line-height:1;letter-spacing:.1em}.space{width:100%;height:100%;background:#060610;overflow:hidden;position:relative}.back-btn{position:fixed;top:16px;left:16px;z-index:10000;font-family:"Press Start 2P",monospace;font-size:10px;color:#888;background:#0a0a0fcc;border:1px solid #333;padding:8px 14px;cursor:pointer;transition:color .2s,border-color .2s}.back-btn:hover{color:#fff;border-color:#888}.space-title{position:fixed;top:16px;left:50%;transform:translate(-50%);z-index:10000;font-family:"Press Start 2P",monospace;font-size:12px;color:#555;letter-spacing:.1em;pointer-events:none}.windows-container{position:absolute;inset:0;overflow:hidden}.mac-win{position:absolute;border:2px solid;border-color:#fff #808080 #808080 #fff;box-shadow:inset 1px 1px #dfdfdf,inset -1px -1px #404040,4px 4px 12px #0009;background:silver;overflow:hidden;will-change:transform}.mac-win-titlebar{height:22px;background-image:repeating-linear-gradient(to bottom,#c8c8c8 0px 1px,#e8e8e8 1px 2px);display:flex;align-items:center;padding:0 4px;border-bottom:1px solid #808080;-webkit-user-select:none;user-select:none;cursor:grab}.mac-win-close{width:14px;height:14px;border:1px solid;border-color:#fff #404040 #404040 #fff;background:silver;display:flex;align-items:center;justify-content:center;font-size:9px;line-height:1;color:#000;cursor:pointer;flex-shrink:0}.mac-win-close:hover{background:#e0e0e0}.mac-win-close:active{border-color:#404040 #fff #fff #404040}.mac-win-title{flex:1;text-align:center;font-family:VT323,monospace;font-size:13px;color:#000;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 4px}.mac-win-content{background:#1a1a2e;width:100%;aspect-ratio:4/3;overflow:hidden;display:flex;align-items:center;justify-content:center}.mac-win-content video,.mac-win-content img{width:100%;height:100%;object-fit:cover;display:block}.mac-win-content .placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-family:"Press Start 2P",monospace;font-size:8px;color:#fff3;text-align:center;line-height:1.6}.mac-win-resize{position:absolute;bottom:0;right:0;width:16px;height:16px;cursor:nwse-resize;background:linear-gradient(135deg,transparent 30%,#808080 30%,#808080 40%,transparent 40%,transparent 50%,#808080 50%,#808080 60%,transparent 60%,transparent 70%,#808080 70%,#808080 80%,transparent 80%)}.mac-win.poof{animation:poof .35s ease-in forwards}@keyframes poof{0%{transform:scale(1) rotate(0);opacity:1}50%{transform:scale(1.2) rotate(10deg);opacity:.5}to{transform:scale(0) rotate(30deg);opacity:0}}.wheel-container{position:fixed;bottom:20px;right:20px;z-index:10001;width:70px;height:70px;cursor:pointer;border-radius:50%;transition:transform .2s}.wheel-container:hover{transform:scale(1.1)}.wheel-container:active{transform:scale(.95)}.wheel-svg{width:100%;height:100%;transition:transform 2.6s cubic-bezier(.17,.67,.12,.99)}.mode-btn{position:fixed;top:16px;right:16px;z-index:10000;font-family:"Press Start 2P",monospace;font-size:9px;color:#666;background:#0a0a0fcc;border:1px solid #333;padding:8px 14px;cursor:pointer;transition:color .2s,border-color .2s;letter-spacing:.05em}.mode-btn:hover{color:#fff;border-color:#888}.audio-btns{position:fixed;bottom:28px;left:50%;transform:translate(-50%);z-index:10001;display:flex;gap:16px}.audio-btn{position:relative;width:48px;height:48px;border-radius:50%;border:2px solid var(--btn-color, rgba(255,255,255,.25));background:#0a0a0fb3;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:border-color .3s,transform .2s,background .3s,box-shadow .3s}.audio-btn:hover{transform:scale(1.12);box-shadow:0 0 16px var(--btn-glow, rgba(255,255,255,.15))}.audio-btn:active{transform:scale(.92)}.audio-btn.playing{background:#ffffff14;box-shadow:0 0 20px var(--btn-glow, rgba(255,255,255,.2))}.audio-btn svg{width:18px;height:18px;fill:var(--btn-color, rgba(255,255,255,.7));transition:fill .3s}.audio-btn:hover svg{fill:var(--btn-color-bright, #fff)}.audio-btn.playing svg{fill:var(--btn-color-bright, #fff)}.audio-btn.audio-yellow{--btn-color: rgba(255, 200, 50, .5);--btn-color-bright: #ffd644;--btn-glow: rgba(255, 200, 50, .25)}.audio-btn.audio-yellow.playing{border-color:#ffc832b3}.audio-btn.audio-red{--btn-color: rgba(220, 60, 50, .5);--btn-color-bright: #e84040;--btn-glow: rgba(220, 60, 50, .25)}.audio-btn.audio-red.playing{border-color:#dc3c32b3}.audio-btn.playing:before{content:"";position:absolute;inset:-5px;border-radius:50%;border:1px solid var(--btn-color, rgba(255,255,255,.2));animation:audio-pulse 2s ease-out infinite}@keyframes audio-pulse{0%{transform:scale(1);opacity:1}to{transform:scale(1.5);opacity:0}}.layer-scroller{position:absolute;inset:0;overflow:hidden}.layer-stage{position:relative;width:100%;height:300vh;background:#060610}.layer{position:absolute;overflow:hidden}.layer-media{width:100%;height:100%;object-fit:cover;display:block;clip-path:inset(50% 50% 50% 50%)}.layer-border{position:absolute;inset:0;border:.5px solid rgba(255,255,255,.25);clip-path:inset(50% 50% 50% 50%);pointer-events:none;z-index:1}.collage-grid{display:grid;grid-template-columns:repeat(5,1fr);grid-template-rows:repeat(3,1fr);width:100%;height:100vh;gap:2px;background:#060610}.grid-cell{position:relative;overflow:hidden;background:#0a0a14}.grid-cell:after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:repeating-linear-gradient(var(--mask-angle, 0deg),transparent 0,transparent var(--stripe-open, 20px),#060610 var(--stripe-open, 20px),#060610 var(--stripe-size, 40px))}.grid-cell.stripe-v:after{animation:stripe-v var(--mask-speed, 10s) linear infinite;animation-delay:var(--anim-delay, 0s)}.grid-cell.stripe-h:after{animation:stripe-h var(--mask-speed, 10s) linear infinite;animation-delay:var(--anim-delay, 0s)}.grid-cell.stripe-diag:after{animation:stripe-diag var(--mask-speed, 10s) linear infinite;animation-delay:var(--anim-delay, 0s)}.grid-cell.stripe-diag-r:after{animation:stripe-diag-r var(--mask-speed, 10s) linear infinite;animation-delay:var(--anim-delay, 0s)}@keyframes stripe-v{0%{background-position:0 0}to{background-position:0 200px}}@keyframes stripe-h{0%{background-position:0 0}to{background-position:200px 0}}@keyframes stripe-diag{0%{background-position:0 0}to{background-position:200px 200px}}@keyframes stripe-diag-r{0%{background-position:0 0}to{background-position:-200px 200px}}.grid-media{width:100%;height:100%;object-fit:cover;display:block}.kb-zoom-in{animation:kb-zoom-in 20s ease-in-out infinite alternate}.kb-zoom-out{animation:kb-zoom-out 18s ease-in-out infinite alternate}.kb-pan-left{animation:kb-pan-left 24s ease-in-out infinite alternate}.kb-pan-right{animation:kb-pan-right 22s ease-in-out infinite alternate}.kb-pan-up{animation:kb-pan-up 20s ease-in-out infinite alternate}@keyframes kb-zoom-in{0%{transform:scale(1.05)}to{transform:scale(1.2)}}@keyframes kb-zoom-out{0%{transform:scale(1.25)}to{transform:scale(1.05)}}@keyframes kb-pan-left{0%{transform:scale(1.2) translate(5%)}to{transform:scale(1.2) translate(-5%)}}@keyframes kb-pan-right{0%{transform:scale(1.2) translate(-5%)}to{transform:scale(1.2) translate(5%)}}@keyframes kb-pan-up{0%{transform:scale(1.15) translateY(4%)}to{transform:scale(1.15) translateY(-4%)}}.editorial-btn{position:fixed;top:16px;right:120px;z-index:10000;font-family:"Noto Serif TC",Hiragino Mincho ProN,Yu Mincho,serif;font-size:13px;font-weight:700;color:#888;background:#0a0a0fcc;border:1px solid #333;padding:6px 14px;cursor:pointer;transition:color .2s,border-color .2s;letter-spacing:.1em}.editorial-btn:hover{color:#fff;border-color:#888}.editorial-overlay{position:fixed;inset:0;z-index:9998;pointer-events:none;opacity:0;transition:opacity .8s ease;background:#00000059;mix-blend-mode:normal;font-family:"Noto Serif TC",Hiragino Mincho ProN,Yu Mincho,MS Mincho,serif;color:#ffffffe6}.editorial-overlay.active{opacity:1}.ed-block{position:absolute;white-space:pre-line}.ed-vert{writing-mode:vertical-rl;text-orientation:mixed}.ed-body{font-size:9px;line-height:2;letter-spacing:.05em;font-family:Hiragino Kaku Gothic ProN,Noto Sans JP,DM Sans,sans-serif;font-weight:300}.ed-contents{font-size:clamp(11px,1.5vw,15px);line-height:2.4;letter-spacing:.08em}.ed-num{font-family:DM Sans,sans-serif;font-weight:300;font-size:8px;letter-spacing:.15em;opacity:.5;margin-right:8px}.ed-rule-h{position:absolute;height:.5px;background:#fff3}.ed-rule-v{position:absolute;width:.5px;background:#ffffff26}.effects-canvas{position:fixed;inset:0;z-index:9999;pointer-events:none;mix-blend-mode:screen}.fx-vhs{filter:saturate(1.8) contrast(1.3) brightness(1.1)}.fx-vhs .mac-win{animation:vhs-wobble .1s steps(2) infinite}@keyframes vhs-wobble{0%{filter:hue-rotate(0deg)}50%{filter:hue-rotate(5deg) brightness(1.1)}to{filter:hue-rotate(-3deg)}}.fx-chromatic .mac-win{text-shadow:2px 0 #ff0000,-2px 0 #0000ff;animation:chroma-shift 2s ease-in-out infinite}@keyframes chroma-shift{0%,to{filter:none;box-shadow:4px 0 8px #ff00004d,-4px 0 8px #0000ff4d}50%{filter:saturate(2);box-shadow:8px 0 16px #ff000080,-8px 0 16px #0000ff80}}.fx-kaleidoscope{animation:kaleido-hue 4s linear infinite}@keyframes kaleido-hue{0%{filter:hue-rotate(0deg) saturate(1.5)}to{filter:hue-rotate(360deg) saturate(1.5)}}.fx-datamosh{filter:contrast(2.2) saturate(3);image-rendering:pixelated}.fx-datamosh .mac-win-content{image-rendering:pixelated}.fx-datamosh .mac-win-content video,.fx-datamosh .mac-win-content img,.fx-datamosh .mac-win-content .placeholder{image-rendering:pixelated;filter:contrast(1.5)}.fx-scanlines{filter:sepia(.3) hue-rotate(80deg) brightness(.65) contrast(1.6)}.fx-funhouse{animation:funhouse-warp 5s ease-in-out infinite}@keyframes funhouse-warp{0%,to{transform:perspective(800px) rotateY(0) scaleX(1)}25%{transform:perspective(800px) rotateY(2deg) scaleX(1.03)}50%{transform:perspective(800px) rotateY(-1deg) scaleX(.97)}75%{transform:perspective(800px) rotateY(1.5deg) scaleX(1.02)}}.fx-negative{filter:invert(1) contrast(1.4) brightness(1.1)}.fx-thermal{filter:saturate(3) sepia(.6) hue-rotate(-20deg) contrast(1.6) brightness(.85)}.fx-deepfry{filter:saturate(4) contrast(2.2) brightness(1.3);animation:deepfry-pulse .5s ease-in-out infinite alternate}@keyframes deepfry-pulse{0%{filter:saturate(4) contrast(2.2) brightness(1.3)}to{filter:saturate(5) contrast(2.5) brightness(1.4) hue-rotate(10deg)}}
