:root{color-scheme:dark;--bg:#0c1024;--stage:#121735;--plate:#171d42;--tile:#1c2250;--fg:#eef0ff;--muted:#9ba2cf;--line:#2a3166;--gold:#ffd76a;--bad:#ff8f8f;--display:"Fredoka","Trebuchet MS",system-ui,sans-serif;--body:"Figtree",system-ui,-apple-system,"Segoe UI",sans-serif}*{box-sizing:border-box}body,html{height:100%;background:var(--bg);margin:0}body{color:var(--fg);font-family:var(--body);font-size:16px;line-height:1.45;-webkit-tap-highlight-color:transparent}button,input{font:inherit;color:inherit}button{cursor:pointer;touch-action:manipulation}button:disabled{cursor:default;opacity:.45}:focus-visible{outline:2px solid var(--gold);outline-offset:2px}h1,h2{font-family:var(--display);font-weight:600;text-wrap:balance}h1,h2,p{margin:0}[hidden]{display:none!important}.btn{border:1px solid var(--line);background:var(--tile);border-radius:999px;padding:11px 20px;font-weight:700;min-height:46px}.btn.primary{background:var(--gold);color:#0e1230;border-color:var(--gold)}.btn.ghost{background:transparent;color:var(--muted)}.btn.big{font-family:var(--display);font-size:20px;padding:14px 30px;min-height:58px}.btn.small{padding:6px 14px;min-height:36px;font-size:14px}.icon-btn{border:1px solid var(--line);background:var(--stage);border-radius:50%;width:44px;height:44px;flex:none;font-size:18px}.link{color:var(--muted);font-size:14px}input:not([type=checkbox]){background:var(--bg);border:1.5px solid var(--line);border-radius:14px;padding:12px 14px;width:100%;min-width:0}input:focus{border-color:var(--gold);outline:none}.form{display:flex;flex-direction:column;gap:8px;text-align:left;width:100%}.form label{font-weight:600;font-size:14px;margin-top:6px}.form .check{display:flex;gap:10px;align-items:center;font-size:15px}.form .check input{width:22px;height:22px;accent-color:var(--gold)}.note{color:var(--muted)}.err,.note{font-size:14px}.err{color:var(--bad);font-weight:600}.eyebrow{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--gold)}.seg{display:inline-flex;background:var(--stage);border:1px solid var(--line);border-radius:999px;padding:3px;max-width:100%}.seg button{border:0;background:transparent;border-radius:999px;padding:8px 16px;font-weight:700;color:var(--muted);white-space:nowrap;min-height:40px}.seg button[aria-pressed=true]{background:var(--fg);color:var(--bg)}.seg.small button{padding:4px 12px;font-size:13px;min-height:32px}.seg.scroll{overflow-x:auto;align-self:flex-start}.copyrow,.inline{display:flex;gap:8px}.inline{flex-wrap:wrap;margin-top:10px}.inline input{flex:1 1 140px}.inline input[type=number]{flex:0 1 110px}.btn-row{display:flex;gap:8px;flex-wrap:wrap}.center{min-height:100%;display:grid;place-items:center;padding:24px max(16px,env(safe-area-inset-right,0px)) 24px max(16px,env(safe-area-inset-left,0px))}.center-in{display:grid;place-items:center;padding:24px 0}.card{background:var(--stage);border:1px solid var(--line);border-radius:26px;padding:26px 22px;display:flex;flex-direction:column;align-items:center;gap:14px;text-align:center}.card.narrow{width:min(440px,100%)}.brand{font-family:var(--display);font-weight:700;font-size:34px}.sub{color:var(--muted)}.spinner{width:44px;height:44px;border-radius:50%;border:4px solid var(--line);border-top-color:var(--gold);animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.picker{display:flex;flex-direction:column;align-items:center;gap:22px;width:min(760px,100%)}.people{display:flex;flex-wrap:wrap;justify-content:center;gap:16px}.person{background:var(--stage);border:2px solid var(--line);border-radius:26px;padding:16px 18px 14px;width:164px;display:flex;flex-direction:column;align-items:center;gap:4px;font-family:var(--display);font-size:22px}.person:hover{border-color:var(--gold)}.person small{font-size:14px}.pinpad{display:flex;flex-direction:column;align-items:center;gap:14px}.pin-dots{display:flex;gap:12px}.pin-dots i{width:18px;height:18px;border-radius:50%;border:2px solid var(--muted)}.pin-dots i.on{background:var(--gold);border-color:var(--gold)}.pin-keys{display:grid;grid-template-columns:repeat(3,72px);grid-gap:10px;gap:10px}.pin-keys button{height:64px;border-radius:18px;border:1px solid var(--line);background:var(--tile);font-family:var(--display);font-size:26px}.app{min-height:100%;display:flex;flex-direction:column;max-width:1120px;margin:0 auto;padding:0 max(16px,env(safe-area-inset-right,0px)) 0 max(16px,env(safe-area-inset-left,0px))}.topbar{gap:10px;padding:calc(10px + env(safe-area-inset-top, 0px)) 0 10px}.topbar,.who{display:flex;align-items:center}.who{gap:8px;border:1px solid var(--line);background:var(--stage);border-radius:999px;padding:6px 14px 6px 8px;font-family:var(--display);font-size:18px;min-height:44px;margin-right:auto}.who small{font-family:var(--body);font-size:12px;color:var(--muted)}.who-dot{width:26px;height:26px;border-radius:50%}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{border:1px solid var(--line);border-radius:999px;padding:4px 11px;font-size:13px;color:var(--muted);white-space:nowrap}.chip b{color:var(--fg);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.view{flex:1 1;padding-bottom:calc(96px + env(safe-area-inset-bottom, 0px))}.view>div{display:flex;flex-direction:column;gap:14px}.tabs{position:fixed;left:0;right:0;bottom:0;z-index:20;display:flex;justify-content:center;gap:4px;background:rgba(12,16,36,.94);border-top:1px solid var(--line);padding:6px max(8px,env(safe-area-inset-right,0px)) calc(6px + env(safe-area-inset-bottom, 0px)) max(8px,env(safe-area-inset-left,0px));-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.tabs button{flex:1 1;max-width:150px;border:0;background:transparent;border-radius:16px;padding:6px 4px;display:flex;flex-direction:column;align-items:center;gap:2px;font-weight:700;font-size:12px;color:var(--muted);min-height:56px}.tabs button.on{background:var(--tile);color:var(--fg)}.tabs .ti{font-size:22px;line-height:1;position:relative}.tabs .dot{position:absolute;top:-6px;right:-14px;background:var(--gold);color:#0e1230;font-style:normal;font-size:11px;font-weight:700;border-radius:999px;min-width:18px;height:18px;display:grid;place-items:center;padding:0 4px}.hud{background:var(--stage);border:1px solid var(--line);border-radius:22px;padding:16px;display:flex;flex-direction:column;gap:12px}.hud h1{font-size:clamp(20px,3.4vw,28px);line-height:1.15}.stage{display:flex;align-items:center;gap:14px}.stage svg{flex:none}.stage-text{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:6px}.stage.small{background:var(--tile);border:1px solid var(--line);border-radius:16px;padding:8px 12px}.stage.small p{font-size:13px;color:var(--muted);min-width:0}.stage.small strong{display:block;font-family:var(--display);font-weight:600;font-size:17px;color:var(--fg)}.meter{display:block;height:8px;border-radius:999px;background:var(--tile);overflow:hidden}.meter.big{height:14px;flex:1 1;background:var(--bg)}.meter i{display:block;height:100%;border-radius:999px;background:var(--gold);transition:width .5s ease}.goalrow{display:flex;align-items:center;gap:12px}.goalrow b{font-family:var(--display);font-size:18px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.notice{background:var(--plate);border:1px solid var(--line);border-radius:16px;padding:12px 14px;font-size:15px;text-align:left;width:100%}.notice.action{border-color:var(--gold)}.notice.action b{color:var(--gold);margin-left:6px}.notice.five{border-color:#ff72c0}.group{display:flex;flex-direction:column;gap:8px}.group h2{font-size:20px;display:flex;align-items:baseline;gap:10px}.group h2 small{font-family:var(--body);font-size:13px;font-weight:600;color:var(--muted);margin-left:auto}.rows{display:flex;flex-direction:column;gap:8px}.row{display:grid;grid-template-columns:40px minmax(0,1fr) auto;grid-gap:6px 12px;gap:6px 12px;align-items:center;text-align:left;border:1.5px solid var(--line);background:var(--tile);border-radius:18px;padding:10px 14px;width:100%;min-height:62px}button.row:hover{border-color:var(--c)}.row .dot{grid-row:span 2;width:40px;height:40px;border-radius:50%;border:3px solid var(--c,var(--line));display:grid;place-items:center;font-weight:700;font-size:19px;color:#0e1230}.row .dot.sq{border-radius:12px;background:var(--c);border:0}.row.done{background:color-mix(in oklab,var(--c) 22%,var(--tile));border-color:var(--c)}.row.done .dot{background:var(--c)}.row.wait .dot{border-style:dashed}.row .name{font-weight:600;min-width:0;overflow-wrap:anywhere}.row .name small{display:block;font-weight:400;font-size:13px;color:var(--muted)}.row .pct{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-size:13px;color:var(--muted);text-align:right}.row .meter{grid-column:2/4;height:7px;background:var(--bg)}.stepper{display:flex;gap:6px}.stepper button{min-width:44px;height:44px;border-radius:14px;border:1px solid var(--line);background:var(--stage);font-weight:700;font-size:18px;padding:0 12px}.app.kid .row{min-height:74px;font-size:19px}.app.kid .row .dot{width:48px;height:48px;font-size:24px}.app.kid .row{grid-template-columns:48px minmax(0,1fr) auto}.editor,.setup,.sugg{max-width:760px;margin:0 auto;display:flex;flex-direction:column;gap:14px;padding:calc(14px + env(safe-area-inset-top, 0px)) max(16px,env(safe-area-inset-right,0px)) calc(110px + env(safe-area-inset-bottom, 0px)) max(16px,env(safe-area-inset-left,0px))}.view .editor,.view .sugg{padding:0;max-width:none}.setup-top{display:flex;align-items:center;gap:12px}.setup-top h2{font-size:20px}.dots{display:flex;gap:5px;flex-wrap:wrap;margin-left:auto}.dots i{width:10px;height:10px;border-radius:50%;background:var(--line)}.dots i.done{background:var(--muted)}.dots i.on{background:var(--gold);transform:scale(1.3)}.setup-stage{display:flex;align-items:center;gap:12px}.setup-stage svg{flex:none}.bubble{flex:1 1;min-width:0;display:flex;align-items:center;gap:10px;background:var(--fg);color:#0e1230;border-radius:22px 22px 22px 6px;padding:14px 14px 14px 18px}.bubble p{flex:1 1;font-size:17px;font-weight:600}.bubble.kid p{font-size:20px}.bubble .icon-btn{background:#dfe3ff;border-color:#c5cbf5;color:#0e1230}.panel{background:var(--stage);border:1px solid var(--line);border-radius:22px;padding:16px;display:flex;flex-direction:column;gap:12px;min-width:0}.panel h2{font-size:18px}.panel.empty{align-items:center;text-align:center;padding:30px 16px}.biglabel{font-size:20px}.biginput,.biglabel{font-family:var(--display)}.biginput{font-size:22px;padding:16px 18px!important;border-radius:18px!important}.goal-echo{font-family:var(--display);font-size:20px}.goal-echo small{font-family:var(--body);font-size:13px;color:var(--muted)}.ideas{display:flex;flex-wrap:wrap;gap:8px}.idea{border:1.5px dashed var(--muted);background:transparent;border-radius:999px;padding:9px 14px;font-weight:600;min-height:44px}.idea:hover{border-color:var(--gold);border-style:solid}.setup.kid .idea{font-size:19px;padding:12px 18px}.agrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));grid-gap:8px;gap:8px}.afield{display:flex;align-items:center;gap:8px}.num{flex:none;width:36px;height:36px;border-radius:12px;background:var(--c);color:#0e1230;display:grid;place-items:center;font-weight:700;font-size:17px}.arows{flex-direction:column}.arow,.arows{display:flex;gap:8px}.arow{flex-wrap:wrap;align-items:center}.arow>input{flex:1 1 200px}.target-row{display:flex;gap:8px;flex:1 1 100%;padding-left:44px}.target-row label{display:flex;flex-direction:column;font-size:12px;color:var(--muted);flex:1 1;min-width:0}.setup-nav{position:fixed;left:0;right:0;bottom:0;z-index:15;display:flex;justify-content:center;gap:12px;background:rgba(12,16,36,.94);border-top:1px solid var(--line);padding:12px max(16px,env(safe-area-inset-right,0px)) calc(12px + env(safe-area-inset-bottom, 0px)) max(16px,env(safe-area-inset-left,0px));-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.view .setup-nav{position:static;background:none;border:0;padding:0;-webkit-backdrop-filter:none;backdrop-filter:none}.setup-nav.wrap{flex-wrap:wrap}.mini{display:grid;grid-template-columns:repeat(3,44px);grid-gap:6px;gap:6px;align-self:center}.mini i{height:44px;border-radius:12px;background:var(--tile);border:1px solid var(--line);display:grid;place-items:center;font-style:normal;animation:popin .5s both}.mini i.g{background:var(--gold);color:#0e1230;font-size:22px}.how{margin:0;padding-left:22px;display:flex;flex-direction:column;gap:6px;font-size:17px}.swatches{display:flex;flex-wrap:wrap;gap:10px}.swatch{width:48px;height:48px;border-radius:50%;border:3px solid var(--line);background:var(--k);font-size:16px}.swatch.on{border-color:var(--fg);box-shadow:0 0 0 3px var(--bg),0 0 0 5px var(--k)}.hats{flex-wrap:wrap;gap:8px}.hat,.hats{display:flex}.hat{border:2px solid var(--line);background:var(--tile);border-radius:16px;padding:6px 8px;flex-direction:column;align-items:center;width:84px}.hat.on{border-color:var(--gold)}.hat small{font-size:12px;color:var(--muted)}@keyframes popin{0%{opacity:0;transform:scale(.4)}to{opacity:1;transform:scale(1)}}.scard{display:flex;align-items:center;gap:12px;border:1.5px solid var(--line);background:var(--tile);border-radius:18px;padding:12px 14px;cursor:pointer}.scard.on{border-color:var(--c);background:color-mix(in oklab,var(--c) 14%,var(--tile))}.scard input{width:26px;height:26px;flex:none;accent-color:var(--gold)}.sbody{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:3px}.sbody b{font-size:17px}.sbody small,.was{font-size:13px;color:var(--muted)}.was{text-decoration:line-through}.scard svg{flex:none}.anim-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));grid-gap:10px;gap:10px}.anim-card{border:1.5px solid var(--c);background:var(--tile);border-radius:18px;padding:10px;display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center;font-size:14px}.members{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));grid-gap:10px;gap:10px}.member{background:var(--stage);border:1px solid var(--line);border-radius:20px;padding:12px;display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center}.member b{font-family:var(--display);font-size:19px}.member small{color:var(--muted);font-size:13px}.badges{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));grid-gap:10px;gap:10px}.badge{background:var(--stage);border:1px solid var(--line);border-radius:18px;padding:12px 8px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:2px;opacity:.55}.badge.on{opacity:1;border-color:var(--gold)}.badge span{font-size:30px;line-height:1.2}.badge small{color:var(--muted);font-size:12px}.main{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);grid-gap:14px;gap:14px;align-items:start}@media (max-width:820px){.main{grid-template-columns:minmax(0,1fr)}.hide-s{display:none}}.side-head{display:flex;align-items:center;gap:10px}.side-head h2{font-size:20px}.scene{container-type:inline-size;position:relative;aspect-ratio:1/.88;max-width:100%;overflow:hidden;border-radius:22px;border:1px solid var(--line);perspective:1500px;background:radial-gradient(120% 90% at 50% 0,#232b66 0,var(--stage) 55%,#0e1230 100%)}.board{--S:calc(min(86cqw, 600px) * 2.5);position:absolute;left:50%;top:50%;width:var(--S);height:var(--S);margin:calc(var(--S) / -2) 0 0 calc(var(--S) / -2);display:grid;grid-template-columns:repeat(3,1fr);grid-gap:calc(var(--S) / 60);gap:calc(var(--S) / 60);transform-style:preserve-3d;transform:rotateX(52deg) rotate(-38deg) scale(.28);transition:transform 1s cubic-bezier(.6,0,.2,1)}.board.focused{transform:rotateX(14deg) rotate(0deg) scale(1) translate(var(--fx,0),var(--fy,0))}.board:before{content:"";position:absolute;inset:-4%;border-radius:6%;background:var(--plate);border:1px solid var(--line);transform:translateZ(-2px);box-shadow:0 0 80px rgba(108,140,255,.25)}.block{position:relative;display:grid;grid-template-columns:repeat(3,1fr);grid-gap:calc(var(--S) / 170);gap:calc(var(--S) / 170);transform-style:preserve-3d}.block.off{visibility:hidden}.cell{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;padding:0;background:transparent;position:relative;aspect-ratio:1;transform-style:preserve-3d;--p:0;--c:#6c8cff}.cell.empty{visibility:hidden}.cell.blank{opacity:.35;pointer-events:none}.cell.blank .top{background:transparent;border-style:dashed}.cell:before{content:"";position:absolute;inset:6%;border-radius:22%;background:var(--c);opacity:calc(.08 + var(--p) * .5);filter:blur(calc(var(--S) / 100))}.cell.blank:before{display:none}.top{position:absolute;inset:0;border-radius:18%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3%;padding:7%;text-align:center;overflow:hidden;color:var(--fg);background:color-mix(in oklab,var(--c) calc(16% + var(--p) * 34%),var(--tile));border:1px solid color-mix(in oklab,var(--c) 65%,transparent);transform:translateZ(calc(var(--S) / 150 + var(--p) * var(--S) / 20));transition:transform .55s cubic-bezier(.3,1.6,.5,1),background .4s}.cell.done .top{background:var(--c);color:#0e1230}.cell.wait .top{border-style:dashed;border-width:2px}.cell.head .top{background:color-mix(in oklab,var(--c) 78%,var(--tile));color:#0e1230}.cell.goal .top{background:var(--gold);color:#0e1230}.t{font-weight:700;font-size:calc(var(--S) / 82);line-height:1.12;overflow:hidden;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical}.ic,.t{opacity:0;transition:opacity .4s}.ic{font-size:calc(var(--S) / 36);line-height:1}.ic:empty{display:none}.mb{width:78%;height:6%;background:rgba(10,14,40,.45);overflow:hidden;opacity:0;transition:opacity .4s;flex:none}.mb,.mb i{border-radius:99px}.mb i{display:block;height:100%;width:calc(var(--p) * 100%);background:currentColor;transition:width .4s}.focused .ic,.focused .mb,.focused .t{opacity:1}.cell.goal .mb,.cell.head .mb{display:none}.cell.pop{animation:popin .5s both}.lab{position:absolute;left:50%;top:50%;white-space:nowrap;pointer-events:none;font-family:var(--display);font-weight:600;font-size:calc(var(--S) / 31);line-height:1;padding:.32em .6em;border-radius:999px;background:rgba(12,16,36,.82);border:2px solid var(--c);transform:translate(-50%,-50%) translateZ(calc(var(--S) / 6)) rotate(38deg) rotateX(-52deg);transition:opacity .35s}.lab b{color:var(--c);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;margin-left:.35em}.focused .lab{opacity:0}.hint{position:absolute;left:50%;bottom:10px;transform:translateX(-50%);max-width:calc(100% - 24px);text-align:center;font-size:13px;color:var(--fg);pointer-events:none;background:rgba(12,16,36,.85);border-radius:999px;padding:5px 14px}.panel.reveal{padding:10px}.cr{overflow:visible}.cr *{transform-box:view-box}.cr .limb{stroke:color-mix(in oklab,var(--cc) 72%,#0e1230);stroke-width:7;stroke-linecap:round;stroke-linejoin:round;fill:none}.cr .all{transform-origin:60px 104px}.cr .aL{transform-origin:36px 62px}.cr .aR{transform-origin:84px 62px}.cr .lL{transform-origin:50px 86px}.cr .lR{transform-origin:70px 86px}.cr .eyes.look{animation:look .9s ease-in-out infinite alternate}.cr .fx{animation:fx 1.5s ease-in-out infinite alternate}@keyframes look{0%{transform:translateX(-2px)}to{transform:translateX(2px)}}@keyframes fx{0%{transform:translateY(4px);opacity:.25}to{transform:translateY(-6px);opacity:1}}.confetti{inset:0;width:100%;height:100%;z-index:60}.confetti,.toast{position:fixed;pointer-events:none}.toast{left:50%;bottom:calc(92px + env(safe-area-inset-bottom, 0px));transform:translate(-50%,20px);background:var(--gold);color:#0e1230;font-family:var(--display);font-weight:600;font-size:17px;padding:10px 20px;border-radius:999px;opacity:0;transition:opacity .3s,transform .3s;max-width:90vw;text-align:center;z-index:70}.toast.show{opacity:1;transform:translate(-50%)}@media (prefers-reduced-motion:reduce){.board,.cell.pop,.ic,.lab,.mb,.meter i,.mini i,.t,.toast,.top{transition:none;animation:none}.cr *{animation:none!important}}