:root{--sky:#4aa6ea;--sky-dark:#1f6fb6;--grass:#7cc242;--grass-dark:#4c8a22;--parchment:#fbefd0;--parchment-dark:#e8d3a2;--wood:#8a5a2b;--wood-dark:#5a3818;--ink:#2b1d10;--muted:#7a6040;--gold:#ffd23f;--gold-dark:#c88f00;--green-btn:#7ed321;--green-btn-dark:#3f8a0c;--red-btn:#ff5a4f;--red-btn-dark:#b0221a;--blue-btn:#3aa0ff;--blue-btn-dark:#1559a8;--purple-btn:#a66bff;--purple-btn-dark:#5b2bb0;--display:"Lilita One", "Arial Black", Impact, sans-serif;--body:"Fredoka", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif}*{box-sizing:border-box}html,body{background:var(--sky-dark);height:100%;color:var(--ink);font-family:var(--body);-webkit-tap-highlight-color:transparent;overscroll-behavior:none;margin:0;font-weight:500}button{cursor:pointer;font-family:inherit}.outlined,.logo,.card h3,.panel h2,.banner b,button.big,.shot,.board .pts,.final,.pick .rung{font-family:var(--display);color:#fff;-webkit-text-stroke:2px #1b1208;paint-order:stroke fill;text-shadow:0 3px #0000008c;letter-spacing:.02em;font-weight:400}#app{position:fixed;inset:0;overflow:hidden}#app.screen-menu{background:radial-gradient(ellipse at 50% 115%, var(--grass) 0 32%, transparent 33%), radial-gradient(circle at 15% 10%, #ffffff59 0 6%, transparent 7%), radial-gradient(circle at 80% 18%, #ffffff4d 0 5%, transparent 6%), linear-gradient(#2f8de0, #8fd0ff 70%, #bfe8ff);background-attachment:fixed;overflow-y:auto}.menu{max-width:1120px;margin:0 auto;padding:14px 16px 104px}.title{text-align:center;margin:6px 0 16px}.logo{-webkit-text-stroke:3px #1b1208;text-shadow:0 5px #00000080;font-size:clamp(34px,7vw,60px);line-height:1.05}.logo span{color:var(--gold)}.sub{background:var(--wood);border:3px solid var(--wood-dark);color:#fff;font-family:var(--display);letter-spacing:.05em;box-shadow:0 3px 0 var(--wood-dark);border-radius:999px;margin-top:6px;padding:4px 18px;font-size:18px;display:inline-block}.menu-grid{grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:16px;display:grid}.card{background:linear-gradient(var(--parchment), #f5e2b5);border:4px solid var(--wood);box-shadow:inset 0 0 0 3px #ffffff8c, 0 6px 0 var(--wood-dark), 0 10px 18px #00000040;border-radius:18px;margin-top:14px;padding:34px 14px 16px;position:relative}.card h3{white-space:nowrap;background:linear-gradient(#b67a3e, var(--wood));border:3px solid var(--wood-dark);box-shadow:0 3px 0 var(--wood-dark);border-radius:12px;margin:0;padding:3px 22px 5px;font-size:22px;position:absolute;top:-18px;left:50%;transform:translate(-50%)}.card label{color:var(--muted);gap:4px;margin-bottom:10px;font-size:14px;font-weight:600;display:grid}.card input{font:inherit;color:var(--ink);border:3px solid var(--parchment-dark);background:#fffaf0;border-radius:12px;padding:8px 12px;font-size:18px;box-shadow:inset 0 2px #00000014}.row-label{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin:12px 0 5px;font-size:13px;font-weight:700}.seg{gap:6px;margin-bottom:6px;display:flex}.seg.wrap{flex-wrap:wrap}.seg button{text-transform:capitalize;min-height:42px;color:var(--ink);border:3px solid var(--parchment-dark);background:linear-gradient(#fffdf6,#f1e2bd);border-radius:12px;flex:1;padding:6px 10px;font-size:15px;font-weight:600;box-shadow:0 3px #cdb27a}.seg.wrap button{flex:none}.seg button.on{color:#fff;font-family:var(--display);-webkit-text-stroke:1.5px #1b1208;paint-order:stroke fill;text-shadow:0 2px #00000080;background:linear-gradient(#5fbaff, var(--blue-btn) 55%, #2a86e6);border-color:var(--blue-btn-dark);box-shadow:inset 0 2px 0 #ffffff80, 0 3px 0 var(--blue-btn-dark);font-size:16px;font-weight:400}.swatches{flex-wrap:wrap;gap:8px;display:flex}.swatches button{width:36px;height:36px;box-shadow:0 0 0 3px var(--parchment-dark), 0 3px 0 3px #cdb27a;border:3px solid #fff;border-radius:50%}.swatches button.on{box-shadow:0 0 0 3px var(--ink), 0 0 0 6px var(--gold)}.roster{gap:8px;max-height:430px;padding:2px 4px 4px 2px;display:grid;overflow-y:auto}.pick{text-align:left;width:100%;color:var(--ink);border:3px solid var(--parchment-dark);background:linear-gradient(#fffdf6,#f3e4c0);border-radius:14px;align-items:center;gap:10px;padding:8px 10px;display:flex;box-shadow:0 3px #cdb27a}.pick.on{border-color:var(--gold-dark);box-shadow:0 3px 0 var(--gold-dark);background:linear-gradient(#fff7cf,#ffe78a)}.pick .rung{background:radial-gradient(circle at 35% 30%, #b9f06a, var(--green-btn) 50%, var(--green-btn-dark));border:2px solid #1b1208;border-radius:50%;flex:0 0 34px;place-items:center;height:34px;font-size:18px;display:grid}.pick .who{flex:1;display:grid}.pick .who b{font-family:var(--display);letter-spacing:.02em;font-size:17px;font-weight:400}.pick .who small{color:var(--muted);font-size:12.5px}.pick .stars{white-space:nowrap;font-size:16px}.pick .stars .on{color:var(--gold);-webkit-text-stroke:1px #7a5200}.pick .stars .off{color:#5a3c142e}.hint{color:var(--muted);margin:8px 0 0;font-size:13px}.menu-actions{padding:14px 16px calc(14px + env(safe-area-inset-bottom));background:linear-gradient(#0000,#285014d9 45%);justify-content:center;gap:12px;display:flex;position:fixed;bottom:0;left:0;right:0}button.big,button.ghost{border-radius:18px;min-height:56px;padding:0 36px;font-size:24px;transition:transform 60ms}button.big{background:linear-gradient(#b4f05c, var(--green-btn) 50%, #5fb514);box-shadow:inset 0 3px 0 #ffffff8c, inset 0 -4px 0 #00000026, 0 5px 0 var(--green-btn-dark), 0 8px 12px #0000004d;border:3px solid #1b1208}button.ghost{font-family:var(--display);color:#fff;-webkit-text-stroke:1.5px #1b1208;paint-order:stroke fill;text-shadow:0 2px #00000080;background:linear-gradient(#ffe066, var(--gold) 50%, #f0b400);box-shadow:inset 0 3px 0 #ffffff8c, 0 5px 0 var(--gold-dark), 0 8px 12px #0000004d;border:3px solid #1b1208;font-size:20px}button.big:active,button.ghost:active{transform:translateY(4px)}.help .card{max-width:780px;margin:22px auto 0;line-height:1.5}.help .card h3{margin:14px 0 6px;font-size:19px;display:inline-block;position:static;transform:none}.help li{margin-bottom:4px}.view{touch-action:none;width:100%;height:100%;display:block;position:absolute;inset:0}.hud{pointer-events:none;position:absolute;inset:0}.hud>*{pointer-events:auto}.pause{top:calc(10px + env(safe-area-inset-top));left:calc(10px + env(safe-area-inset-left));color:#fff;background:linear-gradient(#ffe066, var(--gold) 50%, #f0b400);width:50px;height:50px;box-shadow:inset 0 2px 0 #fff9, 0 4px 0 var(--gold-dark);-webkit-text-stroke:1.5px #1b1208;paint-order:stroke fill;border:3px solid #1b1208;border-radius:14px;font-size:18px;position:absolute}.board{top:calc(8px + env(safe-area-inset-top));pointer-events:none;gap:4px;min-width:260px;display:grid;position:absolute;left:50%;transform:translate(-50%)}.board .team{background:linear-gradient(#b67a3e, var(--wood));border:3px solid var(--wood-dark);box-shadow:inset 0 2px 0 #ffffff4d, 0 3px 0 var(--wood-dark);color:#fff;font-family:var(--display);letter-spacing:.02em;-webkit-text-stroke:1.2px #1b1208;paint-order:stroke fill;text-shadow:0 2px #00000080;border-radius:12px;align-items:center;gap:8px;padding:2px 6px 2px 10px;font-size:17px;display:flex}.board .team.mine{background:linear-gradient(#4fb0ff,#1f7ad6);border-color:#0e3f7a;box-shadow:inset 0 2px #ffffff59,0 3px #0e3f7a}.board .team:not(.mine){background:linear-gradient(#ff7a6e,#d93a2f);border-color:#7a140e;box-shadow:inset 0 2px #ffffff59,0 3px #7a140e}.board .dot{visibility:hidden;filter:drop-shadow(0 2px #0006);font-size:15px}.board .dot:before{content:"🥒"}.board .dot{color:#0000;-webkit-text-stroke:0}.board .serving .dot{visibility:visible}.board .tname{white-space:nowrap;text-overflow:ellipsis;flex:1;max-width:230px;overflow:hidden}.board .games{background:#00000040;border-radius:8px;padding:0 7px;font-size:14px}.board .pts{text-align:center;background:#00000047;border-radius:9px;min-width:40px;padding:0 4px;font-size:24px}.board .call{font-family:var(--display);letter-spacing:.12em;color:#fff;-webkit-text-stroke:1px #1b1208;paint-order:stroke fill;text-shadow:0 2px #00000080;justify-self:center;font-size:14px}.banner{text-align:center;background:linear-gradient(var(--parchment), #f5e2b5);color:var(--ink);border:4px solid var(--wood);max-width:min(560px,86vw);box-shadow:inset 0 0 0 3px #ffffff8c, 0 6px 0 var(--wood-dark), 0 12px 20px #0000004d;pointer-events:none;border-radius:20px;gap:4px;padding:12px 24px 14px;animation:.3s cubic-bezier(.2,1.6,.4,1) pop;display:grid;position:absolute;top:32%;left:50%;transform:translate(-50%,-50%)}.banner b{-webkit-text-stroke:2.5px #1b1208;font-size:34px}.banner small{font-size:16px;font-weight:600}.banner em{font-style:normal;font-family:var(--display);letter-spacing:.03em;color:var(--wood-dark);font-size:20px}.banner.bad b{color:#ff7066}.banner.good b{color:#8ee04a}.banner.info b{color:var(--gold)}.prompt{bottom:calc(150px + env(safe-area-inset-bottom));color:#fff;text-align:center;pointer-events:none;background:#1b1208b8;border:2px solid #ffffff40;border-radius:14px;max-width:80vw;padding:8px 18px;font-size:16px;font-weight:600;position:absolute;left:50%;transform:translate(-50%)}.prompt b{font-family:var(--display);letter-spacing:.03em;font-weight:400}.hidden{display:none!important}@keyframes pop{0%{opacity:0;transform:translate(-50%,-50%)scale(.6)}}.touch-controls{height:0;position:absolute;inset:auto 0 0}.pad,.shot-buttons{display:none}@media (pointer:coarse){.pad,.shot-buttons{display:flex}}.pad{left:calc(18px + env(safe-area-inset-left));bottom:calc(18px + env(safe-area-inset-bottom));touch-action:none;flex-direction:column;justify-content:center;align-items:center;width:180px;height:136px;position:absolute}.pad-track{background:radial-gradient(circle,#1b120826,#1b120866);border:4px solid #ffffffbf;border-radius:50%;place-items:center;width:136px;height:136px;display:grid;box-shadow:0 4px #0000004d}.pad.assisted .pad-track{border-radius:35px;width:180px;height:70px}.pad-knob{background:radial-gradient(circle at 35% 30%, #fff8d0, var(--gold) 55%, var(--gold-dark));border:3px solid #1b1208;border-radius:50%;width:60px;height:60px;box-shadow:0 4px #00000059}.pad-label{font-family:var(--display);color:#fff;letter-spacing:.15em;-webkit-text-stroke:1.2px #1b1208;paint-order:stroke fill;font-size:15px;position:absolute;bottom:-6px}.shot-buttons{right:calc(16px + env(safe-area-inset-right));bottom:calc(16px + env(safe-area-inset-bottom));align-items:flex-end;gap:10px;position:absolute}.shot{touch-action:none;border:3px solid #1b1208;border-radius:50%;width:80px;height:80px;font-size:17px;transition:transform 60ms}.shot.drive{background:radial-gradient(circle at 40% 28%, #ffb3ac, var(--red-btn) 45%, #d6352b);width:106px;height:106px;box-shadow:inset 0 4px 0 #ffffff73, 0 6px 0 var(--red-btn-dark), 0 9px 12px #0000004d;font-size:21px}.shot.dink{background:radial-gradient(circle at 40% 28%, #d8ff9e, var(--green-btn) 45%, #5fb514);box-shadow:inset 0 4px 0 #ffffff73, 0 6px 0 var(--green-btn-dark), 0 9px 12px #0000004d;margin-bottom:42px}.shot.lob{background:radial-gradient(circle at 40% 28%, #e2ccff, var(--purple-btn) 45%, #7d3fe0);box-shadow:inset 0 4px 0 #ffffff73, 0 6px 0 var(--purple-btn-dark), 0 9px 12px #0000004d}.shot.pressed{transform:translateY(5px)scale(.95)}.overlay{z-index:5;background:#141e328c;place-items:center;display:grid;position:absolute;inset:0}.panel{background:linear-gradient(var(--parchment), #f5e2b5);border:5px solid var(--wood);text-align:center;min-width:300px;max-width:92vw;max-height:94vh;box-shadow:inset 0 0 0 3px #ffffff8c, 0 8px 0 var(--wood-dark), 0 16px 30px #00000059;border-radius:24px;gap:12px;padding:30px 28px 22px;animation:.35s cubic-bezier(.2,1.6,.4,1) popIn;display:grid;position:relative;overflow-y:auto}@keyframes popIn{0%{opacity:0;transform:scale(.6)}}.panel h2{-webkit-text-stroke:3px #1b1208;margin:0;font-size:36px}.panel .result{gap:12px;display:grid}.result.won h2{color:var(--gold)}.result.lost h2{color:#ff8a80}.final{-webkit-text-stroke:3px #1b1208;font-size:48px}.stats{border-collapse:separate;border-spacing:0 4px;margin:0 auto;font-size:16px;font-weight:600}.stats td{background:#ffffff80;padding:3px 12px}.stats td:first-child{text-align:left;color:var(--muted);border-radius:8px 0 0 8px}.stats td:last-child{border-radius:0 8px 8px 0}.stats th{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;max-width:150px;padding:0 10px;font-weight:700;overflow:hidden}.panel p{color:var(--muted);margin:0;font-weight:600}.rotate-hint{display:none}@media (orientation:portrait) and (pointer:coarse){body:has(.screen-match) .rotate-hint{z-index:20;text-align:center;color:#fff;font-family:var(--display);-webkit-text-stroke:2px #1b1208;paint-order:stroke fill;background:linear-gradient(#2f8de0,#8fd0ff);place-items:center;font-size:28px;line-height:1.6;display:grid;position:fixed;inset:0}}@media (height<=430px){.menu{padding-top:6px}.title{justify-content:center;align-items:center;gap:12px;margin:0 0 4px;display:flex}.logo{-webkit-text-stroke:2px #1b1208;font-size:30px}.sub{margin:0;padding:2px 12px;font-size:14px}.menu-actions{padding-top:8px;padding-bottom:calc(8px + env(safe-area-inset-bottom))}button.big,button.ghost{min-height:46px;font-size:20px}.shot{width:66px;height:66px;font-size:14px}.shot.drive{width:88px;height:88px;font-size:18px}.shot.dink{margin-bottom:32px}.board{gap:3px;min-width:220px}.board .team{padding:1px 5px 1px 8px;font-size:14px}.board .pts{min-width:32px;font-size:19px}.board .call{font-size:12px}.prompt{bottom:calc(112px + env(safe-area-inset-bottom));font-size:13px}.banner b{font-size:24px}.banner small{font-size:13px}.pause{width:42px;height:42px}}@media (pointer:fine){.prompt{bottom:calc(64px + env(safe-area-inset-bottom))}}.power{left:50%;bottom:calc(18px + env(safe-area-inset-bottom));pointer-events:none;background:#1b120899;border:3px solid #1b1208;border-radius:14px;width:min(300px,40vw);height:26px;position:absolute;overflow:hidden;transform:translate(-50%);box-shadow:0 3px #0000004d}.power-fill{background:linear-gradient(90deg,#7ed321,#b4f05c);width:0;position:absolute;inset:0 auto 0 0}.power.over .power-fill{background:linear-gradient(90deg,#ff8a3d,#ff3b30)}.power-sweet{background:#ffd23f40;border-left:3px solid #ffd23f;border-right:3px solid #ffd23f;position:absolute;top:0;bottom:0}.power span{color:#fff;font-family:var(--display);letter-spacing:.15em;-webkit-text-stroke:1px #1b1208;paint-order:stroke fill;place-items:center;font-size:14px;display:grid;position:absolute;inset:0}.callout-pop{text-align:center;opacity:0;pointer-events:none;font-family:var(--display);color:#fff;-webkit-text-stroke:2.5px #1b1208;paint-order:stroke fill;text-shadow:0 4px #00000080;font-size:34px;display:grid;position:absolute;top:58%;left:50%;transform:translate(-50%,-50%)}.callout-pop small{-webkit-text-stroke:1.5px #1b1208;font-size:18px}.callout-pop.good{color:#8ee04a}.callout-pop.meh{color:#ffd23f}.callout-pop.bad{color:#ff7066}.callout-pop.anim{animation:.9s ease-out forwards calloutPop}@keyframes calloutPop{0%{opacity:0;transform:translate(-50%,-30%)scale(.5)}15%{opacity:1;transform:translate(-50%,-50%)scale(1.15)}30%{transform:translate(-50%,-50%)scale(1)}75%{opacity:1}to{opacity:0;transform:translate(-50%,-80%)scale(1)}}@media (height<=430px){.callout-pop{font-size:26px}.power{height:22px}}.center{text-align:center}.menu-grid.narrow{max-width:820px;margin:0 auto}.error{color:#b0221a;margin:10px 0 0;font-weight:700}.menu>.error{border:3px solid var(--red-btn);background:#fff3f0;border-radius:12px;max-width:560px;margin:14px auto 0;padding:8px 12px}button.wide{width:100%;margin-top:12px}button.ghost.alt{background:linear-gradient(#7fc4ff, var(--blue-btn) 50%, #2a86e6);box-shadow:inset 0 3px 0 #ffffff80, 0 5px 0 var(--blue-btn-dark), 0 8px 12px #0000004d}button.busy{opacity:.6;pointer-events:none}button.small{min-height:40px;color:var(--ink);border:3px solid var(--parchment-dark);background:linear-gradient(#fffdf6,#f1e2bd);border-radius:12px;padding:4px 14px;font-size:15px;font-weight:700;box-shadow:0 3px #cdb27a}button.small:active{box-shadow:none;transform:translateY(3px)}button.small.danger{color:#fff;background:linear-gradient(#ff8a80, var(--red-btn));border-color:var(--red-btn-dark);box-shadow:0 3px 0 var(--red-btn-dark)}button.small.on{border-color:var(--gold-dark);background:linear-gradient(#fff7cf,#ffe78a)}.face{border:3px solid var(--wood-dark);background:radial-gradient(circle at 50% 40%,#bfe8ff,#4aa6ea);border-radius:50%;width:72px;height:72px;display:block}.screen-q{text-align:center;margin:4px 0 16px;font-size:30px}.faces{grid-template-columns:repeat(auto-fill,minmax(136px,1fr));gap:14px;max-width:900px;margin:0 auto;display:grid}.face-card{color:var(--ink);background:linear-gradient(var(--parchment), #f5e2b5);border:4px solid var(--wood);box-shadow:inset 0 0 0 3px #ffffff8c, 0 5px 0 var(--wood-dark);border-radius:18px;justify-items:center;gap:6px;padding:14px 8px 12px;display:grid;position:relative}.face-card:active{box-shadow:0 1px 0 var(--wood-dark);transform:translateY(4px)}.face-card .face{width:96px;height:96px}.face-card b{font-family:var(--display);text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:19px;font-weight:400;overflow:hidden}.face-card i{font-style:normal;position:absolute;top:8px;right:10px}.face-card em{background:var(--gold);border:2px solid var(--gold-dark);border-radius:8px;padding:1px 7px;font-size:11px;font-style:normal;font-weight:700;position:absolute;top:8px;left:8px}.face-card.add .plus{width:96px;height:96px;color:var(--green-btn-dark);border:4px dashed var(--green-btn-dark);background:#7ed32126;border-radius:50%;place-items:center;font-size:56px;font-weight:700;display:grid}.face-card.guest{opacity:.85}.pinpad{justify-items:center;min-width:280px;padding-top:20px}.pinpad .face{width:84px;height:84px}.dots{gap:14px;margin:4px 0;display:flex}.dots span{border:3px solid var(--wood-dark);background:#fffaf0;border-radius:50%;width:18px;height:18px}.dots span.on{background:var(--wood-dark)}.dots.shake{animation:.35s shake}@keyframes shake{25%{transform:translate(-8px)}75%{transform:translate(8px)}}.keys{grid-template-columns:repeat(3,68px);gap:10px;display:grid}.keys button{height:58px;font-family:var(--display);color:var(--ink);border:3px solid var(--parchment-dark);background:linear-gradient(#fffdf6,#f1e2bd);border-radius:16px;font-size:26px;box-shadow:0 4px #cdb27a}.keys button:active{box-shadow:none;transform:translateY(4px)}.keys .x{color:#b0221a}.player-bar{background:linear-gradient(var(--parchment), #f5e2b5);border:4px solid var(--wood);max-width:760px;box-shadow:0 5px 0 var(--wood-dark);border-radius:18px;flex-wrap:wrap;align-items:center;gap:10px;margin:0 auto 4px;padding:8px 12px;display:flex}.player-bar .face{width:56px;height:56px}.player-bar .who{flex:1;min-width:110px;display:grid}.player-bar .who b{font-family:var(--display);font-size:22px;font-weight:400}.player-bar .who small{color:var(--muted);font-weight:600}.editor-grid{grid-template-columns:minmax(220px,2fr) 3fr;align-items:start;gap:16px;max-width:980px;margin:0 auto;display:grid}.stage{justify-items:center;display:grid;position:sticky;top:8px}.turntable{cursor:grab;width:100%;height:min(62vh,480px);display:block}.stage small{color:#fff;text-shadow:0 2px #0006;font-weight:700}.pin-row{align-items:center;gap:8px;display:flex}.pin-row input{width:130px}@media (width<=640px){.editor-grid{grid-template-columns:1fr}.stage{position:static}.turntable{height:260px}}@media (height<=430px){.turntable{height:74vh}.face-card .face,.face-card.add .plus{width:72px;height:72px}.screen-q{margin-bottom:8px;font-size:22px}}.code{white-space:nowrap;text-align:center;letter-spacing:.06em;-webkit-user-select:all;user-select:all;font-size:clamp(22px,4.6vw,40px)}.people{gap:10px;display:grid}.person{background:#ffffff80;border-radius:14px;flex-wrap:wrap;align-items:center;gap:10px;padding:8px;display:flex}.person .face{width:52px;height:52px}.person .who{flex:1;min-width:100px;display:grid}.person .who b{font-family:var(--display);font-size:18px;font-weight:400}.person .who small{color:var(--muted);font-weight:600}.person .tools{flex-wrap:wrap;gap:6px;display:flex}.person .tools button.small{min-height:34px;padding:2px 10px;font-size:13px}#leave{margin-top:18px}.panel .error{color:#b0221a}@media (height<=430px){.pinpad{grid-template-columns:auto auto;align-items:center;gap:6px 22px;padding:12px 18px}.pinpad>.face,.pinpad>h2,.pinpad>.dots,.pinpad>.error{grid-column:1}.pinpad .keys{grid-area:1/2/span 4;grid-template-columns:repeat(3,58px);gap:6px}.pinpad .keys button{height:46px;font-size:22px}.pinpad h2{font-size:26px}.player-bar{padding:4px 10px}.player-bar .face{width:42px;height:42px}.player-bar .who b{font-size:18px}.player-bar button.small{min-height:34px;font-size:13px}}.seg button.locked{opacity:.55;font-size:13px}.unlock-hint{color:var(--wood-dark);font-weight:700}.banner-card{border:4px solid var(--gold-dark);background:linear-gradient(#fff7cf,#ffe78a);border-radius:18px;align-items:center;gap:12px;max-width:760px;margin:12px auto 0;padding:10px 14px;display:flex;box-shadow:0 5px #8a6200}.banner-card .emoji{font-size:38px}.banner-card .who{flex:1;display:grid}.banner-card .who b{font-family:var(--display);font-size:22px;font-weight:400}.banner-card .who small{color:var(--muted);font-weight:600}.banner-card button.big{min-height:48px;padding:0 22px;font-size:20px}.pick .rung.level{background:radial-gradient(circle at 35% 30%, #9fd4ff, var(--blue-btn) 50%, var(--blue-btn-dark))}.pick.locked{opacity:.55}.pick.locked .rung{-webkit-text-stroke:0;text-shadow:none;background:#d9c79c;font-size:14px}.rungs{gap:10px;max-width:760px;margin:0 auto;display:grid}.rung-row{background:linear-gradient(var(--parchment), #f5e2b5);border:4px solid var(--wood);box-shadow:0 4px 0 var(--wood-dark);border-radius:16px;flex-wrap:wrap;align-items:center;gap:10px;padding:8px 12px;display:flex}.rung-row .rung{height:40px;font-size:20px;font-family:var(--display);color:#fff;-webkit-text-stroke:1.5px #1b1208;paint-order:stroke fill;background:radial-gradient(circle at 35% 30%, #b9f06a, var(--green-btn) 50%, var(--green-btn-dark));border:2px solid #1b1208;border-radius:50%;flex:0 0 40px;place-items:center;display:grid}.rung-row .face{width:58px;height:58px}.rung-row .face.mystery{font-family:var(--display);color:var(--wood-dark);background:#e8d3a2;place-items:center;font-size:30px;display:grid}.rung-row .who{flex:1;min-width:150px;display:grid}.rung-row .who b{font-family:var(--display);font-size:19px;font-weight:400}.rung-row .who small{color:var(--muted);font-size:13px}.rung-row .stars{font-size:14px}.rung-row .stars .on{color:var(--gold);-webkit-text-stroke:1px #7a5200}.rung-row .stars .off{color:#5a3c142e}.rung-row .reward{color:var(--wood-dark);background:#fff9;border-radius:10px;padding:4px 8px;font-size:13px;font-weight:700}.rung-row .reward.got{color:var(--green-btn-dark)}.rung-row button.big.play{min-height:46px;padding:0 20px;font-size:19px}.rung-row.next{border-color:var(--gold-dark);background:linear-gradient(#fff7cf,#ffe78a);box-shadow:0 4px #8a6200,0 0 0 4px #ffd23f80}.rung-row.locked{opacity:.6}.rung-row.beaten .rung{background:radial-gradient(circle at 35% 30%, #ffe680, var(--gold) 50%, var(--gold-dark))}.rung-row.tutorial .rung{background:radial-gradient(circle at 35% 30%, #9fd4ff, var(--blue-btn) 50%, var(--blue-btn-dark))}.guest-note{color:#fff;text-shadow:0 1px #00000080}.unlocked{border:3px solid var(--gold-dark);background:linear-gradient(#fff7cf,#ffe78a);border-radius:14px;justify-items:center;padding:8px 14px;display:grid}.unlocked small{text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-weight:700}.unlocked b{font-family:var(--display);font-size:22px;font-weight:400}.result-actions{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.coach{pointer-events:none;z-index:3;gap:6px;width:min(300px,38vw);display:grid;position:absolute;top:10px;right:10px}.coach .tip{background:linear-gradient(var(--parchment), #f5e2b5);border:3px solid var(--wood);box-shadow:0 3px 0 var(--wood-dark);border-radius:14px;padding:8px 12px;font-size:14px;font-weight:600;line-height:1.3}.coach .tip b{font-family:var(--display);color:var(--blue-btn-dark);font-weight:400;display:block}.coach .goals{color:#fff;background:#1b120899;border-radius:12px;margin:0;padding:6px 10px;font-size:13px;font-weight:600;list-style:none}.coach .goals li{padding:1px 0}.coach .goals li.done{color:#b9f06a}.coach .goals li.pop{animation:.6s ease-out goalPop}@keyframes goalPop{40%{transform:scale(1.15)}}@media (height<=430px){.coach{width:min(250px,34vw);top:6px;right:6px}.coach .tip{padding:5px 9px;font-size:12px}.coach .goals{padding:4px 8px;font-size:11px}.rung-row .face{width:44px;height:44px}.banner-card{margin-top:6px;padding:6px 10px}.banner-card .emoji{font-size:28px}.banner-card .who b{font-size:18px}.panel:has(>.result){gap:6px;padding:14px 20px 12px}.panel .result{gap:6px}.panel .result h2{-webkit-text-stroke:2px #1b1208;font-size:26px}.panel .result .final{font-size:30px}.panel .result .stats{border-spacing:0 2px;font-size:13px}.panel .result>p{display:none}.unlocked{padding:4px 12px}.unlocked b{font-size:18px}.result-actions button.big,.result-actions button.ghost{min-height:42px;padding:0 18px;font-size:18px}}.banner-card.online{border-color:var(--blue-btn-dark);background:linear-gradient(#d8f0ff,#9fd4ff);box-shadow:0 5px #0e3f7a}.dot{vertical-align:1px;background:#b9a57c;border-radius:50%;width:9px;height:9px;margin-right:5px;display:inline-block}.dot.online{background:#3fbf3f;box-shadow:0 0 0 2px #3fbf3f4d}.dot.playing{background:var(--gold-dark)}.person.offline{opacity:.6}button.big.small-big{min-height:42px;padding:0 16px;font-size:18px}.person.rank .place{text-align:center;width:30px;font-family:var(--display);font-size:20px}.person.rank.me{background:linear-gradient(#fff7cf,#ffe78a)}.person .rating{font-size:26px}.popup{z-index:50;position:fixed}.popup .panel{justify-items:center}.popup .face{width:72px;height:72px}.family-play .seg{max-width:320px}@media (height<=430px){.popup .panel{gap:6px;padding:12px 18px}.popup .face{width:48px;height:48px}.popup h2{-webkit-text-stroke:2px #1b1208;font-size:24px}}.coach .steps{justify-content:flex-end;gap:5px;display:flex}.coach .steps span{background:#ffffff73;border:2px solid #1b120880;border-radius:50%;width:12px;height:12px}.coach .steps span.done{background:#7ed321}.coach .steps span.now{background:var(--gold);transform:scale(1.25)}.coach .tip .count{color:var(--green-btn-dark)}.cheer{font-size:56px;line-height:1;animation:.6s cubic-bezier(.2,1.8,.4,1) cheerPop}@keyframes cheerPop{0%{transform:scale(.2)rotate(-30deg)}}.panel .next-step{text-align:left;background:#ffffff8c;border-radius:12px;max-width:420px;padding:8px 12px}.panel .next-step b{font-family:var(--display);font-size:19px;font-weight:400;display:block}.practice .board{display:none}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{color:var(--ink);text-align:center;border:3px solid var(--parchment-dark);background:linear-gradient(#fffdf6,#f1e2bd);border-radius:999px;padding:6px 12px;font-size:14px;font-weight:700;display:grid;box-shadow:0 3px #cdb27a}.chip small{color:var(--muted);font-size:11px;font-weight:600}.chip.on{background:linear-gradient(#5fbaff, var(--blue-btn) 55%, #2a86e6);border-color:var(--blue-btn-dark);color:#fff;box-shadow:0 3px 0 var(--blue-btn-dark)}.chip.on small{color:#e3f2ff}button.big:disabled{filter:grayscale(.8);opacity:.6}.lineup{font-family:var(--display);font-size:20px;line-height:1.25;color:var(--ink)!important}.lineup small{font-family:var(--body);color:var(--muted);font-size:13px}.board-tabs{max-width:320px;margin:0 auto 4px}.popup .chips{justify-content:center;max-width:420px}.banner-card.season-banner{border-color:var(--gold-dark);background:linear-gradient(#fff3c4,#ffd54f)}.table{border-collapse:separate;border-spacing:0 3px;width:100%;font-size:15px;font-weight:600}.table th{color:var(--muted);text-transform:uppercase;text-align:center;font-size:12px}.table td{text-align:center;background:#ffffff8c;padding:5px 6px}.table td:first-child{font-family:var(--display);color:var(--muted);border-radius:8px 0 0 8px}.table td:last-child{border-radius:0 8px 8px 0}.table td.name{text-align:left}.table tr.top td:first-child{color:var(--green-btn-dark)}.table tr.me td{background:linear-gradient(#fff7cf,#ffe78a)}.person.done{opacity:.8}.person.final{background:linear-gradient(#fff7cf,#ffe78a)}.person .who small.waiting,small.waiting{color:var(--muted);font-weight:600}.champion{text-align:center;color:var(--gold);margin-top:10px;font-size:26px}.season-saved{color:var(--ink);font-weight:700}.trophies{margin-left:4px;font-size:.8em}.face-card .trophies{position:absolute;bottom:38px;right:12px}.superadmin .tiles{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;max-width:1000px;margin:0 auto 8px;display:grid}.tile{background:linear-gradient(var(--parchment), #f5e2b5);border:4px solid var(--wood);box-shadow:0 4px 0 var(--wood-dark);border-radius:16px;justify-items:center;padding:10px;display:grid}.tile b{font-size:34px}.tile small{color:var(--muted);text-align:center;font-weight:700}.wide-card{max-width:1000px;margin:22px auto 0}.scroll{overflow-x:auto}.superadmin .table td,.superadmin .table th{white-space:nowrap;padding:5px 8px}.superadmin .table td em{color:var(--muted);font-style:normal}
