:root{--bg: var(--tg-theme-bg-color, #ffffff);--text: var(--tg-theme-text-color, #1a1a1a);--hint: var(--tg-theme-hint-color, #8b8b8b);--link: var(--tg-theme-link-color, #2a7ab0);--button: var(--tg-theme-button-color, #2a7ab0);--button-text: var(--tg-theme-button-text-color, #ffffff);--surface: var(--tg-theme-secondary-bg-color, #f2f2f6);--snake: #a3301c;--arrow: #1f6b39;--win: #7a5a12;--muted: var(--hint);--accent: var(--win);--on-accent: var(--button-text);--rule: var(--tg-theme-section-separator-color, #d9d9de);--gap: 3px;--radius: 7px;--sheet-pad: 18px}@media(prefers-color-scheme:dark){:root{--snake: #f08a72;--arrow: #5fc684;--win: #e0b544}}[data-theme=dark]{--snake: #f08a72;--arrow: #5fc684;--win: #e0b544}[data-theme=light]{--snake: #a3301c;--arrow: #1f6b39;--win: #7a5a12}*{box-sizing:border-box}html,body{margin:0;height:100%}body{background:var(--bg);color:var(--text);font:16px/1.45 -apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;-webkit-font-smoothing:antialiased}#app{display:flex;flex-direction:column;gap:12px;height:100%;padding:12px 12px calc(12px + env(safe-area-inset-bottom))}.head{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:6px 10px}.icon{flex:0 0 auto;width:44px;height:44px;padding:0;font-size:20px;line-height:1;background:transparent;color:var(--muted)}.icon:hover{color:var(--text)}.head progress{grid-column:1 / -1}.where{display:flex;align-items:baseline;gap:8px;min-height:28px;min-width:0}.plan-number{font-size:26px;font-weight:650;font-variant-numeric:tabular-nums;color:var(--link)}.plan-title{font-size:15px;color:var(--hint);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}progress{width:100%;height:3px;border:0;border-radius:2px;background:var(--surface);-webkit-appearance:none;-moz-appearance:none;appearance:none}progress::-webkit-progress-bar{background:var(--surface);border-radius:2px}progress::-webkit-progress-value{background:var(--link);border-radius:2px;transition:width .4s ease}[hidden]{display:none!important}.file{position:relative;display:inline-flex;align-items:center;justify-content:center;padding:12px 14px;border-radius:var(--radius);background:var(--surface);color:var(--text);font-weight:600;cursor:pointer}.file input{position:absolute;inset-inline:0;inset-block:0;opacity:0;cursor:pointer}.hint{margin:10px 0 0;color:var(--muted);font-size:13px}.sheet-controls{display:flex;gap:var(--gap);align-items:center;margin-top:12px;padding:0 var(--sheet-pad) var(--sheet-pad)}.sheet-controls form{display:contents}#writer-text{width:100%;box-sizing:border-box;max-height:28vh;font:inherit;padding:10px 12px;border:1px solid var(--rule, #d9d9de);border-radius:var(--radius);background:var(--surface);color:var(--text);resize:vertical}.die{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;padding:0;flex:0 0 auto;align-self:center;width:60px;height:60px;margin:14px auto 4px;background:transparent no-repeat center / contain;cursor:pointer;-webkit-tap-highlight-color:transparent}.die:active{transform:scale(.94)}.die:disabled{opacity:.4;cursor:default}@keyframes spin{to{transform:rotate(var(--spin, 360deg))}}@media(prefers-reduced-motion:reduce){.die{animation:none!important}}.board{position:relative;flex:0 0 auto;width:100%;max-width:520px;margin:auto;aspect-ratio:714 / 630;border-radius:var(--radius)}.board.painted{background:var(--board-art) no-repeat center / 100% 100%}.squares{position:absolute;top:9.12%;bottom:-.33%;inset-inline:7.32%;display:grid;grid-template-columns:repeat(9,1fr);grid-template-rows:repeat(8,1fr)}.cell{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;font:inherit;padding:0;display:flex;align-items:center;justify-content:center;position:relative;border-radius:50%;background:var(--surface);color:var(--hint);font-size:clamp(9px,2.6vw,13px);font-variant-numeric:tabular-nums;transition:background .2s ease,box-shadow .2s ease;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.cell:active{background:#00000014}.board:not(.painted) .cell.snake .mark{color:var(--snake)}.board:not(.painted) .cell.arrow .mark{color:var(--arrow)}.board.painted .mark{display:none}.board:not(.painted) .cell.win{box-shadow:inset 0 0 0 2px var(--win)}.cell:focus-visible,button:focus-visible{outline:2px solid var(--link);outline-offset:2px}.board.painted .cell{background:transparent}.board .cell.here{color:transparent;background:var(--gem) no-repeat center / 88% 88%;z-index:1}.cell.from{box-shadow:inset 0 0 0 2px var(--link)}.cell.win{color:transparent;box-shadow:none}.cell .mark{position:absolute;top:1px;right:2px;font-size:9px;font-weight:700;line-height:1;opacity:.85}.say{display:flex;align-items:center;margin-top:auto;min-height:44px;padding:11px 13px;border-radius:var(--radius);background:var(--surface);font-size:14px}.say.snake{box-shadow:inset 3px 0 0 var(--snake)}.say.arrow{box-shadow:inset 3px 0 0 var(--arrow)}.say.win{box-shadow:inset 3px 0 0 var(--win)}.controls{display:flex;gap:8px}button{flex:1;padding:13px;border:0;border-radius:var(--radius);background:var(--surface);color:var(--text);font:inherit;font-weight:600;cursor:pointer;-webkit-tap-highlight-color:transparent}button.primary{background:var(--button);color:var(--button-text)}button:disabled{opacity:.45;cursor:default}button:active:not(:disabled){transform:scale(.98)}.reader{width:min(680px,92vw);max-height:82vh;padding:0;border:0;border-radius:14px;background:var(--bg);color:var(--text);overflow:hidden}.reader::backdrop{background:#00000073}textarea{width:100%;box-sizing:border-box;padding:10px 12px;border:1px solid var(--surface);border-radius:var(--radius);background:var(--bg);color:var(--text);font:inherit;font-size:16px;line-height:1.45;resize:vertical}.reader article{max-height:calc(82vh - 70px);padding:var(--sheet-pad);overflow-y:auto;-webkit-overflow-scrolling:touch}.reader h2{margin:0 0 10px;font-size:19px}.reader p{margin:0 0 12px;font-size:15px}.reader form{padding:10px 14px calc(14px + env(safe-area-inset-bottom))}@keyframes tumble{0%{transform:rotate(0) scale(1)}50%{transform:rotate(180deg) scale(1.12)}to{transform:rotate(360deg) scale(1)}}.rolling{animation:tumble .45s ease-in-out}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}.list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.list button{width:100%;text-align:start;background:transparent;padding:12px 10px;border-radius:var(--radius)}.list button:hover{background:var(--surface)}.list button.here{font-weight:650;color:var(--accent, inherit);background:var(--surface)}.quiet{width:auto;padding:6px 0;background:transparent;color:var(--link);font-weight:500}.board .cell.other{color:transparent}.board .cell.other:after{content:attr(data-seat);position:absolute;top:12%;right:12%;bottom:12%;left:12%;display:grid;place-items:center;border-radius:50%;border:2px solid var(--link);color:var(--text);font-size:.62em;font-weight:650}.reader .seat{margin-top:22px;padding-bottom:4px;border-bottom:1px solid var(--surface);color:var(--muted);font-size:13px;text-transform:uppercase;letter-spacing:.06em}.reader blockquote.mine{margin:0 0 .75rem;padding:.5rem 0 .5rem .75rem;border-inline-start:2px solid var(--accent, #b8860b)}.reader h3.mine{margin:0 0 .5rem;font-size:.95rem;opacity:.75}.reader blockquote.mine cite{display:block;font-size:.8rem;font-style:normal;opacity:.6}.reader blockquote.mine p{margin:.25rem 0 0;white-space:pre-wrap}.reader blockquote.mine+p{margin-top:1.25rem}.returns{margin-inline-start:.5rem;padding:0 .4rem;border-radius:999px;font-size:.75rem;background:var(--accent, #b8860b);color:var(--on-accent, #fff)}.came-back{display:flex;flex-wrap:wrap;gap:.4rem;margin:0 0 1rem}.came-back .chip{padding:.3rem .6rem;border:1px solid var(--accent, #b8860b);border-radius:999px;background:none;color:inherit;font-size:.85rem;cursor:pointer}.quiet-mark{display:block;font-size:.75rem;opacity:.6}#writer-before{max-height:32vh;overflow-y:auto}#writer-before blockquote.mine{margin:0 0 .5rem;padding:.4rem 0 .4rem .6rem;border-inline-start:2px solid var(--accent, #b8860b)}#writer-before blockquote.mine cite{display:block;font-size:.75rem;font-style:normal;opacity:.6}#writer-before blockquote.mine p{margin:.2rem 0 0;white-space:pre-wrap}
