@font-face{font-family:Keinann Maru POP;src:url(./KeinannMaruPOP-ui-DS1fOX2k.woff2)format("woff2");font-style:normal;font-weight:400;font-display:swap}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-canvas:#f8f8f0;--color-surface:#f7f3df;--color-surface-secondary:#f0e8d8;--color-surface-disabled:#f0ece2;--color-input:#fffbe7;--color-text-strong:#794f27;--color-text:#725d42;--color-text-muted:#8a7b66;--color-text-secondary:#9f927d;--color-text-disabled:#c4b89e;--color-border:#9f927d;--color-border-subtle:#d8ceba;--color-border-hover:#a89878;--color-primary:#19c8b9;--color-primary-hover:#3dd4c6;--color-primary-active:#11a89b;--color-primary-soft:#e6f9f6;--color-focus:#fc0;--color-success:#6fba2c;--color-error:#e05a5a;--radius-control:12px;--radius-base:18px;--radius-large:24px;--radius-pill:50px;--space-xs:4px;--space-sm:8px;--space-md:12px;--space-lg:16px;--space-xl:24px;--ease-standard:cubic-bezier(.4, 0, .2, 1);--duration-fast:.1s;--duration-standard:.3s;--motion-settle-duration:.3s;--motion-settle-easing:cubic-bezier(.3, 0, .3, 1);--motion-merge-duration:.6s;--motion-merge-easing:cubic-bezier(.5, 0, .2, 1);--motion-merge-opacity-from:.5;--motion-merge-opacity-to:1;--tile-hover-light:.05;--tile-pressed-light:.2;--shadow-soft:0 2px 4px #3d34280f;--font-size-small:16px;--font-size-body:18px;--font-size-control:22px;--font-size-data:26px;--font-size-heading:32px;--font-ui:"Keinann Maru POP", Nunito, "Noto Sans SC", "Microsoft YaHei UI", "PingFang SC", system-ui, sans-serif;font-family:var(--font-ui);color:var(--color-text);background:var(--color-canvas);font-synthesis:weight;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html,body{width:100%;min-width:320px;height:100%;min-height:0;margin:0;overflow:hidden}body{font-size:var(--font-size-body);letter-spacing:.01em;background:radial-gradient(ellipse at 0% 0%, #82d5bb1c, transparent 34%), var(--color-canvas);font-weight:500}button{font:inherit;color:inherit}button:focus-visible,a:focus-visible{outline:3px solid var(--color-focus);outline-offset:3px}.app-shell{flex-direction:column;width:100%;height:100dvh;min-height:0;display:flex;overflow:hidden}.topbar{z-index:2;background:#fffbe7d1;border-bottom:1px solid #9f927d38;flex:0 0 48px;align-items:center;min-height:0;padding:0 clamp(16px,3vw,48px);display:flex;position:relative}.main-layout{gap:clamp(var(--space-xl), 2.4vw, 32px);width:min(100%,1600px);height:calc(100% - 48px);min-height:0;padding:clamp(var(--space-lg), 2.5vh, 24px) clamp(var(--space-xl), 4vw, 56px);grid-template-columns:minmax(0,1fr) minmax(310px,356px);margin:0 auto;display:grid}.play-area{min-width:0;min-height:0;padding:clamp(var(--space-lg), 2vw, 24px) clamp(20px, 2.4vw, 32px) 12px;border-radius:var(--radius-large);background:linear-gradient(140deg, #82d5bb14, transparent 42%), var(--color-surface);border:1px solid #9f927d3d;flex-direction:column;display:flex;position:relative;overflow:hidden}.board-stage{flex:auto;justify-content:center;align-items:center;width:100%;min-width:0;min-height:0;display:flex;position:relative}.image-status{text-align:center;max-width:360px;padding:16px}.image-status>p:first-child{color:var(--color-text-strong);font-size:var(--font-size-control);margin:0;font-weight:800}.image-status-copy{color:var(--color-text-muted);font-size:var(--font-size-body);margin:10px 0 18px;line-height:1.6}.image-status .button{font-size:var(--font-size-body)}.image-status[hidden],.puzzle-board[hidden],#retry-image[hidden]{display:none}.image-status.is-over-board:not([hidden]){z-index:10;border-radius:var(--radius-base);width:min(360px,100% - 24px);max-width:none;box-shadow:var(--shadow-soft);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#fffbe7f0;border:1px solid #9f927d47;align-content:center;justify-items:center;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.image-status.is-over-board .image-status-copy{margin-bottom:0}.button:disabled,.button:disabled:hover,.button:disabled:active{color:var(--color-text-disabled);background:var(--color-surface-disabled);border-color:var(--color-border-subtle);box-shadow:none;cursor:not-allowed;transform:none}.puzzle-board{background-color:var(--color-surface-secondary);touch-action:none;-webkit-user-select:none;user-select:none;border-radius:0;outline:2px solid #fffbe7f5;flex:none;display:grid;position:relative;overflow:visible;box-shadow:0 5px 14px #5040281c}.board-geometry{z-index:6;pointer-events:none;width:calc(100% + 4px);height:calc(100% + 4px);position:absolute;inset:-2px;overflow:visible}.board-drop-geometry{z-index:1}.group-outline-line,.drop-outline-line{fill:none;stroke:var(--color-primary-active);stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.drop-outline-line{stroke:var(--color-primary)}.tile{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;background:0 0;border:0;border-radius:0;min-width:0;min-height:0;margin:0;padding:0;position:relative;overflow:visible}.tile-image{transform-origin:50%;pointer-events:none;background-repeat:no-repeat;display:block;position:absolute}.tile-image:after{content:"";pointer-events:none;transition:background-color var(--duration-fast) var(--ease-standard);background:#fff0;position:absolute;inset:0}.is-hovered .tile-image:after{background-color:rgb(255 255 255/var(--tile-hover-light))}.is-pressed .tile-image:after,.is-drop-target .tile-image:after{background-color:rgb(255 255 255/var(--tile-pressed-light))}.merge-feedback{pointer-events:none;isolation:isolate;animation:merge-feedback-enter var(--motion-merge-duration) var(--motion-merge-easing) both;position:absolute}@keyframes merge-feedback-enter{0%{opacity:var(--motion-merge-opacity-from)}to{opacity:var(--motion-merge-opacity-to)}}.merge-feedback-fragment{pointer-events:none;position:absolute}.tile,.merge-feedback{z-index:0}.tile.is-displaced,.merge-feedback.is-displaced{z-index:3}.tile.is-settling,.merge-feedback.is-settling{z-index:4}.tile.is-dragging,.merge-feedback.is-dragging,.tile.is-pressed,.merge-feedback.is-pressed{z-index:5}.tile.is-dragging{cursor:grabbing}.play-area-bottomline{border-top:1px solid #9f927d38;flex:none;justify-content:space-between;align-items:center;gap:12px;min-height:30px;padding-top:7px;display:flex}.play-tip{color:var(--color-text-muted);font-size:var(--font-size-small);font-weight:600}.control-panel{align-self:center;gap:clamp(var(--space-md), 2.1vh, 20px);border-radius:var(--radius-large);background:var(--color-surface);border:1px solid #9f927d42;flex-direction:column;width:100%;min-width:0;min-height:0;max-height:100%;padding:clamp(20px,2vw,26px);display:flex;overflow:hidden}.panel-heading{flex:none;justify-content:space-between;align-items:baseline;gap:12px;display:flex}.panel-heading h1{color:var(--color-text-strong);font-size:var(--font-size-heading);letter-spacing:.02em;white-space:nowrap;margin:0;font-weight:900;line-height:1.2}.panel-heading h1 span{color:var(--color-primary-active);background:var(--color-primary-soft);font-variant-numeric:tabular-nums;border-radius:9px;padding:0 5px;display:inline-block}.level-complete-badge{border-radius:var(--radius-pill);color:#426d24;font-size:var(--font-size-small);white-space:nowrap;background:#edf7df;border:1px solid #6fba2c61;flex:none;padding:5px 10px;font-weight:800}.level-complete-badge[hidden]{display:none}.game-screen.is-completed .puzzle-board{pointer-events:none}.game-screen.is-completed .tile{cursor:default}.button{border-radius:var(--radius-pill);cursor:pointer;letter-spacing:.02em;min-height:42px;transition:color var(--duration-fast) var(--ease-standard), background-color var(--duration-fast) var(--ease-standard), border-color var(--duration-fast) var(--ease-standard), box-shadow var(--duration-fast) var(--ease-standard), transform var(--duration-fast) var(--ease-standard);-webkit-tap-highlight-color:transparent;border:1.5px solid #0000;justify-content:center;align-items:center;gap:8px;padding:0 17px;font-weight:750;text-decoration:none;display:inline-flex;position:relative}.button svg{flex:none;width:18px;height:18px}.status-card{border-radius:var(--radius-base);background:var(--color-surface-secondary);border:1px solid #9f927d38;flex:none;grid-template-columns:minmax(0,1fr) 1px minmax(0,1fr);align-items:center;min-height:70px;padding:11px 8px;display:grid}.status-item{justify-items:center;gap:5px;min-width:0;display:grid}.status-label{color:var(--color-text-muted);font-size:var(--font-size-small);white-space:nowrap;font-weight:700}.status-value{color:var(--color-text-strong);font-size:var(--font-size-data);font-variant-numeric:tabular-nums;font-weight:900;line-height:1}.status-value.is-score-pop{animation:.4s both score-pop}.status-value small{color:var(--color-text-secondary);font-size:var(--font-size-small);font-weight:700}.status-divider{background:#9f927d47;width:1px;height:32px}.progress-track{border-radius:var(--radius-pill);background:#e8e1d2;border:1px solid #ddd4c2;flex:none;height:9px;margin-top:-8px;position:relative;overflow:hidden}.progress-track span{border-radius:inherit;background:linear-gradient(90deg, #82d5bb, var(--color-primary));width:0;height:100%;transition:width var(--duration-standard) var(--ease-standard);display:block}.button-primary{color:#174e43;background:var(--color-primary);min-height:52px;font-size:var(--font-size-control);border-color:#11a89b40;font-weight:850;box-shadow:0 5px #bdaea0}.button-primary:hover{background:var(--color-primary-hover);border-color:#11a89b66;transform:translateY(-1px);box-shadow:0 6px #bdaea0}.button-primary:active{background:var(--color-primary-active);transform:translateY(3px);box-shadow:0 1px #bdaea0}.button-primary svg{width:20px;height:20px}.start-button{flex:none;justify-content:center;width:100%;padding:0 20px}.start-button svg{flex:none}.sr-only{clip:rect(0, 0, 0, 0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}.toast{z-index:20;border-radius:var(--radius-pill);max-width:min(90vw,460px);color:var(--color-text-strong);background:var(--color-input);font-size:var(--font-size-small);opacity:0;pointer-events:none;transition:opacity var(--duration-standard) var(--ease-standard), transform var(--duration-standard) var(--ease-standard);border:1px solid #9f927d4d;padding:11px 17px;font-weight:700;line-height:1.45;position:fixed;bottom:24px;right:50%;transform:translate(50%,8px);box-shadow:0 5px 18px #3d34281a}.toast.is-visible{opacity:1;transform:translate(50%)}.win-overlay,.challenge-overlay,.action-confirm-overlay{z-index:30;padding:var(--space-lg);animation:overlay-enter var(--duration-standard) var(--ease-standard) both;background:#54453061;place-items:center;display:grid;position:fixed;inset:0}.win-overlay[hidden],.challenge-overlay[hidden],.action-confirm-overlay[hidden]{display:none}.action-confirm-overlay{z-index:32}.challenge-card{justify-items:center;gap:var(--space-md);border-radius:var(--radius-large);background:var(--color-surface);width:min(100%,390px);box-shadow:var(--shadow-soft);text-align:center;animation:card-enter var(--duration-standard) var(--ease-standard) both;border:1px solid #9f927d4d;padding:clamp(24px,5vw,36px);display:grid}.challenge-avatar{object-fit:cover;background:var(--color-input);border:3px solid #9f927d40;border-radius:24px;width:88px;height:88px}.challenge-card h2{color:var(--color-text-strong);font-size:var(--font-size-heading);margin:0;font-weight:900}.challenge-card p{color:var(--color-text-secondary);font-size:var(--font-size-body);margin:0;font-weight:700}.challenge-actions{gap:var(--space-md);width:100%;margin-top:var(--space-sm);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.challenge-actions .button{min-height:46px;padding-inline:12px}.win-card{background:var(--color-surface);text-align:center;width:min(100%,370px);animation:card-enter .3s var(--ease-standard) both;border:1px solid #9f927d4d;border-radius:28px;padding:30px clamp(22px,5vw,38px) 28px;box-shadow:0 12px 34px #3d342829}.win-stamp{color:#548e2a;background:#edf7df;border:1px solid #c4e4bb;border-radius:16px;place-items:center;width:48px;height:48px;margin:0 auto 14px;display:grid}.win-stamp span{font-size:var(--font-size-small);letter-spacing:.02em;font-weight:900}.win-stamp span[hidden]{display:none}.win-kicker{color:var(--color-text-muted);font-size:var(--font-size-small);margin:0 0 5px;font-weight:750}.win-card h2{color:var(--color-text-strong);font-size:var(--font-size-heading);margin:0 0 10px;font-weight:900;line-height:1.25}.win-button{min-width:0}@keyframes overlay-enter{0%{opacity:0}to{opacity:1}}@keyframes card-enter{0%{opacity:0;transform:translateY(8px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes finale-stamp-pop{0%{opacity:0;transform:scale(.7)rotate(-18deg)}72%{opacity:1;transform:scale(1.08)rotate(2deg)}to{opacity:1;transform:scale(1)rotate(-6deg)}}@keyframes score-pop{0%,to{transform:scale(1)}42%{transform:scale(1.3)}72%{transform:scale(.95)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.game-side{align-content:start;gap:var(--space-lg);grid-template-rows:auto auto;min-width:0;min-height:0;display:grid}.control-panel{align-self:stretch;max-height:none}.level-navigation{gap:var(--space-md);padding:var(--space-lg) var(--space-xl);border-radius:var(--radius-large);background:var(--color-surface);border:1px solid #9f927d42;display:grid}.level-navigation-heading{color:var(--color-text-muted);font-size:var(--font-size-small);justify-content:space-between;align-items:center;font-weight:750;display:flex}.level-navigation-heading strong{color:var(--color-text-strong);font-size:var(--font-size-body);font-variant-numeric:tabular-nums}.level-steps{align-items:center;width:100%;min-width:0;display:flex}.level-steps[hidden]{display:none}.level-step{border:1.5px solid var(--color-border-subtle);width:24px;height:24px;color:var(--color-text-muted);background:var(--color-canvas);font-size:var(--font-size-small);font-variant-numeric:tabular-nums;cursor:pointer;transition:color var(--duration-fast) var(--ease-standard), background-color var(--duration-fast) var(--ease-standard), border-color var(--duration-fast) var(--ease-standard);border-radius:50%;flex:0 0 24px;place-items:center;padding:0;font-weight:800;display:grid}.level-step:hover:not(:disabled){border-color:var(--color-primary);background:var(--color-primary-soft)}.level-step.is-complete{border-color:var(--color-success);color:#426d24;background:#edf7df}.level-step.is-current{border-color:var(--color-primary-active);color:#174e43;background:var(--color-primary-soft);box-shadow:0 0 0 3px #19c8b924}.level-step:disabled{border-color:var(--color-border-subtle);color:var(--color-text-disabled);background:var(--color-surface-disabled);box-shadow:none;cursor:not-allowed}.level-step-connector{border-top:2px solid var(--color-border-subtle);flex:auto;min-width:3px;margin:0 3px}.level-step-connector.is-complete{border-color:var(--color-success)}.level-navigation-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.level-step-button{min-width:0;min-height:40px;font-size:var(--font-size-small);padding:0 8px}.home-button{min-height:36px;font-size:var(--font-size-small);padding:0 14px}.topbar:not(.is-playing){display:none}.topbar.is-playing .topbar-actions{flex:auto;justify-content:space-between}.topbar.is-playing .current-mode-label{display:none}.topbar{justify-content:space-between}.topbar-actions{align-items:center;gap:12px;display:flex}.current-mode-label{border-radius:var(--radius-pill);color:var(--color-text-muted);background:var(--color-surface);font-size:var(--font-size-small);border:1px solid #9f927d4d;padding:6px 13px;font-weight:750}.button-secondary{border-radius:var(--radius-pill);min-height:42px;color:var(--color-text-strong);background:var(--color-input);box-shadow:var(--shadow-soft);font-size:var(--font-size-body);cursor:pointer;transition:background var(--duration-fast) var(--ease-standard), transform var(--duration-fast) var(--ease-standard);border:1px solid #9f927d52;padding:0 17px;font-weight:750}.button-secondary:hover{background:var(--color-primary-soft);transform:translateY(-1px)}.button-secondary:active{transform:translateY(1px)}.button-secondary:disabled{color:var(--color-text-disabled);background:var(--color-surface-disabled);cursor:not-allowed}.game-screen{flex-direction:column;flex:auto;min-height:0;display:flex;overflow:hidden}.game-screen[hidden],.mode-screen[hidden]{display:none}.main-layout{flex:auto;width:100%;height:auto;min-height:0}.mode-screen{justify-content:center;align-items:center;gap:clamp(var(--space-xl), 3vh, 36px);min-height:0;padding:clamp(var(--space-xl), 4vh, 40px) clamp(var(--space-xl), 5vw, 64px);flex-direction:column;flex:auto;display:flex;overflow:hidden}.mode-intro{text-align:center}.eyebrow{color:var(--color-primary-active);font-size:var(--font-size-small);letter-spacing:.08em;margin:0 0 7px;font-weight:800}.mode-intro h1{color:var(--color-text-strong);font-size:var(--font-size-heading);margin:0;font-weight:900;line-height:1.25}.mode-intro>p:last-child{color:var(--color-text-muted);font-size:var(--font-size-body);margin:8px 0 0}.mode-swipe-hint{display:none}.mode-cards{flex:none;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(20px,2vw,28px);width:min(100%,1160px);display:grid}.mode-card{align-items:start;gap:var(--space-lg);border-radius:var(--radius-large);min-width:0;min-height:270px;color:var(--color-text);background:var(--color-surface);text-align:left;cursor:default;transition:border-color var(--duration-standard) var(--ease-standard), background var(--duration-standard) var(--ease-standard), transform var(--duration-standard) var(--ease-standard);border:2px solid #9f927d5c;grid-template-rows:1fr auto;grid-template-columns:64px minmax(0,1fr);padding:clamp(20px,2vw,26px);display:grid}.mode-card:focus-within{border-color:var(--color-primary);background:#fbf8e9;transform:translateY(-2px)}.mode-card:has(.mode-enter-button:disabled){color:var(--color-text-muted);background:var(--color-surface-disabled);cursor:not-allowed}.mode-avatar{object-fit:cover;background:var(--color-input);border:2px solid #9f927d40;border-radius:18px;width:64px;height:64px}.mode-card-copy{gap:var(--space-md);min-width:0;display:grid}.mode-enter-button{width:100%;margin-top:var(--space-md);grid-column:1/-1}.mode-enter-button:disabled{box-shadow:none}.mode-card-name{color:var(--color-text-strong);font-size:var(--font-size-data);font-weight:900;line-height:1.2}.mode-card-tagline{border-left:3px solid var(--color-primary);border-radius:0 var(--radius-control) var(--radius-control) 0;color:var(--color-text);background:var(--color-primary-soft);font-size:var(--font-size-body);padding:8px 10px;font-weight:750;line-height:1.45}.mode-card-description{min-height:42px;color:var(--color-text-muted);font-size:var(--font-size-small);border-top:1px dashed #9f927d6b;padding-top:10px;font-weight:650;line-height:1.45}.mode-card-details{gap:var(--space-md);padding-top:var(--space-lg);color:var(--color-text-secondary);font-size:var(--font-size-small);border-top:1px solid #9f927d38;grid-template-columns:1fr;font-weight:700;display:grid}.mode-card-score{color:var(--color-text-muted);justify-content:space-between;align-items:baseline;gap:8px;display:flex}.mode-card-score strong{color:var(--color-text-strong);font-size:var(--font-size-data);font-variant-numeric:tabular-nums;font-weight:900}.mode-card-score small{font-size:var(--font-size-small)}.mode-card-progress-copy{color:var(--color-text)}.mode-card-progress-track{border-radius:var(--radius-pill);background:var(--color-surface-secondary);height:8px;display:block;overflow:hidden}.mode-card-progress-track>span{border-radius:inherit;background:var(--color-primary);height:100%;transition:width var(--duration-standard) var(--ease-standard);display:block}.storage-note{color:var(--color-text-secondary);font-size:var(--font-size-small);text-align:center;margin:0;font-weight:600}.storage-note:empty{display:none}.panel-heading{align-items:center}.panel-heading .eyebrow{font-size:var(--font-size-control);letter-spacing:.02em;margin-bottom:3px}.status-card{grid-template-columns:minmax(0,1fr) 1px minmax(0,1fr) 1px minmax(0,1fr)}.status-value{text-overflow:ellipsis;max-width:100%;overflow:hidden}.win-card{gap:var(--space-lg) var(--space-xl);width:min(100%,740px);max-height:min(90dvh,740px);padding:var(--space-xl);border-radius:var(--radius-large);text-align:left;grid-template-rows:minmax(0,1fr) auto;grid-template-columns:minmax(170px,.85fr) minmax(280px,1fr);align-items:stretch;display:grid;overflow-y:auto}.win-image{aspect-ratio:3/4;border-radius:var(--radius-base);object-fit:contain;background:var(--color-surface-secondary);border:2px solid #9f927d47;grid-area:1/1/span 2;align-self:center;width:100%;max-height:62vh}.win-details{text-align:center;grid-area:1/2;align-self:center;min-width:0}.win-stamp,.win-details h2{margin-bottom:var(--space-sm)}.new-record-badge{border-radius:var(--radius-pill);color:#426d24;font-size:var(--font-size-small);background:#edf7df;margin:0 0 10px;padding:5px 12px;font-weight:800;display:inline-block}.new-record-badge[hidden]{display:none}.win-stats{gap:var(--space-sm);margin:0 0 var(--space-md);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.win-stats>div{border-radius:var(--radius-control);background:var(--color-surface-secondary);padding:9px 5px}.win-stats dt{color:var(--color-text-muted);font-size:var(--font-size-small);font-weight:700}.win-stats dd{color:var(--color-text-strong);font-size:var(--font-size-data);font-variant-numeric:tabular-nums;margin:4px 0 0;font-weight:900}.win-finale-copy{color:var(--color-text);font-size:var(--font-size-small);text-align:center;margin:-4px 0 10px;font-weight:700;line-height:1.4}.win-finale-copy[hidden]{display:none}.win-overlay.is-finale .win-kicker{color:var(--color-text-strong);background:#fff2c2;border:1px solid #e0b80080;border-radius:10px 10px 10px 3px;padding:5px 16px;display:inline-block;transform:rotate(-1deg);box-shadow:0 3px #e0b80038}.win-overlay.is-finale .win-stamp{color:var(--color-text-strong);animation:finale-stamp-pop .42s var(--ease-standard) both;background:#fff6d9;border:2px double #e0b800c2;border-radius:50%;transform:rotate(-6deg);box-shadow:0 4px #e0b80047}.win-overlay.is-finale .win-card{background:linear-gradient(145deg, #fff9e4 0%, var(--color-surface) 38%, var(--color-surface) 100%);border:2px solid #e0b80075}.win-overlay.is-finale .win-finale-copy{color:var(--color-text-strong)}.win-actions{align-self:end;gap:var(--space-sm);grid-area:2/2;width:100%;display:grid}.win-actions .button-primary{justify-content:center;width:100%;min-height:48px}.win-actions .button-secondary{justify-content:center;width:100%;min-height:44px}.win-actions .button-primary svg{margin-left:8px}@media (width<=900px){.mode-screen{justify-content:flex-start;gap:12px;padding:clamp(12px,3vh,24px) 10px}.mode-swipe-hint{color:var(--color-text-secondary);font-size:var(--font-size-small);margin:5px 0 0;font-weight:650;display:block}.mode-cards{scroll-snap-type:x mandatory;scrollbar-color:var(--color-border-subtle) transparent;scrollbar-width:thin;gap:12px;width:100%;padding:4px 6vw 12px;display:flex;overflow-x:auto}.mode-card{scroll-snap-align:center;flex:0 0 min(82vw,360px);grid-template-rows:1fr auto;grid-template-columns:62px minmax(0,1fr);gap:10px;min-height:286px;padding:16px}.mode-avatar{border-radius:15px;width:62px;height:62px}.mode-card-copy{gap:10px}.mode-card-name{font-size:var(--font-size-data)}.mode-card-tagline{font-size:var(--font-size-small)}.mode-card-description{min-height:38px;font-size:var(--font-size-small)}.mode-card-details{gap:var(--space-sm);padding-top:var(--space-md)}.status-card{grid-template-columns:minmax(0,1fr) 1px minmax(0,1fr) 1px minmax(0,1fr)}.status-label{white-space:normal;text-align:center}.win-overlay,.challenge-overlay,.action-confirm-overlay{padding:12px}.win-card{border-radius:20px;grid-template-columns:minmax(88px,.65fr) minmax(0,1.35fr);gap:12px;width:min(100%,560px);max-height:90vh;padding:14px;overflow-y:auto}.win-image{border-radius:14px;max-height:52vh}.win-stats{gap:6px;margin-bottom:12px}.win-stats>div{padding:7px 3px}.win-stats dd{font-size:16px}.win-finale-copy{margin:-3px 0 7px}.win-actions .button-secondary,.win-actions .button-primary{min-height:42px;font-size:var(--font-size-small);padding-left:7px;padding-right:7px}}@media (height<=680px) and (width<=900px){.mode-screen{gap:7px;padding-top:7px;padding-bottom:7px}.mode-intro h1{font-size:var(--font-size-heading)}.mode-cards{gap:8px;padding-bottom:7px}.mode-card{min-height:258px;padding-top:12px;padding-bottom:12px}.mode-card-copy{gap:7px}.mode-card-details{gap:5px;padding-top:7px}}@media (width<=560px){.win-overlay{padding:var(--space-sm)}.win-card{gap:var(--space-md);width:min(100%,440px);max-height:92dvh;padding:var(--space-md);text-align:center;border-radius:20px;grid-template-rows:auto auto auto;grid-template-columns:minmax(0,1fr)}.win-image{aspect-ratio:4/3;border-radius:14px;grid-area:1/1;justify-self:center;width:min(100%,220px);height:min(18vh,132px);max-height:132px}.win-details{grid-area:2/1;align-self:auto}.win-stamp{border-radius:13px;width:40px;height:40px;margin-bottom:6px}.win-stamp span{font-size:14px}.win-kicker{margin-bottom:3px}.win-details h2{margin-bottom:6px}.new-record-badge{margin-bottom:7px}.win-stats{gap:6px;margin-bottom:0}.win-stats>div{padding:7px 4px}.win-stats dd{font-size:16px}.win-actions{align-self:end;gap:var(--space-sm);grid-area:3/1}}@media (height<=600px) and (width<=560px){.win-card{gap:var(--space-sm);padding:10px}.win-image{height:min(14vh,84px);max-height:84px}.win-stamp{width:34px;height:34px}.win-stamp span{font-size:12px}.win-actions .button-secondary,.win-actions .button-primary{min-height:40px}}.app-shell{padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.game-screen .main-layout{width:min(100%,2400px);max-width:2400px}.control-panel{gap:var(--space-lg)}.mode-card-copy{align-content:start}.mode-card-name{overflow-wrap:anywhere}.mode-card-tagline{font-size:var(--font-size-small)}.mode-screen{gap:clamp(16px,3vh,32px)}.mode-cards{padding:4px}.status-value{font-size:var(--font-size-data)}@media (width<=1100px){.main-layout{grid-template-columns:minmax(0,1fr) 300px;gap:16px;padding:16px 24px}.control-panel,.level-navigation,.play-area{padding:16px}.mode-screen{padding:24px}.mode-cards{gap:16px}.mode-card{grid-template-columns:minmax(0,1fr);gap:12px;padding:20px}.mode-avatar{width:56px;height:56px}.mode-enter-button{margin-top:0}}@media (width<=900px){.topbar{flex-basis:44px;padding:0 12px}.home-button{min-height:32px;padding:0 12px}.mode-screen{justify-content:center;gap:16px;padding:16px 0}.mode-intro{flex:none;padding:0 16px}.mode-intro>p{font-size:var(--font-size-small)}.mode-cards{gap:12px;padding:5px 24px 12px;scroll-padding-inline:24px;display:flex}.mode-card{scroll-snap-align:center;grid-template-columns:52px minmax(0,1fr);gap:12px;min-height:0;padding:16px}.mode-avatar{border-radius:var(--radius-control);width:52px;height:52px}.mode-enter-button{min-height:44px;margin-top:0}.mode-card-copy{gap:10px}.storage-note{padding-inline:16px}.game-screen .main-layout{grid-template-rows:minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr);gap:10px;padding:10px}.play-area{border-radius:20px;padding:10px 12px 8px}.play-area-bottomline{min-height:26px;padding-top:5px}.game-side{gap:8px}.control-panel{border-radius:20px;grid-template-columns:minmax(0,1fr) auto;gap:8px 12px;padding:12px;display:grid;overflow:visible}.panel-heading{flex-wrap:wrap;grid-area:1/1;gap:4px;min-width:0}.panel-heading>div{flex-wrap:wrap;align-items:baseline;gap:4px 10px;display:flex}.panel-heading .eyebrow{font-size:var(--font-size-small);margin:0}.panel-heading h1{font-size:var(--font-size-control)}.status-card{border-radius:14px;grid-area:2/1/auto/-1;min-height:58px;padding:8px}.status-divider{height:28px}.progress-track{grid-area:3/1/auto/-1;height:6px;margin:0}.start-button{min-height:36px;font-size:var(--font-size-small);grid-area:1/2;gap:6px;padding:0 12px;box-shadow:0 3px #bdaea0}.start-button svg{width:16px;height:16px}.level-navigation{border-radius:18px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px 12px;padding:10px 12px}.level-navigation-heading{grid-area:1/1}.level-steps{grid-area:2/1/auto/-1;padding:3px}.level-navigation-actions{grid-area:1/2;gap:6px}.level-step-button{min-height:32px;padding:0 10px}.level-step-connector{margin-inline:2px}.level-navigation-heading>strong{display:none}.toast{bottom:calc(12px + env(safe-area-inset-bottom))}}@media (height<=650px){.mode-screen{gap:12px;padding-block:12px}.mode-card{gap:10px;min-height:0;padding:14px}.mode-card-copy{gap:8px}.mode-card-details{gap:6px;padding-top:8px}.game-screen .main-layout{padding-block:8px}.control-panel,.level-navigation{gap:8px;padding:12px}.play-area{padding:8px}.play-area-bottomline{display:none}}@media (height<=500px) and (width<=1100px){.mode-intro>p:not(.mode-swipe-hint){display:none}.mode-swipe-hint{color:var(--color-text-muted);font-size:var(--font-size-small);margin:4px 0 0;display:block}.mode-cards{scroll-snap-type:x mandatory;gap:12px;width:100%;padding:4px 20px 10px;scroll-padding-inline:20px;display:flex;overflow-x:auto}.mode-card{scroll-snap-align:center;flex:0 0 min(80vw,400px);grid-template-columns:44px minmax(0,1fr)}.mode-avatar{border-radius:var(--radius-control);width:44px;height:44px}.mode-card-name{font-size:var(--font-size-data)}.mode-card-tagline{padding:4px 8px}.mode-card-description{padding-top:6px}.mode-card-details{grid-template-columns:1fr 1fr;gap:5px 8px}.mode-card-progress-track{grid-column:1/-1}.mode-card-score{flex-wrap:wrap;justify-content:flex-start}.mode-enter-button{min-height:36px;font-size:var(--font-size-body);margin-top:0}}@media (height<=500px) and (width>=501px) and (width<=1000px){.game-screen .main-layout{grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,1fr) 280px;gap:10px;padding:8px 12px}.game-side{gap:8px}.control-panel{padding:10px;display:flex}.start-button{min-height:36px;font-size:var(--font-size-small)}.status-card{min-height:54px;padding:7px}.level-navigation{grid-template-columns:minmax(0,1fr);padding:10px;display:grid}.level-navigation-heading{grid-area:1/1}.level-steps{grid-area:2/1}.level-navigation-actions{grid-area:3/1}.level-navigation:has(.level-steps[hidden]) .level-navigation-actions{grid-row:2}}@media (height<=350px){.mode-screen{gap:8px;padding-block:8px}.mode-swipe-hint,.mode-screen>.storage-note{display:none}.game-side{gap:6px}.control-panel,.level-navigation{gap:6px;padding:8px}.status-card{min-height:48px;padding:5px}.start-button,.level-step-button{min-height:32px}}@media (width<=360px){.mode-card{flex-basis:86vw;grid-template-columns:40px minmax(0,1fr);gap:8px;padding:12px}.mode-avatar{width:40px;height:40px}.mode-card-name{font-size:var(--font-size-data)}.game-screen .main-layout{gap:6px;padding:6px}.control-panel,.level-navigation{padding:8px}.panel-heading>div{gap:2px}.panel-heading .eyebrow{width:100%}.start-button{padding:0 8px}.level-step-connector{min-width:0;margin-inline:1px}}@media (width<=900px){:is(html:has(.app-shell>.mode-screen:not([hidden])),body:has(.app-shell>.mode-screen:not([hidden]))){height:auto;min-height:100%;overflow:hidden auto}.app-shell:has(>.mode-screen:not([hidden])){height:auto;min-height:100dvh;overflow:visible}.app-shell:has(>.mode-screen:not([hidden]))>.mode-screen{flex:none;min-height:calc(100dvh - 44px);overflow:visible}.mode-screen{padding:24px 16px calc(24px + env(safe-area-inset-bottom));justify-content:flex-start;align-items:stretch;gap:16px}.mode-intro{padding-inline:0}.mode-swipe-hint{display:none}.mode-cards{grid-template-columns:minmax(0,1fr);gap:12px;width:min(100%,600px);margin-inline:auto;padding:4px;display:grid;overflow:visible}.mode-card{grid-template-columns:52px minmax(0,1fr);width:100%;min-height:0;padding:16px}}@media (width<=360px){.mode-screen{padding-inline:12px}.mode-card{grid-template-columns:40px minmax(0,1fr)}}#mode-title{font-size:32px}@media (pointer:coarse){.home-button,.start-button,.level-step-button,.win-actions .button-secondary,.win-actions .button-primary{min-height:44px}.level-step{flex-basis:32px;width:32px;height:32px}}
