.landing-main{--bg-color:#050505;--text-color:#39ff14;--accent-color:#39ff14;--neon-green:#39ff14;--primary-color:#2a2a2a;--font-space:"Space Grotesk",system-ui,sans-serif;position:relative;width:100vw;height:100vh;margin:0;padding:0;overflow:hidden;background-color:var(--bg-color);color:var(--text-color);font-family:Inter,system-ui,-apple-system,sans-serif}.landing-main .webgl-container{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1;pointer-events:auto}.logo-container{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) scale(1);width:250px;height:250px;background-color:transparent;border-radius:50%;z-index:10;display:flex;justify-content:center;align-items:center;pointer-events:auto;cursor:pointer}.logo-image{display:none}.solid-ui-container{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:100vw;height:100vh;pointer-events:none;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:20px;z-index:20;opacity:0;visibility:hidden;transition:opacity 1s cubic-bezier(.16,1,.3,1),visibility 1s}.solid-ui-container.visible{opacity:1;visibility:visible}.solid-logo-wrapper{position:absolute;width:250px;height:250px;display:flex;justify-content:center;align-items:center}.logo-half{position:absolute;width:100%;height:100%;background-image:url(/logolanding.png);background-size:contain;background-position:50%;background-repeat:no-repeat;transition:transform 1.2s cubic-bezier(.85,0,.15,1),filter .8s ease}.logo-left{clip-path:polygon(0 0,50% 0,50% 100%,0 100%)}.logo-left,.logo-right{filter:drop-shadow(0 0 0 rgba(57,255,20,0))}.logo-right{clip-path:polygon(50% 0,100% 0,100% 100%,50% 100%)}.solid-logo-wrapper.split .logo-left{transform:translateX(-140px);filter:drop-shadow(-10px 0 20px rgba(57,255,20,.15))}.solid-logo-wrapper.split .logo-right{transform:translateX(140px);filter:drop-shadow(10px 0 20px rgba(57,255,20,.15))}.hero-cta-group{display:flex;flex-direction:column;align-items:center;gap:15px;pointer-events:none;opacity:0;transform:translateY(20px);transition:all .8s cubic-bezier(.16,1,.3,1) .6s;z-index:25}.hero-cta-group.visible{opacity:1;transform:translateY(0);pointer-events:auto}.hero-button{position:relative;overflow:hidden;padding:16px 48px;background-color:#050505;color:var(--neon-green);border:1px solid rgba(57,255,20,.4);font-family:var(--font-space);font-size:.95rem;font-weight:600;letter-spacing:4px;text-transform:uppercase;cursor:pointer;box-shadow:0 0 20px rgba(57,255,20,0),inset 0 0 10px rgba(57,255,20,0);backdrop-filter:blur(4px);transition:all .6s cubic-bezier(.16,1,.3,1)}.hero-button span{position:relative;z-index:2;text-shadow:0 0 8px rgba(57,255,20,.4);transition:color .3s,text-shadow .3s}.hero-button:after,.hero-button:before{content:"";position:absolute;width:6px;height:6px;border:1px solid var(--neon-green);transition:all .3s ease;opacity:.5}.hero-button:before{top:4px;left:4px;border-right:none;border-bottom:none}.hero-button:after{bottom:4px;right:4px;border-left:none;border-top:none}.button-sweep{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(57,255,20,.15),transparent);transform:skewX(-20deg);z-index:1;transition:left .6s cubic-bezier(.16,1,.3,1)}.hero-button:hover .button-sweep{left:100%}.hero-button:hover{background-color:rgba(57,255,20,.05);color:var(--neon-green);border:1px solid var(--neon-green);box-shadow:0 0 30px rgba(57,255,20,.15),inset 0 0 15px rgba(57,255,20,.1);transform:scale(1.02)}.hero-button:hover span{text-shadow:0 0 12px rgba(57,255,20,.8),0 0 24px rgba(57,255,20,.4)}.hero-button:hover:after,.hero-button:hover:before{opacity:1;box-shadow:0 0 5px var(--neon-green)}.home-link-button{background:none;border:none;color:var(--neon-green);font-family:var(--font-space);font-size:.72rem;font-weight:500;letter-spacing:2px;text-transform:uppercase;cursor:pointer;padding:10px 20px;transition:all .6s cubic-bezier(.16,1,.3,1);opacity:0;pointer-events:none;position:absolute;bottom:40px;left:50%;transform:translateX(-50%) translateY(10px);z-index:30}.home-link-button.visible{opacity:.5;transform:translateX(-50%) translateY(0);pointer-events:auto}.home-link-button:hover{opacity:1!important;text-shadow:0 0 10px var(--neon-green)}.home-link-button.action-logout{color:rgba(255,68,68,.7)}.home-link-button.action-logout:hover{color:#ff4444;text-shadow:0 0 10px rgba(255,68,68,.6)}.logged-in-hero{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;animation:fadeSlideIn .6s cubic-bezier(.16,1,.3,1) both}.welcome-container{display:flex;flex-direction:row;align-items:baseline;gap:12px;margin-bottom:8px}.welcome-greeting{font-size:.75rem;font-weight:400;letter-spacing:3px;margin:0;line-height:1}.welcome-greeting,.welcome-name{color:#ffffff;font-family:var(--font-space);text-transform:uppercase}.welcome-name{font-size:1.4rem;font-weight:700;letter-spacing:4px;margin:0 0 8px;line-height:1.2;text-shadow:0 0 20px rgba(255,255,255,.3)}.goto-home-btn{background:none;border:none;color:var(--neon-green);font-family:var(--font-space);font-size:.72rem;font-weight:500;letter-spacing:2px;text-transform:uppercase;cursor:pointer;padding:10px 20px;min-height:44px;transition:color .3s ease,text-shadow .3s ease,transform .3s ease}.goto-home-btn:hover{color:var(--neon-green);text-shadow:0 0 10px rgba(57,255,20,.4)}@media (max-width:768px){body,html{overflow-x:hidden}.landing-main,.solid-ui-container{height:100dvh}.solid-logo-wrapper{transition:transform 1.2s cubic-bezier(.85,0,.15,1)}.solid-logo-wrapper,.solid-logo-wrapper.split{transform:scale(.45)}.solid-logo-wrapper.split .logo-left{transform:translateX(-120px)}.solid-logo-wrapper.split .logo-right{transform:translateX(120px)}.hero-button{padding:14px 10px;font-size:.72rem;width:220px;text-align:center;min-height:48px;letter-spacing:1.5px}.welcome-name{font-size:1.1rem;letter-spacing:3px;margin-bottom:0}.welcome-greeting{font-size:.68rem;letter-spacing:2px}.welcome-container{flex-direction:column;gap:4px;align-items:center;margin-bottom:0}.goto-home-btn{font-size:.68rem;padding:12px 16px;min-height:48px}.home-link-button{bottom:max(28px,env(safe-area-inset-bottom,20px))}}