@font-face{font-family:Bricolage Grotesque;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/bricolage-grotesque-latin-600-normal-nxTgbNFE.woff2) format("woff2"),url(/assets/bricolage-grotesque-latin-600-normal-Bw0J83-2.woff) format("woff")}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/bricolage-grotesque-latin-800-normal-J50vIsBe.woff2) format("woff2"),url(/assets/bricolage-grotesque-latin-800-normal-Br4b-5gk.woff) format("woff")}@font-face{font-family:Figtree;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/figtree-latin-400-normal-g7Dtegnw.woff2) format("woff2"),url(/assets/figtree-latin-400-normal-BD4aNku5.woff) format("woff")}@font-face{font-family:Figtree;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/figtree-latin-600-normal-Cv_xCTDl.woff2) format("woff2"),url(/assets/figtree-latin-600-normal-BM_oTo4n.woff) format("woff")}@font-face{font-family:Figtree;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/figtree-latin-700-normal-th6qEP7c.woff2) format("woff2"),url(/assets/figtree-latin-700-normal-BCCt2T1q.woff) format("woff")}:root{color-scheme:light dark;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--motion-fast: .12s;--motion-base: .22s;--motion-ease: cubic-bezier(.2, .8, .2, 1);--motion-pop: cubic-bezier(.34, 1.56, .64, 1);--c-bg: #fff7ec;--c-text: #1d1a2f;--font-body: "Figtree", system-ui, -apple-system, "Segoe UI", sans-serif;--font-display: "Bricolage Grotesque", "Figtree", system-ui, sans-serif}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--c-bg: #15122a;--c-text: #fff7ec}}:root[data-theme=dark]{--c-bg: #15122a;--c-text: #fff7ec}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--c-bg);color:var(--c-text);font:400 16px/1.5 var(--font-body);-webkit-font-smoothing:antialiased;overflow-x:hidden}h1,h2,h3{font-family:var(--font-display);font-weight:var(--display-weight);line-height:1.1;margin:0 0 var(--space-3);letter-spacing:var(--display-tracking);text-wrap:balance}h1{font-size:1.9rem}h2{font-size:1.3rem}h3{font-size:1.05rem}p{margin:0 0 var(--space-3)}a{color:var(--c-link)}img,video,svg{max-width:100%}:focus-visible{outline:3px solid var(--c-focus);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.muted{color:var(--c-text-muted)}.small{font-size:.875rem}.app{min-height:100dvh;display:flex;flex-direction:column;position:relative;overflow-x:clip}.app>*:not(.deco){position:relative;z-index:1}.page{width:100%;max-width:640px;margin:0 auto;padding:var(--space-4) var(--space-4) calc(96px + env(safe-area-inset-bottom));flex:1}.page.wide{max-width:960px}.stack>*+*{margin-top:var(--space-4)}.row{display:flex;gap:var(--space-3);align-items:center;flex-wrap:wrap}.row.between{justify-content:space-between}.grow{flex:1;min-width:0}.card{background:var(--c-surface);border:1.5px solid var(--c-border);border-radius:var(--r-md);padding:var(--space-4);box-shadow:var(--shadow-1)}.card h2,.card h3{margin-bottom:var(--space-2)}.card.hot{background:var(--c-hot);color:var(--c-on-hot);border:var(--border-w) solid var(--c-btn-border);box-shadow:6px 6px 0 var(--c-shadow);border-radius:var(--r-lg)}.card.hot .muted{color:var(--c-on-hot);opacity:.85}.card.hot h2{display:inline-block;background:var(--c-on-hot);color:var(--c-hot);padding:3px 12px;border-radius:var(--r-pill);font-size:.95rem;transform:rotate(-2deg)}.card.hot .btn.primary{background:var(--c-on-hot);border-color:var(--c-on-hot);color:var(--c-hot)}.card.hot a:not(.btn){color:inherit}.moment{font:var(--display-weight) 1.6rem/1.1 var(--font-display);letter-spacing:var(--display-tracking);margin:0}.sticker{display:inline-block;background:var(--c-sticker);color:var(--c-on-sticker);font:800 .8125rem/1 var(--font-display);padding:6px 11px;border-radius:var(--r-pill);transform:rotate(-3deg);box-shadow:0 2px #0000002e}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;font:700 1rem var(--font-body);min-height:48px;padding:0 var(--space-5);border-radius:var(--r-btn);border:var(--border-w) solid var(--c-btn-border);background:var(--c-surface);color:var(--c-text);display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);text-decoration:none;transition:background var(--motion-fast) var(--motion-ease),transform var(--motion-fast) var(--motion-ease),box-shadow var(--motion-fast) var(--motion-ease)}.btn:hover{background:var(--c-surface-2)}.btn:active{transform:translateY(2px)}.btn.primary{background:var(--c-primary);border-color:var(--c-primary);color:var(--c-on-primary);box-shadow:var(--btn-shadow)}.btn.primary:hover{background:var(--c-primary-hover)}.btn.primary:active{box-shadow:var(--btn-shadow-pressed);transform:translateY(3px)}.btn.danger{color:var(--c-danger);border-color:var(--c-danger)}.btn.block{width:100%}.btn.small{min-height:40px;padding:0 var(--space-4);font-size:.875rem}.btn[disabled],.btn[aria-disabled=true]{opacity:.55;cursor:not-allowed;box-shadow:none}.btn[aria-pressed=true]{background:var(--c-chip);border-color:var(--c-btn-border);color:var(--c-chip-text);box-shadow:inset 0 0 0 1px var(--c-btn-border)}.field{display:block;margin-bottom:var(--space-3)}.field>span{display:block;font-weight:700;font-size:.875rem;margin-bottom:var(--space-1)}input[type=text],input[type=email],input[type=number],select{width:100%;min-height:48px;padding:0 var(--space-3);font:inherit;color:var(--c-text);background:var(--c-surface);border:var(--border-w) solid var(--c-border);border-radius:var(--r-sm)}input:focus-visible,select:focus-visible{border-color:var(--c-focus)}.chip{display:inline-flex;align-items:center;padding:2px var(--space-3);border-radius:var(--r-pill);background:var(--c-chip);color:var(--c-chip-text);font-size:.8125rem;font-weight:700}.chips{display:flex;flex-wrap:wrap;gap:var(--space-2)}.alert{padding:var(--space-3) var(--space-4);border-radius:var(--r-sm);background:var(--c-surface-2);border:1.5px solid var(--c-border)}.alert.error{border-color:var(--c-danger);color:var(--c-danger)}.progress{height:10px;border-radius:var(--r-pill);background:var(--c-surface-2);overflow:hidden}.progress>i{display:block;height:100%;border-radius:var(--r-pill);background:var(--c-accent);transition:width var(--motion-base) var(--motion-ease)}details>summary{cursor:pointer;font-weight:700;min-height:32px}ul.plain{list-style:none;padding:0;margin:0}ul.plain>li{padding:var(--space-2) 0;border-bottom:1.5px solid var(--c-border)}ul.plain>li:last-child{border-bottom:0}.topbar{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);max-width:960px;width:100%;margin:0 auto}.brand{font:var(--display-weight) 1.4rem var(--font-display);letter-spacing:var(--display-tracking);color:var(--c-text);text-decoration:none}.brand:after{content:".";color:var(--c-accent)}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:20;display:flex;justify-content:space-around;background:var(--c-surface);border-top:1.5px solid var(--c-border);padding-bottom:env(safe-area-inset-bottom)}.tabbar a{flex:1;min-height:56px;display:flex;align-items:center;justify-content:center;text-decoration:none;color:var(--c-text-muted);font-weight:700;font-size:.875rem;position:relative}.tabbar a[aria-current=page]{color:var(--c-text)}.tabbar a[aria-current=page]:after{content:"";position:absolute;bottom:8px;width:22px;height:4px;border-radius:4px;background:var(--c-accent)}.hero{padding:var(--space-6) 0 var(--space-5)}.hero h1{font-size:clamp(2.3rem,9vw,3.75rem);line-height:1;letter-spacing:-.03em;max-width:14ch}.hero h1 .hl{display:inline-block;background:var(--c-sticker);color:var(--c-on-sticker);padding:0 .18em;border-radius:.28em;transform:rotate(-2deg);margin-bottom:.08em}.hero p.lead{font-size:1.125rem;max-width:34ch}.pills{display:flex;flex-wrap:wrap;gap:var(--space-2);margin:var(--space-4) 0}.sections{display:grid;gap:var(--space-4)}@media(min-width:720px){.sections{grid-template-columns:1fr 1fr}}.sections .card{border-width:var(--border-w);border-color:var(--c-btn-border)}.sections .card:nth-child(1){box-shadow:5px 5px 0 var(--c-blob-3)}.sections .card:nth-child(2){box-shadow:5px 5px 0 var(--c-blob-2)}.sections .card:nth-child(3){box-shadow:5px 5px 0 var(--c-blob-4)}.sections .card:nth-child(4){box-shadow:5px 5px 0 var(--c-blob-1)}.helplist li{display:grid;gap:2px}.callbox{white-space:nowrap}.deco{position:absolute;top:0;left:0;right:0;height:640px;overflow:hidden;pointer-events:none;z-index:0}.deco>i{position:absolute;display:block;font-style:normal}.deco-blob-1,.deco-blob-2,.deco-blob-3,.deco-blob-4{border-radius:50%;opacity:.4}.deco-blob-1{width:210px;height:210px;background:var(--c-blob-1);top:90px;right:-60px}.deco-blob-2{width:120px;height:120px;background:var(--c-blob-2);top:330px;left:-34px}.deco-blob-3{width:70px;height:70px;background:var(--c-blob-3);top:150px;left:52%}.deco-blob-4{width:46px;height:46px;background:var(--c-blob-4);top:420px;right:14%}.deco-aura,.deco-glow{width:520px;height:520px;top:-200px;right:-160px;border-radius:50%;opacity:.45;filter:blur(40px);background:radial-gradient(circle,var(--c-blob-2) 0%,transparent 60%),radial-gradient(circle at 30% 70%,var(--c-blob-1) 0%,transparent 55%);animation:deco-drift 9s ease-in-out infinite alternate}.deco-glow{background:radial-gradient(circle,var(--c-blob-1) 0%,transparent 62%),radial-gradient(circle at 30% 70%,var(--c-blob-2) 0%,transparent 55%)}.deco-tape-1,.deco-tape-2{width:96px;height:28px;background:#f0d68cbf}.deco-tape-1{top:70px;left:22px;transform:rotate(-6deg)}.deco-tape-2{top:200px;right:18px;transform:rotate(5deg)}.deco-float-1,.deco-float-2,.deco-float-3{font-size:2.2rem;opacity:.55;animation:deco-float 6s ease-in-out infinite alternate}.deco-float-1{top:110px;right:12%}.deco-float-2{top:300px;left:8%;animation-delay:-2s}.deco-float-3{top:420px;right:30%;font-size:1.6rem;animation-delay:-4s}@keyframes deco-drift{to{transform:translate(-40px,60px) rotate(25deg)}}@keyframes deco-float{to{transform:translateY(-16px) rotate(8deg)}}@media(prefers-reduced-motion:reduce){html:not([data-motion=full]) .deco>i{animation:none}}html[data-motion=reduce] .deco>i{animation:none}.dev-theme{position:fixed;left:8px;bottom:64px;z-index:50;opacity:.85}.dev-theme select{min-height:32px;width:auto;font-size:.75rem}.reveal-in{animation:reveal-pop .42s var(--motion-pop) both}@keyframes reveal-pop{0%{opacity:0;transform:translateY(16px) scale(.96)}to{opacity:1;transform:none}}.sticker-chip{font:800 .9rem var(--font-display);padding:6px 12px;border-radius:var(--r-pill);color:var(--c-on-sticker);box-shadow:0 3px #0003;animation:sticker-slap .36s var(--motion-pop) both}.sticker-chip:nth-child(3n+1){background:var(--c-sticker);transform:rotate(-4deg)}.sticker-chip:nth-child(3n+2){background:var(--c-tile-4);color:var(--c-on-tile-4);transform:rotate(3deg);animation-delay:80ms}.sticker-chip:nth-child(3n){background:var(--c-tile-1);color:var(--c-on-tile-1);transform:rotate(-2deg);animation-delay:.16s}@keyframes sticker-slap{0%{opacity:0;scale:1.8}to{opacity:1;scale:1}}.confetti{position:absolute;left:50%;bottom:40%;width:0;height:0;pointer-events:none;z-index:40}.confetti>i{position:absolute;width:9px;height:14px;border-radius:2px;animation:confetti-fly .6s cubic-bezier(.2,.7,.3,1) forwards}@keyframes confetti-fly{0%{transform:translate(0) rotate(0);opacity:1}to{transform:translate(var(--dx),var(--dy)) rotate(var(--rot));opacity:0}}@media(prefers-reduced-motion:reduce){html:not([data-motion=full]) .reveal-in,html:not([data-motion=full]) .sticker-chip{animation:none}}html[data-motion=reduce] .reveal-in,html[data-motion=reduce] .sticker-chip{animation:none}.footer{max-width:640px;width:100%;margin:0 auto;padding:var(--space-4);display:flex;flex-wrap:wrap;gap:var(--space-3);justify-content:space-between;align-items:center;border-top:1.5px solid var(--c-border)}.footer.with-tabs{padding-bottom:calc(var(--space-4) + 72px + env(safe-area-inset-bottom))}.footer select{min-height:36px}.row.wrap{flex-wrap:wrap}.legal article h1{font-size:1.75rem}.legal article h2{font-size:1.15rem;margin-top:var(--space-4)}.legal article ul{padding-left:1.25rem;margin:0}.legal article li{margin-bottom:var(--space-1)}mark.placeholder{background:var(--c-chip);color:var(--c-chip-text);border:1.5px dashed var(--c-warn);border-radius:6px;padding:0 6px;font-weight:700}.swatches{display:flex;flex-wrap:wrap;gap:var(--space-3)}.shop-item{display:grid;gap:var(--space-1);justify-items:center;min-width:96px}.swatch{width:56px;height:56px;border-radius:var(--r-md);border:3px solid var(--c-btn-border);background:var(--swatch)}.badge-glyph{display:inline-grid;place-items:center;width:56px;height:56px;border-radius:var(--r-pill);border:3px solid var(--c-btn-border);font-size:1.6rem;background:var(--c-surface-2)}.name-badge{margin-left:4px;font-size:.9em}.danger{border-color:var(--c-danger)}.btn.danger-btn{background:var(--c-danger);color:#fff;border-color:var(--c-danger)}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;background:#00000073;display:grid;place-items:center;padding:var(--space-4);overflow-y:auto}.sheet-card{width:100%;max-width:480px;background:var(--c-surface)}textarea{width:100%;font:inherit;color:inherit;background:var(--c-surface);border:1.5px solid var(--c-border);border-radius:var(--r-sm);padding:var(--space-3)}.rate{display:inline-flex;gap:var(--space-2);align-items:center}.rate .btn{min-height:36px;padding:0 var(--space-3)}.ask{position:absolute;left:50%;transform:translate(-50%);bottom:168px;z-index:30;max-width:min(92vw,520px);background:var(--c-surface);color:var(--c-text);border:var(--border-w) solid var(--c-btn-border);border-radius:var(--r-md);padding:var(--space-3) var(--space-4);box-shadow:4px 4px 0 var(--c-shadow)}.ask b{display:block}.admin{display:grid;grid-template-columns:220px minmax(0,1fr);min-height:100dvh}.admin>*{min-width:0}.admin-main textarea,.admin-main input,.admin-main select{max-width:100%}.admin-nav{border-right:1.5px solid var(--c-border);padding:var(--space-4);background:var(--c-surface)}.admin-nav a{display:block;padding:var(--space-2) var(--space-3);border-radius:var(--r-sm);text-decoration:none;color:var(--c-text);font-weight:700}.admin-nav a[aria-current=page]{background:var(--c-chip);color:var(--c-chip-text)}.admin-main{padding:var(--space-4);min-width:0}.admin-menu{display:none}.table-wrap{position:relative;overflow-x:auto;border:1.5px solid var(--c-border);border-radius:var(--r-sm)}table.grid{border-collapse:collapse;width:100%;font-size:.875rem}table.grid th,table.grid td{text-align:left;vertical-align:top;padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--c-border)}table.grid th{background:var(--c-surface-2);white-space:nowrap}.miss{color:var(--c-danger);font-weight:700}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--space-3)}.stat b{display:block;font-size:1.6rem}pre.preview{white-space:pre-wrap;max-height:260px;overflow:auto;background:var(--c-surface-2);padding:var(--space-3);border-radius:var(--r-sm)}@media(max-width:760px){.admin{grid-template-columns:minmax(0,1fr)}.admin-nav{display:none;border-right:0;border-bottom:1.5px solid var(--c-border)}.admin-nav.open{display:block}.admin-menu{display:inline-flex;margin:var(--space-3) var(--space-4) 0}}.avatar{display:inline-grid;place-items:center;border-radius:var(--r-pill);border:2px solid var(--c-btn-border);line-height:1;flex:none;font-style:normal;-webkit-user-select:none;user-select:none}.toasts{position:fixed;left:50%;transform:translate(-50%);bottom:calc(80px + env(safe-area-inset-bottom));z-index:90;display:grid;gap:var(--space-2);width:min(92vw,420px);pointer-events:none}.toast{margin:0;padding:var(--space-3) var(--space-4);border-radius:var(--r-sm);background:var(--c-primary);color:var(--c-on-primary);font-weight:700;box-shadow:var(--shadow-2);animation:reveal-pop .22s var(--motion-pop) both}.toast.error{background:var(--c-danger);color:var(--c-bg)}.skeleton{display:grid;gap:var(--space-2)}.skeleton>i{display:block;border-radius:var(--r-sm);background:linear-gradient(90deg,var(--c-surface-2) 0%,var(--c-border) 50%,var(--c-surface-2) 100%);background-size:200% 100%;animation:skeleton 1.4s linear infinite}@keyframes skeleton{to{background-position:-200% 0}}.empty{padding:var(--space-4);text-align:center;border:1.5px dashed var(--c-border);border-radius:var(--r-md);margin:0}.topbar .bell{position:relative}.bell-btn{position:relative;min-width:44px;min-height:44px;padding:0 var(--space-2);border-radius:var(--r-pill);background:transparent;border:0;cursor:pointer;font-size:1.3rem;color:var(--c-text)}.bell-count{position:absolute;top:2px;right:0;min-width:20px;height:20px;padding:0 5px;border-radius:var(--r-pill);background:var(--c-danger);color:var(--c-bg);font:800 .75rem/20px var(--font-body);text-align:center}.bell-panel{position:fixed;top:56px;right:var(--space-3);left:var(--space-3);max-width:420px;margin-left:auto;max-height:min(70dvh,560px);overflow-y:auto;z-index:70;padding:var(--space-3)}.bell-day{margin:var(--space-3) 0 var(--space-1);font:800 .8rem var(--font-body);text-transform:uppercase;letter-spacing:.04em;color:var(--c-text-muted)}.bell-item{display:block;width:100%;text-align:left;padding:var(--space-3);border-radius:var(--r-sm);border:1.5px solid transparent;background:transparent;color:inherit;font:inherit;cursor:pointer}.bell-item:hover{background:var(--c-surface-2)}.bell-item.unread{background:var(--c-chip);color:var(--c-chip-text)}.bell-item b{display:block}.maint{background:var(--c-hot);color:var(--c-on-hot);text-align:center;padding:var(--space-2) var(--space-4);font-weight:700;border-bottom:var(--border-w) solid var(--c-btn-border)}.settings-nav{display:flex;gap:var(--space-2);overflow-x:auto;padding-bottom:var(--space-1)}.settings-nav a{white-space:nowrap;padding:var(--space-1) var(--space-3);border-radius:var(--r-pill);background:var(--c-chip);color:var(--c-chip-text);text-decoration:none;font-weight:700;font-size:.875rem}.settings-section{scroll-margin-top:72px}.emoji-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(44px,1fr));gap:var(--space-2)}.emoji-grid button{min-height:44px;font-size:1.4rem;border-radius:var(--r-sm);border:2px solid var(--c-border);background:var(--c-surface);cursor:pointer}.emoji-grid button[aria-pressed=true]{border-color:var(--c-btn-border);background:var(--c-chip)}.color-row{display:flex;flex-wrap:wrap;gap:var(--space-2)}.color-row button{width:44px;height:44px;border-radius:var(--r-pill);border:3px solid var(--c-border);cursor:pointer}.color-row button[aria-pressed=true]{border-color:var(--c-btn-border);box-shadow:0 0 0 3px var(--c-focus)}table.matrix{width:100%;border-collapse:collapse;font-size:.875rem}table.matrix th,table.matrix td{padding:var(--space-2);border-bottom:1px solid var(--c-border);text-align:center;vertical-align:middle}table.matrix th:first-child,table.matrix td:first-child{text-align:left}table.matrix tr.group-row th{text-align:left;background:var(--c-surface-2);font-family:var(--font-display)}table.matrix input[type=checkbox],.row input[type=checkbox]{width:22px;height:22px;accent-color:var(--c-primary)}.switch-row{display:flex;align-items:center;gap:var(--space-3);min-height:44px}.member-menu{display:inline-flex;gap:var(--space-2)}.kbd{font:700 .75rem monospace;padding:1px 6px;border:1.5px solid var(--c-border);border-bottom-width:3px;border-radius:6px;background:var(--c-surface-2)}tr.kbd-focus{outline:3px solid var(--c-focus);outline-offset:-3px;background:var(--c-surface-2)}html[data-motion=reduce] *,html[data-motion=reduce] *:before,html[data-motion=reduce] *:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}.admin-top{position:sticky;top:0;z-index:30;display:none;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-2) var(--space-4);background:var(--c-surface);border-bottom:1.5px solid var(--c-border)}@media(max-width:760px){.admin-top{display:flex}.admin-menu{margin:0}}.theme-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:var(--space-3)}.token-row{display:grid;grid-template-columns:minmax(110px,1fr) 44px minmax(90px,1.4fr);gap:var(--space-2);align-items:center;margin-bottom:var(--space-1);font-size:.8125rem}.token-row input[type=color]{width:44px;height:36px;padding:0;border:1.5px solid var(--c-border);border-radius:6px;background:transparent}.token-row input[type=text]{min-height:36px;font-size:.8125rem}.preview-pane{border:2px solid var(--c-border);border-radius:var(--r-md);padding:var(--space-3);display:grid;gap:var(--space-3);background:var(--pv-bg);color:var(--pv-text);font-family:var(--pv-font-body)}.preview-pane h4{margin:0;font-family:var(--pv-font-display);font-weight:var(--pv-display-weight);letter-spacing:var(--pv-display-tracking)}.pv-card{background:var(--pv-surface);border:1.5px solid var(--pv-border);border-radius:var(--pv-r-md);padding:var(--space-3);box-shadow:var(--pv-shadow-1)}.pv-btn{display:inline-block;padding:8px 16px;border-radius:var(--pv-r-btn);background:var(--pv-primary);color:var(--pv-on-primary);border:var(--pv-border-w) solid var(--pv-btn-border);font-weight:700;box-shadow:var(--pv-btn-shadow)}.pv-tile{width:120px;height:90px;border-radius:var(--pv-r-md);background:var(--pv-tile);color:var(--pv-on-tile);display:grid;place-items:center;font-weight:800;outline:3px solid var(--pv-ring);outline-offset:2px}.pv-muted{color:var(--pv-muted)}.app>.topbar{z-index:60}.module-section{font:800 .8125rem var(--font-body);letter-spacing:.06em;text-transform:uppercase;color:var(--c-text-muted);margin:var(--space-2) 0 0}.goal-mine{padding:var(--space-3);border-radius:var(--r-md);background:var(--c-surface-2);border:1.5px solid var(--c-border)}.goal-options{max-height:50vh;overflow-y:auto}.goal-options>li{border-bottom:0!important;padding:3px 0!important}.btn.goal-option{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);text-align:left;height:auto;min-height:48px;padding-top:var(--space-2);padding-bottom:var(--space-2)}.recipe-options>li{display:grid;gap:var(--space-2);justify-items:start}.recipe-options>li .row.between{width:100%}.checklist>li{padding:0!important;border-bottom:0!important}.checklist .check{display:flex;gap:var(--space-3);align-items:flex-start;min-height:44px;padding:8px 0;cursor:pointer}.checklist .check input[type=checkbox]{width:24px;height:24px;accent-color:var(--c-primary);flex:none;margin-top:0}.checklist .check input:checked+span{text-decoration:line-through;opacity:.65}.call{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;background:var(--c-video-bg);color:var(--c-video-text);z-index:30}.call-top{display:flex;justify-content:space-between;align-items:center;padding:var(--space-2) var(--space-3);gap:var(--space-2)}.call-top .chip{background:#ffffff24;color:var(--c-video-text)}.call-stage{flex:1;min-height:0;display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-2) var(--space-3)}.call-main{flex:1;min-height:0;display:grid;gap:var(--space-3);grid-template-columns:repeat(2,1fr);grid-auto-rows:1fr}.call-stage.staged .call-main{display:flex}.call-stage.staged .tile.stage{flex:1;min-width:0}.call-strip{display:flex;gap:var(--space-3);height:84px;padding:4px;overflow-x:auto;flex:none}.call-strip .tile{flex:0 0 76px;height:76px}.call-main:has(.tile:only-child){grid-template-columns:1fr}.call-main.n3,.call-main.n4{grid-template-columns:repeat(2,1fr)}.call-main.n5,.call-main.n6,.call-main.n7,.call-main.n8,.call-main.n9{grid-template-columns:repeat(3,1fr)}.call-main.nmany{grid-template-columns:repeat(4,1fr)}@media(min-width:800px){.call-main{grid-template-columns:repeat(3,1fr)}}.tile{--lvl: 0;--rot: 3deg;--tile-bg: var(--c-tile-1);--tile-fg: var(--c-on-tile-1);position:relative;border-radius:var(--r-md);overflow:hidden;background:var(--tile-bg);min-height:0;min-width:0;outline:3px solid transparent;outline-offset:2px;will-change:transform}.tile video{width:100%;height:100%;object-fit:cover;display:block}.tile .initials{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;font:var(--display-weight) 2rem var(--font-display);color:var(--tile-fg)}.tile .name{position:absolute;left:6px;bottom:6px;max-width:calc(100% - 12px);padding:1px 8px;border-radius:var(--r-pill);background:var(--c-overlay);color:var(--c-video-text);font-size:.75rem;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tile .muted-icon{position:absolute;right:6px;top:6px;font-size:.75rem;background:var(--c-overlay);border-radius:var(--r-pill);padding:1px 6px}.tile .sticker{position:absolute;top:10px;left:10px;z-index:2;font-size:.95rem;padding:7px 13px;animation:sticker-slap .36s var(--motion-pop) both}.tile[data-speaking=true]{outline-color:var(--c-ring)}.tile[data-frame=true]{border:4px solid var(--frame)}html[data-speak=polaroid] .tile[data-frame=true]{border-color:var(--frame)}.tile .name .name-badge{margin-left:4px}html[data-speak=tilt] .tile{transform:scale(calc(1 + var(--lvl) * var(--ring-scale-max))) rotate(calc(var(--lvl) * var(--rot)))}@property --ang{syntax: "<angle>"; inherits: false; initial-value: 0deg;}html[data-speak=flow] .tile{overflow:visible;outline-color:transparent;transform:scale(calc(1 + var(--lvl) * var(--ring-scale-max)))}html[data-speak=flow] .tile>:is(video,.initials){border-radius:inherit}html[data-speak=flow] .tile video{border-radius:var(--r-md)}html[data-speak=flow] .tile:before{content:"";position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px;border-radius:calc(var(--r-md) + 3px);padding:3px;pointer-events:none;background:conic-gradient(from var(--ang),var(--c-ring),var(--c-ring-2),var(--c-ring-3),var(--c-ring));-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:var(--lvl);animation:ring-turn 3s linear infinite}html[data-speak=flow] .tile:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;pointer-events:none;box-shadow:0 0 calc(var(--lvl) * var(--ring-glow-max)) calc(var(--lvl) * 4px) var(--c-ring-glow)}@keyframes ring-turn{to{--ang: 360deg}}html[data-speak=polaroid] .tile{border:5px solid #fff;border-bottom-width:12px;border-radius:3px;outline-color:transparent;transform:translateY(calc(var(--lvl) * -5px)) rotate(calc(var(--lvl) * var(--rot))) scale(calc(1 + var(--lvl) * var(--ring-scale-max)));box-shadow:0 4px 12px #00000059}html[data-speak=polaroid] .tile[data-speaking=true]:after{content:"♪";position:absolute;right:6px;top:2px;font:600 1.4rem Caveat,cursive;color:var(--c-ring);text-shadow:0 1px 2px rgba(0,0,0,.6)}.tile.stage{outline:3px solid var(--c-sticker)}html[data-speak=flow] .tile.stage{outline:0}@media(prefers-reduced-motion:reduce){html:not([data-motion=full]) .tile{transform:none!important;will-change:auto}html:not([data-motion=full]) .tile:before{animation:none;opacity:0}html:not([data-motion=full]) .tile:after{box-shadow:none}html:not([data-motion=full]) .tile[data-speaking=true]{outline:3px solid var(--c-ring);outline-offset:-3px}html:not([data-motion=full]) .tile .sticker{animation:none}}html[data-motion=reduce] .tile{transform:none!important;will-change:auto}html[data-motion=reduce] .tile:before{animation:none;opacity:0}html[data-motion=reduce] .tile:after{box-shadow:none}html[data-motion=reduce] .tile[data-speaking=true]{outline:3px solid var(--c-ring);outline-offset:-3px}html[data-motion=reduce] .tile .sticker{animation:none}.sheet{flex:none;max-height:42vh;overflow-y:auto;background:var(--c-surface);color:var(--c-text);border:var(--border-w) solid var(--c-btn-border);border-radius:var(--r-lg);margin:0 var(--space-2);padding:var(--space-3) var(--space-4);box-shadow:0 5px 0 var(--c-shadow)}.sheet h2{font-size:1.1rem;margin-bottom:var(--space-2)}.sheet-handle{display:block;width:100%;background:none;border:0;color:var(--c-text-muted);min-height:24px;cursor:pointer;font-size:.75rem;font-weight:700}.sheet.collapsed .sheet-body{display:none}.reactions{display:flex;gap:var(--space-2);justify-content:center;padding:var(--space-3) 0 var(--space-1)}.reactions .btn{min-width:56px;min-height:44px;padding:0 var(--space-3);font-size:1.35rem;border-radius:var(--r-pill);background:var(--c-surface);box-shadow:0 3px 0 var(--c-shadow)}.reactions .btn:active{box-shadow:0 1px 0 var(--c-shadow);transform:translateY(2px) scale(.96)}.call-bar{flex:none;display:flex;justify-content:center;gap:var(--space-3);padding:var(--space-3) var(--space-3) calc(var(--space-3) + env(safe-area-inset-bottom));background:var(--c-video-bg)}.call-bar .btn{min-width:52px}.grab{position:absolute;top:52px;right:8px;z-index:5;max-width:190px;background:var(--c-sticker);color:var(--c-on-sticker);border-radius:var(--r-md);padding:var(--space-2) var(--space-3);font-size:.8125rem;font-weight:600;transform:rotate(2deg);box-shadow:0 4px #00000040}.grab b{display:block;font-size:1.5rem;font-family:var(--font-display);font-weight:var(--display-weight)}.preview{max-width:480px;margin:0 auto;padding:var(--space-4)}.preview video{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--r-md);background:var(--c-tile-1)}.confirm-bar{background:var(--c-surface);color:var(--c-text);padding:var(--space-3) var(--space-4)}.call .muted{color:var(--c-text-muted)}.reaction-layer{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden;z-index:6}.reaction-float{position:absolute;bottom:160px;font-size:2.4rem;filter:drop-shadow(0 3px 0 rgba(0,0,0,.25));animation:reaction-rise 2.2s ease-out forwards}@keyframes reaction-rise{0%{transform:translateY(0) scale(.6) rotate(-8deg);opacity:0}12%{transform:translateY(-30px) scale(1.25) rotate(6deg);opacity:1}45%{transform:translateY(-110px) translate(10px) scale(1) rotate(-5deg);opacity:1}to{transform:translateY(-230px) translate(-8px) scale(1) rotate(4deg);opacity:0}}@keyframes reaction-fade{0%{opacity:1}to{opacity:0}}@media(prefers-reduced-motion:reduce){html:not([data-motion=full]) .reaction-float{animation:reaction-fade 2.2s ease-out forwards}}html[data-motion=reduce] .reaction-float{animation:reaction-fade 2.2s ease-out forwards}.countdown{font-variant-numeric:tabular-nums}.tile .avatar-face{font-size:3.2rem}.tile .tile-report{position:absolute;top:8px;right:8px;z-index:3;width:36px;height:36px;border-radius:var(--r-pill);border:0;background:var(--c-overlay);color:var(--c-video-text);cursor:pointer;opacity:.8;font-size:1rem}.tile .tile-report:hover,.tile .tile-report:focus-visible{opacity:1}.call-bar{flex-wrap:wrap;gap:var(--space-2)}.call-bar .btn{min-height:44px;padding:0 var(--space-3);font-size:.9rem}.tile .tile-medal{position:absolute;right:6px;bottom:6px;z-index:2;font-size:.8125rem;font-weight:800;background:var(--c-overlay);color:var(--c-video-text);border-radius:var(--r-pill);padding:1px 7px}.game{display:block}.game-head{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-2)}.game-head h2{margin:0;flex:1 1 auto;font-size:1.05rem}.game-left{font:800 1.05rem var(--font-display);font-variant-numeric:tabular-nums;min-width:3ch;text-align:right}.game-left[data-urgent=true]{color:var(--c-danger)}.game-lead{margin:0 0 var(--space-2)}.game-big{font:var(--display-weight) 1.25rem/1.25 var(--font-display);letter-spacing:var(--display-tracking);margin:var(--space-1) 0 var(--space-3);overflow-wrap:anywhere}.game-word{font-size:1.6rem}.game-choices{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-2)}.game-choices .btn{flex:1 1 8rem}.game-choices .btn.game-num{flex:1 1 4rem;font-size:1.25rem}.game-choices .btn.game-side{flex:1 1 100%;justify-content:flex-start;text-align:left;min-height:52px;height:auto;padding-top:var(--space-2);padding-bottom:var(--space-2)}.game-order{display:flex;flex-wrap:wrap;gap:var(--space-1) var(--space-2);list-style:none;padding:0;margin:0 0 var(--space-2);font-size:.8125rem}.game-order li{padding:2px var(--space-2);border-radius:var(--r-pill);background:var(--c-surface-2);color:var(--c-text-muted)}.game-order li[aria-current=step]{background:var(--c-chip);color:var(--c-chip-text);font-weight:800}.game-order li[data-done=true]{opacity:.6}.game-ideas li{padding:2px 0}.game-confirm{background:var(--c-surface-2);border-radius:var(--r-md);padding:var(--space-2) var(--space-3);margin-bottom:var(--space-2)}.game-lines{margin:0 0 var(--space-3)}.game-lines li{padding:2px 0}.play-list{display:grid;gap:var(--space-2)}.play-item{display:flex;gap:var(--space-3);align-items:center;justify-content:space-between;padding:var(--space-3);border:1.5px solid var(--c-border);border-radius:var(--r-md)}.play-item[data-fits=false]{background:var(--c-surface-2)}.play-item>[role=alertdialog]{width:100%}.play-text{display:flex;flex-direction:column;gap:2px;min-width:0}.play-meta{gap:var(--space-1);flex-wrap:wrap;margin-top:2px}.play-reason{color:var(--c-danger);font-weight:700}.reaction-float.big{font-size:3.4rem}.celebrate{display:flex;flex-wrap:wrap;gap:var(--space-2)}.celebrate .btn{min-width:52px;font-size:1.4rem;padding:0 var(--space-3)}@media(min-width:800px){.game-choices .btn{flex:0 1 auto;min-width:8rem}}.play-menu,.play-menu h2,.play-menu b{color:var(--c-text)}.play-menu .muted{color:var(--c-text-muted)}.call-stage.drawing{gap:var(--space-2)}.draw-wrap{flex:1;min-height:0;min-width:0;display:flex;align-items:center;justify-content:center;container-type:size}.draw{width:100%;display:flex;flex-direction:column;align-items:center;gap:var(--space-2)}.draw-paper{position:relative;width:min(100cqw,calc((100cqh - 52px) * 4 / 3));aspect-ratio:4 / 3}.draw-paper canvas{width:100%;height:100%;display:block;background:#fff;border-radius:var(--r-md);border:var(--border-w) solid var(--c-btn-border);touch-action:none;user-select:none;-webkit-user-select:none;cursor:default}.draw-paper canvas[data-active=true]{cursor:crosshair}.draw-hint{position:absolute;inset:auto 0 8px 0;margin:0;text-align:center;color:#3a3a44;font-size:.8125rem;font-weight:700;pointer-events:none}.draw-tools{display:flex;gap:var(--space-2);align-items:center;justify-content:center;flex-wrap:wrap;min-height:44px}.draw-swatch{width:40px;height:40px;border-radius:50%;border:3px solid #fff;cursor:pointer;padding:0;box-shadow:0 2px #00000059}.draw-swatch[aria-pressed=true]{outline:3px solid var(--c-sticker);outline-offset:2px}.draw-tools .btn{min-height:40px}.call-stage.drawing .call-strip{height:84px}@media(min-width:800px){.call-stage.drawing{flex-direction:row}.call-stage.drawing .call-strip{flex-direction:column;width:100px;height:auto;overflow-x:hidden;overflow-y:auto}.call-stage.drawing .call-strip .tile{flex:0 0 88px;height:88px;width:88px}}.ww-status{display:flex;flex-wrap:wrap;align-items:center;gap:4px var(--space-2);margin-bottom:var(--space-2)}.ww-status .chip.ww-out{opacity:.7}.ww-card{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:var(--space-3) var(--space-4);margin-bottom:var(--space-2);border-radius:var(--r-md);background:var(--c-surface-2);border:var(--border-w) solid var(--c-btn-border);border-left-width:10px;animation:reveal-pop .42s var(--motion-pop) both}.ww-card[data-role=werewolf]{border-left-color:var(--c-danger)}.ww-card[data-role=seer]{border-left-color:var(--c-link)}.ww-card[data-role=doctor]{border-left-color:var(--c-primary)}.ww-card[data-role=villager]{border-left-color:var(--c-sticker)}.ww-card .game-big{margin:0}.ww-icon{font-size:2.4rem;line-height:1}.call-stage.night{background:radial-gradient(120% 90% at 50% 0%,#283e9659,#080c288c);border-radius:var(--r-lg);transition:background .6s}.tile-moon{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(180deg,#243a9666,#080e3c8c);mix-blend-mode:multiply;animation:moon-in .7s ease-out both}@keyframes moon-in{0%{opacity:0}to{opacity:1}}.tile[data-out=true]{filter:grayscale(1) brightness(.8);opacity:.5}@media(prefers-reduced-motion:reduce){html:not([data-motion=full]) .tile-moon,html:not([data-motion=full]) .ww-card{animation:none}}html[data-motion=reduce] .tile-moon,html[data-motion=reduce] .ww-card{animation:none}.btn.game-side[data-state=right]{background:var(--c-primary);color:var(--c-on-primary)}.btn.game-side[data-state=right]:after{content:" ✔"}.btn.game-side[data-state=wrong]{outline:2px dashed var(--c-danger);outline-offset:-2px}.btn.game-side[data-state=wrong]:after{content:" ✘"}.btn.game-side:disabled[data-state]{opacity:1}.call-top{flex-wrap:wrap}.call-top .theme-chip,.call-top .birthday-chip{max-width:100%;white-space:normal;text-align:left}.step-list{display:grid;gap:var(--space-2);margin-bottom:var(--space-2)}ul.plain.step-list>li.step-row{display:flex;flex-direction:column;gap:4px;padding:var(--space-2) var(--space-3);border:1.5px solid var(--c-border);border-radius:var(--r-md);background:var(--c-surface-2)}.step-row[data-mine=true]{border-color:var(--c-btn-border);background:var(--c-surface)}.stepper{display:flex;align-items:center;gap:var(--space-3);margin:var(--space-2) 0}.stepper .btn{min-width:52px;min-height:48px;font-size:1.5rem}.stepper-value{min-width:4ch;text-align:center;font:var(--display-weight) 2rem var(--font-display);font-variant-numeric:tabular-nums}.capsule-list{display:grid;gap:var(--space-3);margin:var(--space-2) 0;padding:0;list-style:none}.capsule-answers{margin:4px 0}.capsule-answers>li{padding:2px 0!important;border-bottom:0!important}.throwback{flex:none;max-height:40vh;overflow-y:auto;margin:0 var(--space-3) var(--space-2);padding:var(--space-3) var(--space-4);background:var(--c-surface);color:var(--c-text);border:var(--border-w) solid var(--c-btn-border);border-radius:var(--r-lg);box-shadow:0 5px 0 var(--c-shadow);animation:reveal-pop .38s var(--motion-pop) both}.throwback h2{margin:0;font-size:1.05rem}.throwback .muted{color:var(--c-text-muted)}.throwback-list{display:grid;grid-template-columns:max-content 1fr;gap:2px var(--space-3);margin:var(--space-2) 0 0}.throwback-list dt{font-weight:800;font-size:.8125rem;color:var(--c-text-muted)}.throwback-list dd{margin:0}@media(max-width:520px){.throwback-list{grid-template-columns:1fr}.throwback-list dd:empty{display:none}.throwback-list dt{margin-top:var(--space-1)}}@media(min-width:800px){.throwback{max-width:640px;align-self:center;width:calc(100% - 2 * var(--space-3))}}.tile[data-birthday=true]{overflow:visible}.tile[data-birthday=true]:before{content:"";position:absolute;top:-5px;right:-5px;bottom:-5px;left:-5px;border-radius:calc(var(--r-md) + 4px);padding:4px;pointer-events:none;z-index:1;background:conic-gradient(from var(--ang, 0deg),#ff5d8f,#ffc13b,#7be0a3,#5cc8ff,#b78bff,#ff5d8f);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:1;animation:ring-turn 4s linear infinite}.tile[data-birthday=true]>:is(video,.initials){border-radius:var(--r-md)}.tile .tile-cake{position:absolute;top:6px;left:6px;z-index:3;font-size:1.25rem;filter:drop-shadow(0 2px 0 rgba(0,0,0,.35));animation:cake-bob 1.6s ease-in-out infinite}.tile .tile-theme{position:absolute;top:6px;right:6px;z-index:3;font-size:1.2rem;background:var(--c-overlay);border-radius:var(--r-pill);padding:0 6px}.tile .tile-report~.tile-theme{right:50px}@keyframes cake-bob{0%,to{transform:translateY(0) rotate(-6deg)}50%{transform:translateY(-3px) rotate(6deg)}}.reactions.cheers{padding-top:0}.reactions.cheers .btn{background:var(--c-chip);color:var(--c-chip-text)}@media(prefers-reduced-motion:reduce){html:not([data-motion=full]) .tile[data-birthday=true]:before{animation:none;opacity:1}html:not([data-motion=full]) .tile .tile-cake,html:not([data-motion=full]) .throwback{animation:none}}html[data-motion=reduce] .tile[data-birthday=true]:before{animation:none;opacity:1}html[data-motion=reduce] .tile .tile-cake,html[data-motion=reduce] .throwback{animation:none}
