:root{--color-background: #f2efe9;--color-surface: #f2efe9;--color-text: #465064;--color-accent: #4c8dff;--color-ink: #2b2f3a;--color-ink-soft: #6b7280;--color-board-mat: #e7e5df;--color-accent-secondary: #8a94a8;--color-on-accent: #ffffff;--color-hint-alert: #2f7cf6;--color-on-hint-alert: #ffffff;--font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-family-display: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--radius: 12px;--border-width: 0px;--space: 16px;--level-label-font-size: 31px;--hint-button-size: 52px;--level-heading-bar-gap: 0px;--hint-button-track-gap: -55px;--game-hud-height: 140px;--game-progress-track-width: 460px;color-scheme:dark light}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--color-background);color:var(--color-text);font-family:var(--font-family);-webkit-font-smoothing:antialiased}.app-shell{display:flex;min-height:100%;flex-direction:column}.app-footer{display:flex;align-items:center;justify-content:space-between;gap:var(--space);padding:calc(var(--space) * .75) var(--space)}.app-bottom-rule{flex:0 0 auto;height:3px;background:var(--color-accent)}.app-header{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:var(--space);padding:calc(var(--space) * 1.6) var(--space);background:var(--color-ink);color:var(--color-background);line-height:1.2}.app-brandbar{grid-column:1;display:flex;flex-direction:column;gap:.35rem}.app-brandbar-name{margin:0;font-family:var(--font-family);color:inherit;font-size:1.25rem;font-weight:700;letter-spacing:.01em;text-transform:uppercase}.app-brandbar-rule{display:block;width:2.75rem;height:2px;background:var(--color-accent)}:root[data-header-align=center] .app-brandbar{align-items:center;text-align:center}.app-header-level{grid-column:2;justify-self:center;font-family:var(--font-family);font-size:clamp(1.25rem,5vw,var(--level-label-font-size));font-weight:700;letter-spacing:.02em;text-transform:uppercase;white-space:nowrap}.app-nav{grid-column:3;justify-self:end;display:flex;align-items:center;gap:calc(var(--space) * .75)}.nav-item{font-size:.875rem;opacity:.75}.app-header-dev-slot{display:contents}.app-header-dev-controls{display:flex;align-items:center;gap:calc(var(--space) * .5)}@media(max-width:640px){.app-header{padding:calc(var(--space) * 1.2) var(--space)}.app-brandbar{display:none}}.app-main{display:flex;flex:1;align-items:flex-start;justify-content:center;padding:var(--space)}.app-footer{justify-content:center}.app-debug{margin:0;font-size:.75rem;opacity:.6}.puzzle-stage{width:100%;max-width:1400px}.game-surface{position:relative;width:100%;height:min(82vh,1100px);overflow:hidden;border-radius:var(--radius);background:var(--color-surface)}.game-mount{width:100%;height:100%;touch-action:none}.game-credit{position:absolute;right:calc(var(--space) * .75);bottom:calc(var(--space) * .5);margin:0;font-size:.6875rem;opacity:.55;pointer-events:none}.tutorial-banner{position:absolute;top:calc(var(--game-hud-height) / 2);left:50%;z-index:2;display:flex;align-items:center;justify-content:center;overflow:hidden;width:calc(100% - var(--space) * 2);max-width:calc(100% - var(--space) * 2);min-height:calc(var(--game-hud-height) * .78);margin:0;padding:1.25rem 1rem 1.25rem calc(1rem + var(--tutorial-card-spine-width, 0px));transform:translate(-50%,-50%);border:4px solid;font-family:var(--font-family-display);font-size:clamp(.8125rem,3.6vw,1.1875rem);font-weight:700;line-height:1.4;text-align:center;white-space:nowrap;pointer-events:none}.tutorial-banner:before{content:"";position:absolute;inset:0 auto 0 0;width:var(--tutorial-card-spine-width, 0px);background:var(--tutorial-card-spine-color, transparent)}.level-dev-controls{display:flex;align-items:center;gap:calc(var(--space) * .5);padding:calc(var(--space) * .5) var(--space) 0;margin-bottom:var(--level-heading-bar-gap)}.level-button{padding:.45rem .75rem;border:0;border-radius:calc(var(--radius) / 2);background:transparent;color:var(--color-text);font:inherit;cursor:pointer;opacity:.72}.level-button:disabled{cursor:not-allowed;opacity:.45}.hint-button[hidden]{display:none}.app-hard-tag-row{display:flex;justify-content:center;margin-top:-16px}.level-difficulty{display:inline-flex;align-items:center;padding:.4em 1em;border-radius:6px;background:var(--color-accent);color:var(--color-on-accent);font-family:var(--font-family);font-size:.9rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;box-shadow:0 3px 8px #00000040}.skin-button{border:0 solid transparent;border-image-source:url(data:image/png;base64,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);border-image-slice:117 257 fill;border-image-width:117px 257px;border-image-repeat:stretch;background:transparent;color:#fff;font:inherit;font-weight:600;cursor:pointer;min-width:96px;padding:.9rem 1.4rem;transition:filter .15s ease,transform .1s ease}.skin-button:hover:not(:disabled){filter:brightness(1.08)}.skin-button:active:not(:disabled){transform:translateY(2px);filter:brightness(.94)}.skin-button:disabled{cursor:not-allowed;filter:grayscale(.6) brightness(.75)}.level-button.skin-button{opacity:1}.hint-button{position:absolute;top:calc(var(--game-hud-height) / 2);left:min(calc(50% + var(--game-progress-track-width) / 2 + var(--hint-button-track-gap)),calc(100% - var(--hint-button-size) - var(--space) * .5 - var(--hint-button-size) * .12 - 2px));transform:translateY(-50%);width:var(--hint-button-size);height:var(--hint-button-size);display:flex;align-items:center;justify-content:center;padding:0;border:none;border-radius:28%;background:var(--color-accent);box-shadow:0 3px 10px #00000040;cursor:pointer;transition:transform .15s ease,box-shadow .2s ease,opacity .2s ease}.hint-button:hover:not(:disabled){transform:translateY(-50%) translateY(-2px)}.hint-button:active:not(:disabled){transform:translateY(-50%) scale(.94)}.hint-button:disabled{cursor:not-allowed;opacity:.5}.hint-icon{width:60%;height:60%;fill:none;color:var(--color-on-accent)}.hint-badge{position:absolute;top:calc(var(--hint-button-size) * -.12);right:calc(var(--hint-button-size) * -.12);min-width:calc(var(--hint-button-size) * .46);height:calc(var(--hint-button-size) * .46);padding:0 .3em;display:flex;align-items:center;justify-content:center;border-radius:999px;background:var(--color-ink);color:var(--color-background);font-family:var(--font-family);font-weight:800;font-size:max(12px,calc(var(--hint-button-size) * .34));line-height:1;box-shadow:0 0 0 2px var(--color-surface)}.hint-button:disabled .hint-badge{background:#ffffff73}.hint-badge-reward{background:var(--color-hint-alert)}.hint-badge-icon{width:62%;height:62%;fill:var(--color-on-hint-alert)}.hint-button-charged{animation:hint-breathe 2.6s ease-in-out infinite}@keyframes hint-breathe{0%,to{box-shadow:0 3px 10px #00000040,0 0 color-mix(in srgb,var(--color-accent) 45%,transparent)}50%{box-shadow:0 3px 12px #0000004d,0 0 0 8px color-mix(in srgb,var(--color-accent) 0%,transparent)}}@media(prefers-reduced-motion:reduce){.hint-button-charged{animation:none}}.hint-sheet-backdrop{position:fixed;inset:0;z-index:5;display:flex;align-items:flex-end;justify-content:center;background:#00000080;touch-action:none}.hint-sheet{width:min(100%,34rem);padding:calc(var(--space) * 2) calc(var(--space) * 1.5) calc(var(--space) * 1.5);border:var(--border-width) solid var(--color-ink);border-bottom:0;border-radius:var(--radius) var(--radius) 0 0;background:var(--color-background);text-align:left}:root[data-header-align=center] .hint-sheet{text-align:center}.hint-sheet-eyebrow{display:inline-block;margin:0 0 .9em;padding:.35em .85em;border-radius:999px;background:var(--color-hint-alert);color:var(--color-on-hint-alert);font-family:var(--font-family);font-size:.8125rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.hint-sheet-title{margin:0 0 .6em;font-family:var(--font-family-display);color:var(--color-ink);font-size:2rem;font-weight:700}.hint-sheet-body{margin:0 0 calc(var(--space) * 1.5);color:var(--color-ink-soft);font-family:var(--font-family);font-size:1.0625rem;line-height:1.5}.hint-sheet-cta,.hint-sheet-dismiss{display:block;width:100%;padding:1.15rem 1rem;border:var(--border-width) solid var(--color-ink);border-radius:calc(var(--radius) / 2);font-family:var(--font-family);font-weight:700;font-size:1rem;letter-spacing:.02em;text-transform:uppercase;cursor:pointer}.hint-sheet-cta{margin-bottom:.85rem;background:var(--color-accent);color:var(--color-on-accent)}.hint-sheet-dismiss{background:var(--color-background);color:var(--color-ink)}.hint-sheet-cta:hover,.hint-sheet-dismiss:hover{filter:brightness(.97)}.game-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space);padding:calc(var(--space) * 1.5);text-align:center}.screen{padding:var(--space)}.screen-centered{display:flex;min-height:100%;flex-direction:column;align-items:center;justify-content:center;gap:var(--space)}.screen-label{margin:0;font-size:.875rem;opacity:.75}.notice{max-width:34rem;padding:var(--space);border:var(--border-width) solid var(--color-ink);border-radius:var(--radius);background:var(--color-surface);text-align:left}.notice-info{border-left:3px solid var(--color-accent)}.notice-warning{border-left:3px solid #f0b429}.notice-error{border-left:3px solid #e5484d}.notice-title{margin:0;font-weight:600}.notice-detail{margin:calc(var(--space) * .5) 0 0;font-size:.875rem;opacity:.8}.notice code{font-size:.8125rem;overflow-wrap:anywhere}.button{margin-top:var(--space);padding:.5rem 1rem;border:var(--border-width) solid var(--color-ink);border-radius:calc(var(--radius) / 2);background:var(--color-accent);color:var(--color-on-accent);font:inherit;font-size:.875rem;cursor:pointer}.spinner{width:28px;height:28px;border:3px solid rgb(255 255 255 / .18);border-top-color:var(--color-accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.spinner{animation-duration:2.4s}}.ad-mock{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;padding:var(--space);background:#080a0ee0;touch-action:none}.ad-mock-panel{display:flex;width:min(420px,100%);flex-direction:column;align-items:center;gap:calc(var(--space) * .75);padding:calc(var(--space) * 2);border-radius:var(--radius);background:#12161d;color:#e8ecf4;text-align:center}.ad-mock-badge{margin:0;padding:2px 10px;border-radius:999px;background:#e8ecf4;color:#12161d;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.ad-mock-label{margin:0;font-size:20px;font-weight:600}.ad-mock-hint{margin:0;opacity:.65;font-size:13px}.ad-mock-close{margin-top:calc(var(--space) * .5);padding:10px 22px;border:0;border-radius:var(--radius);background:var(--color-accent);color:var(--color-on-accent);font:inherit;font-weight:600;cursor:pointer}.ad-mock-close:disabled{background:#2a313d;color:#8a93a3;cursor:default}
