:root{--shell-bg:#2b1a10;--shell-bg-soft:#3a2416;--bar-bg:#1f120a;--text:#f7e7d2;--text-dim:#c8a985;--accent:#f0a45c;--accent-strong:#ffc078;--focus:#ffd9a0;--warn:#ff9d6b;--brass-light:#f0c46a;--brass:#c9922f;--brass-dark:#8c6318;--wood-light:#b07a3c;--wood:#8a5325;--wood-dark:#63391a;--ink:#3a1f08;--line-faint:#ffc47a1f;--line:#ffc47a2e;--line-strong:#ffc47a52;--tile:#0000002e;--tile-lit:#f0a45c14;--panel-top:#3a2416fa;--panel-bottom:#1f120afa;--panel-head:#3a2416;--scrim:#150b05b8;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--radius-panel:18px;--radius-tile:12px;--fs-caps:.7rem;--fs-small:.8rem;--fs-body:.9rem;--fs-lead:1rem;--fs-title:1.25rem;--fs-figure:1.45rem;--fs-hero:2.2rem;--shadow-panel:0 24px 48px #0000008c, inset 0 1px 0 #ffe4ba12;--ease-out:cubic-bezier(.2, .8, .2, 1)}*{box-sizing:border-box}html,body{background:var(--shell-bg);height:100%;color:var(--text);overscroll-behavior:none;margin:0;padding:0;font-family:Trebuchet MS,Segoe UI,system-ui,-apple-system,sans-serif}body{overflow:hidden}#app{background:radial-gradient(circle at 50% 20%, var(--shell-bg-soft), var(--shell-bg) 70%);padding:env(safe-area-inset-top) env(safe-area-inset-right) 0 env(safe-area-inset-left);flex-direction:column;display:flex;position:fixed;inset:0}.safe-probe{width:0;height:env(safe-area-inset-bottom,0px);visibility:hidden;pointer-events:none;position:fixed;bottom:0;left:0}.stage{flex:auto;min-width:0;min-height:0;display:flex;position:relative;overflow:hidden}.game-root{position:absolute;inset:0;overflow:hidden}.game-root canvas{touch-action:none;-webkit-user-select:none;user-select:none;border-radius:14px;display:block;box-shadow:0 18px 40px #00000073}.button[hidden]{display:none}.button{align-items:center;gap:var(--space-2);background:linear-gradient(180deg, var(--accent-strong), var(--accent));color:var(--ink);font:inherit;font-size:var(--fs-body);cursor:pointer;touch-action:manipulation;transition:transform .12s var(--ease-out), box-shadow .12s var(--ease-out), filter .12s ease;border:1px solid #ffecc859;border-radius:999px;padding:10px 16px;font-weight:700;display:inline-flex;box-shadow:inset 0 1px #ffffff73,0 3px #a35f27,0 8px 18px #00000059}.button:active{transform:translateY(2px);box-shadow:inset 0 1px #ffffff59,0 1px #a35f27,0 3px 8px #0000004d}.button:focus-visible{outline:3px solid var(--focus);outline-offset:3px}.button--quiet{border-color:var(--line-strong);box-shadow:none;color:var(--accent);background:0 0}.button--quiet:active{box-shadow:none;background:var(--tile-lit)}@media (hover:hover){.button:hover{filter:brightness(1.06)}.button--quiet:hover{filter:none;border-color:var(--accent);background:var(--tile-lit)}}.button--wide{justify-content:center;width:100%;padding-block:13px;font-size:1rem}.result{padding:16px 16px calc(22px + env(safe-area-inset-bottom,0px));background:linear-gradient(#150b0529,#150b05b8);justify-content:center;align-items:flex-end;animation:.22s ease-out both result-in;display:flex;position:absolute;inset:0}.result[data-outcome=lost]{align-items:center}.result[hidden]{display:none}.result__panel{width:100%;max-width:340px;max-height:100%;padding:var(--space-5);border:1px solid var(--line-strong);border-radius:var(--radius-panel);background:linear-gradient(180deg, var(--panel-top), var(--panel-bottom));box-shadow:var(--shadow-panel);text-align:center;animation:panel-in .32s var(--ease-out) both;overflow-y:auto}.result__eyebrow{justify-content:center;align-items:center;gap:var(--space-3);margin:0 0 var(--space-2);color:var(--accent);font-size:var(--fs-caps);letter-spacing:.14em;text-transform:uppercase;font-weight:700;display:flex}.result__eyebrow:before,.result__eyebrow:after{content:"";opacity:.45;background:currentColor;width:28px;height:1px}.result__title{font-size:var(--fs-title);margin:0 0 6px;line-height:1.2}.result__text{margin:0 0 var(--space-4);color:var(--text-dim);font-size:var(--fs-body);line-height:1.4}.result__bill{gap:var(--space-2);margin:0 0 var(--space-5);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.result__figure{align-items:center;gap:var(--space-1);padding:var(--space-3) var(--space-2);border:1px solid var(--line-faint);border-radius:var(--radius-tile);background:var(--tile);flex-direction:column-reverse;display:flex}.result__figure[hidden]{display:none}.result__figure--rating{padding:0 0 var(--space-2);background:0 0;border:0;grid-column:1/-1}.result__figure--rating .report__stars{font-size:1.9rem}.result__figure-label{color:var(--text-dim);letter-spacing:.08em;text-transform:uppercase;font-size:.64rem;font-weight:700}.coin{vertical-align:-.13em;background-image:var(--coin);background-repeat:no-repeat;background-size:contain;width:.95em;height:.95em;margin-inline-start:.22em;display:inline-block}.result__figure-value{font-size:var(--fs-figure);font-variant-numeric:tabular-nums;white-space:nowrap;margin:0;font-weight:700;line-height:1.1}.result__panel>*{animation:line-in .36s var(--ease-out) both}.result__panel>:nth-child(2){animation-delay:50ms}.result__panel>:nth-child(3){animation-delay:.1s}.result__panel>:nth-child(4){animation-delay:.16s}.result__panel>:nth-child(5){animation-delay:.24s}.result__figure--rating .report__stars-lit{animation:stars-fill .7s .32s var(--ease-out) both}.result__actions{flex-direction:column;gap:8px;display:flex}.shop,.report{padding:var(--space-4) var(--space-4) calc(var(--space-4) + env(safe-area-inset-bottom,0px));background:var(--scrim);justify-content:center;align-items:center;animation:.18s ease-out both result-in;display:flex;position:absolute;inset:0}.shop[hidden],.report[hidden]{display:none}.shop__panel,.report__panel{width:100%;max-width:clamp(340px,44vw,520px);max-height:100%;padding:0 var(--space-5) var(--space-5);border:1px solid var(--line-strong);border-radius:var(--radius-panel);background:linear-gradient(180deg, var(--panel-top), var(--panel-bottom));box-shadow:var(--shadow-panel);text-align:center;animation:panel-in .28s var(--ease-out) both;scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent;overflow-y:auto}.shop__panel:focus,.report__panel:focus{outline:none}.shop__header,.report__header{z-index:1;justify-items:center;gap:var(--space-1);margin:0 calc(-1 * var(--space-5)) var(--space-4);padding:var(--space-5) 56px var(--space-4);border-bottom:1px solid var(--line-faint);border-radius:var(--radius-panel) var(--radius-panel) 0 0;background:var(--panel-head);display:grid;position:sticky;top:0}.panel__title{font-size:var(--fs-lead);letter-spacing:.04em;margin:0;font-weight:700;line-height:20px}.panel__close{box-sizing:border-box;background:radial-gradient(circle at 35% 30%, var(--wood-light), var(--wood) 55%, var(--wood-dark)) padding-box;width:44px;height:44px;box-shadow:inset 0 0 0 2px var(--brass), inset 0 3px 0 #ffecc840;filter:drop-shadow(0 2px 3px #00000073);color:var(--brass-light);cursor:pointer;touch-action:manipulation;transition:transform .12s var(--ease-out), filter .12s ease;border:4px solid #0000;border-radius:50%;padding:0;font-size:0;position:absolute;top:8px;right:8px}.panel__close:before,.panel__close:after{content:"";background:currentColor;border-radius:2px;width:14px;height:2.5px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(45deg)}.panel__close:after{transform:translate(-50%,-50%)rotate(-45deg)}.panel__close:active{transform:scale(.91)}@media (hover:hover){.panel__close:hover{filter:drop-shadow(0 2px 3px #00000073)brightness(1.15)}}.panel__close:focus-visible{outline:3px solid var(--focus);outline-offset:-2px}.shop__purse{padding:2px var(--space-3);border:1px solid var(--line-faint);background:var(--tile);color:var(--accent-strong);font-size:var(--fs-body);font-variant-numeric:tabular-nums;border-radius:999px;margin:0;font-weight:700}.shop__list{text-align:left;margin:0 0 14px}.shop__items{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.shop__item{padding:var(--space-3) 14px;border:1px solid var(--line-faint);border-radius:var(--radius-tile);background:var(--tile);position:relative}.shop__item[data-affordable=yes]{border-color:var(--line-strong);background:linear-gradient(180deg, var(--tile-lit), var(--tile))}.shop__item[data-owned=yes]{border-style:dashed;border-color:var(--line);background:0 0;padding:6px 14px}.shop__item[data-owned=yes] .shop__head{gap:10px;margin:0}.shop__item[data-owned=yes] .shop__icon{width:30px;height:30px}.shop__item[data-owned=yes] .shop__name{color:var(--text-dim);font-size:var(--fs-small);margin:0;font-weight:600}.shop__tick{background:radial-gradient(circle at 35% 30%, var(--brass-light), var(--brass) 60%, var(--brass-dark));width:22px;height:22px;color:var(--ink);border-radius:50%;flex:none;place-items:center;margin-left:auto;font-size:.72rem;font-weight:700;line-height:1;display:grid;box-shadow:inset 0 -1px #00000040,0 1px 2px #0006}.shop__item[data-level]{margin-left:22px}.shop__item[data-level]:before{content:"";border-bottom:2px solid var(--line-strong);border-left:2px solid var(--line-strong);pointer-events:none;border-bottom-left-radius:8px;width:12px;height:calc(50% + 11px);position:absolute;top:-11px;left:-14px}.shop__head{text-align:left;align-items:center;gap:12px;margin:0 0 8px;display:flex}.shop__icon{flex:none;width:56px;height:56px}.shop__words{min-width:0}.shop__name{margin:0 0 2px;font-size:.92rem;font-weight:700}.shop__blurb{color:var(--text-dim);margin:0;font-size:.78rem;line-height:1.35}.shop__foot{align-items:center;gap:10px;display:flex}.shop__buy{background:linear-gradient(180deg, var(--accent-strong), var(--accent));min-width:0;color:var(--ink);font:inherit;font-size:var(--fs-small);font-variant-numeric:tabular-nums;cursor:pointer;touch-action:manipulation;transition:transform .12s var(--ease-out), box-shadow .12s var(--ease-out), filter .12s ease;border:1px solid #ffecc859;border-radius:999px;flex:auto;padding:8px 12px;font-weight:700;box-shadow:inset 0 1px #ffffff73,0 2px #a35f27}.shop__buy:not([disabled]):active{transform:translateY(2px);box-shadow:inset 0 1px #ffffff59}.shop__buy:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.shop__buy[disabled]{border-color:var(--line-faint);background:var(--tile);color:var(--text-dim);cursor:default;box-shadow:inset 0 1px 2px #0000004d}@media (hover:hover){.shop__buy:not([disabled]):hover{filter:brightness(1.06)}}.shop__clear{width:100%;margin:var(--space-3) 0 0;color:var(--text-dim);font:inherit;font-size:var(--fs-caps);text-decoration:underline;-webkit-text-decoration-color:var(--line-strong);text-decoration-color:var(--line-strong);text-underline-offset:3px;cursor:pointer;background:0 0;border:0;padding:6px;display:block}.shop__clear:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:6px}.shop__clear[data-armed=yes]{color:var(--warn);font-weight:700;text-decoration-color:currentColor}.report__body{text-align:left;margin:0 0 14px}.report__rating{border-bottom:1px solid #ffc47a24;justify-content:center;margin:0 0 20px;padding:4px 0 18px;display:flex}.report__stars{color:#ffc47a42;letter-spacing:.08em;white-space:nowrap;margin:0;font-size:2.2rem;line-height:1;display:inline-block;position:relative}.report__stars-lit{color:var(--accent);white-space:nowrap;position:absolute;top:0;left:0;overflow:hidden}.report__stars--small{letter-spacing:.05em;font-size:1rem}.report__empty{color:var(--text-dim);text-align:center;margin:0;font-size:.85rem}.report__section{margin:0 0 24px}.report__section:last-child{margin-bottom:0}.report__heading{color:var(--accent);letter-spacing:.1em;text-transform:uppercase;align-items:center;gap:10px;margin:0 0 12px;font-size:.72rem;font-weight:700;display:flex}.report__heading:after{content:"";background:#ffc47a2e;flex:1;height:1px}.report__mark{justify-content:space-between;align-items:center;gap:12px;margin:0;display:flex}.report__mark+.report__mark{margin-top:10px}.report__mark-name{font-size:.92rem;font-weight:700}.report__tally{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0;display:grid}.report__tally div{text-align:center;background:#0000002e;border:1px solid #ffc47a1f;border-radius:12px;flex-direction:column-reverse;align-items:center;gap:4px;padding:10px 6px;display:flex}.report__tally dt{color:var(--text-dim);letter-spacing:.08em;text-transform:uppercase;font-size:.64rem;font-weight:700}.report__tally dd{font-variant-numeric:tabular-nums;white-space:nowrap;margin:0;font-size:clamp(.92rem,4.2vw,1.12rem);font-weight:700}.report__till{gap:8px;margin:0;padding:0;list-style:none;display:grid}.report__till-row{grid-template-columns:4.4em minmax(0,1fr) 5.2em;align-items:center;gap:10px;display:grid}.report__till-day{color:var(--text-dim);white-space:nowrap;font-size:.78rem}.report__till-track{background:#ffc47a1a;border-radius:4px;height:8px;overflow:hidden}.report__till-fill{background:linear-gradient(90deg, #f0a45c8c, var(--accent-strong));border-radius:4px;height:100%;display:block}.report__till-amount{font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap;font-size:.88rem;font-weight:700}.report__till-row[data-best=yes] .report__till-amount{color:var(--accent)}.report__review{background:#0000002e;border:1px solid #ffc47a29;border-radius:12px;gap:8px;margin:0 0 10px;padding:12px 14px;display:grid}.report__review:last-child{margin-bottom:0}.report__review-head{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.report__review-who{gap:2px;display:grid}.report__review-name{margin:0;font-size:.92rem;font-weight:700;line-height:1.2}.report__review-day{color:var(--text-dim);margin:0;font-size:.7rem}.report__review-text{margin:0;font-size:.84rem;line-height:1.45}.result[data-outcome=lost] .result__eyebrow{color:var(--warn)}.result[data-outcome=lost] .result__panel{border-color:#ff8d5852}@keyframes line-in{0%{opacity:0;transform:translateY(6px)}}@keyframes stars-fill{0%{width:0}}@keyframes result-in{0%{opacity:0}to{opacity:1}}@keyframes panel-in{0%{opacity:0;transform:translateY(14px)scale(.985)}to{opacity:1;transform:none}}.visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){.button,.panel__close,.shop__buy{transition:none}.result,.shop,.report,.result__panel,.result__panel>*,.result__figure--rating .report__stars-lit,.shop__panel,.report__panel{animation:none}}@media (orientation:landscape) and (max-height:560px){.button{padding:6px 12px;font-size:.82rem}.game-root canvas{box-shadow:none}}
