:root{--tan:#e9d8b4;--paper:#f6ecd2;--ink:#4a3426;--red:#c8463d;--teal:#2f6f73;--brass:#c9a24a;--felt:#3d2818;--sab:max(var(--inset-bottom,env(safe-area-inset-bottom,0px)), 16px);--font:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif}*{box-sizing:border-box}html,body{overscroll-behavior:none;height:100%;color:var(--ink);font:600 15px/1.35 var(--font);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;background:#6b4a30;margin:0;overflow:hidden}#app{background:radial-gradient(at 50% 30%,#ffe9be80,#0000 70%),repeating-linear-gradient(95deg,#8a6240 0 38px,#7f5a3a 38px 76px,#876141 76px 120px);position:fixed;inset:0}#board{touch-action:none;display:block;position:absolute;top:0;left:0}[hidden]{display:none!important}button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation}button:focus-visible{outline-offset:2px;outline:3px solid #fff}#play{pointer-events:none;position:absolute;inset:0}#play>*{pointer-events:auto}#topbar{border-bottom:3px solid var(--brass);height:56px;color:var(--paper);background:linear-gradient(#3d2818,#4d3320);align-items:center;gap:6px;padding:0 112px 0 8px;display:flex;position:absolute;top:0;left:0;right:0}.chip{width:44px;height:44px;color:var(--paper);background:#0000004d;border:0;border-radius:12px;flex:none;place-items:center;padding:0;font-size:26px;font-weight:700;line-height:1;display:grid}.chip svg{fill:currentColor;width:24px;height:24px}.chip:active{background:#00000080}#info{text-align:left;flex:1;min-width:0}#info-line{white-space:nowrap;font-variant-numeric:tabular-nums;font-size:13px;font-weight:700}#slots{gap:4px;margin-top:3px;display:flex}.slot{background-position:50%;background-size:cover;border:2px dashed #f6ecd28c;border-radius:50%;width:18px;height:18px}.slot.on{border:2px solid var(--brass)}#banner{left:12px;right:12px;bottom:calc(160px + var(--sab));color:var(--ink);text-align:center;background:#f6ecd2f0;border-radius:12px;padding:8px 12px;font-size:14px;position:absolute;box-shadow:0 2px 8px #0000004d;pointer-events:none!important}#bottombar{height:calc(56px + var(--sab));border-top:3px solid var(--brass);padding-bottom:var(--sab);background:linear-gradient(#4d3320,#3d2818);display:flex;position:absolute;bottom:0;left:0;right:0}.tool{min-width:44px;height:100%;color:var(--paper);background:0 0;border:0;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;padding:0;font-size:11px;font-weight:700;display:flex}.tool[aria-pressed=true]{box-shadow:inset 0 -3px 0 var(--brass);background:#c9a24a47}.tool:active{background:#ffffff1f}.tool b{color:#ffd66b}.ico{background-position:50%;background-repeat:no-repeat;background-size:contain;width:24px;height:24px;display:block}.ico-piece{background-image:var(--icon-piece,none)}.ico-zoom{background-image:var(--icon-zoom,none)}.ico-hint{background-image:var(--icon-hint,none)}html:not([data-skin=art]) .ico-piece,html:not([data-skin=art]) .ico-zoom,html:not([data-skin=art]) .ico-hint{background:radial-gradient(circle, var(--brass) 0 45%, transparent 48%)}.ico-edge{border:3px solid var(--paper);background:repeating-linear-gradient(90deg,#0000 0 4px,#f6ecd259 4px 6px);border-radius:4px;width:20px;height:20px}.ico-colour{background:conic-gradient(#c8463d,#e8b43a,#5fa05a,#2f6f73,#6b4fa0,#c8463d);border-radius:50%;width:20px;height:20px}#loading{color:var(--paper);z-index:15;background:#3d2818d1;flex-direction:column;justify-content:center;align-items:center;gap:12px;display:flex;position:absolute;inset:0}.ring{width:84px;height:84px}.ring svg{width:100%;height:100%;transform:rotate(-90deg)}.ring circle{fill:none;stroke:#f6ecd240;stroke-width:7px}.ring #ring-fg{stroke:var(--brass);stroke-linecap:round;stroke-dasharray:214;stroke-dashoffset:214px;transition:stroke-dashoffset .15s linear}#screen{z-index:12;pointer-events:none;position:absolute;inset:0}#screen>*{pointer-events:auto}.screen{-webkit-overflow-scrolling:touch;touch-action:pan-y;background:radial-gradient(at 50% 0,#fff4d6e6,#0000 70%),linear-gradient(#e9d8b4,#dcc79a);padding:60px 14px 28px;position:absolute;inset:0;overflow:hidden auto}.screen.dim{background:#28180cb3;place-items:center;padding:16px;display:grid}.wrap{max-width:520px;margin:0 auto}h1{letter-spacing:-.5px;color:var(--ink);margin:0;font-size:30px;font-weight:900;line-height:1.05}h2{margin:18px 0 8px;font-size:17px;font-weight:800}.sub{opacity:.8;margin:4px 0 10px;font-weight:600}.head{align-items:center;gap:12px;padding-right:100px;display:flex}.head img{flex:none;width:76px;height:auto}.panel{background:var(--paper);border:2px solid #b79868;border-radius:16px;padding:12px;box-shadow:0 2px #4a342640}html[data-skin=art] .panel.skin{border:22px solid #0000;border-image:var(--skin-panel) 62 fill / 22px stretch;box-shadow:none;background:0 0;padding:0 2px}.btn{background:linear-gradient(#d65a50, var(--red));color:#fff;text-shadow:0 1px #00000059;border:2px solid #8b2f29;border-radius:999px;justify-content:center;align-items:center;min-width:44px;min-height:48px;padding:0 20px;font-size:16px;font-weight:800;display:inline-flex;box-shadow:0 3px #8b2f29}.btn:active{transform:translateY(2px);box-shadow:0 1px #8b2f29}.btn.alt{color:var(--ink);text-shadow:none;background:linear-gradient(#fbf3dc,#eadbb2);border-color:#9a7b4a;box-shadow:0 3px #9a7b4a}.btn.alt:active{box-shadow:0 1px #9a7b4a}html[data-skin=art] .btn{border:18px solid #0000;border-width:18px 24px;border-image:var(--skin-btn) 40 54 fill / 18px 24px stretch;box-shadow:none;background:0 0;min-width:96px;min-height:48px;padding:0}html[data-skin=art] .btn.alt{border-image:var(--skin-btn2) 40 54 fill / 18px 24px stretch;background:0 0}html[data-skin=art] .btn:active{transform:scale(.97)}.btn[disabled]{opacity:.5}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.row.end{justify-content:flex-end}.daily{align-items:center;gap:12px;display:flex}.daily img,.cont img{object-fit:cover;border:2px solid #fff;border-radius:8px;flex:none;width:96px;height:72px;box-shadow:0 2px 6px #0000004d}.daily .meta{flex:1;min-width:0}.daily .t{font-size:17px;font-weight:800}.small{opacity:.8;font-size:13px;font-weight:600}.cont{text-align:left;background:var(--paper);border:2px solid #b79868;border-radius:14px;align-items:center;gap:10px;width:100%;min-height:56px;margin-bottom:8px;padding:8px;display:flex}.cont img{width:64px;height:48px}.cont .meta{flex:1;min-width:0}.grid{grid-template-columns:repeat(2,1fr);gap:10px;display:grid}.card{background:var(--paper);text-align:left;border:3px solid #fff;border-radius:12px;padding:0;position:relative;overflow:hidden;box-shadow:0 3px 8px #4a342659}.card img{aspect-ratio:4/3;object-fit:cover;width:100%;display:block}.card .cap{justify-content:space-between;align-items:center;gap:4px;padding:6px 8px;font-size:13px;font-weight:800;display:flex}.stars{color:var(--brass);letter-spacing:1px;white-space:nowrap}.stars .off{color:#c9bd9f}.card.locked img{filter:grayscale()brightness(.55)}.card .lock{color:#fff;text-shadow:0 1px 4px #000;text-align:center;place-items:center;font-size:13px;font-weight:800;display:grid;position:absolute;inset:0 0 34px}.pill{background:var(--teal);color:#fff;border-radius:999px;padding:2px 8px;font-size:12px;font-weight:800;display:inline-block}.chips{flex-wrap:wrap;gap:8px;margin:8px 0;display:flex}.sizebtn{min-width:60px;min-height:48px;color:var(--ink);background:#fbf3dc;border:2px solid #9a7b4a;border-radius:12px;padding:4px 10px;font-size:17px;font-weight:900;line-height:1.1}.sizebtn small{opacity:.7;font-size:11px;font-weight:700;display:block}.sizebtn[aria-pressed=true]{background:var(--teal);color:#fff;border-color:#1c4a4d}.toggle{text-align:left;background:0 0;border:0;align-items:center;gap:10px;width:100%;min-height:48px;padding:4px 8px;font-weight:700;display:flex}.toggle .sw{background:#b9a784;border-radius:999px;flex:none;width:44px;height:26px;transition:background .15s;position:relative}.toggle .sw:after{content:"";background:#fff;border-radius:50%;width:20px;height:20px;transition:transform .15s;position:absolute;top:3px;left:3px}.toggle[aria-checked=true] .sw{background:var(--teal)}.toggle[aria-checked=true] .sw:after{transform:translate(18px)}.dialog{width:min(92vw,420px);max-height:92vh;overflow-y:auto}.dialog img.hero{aspect-ratio:4/3;object-fit:cover;border:3px solid #fff;border-radius:10px;width:100%;box-shadow:0 3px 8px #0000004d}.page{align-items:center;gap:10px;margin-bottom:10px;display:flex}.page img{object-fit:cover;border:2px solid #fff;border-radius:6px;flex:none;width:92px;height:69px}.page .meta{flex:1;min-width:0}.stamps{gap:6px;margin-top:4px;display:flex}.stamp{color:#b79868;background-color:#b7986826;background-repeat:no-repeat;border:2px dashed #b79868;border-radius:50%;place-items:center;width:40px;height:40px;font-weight:900;display:grid}.stamp.on{border:3px solid var(--red);box-shadow:0 0 0 2px var(--paper) inset}.results{text-align:center;perspective:900px}.frame{background:#fff;border-radius:6px;margin:6px auto 0;padding:10px 10px 14px;animation:.55s ease-out both flipIn;display:inline-block;transform:rotate(-2.5deg);box-shadow:0 8px 20px #3c241480}.frame img{aspect-ratio:4/3;object-fit:cover;width:min(72vw,300px);display:block}.screen.res{padding:56px 14px max(var(--sab), 16px);flex-direction:column;display:flex}.screen.res .wrap{width:100%;margin:auto}.res h1{font-size:clamp(22px,4.4svh,30px)}.res .sub{margin:2px 0 6px}.res .frame{margin:2px auto 0;padding:8px 8px 10px}.res .frame img{width:auto;max-width:min(72vw,300px);height:clamp(100px,20svh,211px)}.res .rstamps{margin:10px 0 4px}.res .big{font-size:clamp(30px,5.6svh,40px)}.res .nb{min-height:24px;margin:4px 0}.res p.small{margin:4px 0}.res .confetti{position:fixed}.res-actions{justify-content:center;gap:6px 10px;margin-top:6px}@keyframes flipIn{0%{opacity:0;transform:rotateY(80deg)rotate(-2.5deg)}}.rstamps{justify-content:center;gap:12px;margin:14px 0 6px;display:flex}.rstamp{opacity:.5;background-color:#b7986826;background-position:50%;background-size:cover;border:3px dashed #b79868;border-radius:50%;width:60px;height:60px}.rstamp.on{opacity:1;border:4px solid var(--red);animation:.4s cubic-bezier(.2,1.6,.4,1) both thump}@keyframes thump{0%{opacity:0;transform:scale(2.4)rotate(-20deg)}60%{opacity:1}to{transform:scale(1)rotate(0)}}.big{font-variant-numeric:tabular-nums;font-size:40px;font-weight:900;line-height:1.1}.newbest{background:var(--red);color:#fff;border-radius:999px;padding:3px 12px;font-weight:900;animation:.4s cubic-bezier(.2,1.6,.4,1) 1.4s both thump;display:inline-block}.confetti{pointer-events:none;border-radius:2px;width:8px;height:14px;animation:linear forwards fall;position:absolute;top:-12px}@keyframes fall{to{transform:translateY(105vh)rotate(720deg)}}#toast{left:50%;bottom:calc(140px + var(--sab));max-width:88vw;color:var(--paper);opacity:0;pointer-events:none;z-index:30;text-align:center;background:#28180ceb;border-radius:999px;padding:8px 16px;font-size:14px;transition:opacity .2s;position:absolute;transform:translate(-50%)}#toast.show{opacity:1}@media (prefers-reduced-motion:reduce){.frame,.rstamp.on,.newbest{animation:none}}
