:root{--page:#fdf1e7;--page-dot:#f8e1d3;--ink:#5a3a40;--muted:#9a7a7f;--shell-hi:#fff1ec;--shell:#ffc8c4;--shell-lo:#f39aa6;--bezel:#fff8f0;--bezel-edge:#f1d9cf;--accent:#e8707f;--accent-ink:#fff;--button:#ffe29a;--button-lo:#e8b44f;--card:#fff;--field:#fff8f3;--field-edge:#efd6cc;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--page:#2b2226;--page-dot:#33282d;--ink:#f7e4e4;--muted:#c3a6ab;--card:#3a2e33;--field:#2f252a;--field-edge:#57454c;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html,body{background-color:var(--page);background-image:radial-gradient(var(--page-dot) 2px, transparent 2px);min-height:100%;color:var(--ink);-webkit-font-smoothing:antialiased;overscroll-behavior:none;background-size:22px 22px;margin:0;font-family:ui-rounded,SF Pro Rounded,Nunito,system-ui,-apple-system,sans-serif}#root{min-height:100dvh;padding:max(16px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(16px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));justify-content:center;display:flex}button{font:inherit;color:inherit;touch-action:manipulation;-webkit-tap-highlight-color:transparent;cursor:pointer}h1,h2{margin:0}.muted{color:var(--muted)}.small{margin:.4rem 0 0;font-size:.85rem}.game{flex-direction:column;justify-content:center;align-items:center;width:100%;max-width:420px;padding-top:8px;display:flex;position:relative}.gear{width:44px;height:44px;color:var(--muted);z-index:2;background:0 0;border:none;padding:10px;position:absolute;top:0;right:0}.gear svg{width:100%;height:100%}.below{flex-direction:column;align-items:center;gap:10px;width:100%;margin-top:18px;display:flex}.caption{text-align:center;min-height:1.4em;margin:0;font-size:.95rem}.banner{background:var(--card);text-align:center;border-radius:999px;margin:4px 0 0;padding:8px 16px;font-weight:700;box-shadow:0 4px 14px #be5a6933}.gift-button{border:2px dashed var(--accent);background:var(--card);min-height:44px;color:var(--accent);border-radius:999px;align-items:center;gap:10px;padding:8px 16px;font-weight:700;display:inline-flex}.badge{background:var(--accent);border-radius:50%;width:10px;height:10px;box-shadow:0 0 0 3px #e8707f40}.gift-result{text-align:center;margin:0;font-weight:700}.new{background:var(--accent);color:var(--accent-ink);vertical-align:2px;border-radius:999px;margin-left:6px;padding:1px 8px;font-size:.75rem;display:inline-block}.device{aspect-ratio:.8;background:radial-gradient(circle at 34% 22%, var(--shell-hi) 0, var(--shell) 32%, var(--shell-lo) 100%);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;border-radius:50% 50% 47% 47%/56% 56% 44% 44%;flex-direction:column;align-items:center;width:min(100%,400px);margin-top:18px;padding-top:13%;display:flex;position:relative;box-shadow:inset -12px -16px #a03c501f,inset 10px 12px #ffffff73,0 22px 40px #be5a6947}.device-ring{border:6px solid var(--shell-lo);z-index:-1;border-radius:50%;width:34px;height:34px;margin-left:-17px;position:absolute;top:-16px;left:50%}.device-brand{letter-spacing:.08em;color:#fff;text-shadow:0 2px #aa465a59;margin-bottom:3.5%;font-size:clamp(.9rem,4vw,1.1rem);font-weight:800}.bezel{background:var(--bezel);width:76%;box-shadow:inset 0 3px 0 var(--bezel-edge), 0 2px 0 #fff9;border-radius:26px;padding:2.5% 3.5%}.icon-row{grid-template-columns:repeat(4,1fr);gap:2px;display:grid}.icon{color:#6b4b51;background:0 0;border:none;border-radius:10px;flex-direction:column;align-items:center;gap:2px;min-height:44px;padding:5px 0 3px;transition:background .15s,opacity .15s;display:flex}.icon svg{fill:currentColor;width:22px;height:22px}.icon span{letter-spacing:.02em;font-size:.6rem;font-weight:700}.icon.selected{background:var(--accent);color:var(--accent-ink)}.icon.disabled{opacity:.32}.icon{position:relative}.need-dot{background:var(--accent);width:9px;height:9px;box-shadow:0 0 0 2px var(--bezel);border-radius:50%;position:absolute;top:3px;right:calc(50% - 19px)}.icon.selected .need-dot{background:var(--accent-ink);box-shadow:0 0 0 2px var(--accent)}.icon.wished:not(.selected){color:var(--accent);background:#ffe9ec;animation:2.4s ease-in-out infinite wish-glow}@keyframes wish-glow{50%{box-shadow:0 0 0 3px #e8707f40}}@media (prefers-reduced-motion:reduce){.icon.wished:not(.selected){animation:none}}.lcd{aspect-ratio:3/2;border-radius:8px;justify-content:center;align-items:center;width:100%;margin:4px 0;display:flex;overflow:hidden;box-shadow:inset 0 2px 6px #00000047,0 0 0 3px #d9c9bd}.lcd canvas{image-rendering:pixelated;touch-action:manipulation;display:block}.buttons{justify-content:space-between;width:62%;margin-top:4.5%;display:flex}.hw-button{flex-direction:column;align-items:center;gap:4px;display:flex}.hw-B{margin-top:16px}.hw-button button{aspect-ratio:1;background:radial-gradient(circle at 35% 30%, #fff5d6 0, var(--button) 45%, var(--button-lo) 100%);border:none;border-radius:50%;width:clamp(44px,14vw,54px);transition:transform 60ms,box-shadow 60ms;box-shadow:0 4px #c98e3c,0 6px 10px #9650284d}.hw-button button:active{transform:translateY(3px);box-shadow:0 1px #c98e3c,0 2px 4px #9650284d}.hw-button span{color:#fff;text-shadow:0 1px #aa465a66;font-size:.7rem;font-weight:800}.card{background:var(--card);border-radius:20px;width:100%;padding:18px;box-shadow:0 8px 24px #a05a6426}.card header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.card h2{font-size:1.1rem}.log{margin-top:14px}.log ul{max-height:45vh;margin:0;padding:0;list-style:none;overflow-y:auto}.log li{border-top:1px solid var(--field-edge);justify-content:space-between;gap:12px;padding:8px 0;font-size:.95rem;display:flex}.log li:first-child{border-top:none}.log time{flex-shrink:0;font-size:.8rem}.field{margin-top:14px}.card header+.field,.login .card>.field:first-child{margin-top:0}.field label{margin-bottom:6px;font-size:.85rem;font-weight:700;display:block}.field input{width:100%;min-width:0;font:inherit;color:var(--ink);background:var(--field);border:2px solid var(--field-edge);border-radius:12px;outline:none;padding:10px 12px;font-size:16px}.field input:focus{border-color:var(--accent)}.row{gap:8px;display:flex}.btn{background:var(--accent);min-height:44px;color:var(--accent-ink);white-space:nowrap;border:none;border-radius:12px;padding:10px 16px;font-weight:700}.btn:disabled{opacity:.5}.btn.secondary{background:var(--field);color:var(--ink);border:2px solid var(--field-edge)}.btn.wide{width:100%;margin-top:16px}.link{color:var(--accent);background:0 0;border:none;margin:-8px;padding:8px;font-weight:700}.link.inline{text-underline-offset:3px;margin:0;padding:4px;text-decoration:underline}.header-actions{align-items:center;gap:14px;display:flex}.chip{border:2px solid var(--field-edge);background:var(--field);border-radius:999px;padding:6px 12px;font-size:.85rem;font-weight:700}.treasures{margin-top:14px}.treasures>p{margin-top:0}.treasure-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:12px 0 0;padding:0;list-style:none;display:grid}.treasure{background:var(--field);text-align:center;border-radius:12px;flex-direction:column;align-items:center;gap:2px;min-width:0;padding:8px 2px;font-size:.7rem;line-height:1.2;display:flex}.treasure svg{width:40px;height:40px;margin-bottom:2px}.treasure strong{overflow-wrap:anywhere;font-size:.75rem}.treasure .count{color:var(--accent)}.px-dark{fill:#4a3238}.px-mid{fill:#d98a96}.px-light{fill:#fff6f0}.treasure.missing svg rect{fill:var(--field-edge)}.treasure.crown.found{background:linear-gradient(160deg,#fff4c9,#ffd98a);box-shadow:0 0 0 2px #f2c14e}.treasure.crown.found .px-mid{fill:#e8a92e}.treasure.crown.found strong,.treasure.crown.found .muted{color:#6b4a12}.error{color:#d04a5c;margin:12px 0 0;font-size:.9rem}.overlay{padding:16px;padding-bottom:max(16px, env(safe-area-inset-bottom));z-index:10;background:#3c1e2859;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.settings{max-width:420px}@media (width>=600px){.overlay{align-items:center}}.login{text-align:center;flex-direction:column;align-items:center;width:100%;max-width:360px;padding-top:6vh;display:flex}.login-screen{background:var(--bezel);border-radius:18px;width:168px;padding:8px;box-shadow:0 10px 24px #be5a6940}.login-screen .lcd{margin:0}.login h1{letter-spacing:.04em;margin-top:18px;font-size:2rem}.login>p{margin:4px 0 20px}.login .card{text-align:left}
