:root{--frame-max-width: 430px;--ol-1: 2px;--ol-2: 3px;--ol-3: 4px;--r-sm: 8px;--r-md: 12px;--r-lg: 16px;--r-pill: 999px;--ease-pop: cubic-bezier(.34, 1.56, .64, 1);--ease-out: cubic-bezier(.22, 1, .36, 1);--dur-fast: .12s;--dur-med: .24s;--c-primary: #ffa726;--c-primary-hi: #ffc95c;--c-primary-edge: #e07800;--c-positive: #2ee05c;--c-gold-hi: #fff3cf;--c-gold-face: #ffdf95;--c-bg-page: #cde6f9;--c-bg-app: radial-gradient(118% 72% at 50% 36%, rgba(255, 255, 255, .55), rgba(255, 255, 255, 0) 58%), url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='150' height='150'%3E%3Cg fill='none' stroke='%23ffffff' stroke-opacity='0.55' stroke-width='4' stroke-linejoin='round'%3E%3Cpolygon points='0,-16 4,-5.5 15.2,-4.9 6.5,2.1 9.4,12.9 0,6.8 -9.4,12.9 -6.5,2.1 -15.2,-4.9 -4,-5.5' transform='translate(32 38) rotate(-14)'/%3E%3Cpolygon points='0,-16 4,-5.5 15.2,-4.9 6.5,2.1 9.4,12.9 0,6.8 -9.4,12.9 -6.5,2.1 -15.2,-4.9 -4,-5.5' transform='translate(110 26) rotate(18) scale(0.7)'/%3E%3Cpolygon points='0,-16 4,-5.5 15.2,-4.9 6.5,2.1 9.4,12.9 0,6.8 -9.4,12.9 -6.5,2.1 -15.2,-4.9 -4,-5.5' transform='translate(80 84) rotate(7) scale(1.15)'/%3E%3Cpolygon points='0,-16 4,-5.5 15.2,-4.9 6.5,2.1 9.4,12.9 0,6.8 -9.4,12.9 -6.5,2.1 -15.2,-4.9 -4,-5.5' transform='translate(28 116) rotate(24) scale(0.75)'/%3E%3Cpolygon points='0,-16 4,-5.5 15.2,-4.9 6.5,2.1 9.4,12.9 0,6.8 -9.4,12.9 -6.5,2.1 -15.2,-4.9 -4,-5.5' transform='translate(122 112) rotate(-20) scale(0.9)'/%3E%3C/g%3E%3C/svg%3E"), linear-gradient(180deg, #e6f4fe, #cbe6f9 58%, #b9dcf5);--c-outline-deep: #16456e;--c-scrim: rgba(18, 48, 78, .45);--c-bar-hi: #5aa7e8;--c-bar: #3b86cf;--c-on-bar: #ffffff;--c-on-bar-sub: #d8ecff;--c-raised-base: #f4faff;--c-raised-edge: #a9c9e4;--c-ink-strong: #163a5c;--c-ink-mid: #587a9a;--c-surface-sunken: #e3eef8}*{margin:0;padding:0;touch-action:manipulation}html,body{height:100%;overflow:hidden;overscroll-behavior:none}body{font-family:Hiragino Maru Gothic ProN,Hiragino Sans,Yu Gothic,sans-serif;background:#1a1a1e;display:flex;flex-direction:column;align-items:center;-webkit-text-size-adjust:100%}#frame{position:relative;width:min(100vw,var(--frame-max-width));flex:0 0 auto;height:100vh;height:100dvh;overflow:hidden;background:var(--c-bg-page);display:flex;flex-direction:column}.btn{position:relative;box-sizing:border-box;overflow:hidden;min-height:48px;border:var(--ol-2) solid var(--c-outline-deep);border-radius:var(--r-md);font-family:inherit;font-weight:900;line-height:1;cursor:pointer;color:var(--btn-ink, var(--c-ink-strong));background:linear-gradient(180deg,var(--btn-hi, #fff),var(--btn-base, #fff));box-shadow:inset 0 -5px 0 var(--btn-edge, rgba(0, 0, 0, .2)),inset 0 2px #ffffff8c;transition:transform var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}.btn:before{content:"";position:absolute;inset:0;border-radius:inherit;background:radial-gradient(circle at var(--glint-x, 15px) var(--glint-y, 13px),rgba(255,255,255,.95) 0 var(--glint-r, 4px),rgba(255,255,255,0) calc(var(--glint-r, 4px) + 1.5px)),linear-gradient(180deg,#ffffff4d,#fff0 45%);pointer-events:none}.btn:active:not(:disabled){transform:translateY(3px);box-shadow:inset 0 -2px 0 var(--btn-edge, rgba(0, 0, 0, .2)),inset 0 2px #ffffff8c}.btn:disabled{opacity:.5;cursor:default}.btn--primary{--btn-base: var(--c-primary);--btn-hi: var(--c-primary-hi);--btn-edge: var(--c-primary-edge);--btn-ink: #fff}.btn--raised{--btn-base: var(--c-raised-base);--btn-hi: #ffffff;--btn-edge: var(--c-raised-edge);--btn-ink: var(--c-outline-deep)}.btn--no-glint:before{content:none}.btn--circle{border-radius:50%;box-shadow:inset 0 0 0 4px var(--btn-edge, rgba(0, 0, 0, .2))}.btn--circle:active:not(:disabled){box-shadow:inset 0 0 0 2px var(--btn-edge, rgba(0, 0, 0, .2))}.pop-text{-webkit-text-stroke:var(--pop-stroke-w, 4px) var(--pop-stroke, var(--c-outline-deep));paint-order:stroke fill}#screen-game{position:relative;display:flex;flex-direction:column;flex:1 1 auto;min-height:0;background:var(--c-bg-app)}#game-header{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 16px 6px}#game-header .btn--circle{width:46px;height:46px;padding:0;font-size:20px;display:flex;align-items:center;justify-content:center}#header-spacer{flex-shrink:0;width:46px;height:46px}#game-title-cols{flex:1 1 auto;display:flex;justify-content:center;gap:30px;text-align:center}#game-title-cols .col-label{font-size:12px;font-weight:900;color:var(--c-ink-mid);letter-spacing:.04em}#game-title-cols .col-value{font-size:22px;font-weight:900;color:var(--c-ink-strong);font-variant-numeric:tabular-nums;line-height:1.15}#game-title-cols .col-value--date{font-size:15px;white-space:nowrap}#game-status{flex-shrink:0;display:flex;justify-content:center;gap:10px;padding:2px 16px 10px}.game-pill{display:flex;align-items:center;gap:7px;padding:6px 16px;border-radius:var(--r-pill);background:#fff;box-shadow:0 2px 5px #12304e24;font-size:17px;font-weight:900;color:var(--c-ink-strong);font-variant-numeric:tabular-nums}.game-pill .pill-glyph{font-size:19px;line-height:1}.game-pill .frac-done{color:#2a9d55}.game-pill .frac-total{color:var(--c-ink-mid)}.life-track{display:inline-flex;gap:3px}.life-track .heart{font-size:19px;line-height:1;transition:filter var(--dur-med) var(--ease-out)}.life-track .heart--lost{filter:grayscale(1) opacity(.35)}#rule-cards{flex-shrink:0;margin:0 16px 10px;padding:9px 8px;border-radius:16px;background:#fff;box-shadow:0 2px 6px #12304e21;display:flex;gap:6px}.rule-card{flex:1 1 0;min-width:0;display:flex;align-items:center;gap:6px;padding:6px 5px;border-radius:10px;background:#eaf4fd}.mini-grid{flex-shrink:0;width:39px;display:grid;grid-template-columns:repeat(3,1fr);gap:1.5px}.mini-cell{aspect-ratio:1;border-radius:2.5px;background:#dfe8f1;position:relative}.mini-cell--tint,.mini-cell--star{background:#f6b9a4}.mini-cell--star:after{content:"⭐";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:9px;line-height:1}.mini-cell--x:before,.mini-cell--x:after{content:"";position:absolute;left:50%;top:50%;width:74%;height:1.6px;border-radius:1px;background:#6b7d8f}.mini-cell--x:before{transform:translate(-50%,-50%) rotate(45deg)}.mini-cell--x:after{transform:translate(-50%,-50%) rotate(-45deg)}.mini-cell--tint.mini-cell--x:before,.mini-cell--tint.mini-cell--x:after{background:#fff}.rule-card .rule-label{font-size:10px;font-weight:900;line-height:1.3;color:var(--c-ink-strong)}#fail-toast{align-self:center;margin:0 16px 8px;padding:8px 16px;border-radius:var(--r-pill);background:#183858eb;color:#fff;font-size:13px;font-weight:900;box-shadow:0 3px 8px #12304e3d;transition:opacity var(--dur-med) var(--ease-out)}#fail-toast.is-hidden{visibility:hidden;opacity:0}#board-wrap{flex:1 1 0;min-height:0;display:flex;align-items:center;justify-content:center;padding:0 16px}#board{--n: 4;--board-outer: calc(min(100vw, var(--frame-max-width)) - 32px) ;width:var(--board-outer);height:var(--board-outer);box-sizing:border-box;--board-inner: calc(var(--board-outer) - 20px);--cell: calc(var(--board-inner) / (1.1 * var(--n) - .1));padding:10px;border-radius:24px;background:#fff;box-shadow:0 3px 10px #12304e1f;display:grid;grid-template-columns:repeat(var(--n),1fr);gap:calc(var(--cell) * .1);touch-action:none;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}.cell{aspect-ratio:1;border-radius:calc(var(--cell) * .14);position:relative;display:flex;align-items:center;justify-content:center;background:var(--cell-fill, #dfe8f1)}.cell--c0{--cell-fill: #2e9e5b}.cell--c1{--cell-fill: #c9a20c}.cell--c2{--cell-fill: #d3689a}.cell--c3{--cell-fill: #f7dc94}.cell--c4{--cell-fill: #f79fd8}.cell--c5{--cell-fill: #8b7fd6}.cell--c6{--cell-fill: #35b0b8}.cell--c7{--cell-fill: #5b8fe0}.cell--c8{--cell-fill: #ef7a55}.cell--c9{--cell-fill: #a8cf5c}.cell .piece{font-size:calc(var(--cell) * .66);line-height:1;pointer-events:none}.cell .piece:empty{display:none}.cell--pop .piece{animation:piece-pop .26s var(--ease-pop)}@keyframes piece-pop{0%{transform:scale(.3)}to{transform:scale(1)}}.cell--x:before,.cell--x:after{content:"";position:absolute;left:50%;top:50%;width:62%;height:calc(var(--cell) * .12);border-radius:999px;background:var(--x-color, #fff)}.cell--x:before{transform:translate(-50%,-50%) rotate(45deg)}.cell--x:after{transform:translate(-50%,-50%) rotate(-45deg)}.cell--xbad{--x-color: #ff7a1a}.cell--flash{box-shadow:inset 0 0 0 999px #ff3c3c29}.cell--boom{animation:cell-boom .46s var(--ease-out)}@keyframes cell-boom{0%{box-shadow:inset 0 0 0 999px #ff2828d9}to{box-shadow:inset 0 0 0 999px #ff3c3c29}}@media(prefers-reduced-motion:reduce){.cell--boom,.cell--pop .piece{animation:none}}#game-boosters{flex-shrink:0;display:flex;justify-content:center;align-items:flex-start;gap:54px;padding:12px 16px calc(6px + env(safe-area-inset-bottom))}.booster{display:flex;flex-direction:column;align-items:center;gap:5px}.booster-label{pointer-events:none;white-space:nowrap;font-size:12px;font-weight:900;line-height:1;color:var(--c-ink-strong)}.booster-btn{position:relative;width:80px;height:80px;padding:0;border-radius:50%;border:none;background:#fff;box-shadow:0 3px 8px #12304e33;font-size:38px;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;overflow:visible;transition:transform var(--dur-fast) var(--ease-out)}.booster-btn:active{transform:translateY(2px)}.booster-btn:disabled{opacity:.55;cursor:default}.booster-badge{position:absolute;top:-4px;right:-4px;z-index:2;min-width:30px;height:30px;box-sizing:border-box;padding:0 8px;border:2px solid #fff;border-radius:var(--r-pill);display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:900;color:#fff;background:#f0384f}#debug-nav{flex-shrink:0;display:flex;align-items:center;justify-content:center;gap:8px;padding:0 16px calc(10px + env(safe-area-inset-bottom));font-size:11px;font-weight:900;color:var(--c-ink-mid)}#debug-nav button{font:inherit;padding:4px 10px;border-radius:var(--r-pill);border:1px solid rgba(22,69,110,.3);background:#ffffffb3;color:var(--c-ink-mid);cursor:pointer}#debug-nav button:disabled{opacity:.4;cursor:default}#debug-nav[hidden]{display:none}@media(max-height:700px){#game-header{padding:6px 16px 2px}#game-header .btn--circle{width:40px;height:40px;font-size:18px}#header-spacer{width:40px;height:40px}#game-title-cols{gap:24px}#game-title-cols .col-label{font-size:11px}#game-title-cols .col-value{font-size:19px}#game-status{padding:0 16px 6px}.game-pill{padding:4px 13px;font-size:15px}.game-pill .pill-glyph,.life-track .heart{font-size:17px}#rule-cards{margin:0 16px 6px;padding:6px;gap:5px}.rule-card{padding:4px;gap:5px}.mini-grid{width:32px}.rule-card .rule-label{font-size:9px}#fail-toast{margin:0 16px 5px;padding:6px 13px;font-size:12px}#game-boosters{gap:44px;padding:7px 16px calc(4px + env(safe-area-inset-bottom))}.booster{gap:4px}.booster-btn{width:64px;height:64px;font-size:31px}.booster-badge{min-width:26px;height:26px;font-size:13px}.booster-label{font-size:11px}}@media(max-height:600px){#game-header{padding:4px 16px 2px}#game-status{padding:0 16px 4px}#rule-cards{margin:0 16px 5px;padding:5px}.rule-card{padding:3px 4px}.mini-grid{width:28px}.rule-card .rule-label{font-size:8.5px;line-height:1.25}#game-boosters{padding:5px 16px calc(2px + env(safe-area-inset-bottom))}.booster{gap:3px}.booster-btn{width:56px;height:56px;font-size:27px}.booster-badge{min-width:24px;height:24px;font-size:12px}.booster-label{font-size:10px}}#board-wrap,#game-title-cols{transition:opacity var(--swap-out, .16s) var(--ease-out),transform var(--swap-out, .16s) var(--ease-out)}#screen-game.is-swapping #board-wrap{opacity:0;transform:scale(.94)}#screen-game.is-swapping #game-title-cols{opacity:0}#screen-game.is-entering #board-wrap{animation:swap-board-in .2s var(--ease-out)}#screen-game.is-entering #game-title-cols{animation:swap-hud-in .2s var(--ease-out)}@keyframes swap-board-in{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:none}}@keyframes swap-hud-in{0%{opacity:0}to{opacity:1}}.game-overlay.is-leaving{opacity:0;transition:opacity .15s var(--ease-out)}@media(prefers-reduced-motion:reduce){#board-wrap,#game-title-cols,.game-overlay.is-leaving{transition:none}#screen-game.is-entering #board-wrap,#screen-game.is-entering #game-title-cols{animation:none}}.game-overlay{position:absolute;inset:0;z-index:60;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:24px;text-align:center;animation:overlay-in var(--dur-med) var(--ease-out)}.game-overlay[hidden]{display:none}@keyframes overlay-in{0%{opacity:0}to{opacity:1}}.game-overlay--fail{background:#10263cd1}.game-overlay--clear{background:#10263cc2}.game-overlay--menu{z-index:70;background:var(--c-scrim)}#menu-card{width:100%;max-width:280px;box-sizing:border-box;padding:18px 18px 20px;border:var(--ol-3) solid var(--c-outline-deep);border-radius:24px;background:linear-gradient(180deg,#ffffff,var(--c-raised-base));box-shadow:inset 0 3px #ffffffe6,0 14px 30px #12304e59;animation:menu-card-in .22s var(--ease-pop)}@keyframes menu-card-in{0%{transform:scale(.9)}to{transform:scale(1)}}#menu-title{margin-bottom:14px;font-size:17px;font-weight:900;color:var(--c-ink-strong);letter-spacing:.06em}#menu-card .overlay-btn-row{margin-top:0;max-width:none}@media(prefers-reduced-motion:reduce){#menu-card{animation:none}}.overlay-title{font-size:34px;font-weight:900;color:#fff;--pop-stroke-w: 7px;letter-spacing:.04em}.broken-star{position:relative;width:150px;height:150px;margin:14px 0 10px;font-size:132px;line-height:150px;filter:grayscale(.65) opacity(.55)}.broken-star:after{content:"";position:absolute;left:50%;top:16%;width:4px;height:62%;background:#14283ed9;transform:translate(-50%) rotate(9deg);border-radius:2px}.overlay-remain{font-size:17px;font-weight:900;color:#ffd9a0;margin-bottom:6px}.overlay-btn-row{display:flex;flex-direction:column;gap:8px;width:100%;max-width:280px;margin-top:10px}.overlay-btn-row .btn{width:100%;font-size:18px;min-height:54px}.clear-star{position:relative;width:170px;height:170px;margin:6px 0;font-size:118px;line-height:170px;filter:drop-shadow(0 0 16px rgba(255,201,92,.9))}.clear-star:before{content:"";position:absolute;inset:-10%;z-index:-1;border-radius:50%;background:repeating-conic-gradient(from 0deg,#ffc95c8c 0deg 6deg,#ffc95c00 6deg 24deg);animation:clear-rays 9s linear infinite}@keyframes clear-rays{to{transform:rotate(360deg)}}.clear-score{font-size:46px;font-weight:900;color:#fff;--pop-stroke-w: 8px;line-height:1.1}.clear-score-label{font-size:13px;font-weight:900;color:var(--c-on-bar-sub);letter-spacing:.1em}.clear-sub{margin-top:8px;font-size:15px;font-weight:900;color:#ffe6a8;--pop-stroke-w: 4px}.clear-gift{margin-top:12px;padding:6px 16px;border-radius:var(--r-pill);background:#2ee05ce6;border:2px solid rgba(11,78,32,.55);font-size:15px;font-weight:900;color:#fff;--pop-stroke-w: 4px}.clear-gift[hidden]{display:none}.confetti{position:absolute;inset:0;overflow:hidden;pointer-events:none}.confetti i{position:absolute;top:-14px;width:9px;height:14px;border-radius:2px;animation:confetti-fall 3.4s linear infinite}@keyframes confetti-fall{0%{transform:translateY(-20px) rotate(0);opacity:1}to{transform:translateY(105vh) rotate(560deg);opacity:.9}}@media(prefers-reduced-motion:reduce){.confetti i{animation:none;top:12%}.clear-star:before{animation:none}}#board{position:relative}#board.is-hint{pointer-events:none}#board.is-hint:after{content:"";position:absolute;inset:0;z-index:1;border-radius:24px;background:#091a2b94;pointer-events:none;animation:hint-dim-in var(--dur-med) var(--ease-out)}@keyframes hint-dim-in{0%{opacity:0}to{opacity:1}}#board.is-hint .cell--lit{z-index:2}.cell .preview{position:absolute;font-size:calc(var(--cell) * .66);line-height:1;opacity:.62;pointer-events:none}.cell .preview:empty{display:none}.cell--preview-star .preview{animation:preview-pulse 1.5s var(--ease-out) infinite}@keyframes preview-pulse{0%,to{opacity:.45;transform:scale(.94)}50%{opacity:.85;transform:scale(1.06)}}.cell--preview-x:not(.cell--x):before,.cell--preview-x:not(.cell--x):after{content:"";position:absolute;left:50%;top:50%;width:62%;height:calc(var(--cell) * .12);border-radius:999px;background:#ffffff9e}.cell--preview-x:not(.cell--x):before{transform:translate(-50%,-50%) rotate(45deg)}.cell--preview-x:not(.cell--x):after{transform:translate(-50%,-50%) rotate(-45deg)}#hint-panel{position:absolute;left:0;right:0;bottom:0;z-index:40;box-sizing:border-box;padding:14px 16px calc(12px + env(safe-area-inset-bottom));border-radius:20px 20px 0 0;background:#fff;box-shadow:0 -4px 16px #12304e38;animation:hint-panel-in var(--dur-med) var(--ease-out)}#hint-panel[hidden]{display:none}@keyframes hint-panel-in{0%{transform:translateY(18px);opacity:0}to{transform:none;opacity:1}}#hint-text{display:flex;align-items:center;gap:10px;margin-bottom:12px;font-size:14px;font-weight:900;line-height:1.5;color:var(--c-ink-strong)}#hint-text:before{content:"💡";flex:0 0 auto;font-size:24px;line-height:1}#hint-actions{display:flex;gap:10px}#hint-actions .btn{flex:1 1 0;min-height:50px;font-size:16px}#hint-close{flex:0 0 36%}@media(prefers-reduced-motion:reduce){#hint-panel,#board.is-hint:after{animation:none}.cell--preview-star .preview{animation:none;opacity:.62;transform:none}}
