:root{--bg:#f1e4cb;--bg2:#e8d6b3;--card:#fbf4e4;--ink:#33261d;--soft:#6b5645;--acc:#b4532f;--acc2:#8f3f22;--wood:#7a5236;--wood2:#5a3a25;--ok:#3f7d57;--line:#d7c3a0;--c0:#c8623f;--c1:#2f8f8b;--c2:#d9a21b;--c3:#8a4d7a;--c4:#6f9a4e}:root.hc{--bg:#fff;--bg2:#f2f2f2;--card:#fff;--ink:#000;--soft:#222;--acc:#7a1f00;--acc2:#4d1200;--wood:#000;--wood2:#000;--line:#000}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{background:var(--bg);height:100%;color:var(--ink);overscroll-behavior:none;margin:0;font:18px/1.35 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}body{background:radial-gradient(120% 90% at 50% 0%, var(--card) 0%, var(--bg) 55%, var(--bg2) 100%)}#app{flex-direction:column;max-width:560px;height:100dvh;margin:0 auto;display:flex;position:relative}.hidden{display:none!important}.screen{min-height:0;padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom);flex-direction:column;flex:1;display:flex}h1,h2,h3{letter-spacing:.01em;margin:0;font-family:Georgia,Times New Roman,serif}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible{outline-offset:2px;outline:3px solid #1d5fd1}#home{align-items:center;gap:14px;padding:18px 18px 22px;overflow:auto}.logo{text-align:center;margin-top:6px}.logo h1{color:var(--acc2);font-size:42px;line-height:1}.logo p{color:var(--soft);margin:6px 0 0;font-size:17px}.hero{aspect-ratio:5/3;background:var(--wood);border:6px solid var(--wood2);border-radius:26px;flex:none;grid-template-rows:repeat(3,1fr);grid-template-columns:repeat(5,1fr);gap:3px;width:min(300px,80%);padding:3px;display:grid;overflow:hidden;box-shadow:0 6px 18px #3c230f40}.hero i{border:3px solid var(--rc);background-position:50%;background-size:cover;border-radius:10px}.logo,.row,.foot{flex:none}.modes{flex:none;gap:12px;width:100%;display:grid}.mode{border:2px solid var(--line);background:var(--card);text-align:left;min-height:62px;box-shadow:0 2px 0 var(--line);border-radius:18px;align-items:center;gap:14px;padding:10px 16px;display:flex}.mode:active{box-shadow:none;transform:translateY(1px)}.mode b{font-family:Georgia,serif;font-size:20px;display:block}.mode span{color:var(--soft);font-size:15px;display:block}.mode .gl{background:var(--bg2);border-radius:14px;flex:none;place-items:center;width:44px;height:44px;display:grid}.mode.main{background:var(--acc);border-color:var(--acc2);color:#fff;box-shadow:0 3px 0 var(--acc2)}.mode.main span{color:#fbe7d8}.mode.main .gl{background:#ffffff38}.mode small{color:var(--soft);margin-top:2px;font-size:13px;display:inline-block}.row{gap:10px;width:100%;display:flex}.row .btn{flex:1}.btn{border:2px solid var(--line);background:var(--card);min-height:56px;box-shadow:0 2px 0 var(--line);border-radius:16px;padding:8px 16px;font-weight:600}.btn.pri{background:var(--acc);border-color:var(--acc2);color:#fff;box-shadow:0 3px 0 var(--acc2)}.btn:active{transform:translateY(1px)}.btn[disabled]{opacity:.5}.foot{color:var(--soft);text-align:center;margin-top:auto;padding-top:8px;font-size:14px}.bar{flex:none;align-items:center;gap:6px;padding:6px 8px 2px;display:flex}.ic{border:2px solid var(--line);background:var(--card);border-radius:14px;flex:none;width:46px;height:46px;font-size:24px}.stat{text-align:center;flex:1;line-height:1.1}.stat small{color:var(--soft);font-size:13px;display:block}.stat b{font:700 22px Georgia,serif}.goals{gap:8px;padding:0 10px 4px;display:flex;overflow-x:auto}.goal{background:var(--card);border:2px solid var(--line);border-radius:12px;flex:none;align-items:center;gap:6px;padding:2px 10px;font-size:15px;font-weight:600;display:flex}.goal.done{border-color:var(--ok);background:#dcefd9}.goal img{border-radius:7px;width:26px;height:26px}#stage{flex:1;justify-content:center;align-items:center;min-height:0;padding:2px 4px;display:flex;position:relative}#frame{border:4px solid var(--wood2);background:var(--wood);touch-action:none;border-radius:14px;padding:0;line-height:0;position:relative;overflow:hidden;box-shadow:inset 0 0 0 2px #9a6e49,0 6px 18px #3c230f4d}#board{touch-action:none;display:block}#banner{text-align:center;color:#fff;text-shadow:0 2px #3c190ae6,0 0 8px #3c190acc;pointer-events:none;opacity:0;font:700 26px/1.2 Georgia,serif;transition:opacity .25s;position:absolute;top:30%;left:0;right:0}#banner.on{opacity:1}#shelf{flex:none;justify-content:space-between;align-items:center;gap:8px;min-height:62px;padding:4px 8px 6px;display:flex}body.nohand #hand{display:none}#superbar{flex:none;padding:2px 8px 0}#superbar .sup{letter-spacing:.14em;color:#6a4a08;background:#f3e3b8;border:2px solid #b8871a;border-radius:17px;width:100%;height:34px;padding:0;font:700 14px/30px system-ui;display:block;position:relative;overflow:hidden}#superbar .sup u{background:linear-gradient(90deg,#f1c75a,#e0a92e);width:0;transition:width .3s;position:absolute;top:0;bottom:0;left:0}#superbar .sup span{position:relative}#superbar .sup.ready{color:#3a2503;box-shadow:0 0 0 3px #e0a92e8c}#superbar .sup.ready span:after{content:" · tap!"}#hand{background:var(--wood);border:3px solid var(--wood2);border-radius:16px;flex:none;gap:5px;padding:4px;display:flex}.slot{background:var(--card);border:2px solid var(--line);border-radius:12px;place-items:center;width:54px;height:54px;padding:0;display:grid;position:relative}.slot canvas{width:100%;height:100%}.slot:active{transform:scale(.96)}.slot small{color:var(--soft);font-size:11px;font-weight:700;position:absolute;top:1px;left:3px}#powers{flex-wrap:wrap;flex:1;justify-content:flex-end;align-items:center;gap:5px;display:flex}#powers .hint{color:var(--soft);text-align:right;font-size:13px;line-height:1.2}.pw{border:2px solid var(--line);background:var(--card);border-radius:16px;place-items:center;width:42px;height:42px;padding:0;display:grid;position:relative}.pw svg{width:24px;height:24px}.pw i{background:var(--acc);color:#fff;text-align:center;border-radius:11px;min-width:22px;height:22px;font:700 13px/22px system-ui;position:absolute;top:-6px;right:-4px}.pw[disabled]{opacity:.38}.pw.sup{background:linear-gradient(#fff3d4,#f3d58c);border-color:#b8871a;width:84px;font:700 13px/1.1 system-ui}.pw.sup.ready{box-shadow:0 0 0 3px #e0a92e}.pw .m{background:#e6d3a8;border-radius:4px;height:6px;position:absolute;bottom:5px;left:6px;right:6px;overflow:hidden}.pw .m u{background:#b8871a;width:0;height:100%;display:block}.pw.on{background:#d9ecf1;border-color:#2f8f8b}#pad{flex:none;gap:8px;padding:4px 10px 8px;display:flex}.pb{border:2px solid var(--line);background:var(--card);min-height:50px;box-shadow:0 3px 0 var(--line);border-radius:18px;flex:1;font-size:28px}.pb.big{background:var(--acc);color:#fff;border-color:var(--acc2);box-shadow:0 3px 0 var(--acc2);flex:1.4}.pb:active{box-shadow:none;transform:translateY(2px)}body.nobtn #pad{display:none}.pw.aim{border-color:var(--acc);background:#f7d9c8}#aimhint{text-align:center;color:#fff;z-index:3;pointer-events:none;background:#33261dd9;border-radius:12px;padding:6px 10px;font-size:15px;position:absolute;top:8px;left:8px;right:8px}.overlay{z-index:20;background:#33261d8c;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--card);width:100%;max-width:560px;max-height:92dvh;padding:20px 18px calc(22px + env(safe-area-inset-bottom));border-top:4px solid var(--wood);border-radius:26px 26px 0 0;overflow:auto}.sheet h2{color:var(--acc2);margin-bottom:8px;font-size:28px}.sheet p{margin:8px 0}.sheet .muted{color:var(--soft);font-size:16px}.sheet .row{margin-top:14px}.sheet .col{gap:10px;margin-top:12px;display:grid}.set{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;min-height:56px;display:flex}.set label{flex:1}.set small{color:var(--soft);font-size:14px;display:block}.tog{border:2px solid var(--wood);background:#d9c9a8;border-radius:20px;flex:none;width:64px;height:38px;padding:0;position:relative}.tog:after{content:"";border:2px solid var(--wood);background:#fff;border-radius:50%;width:28px;height:28px;transition:left .15s;position:absolute;top:3px;left:3px}.tog[aria-pressed=true]{background:var(--ok)}.tog[aria-pressed=true]:after{left:29px}.seg{gap:6px;display:flex}.seg button{border:2px solid var(--line);background:#fff8e8;border-radius:12px;min-width:56px;min-height:44px;padding:4px 10px}.seg button[aria-pressed=true]{background:var(--acc);color:#fff;border-color:var(--acc2)}input[type=range]{width:150px;height:44px;accent-color:var(--acc)}.grid{grid-template-columns:repeat(4,1fr);gap:10px;margin-top:12px;display:grid}.cardc{border:2px solid var(--line);background:#fff;border-radius:14px;position:relative;overflow:hidden}.cardc img{aspect-ratio:1;object-fit:cover;width:100%;display:block}.cardc.dim img{filter:grayscale()brightness(1.1);opacity:.35}.cardc .pr{background:#0000002e;height:7px;position:absolute;bottom:0;left:0;right:0}.cardc .pr u{background:var(--ok);height:100%;display:block}.cardc.found{border-color:var(--ok)}.cardc.found:after{content:"✓";background:var(--ok);color:#fff;text-align:center;border-radius:11px;width:22px;height:22px;font:700 14px/22px system-ui;position:absolute;top:2px;right:3px}.levels{grid-template-columns:repeat(4,1fr);gap:10px;margin-top:12px;display:grid}.lv{border:2px solid var(--line);background:#fff8e8;border-radius:16px;place-items:center;min-height:74px;font:700 22px Georgia,serif;display:grid}.lv small{color:var(--ok);letter-spacing:2px;font:15px system-ui}.lv[disabled]{opacity:.4}.big3{text-align:center;letter-spacing:8px;color:#c8921a;margin:4px 0;font-size:44px}.found-row{flex-wrap:wrap;justify-content:center;gap:10px;margin:10px 0;display:flex}.found-row figure{text-align:center;width:96px;margin:0;font-size:13px}.found-row img{border:3px solid var(--ok);object-fit:cover;border-radius:16px;width:96px;height:96px}#toast{left:50%;bottom:calc(90px + env(safe-area-inset-bottom));background:var(--ink);color:#fff;opacity:0;pointer-events:none;z-index:40;text-align:center;border-radius:14px;max-width:88%;padding:10px 16px;font-size:16px;transition:opacity .3s;position:fixed;transform:translate(-50%)}#toast.on{opacity:1}@media (height<=700px){.pb{min-height:52px}.slot{width:56px;height:56px}.pw{width:46px;height:46px}#pad{padding-bottom:6px}.logo h1{font-size:34px}.hero{width:min(260px,70%)}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}#unlock{z-index:45;background:#33261d8c;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0;overflow:auto}#unlock .card{background:var(--card);width:100%;max-width:560px;max-height:94dvh;padding:20px 18px calc(22px + env(safe-area-inset-bottom));border-top:4px solid var(--wood);text-align:left;border-radius:26px 26px 0 0;overflow:auto}#unlock h2{color:var(--acc2);margin-bottom:6px;font-size:28px}#unlock .note{color:var(--soft);margin:8px 0;font-size:15px}#unlock .note.good{color:var(--ok);font-weight:700}#unlock .perks{margin:8px 0;padding:0;list-style:none}#unlock .perks li{padding:5px 0 5px 24px;position:relative}#unlock .perks li:before{content:"✦";color:#b8871a;position:absolute;left:2px}#unlock .price{color:var(--acc2);margin:6px 0;font:700 34px Georgia,serif}#unlock .price s{color:var(--soft);font-size:20px}#unlock .btn{background:var(--acc);color:#fff;border-color:var(--acc2);width:100%;box-shadow:0 3px 0 var(--acc2);margin-top:10px;display:block}#unlock .btn.alt{background:var(--card);color:var(--ink);border-color:var(--line);box-shadow:0 2px 0 var(--line)}#unlock input{border:2px solid var(--line);width:100%;min-height:52px;font:inherit;background:#fff;border-radius:12px;margin:6px 0;padding:10px 12px}#unlock .chip{border:2px solid var(--line);background:#fff8e8;border-radius:22px;min-height:44px;margin-top:12px;padding:6px 14px}#unlock .redeem{margin-top:10px}.btn.small{min-height:48px;font-size:16px}html.themed body{background:radial-gradient(120% 90% at 50% 0%, var(--tbg1), var(--tbg2) 55%, var(--tbg3))}html.themed body:before{content:"";pointer-events:none;z-index:0;background:radial-gradient(circle at 20% 30%, var(--glow) 0, transparent 22%), radial-gradient(circle at 78% 22%, var(--glow) 0, transparent 18%), radial-gradient(circle at 60% 78%, var(--glow) 0, transparent 24%), radial-gradient(circle at 12% 85%, var(--glow) 0, transparent 16%);animation:46s ease-in-out infinite alternate drift;position:fixed;inset:-20%}#app{z-index:1}@keyframes drift{0%{transform:translate(-3%,-2%)scale(1)}to{transform:translate(3%,3%)scale(1.08)}}html.calm body:before{animation:none}#frame{box-shadow:inset 0 0 0 2px #ffffff38,0 6px 22px #28190a59,0 0 0 1px #00000026}
