.theme-linen .game-controls,.theme-ivory .game-controls,.theme-slate .game-controls,.theme-forest .game-controls{--color-accent:#e8c858;--color-accent-hover:#f0d470;--color-on-accent:#1f1a10}.theme-linen .game-controls .game-control-new,.theme-ivory .game-controls .game-control-new,.theme-slate .game-controls .game-control-new,.theme-forest .game-controls .game-control-new{color:#1f1a10}.game-controls{padding-top:.4rem;padding-right:calc(1.25rem + env(safe-area-inset-right,0px));padding-bottom:calc(.4rem + env(safe-area-inset-bottom,0px));padding-left:calc(1.25rem + env(safe-area-inset-left,0px));-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);width:100%;height:auto;min-height:2.5rem;z-index:var(--z-controls);background:#0006;border-top:1px solid #ffffff0f;border-bottom:none;flex-shrink:0;align-items:center;gap:.35rem;display:flex;position:sticky;bottom:0}.game-controls-brand{letter-spacing:-.01em;color:var(--color-text-muted);flex-shrink:0;align-items:center;gap:.25em;margin-right:.35rem;font-size:.8rem;font-weight:700;text-decoration:none;display:none}.game-control-btn{border-radius:var(--radius-md);color:#ffffffbf;min-height:40px;font-family:var(--font-sans);letter-spacing:.02em;cursor:pointer;transition:color var(--duration-fast) var(--ease-out), background-color var(--duration-fast) var(--ease-out);background:0 0;border:none;align-items:center;gap:.3rem;padding:.5rem .75rem;font-size:.75rem;font-weight:500;display:inline-flex}a.game-control-stats{border:1px solid #0000;text-decoration:none}@media (hover:hover){.game-control-btn:hover:not(:disabled){color:#fffffff2;background:#ffffff14}}.game-control-btn:disabled{opacity:.25;cursor:default;color:var(--color-text-dim)}.game-control-icon{opacity:.9;flex-shrink:0}.game-control-icon-hint,.game-control-icon-trophy{opacity:1}.game-control-label{line-height:1}.game-control-label-compact{display:none}.game-control-spacer{flex:1}.game-control-menu-wrap{position:relative}.game-control-menu-backdrop{z-index:calc(var(--z-controls) - 1);background:0 0;position:fixed;inset:0}.game-control-btn[data-deadlock-glow=true]{animation:1.4s ease-in-out infinite deadlock-glow}@keyframes deadlock-glow{0%,to{box-shadow:0 0 #ffd70000}50%{box-shadow:0 0 0 4px #ffd70059}}@media (prefers-reduced-motion:reduce){.game-control-btn[data-deadlock-glow=true]{animation:none;box-shadow:0 0 0 3px #ffd70066}}.game-control-btn[data-post-win-pulse=true]{animation:1.8s ease-in-out 1.5s infinite deadlock-glow}@media (prefers-reduced-motion:reduce){.game-control-btn[data-post-win-pulse=true]{animation:none;box-shadow:0 0 0 3px #ffd70066}}.post-win-ghost-cta{color:#1f1a10;min-height:48px;font-family:var(--font-sans);letter-spacing:.02em;cursor:pointer;z-index:var(--z-toast);opacity:0;transition:background .16s var(--ease-out,ease-out), border-color .16s var(--ease-out,ease-out), box-shadow .16s var(--ease-out,ease-out);background:#e8c858;border:2px solid #1f1a10b8;border-radius:999px;padding:.9rem 2.25rem;font-size:1.05rem;font-weight:700;animation:.28s ease-out forwards post-win-ghost-fade;position:absolute;top:50%;left:50%;transform:translate(-50%,calc(6px - 50%));box-shadow:inset 0 1px #ffffff7a,0 3px #1f1a108c,0 12px 30px #00000080}.post-win-ghost-cta:hover{background:#f0d470;border-color:#1f1a10;box-shadow:inset 0 1px #ffffff8c,0 3px #1f1a1099,0 14px 34px #0000008f}.post-win-ghost-cta:focus-visible{outline-offset:3px;background:#f0d470;border-color:#1f1a10;outline:3px solid #fff}@keyframes post-win-ghost-fade{0%{opacity:0;transform:translate(-50%,calc(6px - 50%))}to{opacity:1;transform:translate(-50%,-50%)}}@media (prefers-reduced-motion:reduce){.post-win-ghost-cta{opacity:1;animation:none;transform:translate(-50%,-50%)}}.game-control-menu{top:auto;bottom:calc(100% + .35rem);background:var(--color-bg-elevated);border:1px solid var(--color-border-strong);border-radius:var(--radius-lg);min-width:12rem;z-index:var(--z-panel);animation:menu-appear var(--duration-fast) var(--ease-out);max-height:calc(100dvh - var(--dock-height,3.5rem) - 1.5rem);padding:.35rem;position:absolute;inset-inline-end:0;overflow-y:auto;box-shadow:0 4px 20px #0000002e,0 1px 3px #0000001a}.game-menu-item{border-radius:var(--radius-md);width:100%;min-width:0;min-height:2.75rem;color:var(--color-text);font-family:var(--font-sans);overflow-wrap:anywhere;white-space:normal;text-align:start;cursor:pointer;transition:background-color var(--duration-fast) var(--ease-out);background:0 0;border:none;align-items:center;padding:.55rem .85rem;font-size:.8rem;font-weight:500;line-height:1.25;display:flex}@media (hover:hover){.game-menu-item:hover{background:var(--color-surface-muted)}}.game-menu-divider{background:var(--color-border);height:1px;margin:.2rem .5rem}.game-menu-link{color:var(--color-text-muted);font-weight:400;text-decoration:none}@keyframes menu-appear{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.game-control-menu{animation:none}}.game-status{transition:opacity .3s var(--ease-out);background:#00000014;border-radius:999px;align-items:center;gap:.55rem;padding:.28rem .7rem;display:inline-flex}.game-status[data-idle]{opacity:.85}.game-status-divider{background:var(--color-border);flex-shrink:0;width:1px;height:.95rem}.game-status-icon{opacity:.85;flex-shrink:0}.game-status-item{font-variant-numeric:tabular-nums;color:var(--color-text);letter-spacing:.02em;align-items:center;gap:.3em;font-size:.875rem;font-weight:500;display:inline-flex}.win-overlay{padding-top:max(.5rem, env(safe-area-inset-top,0px));padding-right:max(.5rem, env(safe-area-inset-right,0px));padding-bottom:max(.5rem, env(safe-area-inset-bottom,0px));padding-left:max(.5rem, env(safe-area-inset-left,0px));-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:var(--z-modal);animation:win-fade-in var(--duration-slow) var(--ease-out);background:#00000059;justify-content:center;align-items:center;display:flex;position:fixed;inset:0;overflow:hidden}.win-content{min-width:0;max-width:100%;background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-xl);max-block-size:100%;box-shadow:var(--shadow-lg);overscroll-behavior:contain;width:min(20rem,100%);animation:win-content-in var(--duration-slow) var(--ease-out);flex-direction:column;align-items:center;gap:1.5rem;padding:2.5rem clamp(1.25rem,7vw,3rem);display:flex;position:relative;overflow:hidden auto}.game-shell:has(>canvas[data-win-cascade]) :is(.game-main,.game-board-stage,.spider-board,.win-content){overscroll-behavior-y:auto}.game-shell:has(>canvas[data-win-cascade]) .card{touch-action:pan-y}.win-close{top:.6rem;border-radius:var(--radius-md);width:2rem;height:2rem;color:var(--color-text-muted);cursor:pointer;z-index:2;transition:background-color var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out);background:0 0;border:none;justify-content:center;align-items:center;font-size:1.35rem;line-height:1;display:flex;position:absolute;inset-inline-end:.6rem}.win-close:hover,.win-close:focus-visible{background:var(--color-surface-muted);color:var(--color-text);outline:none}.win-watermark{color:var(--color-text);opacity:.04;pointer-events:none;-webkit-user-select:none;user-select:none;font-size:8rem;line-height:1;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.win-title{letter-spacing:-.04em;color:var(--color-text);overflow-wrap:anywhere;text-align:center;z-index:1;max-width:100%;margin:0;font-size:1.75rem;font-weight:700}.win-detail{color:var(--color-text-muted);text-align:center;z-index:1;margin:-.8rem 0 0;font-size:.9rem}.win-suit{color:var(--color-accent);z-index:1;margin-bottom:-1rem;font-size:1.35rem;line-height:1}.win-framed:before{content:"";border:1px solid color-mix(in srgb, var(--color-accent) 26%, transparent);border-radius:calc(var(--radius-xl) - 6px);pointer-events:none;z-index:1;position:absolute;inset:7px}.deadlock-content{text-align:center;gap:1rem}.deadlock-body{color:var(--color-text-muted);z-index:1;max-width:16rem;margin:0;font-size:.9375rem;line-height:1.5}.deadlock-recovery-status{color:var(--color-text-muted);overflow-wrap:anywhere;max-width:24rem;font-size:.875rem;line-height:1.4}.win-stats{z-index:1;gap:0;display:flex;position:relative}.win-stats-has-badge{padding-bottom:1.55rem}.win-stats-has-badge>.win-badge{inset-inline-start:50%;z-index:2;position:absolute;bottom:0;transform:translate(-50%)}[dir=rtl] .win-stats-has-badge>.win-badge{transform:translate(50%)}.win-stat{flex-direction:column;align-items:center;gap:.25rem;min-width:0;padding:.3rem .45rem;display:flex}.win-stat+.win-stat{border-inline-start:1px solid var(--color-border)}.win-stats-cols{grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;width:100%;display:grid}.win-record{z-index:1;border-top:1px solid color-mix(in srgb, var(--color-text-muted) 22%, transparent);grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;width:100%;margin:-.5rem 0;padding-top:.7rem;display:grid}.win-record-item{flex-direction:column;align-items:center;gap:.2rem;min-width:0;padding-inline:.35rem;display:flex}.win-record-item+.win-record-item{border-inline-start:1px solid var(--color-border)}.win-record-value{font-variant-numeric:tabular-nums;white-space:nowrap;color:color-mix(in srgb, var(--color-accent) 60%, var(--color-text));font-size:1.05rem;font-weight:700;line-height:1.1}.win-record-label{letter-spacing:.08em;text-transform:uppercase;min-width:0;color:var(--color-text-muted);overflow-wrap:anywhere;text-align:center;font-size:.58rem;font-weight:500}.win-stat-value{font-variant-numeric:tabular-nums;color:var(--color-text);font-size:1.45rem;font-weight:700;line-height:1.1}.win-stat-value-fit{letter-spacing:-.025em;font-size:.98rem}.win-stat-value-compact{letter-spacing:-.025em;font-size:.82rem}.win-stat-label{min-width:0;color:var(--color-text-muted);letter-spacing:.08em;text-transform:uppercase;overflow-wrap:anywhere;text-align:center;font-size:.62rem;font-weight:500}.win-copy-result-btn{border:1px solid color-mix(in srgb, var(--color-text) 18%, transparent);color:color-mix(in srgb, var(--color-text) 78%, transparent);letter-spacing:.01em;cursor:pointer;transition:border-color .15s var(--ease-out), color .15s var(--ease-out), background-color .15s var(--ease-out);background:0 0;border-radius:.4rem;align-items:center;gap:.4rem;padding:.5rem .9rem;font-size:.82rem;font-weight:500;display:inline-flex}.win-copy-result-btn:hover,.win-copy-result-btn:focus-visible{color:var(--color-text);border-color:color-mix(in srgb, var(--color-text) 34%, transparent);background:color-mix(in srgb, var(--color-text) 6%, transparent);outline:none}.win-copy-result-btn:focus-visible{box-shadow:0 0 0 2px var(--color-accent)}.win-primary-btn{border-radius:var(--room-radius-control,10px);color:#1f1a10;letter-spacing:.01em;cursor:pointer;width:100%;min-height:52px;transition:transform var(--duration-fast) var(--ease-out), box-shadow var(--duration-fast) var(--ease-out), background-color var(--duration-fast) var(--ease-out);background:linear-gradient(#ffffff29,#0000 55%),#e8c858;border:1px solid #efd98a;justify-content:center;align-items:center;gap:.5rem;padding:.8rem 1.5rem;font-size:1.05rem;font-weight:750;display:inline-flex;box-shadow:inset 0 1px #ffffff52,0 6px 16px #00000038,0 2px 5px #00000024}.win-primary-btn:hover{background:linear-gradient(#ffffff2e,#0000 55%),#f0d470;transform:translateY(-1px);box-shadow:inset 0 1px #ffffff5c,0 8px 20px #0000003d,0 3px 6px #00000024}.win-primary-btn:active{transform:translateY(0);box-shadow:inset 0 1px #ffffff3d,0 3px 8px #0003}.win-primary-btn:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:2px}.win-actions{z-index:1;flex-direction:column;align-items:center;gap:.5rem;width:100%;margin-top:.5rem;display:flex}@media (width>=481px){.win-actions{margin-top:1.25rem}}@media (width<=480px){.win-actions{margin-top:auto;padding-top:1rem}}.win-actions .inline-flex{overflow-wrap:anywhere;text-align:center;white-space:normal;width:100%;min-width:0;line-height:1.2}.win-actions .win-celebration-primary{color:#1f1a10;background:#e8c858;border:1px solid #eed787;box-shadow:inset 0 1px #ffffff42,0 3px 9px #00000029}.win-actions .win-celebration-primary:hover{color:#1f1a10;background:#f0d470}.win-actions .win-celebration-primary:active{background:#dfbd4b}.win-badge{letter-spacing:.04em;text-transform:uppercase;color:#1f1a10;white-space:nowrap;background:#e8c858;border-radius:999px;margin-top:.2rem;padding:.15rem .55rem;font-size:.55rem;font-weight:600;display:inline-block}.win-share-toast{text-align:center;color:var(--color-text);background:var(--color-bg-elevated);border:1px solid var(--color-border-strong);border-radius:var(--radius-md,.5rem);animation:win-toast-in var(--duration-fast) var(--ease-out);margin-top:.4rem;padding:.45rem .75rem;font-size:.78rem}@keyframes win-toast-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes win-fade-in{0%{opacity:0}to{opacity:1}}@keyframes win-content-in{0%{opacity:0;transform:scale(.96)translateY(8px)}to{opacity:1;transform:scale(1)translateY(0)}}@media (prefers-reduced-motion:reduce){.win-overlay,.win-content{animation:none}}.logo-modal-overlay{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:var(--z-modal);animation:win-fade-in var(--duration-normal) var(--ease-out);background:#0006;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.logo-modal-content{background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);width:100%;max-width:22rem;animation:win-content-in var(--duration-normal) var(--ease-out);flex-direction:column;align-items:center;gap:1.25rem;padding:2rem 2.25rem 1.75rem;display:flex;position:relative}.logo-modal-close{border-radius:var(--radius-md);width:2rem;height:2rem;color:var(--color-text-muted);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out);background:0 0;border:none;justify-content:center;align-items:center;font-size:1.35rem;line-height:1;display:flex;position:absolute;top:.6rem;right:.6rem}.logo-modal-close:hover,.logo-modal-close:focus-visible{background:var(--color-surface-muted);color:var(--color-text);outline:none}.logo-modal-title{letter-spacing:-.02em;color:var(--color-text);text-align:center;margin:0;font-size:1.4rem;font-weight:700}.logo-modal-body{color:var(--color-text-muted);text-align:center;max-width:18rem;margin:0;font-size:.95rem;line-height:1.5}.logo-modal-actions{flex-direction:column;gap:.6rem;width:100%;margin-top:.25rem;display:flex}.logo-modal-actions .inline-flex{width:100%}@media (prefers-reduced-motion:reduce){.logo-modal-overlay,.logo-modal-content{animation:none}}.logo-modal-overlay:has(>.feedback-modal-content){padding-top:max(1rem, env(safe-area-inset-top,0px));padding-right:max(1rem, env(safe-area-inset-right,0px));padding-bottom:max(1rem, env(safe-area-inset-bottom,0px));padding-left:max(1rem, env(safe-area-inset-left,0px))}.feedback-modal-content{max-width:28rem;max-height:calc(100dvh - max(1rem, env(safe-area-inset-top,0px)) - max(1rem, env(safe-area-inset-bottom,0px)));overscroll-behavior:contain;gap:1rem;overflow-y:auto}.feedback-form{flex-direction:column;gap:.9rem;width:100%;display:flex}.feedback-inline .feedback-modal-content{max-width:100%;max-height:none;padding:clamp(1rem,4vw,2rem);animation:none;overflow:visible}.feedback-type-group{border:none;gap:.4rem;margin:0;padding:0;display:flex}.feedback-type-chip{border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-muted);background:var(--color-surface-muted);cursor:pointer;transition:background var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out);flex:1;justify-content:center;align-items:center;padding:.5rem .75rem;font-size:.85rem;display:flex}.feedback-type-chip input{opacity:0;pointer-events:none;position:absolute}.feedback-type-chip:hover{color:var(--color-text)}.feedback-type-chip-active{border-color:var(--color-accent);color:var(--color-text);background:#ffd7001f}.feedback-field{flex-direction:column;gap:.35rem;display:flex}.feedback-field-label{color:var(--color-text-muted);letter-spacing:.02em;text-transform:uppercase;font-size:.78rem;font-weight:600}.feedback-field-optional{text-transform:none;font-weight:400}.feedback-textarea,.feedback-input{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-muted);width:100%;color:var(--color-text);resize:vertical;transition:border-color var(--duration-fast) var(--ease-out), box-shadow var(--duration-fast) var(--ease-out);padding:.6rem .75rem;font-family:inherit;font-size:.95rem;line-height:1.4}.feedback-textarea:focus-visible,.feedback-input:focus-visible{border-color:var(--color-accent);outline:none;box-shadow:0 0 0 3px #ffd7002e}.feedback-honeypot{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute;left:-9999px}.feedback-disclosure{color:var(--color-text-muted);margin:-.15rem 0 0;font-size:.75rem;line-height:1.45}.feedback-error{color:var(--color-danger,#ff6b6b);text-align:center;margin:0;font-size:.85rem}.feedback-error-detail{opacity:.7;font-size:.78rem}.feedback-success{color:var(--color-text);font-weight:600}.feedback-trigger{width:2.75rem;height:2.75rem;bottom:calc(4.75rem + env(safe-area-inset-bottom,0px) + .35rem);right:calc(env(safe-area-inset-right,0px) + .75rem);color:var(--color-text);letter-spacing:.02em;cursor:pointer;border-radius:var(--radius-sm);opacity:1;transition:opacity var(--duration-fast) var(--ease-out), background var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out);z-index:40;background:0 0;border:none;justify-content:center;align-items:center;padding:.5rem;font-family:inherit;font-size:.78rem;display:inline-flex;position:absolute}.feedback-trigger:hover,.feedback-trigger:focus-visible{opacity:1;color:var(--color-text);background:#ffffff0f;outline:none}.feedback-trigger:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}@media (width<=932px){.feedback-trigger{display:none}}.shortcut-hint{font-family:var(--font-sans);color:var(--color-text-muted);opacity:1;vertical-align:middle;background:#ffffff1f;border:1px solid #ffffff2e;border-radius:3px;margin-left:.4rem;padding:.18rem .38rem;font-size:.62rem;font-weight:600;line-height:1;display:none;box-shadow:inset 0 -1px #0003}.game-controls .shortcut-hint{color:#fff;background:#ffffff1a;border-color:#ffffff47}.menu-shortcut{margin-left:auto;padding-left:1.5rem}@media (hover:hover) and (width>=600px){.shortcut-hint{display:inline-block}}@media (width>=768px){.game-controls{gap:.65rem;min-height:4.25rem;padding:.85rem max(1.25rem,50% - 500px)}.game-control-btn{color:#ffffffe6;gap:.45rem;min-height:46px;padding:.6rem 1.2rem;font-size:1rem;font-weight:600}.game-control-undo,.game-control-hint,.game-control-focus,.game-control-menu-btn{background:#ffffff12;border:1px solid #ffffff29}.game-control-icon{width:20px;height:20px}.game-control-btn.game-control-new{padding:.6rem 1.4rem;font-weight:700}.game-status-item{font-size:.9375rem}.game-status-icon{width:15px;height:15px}.shortcut-hint{padding:.18rem .4rem;font-size:.66rem}}@media (width>=768px) and (hover:hover){.game-control-undo:hover:not(:disabled),.game-control-hint:hover:not(:disabled),.game-control-focus:hover:not(:disabled),.game-control-menu-btn:hover:not(:disabled){color:#fff;background:#ffffff21;border-color:#ffffff4d}}.focus-exit-btn{z-index:var(--z-panel);border-radius:var(--radius-md);width:2rem;height:2rem;color:var(--color-text);opacity:.35;cursor:pointer;transition:opacity var(--duration-fast) var(--ease-out);background:0 0;border:none;justify-content:center;align-items:center;display:flex;position:absolute;top:.4rem;right:.5rem}.focus-exit-btn:hover{opacity:.8}.focus-exit-btn:focus-visible{opacity:.9;outline:var(--focus-ring-width) solid var(--color-focus-ring);outline-offset:var(--focus-ring-offset)}.focus-exit-btn{display:none}@media (width<=480px){.game-controls{padding:.5rem .65rem;padding-bottom:calc(.5rem + env(safe-area-inset-bottom,0px));background:#0000008c;border-top:1px solid #ffffff0f;border-bottom:none;border-radius:0;flex-shrink:0;justify-content:space-between;gap:.25rem;width:100%;max-width:none;height:auto;min-height:44px}.game-control-spacer,.game-controls-brand{display:none}.game-control-btn,a.game-control-stats{justify-content:center;min-width:44px;min-height:44px;padding:.45rem .55rem;font-size:.72rem}.game-control-btn.game-control-new{margin-right:.35rem}.game-control-stats .game-control-label,.game-control-undo .game-control-label,.game-control-hint .game-control-label,.game-control-label-full{display:none}.game-control-label-compact{display:inline}.game-control-stats{padding:.45rem}.game-status{gap:.55rem}.game-status-item{color:#ffffffd1;font-size:.72rem}}@media (width<=360px){.game-controls{padding-left:calc(.35rem + env(safe-area-inset-left,0px));padding-right:calc(.35rem + env(safe-area-inset-right,0px));gap:.15rem}.game-control-btn{padding:.4rem;font-size:.68rem}.game-control-btn.game-control-new{margin-right:.2rem;padding:.4rem .55rem}.game-control-stats{padding:.4rem .3rem}}@media (width<=420px){.win-content{padding:2rem}}@media (height<=480px){.win-content{gap:.65rem;max-height:calc(100dvh - 1rem);padding:.9rem 2rem;overflow:hidden auto}.win-actions{margin-top:.25rem}}.game-control-btn.game-control-new{background:var(--color-accent);color:var(--color-bg);font-weight:600}@media (hover:hover){.game-control-btn.game-control-new:hover:not(:disabled){background:var(--color-accent-hover);color:var(--color-bg)}}
