:root{
  --bg:#F2ECFF; --panel:#fff; --ink:#1E1535; --muted:#6A5F85; --line:#1E1535; --shadow:#1E1535;
  --accent:#FF5C8A; --on-accent:#1E1535; --sun:#FFD23F; --mint:#3DDC97; --soft:#FFF1B0; --danger:#C0182E;
  --r:16px;
}
@media (prefers-color-scheme:dark){
  :root{--bg:#170F2B; --panel:#251A42; --ink:#F4EEFF; --muted:#B3A8D0; --line:#6B58A8; --shadow:#0A0615; --soft:#3B3358; --danger:#FF8A96;}
}
*{box-sizing:border-box}
html{background:var(--bg)}
body{margin:0;font:400 15px/1.55 "Instrument Sans",system-ui,sans-serif;color:var(--ink);background:var(--bg);
  background-image:radial-gradient(var(--line) 1px,transparent 1.5px);background-size:26px 26px;background-attachment:fixed;padding:0 20px 56px}
.top{max-width:1120px;margin:0 auto;padding:34px 0 24px;position:relative}
h1{font:400 52px/1 "Bagel Fat One",system-ui,sans-serif;margin:0 0 8px;letter-spacing:.01em;display:flex;align-items:center;gap:12px}
.bowl{display:inline-block;transform-origin:50% 80%;animation:wiggle 1.1s .3s 1 both}
.top p{margin:0;font-size:17px}
.sticker-note{position:absolute;top:30px;left:min(330px,60vw);background:var(--sun);color:#1E1535;border:2px solid var(--line);border-radius:8px;font-weight:600;font-size:13px;padding:2px 10px;transform:rotate(6deg);box-shadow:2px 2px 0 var(--shadow)}
.layout{max-width:1120px;margin:0 auto;display:grid;grid-template-columns:minmax(0,430px) minmax(0,1fr);gap:28px;align-items:start}
@media(max-width:860px){.layout{grid-template-columns:1fr}h1{font-size:42px}}
.panel{background:var(--panel);border:2px solid var(--line);border-radius:var(--r);padding:22px;display:grid;gap:22px;box-shadow:6px 6px 0 var(--shadow)}
.block{border:0;margin:0;padding:0;min-width:0}
legend,.label,label{display:block;font-weight:600;font-size:14px;margin:0 0 6px;padding:0}
fieldset legend{margin-bottom:10px}
.row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:6px}
.row label{margin:0}
input,textarea{width:100%;font:inherit;color:var(--ink);background:var(--bg);border:2px solid var(--line);border-radius:12px;padding:10px 12px;margin-bottom:12px}
textarea{resize:vertical;min-height:150px;margin-bottom:4px;line-height:1.5}
input:focus,textarea:focus,button:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.count{text-align:right;font-size:12.5px;color:var(--muted)}
.count.warn{color:var(--danger);font-weight:600}
.seg{display:grid;grid-template-columns:1fr 1fr;gap:6px;background:var(--bg);border:2px solid var(--line);border-radius:14px;padding:4px;margin-bottom:14px}
.seg-btn{font:inherit;font-weight:600;border:2px solid transparent;background:transparent;color:var(--muted);padding:8px;border-radius:10px;cursor:pointer}
.seg-btn.active{background:var(--sun);color:#1E1535;border-color:var(--line);box-shadow:2px 2px 0 var(--shadow)}
.privacy{margin:0;font-size:13px;background:var(--soft);border:2px solid var(--line);border-radius:14px 14px 14px 2px;padding:10px 12px}
.chips{display:flex;flex-wrap:wrap;gap:9px}
.chip{font:inherit;font-size:14px;font-weight:500;cursor:pointer;border:2px solid var(--line);background:var(--panel);color:var(--ink);border-radius:999px;padding:5px 13px;transition:transform .12s}
.chip:hover{transform:translateY(-2px)}
.chip[aria-checked="true"],.chip[aria-pressed="true"]{background:var(--sun);color:#1E1535;box-shadow:2px 2px 0 var(--shadow);transform:rotate(-2deg)}
.chip[aria-checked="true"]:nth-child(even),.chip[aria-pressed="true"]:nth-child(even){transform:rotate(2deg)}
.chips.multi .chip[aria-pressed="true"]{background:var(--mint)}
.sticker-btn{font:inherit;font-size:13px;font-weight:600;cursor:pointer;background:var(--soft);color:var(--ink);border:2px solid var(--line);border-radius:999px;padding:3px 12px;transition:transform .12s}
.sticker-btn:hover{transform:rotate(-3deg) scale(1.05)}
.actions{display:flex;gap:10px}
.primary{font:400 21px/1 "Bagel Fat One",sans-serif;background:var(--accent);color:var(--on-accent);border:2px solid var(--line);border-radius:14px;padding:15px 20px;flex:1;cursor:pointer;box-shadow:4px 4px 0 var(--shadow);transition:transform .1s,box-shadow .1s}
.primary:hover:not(:disabled){transform:translate(-1px,-1px);box-shadow:6px 6px 0 var(--shadow)}
.primary:active:not(:disabled){transform:translate(3px,3px);box-shadow:1px 1px 0 var(--shadow)}
.primary:disabled{opacity:.6;cursor:not-allowed}
.ghost,.mini{font:inherit;font-weight:600;cursor:pointer;border-radius:12px;border:2px solid var(--line);background:var(--panel);color:var(--ink)}
.ghost{padding:12px 18px}
.status{margin:-10px 0 0;font-size:13.5px;color:var(--muted);min-height:1.4em}
.status.err{color:var(--danger);font-weight:600}
.results{display:grid;gap:20px}
.empty{background:var(--panel);border:2px dashed var(--line);border-radius:var(--r);padding:52px 24px;text-align:center}
.empty p{margin:0;font-weight:600}.empty .sub{color:var(--muted);font-size:14px;font-weight:400}
.big{font-size:64px;line-height:1;margin-bottom:10px;display:inline-block;animation:bob 2.4s ease-in-out infinite}
.card{background:var(--panel);border:2px solid var(--line);border-radius:var(--r);box-shadow:5px 5px 0 var(--shadow);overflow:hidden;animation:pop .28s ease-out}
.card-head{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--c,var(--accent));color:#fff;border-bottom:2px solid var(--line)}
.card-head h2{font:400 22px/1 "Bagel Fat One",sans-serif;margin:0;flex:1}
.badge{font-size:12.5px;font-weight:600;border-radius:999px;padding:1px 9px;background:rgba(0,0,0,.25)}
.badge:empty{display:none}
.badge.over{background:var(--sun);color:#1E1535}
.mini{font-size:13px;padding:4px 11px;color:#1E1535;background:#fff}
.mini:hover:not(:disabled){background:var(--sun)}
.mini:disabled{opacity:.5;cursor:not-allowed}
.card .body{padding:14px}
.card textarea{min-height:120px;margin:0;background:transparent;border-style:dashed}
.card .state{color:var(--muted);font-size:14px;margin:0;display:flex;align-items:center;gap:8px}
.card .state.err{color:var(--danger);font-weight:600}
.dots{display:inline-flex;gap:4px}
.dots i{width:8px;height:8px;border-radius:50%;background:var(--accent);animation:hop .9s ease-in-out infinite}
.dots i:nth-child(2){animation-delay:.15s}.dots i:nth-child(3){animation-delay:.3s}
@keyframes hop{50%{transform:translateY(-6px)}}
@keyframes bob{50%{transform:translateY(-8px) rotate(6deg)}}
@keyframes pop{from{transform:scale(.95);opacity:0}}
@keyframes wiggle{20%{transform:rotate(-18deg)}40%{transform:rotate(14deg)}60%{transform:rotate(-10deg)}80%{transform:rotate(6deg)}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
