:root{--font-display:"Fredoka","Nunito",system-ui,sans-serif;--font-body:"Nunito",system-ui,-apple-system,"Segoe UI",sans-serif;--bg:#cfe9ff;--bg-gradient:linear-gradient(160deg,#dff3ff,#bfe1ff 45%,#ffe6f0);--surface:hsla(0,0%,100%,.86);--surface-strong:#fff;--text:#22304a;--muted:#6b7a95;--primary:#4f8cff;--primary-text:#fff;--accent:#ff8fab;--border:rgba(34,48,74,.1);--shadow:0 10px 30px rgba(50,80,140,.15);--shadow-sm:0 3px 10px rgba(50,80,140,.12);--danger:#e5484d;--success:#2f9e44;--radius:22px;--radius-sm:14px}:root[data-mode=evening]{--bg:#1b2140;--bg-gradient:radial-gradient(circle at 20% 10%,#3a3f7a 0%,#1b2140 45%,#10142b 100%);--surface:rgba(38,44,84,.86);--surface-strong:#2c3262;--text:#f1f3ff;--muted:#a9b0d6;--primary:#8b9cff;--primary-text:#10142b;--border:hsla(0,0%,100%,.1);--shadow:0 12px 34px rgba(0,0,20,.45);--shadow-sm:0 3px 10px rgba(0,0,20,.35)}*,:after,:before{box-sizing:border-box}#react-target,body,html{height:100%;margin:0}body{-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;background:var(--bg);background-attachment:fixed;background-image:var(--bg-gradient);color:var(--text);font-family:var(--font-body);transition:background-color .4s ease,color .3s ease}body.kiosk-active{overflow:hidden;overscroll-behavior:none;touch-action:pan-x pan-y;user-select:none;-webkit-user-select:none}:root[data-mode=evening] body:before{animation:twinkle 4s ease-in-out infinite alternate;background-image:radial-gradient(1.5px 1.5px at 12% 22%,#fff 60%,transparent),radial-gradient(1.5px 1.5px at 78% 12%,#fff 60%,transparent),radial-gradient(2px 2px at 45% 65%,#fff 60%,transparent),radial-gradient(1.5px 1.5px at 88% 55%,#fff 60%,transparent),radial-gradient(1px 1px at 30% 85%,#fff 60%,transparent),radial-gradient(1.5px 1.5px at 62% 35%,#fff 60%,transparent),radial-gradient(1px 1px at 8% 60%,#fff 60%,transparent),radial-gradient(2px 2px at 95% 88%,#fff 60%,transparent);content:"";inset:0;opacity:.7;pointer-events:none;position:fixed;z-index:0}@keyframes twinkle{0%{opacity:.35}to{opacity:.85}}h1,h2,h3{font-family:var(--font-display);font-weight:600;letter-spacing:.01em;margin:0}p{margin:0}button,input{color:inherit;font:inherit}button{background:none;border:0;cursor:pointer}button:disabled{cursor:default;opacity:.45}a{color:inherit;text-decoration:none}.muted{color:var(--muted)}.small{font-size:.9em}.grow{flex:1}.btn{align-items:center;background:var(--surface-strong);border-radius:999px;box-shadow:var(--shadow-sm);color:var(--text);display:inline-flex;font-weight:700;gap:.5rem;justify-content:center;padding:.7rem 1.2rem;transition:transform .12s ease,box-shadow .12s ease,background .2s ease;white-space:nowrap}.btn:not(:disabled):hover{transform:translateY(-1px)}.btn:not(:disabled):active{transform:scale(.97)}.btn-primary{background:var(--primary);color:var(--primary-text)}.btn-accent{background:var(--accent);color:#22304a}.btn-ghost{background:transparent;box-shadow:none}.btn-ghost:not(:disabled):hover{background:rgba(127,127,160,.12)}.btn-danger{background:var(--danger);color:#fff}.btn-danger-text{color:var(--danger)}.btn-lg{font-size:1.05rem;padding:.9rem 1.5rem}.btn-xl{font-family:var(--font-display);font-size:1.25rem;padding:1.1rem 2rem}.btn-round{font-size:1.5rem;height:2.75rem;line-height:1;padding:0;width:2.75rem}.icon-btn{align-items:center;border-radius:50%;display:inline-flex;font-size:1.15rem;height:2.4rem;justify-content:center;transition:background .15s ease,transform .12s ease;width:2.4rem}.icon-btn:not(:disabled):hover{background:rgba(127,127,160,.14)}.icon-btn:not(:disabled):active{transform:scale(.92)}.icon-btn.danger{color:var(--danger)}.form{gap:1rem}.field,.form{display:flex;flex-direction:column}.field{font-weight:600;gap:.35rem}.field>span{color:var(--muted);font-size:.9rem}.field input{background:var(--surface-strong);border:2px solid var(--border);border-radius:var(--radius-sm);outline:none;padding:.75rem .95rem;transition:border-color .15s ease}.field input:focus{border-color:var(--primary)}.field-row{display:grid;gap:1rem;grid-template-columns:1fr 1fr}.form-error{color:var(--danger);font-weight:600}.form-success{color:var(--success);font-weight:600}.tabs{background:rgba(127,127,160,.14);display:flex;gap:.25rem;padding:.25rem}.tabs,.tabs button{border-radius:999px}.tabs button{color:var(--muted);flex:1;font-weight:700;padding:.6rem 1rem;transition:background .2s ease,color .2s ease}.tabs button.active{background:var(--surface-strong);box-shadow:var(--shadow-sm);color:var(--text)}.tabs-sm button{padding:.45rem .8rem}.card{backdrop-filter:blur(10px);background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.5rem}.card-danger{border:2px solid rgba(229,72,77,.35)}.page{display:flex;flex-direction:column;min-height:100%;position:relative;z-index:1}.splash{color:var(--muted);display:grid;gap:.5rem;height:100%;place-content:center;text-align:center}.splash-logo{animation:float 2s ease-in-out infinite;border-radius:22%;height:4.5rem;margin:0 auto;width:4.5rem}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.brand{align-items:center;display:flex;flex-direction:column;gap:.35rem;text-align:center}.brand h1{font-size:2rem}.brand-icon{border-radius:22%;box-shadow:var(--shadow-sm);height:4rem;width:4rem}.brand-inline{flex-direction:row;gap:.6rem}.brand-inline h1{font-size:1.5rem}.brand-inline .brand-icon{border-radius:22%;height:2.2rem;width:2.2rem}.topbar{flex-wrap:wrap;gap:1rem;justify-content:space-between;padding:1rem 1.5rem}.topbar,.topbar-nav{align-items:center;display:flex}.topbar-nav{gap:.25rem}.auth-page{align-items:center;justify-content:center;padding:2rem 1rem}.auth-card{backdrop-filter:blur(10px);background:var(--surface);border-radius:28px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:1.5rem;padding:2rem;width:min(440px,100%)}.dashboard{gap:1rem;padding-bottom:2rem}.launch-panel{align-items:center;backdrop-filter:blur(10px);background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);display:flex;flex-wrap:wrap;gap:1.5rem;justify-content:space-between;margin:0 1.5rem;padding:1.5rem 2rem}.launch-panel h2{font-size:1.6rem;margin-bottom:.35rem}.launch-panel>div{display:flex;flex-direction:column;gap:.35rem;max-width:60ch}.account-page{gap:1rem}.account-grid{display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));padding:0 1.5rem 2rem}.board-wrap{display:flex;flex:1;flex-direction:column;min-height:0}.board-toolbar{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;padding:.25rem 1.5rem}.board{align-items:stretch;display:flex;flex:1;gap:1.25rem;min-height:0;overflow-x:auto;overflow-y:hidden;padding:1rem 1.5rem 1.5rem;scroll-snap-type:x proximity;scrollbar-width:thin}.dashboard .board{height:min(72vh,780px)}.board-kiosk .board{gap:1.25rem;padding:.75rem 1.25rem 1.25rem}.board-empty,.board-loading{align-items:center;color:var(--muted);display:flex;flex-direction:column;font-size:1.2rem;gap:.5rem;margin:auto;text-align:center}.board-empty-icon{font-size:4rem}.column{--accent:#74c0fc;backdrop-filter:blur(10px);background:var(--surface);border-radius:var(--radius);border-top:8px solid var(--accent);box-shadow:var(--shadow);display:flex;flex:0 0 clamp(280px,30vw,380px);flex-direction:column;min-height:0;overflow:hidden;scroll-snap-align:start;transition:box-shadow .3s ease}.board-kiosk .column{flex-basis:clamp(300px,32vw,440px)}.column-complete{box-shadow:0 0 0 4px var(--accent),var(--shadow)}.column-head{gap:.25rem;padding:.9rem .9rem .6rem}.column-head,.column-identity{align-items:center;display:flex}.column-identity{border-radius:var(--radius-sm);flex:1;gap:.8rem;min-width:0;padding:.35rem;text-align:left}.column-identity:disabled{opacity:1}.column-identity:not(:disabled):hover{background:rgba(127,127,160,.12)}.column-title{display:flex;flex-direction:column;min-width:0}.column-title h2{font-size:1.5rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.board-kiosk .column-title h2{font-size:1.8rem}.column-count{color:var(--muted);font-size:.9rem;font-weight:700}.column-edit-hint{color:var(--muted);margin-left:auto}.column-move{font-size:1.6rem}.progress{background:rgba(127,127,160,.18);border-radius:999px;height:8px;margin:0 1rem .5rem;overflow:hidden}.progress-bar{background:var(--accent);border-radius:999px;height:100%;transition:width .5s cubic-bezier(.2,.8,.2,1)}.items{-webkit-overflow-scrolling:touch;display:flex;flex:1;flex-direction:column;gap:.6rem;list-style:none;margin:0;min-height:0;overflow-y:auto;padding:.5rem 1rem 1rem;scrollbar-width:thin}.items-empty{color:var(--muted);font-weight:600;padding:2rem 1rem;text-align:center}.column-add{align-items:center;background:transparent;border-top-width:3px;border:3px dashed var(--border);box-shadow:none;color:var(--muted);font-size:1.1rem;font-weight:700;gap:.75rem;justify-content:center;min-height:220px;transition:background .2s ease,color .2s ease}.column-add:hover{background:var(--surface);color:var(--text)}.column-add-icon{font-size:3rem;line-height:1}.item{--item-bg:var(--surface-strong);background:var(--item-bg);box-shadow:var(--shadow-sm);transition:transform .2s ease,background .3s ease,opacity .3s ease}.item,.item-check{border-radius:18px}.item-check{align-items:center;display:flex;gap:.85rem;padding:.9rem 1rem;text-align:left;width:100%}.board-kiosk .item-check{padding:1.1rem}.item-check:active{transform:scale(.98)}.item-emoji{flex-shrink:0;font-size:1.9rem;line-height:1;transition:transform .3s ease}.board-kiosk .item-emoji{font-size:2.3rem}.item-text{flex:1;font-size:1.15rem;font-weight:700;line-height:1.25;transition:color .3s ease}.board-kiosk .item-text{font-size:1.35rem}.item-box{border:3px solid var(--accent);border-radius:12px;color:#fff;display:grid;flex-shrink:0;height:2.2rem;place-items:center;transition:background .25s ease,transform .25s ease;width:2.2rem}.board-kiosk .item-box{height:2.6rem;width:2.6rem}.item-tick{height:70%;opacity:0;transform:scale(.4);transition:opacity .2s ease,transform .3s cubic-bezier(.34,1.56,.64,1);width:70%}.item.done{background:color-mix(in srgb,var(--accent) 22%,var(--item-bg))}.item.done .item-text{color:var(--muted);text-decoration:line-through;text-decoration-color:var(--accent);text-decoration-thickness:3px}.item.done .item-box{background:var(--accent)}.item.done .item-tick{opacity:1;transform:scale(1)}.item.pop{animation:pop .6s cubic-bezier(.34,1.56,.64,1)}.item.pop .item-emoji{animation:wiggle .7s ease}@keyframes pop{0%{transform:scale(1)}35%{transform:scale(1.06) rotate(-1.5deg)}70%{transform:scale(.98) rotate(1deg)}to{transform:scale(1)}}@keyframes wiggle{0%{transform:rotate(0) scale(1)}30%{transform:rotate(-18deg) scale(1.4)}60%{transform:rotate(14deg) scale(1.3)}to{transform:rotate(0) scale(1)}}.item-edit{align-items:center;display:flex;gap:.5rem;padding:.5rem .6rem}.item-edit input{background:rgba(127,127,160,.1);border:2px solid transparent;border-radius:12px;flex:1;font-weight:700;min-width:0;outline:none;padding:.6rem .75rem}.item-edit input:focus{background:var(--surface-strong);border-color:var(--primary)}.item-actions{display:flex;gap:.1rem}.item-actions .icon-btn{font-size:1rem;height:2rem;width:2rem}.emoji-btn{background:rgba(127,127,160,.12);border-radius:12px;display:grid;flex-shrink:0;font-size:1.6rem;height:2.75rem;line-height:1;place-items:center;transition:background .15s ease,transform .12s ease;width:2.75rem}.emoji-btn:hover{background:rgba(127,127,160,.22)}.emoji-btn:active{transform:scale(.94)}.add-item{align-items:center;border-top:1px solid var(--border);display:flex;flex-wrap:wrap;gap:.5rem;padding:.75rem 1rem 1rem}.add-item input{background:var(--surface-strong);border:2px solid var(--border);border-radius:999px;flex:1;font-weight:600;min-width:0;outline:none;padding:.7rem .9rem}.add-item input:focus{border-color:var(--primary)}.add-item .form-error{flex-basis:100%;font-size:.9rem}.drag-handle{border-radius:10px;color:var(--muted);cursor:grab;display:grid;flex-shrink:0;font-size:1.3rem;height:2.75rem;place-items:center;touch-action:none;transition:background .15s ease,color .15s ease;user-select:none;-webkit-user-select:none;width:2rem}.drag-handle:hover{background:rgba(127,127,160,.14);color:var(--text)}.drag-handle:active{cursor:grabbing}.column-grip{height:2.75rem;margin-right:.25rem}.item.dragging{box-shadow:0 12px 28px rgba(50,80,140,.25);opacity:.95;position:relative;z-index:5}.column.dragging{box-shadow:0 18px 40px rgba(50,80,140,.3);z-index:5}.suggestions{background:rgba(127,127,160,.06);border:2px dashed var(--border);border-radius:18px;display:flex;flex-direction:column;gap:.6rem;padding:.75rem}.suggestions-head{align-items:center;color:var(--muted);display:flex;font-size:.9rem;font-weight:800;gap:.5rem;justify-content:space-between}.suggestions-list{display:flex;flex-wrap:wrap;gap:.4rem}.suggestion{align-items:center;background:var(--surface-strong);border-radius:999px;box-shadow:var(--shadow-sm);display:inline-flex;font-size:.9rem;font-weight:700;gap:.4rem;padding:.4rem .7rem .4rem .5rem;text-align:left;transition:transform .12s ease,background .15s ease}.suggestion:not(:disabled):hover{background:color-mix(in srgb,var(--accent) 18%,var(--surface-strong));transform:translateY(-1px)}.suggestion.pending{opacity:.5}.suggestion-emoji{font-size:1.2rem;line-height:1}.suggestion-plus{color:var(--primary);font-weight:900}.suggestions-all,.suggestions-toggle{align-self:flex-start;font-size:.9rem}.suggestions-toggle{margin:0 1rem}.printable-hero{align-items:center;display:grid;gap:3rem;grid-template-columns:1.1fr 1fr;padding-top:2rem}.printable-hero h2{margin-bottom:1rem;text-align:left}.printable-preview{background:#fff;border-radius:18px;box-shadow:var(--shadow);display:block;height:auto;margin:0 auto;transform:rotate(1.5deg);width:min(100%,340px)}.breadcrumb{margin:0 auto;padding:0 1.5rem;width:min(1100px,100%)}.breadcrumb ol{color:var(--muted);display:flex;flex-wrap:wrap;font-size:.9rem;font-weight:700;gap:.35rem;list-style:none;margin:0;padding:0}.breadcrumb li+li:before{content:"›";margin-right:.35rem;opacity:.6}.breadcrumb [aria-current],.breadcrumb a:hover{color:var(--text)}.download-row{display:flex;flex-wrap:wrap;gap:.75rem;margin:1.25rem 0 .75rem}.age-grid{display:grid;gap:1.25rem;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.age-card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:.75rem;padding:1.5rem}.age-card h3{font-size:1.3rem}.age-card p{color:var(--muted);line-height:1.5}.age-card h4{font-family:var(--font-display);font-size:1rem;font-weight:600;margin:.25rem 0 0}.age-card ul{font-weight:600;gap:.3rem;list-style:none;margin:0;padding:0}.age-card ul,.tips{display:flex;flex-direction:column}.tips{gap:1rem;line-height:1.6;margin:0 auto;max-width:76ch;width:100%}.tips h2{margin-bottom:0;text-align:left}.tips ul{display:flex;flex-direction:column;gap:.5rem;margin:0;padding-left:1.25rem}@media (max-width:860px){.printable-hero{grid-template-columns:1fr}.printable-preview{transform:none}}.avatar{border-radius:50%;box-shadow:inset 0 -4px 0 rgba(0,0,0,.08);display:grid;flex-shrink:0;overflow:hidden;place-items:center}.avatar img{display:block;height:100%;object-fit:cover;width:100%}.avatar-emoji{line-height:1}.avatar-sm{font-size:1.3rem;height:2.2rem;width:2.2rem}.avatar-md{font-size:1.8rem;height:3rem;width:3rem}.avatar-lg{font-size:2.3rem;height:3.8rem;width:3.8rem}.avatar-xl{font-size:3.6rem;height:6rem;width:6rem}.mode-toggle{background:rgba(127,127,160,.18);border-radius:999px;display:inline-grid;grid-template-columns:1fr 1fr;isolation:isolate;padding:.3rem;position:relative}.mode-toggle-thumb{background:var(--surface-strong);border-radius:999px;bottom:.3rem;box-shadow:var(--shadow-sm);left:.3rem;position:absolute;top:.3rem;transition:transform .3s cubic-bezier(.2,.8,.2,1);width:calc(50% - .3rem);z-index:-1}.mode-toggle-thumb.right{transform:translateX(100%)}.mode-toggle-btn{align-items:center;border-radius:999px;color:var(--muted);display:flex;font-weight:800;gap:.4rem;justify-content:center;padding:.5rem 1.1rem;transition:color .2s ease}.mode-toggle-btn.active{color:var(--text)}.mode-toggle-icon{font-size:1.2em;transition:transform .3s ease}.mode-toggle-btn.active .mode-toggle-icon{transform:scale(1.2) rotate(-10deg)}.mode-toggle-lg .mode-toggle-btn{font-size:1.15rem;padding:.65rem 1.5rem}.kiosk{display:flex;flex-direction:column;height:100%;position:relative;z-index:1}.kiosk-bar{align-items:center;display:grid;gap:1rem;grid-template-columns:1fr auto 1fr;padding:.75rem 1.25rem}.kiosk-bar-side{align-items:center;display:flex;gap:.75rem}.kiosk-bar-side.right{justify-content:flex-end}.kiosk-title{font-family:var(--font-display)}.kiosk-icon,.kiosk-title{color:var(--muted);font-size:1.3rem}.kiosk-icon{background:var(--surface);box-shadow:var(--shadow-sm);height:2.8rem;width:2.8rem}.edit-banner{background:var(--accent);border-radius:var(--radius-sm);color:#22304a;font-weight:700;margin:0 1.25rem;padding:.6rem 1rem;text-align:center}.kiosk-editing .kiosk-icon{display:none}.fs-overlay{align-items:center;backdrop-filter:blur(8px);background:rgba(20,24,50,.82);color:#fff;display:flex;flex-direction:column;gap:1rem;inset:0;justify-content:center;padding:2rem;position:fixed;text-align:center;z-index:500}.fs-overlay-icon{animation:float 1.6s ease-in-out infinite;font-size:4rem}.fs-overlay-text{font-family:var(--font-display);font-size:2rem}.fs-overlay-hint{opacity:.7}.modal-backdrop{align-items:center;animation:fade-in .2s ease;backdrop-filter:blur(6px);background:rgba(20,24,50,.55);display:flex;inset:0;justify-content:center;padding:1rem;position:fixed;z-index:1000}.modal{animation:rise .25s cubic-bezier(.2,.8,.2,1);background:var(--surface-strong);border-radius:28px;box-shadow:var(--shadow);color:var(--text);display:flex;flex-direction:column;max-height:calc(100% - 2rem);overflow:hidden;width:min(560px,100%)}.modal-head{align-items:center;display:flex;justify-content:space-between;padding:1.25rem 1.5rem .5rem}.modal-head h2{font-size:1.4rem}.modal-body{overflow-y:auto;padding:1rem 1.5rem 1.5rem}.confirm-inline,.modal-actions{align-items:center;display:flex;flex-wrap:wrap;gap:.5rem}.confirm-inline{font-weight:600}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes rise{0%{opacity:0;transform:translateY(20px) scale(.97)}to{opacity:1;transform:none}}.child-editor-preview{align-items:center;display:flex;gap:1.25rem}.color-row{display:flex;flex-wrap:wrap;gap:.5rem}.color-dot{border:3px solid transparent;border-radius:50%;height:2.2rem;transition:transform .15s ease,border-color .15s ease;width:2.2rem}.color-dot.selected{border-color:var(--text);transform:scale(1.15)}.emoji-grid{display:grid;gap:.35rem;grid-template-columns:repeat(auto-fill,minmax(3rem,1fr))}.emoji-cell{aspect-ratio:1;border-radius:12px;display:grid;font-size:1.7rem;place-items:center;transition:background .15s ease,transform .12s ease}.emoji-cell:hover{background:rgba(127,127,160,.14);transform:scale(1.1)}.emoji-cell.selected{background:var(--primary)}.emoji-groups{display:flex;flex-direction:column;gap:1rem}.emoji-group h3{color:var(--muted);font-size:.85rem;letter-spacing:.08em;margin-bottom:.35rem;text-transform:uppercase}.emoji-custom{display:flex;gap:.5rem;margin-top:1.25rem}.emoji-custom input{background:var(--surface-strong);border:2px solid var(--border);border-radius:999px;flex:1;outline:none;padding:.7rem .9rem}.dropzone{align-items:center;border:3px dashed var(--border);border-radius:var(--radius);display:flex;flex-direction:column;gap:.75rem;padding:1.5rem;text-align:center}.modal-pin{text-align:center;width:min(360px,100%)}.modal-pin .modal-body{align-items:center;display:flex;flex-direction:column;gap:.5rem;padding:1.75rem 1.5rem 1.5rem}.pin-title{font-size:1.5rem}.pin-dots{display:flex;gap:.75rem;margin:1rem 0 .25rem}.pin-dot{border:3px solid var(--primary);border-radius:50%;height:1.1rem;transition:background .15s ease,transform .15s ease;width:1.1rem}.pin-dot.filled{background:var(--primary);transform:scale(1.15)}.pin-dots.error .pin-dot{border-color:var(--danger)}.pin-dots.shake{animation:shake .45s ease}@keyframes shake{0%,to{transform:translateX(0)}20%{transform:translateX(-10px)}40%{transform:translateX(10px)}60%{transform:translateX(-6px)}80%{transform:translateX(6px)}}.pin-error{color:var(--danger);font-weight:700;min-height:1.4em}.pin-pad{display:grid;gap:.7rem;grid-template-columns:repeat(3,4.6rem);margin-top:.5rem}.pin-key{background:rgba(127,127,160,.14);border-radius:50%;font-family:var(--font-display);font-size:1.8rem;font-weight:600;height:4.6rem;transition:background .15s ease,transform .1s ease}.pin-key:not(:disabled):active{background:var(--primary);color:var(--primary-text);transform:scale(.92)}.pin-key-back,.pin-key-cancel{background:transparent;color:var(--muted);font-size:1.4rem}.cheer{animation:fade-in .25s ease;background:rgba(20,24,50,.35);cursor:pointer;display:grid;inset:0;place-items:center;position:fixed;z-index:900}.cheer-card{--accent:#ffd93d;align-items:center;animation:cheer-in .6s cubic-bezier(.34,1.56,.64,1);background:var(--surface-strong);border-radius:36px;box-shadow:0 0 0 10px var(--accent),var(--shadow);color:var(--text);display:flex;flex-direction:column;gap:.75rem;padding:2.5rem 3rem;text-align:center}.cheer-card h2{font-size:2.6rem}.cheer-card p{color:var(--muted);font-size:1.2rem;font-weight:700}.cheer-avatar{animation:bounce .8s ease infinite alternate}@keyframes cheer-in{0%{opacity:0;transform:scale(.5) rotate(-6deg)}to{opacity:1;transform:none}}@keyframes bounce{0%{transform:translateY(0) rotate(-6deg)}to{transform:translateY(-14px) rotate(6deg)}}.landing{display:flex;flex-direction:column;min-height:100%;position:relative;z-index:1}.landing h1{font-size:1.5rem}.landing main{display:flex;flex:1;flex-direction:column;gap:4rem;margin:0 auto;padding:0 1.5rem 3rem;width:min(1100px,100%)}.landing section>h2{font-size:clamp(1.6rem,3vw,2.2rem);margin-bottom:1.5rem;text-align:center}.landing-header{flex-wrap:wrap;gap:1rem;justify-content:space-between;margin:0 auto;padding:1rem 1.5rem;width:min(1100px,100%)}.landing-header,.landing-nav{align-items:center;display:flex}.landing-nav{font-weight:700;gap:1.25rem}.landing-nav a:not(.btn){color:var(--muted)}.landing-nav a:not(.btn):hover{color:var(--text)}.hero{align-items:center;display:grid;gap:3rem;grid-template-columns:1.1fr 1fr;padding-top:2rem}.eyebrow{color:var(--primary);font-size:.8rem;font-weight:800;letter-spacing:.12em;margin-bottom:.75rem;text-transform:uppercase}.hero-text h2{font-size:clamp(2rem,4.2vw,3.2rem);line-height:1.1;margin-bottom:1rem}.hl{background:linear-gradient(transparent 60%,var(--accent) 60%)}.lead{color:var(--muted);font-size:1.15rem;line-height:1.5;margin-bottom:1.5rem;max-width:52ch}.hero-cta{display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:.75rem}.hero-visual{background:var(--surface);border-radius:28px;box-shadow:var(--shadow);padding:1rem;position:relative;transform:rotate(-1.5deg)}.mock-bar{display:flex;gap:.5rem;justify-content:center;margin-bottom:.75rem}.mock-pill{background:var(--surface-strong);border-radius:999px;box-shadow:var(--shadow-sm);font-size:.9rem;font-weight:800;padding:.35rem .9rem}.mock-pill.dim{box-shadow:none;opacity:.5}.mock-board{display:grid;gap:.75rem;grid-template-columns:1fr 1fr}.mock-column{background:var(--surface-strong);border-radius:18px;border-top:6px solid var(--accent);display:flex;flex-direction:column;gap:.5rem;padding:.75rem}.mock-head{align-items:center;display:flex;font-family:var(--font-display);font-size:1.1rem;gap:.5rem;margin-bottom:.25rem}.mock-avatar{background:var(--accent);border-radius:50%;display:grid;font-size:1.3rem;height:2.2rem;place-items:center;width:2.2rem}.mock-item{background:rgba(127,127,160,.1);border-radius:12px;font-size:.9rem;font-weight:700;padding:.55rem .7rem}.mock-item.done{background:color-mix(in srgb,var(--accent) 25%,transparent);color:var(--muted);text-decoration:line-through;text-decoration-color:var(--accent)}.mock-confetti{animation:float 2.4s ease-in-out infinite;font-size:2rem;position:absolute}.mock-confetti.c1{right:8%;top:-1rem}.mock-confetti.c2{animation-delay:.6s;bottom:-.5rem;left:6%}.mock-confetti.c3{animation-delay:1.2s;right:.4rem;top:40%}@media (max-width:720px){.kiosk-bar{gap:.5rem;padding:.5rem .6rem}.kiosk-bar-center{display:flex;justify-content:center;min-width:0}.kiosk-bar .mode-toggle-lg .mode-toggle-btn{font-size:1rem;padding:.5rem .9rem}.kiosk-icon{height:2.5rem;width:2.5rem}}.features-grid{display:grid;gap:1.25rem;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.feature{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:.5rem;padding:1.5rem}.feature-icon{font-size:2rem}.feature h3{font-size:1.2rem}.feature p{color:var(--muted);line-height:1.5}.steps-list{display:grid;gap:1.25rem;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));list-style:none;margin:0;padding:0}.steps-list li{align-items:flex-start;display:flex;gap:1rem}.steps-list h3{font-size:1.15rem;margin-bottom:.25rem}.steps-list p{color:var(--muted);line-height:1.5}.step-n{background:var(--primary);border-radius:50%;color:var(--primary-text);display:grid;flex-shrink:0;font-family:var(--font-display);font-size:1.3rem;height:2.6rem;place-items:center;width:2.6rem}.seo-text{display:flex;flex-direction:column;gap:1rem;line-height:1.6;margin:0 auto;max-width:72ch}.seo-text h2{margin-bottom:0;text-align:left}.faq{margin:0 auto;max-width:76ch;width:100%}.faq details{background:var(--surface);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);margin-bottom:.75rem;padding:1rem 1.25rem}.faq summary{cursor:pointer;font-size:1.05rem;font-weight:800}.faq details p{color:var(--muted);line-height:1.55;margin-top:.75rem}.final-cta{align-items:center;background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);display:flex;flex-direction:column;gap:1.25rem;padding:3rem 1.5rem;text-align:center}.final-cta h2{margin-bottom:0}.landing-footer{color:var(--muted);flex-wrap:wrap;font-weight:600;justify-content:space-between;margin:0 auto;padding:1.5rem;width:min(1100px,100%)}.landing-footer,.landing-footer nav{display:flex;gap:1rem}body:has(.landing){--bg:#cfe9ff;--bg-gradient:linear-gradient(160deg,#dff3ff,#bfe1ff 45%,#ffe6f0);--surface:hsla(0,0%,100%,.86);--surface-strong:#fff;--text:#22304a;--muted:#6b7a95;--primary:#4f8cff;--primary-text:#fff;--border:rgba(34,48,74,.1);--shadow:0 10px 30px rgba(50,80,140,.15);--shadow-sm:0 3px 10px rgba(50,80,140,.12)}:root[data-mode=evening] body:has(.landing):before{display:none}@media (max-width:860px){.hero{gap:2rem;grid-template-columns:1fr}.hero-visual{transform:none}.landing-header{align-items:stretch;flex-direction:column;gap:.75rem}.landing-nav{flex-wrap:wrap;font-size:.95rem;gap:.5rem 1rem;justify-content:flex-start}.landing-nav .btn{margin-left:auto}.landing main{gap:3rem;padding:0 1rem 2rem}.hero-text h2{font-size:clamp(1.8rem,8vw,2.6rem)}.landing-footer{align-items:flex-start;flex-direction:column}}.family-menu{position:relative}.family-menu-btn{gap:.5rem;max-width:16rem;padding:.55rem .9rem}.family-menu-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.family-menu-count{background:var(--primary);border-radius:999px;color:var(--primary-text);font-size:.75rem;padding:.1rem .5rem}.family-menu-caret{opacity:.6}.dropdown{animation:rise .18s ease;background:var(--surface-strong);border-radius:var(--radius-sm);box-shadow:var(--shadow);left:0;max-width:90vw;min-width:18rem;padding:.4rem;position:absolute;top:calc(100% + .4rem);z-index:50}.dropdown-label{color:var(--muted);font-size:.75rem;font-weight:800;letter-spacing:.08em;padding:.4rem .75rem .2rem;text-transform:uppercase}.dropdown-item{align-items:center;border-radius:10px;display:flex;font-weight:700;gap:.5rem;padding:.6rem .75rem;text-align:left;width:100%}.dropdown-item:hover{background:rgba(127,127,160,.12)}.dropdown-item.active{color:var(--primary)}.dropdown-check{text-align:center;width:1.2rem}.dropdown-sep{background:var(--border);height:1px;margin:.35rem .5rem}.modal-family{width:min(620px,100%)}.family-sections{display:flex;flex-direction:column;gap:1.5rem}.family-sections h3{font-size:1.1rem;margin-bottom:.35rem}.inline-form{display:flex;gap:.5rem}.inline-form input{background:var(--surface-strong);border:2px solid var(--border);border-radius:var(--radius-sm);flex:1;min-width:0;outline:none;padding:.7rem .9rem}.inline-form input:focus{border-color:var(--primary)}.member-list{display:flex;flex-direction:column;gap:.4rem;list-style:none;margin:.5rem 0 0;padding:0}.member-list li{align-items:center;background:rgba(127,127,160,.08);border-radius:var(--radius-sm);display:flex;gap:.75rem;line-height:1.3;padding:.6rem .75rem}.member-avatar{font-size:1.4rem}.tag{background:rgba(79,140,255,.15);border-radius:999px;color:var(--primary);display:inline-block;font-size:.7rem;font-weight:800;letter-spacing:.05em;margin-left:.4rem;padding:.05rem .5rem;text-transform:uppercase;vertical-align:middle}.family-danger{border-top:1px solid var(--border);padding-top:1rem}.share-link{display:flex;gap:.5rem;margin-top:.5rem}.share-link input{background:rgba(127,127,160,.08);border:2px dashed var(--border);border-radius:var(--radius-sm);flex:1;font-size:.85rem;min-width:0;padding:.6rem .8rem}.invite-hint{background:rgba(79,140,255,.12);border-radius:var(--radius-sm);font-size:.9rem;font-weight:600;margin-top:.5rem;padding:.6rem .9rem}.invitation-card{gap:1rem;text-align:center}.invitation-card .hero-cta{justify-content:center}.connection-banner{background:#ffb86b;box-shadow:var(--shadow-sm);color:#22304a;display:flex;flex-wrap:wrap;font-weight:700;gap:.75rem;left:0;padding:.5rem 1rem;position:fixed;right:0;top:0;z-index:2000}.connection-banner,.crash{align-items:center;justify-content:center}.crash{padding:2rem 1rem}.crash-card{display:flex;flex-direction:column;gap:1rem;width:min(640px,100%)}.crash-message{background:rgba(127,127,160,.12);border-radius:var(--radius-sm);font-size:.8rem;margin:0;max-height:40vh;overflow:auto;padding:1rem;white-space:pre-wrap;word-break:break-word}.password-field{display:flex;position:relative}.password-field input{flex:1;padding-right:3rem;width:100%}.password-field input.masked{-webkit-text-security:disc;letter-spacing:.25em}.eye-btn{border-radius:50%;display:grid;font-size:1.1rem;height:2.4rem;place-items:center;position:absolute;right:.35rem;top:50%;transform:translateY(-50%);transition:background .15s ease;width:2.4rem}.eye-btn:hover{background:rgba(127,127,160,.14)}.rules{color:var(--muted);display:grid;font-size:.85rem;font-weight:600;gap:.25rem;list-style:none;margin:.35rem 0 0;padding:0}.rule{align-items:center;display:flex;gap:.5rem;transition:color .2s ease}.rule-icon{border:2px solid var(--border);border-radius:50%;display:grid;font-size:.8rem;height:1.3rem;place-items:center;transition:background .2s ease,border-color .2s ease,color .2s ease;width:1.3rem}.rule.ok{color:var(--success)}.rule.ok .rule-icon{background:var(--success);border-color:var(--success);color:#fff}@media (max-width:720px){.board-toolbar,.topbar{padding-left:1rem;padding-right:1rem}.launch-panel{margin:0 1rem;padding:1.25rem}.launch-panel .btn-xl{width:100%}.board{padding:.75rem 1rem 1rem;scroll-padding:0 1rem;scroll-snap-type:x mandatory}.board-kiosk .column,.column{flex-basis:min(86vw,400px);scroll-snap-align:center}.kiosk-bar{grid-template-columns:auto 1fr auto;padding:.5rem .75rem}.kiosk-title{display:none}.field-row{grid-template-columns:1fr}.cheer-card{margin:1rem;padding:2rem 1.5rem}.cheer-card h2{font-size:2rem}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;transition-duration:.01ms!important}}