:root{--font-title: "Cinzel", serif;--font-body: "Lato", sans-serif;--color-dark: #0a0a0a;--color-light: #f5f5f5;--color-accent: #a0c4ff;--color-gold: #d4af37;--transition-slow: 2s cubic-bezier(.22, 1, .36, 1);--transition-fast: .4s cubic-bezier(.25, 1, .5, 1);--glass-bg: rgba(255, 255, 255, .05);--glass-border: 1px solid rgba(255, 255, 255, .1);--glass-blur: blur(20px)}body{margin:0;padding:0;overflow:hidden;background-color:var(--color-dark);font-family:var(--font-body);color:var(--color-light);-webkit-user-select:none;user-select:none;cursor:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}button,a{cursor:none}canvas{display:block;width:100vw;height:100vh}#landing-screen{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;justify-content:center;align-items:center;flex-direction:column;background-color:var(--color-dark);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);z-index:100;transition:opacity 1.5s ease-in-out;overflow:hidden}#landing-ambient-bg{position:absolute;top:-20%;left:-20%;width:140%;height:140%;background-color:#020305;background-image:radial-gradient(circle at 20% 30%,rgba(255,255,255,.06) 0%,transparent 40%),radial-gradient(circle at 80% 70%,rgba(160,196,255,.08) 0%,transparent 50%),radial-gradient(circle at 50% 50%,rgba(30,60,90,.3) 0%,transparent 80%),radial-gradient(circle at 10% 90%,rgba(255,255,255,.04) 0%,transparent 30%),radial-gradient(circle at 40% 10%,rgba(255,255,255,.1) 0%,transparent 10%),radial-gradient(circle at 70% 80%,rgba(255,255,255,.05) 0%,transparent 15%),radial-gradient(circle at 90% 20%,rgba(255,255,255,.08) 0%,transparent 20%);background-size:150% 150%,200% 200%,100% 100%,120% 120%,300% 300%,250% 250%,400% 400%;z-index:-1;animation:ambientBreathe 25s cubic-bezier(.22,1,.36,1) infinite alternate;pointer-events:none;filter:blur(15px)}#landing-ambient-bg:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background-image:radial-gradient(circle at 50% 50%,rgba(255,255,255,.1) 0%,transparent 60%);background-size:100% 100%;animation:slowPulse 10s cubic-bezier(.4,0,.2,1) infinite alternate;pointer-events:none}@keyframes ambientBreathe{0%{background-position:0% 0%,100% 100%,50% 50%,0% 100%,10% 20%,80% 90%,20% 80%;transform:scale(1) rotate(0);opacity:.6}to{background-position:100% 100%,0% 0%,50% 50%,100% 0%,90% 80%,20% 10%,80% 20%;transform:scale(1.05) rotate(1deg);opacity:.9}}@keyframes slowPulse{0%{opacity:.3;transform:scale(.95)}to{opacity:.8;transform:scale(1.05)}}#landing-screen.fade-out{opacity:0;pointer-events:none}#landing-screen .content{text-align:center;animation:fadeIn 2s cubic-bezier(.22,1,.36,1)}#landing-screen h1{font-family:var(--font-title);font-size:6rem;letter-spacing:.8rem;margin:0 0 2rem;text-transform:uppercase;font-weight:400;color:#fffffff2;text-shadow:0 4px 20px rgba(0,0,0,.8),0 0 40px rgba(160,196,255,.2);opacity:0;animation:slowRevealTitle 3s cubic-bezier(.22,1,.36,1) forwards .2s}@keyframes slowRevealTitle{0%{opacity:0;transform:translateY(20px);letter-spacing:.8rem;filter:blur(10px)}to{opacity:1;transform:translateY(0);letter-spacing:2rem;filter:blur(0px)}}#landing-screen .subtitle{font-size:1.2rem;opacity:0;margin-bottom:4rem;letter-spacing:2px;font-weight:300;text-transform:uppercase;color:#ffffffb3;animation:slowRevealSubtitle 3s cubic-bezier(.22,1,.36,1) forwards .8s}@keyframes slowRevealSubtitle{0%{opacity:0;transform:translateY(10px);letter-spacing:2px}to{opacity:1;transform:translateY(0);letter-spacing:6px}}#start-btn{position:relative;background:#ffffff05;border:1px solid rgba(255,255,255,.15);color:var(--color-light);padding:1.4rem 5rem;font-family:var(--font-title);font-size:1.1rem;letter-spacing:4px;cursor:pointer;text-transform:uppercase;overflow:hidden;transition:all .5s cubic-bezier(.25,1,.5,1);opacity:0;animation:slideUp 1.5s cubic-bezier(.22,1,.36,1) forwards .8s;box-shadow:0 0 20px #0003}#start-btn:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.1),transparent);transform:translate(-100%);transition:transform .6s ease}#start-btn:hover{color:#fff;background:#ffffff14;border-color:#ffffff80;box-shadow:0 0 30px #ffffff1a;letter-spacing:6px;text-shadow:0 0 15px rgba(255,255,255,.8)}#start-btn:hover:before{transform:translate(100%)}.headphones-hint{margin-top:4rem;font-size:.8rem;opacity:0;font-style:italic;letter-spacing:1.5px;color:#fff6;animation:fadeIn 2s ease-out forwards 1.2s}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}#transition-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background-color:#000;opacity:0;pointer-events:none;transition:opacity 1s cubic-bezier(.4,0,.2,1);z-index:50}.active-transition{opacity:1!important}#ui{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:10;opacity:0;transition:opacity 1s ease-in-out}#ui.visible{opacity:1}#zone-label-container{position:absolute;top:35%;left:50%;width:auto;padding:3rem 5rem;border:1px solid rgba(255,255,255,.05);backdrop-filter:blur(15px);-webkit-backdrop-filter:blur(15px);border-radius:4px;background:#0a101a73;box-shadow:0 20px 60px #0000004d,inset 0 0 40px #ffffff05;display:flex;flex-direction:column;justify-content:center;align-items:center;transform:translate(-50%,-50%);pointer-events:none;opacity:0;transition:opacity 1.5s cubic-bezier(.22,1,.36,1)}#zone-label-container.visible{opacity:1}#zone-label{font-family:var(--font-title);font-size:5.5rem;letter-spacing:4rem;text-transform:uppercase;color:#fffffff2;text-shadow:0 4px 40px rgba(0,0,0,.9),0 0 80px rgba(255,255,255,.3);opacity:0;filter:blur(20px);transform:scale(1.05);transition:opacity 1.5s ease-out,filter 1.5s ease-out}@keyframes chromaticEnter{0%{opacity:0;filter:blur(35px);transform:scale(1.1);letter-spacing:4rem;text-shadow:-10px 0 30px rgba(255,0,0,.5),10px 0 30px rgba(0,255,255,.5)}60%{opacity:1;filter:blur(0px);transform:scale(1);letter-spacing:2rem;text-shadow:-2px 0 15px rgba(255,0,0,.2),2px 0 15px rgba(0,255,255,.2)}to{opacity:1;filter:blur(0px);transform:scale(1);letter-spacing:3rem;text-shadow:0 8px 40px rgba(0,0,0,.9),0 0 80px rgba(255,255,255,.4)}}#zone-label.label-visible{animation:chromaticEnter 6s cubic-bezier(.22,1,.36,1) forwards}#zone-subtitle{font-family:var(--font-body);font-size:1.5rem;letter-spacing:1.2rem;color:#fffffff2;text-transform:uppercase;margin-top:2rem;opacity:0;transform:translateY(20px);filter:blur(10px);transition:opacity 3s cubic-bezier(.22,1,.36,1) .5s,transform 3s cubic-bezier(.22,1,.36,1) .5s,filter 3s ease-out .5s;text-shadow:0 2px 8px rgba(0,0,0,1),0 4px 24px rgba(0,0,0,.95)}#zone-subtitle.visible{opacity:1;transform:translateY(0);filter:blur(0px)}#field-note-container{position:absolute;bottom:5rem;left:50%;transform:translate(-50%) translateY(20px);background:#0a101a33;backdrop-filter:blur(30px);-webkit-backdrop-filter:blur(30px);border:1px solid rgba(255,255,255,.05);padding:2.5rem 5rem;border-radius:4px;max-width:650px;text-align:center;opacity:0;transition:opacity 1.5s cubic-bezier(.22,1,.36,1),transform 1.5s cubic-bezier(.22,1,.36,1),filter 1.5s ease-out;pointer-events:none;z-index:20;box-shadow:0 20px 60px #00000080,inset 0 0 40px #ffffff05;filter:blur(10px)}#field-note-container.visible{opacity:1;transform:translate(-50%) translateY(0);filter:blur(0px)}#field-note-text{font-family:var(--font-body);font-size:1.15rem;letter-spacing:.15rem;color:#fffffff2;margin:0;line-height:2;font-weight:300;text-shadow:0 2px 20px rgba(0,0,0,.9)}.fade-in-word{opacity:0;display:inline-block;animation:wordPhysicalReveal 2.5s cubic-bezier(.22,1,.36,1) forwards;white-space:pre-wrap}@keyframes wordPhysicalReveal{0%{opacity:0;transform:translateY(20px);filter:blur(10px);color:#ffffff4d}to{opacity:1;transform:translateY(0);filter:blur(0px);color:#ffffffe6}}#controls-hint{position:absolute;bottom:3rem;left:3rem;font-size:.85rem;color:#ffffffb3;background:#0a101a26;padding:1.5rem 2.5rem;border-radius:4px;backdrop-filter:blur(15px);-webkit-backdrop-filter:blur(15px);border:1px solid rgba(255,255,255,.05);box-shadow:0 10px 30px #0003;transition:all .5s cubic-bezier(.22,1,.36,1);text-shadow:0 2px 10px rgba(0,0,0,.5)}#controls-hint:hover{background:#ffffff0d;border-color:#ffffff26;box-shadow:0 15px 40px #0000004d;color:#ffffffe6}#controls-hint p{margin:.5rem 0;letter-spacing:2px;font-weight:300;text-transform:uppercase;font-size:.8rem}.desktop-hint{display:block}.mobile-hint{display:none}#touch-overlay{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:40}.touch-feedback{position:absolute;pointer-events:none;opacity:0;transition:opacity .2s ease-out}.touch-feedback.visible{opacity:1}.touch-feedback .ring{position:absolute;top:50%;left:50%;width:80px;height:80px;border:1px solid rgba(255,255,255,.3);border-radius:50%;transform:translate(-50%,-50%);box-shadow:0 0 20px #ffffff1a;animation:pulseRing 2s infinite ease-in-out}.touch-feedback .dot{position:absolute;top:50%;left:50%;width:16px;height:16px;background:#fffffff2;border-radius:50%;transform:translate(-50%,-50%);box-shadow:0 0 15px #fffc,0 0 30px #a0c4ff66;transition:transform .05s linear}.hidden{display:none!important}@keyframes pulseRing{0%{transform:translate(-50%,-50%) scale(.9);opacity:.4}50%{transform:translate(-50%,-50%) scale(1.1);opacity:.7}to{transform:translate(-50%,-50%) scale(.9);opacity:.4}}@media(max-width:768px){#landing-screen h1{font-size:2.8rem;letter-spacing:.4rem;margin-bottom:1rem}#landing-screen .subtitle{font-size:.9rem;letter-spacing:2px;margin-bottom:3rem}#start-btn{padding:1rem 3rem;font-size:.9rem}#field-note-container{bottom:8rem;width:85%;padding:.8rem 1.2rem;font-size:.9rem}#controls-hint{left:50%;transform:translate(-50%);bottom:4rem;width:auto;padding:1rem 2rem;text-align:center;white-space:nowrap;border-radius:30px}.desktop-hint{display:none}.mobile-hint{display:block}#zone-label{font-size:2rem;letter-spacing:.5rem}#zone-label.label-visible{letter-spacing:.8rem!important}#touch-indicator .ring{width:100px;height:100px;border-width:1px}#touch-indicator .dot{width:20px;height:20px}#settings-btn{top:1rem;right:1rem}}::-webkit-scrollbar{display:none}#settings-btn{position:absolute;top:2rem;right:2rem;width:44px;height:44px;display:flex;justify-content:center;align-items:center;cursor:pointer;color:#ffffffb3;background:var(--glass-bg);border:var(--glass-border);border-radius:50%;backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);transition:all .3s ease;pointer-events:auto;z-index:100}#settings-btn:hover{color:#fff;background:#ffffff1a;transform:rotate(90deg)}#settings-menu{position:fixed;top:0;left:0;width:100%;height:100%;background:#0a1014d9;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);z-index:1000;display:flex;justify-content:center;align-items:center;opacity:0;pointer-events:none;transition:opacity .5s ease}#settings-menu:not(.hidden){opacity:1;pointer-events:auto}#settings-menu .menu-content{text-align:center;display:flex;flex-direction:column;gap:2rem;transform:translateY(20px);transition:transform .5s cubic-bezier(.22,1,.36,1)}#settings-menu:not(.hidden) .menu-content{transform:translateY(0)}#settings-menu h2{font-family:var(--font-title);font-size:2rem;letter-spacing:.8rem;color:#ffffffe6;margin-bottom:1rem}#settings-menu button{background:transparent;border:1px solid rgba(255,255,255,.2);color:var(--color-light);padding:1rem 3rem;font-family:var(--font-title);font-size:1rem;letter-spacing:.2rem;cursor:pointer;transition:all .3s ease;text-transform:uppercase}#settings-menu button:hover{background:#ffffff1a;border-color:#fff9;letter-spacing:.3rem}#settings-menu .controls-reminder{margin-top:2rem;color:#ffffff80;font-size:.8rem;letter-spacing:.1rem}#grain-overlay{position:fixed;top:0;left:0;width:100%;height:100%;z-index:200;pointer-events:none;opacity:.05;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E")}#ui-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:radial-gradient(circle at center,transparent 50%,rgba(10,16,26,.4) 100%);pointer-events:none;z-index:5}#cursor{width:6px;height:6px;background:#fff;border-radius:50%;position:fixed;top:0;left:0;pointer-events:none;z-index:9999;mix-blend-mode:difference;transition:width .3s cubic-bezier(.22,1,.36,1),height .3s cubic-bezier(.22,1,.36,1),opacity .3s ease,background-color .3s ease;will-change:transform;transform:translate(-50%,-50%);opacity:1;box-shadow:0 0 8px #ffffffe6}#cursor.active{width:12px;height:12px;background:var(--color-accent);box-shadow:0 0 30px var(--color-accent);mix-blend-mode:normal}#cursor.hidden{opacity:0}#cursor-follower{width:40px;height:40px;background:radial-gradient(circle,rgba(255,255,255,.1) 0%,transparent 70%);border:1px solid rgba(255,255,255,.1);border-radius:50%;position:fixed;top:0;left:0;pointer-events:none;z-index:9998;mix-blend-mode:normal;transition:width .4s cubic-bezier(.22,1,.36,1),height .4s cubic-bezier(.22,1,.36,1),opacity .4s ease,background .4s ease,border-color .4s ease;will-change:transform;transform:translate(-50%,-50%)}#cursor-follower.active{width:80px;height:80px;background:radial-gradient(circle,rgba(255,255,255,.15) 0%,transparent 80%);border-color:#fff6;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}.key{display:inline-block;padding:2px 6px;border:1px solid rgba(255,255,255,.3);border-radius:4px;background:#ffffff0d;font-size:.7rem;margin:0 2px;font-family:var(--font-body);font-weight:400}#start-btn{animation:breathe 3s infinite ease-in-out;text-shadow:0 0 10px rgba(255,255,255,.3)}@keyframes breathe{0%,to{opacity:.8;transform:scale(1)}50%{opacity:1;transform:scale(1.02)}}#touch-indicator .ring{width:60px;height:60px;border:1px solid rgba(255,255,255,.5);box-shadow:0 0 20px #a0c4ff33}#touch-indicator .dot{width:12px;height:12px;background:#fff;box-shadow:0 0 10px #fff}@media(max-width:768px){#settings-btn{width:48px;height:48px;top:20px;right:20px;background:#0a101499}#touch-indicator .ring{width:80px;height:80px}}.cursor-ripple{position:fixed;width:20px;height:20px;border:1px solid rgba(255,255,255,.6);border-radius:50%;pointer-events:none;z-index:9997;transform:translate(-50%,-50%) scale(1);animation:rippleEffect .6s cubic-bezier(.22,1,.36,1) forwards}@keyframes rippleEffect{0%{transform:translate(-50%,-50%) scale(1);opacity:.8}to{transform:translate(-50%,-50%) scale(4);opacity:0}}#ui-overlay{animation:breatheVignette 8s ease-in-out infinite alternate}@keyframes breatheVignette{0%{opacity:.7}to{opacity:1}}
