:root{--ink: #eef2f7;--ink-dim: #9dacbf;--back: #0d131c;--panel: #18212e;--panel-lit: #222e3e;--edge: #2c3a4c;--amber: #e8a33c;--good: #59c08a;--gap: 10px;--control: 52px;--radius: 12px;--col: clamp(270px, 40vw, 380px);--safe-bottom: env(safe-area-inset-bottom, 0px);--serif: ui-serif, "Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, serif;--chalk: #ece6d8;--slate-deep: #0f151e;--grain: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 .04 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");--under-bar: calc(var(--gap) - 2px + var(--safe-bottom) + var(--banner-h, 0px))}*{box-sizing:border-box}:root{--scroll-thumb: rgba(236, 230, 216, .24);--scroll-thumb-lit: rgba(236, 230, 216, .42);scrollbar-color:var(--scroll-thumb) transparent}*{scrollbar-width:thin}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track,::-webkit-scrollbar-corner{background:transparent}::-webkit-scrollbar-button{display:none}::-webkit-scrollbar-thumb{background-color:var(--scroll-thumb);background-clip:padding-box;border:3px solid transparent;border-radius:999px}::-webkit-scrollbar-thumb:hover,::-webkit-scrollbar-thumb:active{background-color:var(--scroll-thumb-lit)}html,body{margin:0;height:100%;overflow:hidden;background:var(--back);color:var(--ink);font:16px/1.4 ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;overscroll-behavior:none;-webkit-user-select:none;user-select:none}#app{height:100%}.shell{height:100%;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto auto;row-gap:var(--gap);padding:env(safe-area-inset-top,0px) 0 var(--under-bar) 0}.shell>*{min-width:0}.top{grid-row:1;grid-column:1;align-self:start;position:relative;z-index:9;display:grid;grid-template-columns:minmax(0,1fr) auto auto;grid-template-rows:auto auto;align-items:start;gap:4px 6px;padding:6px var(--gap) 0;pointer-events:none}.top>*{min-width:0}.top>.guide{grid-column:1 / -1;grid-row:2}.btn.gear{pointer-events:auto;grid-column:3;grid-row:1;position:relative;flex:0 0 auto;width:48px;min-width:44px;min-height:44px;height:48px;padding:0;border-radius:var(--radius);background:var(--panel);color:var(--ink-dim);font-size:20px;line-height:1}.btn.gear .gear-glyph{font-size:18px}.btn.gear.on{background:var(--panel-lit);color:var(--ink);border-color:#47607d}.btn.gear .tab-badge{position:absolute;top:-6px;right:2px;min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:var(--amber);color:#1b1408;font-size:11px;font-weight:700;line-height:16px;text-align:center}.btn.gear .tab-badge[hidden]{display:none}.news{position:absolute;z-index:10;top:calc(var(--over-h, 56px) + 8px);left:50%;transform:translate(-50%);width:min(92%,420px);display:flex;flex-direction:column;gap:6px;pointer-events:none}.on-menu .news{visibility:hidden}.away-pill{padding:8px 12px;border:1px solid var(--edge);border-radius:12px;background:#0d131cf0;pointer-events:none;text-align:center}.notices{display:flex;flex-direction:column;gap:6px}.notices:empty{display:none}.notice{pointer-events:auto;display:flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid #7a3129;border-radius:12px;background:#0d131cf5;font-size:13px}.notice p{margin:0;flex:1 1 auto;min-width:0}.notice .btn{flex:0 0 auto;min-height:44px;font-size:13px}.notice.compact{position:relative;padding:2px 4px 2px 12px;gap:6px}.notice.compact .btn{min-height:40px;padding:4px 10px}.notice-summary{flex:1 1 auto;min-width:0;min-height:40px;padding:2px 0;border:0;background:none;color:var(--ink);font:inherit;font-size:13px;line-height:1.25;text-align:left;cursor:pointer}.notice-more-word{color:var(--amber);text-decoration:underline;text-underline-offset:2px;white-space:nowrap}.notice-more{position:absolute;top:calc(100% + 6px);left:0;right:0;padding:10px 12px;border:1px solid #7a3129;border-radius:12px;background:#0d131c;box-shadow:0 8px 18px #00000080}.notice-more[hidden]{display:none}.notice-more p{font-size:14px;line-height:1.4}.overlay[hidden]{display:none}.away-pill p{margin:0}.away-pill .away-amount{font-size:14px}.away-pill .away-standing{font-size:12px;color:var(--ink-dim);margin-top:2px}.hud{display:contents}.hud-chip{pointer-events:none;min-width:0;padding:4px 10px 5px;border:1px solid var(--edge);border-radius:var(--radius);background:var(--panel);box-shadow:0 2px 8px #00000059}.hud-left{grid-column:1;grid-row:1;justify-self:start;max-width:100%;display:flex;flex-direction:column}.puzzle-name{font-weight:650;font-size:16px;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.setter{font-size:12px;line-height:1.4;color:var(--ink-dim);overflow-wrap:anywhere}.score{font-variant-numeric:tabular-nums;font-weight:650;font-size:16px;line-height:1.3;white-space:nowrap;flex:0 0 auto}.score.over{color:var(--amber)}.score.low{color:#e0705c}.score.done{color:var(--good)}.hud-right{grid-column:2;grid-row:1;display:flex;flex-direction:column;align-items:flex-end;min-width:0}.chips{font-size:12px;color:var(--ink-dim);white-space:nowrap;font-variant-numeric:tabular-nums}.card .earned{font-size:14px;color:var(--good);font-variant-numeric:tabular-nums}.card .goal{position:relative;font:inherit;font-size:13px;color:var(--amber);margin:-10px 0;padding:10px 0;border:0;background:none;text-align:left;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.card .goal{flex:0 0 auto}.card .goal[hidden]{display:none}.goal-line{color:var(--amber)}.goal-line[hidden]{display:none}.row.locked{opacity:1}.row.locked,.row.owned{background:transparent;border-style:dashed}.guide{pointer-events:auto;padding:4px 10px;border:1px solid #4a3a1a;border-radius:var(--radius);background:#211b12;box-shadow:0 2px 8px #00000059}.guide.empty{background:transparent;border-color:transparent;box-shadow:none}.line{height:18.2px;overflow-y:auto;touch-action:pan-y;font-size:13px;line-height:1.4;color:var(--amber);overflow-wrap:anywhere}.line.tight{font-size:12px}.line.tighter{font-size:11px;line-height:1.3}@media(max-width:639px){.line{height:36.4px}.setter{min-height:calc(2 * 12px * 1.4)}}.line.quiet{color:var(--ink-dim)}.line.waiting{text-decoration:underline;text-underline-offset:3px;cursor:pointer}.stage{grid-row:1;grid-column:1;position:relative;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr);min-height:0}.scene{width:100%;height:100%;min-width:0;min-height:0;display:block;touch-action:none;grid-column:1;grid-row:1}.pages-host{position:absolute;top:var(--over-h, 0px);left:var(--gap);right:var(--gap);bottom:0;z-index:5;display:none;background:linear-gradient(#18212ef7,#0f151ef7);border:1px solid #2a3748;border-radius:16px;box-shadow:0 16px 40px #00000080;overflow:hidden}.pages-host.on{display:flex;z-index:7}.pages-host.on{background-image:var(--grain),linear-gradient(#18212ef7,#0f151ef7);background-size:160px 160px,100% 100%}.on-menu .pages-host{bottom:calc(-1 * (var(--control) + var(--gap) * 2))}.pages-host{flex-direction:column}.pages-host>section{flex:1 1 auto;min-height:0}.pages-host>section.off{display:none}.panels{height:100%;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch;padding:var(--gap);display:flex;flex-direction:column;gap:var(--gap)}.sheet-tabs{display:flex;gap:6px;flex-wrap:wrap;flex:0 0 auto}.tab{flex:1 1 auto;min-width:44px;min-height:44px;border:1px solid var(--edge);border-radius:10px;background:var(--panel);color:var(--ink-dim);font:inherit;font-size:13px;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:4px}.tab.on{background:var(--panel-lit);color:var(--ink);border-color:#47607d}.tab:disabled{opacity:.55;cursor:default}.locked-note{font-size:12px;line-height:1.35;color:var(--ink-dim);min-height:34px;flex:0 0 auto}.grid{flex:0 0 auto;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}.tile{position:relative;min-height:44px;border:1px solid var(--edge);border-radius:10px;background:var(--panel);color:var(--ink);font:inherit;font-size:13px;font-variant-numeric:tabular-nums;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:2px}.tile.solved{background:#1d3a2c;border-color:#2f6a4c}.tile.here{outline:2px solid var(--amber);outline-offset:-2px}.tile .mark{position:absolute;top:2px;right:4px;font-size:11px;color:var(--good)}.controls{grid-row:2;grid-column:1;display:flex;gap:6px;min-width:0;height:var(--control);margin:0 var(--gap)}@media(max-width:479px){.controls [data-testid=hint]{flex-grow:2}}.controls[hidden]{visibility:hidden}.nav{grid-row:3;grid-column:1;position:relative;z-index:8;display:flex;gap:6px;min-width:0;margin:0 var(--gap)}.nav:before{content:"";position:absolute;z-index:-1;top:0;left:calc(-1 * var(--gap));right:calc(-1 * var(--gap));bottom:calc(-1 * var(--under-bar));background:var(--grain),linear-gradient(#141c27,var(--slate-deep));border-top:1px solid #263345;pointer-events:none}.nav .tab{position:relative;flex:1 1 0;min-width:0;min-height:54px;border:0;border-radius:var(--radius);background:transparent;color:#b7c3d1;font:inherit;font-size:clamp(12px,3.4vw,14px);font-weight:600;line-height:1.2;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:4px 2px}.nav .tab-label{display:inline-flex;align-items:center;gap:4px;min-width:0;max-width:100%;padding:5px 6px}.nav .tab-word{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.5}.nav .glyph{flex:0 0 auto;width:16px;height:16px}@media(max-width:379px){.nav .glyph{display:none}.nav .tab-label{padding:5px 6px}}.nav .tab{transition:background .15s,box-shadow .15s}.nav .tab.on{color:var(--ink);background:#2a3850;box-shadow:inset 0 -3px 0 var(--tint, var(--amber)),0 2px 6px #0006}.nav .tab:disabled{opacity:.55;cursor:default}.tab-badge{min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:var(--amber);color:#1b1408;font-size:11px;font-weight:700;line-height:16px;text-align:center;box-shadow:0 0 0 1.5px var(--amber)}.tab-badge[hidden]{display:none}.nav .tab-badge{position:absolute;top:0;right:3px}.nav .tab[hidden]{display:none}.setting-body{padding:0 12px 12px;margin-top:-6px;border:1px solid var(--edge);border-top:none;border-radius:0 0 10px 10px;background:var(--panel)}.setting-body .note{margin:10px 0 0}.rules{margin:10px 0 0;padding-left:20px;color:var(--ink-dim);font-size:13px}.rules li{margin-bottom:6px}.btn.danger{border-color:#7a3129;color:#f0a49b}.row.locked .row-name{color:var(--ink-dim)}.btn{flex:1 1 0;min-width:0;min-height:var(--control);border:1px solid var(--edge);border-radius:var(--radius);background:var(--panel);color:var(--ink);font:inherit;font-size:clamp(13px,3.7vw,15px);cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px;padding:6px 8px;white-space:normal;text-align:center;line-height:1.2}.btn:disabled{opacity:.42;cursor:default}.card-actions .btn[hidden]{visibility:hidden}.btn.primary{background:var(--amber);border-color:var(--amber);color:#1b1408;font-weight:650}.btn.stood-down{font-weight:650}.scene:focus-visible{outline:none}.btn.on{border-color:var(--good);color:var(--good);font-weight:650}.btn.wants{border-color:var(--amber);color:var(--amber)}.card{position:absolute;left:var(--gap);right:var(--gap);bottom:calc(var(--gap) - var(--card-drop, 0px));max-height:var(--card-room, 250px);overflow:hidden;z-index:6;background:var(--panel);border:1px solid var(--edge);border-radius:14px;padding:12px;display:none;flex-direction:column;gap:8px}.card.on{display:flex}.card h2{margin:0;font-size:17px;font-variant-numeric:tabular-nums}.card .verdict{font-size:14px;color:var(--ink-dim)}.card .said{font-size:12px;color:var(--ink-dim);font-style:italic;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.card-actions{display:flex;gap:6px;flex-wrap:wrap}.card .card-actions .btn{min-height:48px}.card .btn.double{flex:1 0 100%;white-space:normal;font-size:14px;min-height:48px}.card.lost .card-actions{flex-direction:column}.card.lost .card-actions .btn{font-size:14px;white-space:normal;min-height:48px}.card-short .card,.card-tiny .card{padding:8px 10px;gap:6px}.card-short .card h2,.card-tiny .card h2{font-size:16px}.card-short .card .verdict{font-size:12px}.card-short .card .said,.card-short .card .goal,.card-tiny .card .said,.card-tiny .card .goal,.card-tiny .card .btn.remind{display:none}.card-short .card-actions,.card-short .card.lost .card-actions,.card-tiny .card-actions,.card-tiny .card.lost .card-actions{flex-direction:row;flex-wrap:nowrap}.card-short .card .card-actions .btn,.card-short .card .btn.double,.card-short .card.lost .card-actions .btn,.card-tiny .card .card-actions .btn,.card-tiny .card .btn.double,.card-tiny .card.lost .card-actions .btn{flex:1 1 0;min-width:0;min-height:44px;font-size:12px;padding:4px 6px;white-space:normal}.card .goal-short{display:none}.card-short .card.with-news .goal:not([hidden]),.card-tiny .card.with-news .goal:not([hidden]){display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.card-short .card.with-news .goal-long,.card-tiny .card.with-news .goal-long{display:none}.card-short .card.with-news .goal-short,.card-tiny .card.with-news .goal-short{display:inline}.card-tiny .card.with-news h2{display:none}.card-short .card .btn.remind{min-height:44px;font-size:12px;padding:4px 6px;flex:0 0 auto}.card-tiny .card .verdict{display:none}.card-tiny .card .card-actions .btn,.card-tiny .card .btn.double,.card-tiny .card.lost .card-actions .btn{min-height:40px;font-size:11px;line-height:1.1;padding:2px 4px}.card-tiny .card .card-actions .btn.double{flex-grow:2}.shop-list{display:grid;gap:8px}.row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;padding:8px 10px;border:1px solid var(--edge);border-radius:12px;background:var(--panel);min-width:0}.row-body{display:flex;flex-direction:column;min-width:0;gap:2px}.row-name{font-size:14px;font-weight:650}.row-hint{font-size:12px;color:var(--ink-dim)}.row-buttons{display:flex;gap:6px}.row-buttons .btn{flex:0 0 auto;font-size:13px;padding:6px 10px}@media(max-width:359px){.row{grid-template-columns:minmax(0,1fr)}.row-buttons .btn{width:100%}}.row.offer{grid-template-columns:minmax(0,1fr)}.row.offer .row-buttons .btn{width:100%;white-space:normal}.row.promo{text-decoration:none;color:inherit}.receipt{color:var(--good)}.banner{position:fixed;left:0;right:0;bottom:0;height:var(--banner-h, 50px);background:#2a2f38;color:var(--ink-dim);font-size:12px;display:flex;align-items:center;justify-content:center;z-index:15}.overlay{position:fixed;inset:0;z-index:20;background:#060a0fb8;display:flex;align-items:center;justify-content:center;padding:var(--gap)}.modal{width:min(420px,100%);background:var(--panel);border:1px solid var(--edge);border-radius:16px;padding:16px;display:flex;flex-direction:column;gap:10px}.modal h2{margin:0;font-size:19px}.modal p{margin:0;font-size:14px;color:var(--ink-dim)}.overlay.house-card{--house-h: calc(100vh - 2 * var(--gap) - env(safe-area-inset-top, 0px) - var(--safe-bottom));display:grid;place-items:center;padding:max(var(--gap),env(safe-area-inset-top,0px)) max(var(--gap),env(safe-area-inset-right,0px)) max(var(--gap),var(--safe-bottom)) max(var(--gap),env(safe-area-inset-left,0px));background:#060a0fdb;overflow:auto;touch-action:pan-y}.overlay.house-card[hidden]{display:none}@supports (height: 100dvh){.overlay.house-card{--house-h: calc(100dvh - 2 * var(--gap) - env(safe-area-inset-top, 0px) - var(--safe-bottom))}}.house-body{display:flex;flex-direction:column;align-items:center;gap:14px;max-width:100%}.house-picture{display:block;flex:none;aspect-ratio:1;height:auto;max-width:100%;object-fit:cover;width:min(100%,520px,calc(var(--house-h) - 250px));min-width:160px;border-radius:14px;box-shadow:0 10px 30px #00000073}.house-words{width:min(100%,420px);display:grid;gap:10px;padding:16px 18px;text-align:center;background:var(--panel);color:var(--ink);border:1px solid var(--edge);border-radius:14px}.house-heading{margin:0;font-size:22px;line-height:1.25;text-wrap:balance}.house-line{margin:0;color:var(--ink-dim);font-size:15px;line-height:1.4}.house-buttons{display:grid;gap:8px;margin-top:4px}.house-buttons .btn{width:100%}@media(min-aspect-ratio:1/1){.house-body{flex-direction:row;gap:18px}.house-picture{width:auto;height:min(520px,var(--house-h),calc(100vw - 2 * var(--gap) - 280px));min-width:0}.house-words{flex:0 1 380px;width:auto;min-width:220px}}@media(min-aspect-ratio:1/1)and (max-height:420px){.house-words{gap:6px;padding:12px 14px}.house-heading{font-size:19px}.house-line{font-size:14px}.house-buttons{gap:6px}}.lesson .modal{max-height:calc(100% - 8px);overflow-y:auto}.lesson-picture{display:block;width:100%;height:auto}.modal .lesson-caption{min-height:42px;font-size:15px;line-height:1.4;color:var(--ink)}.modal .lesson-how{font-size:13px}.setting-body>.btn[data-testid=lesson-ridge]{margin-top:8px}.away-amount{font-size:15px;color:var(--ink)}.note{font-size:13px;color:var(--ink-dim)}.btn{box-shadow:inset 0 1px #ffffff0f,0 2px #04060ae6;transition:transform .06s,box-shadow .06s}.btn:active:not(:disabled){transform:translateY(1px);box-shadow:inset 0 2px 3px #00000059}.btn.primary{box-shadow:inset 0 1px #ffffff59,0 2px #7a5318,0 4px 12px #e8a33c38}.btn:disabled{box-shadow:none}.controls .btn.tool{border-color:#34465c;border-radius:14px;background:linear-gradient(#26324a,#1b2535);font-weight:600;gap:6px;box-shadow:inset 0 1px #ffffff14,0 3px #04060ae6,0 4px 10px #00000040}.controls .btn.tool:disabled{background:#141c27;border-style:dashed;box-shadow:none}.controls .glyph{flex:0 0 auto;width:18px;height:18px}@media(max-width:399px){.controls [data-testid=hint] .glyph{display:none}}.panel-title{flex:0 0 auto;display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:4px 2px 0;min-width:0}.panel-title h2{margin:0;font:600 21px/1.15 var(--serif);color:var(--chalk);min-width:0}.panel-fact{font-size:13px;color:var(--ink-dim);text-align:right;font-variant-numeric:tabular-nums}.group-head{margin:8px 2px 0;font:600 16px/1.2 var(--serif);color:var(--chalk)}.emblem{flex:0 0 auto;display:inline-grid;place-items:center;width:var(--size, 32px);height:var(--size, 32px);border-radius:50%;background:radial-gradient(circle at 35% 30%,rgba(255,255,255,.35) 0 20%,transparent 21%),var(--t);box-shadow:inset 0 -3px #00000040,0 2px 4px #0006;color:#0d131c;font:700 calc(var(--size, 32px) * .46) / 1 var(--serif)}.shut .emblem{background:transparent;border:2px solid var(--t);box-shadow:none;color:var(--ink-dim)}.row.chalkboard{position:relative;flex:0 0 auto;overflow:hidden;background:linear-gradient(#1c2a26,#16211e);border-color:#2f5045;padding:10px 12px}.row.chalkboard .row-name{font:600 17px/1.2 var(--serif);color:var(--chalk)}.row.chalkboard>:not(.rain){position:relative}.chalkboard .rain{position:absolute;inset:0;pointer-events:none;opacity:.3;background-image:repeating-linear-gradient(104deg,transparent 0 22px,rgba(157,172,191,.16) 22px 23px,transparent 23px 61px);background-size:120px 240px;animation:rain 1.4s linear infinite}@keyframes rain{to{background-position:-40px 240px}}.still .chalkboard .rain{animation:none}.paper-sheet{position:relative;flex:0 0 auto;display:flex;flex-direction:column;gap:8px;margin-top:6px;padding:16px 12px 14px;border-radius:6px;background:#ebe4d4;color:#241c12;box-shadow:0 8px 18px #00000073}.paper-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding-bottom:6px;border-bottom:2px solid #241c12}.paper-title{font:600 18px/1.2 var(--serif)}.paper-by{font:italic 14px/1.2 var(--serif);color:#5a4c38}.paper-sheet .locked-note{color:#5a4c38}.paper-legend{margin:0;font-size:12px;line-height:1.35;color:#5a4c38}.paper-sheet .tile{border:1.5px solid #b9ad94;border-radius:8px;background:#f3eee2;color:#241c12;font:600 15px var(--serif);box-shadow:none}.paper-sheet .tile.solved{background:#e2d9c5;border-color:#a99b7e}.paper-sheet .tile.solved:after{content:"";position:absolute;left:5px;top:5px;width:8px;height:8px;border-radius:50%;background:var(--t);box-shadow:0 0 0 1.5px #241c12}.paper-sheet .tile .mark{color:#1f5e3c}.paper-sheet .tile.here{outline:2.5px solid #241c12;outline-offset:-2px;box-shadow:0 0 0 3px var(--amber)}.paper-sheet .tile:focus-visible{outline:2px solid #241c12;outline-offset:-3px}.sheet-tabs.setter-rail{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;flex-wrap:nowrap}.tab.setter-tab{flex-direction:column;gap:2px;padding:6px 2px 5px;border-color:transparent;border-radius:14px;background:transparent;color:var(--ink);min-width:0}.tab.setter-tab.on{background:var(--panel-lit);border-color:#47607d}.tab.setter-tab:disabled{opacity:1}.setter-sheet{font-size:12px;font-weight:650;white-space:nowrap}.setter-count{font-size:11px;color:var(--ink-dim);white-space:nowrap;font-variant-numeric:tabular-nums}.rooms{position:sticky;top:calc(var(--gap) * -1);z-index:1;flex:0 0 auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;padding:4px;margin:0 -2px;border:1px solid var(--edge);border-radius:14px;background:var(--slate-deep)}.room-tab{min-height:44px;min-width:0;border:0;border-radius:10px;background:transparent;color:#b7c3d1;font:inherit;font-size:14px;font-weight:650;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px;padding:4px 6px}.room-tab.on{background:#2a3850;color:var(--ink);box-shadow:0 2px 6px #00000059}.room-word{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.5}.room-tab .tab-badge{flex:0 0 auto}.room{display:flex;flex-direction:column;gap:var(--gap)}.room[hidden],.bench[hidden]{display:none}.bench-picks{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px}.bench-pick{position:relative;min-height:44px;min-width:0;padding:6px 2px 5px;border:1px solid transparent;border-radius:14px;background:transparent;color:var(--ink);font:inherit;font-size:12px;font-weight:600;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:3px}.bench-pick.on{background:var(--panel-lit);border-color:#47607d}.pick-name{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bench-pick .tab-badge{position:absolute;top:2px;right:2px}.bench{display:flex;flex-direction:column;gap:8px}.bench-name{margin:2px 2px 0;font:600 17px/1.2 var(--serif);color:var(--chalk)}.folio{padding:10px 12px 12px;border:1px solid var(--edge);border-left:4px solid var(--t);border-radius:14px;background:var(--panel)}.folio-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;min-width:0}.folio-head .bench-name{margin:0;min-width:0}.folio-twist{margin:0;display:flex;flex-direction:column;gap:2px}.folio-title{font:600 16px/1.2 var(--serif);color:var(--chalk)}.folio-twist .row-hint{font-size:13px}.folio .locked-note{margin:0;font-size:14px;color:var(--ink)}.folio-reward{margin:0}.folio-reward.done{color:var(--good)}.folio-legend{margin:0}.folio-line{margin:0;font-style:italic;color:var(--ink-dim)}.folio-tiles{grid-template-columns:repeat(3,minmax(0,1fr))}.folio-tiles .tile.btn{min-height:48px;border-radius:10px;font:600 16px var(--serif);padding:2px}.folio-tiles .tile.btn:not(.primary){color:var(--ink)}.letter{position:relative;margin-top:8px;padding:16px 14px 12px;border-radius:6px;background:#ebe4d4;color:#241c12;box-shadow:0 8px 18px #00000073;font:15px/1.45 var(--serif)}.letter:before{content:"";position:absolute;top:-7px;left:50%;width:46px;height:14px;margin-left:-23px;border-radius:2px;background:var(--t);opacity:.9}.letter p{margin:0 0 8px}.letter .letter-by{margin:0;text-align:right;font-style:italic;color:#5a4c38}.row[hidden]{display:none}.swatches{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.swatch{display:flex;flex-direction:column;gap:8px;min-width:0;padding:8px;border:1px solid var(--edge);border-radius:14px;background:var(--panel)}.swatch.locked,.swatch.owned{background:transparent;border-style:dashed}.swatch-picture{display:block;width:100%;max-width:100%;height:auto;aspect-ratio:1;border-radius:10px}.swatch.locked .swatch-picture{filter:saturate(.5) brightness(.8)}.swatch .btn{flex:0 0 auto;min-height:44px;font-size:13px;padding:6px 8px}.card h2{font-family:var(--serif);font-weight:600}@media(orientation:landscape)and (max-height:559px),(orientation:landscape)and (max-height:620px)and (max-width:899px){:root{--pad: 8px;--col: clamp(250px, 30vw, 320px);--side: clamp(8em, calc((100vw - var(--col) - 100vh) / 2 - 4px), 15em)}.shell{--col-top: 8px}.shell{grid-template-columns:minmax(0,1fr) var(--col);grid-template-rows:minmax(0,1fr) auto;column-gap:var(--gap);padding-right:var(--gap)}.top{grid-row:1;grid-column:1;grid-template-columns:minmax(0,1fr) auto auto;grid-template-rows:auto auto;padding:8px 0 0 var(--gap)}.hud-left{grid-column:1;grid-row:1;width:var(--side)}.puzzle-name{white-space:normal;overflow-wrap:anywhere}.setter{min-height:calc(3 * 12px * 1.4)}.hud-right{grid-column:2;grid-row:1;min-width:5.5em}.btn.gear{grid-column:3;grid-row:1}.top>.guide{grid-column:1;grid-row:2;width:var(--side);justify-self:start}.line{height:91px}.stage{grid-row:1;grid-column:1}.controls{grid-row:1;grid-column:2;align-self:start;margin:var(--col-top) 0 0}.nav{grid-row:2;grid-column:1 / -1;margin-left:var(--gap);margin-right:0}.nav .tab{min-height:42px}.shell{--under-bar: calc(var(--gap) + var(--safe-bottom) + var(--banner-h, 0px))}.pages-host,.on-menu .pages-host{top:var(--col-top);left:calc(100% + var(--gap));right:auto;width:var(--col);bottom:0}.card{top:var(--col-top);left:calc(100% + var(--gap));right:auto;bottom:auto;width:var(--col);max-height:var(--card-room, 100%)}.card .btn,.card .card-actions .btn,.card .btn.double,.card.lost .card-actions .btn{min-height:44px}.row{grid-template-columns:minmax(0,1fr)}.bench-pick,.setter-sheet{font-size:11px}.bench-picks,.sheet-tabs.setter-rail{gap:2px}.bench-pick{padding-left:0;padding-right:0}.room-word{white-space:normal;text-align:center;line-height:1.4}.news{top:64px;left:calc(var(--gap) + var(--side) + 8px);right:8px;width:auto;max-width:420px;transform:none}.row-buttons .btn{flex:1 1 auto}}@media(orientation:landscape)and (max-height:559px)and (max-width:699px){.shell{--col-top: calc(8px + var(--guide-h, 0px) + 8px)}.top{grid-template-columns:minmax(0,1fr) auto auto;grid-template-rows:auto;padding-right:0}.hud-left{grid-row:1;width:auto}.puzzle-name{white-space:nowrap;font-size:14px}.setter{min-height:calc(2 * 12px * 1.4)}.hud-right{grid-column:2;grid-row:1;min-width:0}.btn.gear{grid-column:3;grid-row:1}.top>.guide{position:absolute;grid-row:auto;grid-column:auto;top:8px;left:calc(100% + var(--gap));width:var(--col)}.line{height:calc(3 * 13px * 1.4)}.on-menu .top>.guide{visibility:hidden}.pages-host,.on-menu .pages-host{top:8px}.news{inset:auto auto 8px 50%;width:min(92%,420px);transform:translate(-50%)}.notice-more{top:auto;bottom:calc(100% + 6px)}}@media(min-width:900px)and (min-height:560px){.shell{max-width:1180px;margin:0 auto;padding-left:var(--gap);padding-right:var(--gap)}.stage{grid-template-columns:minmax(0,1fr) 340px;grid-template-rows:minmax(0,1fr);gap:var(--gap)}.scene{grid-column:1}.top{margin-right:calc(340px + var(--gap));padding-left:0;padding-right:0}.top>.guide{position:absolute;grid-row:auto;grid-column:auto;top:8px;left:calc(100% + var(--gap));width:340px}.line{height:36.4px}.pages-host,.pages-host.on{position:static;display:flex;flex-direction:column;z-index:auto;grid-column:2;grid-row:1;margin-top:calc(8px + var(--guide-h, 0px) + 8px);background:#18212e99}.nav,.controls{max-width:640px;margin:0}.nav:before{top:-6px;left:-8px;right:-8px;bottom:calc(-1*min(var(--under-bar),8px));border:1px solid #263345;border-radius:16px}.card{left:auto;right:0;bottom:0;width:340px;max-height:calc(100% - 8px)}.pages-host,.pages-host.on{margin-bottom:var(--card-over, 0px)}}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.tile:focus-visible,.nav .tab:focus-visible{outline-offset:-3px}.setting-body .licence{margin-top:12px}.setting-body .licence .rules{overflow-wrap:anywhere}.licence-text{margin:10px 0 0;font:13px/1.45 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:var(--ink);white-space:pre-wrap;overflow-wrap:anywhere}.card .said{display:block;-webkit-line-clamp:none;overflow:visible}.card.line-out .said{position:absolute;top:0;left:12px;right:12px;visibility:hidden}@media(max-width:359px){.hud-chip{padding-left:8px;padding-right:8px}}.product-boards{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.product-board{display:block;width:44px;height:44px;border-radius:7px}@media(max-height:340px){.product-boards{display:none}}.controls .btn.tool.cautioned{flex-wrap:wrap;align-content:center;row-gap:0;padding-block:2px}.controls .btn.tool.cautioned .tool-word{font-size:12px;line-height:1.25}.controls .tool-note{flex:1 0 100%;font-size:11px;line-height:1.4;font-weight:500;color:var(--amber)}@media(orientation:landscape)and (max-height:559px),(orientation:landscape)and (max-height:620px)and (max-width:899px){.controls [data-testid=hint]{flex-grow:2;padding-inline:4px;font-size:13px}.controls [data-testid=hint] .glyph{display:none}.controls .btn.tool.cautioned{position:relative;flex-wrap:nowrap;padding-block:6px}.controls .btn.tool.cautioned .tool-word{font-size:inherit;line-height:inherit}.controls .tool-note{position:absolute;top:calc(100% + 6px);left:0;right:0;text-align:center}}.sheets-marks{margin:0;flex:0 0 auto}.paper-seal{margin:6px 0 0;font:italic 600 13px/1.4 var(--serif);color:#1f5e3c}.paper-seal[hidden]{display:none}.folio-tiles .tile.btn.shut{background:transparent;border-style:dashed;box-shadow:none;cursor:default}.folio-door{margin:0}@media(max-width:359px){.puzzle-name{font-size:15px}}@media(orientation:landscape)and (max-height:559px)and (max-width:699px){.puzzle-name{font-size:13px}}.card.letter-card .letter-head{display:flex;align-items:center;gap:8px;min-width:0}.card.letter-card .letter-head h2{min-width:0;line-height:1.4}.card.letter-card .letter-body{flex:0 0 auto;font:14px/1.45 var(--serif);color:var(--chalk)}.card.letter-card .letter-body p[hidden]{display:none}.card.letter-card .letter-body p{margin:0 0 6px}.card.letter-card .letter-body p:last-child{margin-bottom:0}.card.letter-card .letter-reward{color:var(--ink);font-family:inherit;font-weight:600}.card.letter-card .card-actions .btn{flex:1 1 0;min-width:0;white-space:normal}.card-short .card.letter-card .letter-body{font-size:13px}.card-tiny .card.letter-card .emblem{display:none}.card-tiny .card.letter-card .letter-head h2{font-size:14px}.card-tiny .card.letter-card .letter-body,.card-tiny .card.letter-card .letter-more{display:none}.swatch-picture{max-width:min(100%,var(--swatch-px));margin-inline:auto}.setting-body .licence .note,.setting-body .licence .row-name{overflow-wrap:anywhere}
