:root{font-family:Trebuchet MS,ui-rounded,Segoe UI,sans-serif;color:#234c59;background:#d7e9e6;font-synthesis:none;font-weight:500;font-size:14px;color-scheme:light;--ink:#234c59;--muted:#426670;--yellow:#ffcf57;--paper:#fffdf0;--teal:#27798b}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(ellipse at 35% 0,#edf7e9,transparent 70%),#d7e9e6}button,select{font:inherit}button{cursor:pointer;touch-action:manipulation;transition:background .14s,box-shadow .14s,transform .14s}button:active:not(:disabled){transform:translateY(2px);box-shadow:none}button:focus-visible,select:focus-visible{outline:3px solid #bd3c83;outline-offset:3px}button:disabled{cursor:default;opacity:.52;transform:none}h1,h2,h3,p{margin:0}[hidden]{display:none!important}.eyebrow{font-size:11px;color:var(--muted);font-weight:800;letter-spacing:.1px}.quiet{color:var(--ink);background:#f5fbf3;border:1.5px solid #8aaead;border-radius:10px;padding:10px 13px;min-height:42px;font-weight:750;box-shadow:0 2px #9ab8b12b}.quiet:hover{background:#fffef4;border-color:var(--teal)}.primary{background:var(--yellow);color:#493e20;border:1.5px solid #92702e;border-radius:10px;padding:12px 16px;font-weight:900;min-height:43px;box-shadow:0 3px #b89542;white-space:normal}.primary:hover{background:#ffdc7a}.primary.large{padding:15px 35px;font-size:17px;min-width:235px;box-shadow:0 4px #af873b}.progress-track{height:8px;background:#e1e7dc;border:1px solid #bcc6bc;border-radius:6px;margin:10px 0;overflow:hidden}.progress-track div{background:linear-gradient(90deg,#ac8bd1,#7c67b7);height:100%;transition:width .3s;border-radius:5px}.overlay{position:fixed;inset:0;z-index:10;background:#123f51c9;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);display:grid;place-items:safe center;padding:20px;overflow-y:auto}.welcome{position:relative;width:min(620px,100%);text-align:center;padding:30px 42px;background:#fffcdf;border:2px solid #2a5662;border-radius:28px;box-shadow:0 8px #103e4d77,0 28px 90px #0a304c33;overflow:hidden}.welcome:before,.welcome:after{content:"";position:absolute;width:140px;height:140px;border-radius:42% 58% 66% 34%;background:#f4a0b7;top:-77px;left:-63px;transform:rotate(24deg);pointer-events:none}.welcome:after{left:auto;right:-75px;top:31%;background:#8bd6d8;width:110px;height:180px;opacity:.45}.crest{font-size:0;position:relative;width:84px;height:84px;line-height:1;margin:0 auto 16px;background:radial-gradient(circle at 32% 24%,#fff5ee 0 7%,#ffc1df 12%,#f38db9 39%,#d85595 76%,#bb3d80);border:2px solid #a14f7a;border-radius:48% 52% 50% 46%;box-shadow:inset -7px -7px #b4417e22,0 6px #b09e6b19;transform:rotate(-9deg)}.crest:before{content:"";position:absolute;width:17px;height:7px;left:16px;top:16px;background:#fff8ea;border-radius:50%;transform:rotate(-30deg);box-shadow:17px 0 0 -2px #fff4ed88}.crest:after{content:"";position:absolute;width:9px;height:13px;left:27px;top:45px;border-radius:50%;background:#fff9ed;border:2px solid #815175;box-shadow:19px 2px 0 -1px #fff9ed,19px 2px 0 1px #815175}.welcome h2{font-size:58px;font-weight:1000;letter-spacing:-3px;line-height:1.02;margin:8px 0 10px;color:#25536a;text-shadow:0 3px 0 #abc6b447}.welcome>.eyebrow{font-size:11px;color:#738370}.welcome .subtitle{font-size:21px;font-weight:900;letter-spacing:-.6px;color:#bf587e;margin-bottom:14px}.welcome p{color:#597680;line-height:1.55;font-size:13px;margin:0 auto;max-width:430px}.welcome-steps{display:flex;gap:6px;justify-content:center;margin:17px 0 0;color:#3b7580;font-size:11px;font-weight:800}.welcome-steps span{padding:6px 9px;background:#e5f1dc;border-radius:7px}.difficulty{display:flex;gap:9px;justify-content:center;margin:20px 0}.difficulty button{flex:1;max-width:230px;padding:10px 12px;border-radius:10px;border:1.5px solid #bbccba;color:#5b7880;background:#f4f6e8;font-size:12px;font-weight:800;line-height:1.4;min-height:53px}.difficulty button small{display:block;color:#6a8587;font-size:10px;font-weight:500;margin-top:2px}.difficulty button[aria-pressed=true]{border-color:#367e8c;color:#245969;background:#d9eee0;box-shadow:0 0 0 2px #438b8c16}.welcome .small{font-size:10px;margin-top:15px;color:#809185;line-height:1.5}.settings-row{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:14px;font-size:10px;color:#789080;flex-wrap:wrap}.settings-row button{padding:7px 10px;min-height:33px;font-size:11px;background:#f1f4e4}.settings-row span{max-width:220px}.result-metrics{display:flex;justify-content:center;gap:28px;margin:21px 0}.result-metrics strong{display:block;color:#916b25;font-size:27px;font-weight:900}.result-metrics span{font-size:9px;color:#4e6d73;font-weight:800}.result-advice{background:#eaf2df;border-radius:10px;padding:11px 14px;margin-top:14px!important;font-size:12px!important}.result-change{display:block;margin:13px auto 0;background:transparent;border:0;color:#417b88;font-size:12px;font-weight:800;padding:8px}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);z-index:30;max-width:90vw;background:#fff4c9;color:#3d5a61;border:1.5px solid #a8a06e;padding:12px 20px;box-shadow:0 5px 24px #22495622;border-radius:11px;font-size:13px;line-height:1.4;text-align:center}.help-content{margin:19px 0;text-align:left;padding-left:22px;color:#56757d;line-height:1.65;font-size:12px}.help-content li{margin:9px 0;padding-left:3px}.help-content li::marker{font-weight:900;color:#397a87}.help-title{font-size:37px!important;letter-spacing:-1.5px!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.reduce-motion *{transition:none!important;animation:none!important}@media(max-width:1100px){.primary{padding:11px 12px}}@media(max-width:900px){.quiet{padding:9px 11px}.welcome{padding:27px 30px}.welcome h2{font-size:53px}}@media(max-width:560px){.welcome{padding:25px 20px 23px;border-radius:23px}.crest{width:68px;height:68px;margin-bottom:13px}.crest:before{left:12px;top:13px}.crest:after{left:21px;top:35px;width:7px;height:10px;box-shadow:15px 2px 0 -1px #fff9ed,15px 2px 0 1px #815175}.welcome h2{font-size:46px;letter-spacing:-2.5px}.welcome .subtitle{font-size:19px;margin-bottom:12px}.welcome p{font-size:12px}.welcome-steps{font-size:10px;gap:5px;margin-top:13px}.welcome-steps span{padding:6px}.difficulty{gap:7px;margin:17px 0}.difficulty button{padding:9px 6px;font-size:11px}.difficulty button small,.welcome .small{font-size:9px}.welcome .primary.large{padding:13px 26px;min-width:215px;font-size:16px}.help-title{font-size:32px!important}.help-content{font-size:11px;line-height:1.5;margin:15px 0}.result-metrics{gap:22px}.result-metrics strong{font-size:24px}.result-metrics span{font-size:8px}.settings-row{margin-top:11px}.overlay{padding:16px}}@media(max-width:360px){.welcome h2{font-size:41px}}@media(max-height:740px)and (min-width:901px){.welcome{padding-top:24px;padding-bottom:23px}.crest{width:64px;height:64px;margin-bottom:11px}.welcome h2{font-size:48px}.difficulty{margin:15px 0}.welcome-steps{margin-top:12px}}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.toast{pointer-events:none}@media(max-width:560px){.toast.phone-toast{position:static;inset:auto;transform:none;width:100%;max-width:none;margin-top:8px;padding:8px 11px;border-radius:9px;font-size:11px;line-height:1.4;box-shadow:0 2px #b4ad7d24;text-align:left}}#welcome{background:radial-gradient(ellipse at 25% 20%,#507f73e8,#143d4dec);padding:24px}.welcome-intro{width:min(1120px,100%);padding:0;display:grid;grid-template-columns:1.1fr 1fr;text-align:left;border:2px solid #325d63;border-radius:28px;overflow:hidden;background:#fff9df;box-shadow:0 10px #153f4670,0 28px 100px #092e3f70}.welcome-intro:before,.welcome-intro:after{display:none}.welcome-scene{position:relative;min-width:0;display:flex;align-items:center;justify-content:center;overflow:hidden;background:radial-gradient(ellipse at 45% 44%,#fff3c4 5%,#f2dca5 52%,#91b7a0);isolation:isolate}.welcome-scene:before{content:"";position:absolute;width:74%;aspect-ratio:1;border-radius:43% 57% 59% 41%;background:#e9b56f88;top:8%;left:8%;transform:rotate(-12deg);z-index:-1}.welcome-scene:after{content:"";position:absolute;width:42%;aspect-ratio:1;border-radius:53% 47% 38% 62%;background:#9dcfc099;bottom:-12%;right:-6%;z-index:-1}.welcome-scene img{display:block;width:112%;max-width:none;height:auto;position:relative;flex:none;filter:drop-shadow(0 12px 14px #4b503c24);pointer-events:none}.welcome-scene-caption{position:absolute;left:24px;bottom:22px;padding:8px 11px;border-radius:7px;background:#fff6d7e8;border:1px solid #b89d62;color:#5a654c;font-size:11px;font-weight:900;transform:rotate(-2deg);box-shadow:0 3px #7f81431a}.welcome-copy{min-width:0;padding:37px 32px 31px;position:relative}.welcome-copy>.eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#5b8675}.welcome-intro h2{font-size:clamp(48px,5.1vw,69px);line-height:.96;letter-spacing:-3px;margin:13px 0 17px;color:#225c64;text-shadow:0 3px 0 #9dbfb039}.welcome-intro .subtitle{font-size:24px;line-height:1.15;letter-spacing:-.7px;color:#b45e65;margin-bottom:12px}.welcome-intro p{font-size:13px;line-height:1.5;max-width:380px;margin:0;color:#557078}.welcome-intro .welcome-steps{justify-content:flex-start;margin:17px 0 0;gap:6px;font-size:11px}.welcome-intro .welcome-steps span{padding:6px 10px;background:#e5edce;color:#487b6f;border:1px solid #c4d5af}.welcome-intro .difficulty{margin:20px 0 17px;justify-content:flex-start;gap:8px}.welcome-intro .difficulty button{max-width:none;min-height:57px;background:#f6f4df}.welcome-intro .difficulty button[aria-pressed=true]{background:#dbecda}.welcome-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.welcome-intro .primary.large{min-width:0;flex:1;padding:15px 22px;font-size:18px;min-height:53px;border-radius:12px}.welcome-actions .quiet{font-size:11px;min-height:48px;padding:10px 12px;background:#fbf8e7;box-shadow:none}.welcome-intro .fullscreen-note{font-size:10px;line-height:1.4;color:#6c8275;margin-top:10px}.welcome-intro .small{font-size:11px;line-height:1.5;margin-top:14px;color:#5b7a73}.sound-check{margin:18px 0;padding:14px;border-radius:13px;border:1px solid #96b6ab;background:#eaf2df;text-align:left}.sound-check h3{font-size:15px;color:#315f65;margin:0 0 6px}.sound-check p{font-size:12px;line-height:1.5;margin:6px 0;max-width:none;color:#42666c}.sound-check #test-sound{margin:6px 0;min-height:44px;background:#fff4be;border-color:#b79c50;font-size:12px}.sound-check #sound-output-note{font-size:11px}.sound-details{margin-top:10px;font-size:11px;color:#48696d}.sound-details summary{cursor:pointer;padding:6px 0;font-weight:800}.sound-details p{overflow-wrap:anywhere;font-size:10px;border-top:1px solid #bdd0b6;padding-top:8px}:root:fullscreen{background:#d7e9e6}:root:fullscreen .shell.playing{padding-top:max(10px,env(safe-area-inset-top));padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right));padding-bottom:max(12px,env(safe-area-inset-bottom))}@media(max-width:1100px){.welcome-copy{padding:30px 25px}.welcome-intro h2{font-size:57px}}@media(max-width:900px){.welcome-intro{grid-template-columns:1fr 1fr}.welcome-copy{padding:26px 21px}.welcome-intro h2{font-size:48px}.welcome-intro .subtitle{font-size:21px}.welcome-intro .difficulty{margin:15px 0}.welcome-actions .quiet{min-height:40px}}@media(max-width:660px){#welcome{padding:14px}.welcome-intro{display:flex;flex-direction:column;width:min(440px,100%);border-radius:22px}.welcome-scene{height:clamp(130px,25svh,215px);flex:none;min-height:0}.welcome-scene img{height:126%;width:auto;max-width:100%;object-fit:contain;align-self:flex-end;transform:translateY(6%)}.welcome-scene-caption{left:13px;bottom:11px;font-size:9px;padding:5px 8px}.welcome-copy{padding:20px 22px 22px;text-align:center}.welcome-copy>.eyebrow{font-size:9px}.welcome-intro h2{font-size:45px;line-height:1;letter-spacing:-2.6px;margin:9px 0 10px}.welcome-intro .subtitle{font-size:20px;line-height:1.15;margin-bottom:9px}.welcome-intro .subtitle br{display:none}.welcome-intro p{font-size:12px;max-width:340px;margin-inline:auto}.welcome-intro .welcome-steps{justify-content:center;margin-top:12px;font-size:10px}.welcome-intro .welcome-steps span{padding:4px 9px}.welcome-intro .difficulty{margin:14px 0 13px;gap:7px}.welcome-intro .difficulty button{min-height:48px;padding:8px 6px;font-size:11px}.welcome-intro .difficulty button small{font-size:9px}.welcome-actions{gap:8px;justify-content:center}.welcome-intro .primary.large{min-height:48px;padding:12px 18px;font-size:17px}.welcome-actions .quiet{min-height:45px;padding:8px 10px;font-size:10px}.welcome-intro .fullscreen-note{font-size:9px;margin-top:8px}.welcome-intro .small{font-size:10px;margin-top:10px}}@media(max-width:560px){.sound-check{padding:12px;margin:15px 0}.sound-check p{font-size:11px}.sound-check #sound-output-note{font-size:10px}}@media(max-width:360px){.welcome-copy{padding:17px 17px 19px}.welcome-intro h2{font-size:40px}.welcome-intro .subtitle{font-size:18px}}@media(max-height:450px)and (min-width:561px){#welcome{padding:12px}.welcome-intro{width:min(820px,100%);grid-template-columns:1fr 1.25fr;border-radius:20px}.welcome-copy{padding:17px 22px}.welcome-intro h2{font-size:40px;margin:7px 0 9px}.welcome-intro .subtitle{font-size:18px;margin-bottom:7px}.welcome-intro .subtitle br{display:none}.welcome-intro p{font-size:11px}.welcome-intro .welcome-steps{display:none}.welcome-intro .difficulty{margin:10px 0}.welcome-intro .difficulty button{min-height:43px;padding:7px;font-size:10px}.welcome-intro .difficulty button small{font-size:9px}.welcome-intro .primary.large{min-height:43px;padding:10px 15px;font-size:15px}.welcome-actions .quiet{min-height:40px;font-size:10px;padding:7px 10px}.welcome-intro .fullscreen-note,.welcome-intro .small{font-size:9px;margin-top:7px}}html,body,#app{width:100%;height:100%;overflow:hidden;overscroll-behavior:none}body{background:#91cdbd}.world-shell,.world-shell.playing{--safe-top:env(safe-area-inset-top,0px);--safe-right:env(safe-area-inset-right,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);position:fixed;inset:0;width:100%;height:100dvh;max-width:none;padding:0;margin:0;isolation:isolate}.world-shell .play-layout,.world-shell .battlefield-column,.world-shell .sidebar{display:contents}.world-shell .field{position:absolute;inset:0;max-width:none;width:100%;height:100%;border:0;border-radius:0;box-shadow:none;overflow:hidden;margin:0;background:#91cdbd}.world-shell .field canvas{display:block;width:100%;height:100%;aspect-ratio:auto;touch-action:none;outline-offset:-4px}.world-shell .map-caption,.world-shell .footer,.world-shell .field-label,.world-shell .brandmark,.world-shell .brand .eyebrow{display:none}.world-shell .masthead{display:flex;justify-content:space-between;align-items:center;position:absolute;inset:calc(13px + var(--safe-top)) calc(16px + var(--safe-right)) auto calc(20px + var(--safe-left));height:50px;z-index:4;pointer-events:none;margin:0;gap:12px}.world-shell .brand{display:block;transform:rotate(-3deg);filter:drop-shadow(0 3px 0 #396b6260)}.world-shell .brand h1{font-size:25px;line-height:.9;font-weight:1000;letter-spacing:-1.1px;color:#fff5d7;max-width:100px;text-shadow:2px 2px 0 #275464,-2px -2px 0 #275464,2px -2px 0 #275464,-2px 2px 0 #275464}.world-shell .utilities{display:flex;margin-left:auto;pointer-events:auto;gap:6px;align-self:flex-start}.world-shell .utilities .quiet{background:#fff4d4;border:2px solid #4d6e65;box-shadow:0 3px #31574f70;border-radius:12px;font-size:11px;padding:8px 10px;min-height:40px}.world-shell .utilities #fullscreen{width:40px;font-size:0;position:relative;padding:0}.world-shell #fullscreen:after{content:"⛶";font-size:24px;line-height:1}.world-shell .dashboard{position:absolute;z-index:3;top:calc(12px + var(--safe-top));left:50%;transform:translate(-50%);display:grid;grid-template-columns:88px minmax(180px,260px) 72px;gap:10px;align-items:start;padding:0;margin:0;border:0;border-radius:0;background:none;box-shadow:none;width:auto}.world-shell .map-title{position:fixed;left:calc(16px + var(--safe-left));bottom:calc(114px + var(--safe-bottom));display:none}.world-shell .wave-hud{grid-column:2;grid-row:1;padding:9px 13px 7px;background:linear-gradient(#fff8df,#f3e4b7);border:2px solid #466e65;border-radius:12px 12px 20px 20px;box-shadow:0 4px #44694f50;min-width:0}.world-shell .wave-hud-heading{display:flex;align-items:baseline;gap:6px}.world-shell .wave-hud-label{font-size:11px;color:#4d6b62;font-weight:900;text-transform:uppercase}.world-shell .wave-hud-heading>strong{font-size:27px;line-height:1;letter-spacing:-1px;color:#27596a}.world-shell .wave-hud-heading>strong small{font-size:13px;letter-spacing:0}.world-shell #wave-hud-count{margin-left:auto;font-size:10px;white-space:nowrap;color:#4e746a}.world-shell .wave-hud-meta{display:none}.world-shell .wave-progress{width:100%;height:8px;display:block;appearance:none;-webkit-appearance:none;margin:6px 0 0;border:1px solid #799687;border-radius:6px;background:#d5dfbd;overflow:hidden}.world-shell .wave-progress::-webkit-progress-bar{background:#d5dfbd}.world-shell .wave-progress::-webkit-progress-value{background:linear-gradient(90deg,#48a8aa,#78b86e)}.world-shell .wave-progress::-moz-progress-bar{background:#48a8aa}.world-shell .wave-progress-copy{display:none}.world-shell .dashboard .stat{padding:8px 10px 7px;min-width:0;border:2px solid #668273;border-radius:13px;background:linear-gradient(#fff8d8,#edda99);box-shadow:0 4px #49685040;position:relative;transform:rotate(-2deg)}.world-shell .dashboard .stat.cash{grid-column:1;grid-row:1}.world-shell .dashboard .stat.lives{grid-column:3;grid-row:1;transform:rotate(3deg);background:linear-gradient(#fff2db,#f3c9b8)}.world-shell .dashboard .stat span{font-size:9px;line-height:1;display:block;letter-spacing:.5px;text-transform:uppercase}.world-shell .dashboard .stat span small{display:none}.world-shell .dashboard .stat strong{font-size:25px;line-height:1.1;margin-top:4px;font-weight:1000}.world-shell .roster-panel{position:absolute;right:calc(14px + var(--safe-right));top:50%;transform:translateY(-50%);width:124px;padding:10px 7px;background:linear-gradient(90deg,#b47949,#d6a96f 8%,#edc68c 45%,#cb985e);border:2px solid #725c3d;border-radius:21px 8px 8px 21px;box-shadow:inset 0 0 0 3px #f5d6a266,0 5px #45675650;z-index:4}.world-shell .roster-panel>.section-label{display:block;text-align:center;margin:0 0 7px}.world-shell .roster-panel h3{font-size:11px;letter-spacing:1.5px;color:#5c4b35;text-shadow:0 1px #ffe9ba}.world-shell .roster-panel .section-label small{display:none}.world-shell .roster{display:flex;flex-direction:column;gap:8px}.world-shell .tower-card{position:relative;display:flex;flex-direction:column;gap:1px;align-items:center;justify-content:center;width:100%;min-height:116px;padding:3px 4px 6px;text-align:center;background:radial-gradient(ellipse at 50% 20%,#fff6d6,#dfd6a6);border:2px solid #7c7e50;border-radius:13px;box-shadow:0 3px #846a4366;overflow:visible}.world-shell .tower-card .portrait{display:block;width:92px;height:68px;margin:-5px auto 0;border:0;background:transparent;box-shadow:none;border-radius:0;flex:none;overflow:visible}.world-shell .tower-card strong{font-size:11px;line-height:1.15;letter-spacing:-.2px;white-space:normal}.world-shell .tower-card p{display:none}.world-shell .tower-card .tower-cost{font-size:12px;align-self:center;white-space:nowrap;text-align:center;line-height:1.25;margin-top:3px;color:#745725}.world-shell .tower-card.locked{border-style:solid;background:linear-gradient(#e1e4cd,#c2cfb4)}.world-shell .tower-card.locked .portrait{filter:grayscale(.65);opacity:.65}.world-shell .tower-card.locked .tower-cost{font-size:10px;color:#4d6462}.world-shell .tower-cost small{display:inline;margin-left:3px;font-size:9px;font-weight:600}.world-shell .tower-card.selected{border-color:#fff3ae;background:radial-gradient(ellipse at 50% 10%,#fffce0,#f1c954);box-shadow:0 0 0 2px #487477,0 4px #607b4844}.world-shell .tower-card.selected:after{content:"✓";display:grid;place-items:center;position:absolute;width:22px;height:22px;right:-7px;top:-7px;bottom:auto;border-radius:50%;color:#fffbe3;background:#3e8c7d;border:2px solid #fff3c9;font-size:12px}.world-shell .tower-footnote{font-size:9px;text-align:center;color:#64513a;margin:9px 0 0}.world-shell .progress-panel{position:absolute;right:calc(14px + var(--safe-right));bottom:calc(88px + var(--safe-bottom));width:124px;padding:0;border:0;background:none;box-shadow:none;z-index:5}.world-shell .progress-toggle{display:block;width:100%;padding:8px;background:#f8ebcd;border:2px solid #8e7b9c;border-radius:12px;color:#6b5686;box-shadow:0 3px #5b647d30;text-align:left}.world-shell .progress-panel .section-label,.world-shell #unlock-count{display:none}.world-shell .progress-top{justify-content:center;display:flex;margin:0}.world-shell .progress-top strong{font-size:15px;color:#70548b}.world-shell .progress-track{height:6px;margin:4px 0 0}.world-shell .progress-copy{position:absolute;width:250px;bottom:calc(100% + 9px);right:0;background:#fff7df;border:2px solid #9d89a7;border-radius:12px;padding:12px;box-shadow:0 4px #52635c30;font-size:11px}.world-shell .control-strip{position:absolute;bottom:calc(18px + var(--safe-bottom));right:calc(17px + var(--safe-right));display:flex;gap:7px;align-items:center;margin:0;z-index:5;flex-wrap:nowrap}.world-shell .control-strip>.quiet{background:#f6ebc9;border:2px solid #5c7c6f;box-shadow:0 4px #426b5744;font-size:13px;min-height:48px;padding:10px 13px;border-radius:12px}.world-shell .control-strip>.primary{background:linear-gradient(#ffdf78,#f3b94e);border:2px solid #82652e;border-radius:15px;box-shadow:0 4px #a77d37;font-size:15px;min-height:50px;padding:12px 20px;min-width:168px}.world-shell.is-wave #start-wave{display:none}.world-shell .next-wave{position:fixed;bottom:calc(18px + var(--safe-bottom));left:calc(20px + var(--safe-left));width:min(510px,calc(100vw - 440px));min-width:0;margin:0;background:#fff6dce8;border:1px solid #8a9d76;border-radius:12px;padding:9px 13px;box-shadow:0 3px #6c846229}.world-shell .next-wave strong{font-size:12px;color:#385e60}.world-shell .next-wave p{font-size:10px;max-width:none;margin:3px 0;line-height:1.3;color:#466664}.world-shell .wave-preview{font-size:9px;line-height:1.3;margin:0;color:#597269}.world-shell.is-wave .next-wave{display:none}.world-shell .coach{position:absolute;top:calc(88px + var(--safe-top));left:calc(20px + var(--safe-left));max-width:440px;width:auto;z-index:3;display:flex;flex-wrap:nowrap;gap:8px;padding:8px 11px;margin:0;border:1px solid #a7a06b;border-radius:10px;background:#fff6dbea;min-height:45px;font-size:11px;box-shadow:0 3px #50786622}.world-shell .coach p{min-width:0;line-height:1.35}.world-shell .coach-icon{width:23px;height:23px;flex-basis:23px;font-size:13px}.world-shell .coach .coach-action{min-height:34px;margin:0;padding:6px 8px;font-size:10px;white-space:nowrap}.world-shell.has-tools .coach{display:none}.world-shell.is-placing .coach{display:flex}.world-shell .inspector{position:absolute;left:calc(20px + var(--safe-left));bottom:calc(109px + var(--safe-bottom));width:282px;padding:14px 15px;z-index:6;background:linear-gradient(110deg,#fff9df,#edebcb);border:2px solid #668177;border-radius:16px;box-shadow:0 5px #476a5944,0 10px 30px #345e5622;margin:0}.world-shell .inspector #tower-level{font-size:9px;color:#54736a;padding-right:34px}.world-shell .inspector #tower-name{font-size:21px;line-height:1.05;margin:4px 25px 0 0;padding:0;letter-spacing:-.6px}.world-shell .inspector #tower-role{font-size:10px;margin:6px 0;line-height:1.3}.world-shell .inspector .tower-stats{display:flex;margin:8px 0;justify-content:flex-start;gap:27px}.world-shell .inspector .tower-stats b{display:block;margin-bottom:2px;color:#315d6a;font-size:17px;line-height:1}.world-shell .inspector .tower-stats span{font-size:9px}.world-shell .inspector .upgrade-preview{margin:8px 0;padding:7px 9px;background:#dfe8c8;border-color:#91ab7a}.world-shell .inspector .upgrade-preview p{font-size:10px;line-height:1.3}.world-shell .inspector .primary{width:100%;min-height:42px;padding:9px;font-size:12px;margin:0}.world-shell .selection-close{position:absolute;right:8px;top:8px;float:none;border-radius:9px;background:#e1e5c7;color:#426961;min-height:34px;min-width:34px;font-size:25px;padding:2px}.world-shell .inspector-map-link{display:none}.world-shell .milestone{position:absolute;right:calc(157px + var(--safe-right));top:calc(105px + var(--safe-top));width:250px;padding:12px;z-index:6;display:block;background:#fff2c7;border:2px solid #bc9a4f;box-shadow:0 4px #7f805233;border-radius:14px}.world-shell .milestone h3{font-size:17px;margin:4px 0}.world-shell .milestone p{font-size:10px;min-width:0}.world-shell .milestone button{min-height:38px;width:100%;font-size:11px;margin-top:8px}.world-shell .pause-banner{position:absolute;top:calc(84px + var(--safe-top));left:50%;right:auto;transform:translate(-50%);z-index:3}.world-shell .pause-banner span{display:flex;align-items:center;gap:7px;line-height:1.2;background:#fff7d5;font-size:12px;border:2px solid #628276;border-radius:10px;padding:8px 12px}.toast,.toast.phone-toast{position:fixed;z-index:8;left:50%;right:auto;top:auto;bottom:calc(86px + env(safe-area-inset-bottom));transform:translate(-50%);max-width:min(460px,85vw);width:max-content;pointer-events:none;text-align:center;margin:0;font-size:12px;padding:9px 14px;border:2px solid #a99d62;background:#fff1c5;box-shadow:0 4px #59765433}.world-shell :focus-visible{outline-color:#b34084}.world-shell #tower-name:focus-visible{outline:3px solid #b34084;outline-offset:3px;border-radius:3px}@media(max-width:1100px)and (min-width:600px){.world-shell .dashboard{left:42%;grid-template-columns:74px minmax(160px,210px) 65px;gap:7px}.world-shell .brand h1{font-size:22px;max-width:85px}.world-shell .utilities .quiet{font-size:10px;padding:8px}.world-shell .coach{max-width:360px}.world-shell .next-wave{width:calc(100vw - 390px)}}@media(max-width:599px)and (orientation:portrait){.world-shell .masthead{top:calc(75px + var(--safe-top));left:calc(12px + var(--safe-left));right:calc(12px + var(--safe-right));height:30px;align-items:flex-start}.world-shell .brand{transform:rotate(-2deg)}.world-shell .brand h1{font-size:20px;max-width:none;line-height:1.1}.world-shell .utilities{gap:5px}.world-shell .utilities .quiet{font-size:9px;min-height:30px;padding:5px 7px;border-radius:9px;box-shadow:0 2px #31574f70}.world-shell .utilities #fullscreen{width:30px;min-height:30px}.world-shell #fullscreen:after{font-size:20px}.world-shell .dashboard{top:calc(9px + var(--safe-top));left:calc(10px + var(--safe-left));right:calc(10px + var(--safe-right));transform:none;width:auto;grid-template-columns:66px minmax(145px,1fr) 58px;gap:7px}.world-shell .wave-hud{padding:8px 9px 7px;border-radius:10px 10px 16px 16px}.world-shell .wave-hud-heading>strong{font-size:25px}.world-shell .wave-hud-label,.world-shell #wave-hud-count{font-size:9px}.world-shell .dashboard .stat{padding:8px 8px 6px}.world-shell .dashboard .stat strong{font-size:24px}.world-shell .dashboard .stat span{font-size:8px}.world-shell .coach{top:calc(116px + var(--safe-top));left:calc(11px + var(--safe-left));right:calc(11px + var(--safe-right));max-width:none;padding:6px 8px;min-height:40px;font-size:10px;gap:6px;border-radius:9px}.world-shell .coach-icon{display:none}.world-shell .coach .coach-action{min-height:31px;padding:5px 7px;font-size:10px}.world-shell .next-wave{top:calc(112px + var(--safe-top));bottom:auto;left:calc(11px + var(--safe-left));right:calc(11px + var(--safe-right));width:auto;padding:6px 9px;border-radius:9px;min-width:0}.world-shell .next-wave strong{font-size:10px}.world-shell .next-wave p{font-size:9px;margin:2px 0;line-height:1.2}.world-shell .wave-preview{font-size:8px;line-height:1.2}.world-shell:not(.has-tools) .next-wave,.world-shell.is-placing .next-wave{display:none}.world-shell .roster-panel{top:auto;bottom:calc(72px + var(--safe-bottom));left:calc(11px + var(--safe-left));right:calc(11px + var(--safe-right));width:auto;transform:none;border-radius:17px;padding:7px 7px 6px}.world-shell .roster-panel>.section-label,.world-shell .tower-footnote{display:none}.world-shell .roster{flex-direction:row;gap:7px}.world-shell .tower-card{min-height:97px;padding:1px 4px 5px;min-width:0;flex:1;gap:0;border-radius:11px}.world-shell .tower-card .portrait{width:80px;height:58px;margin:-6px auto -1px}.world-shell .tower-card strong{font-size:10px;white-space:nowrap}.world-shell .tower-card .tower-cost{font-size:11px;line-height:1.2;margin-top:4px}.world-shell .tower-card.locked .tower-cost{font-size:9px}.world-shell .tower-cost small{font-size:8px}.world-shell .control-strip{bottom:calc(13px + var(--safe-bottom));right:calc(12px + var(--safe-right));left:calc(90px + var(--safe-left));gap:5px}.world-shell .control-strip>.quiet{font-size:11px;min-height:43px;padding:8px;min-width:40px;border-radius:10px}.world-shell .control-strip>.primary{font-size:12px;min-height:44px;padding:9px;min-width:0;flex:1;border-radius:11px}.world-shell.is-wave .control-strip{justify-content:flex-end}.world-shell.is-wave .control-strip>#pause{min-width:80px}.world-shell .progress-panel{left:calc(12px + var(--safe-left));right:auto;bottom:calc(14px + var(--safe-bottom));width:70px}.world-shell .progress-toggle{padding:6px;min-height:43px;border-radius:10px}.world-shell .progress-top strong{font-size:13px}.world-shell .progress-copy{left:0;right:auto;bottom:calc(100% + 9px);width:245px}.world-shell .inspector{left:calc(11px + var(--safe-left));right:calc(11px + var(--safe-right));bottom:calc(72px + var(--safe-bottom));width:auto;padding:9px 11px;border-radius:14px;min-height:108px;box-shadow:0 4px #476a5944}.world-shell.has-selection .roster-panel{visibility:hidden}.world-shell .inspector #tower-level{font-size:8px;padding-right:35px}.world-shell .inspector #tower-name{font-size:18px;margin:3px 32px 0 0}.world-shell .inspector #tower-role{display:none}.world-shell .inspector .tower-stats{position:absolute;top:12px;right:51px;margin:0;gap:9px}.world-shell .inspector .tower-stats b{font-size:13px}.world-shell .inspector .tower-stats span{font-size:8px}.world-shell .inspector .tower-stats span:nth-child(2){display:none}.world-shell .inspector .upgrade-preview{margin:7px 0 5px;padding:0;background:none;border:0}.world-shell .inspector .upgrade-preview .eyebrow{font-size:9px}.world-shell .inspector .upgrade-preview p{font-size:9px;line-height:1.2;margin:2px 0}.world-shell .inspector .primary{min-height:35px;padding:6px;font-size:11px}.world-shell .selection-close{top:7px;right:7px;min-width:34px;min-height:34px}.world-shell .milestone{top:auto;bottom:calc(192px + var(--safe-bottom));left:calc(12px + var(--safe-left));right:calc(12px + var(--safe-right));width:auto;padding:10px;z-index:7}.world-shell .milestone p{display:none}.world-shell .milestone h3{font-size:16px}.world-shell .milestone button{margin-top:4px;min-height:33px}.world-shell .pause-banner{top:calc(174px + var(--safe-top));left:calc(12px + var(--safe-left));transform:none}.toast,.toast.phone-toast{bottom:calc(196px + env(safe-area-inset-bottom));font-size:10px;max-width:92vw;padding:7px 10px}}@media(max-height:500px)and (min-width:600px){.world-shell .masthead{top:calc(9px + var(--safe-top));left:calc(13px + var(--safe-left));right:calc(12px + var(--safe-right));height:36px}.world-shell .brand h1{font-size:20px;max-width:80px}.world-shell .utilities .quiet{min-height:33px;font-size:9px;padding:6px 7px;border-radius:9px}.world-shell .utilities #fullscreen{width:33px}.world-shell .dashboard{top:calc(7px + var(--safe-top));left:42%;grid-template-columns:62px 178px 55px;gap:6px}.world-shell .wave-hud{padding:5px 8px;border-radius:9px 9px 13px 13px}.world-shell .wave-hud-heading>strong{font-size:21px}.world-shell .wave-hud-label,.world-shell #wave-hud-count{font-size:9px}.world-shell .wave-progress{height:6px;margin-top:4px}.world-shell .dashboard .stat{padding:5px 8px;border-radius:9px}.world-shell .dashboard .stat strong{font-size:21px;margin-top:2px}.world-shell .dashboard .stat span{font-size:8px}.world-shell .roster-panel{right:calc(10px + var(--safe-right));top:calc(56px + var(--safe-top));bottom:calc(66px + var(--safe-bottom));transform:none;width:90px;padding:5px;border-radius:14px 7px 7px 14px;display:flex;flex-direction:column;justify-content:center}.world-shell .roster-panel>.section-label,.world-shell .tower-footnote{display:none}.world-shell .roster{gap:5px}.world-shell .tower-card{min-height:0;height:76px;padding:0 2px 4px;gap:0;border-radius:9px}.world-shell .tower-card .portrait{width:66px;height:45px;margin:-4px auto -1px}.world-shell .tower-card strong{font-size:9px;white-space:nowrap;letter-spacing:-.4px}.world-shell .tower-card .tower-cost{font-size:10px;margin-top:2px}.world-shell .tower-card.locked .tower-cost{font-size:8px}.world-shell .tower-cost small{font-size:7px;margin-left:2px}.world-shell .control-strip{bottom:calc(12px + var(--safe-bottom));right:calc(11px + var(--safe-right));gap:6px}.world-shell .control-strip>.quiet{min-height:39px;padding:7px 10px;font-size:11px}.world-shell .control-strip>.primary{min-height:40px;min-width:140px;padding:8px 12px;font-size:12px}.world-shell .progress-panel{right:calc(10px + var(--safe-right));bottom:calc(62px + var(--safe-bottom));width:90px;display:none}.world-shell .progress-panel{left:calc(13px + var(--safe-left));right:auto;bottom:calc(12px + var(--safe-bottom));width:70px;display:block}.world-shell .progress-toggle{padding:5px;min-height:39px}.world-shell .progress-top strong{font-size:12px}.world-shell .progress-copy{left:0;right:auto;width:235px}.world-shell .coach{top:auto;bottom:calc(11px + var(--safe-bottom));left:calc(92px + var(--safe-left));max-width:calc(100vw - 415px);min-height:39px;padding:5px 8px;font-size:9px;gap:5px}.world-shell .coach-icon{display:none}.world-shell .coach .coach-action{min-height:29px;font-size:9px;padding:4px 6px}.world-shell .next-wave{left:calc(94px + var(--safe-left));bottom:calc(11px + var(--safe-bottom));width:calc(100vw - 414px);padding:5px 9px;min-height:39px}.world-shell .next-wave strong{font-size:10px}.world-shell .next-wave p{font-size:8px;line-height:1.15;margin:2px 0}.world-shell .wave-preview{font-size:8px;line-height:1.1}.world-shell:not(.has-tools) .next-wave,.world-shell.is-placing .next-wave{display:none}.world-shell .inspector{left:calc(12px + var(--safe-left));bottom:calc(64px + var(--safe-bottom));width:235px;padding:10px;border-radius:12px}.world-shell .inspector #tower-level{font-size:8px}.world-shell .inspector #tower-name{font-size:17px}.world-shell .inspector #tower-role{display:none}.world-shell .inspector .tower-stats{margin:6px 0;gap:25px}.world-shell .inspector .tower-stats b{font-size:14px}.world-shell .inspector .upgrade-preview{margin:6px 0;padding:5px 7px}.world-shell .inspector .upgrade-preview p{font-size:9px}.world-shell .inspector .primary{min-height:34px;padding:6px;font-size:10px}.world-shell .milestone{top:calc(62px + var(--safe-top));right:calc(112px + var(--safe-right));width:220px;padding:9px}.world-shell .milestone h3{font-size:15px}.world-shell .milestone p{font-size:9px}.world-shell .pause-banner{top:calc(61px + var(--safe-top))}.toast,.toast.phone-toast{bottom:calc(62px + env(safe-area-inset-bottom));font-size:10px;padding:7px 10px}}@media(max-width:350px)and (orientation:portrait){.world-shell .dashboard{grid-template-columns:54px minmax(135px,1fr) 49px;gap:5px;left:7px;right:7px}.world-shell .dashboard .stat,.world-shell .wave-hud{padding-inline:6px}.world-shell .brand h1{font-size:17px}.world-shell .utilities .quiet{font-size:8px;padding:5px}.world-shell .utilities #fullscreen{width:27px}.world-shell .tower-card strong{font-size:9px;letter-spacing:-.3px}.world-shell .inspector .tower-stats{display:none}.world-shell .control-strip{left:78px}.world-shell .control-strip>.quiet{padding-inline:6px;min-width:34px;font-size:10px}.world-shell .control-strip>.primary{font-size:11px;padding-inline:6px}.world-shell .progress-panel{width:60px}}.world-shell .field canvas:focus-visible{outline:none}.world-shell.keyboard-input .field:has(canvas:focus-visible):after{content:"Map focused · arrows aim · Enter builds · Space starts / pauses";position:absolute;left:16px;bottom:78px;padding:6px 10px;background:#fff7df;border:2px solid #b34084;border-radius:8px;color:#445f62;font-size:10px;line-height:1.2;pointer-events:none;z-index:3}@media(max-width:599px)and (orientation:portrait){.world-shell.keyboard-input .field:has(canvas:focus-visible):after{bottom:190px;left:12px;max-width:calc(100% - 24px)}}.world-shell .milestone #dismiss-unlock{width:30px;min-height:30px;min-width:30px;margin:0;padding:0;font-size:23px;top:5px;right:5px;background:#ead69b}.world-shell .milestone>.eyebrow,.world-shell .milestone>h3{padding-right:25px}
