:root{--ink:#29334c;--muted:#777f92;--paper:#fffefa;--red:#ee3547;--red-deep:#b51f34;--blue:#3786ed;--blue-deep:#2158a9;--yellow:#ffce46;--yellow-deep:#d69d20;--mint:#c6f1dd;--line:#e5e7e3;--shadow:0 7px 0 rgba(41,51,76,.12);font-family:'Nunito',system-ui,sans-serif;color:var(--ink);font-synthesis:none}
*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:#e9f8f5}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}button:focus-visible,a:focus-visible{outline:4px solid var(--blue);outline-offset:5px}input:focus-visible,select:focus-visible{outline:3px solid var(--blue);outline-offset:2px}button{color:inherit}button svg{flex:none}a{color:inherit}h1,h2,p{margin:0}h2{font-size:18px;font-weight:900}input,select{min-width:0}.icon{width:21px;height:21px;fill:currentColor;flex:none}.icon-definitions{position:absolute;width:0;height:0;overflow:hidden}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}[hidden]{display:none!important}
.sky{position:fixed;inset:0;z-index:-1;overflow:hidden;background:radial-gradient(ellipse at 65% 10%,#fff9de 0%,transparent 50%),linear-gradient(180deg,#e5f8f8 0%,#edfaf2 65%,#caedcf 100%);pointer-events:none}.cloud{position:absolute;background:#fff;opacity:.7;width:180px;height:48px;border-radius:80px;animation:cloud-drift 24s ease-in-out infinite alternate}.cloud:before,.cloud:after{content:'';position:absolute;border-radius:50%;background:inherit}.cloud:before{width:80px;height:80px;bottom:4px;left:25px}.cloud:after{width:65px;height:65px;bottom:3px;right:20px}.cloud-one{top:15%;left:-70px}.cloud-two{top:34%;right:-45px;transform:scale(.75);animation-delay:-10s}.cloud-three{top:72%;left:7%;transform:scale(.5);opacity:.4;animation-delay:-18s}.hill{position:absolute;width:950px;height:500px;border-radius:50%;bottom:-390px;background:#97dca8;transform:rotate(-12deg)}.hill-one{left:-330px}.hill-two{right:-400px;bottom:-370px;background:#b2e6bd;transform:rotate(15deg)}.sky-spark{position:absolute;color:#87cbb7;font-size:35px}.spark-one{top:42%;left:3%}.spark-two{top:75%;right:4%;color:#e3bf57}.spark-three{top:6%;right:12%;font-size:24px}
.app-shell{max-width:1390px;margin:0 auto;padding:29px 36px 20px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:30px}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;flex-shrink:0}.brand-tile{display:grid;place-items:center;width:60px;height:59px;background:var(--yellow);border:3px solid var(--ink);border-radius:18px;font-size:40px;font-weight:1000;box-shadow:0 5px 0 var(--ink);transform:rotate(-7deg)}.brand-name{font-size:18px;font-weight:1000;letter-spacing:.025em;line-height:1.12}.brand-name>span{display:block;font-size:30px;letter-spacing:.09em}.brand-spark{display:inline-block;color:var(--red);font-size:28px;margin-left:5px;transform:rotate(12deg)}.connect-form{display:flex;gap:9px;align-items:center;max-width:430px;flex:1}.channel-field{display:flex;align-items:center;background:var(--paper);border:2px solid var(--ink);border-radius:13px;padding:10px 14px;gap:10px;box-shadow:0 3px 0 rgba(41,51,76,.1);flex:1;min-width:120px}.channel-field .icon{color:#8152cc;width:20px}.channel-field input{background:transparent;border:0;outline:0;font-weight:800;width:100%;font-size:16px}.channel-field:focus-within{outline:3px solid rgba(55,134,237,.5);outline-offset:3px}.toolbar{display:flex;gap:9px}.button{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:44px;border:2px solid var(--ink);border-radius:13px;padding:10px 19px;font-weight:900;line-height:1.25;transition:transform .15s,box-shadow .15s,filter .15s;text-decoration:none;white-space:nowrap}.button:hover:not(:disabled){transform:translateY(-2px);filter:brightness(1.04)}.button:active:not(:disabled){transform:translateY(4px);box-shadow:none}.button-red{background:var(--red);color:white;box-shadow:0 5px 0 var(--red-deep)}.button-blue{background:var(--blue);color:white;box-shadow:0 5px 0 var(--blue-deep)}.button-paper{background:var(--paper);box-shadow:0 5px 0 #d9dcd8}.button-ghost{border:0;background:transparent;box-shadow:none;padding:8px 9px;white-space:normal}.button-ghost:hover:not(:disabled){background:#f3f4ee;transform:none}.icon-button{display:grid;place-items:center;min-width:43px;min-height:43px;padding:9px;background:var(--paper);border:2px solid var(--ink);border-radius:13px;box-shadow:0 4px 0 #cbd6cf;transition:transform .15s,background .15s}.icon-button:hover{transform:translateY(-2px);background:#fff3cb}.icon-button:active{transform:translateY(3px);box-shadow:none}.connect-button{font-size:14px;min-height:45px;padding:10px 15px}.connection-line{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:22px 0 16px;font-size:12px;font-weight:800}.connection-status{display:flex;align-items:center;gap:8px;min-width:0}.status-dot{width:7px;height:7px;border-radius:50%;background:#9ba6ad;flex:none}.connection-status.connected .status-dot{background:#30b284;box-shadow:0 0 0 3px #30b28420}.connection-status.connecting .status-dot,.connection-status.reconnecting .status-dot{background:#dda331;animation:blink 1s ease-in-out infinite}.connection-status.error{color:#b42034}.connection-status.error .status-dot{background:var(--red)}.tiny-label{font-size:10px;letter-spacing:.16em;color:#8b9d94}
.game-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:23px;align-items:start}.game-card,.feed-card,.leader-card,.practice-card{border:2px solid var(--ink);border-radius:25px;box-shadow:var(--shadow);background:var(--paper);min-width:0}.game-card{padding:26px 30px 20px;position:relative;overflow:hidden;background:linear-gradient(160deg,#fffefa 58%,#fff8e8 100%)}.card-top{display:flex;justify-content:flex-end;align-items:center;gap:12px}.round-label{font-size:10px;letter-spacing:.14em;color:var(--muted)}.round-label b{font-size:16px;color:var(--ink);letter-spacing:.05em}.game-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:27px 0 25px}.eyebrow{font-size:10px;letter-spacing:.13em;font-weight:900;color:#93968a;margin-bottom:10px}h1{font-size:clamp(33px,3.3vw,48px);font-weight:1000;line-height:1.09;letter-spacing:-.035em}.power-word{display:inline-block;color:var(--red);transform:rotate(-3deg);position:relative;z-index:0}.power-word:after{content:'';position:absolute;left:0;right:-7px;bottom:1px;height:8px;border-radius:4px;background:#ffe495;z-index:-1;transform:rotate(1deg)}.game-subtitle{font-size:13px;color:#7d8391;margin-top:12px;font-weight:700}.mascot-wrap{position:relative;width:142px;height:143px;flex-shrink:0;display:grid;place-items:center;margin-right:7px}.star-mascot{position:relative;display:grid;place-items:center;width:118px;height:118px;background:linear-gradient(135deg,#ffe982 10%,#ffcb36 55%,#f5aa2d 100%);clip-path:polygon(50% 0,64% 29%,97% 35%,75% 60%,80% 94%,50% 79%,20% 94%,25% 60%,3% 35%,36% 29%);animation:mascot-float 3.6s ease-in-out infinite;filter:drop-shadow(0 6px 0 #bd7f28);transform:rotate(10deg)}.star-mascot:before{content:'';position:absolute;width:28px;height:12px;top:34px;left:30px;background:#fff5c5;opacity:.8;border-radius:50%;transform:rotate(-25deg)}.mascot-shadow{position:absolute;width:70px;height:13px;background:#dacd9b;opacity:.4;border-radius:50%;bottom:2px;animation:shadow-pulse 3.6s ease-in-out infinite}.mascot-face{position:relative;width:36px;height:30px;top:4px}.mascot-face>span{position:absolute;top:3px;width:7px;height:14px;background:var(--ink);border-radius:6px;animation:eye-blink 6s infinite}.mascot-face>span:first-child{left:5px}.mascot-face>span:nth-child(2){right:5px}.mascot-face i{position:absolute;bottom:3px;left:12px;width:13px;height:7px;border:2px solid var(--ink);border-top:0;border-radius:0 0 12px 12px}.mascot-spark{position:absolute;top:10px;right:2px;font-size:28px;color:#eda946}.mascot-spark.second{top:auto;bottom:35px;left:0;right:auto;font-size:22px}.round-hud{display:flex;align-items:center;justify-content:space-between;padding:12px 17px;border-radius:13px;background:#f0f4ed;border:1px solid #e6ebe0}.timer{display:flex;align-items:center;gap:9px}.timer .icon{width:18px;color:#859183}.timer>span:first-of-type{font-size:25px;font-weight:1000;font-variant-numeric:tabular-nums;line-height:1}.timer-label{font-size:11px;color:#899085;font-weight:800}.timer.urgent{color:var(--red)}.timer.urgent .icon{color:var(--red)}.score-counter{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:800;color:#7f877d}.score-counter .icon{color:#e7aa1f;width:18px}.score-counter #score{color:var(--ink);font-size:21px;font-weight:1000;font-variant-numeric:tabular-nums}.rack-wrap{margin:25px 0 26px}.letter-rack{display:grid;grid-template-columns:repeat(var(--letter-columns,8),minmax(0,1fr));gap:10px;perspective:800px;padding:0 0 7px}.letter-tile{display:grid;place-items:center;position:relative;aspect-ratio:.88;border:2px solid var(--ink);border-radius:13px;box-shadow:0 6px 0 var(--yellow-deep),inset 0 3px 0 #fff4b0;background:linear-gradient(160deg,#ffdf72,#ffd047);font-size:clamp(25px,3.1vw,43px);font-weight:1000;line-height:1;text-shadow:0 2px #fff2bb;transform-origin:center bottom;transition:transform .16s,background .16s,box-shadow .16s}.letter-tile.entering{animation:tile-arrive .65s cubic-bezier(.34,1.6,.5,1) both;animation-delay:calc(var(--index)*55ms)}.letter-tile:after{content:'';position:absolute;left:6px;right:6px;bottom:5px;height:2px;border-radius:3px;background:#e4aa3d40}.letter-tile:hover{transform:translateY(-4px) rotate(-2deg)}.letter-tile:active{transform:translateY(5px);box-shadow:0 1px 0 var(--yellow-deep)}.letter-tile.hit{animation:tile-hit .55s cubic-bezier(.2,1.5,.5,1)}.rack-caption{display:flex;justify-content:space-between;gap:12px;margin-top:13px;font-size:10px;font-weight:800;color:#899084}.raid-progress{margin-bottom:27px}.progress-heading{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:13px}.progress-heading h2{font-size:16px}.progress-heading>span{font-size:11px;font-weight:800;color:#8b9086}.progress-track{position:relative;height:19px;border:2px solid var(--ink);border-radius:20px;background:#e8ebe2;box-shadow:inset 0 3px 0 #d9ddd2;margin-right:8px}.progress-fill{height:100%;width:0;border-radius:17px;background:repeating-linear-gradient(-50deg,#7fcdb2,#7fcdb2 12px,#97dcc4 12px,#97dcc4 24px);transition:width .6s cubic-bezier(.22,1,.36,1)}.progress-runner{position:absolute;left:0;top:50%;transform:translate(-50%,-50%);font-size:31px;color:var(--yellow);-webkit-text-stroke:1px var(--ink);transition:left .6s cubic-bezier(.22,1,.36,1);line-height:1;filter:drop-shadow(0 2px 0 #bd8c30)}.checkpoints{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-top:16px}.checkpoint{display:flex;gap:7px;align-items:center;font-size:11px;min-width:0}.checkpoint-star{display:grid;place-items:center;width:28px;height:28px;background:#edece5;border:1px solid #d5d5ca;border-radius:8px;color:#babbaa;font-size:21px;flex:none}.checkpoint>div:last-child{display:flex;flex-direction:column;line-height:1.4}.checkpoint strong{font-size:11px;font-weight:900}.checkpoint small{font-size:10px;color:#a0a493}.checkpoint.earned .checkpoint-star{background:#ffdf78;border-color:#e9b941;color:#ae7517;animation:checkpoint-pop .65s cubic-bezier(.3,1.6,.5,1)}.checkpoint.earned small{color:#448e72}.game-controls{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.button-main{font-size:14px;min-height:47px;min-width:185px}.game-controls .button-paper{font-size:12px;min-height:46px;padding:10px 13px}.game-controls>.icon-button{min-height:44px;min-width:44px}.game-controls #hint-button{font-size:12px;margin-left:auto;padding:8px 3px;gap:5px}.control-note{font-size:10px;color:#96998d;margin:13px 0 0;font-weight:800}
.side-panel{grid-column:2;grid-row:1;display:flex;flex-direction:column;gap:21px}.feed-card,.leader-card{padding:20px 20px 18px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.section-heading h2{display:flex;align-items:center;gap:9px;font-size:16px}.section-heading h2>.icon{width:18px;height:18px;color:#5c957f}.count-bubble{display:grid;place-items:center;min-width:25px;height:25px;padding:0 7px;font-size:11px;font-weight:900;background:#edf1e8;border-radius:7px}.feed{display:flex;flex-direction:column;gap:8px;margin-top:16px;min-height:179px}.empty-state{display:flex;align-items:center;justify-content:center;flex-direction:column;min-height:179px;text-align:center;gap:9px}.empty-symbol{display:grid;place-items:center;width:48px;height:48px;border:2px dashed #d8dacd;border-radius:15px;color:#c3c5b6;font-size:32px;transform:rotate(-7deg)}.empty-state strong{font-size:13px;margin-top:4px}.empty-state p{font-size:11px;line-height:1.65;color:#969b91}.feed-entry{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 11px;background:#f5f6ef;border:1px solid #e8eadd;border-radius:10px;animation:feed-arrive .45s cubic-bezier(.25,1.5,.5,1)}.feed-entry>div{min-width:0}.feed-word{display:block;font-weight:900;font-size:16px;overflow-wrap:anywhere}.feed-user{display:block;font-size:10px;font-weight:800;color:#929889;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:180px}.feed-score{color:#42946f;font-weight:1000;font-size:15px;flex-shrink:0}.leaderboard{min-height:115px;margin-top:15px}.leader-empty{color:#969b91;text-align:center;font-size:11px;line-height:1.8;padding:24px 0}.leader-row{display:flex;align-items:center;gap:8px;padding:7px 0}.leader-position{width:17px;font-size:12px;color:#a4a79a;font-weight:900}.leader-row:first-child .leader-position{color:#bb861e}.avatar{display:grid;place-items:center;width:30px;height:30px;flex:none;border-radius:9px;background:var(--avatar-color,#b9d7ef);font-size:14px;font-weight:1000;color:#fff;border:1px solid #29334c20}.leader-name{flex:1;min-width:0;font-size:12px;font-weight:900;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.leader-points{font-size:14px;font-weight:1000}.leader-points small{font-size:9px;color:#969b91;font-weight:800;margin-left:3px}.session-stats{display:grid;grid-template-columns:repeat(3,1fr);text-align:center;border-top:1px solid #e9ece1;padding-top:13px;margin-top:11px}.session-stats div{display:flex;flex-direction:column;gap:1px}.session-stats div+div{border-left:1px solid #ecece3}.session-stats span{font-size:19px;font-weight:1000}.session-stats small{font-size:9px;color:#969b91;font-weight:800}.practice-card{padding:21px 27px;grid-column:1;position:relative}.manual-form{display:flex;gap:9px;margin-top:15px}.manual-form input{flex:1;min-width:0;border:2px solid #dce0d4;border-radius:11px;padding:9px 13px;background:white;font-size:14px;min-height:44px}.manual-form .button{padding:9px 16px;font-size:12px;min-height:44px}.manual-feedback{font-size:10px;margin:11px 0 0;color:#989c91;min-height:15px}.manual-feedback.error{color:var(--red-deep)}.manual-feedback.success{color:#3a8a68}.footer{display:flex;justify-content:space-between;align-items:center;gap:15px;flex-wrap:wrap;margin-top:24px;color:#88a092;font-size:9px;font-weight:900;letter-spacing:.1em}.footer-link{display:flex;align-items:center;gap:6px;letter-spacing:0;border:0;background:transparent;color:#698777;text-decoration:none;font-size:10px;padding:4px 0;font-weight:800}.footer-link .icon{width:13px;height:13px}.footer-link:hover{text-decoration:underline}.attribution-link{font-size:9px}
.round-overlay{position:absolute;inset:0;z-index:3;background:#fffefaec;backdrop-filter:blur(5px);display:flex;align-items:center;justify-content:center;text-align:center;padding:25px}.overlay-content{max-width:480px;animation:result-arrive .5s cubic-bezier(.2,1.5,.4,1)}.countdown-number{font-size:120px;line-height:1;font-weight:1000;color:var(--red);text-shadow:0 6px 0 #b61f3420;animation:countdown-pop .8s cubic-bezier(.25,1.5,.5,1)}.countdown-caption{font-size:15px;font-weight:900;margin-top:12px}.result-stars{font-size:46px;color:#ffc534;letter-spacing:5px;-webkit-text-stroke:1px #c79632;margin-bottom:10px}.result-stars .dim{color:#e4e5d8;-webkit-text-stroke:1px #c8cbba}.result-heading{font-size:38px;line-height:1.12;font-weight:1000;color:var(--red);margin-bottom:13px}.result-summary{font-size:15px;font-weight:900}.result-missed{font-size:11px;color:#8c9486;margin:18px 0;line-height:1.9}.result-missed b{color:var(--ink)}.result-next{margin-top:18px;font-size:12px;color:#949b8e;font-weight:800}.celebration{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:4}.floating-score{position:absolute;left:50%;top:45%;z-index:5;pointer-events:none;font-size:38px;font-weight:1000;color:#249575;text-shadow:0 2px 0 #fff;animation:float-score 1.1s ease-out forwards}.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);z-index:12;background:var(--ink);color:white;border-radius:15px;padding:13px 22px;max-width:min(520px,calc(100% - 30px));font-size:13px;font-weight:800;text-align:center;box-shadow:0 5px 0 #101b3160;animation:toast-arrive .3s ease-out}
.dialog{border:2px solid var(--ink);border-radius:25px;box-shadow:0 10px 0 #182b4160;background:var(--paper);color:var(--ink);width:min(530px,calc(100% - 28px));max-height:calc(100dvh - 48px);padding:32px;overflow:auto}.dialog::backdrop{background:#25314d75;backdrop-filter:blur(5px)}.dialog[open]{animation:result-arrive .3s cubic-bezier(.3,1.4,.4,1)}.dialog-close{position:absolute;right:17px;top:17px;min-width:33px;min-height:33px;padding:5px;border-radius:10px}.dialog-close .icon{width:17px;height:17px}.dialog h2{font-size:29px;font-weight:1000;margin-bottom:22px}.dialog>p:not(.eyebrow){font-size:13px;line-height:1.7;margin-bottom:15px}.rules-list{list-style:none;margin:0 0 23px;padding:0;display:flex;flex-direction:column;gap:20px}.rules-list li{display:flex;gap:14px;align-items:flex-start}.rules-list li>span{display:grid;place-items:center;min-width:34px;height:34px;background:var(--yellow);border:2px solid var(--ink);border-radius:10px;box-shadow:0 3px 0 #d6a131;font-weight:1000;transform:rotate(-5deg)}.rules-list strong{font-size:15px}.rules-list p{font-size:12px;color:#848b7e;line-height:1.65;margin-top:4px}.help-example{display:flex;flex-direction:column;gap:9px;background:#fff0bf;border-radius:12px;padding:17px;margin-bottom:17px;text-align:center;font-weight:900}.help-example>span:first-child{font-size:23px;letter-spacing:.13em}.help-example>span:last-child{font-size:11px;color:#ac842c}.dialog-note{font-size:11px!important;color:#88907f;line-height:1.7;margin:16px 0 22px!important}.dialog code{font:inherit;font-weight:900;color:#606b56}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:19px 15px;margin-bottom:22px}.settings-grid label{font-size:12px;font-weight:900;display:flex;flex-direction:column;gap:7px}.settings-grid select{border:2px solid #e1e4d8;border-radius:10px;background:white;padding:10px;font-size:12px;font-weight:800;min-height:43px}.switch-row{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:18px;font-size:13px;font-weight:900}.switch-row small{display:block;font-size:10px;font-weight:700;color:#939989;margin-top:2px}.switch-row input{appearance:none;width:43px;height:25px;border:2px solid #cbd0c2;border-radius:20px;background:#e7e9e0;position:relative;flex:none;cursor:pointer}.switch-row input:before{content:'';display:block;width:17px;height:17px;position:absolute;top:2px;left:2px;background:white;border-radius:50%;box-shadow:0 1px 2px #0002;transition:transform .18s}.switch-row input:checked{background:var(--blue);border-color:var(--blue-deep)}.switch-row input:checked:before{transform:translateX(18px)}.volume-field{display:flex;gap:7px;align-items:center;flex-wrap:wrap;font-size:12px;font-weight:900;margin-top:20px}.volume-field>span{margin-left:auto;color:#909787}.volume-field input{width:100%;accent-color:var(--blue)}.settings-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.settings-actions .button-ghost{font-size:11px}.obs-url-label{display:block;font-size:11px;font-weight:900;margin-bottom:7px}#obs-url{width:100%;border:2px solid #d9dfd0;border-radius:11px;padding:12px;font-size:11px;margin-bottom:17px;background:white;color:#667861}
.reduced-motion *, .reduced-motion *:before,.reduced-motion *:after{animation:none!important;transition:none!important}.obs-mode .app-shell{padding:20px 30px;max-width:1390px}.obs-mode .topbar{gap:20px}.obs-mode .connect-form{display:none}.obs-mode .connection-line .tiny-label{display:none}.obs-mode .footer{display:none}.transparent-mode{background:transparent}.transparent-mode .sky{display:none}.transparent-mode .connection-line{color:var(--ink);background:var(--paper);padding:8px 12px;border-radius:9px;display:inline-flex}
@keyframes cloud-drift{to{translate:25px 0}}@keyframes blink{50%{opacity:.4}}@keyframes mascot-float{0%,100%{translate:0 -3px;rotate:0deg}50%{translate:0 -13px;rotate:5deg}}@keyframes shadow-pulse{50%{scale:.75;opacity:.25}}@keyframes eye-blink{0%,44%,48%,100%{scale:1 1}46%{scale:1 .1}}@keyframes tile-arrive{from{opacity:0;transform:translateY(-25px) rotateX(-30deg)}to{opacity:1;transform:translateY(0) rotateX(0)}}@keyframes tile-hit{20%{transform:translateY(-14px) rotate(-5deg);background:#9de2bd}55%{transform:translateY(0) rotate(2deg);background:#9de2bd}100%{transform:translateY(0)}}@keyframes feed-arrive{from{opacity:0;transform:translateX(18px)}to{opacity:1;transform:translateX(0)}}@keyframes checkpoint-pop{from{transform:scale(.3) rotate(-35deg)}to{transform:scale(1) rotate(0)}}@keyframes result-arrive{from{opacity:0;transform:scale(.9) translateY(12px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes countdown-pop{0%{transform:scale(.4) rotate(-8deg)}60%{transform:scale(1.1)}100%{transform:scale(1)}}@keyframes float-score{0%{opacity:1;transform:translate(-50%,0) scale(.5)}25%{transform:translate(-50%,-15px) scale(1.2)}100%{opacity:0;transform:translate(-50%,-100px) scale(.85)}}@keyframes toast-arrive{from{opacity:0;translate:0 10px}to{opacity:1;translate:0 0}}
@media(min-width:1450px){.app-shell{padding-top:39px}.game-heading{margin-top:32px;margin-bottom:31px}.game-card{padding-bottom:26px}.letter-tile{font-size:44px}}
@media(max-width:1150px){.app-shell{padding:23px 25px 18px}.game-layout{grid-template-columns:minmax(0,1fr) 265px;gap:19px}.game-card{padding:22px 24px 18px}.topbar{gap:20px}.brand-name{font-size:15px}.brand-name>span{font-size:26px}.brand-tile{width:53px;height:52px;font-size:34px}.toolbar{gap:6px}.mascot-wrap{width:100px;height:110px;margin-right:0}.star-mascot{width:90px;height:90px}.mascot-face{scale:.8}.mascot-shadow{width:50px}.mascot-spark{font-size:21px}.game-heading{gap:10px}.game-subtitle{max-width:320px;font-size:12px}.letter-rack{gap:7px}.letter-tile{border-radius:11px}.game-controls{gap:8px}.button-main{min-width:160px;font-size:12px}.game-controls .button-paper{font-size:11px}.feed-card,.leader-card{padding:18px 16px}.game-controls #hint-button{margin-left:0}.rack-caption{font-size:9px}}
@media(max-width:920px){.game-layout{grid-template-columns:minmax(0,1fr) 235px;gap:16px}.app-shell{padding:20px}.topbar{flex-wrap:wrap;gap:17px}.brand{order:0}.toolbar{order:1;margin-left:auto}.connect-form{order:2;max-width:none;flex-basis:100%;flex-grow:1}.connection-line{margin-top:15px}.game-card{padding:20px}.game-heading{margin:22px 0}.mascot-wrap{display:none}h1{font-size:36px}.game-controls .button-main{flex-grow:1}.game-controls .button-paper{flex-grow:1}.game-controls>.icon-button{margin-left:auto}.checkpoints{gap:4px}.checkpoint strong{font-size:9px}.checkpoint small{font-size:8px}.checkpoint-star{width:22px;height:22px;font-size:17px}.timer-label{display:none}.progress-heading{flex-wrap:wrap;gap:4px}.letter-rack{gap:6px}.letter-tile{font-size:27px;aspect-ratio:.8}.feed-entry{padding:9px}.practice-card{padding:20px}.section-heading h2{font-size:14px}}
@media(max-width:740px){.app-shell{padding:19px 16px}.game-layout{grid-template-columns:1fr;gap:18px}.game-card{padding:23px}.side-panel{grid-column:1;grid-row:auto;display:grid;grid-template-columns:1fr 1fr;gap:15px}.practice-card{grid-row:2}.game-heading{margin-top:27px;margin-bottom:25px}.mascot-wrap{display:grid;width:100px;height:110px}h1{font-size:38px}.letter-tile{font-size:clamp(27px,6vw,44px);aspect-ratio:.86;border-radius:12px}.timer-label{display:inline}.checkpoint strong{font-size:11px}.checkpoint small{font-size:9px}.checkpoint-star{width:27px;height:27px;font-size:20px}.game-controls .button-main{flex-grow:0;min-width:170px;font-size:13px}.game-controls .button-paper{flex-grow:0}.game-controls>.icon-button{margin-left:0}.game-controls #hint-button{margin-left:auto}.tiny-label{display:none}.rack-caption{font-size:10px}.feed-word{font-size:14px}.feed-user{max-width:125px}.feed-card,.leader-card{padding:17px 15px}.footer{justify-content:center;text-align:center;margin-top:23px}.footer>span{width:100%}.obs-mode .app-shell{padding:16px}.game-controls{gap:9px}}
@media(max-width:460px){.brand-name{font-size:12px}.brand-name>span{font-size:24px}.brand-tile{width:45px;height:45px;font-size:31px;border-radius:13px}.brand{gap:9px}.toolbar .icon-button{min-width:36px;min-height:36px;padding:7px;border-radius:11px}.toolbar .icon{width:18px;height:18px}.toolbar{gap:6px}.topbar{gap:12px}.connect-button{padding:10px 12px}.connect-button .icon{display:none}.game-card{padding:19px}.round-label{font-size:8px}.game-heading{margin-top:23px}.game-heading h1{font-size:31px}.game-subtitle{font-size:11px;max-width:200px;line-height:1.6}.mascot-wrap{width:75px;height:95px}.star-mascot{width:75px;height:75px}.mascot-spark{font-size:17px}.mascot-spark.second{font-size:17px}.mascot-shadow{width:44px}.letter-rack{grid-template-columns:repeat(5,minmax(0,1fr));max-width:330px;margin:0 auto;gap:10px}.letter-tile{font-size:31px;aspect-ratio:1}.rack-wrap{margin-top:21px;margin-bottom:22px}.rack-caption{font-size:8px;margin-top:12px}.round-hud{padding:11px}.timer>span:first-of-type{font-size:23px}.timer-label{font-size:9px}.score-counter{font-size:9px}.score-counter #score{font-size:18px}.progress-heading h2{font-size:15px}.progress-heading>span{font-size:10px}.checkpoint{gap:4px}.checkpoint strong{font-size:9px}.checkpoint small{font-size:8px}.checkpoint-star{width:24px;height:24px}.game-controls .button-main{width:100%;font-size:14px}.game-controls .button-paper{flex-grow:1;max-width:none;font-size:12px}.game-controls #hint-button{font-size:11px;margin-left:0}.control-note{font-size:9px;line-height:1.6}.side-panel{grid-template-columns:1fr}.feed{min-height:110px}.empty-state{min-height:140px}.feed-entry{padding:10px 13px}.feed-user{max-width:230px}.leaderboard{min-height:85px}.practice-card{padding:18px}.manual-form .button{font-size:11px;padding:9px 11px}.manual-form .icon{display:none}.section-heading h2{font-size:14px}.dialog{padding:28px 23px}.dialog h2{font-size:26px}.settings-grid{gap:15px 9px}.settings-grid label{font-size:11px}.settings-grid select{font-size:11px;padding:9px 6px}.result-heading{font-size:30px}.result-stars{font-size:36px}.result-summary{font-size:13px}.obs-mode .toolbar{gap:5px}.obs-mode .app-shell{padding:12px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.obs-button{display:flex;align-items:center;gap:6px;padding:9px 10px;font-size:11px;font-weight:1000}.obs-button .icon{width:18px;height:18px}.channel-field input::placeholder{color:#8b929f;font-weight:700;font-size:13px}
@media(max-width:460px){.topbar{gap:8px}.brand-tile{width:38px;height:38px;font-size:27px}.brand{gap:7px}.brand-name{font-size:10px}.brand-name>span{font-size:20px}.brand-spark{font-size:20px;margin-left:3px}.toolbar{gap:4px}.toolbar .icon-button{min-width:30px;min-height:36px;padding:6px}.toolbar .obs-button{padding:6px 7px;gap:4px;font-size:10px}.toolbar .obs-button .icon{width:15px;height:15px}.channel-field{padding:10px;gap:6px}.channel-field input::placeholder{font-size:11px}}
@media(max-width:340px){.brand{margin:0 auto}.toolbar{width:100%;justify-content:center;margin-left:0}}
.obs-mode .game-card{padding:20px 26px 18px}.obs-mode .game-heading{margin:18px 0}.obs-mode .game-heading h1{font-size:40px}.obs-mode .mascot-wrap{height:115px}.obs-mode .rack-wrap{margin:20px 0}.obs-mode .letter-tile{aspect-ratio:1.08}.obs-mode .practice-card{padding:17px 26px}

@media(max-width:740px){.obs-mode .game-heading h1{font-size:34px}.obs-mode .game-card{padding:21px}.obs-mode .letter-tile{aspect-ratio:.95}}
@media(max-width:460px){.obs-mode .game-heading h1{font-size:29px}.obs-mode .game-card{padding:18px}.obs-mode .practice-card{padding:17px}}
