:root{--ink:#3e5360;--muted:#6d838e;--paper:#f5f9fa;--teal:#098e98;--coral:#d96279;--shadow:rgba(67,92,113,.18);font-family:'Avenir Next','Segoe UI',sans-serif;color:var(--ink);font-synthesis:none}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#d5dfe5}body{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}button{font:inherit;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;transition:transform .2s,box-shadow .2s,background .2s,opacity .2s}button:disabled{cursor:default;opacity:.4}button:focus-visible{outline:2px solid var(--teal);outline-offset:5px}button svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.55;stroke-linecap:round;stroke-linejoin:round}button:active:not(:disabled){transform:translateY(2px);box-shadow:inset 0 2px 4px #71858c20}button:hover:not(:disabled){filter:brightness(1.025)}[hidden]{display:none!important}#scene{position:fixed;inset:0;width:100%;height:100%;touch-action:none;outline:none}.atmosphere{position:fixed;inset:0;pointer-events:none;background:radial-gradient(ellipse at 22% 14%,#ffffff30,transparent 65%);opacity:.7}
.masthead{position:absolute;top:max(28px,env(safe-area-inset-top));left:4.5%;right:4.5%;display:flex;align-items:center;justify-content:space-between;z-index:4}.wordmark{font-size:25px;letter-spacing:-1.3px;border:0;background:none;padding:0;display:flex;align-items:center;gap:10px;font-weight:500}.brand-cubes{display:grid;grid-template-columns:repeat(2,5px);gap:2px;transform:rotate(-8deg);margin-top:3px}.brand-cubes i{width:5px;height:5px;border-radius:1.5px;background:#65a9b1}.brand-cubes i:last-child{background:#d9828e}.edition,.overline,.ambient-footer,.home-caption,.move-count,.level-badge{font-size:10px;font-weight:600;letter-spacing:2.3px}.edition{color:#66808e;position:absolute;left:50%;transform:translateX(-50%);white-space:nowrap}.utility{display:flex;gap:10px}.round{width:41px;height:41px;display:grid;place-items:center;border-radius:50%;border:1px solid #ffffffa1;background:linear-gradient(145deg,#f6f9fabb,#e2ebef88);box-shadow:4px 6px 12px #5d7a921a,-2px -2px 5px #ffffff40}.round:hover{background:#f5fafbe6;transform:translateY(-1px)}.round[aria-pressed=true]{color:var(--teal)}
.home{position:absolute;left:10%;top:50%;transform:translateY(-47%);z-index:3;width:340px;transition:opacity .5s,transform .7s}.overline{color:#68818d;font-size:9px;letter-spacing:2px}.home h1{font-weight:350;font-size:clamp(65px,7.4vw,110px);line-height:.99;letter-spacing:-6px;margin:27px 0 26px}.home h1 span{color:var(--teal)}.subtitle{font-size:15px;line-height:1.9;color:#647c88;letter-spacing:.1px}.home-actions{display:flex;align-items:center;gap:25px;margin-top:36px;flex-wrap:wrap}.pill{height:52px;border-radius:17px;border:1px solid #ffffffe6;background:linear-gradient(145deg,#fff,#e6edf0);box-shadow:7px 9px 16px #617e9229,-3px -3px 9px #ffffff60;padding:0 29px;font-size:14px;font-weight:600;letter-spacing:.1px;display:inline-flex;justify-content:center;align-items:center;gap:28px}.pill.primary{color:#f2ffff;border:1px solid #62c5c7;background:linear-gradient(145deg,#2eb1b6,#0b8c98);box-shadow:5px 9px 17px #22778535,inset 0 1px 1px #b5ffffa0}.pill.primary:hover{box-shadow:6px 12px 20px #22778540;transform:translateY(-2px)}.pill span{font-size:21px;font-weight:400}.text-button{background:none;border:0;padding:12px 0;font-size:12px;display:inline-flex;gap:17px;align-items:center;color:#607a87}.text-button:hover{color:var(--teal)}.home-caption{position:absolute;left:65%;bottom:15%;transform:translateX(-50%);display:flex;align-items:center;gap:12px;color:#69818e;letter-spacing:1.25px;font-size:9px;white-space:nowrap}.tiny-line{width:27px;height:1px;background:#7898a5}.ambient-footer{position:absolute;bottom:max(26px,env(safe-area-inset-bottom));left:4.5%;right:4.5%;display:flex;justify-content:space-between;color:#738893;font-size:8px;letter-spacing:2px;pointer-events:none}
.hud{position:absolute;inset:0;pointer-events:none;z-index:2}.hud button{pointer-events:auto}.match-heading{position:absolute;top:85px;left:50%;transform:translateX(-50%);text-align:center}.players{display:flex;align-items:center;justify-content:center;gap:16px;font-size:12px;white-space:nowrap}.player{display:flex;align-items:center;gap:9px;opacity:.5;transition:opacity .3s}.player.active{opacity:1}.cube-dot{display:inline-block;width:13px;height:13px;border-radius:4px;box-shadow:inset 1px 1px 2px #ffffff65,2px 3px 4px #46667820}.teal{background:linear-gradient(135deg,#48c5c6,#0395a4)}.coral{background:linear-gradient(135deg,#ef97a4,#ce526f)}.versus{color:#8ba1ac}#turnStatus{font-size:26px;letter-spacing:-.7px;font-weight:400;margin:12px 0 8px}.move-count{font-size:8px;letter-spacing:1.7px;color:#6f8792}.pause{position:absolute;top:112px;left:4.5%}.level-selector{position:absolute;right:7%;top:50%;transform:translateY(-45%);display:flex;flex-direction:column;align-items:center;gap:12px}.level-selector>.overline{font-size:8px;letter-spacing:1.6px;margin-bottom:8px}.level-selector button{width:43px;height:43px;border-radius:14px;border:1px solid #ffffffa8;background:linear-gradient(135deg,#f4f8f9b5,#d8e4eb99);box-shadow:4px 5px 10px #506d821c;color:#708998;font-size:17px;font-weight:400}.level-selector button.selected{background:linear-gradient(135deg,#fff,#f2fbfc);box-shadow:3px 5px 9px #48647720,inset 0 0 0 1px #68b7bf;color:var(--teal)}.level-selector .overview{border-radius:50%;width:36px;height:36px;margin-top:5px;display:grid;place-items:center}.level-badge{position:absolute;left:10%;top:54%;display:flex;align-items:center;gap:10px;letter-spacing:1.6px;color:#61848e;font-size:9px}.badge-line{width:24px;height:1px;background:#86adb5}.level-badge b{font-weight:600}.play-controls{position:absolute;bottom:95px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:9px;white-space:nowrap}.soft-control{border:1px solid #ffffffb0;border-radius:13px;background:linear-gradient(145deg,#f5f9fad9,#e2ebefe0);box-shadow:3px 6px 10px #5e7a8f20;min-width:38px;height:39px;padding:0 12px;display:flex;align-items:center;justify-content:center;gap:8px;font-size:17px}.soft-control span{font-size:11px}.soft-control[aria-pressed=true]{color:var(--teal);box-shadow:inset 0 0 0 1px #6eb8bf}.instruction{position:absolute;bottom:54px;left:10%;right:10%;text-align:center;color:#607e8c;font-size:11px;letter-spacing:.3px;line-height:1.6}.instruction span{color:#7c939f;margin-left:9px}.cell-access{position:absolute;inset:0;pointer-events:none}.hud .cell-target{position:absolute;width:32px;height:32px;transform:translate(-50%,-50%);opacity:0;border:2px solid var(--teal);border-radius:8px;pointer-events:none}.cell-target:focus-visible{opacity:.8;background:#ffffffb0;outline-offset:3px}.cell-target:active{transform:translate(-50%,-50%)}
.modal{position:fixed;inset:0;z-index:8;background:#dbe5e95c;backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:center;animation:veil .3s ease}.sheet{position:relative;width:min(440px,calc(100% - 40px));max-height:calc(100dvh - 70px);overflow-y:auto;padding:42px 36px 34px;background:linear-gradient(145deg,#ffffffec,#e6eff3ed);border:1px solid #ffffffd9;border-radius:28px;box-shadow:16px 25px 65px #49697c2b,inset 1px 1px 2px white;animation:arrive .35s ease}.sheet.wide{width:min(520px,calc(100% - 40px))}.close{position:absolute;top:17px;right:17px;width:29px;height:29px;font-size:20px;box-shadow:none;background:#e2ebef70;border-color:transparent}.sheet h2{font-size:35px;font-weight:400;letter-spacing:-1.3px;line-height:1.1;margin:12px 0 12px}.sheet p{font-size:13px;line-height:1.75;color:#718591}.sheet .overline{font-size:8px;color:#718b96;line-height:1.5}.sheet .full{width:100%;margin-top:22px}.choices{display:flex;gap:12px;margin:25px 0 21px}.choice{flex:1;min-height:114px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;border-radius:18px;border:1px solid #ffffffd9;background:#eff5f7;box-shadow:4px 6px 12px #78919f15}.choice.selected{background:#faffff;border-color:#83bdc4;box-shadow:inset 0 0 0 1px #a2d0d5,4px 6px 12px #78919f15}.choice .cube-dot{width:24px;height:24px;border-radius:7px;margin-bottom:7px}.choice strong{font-size:13px;font-weight:500}.choice small{font-size:10px;color:#7b8f99}.twin-cubes{display:flex;gap:3px}.twin-cubes i:first-child{transform:translateY(-4px)}.segmented{display:flex;background:#dce6eb80;padding:4px;border-radius:12px;gap:4px;margin-top:9px}.segmented button{flex:1;min-height:35px;border:0;border-radius:9px;background:transparent;font-size:11px;color:#6c8491}.segmented button.selected{background:#f8fcfd;color:var(--teal);box-shadow:1px 2px 5px #6b8f9b20}.setting-row{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #b9ccd244;padding:17px 0;font-size:13px}.setting-row small{display:block;color:#81939c;font-size:10px;margin-top:5px}.toggle{width:45px;height:25px;border:0;border-radius:20px;background:#c1cfd5;padding:3px;display:flex;align-items:center}.toggle i{width:19px;height:19px;background:#fff;border-radius:50%;box-shadow:0 2px 3px #64889822;transition:transform .2s}.toggle[aria-checked=true]{background:#67afb5}.toggle[aria-checked=true] i{transform:translateX(20px)}.menu-stack{display:flex;flex-direction:column;gap:12px;margin-top:26px}.menu-stack .pill{width:100%}.menu-stack .text-button{align-self:center}.rule-list{display:grid;gap:17px;margin-top:25px}.rule{display:flex;gap:16px;align-items:flex-start}.rule>span{min-width:26px;height:26px;display:grid;place-items:center;background:#e1edf0;border-radius:8px;font-size:11px;color:#43838d}.rule b{font-size:13px;font-weight:500}.rule p{margin:3px 0 0;font-size:12px}.line-demo{display:flex;gap:7px;justify-content:center;margin:28px 0 12px;position:relative}.line-demo:before{content:'';position:absolute;left:28%;right:28%;height:2px;background:#5db9bf;top:13px}.line-demo .cube-dot{width:27px;height:27px;border-radius:7px;position:relative}.result-symbol{font-size:42px;color:var(--teal);display:block;margin:4px 0 18px}.result-meta{display:flex;justify-content:center;gap:24px;color:#79909c;font-size:10px;margin:20px 0}.center{text-align:center}.toast{position:fixed;left:50%;bottom:22px;transform:translate(-50%,10px);padding:12px 22px;border:1px solid #fff;background:#f4f9faf0;border-radius:13px;box-shadow:2px 6px 15px #5b7a8f20;font-size:12px;color:#537584;pointer-events:none;opacity:0;transition:.25s;z-index:12}.toast.show{opacity:1;transform:translate(-50%,0)}.loading{position:fixed;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:25px;background:#d5dfe5;z-index:20;color:#627f8b;font-size:12px;letter-spacing:1px;transition:opacity .5s}.little-cube{width:34px;height:34px;border-radius:10px;background:linear-gradient(130deg,#88d5d6,#149aa6);box-shadow:5px 9px 14px #6a8e9c30;animation:breathe 1.6s infinite ease-in-out}#fatal{position:fixed;inset:0;z-index:30;background:#d5dfe5;display:grid;place-content:center;text-align:center;padding:25px}#fatal h1{font-weight:400}#fatal button{border:0;padding:14px;border-radius:10px;background:#f6fafb}body[data-screen=loading] .masthead{opacity:0}.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}@keyframes arrive{from{opacity:0;transform:translateY(15px) scale(.98)}to{opacity:1;transform:none}}@keyframes veil{from{opacity:0}to{opacity:1}}@keyframes breathe{50%{transform:translateY(-7px) rotate(6deg)}}
.volume-row{gap:18px}.volume-control{width:160px;display:grid;grid-template-columns:minmax(80px,1fr) 37px;align-items:center;gap:9px}.volume-control input{width:100%;height:20px;margin:0;background:transparent;cursor:pointer;appearance:none}.volume-control input::-webkit-slider-runnable-track{height:5px;border-radius:8px;background:linear-gradient(90deg,#5aabb2 0 var(--volume),#c8d7dc var(--volume) 100%);box-shadow:inset 0 1px 2px #3e79821c}.volume-control input::-webkit-slider-thumb{appearance:none;width:17px;height:17px;margin-top:-6px;border:3px solid #f8fcfd;border-radius:50%;background:#4d9fa7;box-shadow:0 2px 7px #557e8938}.volume-control input::-moz-range-track{height:5px;border-radius:8px;background:#c8d7dc}.volume-control input::-moz-range-progress{height:5px;border-radius:8px;background:#5aabb2}.volume-control input::-moz-range-thumb{width:13px;height:13px;border:3px solid #f8fcfd;border-radius:50%;background:#4d9fa7;box-shadow:0 2px 7px #557e8938}.volume-control input:focus-visible{outline:2px solid #418f98;outline-offset:4px;border-radius:8px}.volume-control output{font-size:10px;color:#68828e;text-align:right;font-variant-numeric:tabular-nums}
@media(max-width:900px){.home{left:7%;width:280px}.home h1{font-size:76px}.edition{font-size:8px;letter-spacing:1.5px}.home-actions{gap:14px}.home-caption{font-size:8px;left:68%}.level-selector{right:5%}.level-badge{left:5%}}
@media(max-width:650px){.masthead{top:22px;left:6%;right:6%}.wordmark{font-size:22px}.edition{display:none}.round{width:36px;height:36px}.utility{gap:7px}.home{left:8%;top:100px;transform:none;width:84%;text-align:center}.home .overline{font-size:7px;letter-spacing:1.6px}.home h1{font-size:60px;letter-spacing:-3.5px;line-height:1;margin:14px 0 12px}.home h1 br{display:none}.home h1 span{margin-left:10px}.subtitle{font-size:12px;line-height:1.6;margin:0}.subtitle br{display:none}.home-actions{position:fixed;top:calc(100dvh - 225px);left:0;width:100%;display:flex;justify-content:center;margin:0;gap:19px}.home-actions .pill{height:47px;padding:0 30px}.home-caption{display:none}.ambient-footer{font-size:7px;left:6%;right:6%;bottom:20px;letter-spacing:1.4px}.match-heading{top:87px;width:85%}#turnStatus{font-size:22px;margin:9px 0 6px}.players{font-size:11px}.move-count{font-size:7px}.pause{left:6%;top:90px;width:32px;height:32px}.level-selector{right:4%;gap:8px;top:52%}.level-selector button{width:34px;height:34px;border-radius:10px;font-size:14px}.level-selector>.overline{font-size:7px;margin-bottom:4px}.level-selector .overview{width:31px;height:31px}.level-badge{display:none}.play-controls{bottom:95px;gap:6px}.soft-control{height:36px;padding:0 9px;min-width:32px;border-radius:11px}.soft-control span{font-size:10px}.instruction{bottom:46px;font-size:10px;left:7%;right:7%}.instruction span{display:block;margin:0}.sheet{padding:37px 25px 26px;border-radius:23px}.sheet h2{font-size:31px}}
@media(max-height:650px) and (min-width:651px){.home h1{font-size:65px;margin:14px 0}.home-actions{margin-top:22px}.masthead{top:18px}.match-heading{top:68px}#turnStatus{font-size:21px;margin:6px}.pause{top:80px}.play-controls{bottom:65px}.instruction{bottom:30px}.ambient-footer{bottom:17px}.home-caption{bottom:9%}}
#scene{width:100vw!important;height:100dvh!important}
.higher-contrast .subtitle,.higher-contrast .instruction,.higher-contrast .overline,.higher-contrast .edition,.higher-contrast .move-count,.higher-contrast .sheet p,.higher-contrast .ambient-footer{color:#405e6d}
@media(max-width:650px){.masthead{top:max(22px,calc(env(safe-area-inset-top) + 12px))}.home-actions{top:auto;bottom:max(82px,calc(env(safe-area-inset-bottom) + 56px))}.home h1 span{margin-left:0}.play-controls{bottom:max(95px,calc(env(safe-area-inset-bottom) + 69px))}.instruction{bottom:max(46px,calc(env(safe-area-inset-bottom) + 20px))}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
@media(max-width:420px){.volume-row{gap:10px}.volume-control{width:145px}}

/* Visual finishes */
html,body{background:var(--backdrop)}
.atmosphere{background:radial-gradient(ellipse at 22% 14%,var(--atmosphere),transparent 65%)}
.home h1 span,.text-button:hover,.round[aria-pressed=true],.soft-control[aria-pressed=true],.result-symbol{color:var(--teal)}
.edition,.overline,.ambient-footer,.home-caption,.move-count,.subtitle,.instruction,.instruction span,.sheet p,.sheet .overline,.choice small,.setting-row small,.volume-control output{color:var(--muted)}
.brand-cubes i,.teal{background:linear-gradient(135deg,color-mix(in srgb,var(--teal) 72%,white),var(--teal))}.brand-cubes i:last-child,.coral{background:linear-gradient(135deg,color-mix(in srgb,var(--coral) 70%,white),var(--coral))}
.round,.soft-control{border-color:var(--border);background:linear-gradient(145deg,var(--control-a),var(--control-b));box-shadow:4px 6px 12px var(--shadow)}
.round:hover{background:var(--control-a)}
.pill{border-color:var(--border);background:linear-gradient(145deg,var(--control-a),var(--control-b));box-shadow:7px 9px 16px var(--shadow)}
.pill.primary{color:var(--primary-text);border-color:color-mix(in srgb,var(--teal) 60%,white);background:linear-gradient(145deg,var(--primary-a),var(--primary-b));box-shadow:5px 9px 17px var(--shadow)}
.modal{background:var(--veil)}.sheet{color:var(--ink);background:linear-gradient(145deg,var(--sheet-a),var(--sheet-b));border-color:var(--border);box-shadow:16px 25px 65px var(--shadow),inset 1px 1px 2px color-mix(in srgb,var(--border) 70%,transparent)}
.choice,.segmented,.toast{background:var(--soft-bg);border-color:var(--border)}.toast{color:var(--ink)}.choice.selected,.segmented button.selected{background:var(--control-a);border-color:var(--teal);color:var(--teal);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--teal) 45%,transparent)}.segmented button,.text-button{color:var(--muted)}
.setting-row{border-color:color-mix(in srgb,var(--muted) 22%,transparent)}.loading,#fatal{background:var(--backdrop);color:var(--muted)}
.tiny-line,.badge-line{background:var(--muted)}.toggle[aria-checked=true]{background:var(--teal)}.soft-control[aria-pressed=true]{box-shadow:inset 0 0 0 1px var(--teal)}
.volume-control input::-webkit-slider-runnable-track{background:linear-gradient(90deg,var(--teal) 0 var(--volume),color-mix(in srgb,var(--muted) 35%,transparent) var(--volume) 100%)}.volume-control input::-webkit-slider-thumb{background:var(--teal);border-color:var(--paper)}.volume-control input::-moz-range-track{background:color-mix(in srgb,var(--muted) 35%,transparent)}.volume-control input::-moz-range-progress{background:var(--teal)}.volume-control input::-moz-range-thumb{background:var(--teal);border-color:var(--paper)}
.appearance-heading{display:flex;align-items:end;justify-content:space-between;margin:24px 0 10px;font-size:12px}.appearance-heading small{font-size:9px;color:var(--muted)}
.skin-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:8px}.skin-option{min-width:0;height:74px;padding:8px;border-radius:14px;border:1px solid color-mix(in srgb,var(--muted) 18%,transparent);background:color-mix(in srgb,var(--soft-bg) 78%,transparent);display:flex;align-items:center;gap:8px;text-align:left;box-shadow:none}.skin-option:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--teal) 45%,transparent)}.skin-option.selected{border-color:var(--teal);background:var(--control-a);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--teal) 28%,transparent),0 4px 10px var(--shadow)}.skin-option>span:last-child{min-width:0;font-size:10px;font-weight:600;line-height:1.2}.skin-option small{display:block;margin-top:4px;color:var(--muted);font-size:7px;font-weight:500;white-space:nowrap}.skin-preview{position:relative;flex:0 0 47px;height:43px;overflow:hidden;border-radius:9px;background:var(--skin-bg);box-shadow:inset 0 0 0 1px #ffffff28}.skin-preview:after{content:'';position:absolute;left:7px;right:7px;bottom:7px;height:9px;border-radius:3px;background:var(--skin-board);box-shadow:0 3px 4px #0002}.skin-preview em{position:absolute;left:23px;bottom:14px;width:2px;height:21px;background:color-mix(in srgb,var(--skin-board) 55%,white);z-index:1}.skin-preview i,.skin-preview b{position:absolute;z-index:2;width:11px;height:11px;border-radius:50%;bottom:13px;box-shadow:inset 2px 2px 3px #fff5,1px 2px 3px #0002}.skin-preview i{left:11px;background:var(--skin-one)}.skin-preview b{right:10px;bottom:18px;background:var(--skin-two)}
@media(max-width:520px){.skin-grid{grid-template-columns:repeat(2,1fr)}.skin-option{height:67px}.appearance-heading small{display:none}.sheet.wide{width:min(440px,calc(100% - 28px))}}
.higher-contrast .subtitle,.higher-contrast .instruction,.higher-contrast .overline,.higher-contrast .edition,.higher-contrast .move-count,.higher-contrast .sheet p,.higher-contrast .ambient-footer{color:var(--muted)}
/* Rewarded skins: a quiet badge on finishes unlocked by one short ad (ad-supported portal builds only). */
.skin-option{position:relative}.skin-option.locked .skin-preview{filter:saturate(.55) brightness(.92)}.skin-lock{position:absolute;top:6px;right:6px;padding:2px 6px;border-radius:999px;background:var(--primary-b);color:var(--primary-text);font-size:7px;font-weight:700;letter-spacing:.06em;line-height:1.4}
/* Keep gameplay labels legible in the smaller CrazyGames iframe sizes at DPR 1. */
.players{font-size:13px}.move-count{font-size:10px}.soft-control span{font-size:12px}.instruction{font-size:13px}
.choice small,.setting-row small,.volume-control output{font-size:11px}.segmented button{font-size:12px}.skin-option>span:last-child{font-size:11px}.skin-option small{font-size:9px}
@media(max-width:650px){.players{font-size:12px}.move-count{font-size:9px}.soft-control span{font-size:11px}.instruction{font-size:12px}}
.room-badge{position:absolute;top:112px;right:4.5%;border:1px solid var(--border);border-radius:999px;background:var(--control-a);padding:8px 12px;font-size:11px;font-weight:700;letter-spacing:.08em;box-shadow:3px 5px 10px var(--shadow)}
.room-code{display:block;margin:12px 0;font-size:32px;font-weight:700;letter-spacing:.2em;text-align:center;color:var(--teal)}
.room-entry{display:flex;gap:8px;margin-top:12px}.room-entry input,.invite-url{min-width:0;flex:1;border:1px solid var(--border);border-radius:12px;padding:11px 12px;background:var(--soft-bg);color:var(--ink);font:inherit;font-size:14px}.room-entry input{text-transform:uppercase;letter-spacing:.15em}.room-entry .pill{height:43px;padding:0 16px;white-space:nowrap}.invite-url{width:100%;font-size:11px;letter-spacing:0;user-select:text;-webkit-user-select:text}
.room-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:16px}.room-actions .pill{height:42px;padding:0 16px}.room-actions .text-button{padding:9px}
@media(max-width:650px){.room-badge{top:152px;right:6%;font-size:10px;padding:7px 10px}.choices{gap:7px}.choice{min-width:0}.choice strong{font-size:12px}.choice small{font-size:9px}}
@media(max-height:650px) and (min-width:651px){.room-badge{top:80px}}
/* Stand-in advert for ?platform=mock testing. Never shipped as content: real portals draw their own. */
.mock-ad{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;background:#0b0f16e6;color:#fff;font:14px/1.4 system-ui,sans-serif}.mock-ad>div{display:grid;gap:10px;justify-items:center;text-align:center;padding:32px;max-width:min(420px,calc(100% - 32px));border:2px dashed #ffffff55;border-radius:16px}.mock-ad p{margin:0;font-size:11px;letter-spacing:.14em;opacity:.7}.mock-ad strong{font-size:28px}.mock-ad small{opacity:.6}.mock-ad-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:8px}.mock-ad button{padding:10px 16px;border-radius:999px;border:0;background:#fff;color:#111;font:inherit;cursor:pointer}.mock-ad [data-skip]{background:transparent;color:#fff;border:1px solid #fff8}
.room-entry input{user-select:text;-webkit-user-select:text}
.pill #beginLabel{font-size:14px;font-weight:600}
/* Keep tall dialogs reachable even in short embedded and mobile viewports. */
.modal{padding:max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));overflow-y:auto}
.sheet,.sheet.wide{flex:0 1 auto;width:min(440px,100%);min-height:0;max-height:calc(100vh - 24px);max-height:calc(100dvh - max(12px,env(safe-area-inset-top)) - max(12px,env(safe-area-inset-bottom)));overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch}
.sheet.wide{width:min(520px,100%)}
.turn-clock{--clock-shift:0%;position:absolute;bottom:155px;left:4.5%;transform:translateX(var(--clock-shift));padding:8px 15px;border:1px solid var(--border);border-radius:999px;background:var(--control-a);box-shadow:3px 6px 16px var(--shadow);font-size:14px;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--teal);transition:font-size .25s,padding .25s,box-shadow .25s;pointer-events:none}
.turn-clock.urgent{color:var(--coral);font-size:17px;padding:9px 18px;border-color:var(--coral);box-shadow:0 0 0 4px color-mix(in srgb,var(--coral) 12%,transparent),3px 6px 16px var(--shadow)}
.turn-clock.critical{font-size:20px;background:color-mix(in srgb,var(--coral) 12%,var(--paper));animation:clock-heartbeat .85s ease-in-out infinite}
@keyframes clock-heartbeat{0%,28%,60%,100%{transform:translateX(var(--clock-shift)) scale(1);background:color-mix(in srgb,var(--coral) 12%,var(--paper))}14%{transform:translateX(var(--clock-shift)) scale(1.08);background:color-mix(in srgb,var(--coral) 30%,var(--paper));box-shadow:0 0 0 9px color-mix(in srgb,var(--coral) 22%,transparent),3px 6px 16px var(--shadow)}42%{transform:translateX(var(--clock-shift)) scale(1.04);background:color-mix(in srgb,var(--coral) 23%,var(--paper));box-shadow:0 0 0 6px color-mix(in srgb,var(--coral) 18%,transparent),3px 6px 16px var(--shadow)}}
@media(max-width:650px){.turn-clock{--clock-shift:-50%;left:50%;bottom:148px;padding:7px 13px;font-size:12px}.turn-clock.urgent{font-size:15px;padding:8px 16px}.turn-clock.critical{font-size:18px}}
@media(max-height:450px) and (min-width:651px){.turn-clock{left:4.5%;bottom:90px;transform:none}.turn-clock.critical{animation:none}}
@media(prefers-reduced-motion:reduce){.turn-clock{transition:none}.turn-clock.critical{animation:none}}
@media(max-width:450px){.skin-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.skin-option{height:auto;min-height:74px;gap:6px}.skin-option small{white-space:normal}.setting-row{gap:12px}.volume-row{flex-wrap:wrap}.volume-control{width:100%;grid-template-columns:minmax(0,1fr) 37px}.toggle{flex-shrink:0}}
/* Reserve separate mobile areas for copy, the interactive board, and controls. */
@media(max-width:650px){
  html,body{background:var(--scene-backdrop,var(--backdrop))}
  body{--mobile-control-bottom:max(6px,env(safe-area-inset-bottom));--board-top:calc(max(22px,env(safe-area-inset-top)) + 190px);--board-bottom:calc(max(16px,env(safe-area-inset-bottom)) + 94px)}
  body[data-screen=home]{--board-top:calc(max(22px,env(safe-area-inset-top)) + 205px);--board-bottom:calc(max(16px,env(safe-area-inset-bottom)) + 64px)}
  #scene{top:var(--board-top);bottom:var(--board-bottom);height:calc(100dvh - var(--board-top) - var(--board-bottom))!important}
  .home{top:calc(max(22px,env(safe-area-inset-top)) + 64px)}
  .home h1{font-size:clamp(42px,12vw,60px)}
  .home-actions{position:fixed;bottom:var(--mobile-control-bottom);gap:18px;flex-wrap:nowrap}
  .home-actions .pill{padding:0 24px}
  .match-heading{top:calc(max(22px,env(safe-area-inset-top)) + 60px);width:calc(100% - 32px)}
  .players{gap:10px;white-space:normal;padding:0 40px;min-width:0}
  .player{min-width:0;gap:6px}.player span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cube-dot{flex-shrink:0}
  #turnStatus{font-size:clamp(18px,5.6vw,24px);line-height:1.2}
  .pause{top:calc(max(22px,env(safe-area-inset-top)) + 58px);left:6%;width:36px;height:36px}
  .room-badge{top:calc(max(22px,env(safe-area-inset-top)) + 146px);right:50%;transform:translateX(50%)}
  .play-controls{bottom:var(--mobile-control-bottom);gap:6px;max-width:calc(100% - 24px)}
  .soft-control{height:44px;min-width:40px;padding:0 10px;gap:6px}
  .turn-clock{bottom:calc(var(--mobile-control-bottom) + 58px)}
  .turn-clock.urgent{font-size:14px;padding:7px 14px}.turn-clock.critical{font-size:16px}
  .toast{bottom:calc(var(--mobile-control-bottom) + 110px);width:max-content;max-width:calc(100% - 32px);text-align:center}
}
