@font-face{font-family:Nunito;src:url(./assets/Nunito-Variable.ttf) format("truetype");font-style:normal;font-weight:200 1000;font-display:swap}
.tile,#ghost{position:absolute;width:calc((100% - 4*var(--gap))/5);height:calc((100% - 5*var(--gap))/6);left:calc(var(--x)*(100% + var(--gap))/5);top:calc(var(--y)*(100% + var(--gap))/6);border-radius:9px}.tile{display:flex;align-items:center;justify-content:center;background:var(--tile-bg);color:var(--tile-ink);box-shadow:inset 0 1px 0 #ffffff99,inset 0 -3px 0 #00000015,0 2px 0 #07132633;font-size:clamp(21px,6vw,31px);font-weight:720;letter-spacing:-.7px;font-variant-numeric:tabular-nums;transition:left var(--travel,150ms) cubic-bezier(.2,.75,.3,1),top var(--travel,150ms) cubic-bezier(.2,.75,.3,1);padding:0 4px;will-change:auto}.tile span{display:block;max-width:100%;white-space:nowrap;line-height:1.05}.tile[data-length="4"]{font-size:clamp(17px,4.8vw,25px);letter-spacing:-.8px}.tile[data-length="5"]{font-size:clamp(13px,3.8vw,20px);letter-spacing:-.5px}.tile[data-length="6"]{font-size:clamp(11px,3.3vw,18px);letter-spacing:-.3px}.tile.impact{animation:impact 260ms cubic-bezier(.2,.7,.2,1);z-index:3}.tile.landed{animation:land 180ms ease-out}.tile.approaching{z-index:4}.tile.vanishing{opacity:0;transition:opacity 70ms linear}#ghost{border:2px dashed #8af5cb88;color:#b0f9dc;font-size:22px;align-items:center;justify-content:center;background:#79efc70b;pointer-events:none;display:flex}#column-controls{display:grid;grid-template-columns:repeat(5,1fr);gap:9px;margin:6px 0 -4px}#column-controls button{color:#c6e7f8;font-size:20px;min-height:40px;border-radius:7px}#column-controls button:hover,#column-controls button.chosen{background:#6b9dc92b;color:var(--accent)}#column-controls button:disabled{opacity:.65}#effects{position:absolute;inset:0;pointer-events:none;overflow:visible;z-index:6}.burst{position:absolute;left:var(--cx);top:var(--cy)}.ring{position:absolute;width:44px;height:44px;left:-22px;top:-22px;border:2px solid var(--burst-color);border-radius:50%;animation:ring 440ms ease-out forwards}.spark{position:absolute;width:5px;height:5px;border-radius:2px;background:var(--burst-color);animation:spark 470ms cubic-bezier(.1,.6,.3,1) forwards}.points{position:absolute;left:0;top:-20px;transform:translateX(-50%);font-size:12px;color:white;font-weight:750;text-shadow:0 2px 6px #10203f;white-space:nowrap;animation:points 640ms ease-out forwards}
@keyframes impact{0%{transform:scale(.87)}40%{transform:scale(1.13)}70%{transform:scale(.98)}100%{transform:scale(1)}}@keyframes land{45%{transform:scaleX(1.06) scaleY(.94)}}@keyframes ring{to{transform:scale(2.1);opacity:0}}@keyframes spark{to{transform:translate(var(--dx),var(--dy)) rotate(80deg);opacity:0}}@keyframes points{to{transform:translate(-50%,-42px);opacity:0}}
:root{color-scheme:dark;--bg:#102039;--ink:#f2f7ff;--muted:#adc0d6;--accent:#9af2ce;--gap:6px;font-size:16px}*{box-sizing:border-box}html{min-height:100%;background:var(--bg)}body{margin:0;min-height:100dvh;background:radial-gradient(ellipse at 80% 0,#243e5b80,transparent 60%),var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;padding:0 16px 20px}button,summary{font:inherit;touch-action:manipulation}button{cursor:pointer;min-height:44px;border:0;background:none;color:inherit}button:disabled{opacity:.5;cursor:default}button:focus-visible,summary:focus-visible,#board:focus-visible{outline:3px solid #ffd26e;outline-offset:3px}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}header{width:100%;max-width:520px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 0 16px;border-bottom:1px solid #ffffff12}.wordmark{min-width:0}.brand{display:block;font-size:.56rem;font-weight:750;letter-spacing:.17em;color:var(--muted);margin-bottom:4px}h1{font-size:1rem;font-weight:700;letter-spacing:-.03em;margin:0}#menu{flex-shrink:0;width:44px;background:#20364f;border:1px solid #3d526b;border-radius:14px;font-size:1.2rem}.eyebrow{font-size:.61rem;font-weight:750;letter-spacing:.13em;color:var(--accent)}.game-actions{display:none!important}#home{width:min(100%,420px);margin:0 auto;padding:44px 0 0;text-align:center}.home-copy h2{font-size:clamp(2.5rem,11vw,3.5rem);line-height:1.08;letter-spacing:-.055em;margin:18px 0}.home-copy em{font-style:normal;color:var(--accent)}.home-copy>p:not(.eyebrow){font-size:.94rem;line-height:1.6;color:var(--muted);margin:0}.merge-art{display:flex;align-items:center;justify-content:center;gap:10px;margin:34px auto 18px}.merge-art .art-four,.merge-art .art-eight{display:grid;place-items:center;width:62px;height:68px;border-radius:16px;background:#69d4fa;color:#143c52;font-size:2rem;font-weight:800;box-shadow:inset 0 2px #ffffff55,0 5px #09182a}.merge-art .art-eight{background:#b39bff;color:#322052;transform:rotate(6deg);width:72px;height:78px}.art-plus,.art-arrow{color:#8099b3;font-size:1.25rem}.home-copy .art-caption{font-size:.57rem!important;letter-spacing:.13em;color:#9fb6cd!important;margin:0 0 32px!important}.primary{display:block;width:100%;background:var(--accent);color:#153b33;border-radius:16px;padding:16px 22px;font-size:1rem;font-weight:750;text-align:left;min-height:58px;box-shadow:0 4px 0 #122e35}.primary span{float:right}.quiet{font-size:.85rem;color:#d5e3ef;margin:10px auto 20px;padding:10px 20px}.quiet span{margin-left:10px;color:var(--accent)}.lab-card{width:100%;display:flex;align-items:center;text-align:left;gap:14px;padding:16px;border:1px solid #3a506a;border-radius:17px;background:#1b3049}.lab-symbol{font-size:1.7rem;color:#b39bff}.lab-card b{font-size:.87rem;display:block}.lab-card small{font-size:.68rem;line-height:1.5;display:block;margin-top:5px;color:var(--muted)}.lab-card>span:last-child{margin-left:auto;color:var(--muted)}.home-copy .preview-note{font-size:.69rem!important;margin:22px 0!important}.playing #home{display:none}main{display:none}.playing main{display:block;width:min(100%,440px);margin:0 auto;padding-top:18px}.game{display:grid;grid-template-columns:minmax(0,1fr);grid-template-areas:'score' 'next' 'board';gap:14px}.scorebar{grid-area:score;display:flex;justify-content:space-between;align-items:center;padding:0 4px;gap:16px}.score>span:first-child{display:block;font-size:.59rem;letter-spacing:.15em;color:var(--muted);margin-bottom:3px}.score strong{font-size:1.9rem;line-height:1.1;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.04em}.score.best{text-align:right}.best strong{font-size:1.35rem;color:#b5c8df}.score{position:relative}#gain{color:var(--accent);font-size:.8rem;margin-left:10px}.drop-tray{grid-area:next;display:flex;align-items:center;justify-content:space-between;gap:14px;background:#1d354d;border:1px solid #385269;border-radius:17px;padding:10px 14px;min-height:76px}.next-group{display:flex;align-items:center;gap:16px;min-width:0}.next-group .eyebrow{font-size:.65rem;letter-spacing:.12em;line-height:1.4;margin:0;max-width:4.5rem;color:#ccdfeb}.next-group strong{display:grid;place-items:center;flex-shrink:0;width:50px;min-height:50px;padding:4px;border-radius:12px;font-size:1.85rem;font-weight:800;box-shadow:inset 0 2px #ffffff55,0 3px #0002}#reward-undo{flex-shrink:1;font-size:.8rem;color:#d7e6f0;min-width:72px;min-height:48px;padding:3px 8px;border-left:1px solid #ffffff20}#reward-undo small{display:block;font-size:.52rem;letter-spacing:.09em;color:#a5bdd1;margin-top:5px}#reward-undo>span{font-size:1rem}#restart{display:none}.board-stage{grid-area:board;min-width:0}.board-wrap{width:100%;padding:8px;background:#0b192b;border:1px solid #38516b;border-radius:19px;box-shadow:0 5px 0 #071424,0 18px 40px #07142466}#board{width:100%;aspect-ratio:5/6;position:relative;touch-action:none;user-select:none}#slots{display:grid;grid-template-columns:repeat(5,1fr);grid-template-rows:repeat(6,1fr);gap:var(--gap);height:100%}.slot{background:#1b3047;border:1px solid #30485f;border-radius:10px}#board:before{content:'';position:absolute;left:calc(var(--lane,2)*20%);width:20%;top:0;bottom:0;background:#9af2ce09;pointer-events:none;z-index:1;border-radius:8px}.tile{z-index:2;font-size:clamp(1.25rem,6vw,2rem);border:1px solid #ffffff33;border-radius:10px}#ghost{z-index:2;border:2px dashed #9af2ce;background:#9af2ce12;color:#b7ffe2;font-size:1.5rem;border-radius:10px}#column-controls{margin:7px 0 0;gap:var(--gap)}#column-controls button{height:44px;min-height:44px;padding:0;border:1px solid #354f68;border-radius:10px;background:#1c3048;color:#a5bdd2;font-size:1.1rem}#column-controls .chosen{background:#244d4c;color:#bdffe3;border-color:#6dad98}.goal-panel{grid-area:goal;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 12px;padding:5px 4px}.goal-eyebrow{grid-column:1/-1;font-size:.55rem;letter-spacing:.12em;color:#a1b8ce}#goal-title{font-size:.8rem;line-height:1.5;font-weight:600}#goal-detail{font-size:.73rem;line-height:1.5;color:var(--muted);margin:0;text-align:right;align-self:center}.goal-panel progress{grid-row:3;grid-column:1/-1;width:100%;height:4px;appearance:none;border:0;border-radius:4px;background:#2c4258}.goal-panel progress::-webkit-progress-bar{background:#2c4258;border-radius:4px}.goal-panel progress::-webkit-progress-value{background:var(--accent);border-radius:4px}.board-caption,.session-note{display:none}#storage-note{color:#ffd26e;font-size:.8rem;line-height:1.5;grid-column:1/-1}
/* All dialogs have a reachable close control and independently scrolling content. */
dialog{width:min(440px,calc(100% - 24px));max-height:calc(100dvh - 24px);padding:18px;border:1px solid #526b82;border-radius:26px;background:#172c43;color:var(--ink);box-shadow:0 24px 100px #0008;overflow:hidden}dialog::backdrop{background:#071424c9;backdrop-filter:blur(7px)}dialog form{display:flex;flex-direction:column;max-height:calc(100dvh - 62px);min-height:0}dialog .close{align-self:flex-end;flex-shrink:0;width:44px;height:44px;border:1px solid #425c76;border-radius:50%;font-size:1.3rem;background:#203950;margin:0 0 6px}.modal-content{overflow:auto;min-height:30px;padding:4px;overscroll-behavior:contain}#modal-kicker{font-size:.6rem;letter-spacing:.15em;margin:0 0 12px}dialog h2{font-size:1.8rem;letter-spacing:-.045em;line-height:1.15;margin:0 0 14px}#modal-body{font-size:.9rem;line-height:1.6;color:#bed0e1}#modal-body p{margin:0 0 16px}#modal-actions{display:flex;flex-direction:column;gap:8px;flex-shrink:0;margin-top:16px}#modal-actions button{padding:12px 14px;min-height:48px;background:var(--accent);color:#143a32;border:1px solid transparent;border-radius:13px;font-size:.92rem;line-height:1.35;font-weight:700}#modal-actions button.secondary{background:#203950;color:#dbe9f6;border-color:#435c76}.pause-links{display:grid;gap:0;margin:18px 0 0}.pause-links button{display:flex;align-items:center;text-align:left;gap:13px;min-height:54px;font-size:.9rem;border-bottom:1px solid #ffffff12;padding:10px 2px}.pause-links button span{color:var(--accent);width:24px;font-size:1.1rem}.pause-links button i{font-style:normal;margin-left:auto;color:#8da9c1}.pause-links button:last-child{border:0}summary{padding:12px 0;min-height:44px;cursor:pointer;font-size:.85rem;color:#d5e5f4}.example{display:flex;align-items:center;justify-content:center;gap:12px;margin:14px 0 22px}.example span{width:48px;height:48px;border-radius:12px;display:grid;place-items:center;background:#69d4fa;color:#143c52;font-size:1.7rem;font-weight:750}.example span:last-child{background:#b39bff;color:#322052}.how-steps{padding-left:24px}.how-steps li{padding-left:6px;margin-bottom:15px}.how-steps li::marker{color:var(--accent);font-weight:750}.how-steps b{color:var(--ink)}.rescue-preview{display:grid;grid-template-columns:repeat(5,1fr);gap:5px;max-width:180px;margin:12px auto}.rescue-preview span{display:grid;place-items:center;aspect-ratio:1;background:#253c53;border-radius:5px}.rescue-preview .remove-tile{outline:2px solid #ffd26e;text-decoration:line-through}
@media(min-width:700px){#home{padding-top:50px}.playing main{max-width:380px}header{max-width:620px}}
@media(max-height:760px) and (min-width:351px){.playing header{padding:10px 0}.playing main{padding-top:12px}.game{gap:10px}.drop-tray{min-height:66px;padding:7px 12px}.next-group strong{width:44px;min-height:44px}.score strong{font-size:1.65rem}.goal-panel{padding-top:3px}}
@media(max-width:350px){body{padding-left:12px;padding-right:12px}header{padding:12px 0}.playing main{padding-top:12px}.game{gap:10px}.drop-tray{padding:8px 12px}.goal-panel{grid-template-columns:1fr}#goal-detail{text-align:left}.goal-panel progress{grid-row:auto}.merge-art{gap:8px}.merge-art .art-four{width:54px;height:60px}.merge-art .art-eight{width:62px;height:70px}#home{padding-top:28px}}
/* Short landscape uses the width for a readable board, rather than shrinking every lane. */
@media(min-width:560px) and (max-height:500px){body{padding-bottom:12px}.playing header{max-width:850px;padding:8px 0}.playing main{max-width:780px;width:100%;padding-top:12px}.game{grid-template-columns:minmax(180px,1fr) minmax(264px,320px);grid-template-areas:'score board' 'next board';column-gap:24px;align-items:start}.board-stage{grid-row:1/5}.drop-tray{flex-wrap:wrap}.goal-panel{grid-template-columns:1fr}#goal-detail{text-align:left}.goal-panel progress{grid-row:auto}.score strong{font-size:1.8rem}#home{padding-top:20px}#modal-actions{flex-direction:row;flex-wrap:wrap}#modal-actions button{flex:1 1 130px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.burst{display:none}}html.reduce-motion *,html.reduce-motion *::before,html.reduce-motion *::after{animation:none!important;transition:none!important}html.reduce-motion .burst{display:none}
h1,h2,#modal-title{overflow-wrap:anywhere}.drop-tray{flex-wrap:wrap}.next-group{flex-wrap:wrap}.pause-links button{overflow-wrap:anywhere}.playing #goal-detail{overflow-wrap:anywhere}

/* Accessible column buttons occupy the actual board lanes, not an extra row.
   Pointer input passes through to the existing board gesture handler. */
.board-wrap{position:relative}
#column-controls{position:absolute;inset:8px;margin:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--gap);pointer-events:none}
#column-controls button,#column-controls button.chosen,#column-controls button:hover{height:100%;min-height:44px;min-width:0;border:0;border-radius:6px;background:transparent;color:transparent;pointer-events:none;font-size:0;outline:none}
#column-controls button:focus-visible{outline:3px solid #59636a;outline-offset:-3px;background:#59636a12}
#column-controls button:focus-visible::after{content:attr(data-focus-label);position:absolute;top:8px;left:8px;right:8px;padding:8px;background:#303a40;color:white;font-size:.7rem;line-height:1.4;border-radius:5px;text-align:center}

/* Compact finite-goal progress in the space reclaimed from the arrow row. */
.game{grid-template-areas:'score' 'next' 'board' 'goal'}
.compact-goal{grid-area:goal;grid-template-columns:minmax(0,1fr) auto;gap:5px 12px;padding:0 4px}
.compact-goal #goal-title{font-size:.7rem;font-weight:600;line-height:1.35}
.compact-goal #goal-detail{font-size:.68rem;white-space:nowrap;text-align:right;line-height:1.35}
.compact-goal progress{grid-column:1/-1;grid-row:2;height:4px;margin:0}
@media(min-width:560px) and (max-height:500px){.game{grid-template-areas:'score board' 'next board' '. goal';grid-template-columns:minmax(180px,1fr) minmax(264px,320px)}.board-stage{grid-row:1/3}}
/* Approved layout, colour exploration. */
body{background:radial-gradient(ellipse at 90% 0,#29496866,transparent 55%),#102039}
header{border-bottom-color:#ffffff0e}.primary{background:linear-gradient(115deg,#a5f5d7,#86e6c3);box-shadow:0 3px 0 #163d40,0 10px 26px #00000016}.primary:hover{background:#b4ffe3}.lab-card{background:linear-gradient(120deg,#24394f,#192f48);border-color:#3d536a}.lab-symbol{width:37px;height:37px;display:grid;place-items:center;background:#b39bff12;border:1px solid #b39bff45;border-radius:12px}.home-copy .preview-note{color:#8ca7c0}.drop-tray{background:linear-gradient(110deg,#244354,#1c334d);border-color:#43616f}.next-group strong{box-shadow:inset 0 2px #ffffff66,0 4px #0002,0 0 22px #78efc712}.board-wrap{background:#0b192c;border-color:#3a536d;box-shadow:0 4px 0 #091629,0 15px 30px #07142440}.slot{background:#1a3047;border-color:#2c455e}.tile{box-shadow:inset 0 2px #ffffff66,inset 0 -3px #00000012,0 2px #07132644}.compact-goal progress::-webkit-progress-bar{background:#2b425a}.compact-goal progress::-webkit-progress-value{background:linear-gradient(90deg,#6fd3b2,#a5f5d7)}.compact-goal #goal-title{color:#d6e6f2}.compact-goal #goal-detail{color:#a6c7d6}dialog{background:linear-gradient(135deg,#203a52,#172c43 70%);border-color:#536d83}.pause-links button:hover{background:#ffffff05}.pause-links button span{color:#a5f5d7}.pause-links button i{color:#8da9c1}#modal-actions button{background:#9af2ce}#modal-actions button:hover:not(:disabled){background:#b5ffe3}#modal-actions button.secondary:hover:not(:disabled){background:#2c4962}#column-controls button:focus-visible{outline-color:#ffd26e;background:#ffd26e0a}#column-controls button:focus-visible::after{background:#ffd26e;color:#263747}
@media(prefers-reduced-motion:no-preference){button{transition:background-color .15s,border-color .15s}button:active:not(:disabled){filter:brightness(.95)}}
/* Native banner reserves its own safe-area inset outside the WebView. */
body.native.playing.banner-enabled{padding-bottom:20px}
body{padding-top:env(safe-area-inset-top);padding-bottom:max(20px,env(safe-area-inset-bottom))}

/* A single, dismissible milestone moment; no animation gates the action. */
dialog.milestone-card{background:radial-gradient(ellipse at 50% 30%,#34536b80,transparent 65%),linear-gradient(145deg,#203b51,#14283f);border:1px solid #6ea893;box-shadow:0 28px 100px #0009,0 0 50px #78efc70c}
.milestone-card .modal-content{text-align:center;padding:3px 6px 8px}
.milestone-card #modal-kicker{font-size:.58rem;letter-spacing:.18em;color:#a1f4d1;margin:0 0 10px}
.milestone-card h2{font-size:2.05rem;font-weight:800;line-height:1.1;letter-spacing:-.055em;margin:0}
.milestone-hero{height:220px;position:relative;display:grid;place-items:center;margin:6px 0 0;isolation:isolate;overflow:hidden}
.milestone-halo{position:absolute;width:196px;height:196px;border:1px solid #9af2ce30;border-radius:50%;background:radial-gradient(circle,#9af2ce1a,transparent 70%);box-shadow:0 0 0 16px #9af2ce05,0 0 0 32px #9af2ce03}
.milestone-tile{position:relative;width:164px;height:164px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;transform:rotate(-7deg);border-radius:30px;background:linear-gradient(135deg,#bdffe4,#78e8bf 70%);color:#123c32;border:1px solid #d6ffec;box-shadow:inset 0 3px 0 #ffffff8c,inset 0 -7px 0 #3d997e44,0 10px 0 #0a172a55,0 16px 32px #05112266}
.milestone-tile>span{font-size:min(3.05rem,52px);font-weight:850;letter-spacing:-.08em;line-height:1}
.milestone-tile>small{font-size:.39rem;font-weight:800;letter-spacing:.12em}
.milestone-star{position:absolute;font-size:1.9rem;color:#ffd26e;text-shadow:0 0 18px #ffd26e22}.star-one{top:28px;right:12%}.star-two{bottom:26px;left:12%;font-size:1.4rem;color:#b39bff}
.milestone-confetti{position:absolute;inset:0;z-index:3;pointer-events:none;overflow:hidden}.milestone-confetti i{position:absolute;left:var(--left);top:20px;width:6px;height:11px;border-radius:2px;background:var(--piece);opacity:0}
.milestone-card #modal-body .milestone-message{font-size:.9rem;line-height:1.55;color:#c3d9e7;margin:4px 0 18px}
.milestone-stats{display:grid;grid-template-columns:1fr 1fr;border:1px solid #6e92a230;background:#0c20323b;border-radius:14px;padding:12px 8px;gap:8px}.milestone-stats>div+div{border-left:1px solid #6e92a230}.milestone-stats span{display:block;font-size:.53rem;letter-spacing:.15em;color:#9cb9ce;margin-bottom:5px}.milestone-stats b{display:block;font-size:1.05rem;color:#e8f7ff;overflow-wrap:anywhere}
.milestone-card #modal-actions{margin-top:12px}.milestone-card #modal-actions button{background:linear-gradient(100deg,#a7f6d9,#88e7c4);min-height:52px;font-size:1rem}
.milestone-motion .milestone-tile{animation:milestone-arrive 720ms cubic-bezier(.18,.7,.25,1) both}.milestone-motion .milestone-halo{animation:milestone-bloom 850ms ease-out both}.milestone-motion .milestone-star{animation:milestone-star 650ms 180ms ease-out both}.milestone-motion .milestone-message,.milestone-motion .milestone-stats{animation:milestone-copy 380ms 160ms ease-out both}.milestone-motion .milestone-confetti i{animation:milestone-confetti 1050ms var(--delay) ease-out both}
@keyframes milestone-arrive{0%{transform:translateY(22px) rotate(-12deg) scale(.78);opacity:0}65%{transform:translateY(-3px) rotate(-5deg) scale(1.025);opacity:1}100%{transform:rotate(-7deg);opacity:1}}
@keyframes milestone-bloom{from{transform:scale(.65);opacity:0}to{transform:scale(1);opacity:1}}
@keyframes milestone-star{from{transform:scale(.5) rotate(-20deg);opacity:0}to{transform:scale(1);opacity:1}}
@keyframes milestone-copy{from{transform:translateY(8px);opacity:.2}to{transform:translateY(0);opacity:1}}
@keyframes milestone-confetti{0%{transform:translate(0,-12px) rotate(0);opacity:0}12%{opacity:.9}75%{opacity:.75}100%{transform:translate(var(--drift),180px) rotate(var(--spin));opacity:0}}
@media(max-height:600px){.milestone-hero{height:180px}.milestone-tile{width:138px;height:138px;border-radius:25px}.milestone-halo{width:160px;height:160px}.milestone-tile>span{font-size:min(2.6rem,44px)}.milestone-card h2{font-size:1.7rem}.milestone-card #modal-body .milestone-message{margin-bottom:12px}.milestone-stats{padding:9px 6px}}
@media(prefers-reduced-motion:reduce){.milestone-confetti{display:none}.milestone-motion *{animation:none!important}}

/* Preserve the score HUD at enlarged text sizes after a high-value merge. */
.scorebar{flex-wrap:wrap}.score{min-width:0;max-width:100%}.score strong{overflow-wrap:anywhere}

/* Isolated, replayable two-drop practice. Actions remain outside scrolling content. */
.tutorial-card #modal-kicker{color:var(--accent);font-size:.59rem;letter-spacing:.12em}
.tutorial-card h2{font-size:1.7rem;margin-bottom:12px}
.tutorial-card #modal-body .tutorial-copy{font-size:.95rem;line-height:1.5;margin-bottom:14px}
.tutorial-next{display:flex;align-items:center;justify-content:center;gap:14px;font-size:.65rem;letter-spacing:.1em;color:#c5daea;margin:10px 0 18px}
.tutorial-next b{display:grid;place-items:center;width:44px;height:44px;background:#78efc7;color:#103b30;border-radius:10px;font-size:1.6rem;letter-spacing:0}
.tutorial-board{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;background:#0b192c;border:1px solid #3a536d;border-radius:16px;padding:10px}
.tutorial-lane{display:grid;grid-template-rows:repeat(3,44px);gap:6px;padding:0;min-width:0;border-radius:7px;position:relative}.tutorial-lane:disabled{opacity:1;cursor:default}.tutorial-lane.tutorial-target{outline:2px dashed #9af2ce;outline-offset:3px}
.tutorial-cell{display:grid;place-items:center;background:#1a3047;border:1px solid #2c455e;border-radius:7px;font-size:1.6rem;font-weight:750;overflow:hidden}.tutorial-number{background:#78efc7;color:#103b30;border-color:#b5ffe3;box-shadow:inset 0 -3px #103b3022}.tutorial-next span{font-size:1rem;letter-spacing:0}
.tutorial-card #modal-body .tutorial-note{font-size:.72rem;line-height:1.5;color:#a9c3d5;margin:12px 0 0}.tutorial-motion .tutorial-number{animation:tutorial-land 320ms ease-out both}
@keyframes tutorial-land{from{transform:translateY(-12px) scale(.94);opacity:.3}to{transform:none;opacity:1}}
@media(max-height:600px){.tutorial-lane{grid-template-rows:repeat(3,36px)}.tutorial-card h2{font-size:1.4rem}.tutorial-next{margin:6px 0 12px}}
@media(prefers-reduced-motion:reduce){.tutorial-motion .tutorial-number{animation:none}}

.tutorial-complete .tutorial-number,.tutorial-complete .tutorial-next b{background:#69d4fa;color:#143c52;border-color:#b4eaff}

/* Transient feedback lives on the board, never in the banner or navigation area. */
#board-cue{position:absolute;z-index:8;top:8px;left:50%;transform:translateX(-50%);width:max-content;max-width:calc(100% - 16px);padding:8px 12px;border-radius:12px;background:#102a3ff2;border:1px solid #85d5b8;color:#d8ffef;box-shadow:0 4px 14px #07142455;text-align:center;font-size:.78rem;font-weight:650;line-height:1.35;pointer-events:none;overflow-wrap:anywhere}
#board-cue[data-kind=full]{border-color:#ffd26e;color:#ffe4a5}
#board.drop-accepted:before{box-shadow:inset 0 0 0 1px #9af2ce88;background:#9af2ce12}
#board.column-full:before{box-shadow:inset 0 0 0 2px #ffd26e;background:#ffd26e12}

/* Independent optional telemetry controls stay in scrollable dialog content. */
.telemetry-choices{display:grid;gap:14px;margin:18px 0}.telemetry-choices label{display:flex;gap:12px;align-items:flex-start;padding:14px;border:1px solid #547085;border-radius:16px;cursor:pointer}.telemetry-choices input{flex:none;width:24px;height:24px;margin:2px 0;accent-color:#9df0d7}.telemetry-choices span{font-weight:700;min-width:0}.telemetry-choices small{display:block;font-weight:400;font-size:.83em;line-height:1.45;margin-top:7px;color:#c4d4df}.telemetry-choices input:focus-visible{outline:3px solid #9df0d7;outline-offset:4px}

/* Keep the approved HUD/board order, with a height budget instead of page scrolling. */
body.playing{height:var(--app-height,100dvh);min-height:0;overflow:hidden;display:flex;flex-direction:column;padding-bottom:max(8px,env(safe-area-inset-bottom))}
body.native.playing.banner-enabled{padding-bottom:max(8px,env(safe-area-inset-bottom))}
.playing header{flex:none;padding-top:8px;padding-bottom:8px}
.playing main{flex:1;min-height:0;padding-top:8px;padding-bottom:5px}
.playing .game{height:100%;min-height:0;grid-template-rows:auto auto minmax(0,1fr) auto;gap:8px;position:relative}
.playing .board-stage{min-height:0;display:flex;justify-content:center;align-items:center}
.playing .board-wrap{flex:none;max-width:100%;box-shadow:0 4px 0 #091629,0 8px 20px #07142440}
.playing .scorebar{flex-wrap:nowrap;gap:12px}
.playing .score strong{font-size:1.65rem}.playing .best strong{font-size:1.2rem}
.playing .drop-tray{min-height:60px;padding:6px 12px;flex-wrap:nowrap;gap:8px}
.playing .next-group{flex-wrap:nowrap;gap:12px}.playing .next-group strong{width:44px;min-height:44px;font-size:1.65rem}
.playing .compact-goal{grid-template-columns:minmax(0,1fr) auto;gap:4px 8px;padding:0 4px}
.playing .compact-goal #goal-detail{white-space:normal;font-weight:750;color:#ffe18a;font-size:.78rem;text-align:right}
.playing #storage-note{position:absolute;bottom:28px;left:6px;right:6px;z-index:12;max-height:80px;overflow:auto;background:#172c43f5;border:1px solid #ffd26e;border-radius:10px;margin:0;padding:8px;font-size:.75rem}
.diamond-wallet{position:relative;flex-shrink:0;min-width:65px;min-height:44px;padding:2px 4px;text-align:center;line-height:1.15;border-radius:10px}
.diamond-wallet>span{color:#75dbff;text-shadow:0 0 9px #69d4fa55;margin-right:4px;font-size:1.1rem}.diamond-wallet strong{font-size:1.05rem;color:#c6f1ff;font-variant-numeric:tabular-nums}.diamond-wallet small{display:block;font-size:.48rem;letter-spacing:.1em;color:#adc0d6;margin-top:4px}.diamond-wallet i{position:absolute;right:1px;top:-5px;font-style:normal;font-size:1.6rem;color:#ffd26e}
/* Turn phases use the Play-release paint; soft-block materials remain static. */
.block-card{text-align:center}.block-card #modal-kicker{color:#ffd26e;font-size:.65rem}.block-card .modal-content{padding:0 5px 6px}.block-card h2{font-size:1.9rem;margin:0 0 4px}.block-hero{position:relative;isolation:isolate;display:grid;place-items:center;height:215px;margin:0 auto 4px;overflow:hidden;cursor:default}.block-hero:before{content:'';position:absolute;width:200px;height:200px;border-radius:50%;background:repeating-conic-gradient(from 0deg,#73d7fb15 0 12deg,transparent 12deg 30deg);mask-image:radial-gradient(circle,#000,transparent 74%);z-index:-1}.crowned-block{position:relative;display:flex;flex-direction:column;justify-content:center;width:145px;height:145px;border-radius:27px;background:linear-gradient(135deg,#ffd879,#ffb94e);color:#4d2e09;box-shadow:inset 0 3px #fff4b8,inset 0 -6px #c8813433,0 8px #07142544,0 12px 30px #0003;transform:rotate(-4deg);margin-top:24px}.crowned-block>strong{font-size:2.6rem;letter-spacing:-.06em;line-height:1.1}.crowned-block>small{font-size:.46rem;font-weight:800;letter-spacing:.1em;margin-top:10px}.block-crown{position:absolute;width:66px;top:-41px;left:40px;transform:rotate(4deg)}.block-crown svg{display:block;width:100%;height:auto}.block-card #modal-body .block-copy{margin:3px 0 9px;font-size:.91rem;color:#d7e9f4}.block-card #modal-body .block-subcopy{font-size:.74rem;line-height:1.45;margin:6px 0;color:#b9d1df}.block-card #modal-body .diamond-offer{margin:0 0 8px;font-size:1.05rem;color:#c2efff}.diamond-offer>span{color:#76dfff}.block-card #modal-actions{margin-top:10px}.block-card #modal-actions .diamond-video{background:linear-gradient(110deg,#ffda75,#ffc552);border-color:#ffe9a6;color:#49310d}
.block-chain-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:14px 0 18px}.block-chain-item{padding:13px 6px;border-radius:13px;background:#1a3047;border:1px solid #456079;text-align:center;opacity:.65}.block-chain-item b{display:block;font-size:1.2rem;color:#d9ebf5}.block-chain-item span{display:block;font-size:.62rem;margin-top:5px}.block-chain-item.current{border-color:#ffd26e;opacity:1}.block-chain-item.unlocked{background:#24534f;border-color:#78efc7;opacity:1}
@media(min-width:560px) and (max-height:500px){
 .playing header{position:absolute;left:16px;top:0;width:calc(45% - 28px);max-width:none;z-index:2}
 .playing main{width:100%;max-width:850px;padding-top:4px}
 .playing .game{grid-template-areas:'. board' 'score board' 'next board' 'goal board';grid-template-columns:minmax(0,45%) minmax(0,55%);grid-template-rows:56px auto auto 1fr;gap:8px 14px;align-items:start}
 .playing .board-stage{grid-row:1/-1;height:100%;align-self:stretch}.playing .goal-panel{align-self:start}.playing .scorebar{gap:6px}.playing .score strong{font-size:1.4rem}.playing .best strong{font-size:1rem}.playing .compact-goal #goal-detail{font-size:.7rem}.playing .next-group{gap:8px}.playing .drop-tray{padding:6px 8px}
 .block-card form{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0 14px}.block-card .close{grid-column:2;justify-self:end;margin:0;width:36px;min-height:36px;height:36px}.block-card .modal-content{grid-column:1;grid-row:1/3;min-height:0}.block-card #modal-actions{grid-column:2;grid-row:2;align-self:center;display:flex;flex-direction:column}.block-card #modal-actions button{flex:auto;font-size:.82rem;min-height:44px;padding:9px}.block-card .block-hero{height:145px}.block-card .crowned-block{width:100px;height:100px;border-radius:20px;margin-top:30px}.block-card .crowned-block>strong{font-size:1.9rem}.block-card .block-crown{width:48px;left:26px;top:-30px}.block-card .crowned-block>small{font-size:.35rem}.block-card h2{font-size:1.4rem}.block-card #modal-kicker{margin-bottom:4px;font-size:.52rem}.block-card #modal-body .block-subcopy{font-size:.65rem}.block-card #modal-body .block-copy{font-size:.72rem;margin:0}.block-card #modal-body .diamond-offer{font-size:.85rem;margin:3px 0}
}
@media(max-height:620px) and (max-width:559px){.block-card .block-hero{height:170px}.block-card .crowned-block{width:118px;height:118px;border-radius:23px}.block-card .crowned-block>strong{font-size:2.2rem}.block-card .block-crown{width:54px;left:32px;top:-34px}.block-card h2{font-size:1.6rem}.block-card #modal-actions button{min-height:44px;font-size:.85rem;padding:9px 12px}.block-card .close{min-height:36px;height:36px;width:36px;margin-bottom:0}.block-card .modal-content{padding-bottom:0}}
@media(prefers-reduced-motion:no-preference){.milestone-motion .crowned-block{animation:block-pop 600ms cubic-bezier(.2,.75,.3,1) both}}
@keyframes block-pop{0%{transform:translateY(24px) rotate(-12deg) scale(.7);opacity:0}65%{transform:translateY(-5px) rotate(-2deg) scale(1.04);opacity:1}100%{transform:rotate(-4deg);opacity:1}}
@media(min-width:560px) and (max-height:330px){
 .block-card{padding:12px}.block-card form{max-height:calc(100dvh - 50px)}.block-card .modal-content{padding:0 3px}.block-card .block-hero{height:108px;margin-bottom:0}.block-card .crowned-block{width:80px;height:80px;border-radius:16px;margin-top:23px}.block-card .crowned-block>strong{font-size:1.55rem}.block-card .crowned-block>small{font-size:.3rem;margin-top:6px}.block-card .block-crown{width:40px;left:20px;top:-25px}.block-card h2{font-size:1.25rem}.block-card #modal-body .block-copy{display:none}.block-card #modal-body .block-subcopy{font-size:.62rem;line-height:1.35;margin:4px 0}.block-card #modal-body .diamond-offer{font-size:.8rem;margin:2px 0}.block-card #modal-actions{margin-top:4px}
}
/* Discard stays inside the existing next-drop tray; no extra row or board scroll. */
#discard-next{flex:none;min-width:64px;min-height:48px;padding:3px 6px;border-left:1px solid #ffffff20;font-size:.76rem;color:#d7e6f0;line-height:1.25}
#discard-next>span{font-size:1rem}#discard-next small{display:block;margin-top:5px;font-size:.61rem;letter-spacing:.03em;color:#8ce1ff}#discard-next.low-diamonds small{color:#a5bdd1}
.playing .drop-tray{column-gap:6px}.playing .drop-tray .next-group{margin-right:auto;gap:10px}.playing .drop-tray #reward-undo{min-width:64px;padding-left:6px;padding-right:4px}
@media(max-width:350px){.playing .drop-tray{padding-left:8px;padding-right:8px}.playing .drop-tray .next-group{gap:8px}.playing .next-group .eyebrow{font-size:.6rem}.playing #discard-next{min-width:59px;padding-left:5px;padding-right:4px}.playing .drop-tray #reward-undo{min-width:59px;font-size:.75rem}}
@media(min-width:560px) and (max-height:500px){.playing .drop-tray .next-group{gap:6px}.playing .next-group .eyebrow{font-size:.56rem;max-width:40px}.playing #discard-next{min-width:55px;padding-left:4px;padding-right:3px;font-size:.7rem}.playing .drop-tray #reward-undo{min-width:55px;font-size:.7rem}.playing .drop-tray{padding-left:6px;padding-right:6px;column-gap:4px}}

/* Keep spend terms and both choices reachable in short confirmation viewports. */
.discard-card #modal-body{line-height:1.45}.discard-card #modal-body p{margin-bottom:10px}
@media(max-height:620px){.discard-card .close{width:36px;min-height:36px;height:36px;margin-bottom:0}.discard-card #modal-kicker{margin-bottom:7px}.discard-card h2{font-size:1.45rem;margin-bottom:10px}.discard-card #modal-actions{margin-top:8px}.discard-card #modal-actions button{min-height:44px;padding:8px 10px;font-size:.85rem}.discard-card .modal-content{padding-top:0;padding-bottom:0}}
@media(min-width:560px) and (max-height:500px){.discard-card{width:min(620px,calc(100% - 24px));padding:12px}.discard-card form{display:grid;grid-template-columns:minmax(0,1fr) 190px;gap:0 16px;max-height:calc(100dvh - 50px)}.discard-card .close{grid-column:2;grid-row:1;justify-self:end}.discard-card .modal-content{grid-column:1;grid-row:1/3;min-height:0}.discard-card #modal-actions{grid-column:2;grid-row:2;align-self:center;display:flex;flex-direction:column;flex-wrap:nowrap}.discard-card #modal-actions button{flex:0 0 auto}.discard-card #modal-kicker{font-size:.52rem}.discard-card h2{font-size:1.35rem}.discard-card #modal-body{font-size:.85rem}.discard-card #modal-body p{margin-bottom:8px}}

/* Design refresh: the board owns the screen; goals and tools have one clear home. */
.playing header{max-width:440px;padding:8px 0;border:0}
.playing .brand{font-size:.52rem;letter-spacing:.18em}.playing h1{font-size:1.05rem}
.playing main{padding-top:0;padding-bottom:0}
.playing .game{grid-template-areas:'score' 'next' 'goal' 'board' 'tip';grid-template-rows:50px 62px 44px minmax(0,1fr) 58px;gap:7px}
.playing .scorebar{padding:0 2px;gap:10px;align-items:center}.playing .score strong{font-size:1.75rem}.playing .best strong{font-size:1.2rem}
.playing .score>span:first-child{font-size:.6rem;letter-spacing:.12em}.playing .score.best{text-align:left;margin-left:auto}
.diamond-wallet{min-width:115px;min-height:46px;border:1px solid #58809b;background:linear-gradient(120deg,#274760,#1c344c);padding:5px 12px;border-radius:14px;text-align:left;box-shadow:inset 0 1px #ffffff0b}
.diamond-wallet>span{font-size:.9rem}.diamond-wallet strong{font-size:1.12rem}.diamond-wallet small{font-size:.65rem;letter-spacing:0;margin-top:3px;color:#d0e8f6}.diamond-wallet small span{float:right;margin-left:10px;color:#8ee1ff;font-size:.9rem;line-height:.7}.diamond-wallet i{top:-5px;right:6px}
.playing .drop-tray{padding:5px 6px 5px 10px;gap:6px;min-height:0;background:#172f46;border-color:#344f67;border-radius:15px}
.playing .drop-tray .next-group{gap:9px;flex:1;flex-wrap:nowrap}.playing .next-group .eyebrow{font-size:.65rem;letter-spacing:.1em;max-width:none;line-height:1.5}.next-group .eyebrow>span{display:block;font-size:1rem;color:#8ce5c4;line-height:1}
.playing .next-group strong{width:46px;height:46px;min-height:46px;border-radius:12px;font-size:1.7rem}
.playing #discard-next,.playing .drop-tray #reward-undo{min-width:70px;min-height:46px;margin:0;border:1px solid #425c74;border-radius:11px;padding:5px 8px;font-size:.75rem;background:#203950;line-height:1.2}
.playing #discard-next small,.playing #reward-undo small{font-size:.6rem;letter-spacing:.02em;margin-top:4px}.action-name{display:block;white-space:nowrap}.action-name>span{font-size:.94rem}
.playing .compact-goal{width:100%;height:44px;min-height:44px;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:1fr 3px;gap:4px 8px;padding:6px 10px 4px;background:#243a4d;border:1px solid #72664a;border-radius:12px 12px 5px 5px;text-align:left}
.playing .compact-goal #goal-title{font-size:.76rem;line-height:1.2;color:#eee7cf;align-self:center}.playing .compact-goal #goal-detail{font-size:.88rem;line-height:1.2;white-space:nowrap;align-self:center;color:#ffdb7d}.compact-goal #goal-detail::after{content:' ›';color:#bfb490;font-weight:500}
.playing .compact-goal progress{height:3px;border-radius:3px}.compact-goal progress::-webkit-progress-value{background:#ffda7c}
.playing .board-stage{align-items:flex-start}.playing .board-wrap{padding:6px;border-radius:15px;box-shadow:0 4px 0 #071729,0 12px 24px #07142440}
#column-controls{inset:6px;gap:0}#column-controls button{border-radius:6px}#column-controls button:focus-visible{outline-offset:-2px}
.feature-tip{grid-area:tip;display:flex;align-items:center;gap:8px;min-width:0;padding:3px 2px;color:#b8cbdc;border-top:1px solid #47607755}
.feature-tip p{font-size:.72rem;line-height:1.35;margin:0;flex:1;min-width:0}.feature-tip button{flex:none;min-width:48px;min-height:44px;border-radius:10px;border:1px solid #4f776e;background:#25473f;color:#c3ffe5;font-size:.7rem;font-weight:650;padding:6px}
.feature-tip[data-hint=''] p{color:#91abc2;text-align:center}
.hint-target{outline:1px solid #a6f7d7;outline-offset:2px}
#feature-tip:has(button:disabled){opacity:1}
.playing #storage-note{bottom:58px}
/* Reward is earned first. Video is a quieter, explicitly optional alternative. */
.block-card #modal-actions .diamond-video{background:#203950;border:1px solid #597187;color:#d4e7f6;font-weight:600;box-shadow:none}.block-card #modal-actions .diamond-video:hover:not(:disabled){background:#2c4962}
.block-card #modal-body .diamond-offer{border:1px solid #63938388;background:#94f1cf0c;border-radius:13px;padding:10px;margin:8px 0;font-size:1.22rem;color:#b6f8df}.diamond-offer small{display:block;font-size:.67rem;color:#bed4d5;margin-top:2px}
.block-card #modal-body .block-subcopy{font-size:.76rem;line-height:1.4}.block-card .block-hero{height:190px}.block-card h2{font-size:1.8rem}
.chain-wallet{display:grid;gap:4px;background:#173a48;border:1px solid #5c8596;border-radius:16px;padding:14px}.chain-wallet>span{font-size:.63rem;letter-spacing:.1em;color:#b3cddc}.chain-wallet strong{font-size:1.8rem;color:#a7e9ff}.chain-wallet small{font-size:.72rem;color:#c3dae5}.chain-intro{font-size:.82rem;margin:14px 0 6px!important}
.block-chain-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:10px 0 14px}.block-chain-item{padding:12px 5px}.block-chain-item span{font-size:.68rem}.block-chain-item.current{background:#4a402a;border-color:#e2bb68}.block-chain-item.unlocked{background:#25473f}
/* Compact phones trade the duplicate brand header for board room, never controls. */
@media(max-height:620px) and (max-width:559px){
 body.playing{padding-top:max(4px,env(safe-area-inset-top));padding-bottom:max(4px,env(safe-area-inset-bottom))}
 .playing header{position:absolute;right:12px;top:max(4px,env(safe-area-inset-top));width:44px;height:44px;padding:0;z-index:3}.playing header .wordmark{display:none}
 .playing main{width:100%;padding:0}.playing .game{grid-template-rows:44px 52px 44px minmax(0,1fr) 48px;gap:4px}
 .playing .scorebar{padding-right:52px;gap:8px}.playing .score strong{font-size:1.35rem}.playing .best strong{font-size:1.05rem}.playing .score>span:first-child{font-size:.55rem;margin-bottom:1px}
 .playing .diamond-wallet{min-width:97px;min-height:44px;padding:3px 8px}.diamond-wallet strong{font-size:1rem}.diamond-wallet small{font-size:.61rem}
 .playing .drop-tray{padding:3px 4px 3px 8px}.playing .next-group strong{width:44px;min-height:44px;height:44px}.playing #discard-next,.playing .drop-tray #reward-undo{min-height:44px;min-width:65px;padding:4px 6px}.playing .drop-tray .next-group{gap:8px}
 .feature-tip{gap:6px;padding:0 2px}.feature-tip p{font-size:.68rem;line-height:1.28}.feature-tip button{min-width:44px;font-size:.66rem;padding:4px}.playing #storage-note{bottom:50px}
 .block-card,.discard-card{padding:12px}.block-card .close,.discard-card .close{width:44px;height:44px;min-height:44px;margin:0}.block-card form,.discard-card form{max-height:calc(100dvh - 50px)}
 .block-card .block-hero{height:130px}.block-card .crowned-block{width:90px;height:90px;border-radius:20px;margin-top:24px}.block-card .crowned-block>strong{font-size:1.85rem}.block-card .crowned-block>small{font-size:.36rem;margin-top:6px}.block-card .block-crown{width:45px;left:23px;top:-28px}.block-card h2{font-size:1.45rem}.block-card #modal-kicker{margin-bottom:4px;font-size:.58rem}.block-card #modal-body .block-copy{font-size:.8rem;line-height:1.35;margin:2px 0 6px}.block-card #modal-body .diamond-offer{font-size:1rem;padding:5px;margin:5px 0}.block-card #modal-body .block-subcopy{font-size:.7rem;line-height:1.35}.block-card #modal-actions{margin-top:8px;gap:6px}
}
@media(min-width:560px) and (max-height:500px){
 .playing .game{grid-template-areas:'. board' 'score board' 'next board' 'goal board' 'tip board';grid-template-columns:minmax(0,45%) minmax(0,55%);grid-template-rows:50px 46px 58px 44px minmax(48px,1fr);gap:6px 14px}.playing .board-stage{grid-row:1/-1;align-items:center}.playing .feature-tip{align-self:start}.playing .diamond-wallet{min-width:102px}.playing .score strong{font-size:1.4rem}.playing .best strong{font-size:1rem}
 .block-card .close,.discard-card .close{width:44px;height:44px;min-height:44px}.playing .next-group .eyebrow{font-size:.6rem}.playing #discard-next,.playing .drop-tray #reward-undo{min-width:60px;padding:5px;font-size:.7rem}.playing .drop-tray .next-group{gap:6px}
}

/* Keep exact goal in accessible copy, a single compact value in the ribbon. */
.playing .compact-goal #goal-detail{display:flex;align-items:center;gap:5px}.goal-crown{display:inline-flex;width:18px;flex:none}.goal-crown svg{width:18px;height:14px}.compact-goal #goal-detail b{font-weight:750}
/* Merge gain must never widen the score row or collide with the wallet. */
.playing .score{min-width:0}.playing #gain{position:absolute;left:0;top:100%;font-size:.58rem;line-height:1;margin:0;white-space:nowrap;z-index:2;pointer-events:none}
@media(max-height:620px) and (max-width:559px){.playing .score>strong{font-size:clamp(.95rem,4.1vw,1.35rem)}.playing .best>strong{font-size:.95rem}.playing .scorebar{gap:6px}.playing .diamond-wallet{min-width:95px}.playing #gain{top:1px;left:34px;font-size:.54rem}}

/* Tool names inherit their button size, rather than the legacy icon size. */
#reward-undo>.action-name,#discard-next>.action-name{font-size:inherit}.action-name>span{font-size:1em}
/* Larger text keeps the complete board and primary controls on screen.
   Secondary best score remains available from Menu. */
.large-text.playing .drop-tray{padding:3px 6px;gap:4px}.large-text.playing .drop-tray .next-group{gap:6px;min-width:0}.large-text.playing .next-group .eyebrow{font-size:.55rem;letter-spacing:.04em}.large-text.playing .next-group strong{font-size:1.3rem;width:44px;min-height:44px}
.large-text.playing #discard-next,.large-text.playing .drop-tray #reward-undo{font-size:.6rem;min-width:80px;min-height:44px;padding:3px 4px}.large-text.playing #discard-next small,.large-text.playing #reward-undo small{font-size:.5rem;margin-top:3px}
.large-text.playing .compact-goal #goal-title{font-size:.7rem;line-height:1.2}.large-text.playing .compact-goal #goal-detail{font-size:.75rem;line-height:1.2}.large-text.playing .feature-tip p{font-size:.65rem;line-height:1.25}.large-text.playing .feature-tip button{font-size:.6rem;min-width:52px;padding:4px}
@media(max-width:559px),(max-height:500px){.large-text.playing:not(.lab-mode) .score.best{display:none}.large-text.playing .scorebar{justify-content:space-between}.large-text.playing .diamond-wallet{min-width:112px;min-height:44px}.large-text.playing .diamond-wallet small{font-size:.55rem}}

.large-text.playing.lab-mode .scorebar{gap:4px}.large-text.playing.lab-mode .score>span:first-child{font-size:.5rem;letter-spacing:.03em}.large-text.playing.lab-mode .score>strong{font-size:.8rem}.large-text.playing.lab-mode .diamond-wallet{min-width:95px;padding:3px 6px}
/* Bound both landscape grid tracks: long reward copy scrolls inside its column,
   never pushes the normal and optional-video actions beneath the viewport. */
@media(min-width:560px) and (max-height:500px){
 .block-card form{height:calc(100dvh - 62px);max-height:calc(100dvh - 62px);grid-template-rows:44px minmax(0,1fr);min-height:0;align-items:start}
 .block-card .modal-content{height:100%;max-height:100%;min-height:0;overflow:auto;grid-column:1;grid-row:1/3;align-self:stretch}
 .block-card .close{grid-column:2;grid-row:1;align-self:start;margin:0}
 .block-card #modal-actions{grid-column:2;grid-row:2;align-self:center;max-height:100%;overflow:auto;min-height:0;margin:0;padding:3px}
 .block-card #modal-actions button{flex:0 0 auto;min-height:44px;padding:8px 6px}
 .block-card .block-hero{height:125px}.block-card #modal-body .diamond-offer{padding:5px;margin:5px 0;font-size:1rem}
}
/* At enlarged text, both wallet lines share the44px target without growing
   beyond the short-screen score row and centering above the viewport. */
.large-text.playing .diamond-wallet{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-rows:22px 14px;column-gap:4px;align-content:center;min-height:44px;height:44px;padding:3px 8px;line-height:1}
.large-text.playing .diamond-wallet>span{font-size:.9rem;margin:0;line-height:1}.large-text.playing .diamond-wallet strong{font-size:.9rem;line-height:1}.large-text.playing .diamond-wallet small{grid-column:1/-1;font-size:.55rem;line-height:1;margin:0}

/* Restore board room without changing the established visual style. */
.playing .game{grid-template-areas:'score' 'next' 'goal' 'board';grid-template-rows:50px 62px 44px minmax(0,1fr)}
#feature-tip{display:none!important}
#help{width:44px;flex:none;border:1px solid #3d526b;border-radius:14px;background:#20364f;font-size:1.15rem;margin-left:auto}
header{gap:8px}.playing #storage-note{bottom:0}
.daily-rewards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin:10px 0 12px}.daily-day{display:grid;text-align:center;gap:3px;border:1px solid #425c74;border-radius:11px;padding:9px 2px;background:#203950}.daily-day span,.daily-day small{font-size:.7rem}.daily-day b{font-size:.95rem;color:#a7e9ff}.daily-day.current{border-color:#9af2ce;background:#25473f}.wallet-copy{font-size:.8rem}
@media(max-height:620px) and (max-width:559px){.playing header{width:96px;gap:8px}.playing .scorebar{padding-right:100px;gap:5px}.playing .game{grid-template-rows:44px 52px 44px minmax(0,1fr)}.playing .diamond-wallet{min-width:86px;padding:3px 6px}.playing .score strong{font-size:1.05rem}.playing .best strong{font-size:.85rem}.playing .score>span:first-child{font-size:.5rem}.playing .score.best{margin-left:0}.playing .diamond-wallet small{font-size:.6rem}}
@media(min-width:560px) and (max-height:500px){.playing .game{grid-template-areas:'. board' 'score board' 'next board' 'goal board';grid-template-rows:50px 46px 58px minmax(44px,1fr)}.playing header{width:calc(45% - 28px)}.playing .board-stage{grid-row:1/-1}}
/* Best remains directly visible with enlarged text too. */
.large-text.playing:not(.lab-mode) .score.best{display:block}.large-text.playing .scorebar{gap:5px}.large-text.playing .score>strong{font-size:.75rem}.large-text.playing .score>span:first-child{font-size:.45rem;letter-spacing:0}.large-text.playing .diamond-wallet{min-width:86px;padding:3px 5px}.large-text.playing .diamond-wallet small{font-size:.45rem}.large-text.playing .diamond-wallet strong{font-size:.7rem}

#install{flex:none;border:1px solid #3d526b;border-radius:12px;padding:6px 10px}.native #install{display:none!important}

.wallet-card .chain-wallet{padding:10px;gap:2px}.wallet-card .chain-wallet strong{font-size:1.45rem}.wallet-card h3{font-size:1rem;margin:12px 0 4px}.wallet-card #modal-body .wallet-copy{line-height:1.4;margin-bottom:6px}.wallet-card .daily-day{padding:7px 2px}.wallet-card .daily-rewards{margin:7px 0}.wallet-card #modal-kicker{margin-bottom:6px}.wallet-card h2{margin-bottom:10px}.wallet-card #modal-actions{margin-top:10px}
@media(min-width:560px) and (max-height:500px){.playing header{height:44px;padding:0;top:4px}.playing header #help,.playing header #menu{height:44px;min-height:44px;font-size:18px;line-height:1}.large-text.playing header .wordmark{display:none}.playing header #help{margin-left:auto}}
/* Browser installation keeps a direct target without stealing a board row. */
@media(max-height:620px) and (max-width:559px){.playing header #install{position:absolute;top:104px;right:0;width:72px;min-width:72px;height:44px;font-size:13px;line-height:1.2;padding:6px}.playing:has(#install:not([hidden])) .compact-goal{width:calc(100% - 80px)}}
@media(min-width:560px) and (max-height:500px){.playing header:has(#install:not([hidden])) .wordmark{display:none}.playing header #install{font-size:13px;line-height:1.2;height:44px;padding:6px 8px}}
/* Enlarged text must not let tool labels cover the queued tile. */
.large-text.playing #discard-next,.large-text.playing .drop-tray #reward-undo{font-size:clamp(12px,.6rem,15px);width:80px;min-width:80px;flex:0 0 80px}.large-text.playing #discard-next small,.large-text.playing #reward-undo small{font-size:clamp(10px,.5rem,11px)}.large-text.playing .next-group .eyebrow{font-size:clamp(10px,.55rem,13px)}

.playing header #help,.playing header #menu{height:44px;min-height:44px;font-size:18px;line-height:1}

/* Short landscape wallets and tool choices use the established two-column
   dialog pattern. Both text and actions scroll inside, never off the viewport. */
@media(min-width:560px) and (max-height:500px){
 dialog:is(.wallet-card,.tools-card,.reward-card){width:min(620px,calc(100% - 24px));padding:12px}
 dialog:is(.wallet-card,.tools-card,.reward-card) form{display:grid;grid-template-columns:minmax(0,1fr) minmax(190px,40%);grid-template-rows:44px minmax(0,1fr);gap:0 14px;height:calc(100dvh - 50px);max-height:calc(100dvh - 50px);min-height:0;align-items:start}
 dialog:is(.wallet-card,.tools-card,.reward-card) .modal-content{grid-column:1;grid-row:1/3;min-height:0;height:100%;max-height:100%;overflow:auto;align-self:stretch}
 dialog:is(.wallet-card,.tools-card,.reward-card) .close{grid-column:2;grid-row:1;justify-self:end;align-self:start;width:44px;height:44px;min-height:44px;margin:0}
 dialog:is(.wallet-card,.tools-card,.reward-card) #modal-actions{grid-column:2;grid-row:2;display:flex;flex-direction:column;flex-wrap:nowrap;align-self:center;max-height:100%;min-height:0;overflow:auto;margin:0;padding:3px}
 dialog:is(.wallet-card,.tools-card,.reward-card) #modal-actions button{flex:0 0 auto;min-height:44px;padding:8px 6px}
}

/* Approved soft 3D finish: paint-only, shared by all numbered blocks.
   No geometry, timing, hit-area or board-layout changes. */
.soft-block,#modal-body .soft-block,.next-group strong.soft-block,.tile.soft-block{
 background-image:linear-gradient(180deg,#ffffff22 0%,#ffffff06 32%,#00000006 100%);
 color:#fff;
 box-shadow:inset 0 2px 1px #ffffff4d,inset 0 -3px 0 #00000016,inset 2px 0 1px #ffffff16,inset -2px 0 1px #0000000c,0 2px 0 #06152866;
 text-shadow:-1px 0 #183044,1px 0 #183044,0 -1px #183044,0 1px #183044;
 font-weight:800;
}
.crowned-block.soft-block,.milestone-tile.soft-block{border-color:#ffffff38}
.block-chain-item b.soft-block{border-radius:8px}
.soft-block small,.soft-block .block-crown{text-shadow:none}
#modal-body .soft-block>small{color:var(--caption-ink)}
@media(forced-colors:active){
 .soft-block,#modal-body .soft-block,.next-group strong.soft-block,.tile.soft-block{
  forced-color-adjust:auto;--caption-ink:CanvasText;background-image:none;color:CanvasText!important;
  background-color:Canvas!important;box-shadow:none;text-shadow:none;outline:1px solid CanvasText;
 }
}

/* Approved reference flow: HUD, goal/queue, lanes, full board, tools. Native ad bounds remain owned by the bridge. */
body.playing{padding-top:max(12px,env(safe-area-inset-top));background:#0f2038}
.playing header{position:absolute;top:max(16px,env(safe-area-inset-top));right:12px;width:94px;height:44px;padding:0;border:0;gap:6px;z-index:3}
.playing header .wordmark{display:none}.playing header #help{margin:0}.playing header #menu{width:44px;padding:0}
.playing main{width:100%;max-width:520px;padding:0;min-height:0}
.playing .game{grid-template-areas:'score score' 'goal next' 'lanes lanes' 'board board' 'tools tools';grid-template-columns:1.15fr 1fr;grid-template-rows:54px 60px 20px minmax(0,1fr) 50px;gap:12px 10px}
.playing .scorebar{grid-area:score;padding-right:100px;gap:12px;align-items:center}
.playing .score.best{margin:0}.playing .score strong,.playing .best strong{font-size:clamp(16px,4.8vw,23px)}
.playing .score>span:first-child{font-size:10px;letter-spacing:1px}
.playing .diamond-wallet{min-width:0;flex:1;height:52px;padding:5px 10px;border-radius:13px;display:grid;grid-template-columns:auto 1fr;gap:0 5px;align-content:center}
.playing .diamond-wallet small{grid-row:1;grid-column:1/-1;font-size:9px;text-transform:uppercase;letter-spacing:1px}.playing .diamond-wallet strong{font-size:23px}.playing .diamond-wallet>span{font-size:15px}
.playing .drop-tray{grid-area:next;background:none;border:0;box-shadow:none;padding:0;min-height:0;justify-content:space-between}
.playing .next-group{width:100%;justify-content:space-between;gap:5px}.playing .next-group .eyebrow{font-size:12px}.playing .next-group strong{width:60px;height:60px;min-height:44px;border-radius:12px}
.playing .compact-goal{grid-area:goal;display:grid;grid-template-columns:1fr;padding:8px 12px;border:0;border-radius:13px;background:#20374e;width:100%;gap:1px;min-height:44px}
.playing .compact-goal #goal-title{font-size:10px;line-height:1.2;text-transform:uppercase;letter-spacing:.6px}.playing .compact-goal #goal-detail{font-size:20px;line-height:1.2;text-align:left;color:#edf5ff}.playing .goal-crown{display:none}.playing .compact-goal #goal-detail:before{content:'Make';font-weight:750}
.playing .compact-goal progress{display:block;grid-row:3;height:3px;margin:3px 0 0}.playing .goal-eyebrow{display:none}
.lane-arrows{grid-area:lanes;display:grid;grid-template-columns:repeat(5,1fr);text-align:center;color:#849fb6;font-size:23px;line-height:20px}
.playing .board-stage{grid-area:board;grid-row:auto;height:auto;align-items:center;min-height:0}.playing .board-wrap{border-radius:16px}
.game-tools{grid-area:tools;display:grid;grid-template-columns:1fr 1fr;gap:10px}.playing .game-tools .board-action{min-height:44px;width:auto;min-width:0;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:3px 6px;font-size:18px;background:#20394f;border:1px solid #466176;border-radius:13px}.playing .game-tools .board-action small{font-size:11px;margin:0;color:#afc2d6}.playing .game-tools .action-name>span{display:none}
.playing header #install{position:absolute;top:60px;right:0;min-height:44px;background:#20394f;z-index:4}
@media(max-height:650px){.playing .game{grid-template-rows:44px 48px 12px minmax(0,1fr) 44px;gap:5px 8px}.playing .diamond-wallet{height:44px}.playing .next-group strong{width:48px;height:48px}.playing .compact-goal{padding:4px 8px}.playing .compact-goal #goal-detail{font-size:17px}.lane-arrows{line-height:12px;font-size:18px}.playing .game-tools .board-action{font-size:15px}}
@media(min-width:560px) and (max-height:500px){.playing main{max-width:850px}.playing header{right:auto;left:calc(45% - 100px);width:94px}.playing .game{grid-template-areas:'score lanes' 'goal board' 'next board' 'tools board';grid-template-columns:45% minmax(0,1fr);grid-template-rows:44px 56px 56px minmax(44px,1fr);gap:6px 12px}.playing .board-stage{grid-row:2/5;height:100%}.playing .scorebar{padding-right:100px;gap:5px}.playing .score strong,.playing .best strong{font-size:14px}.playing .diamond-wallet{padding:3px;min-width:55px}.playing .diamond-wallet strong{font-size:16px}.playing .diamond-wallet small{font-size:8px}.playing .game-tools{align-self:start}.playing .lane-arrows{align-self:end}.playing .next-group{justify-content:flex-end}.playing .compact-goal{width:100%}}
.playing .next-group .eyebrow{line-height:1.4}.playing .next-group .eyebrow>span{display:none}.playing .next-group .eyebrow:after{content:'Drop ↓';display:block;color:#edf5ff;font-size:12px;font-weight:400;letter-spacing:0;text-transform:none;margin-top:5px}
.playing.lab-mode .compact-goal #goal-detail:before{content:none}
/* Reference proportions, with unused height left below tools, not between rows. */
body.playing{padding-left:12px;padding-right:12px}
.playing main{max-height:calc(min(100vw - 24px,520px)*1.2 + 224px)}
.playing .board-stage{align-items:flex-start}.lane-arrows{justify-self:center;max-width:100%}
.playing .compact-goal{height:100%;align-self:stretch;grid-template-rows:auto auto 3px;align-content:center}
.playing .compact-goal #goal-title{grid-row:1;grid-column:1;margin:0;padding:0;position:static}
.playing .compact-goal #goal-detail{grid-row:2;grid-column:1;margin:0;padding:0;position:static;line-height:1.25}
.playing .compact-goal #goal-detail:after{display:none}
.playing .scorebar{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(95px,1.55fr);gap:10px}
.playing .diamond-wallet{width:100%;margin:0}
.playing .game-tools #discard-next,.playing .game-tools #reward-undo{width:100%;min-width:0;flex:auto;font-size:18px}
.playing .game-tools #discard-next small,.playing .game-tools #reward-undo small{font-size:11px}
@media(max-height:650px){.playing main{max-height:none}.playing .game-tools #discard-next,.playing .game-tools #reward-undo{font-size:15px}.playing .compact-goal{grid-template-rows:auto auto 3px;gap:0}}
@media(min-width:560px) and (max-height:500px){.playing main{max-height:none}.playing .scorebar{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 55px;gap:4px}.playing .compact-goal{height:56px}.playing .board-stage{align-items:flex-start}}
/* Approved daily, wallet and priced decision cards. */
dialog:is(.daily-prompt-card,.balance-card,.full-board-card,.undo-prompt-card){width:min(390px,calc(100% - 24px));border-radius:24px;padding:20px;background:linear-gradient(130deg,#25415c,#172e47);border:1px solid #506c84}
dialog:is(.daily-prompt-card,.full-board-card,.undo-prompt-card){text-align:center}
dialog:is(.balance-card,.full-board-card,.undo-prompt-card) #modal-kicker{display:none}
dialog:is(.daily-prompt-card,.full-board-card,.undo-prompt-card) h2{font-size:27px;letter-spacing:0}
dialog:is(.daily-prompt-card,.full-board-card,.undo-prompt-card) .close{position:absolute;right:10px;top:10px;background:transparent;border:0}
.daily-prompt-card #modal-kicker{color:#9af2ce;letter-spacing:2px;margin:2px 0 10px}
.daily-hero{display:flex;flex-direction:column;align-items:center;gap:4px;margin:20px 0}.daily-hero .diamond-gem{width:82px;height:82px;margin:0 0 8px;filter:drop-shadow(0 0 24px #73f1c64d)}
.daily-hero strong{font-size:50px;line-height:1.1;color:#f2f7ff}.daily-hero small{font-size:17px;font-weight:650;color:#adc0d6}
.daily-prompt-card .daily-rewards{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;margin:20px 0 4px}.daily-prompt-card .daily-day{padding:7px 1px;gap:5px;border-radius:10px;background:#152c43}.daily-prompt-card .daily-day span,.daily-prompt-card .daily-day small{font-size:10px}.daily-prompt-card .daily-day b{font-size:14px;color:#f2f7ff}.daily-prompt-card .daily-day.current{background:#9af2ce;color:#174f43}.daily-prompt-card .daily-day.current b{color:#174f43}
.daily-reset-note{font-size:12px;color:#adc0d6;margin:12px 0 0}.daily-prompt-card #modal-actions button{font-size:17px;min-height:52px}
.balance-card h2{font-size:27px;letter-spacing:0}.balance-card .close{position:absolute;right:12px;top:12px}
.balance-card .chain-wallet{text-align:left;align-items:start;background:#152c43;border-radius:18px;padding:16px 20px;margin-bottom:16px}.balance-card .chain-wallet strong{font-size:40px}.balance-card .chain-wallet>span{font-size:11px;letter-spacing:1.5px}.diamond-gem{width:24px;height:24px;vertical-align:middle}
.wallet-row{display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:12px;padding:14px;border-radius:16px;background:#203a51;margin:12px 0}.wallet-row>div{display:flex;flex-direction:column;gap:5px}.wallet-row b{font-size:17px;color:#f2f7ff}.wallet-row small{font-size:13px;color:#adc0d6}.wallet-row .wallet-icon{width:44px;height:44px;display:grid;place-items:center;border-radius:12px;background:#2a534f}.wallet-row button{padding:8px 14px;background:#9af2ce;color:#174a3d;border-radius:12px;font-weight:700}.wallet-row:nth-of-type(3) button{background:#315c73;color:#edf5ff}
.wallet-tools-list{margin:20px 0}.wallet-tools-list>div{display:flex;align-items:center;justify-content:space-between;padding:16px 2px;border-bottom:1px solid #415a6e;gap:8px}.wallet-tools-list>div:last-child{border:0}.wallet-tools-list b{font-size:16px;color:#edf5ff}.wallet-tools-list span{color:#9af2ce;font-size:16px;font-weight:650}.wallet-tools-list small{color:#adc0d6;font-size:12px;font-weight:400}
.tool-hero{width:56px;height:56px;border-radius:18px;background:#275068;color:#65d4f7;font-size:42px;line-height:56px;margin:0 auto 16px}.full-board-card .tool-hero{display:grid;grid-template-columns:repeat(2,12px);grid-template-rows:repeat(2,12px);gap:4px;justify-content:center;align-content:center;background:#384766}.full-board-card .tool-hero span{background:#b399ff;border-radius:3px}.full-board-card .tool-hero span:nth-child(2){background:#66d2f8}.full-board-card .tool-hero span:nth-child(3){background:#ffd370}.full-board-card .tool-hero span:nth-child(4){background:#7befcf}
.tool-balance{font-size:15px;font-weight:650;color:#adc0d6}.full-board-card #modal-actions,.undo-prompt-card #modal-actions{gap:14px;margin-top:20px}.full-board-card #modal-actions button,.undo-prompt-card #modal-actions button{min-height:54px;font-size:17px}.full-board-card #modal-actions button:nth-child(2),.undo-prompt-card #modal-actions button:nth-child(2){background:#31516b;border:0}.full-board-card #modal-actions button:nth-child(3){margin-top:14px}.full-board-card #modal-actions button:last-child,.undo-prompt-card #modal-actions button:last-child,.daily-prompt-card #modal-actions button:last-child,.balance-card #modal-actions button:last-child{background:transparent;border:0;color:#adc0d6}
dialog:is(.full-board-card,.undo-prompt-card) #video-availability{font-size:11px;line-height:1.4;margin:8px 0}dialog:is(.full-board-card,.undo-prompt-card) details{font-size:12px;text-align:left}
@media(max-height:650px){dialog:is(.daily-prompt-card,.balance-card,.full-board-card,.undo-prompt-card){padding:14px}.daily-hero{margin:10px 0}.daily-hero .diamond-gem{width:56px;height:56px}.daily-hero strong{font-size:36px}.daily-prompt-card .daily-rewards{margin-top:10px}.wallet-row{padding:8px;margin:8px 0;gap:7px}.wallet-row b{font-size:15px}.wallet-tools-list>div{padding:10px 2px}.tool-hero{margin-bottom:10px}.full-board-card #modal-actions,.undo-prompt-card #modal-actions{gap:8px;margin-top:10px}.full-board-card #modal-actions button,.undo-prompt-card #modal-actions button{min-height:44px;font-size:15px}}
/* Soft inset rim and upper highlight from the final tile reference. */
.tile.soft-block:before,#next.soft-block:before{content:'';position:absolute;inset:3px;border:1px solid #ffffff20;border-top-color:#ffffff70;border-bottom-color:#00000012;border-radius:inherit;pointer-events:none}
#next.soft-block{position:relative}.tile.soft-block{border-radius:11px}
@media(min-width:560px) and (max-height:500px){dialog.daily-prompt-card form{display:grid;grid-template-columns:minmax(0,1fr) minmax(160px,40%);grid-template-rows:44px minmax(0,1fr);height:calc(100dvh - 55px);gap:0 12px}.daily-prompt-card .modal-content{grid-column:1;grid-row:1/3;overflow:auto}.daily-prompt-card #modal-actions{grid-column:2;grid-row:2;align-self:center}.daily-prompt-card .close{position:static;grid-column:2;grid-row:1;justify-self:end}dialog.daily-prompt-card{width:min(620px,calc(100% - 24px))}}
@media(min-width:560px) and (min-height:501px){.playing header{right:max(12px,calc((100vw - 520px)/2))}}
@media(min-height:651px){dialog:is(.daily-prompt-card,.full-board-card,.undo-prompt-card){width:min(364px,calc(100% - 48px));padding:22px 20px}.daily-prompt-card .daily-hero{margin:24px 0}.daily-prompt-card .daily-rewards{margin-top:22px}.full-board-card #modal-actions button,.undo-prompt-card #modal-actions button{min-height:54px}}
dialog:is(.daily-prompt-card,.balance-card,.full-board-card,.undo-prompt-card)::backdrop{backdrop-filter:none;background:#061422b3}
.playing .compact-goal{position:relative;padding-right:22px}.playing .compact-goal:after{content:'›';position:absolute;right:10px;top:50%;transform:translateY(-50%);font-size:26px;color:#edf5ff}.playing .compact-goal progress::-webkit-progress-value{background:#9af2ce}.playing .compact-goal progress::-moz-progress-bar{background:#9af2ce}
.daily-prompt-card .daily-day{line-height:1.1}
.balance-card #modal-body{line-height:1.3}.balance-card .chain-wallet{height:99px;min-height:0;border:0;padding:14px 20px;line-height:1.1;gap:8px;margin-bottom:16px}.balance-card .chain-wallet strong{font-size:40px;line-height:1.1;color:#f2f7ff}.balance-card h3{font-size:10px;letter-spacing:1.3px;margin:20px 0 0;font-weight:700}.balance-card .wallet-tools-list{margin:8px 0}.balance-card .wallet-tools-list>div{min-height:53px;padding:12px 2px}.balance-card .wallet-row{min-height:80px;margin:12px 0;padding:12px 14px}.balance-card .wallet-row small{line-height:1.3}.balance-card details summary{font-size:11px;padding:10px 0}.balance-card #modal-actions{margin-top:6px}.balance-card #modal-actions button{min-height:44px;padding:8px}.balance-card .wallet-row:nth-of-type(2) small{color:#9af2ce}.balance-card .wallet-row:nth-of-type(3) .wallet-icon{background:#244f66;color:#66d2f8;font-size:26px}
dialog:is(.full-board-card,.undo-prompt-card) .close{display:none}
dialog:is(.full-board-card,.undo-prompt-card) .tool-balance{margin:0!important;line-height:1.3}
dialog:is(.full-board-card,.undo-prompt-card) h2{margin-bottom:10px}
dialog:is(.full-board-card,.undo-prompt-card) .tool-hero svg{width:32px;height:32px;margin:12px}
dialog:is(.full-board-card,.undo-prompt-card) form>details{font-size:11px;text-align:center;margin:0}
dialog:is(.full-board-card,.undo-prompt-card) form>details summary{font-size:11px;min-height:44px;padding:12px 0;color:#adc0d6}
.playing .game-tools .action-name{font-weight:700}
@media(min-height:651px){.daily-prompt-card .daily-hero{margin:16px 0}.daily-prompt-card .daily-hero .diamond-gem{height:66px}.daily-prompt-card .daily-reset-note{margin:12px 0 0;line-height:1.3}.daily-prompt-card #modal-actions{margin-top:18px}.daily-prompt-card #modal-actions button:last-child{min-height:44px}}
.playing .game{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);min-width:0}.playing .game>*{min-width:0}.game-tools{grid-template-columns:repeat(2,minmax(0,1fr));min-width:0}
.large-text.playing .scorebar{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(65px,1.25fr);padding-right:100px;gap:5px;width:100%}.large-text.playing .diamond-wallet{min-width:0;width:100%;padding:3px 5px}.large-text.playing .game-tools #discard-next,.large-text.playing .game-tools #reward-undo{min-width:0;width:100%;font-size:15px}.large-text.playing .game-tools small{white-space:normal;font-size:10px}
.modal-footer-details{flex:none;font-size:11px;text-align:center;margin:0}.modal-footer-details details{font-size:11px;text-align:left}.modal-footer-details summary{font-size:11px;line-height:1.2;min-height:44px;padding:12px 0;text-align:center;color:#adc0d6}.modal-footer-details p{font-size:12px;line-height:1.4;margin:8px 0}
@media(min-width:560px) and (max-height:500px){.playing .game{grid-template-columns:minmax(0,45%) minmax(0,1fr)}.modal-footer-details{grid-column:2;grid-row:3;max-height:44px;overflow:auto}dialog:is(.wallet-card,.tools-card,.reward-card,.daily-prompt-card) form{grid-template-rows:44px minmax(0,1fr) 44px}}
.daily-prompt-card #modal-actions button:last-of-type{background:transparent!important;border:0;box-shadow:none;color:#adc0d6;min-height:44px}

/* Approved block-matched controls only. Paint declarations never change
   geometry, action order, labels, state, native policy or numbered blocks.
   Noninteractive panels, dialog shells, day cells and heroes remain original.
   Every generic theme selector is restricted to visible controls. Classic/Lab
   board hit areas and guided-practice lanes are outside this positive scope
   in every state, preserving their original overlays and numbered blocks. */
:root{
 --control-green:#00c66a;--control-blue:#4799ec;--control-cyan:#08afe0;
 /* 12% white tint of block violet #6875df for small-label contrast. */
 --control-violet:#7a86e3;--control-orange:#ff8808;--control-ink:#091a2d;
 --control-bevel:inset 0 2px 1px #ffffff4d,inset 0 -3px 0 #00000016,inset 2px 0 1px #ffffff16,inset -2px 0 1px #0000000c,0 2px 0 #06152866;
 --control-light:linear-gradient(180deg,#ffffff22 0%,#ffffff06 32%,#00000006 100%);
}
/* Variables carry semantic roles; important paint wins legacy ID/hover rules
   without adding markup or touching any action/state logic. */
body :where(button:not(.soft-block):where(header *,#home *,#modal-actions *,dialog .close,.pause-links *,.wallet-row *,.game-tools *,#diamond-wallet,#goal-open,#feature-tip-dismiss)){
 --control-fill:var(--control-blue);
 background:var(--control-light),var(--control-fill)!important;
 color:var(--control-ink)!important;border-color:#ffffff55!important;
 box-shadow:var(--control-bevel)!important;text-shadow:none;
}
body .primary,body #wallet-claim,
body .daily-prompt-card #modal-actions button:first-child,
body .block-card #modal-actions button:not(.secondary),
body .full-board-card #modal-actions button:first-child,
body dialog:has(#pause-progress) #modal-actions button:first-child{
 --control-fill:var(--control-green);
}
body #wallet-watch,body #modal-actions .diamond-video,
body dialog:is(.undo-prompt-card,.full-board-card) #modal-actions button:nth-child(2){
 --control-fill:var(--control-cyan);
}
body.playing .game-tools #reward-undo,
body .undo-prompt-card #modal-actions button:first-child{--control-fill:var(--control-violet)}
body.playing .game-tools #discard-next,
body .discard-card #modal-actions button:first-child{--control-fill:var(--control-orange)}
/* Child labels follow the readable ink of their control, including small cost
   captions and the goal/wallet HUD. No numbered block descendants are painted. */
body button:not(.soft-block):where(header *,#home *,#modal-actions *,dialog .close,.pause-links *,.wallet-row *,.game-tools *,#diamond-wallet,#goal-open,#feature-tip-dismiss) :is(small,span,strong,b,i):not(.soft-block),
body.playing .compact-goal #goal-title,body.playing .compact-goal #goal-detail,
body.playing .compact-goal:after{color:inherit!important;text-shadow:none}
body.playing .compact-goal{color:var(--control-ink)!important}
/* No new motion, transform, target-size or focus-outline geometry changes. */
body button:not(.soft-block):where(header *,#home *,#modal-actions *,dialog .close,.pause-links *,.wallet-row *,.game-tools *,#diamond-wallet,#goal-open,#feature-tip-dismiss):hover:not(:disabled){filter:brightness(1.08)}
body button:not(.soft-block):where(header *,#home *,#modal-actions *,dialog .close,.pause-links *,.wallet-row *,.game-tools *,#diamond-wallet,#goal-open,#feature-tip-dismiss):active:not(:disabled){filter:brightness(.96);box-shadow:inset 0 2px 3px #06152866,inset 0 -1px #ffffff26!important}
body button:not(.soft-block):where(header *,#home *,#modal-actions *,dialog .close,.pause-links *,.wallet-row *,.game-tools *,#diamond-wallet,#goal-open,#feature-tip-dismiss):focus-visible,body summary:focus-visible,body input:focus-visible{outline-color:#ffc008}
/* Readable, subdued disabled surfaces. Important foreground covers ID-based
   tool rules; inherited captions remain readable, without enabled bevels. */
body button:not(.soft-block):where(header *,#home *,#modal-actions *,dialog .close,.pause-links *,.wallet-row *,.game-tools *,#diamond-wallet,#goal-open,#feature-tip-dismiss):disabled{
 opacity:1!important;background:linear-gradient(180deg,#ffffff09,transparent),#344459!important;
 color:#c7d5e4!important;border-color:#62748b!important;
 box-shadow:inset 0 1px #ffffff26!important;filter:none;text-shadow:none;
}
body #wallet-claim:disabled{
 background:linear-gradient(180deg,#ffffff09,transparent),#245147!important;
 color:#daf6e9!important;border-color:#528577!important;
}
@media(forced-colors:active){
 body button:not(.soft-block):where(header *,#home *,#modal-actions *,dialog .close,.pause-links *,.wallet-row *,.game-tools *,#diamond-wallet,#goal-open,#feature-tip-dismiss){
  forced-color-adjust:auto;background:Canvas!important;color:CanvasText!important;
  border-color:ButtonText!important;box-shadow:none!important;filter:none;
 }
 body button:not(.soft-block):where(header *,#home *,#modal-actions *,dialog .close,.pause-links *,.wallet-row *,.game-tools *,#diamond-wallet,#goal-open,#feature-tip-dismiss):disabled{background:Canvas!important;color:GrayText!important;box-shadow:none!important}
}

/* Warm arcade: cream sculpted surfaces, peach light, recessed teal playfield.
   Scoped controls deliberately exclude transparent board and practice lanes. */
:root{color-scheme:light;--bg:#ffdbb6;--ink:#321d35;--muted:#745647;--accent:#096d56;--control-green:#20d568;--control-cyan:#13cce4;--control-violet:#ad50bd;--control-orange:#ff7050;--control-blue:#ffe9cc;--control-ink:#321d35;--control-light:linear-gradient(150deg,#ffffff44,transparent 50%,#00000008);--control-bevel:inset 0 2px 1px #fff9,inset 0 -3px 1px #703b3b30,0 3px 0 #985e3533,0 5px 8px #8c4d2930}
html,body,body.playing{background:radial-gradient(ellipse at 50% 35%,#fff0d7 0,#ffddb9 65%,#ffd0a9 100%);color:var(--ink)}
body{font-family:'Nunito',ui-rounded,'Arial Rounded MT Bold',system-ui,sans-serif;font-weight:650}
body::before{content:'';position:fixed;inset:0;pointer-events:none;background:radial-gradient(closest-side,#f5b78755 90%,transparent) 2% 2%/24px 24px no-repeat,radial-gradient(closest-side,#f5b78755 90%,transparent) 98% 98%/30px 30px no-repeat;z-index:-1}
body.playing{padding-top:max(10px,env(safe-area-inset-top))}
.playing main{max-height:calc(min(100vw - 24px,520px)*1.2 + 220px)}
.playing header{top:max(22px,env(safe-area-inset-top));right:max(12px,calc((100vw - 520px)/2));gap:6px}
.playing header button{border-radius:13px!important;font-weight:900;font-size:24px!important}
.playing .game{grid-template-columns:minmax(0,1fr) 116px;grid-template-rows:78px 58px 16px minmax(0,1fr) 54px;gap:9px 10px}
.playing .scorebar,.large-text.playing .scorebar{display:grid;grid-template-columns:94px minmax(0,1fr) 94px;grid-template-rows:48px 22px;padding:0;gap:0 4px;align-items:center;text-align:center}
.playing .scorebar>.score:not(.best){grid-column:2;grid-row:1;align-self:end}
.playing .scorebar>.best{grid-column:2;grid-row:2;text-align:center;display:flex;gap:4px;align-items:center;justify-content:center;border-radius:20px;background:#e5b68b77;margin:0;white-space:nowrap}
.playing .scorebar>.score>strong{font-size:clamp(24px,8.7vw,40px);line-height:1;font-weight:950;letter-spacing:-1px}
.playing .scorebar>.score>span:first-child{font-size:12px;letter-spacing:.5px;color:var(--ink);margin:0;line-height:1.1;font-weight:900}
.playing .scorebar>.best>strong{font-size:14px;letter-spacing:0;color:var(--ink);line-height:1.3}.playing .scorebar>.best>span:first-child{font-size:12px;letter-spacing:0;text-transform:capitalize}
.playing .diamond-wallet,.large-text.playing .diamond-wallet{grid-column:1;grid-row:1/3;width:88px;height:44px;min-height:44px;min-width:0;display:flex;align-items:center;justify-content:center;gap:4px;padding:4px 7px;border:2px solid #fff2d9!important;border-radius:24px;box-shadow:inset 0 0 0 2px #e9c8a6, -5px 1px 0 2px #a34eae,0 5px 7px #995c3d55!important;margin-left:5px}
.playing .diamond-wallet strong{font-size:24px;letter-spacing:0}.playing .diamond-wallet>span{font-size:22px;margin:0}.playing .diamond-wallet small{display:none}.playing .diamond-wallet i{color:#9a1b55!important;top:-11px;right:-3px}
.playing #gain{top:-4px;left:auto;right:0;color:#07573e;background:#fff2d9;font-size:11px;border-radius:8px}
.playing .compact-goal{background:transparent!important;box-shadow:none!important;border:0!important;padding:0 8px 0 4px;grid-template-columns:auto 1fr;grid-template-rows:auto 10px;gap:5px 8px;align-content:center;border-radius:0}
.playing .compact-goal #goal-title{grid-row:1;grid-column:1;font-size:13px;letter-spacing:0;font-weight:900;white-space:nowrap}
.playing .compact-goal #goal-detail{grid-row:1;grid-column:2;font-size:17px;line-height:1.2;font-weight:900;white-space:nowrap;gap:4px;justify-content:flex-end}
.playing .compact-goal #goal-detail:before{content:'Goal';font-size:14px}.playing .compact-goal:after{display:none}
.playing .compact-goal progress{grid-row:2;grid-column:1/-1;height:10px;border-radius:10px;margin:0;background:#d7ae88;box-shadow:inset 0 2px 4px #8c583b66}
.playing .compact-goal progress::-webkit-progress-bar{background:#d7ae88;border-radius:10px;box-shadow:inset 0 2px 4px #8c583b66}
.playing .compact-goal progress::-webkit-progress-value{border-radius:10px;background:linear-gradient(#48efb8,#00be8e);box-shadow:inset 0 1px #eaffdb,0 2px 3px #096c4e66}.playing .compact-goal progress::-moz-progress-bar{background:#00be8e;border-radius:10px}
.playing .next-group{border-left:1px solid #a87a59;padding-left:10px;gap:5px;justify-content:space-between}.playing .next-group .eyebrow{font-size:13px;letter-spacing:0;color:var(--ink);font-weight:900}.playing .next-group .eyebrow:after{display:none}.playing .next-group strong{width:54px;height:54px;border-radius:13px;font-size:30px}
.lane-arrows{color:#9c7352;font-weight:900;line-height:16px;font-size:24px}
.playing .board-wrap{padding:7px;border:2px solid #fff6df;border-radius:23px;background:#f9e8c9;box-shadow:inset 0 2px 2px #fff, inset 0 -3px 3px #d6ae79,0 4px 0 #bc91646b,0 8px 14px #925a3540}
#board{border-radius:15px;background:linear-gradient(140deg,#216f70,#247e7b);box-shadow:0 0 0 3px #267473,inset 0 3px 6px #103f4266;--gap:5px}
.slot{background:linear-gradient(135deg,#378f8d,#368c89 70%,#2d8581);border:1px solid #63aaa699;border-radius:12px;box-shadow:inset 0 1px 2px #b2fff318,0 2px 2px #124d5055}
#column-controls{inset:9px}#column-controls button,#column-controls button.chosen,#column-controls button:hover,#column-controls button:disabled{background:transparent!important;box-shadow:none!important;border:0!important;color:transparent!important}
#ghost{background:#d0ffef0c;color:#eaffdc;border-color:#c8f3d099}
#board:before{background:#e0fff407}.tile.soft-block{border-radius:13px}.tile.soft-block:before,#next.soft-block:before{inset:2px;border-color:#ffffff20;border-top-color:#ffffff78}
.playing .game-tools{gap:12px}.playing .game-tools .board-action{border-radius:19px!important;border:1px solid #fff5!important;gap:1px}.playing .game-tools .action-name{font-size:20px;font-weight:900;line-height:1.2}.playing .game-tools .action-name>span{display:inline-block;margin-right:4px}.playing .game-tools #discard-next small,.playing .game-tools #reward-undo small{font-size:11px;font-weight:800;letter-spacing:0}
body.playing .game-tools #discard-next,body .discard-card #modal-actions button:first-child,body dialog:has(#pause-progress) #modal-actions button:last-child,body .full-board-card #modal-actions button:nth-child(3){--control-fill:#ff7353}
body.playing .game-tools #reward-undo,body .undo-prompt-card #modal-actions button:first-child{--control-fill:#b25bc5}
body :where(button:not(.soft-block):where(header *,#home *,#modal-actions *,dialog .close,.pause-links *,.wallet-row *,.game-tools *,#diamond-wallet,#goal-open,#feature-tip-dismiss)){font-weight:850}
body button:not(.soft-block):where(header *,#home *,#modal-actions *,dialog .close,.pause-links *,.wallet-row *,.game-tools *,#diamond-wallet,#goal-open,#feature-tip-dismiss):disabled{background:linear-gradient(#f5e7d5,#dfc9b4)!important;color:#755c58!important;border-color:#baa18e!important;box-shadow:inset 0 1px #fff9!important}
body #wallet-claim:disabled{background:#e4d9bb!important;color:#5e6250!important}
dialog,dialog.milestone-card,dialog:is(.daily-prompt-card,.balance-card,.full-board-card,.undo-prompt-card){background:radial-gradient(ellipse at 35% 25%,#fff1dd,#ffe3c8);border:3px solid #fff6e5;border-radius:30px;box-shadow:inset 0 0 0 3px #f6d8b9,0 6px 0 #d1ad8855,0 16px 35px #58372255;color:var(--ink);padding:18px}
dialog::backdrop,dialog:is(.daily-prompt-card,.balance-card,.full-board-card,.undo-prompt-card)::backdrop{background:#39261bb0;backdrop-filter:none}
dialog form{overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;max-height:calc(100dvh - 68px)}
.modal-content{overflow:visible;flex:0 0 auto;min-height:0}dialog h2{font-weight:950;letter-spacing:-.025em}#modal-body{color:#634635}#modal-kicker,.eyebrow{color:#553342}
dialog .close{border-radius:14px;border:1px solid #fff6;min-height:44px;min-width:44px;font-size:28px!important;z-index:2}
#modal-actions button{border-radius:18px;font-size:18px;min-height:48px;padding:11px;font-weight:900}#modal-actions{gap:10px}
.pause-links{border-radius:18px;border:1px solid #fff4dc;background:#ffedda;box-shadow:inset 0 2px 2px #fff9,0 3px 6px #9c674144;padding:0 10px}
body .pause-links button{background:transparent!important;box-shadow:none!important;border-radius:0;border-bottom:1px solid #c8a07d!important;min-height:48px;font-weight:850;padding:8px 0}.pause-links button:last-child{border-bottom:0!important}.pause-links button span,.pause-links button i{color:#4f3145}
.chain-wallet,.balance-card .chain-wallet,.wallet-row{background:linear-gradient(135deg,#ffefdc,#f8d9bc);border:1px solid #fff4df;box-shadow:inset 0 2px #fff8,0 3px 5px #a16b4244;border-radius:18px;color:var(--ink)}
.balance-card .chain-wallet strong,.chain-wallet strong,.chain-wallet>span,.chain-wallet small,.wallet-row b,.wallet-row small,.wallet-tools-list b,.wallet-tools-list span,.wallet-tools-list small,.balance-card .wallet-row:nth-of-type(2) small{color:var(--ink)}
.wallet-row .wallet-icon{background:#cce5b8}.balance-card .wallet-row:nth-of-type(3) .wallet-icon{background:#b8e1dd;color:#352337}.wallet-row button{border-radius:13px}
.wallet-tools-list>div{border-color:#bb9278}.balance-card .chain-wallet{height:auto;min-height:80px;padding:12px 18px}.balance-card .wallet-row{min-height:70px;padding:10px;gap:8px;margin:10px 0}.balance-card .wallet-row b{font-size:16px}.balance-card .wallet-tools-list>div{min-height:44px;padding:9px 0}
.modal-footer-details{margin-top:12px;flex:0 0 auto;color:#634635;max-height:none;overflow:visible}.modal-footer-details summary,.balance-card details summary{font-size:15px;font-weight:900;color:var(--ink);padding:12px;text-align:left;border:1px solid #fff5;border-radius:14px;background:#f0d4b5;box-shadow:inset 0 2px 3px #b68a5c55;min-height:44px}.modal-footer-details p{font-size:13px}.modal-footer-details details[open]{padding-bottom:8px}.modal-footer-details details[open] summary{margin-bottom:10px}
.daily-hero strong,.daily-hero small,.daily-reset-note,.daily-prompt-card #modal-kicker,.tool-balance{color:#4c1931}.daily-prompt-card h2{font-size:42px}.daily-hero .diamond-gem{filter:drop-shadow(0 5px 4px #a2704d55);width:100px;height:80px}.daily-hero strong{font-size:48px}.daily-hero small{font-size:22px;font-weight:900}.daily-prompt-card .daily-day{background:#ffebd3;color:#4c1931;border:1px solid #fff1de;box-shadow:inset 0 2px #fff7,0 3px 4px #98664155;border-radius:12px}.daily-prompt-card .daily-day b{color:inherit}.daily-prompt-card .daily-day.current{background:linear-gradient(#a2ffb7,#55dc7e);color:#164d2b}.daily-reset-note{font-weight:800}.daily-prompt-card #modal-actions button:last-of-type{background:var(--control-light),#ffe9cc!important;color:var(--ink);box-shadow:var(--control-bevel)!important}
.tool-hero{width:88px;height:88px;border-radius:24px;background:linear-gradient(140deg,#dc8ae3,#8b299f);box-shadow:inset 0 2px 2px #fff8,inset 0 -4px #65287966,0 5px 9px #87582c44;color:#fff2d8;display:grid;place-items:center;margin-bottom:14px}dialog:is(.full-board-card,.undo-prompt-card) .tool-hero svg{width:56px;height:56px;margin:0;filter:drop-shadow(0 3px 1px #50274788)}
.full-board-card .tool-hero{grid-template-columns:repeat(2,34px);grid-template-rows:repeat(2,34px);gap:2px;background:transparent;box-shadow:none}.full-board-card .tool-hero span{border-radius:10px;background:linear-gradient(140deg,#dc8ae3,#9d23bf);box-shadow:inset 0 2px #fff7,inset 0 -3px #0002,0 3px 4px #784c2c44}.full-board-card .tool-hero span:nth-child(2){background:linear-gradient(140deg,#68eefa,#00b5d3)}.full-board-card .tool-hero span:nth-child(3){background:linear-gradient(140deg,#ffe96d,#ffbc00)}.full-board-card .tool-hero span:nth-child(4){background:linear-gradient(140deg,#6cf6c4,#00b49e)}
.tool-balance{display:inline-block;border-radius:30px;background:#efd0ae;padding:6px 16px;font-size:17px}.tool-balance:before{content:'◆ ';color:#008da7}.full-board-card #modal-actions button:nth-child(3){margin-top:0}
.block-card .block-hero{height:200px}.block-card .crowned-block{transform:none}.block-card .block-crown{transform:none}.block-card .crowned-block>small{display:none}.block-card #modal-kicker{color:#632f40}.block-card .unlocked-label{font-weight:900;color:#59273b!important;font-size:19px!important}.block-card #modal-body .diamond-offer{border:0;border-radius:30px;background:#efcfb1;color:#512539;font-size:24px}.block-card #modal-body .block-subcopy{color:#634635}.block-card .block-hero:before{background:repeating-conic-gradient(#ffd55655 0 12deg,transparent 12deg 30deg)}
.block-chain-item{background:#ffe9d0;border-color:#d1ab82;color:#604435}.block-chain-item.unlocked{background:#d3efd1}.block-chain-item.current{background:#ffe0a0}.milestone-stats,.telemetry-choices label,.challenge-card,.lab-card{background:#ffe7cb;border-color:#ceaa83}.milestone-stats b,.milestone-stats span,.milestone-card #modal-body .milestone-message,.telemetry-choices small,.lab-card small,.home-copy>p:not(.eyebrow),.quiet,.brand{color:#6c4a3f}
summary{color:var(--ink)}#board-cue{background:#fff0d9;color:#303c32;border-color:#ffffff;box-shadow:0 3px 8px #184b4b44}#board-cue[data-kind=full]{color:#743522;border-color:#efbb86}#storage-note{background:#fff0d9!important;color:#713d23!important}
/* Turn effects retain production1.1.8 timings defined above. */
@media(prefers-reduced-motion:no-preference){.milestone-motion .crowned-block{animation:warm-block-pop 800ms cubic-bezier(.2,.75,.3,1) both}.milestone-motion .milestone-confetti i{animation-duration:650ms;animation-delay:var(--delay)}}
@keyframes warm-block-pop{0%{transform:translateY(12px) scale(.85);opacity:.5}45%{transform:translateY(-3px) scale(1.04);opacity:1}100%{transform:none;opacity:1}}
@media(max-height:650px){.playing header{top:max(12px,env(safe-area-inset-top))}.playing .game{grid-template-rows:60px 48px 12px minmax(0,1fr) 44px;gap:5px 8px}.playing .scorebar,.large-text.playing .scorebar{grid-template-rows:38px 18px}.playing .scorebar>.score>strong{font-size:29px}.playing .scorebar>.score>span:first-child{font-size:10px}.playing .scorebar>.best>strong{font-size:12px}.playing .scorebar>.best>span:first-child{font-size:10px}.playing .next-group strong{width:44px;height:44px;font-size:27px}.playing .game-tools .action-name{font-size:17px}.playing .game-tools #discard-next small,.playing .game-tools #reward-undo small{font-size:10px}.tool-hero{width:64px;height:64px;border-radius:18px}.daily-prompt-card h2{font-size:32px}.daily-hero .diamond-gem{height:56px}.daily-hero strong{font-size:36px}.block-card .block-hero{height:145px}}
@media(max-width:350px){.playing .game{grid-template-columns:minmax(0,1fr) 94px}.playing .scorebar,.large-text.playing .scorebar{grid-template-columns:74px minmax(0,1fr) 94px}.playing .diamond-wallet,.large-text.playing .diamond-wallet{width:67px;padding:3px;gap:2px}.playing .diamond-wallet strong{font-size:20px}.playing .diamond-wallet>span{font-size:17px}.playing .compact-goal #goal-title{font-size:11px}.playing .compact-goal #goal-detail{font-size:14px}.playing .compact-goal #goal-detail:before{font-size:11px}.playing .next-group{padding-left:6px}.playing .next-group .eyebrow{font-size:11px}.playing .game-tools .action-name>span{display:none}}
@media(min-width:560px) and (max-height:500px){.playing header{left:calc(45% - 94px);right:auto;top:16px}.playing main{max-height:none}.playing .game{grid-template-areas:'score lanes' 'goal board' 'next board' 'tools board';grid-template-columns:minmax(0,45%) minmax(0,1fr);grid-template-rows:70px 48px 48px minmax(44px,1fr);gap:5px 12px}.playing .board-stage{grid-row:2/5}.playing .scorebar{grid-template-columns:70px minmax(0,1fr) 94px}.playing .diamond-wallet{width:65px}.playing .scorebar>.score>strong{font-size:24px}.playing .compact-goal{height:48px}.playing .next-group{justify-content:flex-end;border:0}.playing .game-tools{align-self:start}dialog form,dialog:is(.wallet-card,.tools-card,.reward-card,.daily-prompt-card,.block-card,.discard-card) form{display:flex;height:auto;max-height:calc(100dvh - 62px);overflow:auto}.modal-footer-details{max-height:none}.daily-prompt-card .close{align-self:flex-end}}
@media(forced-colors:active){body,body.playing,dialog,dialog:is(.daily-prompt-card,.balance-card,.full-board-card,.undo-prompt-card){background:Canvas;color:CanvasText}.slot{border:1px solid CanvasText}.modal-footer-details summary,.tool-balance,.chain-wallet,.wallet-row,.daily-day{background:Canvas!important;color:CanvasText!important;border:1px solid CanvasText}.playing #goal-open{background:Canvas!important;color:CanvasText!important}body button:focus-visible,body summary:focus-visible{outline:3px solid Highlight}}

/* Approved motion: one-shot decoration only, never input or transaction gating. */
.claim-gem-flight{position:fixed;width:24px;height:24px;z-index:20;pointer-events:none;contain:layout style;}
.claim-gem-flight .diamond-gem{width:100%;height:100%;}
.milestone-motion .milestone-confetti i{animation-duration:680ms;}

.reduce-motion .claim-gem-flight,.reduce-motion .milestone-confetti{display:none!important;}
.reduce-motion .milestone-motion *,.reduce-motion .tile{animation:none!important;transition:none!important;}
@media(prefers-reduced-motion:reduce){.claim-gem-flight{display:none!important;}}
/* Diffuse upper-left light, rounded mass and a quiet inset rim. */
.soft-block,#modal-body .soft-block,.next-group strong.soft-block,.tile.soft-block{background-image:radial-gradient(ellipse at 23% 0%,#ffffff45,transparent 65%),linear-gradient(180deg,#ffffff0c 45%,#0000000c);box-shadow:inset 0 2px 2px #ffffff77,inset 0 -5px 2px #00000024,inset 2px 0 3px #ffffff20,inset -2px 0 3px #00000012,0 4px 3px #103f4b66;font-weight:950}
.tile.soft-block{border-radius:14px;font-size:clamp(1.5rem,7.3vw,2.2rem)}.tile.soft-block[data-length="4"]{font-size:clamp(1.2rem,5.6vw,1.8rem)}.tile.soft-block:before,#next.soft-block:before{border-bottom-color:transparent;border-left-color:#ffffff25;border-right-color:#ffffff12;inset:3px}
.playing main{max-height:calc(min(100vw - 24px,520px)*1.2 + 250px)}
@media(max-height:650px){.playing main{max-height:none}}
@media(min-width:560px) and (max-height:500px){.playing main{max-height:none}}
@media(forced-colors:active){.soft-block,#modal-body .soft-block,.next-group strong.soft-block,.tile.soft-block{background-image:none;box-shadow:none}}
/* Reference fidelity refinement: compact subordinate Best and diffuse material. */
.playing .scorebar>.best{justify-self:center;width:max-content;max-width:100%;min-width:106px;padding:1px 12px}
.soft-block,#modal-body .soft-block,.next-group strong.soft-block,.tile.soft-block{background-image:radial-gradient(ellipse at 18% 0%,#ffffff55,transparent 72%),linear-gradient(180deg,transparent 52%,#0000000d);box-shadow:inset 0 3px 4px #ffffff66,inset 0 -5px 3px #0000002c,inset 3px 0 5px #ffffff1f,inset -2px 0 4px #00000013,0 4px 4px #103f4b70}
.tile.soft-block:before,#next.soft-block:before{border-top-color:#ffffff38;border-left-color:#ffffff14;border-right-color:transparent;border-bottom-color:transparent}
.playing .board-wrap{box-shadow:inset 0 3px 4px #ffffffdd,inset 0 -4px 5px #cba27388,0 4px 2px #bc91646b,0 8px 14px #925a3540}
#board{box-shadow:0 0 0 3px #267473,inset 0 4px 7px #103f4270}.slot{border-color:#68aaa75c;box-shadow:inset 1px 2px 3px #b2fff314,0 2px 3px #124d505c}
@media(forced-colors:active){.soft-block,#modal-body .soft-block,.next-group strong.soft-block,.tile.soft-block{background-image:none;box-shadow:none}}
/* Empty decorative grid children must fill their tracks, not shrink to zero. */
.full-board-card .tool-hero{place-items:stretch}.full-board-card .tool-hero span{width:100%;height:100%}
@media(max-height:650px){.full-board-card .tool-hero{grid-template-columns:repeat(2,28px);grid-template-rows:repeat(2,28px)}}
/* Keep terminal and high-value goal labels inside their real HUD cell. Full
   exact values remain in the goal accessible label, tooltip and progress. */
.playing .compact-goal{grid-template-columns:minmax(0,1fr) auto;min-width:0}
.playing .compact-goal #goal-title{min-width:0;overflow:hidden;text-overflow:ellipsis}
.playing .compact-goal #goal-detail{min-width:0;max-width:100%}
.playing .compact-goal progress{min-width:0;width:100%}
/* Disabled controls remain clearly readable while retaining muted fills. */
body button:not(.soft-block):where(header *,#home *,#modal-actions *,dialog .close,.pause-links *,.wallet-row *,.game-tools *,#diamond-wallet,#goal-open,#feature-tip-dismiss):disabled{color:#59413e!important}
@media(forced-colors:active){body button:not(.soft-block):where(header *,#home *,#modal-actions *,dialog .close,.pause-links *,.wallet-row *,.game-tools *,#diamond-wallet,#goal-open,#feature-tip-dismiss):disabled{color:GrayText!important}}
/* Every dismissible popup has the same reachable top-right X. Native video or
   checkpoint work disables it; presentation dismissal never cancels a reward. */
dialog .close,dialog:is(.full-board-card,.undo-prompt-card,.daily-prompt-card,.balance-card,.block-card,.discard-card) .close{display:grid;place-items:center;position:sticky;top:0;right:auto;align-self:flex-end;justify-self:end;flex:0 0 44px;width:44px;height:44px;min-width:44px;min-height:44px;margin:0 0 6px auto;z-index:5}
.full-board-card #modal-actions button:last-child{--control-fill:#ff7353}
/* A turn temporarily locks input, not the tool's visual availability. Keep the
   resting paint throughout drop/settle/checkpoint; persistent failures retain
   the normal muted disabled treatment once the turn finishes. */
body.playing.turn-in-progress .game-tools button[data-turn-was-disabled="false"]:disabled{background:var(--control-light),var(--control-fill)!important;color:var(--control-ink)!important;border-color:#ffffff55!important;box-shadow:var(--control-bevel)!important;opacity:1!important;transition:none!important;filter:none}
@media(forced-colors:active){body.playing.turn-in-progress .game-tools button[data-turn-was-disabled="false"]:disabled{background:Canvas!important;color:ButtonText!important;box-shadow:none!important}}
/* QA29 short-viewport geometry: restore its 330px board stage and 14px rim
   at 320x518 by reclaiming 14px from HUD, not by hiding any cells/control. */
@media(max-height:650px){.playing .game{grid-template-rows:46px 48px 12px minmax(0,1fr) 44px}.playing .scorebar,.large-text.playing .scorebar{grid-template-rows:28px 18px}.playing .scorebar>.score>strong{font-size:24px}.playing .scorebar>.score>span:first-child{font-size:9px}.playing .board-wrap{padding:6px;border-width:1px}#column-controls{inset:7px}}
@media(min-width:560px) and (max-height:500px){.playing .game{grid-template-rows:70px 48px 48px minmax(44px,1fr)}}
/* Native safe-area replay (30px top/48px bottom) showed a height-bound
   field at 411x737. Reclaim HUD spacing, never the native safe inset. */
@media(min-width:351px) and (max-width:559px) and (min-height:651px) and (max-height:760px){.playing .game{grid-template-rows:60px 52px 12px minmax(0,1fr) 48px;gap:6px 10px}.playing .scorebar,.large-text.playing .scorebar{grid-template-rows:38px 18px}.playing .scorebar>.score>strong{font-size:29px}.playing .scorebar>.score>span:first-child{font-size:10px}.playing .scorebar>.best>strong{font-size:12px}.playing .scorebar>.best>span:first-child{font-size:10px}.playing .next-group strong{width:48px;height:48px;font-size:28px}.playing .game-tools .action-name{font-size:18px}.playing .game-tools #discard-next small,.playing .game-tools #reward-undo small{font-size:10px}}
@media(max-height:650px) and (max-width:559px){body.playing{padding-top:max(12px,env(safe-area-inset-top))}.playing .game{grid-template-rows:44px 48px 12px minmax(0,1fr) 44px}.playing .scorebar,.large-text.playing .scorebar{grid-template-rows:26px 18px}}
@media(max-height:650px){.playing .scorebar>.score.best>strong{font-size:12px;line-height:1.3}.playing .scorebar>.score.best>span:first-child{font-size:10px}}
/* Drop, merge and gravity replay restored from production1.1.8/code20. */

/* Keep the landing-preview line box inside height-fitted cells. */
#ghost{line-height:1}

/* Approved separate recovery tool: muted artwork does not imply disabled semantics. */
.playing .game-tools #clear-first-row{grid-column:1;width:100%;min-width:0;background:linear-gradient(#f5e7d5,#dfc9b4)!important;color:#59413e!important;border-color:#fff5!important;box-shadow:inset 0 1px #fff9!important}
.playing .game-tools #clear-first-row small{font-size:11px;font-weight:800;letter-spacing:0}
.playing .game-tools #clear-first-row:focus-visible{outline:3px solid #4b205b!important;outline-offset:3px}
.playing .game-tools #clear-first-row:active:not(:disabled){transform:translateY(1px);filter:brightness(.94)!important}
.playing.has-clear-first-row .game{grid-template-rows:60px 52px 12px minmax(0,1fr) 108px;gap:6px 10px}
.playing.has-clear-first-row .game-tools{grid-template-rows:48px 48px;gap:12px}
dialog.full-board-card .keep-score{font-weight:800;font-size:19px;margin:0 0 10px}
.first-row-preview{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px;margin:14px 0 6px}
.first-row-preview span{display:grid;place-items:center;aspect-ratio:1;border-radius:13px;font-size:clamp(17px,6vw,27px);font-weight:950;color:#fff;text-shadow:-1px 0 #183044,1px 0 #183044,0 -1px #183044,0 1px #183044}
.first-row-note{font-size:13px;font-weight:800;margin:0!important}
dialog.full-board-card:has(.first-row-preview) .tool-hero{display:none}
@media(max-height:650px){
 .playing.has-clear-first-row .game{grid-template-rows:44px 48px 12px minmax(0,1fr) 100px;gap:5px 8px}
 .playing.has-clear-first-row .game-tools{grid-template-rows:46px 46px;gap:8px}
 .playing .game-tools #clear-first-row small{font-size:10px}
}
.large-text.playing .game-tools #clear-first-row{font-size:15px}
.large-text.playing .game-tools #clear-first-row small{font-size:10px}
@media(min-width:560px) and (max-height:500px){
 .playing.has-clear-first-row .game{grid-template-rows:70px 48px 48px minmax(100px,1fr);gap:5px 12px}
}
@media(forced-colors:active){.playing .game-tools #clear-first-row{background:ButtonFace!important;color:ButtonText!important;border-color:ButtonText!important}}

/* Normalize legacy ID-specific metrics only for this approved full-board pair. */
.playing.has-clear-first-row .game-tools :is(#discard-next,#clear-first-row){height:48px;min-height:48px;padding:3px 6px;line-height:1.2;font-size:18px;margin:0}
.playing.has-clear-first-row .game-tools :is(#discard-next,#clear-first-row) .action-name{font-size:inherit}
.playing.has-clear-first-row .game-tools :is(#discard-next,#clear-first-row) small{font-size:11px;line-height:1.2;letter-spacing:0;margin:0;font-weight:800}
@media(max-height:650px){.playing.has-clear-first-row .game-tools :is(#discard-next,#clear-first-row){height:46px;min-height:46px;font-size:15px}.playing.has-clear-first-row .game-tools :is(#discard-next,#clear-first-row) small{font-size:10px}}
.large-text.playing.has-clear-first-row .game-tools :is(#discard-next,#clear-first-row){font-size:15px}
.large-text.playing.has-clear-first-row .game-tools :is(#discard-next,#clear-first-row) small{font-size:10px}

/* Web install stays on Home/game-over; never cover the active Next tile. */
.playing header #install{display:none}
