:root,[data-vibe=cozy]:not(.high-contrast){--bg: #fdf7f2;--bg-2: #f4eef9;--card: #ffffff;--ink: #3b3a4a;--muted: #7a7788;--line: #ece6f0;--accent: #ff8fab;--accent-deep: #ff6f9c;--accent-2: #8ed0c4;--accent-3: #ffd98e;--danger: #ff6b6b;--focus: #6c5ce7;--radius: 18px;--radius-sm: 12px;--shadow: 0 10px 30px rgba(90, 70, 120, .14);--shadow-sm: 0 3px 10px rgba(90, 70, 120, .1);--r0: #ffd6e0;--r1: #d6ecff;--r2: #e0f7d9;--r3: #fff3c4;--r4: #e9dcff;--r5: #ffe1c9;--r6: #d2f4f0;--r7: #f9d5f2;--r8: #eceacb;--r9: #dbe4ff;--cell-border: rgba(59, 58, 74, .12);--region-border: #3b3a4a;--font: ui-rounded, "SF Pro Rounded", "Nunito", "Segoe UI Variable Text", "Segoe UI", system-ui, -apple-system, sans-serif;--font-display: ui-rounded, "SF Pro Rounded", "Nunito", "Segoe UI Variable Text", "Segoe UI", system-ui, -apple-system, sans-serif;--font-body: ui-rounded, "SF Pro Rounded", "Nunito", "Segoe UI Variable Text", "Segoe UI", system-ui, -apple-system, sans-serif;--label-ink: rgba(59, 58, 74, .6);--selected-bg: #fff0f5;--chip-bg: #ffd98e;--chip-ink: #5a4300;--btn-primary: linear-gradient(135deg, #ff8fab, #ff6f9c);--btn-primary-ink: #fff;--logo-gradient: linear-gradient(90deg, #ff6f9c, #8e7cf0);--overlay-bg: radial-gradient(900px 500px at 50% -100px, #ffe3ec, #efe7ff 60%, #e3f6f2);--h-transform: none;--h-spacing: normal;--h-weight: 800}.high-contrast{--r0: #ffb3c6;--r1: #a8d4ff;--r2: #b8ecac;--r3: #ffe680;--r4: #cdb5ff;--r5: #ffc49a;--r6: #9fe6de;--r7: #f5b0e6;--r8: #dcd9a0;--r9: #b7c6ff;--cell-border: rgba(0, 0, 0, .35);--region-border: #000;--ink: #111;--muted: #444;--line: #d8d8e0}:root.dark[data-vibe=cozy]:not(.high-contrast){color-scheme:dark;--label-ink: rgba(255, 255, 255, .7);--selected-bg: #3a2c3f;--overlay-bg: radial-gradient(900px 500px at 50% -100px, #4a2b4a, #2b2740 60%, #1e2b33);--bg: #1e1b2b;--bg-2: #272238;--card: #2c2741;--ink: #f1ecf7;--muted: #aea8c2;--line: #3b3652;--shadow: 0 10px 30px rgba(0, 0, 0, .35);--shadow-sm: 0 3px 10px rgba(0, 0, 0, .3);--cell-border: rgba(255, 255, 255, .12);--region-border: #f1ecf7;--r0: #704556;--r1: #3f5a78;--r2: #466b4a;--r3: #726a3b;--r4: #5a4a7c;--r5: #7a5a44;--r6: #3f6a66;--r7: #6e4a68;--r8: #66654a;--r9: #4a5480}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;font-family:var(--font-body);color:var(--ink);background:radial-gradient(1200px 600px at 50% -200px,var(--bg-2),var(--bg));min-height:100vh;min-height:100dvh;line-height:1.45;-webkit-tap-highlight-color:transparent}body.overlay-open{overflow:hidden}#app{min-height:100dvh}.screen{max-width:560px;margin:0 auto;padding-block:max(12px,env(safe-area-inset-top,0px)) max(24px,env(safe-area-inset-bottom,0px));padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}.screen[inert]{filter:blur(2px)}h1,h2,h3{margin:0;line-height:1.2;text-transform:var(--h-transform);letter-spacing:var(--h-spacing);font-weight:var(--h-weight)}h1,h2,h3,.p-title,.logo,.oops-title,.win-title,.stat-val,.tile-val,.step-count,.math-problem,.vibe-name{font-family:var(--font-display)}p{margin:0}.muted{color:var(--muted)}.small{font-size:.85rem}.center{text-align:center;align-items:center}.stack{display:flex;flex-direction:column;gap:14px}.pad{padding-top:8px}.row{display:flex;gap:10px;align-items:center}.row.wrap{flex-wrap:wrap;justify-content:center}.grow{flex:1;min-width:0}.card{background:var(--card);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow-sm)}.card-title{font-size:1.05rem}.page-header{display:flex;align-items:center;gap:10px}.page-header h1{font-size:1.6rem}.btn{font:inherit;font-weight:700;border:0;border-radius:999px;padding:12px 20px;background:var(--line);color:var(--ink);cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,background .2s;min-height:44px;touch-action:manipulation}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.btn-primary{background:var(--btn-primary);color:var(--btn-primary-ink);box-shadow:var(--shadow-sm)}.btn-secondary{background:var(--accent-2);color:#123f38}.btn-ghost{background:transparent;color:var(--muted);text-decoration:underline;font-weight:600}.btn-danger{background:var(--danger);color:#fff}.btn-big{font-size:1.1rem;padding:16px 24px}.btn-small{padding:8px 14px;min-height:36px;font-size:.9rem}.btn-icon{width:44px;height:44px;padding:0;border-radius:50%;display:inline-grid;place-items:center;font-size:1.2rem;flex-shrink:0}.btn-tool{background:var(--card);box-shadow:var(--shadow-sm);padding:10px 14px;font-size:.95rem}.btn-tool.is-active{background:var(--accent-3);color:#5a4300}.btn-option{background:var(--card);border:2px solid var(--line);text-align:left;border-radius:var(--radius-sm);width:100%;font-weight:600}.btn-option.is-correct{background:#dff7e4;border-color:#4caf7d;color:#1d5a37}.btn-option.is-wrong{background:#ffe3e3;border-color:var(--danger);color:#7a2626;opacity:.75}.btn-option.is-selected{border-color:var(--accent)}.input{font:inherit;padding:12px 14px;border-radius:var(--radius-sm);border:2px solid var(--line);background:var(--card);color:var(--ink);width:100%;min-height:44px}.input-big{font-size:1.4rem;font-weight:700;text-align:center}.select{font:inherit;padding:10px 12px;border-radius:var(--radius-sm);border:2px solid var(--line);background:var(--card);color:var(--ink);max-width:55%}.file{font:inherit;max-width:100%}label.grow{display:flex;flex-direction:column;gap:4px}.hero{text-align:center;padding-top:10px}.hero-piece{width:120px;height:120px;margin:0 auto 6px}.hero-piece .animal,.oops-piece .animal,.win-piece .animal,.piece-art .animal,.preview-piece.svg .animal,.collection-preview .animal{width:100%;height:100%;display:block}.hero-piece .animal{filter:drop-shadow(0 8px 10px rgba(90,70,120,.18))}.logo{font-size:2.3rem;letter-spacing:-.02em;background:var(--logo-gradient);-webkit-background-clip:text;background-clip:text;color:transparent}.segmented{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;background:var(--line);padding:6px;border-radius:16px}.seg-btn{font:inherit;border:0;background:transparent;border-radius:12px;padding:10px 6px;cursor:pointer;display:flex;flex-direction:column;align-items:center;color:var(--muted);font-weight:700;min-height:44px}.seg-btn.is-active{background:var(--card);color:var(--ink);box-shadow:var(--shadow-sm)}.seg-sub{font-size:.75rem;font-weight:600}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.punish-picks{display:grid;gap:8px}.pick{display:flex;gap:10px;align-items:center;text-align:left;font:inherit;border:2px solid var(--line);background:var(--card);border-radius:var(--radius-sm);padding:10px 12px;cursor:pointer;color:var(--ink);min-height:44px}.pick.is-on{border-color:var(--accent);background:var(--selected-bg)}.pick-icon{font-size:1.4rem;width:32px;text-align:center;flex-shrink:0}.pick-text{display:flex;flex-direction:column;flex:1;min-width:0}.pick-title{font-weight:800}.pick-check{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-weight:900;color:transparent;border:2px solid var(--line);flex-shrink:0}.pick.is-on .pick-check{background:var(--accent);border-color:var(--accent);color:#fff}.oops-inline{text-align:center;font-weight:600}.nav-btn{font:inherit;font-weight:700;border:0;background:var(--card);border-radius:var(--radius);padding:14px;display:flex;flex-direction:column;align-items:center;gap:6px;box-shadow:var(--shadow-sm);cursor:pointer;color:var(--ink);min-height:44px}.nav-icon{font-size:1.6rem}.game-header{display:flex;align-items:center;gap:10px}.game-stats{display:flex;gap:8px;flex:1;justify-content:space-around;background:var(--card);border-radius:999px;padding:6px 12px;box-shadow:var(--shadow-sm)}.stat{display:flex;flex-direction:column;align-items:center;line-height:1.1}.stat-label{font-size:.65rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:700}.stat-val{font-weight:800;font-variant-numeric:tabular-nums}.board{display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr));grid-template-rows:repeat(var(--n),minmax(0,1fr));width:min(100%,68vh);aspect-ratio:1;margin:0 auto;border:3px solid var(--region-border);border-radius:12px;overflow:hidden;background:var(--region-border);user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;touch-action:none}.cell{position:relative;border:0;padding:0;margin:0;font:inherit;background:var(--r0);cursor:pointer;display:grid;place-items:center;box-shadow:inset 0 0 0 1px var(--cell-border);touch-action:none;color:var(--ink);transition:background .2s}.cell.swept:after{content:"";position:absolute;inset:0;background:var(--accent);opacity:0;pointer-events:none;animation:sweepFlash .45s ease-out both}@keyframes sweepFlash{0%{opacity:.45}to{opacity:0}}.cell.swept .mark{animation:markPop .3s cubic-bezier(.2,.9,.3,1.3) both}@keyframes markPop{0%{transform:scale(.3);opacity:0}to{transform:none;opacity:1}}.reduced-motion .cell.swept:after{animation-duration:.2s}.reduced-motion .cell.swept .mark{animation:none}.cell.region-1{background:var(--r1)}.cell.region-2{background:var(--r2)}.cell.region-3{background:var(--r3)}.cell.region-4{background:var(--r4)}.cell.region-5{background:var(--r5)}.cell.region-6{background:var(--r6)}.cell.region-7{background:var(--r7)}.cell.region-8{background:var(--r8)}.cell.region-9{background:var(--r9)}.cell.b-t{border-top:2.5px solid var(--region-border)}.cell.b-l{border-left:2.5px solid var(--region-border)}.cell-content{position:absolute;inset:9%;display:grid;place-items:center}.cell .animal{width:100%;height:100%;display:block}.animal-photo{object-fit:cover;border-radius:22%}.mark{font-size:clamp(14px,3.4vmin,28px);color:var(--muted);font-weight:800;line-height:1}.region-label{position:absolute;top:2px;left:4px;font-size:clamp(8px,1.9vmin,12px);font-weight:800;color:var(--label-ink);display:none;line-height:1;z-index:1}.region-labels .region-label{display:block}.high-contrast .region-label{color:#000}.cell.is-mistake{background:#ffb4b4!important}.cell.is-mistake .animal{filter:saturate(.5)}.board.is-locked .cell{cursor:not-allowed}.hint-line{text-align:center}.toolbar{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}.win-panel{margin-top:6px}.win-piece{width:90px;height:90px}.win-title{font-size:1.8rem;color:var(--accent-deep)}.confetti{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:40}@keyframes pop{0%{transform:scale(.3)}70%{transform:scale(1.12)}to{transform:scale(1)}}.animal.pop{animation:pop .28s cubic-bezier(.2,.9,.3,1.4) both}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-5px) rotate(-3deg)}40%{transform:translate(5px) rotate(3deg)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}.shake{animation:shake .45s ease both}@keyframes bounce{0%,to{transform:translateY(0)}40%{transform:translateY(-18%) scale(1.08)}60%{transform:translateY(0) scale(.96)}}.bounce{animation:bounce .8s ease both}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.float{animation:float 3s ease-in-out infinite}@keyframes wobble{0%,to{transform:rotate(0)}25%{transform:rotate(-8deg)}75%{transform:rotate(8deg)}}.wobble{animation:wobble 1.2s ease-in-out infinite}@keyframes breathe{0%,to{transform:scale(1);opacity:.8}50%{transform:scale(1.12);opacity:1}}.breathe{font-size:4rem;animation:breathe 2.4s ease-in-out infinite}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scarePop{0%{transform:scale(0) rotate(-10deg);opacity:0}60%{transform:scale(1.15) rotate(6deg);opacity:1}80%{transform:scale(.95) rotate(-3deg)}to{transform:scale(1) rotate(0)}}.reduced-motion *,.reduced-motion *:before,.reduced-motion *:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.overlay{position:fixed;inset:0;z-index:50;overflow-y:auto;background:var(--overlay-bg);padding-block:max(16px,env(safe-area-inset-top,0px)) max(24px,env(safe-area-inset-bottom,0px));padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}.overlay[hidden]{display:none}.overlay-inner{max-width:560px;margin:0 auto;display:flex;flex-direction:column;gap:16px}.oops{text-align:center}.oops-piece{width:110px;height:110px;margin:0 auto 8px}.oops-title{font-size:2.4rem;color:var(--accent-deep)}.oops-text{font-size:1.05rem;font-weight:600}.punish-list{display:grid;gap:10px}.punish-card{display:flex;gap:14px;align-items:center;text-align:left;font:inherit;border:2px solid transparent;background:var(--card);border-radius:var(--radius);padding:14px;cursor:pointer;box-shadow:var(--shadow-sm);color:var(--ink);transition:transform .12s,border-color .15s}.punish-card:hover{border-color:var(--accent)}.punish-card:active{transform:scale(.98)}.punish-card.is-unavailable{opacity:.55;cursor:not-allowed}.punish-icon{font-size:2rem;width:48px;text-align:center;flex-shrink:0}.punish-text{display:flex;flex-direction:column;gap:2px}.punish-title{font-weight:800}.punish-tagline{font-size:.85rem;color:var(--muted)}.punish-bar{display:flex;justify-content:space-between;align-items:center;gap:10px}.punish-bar-title{font-weight:800}.punish-host{background:var(--card);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:14px}.p-title{font-size:1.5rem}.chips{display:flex;gap:6px;flex-wrap:wrap}.chip-level{background:var(--accent-2);color:#123f38}.chip-level.level-medium{background:#ffd98e;color:#5a4300}.chip-level.level-hard{background:#f9a8c9;color:#5a2238}.chip{display:inline-block;align-self:flex-start;background:var(--chip-bg);color:var(--chip-ink);font-size:.75rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;padding:4px 10px;border-radius:999px}.fact-text{font-size:1.1rem;line-height:1.55;background:var(--bg-2);padding:14px;border-radius:var(--radius-sm)}.question{font-size:1.1rem;font-weight:700}.options{display:grid;gap:10px}.feedback{min-height:1.4em;font-weight:700}.feedback.ok{color:#2e8b57}.feedback.bad{color:var(--danger)}.explain{background:var(--bg-2);border-radius:var(--radius-sm);padding:14px;display:flex;flex-direction:column;gap:12px}.math-problem{font-size:2.2rem;font-weight:900;text-align:center;padding:10px;letter-spacing:.02em}.scare-stage{min-height:50vh;justify-content:center}.scare-creature{width:min(70vw,320px);height:min(70vw,320px)}.scare-creature svg{width:100%;height:100%}.scare-creature:not(.small):not(.gentle){animation:scarePop .5s cubic-bezier(.2,.9,.3,1.3) both}.scare-creature.gentle,.scare-boo.gentle{animation:fadeIn 1.1s ease both}.reduced-motion .scare-creature.gentle,.reduced-motion .scare-boo.gentle{animation:fadeIn 1.1s ease both!important;animation-duration:1.1s!important}.scare-creature.small{width:140px;height:140px}.scare-boo{font-size:3rem;font-weight:900;color:var(--accent-deep);animation:scarePop .5s .15s both}.step-count{font-size:4rem;font-weight:900;line-height:1;font-variant-numeric:tabular-nums}.bar{width:100%;height:14px;background:var(--line);border-radius:999px;overflow:hidden}.bar-fill{height:100%;background:linear-gradient(90deg,var(--accent-2),#4fc3a1);width:0;transition:width .3s ease;border-radius:999px}.alt summary{cursor:pointer;font-weight:700;color:var(--muted)}.alt{width:100%}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6px 0;cursor:pointer}.setting-text{display:flex;flex-direction:column;gap:2px}.setting-label{font-weight:700}.switch{position:relative;width:50px;height:30px;flex-shrink:0}.switch input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer;z-index:1}.switch-track{position:absolute;inset:0;background:var(--line);border-radius:999px;transition:background .2s}.switch-track:after{content:"";position:absolute;top:3px;left:3px;width:24px;height:24px;background:#fff;border-radius:50%;box-shadow:0 2px 6px #0003;transition:transform .2s}.switch input:checked+.switch-track{background:var(--accent-2)}.switch input:checked+.switch-track:after{transform:translate(20px)}.switch input:focus-visible+.switch-track{outline:3px solid var(--focus);outline-offset:2px}.tiles{display:grid;grid-template-columns:1fr 1fr;gap:10px}.tile{background:var(--card);border-radius:var(--radius);padding:14px;display:flex;flex-direction:column;align-items:center;box-shadow:var(--shadow-sm)}.tile-val{font-size:2rem;font-weight:900}.tile-label{font-size:.8rem;color:var(--muted);font-weight:700}.table{width:100%;border-collapse:collapse}.table th,.table td{text-align:left;padding:8px 4px;border-bottom:1px solid var(--line)}.list{list-style:none;padding:0;margin:0}.list li{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--line)}.list-val{font-weight:800}.piece-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:8px}.piece-btn{font:inherit;border:3px solid transparent;background:var(--bg-2);border-radius:var(--radius-sm);padding:8px 4px;display:flex;flex-direction:column;align-items:center;gap:4px;cursor:pointer;color:var(--ink);min-width:0}.piece-btn.is-selected{border-color:var(--accent);background:var(--card);box-shadow:var(--shadow-sm)}.piece-art{width:56px;height:56px}.piece-art .animal-photo{width:100%;height:100%}.piece-name{font-size:.8rem;font-weight:700;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.collection-list{display:grid;gap:10px}.collection-card{display:flex;gap:12px;align-items:center;text-align:left;font:inherit;border:2px solid var(--line);background:var(--card);border-radius:var(--radius);padding:10px 12px;cursor:pointer;color:var(--ink)}.collection-card.is-selected{border-color:var(--accent)}.collection-card.is-locked{opacity:.75;border-style:dashed}.collection-card.is-locked .collection-preview{filter:grayscale(.6)}.collection-preview{display:flex;gap:2px;width:120px;flex-shrink:0}.collection-preview .animal{width:38px;height:38px}.collection-text{display:flex;flex-direction:column;gap:2px}.collection-name{font-weight:800}.preview-piece{width:96px;height:96px;border-radius:22%;object-fit:cover;background:var(--bg-2);flex-shrink:0}.slider{display:flex;flex-direction:column}.slider input{width:100%}.check{display:flex;gap:10px;align-items:flex-start;font-size:.9rem}.check input{width:20px;height:20px;flex-shrink:0;margin-top:2px}.gap-s{gap:6px}.row.gap{gap:14px;align-items:flex-start}.card-subtitle{font-size:.95rem;margin-top:4px}.chip-mini{font-size:.68rem;padding:3px 8px}.scare-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}.scare-item{background:var(--bg-2);border-radius:calc(var(--radius) - 6px);padding:12px;display:flex;flex-direction:column;gap:10px}.scare-item .row.wrap{justify-content:flex-start}.scare-thumb{width:84px;height:84px;flex-shrink:0;border-radius:16px;overflow:hidden;background:var(--card);display:grid;place-items:center}.scare-thumb img,.scare-thumb video{width:100%;height:100%;object-fit:cover;display:block}.scare-thumb-icon{font-size:2rem}.scare-preview{width:100%}.scare-preview audio{width:100%}.scare-media{display:block;max-width:100%;width:100%;max-height:55vh;object-fit:contain;border-radius:18px}video.scare-media{background:#000}.scare-frame{width:min(92vw,560px);max-height:60vh;display:grid;place-items:center}.scare-frame:not(.small):not(.gentle){animation:scarePop .5s cubic-bezier(.2,.9,.3,1.3) both}.scare-frame.gentle{animation:fadeIn 1.1s ease both}.reduced-motion .scare-frame.gentle{animation:fadeIn 1.1s ease both!important}.scare-frame.small{width:180px;max-height:180px}.scare-frame.small .scare-media{max-height:180px;border-radius:14px}.scare-frame .scare-creature{width:min(70vw,320px);height:min(70vw,320px)}.scare-note{min-height:1.4em}.row.start{justify-content:flex-start}.grid-2>:last-child:nth-child(odd){grid-column:1 / -1}.selfie{position:fixed;right:max(12px,env(safe-area-inset-right,0px));bottom:max(12px,env(safe-area-inset-bottom,0px));z-index:55;width:104px;display:flex;flex-direction:column;gap:4px;align-items:stretch}.selfie-video{width:104px;height:138px;object-fit:cover;border-radius:14px;background:#000;transform:scaleX(-1);box-shadow:var(--shadow);border:2px solid #fff}.rec-badge{position:absolute;top:6px;left:6px;display:inline-flex;align-items:center;gap:5px;background:#0009;color:#fff;font-size:.68rem;font-weight:800;letter-spacing:.05em;padding:3px 7px;border-radius:999px;font-variant-numeric:tabular-nums}.rec-dot{width:8px;height:8px;border-radius:50%;background:#ff3b3b;animation:recPulse 1.2s ease-in-out infinite}.selfie.is-saving .rec-dot{background:#fc3;animation:none}.reduced-motion .rec-dot{animation:none}@keyframes recPulse{0%,to{opacity:1}50%{opacity:.25}}.selfie-stop{font:inherit;font-size:.72rem;font-weight:800;border:0;border-radius:999px;padding:5px 8px;background:var(--card);color:var(--ink);box-shadow:var(--shadow-sm);cursor:pointer}.cam-note{text-align:center;font-size:.85rem;font-weight:700;color:var(--danger)}.reaction-list{display:flex;flex-direction:column;gap:14px}.reaction-item{background:var(--card);border-radius:var(--radius);padding:12px;display:flex;flex-direction:column;gap:8px;box-shadow:var(--shadow-sm)}.reaction-item.compact{background:var(--bg-2);box-shadow:none;text-align:left}.reaction-item .row.wrap{justify-content:flex-start}.reaction-video{width:100%;max-height:50vh;border-radius:14px;background:#000;display:block}.reaction-item.compact .reaction-video{max-height:32vh}.reaction-slot:empty{display:none}.ad-slot{position:relative;background:var(--bg-2);border-radius:var(--radius);padding:22px 12px 12px;display:flex;flex-direction:column;align-items:center;gap:8px;min-height:60px}.ad-label{position:absolute;top:6px;left:10px;font-size:.62rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.ad-slot-post-punishment{text-align:left}.cam-test video{width:100%;max-width:320px;aspect-ratio:3 / 4;object-fit:cover;border-radius:14px;background:#000;transform:scaleX(-1);display:block;margin:0 auto}.modal-backdrop{position:fixed;inset:0;z-index:60;background:#281e3c73;display:grid;place-items:center;padding:16px;overflow-y:auto}.modal{background:var(--card);border-radius:var(--radius);padding:22px;max-width:520px;width:100%;display:flex;flex-direction:column;gap:12px;box-shadow:var(--shadow);max-height:calc(100dvh - 32px);overflow-y:auto}.modal>*{flex-shrink:0}.rules-list{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:6px}.mini-board{display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr));grid-template-rows:repeat(var(--n),minmax(0,1fr));width:160px;aspect-ratio:1;margin:4px auto;border:3px solid var(--region-border);border-radius:10px;overflow:hidden;background:var(--region-border)}.mini-board .cell{cursor:default}.mini-board .animal{width:80%;height:auto;aspect-ratio:1 / 1}@media(min-width:720px){.screen{padding-top:28px}.board{width:min(100%,560px,70vh)}}.vibe-row{display:flex;gap:6px;flex-wrap:wrap;justify-content:center}.vibe-chip{font:inherit;font-weight:700;border:2px solid var(--line);background:var(--card);color:var(--ink);border-radius:999px;padding:6px 14px;cursor:pointer;min-height:36px}.vibe-chip.is-active{border-color:var(--accent);background:var(--selected-bg)}.vibe-list{display:grid;gap:10px}.vibe-card{display:flex;gap:12px;align-items:center;text-align:left;font-family:var(--font-body);font-size:1rem;border:2px solid var(--line);background:var(--bg);color:var(--ink);border-radius:var(--radius);padding:10px 12px;cursor:pointer}.vibe-card.is-selected{border-color:var(--accent);box-shadow:0 0 0 3px var(--selected-bg)}.vibe-mini{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:2px;width:74px;height:74px;border:3px solid var(--region-border);border-radius:calc(var(--radius-sm) + 3px);overflow:hidden;background:var(--region-border);flex-shrink:0}.vibe-cell{display:grid;place-items:center}.vibe-cell.r0{background:var(--r0)}.vibe-cell.r1{background:var(--r1)}.vibe-cell.r2{background:var(--r2)}.vibe-cell.r3{background:var(--r3)}.vibe-cell .animal{width:82%;height:82%}.vibe-text{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.vibe-name{font-weight:800;font-size:1.05rem}.vibe-cta{pointer-events:none}[data-vibe=circuit]:not(.high-contrast){color-scheme:dark;--bg: #0b1020;--bg-2: #141c38;--card: #151d36;--ink: #e6f6ff;--muted: #8fa3c7;--line: #24315c;--accent: #00e5ff;--accent-deep: #00b8d9;--accent-2: #7cff9b;--accent-3: #ffd166;--danger: #ff5c7a;--focus: #ff4df0;--radius: 10px;--radius-sm: 6px;--shadow: 0 10px 30px rgba(0, 0, 0, .5);--shadow-sm: 0 2px 8px rgba(0, 0, 0, .4);--r0: #1b2f55;--r1: #163f3a;--r2: #3a2a5e;--r3: #4a2c3d;--r4: #1f3f5a;--r5: #2d3f2a;--r6: #4a4420;--r7: #5c2440;--r8: #0e4d56;--r9: #4d3a16;--cell-border: rgba(0, 229, 255, .16);--region-border: #00e5ff;--label-ink: rgba(125, 249, 255, .8);--selected-bg: #1b2a52;--chip-bg: #16324f;--chip-ink: #7df9ff;--font-display: ui-monospace, "Cascadia Code", Consolas, "SFMono-Regular", Menlo, monospace;--font-body: "Segoe UI Variable Text", "Segoe UI", system-ui, -apple-system, sans-serif;--btn-primary: linear-gradient(135deg, #00e5ff, #7c4dff);--btn-primary-ink: #061018;--logo-gradient: linear-gradient(90deg, #00e5ff, #ff4df0);--overlay-bg: radial-gradient(900px 500px at 50% -100px, #1a2a5a, #0b1020 60%, #10182f);--h-transform: none;--h-spacing: .01em;--h-weight: 700}[data-vibe=circuit] .board{box-shadow:0 0 24px #00e5ff40}[data-vibe=rugged]:not(.high-contrast){--bg: #efe9dc;--bg-2: #e3dccb;--card: #faf6ee;--ink: #26302a;--muted: #5f6b5f;--line: #d8cfbd;--accent: #b5542b;--accent-deep: #8f3f1c;--accent-2: #5f7f5a;--accent-3: #d9a441;--danger: #a33a2a;--focus: #2f5d8a;--radius: 10px;--radius-sm: 6px;--shadow: 0 8px 20px rgba(40, 35, 20, .18);--shadow-sm: 0 2px 6px rgba(40, 35, 20, .15);--r0: #cfd8c4;--r1: #e0cfa8;--r2: #cbb99c;--r3: #bcc7cc;--r4: #dcbca4;--r5: #aebf9f;--r6: #e2d9c7;--r7: #c99d84;--r8: #a9c4bf;--r9: #d8c27e;--cell-border: rgba(38, 48, 42, .18);--region-border: #26302a;--label-ink: rgba(38, 48, 42, .7);--selected-bg: #f1e4cf;--chip-bg: #5f7f5a;--chip-ink: #f4f7ef;--font-display: "Segoe UI Variable Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--font-body: "Segoe UI Variable Text", "Segoe UI", system-ui, sans-serif;--btn-primary: linear-gradient(180deg, #c8622f, #8f3f1c);--btn-primary-ink: #fff6ec;--logo-gradient: linear-gradient(90deg, #8f3f1c, #3f5a3a);--overlay-bg: linear-gradient(180deg, #d9d1bd, #efe9dc 50%, #cfd8c4);--h-transform: uppercase;--h-spacing: .05em;--h-weight: 900}[data-vibe=garage]:not(.high-contrast){--bg: #fff6e3;--bg-2: #fbe9cf;--card: #fffdf7;--ink: #3b2f2f;--muted: #7d6a66;--line: #ecd9c3;--accent: #d7263d;--accent-deep: #a31b2d;--accent-2: #3aa6a0;--accent-3: #f7c948;--danger: #c0392b;--focus: #1f6f8b;--radius: 16px;--radius-sm: 10px;--shadow: 0 10px 24px rgba(90, 50, 30, .16);--shadow-sm: 0 3px 8px rgba(90, 50, 30, .12);--r0: #f9d8d3;--r1: #cfe8e4;--r2: #f7e7b3;--r3: #d4e2f4;--r4: #e9d9c8;--r5: #f4c7cc;--r6: #d8e9c9;--r7: #e3d4ee;--r8: #f8cfae;--r9: #d9d9de;--cell-border: rgba(59, 47, 47, .14);--region-border: #3b2f2f;--label-ink: rgba(59, 47, 47, .65);--selected-bg: #fde8e3;--chip-bg: #3aa6a0;--chip-ink: #f3fffd;--font-display: Georgia, "Times New Roman", serif;--font-body: "Segoe UI Variable Text", "Segoe UI", system-ui, sans-serif;--btn-primary: linear-gradient(180deg, #ff6b7a 0%, #d7263d 55%, #a31b2d 100%);--btn-primary-ink: #fff;--logo-gradient: linear-gradient(90deg, #d7263d, #3aa6a0);--overlay-bg: radial-gradient(900px 500px at 50% -100px, #fde8e3, #fff6e3 60%, #cfe8e4);--h-transform: none;--h-spacing: 0;--h-weight: 700}[data-vibe=garage] .logo,[data-vibe=garage] .p-title,[data-vibe=garage] .oops-title{font-style:italic}[data-vibe=garage] .btn-primary{box-shadow:inset 0 1px #fff9,0 6px 14px #d7263d4d;border:1px solid #a31b2d}[data-vibe=zen]:not(.high-contrast){--bg: #faf9f6;--bg-2: #f1efe9;--card: #ffffff;--ink: #2b2b2b;--muted: #7a7a76;--line: #e6e3dc;--accent: #6b8f71;--accent-deep: #557559;--accent-2: #b9c7b0;--accent-3: #e6dcc3;--danger: #b2534c;--focus: #557559;--radius: 8px;--radius-sm: 4px;--shadow: 0 6px 20px rgba(0, 0, 0, .06);--shadow-sm: 0 1px 4px rgba(0, 0, 0, .06);--r0: #d0e0c4;--r1: #eedbb2;--r2: #c6d8ec;--r3: #efcdc5;--r4: #dacdea;--r5: #dfdca6;--r6: #b9e0d6;--r7: #f3cfa8;--r8: #e6d6e2;--r9: #cfc9bd;--cell-border: rgba(43, 43, 43, .12);--region-border: #3a3a3a;--label-ink: rgba(43, 43, 43, .55);--selected-bg: #eef3ec;--chip-bg: #e6dcc3;--chip-ink: #4a4030;--font-display: Georgia, "Times New Roman", serif;--font-body: "Segoe UI Variable Text", "Segoe UI", system-ui, sans-serif;--btn-primary: linear-gradient(180deg, #7aa080, #557559);--btn-primary-ink: #fff;--logo-gradient: linear-gradient(90deg, #557559, #2b2b2b);--overlay-bg: linear-gradient(180deg, #f1efe9, #faf9f6);--h-transform: none;--h-spacing: .01em;--h-weight: 500}:root.dark[data-vibe=cozy]:not(.high-contrast) .mark{color:#cfc9df}[data-vibe=rugged]:not(.high-contrast) .mark{color:#36403a}[data-vibe=zen]:not(.high-contrast) .mark{color:#55554f}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.tut-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.tut-progress{display:flex;gap:6px;list-style:none;margin:0;padding:0}.tut-dot{width:10px;height:10px;border-radius:50%;background:var(--cell-border);transition:background .2s,transform .2s}.tut-dot.is-done{background:var(--accent-2)}.tut-dot.is-current{background:var(--accent);transform:scale(1.3)}.tut-title{font-size:1.35rem;margin:0}.tut-caption{border-radius:14px;padding:12px 16px;border:2px solid transparent;background:var(--card);min-height:3.4em;font-size:1.02rem;line-height:1.4}.tut-caption p{margin:0}.tut-caption p+p{margin-top:4px}.tut-caption.tone-coach{border-color:var(--accent);font-weight:700;box-shadow:var(--shadow)}.tut-caption.tone-error{border-color:var(--danger)}.tut-caption.tone-error p:first-child{font-weight:800;color:var(--danger)}.tut-caption.tone-success{border-color:var(--accent-2)}.tut-caption.tone-info{border-color:var(--cell-border)}.tut-board .board{width:min(100%,46vh,340px)}.tut-dim{display:none}.tutorial.is-coaching .tut-dim{display:block;position:fixed;inset:0;z-index:40;background:#0c0a18a8;animation:fadeIn .25s ease-out both}.tutorial.is-coaching .tut-caption,.tutorial.is-coaching .tut-board,.tutorial.is-coaching .tut-continue,.tutorial.is-coaching .tut-skip{position:relative;z-index:41}.board.tut-spotlight .cell:not(.tut-lit):not(.tut-try):not(.tut-clash):before{content:"";position:absolute;inset:0;z-index:2;background:#0c0a18a8;pointer-events:none;transition:opacity .25s}.board.tut-spotlight .cell.tut-lit{filter:brightness(1.06) saturate(1.1)}.cell.tut-ring{box-shadow:inset 0 0 0 3px var(--accent-deep)}.cell.tut-ring .animal{animation:tutBob 1.4s ease-in-out infinite}@keyframes tutBob{50%{transform:translateY(-6%) scale(1.06)}}.cell.tut-target{box-shadow:inset 0 0 0 3px var(--accent-deep);animation:tutPulse 1.2s ease-in-out infinite}.reduced-motion .cell.tut-ring .animal,.reduced-motion .cell.tut-target{animation:none}.tut-continue{display:block;margin:2px auto 0;border:0;border-radius:999px;padding:10px 24px;font:inherit;font-weight:800;color:var(--ink);background:var(--card);box-shadow:var(--shadow);cursor:pointer;animation:tutNudge 1.6s ease-in-out infinite}.tut-continue[hidden]{display:none}@keyframes tutNudge{50%{transform:translateY(-3px);opacity:.85}}.reduced-motion .tut-continue{animation:none}.cell.tut-focus:before{content:"";position:absolute;inset:0;background:var(--accent-3);opacity:.55;pointer-events:none}.cell.tut-clash{box-shadow:inset 0 0 0 3px var(--danger)}.cell.tut-try{box-shadow:inset 0 0 0 3px var(--danger);background:#ffb4b4!important}.cell.tut-sure{box-shadow:inset 0 0 0 3px var(--accent-deep);animation:tutPulse 1.2s ease-in-out infinite}@keyframes tutPulse{50%{box-shadow:inset 0 0 0 6px var(--accent-deep)}}.reduced-motion .cell.tut-sure{animation:none}.tut-twist-piece{width:110px;margin:8px auto}.tut-twist-piece .animal{width:100%;height:auto}.oops-reason{margin:4px 0 0;font-size:.92rem;text-align:center}.is-coaching>.tut-dim{display:block;position:fixed;inset:0;z-index:40;background:#0c0a18a8;animation:fadeIn .25s ease-out both}.is-coaching .coach-raise{position:relative;z-index:41}.tut-caption[hidden],.coach-bar .btn[hidden]{display:none}.coach-bar{gap:10px;align-items:center}.coach-bar:empty,.coach-bar:not(:has(:not([hidden]))){display:none}.is-coaching .coach-bar .btn-ghost{color:#f4f1fa}.tut-ghost{position:absolute;inset:12%;z-index:3;display:grid;place-items:center;opacity:.6;border:2px dashed var(--accent-deep);border-radius:30%;pointer-events:none}.tut-ghost .animal{width:100%;height:100%}.btn-tool.is-earn{box-shadow:inset 0 0 0 2px var(--accent)}.tut-eyebrow{font-size:.75rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.skill-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.skill-card{width:100%;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;text-align:left;padding:14px 16px;border:2px solid var(--line);border-radius:var(--radius);background:var(--card);color:var(--ink);font:inherit;box-shadow:var(--shadow-sm);cursor:pointer;min-height:44px}.skill-card:hover,.skill-card:focus-visible{border-color:var(--accent)}.skill-card.is-learned{border-color:var(--accent-2)}.skill-icon{font-size:1.6rem}.skill-text{display:flex;flex-direction:column;gap:2px}.skill-name{font-weight:800}.skill-summary{font-size:.88rem;color:var(--muted)}.skill-done{font-size:.8rem;font-weight:800;color:var(--accent-deep);white-space:nowrap}.link-btn{border:0;background:none;padding:0;font:inherit;color:var(--accent-deep);text-decoration:underline;cursor:pointer}.generating-card{max-width:300px;align-items:center;text-align:center}.generating-card p{margin:0;font-weight:600}.generating-dots{width:44px;height:44px;border-radius:50%;border:4px solid var(--bg-2);border-top-color:currentColor;animation:generating-spin .9s linear infinite}@keyframes generating-spin{to{transform:rotate(360deg)}}.surprise .lede{margin:0;font-size:1.05rem}.callout-warn{border:2px solid #f0b44c}.surprise-handoff{min-height:70dvh;justify-content:center}.surprise-consent .card{max-width:520px;margin-inline:auto}.link-btn{background:none;border:0;padding:0;color:inherit;font:inherit;text-decoration:underline;cursor:pointer}.surprise-cam{z-index:70;width:76px}.surprise-cam .selfie-video{width:76px;height:100px}body:has(.surprise-cam) #main{padding-bottom:120px}.surprise-stage{min-height:80dvh;display:grid;place-items:center}.surprise-reveal .reveal-emoji{font-size:64px;line-height:1}.surprise-clip{width:100%;max-width:420px;margin-inline:auto;align-items:center}.reveal-video{width:100%;max-height:46dvh;border-radius:14px;background:#000}.surprise-cam .rec-badge{white-space:nowrap;font-size:10px;padding:2px 6px}.modal-policy{max-width:640px}.policy h3{margin:8px 0 0;font-size:1.05rem}.policy h2{margin:16px 0 4px;font-size:1rem}.policy p,.policy ul,.policy ol{margin:0 0 8px;font-size:.92rem}.policy ul,.policy ol{padding-left:20px}.policy .updated{color:var(--muted);font-size:.85rem}.policy .table-wrap{overflow-x:auto;margin-bottom:8px}.policy table{border-collapse:collapse;width:100%;min-width:420px;font-size:.85rem}.policy th,.policy td{text-align:left;vertical-align:top;padding:6px 8px;border-bottom:1px solid var(--line, rgba(0, 0, 0, .12))}.policy .todo{background:#fff1c2;color:#6a4b00;border-radius:4px;padding:0 4px}.daily-head{justify-content:space-between;align-items:center}.daily-streak{font-weight:900;color:var(--accent-deep);white-space:nowrap}.daily-streak.big{font-size:1.2rem;margin:0}.daily-card.is-done{border:2px solid var(--accent)}.tiles-3{grid-template-columns:repeat(3,1fr)}.tiles-3 .tile-val{font-size:1.6rem}.challenge-card{border:2px dashed var(--accent-deep)}.challenge-result{font-weight:800;margin:0}.challenge-result.is-won{color:var(--accent-deep)}.daily-risk{margin:0;font-weight:800;color:var(--accent-deep)}.streak-badge-new{margin:0;font-weight:800}.streak-badges{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}.streak-badge{padding:4px 10px;border-radius:999px;background:var(--card);box-shadow:var(--shadow-sm);font-weight:800;font-size:.85rem;opacity:.4;filter:grayscale(1)}.streak-badge.is-earned{opacity:1;filter:none}.zen-note{margin:0;padding:10px 14px;border-radius:var(--radius);background:var(--card);box-shadow:var(--shadow-sm);text-align:center}.win-panel[hidden],.zen-note[hidden]{display:none}.caption-row{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.caption-input{flex:1 1 100%;min-width:0;font-size:.9rem}.achievements{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.achievement{display:flex;gap:10px;align-items:center;opacity:.45;filter:grayscale(1)}.achievement.is-earned{opacity:1;filter:none}.achievement-icon{font-size:1.5rem;width:2rem;text-align:center;flex:none}.achievement-text{display:flex;flex-direction:column}.earned-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.toast-host{position:fixed;top:max(12px,env(safe-area-inset-top));left:16px;right:16px;z-index:60;display:flex;flex-direction:column;align-items:center;gap:6px;pointer-events:none}.toast{display:flex;gap:8px;align-items:center;max-width:420px;padding:10px 16px;border-radius:999px;background:var(--card);color:var(--ink, inherit);box-shadow:var(--shadow-sm);font-weight:800;transition:opacity .4s}.toast.is-leaving{opacity:0}
