.fade-enter-active{transition:opacity .4s cubic-bezier(.16,1,.3,1)}.fade-leave-active{transition:opacity .15s ease}.fade-enter-from,.fade-leave-to{opacity:0}@media (prefers-reduced-motion: reduce){.fade-enter-active,.fade-leave-active{transition:none}}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:300 700;font-display:swap;src:url(/fonts/space-grotesk-v22-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:300 700;font-display:swap;src:url(/fonts/space-grotesk-v22-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:300 700;font-display:swap;src:url(/fonts/space-grotesk-v22-vietnamese.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}*{margin:0;padding:0;box-sizing:border-box}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}body{background:#000;overflow:hidden;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overscroll-behavior-y:none;-webkit-overflow-scrolling:touch}nav{position:absolute;top:20px;left:50%;transform:translate(-50%);z-index:10;background:#ffffff1a;padding:10px 20px;border-radius:30px;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);display:flex;gap:20px}nav a{color:#ffffffb3;text-decoration:none;font-size:1rem;text-transform:uppercase;letter-spacing:1px;transition:color .3s}nav a:hover,nav a.active{color:#fff;text-shadow:0 0 10px rgba(255,255,255,.5)}canvas{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1;pointer-events:auto;touch-action:manipulation;-ms-touch-action:manipulation}.overlay{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:2;color:#fffc;text-align:center;pointer-events:none;-webkit-user-select:none;user-select:none}h1{font-size:3rem;font-weight:300;letter-spacing:2px;margin-bottom:10px;text-transform:uppercase;background:linear-gradient(45deg,#f0c,#33f);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}#toggleUI{position:fixed!important;top:20px!important;right:20px!important;width:35px!important;height:35px!important;min-width:35px!important;min-height:35px!important;background:#ffffff1f!important;border-radius:50%!important;display:flex!important;justify-content:center!important;align-items:center!important;cursor:pointer!important;-webkit-backdrop-filter:blur(5px)!important;backdrop-filter:blur(5px)!important;transition:transform .3s,background .3s,opacity .3s!important;z-index:99999!important;color:#ffffffb3!important;font-weight:400!important;font-size:.85rem!important;border:1px solid rgba(255,255,255,.15)!important;-webkit-user-select:none!important;user-select:none!important;box-shadow:0 2px 8px #0000004d!important;opacity:1!important;pointer-events:auto!important;visibility:visible!important;margin:0!important;padding:0!important}#toggleUI:hover{transform:scale(1.1)!important;background:#ffffff26!important;border-color:#ffffff40!important;color:#fffc!important;box-shadow:0 2px 12px #0006!important}body.ui-hidden nav,body.ui-hidden .overlay,body.ui-hidden .controls,body.ui-hidden .controls-instruction{opacity:0;pointer-events:none;transition:opacity .3s}#infoBtn{position:absolute;bottom:20px;right:20px;width:40px;height:40px;background:#ffffff1a;border-radius:50%;display:flex;justify-content:center;align-items:center;cursor:pointer;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);transition:transform .3s,background .3s,opacity .3s;z-index:100;color:#fff;font-weight:700;font-size:1.2rem;border:1px solid rgba(255,255,255,.2)}#infoBtn:hover{transform:scale(1.1);background:#fff3}.modal{position:fixed;top:0;left:0;width:100%;height:100%;background:#000c;display:flex;justify-content:center;align-items:center;z-index:1000;opacity:1;transition:opacity .3s}.modal.hidden{opacity:0;pointer-events:none}.modal-content{background:#141414f2;padding:30px;border-radius:15px;max-width:500px;width:90%;color:#eee;position:relative;border:1px solid rgba(255,255,255,.1);box-shadow:0 0 30px #00000080}.close-modal{position:absolute;top:15px;right:15px;font-size:1.5rem;cursor:pointer;color:#aaa;transition:color .3s}.close-modal:hover{color:#fff}.modal-content h2{margin-top:0;color:#fff;border-bottom:1px solid rgba(255,255,255,.1);padding-bottom:10px;margin-bottom:15px}.modal-content p{line-height:1.6;margin-bottom:15px;color:#ccc}.modal-content code{background:#ffffff1a;padding:2px 5px;border-radius:3px;font-family:monospace;color:#ff79c6}.controls{position:absolute;top:20px;left:20px;background:#141414cc;padding:20px;border-radius:15px;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);border:1px solid rgba(255,255,255,.1);color:#eee;width:200px;z-index:50}.controls h3{margin-top:0;margin-bottom:15px;font-size:1.2rem;border-bottom:1px solid rgba(255,255,255,.1);padding-bottom:5px}.control-group{margin-bottom:15px}.control-group label{display:block;margin-bottom:5px;font-size:.9rem;color:#aaa}.control-group input[type=range]{width:100%}.control-group button{width:100%;padding:8px;margin-top:5px;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);color:#fff;border-radius:5px;cursor:pointer;transition:background .3s}.control-group button:hover{background:#fff3}p{font-size:1.2rem;font-weight:200}@media (max-width: 768px){h1{font-size:1.5rem;letter-spacing:1px;line-height:1.2}p{font-size:.9rem;line-height:1.4}nav{top:10px;padding:8px 12px;gap:8px;width:calc(100% - 20px);max-width:100%;overflow-x:auto;justify-content:flex-start;-webkit-overflow-scrolling:touch;scrollbar-width:thin;min-height:44px}nav a{font-size:.7rem;white-space:nowrap;padding:6px 10px;min-height:32px;display:flex;align-items:center}.overlay{width:90%;text-align:center;padding:0 10px;top:45%;transform:translate(-50%,-50%)}.modal-content{width:95%;padding:20px;max-height:85vh;overflow-y:auto}.modal-content h2{font-size:1.3rem}.modal-content p{font-size:.9rem}.controls{top:auto;bottom:70px;left:10px;right:10px;width:calc(100% - 20px);max-width:calc(100% - 20px);max-height:40vh;overflow-y:auto;padding:15px;font-size:.9rem}.controls h3{font-size:1rem;margin-bottom:10px}.control-group{margin-bottom:12px}.control-group label{font-size:.85rem}.control-group button{padding:12px;font-size:.9rem;min-height:44px;min-width:80px}#toggleUI{top:10px;right:10px;left:auto;width:40px;height:40px;font-size:.9rem}#infoBtn{bottom:20px;right:20px;width:50px;height:50px;font-size:1.5rem;min-width:50px;min-height:50px}.controls-instruction{top:60px;left:10px;right:10px;width:auto;font-size:.8rem;padding:8px;max-width:calc(100% - 20px)}}@media (max-width: 480px){h1{font-size:1.2rem}p{font-size:.8rem}nav{padding:6px 10px;gap:6px}nav a{font-size:.65rem;padding:3px 6px}.overlay{width:95%}.modal-content{width:98%;padding:15px}.controls{bottom:60px;padding:12px;font-size:.85rem}.controls h3{font-size:.95rem}.control-group label{font-size:.8rem}.control-group button{padding:10px;font-size:.85rem;min-height:44px;min-width:70px}#toggleUI{top:8px;right:8px;left:auto;width:35px;height:35px;font-size:.85rem}#infoBtn{width:45px;height:45px;font-size:1.3rem;bottom:15px;right:15px}.controls-instruction{font-size:.75rem;padding:6px}}body.ui-hidden nav,body.ui-hidden .overlay,body.ui-hidden .controls,body.ui-hidden .controls-instruction,body.ui-hidden .nav-wrapper,body.ui-hidden .info-trigger,body.ui-hidden .share-toolbar{opacity:0;pointer-events:none;transition:opacity .3s}body.ui-hidden #infoBtn{opacity:0;pointer-events:none}body.ui-hidden #toggleUI{opacity:1!important;pointer-events:auto!important;visibility:visible!important;display:flex!important}
