:root{--bg: #fff3d6;--card: #fffdf6;--ink: #2b2118;--muted: #7a6a58;--red: #e63b2e;--red-ink: #fff;--line: #ecd9ae;--chip: #fbe7b4;--ok: #3aa655;--radius: 16px;--tabs-h: 64px;font-family:ui-rounded,SF Pro Rounded,Nunito,system-ui,-apple-system,Segoe UI,sans-serif}@media(prefers-color-scheme:dark){:root{--bg: #1d1712;--card: #2a221b;--ink: #f6ead6;--muted: #b9a68d;--line: #43372b;--chip: #3a2f24}}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}html,body{margin:0;background:var(--bg);color:var(--ink)}body{min-height:100dvh;overscroll-behavior-y:contain}h1,h2,h3{margin:0;line-height:1.15}h2{font-size:1.35rem}h3{font-size:1rem;margin-top:6px}p{margin:0}small{font-size:.8rem}.muted{color:var(--muted)}.grow{flex:1}.err{color:var(--red);font-weight:600}button,input,textarea{font:inherit;color:inherit}button{cursor:pointer;touch-action:manipulation}label.btn,a{touch-action:manipulation}button:disabled{opacity:.45;cursor:default}:focus-visible{outline:3px solid #2d6fd6;outline-offset:2px}input:not([type=range]):not([type=file]),textarea{width:100%;padding:12px 14px;border-radius:12px;border:2px solid var(--line);background:var(--card);font-size:16px}textarea{resize:vertical}input[type=range]{width:100%;accent-color:var(--red)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:46px;padding:0 18px;border-radius:14px;border:0;background:var(--red);color:var(--red-ink);font-weight:700;font-size:1rem;text-align:center}.btn.ghost{background:var(--chip);color:var(--ink)}.btn.big{width:100%;min-height:54px;font-size:1.05rem}.link{background:none;border:0;color:var(--muted);text-decoration:underline;padding:0 8px;min-height:44px}.app{max-width:760px;margin:0 auto;padding-bottom:calc(var(--tabs-h) + env(safe-area-inset-bottom) + 16px);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}.banner{grid-column:1 / -1;background:var(--ink);color:var(--bg);text-align:center;font-weight:600;font-size:.9rem;padding:max(6px,env(safe-area-inset-top)) 12px 6px}.hint{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;padding:10px 14px;margin-bottom:12px;border-radius:14px;background:var(--chip);font-size:.95rem}.top{position:sticky;top:0;z-index:5;background:var(--bg);padding:max(8px,env(safe-area-inset-top)) 12px 6px}.mirror{display:block;width:min(100%,640px,57dvh);height:auto;margin:0 auto;aspect-ratio:3 / 2;image-rendering:pixelated;border-radius:var(--radius);border:3px solid var(--ink);background:#000}.status{display:flex;align-items:center;gap:4px 8px;padding:2px 4px 0;font-size:.9rem;min-height:44px}.stat-text{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status .dotstat,.status .link{flex:none}.dotstat{width:10px;height:10px;border-radius:50%;background:var(--muted)}.dotstat.ok{background:var(--ok);box-shadow:0 0 0 4px color-mix(in srgb,var(--ok) 25%,transparent)}.modestat{display:flex;align-items:center;gap:10px;padding:0 4px 6px}.modestat>span:first-child{font-size:1.4rem}.modestat .clock{margin-left:auto;white-space:nowrap}.panel{padding:8px 14px 24px}.stack{display:grid;gap:12px}.row{display:flex;gap:8px;align-items:center}.row .btn{flex:0 0 auto}.chips,.toolrow{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.chip{min-height:44px;padding:0 14px;border-radius:999px;border:2px solid transparent;background:var(--chip)}.chip.on{border-color:var(--red);background:var(--card);font-weight:700}.full{flex-basis:100%}.wrapit{flex-wrap:wrap}.tabs{position:fixed;left:0;right:0;bottom:0;z-index:10;display:flex;background:var(--card);border-top:2px solid var(--line);padding-bottom:env(safe-area-inset-bottom);overflow-x:auto;scrollbar-width:none}.tabs button{flex:1 0 52px;height:var(--tabs-h);border:0;background:none;display:grid;place-items:center;align-content:center;color:var(--muted)}.tabs button span{font-size:1.45rem;line-height:1}.tabs button.on{color:var(--red);font-weight:800;box-shadow:inset 0 3px 0 var(--red)}.toast{position:fixed;width:max-content;left:50%;bottom:calc(var(--tabs-h) + env(safe-area-inset-bottom) + 14px);transform:translate(-50%,20px);opacity:0;pointer-events:none;background:var(--ink);color:var(--bg);padding:10px 16px;border-radius:999px;font-weight:600;max-width:90vw;transition:.25s;z-index:20}.toast.show{opacity:1;transform:translate(-50%)}.login{min-height:100dvh;display:grid;place-content:center;justify-items:center;gap:12px;padding:24px;text-align:center}.login form{display:grid;gap:12px;width:min(320px,86vw)}.login .doghouse{font-size:72px;animation:bob 2.4s ease-in-out infinite}@keyframes bob{50%{transform:translateY(-8px) rotate(-3deg)}}@media(prefers-reduced-motion:reduce){.login .doghouse{animation:none}}.pad{display:grid;gap:12px}.padcanvas{user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;position:relative;width:100%;background:#fff;border:3px solid var(--ink);border-radius:18px;overflow:hidden;touch-action:none}.padcanvas canvas{width:100%;height:100%;display:block;touch-action:none;cursor:crosshair}.padcanvas.bubble{border-radius:50%;border-width:4px}.padcanvas{box-shadow:0 8px 20px #2b21182e}.padcanvas.easel{box-shadow:0 6px #7a4e22}.toolrow .tool,.pad .chip{transition:transform .12s,background .12s,border-color .12s}.toolrow .tool:active,.pad .chip:active{transform:scale(.92)}.toolrow .tool:disabled,.pad .chip:disabled{opacity:.4}.toolrow .tool.on{box-shadow:0 3px 8px #e63b2e47;transform:translateY(-1px)}.pad .chip{border-radius:999px;padding:8px 16px;font-weight:700;border:2px solid transparent;background:var(--chip);color:var(--ink)}.pad .chip.on{border-color:var(--red);background:var(--card)}.toolrow .tool{width:46px;height:46px;border-radius:12px;border:2px solid transparent;background:var(--chip);font-size:1.25rem;display:grid;place-items:center}.toolrow .tool.on{border-color:var(--red);background:var(--card)}.dot{display:block;border-radius:50%;background:var(--ink)}.swatches{display:grid;grid-template-columns:repeat(8,1fr);gap:8px}.sw{aspect-ratio:1;min-height:36px;border-radius:50%;border:3px solid var(--line)}.sw.on{border-color:var(--ink);transform:scale(1.08);box-shadow:0 0 0 2px var(--bg),0 0 0 4px var(--red)}.swatches.tiny{grid-template-columns:repeat(10,1fr);opacity:.8}.swatches.tiny i{aspect-ratio:1;border-radius:50%}.bgprev{width:100%;height:auto;image-rendering:pixelated;border-radius:12px;border:2px solid var(--line)}.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:10px}.gallery figure{margin:0;position:relative}.gallery figure>button:first-child{width:100%;padding:0;border:2px solid var(--line);border-radius:12px;overflow:hidden;background:#fff}.gallery img{display:block;width:100%;height:auto}.gallery .x{position:absolute;top:-8px;right:-8px;width:36px;height:36px;border-radius:50%;border:3px solid var(--bg);background:var(--ink);color:var(--bg);font-size:.75rem}.now{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-radius:14px;background:var(--card);border:2px solid var(--red)}.tracks{list-style:none;margin:0;padding:0;display:grid;gap:8px}.tracks button{width:100%;display:flex;align-items:center;gap:12px;padding:8px;border-radius:14px;border:2px solid var(--line);background:var(--card);text-align:left}.tracks img,.noart{width:52px;height:52px;border-radius:8px;object-fit:cover;flex:none;background:var(--chip);display:grid;place-items:center}.tracks .meta{display:grid;min-width:0;flex:1}.tracks .meta b,.tracks .meta small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tracks .go{color:var(--red);font-weight:800;padding:0 6px}.foods{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:10px}.food{aspect-ratio:1;border-radius:18px;border:2px solid var(--line);background:var(--card);display:grid;place-items:center;align-content:center;gap:2px}.food span{font-size:2.2rem}.food:active{transform:scale(.95)}.typing .top{position:static}@media(max-width:359px){.panel{padding-left:10px;padding-right:10px}.swatches{grid-template-columns:repeat(4,1fr)}.btn{padding:0 12px}.toolrow .tool{width:44px;height:44px}}@media(min-width:640px){.top{padding-top:14px}.gallery{grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}}@media(min-width:900px),(orientation:landscape)and (max-height:520px){.app{display:grid;grid-template-columns:minmax(300px,46%) minmax(0,1fr);align-items:start;max-width:1180px;padding-bottom:calc(var(--tabs-h) + env(safe-area-inset-bottom) + 8px)}.top{max-height:calc(100dvh - var(--tabs-h) - env(safe-area-inset-bottom));overflow-y:auto;padding-top:max(8px,env(safe-area-inset-top));padding-left:12px;scrollbar-width:none}.typing .top{position:sticky}.mirror{width:100%;max-width:640px}.panel{padding-top:12px}.toast{left:73%}}@media(orientation:landscape)and (max-height:520px){:root{--tabs-h: 52px}.tabs button span{font-size:1.2rem}.tabs button small{display:none}.mirror{width:min(100%,calc((100dvh - 150px)*1.5))}.login{padding:12px;gap:6px}.login .doghouse{font-size:44px}}@media(display-mode:standalone){body{overscroll-behavior:none}}@media(prefers-reduced-motion:reduce){.toast{transition:none}*{scroll-behavior:auto!important}}.recent{list-style:none;margin:0;padding:0;display:grid;gap:6px}.recent li{display:flex;justify-content:space-between;gap:12px;padding:8px 12px;border-radius:12px;background:var(--card);border:2px solid var(--line)}.recent li span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recent li small{flex:none}.now img,.now .noart{width:52px;height:52px;border-radius:8px;object-fit:cover;flex:none;background:var(--chip);display:grid;place-items:center}.now .meta{display:grid;gap:2px;min-width:0;flex:1}.now .meta b,.now .meta small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.progress{display:block;height:4px;margin-top:4px;border-radius:2px;background:var(--line);overflow:hidden}.progress i{display:block;height:100%;background:var(--red);transition:width 1s linear}.tracks button.playing{border-color:var(--red)}.gallery figcaption{margin-top:4px;font-size:.75rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(prefers-reduced-motion:reduce){.progress i{transition:none}}
