@import url("https://fonts.googleapis.com/css2?family=Alegreya:wght@400;500;700&display=swap");

@media(max-width:360px){.campaign-heading{align-items:flex-start!important;flex-direction:column!important;gap:2px!important}}

.chapter-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.chapter-button{min-height:78px;text-align:left;display:flex;flex-direction:column;justify-content:center;gap:4px;border:2px solid var(--ink);border-radius:12px;background:#fff;color:var(--ink);cursor:pointer}.chapter-button b{font-size:1rem}.chapter-button span{color:var(--ink-soft);font-size:.88rem}.chapter-button.completed{background:var(--color-green)}.chapter-button:disabled{opacity:.42;cursor:not-allowed}.cell.shadow-gate{border:5px solid #000}.cell.dawn-barrier{background:#fffdf6;border:2px solid #c8bda9;box-shadow:inset 0 2px 4px rgba(0,0,0,.06)}.cell.dawn-barrier:after{content:"";position:absolute;top:50%;left:50%;width:68%;height:68%;transform:translate(-50%,-50%);background:#0f0f0f;border-radius:6px;box-shadow:0 6px 12px rgba(0,0,0,.18)}.cell.color-wall-green,.cell.color-wall-red{background:#0f0f0f;border-color:#0f0f0f}.cell.color-wall-green:after,.cell.color-wall-red:after{content:"";position:absolute;top:50%;left:50%;width:80%;height:80%;transform:translate(-50%,-50%);border-radius:12px;z-index:1;background:transparent;border:5px solid currentColor}.cell.color-wall-green:after{color:var(--color-green)}.cell.color-wall-red:after{color:var(--color-red)}.cell.dizzy{background:#0f0f0f;border-color:#0f0f0f}.cell.dizzy:after{content:"";position:absolute;top:50%;left:50%;width:80%;height:80%;transform:translate(-50%,-50%);border-radius:12px;z-index:1;background:transparent;border:5px solid #fffdf6}.tiny-grid .cell{border-radius:3px;border-width:1px}.tiny-grid .cell.goal-green,.tiny-grid .cell.goal-red,.tiny-grid .cell.shadow-gate{border-width:2px}.tiny-grid .cell.color-wall-green:after,.tiny-grid .cell.color-wall-red:after,.tiny-grid .cell.dizzy:after{border-width:2px;border-radius:3px}.tiny-grid .cell.dawn-barrier:after{border-radius:2px}.tiny-grid .character{box-shadow:none;border-radius:2px}.tiny-grid .active-cell{outline-width:2px;outline-offset:1px}@media(max-width:520px){.chapter-grid{grid-template-columns:1fr}.chapter-button{min-height:62px}.chapter-button b{font-size:.94rem}}

*{box-sizing:border-box}:root{--ink:#1f1b17;--ink-soft:#4b4036;--parchment:#f6f1e5;--parchment-dark:#e4d6c0;--accent:#111;--color-green:#2ecc71;--color-red:#e74c3c;--bg-1:#fff9ef;--bg-2:#f1e6d3;--bg-3:#dfd1bb;--grid-gap:8px;--cell-size:60px;--radius:18px}html,body{margin:0;padding:0;min-height:100%;background-color:var(--bg-1);background-image:radial-gradient(circle at 12% 18%,rgba(255,255,255,.7),rgba(255,255,255,0) 58%),radial-gradient(circle at 88% 12%,rgba(255,255,255,.35),rgba(255,255,255,0) 55%),linear-gradient(140deg,var(--bg-1),var(--bg-2) 52%,var(--bg-3) 100%)}body{font-family:Alegreya,Garamond,Georgia,serif;color:var(--ink);min-height:100vh;min-height:100svh;min-height:100dvh;background-attachment:fixed;-webkit-tap-highlight-color:transparent}.page{width:min(1080px,100%);min-height:100vh;margin:0 auto;padding:42px 20px 64px;display:flex;flex-direction:column;gap:40px}.top-nav{display:flex;align-items:center;justify-content:space-between;gap:12px}.top-nav .nav-left,.top-nav .nav-right{display:flex;align-items:center;gap:12px;flex:1}.top-nav .nav-center{display:flex;justify-content:center;flex:1}.top-nav .top-link{width:100%;justify-content:center}.top-link{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;font:inherit;font-size:clamp(.8rem,2.4vw,1rem);padding:10px 18px;border-radius:999px;border:2px solid var(--ink);background:#fff;color:var(--ink);cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,background .2s ease;white-space:nowrap}.top-link:hover{transform:translateY(-2px);box-shadow:0 10px 18px rgba(0,0,0,.15)}.top-link:active{transform:translateY(0);box-shadow:none}.top-link.ghost{background:transparent}.view[hidden]{display:none!important}.hero{display:flex;flex-direction:column;gap:18px;animation:riseIn .8s ease both}.hero-title h1{margin:0;font-family:"Bodoni MT",Didot,Palatino,serif;font-size:clamp(36px,8vw,72px);letter-spacing:2px}.eyebrow{text-transform:uppercase;letter-spacing:3px;font-size:.85rem;font-weight:700}.subtitle{max-width:640px;margin:0;font-size:1.1rem;color:var(--ink-soft);line-height:1.35}.campaign{max-width:720px;margin:38px auto 0;width:100%;padding:22px;border:2px solid var(--ink);border-radius:var(--radius);background:var(--parchment);box-shadow:0 18px 34px rgba(0,0,0,.18)}.campaign-heading{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:16px}.campaign-heading h2,.how h2{margin:0;font-family:"Bodoni MT",Didot,Palatino,serif;font-size:clamp(26px,5vw,40px);letter-spacing:1px}.campaign-heading span{color:var(--ink-soft);font-weight:700}.level-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.level-grid button{aspect-ratio:1;border:2px solid var(--ink);border-radius:12px;background:#fff;color:var(--ink);font:700 1.15rem Alegreya,Garamond,serif;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,background .2s ease}.level-grid button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 15px rgba(0,0,0,.14)}.level-grid button.completed{background:var(--color-green)}.level-grid button:disabled{opacity:.45;cursor:not-allowed}.reset-progress{margin-top:16px}.compact-hero{align-items:center;text-align:center}.compact-hero .subtitle{font-size:1rem}.game{display:flex;flex-direction:column;align-items:center;gap:16px;padding-top:64px;animation:riseIn .9s ease both;animation-delay:.08s}.board-shell{position:relative;display:inline-flex;flex-direction:column;align-items:center;max-width:100%}.board-wrap{max-width:100%;background:var(--parchment);border:2px solid var(--ink);border-radius:var(--radius);padding:18px min(20px,calc(var(--cell-size)/2 - 2px)) 22px;box-shadow:0 18px 34px rgba(0,0,0,.18);display:flex;flex-direction:column;align-items:center;gap:12px;position:relative;z-index:2;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.board-header{width:100%;height:28px;display:flex;justify-content:center;align-items:center;font-weight:700;letter-spacing:.5px;flex-wrap:nowrap;white-space:nowrap;font-variant-numeric:tabular-nums;position:relative}.shift-counter,.move-counter{position:absolute;top:50%;transform:translateY(-50%)}.shift-counter{left:0}.move-counter{right:0;text-align:right}.count-value{display:inline-block;min-width:2ch;text-align:right;font-variant-numeric:tabular-nums}.grid{display:inline-grid;gap:var(--grid-gap);padding:10px;background:var(--parchment);border:3px solid var(--ink);border-radius:16px;box-shadow:inset 0 2px 6px rgba(0,0,0,.08);touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.actions{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;width:min(520px,100%)}.actions button{flex:1 1 0}button{font:inherit;font-size:clamp(.8rem,2.4vw,1rem);padding:10px 18px;border-radius:999px;border:2px solid var(--ink);background:#fff;color:var(--ink);cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,background .2s ease;touch-action:manipulation;-webkit-tap-highlight-color:transparent;white-space:nowrap}button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 10px 18px rgba(0,0,0,.15)}button:active{transform:translateY(0);box-shadow:none}button:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}button.primary{background:#111;color:#fff}button.ghost{background:transparent}.hidden{display:none}.banner{padding:8px 12px;background:#111;color:#fff;font-weight:700;border-radius:999px;border:2px solid #111;opacity:0;transform:translateY(6px);transition:opacity .2s ease,transform .2s ease;cursor:pointer;appearance:none}.banner.show{opacity:1;transform:translateY(0)}.banner.invalid{background:#b5332a;border-color:#b5332a;cursor:default;pointer-events:none}.banner.invalid.flash{animation:invalidFlash .35s ease}.cell{width:var(--cell-size);height:var(--cell-size);background:#fffdf6;border:2px solid #c8bda9;position:relative;border-radius:8px;box-shadow:inset 0 2px 4px rgba(0,0,0,.06)}.cell.wall{background:#0f0f0f;border-color:#0f0f0f;box-shadow:inset 0 0 0 2px #0f0f0f}.cell.goal-green{border:5px solid var(--color-green)}.cell.goal-red{border:5px solid var(--color-red)}.character{position:absolute;top:50%;left:50%;width:68%;height:68%;transform:translate(-50%,-50%);border-radius:6px;box-shadow:0 6px 12px rgba(0,0,0,.18);z-index:1;cursor:pointer}.character.green{background:var(--color-green)}.character.red{background:var(--color-red)}.active-cell{outline:3px dashed #000;outline-offset:3px}.how{display:flex;flex-direction:column;gap:12px;max-width:720px;margin:auto;animation:riseIn .9s ease both}.how p{margin:0;color:var(--ink-soft);line-height:1.6;font-size:1.05rem}.how-list{display:grid;gap:14px;margin-top:12px}.how-item{display:grid;grid-template-columns:auto 1fr;gap:16px;align-items:center;color:var(--ink-soft);line-height:1.45}.how-tiles{display:flex;gap:8px}.how-item .cell{width:52px;height:52px}.footer{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--ink-soft);margin-top:32px}@keyframes riseIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes invalidFlash{0%{filter:brightness(1)}50%{filter:brightness(1.3)}100%{filter:brightness(1)}}@media(max-width:760px){.page{padding:32px 14px 52px;gap:32px}.game{padding-top:34px}.board-header{font-size:.95rem}.how-item{grid-template-columns:auto 1fr}}@media(max-width:360px){.page{padding-inline:8px}.board-wrap{padding:14px 8px 16px}.grid{padding:7px;gap:5px}.campaign{padding:15px}.actions{gap:7px}.actions button{padding-inline:10px}.top-link{padding-inline:10px}.board-header{font-size:.84rem}}
.endless-button{width:100%;margin-top:14px;border-color:#111;background:linear-gradient(135deg,#171717,#465766);color:#fff;font-weight:700;letter-spacing:.04em}.endless-button:disabled{background:#786d61;color:#f4ead7}
.endless-options{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;margin-top:14px}.endless-options .endless-button{margin-top:0}.easy-endless-toggle{min-height:44px;padding-inline:14px;border-color:#4d8138;background:#fff;color:#315923;font-weight:700}.easy-endless-toggle[aria-pressed="true"]{border-color:#315923;background:#bfe98e;color:#172d10;font-weight:700}.easy-hints{width:min(100%,520px);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.easy-hint-button,.easy-coach-button{border-color:#315923;background:#edf9df;color:#172d10;font-weight:700}.easy-coach-button{background:#bfe98e}.easy-coach-message{width:min(100%,520px);padding:8px 12px;border:2px solid #315923;border-radius:999px;background:#edf9df;color:#172d10;font-weight:700;text-align:center}.cell.easy-reachable-green::before,.cell.easy-reachable-red::before{content:"";position:absolute;inset:6px;border:3px dashed;box-sizing:border-box;border-radius:4px;pointer-events:none;z-index:3}.cell.easy-reachable-green::before{border-color:var(--color-green)}.cell.easy-reachable-red::before{border-color:var(--color-red)}.cell.easy-coach-target::before{border-style:solid;border-width:5px;inset:4px}.cell.easy-reachable-green .character{box-shadow:0 0 0 4px var(--color-green),0 6px 12px rgba(0,0,0,.18)}.cell.easy-reachable-red .character{box-shadow:0 0 0 4px var(--color-red),0 6px 12px rgba(0,0,0,.18)}@media(max-width:520px){.endless-options,.easy-hints{grid-template-columns:1fr}.easy-endless-toggle{width:100%}}

/* Overlay art must never intercept taps intended for a piece. */
.cell::after { pointer-events: none; }
.cell .character { z-index: 2; pointer-events: auto; }

/* Respect runtime view controls even though navigation links use inline-flex. */
[hidden] { display: none !important; }

/* Campaign chapters: nine compact choices, then the finale on its own row. */
.chapter-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.chapter-button { min-height: 68px; padding: 10px; }
.chapter-button:nth-child(10) { grid-column: 1 / -1; }
@media (max-width: 380px) { .chapter-button { min-height: 60px; padding: 8px; } .chapter-button b { font-size: .8rem; } .chapter-button span { font-size: .72rem; } }

/* Personal colors mirror Gebinden Daily while keeping the campaign screen compact. */
.gebinden-settings{width:min(720px,100%);margin:38px auto;padding:22px;border:2px solid var(--ink);border-radius:var(--radius);background:var(--parchment);box-shadow:0 18px 34px rgba(0,0,0,.18)}
.gebinden-settings h2{margin:0;font-size:clamp(26px,5vw,40px)}.gebinden-settings>p{margin:6px 0 18px;color:var(--ink-soft)}
.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.settings-card{padding:15px;border:2px solid var(--ink);border-radius:16px;background:#fffdf6}.settings-card h3{margin:0 0 12px;font-size:1rem;text-transform:uppercase;letter-spacing:1px}.color-options{display:grid;gap:8px}.color-option{display:flex;align-items:center;gap:9px;width:100%;padding:8px 10px;border:2px solid var(--ink);border-radius:10px;background:var(--ink);color:#fff;font-size:.86rem}.color-option.is-selected{background:var(--parchment);color:var(--ink);box-shadow:0 5px 0 rgba(0,0,0,.14)}.color-option:disabled{opacity:.4}.color-swatch{width:20px;height:20px;flex:0 0 20px;border:2px solid #111;border-radius:5px;background:var(--swatch)}.gebinden-settings>#settings-back{margin-top:18px}
@media(max-width:520px){.settings-grid{grid-template-columns:1fr}.gebinden-settings{margin-top:22px;padding:16px}}

/* Custom rooms use the same paper cabinet as campaign selection. */
.level-generator-link{width:100%;margin-top:14px;border-color:#264f65;background:#d9eef0;color:#173641;font-weight:700}
.required-shifts{font-weight:800;letter-spacing:.06em;text-align:center}
.gebinden-generator{width:min(720px,100%);margin:38px auto;padding:22px;border:2px solid var(--ink);border-radius:var(--radius);background:var(--parchment);box-shadow:0 18px 34px rgba(0,0,0,.18)}
.generator-heading{display:flex;align-items:start;justify-content:space-between;gap:16px}.generator-heading h2{margin:0;font-family:"Bodoni MT",Didot,Palatino,serif;font-size:clamp(28px,6vw,44px);letter-spacing:1px}.generator-heading .top-link{width:auto}
.gebinden-generator>p{margin:10px 0 18px;color:var(--ink-soft);line-height:1.45}.generator-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.generator-fields label{display:grid;gap:6px;color:var(--ink-soft);font-weight:700}.generator-fields :is(select,input){width:100%;min-height:46px;padding:8px 10px;border:2px solid var(--ink);border-radius:10px;background:#fffdf6;color:var(--ink);font:inherit}
.generator-tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:18px 0 0;padding:14px;border:2px solid var(--ink);border-radius:14px;background:#fffdf6}.generator-tiles legend{padding:0 6px;color:var(--ink);font-weight:700}.generator-tiles label{display:flex;align-items:center;gap:8px;color:var(--ink-soft);font-weight:700}.generator-tiles input{inline-size:18px;block-size:18px;accent-color:#1f6071}
.generator-status{min-height:2.9em;padding:10px 12px;border:1px solid #a9c3c5;border-radius:12px;background:#eef6f0;color:#244b47!important;font-weight:700}.generator-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:4px}.generator-create,.generator-endless{width:100%;margin-top:0}.generator-create:disabled,.generator-endless:disabled{cursor:wait}.generator-endless{border-color:#315923;background:#bfe98e;color:#172d10;font-weight:800}
.generator-developer-toggle{display:flex;align-items:center;gap:11px;margin:14px 0 0;padding:12px 14px;border:2px solid #294853;border-radius:14px;background:#e3f0ef;color:#173641;cursor:pointer}.generator-developer-toggle input{width:20px;height:20px;flex:0 0 20px;accent-color:#173641}.generator-developer-toggle span{display:grid;gap:1px}.generator-developer-toggle small{font-size:.82rem;line-height:1.25;color:#47636a}.generator-play-result{width:100%;margin-top:10px;border-color:#315923;background:#bfe98e;color:#172d10;font-weight:800}.generator-debug-panel{display:grid;gap:14px;margin-top:18px;padding:16px;border:2px solid #172f39;border-radius:18px;background:#10262e;color:#f8f3e8;box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}.generator-debug-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.generator-debug-heading h3{margin:2px 0 0;font-size:1.35rem}.generator-debug-heading .eyebrow{color:#94d7c8}.generator-debug-heading button{padding:8px 12px;border-color:#d9ece7;background:#d9ece7;color:#10262e}.generator-debug-current{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.debug-stat{padding:9px;border:1px solid #50717a;border-radius:10px;background:#193943}.debug-stat b{display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:#9dcac1}.debug-stat span{display:block;margin-top:2px;font-weight:800;font-variant-numeric:tabular-nums}.generator-debug-preview{display:flex;justify-content:center;overflow:auto;padding:8px;border-radius:14px;background:#e8dfcf}.generator-debug-preview .grid{--cell-size:32px;--grid-gap:4px;padding:7px;border-radius:12px}.generator-debug-preview .cell{border-radius:5px}.generator-debug-cycle{padding:11px;border:1px solid #50717a;border-radius:12px;background:#193943;line-height:1.45}.generator-debug-cycle b{color:#9de1c7}.generator-debug-history{max-height:430px;overflow:auto;display:grid;gap:8px;padding-right:4px;overscroll-behavior:contain}.debug-history-item{border:1px solid #50717a;border-radius:12px;background:#193943}.debug-history-item summary{padding:10px 12px;cursor:pointer;font-weight:800}.debug-history-item pre{margin:0;padding:0 12px 12px;white-space:pre-wrap;overflow-wrap:anywhere;color:#d9ece7;font:500 .8rem/1.45 ui-monospace,SFMono-Regular,Consolas,monospace}.debug-final{padding:12px;border:2px solid #9de1c7;border-radius:12px;background:#214b47;color:#fff}.debug-empty{padding:10px;color:#bad0d2;text-align:center}
@media(max-width:520px){.gebinden-generator{margin-top:22px;padding:16px}.generator-fields,.generator-tiles,.generator-actions{grid-template-columns:1fr}.generator-heading{align-items:center}.generator-heading .top-link{width:44px;padding-inline:0}}
@media(max-width:520px){.generator-debug-current{grid-template-columns:repeat(2,minmax(0,1fr))}.generator-debug-panel{padding:12px}.generator-debug-heading{align-items:flex-start}.generator-debug-heading button{white-space:normal}}
.debug-final{white-space:pre-line;line-height:1.45}
.generator-density-control{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:10px;padding:11px 14px;border:2px dashed #294853;border-radius:14px;background:#f2f8f4;color:#173641}.generator-density-control span{display:grid;gap:1px}.generator-density-control small{color:#526c6f;font-size:.8rem;line-height:1.2}.generator-density-control input{width:72px;min-height:42px;padding:6px 8px;border:2px solid #173641;border-radius:10px;background:#fffdf6;color:#173641;font:inherit;text-align:center}
.generator-solution{display:grid;gap:10px;width:100%;padding:13px;border:1px solid #50717a;border-radius:14px;background:#193943}.generator-solution-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.generator-solution-heading h4{margin:1px 0 0;font-size:1.12rem}.generator-solution-heading .eyebrow{color:#9de1c7;font-size:.7rem}.generator-solution-heading>span{font-size:.82rem;font-weight:800;color:#d9ece7;font-variant-numeric:tabular-nums}.generator-solution-controls,.generator-solution-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.generator-solution-options{grid-template-columns:repeat(2,minmax(0,1fr))}.generator-solution :is(.generator-solution-controls,.generator-solution-options) button{padding:9px 6px;border-color:#9dcac1;background:#d9ece7;color:#10262e;font-weight:800}.generator-solution .generator-solution-controls button#generator-solution-play{background:#9de1c7}.generator-solution-speed{display:flex;align-items:center;justify-content:space-between;gap:10px;color:#d9ece7;font-size:.84rem;font-weight:800}.generator-solution-speed select{min-height:38px;max-width:190px;padding:5px 8px;border:1px solid #9dcac1;border-radius:9px;background:#f8f3e8;color:#10262e;font:inherit}

/* Compact viewport layout: generator intentionally retains its scrollable workspace. */
body.gebinden-page:not([data-gebinden-view="generator"]){height:100dvh;min-height:0;overflow:hidden}
body.gebinden-page:not([data-gebinden-view="generator"]) .page{width:min(760px,100%);height:100dvh;min-height:0;padding:max(env(safe-area-inset-top),8px) max(env(safe-area-inset-right),10px) max(env(safe-area-inset-bottom),8px) max(env(safe-area-inset-left),10px);gap:8px;overflow:hidden}
body.gebinden-page[data-gebinden-view="generator"]{overflow:auto}
body.gebinden-page[data-gebinden-view="generator"] .page{height:auto;min-height:100dvh}
.gebinden-page:not([data-gebinden-view="generator"]) .view:not([hidden]){display:flex;flex:1 1 auto;min-height:0;overflow:hidden;flex-direction:column}
.gebinden-page:not([data-gebinden-view="generator"]) .footer{display:none}
.gebinden-page[data-gebinden-view="levels"][data-gebinden-picker="chapters"] .footer{display:flex;margin:0;padding:0;min-height:16px;justify-content:center;font-size:.62rem;line-height:1.1}

/* Keep the title centered while controls remain flush to each edge. */
.gebinden-page .top-nav{display:grid;grid-template-columns:minmax(96px,1fr) auto minmax(96px,1fr);align-items:center;gap:8px;min-height:44px}
.gebinden-page .top-nav :is(.nav-left,.nav-center,.nav-right){display:flex;align-items:center;min-width:0;flex:none}
.gebinden-page .top-nav .nav-left{justify-content:flex-start}.gebinden-page .top-nav .nav-center{justify-content:center}.gebinden-page .top-nav .nav-right{justify-content:flex-end;gap:8px}
.gebinden-page .top-nav .top-link{width:auto!important;margin:0!important}
.gebinden-page .top-nav .bb-icon-only,.gebinden-page #settings-link{width:44px!important;min-width:44px!important;height:44px!important;padding:0!important}
.gebinden-page .nav-title{font-family:"BB Future",Georgia,serif;font-size:clamp(1.1rem,5vw,1.55rem);font-weight:800;letter-spacing:.06em;line-height:1;white-space:nowrap}

/* Chapter and level selection use available screen space instead of campaign spacing. */
.gebinden-page #level-screen{justify-content:center;align-items:stretch}
.gebinden-page .campaign{width:min(680px,100%);max-height:100%;margin:0 auto;padding:12px;border-radius:18px;overflow:hidden}
.gebinden-page .campaign-heading{margin-bottom:7px}.gebinden-page .campaign-heading h2{font-size:clamp(1.35rem,6vw,2rem);line-height:1.05}
.gebinden-page .chapter-grid{gap:6px}.gebinden-page .chapter-button{min-height:clamp(40px,7vh,58px);padding:5px 8px}.gebinden-page .chapter-button strong{font-size:clamp(.72rem,2.7vw,.98rem)}.gebinden-page .chapter-button small{font-size:clamp(.61rem,2.3vw,.76rem)}
.gebinden-page .level-grid{gap:6px}.gebinden-page .level-grid button{min-height:clamp(34px,6vh,46px);padding:4px;font-size:clamp(.8rem,3vw,1rem)}
.gebinden-page .endless-options{margin-top:8px;gap:6px}.gebinden-page .reset-progress{margin-top:8px}

/* A board and its controls always fit inside the compact play view. */
.gebinden-page .view-play .game{display:flex;flex:1 1 auto;min-height:0;padding:0;gap:6px;justify-content:center;overflow:hidden}
.gebinden-page .view-play .board-shell{width:min(620px,100%);max-height:100%;margin:auto;gap:6px}.gebinden-page .view-play .board-wrap{padding:clamp(6px,1.8vw,10px);gap:6px;border-radius:clamp(12px,3vw,20px)}
.gebinden-page .view-play .board-stats{font-size:clamp(.73rem,2.9vw,.95rem);line-height:1.1}.gebinden-page .view-play .grid{padding:clamp(4px,1.5vw,9px);border-width:clamp(1px,.55vw,3px);border-radius:clamp(7px,2vw,14px)}
.gebinden-page .view-play .cell{border-width:clamp(1px,calc(var(--cell-size) * .045),4px);border-radius:clamp(2px,calc(var(--cell-size) * .11),8px)}
.gebinden-page .view-play .cell.goal{border-width:clamp(2px,calc(var(--cell-size) * .075),5px)}.gebinden-page .view-play .character{border-radius:clamp(3px,calc(var(--cell-size) * .16),10px)}
.gebinden-page .view-play .actions{gap:5px}.gebinden-page .view-play .actions button{min-height:36px;padding:6px 5px;font-size:clamp(.72rem,2.7vw,.92rem)}
.gebinden-page .view-play .hint-controls,.gebinden-page .view-play .solution-replay{gap:5px;margin-top:0}.gebinden-page .view-play .hint-controls button,.gebinden-page .view-play .solution-replay button{min-height:34px;padding:5px;font-size:clamp(.66rem,2.5vw,.84rem)}

/* Help and settings stay usable without creating a second page-length layout. */
.gebinden-page :is(#how-screen,#settings-screen){justify-content:center}.gebinden-page :is(.how,.gebinden-settings){width:min(680px,100%);max-height:100%;margin:auto;padding:12px;overflow:hidden;border-radius:18px}
.gebinden-page :is(.how,.gebinden-settings) h2{margin:0;font-size:clamp(1.35rem,6vw,2rem);line-height:1.05}.gebinden-page .how>p{margin:6px 0;font-size:clamp(.72rem,2.8vw,.9rem);line-height:1.25}
.gebinden-page .how-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin:6px 0}.gebinden-page .how-item{grid-template-columns:auto minmax(0,1fr);gap:5px;padding:5px;font-size:clamp(.62rem,2.25vw,.76rem);line-height:1.15}.gebinden-page .how-tiles{gap:3px}.gebinden-page .how-item .cell{width:28px;height:28px}
.gebinden-page .settings-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.gebinden-page .color-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}.gebinden-page .color-option{min-height:28px;padding:4px;font-size:.68rem}.gebinden-page .settings-actions{margin-top:8px;gap:6px}.gebinden-page .settings-actions button{min-height:34px;padding:5px}

@media(max-height:650px){.gebinden-page .campaign{padding:9px}.gebinden-page .chapter-button{min-height:clamp(34px,6.1vh,46px)}.gebinden-page .level-grid button{min-height:30px}.gebinden-page .how-list{gap:4px}.gebinden-page .how-item{padding:3px}.gebinden-page .how-item .cell{width:23px;height:23px}.gebinden-page .how>p{font-size:.68rem}.gebinden-page :is(.how,.gebinden-settings){padding:9px}}
@media(max-width:360px){.gebinden-page .top-nav{grid-template-columns:minmax(88px,1fr) auto minmax(88px,1fr);gap:4px}.gebinden-page .top-nav .nav-right{gap:4px}.gebinden-page .nav-title{font-size:1rem}.gebinden-page .campaign{padding:8px}.gebinden-page .chapter-grid{gap:4px}}

/* Selection tiles stay compact even on short screens. */
.gebinden-page .chapter-button :is(b,strong){font-size:clamp(.72rem,2.7vw,.98rem)}.gebinden-page .chapter-button :is(span,small){font-size:clamp(.61rem,2.3vw,.76rem)}
.gebinden-page .level-grid button{aspect-ratio:auto;height:clamp(30px,6vh,44px)}

/* Special-tile and active-state details scale with a responsive board. */
.gebinden-page .view-play .cell.shadow-gate{border-width:clamp(2px,calc(var(--cell-size) * .075),5px)}
.gebinden-page .view-play :is(.cell.color-wall-green,.cell.color-wall-red)::after,.gebinden-page .view-play .cell.dizzy::after{border-width:clamp(2px,calc(var(--cell-size) * .075),5px);border-radius:clamp(3px,calc(var(--cell-size) * .16),12px)}
.gebinden-page .view-play .cell.dawn-barrier::after{border-radius:clamp(3px,calc(var(--cell-size) * .12),8px)}
.gebinden-page .view-play .active-cell{outline-width:clamp(1px,calc(var(--cell-size) * .05),3px);outline-offset:clamp(1px,calc(var(--cell-size) * .04),3px)}
.gebinden-page .gebinden-settings>#settings-back{margin-top:8px;min-height:34px;padding:5px 12px}

/* Compact selection controls still use comfortably readable labels. */
.gebinden-page .chapter-button :is(b,strong){font-size:clamp(.9rem,3.6vw,1.08rem)}
.gebinden-page .chapter-button :is(span,small){font-size:clamp(.72rem,2.8vw,.86rem)}
.gebinden-page .level-grid button{font-size:clamp(1rem,4vw,1.28rem)}

/* Keep a clear iPhone-safe bottom zone; use it only for the solved-level advance action. */
.gebinden-page .view-play .game{margin-bottom:10dvh}
.gebinden-page #win-banner{position:fixed;z-index:50;left:50%;bottom:calc(env(safe-area-inset-bottom) + 8px);width:min(calc(100vw - 28px),520px);min-height:44px;padding:9px 14px;transform:translate(-50%,12px);box-shadow:0 10px 24px rgba(0,0,0,.24)}
.gebinden-page #win-banner.show{transform:translate(-50%,0)}
