:root{--cream:#fff8e6;--cream-deep:#fff0cd;--mint:#c9eee6;--mint-deep:#51b8aa;--mint-ink:#088280;--ink:#5b3326;--ink-soft:#9a6b57;--line:#97513e;--line-soft:#e2b9a4;--coral:#ff98bf;--coral-deep:#e04a55;--sun:#ffdf87;--card:#fffeeb;--shadow:0 4px 0 #97513e33, 0 8px 20px #97513e1a;--radius:20px;--touch:56px;--skin-pill:url(/ui/pillWhite.webp) 80 90 fill / 28px 32px;--skin-pill-on:url(/ui/pillTurquoise.webp) 80 90 fill / 28px 32px;--skin-pill-danger:url(/ui/pillRed.webp) 80 90 fill / 28px 32px;--skin-frame:url(/ui/frame.webp) 60 fill / 22px;--skin-slot:url(/ui/slot.webp) 60 fill / 16px;--skin-slot-on:url(/ui/slotCurrent.webp) 60 fill / 16px;--skin-ribbon:url(/ui/ribbonRed.webp) 0 46 fill / 0 18px;--skin-ribbon-soft:url(/ui/ribbonGray.webp) 0 46 fill / 0 18px;color:var(--ink);background:var(--cream);-webkit-tap-highlight-color:transparent;font-family:Fredoka,system-ui,sans-serif}*{box-sizing:border-box}html,body,#root{overscroll-behavior:none;-webkit-user-select:none;user-select:none;touch-action:manipulation;height:100%;margin:0;overflow:hidden}button,input,select{font:inherit;color:inherit}input,select{-webkit-user-select:text;user-select:text}h1,h2,h3{color:var(--ink);margin:0;font-weight:700}h3,.field>span{align-items:center;gap:8px;display:flex}.btn{min-height:var(--touch);min-width:var(--touch);border:0 solid #0000;border-image:var(--skin-pill);cursor:pointer;background:0 0;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:0 22px 4px;font-size:20px;font-weight:600;transition:transform 80ms;display:inline-flex}.btn:active{transform:translateY(2px)scale(.98)}.btn:disabled{opacity:.45;filter:grayscale(.6);cursor:default}.btn.primary{border-image:var(--skin-pill-on);color:#fff}.btn.danger{border-image:var(--skin-pill-danger);color:#fff}.btn.icon{width:var(--touch);height:calc(var(--touch) * 1.12);background:url(/ui/circleWhite.webp) 50%/100% 100% no-repeat;border-image:;padding:0 0 6px;font-size:26px}.btn.ghost{box-shadow:none;background:0 0;border-image:}.ui-icon{object-fit:contain;pointer-events:none;flex:none;display:block}.btn.small{min-height:var(--touch);padding:0 16px;font-size:16px}.link{color:var(--ink-soft);min-height:var(--touch);cursor:pointer;background:0 0;border:none;font-size:16px;text-decoration:underline}.screen{background:radial-gradient(circle at 50% 30%, var(--card), var(--cream) 60%, var(--cream-deep));flex-direction:column;align-items:center;gap:20px;padding:24px;display:flex;position:fixed;inset:0;overflow:auto}.screen>:first-child{margin-top:auto}.screen>:last-child{margin-bottom:auto}.screen h1{font-size:40px}.card{border:0 solid #0000;border-image:var(--skin-frame);flex-direction:column;gap:16px;width:min(440px,100%);padding:24px;display:flex}.field{color:var(--ink-soft);flex-direction:column;gap:6px;font-size:16px;display:flex}.field input,.field select{min-height:var(--touch);border:3px solid var(--line-soft);background:var(--card);color:var(--ink);border-radius:16px;padding:0 14px;font-size:20px;box-shadow:inset 0 3px #97513e14}.field input:focus,.field select:focus{border-color:var(--mint-deep);outline:none}.row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.error{color:var(--coral-deep);font-size:16px}.muted{color:var(--ink-soft)}.disclaimer{max-width:560px;color:var(--ink-soft);text-align:center;margin:12px 0 0;font-size:12px;line-height:1.5}.recovery-code{letter-spacing:2px;-webkit-user-select:all;user-select:all;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:24px}.panels{z-index:2;justify-content:center;display:flex;position:fixed;inset:0}.panels.bg{z-index:0}.panel{flex-direction:column;flex:1 1 0;max-width:100%;display:flex;position:relative;overflow:hidden;container-type:inline-size}.panels.bg .panel{background:linear-gradient(180deg, #e3f5ef 0%, var(--cream) 55%, #fde9c6 100%)}.panels.single .panel{max-width:min(100%,900px)}.panels.dual .panel+.panel{border-left:3px solid var(--line-soft)}.topbar{z-index:2;align-items:center;gap:8px;padding:8px 10px;display:flex}.topbar .name{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;font-size:24px;font-weight:700;overflow:hidden}.counters{gap:8px;display:inline-flex}@container (width<=520px){.topbar{gap:4px;padding:6px}.topbar .btn.icon{width:44px;min-width:44px;height:50px}.topbar .btn.icon .ui-icon,.topbar .btn.icon svg{width:28px;height:28px}.topbar .name{font-size:18px}.topbar .counters{gap:4px}.topbar .counter{gap:4px;min-height:42px;padding:0 10px 4px 6px;font-size:18px}.topbar .counter svg{width:22px;height:22px}.tab{padding:0 12px;font-size:16px}}.tab{white-space:nowrap}.counter{font-variant-numeric:tabular-nums;border:0 solid #0000;border-image:url(/ui/pillWhite.webp) 80 90 fill/24px 27px;align-items:center;gap:6px;min-height:48px;padding:0 16px 4px 10px;font-size:22px;font-weight:600;display:inline-flex}.counter.bounce{animation:.4s bounce}.counter.negative{color:var(--coral-deep)}@keyframes bounce{30%{transform:scale(1.18)}60%{transform:scale(.95)}}.panel-body{flex:auto;min-height:0;position:relative}.view3d{touch-action:none;position:absolute;inset:0}.add-panel{z-index:5;position:fixed;top:50%;right:8px;transform:translateY(-50%)}.panels:has(.store)~.add-panel{display:none}.overlay{z-index:20;background:#5b332666;justify-content:center;align-items:center;padding:16px;animation:.15s fade-in;display:flex;position:absolute;inset:0}.overlay.fixed{z-index:50;position:fixed}.sheet{border:0 solid #0000;border-image:var(--skin-frame);flex-direction:column;gap:16px;width:min(560px,100%);max-height:100%;padding:26px;animation:.18s pop-in;display:flex;overflow:auto}.sheet-head{justify-content:space-between;align-items:center;gap:12px;display:flex}@keyframes fade-in{0%{opacity:0}}@keyframes pop-in{0%{opacity:0;transform:scale(.92)}}.kid-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:12px;display:grid}.kid-tile{border:0 solid #0000;border-image:var(--skin-frame);cursor:pointer;background:0 0;flex-direction:column;justify-content:center;align-items:center;gap:6px;min-height:140px;padding:12px;font-size:20px;font-weight:600;display:flex}.kid-tile img{object-fit:contain;width:84px;height:84px}.kid-tile.taken{opacity:.35;filter:grayscale();cursor:default}.kid-tile.add{font-size:18px}.kid-tile .plus{font-size:48px;line-height:1}.kid-tile.selected{border-image:var(--skin-slot-on)}.pin-dots{justify-content:center;gap:16px;margin:8px 0;display:flex}.pin-dots span{border:3px solid var(--line);background:var(--card);border-radius:50%;width:22px;height:22px}.pin-dots span.on{background:var(--mint-deep)}.pin-dots.shake{animation:.35s shake}.pin-dots.checking span{animation:.6s ease-in-out infinite alternate pulse}@keyframes pulse{to{opacity:.35}}@keyframes shake{25%{transform:translate(-10px)}75%{transform:translate(10px)}}.pin-keys{grid-template-columns:repeat(3,72px);justify-content:center;gap:12px;display:grid}.pin-keys .btn{background:url(/ui/circleWhite.webp) 50%/100% 100% no-repeat;border-image:;width:72px;height:80px;padding:0 0 8px;font-size:28px}.toasts{z-index:100;pointer-events:none;flex-direction:column;gap:8px;display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.toast{border:0 solid #0000;border-image:var(--skin-pill-on);color:#fff;padding:12px 26px 16px;font-size:18px;font-weight:600;animation:.2s pop-in}.gl-canvas{pointer-events:none;z-index:1;inset:0;position:fixed!important}.panel>.topbar{z-index:2;position:relative}.panel .hud{z-index:2}.home{flex-direction:column;display:flex;position:absolute;inset:0}.pet-stage{touch-action:none;cursor:grab;flex:auto;min-height:0;position:relative}.home.compact .pet-stage{flex:0 0 34%}.home.compact .meters{display:none}.floater{z-index:3;pointer-events:none;font-size:34px;animation:1.1s ease-out forwards float-up;position:absolute;transform:translate(-50%,-50%)}@keyframes float-up{to{opacity:0;transform:translate(-50%,-140px)scale(1.4)}}.meters{flex-wrap:wrap;justify-content:center;align-items:center;gap:16px;padding:6px 12px 14px;display:flex;position:relative}.meter{border:0 solid #0000;border-image:url(/ui/pillWhite.webp) 80 90 fill/24px 27px;align-items:center;gap:4px;min-height:48px;padding:2px 16px 6px;font-size:22px;display:inline-flex}.meter .pip{display:inline-block;position:relative}.jar-screen{flex-direction:column;display:flex;position:absolute;inset:0}.jar-screen .back{position:absolute;top:4px;left:10px}.jar-stage{touch-action:none;cursor:grab;flex:auto;min-height:0;position:relative}.award{border-top:3px solid var(--line-soft);background:#fff8e6f0;flex-direction:column;gap:10px;padding:10px 12px 14px;display:flex;position:relative}.wheel{scroll-snap-type:x mandatory;scrollbar-width:none;gap:8px;padding:4px 2px 8px;display:flex;overflow-x:auto}.wheel::-webkit-scrollbar{display:none}.chip{scroll-snap-align:start;min-height:var(--touch);border:0 solid #0000;border-image:var(--skin-pill);cursor:pointer;background:0 0;border-radius:999px;flex:none;align-items:center;gap:8px;padding:0 18px 4px;font-size:18px;font-weight:600;display:inline-flex}.chip.on{border-image:var(--skin-pill-on);color:#fff}.chip-amount{background:var(--mint-ink);color:#fff;border-radius:999px;padding:2px 8px;font-size:15px}.chip-amount.neg{background:var(--line-soft);color:var(--ink)}.event-name{min-height:var(--touch);border:3px solid var(--line-soft);background:var(--card);color:var(--ink);border-radius:16px;padding:0 14px;font-size:20px}.amount-row{justify-content:center;align-items:center;gap:10px;display:flex}.amount{font-variant-numeric:tabular-nums;justify-content:center;align-items:center;gap:6px;min-width:96px;font-size:30px;font-weight:700;display:inline-flex}.amount.neg{color:var(--ink-soft)}.store{border:0 solid #0000;border-image:var(--skin-frame);filter:drop-shadow(0 -4px 16px #97513e2e);flex-direction:column;height:64%;animation:.22s slide-up;display:flex;position:absolute;bottom:8px;left:8px;right:8px;overflow:hidden}@keyframes slide-up{0%{opacity:0;transform:translateY(40%)}}.store-head{border-bottom:3px solid var(--line);justify-content:space-between;align-items:center;gap:8px;padding:10px 10px 8px 14px;display:flex}.tabs{gap:8px;display:flex}.tab{min-height:var(--touch);border:0 solid #0000;border-image:var(--skin-pill);cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:8px;padding:0 20px 4px;font-size:18px;font-weight:600;display:inline-flex}.tab.on{border-image:var(--skin-pill-on);color:#fff}.store-body{-webkit-overflow-scrolling:touch;flex:auto;padding:8px 14px 18px;overflow-y:auto}.store-body h3{margin:12px 4px 8px;font-size:20px}.empty{text-align:center;color:var(--ink-soft);margin-top:40px;font-size:20px}.item-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;display:grid}.item{border:0 solid #0000;border-image:var(--skin-frame);cursor:pointer;background:0 0;flex-direction:column;justify-content:center;align-items:center;gap:4px;min-height:160px;padding:12px 8px;display:flex;position:relative}.glasses-pic{object-fit:cover}.item-name{text-align:center;font-size:17px;font-weight:600}.price{align-items:center;gap:4px;font-size:18px;font-weight:600;display:inline-flex}.price.big{font-size:28px}.stock{color:var(--ink-soft);font-size:14px}.item.locked,.item.sold-out{cursor:default}.item.locked>:not(.lock):not(.badge){opacity:.45}.item.sold-out{filter:grayscale();opacity:.55}.item.worn{border-image:var(--skin-slot-on)}.lock{font-size:24px;position:absolute;top:8px;right:10px}.badge{border:0 solid #0000;border-image:var(--skin-ribbon);color:#fff;white-space:nowrap;padding:4px 22px;font-size:14px;font-weight:700;position:absolute;top:10px;left:50%;transform:translate(-50%)rotate(-6deg)}.badge.soft{border-image:var(--skin-ribbon-soft);color:var(--ink);transform:translate(-50%)}.dex-grid{grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:10px;display:grid}.dex{border:0 solid #0000;border-image:var(--skin-slot);cursor:pointer;background:0 0;flex-direction:column;justify-content:center;align-items:center;gap:2px;min-width:0;min-height:144px;padding:12px 12px 10px;display:flex;position:relative}.dex-pic{flex:0 0 72px;place-items:center;width:100%;display:grid}.dex-pic img{object-fit:contain;width:100%;max-width:88px;height:100%;max-height:88px}.dex.shop img,.dex.locked img,.dex.soon img{filter:grayscale()brightness(1.1);opacity:.55}.dex.current{border-image:var(--skin-slot-on)}.dex-num{color:var(--ink-soft);font-size:18px}.dex-name{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:14px;font-weight:600;line-height:1.2;overflow:hidden}.dex.owned .dex-foot,.dex.current .dex-foot{display:none}.dex-foot{justify-content:center;align-items:center;max-width:100%;min-height:20px;display:flex}.dex-price{align-items:center;gap:3px;font-size:15px;font-weight:700;display:inline-flex}.dex .soon{white-space:nowrap;color:var(--ink-soft);font-size:12px}img[src^="/icons/"]{image-rendering:pixelated}.confirm-picture{place-items:center;min-height:72px;display:grid}.confirm-close{position:absolute;top:6px;right:6px}.hold-btn{cursor:pointer;touch-action:none;-webkit-touch-callout:none;border:none;border-radius:50%;flex:none;place-items:center;width:108px;height:108px;display:grid;position:relative}.hold-inner{background:var(--card);border:4px solid var(--line);border-radius:50%;place-items:center;width:86px;height:86px;font-size:44px;display:grid}.hold-label{white-space:nowrap;color:var(--ink-soft);font-size:16px;position:absolute;bottom:-30px;left:50%;transform:translate(-50%)}.sheet.confirm{gap:6px;padding:18px 18px 40px;position:relative}.parent{z-index:40;background:var(--cream);flex-direction:column;animation:.15s fade-in;display:flex;position:fixed;inset:0}.parent-head{background:var(--cream-deep);border-bottom:3px solid var(--line-soft);align-items:center;gap:10px;padding:10px 12px;display:flex}.kid-chips{scrollbar-width:none;flex:auto;gap:8px;padding:4px 2px 8px;display:flex;overflow-x:auto}.kid-chips img{object-fit:contain}.parent-tabs{flex-wrap:wrap;gap:8px;padding:10px 12px 4px;display:flex}.parent-tabs .tab{flex:none}.parent-body{flex-direction:column;flex:auto;align-items:center;gap:14px;padding:12px;display:flex;overflow-y:auto}.card.wide{width:min(720px,100%)}.card h3{font-size:20px}.general{flex-direction:column;align-items:center;gap:14px;width:min(720px,100%);display:flex}.list{flex-direction:column;gap:8px;width:100%;margin:0;padding:0;list-style:none;display:flex}.list li{background:var(--card);border:3px solid var(--line-soft);border-radius:16px;align-items:center;gap:10px;min-height:56px;padding:8px 10px;display:flex}.list.log{width:min(720px,100%)}.list.log li{flex-wrap:wrap}.list.log .grow{flex-basis:200px}.list.log .btn{white-space:nowrap;flex:none;margin-left:auto}.list.log .grow+.delta{margin-left:auto}.row.invite{align-items:flex-end}.list li.undone{opacity:.5}.grow{flex:auto;min-width:0}.field.grow{flex:200px}.field.narrow{flex:0 0 110px}.field.narrow input{width:110px}input.mini{width:72px;min-height:var(--touch);border:3px solid var(--line-soft);background:var(--card);color:var(--ink);text-align:center;border-radius:14px;padding:0 8px;font-size:18px}.check{min-height:var(--touch);align-items:center;gap:8px;font-size:18px;display:inline-flex}.check input{width:26px;height:26px}.check.big{font-size:20px}.log-icon{place-items:center;min-width:30px;font-size:26px;display:inline-grid}.toggle{min-height:var(--touch);cursor:pointer;align-items:center;gap:12px;font-size:20px;display:inline-flex;position:relative}.toggle input{opacity:0;cursor:pointer;width:92px;height:50px;margin:0;position:absolute;top:50%;left:0;transform:translateY(-50%)}.toggle-art{background:url(/ui/toggleOff.webp) 50%/contain no-repeat;width:92px;height:50px}.toggle input:checked+.toggle-art{background-image:url(/ui/toggleOn.webp)}.toggle input:focus-visible+.toggle-art{outline:3px solid var(--mint-deep);outline-offset:2px;border-radius:999px}.delta{color:var(--mint-ink);white-space:nowrap;align-items:center;gap:3px;font-weight:700;display:inline-flex}.delta.neg{color:var(--coral-deep)}.editor{border:3px dashed var(--line-soft);border-radius:18px;flex-direction:column;gap:12px;padding:14px;display:flex}.danger-zone{border:3px solid #f2a3a8}
