:root{--primary:#63ef78;--secondary:#ffcf57;--bg:#080b0d}body,html{background-color:var(--bg);touch-action:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;margin:0;padding:0;font-family:Barlow,sans-serif;overflow:hidden}#app{width:100vw;height:100dvh}canvas{display:block}body.legal-locked{overflow:hidden}.security-gate{z-index:400;box-sizing:border-box;color:#f3f5f4;touch-action:pan-y;-webkit-user-select:text;user-select:text;background:#070909;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.security-gate[hidden]{display:none}.security-card{width:min(720px,100%)}.security-brand{color:#63ef78;letter-spacing:2.5px;margin-bottom:18px;font:900 14px Barlow,sans-serif}.security-brand a{color:inherit;border-bottom:1px solid #63ef7873;text-decoration:none}.security-brand a:hover,.security-brand a:focus-visible{color:#fff;border-bottom-color:#fff}.security-card h1{margin:0 0 14px;font:800 clamp(34px,6vw,54px)/1 Barlow Condensed,sans-serif}.security-card>p:not(.security-status){color:#aeb6b0;max-width:650px;margin:0 0 32px;font-size:17px;line-height:1.55}.turnstile-widget{min-height:68px}.security-status{color:#91a096;margin-top:16px;font-size:13px;font-weight:700}.security-status.is-error{color:#ff8d83}.legal-gate{z-index:300;padding:max(18px, env(safe-area-inset-top)) max(18px, env(safe-area-inset-right)) max(18px, env(safe-area-inset-bottom)) max(18px, env(safe-area-inset-left));box-sizing:border-box;touch-action:pan-y;-webkit-user-select:text;user-select:text;background:radial-gradient(circle at 50% 20%,#28452fb8,#030508f5 62%),#030508f5;place-items:center;display:grid;position:fixed;inset:0;overflow-y:auto}.legal-gate[hidden]{display:none}.legal-card{box-sizing:border-box;border:1px solid #63ef786b;border-top:5px solid var(--primary);color:#edf8ef;background:#0a0f11f7;width:min(620px,100%);padding:clamp(24px,5vw,46px);box-shadow:0 28px 100px #000000a6,0 0 45px #63ef781f}.legal-brand{color:#a9b8ac;letter-spacing:2.2px;font:800 12px Barlow,sans-serif}.legal-brand span{color:var(--primary);margin-right:8px;font-size:20px}.legal-kicker{color:var(--secondary);letter-spacing:2px;margin:24px 0 8px;font:800 11px Barlow,sans-serif}.legal-card h1{letter-spacing:-.5px;text-transform:uppercase;margin:0;font:900 clamp(38px,8vw,66px)/.94 Barlow Condensed,sans-serif}.legal-intro{color:#c8d3ca;margin:20px 0;font-size:16px;line-height:1.55}.legal-summary{color:#eef4ef;gap:10px;margin:0 0 22px;padding-left:22px;font-size:14px;line-height:1.45;display:grid}.legal-summary li::marker{color:var(--primary)}.legal-doc-buttons,.legal-tabs{flex-wrap:wrap;gap:10px;display:flex}.legal-doc-buttons button,.legal-tabs button,.legal-close,.legal-footer button{color:#dcffe2;letter-spacing:.5px;cursor:pointer;background:#63ef7814;border:1px solid #63ef7880;font:800 12px Barlow,sans-serif}.legal-doc-buttons button{min-height:42px;padding:0 15px}.legal-doc-buttons button:hover,.legal-doc-buttons button:focus-visible,.legal-tabs button.is-active{border-color:var(--primary);background:#63ef7833}.legal-check{color:#f7faf7;cursor:pointer;align-items:flex-start;gap:12px;margin:24px 0 16px;font-size:14px;font-weight:700;line-height:1.4;display:flex}.legal-check input{width:22px;height:22px;accent-color:var(--primary);flex:none;margin:0}.legal-accept{background:var(--primary);color:#071108;letter-spacing:1.5px;cursor:pointer;border:0;width:100%;min-height:56px;font:900 18px Barlow Condensed,sans-serif}.legal-accept:disabled{opacity:.34;cursor:not-allowed}.legal-decline{color:#8f9b91;cursor:pointer;background:0 0;border:0;margin:13px auto 0;font:700 11px Barlow,sans-serif;text-decoration:underline;display:block}.legal-decline-note{color:#ffcf57;text-align:center;margin:10px 0 0;font-size:12px}.legal-dialog{color:#e9f0ea;touch-action:pan-y;-webkit-user-select:text;user-select:text;background:#0b1011;border:1px solid #63ef7873;width:min(820px,100vw - 28px);max-width:none;height:min(760px,100dvh - 28px);max-height:none;padding:0;box-shadow:0 30px 110px #000000bf}.legal-dialog::backdrop{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#010305d1}.legal-dialog-shell{grid-template-rows:auto auto 1fr;height:100%;display:grid}.legal-dialog-header{border-bottom:1px solid #26342a;justify-content:space-between;align-items:center;gap:20px;padding:20px clamp(18px,4vw,34px) 14px;display:flex}.legal-dialog-header .legal-kicker{margin:0 0 3px}.legal-dialog-header h2{text-transform:uppercase;margin:0;font:900 30px Barlow Condensed,sans-serif}.legal-close{padding:10px 13px}.legal-tabs{border-bottom:1px solid #26342a;padding:12px clamp(18px,4vw,34px)}.legal-tabs button{padding:10px 13px}.legal-scroll{overscroll-behavior:contain;padding:8px clamp(20px,5vw,52px) 50px;overflow-y:auto}.legal-document{color:#cbd5cd;max-width:680px;margin:0 auto;font-size:15px;line-height:1.66}.legal-document[hidden]{display:none}.legal-document h2{color:#fff;text-transform:uppercase;margin:24px 0 10px;font:900 clamp(36px,7vw,54px) Barlow Condensed,sans-serif}.legal-document h3{color:#9cf5aa;text-transform:uppercase;margin:28px 0 6px;font:800 20px Barlow Condensed,sans-serif}.legal-document p{margin:0 0 13px}.legal-updated{color:#849087;letter-spacing:.5px;font-size:12px;font-weight:700;margin-top:22px!important}.legal-footer{right:max(12px, env(safe-area-inset-right));bottom:max(8px, env(safe-area-inset-bottom));z-index:40;color:#718076;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#040708c7;border-radius:20px;align-items:center;gap:6px;padding:6px 9px;font-size:10px;display:flex;position:fixed}.legal-footer button{color:#b9c8bc;background:0 0;border:0;padding:2px;font-size:10px}@media (width<=520px){.legal-card{padding:24px 20px}.legal-intro{font-size:14px}.legal-doc-buttons{grid-template-columns:1fr 1fr;display:grid}.legal-doc-buttons button{padding:0 9px;font-size:10px}.legal-dialog{width:calc(100vw - 16px);height:calc(100dvh - 16px)}.legal-tabs{flex-wrap:nowrap}.legal-tabs button{flex:1;font-size:10px}}#orientation-hint{top:max(12px, env(safe-area-inset-top));z-index:30;color:#f4f1df;letter-spacing:.7px;text-align:center;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);pointer-events:none;background:#080b09db;border:1px solid #63ef786b;border-radius:999px;width:max-content;max-width:calc(100vw - 32px);padding:9px 14px;font-size:11px;font-weight:800;display:none;position:fixed;left:50%;transform:translate(-50%)}#boot-screen{z-index:100;color:#dffcff;text-align:center;pointer-events:none;background:radial-gradient(circle at 50% 45%,#15102d 0%,#03040b 58%);place-content:center;gap:18px;animation:.7s 1.9s forwards boot-away;display:grid;position:fixed;inset:0}.boot-mark{letter-spacing:-10px;color:var(--primary);text-shadow:0 0 34px #63ef788c,32px 0 #f4f1df;font-size:clamp(70px,10vw,120px);font-weight:900}.boot-copy{letter-spacing:4px;color:#7c8aa8;font-size:11px;font-weight:700}.boot-line{background:#1c2032;width:min(320px,68vw);height:3px;overflow:hidden}.boot-line span{background:linear-gradient(90deg, var(--primary), #f4f1df, var(--secondary));transform-origin:0;width:100%;height:100%;animation:1.45s cubic-bezier(.6,0,.2,1) forwards boot-load;display:block}@keyframes boot-load{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes boot-away{to{opacity:0;visibility:hidden}}#mobile-controls{bottom:max(24px, env(safe-area-inset-bottom));box-sizing:border-box;pointer-events:none;z-index:10;justify-content:space-between;align-items:flex-end;width:100%;padding:0 clamp(20px,6vw,52px);display:flex;position:absolute;left:0}.joystick-container{pointer-events:auto;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0407149e;border:2px solid #63ef7894;border-radius:50%;width:124px;height:124px;position:relative;box-shadow:inset 0 0 35px #63ef7814,0 0 24px #63ef781a}.joystick-knob{background:#63ef78e6;border-radius:50%;width:60px;height:60px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 18px #63ef7873}.action-cluster{pointer-events:none;align-items:flex-end;gap:14px;display:flex}.lock-btn{color:#fff7d6;letter-spacing:1px;pointer-events:auto;touch-action:none;background:#151208eb;border:3px solid #ffcf57;border-radius:12px;min-width:92px;height:52px;padding:0 12px;font:900 17px Barlow Condensed,sans-serif;display:none;box-shadow:0 0 #ffcf57a6}.lock-btn.is-ready{animation:1s ease-in-out infinite lock-pulse;display:block}.lock-btn.is-active{color:#effff1;background:#103216f0;border-color:#63ef78;animation:none}@keyframes lock-pulse{0%,to{transform:scale(1);box-shadow:0 0 #ffcf578c}50%{transform:scale(1.07);box-shadow:0 0 0 10px #ffcf5700}}.action-btn{color:#fff;letter-spacing:2px;pointer-events:auto;text-shadow:0 2px #0000008c;-webkit-user-select:none;user-select:none;touch-action:none;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);cursor:pointer;background:#ffcf5738;border:2px solid #ffcf57cc;border-radius:50%;width:94px;height:94px;font-size:16px;font-weight:700;transition:background .1s;box-shadow:inset 0 0 30px #ffcf571a,0 0 20px #ffcf5726}.action-btn:active{background:#ffcf579e;transform:scale(.94);box-shadow:0 0 28px #ffcf5773}.dash-btn{pointer-events:auto;color:#fff;letter-spacing:1px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);touch-action:none;background:#63ef7824;border:2px solid #63ef78b3;border-radius:50%;width:68px;height:68px;font:800 11px Barlow,sans-serif;box-shadow:inset 0 0 20px #63ef7814,0 0 18px #63ef781a}.dash-btn:active{background:#63ef787a;transform:scale(.92)}@media (width<=520px){.joystick-container{width:108px;height:108px}.joystick-knob{width:52px;height:52px}.action-btn{width:82px;height:82px}.dash-btn{width:58px;height:58px}.action-cluster{gap:9px}}@media (pointer:coarse) and (orientation:portrait){#orientation-hint{display:block}}@media (pointer:coarse) and (orientation:landscape) and (height<=600px){#mobile-controls{bottom:max(10px, env(safe-area-inset-bottom));padding-inline:max(16px, env(safe-area-inset-left))}.joystick-container{width:94px;height:94px}.joystick-knob{width:44px;height:44px}.action-btn{width:76px;height:76px;font-size:13px}.dash-btn{width:54px;height:54px;font-size:9px}}@media (pointer:fine){#mobile-controls{display:none}}
