:root{--obsidian:#0b0f13;--ink:#10171b;--panel:#121b20;--panel-2:#172329;--gold:#d6a84f;--gold-soft:#f3d68e;--jade:#59d2a9;--red:#df6259;--cream:#f5ecd6;--muted:#9aa39f;--line:rgba(222,184,100,.2);--cell-size:min(7.25vw,64px);--gap:clamp(4px,.55vw,8px);font-family:"Segoe UI",Tahoma,Arial,sans-serif;color:var(--cream);background:var(--obsidian);color-scheme:dark}*{box-sizing:border-box}body{margin:0;min-width:320px;background:radial-gradient(circle at 50% -10%,#1c2c2e 0,#0b1014 48%,#080b0e 100%);min-height:100svh}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible,.piece:focus-visible{outline:2px solid var(--gold-soft);outline-offset:3px}.game-shell{width:min(1500px,100%);margin:auto;padding:clamp(16px,3vw,38px) clamp(14px,3.5vw,54px) 30px}.topbar{display:flex;align-items:center;gap:34px;border-bottom:1px solid var(--line);padding-bottom:18px;margin-bottom:clamp(18px,3vw,34px)}.brand-lockup{display:flex;align-items:center;gap:10px;min-width:190px}.brand-mark{font-size:32px;color:var(--gold);line-height:1}.brand-lockup strong{display:block;font-size:21px;letter-spacing:.08em}.brand-lockup span:not(.brand-mark){display:block;color:var(--muted);font-size:11px;letter-spacing:.12em}.chapter-block{margin-inline:auto;text-align:center}.eyebrow{display:block;color:var(--gold);font-size:10px;letter-spacing:.16em;text-transform:uppercase;font-weight:700}.chapter-block strong{display:block;margin-top:4px;font-size:16px}.top-actions{display:flex;align-items:center;gap:9px}.icon-button,.gold-button{border:1px solid var(--line);background:transparent;border-radius:4px;min-height:40px}.icon-button{width:40px;color:var(--gold-soft);font-size:18px}.gold-button{background:var(--gold);border-color:var(--gold);color:#17130c;padding:0 18px;font-weight:800;font-size:13px}.gold-button:hover{background:var(--gold-soft)}.play-layout{display:grid;grid-template-columns:minmax(180px,230px) minmax(500px,1fr) minmax(190px,250px);gap:clamp(18px,3vw,44px);align-items:start}.panel{background:linear-gradient(145deg,rgba(26,39,42,.92),rgba(14,22,26,.9));border:1px solid var(--line);border-radius:7px;padding:22px;box-shadow:0 16px 40px #0004}.story-panel{min-height:590px}.portrait-wrap{height:220px;display:grid;place-items:end center;position:relative;margin:-22px -22px 18px;overflow:hidden;background:linear-gradient(180deg,#172a2a,#10191d)}.portrait{width:174px;height:238px;object-fit:contain;object-position:center bottom;position:relative;z-index:1;filter:drop-shadow(0 12px 14px #000b)}.portrait-ring{position:absolute;width:190px;height:190px;border:1px solid #d6a84f55;border-radius:50%;bottom:-75px}.story-panel h1{font-size:27px;line-height:1.25;margin:8px 0 12px;letter-spacing:-.04em}.story-panel h1 em{color:var(--jade);font-style:normal}.story-copy,.hint{color:var(--muted);font-size:13px;line-height:1.9;margin:0}.progress-wrap{margin-top:28px}.progress-meta{display:flex;justify-content:space-between;font-size:11px;color:var(--muted);margin-bottom:8px}progress{width:100%;height:5px;border:0;border-radius:9px;overflow:hidden}progress::-webkit-progress-bar{background:#263236}progress::-webkit-progress-value{background:var(--gold)}progress::-moz-progress-bar{background:var(--gold)}.quote{display:flex;gap:9px;border-top:1px solid var(--line);margin-top:34px;padding-top:16px;color:var(--gold-soft);font-size:12px;line-height:1.7}.quote span{font-size:22px}.quote p{margin:0}.board-stage{min-width:0;display:flex;flex-direction:column;align-items:center}.score-strip{width:100%;display:grid;grid-template-columns:repeat(5,1fr);border:1px solid var(--line);background:#111a1e;border-radius:5px;margin-bottom:16px}.score-strip>div{padding:11px 9px;text-align:center;border-inline-start:1px solid var(--line)}.score-strip>div:first-child{border-inline-start:0}.score-strip span{display:block;color:var(--muted);font-size:10px}.score-strip strong{display:block;color:var(--gold-soft);font-size:20px;margin-top:3px}.board-frame{position:relative;padding:clamp(10px,1.3vw,16px);background:#0b1114;border:1px solid #d6a84f66;border-radius:8px;box-shadow:0 0 0 5px #0c1417,0 20px 60px #0009}.board{display:grid;grid-template-columns:repeat(8,var(--cell-size));grid-template-rows:repeat(8,var(--cell-size));gap:var(--gap);direction:ltr}.cell{position:relative;border:1px solid rgba(215,185,113,.14);border-radius:3px;background:linear-gradient(145deg,#1d2b2c,#132024);box-shadow:inset 0 1px #ffffff0a;transition:transform .14s,background .14s,box-shadow .14s}.cell:hover{border-color:#d6a84f99}.cell.filled{background:var(--tile-color,#bd8a43);border-color:#fff2b766;box-shadow:inset 3px 3px #fff3, inset -3px -4px #0003,0 3px 8px #0006}.cell.filled::after{content:"";position:absolute;inset:5px;border:1px solid #fff4;border-radius:2px}.cell.preview-good{background:#4cae8a88;border-color:var(--jade)}.cell.preview-bad{background:#ce544855;border-color:var(--red)}.cell.will-clear{animation:glint .32s ease both}.cell.clearing{animation:clear-tile .32s ease both}.message{min-height:24px;margin:16px 0 0;color:var(--muted);font-size:13px;text-align:center}.controls-panel{min-height:590px}.panel-heading h2{font-size:22px;margin:7px 0 8px}.tray{display:flex;flex-direction:column;gap:12px;margin:20px 0}.piece{display:grid;place-items:center;min-height:78px;width:100%;background:#10191d;border:1px solid var(--line);border-radius:5px;padding:13px;transition:transform .16s,border-color .16s,background .16s}.piece:hover,.piece.selected{border-color:var(--gold);background:#1d2929;transform:translateX(-3px)}.piece.used{opacity:.32;filter:grayscale(1);pointer-events:none}.piece-grid{display:grid;grid-template-columns:repeat(var(--cols),14px);grid-template-rows:repeat(var(--rows),14px);gap:3px;direction:ltr}.mini-cell{width:14px;height:14px;border-radius:2px;background:var(--tile-color,var(--gold));box-shadow:inset 2px 2px #fff4,inset -2px -2px #0003}.record-card{border-top:1px solid var(--line);padding-top:18px;margin-top:24px;display:grid;grid-template-columns:1fr 1fr;gap:14px}.record-card .eyebrow{grid-column:1/-1}.record-card div span{display:block;color:var(--muted);font-size:10px;margin-top:3px}.record-card strong{font-size:21px;color:var(--gold-soft)}.keyboard-note{display:flex;align-items:center;flex-wrap:wrap;gap:5px;margin-top:25px;color:var(--muted);font-size:10px}.keyboard-note span{margin-inline:3px 8px}kbd{border:1px solid #ffffff28;background:#ffffff0a;border-radius:3px;padding:3px 6px;color:var(--cream);font-size:10px}.modal{max-width:380px;border:1px solid var(--line);border-radius:8px;background:#111b1f;color:var(--cream);padding:34px;box-shadow:0 20px 80px #000e;text-align:center}.modal::backdrop{background:#05090dcc}.modal h2{font-size:25px;margin:8px 0}.modal p{color:var(--muted);line-height:1.8}.modal-glyph{font-size:36px;color:var(--gold);margin-bottom:10px}.result-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:22px 0}.result-grid div{border:1px solid var(--line);padding:12px}.result-grid span{display:block;font-size:11px;color:var(--muted)}.result-grid strong{display:block;font-size:25px;color:var(--gold-soft);margin-top:5px}.text-button,.modal-close{border:0;background:transparent;color:var(--muted)}.text-button{display:block;margin:15px auto 0;font-size:12px}.modal-close{position:absolute;top:10px;inset-inline-end:15px;font-size:24px}.help-modal{text-align:start}.help-steps p{display:flex;gap:14px;align-items:center;color:var(--cream);border-bottom:1px solid var(--line);padding:10px 0}.help-steps b{color:var(--gold);font-size:20px}.help-foot{font-size:12px}.drag-ghost{position:fixed;z-index:10;pointer-events:none;display:none}.ghost-cell{width:var(--cell-size);height:var(--cell-size);background:var(--gold);border-radius:3px;opacity:.82}@keyframes glint{0%{box-shadow:inset 0 0 #fff,0 0 0 transparent}45%{box-shadow:inset 0 0 0 2px #fff8,0 0 18px var(--gold)}100%{box-shadow:inset 3px 3px #fff3,inset -3px -4px #0003}}@keyframes clear-tile{to{opacity:0;transform:scale(.72)}}#effects{position:fixed;inset:0;pointer-events:none;z-index:20}@media(max-width:1050px){.play-layout{grid-template-columns:190px minmax(440px,1fr);}.controls-panel{grid-column:1/-1;min-height:0;display:grid;grid-template-columns:1fr 1fr;gap:20px}.controls-panel .panel-heading,.controls-panel>.hint{grid-column:1}.tray{grid-column:2;grid-row:1/4;margin:0;flex-direction:row}.piece{min-height:84px}.record-card,.keyboard-note{grid-column:1}.story-panel{min-height:0}}@media(max-width:680px){:root{--cell-size:calc((100vw - 48px)/8);--gap:3px}.game-shell{padding:12px 10px 24px}.topbar{gap:8px;padding-bottom:12px;margin-bottom:14px}.brand-lockup{min-width:0;flex:1}.brand-mark{font-size:25px}.brand-lockup strong{font-size:17px}.chapter-block{display:none}.top-actions{gap:5px}.icon-button{width:34px;min-height:34px}.gold-button{padding:0 10px;font-size:11px}.play-layout{display:flex;flex-direction:column;gap:12px}.board-stage{order:1;width:100%}.score-strip{margin-bottom:10px}.score-strip>div{padding:7px 3px}.score-strip strong{font-size:16px}.score-strip span{font-size:8px}.board-frame{padding:7px;max-width:100%}.message{margin:9px 0 0;font-size:11px}.story-panel{order:2;width:100%;display:grid;grid-template-columns:82px 1fr;gap:0 12px;padding:12px;align-items:center}.portrait-wrap{grid-row:1/4;height:94px;width:82px;margin:-12px 0 -12px -12px}.portrait{width:78px;height:110px}.story-panel h1{font-size:18px;margin:3px 0}.story-panel .eyebrow{font-size:8px}.story-copy{font-size:11px;line-height:1.6}.progress-wrap,.quote{display:none}.controls-panel{order:3;display:block;padding:14px;min-height:0}.panel-heading{display:flex;align-items:baseline;gap:8px}.panel-heading h2{font-size:17px;margin:0}.hint{font-size:11px;line-height:1.6}.tray{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:12px 0 0}.piece{min-height:64px;padding:8px}.piece-grid{grid-template-columns:repeat(var(--cols),10px);grid-template-rows:repeat(var(--rows),10px);gap:2px}.mini-cell{width:10px;height:10px}.record-card,.keyboard-note{display:none}.modal{max-width:calc(100% - 28px);padding:25px 20px}.help-modal{max-width:calc(100% - 24px)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
/* Responsive board sizing */
.board-stage{width:100%}.board-frame{width:min(100%,540px);aspect-ratio:1;padding:clamp(8px,1.3vw,14px)}.board{width:100%;height:100%;grid-template-columns:repeat(8,minmax(0,1fr));grid-template-rows:repeat(8,minmax(0,1fr))}.cell{min-width:0;min-height:0;aspect-ratio:1}.piece-grid{grid-template-columns:repeat(var(--cols),18px);grid-template-rows:repeat(var(--rows),18px)}.mini-cell{width:18px;height:18px}
@media(max-width:900px){.play-layout{grid-template-columns:minmax(0,1fr);gap:14px}.board-stage{grid-row:1;max-width:540px;margin-inline:auto}.story-panel{grid-row:2;min-height:0;display:grid;grid-template-columns:92px 1fr;gap:0 16px;align-items:center}.story-panel .portrait-wrap{grid-row:1/4}.controls-panel{grid-row:3;min-height:0;display:block;max-width:540px;margin-inline:auto;width:100%}.controls-panel .tray{display:grid;grid-template-columns:repeat(3,1fr);flex-direction:row}.controls-panel .piece{min-height:92px}.record-card,.keyboard-note{display:none}}
@media(max-width:680px){:root{--cell-size:22px}.piece-grid{grid-template-columns:repeat(var(--cols),22px);grid-template-rows:repeat(var(--rows),22px)}.mini-cell{width:22px;height:22px}.board-stage{max-width:100%}.story-panel{grid-row:3}.controls-panel{grid-row:2}}
@media(max-width:680px){.controls-panel{order:2}.story-panel{order:3}}
.piece,#board{touch-action:none}
/* Carved stone is shared with the other Anupet games. */
.cell.filled{background-color:var(--tile-color);background-image:linear-gradient(135deg,#ffffff20,#00000010),url('./assets/stone.png');background-size:240px;background-blend-mode:soft-light,multiply;animation:place-stone .16s ease-out}
.cell.filled::after{content:attr(data-glyph);display:grid;place-items:center;font:clamp(14px,2vw,24px) 'Segoe UI Historic','Segoe UI',sans-serif;color:#161e24aa;text-shadow:0 1px #ffffff50;line-height:1}
.cell.filled.preview-bad{background-image:none;background-color:#a34740}
.ghost-cell{background:var(--tile-color,var(--gold));box-shadow:inset 2px 2px #fff4,inset -2px -3px #0004}
.seal-note{display:flex;align-items:center;justify-content:center;gap:12px;border-top:1px solid var(--line);padding-top:24px;margin-top:24px;color:var(--muted);font-size:12px;line-height:1.9}
.seal-note strong{color:var(--gold-soft);font-weight:500}.seal-note p{margin:0}.seal-note img{object-fit:contain}
@keyframes place-stone{from{transform:scale(.88);filter:brightness(1.35)}to{transform:scale(1);filter:brightness(1)}}
@media(max-width:900px){.seal-note{display:none}.story-panel{max-width:540px;width:100%;margin-inline:auto}.brand-lockup span:not(.brand-mark){letter-spacing:0}}
@media(max-width:680px){.piece-grid{--mini-size:min(22px,calc((100vw - 116px)/15));grid-template-columns:repeat(var(--cols),var(--mini-size));grid-template-rows:repeat(var(--rows),var(--mini-size))}.mini-cell{width:var(--mini-size);height:var(--mini-size)}.brand-lockup span:not(.brand-mark){font-size:8px;max-width:140px;line-height:1.5}.topbar{gap:4px}.top-actions{gap:4px}.story-panel .portrait-wrap{margin:0;height:94px;width:82px}.story-panel .portrait{height:104px}}
@media(min-width:901px){.board-frame{width:min(100%,540px,calc(100svh - 245px))}.panel{min-height:min(590px,calc(100svh - 180px))}}
.board-frame::before{content:'𓋹';position:absolute;left:50%;top:-12px;transform:translateX(-50%);background:#0b1114;color:var(--gold);font:22px 'Segoe UI Historic',serif;padding:0 8px;line-height:1}
@media(min-width:901px) and (max-height:800px){.board-frame{width:min(100%,540px,calc(100svh - 275px))}.controls-panel .keyboard-note{display:none}.controls-panel .seal-note{margin-top:12px;padding-top:12px}.controls-panel .tray{gap:8px;margin:14px 0}.controls-panel .piece{min-height:66px}.panel{padding:18px}}
