.cards-page{--st-new-bg: transparent;--st-new-ink: var(--ink-subtle);--st-new-line: var(--line-strong);--st-learning-bg: color-mix(in srgb, var(--growth-300) 42%, var(--canvas));--st-learning-ink: color-mix(in srgb, var(--growth-500) 55%, var(--ink));--st-shaky-bg: color-mix(in srgb, var(--sun-300) 34%, var(--canvas));--st-shaky-ink: color-mix(in srgb, var(--sun-500) 60%, var(--ink));--st-known-bg: color-mix(in srgb, var(--leaf-500) 34%, var(--canvas));--st-known-ink: var(--leaf-700);--st-mastered-bg: var(--leaf-600);--st-mastered-ink: #fff}:root[data-theme=dark] .cards-page{--st-learning-ink: var(--growth-300);--st-shaky-bg: color-mix(in srgb, var(--sun-500) 26%, var(--canvas));--st-shaky-ink: var(--sun-300);--st-known-bg: color-mix(in srgb, var(--leaf-300) 22%, var(--canvas));--st-known-ink: var(--leaf-200);--st-mastered-bg: var(--leaf-500);--st-mastered-ink: var(--night-900)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .cards-page{--st-learning-ink: var(--growth-300);--st-shaky-bg: color-mix(in srgb, var(--sun-500) 26%, var(--canvas));--st-shaky-ink: var(--sun-300);--st-known-bg: color-mix(in srgb, var(--leaf-300) 22%, var(--canvas));--st-known-ink: var(--leaf-200);--st-mastered-bg: var(--leaf-500);--st-mastered-ink: var(--night-900)}}.cards-page .is-new{--st-bg: var(--st-new-bg);--st-ink: var(--st-new-ink)}.cards-page .is-learning{--st-bg: var(--st-learning-bg);--st-ink: var(--st-learning-ink)}.cards-page .is-shaky{--st-bg: var(--st-shaky-bg);--st-ink: var(--st-shaky-ink)}.cards-page .is-known{--st-bg: var(--st-known-bg);--st-ink: var(--st-known-ink)}.cards-page .is-mastered{--st-bg: var(--st-mastered-bg);--st-ink: var(--st-mastered-ink)}.today-cards{position:relative;isolation:isolate;padding:var(--s-5) var(--s-5) var(--s-4);margin-bottom:var(--s-6);border:1px solid var(--line);border-radius:var(--r-xl);background:radial-gradient(120% 90% at 100% 0%,color-mix(in srgb,var(--brand-growth) 13%,transparent),transparent 60%),radial-gradient(90% 80% at 0% 100%,color-mix(in srgb,var(--brand-leaf) 9%,transparent),transparent 55%),var(--canvas);box-shadow:0 7px 0 -4px var(--surface),0 7px 0 -3px var(--line-strong),0 13px 0 -8px var(--surface-alt),0 13px 0 -7px var(--line),var(--shadow-lg)}.today-cards-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s-4)}.today-cards-kicker{font-size:var(--text-xs);font-weight:600;color:var(--accent);margin-bottom:2px}.today-cards-title{font-family:var(--font-display);font-size:clamp(1.6rem,5vw,2.1rem);font-weight:600;line-height:var(--leading-tight);letter-spacing:var(--tracking-tight)}.today-cards-sub{color:var(--ink-muted);font-size:var(--text-sm);margin-top:4px}.today-cards-body{color:var(--ink-muted);font-size:var(--text-sm);line-height:var(--leading-normal);max-width:46ch;margin-top:var(--s-2)}.today-cards-start{width:100%;margin-top:var(--s-4);min-height:54px;font-size:var(--text-md);font-weight:600;letter-spacing:.01em}.today-cards-start.btn-primary{box-shadow:0 6px 18px color-mix(in srgb,var(--accent) 30%,transparent)}.today-cards-start.btn-ghost{background:color-mix(in srgb,var(--accent) 14%,var(--canvas));border-color:color-mix(in srgb,var(--accent) 38%,transparent);color:var(--ink)}.today-cards-start.btn-ghost:hover{background:color-mix(in srgb,var(--accent) 22%,var(--canvas))}.today-cards.is-empty .today-cards-start{width:auto}.today-cards.is-done .today-cards-title{color:var(--accent)}.today-decks{list-style:none;margin:var(--s-4) 0 0;padding:var(--s-2) 0 0;border-top:1px dashed var(--line)}.today-deck{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:var(--s-3);padding:6px 0}.today-deck-title{font-weight:550;font-size:var(--text-sm);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.today-deck-what{font-size:var(--text-xs);color:var(--ink-muted);white-space:nowrap}.today-deck-done{display:inline-flex;align-items:center;gap:4px;color:var(--accent);font-weight:550}.today-deck-making{animation:cards-breathe 1.8s var(--ease-in-out) infinite}.streak{display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex-shrink:0;padding-top:4px}.streak-dots{display:flex;gap:5px}.streak-dot{width:9px;height:9px;border-radius:var(--r-full);border:1.5px solid color-mix(in srgb,var(--ink-subtle) 60%,transparent)}.streak-dot.is-on{background:var(--accent);border-color:var(--accent)}.streak-dot.is-today:not(.is-on){border-style:dashed;border-color:var(--accent)}.streak-label{font-size:var(--text-2xs);color:var(--ink-subtle);font-weight:550}.deck-cover{display:inline-grid;place-items:center;flex-shrink:0;overflow:hidden;border-radius:28%;background:color-mix(in srgb,var(--deck-hue) 14%,var(--canvas));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--deck-hue) 20%,transparent)}.deck-cover img{width:112%;height:112%;object-fit:cover}.deck-cover-emoji{font-size:1.35em;line-height:1}.deck-cover-letter{font-family:var(--font-display);font-weight:600;font-size:1.15em;color:var(--deck-hue)}.today-deck .deck-cover{font-size:17px}.deck-tile .deck-cover{font-size:24px}.cards-tabs{margin-top:0;margin-bottom:var(--s-4)}.cards-panel{min-height:240px}.deck-grid{list-style:none;margin:0;padding:0;display:grid;gap:var(--s-3);grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.deck-grid>li{display:flex}.deck-tile{flex:1;display:flex;flex-direction:column;align-items:flex-start;gap:6px;text-align:start;padding:var(--s-4);border:1px solid var(--line);border-radius:var(--r-lg);background:linear-gradient(160deg,color-mix(in srgb,var(--deck-hue, var(--accent)) 7%,transparent),transparent 45%),var(--canvas);box-shadow:var(--shadow-sm);transition:border-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out),transform var(--dur-instant) var(--ease-out)}.deck-tile:hover:not(:disabled){border-color:color-mix(in srgb,var(--deck-hue, var(--accent)) 45%,var(--line));box-shadow:var(--shadow-md)}.deck-tile:active:not(:disabled){transform:scale(.99)}.deck-tile-top{display:flex;align-items:flex-start;justify-content:space-between;width:100%;margin-bottom:4px}.deck-tile-flag{font-size:var(--text-2xs);font-weight:600;color:var(--ink-muted);padding:2px 8px;border-radius:var(--r-full);background:var(--surface)}.deck-tile-title{font-family:var(--font-display);font-size:var(--text-md);font-weight:600;line-height:var(--leading-snug)}.deck-tile-direction{text-align:left;font-size:var(--text-xs);color:var(--ink-muted);line-height:var(--leading-snug);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.deck-tile-glyphs{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:var(--s-2);max-height:64px;overflow:hidden}.deck-tile-glyph{min-width:28px;height:28px;padding:0 6px;display:grid;place-items:center;border-radius:var(--r-sm);background:var(--surface);color:var(--ink);font-size:var(--text-sm);font-weight:600;line-height:1}.deck-tile-meta{font-size:var(--text-xs);color:var(--ink-muted);font-weight:550}.deck-tile-note{font-size:var(--text-xs);color:var(--ink-muted)}.deck-tile-wait{font-size:var(--text-xs);color:var(--ink-subtle);line-height:var(--leading-snug)}.deck-tile.is-paused{background:var(--surface);box-shadow:none}.deck-tile.is-paused .deck-cover{filter:grayscale(.6);opacity:.75}.deck-tile.is-generating{cursor:progress}.deck-tile-making{display:flex;align-items:center;gap:var(--s-2);margin-top:auto;font-size:var(--text-xs);color:var(--ink-muted);width:100%}.deck-tile-making-bar{flex:0 0 42%;height:6px;border-radius:var(--r-full);background:var(--surface-alt);position:relative;overflow:hidden}.deck-tile-making-bar:after{content:"";position:absolute;inset:0;width:40%;border-radius:inherit;background:var(--accent);animation:cards-slide 1.6s var(--ease-in-out) infinite}.deck-tile-new{justify-content:center;align-items:center;text-align:center;border-style:dashed;border-color:var(--line-strong);background:transparent;box-shadow:none;min-height:170px}.deck-tile-new .deck-tile-direction{max-width:22ch}.deck-tile-new-mark{display:grid;place-items:center;width:44px;height:44px;border-radius:var(--r-full);background:var(--accent-soft);color:var(--accent);margin-bottom:4px}.standing-bar{display:flex;gap:2px;width:100%;height:7px;margin-top:auto;padding-top:0;border-radius:var(--r-full);overflow:hidden;background:var(--surface-alt)}.deck-tile .standing-bar{margin-top:auto}.deck-tile:not(.deck-tile-new) .deck-tile-direction{margin-bottom:var(--s-2)}.standing-bar-part{display:block;min-width:3px;background:var(--st-bg)}.standing-bar-part.is-new{background:transparent}.standing-bar-part.is-known{background:color-mix(in srgb,var(--leaf-500) 60%,var(--canvas))}.standing-pill{display:inline-flex;align-items:center;padding:3px 10px;border-radius:var(--r-full);font-size:var(--text-2xs);font-weight:650;letter-spacing:.02em;background:var(--st-bg);color:var(--st-ink);white-space:nowrap}.standing-pill.is-new{box-shadow:inset 0 0 0 1px var(--st-new-line)}.standing-legend{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:4px 12px}.standing-legend li{display:inline-flex;align-items:center;gap:5px;font-size:var(--text-2xs);color:var(--ink-muted)}.standing-legend-n{color:var(--ink-subtle)}.standing-swatch{display:inline-block;width:10px;height:10px;border-radius:3px;background:var(--st-bg)}.standing-swatch.is-new{box-shadow:inset 0 0 0 1.5px var(--st-new-line)}.deck-sheet-direction{color:var(--ink-muted);font-size:var(--text-sm);margin-bottom:var(--s-4)}.deck-sheet-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;background:var(--line);margin-bottom:var(--s-5)}.deck-stat{display:flex;flex-direction:column;gap:2px;padding:var(--s-3);background:var(--canvas)}.deck-stat-n{font-family:var(--font-display);font-size:var(--text-xl);font-weight:600;line-height:1}.deck-stat-label{font-size:var(--text-2xs);color:var(--ink-muted)}.deck-sheet-h{font-size:var(--text-xs);font-weight:600;color:var(--ink-muted);margin-bottom:var(--s-2)}.deck-sheet-foot{display:flex;gap:var(--s-2);justify-content:space-between;width:100%}.deck-ladder{list-style:none;margin:0;padding:0;display:grid;gap:6px;grid-template-columns:repeat(auto-fill,minmax(58px,1fr))}.deck-ladder-card{width:100%;aspect-ratio:3 / 4;display:grid;place-items:center;padding:4px;border-radius:var(--r-md);background:var(--st-bg);color:var(--st-ink);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--st-ink) 16%,transparent);overflow:hidden;transition:transform var(--dur-instant) var(--ease-out)}.deck-ladder-card.is-new{box-shadow:inset 0 0 0 1px var(--st-new-line)}.deck-ladder-card:hover{transform:translateY(-2px)}.deck-ladder-card{container-type:inline-size}.face-mini-text{font-family:var(--font-display);font-weight:600;line-height:1.1;font-size:clamp(8px,calc(100cqi * var(--fit, 1)),var(--face-max, var(--text-lg)));max-width:100%;max-height:100%;overflow:hidden;text-align:center;overflow-wrap:normal;word-break:keep-all;hyphens:none}.face-mini-text.is-long{--face-max: var(--text-sm)}.face-mini-pic{width:100%;height:100%;object-fit:contain}.face-mini-emoji{font-size:1.6rem}.add-card{display:grid;grid-template-columns:112px 1fr;gap:var(--s-4);padding:var(--s-4);margin-bottom:var(--s-5);border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);animation:reveal var(--dur-base) var(--ease-out) both}.add-card-preview{aspect-ratio:3 / 4;border-radius:var(--r-lg);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;background:var(--canvas);box-shadow:var(--shadow-md);padding:var(--s-2);overflow:hidden}.add-card-front{font-family:"Andika",var(--font-display);font-size:1.7rem;font-weight:600;max-width:100%;overflow-wrap:break-word;hyphens:none;text-align:center;line-height:1.1}.add-card-preview img{width:64%}.add-card-emoji{font-size:1.8rem}.add-card-fields{display:flex;flex-direction:column;gap:var(--s-3);min-width:0}.add-card-emoji-input{max-width:180px}.add-card-actions{display:flex;justify-content:flex-end;gap:var(--s-2)}@media(max-width:480px){.add-card{grid-template-columns:1fr}.add-card-preview{width:96px;justify-self:center}.deck-sheet-stats{grid-template-columns:repeat(2,1fr)}}.new-deck{display:flex;flex-direction:column;gap:var(--s-5)}.new-deck-input{font-size:var(--text-md);font-family:var(--font-display)}.new-deck-ideas-label{font-size:var(--text-xs);font-weight:600;color:var(--ink-muted);margin-bottom:var(--s-2)}.new-deck .chip{min-height:34px;font-size:var(--text-sm)}.new-deck-go{width:100%}.knows{display:flex;flex-direction:column;gap:var(--s-6)}.knows-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:var(--s-2) var(--s-4);margin-bottom:var(--s-3)}.knows-title{font-family:var(--font-display);font-size:var(--text-lg);font-weight:600;letter-spacing:var(--tracking-tight)}.knows-count{font-size:var(--text-xs);color:var(--ink-subtle)}.knows-empty{font-size:var(--text-sm);color:var(--ink-muted);max-width:48ch}.letter-grid{list-style:none;margin:0;padding:0;display:grid;gap:6px;grid-template-columns:repeat(auto-fill,minmax(54px,1fr))}.letter-grid.is-digraphs{margin-top:var(--s-3);padding-top:var(--s-3);border-top:1px dashed var(--line)}.letter-tile{position:relative;width:100%;aspect-ratio:1;display:grid;place-items:center;border-radius:var(--r-md);background:var(--st-bg);color:var(--st-ink);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--st-ink) 14%,transparent);transition:transform var(--dur-instant) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}.letter-tile.is-new{box-shadow:inset 0 0 0 1px var(--st-new-line)}.letter-tile:hover{transform:translateY(-2px);box-shadow:var(--shadow-md),inset 0 0 0 1px color-mix(in srgb,var(--st-ink) 22%,transparent)}.letter-tile-glyph{font-family:var(--font-display);font-size:1.3rem;font-weight:600;letter-spacing:-.01em}.letter-grid.is-digraphs .letter-tile{aspect-ratio:5 / 4}.letter-tile-sound{position:absolute;left:50%;bottom:7px;transform:translate(-50%);width:42%;height:4px;border-radius:var(--r-full);background:var(--st-ink);opacity:.85}.letter-tile-sound.is-new{background:transparent;box-shadow:inset 0 0 0 1.2px var(--st-new-line);opacity:1}.knows-key{font-size:var(--text-xs);color:var(--ink-subtle);margin:calc(-1 * var(--s-2)) 0 var(--s-3);max-width:60ch}.letter-grid.is-digraphs .letter-tile-glyph{font-size:1.15rem}.word-groups{display:flex;flex-direction:column;gap:var(--s-4)}.word-group-label{display:flex;align-items:center;gap:6px;font-size:var(--text-xs);font-weight:600;color:var(--ink-muted);margin-bottom:var(--s-2)}.word-chips{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}.word-chip{min-height:34px;padding:0 12px;border-radius:var(--r-full);font-family:var(--font-display);font-size:var(--text-base);font-weight:600;background:var(--st-bg);color:var(--st-ink);transition:transform var(--dur-instant) var(--ease-out)}.word-chip:hover{transform:translateY(-1px)}.item-sheet{display:flex;flex-direction:column;gap:var(--s-4)}.item-row{padding-bottom:var(--s-4);border-bottom:1px solid var(--line)}.item-row:last-child{border-bottom:0;padding-bottom:0}.item-row-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s-3);margin-bottom:var(--s-3)}.item-row-title{font-weight:600;font-size:var(--text-base)}.item-row-where{font-size:var(--text-xs);color:var(--ink-subtle);margin-top:2px}.item-row-none{font-size:var(--text-sm);color:var(--ink-muted)}.item-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-2);margin:0}.item-fact{padding:var(--s-2) var(--s-3);border-radius:var(--r-md);background:var(--surface)}.item-fact dt{font-size:var(--text-2xs);color:var(--ink-subtle);font-weight:550}.item-fact dd{margin:2px 0 0;font-size:var(--text-sm);font-weight:600}.item-history{margin-top:var(--s-3)}.item-history.is-loading{height:56px}.item-dots{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:var(--s-2)}.item-dot{width:12px;height:12px;border-radius:4px;background:var(--surface-alt);box-shadow:inset 0 0 0 1px var(--line-strong)}.item-dot.is-ok{background:var(--accent);box-shadow:none}.item-dot.is-ok.is-helped{background:color-mix(in srgb,var(--accent) 50%,var(--canvas))}.item-tries{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.item-tries li{display:grid;grid-template-columns:7.5em 1fr auto;gap:var(--s-2);padding:5px 0;font-size:var(--text-xs);border-top:1px dashed var(--line)}.item-try-when,.item-try-ms{color:var(--ink-subtle)}@media(max-width:420px){.item-facts{grid-template-columns:repeat(2,1fr)}}@keyframes cards-slide{0%{transform:translate(-100%)}to{transform:translate(260%)}}@keyframes cards-breathe{50%{opacity:.45}}@media(prefers-reduced-motion:reduce){.deck-tile-making-bar:after,.today-deck-making{animation:none}}.add-card-draw{font-size:var(--text-2xs);color:var(--ink-muted);text-align:center;line-height:var(--leading-snug);font-style:italic}.deck-cover-letter.is-short{font-size:.72em;letter-spacing:-.02em}.cards-field{display:flex;flex-direction:column;gap:var(--s-2);min-width:0}.cards-field-label{font-size:var(--text-sm);font-weight:550;color:var(--ink)}.deck-tile.is-failed{background:var(--surface);box-shadow:none;border-style:dashed}.deck-tile.is-failed .deck-cover,.today-deck.is-failed .deck-cover{filter:grayscale(1);opacity:.5}.deck-tile-actions{display:flex;flex-wrap:wrap;gap:var(--s-1);margin-top:auto;padding-top:var(--s-2)}.deck-tile-actions .btn{white-space:nowrap}.page.playroom{max-width:1120px}.playroom,.gp{--book-paper: color-mix(in srgb, var(--sun-300) 20%, var(--canvas));--book-spine: color-mix(in srgb, var(--ink) 10%, transparent)}:root[data-theme=dark] :is(.playroom,.gp){--book-paper: color-mix(in srgb, var(--ink) 11%, var(--canvas));--book-spine: color-mix(in srgb, var(--ink) 16%, transparent)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) :is(.playroom,.gp){--book-paper: color-mix(in srgb, var(--ink) 11%, var(--canvas));--book-spine: color-mix(in srgb, var(--ink) 16%, transparent)}}.section-note{font-size:var(--text-xs);color:var(--ink-subtle)}.play-section{margin-top:var(--s-7)}.play-today{display:grid;gap:var(--s-4);grid-template-columns:1fr;align-items:stretch}@media(min-width:720px){.play-today{grid-template-columns:1fr 1fr;gap:var(--s-5)}}.play-today .today-cards{margin-bottom:0;display:flex;flex-direction:column}.play-today .today-cards-start{margin-top:auto}.today-cards-mix{margin:0 0 var(--s-4);font-size:var(--text-sm);color:var(--ink-muted)}.play-today .today-cards-head,.play-today .today-cards-body{margin-bottom:var(--s-5)}.today-cards-covers{list-style:none;margin:0 0 var(--s-5);padding:0;display:flex;flex-wrap:wrap;gap:var(--s-3)}.today-cards-covers li{display:flex;flex-direction:column;align-items:center;gap:6px;width:72px;animation:rise var(--dur-base) var(--ease-out) both;animation-delay:calc(var(--i, 0) * 50ms + .12s)}.today-cards-cover-name{font-size:var(--text-2xs);color:var(--ink-muted);line-height:var(--leading-snug);text-align:center;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.today-cards-covers-more{align-self:flex-start;height:56px;display:grid!important;place-items:center;font-size:var(--text-sm);font-weight:650;color:var(--ink-subtle)}@media(prefers-reduced-motion:reduce){.today-cards-covers li{animation:none}}.today-cards-up{display:none}@media(min-width:720px){.today-cards-up{display:block;margin:0 0 var(--s-5)}.today-cards-up-k{margin:0 0 var(--s-2);font-size:var(--text-2xs);font-weight:650;color:var(--ink-subtle)}.today-cards-up-faces{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,52px));gap:var(--s-2)}.today-cards-up-card{aspect-ratio:3 / 4;display:grid;place-items:center;padding:4px;overflow:hidden;container-type:inline-size;border-radius:var(--r-md);background:var(--canvas);color:var(--ink);box-shadow:inset 0 0 0 1px var(--line),var(--shadow-sm, 0 1px 2px rgb(0 0 0 / .06));animation:rise var(--dur-base) var(--ease-out) both;animation-delay:calc(var(--i, 0) * 50ms + .2s)}}@media(prefers-reduced-motion:reduce){.today-cards-up-card{animation:none}}@media(max-width:599px){.today-cards-covers{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin-inline:calc(var(--s-5) * -1);padding-inline:var(--s-5);scroll-padding-inline:var(--s-5)}.today-cards-covers::-webkit-scrollbar{display:none}.today-cards-covers li{flex:none}}.next-step{position:relative;isolation:isolate;display:flex;flex-direction:column;padding:var(--s-5) var(--s-5) var(--s-4);border:1px solid var(--line);border-radius:var(--r-xl);background:radial-gradient(110% 85% at 100% 0%,color-mix(in srgb,var(--sun-300) 22%,transparent),transparent 62%),radial-gradient(80% 70% at 0% 100%,color-mix(in srgb,var(--domain-literacy) 7%,transparent),transparent 55%),var(--canvas);box-shadow:var(--shadow-lg)}@media(min-width:720px){.next-step{min-height:230px}}@media(min-width:1100px){.play-today .today-cards,.next-step{min-height:280px;padding:var(--s-6)}.play-today .today-cards-title{font-size:clamp(2rem,2.6vw,2.6rem)}.next-step-art{top:var(--s-5);right:var(--s-5)}.next-step-art .path-cover{width:156px!important;height:156px!important}.next-step .today-cards-title,.next-step .today-cards-sub,.next-step .today-cards-kicker{max-width:calc(100% - 168px)}}.next-step .today-cards-kicker{color:color-mix(in srgb,var(--sun-500) 70%,var(--ink))}.next-step .today-cards-title,.next-step .today-cards-sub,.next-step .today-cards-kicker{max-width:calc(100% - 118px)}.next-step .today-cards-start{margin-top:auto}.next-step .today-cards-sub{margin-bottom:var(--s-5);line-height:var(--leading-snug)}.next-step-art{position:absolute;top:var(--s-4);right:var(--s-4);z-index:-1;transform:rotate(4deg);transition:transform var(--dur-slow) var(--ease-spring)}.next-step:hover .next-step-art{transform:rotate(-2deg) scale(1.04)}.next-step.is-empty{min-height:0}.path{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--s-5);position:relative}.path:before{content:"";position:absolute;left:7px;top:12px;bottom:24px;width:2px;border-radius:2px;background:linear-gradient(var(--accent),color-mix(in srgb,var(--accent) 30%,var(--line)) 55%,var(--line))}.path-track{position:relative;padding-left:var(--s-6);display:grid;gap:var(--s-3)}@media(min-width:820px){.path-track-head{display:flex;align-items:baseline;gap:var(--s-3);flex-wrap:wrap}.path-track-head .path-track-blurb{margin-top:0;flex:1 1 40ch;max-width:88ch}}.path-node{position:absolute;left:0;top:5px;width:16px;height:16px;border-radius:var(--r-full);background:var(--canvas);border:2px solid var(--line-strong)}.path-track.is-moving .path-node,.path-track.is-open .path-node{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-wash)}.path-track.is-moving .path-node:after{content:"";position:absolute;inset:3px;border-radius:inherit;background:var(--accent)}.path-track.is-done .path-node{background:var(--accent);border-color:var(--accent)}.path-track-title{font-family:var(--font-display);font-size:var(--text-lg);font-weight:600;line-height:var(--leading-tight);letter-spacing:var(--tracking-tight)}.path-track-blurb{font-size:var(--text-sm);color:var(--ink-muted);line-height:var(--leading-snug);margin-top:4px;max-width:44ch}.path-track.is-locked .path-track-title{color:var(--ink-muted)}.path-step{background:var(--canvas);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);padding:var(--s-4)}.path-step.is-next{border-color:color-mix(in srgb,var(--accent) 45%,var(--line));box-shadow:0 0 0 3px var(--accent-wash),var(--shadow-sm)}.path-step.is-locked{background:transparent;box-shadow:none;border-style:dashed}.path-card{display:flex;gap:var(--s-4);align-items:center}.path-card .path-foot{flex:1}.path-foot{display:flex;align-items:center;gap:var(--s-3);justify-content:space-between}.path-foot-text{min-width:0}.path-step-title{font-weight:600;font-size:var(--text-md);display:flex;align-items:center;gap:var(--s-2);flex-wrap:wrap}.path-progress{font-size:var(--text-sm);color:var(--ink-muted);line-height:var(--leading-snug);margin-top:2px}.path-progress.is-locked{color:var(--ink-subtle);display:inline-flex;align-items:center;gap:6px}.path-blend .path-progress{font-weight:550;color:var(--ink)}.path-play{flex:none;min-width:84px}.path-next-tag{display:inline-block;margin-left:var(--s-2);padding:1px 8px;border-radius:var(--r-full);background:var(--accent-soft);color:var(--accent);font-size:var(--text-2xs);font-weight:650;letter-spacing:var(--tracking-wide);vertical-align:1px}.path-locked-line{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2) var(--s-4)}.path-fams{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.path-fams-label{font-size:var(--text-2xs);color:var(--ink-subtle);margin-right:2px}.path-fam{padding:1px 9px;border-radius:var(--r-full);border:1px dashed var(--line-strong);font-family:var(--font-display);font-size:var(--text-sm);font-weight:600;color:var(--ink-muted)}.path-ladder{list-style:none;margin:0 0 var(--s-4);padding:0;display:grid;grid-template-columns:repeat(5,1fr);position:relative}.path-rung{position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center}.path-rung+.path-rung:before{content:"";position:absolute;top:17px;right:calc(50% + 22px);width:calc(100% - 44px);height:2px;border-radius:2px;background:linear-gradient(to right,var(--accent) calc(var(--fill, 0) * 100%),var(--line-strong) 0)}.path-rung-dot{width:30px;height:30px;margin-top:4px;display:grid;place-items:center;border-radius:var(--r-full);font-size:var(--text-xs);font-weight:650;font-variant-numeric:tabular-nums;color:var(--ink-subtle);background:var(--canvas);border:1.5px solid var(--line-strong);transition:transform var(--dur-slow) var(--ease-spring),background-color var(--dur-base) var(--ease-out)}.path-rung.is-done .path-rung-dot{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.path-rung.is-here .path-rung-dot{width:38px;height:38px;margin-top:0;font-size:var(--text-sm);color:var(--accent);border:2.5px solid var(--accent);box-shadow:0 0 0 5px var(--accent-wash)}.path-rung.is-nearing .path-rung-dot{position:relative;box-shadow:none}.path-rung.is-nearing .path-rung-dot:after{content:"";position:absolute;inset:-6px;border-radius:var(--r-full);background:conic-gradient(var(--accent) calc(var(--toward, 0) * 1turn),var(--accent-wash) 0);-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 3.5px),#000 calc(100% - 3px));mask:radial-gradient(farthest-side,transparent calc(100% - 3.5px),#000 calc(100% - 3px));transition:background var(--dur-slow) var(--ease-out)}.path-rung-name{font-size:var(--text-2xs);line-height:var(--leading-snug);color:var(--ink-subtle);max-width:12ch}.path-rung.is-here .path-rung-name{color:var(--ink);font-weight:650}.path-rung.is-done .path-rung-name{color:var(--ink-muted)}@media(max-width:540px){.path-rung:not(.is-here) .path-rung-name{visibility:hidden}.path-rung.is-here .path-rung-name{white-space:nowrap}}.path-sets{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:var(--s-2)}.path-set{display:flex;flex-direction:column;gap:8px;padding:var(--s-3);text-align:start;background:var(--canvas);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);min-height:var(--tap-min);transition:border-color var(--dur-fast) var(--ease-out),transform var(--dur-instant) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}.path-set:not(:disabled):hover{border-color:var(--line-strong);box-shadow:var(--shadow-md)}.path-set:not(:disabled):active{transform:scale(.98)}.path-set.is-next{border-color:color-mix(in srgb,var(--accent) 45%,var(--line));box-shadow:0 0 0 3px var(--accent-wash)}.path-set.is-locked{background:transparent;box-shadow:none;border-style:dashed;cursor:default}.next-step-words{display:flex;flex-wrap:wrap;gap:2px 14px;margin-top:4px;font-family:var(--font-display);font-size:clamp(1.25rem,3.6vw,1.55rem);font-weight:600;color:var(--accent)}.next-step .today-cards-title{text-wrap:balance}.path-set-words{display:flex;flex-wrap:wrap;gap:4px 10px;font-family:var(--font-display);font-size:var(--text-md);font-weight:600}.path-set.is-locked .path-set-words{color:var(--ink-subtle)}.path-set-bar{display:block;height:4px;border-radius:var(--r-full);background:linear-gradient(90deg,var(--accent) calc(var(--fill, 0) * 100%),var(--surface-alt) 0)}.path-set.is-locked .path-set-bar{display:none}.path-set-line{font-size:var(--text-2xs);color:var(--ink-muted);line-height:var(--leading-snug);display:flex;gap:5px;align-items:center}.path-set.is-done .path-set-line{color:var(--accent);font-weight:600}.path-set.is-next .path-set-line{color:var(--accent);font-weight:650}.path-sets-more{grid-column:1 / -1;font-size:var(--text-xs);color:var(--ink-subtle);margin-top:2px}.path-shelf-wrap{--fade: 5.5rem}.path-shelf-wrap.has-left .path-shelf{mask-image:linear-gradient(90deg,transparent,#000 var(--fade))}.path-shelf-wrap.has-right .path-shelf{mask-image:linear-gradient(90deg,#000 calc(100% - var(--fade)),transparent)}.path-shelf-wrap.has-left.has-right .path-shelf{mask-image:linear-gradient(90deg,transparent,#000 var(--fade),#000 calc(100% - var(--fade)),transparent)}.path-shelf{list-style:none;margin:0 calc(var(--s-4) * -1);padding:2px var(--s-4) var(--s-3);display:flex;gap:var(--s-3);overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:none}.path-shelf::-webkit-scrollbar{display:none}.path-shelf>li{flex:0 0 132px;scroll-snap-align:center}.path-books,.path-shelf-wrap{min-width:0;max-width:100%}.path-shelf-wrap{position:relative}.path-shelf-arrow{position:absolute;top:36%;width:36px;height:36px;display:none;place-items:center;border-radius:var(--r-full);background:var(--canvas);color:var(--ink);border:1px solid var(--line);box-shadow:var(--shadow-md);opacity:0;pointer-events:none;transition:opacity var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out)}.path-shelf-arrow.is-left{left:-6px}.path-shelf-arrow.is-left svg{transform:rotate(180deg)}.path-shelf-arrow.is-right{right:-6px}.path-shelf-arrow:hover{transform:scale(1.06)}.path-shelf-wrap.has-left .is-left,.path-shelf-wrap.has-right .is-right{opacity:1;pointer-events:auto}@media(min-width:820px){.path-shelf-arrow{display:grid}.path-shelf-arrow.is-left{left:0}.path-shelf-arrow.is-right{right:0}.path-shelf-wrap{padding-inline:44px}.path-shelf{margin:0;padding:4px var(--s-5) var(--s-3)}.path-shelf>li{flex-basis:144px}}.path-shelf>li.path-ahead-slot{flex-basis:168px;display:flex}@media(min-width:820px){.path-shelf-wrap{container-type:inline-size;--n: 3}.path-shelf{scroll-snap-type:x mandatory;scroll-padding-inline:var(--s-5)}.path-shelf>li,.path-shelf>li.path-ahead-slot{flex-basis:calc((100cqi - var(--s-5) * 2 - var(--s-3) * (var(--n) - 1)) / var(--n));scroll-snap-align:start}.path-shelf-wrap.has-left .path-shelf,.path-shelf-wrap.has-right .path-shelf{mask-image:none}.path-shelf{clip-path:inset(-8px calc(var(--s-5) - 4px))}}@container (min-width: 600px){.path-shelf{--n: 4}}@container (min-width: 760px){.path-shelf{--n: 5}}@container (min-width: 920px){.path-shelf{--n: 6}}.path-ahead{flex:1;display:flex;flex-direction:column;gap:6px;padding:var(--s-3);border:1.5px dashed var(--line-strong);border-radius:var(--r-lg)}.path-ahead-stack{position:relative;height:72px;margin-bottom:var(--s-1)}.path-ahead-cover{position:absolute;top:calc(var(--i) * 6px);left:calc(var(--i) * 26px);width:48px;aspect-ratio:4 / 5;display:grid;place-items:center;border-radius:4px var(--r-md) var(--r-md) 4px;background:linear-gradient(90deg,var(--book-spine) 0 4px,transparent 4px),var(--book-paper);border:1px solid var(--line);box-shadow:var(--shadow-sm);transform:rotate(calc((var(--i) - 1) * 4deg));filter:saturate(.35);opacity:.85;transition:transform var(--dur-base) var(--ease-spring),filter var(--dur-fast) var(--ease-out),opacity var(--dur-fast) var(--ease-out)}.path-ahead-cover:hover,.path-ahead-cover.is-peeked{transform:translateY(-4px) rotate(0);filter:none;opacity:1;z-index:1}.path-ahead-title{font-family:var(--font-display);font-size:var(--text-sm);font-weight:600;color:var(--ink-muted);line-height:var(--leading-snug)}.path-ahead-books{display:flex;flex-direction:column;align-items:flex-start;gap:0}.path-ahead-books button{min-height:28px;font-size:var(--text-xs);color:var(--ink-muted);text-align:start;line-height:var(--leading-snug);text-decoration:underline dotted transparent;text-underline-offset:3px;transition:color var(--dur-fast) var(--ease-out),text-decoration-color var(--dur-fast) var(--ease-out)}.path-ahead-books button:hover,.path-ahead-books button.is-peeked{color:var(--ink);text-decoration-color:currentColor}.path-ahead-hint{margin-top:auto;font-size:var(--text-2xs);color:var(--ink-subtle);line-height:1.7;display:flex;gap:5px;align-items:baseline}.path-ahead-hint svg{flex:none;transform:translateY(1px)}.path-gate-words{display:flex;flex-wrap:wrap;gap:3px;margin-top:3px}.path-word{display:inline-block;margin:0 2px;padding:0 6px;border-radius:var(--r-sm);background:var(--surface);font-family:var(--font-display);font-size:var(--text-xs);font-weight:600;color:var(--ink);line-height:1.5}.path-peek{display:grid;grid-template-columns:auto 1fr auto;gap:var(--s-4);align-items:start;margin-top:var(--s-2);padding:var(--s-4);border-radius:var(--r-lg);background:var(--book-paper);border:1px solid var(--line)}.path-peek-title{font-family:var(--font-display);font-size:var(--text-lg);font-weight:600;line-height:var(--leading-snug)}.path-peek-meta{display:flex;gap:6px;align-items:baseline;font-size:var(--text-xs);color:var(--ink-subtle);margin-top:2px}.path-peek-pages{margin:var(--s-3) 0 0;padding-left:1.4em;display:grid;gap:4px;font-family:var(--font-display);font-size:var(--text-md);line-height:var(--leading-snug);color:var(--ink)}.path-peek-pages li::marker{font-size:var(--text-2xs);color:var(--ink-subtle);font-family:var(--font-ui)}@media(max-width:540px){.path-peek{grid-template-columns:auto 1fr}.path-peek-close{grid-column:1 / -1;justify-self:start}}.path-book{width:100%;display:flex;flex-direction:column;gap:6px;text-align:start}.path-book-cover{position:relative;display:grid;place-items:center;aspect-ratio:4 / 5;border-radius:6px var(--r-lg) var(--r-lg) 6px;background:linear-gradient(90deg,var(--book-spine) 0 5px,transparent 5px),var(--book-paper);border:1px solid var(--line);box-shadow:var(--shadow-sm);transition:transform var(--dur-base) var(--ease-spring),box-shadow var(--dur-fast) var(--ease-out)}.path-book:not(:disabled):hover .path-book-cover{transform:translateY(-3px) rotate(-1deg);box-shadow:var(--shadow-md)}.path-book:not(:disabled):active .path-book-cover{transform:scale(.97)}.path-book.is-next .path-book-cover{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-wash),var(--shadow-md)}.path-book.is-done .path-book-cover{background:linear-gradient(90deg,color-mix(in srgb,var(--leaf-700) 30%,transparent) 0 5px,transparent 5px),var(--accent-soft)}.path-book.is-locked{cursor:default}.path-book.is-locked .path-book-cover{filter:grayscale(.85);opacity:.55;box-shadow:none}.path-book-lock,.path-book-next{position:absolute;bottom:8px;left:50%;transform:translate(-50%);display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:var(--r-full);font-size:var(--text-2xs);font-weight:650;white-space:nowrap;background:var(--canvas);color:var(--ink-muted);box-shadow:var(--shadow-sm)}.path-book-next{background:var(--accent);color:var(--accent-ink)}.path-book-title{font-size:var(--text-sm);font-weight:600;line-height:var(--leading-snug)}.path-book.is-locked .path-book-title{color:var(--ink-muted)}.path-book-meta{display:flex;align-items:center;gap:6px;font-size:var(--text-2xs);color:var(--ink-subtle)}.path-pips{display:inline-flex;gap:3px}.path-pip{width:7px;height:7px;border-radius:var(--r-full);border:1.5px solid var(--line-strong)}.path-pip.is-on{background:var(--accent);border-color:var(--accent)}.path-cover{display:inline-grid;place-items:center;flex:none;border-radius:24%}.path-cover img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 4px 6px rgba(58,45,20,.14))}.path-cover-emoji{line-height:1}.make{padding:var(--s-4);border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--line);margin-bottom:var(--s-4)}.make-label{display:block;font-family:var(--font-display);font-size:var(--text-md);font-weight:600;margin-bottom:var(--s-2)}.make-row{display:flex;gap:var(--s-2);align-items:flex-end}.make-input{flex:1;resize:none;min-height:52px;padding:var(--s-3);border-radius:var(--r-md);border:1px solid var(--line-strong);background:var(--canvas);color:var(--ink);font:inherit;font-size:var(--text-base);line-height:var(--leading-snug)}.make-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-wash)}.make-go{min-height:52px;padding:0 var(--s-5)}.make-hint{font-size:var(--text-xs);color:var(--ink-subtle);margin-top:var(--s-2)}.game-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--s-2)}@media(min-width:1100px){.game-list{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:var(--s-4)}}.play-empty{font-size:var(--text-sm);color:var(--ink-muted);padding:var(--s-4);border:1px dashed var(--line-strong);border-radius:var(--r-lg)}.play-more{margin-top:var(--s-3)}.game{display:flex;align-items:center;gap:var(--s-2);padding-right:var(--s-3);background:var(--canvas);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);transition:border-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}.game:hover{border-color:var(--line-strong);box-shadow:var(--shadow-md)}.game.is-making{border-color:color-mix(in srgb,var(--accent) 40%,var(--line));background:color-mix(in srgb,var(--accent) 4%,var(--canvas))}.game.is-failed{background:color-mix(in srgb,var(--signal-stalled) 5%,var(--canvas))}.game.is-arrived{animation:game-arrive 2.2s var(--ease-out) both}@keyframes game-arrive{0%{box-shadow:0 0 color-mix(in srgb,var(--accent) 45%,transparent),var(--shadow-sm);border-color:var(--accent)}30%{box-shadow:0 0 0 7px color-mix(in srgb,var(--accent) 16%,transparent),var(--shadow-md);border-color:var(--accent)}to{box-shadow:0 0 0 0 transparent,var(--shadow-sm)}}.game.is-arrived .game-thumb{animation:game-pop var(--dur-slow) var(--ease-spring) both}.game.is-arrived .game-thumb img{animation:game-fade var(--dur-slow) var(--ease-out) both}@keyframes game-pop{0%{transform:scale(.82)}to{transform:none}}@keyframes game-fade{0%{opacity:0;transform:scale(.9) rotate(-4deg)}to{opacity:1;transform:none}}.game-face{flex:1;min-width:0;display:flex;align-items:center;gap:var(--s-3);padding:var(--s-3);text-align:start}.game-thumb{flex:none;width:52px;height:52px;display:grid;place-items:center;border-radius:var(--r-md);color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--surface));border:1px solid color-mix(in srgb,var(--accent) 16%,transparent);overflow:hidden}.game-thumb img{width:88%;height:88%;object-fit:contain}.game-thumb-emoji{font-size:1.6em;line-height:1}.game-thumb-letter{font-family:var(--font-display);font-size:1.45em;font-weight:600;color:var(--accent)}.game-thumb{font-size:17px}.gp-thumb{font-size:34px}.gp-thumb .game-thumb-emoji,.gp-thumb .game-thumb-letter{font-size:1em}.gp-thumb .game-thumb-emoji{font-size:1.5em}.game-thumb-making{width:100%;height:100%;background:linear-gradient(100deg,transparent 20%,color-mix(in srgb,var(--brand-growth) 45%,transparent) 50%,transparent 80%) 0 0 / 250% 100%,color-mix(in srgb,var(--accent) 14%,var(--surface));animation:game-making 1.8s var(--ease-in-out) infinite,game-breathe 3.6s var(--ease-in-out) infinite}@keyframes game-making{0%{background-position:120% 0,0 0}to{background-position:-120% 0,0 0}}@keyframes game-breathe{50%{filter:brightness(1.06) saturate(1.2)}}@media(prefers-reduced-motion:reduce){.game-thumb-making,.game.is-arrived,.game.is-arrived .game-thumb{animation:none}}.game.is-failed .game-thumb{color:var(--signal-stalled);background:color-mix(in srgb,var(--signal-stalled) 8%,var(--surface));border-color:color-mix(in srgb,var(--signal-stalled) 18%,transparent)}.game-text{display:flex;flex-direction:column;gap:1px;min-width:0}.game-noun{font-size:var(--text-2xs);font-weight:650;letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--ink-subtle)}.game-new{margin-inline-start:var(--s-2);padding:1px 7px;border-radius:var(--r-full);background:var(--accent-wash);color:var(--accent);letter-spacing:0;text-transform:none;font-size:var(--text-2xs)}.game-title{font-size:var(--text-base);font-weight:580;line-height:var(--leading-snug);overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.game-line{font-size:var(--text-xs);color:var(--ink-muted)}.game-line{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.game-line.is-status{color:var(--accent);font-weight:600;white-space:normal}.game.is-making .game-line{color:color-mix(in srgb,var(--accent) 80%,var(--ink))}.game.is-failed .game-line{color:color-mix(in srgb,var(--signal-stalled) 80%,var(--ink))}.game-act{flex:none;display:flex;gap:var(--s-2)}.game-play{min-width:72px}.block-games{display:flex;flex-direction:column;gap:var(--s-2);margin-top:var(--s-3)}.block-games .game{box-shadow:none;background:var(--surface)}.block-game-tag{display:inline-flex;align-items:center;gap:4px;font-size:var(--text-2xs);font-weight:600;color:var(--accent)}.block-game-tag.is-making{animation:cards-breathe 1.8s var(--ease-in-out) infinite}.block-actions .btn svg{flex:none}.msg-blocks .game{max-width:520px}.page.gp{max-width:1120px}.gp-main{min-width:0;max-width:760px}@media(min-width:1100px){.gp-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:var(--s-7);align-items:start}.gp-layout .gp-main{max-width:none}.gp-side{position:sticky;top:var(--s-5)}.gp-side .section{margin-top:0}}.gp-back{display:inline-flex;align-items:center;gap:4px;min-height:var(--tap-min);margin:calc(var(--s-3) * -1) 0 var(--s-2) calc(var(--s-2) * -1);padding:0 var(--s-2);border-radius:var(--r-full);font-size:var(--text-sm);font-weight:550;color:var(--ink-muted)}.gp-back:hover{color:var(--ink);background:var(--surface)}.gp-hero{display:grid;grid-template-columns:auto 1fr;gap:var(--s-4) var(--s-5);padding:var(--s-5);border-radius:var(--r-xl);border:1px solid var(--line);background:radial-gradient(100% 90% at 100% 0%,color-mix(in srgb,var(--brand-growth) 12%,transparent),transparent 60%),var(--canvas);box-shadow:var(--shadow-lg)}.gp-hero.is-making{border-style:dashed;box-shadow:var(--shadow-sm)}.gp-thumb{width:108px;height:108px;display:grid;place-items:center;border-radius:var(--r-lg);color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--surface));border:1px solid color-mix(in srgb,var(--accent) 16%,transparent);overflow:hidden}.gp-thumb svg{width:48px;height:48px}.gp-thumb img{width:90%;height:90%;object-fit:contain}.gp-head{min-width:0;align-self:center}.gp-noun{font-size:var(--text-xs);font-weight:650;color:var(--accent)}.gp-title{font-family:var(--font-display);font-size:clamp(1.5rem,4.4vw,2.1rem);font-weight:600;line-height:var(--leading-tight);letter-spacing:var(--tracking-tight);margin-top:2px}.gp-summary{font-size:var(--text-base);color:var(--ink-muted);line-height:var(--leading-snug);margin-top:var(--s-2);max-width:52ch}.gp-progress{font-size:var(--text-sm);font-weight:600;color:var(--accent);margin-top:var(--s-2)}.gp-meta{font-size:var(--text-xs);color:var(--ink-subtle);margin-top:var(--s-2)}.gp-actions,.gp-making,.gp-failed{grid-column:1 / -1}.gp-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2)}.gp-play{min-width:148px;min-height:52px;font-size:var(--text-md);font-weight:600;box-shadow:0 6px 18px color-mix(in srgb,var(--accent) 28%,transparent)}.gp-try{min-height:52px}.gp-more{width:52px;min-height:52px;padding:0;justify-content:center;margin-left:auto}.gp-menu-item.is-danger:hover{border-color:var(--signal-attention);color:var(--signal-attention)}.gp-menu{flex-basis:100%;display:flex;flex-direction:column;gap:var(--s-1);padding:var(--s-3);margin-top:var(--s-1);border-radius:var(--r-md);background:var(--surface);animation:block-open var(--dur-fast) var(--ease-out) both}.gp-menu-head{font-size:var(--text-xs);font-weight:600;color:var(--ink-muted);margin-bottom:var(--s-1)}.gp-menu-item{min-height:var(--tap-min);padding:var(--s-2) var(--s-3);border-radius:var(--r-md);text-align:start;font-size:var(--text-sm);background:var(--canvas);border:1px solid var(--line)}.gp-menu-item:hover{border-color:var(--accent)}.gp-making-line{font-size:var(--text-sm);font-weight:600;color:var(--accent);margin-top:var(--s-3)}.gp-making-hint{font-size:var(--text-sm);color:var(--ink-muted);margin-top:4px}.gp-failed{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s-3)}.gp-failed p{font-size:var(--text-sm);color:color-mix(in srgb,var(--signal-stalled) 80%,var(--ink));max-width:50ch}.gp-revision{margin-top:var(--s-4);padding:var(--s-4);border-radius:var(--r-lg);border:1px dashed color-mix(in srgb,var(--accent) 45%,var(--line));background:var(--accent-wash)}.gp-revision.is-failed{border-color:color-mix(in srgb,var(--signal-stalled) 45%,var(--line));background:color-mix(in srgb,var(--signal-stalled) 6%,transparent)}.gp-revision .gen-bar{margin-bottom:var(--s-3)}.gp-revision-head{font-size:var(--text-sm);font-weight:650;color:var(--accent)}.gp-revision.is-failed .gp-revision-head{color:color-mix(in srgb,var(--signal-stalled) 85%,var(--ink))}.gp-revision-prompt{font-size:var(--text-sm);line-height:var(--leading-snug);margin-top:4px;max-width:62ch;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.gp-revision-then{font-size:var(--text-sm);color:var(--ink);margin-top:var(--s-2);line-height:var(--leading-snug)}.gp-revision-then-k{display:block;font-size:var(--text-2xs);font-weight:650;color:var(--ink-subtle)}.gp-version.is-waiting .gp-version-n{background:transparent;border:1.5px dashed var(--line-strong);color:var(--ink-subtle)}.gp-version.is-waiting .gp-version-ask{color:var(--ink-muted)}.gp-revision-note{font-size:var(--text-sm);color:var(--ink-muted);margin-top:4px}.gp-revision .btn{margin-top:var(--s-3)}.gp-preview{margin-top:var(--s-4)}.gp-talk{margin-top:var(--s-6)}.gp-talk-empty{font-size:var(--text-sm);color:var(--ink-muted);line-height:var(--leading-snug);max-width:56ch}.gp-thread{display:flex;flex-direction:column;gap:var(--s-4);padding:var(--s-4);border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--line)}.gp-working{display:flex;align-items:center;gap:var(--s-2);font-size:var(--text-sm);font-weight:550;color:var(--accent)}.gp-working-dot{width:8px;height:8px;border-radius:var(--r-full);background:var(--accent);animation:gp-working 1.4s var(--ease-out) infinite}@keyframes gp-working{0%,to{opacity:.35;transform:scale(.8)}50%{opacity:1;transform:scale(1)}}@media(prefers-reduced-motion:reduce){.gp-working-dot{animation:none}}.gp-earlier{align-self:center;min-height:var(--tap-min);padding:0 var(--s-4);border-radius:var(--r-full);font-size:var(--text-xs);font-weight:600;color:var(--ink-muted);border:1px solid var(--line);background:var(--canvas)}.gp-earlier:hover{color:var(--ink);border-color:var(--line-strong)}.gp-asks{display:flex;flex-wrap:wrap;gap:var(--s-2);margin-top:var(--s-3)}.gp-composer{margin-top:var(--s-3)}.gp-composer .composer{position:static;padding:0;background:none;border:0}.gp-composer :is(.composer-inner,.composer-photos){max-width:none;margin-inline:0}.gp-versions{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.gp-version{display:flex;align-items:flex-start;gap:var(--s-3);padding:var(--s-3) 0;border-top:1px solid var(--line)}.gp-version:first-child{border-top:0}.gp-version>.gp-version-n,.gp-version>.btn{margin-top:3px}.gp-version-n{flex:none;width:28px;height:28px;display:grid;place-items:center;border-radius:var(--r-full);font-size:var(--text-xs);font-weight:650;background:var(--surface);color:var(--ink-muted)}.gp-version.is-current .gp-version-n{background:var(--accent);color:var(--accent-ink)}.gp-version-text{flex:1;min-width:0;display:flex;flex-direction:column}.gp-version-ask{font-size:var(--text-sm);font-weight:550;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.gp-version-meta{font-size:var(--text-xs);color:var(--ink-subtle)}.gp-version.is-making .gp-version-meta{color:var(--accent);font-weight:600}.gp-version.is-making .gp-version-n{background:var(--accent-wash);color:var(--accent);animation:gp-pulse 1.8s var(--ease-in-out) infinite}@keyframes gp-pulse{50%{box-shadow:0 0 0 5px color-mix(in srgb,var(--accent) 18%,transparent)}}@media(prefers-reduced-motion:reduce){.gp-version.is-making .gp-version-n{animation:none}}.gp-versions-note{font-size:var(--text-xs);color:var(--ink-subtle);line-height:var(--leading-snug);margin-top:var(--s-3)}.artifact-other{margin-top:var(--s-3);padding-top:var(--s-3);border-top:1px dashed var(--line-strong);max-width:520px}.artifact-other-k{display:block;font-size:var(--text-2xs);font-weight:650;letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--ink-subtle);margin-bottom:var(--s-2)}.artifact-version{display:flex;align-items:center;gap:var(--s-3);margin:0;max-width:520px}.artifact-version .game-thumb{width:40px;height:40px;font-size:14px}.artifact-version>span:last-child,.artifact-version-text{display:flex;flex-direction:column;min-width:0}.artifact-version-text{flex:1}.artifact-version-play{flex:none}.artifact-version-n{font-size:var(--text-xs);font-weight:650;color:var(--ink-muted)}.artifact-version-label{font-size:var(--text-sm);color:var(--ink-muted);line-height:var(--leading-snug)}.artifact-version-when{font-size:var(--text-2xs);color:var(--ink-subtle);margin-top:2px}.artifact-version.is-waiting .game-thumb{background:transparent;border:1.5px dashed var(--line-strong);box-shadow:none}.artifact-version.is-waiting .game-thumb-making{opacity:.4}.game-thumb-making.is-still{animation:none}.gp-version-brief summary{cursor:pointer;list-style:none;display:flex;flex-direction:column;border-radius:var(--r-sm)}.gp-version-brief summary::-webkit-details-marker{display:none}.gp-version-brief summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.gp-version-brief .gp-version-meta:after{content:" ›";display:inline-block;margin-left:4px;transition:transform var(--dur-fast, .15s) var(--ease-out, ease)}.gp-version-brief[open] .gp-version-meta:after{transform:rotate(90deg)}.gp-version-brief[open] .gp-version-ask{-webkit-line-clamp:unset}.gp-version-brief p{margin-top:var(--s-2);font-size:var(--text-xs);color:var(--ink-muted);line-height:var(--leading-snug);white-space:pre-wrap}.gp-version-brief-k{display:block;font-weight:650;color:var(--ink-subtle);margin-bottom:2px}.gp-version.is-failed .gp-version-meta{color:var(--signal-stalled)}@media(max-width:540px){.gp-hero{grid-template-columns:1fr;padding:var(--s-4)}.gp-thumb{width:84px;height:84px}.gp-play{flex:1 0 100%}.gp-try{flex:1}.next-step-art .path-cover{width:84px!important;height:84px!important}.next-step .today-cards-title,.next-step .today-cards-sub,.next-step .today-cards-kicker,.next-step-words{max-width:calc(100% - 88px)}.make-row{flex-direction:column;align-items:stretch}.game.is-failed{flex-wrap:wrap}.game.is-failed .game-act{width:100%;padding:0 0 var(--s-3) calc(52px + var(--s-3) * 2);margin-top:calc(var(--s-2) * -1)}}.next-step-book{display:flex;flex-direction:column;gap:var(--s-2);margin:var(--s-2) 0 var(--s-1);max-width:calc(100% - 118px)}@media(min-width:1100px){.next-step-book{max-width:calc(100% - 168px)}}.next-step-line{font-family:var(--font-display);font-size:var(--text-lg);font-weight:600;color:var(--ink);line-height:var(--leading-snug);text-wrap:pretty}.next-step-meet{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 2px}.next-step-meet .path-word{font-size:var(--text-sm);background:color-mix(in srgb,var(--accent) 9%,var(--surface));color:var(--accent)}.next-step-meet-k{margin-right:6px;font-size:var(--text-xs);color:var(--ink-subtle)}.next-step-meet-more{font-size:var(--text-xs);color:var(--ink-subtle);margin-left:4px}.game-group+.game-group{margin-top:var(--s-5)}@media(min-width:1100px){.game-groups{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--s-5) var(--s-4);align-items:start}.game-groups>.game-group{grid-column:1 / -1;margin-top:0}.game-groups>.game-group.is-half{grid-column:auto}.game-groups>.game-group:not(.is-half) .game-list>li:only-child{grid-column:1 / -1}.game-group.is-half .game-list{grid-template-columns:minmax(0,1fr)}}.game-group-title{display:flex;align-items:baseline;gap:var(--s-2);margin:var(--s-4) 0 var(--s-2);font-size:var(--text-sm);font-weight:650;color:var(--ink)}.game-group-n{font-size:var(--text-2xs);font-weight:600;color:var(--ink-subtle)}.game-group .play-more{margin-top:var(--s-2)}.game:has(.gp-menu){flex-wrap:wrap}.game .game-act{align-items:center}.game .gp-menu{order:3;flex-basis:calc(100% - var(--s-3));margin:0 0 var(--s-3) var(--s-3)}.gp-more.is-compact{width:var(--tap-min);min-height:var(--tap-min);margin-left:0}.game .game-act:has(.gp-menu){display:contents}.gp-preview{scroll-margin-top:var(--s-4)}.gp-preview .preview-stage{--preview-h: calc(100dvh - var(--s-6) * 2);width:min(100%,calc(var(--preview-h) * 9 / 16));margin-inline:auto;min-height:0}.gp-preview .preview-stage .material-frame{width:100%;height:auto;aspect-ratio:9 / 16;min-height:0;max-height:none}.gp-menu-item{color:var(--ink)}.gp-more.is-compact{color:var(--ink-muted)}.next-step-sounds{list-style:none;margin:var(--s-3) 0 var(--s-3);padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(72px,1fr));gap:var(--s-2)}.next-step-sounds li{display:flex;flex-direction:column;align-items:center;gap:2px;padding:var(--s-2) var(--s-1) var(--s-2);border-radius:var(--r-lg);background:color-mix(in srgb,var(--accent) 5%,var(--surface));border:1px solid color-mix(in srgb,var(--accent) 12%,transparent);animation:reveal var(--dur-slow) var(--ease-out) both;animation-delay:calc(var(--i) * 60ms + .12s)}.next-step-sound-pic{width:64px;height:64px;display:grid;place-items:center;font-size:34px}.next-step-sound-pic img{width:100%;height:100%;object-fit:contain}.next-step-sound-letter{font-family:var(--font-display);font-size:clamp(1.6rem,3vw,2.1rem);font-weight:600;line-height:1;color:var(--accent)}.next-step-sound-word{font-size:var(--text-xs);color:var(--ink-subtle)}.next-step.is-tiled .today-cards-title,.next-step.is-tiled .today-cards-sub,.next-step.is-tiled .today-cards-kicker,.next-step.is-tiled .next-step-words{max-width:none}.next-step-blend{display:flex;flex-direction:column;margin-top:var(--s-4)}.next-step-blend .path-ladder{margin-bottom:var(--s-4)}.next-step-blend .next-step-sounds{margin-top:var(--s-2)}.next-step-blend .next-step-sound-letter{font-size:clamp(1.3rem,2.4vw,1.7rem)}@media(prefers-reduced-motion:reduce){.next-step-sounds li{animation:none}}.game-thumb-making{position:relative;display:grid;place-items:center}.game-thumb-making>img,.game-thumb-making>span{opacity:.38;filter:saturate(.6);width:80%;height:80%;object-fit:contain;display:grid;place-items:center}.game-thumb-making{background:linear-gradient(100deg,transparent 25%,color-mix(in srgb,var(--canvas) 70%,transparent) 50%,transparent 75%) 0 0 / 250% 100%,color-mix(in srgb,var(--accent) 16%,var(--surface))}.game.is-locked{background:transparent;box-shadow:none;border-style:dashed}.game.is-locked .game-thumb{filter:saturate(.85)}.game-line.is-locked{display:flex;gap:5px;align-items:center;white-space:normal;color:var(--ink-muted)}.game-line.is-locked svg{flex:none}@media(min-width:1100px){.path-sets:has(>.path-set:nth-child(6):last-child),.path-sets:has(>.path-set:nth-child(6)+.path-sets-more){grid-template-columns:repeat(3,minmax(0,1fr))}}@media(min-width:1400px){.path-sets:has(>.path-set:nth-child(6):last-child),.path-sets:has(>.path-set:nth-child(6)+.path-sets-more){grid-template-columns:repeat(6,minmax(0,1fr))}}.path-set-line .path-next-tag{margin-left:auto}.artifact-version{width:100%;max-width:none}.artifact-version-play,.artifact-version-now{margin-left:auto;flex:none}.artifact-version-now{font-size:var(--text-xs);font-weight:650;color:var(--accent);padding:2px 10px;border-radius:var(--r-full);background:var(--accent-wash)}.gp-asked{font-size:var(--text-base);color:var(--ink-muted);line-height:var(--leading-snug);margin-top:var(--s-2);max-width:52ch;font-style:italic}.gp-locked{grid-column:1 / -1;display:flex;align-items:center;gap:var(--s-2);font-size:var(--text-sm);color:var(--ink-muted)}.gp-together-note{font-size:var(--text-xs);color:var(--ink-subtle)}.gp-preview{scroll-margin-top:var(--s-3)}@media(min-width:1100px){.gp-layout.is-previewing .gp-side{top:var(--s-3);display:flex;flex-direction:column;gap:var(--s-5);max-height:calc(100dvh - var(--s-6) * 2)}.gp-layout.is-previewing .gp-side>.section:first-child{flex:none;max-height:34%;overflow-y:auto}.gp-layout.is-previewing .gp-talk{margin-top:0;min-height:0;flex:1;display:flex;flex-direction:column}.gp-layout.is-previewing .gp-thread{min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:var(--s-3)}.gp-layout.is-previewing .gp-composer{flex:none}}.path-set-line .path-next-tag{white-space:nowrap;flex:none}.play-index{position:sticky;top:0;z-index:15;display:flex;gap:var(--s-1);overflow-x:auto;scrollbar-width:none;margin:calc(var(--s-2) * -1) calc(var(--s-4) * -1) var(--s-4);padding:var(--s-2) var(--s-4);background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:saturate(1.4) blur(10px)}.play-index::-webkit-scrollbar{display:none}.play-index-item{flex:none;min-height:32px;padding:0 var(--s-3);border-radius:var(--r-full);font-size:var(--text-sm);font-weight:500;color:var(--ink-muted);transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}.play-index-item:hover{color:var(--ink);background:var(--surface)}.play-index-item.is-here{color:var(--ink);background:color-mix(in srgb,var(--accent) 14%,var(--canvas))}.play-part{scroll-margin-top:56px}:root{--paper-50: #FDFBF7;--paper-100: #F8F4EC;--paper-200: #F1EBE0;--paper-300: #E8E2D9;--paper-400: #D6CEC1;--ink-900: #1A1815;--ink-700: #3D3833;--ink-500: #6B6560;--ink-400: #8C857E;--ink-300: #ABA49C;--night-900: #0B0E12;--night-800: #0F1216;--night-700: #161A20;--night-600: #1D222A;--night-500: #262C34;--night-400: #333A44;--moon-100: #F0EDE8;--moon-300: #C9C4BC;--moon-500: #9A958E;--moon-600: #7A756E;--leaf-900: #173F2A;--leaf-700: #1F5E3B;--leaf-600: #2F7A4B;--leaf-500: #48A468;--leaf-300: #7BD39A;--leaf-200: #A9E3BE;--leaf-100: #E4F3E9;--growth-500: #A9B44E;--growth-300: #E0D98A;--sun-500: #C9A227;--sun-300: #EDCB6A;--brand-moss: var(--leaf-700);--brand-leaf: var(--leaf-500);--brand-growth: var(--growth-500);--brand-gradient: linear-gradient( 100deg, var(--brand-moss) 0%, var(--brand-leaf) 55%, var(--brand-growth) 100% );--domain-literacy: #2A6FB8;--domain-language: #3C63B5;--domain-logic: #6B5BD8;--domain-math: #8B45C4;--domain-fineMotor: #C24A76;--domain-grossMotor: #C25A20;--domain-socialEmotional: #A8791B;--domain-executiveFunction:#4F7A32;--domain-creative: #1D8E7B;--domain-time: #2C7F9E;--domain-science: #2C8F5C;--domain-secondLanguage: #9A4E90;--domain-selfCare: #6B7A3E;--signal-progress: #2C8F5C;--signal-steady: #6B6560;--signal-stalled: #B5761A;--signal-attention: #C4453C;--bg: var(--paper-50);--canvas: #FFFFFF;--surface: var(--paper-100);--surface-alt: var(--paper-200);--ink: var(--ink-900);--ink-muted: var(--ink-500);--ink-subtle: var(--ink-400);--line: var(--paper-300);--line-strong: var(--paper-400);--accent: var(--leaf-600);--accent-ink: #FFFFFF;--accent-wash: color-mix(in srgb, var(--leaf-500) 10%, transparent);--accent-soft: var(--leaf-100);--shadow-sm: 0 1px 2px rgba(58, 45, 20, .06);--shadow-md: 0 2px 10px rgba(58, 45, 20, .08), 0 1px 2px rgba(58, 45, 20, .05);--shadow-lg: 0 10px 32px rgba(58, 45, 20, .12), 0 2px 6px rgba(58, 45, 20, .06);--grain-opacity: .045;--font-display: "Fraunces", "Iowan Old Style", Georgia, serif;--font-ui: "Geist", ui-sans-serif, -apple-system, "Segoe UI", sans-serif;--font-mono: "Geist Mono", ui-monospace, "SF Mono", Menlo, monospace;--text-2xs: .6875rem;--text-xs: .75rem;--text-sm: .8125rem;--text-base:.9375rem;--text-md: 1.0625rem;--text-lg: 1.3125rem;--text-xl: 1.75rem;--text-2xl: 2.25rem;--text-3xl: 3rem;--leading-tight: 1.15;--leading-snug: 1.35;--leading-normal: 1.55;--leading-relaxed: 1.7;--tracking-tight: -.02em;--tracking-normal: 0;--tracking-wide: .04em;--tracking-caps: .08em;--s-1: .25rem;--s-2: .5rem;--s-3: .75rem;--s-4: 1rem;--s-5: 1.5rem;--s-6: 2rem;--s-7: 3rem;--s-8: 4rem;--r-sm: 6px;--r-md: 10px;--r-lg: 16px;--r-xl: 22px;--r-full: 999px;--dur-instant: 90ms;--dur-fast: .16s;--dur-base: .24s;--dur-slow: .42s;--ease-out: cubic-bezier(.22, 1, .36, 1);--ease-in-out: cubic-bezier(.65, 0, .35, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--nav-h: 56px;--top-h: 52px;--content-max: 720px;--tap-min: 44px}:root[data-theme=dark]{--bg: var(--night-800);--canvas: var(--night-700);--surface: var(--night-600);--surface-alt: var(--night-500);--ink: var(--moon-100);--ink-muted: var(--moon-500);--ink-subtle: var(--moon-600);--line: var(--night-500);--line-strong: var(--night-400);--accent: var(--leaf-300);--accent-ink: var(--night-900);--accent-wash: color-mix(in srgb, var(--leaf-300) 12%, transparent);--accent-soft: color-mix(in srgb, var(--leaf-300) 16%, transparent);--brand-moss: var(--leaf-500);--brand-leaf: var(--leaf-300);--brand-growth: var(--growth-300);--grain-opacity: .03;--domain-literacy: #6BAEEE;--domain-language: #86A6F0;--domain-logic: #9C8CFF;--domain-math: #C48FEE;--domain-fineMotor: #F291B4;--domain-grossMotor: #F5A05C;--domain-socialEmotional: #E8C255;--domain-executiveFunction:#93C46B;--domain-creative: #4FD4BC;--domain-time: #6FC2E0;--domain-science: #63CE96;--domain-secondLanguage: #DE94D4;--domain-selfCare: #B5C47A;--signal-progress: #63CE96;--signal-steady: #9A958E;--signal-stalled: #E8B65C;--signal-attention: #F2756B;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .35);--shadow-md: 0 2px 10px rgba(0, 0, 0, .42), 0 1px 3px rgba(0, 0, 0, .3);--shadow-lg: 0 10px 34px rgba(0, 0, 0, .5), 0 3px 8px rgba(0, 0, 0, .35)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: var(--night-800);--canvas: var(--night-700);--surface: var(--night-600);--surface-alt: var(--night-500);--ink: var(--moon-100);--ink-muted: var(--moon-500);--ink-subtle: var(--moon-600);--line: var(--night-500);--line-strong: var(--night-400);--accent: var(--leaf-300);--accent-ink: var(--night-900);--accent-wash: color-mix(in srgb, var(--leaf-300) 12%, transparent);--accent-soft: color-mix(in srgb, var(--leaf-300) 16%, transparent);--brand-moss: var(--leaf-500);--brand-leaf: var(--leaf-300);--brand-growth: var(--growth-300);--grain-opacity: .03;--domain-literacy: #6BAEEE;--domain-language: #86A6F0;--domain-logic: #9C8CFF;--domain-math: #C48FEE;--domain-fineMotor: #F291B4;--domain-grossMotor: #F5A05C;--domain-socialEmotional: #E8C255;--domain-executiveFunction:#93C46B;--domain-creative: #4FD4BC;--domain-time: #6FC2E0;--domain-science: #63CE96;--domain-secondLanguage: #DE94D4;--domain-selfCare: #B5C47A;--signal-progress: #63CE96;--signal-steady: #9A958E;--signal-stalled: #E8B65C;--signal-attention: #F2756B;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .35);--shadow-md: 0 2px 10px rgba(0, 0, 0, .42), 0 1px 3px rgba(0, 0, 0, .3);--shadow-lg: 0 10px 34px rgba(0, 0, 0, .5), 0 3px 8px rgba(0, 0, 0, .35)}}*,*:before,*:after{box-sizing:border-box}*{margin:0}html,body,#root{height:100%}body{font-family:var(--font-ui);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overscroll-behavior-y:none}button,input,textarea,select{font:inherit;color:inherit}button{background:none;border:none;padding:0;cursor:pointer;-webkit-tap-highlight-color:transparent}svg{display:block}body:before{content:"";position:fixed;inset:0;z-index:9999;pointer-events:none;opacity:var(--grain-opacity, .045);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='260' height='260'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:260px 260px}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--r-sm)}:focus:not(:focus-visible){outline:none}::selection{background:var(--accent-wash)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.shell{display:grid;grid-template-rows:auto 1fr auto;height:100%;max-width:100%}.shell-top{display:flex;align-items:center;gap:var(--s-3);height:var(--top-h);padding:0 var(--s-4);padding-top:env(safe-area-inset-top);border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:saturate(1.4) blur(12px);position:sticky;top:0;z-index:20}.shell-brand{display:flex;align-items:center;gap:var(--s-2)}.shell-brand svg{color:var(--accent)}.shell-brand-name{font-family:var(--font-display);font-size:var(--text-md);font-weight:600;letter-spacing:var(--tracking-tight)}.shell-child{margin-left:auto;display:flex;align-items:center;gap:var(--s-2);padding:3px var(--s-3) 3px 3px;border-radius:var(--r-full);background:var(--surface);border:1px solid var(--line);font-size:var(--text-sm);font-weight:500;transition:background var(--dur-fast) var(--ease-out)}.shell-child:hover{background:var(--surface-alt)}.shell-child-avatar{width:24px;height:24px;border-radius:var(--r-full);display:grid;place-items:center;background:var(--accent-soft);color:var(--accent);font-family:var(--font-display);font-weight:600;font-size:var(--text-xs)}.shell-top-right{display:flex;align-items:center;gap:var(--s-2)}.shell-offline{display:inline-flex;align-items:center;gap:var(--s-1);font-size:var(--text-2xs);font-weight:500;color:var(--signal-stalled);padding:var(--s-1) var(--s-2);border-radius:var(--r-full);background:color-mix(in srgb,var(--signal-stalled) 12%,transparent)}.shell-main{overflow-y:auto;overscroll-behavior-y:contain;scrollbar-width:thin}.shell-nav{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;height:var(--nav-h);padding-bottom:env(safe-area-inset-bottom);border-top:1px solid var(--line);background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:saturate(1.4) blur(12px);position:sticky;bottom:0;z-index:20}.shell-nav-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--ink-subtle);min-height:var(--tap-min);transition:color var(--dur-fast) var(--ease-out)}.shell-nav-item.is-active{color:var(--ink)}.shell-nav-item:hover{color:var(--ink-muted)}.shell-nav-item.is-active:hover{color:var(--ink)}.shell-nav-icon{position:relative}.shell-nav-item.is-active .shell-nav-icon:after{content:"";position:absolute;inset-inline:50%;bottom:-7px;width:4px;height:4px;margin-inline-start:-2px;border-radius:var(--r-full);background:var(--accent)}.shell-nav-badge{position:absolute;top:-5px;inset-inline-start:11px;min-width:15px;height:15px;padding:0 4px;border-radius:var(--r-full);background:var(--accent);color:var(--accent-ink);font-size:9px;font-weight:700;line-height:15px;text-align:center;font-variant-numeric:tabular-nums}.shell-nav-label{font-size:var(--text-2xs);font-weight:500;letter-spacing:var(--tracking-wide)}.shell-nav-brand,.shell-nav-foot{display:none}@media(min-width:900px){:root{--nav-h: 0px;--rail-w: 224px}.shell{grid-template-columns:var(--rail-w) minmax(0,1fr);grid-template-rows:1fr;grid-template-areas:"nav main"}.shell-top{display:none}.shell-main{grid-area:main}.shell-nav{grid-area:nav;position:static;height:auto;display:flex;flex-direction:column;gap:2px;padding:var(--s-5) var(--s-3) var(--s-4);border-top:0;border-right:1px solid var(--line);background:color-mix(in srgb,var(--surface) 70%,var(--bg));backdrop-filter:none}.shell-nav-brand{display:flex;align-items:center;gap:var(--s-2);padding:0 var(--s-3);margin-bottom:var(--s-5);font-family:var(--font-display);font-size:var(--text-lg);font-weight:600;letter-spacing:var(--tracking-tight);color:var(--ink)}.shell-nav-brand svg{color:var(--accent)}.shell-nav-item{flex-direction:row;justify-content:flex-start;gap:var(--s-3);min-height:40px;padding:0 var(--s-3);border-radius:var(--r-md);color:var(--ink-muted);transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out)}.shell-nav-item:hover{background:var(--accent-wash);color:var(--ink)}.shell-nav-item.is-active{background:var(--canvas);color:var(--ink);box-shadow:var(--shadow-sm)}.shell-nav-item.is-active .shell-nav-icon{color:var(--accent)}.shell-nav-item.is-active .shell-nav-icon:after{display:none}.shell-nav-label{font-size:var(--text-sm);letter-spacing:0;font-weight:500}.shell-nav-badge{inset-inline-start:12px}.shell-nav-foot{display:flex;flex-direction:column;gap:var(--s-2);margin-top:auto;padding-top:var(--s-4);border-top:1px solid var(--line)}.shell-nav-foot .shell-child{margin-left:0;display:flex;align-items:center;gap:var(--s-2);padding:var(--s-2) var(--s-3);background:transparent;border-color:transparent}.shell-nav-foot .shell-child:hover,.shell-nav-foot .shell-child[aria-current=page]{background:var(--canvas);border-color:var(--line)}.shell-child-avatar{width:26px;height:26px;font-size:var(--text-sm)}.shell-nav-foot .shell-offline{align-self:flex-start;margin-inline:var(--s-3)}}.page{max-width:var(--content-max);margin:0 auto;padding:var(--s-5) var(--s-4) var(--s-8)}.page{padding-bottom:calc(var(--s-4) + 64px + var(--s-2) + var(--tap-min) + var(--s-5))}.page-head{margin-bottom:var(--s-5)}.page-eyebrow{font-size:var(--text-2xs);font-weight:600;letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--ink-subtle);margin-bottom:var(--s-1)}.page-title{font-family:var(--font-display);font-size:var(--text-xl);font-weight:600;line-height:var(--leading-tight);letter-spacing:var(--tracking-tight)}.page-sub{color:var(--ink-muted);font-size:var(--text-sm);margin-top:var(--s-1)}.section{margin-top:var(--s-6)}.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--s-3);margin-bottom:var(--s-3)}.section-title{font-size:var(--text-md);font-weight:620;letter-spacing:-.005em;color:var(--ink)}.card{background:var(--canvas);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-sm)}.card-pad{padding:var(--s-4)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s-2);min-height:38px;padding:0 var(--s-4);border-radius:var(--r-full);font-size:var(--text-sm);font-weight:550;border:1px solid transparent;transition:background var(--dur-fast) var(--ease-out),transform var(--dur-instant) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}.btn:active{transform:scale(.975)}.btn-primary{background:var(--accent);color:var(--accent-ink)}.btn-primary:hover{background:color-mix(in srgb,var(--accent) 88%,var(--ink))}.btn-accent{background:var(--accent);color:var(--accent-ink)}.btn-ghost{background:transparent;border-color:var(--line);color:var(--ink)}.btn-ghost:hover{background:var(--surface);border-color:var(--line-strong)}.btn-quiet{background:transparent;color:var(--ink-muted)}.btn-quiet:hover{background:var(--surface);color:var(--ink)}.btn-sm{min-height:30px;padding:0 var(--s-3);font-size:var(--text-xs)}.pill{display:inline-flex;align-items:center;gap:var(--s-1);padding:2px var(--s-2);border-radius:var(--r-full);font-size:var(--text-2xs);font-weight:600;letter-spacing:var(--tracking-wide);text-transform:uppercase}.pill-domain{color:var(--domain-color, var(--ink-muted));background:color-mix(in srgb,var(--domain-color, var(--ink-muted)) 13%,transparent)}.trend-rising{color:var(--signal-progress)}.trend-steady{color:var(--signal-steady)}.trend-stalled{color:var(--signal-stalled)}.trend-regressing{color:var(--signal-attention)}.empty{text-align:center;padding:var(--s-7) var(--s-4);color:var(--ink-muted)}.empty-title{font-family:var(--font-display);font-size:var(--text-md);color:var(--ink);margin-bottom:var(--s-2)}.empty-body{font-size:var(--text-sm);max-width:34ch;margin:0 auto}.skeleton{background:linear-gradient(90deg,var(--surface) 25%,var(--surface-alt) 50%,var(--surface) 75%);background-size:200% 100%;animation:shimmer 1.4s var(--ease-in-out) infinite;border-radius:var(--r-md)}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.reveal{animation:reveal var(--dur-slow) var(--ease-out) both;animation-delay:calc(var(--i, 0) * 45ms)}@keyframes reveal{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.stack{display:flex;flex-direction:column}.stack-2{gap:var(--s-2)}.stack-3{gap:var(--s-3)}.stack-4{gap:var(--s-4)}.row{display:flex;align-items:center}.row-2{gap:var(--s-2)}.row-3{gap:var(--s-3)}.grow{flex:1}.muted{color:var(--ink-muted)}.subtle{color:var(--ink-subtle)}.tnum{font-variant-numeric:tabular-nums}.display{font-family:var(--font-display)}.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}.block{background:var(--canvas);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);overflow:hidden;transition:border-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out),opacity var(--dur-base) var(--ease-out)}.block:hover{border-color:var(--line-strong);box-shadow:var(--shadow-md)}.block.is-settled{opacity:.62}.block.is-settled:hover{opacity:1}.block.is-open{border-color:var(--line-strong);box-shadow:var(--shadow-md)}.block{display:block}.block-dot-hit{float:inline-start;display:grid;place-items:center;width:46px;height:54px}.block-head{display:flex;align-items:flex-start;gap:var(--s-3);width:calc(100% - 46px);padding:var(--s-4) var(--s-4) var(--s-4) 0;text-align:start}.block-dot{flex:none;width:24px;height:24px;border-radius:var(--r-full);border:2px solid var(--domain-color, var(--line-strong));display:grid;place-items:center;color:transparent;transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),transform var(--dur-instant) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}.block-dot:hover{box-shadow:0 0 0 4px color-mix(in srgb,var(--domain-color, var(--line-strong)) 18%,transparent)}.block-dot:active{transform:scale(.9)}.block-dot.is-settled{background:var(--domain-color, var(--ink-muted));border-color:var(--domain-color, var(--ink-muted));color:var(--canvas)}.block-head-text{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}.block-meta{display:flex;align-items:center;gap:var(--s-2)}.block-time{font-size:var(--text-2xs);color:var(--ink-subtle);font-weight:500}.block-title{font-size:var(--text-md);font-weight:560;line-height:var(--leading-snug);letter-spacing:var(--tracking-tight)}.block-head .block-instructions{color:var(--ink-muted);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.block.is-open .block-head .block-instructions{color:var(--ink);display:block;-webkit-line-clamp:unset}.block-chevron{flex:none;color:var(--ink-subtle);margin-top:4px;transition:transform var(--dur-base) var(--ease-out)}.block.is-open .block-chevron{transform:rotate(180deg)}.block-body{clear:both;padding:0 var(--s-4) var(--s-4) 46px;animation:block-open var(--dur-base) var(--ease-out) both}@keyframes block-open{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}.block-instructions{font-size:var(--text-sm);line-height:var(--leading-relaxed);color:var(--ink);white-space:pre-wrap}.block-facts{display:grid;gap:var(--s-2);margin-top:var(--s-3);padding-top:var(--s-3);border-top:1px dashed var(--line)}.block-fact{display:grid;grid-template-columns:5.4rem 1fr;gap:var(--s-3);align-items:baseline}.block-fact dt{font-size:var(--text-2xs);font-weight:600;letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--domain-color, var(--ink-muted));padding-top:2px}.block-fact dd{font-size:var(--text-sm);line-height:var(--leading-snug);color:var(--ink)}.block-have{display:flex;flex-wrap:wrap;gap:var(--s-1) var(--s-2);list-style:none;margin:0;padding:0}.block-have li{padding:1px var(--s-2);border-radius:var(--r-sm);background:var(--surface);border:1px solid var(--line);font-size:var(--text-xs);color:var(--ink-muted)}.block-by{margin-top:var(--s-3);font-size:var(--text-2xs);color:var(--ink-subtle);font-weight:500}@media(max-width:480px){.block-fact{grid-template-columns:1fr;gap:2px}}.block-actions{display:flex;flex-wrap:wrap;gap:var(--s-2);margin-top:var(--s-4)}.thread{display:grid;grid-template-rows:auto 1fr auto;height:100%;position:relative}.thread-bar{display:flex;align-items:center;gap:var(--s-2);padding:var(--s-2) var(--s-4);border-bottom:1px solid var(--line)}.thread-bar-title{display:flex;align-items:center;gap:var(--s-2);font-size:var(--text-sm);font-weight:550;color:var(--ink-muted);padding:var(--s-1) var(--s-2);border-radius:var(--r-md);max-width:70%}.thread-bar-title:hover{background:var(--surface);color:var(--ink)}.thread-bar-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.roster{display:flex;align-items:center;margin-left:auto}.roster-chip{width:24px;height:24px;border-radius:var(--r-full);display:grid;place-items:center;font-size:var(--text-2xs);font-weight:700;letter-spacing:0;color:var(--ink-subtle);background:var(--surface);border:1.5px solid var(--canvas);margin-left:-6px;transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}.roster-chip:first-child{margin-left:0}.roster-chip.is-active{color:var(--canvas);background:var(--accent)}.msg-author{font-size:var(--text-2xs);font-weight:600;letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--ink-subtle);margin-bottom:3px}.msg-user{display:flex;flex-direction:column;align-items:flex-end}.thread-bar-back{color:var(--ink-muted);width:32px;height:32px;border-radius:var(--r-md);display:grid;place-items:center;flex-shrink:0}.thread-bar-back:hover{background:var(--surface);color:var(--ink)}.thread-bar-new{color:var(--ink-subtle);width:32px;height:32px;border-radius:var(--r-md);display:grid;place-items:center}.thread-bar-new:hover{background:var(--surface);color:var(--ink)}.thread-scroll{overflow-y:auto;overscroll-behavior-y:contain}.thread-inner{max-width:var(--content-max);margin:0 auto;padding:var(--s-5) var(--s-4) var(--s-6);display:flex;flex-direction:column;gap:var(--s-5)}.thread-foot{display:flex;flex-direction:column}.thread-jump-lane{display:flex;justify-content:center;padding:var(--s-2) var(--s-4) 0;border-top:1px solid var(--line);background:color-mix(in srgb,var(--bg) 92%,transparent);animation:rise var(--dur-fast) var(--ease-out)}.thread-jump-lane+.composer{border-top:none}.thread-jump{padding:var(--s-1) var(--s-3);border-radius:var(--r-full);background:var(--ink);color:var(--bg);font-size:var(--text-xs);font-weight:550;box-shadow:var(--shadow-lg)}.msg-user-bubble{max-width:82%;padding:var(--s-3) var(--s-4);border-radius:var(--r-lg) var(--r-lg) var(--r-sm) var(--r-lg);background:var(--surface-alt);font-size:var(--text-base);line-height:var(--leading-snug);white-space:pre-wrap}.msg-agent{display:flex;flex-direction:column;gap:var(--s-3)}.msg-cursor{display:inline-block;width:7px;height:15px;background:var(--accent);border-radius:1px;animation:blink 1.05s steps(2,start) infinite;vertical-align:-2px}@keyframes blink{50%{opacity:0}}.msg-error{font-size:var(--text-sm);color:var(--signal-attention);padding:var(--s-2) var(--s-3);border-radius:var(--r-md);background:color-mix(in srgb,var(--signal-attention) 10%,transparent)}.msg-attachments,.msg-artifacts{display:flex;flex-wrap:wrap;gap:var(--s-2);margin-top:var(--s-2)}.msg-blocks{display:grid;gap:var(--s-3);margin-top:var(--s-3)}.prose{font-size:var(--text-base);line-height:var(--leading-relaxed)}.prose>*+*{margin-top:var(--s-3)}.prose h2,.prose h3,.prose h4{font-family:var(--font-display);font-weight:600;letter-spacing:var(--tracking-tight);line-height:var(--leading-snug);margin-top:var(--s-5)}.prose h2{font-size:var(--text-lg)}.prose h3{font-size:var(--text-md)}.prose h4{font-size:var(--text-base)}.prose ul,.prose ol{padding-inline-start:1.35em}.prose li+li{margin-top:var(--s-1)}.prose code{font-family:var(--font-mono);font-size:.9em;background:var(--surface);padding:1px 5px;border-radius:var(--r-sm)}.prose pre{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);padding:var(--s-3);overflow-x:auto}.prose pre code{background:none;padding:0}.prose blockquote{border-inline-start:3px solid var(--line-strong);padding-inline-start:var(--s-3);color:var(--ink-muted)}.prose a{color:var(--accent);text-underline-offset:2px}.tools{font-size:var(--text-xs)}.tools-head{display:flex;align-items:center;gap:var(--s-2);color:var(--ink-subtle);padding:var(--s-1) 0}.tools-head:hover{color:var(--ink-muted)}.tools-dot{width:6px;height:6px;border-radius:var(--r-full);background:var(--ink-subtle);flex:none}.tools.is-running .tools-dot{background:var(--accent);animation:pulse 1.3s var(--ease-in-out) infinite}@keyframes pulse{50%{opacity:.3;transform:scale(.8)}}.tools-summary{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tools-detail{list-style:none;padding:var(--s-2) 0 0 14px;margin:0;display:flex;flex-direction:column;gap:var(--s-1);color:var(--ink-muted)}.tools-item.is-error{color:var(--signal-attention)}.artifact-chip{padding:var(--s-1) var(--s-3);border-radius:var(--r-full);border:1px solid var(--line-strong);background:var(--canvas);font-size:var(--text-xs);font-weight:500}.artifact-chip:hover{background:var(--accent-wash)}.artifact-card{display:flex;flex-direction:column;gap:3px;align-items:flex-start;width:100%;text-align:start;padding:var(--s-3) var(--s-4);border:1px solid var(--line);border-radius:var(--r-lg);background:var(--canvas);box-shadow:var(--shadow-sm);transition:border-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out);position:relative}.artifact-card:hover{border-color:var(--line-strong);box-shadow:var(--shadow-md)}.artifact-card-kind{font-size:var(--text-2xs);font-weight:600;letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--accent)}.artifact-card-title{font-size:var(--text-md);font-weight:550;letter-spacing:var(--tracking-tight)}.artifact-card-summary{font-size:var(--text-sm);color:var(--ink-muted)}.artifact-card-version{position:absolute;top:var(--s-3);inset-inline-end:var(--s-3);font-size:var(--text-2xs);color:var(--ink-subtle);font-variant-numeric:tabular-nums}.artifact-replaced{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);width:100%;min-height:44px;margin:0;padding:var(--s-2) var(--s-2) var(--s-2) var(--s-4);border:1px dashed var(--line-strong);border-radius:var(--r-lg);font-size:var(--text-sm);color:var(--ink-subtle);font-variant-numeric:tabular-nums}.composer{padding:var(--s-3) var(--s-4) var(--s-4);border-top:1px solid var(--line);background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(12px)}.composer-inner{max-width:var(--content-max);margin:0 auto;display:flex;align-items:flex-end;gap:var(--s-2);padding:var(--s-2) var(--s-2) var(--s-2) var(--s-4);border:1px solid var(--line-strong);border-radius:var(--r-xl);background:var(--canvas);transition:border-color var(--dur-fast) var(--ease-out)}.composer-inner:focus-within{border-color:var(--accent)}.composer-input{flex:1;border:none;outline:none;resize:none;background:none;font-size:var(--text-base);line-height:var(--leading-snug);max-height:200px;padding:6px 0}.composer-input::placeholder{color:var(--ink-subtle)}.composer-send{flex:none;width:34px;height:34px;border-radius:var(--r-full);background:var(--ink);color:var(--bg);display:grid;place-items:center;transition:opacity var(--dur-fast) var(--ease-out),transform var(--dur-instant) var(--ease-out)}.composer-send:disabled{opacity:.3;cursor:default}.composer-send:not(:disabled):active{transform:scale(.93)}.picker-scrim{position:fixed;inset:0;z-index:40}.picker{position:absolute;top:48px;inset-inline-start:var(--s-4);z-index:41;min-width:260px;max-width:340px;max-height:60vh;overflow-y:auto;padding:var(--s-2);background:var(--canvas);border:1px solid var(--line-strong);border-radius:var(--r-lg);box-shadow:var(--shadow-lg)}.picker-empty{padding:var(--s-3);color:var(--ink-subtle);font-size:var(--text-sm)}.picker-item{display:flex;flex-direction:column;gap:2px;align-items:flex-start;width:100%;text-align:start;padding:var(--s-2) var(--s-3);border-radius:var(--r-md)}.picker-item:hover{background:var(--surface)}.picker-item.is-active{background:var(--accent-wash)}.picker-item-title{font-size:var(--text-sm);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.picker-item-meta{font-size:var(--text-2xs);color:var(--ink-subtle)}.empty-thread{text-align:center;padding:var(--s-8) var(--s-4)}.empty-thread-mark{display:flex;justify-content:center;margin-bottom:var(--s-4)}.empty-thread-title{font-family:var(--font-display);font-size:var(--text-lg);font-weight:600;letter-spacing:var(--tracking-tight)}.empty-thread-body{color:var(--ink-muted);font-size:var(--text-sm);max-width:42ch;margin:var(--s-2) auto 0;line-height:var(--leading-relaxed)}.empty-thread-prompts{display:flex;flex-direction:column;gap:var(--s-2);max-width:380px;margin:var(--s-6) auto 0}.empty-thread-prompt{padding:var(--s-3) var(--s-4);border-radius:var(--r-lg);border:1px solid var(--line);background:var(--canvas);font-size:var(--text-sm);text-align:start;color:var(--ink-muted);transition:all var(--dur-fast) var(--ease-out)}.empty-thread-prompt:hover{border-color:var(--line-strong);color:var(--ink);background:var(--surface)}.capture-dock{position:fixed;bottom:calc(var(--nav-h) + env(safe-area-inset-bottom) + var(--s-4));inset-inline-end:var(--s-4);z-index:60;display:flex;flex-direction:column;align-items:center;gap:var(--s-2)}@media(max-width:899px){.capture-dock{flex-direction:row-reverse;align-items:center}.capture-dock .capture-toast{position:absolute;bottom:calc(100% + var(--s-2));right:0}.capture-dock{transition:transform var(--dur-base) var(--ease-out),opacity var(--dur-fast) var(--ease-out)}.capture-dock.is-tucked{transform:scale(.6);opacity:0;pointer-events:none}.capture-dock{transform-origin:bottom right}}@media(prefers-reduced-motion:reduce){.capture-dock{transition:none}}.capture-btn{position:relative;width:64px;height:64px;border-radius:var(--r-full);background:var(--ink);color:var(--bg);display:grid;place-items:center;box-shadow:var(--shadow-lg);touch-action:none;user-select:none;-webkit-user-select:none;transition:transform var(--dur-fast) var(--ease-spring),background var(--dur-fast) var(--ease-out)}.capture-btn:active{transform:scale(.93)}.capture-btn.is-recording{background:var(--accent);color:var(--accent-ink);transform:scale(1.07)}.capture-btn.is-locked{background:var(--signal-attention);color:var(--canvas)}.capture-btn.is-textonly{background:var(--surface-alt);color:var(--ink)}.capture-btn-glyph{display:grid;place-items:center}.capture-btn-ring{position:absolute;inset:-5px;border-radius:var(--r-full);border:2px solid var(--accent);opacity:0}.capture-btn.is-recording .capture-btn-ring,.capture-btn.is-locked .capture-btn-ring{opacity:calc(.2 + var(--level, 0) * .8);transform:scale(calc(1 + var(--level, 0) * .22));transition:transform 80ms linear,opacity 80ms linear}.capture-btn.is-locked .capture-btn-ring{border-color:var(--signal-attention)}.capture-alt{width:var(--tap-min);height:var(--tap-min);border-radius:var(--r-full);background:var(--canvas);border:1px solid var(--line);color:var(--ink-muted);display:grid;place-items:center;box-shadow:var(--shadow-sm);transition:color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}.capture-alt:hover{color:var(--ink);border-color:var(--line-strong)}.capture-alt:active{transform:scale(.94)}.capture-toast{padding:var(--s-2) var(--s-3);border-radius:var(--r-full);background:var(--ink);color:var(--bg);font-size:var(--text-2xs);font-weight:500;white-space:nowrap;box-shadow:var(--shadow-md);animation:rise var(--dur-fast) var(--ease-out)}.capture-scrim{position:fixed;inset:0;z-index:50;background:color-mix(in srgb,var(--bg) 72%,transparent);backdrop-filter:blur(10px);display:grid;place-items:end center;padding:var(--s-4) var(--s-4) calc(var(--nav-h) + var(--s-8) + env(safe-area-inset-bottom));animation:fade var(--dur-fast) var(--ease-out)}@keyframes fade{0%{opacity:0}to{opacity:1}}.capture-panel{width:100%;max-width:460px;padding:var(--s-5) var(--s-4) var(--s-4);border-radius:var(--r-xl);background:var(--canvas);border:1px solid var(--line-strong);box-shadow:var(--shadow-lg);animation:rise var(--dur-base) var(--ease-out)}@keyframes rise{0%{transform:translateY(16px);opacity:0}to{transform:none;opacity:1}}.capture-panel-title{font-family:var(--font-display);font-size:var(--text-md);letter-spacing:var(--tracking-tight);margin-bottom:var(--s-3)}.waveform{--wave-bar: 3px;--wave-gap: 2px;--wave-step: calc(var(--wave-bar) + var(--wave-gap));display:flex;align-items:center;justify-content:center;gap:var(--wave-gap);height:56px;margin-bottom:var(--s-3)}.waveform-bar{width:var(--wave-bar);height:100%;border-radius:var(--r-full);background-image:var(--brand-gradient);background-size:calc(44 * var(--wave-step)) 100%;background-position:calc(var(--i, 0) * var(--wave-step) * -1) center;background-repeat:no-repeat;transform:scaleY(var(--v, .045));transition:transform 70ms linear}.waveform:not(.is-live) .waveform-bar{opacity:.4}.capture-transcript{font-size:var(--text-base);line-height:var(--leading-snug);min-height:3.4em;max-height:8em;overflow-y:auto;text-align:center;text-wrap:pretty}.capture-interim{color:var(--ink-muted)}.capture-hint{color:var(--ink-subtle)}.capture-error{font-size:var(--text-sm);color:var(--signal-stalled);text-align:center;margin-top:var(--s-2);text-wrap:pretty}.capture-panel-actions{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);margin-top:var(--s-4)}.capture-cue{font-size:var(--text-xs);color:var(--ink-subtle)}.capture-textarea{width:100%;border:none;outline:none;resize:none;background:none;font-size:var(--text-base);line-height:var(--leading-snug)}.quick{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-2)}.quick-btn{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-height:var(--tap-min);padding:var(--s-3);text-align:start;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--canvas);transition:border-color var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out),transform var(--dur-instant) var(--ease-out)}.quick-btn:hover{border-color:var(--tone);background:color-mix(in srgb,var(--tone) 8%,var(--canvas))}.quick-btn:active{transform:scale(.97)}.quick-mark{color:var(--tone)}.quick-label{font-size:var(--text-sm);font-weight:550}.quick-hint{font-size:var(--text-2xs);color:var(--ink-subtle);line-height:var(--leading-snug)}.quick-attention{--tone: var(--signal-attention)}.quick-steady{--tone: var(--signal-steady)}.quick-progress{--tone: var(--signal-progress)}.quick-milestone{--tone: var(--accent)}.extract{position:fixed;z-index:55;inset-inline:var(--s-4);bottom:calc(var(--nav-h) + env(safe-area-inset-bottom) + var(--s-4) + 64px + var(--s-3));margin-inline:auto;max-width:460px;max-height:min(72vh,640px);overflow-y:auto;display:flex;flex-direction:column;gap:var(--s-3);padding:var(--s-4);border:1px solid var(--line-strong);border-radius:var(--r-lg);background:var(--canvas);box-shadow:var(--shadow-lg);animation:rise var(--dur-base) var(--ease-out)}.extract-head{display:flex;align-items:center;gap:var(--s-2)}.extract-dot{width:7px;height:7px;border-radius:var(--r-full);background:var(--signal-progress);flex:none}.extract-dot.is-working{background:var(--accent);animation:pulse 1.4s var(--ease-in-out) infinite}.extract-label{font-size:var(--text-2xs);font-weight:600;letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--ink-muted)}.extract-close{margin-inline-start:auto;width:30px;height:30px;border-radius:var(--r-full);display:grid;place-items:center;color:var(--ink-subtle)}.extract-close:hover{background:var(--surface);color:var(--ink)}.extract-said{font-size:var(--text-sm);color:var(--ink-muted);line-height:var(--leading-snug);text-wrap:pretty}.extract-summary{font-size:var(--text-md);line-height:var(--leading-snug);letter-spacing:var(--tracking-tight);text-wrap:pretty}.extract-waiting{display:flex;flex-direction:column;gap:var(--s-2)}.extract-skeleton{height:13px;border-radius:var(--r-full)}.extract-skeleton.is-short{width:62%}.extract-domains{display:flex;flex-wrap:wrap;gap:var(--s-2);list-style:none;padding:0}.extract-domain{padding:2px var(--s-2);border-radius:var(--r-full);font-size:var(--text-2xs);font-weight:600;color:var(--domain-color);background:color-mix(in srgb,var(--domain-color) 12%,transparent)}.extract-skills{display:flex;flex-direction:column;gap:var(--s-1);list-style:none;padding:0}.extract-skill{display:flex;align-items:center;gap:var(--s-2);font-size:var(--text-sm)}.extract-skill-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.extract-signal{margin-inline-start:auto;font-size:var(--text-2xs);color:var(--ink-subtle)}.extract-move{margin-inline-start:auto;display:inline-flex;align-items:center;gap:3px;padding:1px var(--s-2);border-radius:var(--r-full);font-size:var(--text-xs);font-weight:600;color:var(--signal-progress);background:color-mix(in srgb,var(--signal-progress) 12%,transparent)}.extract-quote{border-inline-start:3px solid var(--accent);padding-inline-start:var(--s-3)}.extract-quote-text{font-family:var(--font-display);font-size:var(--text-md);line-height:var(--leading-snug);text-wrap:pretty}.extract-quote-note{font-size:var(--text-2xs);color:var(--ink-subtle);margin-top:2px}.extract-actions{display:flex;flex-wrap:wrap;gap:var(--s-2)}.extract-edit{gap:var(--s-4)}.field{display:flex;flex-direction:column;gap:var(--s-2);border:none;padding:0;margin:0;min-width:0}.field-label{font-size:var(--text-2xs);font-weight:600;letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--ink-subtle);padding:0}.field-input{width:100%;padding:var(--s-3);border:1px solid var(--line);border-radius:var(--r-md);background:var(--bg);color:var(--ink);font-size:var(--text-base);line-height:var(--leading-snug);resize:vertical;outline:none;transition:border-color var(--dur-fast) var(--ease-out)}.field-input:focus{border-color:var(--accent)}.extract-picker{display:flex;flex-wrap:wrap;gap:var(--s-2)}.extract-pick{min-height:32px;padding:var(--s-1) var(--s-3);border:1px solid var(--line);border-radius:var(--r-full);background:var(--canvas);font-size:var(--text-xs);font-weight:500;color:var(--ink-muted);transition:all var(--dur-fast) var(--ease-out)}.extract-pick:hover{border-color:var(--domain-color);color:var(--ink)}.extract-pick.is-on{color:var(--domain-color);border-color:var(--domain-color);background:color-mix(in srgb,var(--domain-color) 12%,transparent)}.extract-level-row{display:flex;align-items:center;gap:var(--s-3)}.extract-level-name{font-size:var(--text-sm);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.extract-levels{display:flex;gap:4px;flex:none}.extract-level{width:32px;height:32px;border-radius:var(--r-sm);border:1px solid var(--line);background:var(--canvas);font-size:var(--text-xs);font-weight:600;color:var(--ink-muted);font-variant-numeric:tabular-nums;transition:all var(--dur-fast) var(--ease-out)}.extract-level:hover{border-color:var(--line-strong);color:var(--ink)}.extract-level.is-on{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}@media(min-width:640px){.capture-scrim{place-items:center;padding-bottom:var(--s-8)}.quick{grid-template-columns:repeat(4,1fr)}}.chips{display:flex;flex-wrap:wrap;gap:var(--s-2);margin-bottom:var(--s-4)}.chip{display:inline-flex;align-items:center;gap:var(--s-2);padding:var(--s-1) var(--s-3);border-radius:var(--r-full);border:1px solid var(--line);background:var(--canvas);font-size:var(--text-xs);font-weight:500;color:var(--ink-muted)}.chip:hover{border-color:var(--line-strong);color:var(--ink)}.chip.is-active{background:var(--ink);color:var(--bg);border-color:var(--ink)}.chip-count{opacity:.55}.lib-grid{display:grid;gap:var(--s-3);grid-template-columns:repeat(auto-fill,minmax(210px,1fr))}.lib-item{display:flex;flex-direction:column;gap:4px;align-items:flex-start;text-align:start;padding:var(--s-4);border:1px solid var(--line);border-radius:var(--r-lg);background:var(--canvas);box-shadow:var(--shadow-sm);transition:border-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out),transform var(--dur-instant) var(--ease-out)}.lib-item:hover{border-color:var(--line-strong);box-shadow:var(--shadow-md)}.lib-item:active{transform:scale(.99)}.lib-item-kind{font-size:var(--text-2xs);font-weight:600;letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--accent)}.lib-item-title{font-size:var(--text-md);font-weight:550;letter-spacing:var(--tracking-tight)}.lib-item-summary{font-size:var(--text-sm);color:var(--ink-muted);line-height:var(--leading-snug)}.lib-item-meta{font-size:var(--text-2xs);color:var(--ink-subtle);margin-top:auto;padding-top:var(--s-2)}.bars{display:flex;flex-direction:column;gap:var(--s-2)}.bar-row{display:grid;grid-template-columns:8.5rem 1fr 2.4rem;align-items:center;gap:var(--s-3)}.bar-label{font-size:var(--text-sm);color:var(--ink-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bar-track{height:7px;border-radius:var(--r-full);background:var(--surface-alt);overflow:hidden}.bar-fill{display:block;height:100%;border-radius:var(--r-full);animation:bar-grow var(--dur-slow) var(--ease-out) both}@keyframes bar-grow{0%{transform:scaleX(0);transform-origin:left}}.bar-value{font-size:var(--text-sm);font-weight:550;text-align:end}.bars-note{font-size:var(--text-xs);color:var(--ink-subtle);margin-top:var(--s-3)}.stall-card{display:flex;flex-direction:column;gap:3px;align-items:flex-start;text-align:start;width:100%;padding:var(--s-3) var(--s-4);border:1px solid color-mix(in srgb,var(--signal-stalled) 40%,var(--line));border-radius:var(--r-lg);background:color-mix(in srgb,var(--signal-stalled) 7%,var(--canvas))}.stall-card:hover{border-color:var(--signal-stalled)}.stall-card-name{font-size:var(--text-md);font-weight:550}.stall-card-note{font-size:var(--text-sm);color:var(--ink-muted);line-height:var(--leading-snug)}.principle{display:flex;flex-direction:column;gap:2px;padding:var(--s-3) var(--s-4);border-inline-start:3px solid var(--accent);background:var(--surface);border-radius:0 var(--r-md) var(--r-md) 0}.principle-statement{font-size:var(--text-base);font-weight:550}.principle-detail{font-size:var(--text-sm);color:var(--ink-muted);line-height:var(--leading-snug)}.quote{margin:0}.quote-text{font-family:var(--font-display);font-size:var(--text-lg);line-height:var(--leading-snug);letter-spacing:var(--tracking-tight);margin:0}.quote-when{font-size:var(--text-2xs);color:var(--ink-subtle);margin-top:var(--s-1)}.gallery{display:grid;gap:var(--s-2);grid-template-columns:repeat(auto-fill,minmax(110px,1fr))}.gallery-item{aspect-ratio:1;border-radius:var(--r-md);overflow:hidden;border:1px solid var(--line);background:var(--surface);display:grid;place-items:center}.gallery-item img{width:100%;height:100%;object-fit:cover}.gallery-placeholder{font-size:var(--text-2xs);color:var(--ink-subtle);padding:var(--s-2);text-align:center}.today-foot{margin-top:var(--s-6);display:flex;justify-content:center}.sheet-label{display:block;font-size:var(--text-2xs);font-weight:600;letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--ink-muted);margin-bottom:var(--s-2)}.sheet-input{width:100%;padding:var(--s-3);border-radius:var(--r-lg);border:1px solid var(--line-strong);background:var(--bg);font-size:var(--text-base);line-height:var(--leading-snug);resize:vertical;outline:none;transition:border-color var(--dur-fast) var(--ease-out)}.sheet-input:focus{border-color:var(--accent)}.sheet-input::placeholder{color:var(--ink-subtle)}.gen-bar{height:3px;border-radius:var(--r-full);background:var(--surface-alt);overflow:hidden}.gen-bar-sweep{display:block;width:42%;height:100%;border-radius:var(--r-full);background:var(--brand-gradient);animation:sweep 1.6s var(--ease-in-out) infinite}@keyframes sweep{0%{transform:translate(-110%)}to{transform:translate(340%)}}@media(prefers-reduced-motion:reduce){.gen-bar-sweep{width:100%;animation:none;opacity:.55}}.preview{display:flex;flex-direction:column;gap:var(--s-3)}.preview-head{display:flex;align-items:center;gap:var(--s-3)}.preview-mark{flex:none;width:48px;height:48px;display:grid;place-items:center;border-radius:var(--r-md);color:var(--accent);background:var(--accent-wash)}.preview-head-text{min-width:0}.preview-title{font-family:var(--font-display);font-size:var(--text-md);font-weight:600;letter-spacing:var(--tracking-tight)}.preview-meta{font-size:var(--text-sm);color:var(--ink-muted)}.preview-skills{display:flex;flex-wrap:wrap;gap:var(--s-1);list-style:none;padding:0;margin:0}.preview-skill{font-size:var(--text-2xs);color:var(--ink-muted);padding:2px var(--s-2);border-radius:var(--r-full);background:var(--surface)}.preview-stage{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--bg);overflow:hidden;min-height:260px}.preview-foot{display:flex;align-items:center;gap:var(--s-3)}.preview-hint{font-size:var(--text-sm);color:var(--ink-muted);flex:1}.preview-broken{padding:var(--s-4);border-radius:var(--r-lg);border:1px solid color-mix(in srgb,var(--signal-stalled) 40%,var(--line));background:color-mix(in srgb,var(--signal-stalled) 7%,var(--canvas))}.preview-broken-title{font-size:var(--text-md);font-weight:560}.preview-broken-body{font-size:var(--text-sm);color:var(--ink-muted);line-height:var(--leading-snug);margin-top:var(--s-2)}.preview-broken-list{margin:var(--s-3) 0 0;padding-inline-start:1.2em;font-size:var(--text-xs);color:var(--ink-subtle);font-family:var(--font-mono)}.print-sheet{position:fixed;inset-inline-start:-200vw;top:0;width:190mm}.print-sheet-title{font-family:var(--font-display);font-size:20pt;font-weight:600;margin-bottom:8mm}@media print{.shell,.capture-dock,.sheet-scrim,.studio-dock{display:none!important}.print-sheet{position:static;width:auto;color:#000;background:#fff}}.kid{position:fixed;inset:0;z-index:70;display:grid;grid-template-rows:auto 1fr;background:var(--bg);overscroll-behavior:none;touch-action:manipulation;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.kid-bar{display:flex;align-items:center;gap:var(--s-3);padding:calc(env(safe-area-inset-top) + var(--s-2)) var(--s-3) var(--s-2)}.kid-stage{position:relative;min-height:0;display:grid;padding:0 var(--s-3) calc(env(safe-area-inset-bottom) + var(--s-3))}.kid-exit{position:relative;flex:none;width:44px;height:44px;border-radius:var(--r-full);display:grid;place-items:center;opacity:.3;transition:opacity var(--dur-base) var(--ease-out);touch-action:none}.kid-exit:hover,.kid-exit:focus-visible{opacity:.85}.kid-exit-dot{width:9px;height:9px;border-radius:var(--r-full);background:var(--ink-muted)}.kid-exit-ring{position:absolute;inset:0;width:44px;height:44px;transform:rotate(-90deg)}.kid-exit-track{fill:none;stroke:var(--line-strong);stroke-width:2;opacity:.5}.kid-exit-fill{fill:none;stroke:var(--accent);stroke-width:2.5;stroke-linecap:round;stroke-dasharray:106.8;stroke-dashoffset:calc(106.8 - 106.8 * var(--held, 0))}.kid-exit-hint{font-size:var(--text-xs);font-weight:550;color:var(--ink-muted);letter-spacing:var(--tracking-wide);opacity:0;transform:translate(-4px);transition:opacity var(--dur-slow) var(--ease-out),transform var(--dur-slow) var(--ease-out);pointer-events:none}.kid-exit-hint.is-shown,.kid-exit:hover+.kid-exit-hint,.kid-exit:focus-visible+.kid-exit-hint{opacity:1;transform:none}.kid-dots{display:flex;gap:var(--s-2);margin-inline:auto}.kid-dot{width:9px;height:9px;border-radius:var(--r-full);background:var(--line-strong);transition:background var(--dur-base) var(--ease-out),transform var(--dur-base) var(--ease-spring)}.kid-dot.is-done{background:var(--accent);transform:scale(1.18)}.kid-bar-track{flex:1;max-width:240px;height:6px;margin-inline:auto;border-radius:var(--r-full);background:var(--surface-alt);overflow:hidden}.kid-bar-fill{display:block;height:100%;border-radius:var(--r-full);background:var(--brand-gradient);transform-origin:left;transform:scaleX(var(--p, 0));transition:transform var(--dur-base) var(--ease-out)}.kid-mute{flex:none;margin-inline-start:auto;width:var(--tap-min);height:var(--tap-min);border-radius:var(--r-full);display:grid;place-items:center;color:var(--ink-subtle);opacity:.5}.kid-mute:hover,.kid-mute:focus-visible{opacity:1;color:var(--ink-muted)}.kid-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s-3);min-height:64px;min-width:64px;padding:0 var(--s-6);border-radius:var(--r-xl);background:var(--ink);color:var(--bg);font-size:var(--text-md);font-weight:600;letter-spacing:var(--tracking-tight);box-shadow:var(--shadow-md);transition:transform var(--dur-fast) var(--ease-spring)}.kid-btn:active{transform:scale(.96)}.kid-btn-quiet{background:transparent;color:var(--ink-muted);box-shadow:none;border:1px solid var(--line-strong)}.kid-refusal{place-self:center;max-width:40ch;text-align:center;padding:var(--s-5)}.kid-refusal-title{font-family:var(--font-display);font-size:var(--text-lg);font-weight:600;letter-spacing:var(--tracking-tight)}.kid-refusal-body{font-size:var(--text-base);color:var(--ink-muted);line-height:var(--leading-relaxed);margin-top:var(--s-3)}.kid-refusal-detail{margin-top:var(--s-4);font-size:var(--text-xs);color:var(--ink-subtle);text-align:start}.kid-refusal-detail summary{cursor:pointer}.kid-refusal-detail ul{margin:var(--s-2) 0 0;padding-inline-start:1.2em;font-family:var(--font-mono)}.kid-refusal-actions{display:flex;flex-wrap:wrap;gap:var(--s-3);justify-content:center;margin-top:var(--s-6)}.celebrate{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--s-6);text-align:center;padding:var(--s-5);background:var(--bg);animation:fade var(--dur-base) var(--ease-out)}.celebrate-bloom{position:relative;width:0;height:0;display:grid;place-items:center}.celebrate-core{position:absolute;width:46vmin;height:46vmin;margin:-23vmin;border-radius:var(--r-full);background:var(--brand-gradient);filter:blur(28px);opacity:.42;animation:bloom 1.1s var(--ease-out) both}@keyframes bloom{0%{transform:scale(.25);opacity:0}60%{opacity:.55}to{transform:scale(1);opacity:.42}}.celebrate-particle{position:absolute;width:var(--size, 8px);height:var(--size, 8px);border-radius:var(--r-full);background:var(--brand-gradient);animation:particle 1.5s var(--ease-out) both;animation-delay:var(--delay, 0ms)}@keyframes particle{0%{transform:rotate(var(--angle)) translateY(0) scale(.4);opacity:0}35%{opacity:1}to{transform:rotate(var(--angle)) translateY(calc(var(--distance) * -1)) scale(1);opacity:0}}.celebrate-text{position:relative}.celebrate-title{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:600;letter-spacing:var(--tracking-tight);line-height:var(--leading-tight);animation:reveal var(--dur-slow) var(--ease-out) .3s both}.celebrate-detail{font-size:var(--text-md);color:var(--ink-muted);margin-top:var(--s-2);animation:reveal var(--dur-slow) var(--ease-out) .45s both}.celebrate-actions{display:flex;flex-wrap:wrap;gap:var(--s-3);justify-content:center;opacity:0;pointer-events:none;transition:opacity var(--dur-slow) var(--ease-out)}.celebrate-actions.is-ready{opacity:1;pointer-events:auto}@media(prefers-reduced-motion:reduce){.celebrate-particle{display:none}.celebrate-core{animation:none;opacity:.42}.celebrate-actions{opacity:1;pointer-events:auto}}.welcome{min-height:100%;display:grid;place-items:center;padding:var(--s-5);background:radial-gradient(52% 38% at 50% -4%,color-mix(in srgb,var(--brand-leaf) 16%,transparent) 0%,transparent 100%),radial-gradient(40% 30% at 82% 8%,color-mix(in srgb,var(--brand-growth) 12%,transparent) 0%,transparent 100%)}.welcome-inner{max-width:420px;text-align:center}.welcome-mark{display:flex;justify-content:center;margin-bottom:var(--s-4)}.welcome-mark svg{transform-origin:50% 92%;animation:sprout .78s var(--ease-out) both}@keyframes sprout{0%{opacity:0;transform:scale(.55) translateY(10px)}60%{opacity:1}to{opacity:1;transform:none}}.welcome-inner>:not(.welcome-mark){animation:reveal var(--dur-slow) var(--ease-out) both}.welcome-inner>:nth-child(2){animation-delay:.22s}.welcome-inner>:nth-child(3){animation-delay:.3s}.welcome-inner>:nth-child(4){animation-delay:.38s}.welcome-inner>:nth-child(5){animation-delay:.47s}.welcome-inner>:nth-child(n+6){animation-delay:.54s}.welcome-title{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:600;letter-spacing:var(--tracking-tight)}.welcome-tagline{font-family:var(--font-display);font-size:var(--text-md);color:var(--ink-muted);margin-top:var(--s-2)}.welcome-body{font-size:var(--text-sm);color:var(--ink-muted);line-height:var(--leading-relaxed);margin-top:var(--s-4)}.welcome-actions{margin-top:var(--s-6);display:flex;justify-content:center;gap:var(--s-3)}.welcome-error{margin-top:var(--s-4);font-size:var(--text-sm);color:var(--signal-attention)}.btn-lg{min-height:var(--tap-min);padding:0 var(--s-5);font-size:var(--text-base)}.welcome{position:relative;overflow:hidden}.welcome-sky{position:absolute;inset:-20% -30% auto;height:62vh;pointer-events:none}.welcome-band{position:absolute;inset-inline:0;height:46%;background:var(--brand-gradient);filter:blur(64px);opacity:.18;border-radius:var(--r-full)}.welcome-band-1{top:8%;transform:rotate(-7deg)}.welcome-band-2{top:34%;transform:rotate(5deg);opacity:.1}.welcome-inner{position:relative;width:100%;max-width:460px}.welcome-inner.is-narrow{max-width:480px;text-align:start}.welcome-actions{flex-wrap:wrap}.welcome-note{margin-top:var(--s-4);font-size:var(--text-xs);color:var(--ink-subtle);max-width:36ch;margin-inline:auto;line-height:var(--leading-snug)}.welcome-step-head{margin-bottom:var(--s-5)}.welcome-step-title{font-family:var(--font-display);font-size:var(--text-xl);font-weight:600;line-height:var(--leading-tight);letter-spacing:var(--tracking-tight);margin-top:var(--s-1)}.welcome-step-sub{margin-top:var(--s-2);font-size:var(--text-sm);color:var(--ink-muted);line-height:var(--leading-relaxed)}.form{display:flex;flex-direction:column;gap:var(--s-5)}.field{display:flex;flex-direction:column;gap:var(--s-2);border:none;padding:0}.field-label{font-size:var(--text-sm);font-weight:550;color:var(--ink);padding:0}.field-input{width:100%;min-height:var(--tap-min);padding:var(--s-2) var(--s-3);border:1px solid var(--line-strong);border-radius:var(--r-md);background:var(--canvas);font-size:var(--text-base);line-height:var(--leading-snug);transition:border-color var(--dur-fast) var(--ease-out)}.field-input:focus{outline:none;border-color:var(--accent)}.field-input::placeholder{color:var(--ink-subtle)}textarea.field-input{resize:vertical;padding-top:var(--s-3)}.field-row{display:flex;gap:var(--s-2)}.field-row .field-input{min-width:0}.field-hint{font-size:var(--text-xs);color:var(--ink-subtle);line-height:var(--leading-snug)}.field-error{font-size:var(--text-sm);color:var(--signal-attention)}.field-danger{padding-top:var(--s-3);border-top:1px solid var(--line)}.form-actions{display:flex;gap:var(--s-3)}.form-actions .btn{flex:1}.segmented{display:flex;flex-wrap:wrap;gap:4px;padding:4px;border-radius:var(--r-full);background:var(--surface);border:1px solid var(--line)}.segment{flex:1 1 auto;min-height:36px;padding:0 var(--s-3);border-radius:var(--r-full);font-size:var(--text-sm);font-weight:500;color:var(--ink-muted);white-space:nowrap;transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}.segment:hover{color:var(--ink)}.segment.is-on{background:var(--canvas);color:var(--ink);font-weight:550;box-shadow:var(--shadow-sm)}.wizard{display:flex;flex-direction:column;gap:var(--s-4)}.wizard-progress{display:flex;gap:5px}.wizard-pip{flex:1;height:3px;border-radius:var(--r-full);background:var(--surface-alt);transition:background var(--dur-base) var(--ease-out)}.wizard-pip.is-on{background:var(--accent)}.wizard-ask{font-family:var(--font-display);font-size:var(--text-lg);line-height:var(--leading-snug);letter-spacing:var(--tracking-tight)}.wizard-hint{font-size:var(--text-sm);color:var(--ink-muted);line-height:var(--leading-relaxed);margin-top:calc(var(--s-2) * -1)}.wizard-options{display:flex;flex-direction:column;gap:var(--s-2)}.wizard-option{min-height:var(--tap-min);padding:var(--s-3) var(--s-4);border:1px solid var(--line);border-radius:var(--r-lg);background:var(--canvas);font-size:var(--text-base);text-align:start;line-height:var(--leading-snug);transition:border-color var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out),transform var(--dur-instant) var(--ease-out)}.wizard-option:hover{border-color:var(--accent);background:var(--accent-wash)}.wizard-option:active{transform:scale(.99)}.wizard-option.is-unsure{color:var(--ink-muted);border-style:dashed}.wizard-actions{display:flex;justify-content:space-between;gap:var(--s-2)}.wizard-note{min-height:96px}.wizard-note{width:100%;padding:var(--s-3);border:1px solid var(--line-strong);border-radius:var(--r-md);background:var(--canvas);font-size:var(--text-base);line-height:var(--leading-snug);resize:vertical}.wizard-note:focus{outline:none;border-color:var(--accent)}.wizard-foot{font-size:var(--text-xs);color:var(--ink-subtle);line-height:var(--leading-snug)}.sheet-scrim{position:fixed;inset:0;z-index:60;display:flex;align-items:flex-end;justify-content:center;background:color-mix(in srgb,var(--ink-900) 38%,transparent);backdrop-filter:blur(3px);animation:fade var(--dur-fast) var(--ease-out)}.sheet{display:flex;flex-direction:column;width:100%;max-width:560px;max-height:92vh;background:var(--bg);border:1px solid var(--line);border-bottom:none;border-radius:var(--r-xl) var(--r-xl) 0 0;box-shadow:var(--shadow-lg);animation:sheet-rise var(--dur-base) var(--ease-out)}.sheet.is-wide{max-width:760px}@keyframes sheet-rise{0%{transform:translateY(24px);opacity:0}to{transform:none;opacity:1}}.sheet-head{position:relative;display:flex;align-items:flex-start;gap:var(--s-3);padding:var(--s-5) var(--s-4) var(--s-3);border-bottom:1px solid var(--line)}.sheet-grip{position:absolute;top:8px;inset-inline:50%;width:34px;margin-inline-start:-17px;height:4px;border-radius:var(--r-full);background:var(--line-strong)}.sheet-head-text{flex:1;min-width:0}.sheet-eyebrow{font-size:var(--text-2xs);font-weight:600;letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--ink-subtle)}.sheet-title{font-family:var(--font-display);font-size:var(--text-lg);font-weight:600;letter-spacing:var(--tracking-tight);line-height:var(--leading-snug)}.sheet-close{flex:none;width:var(--tap-min);height:var(--tap-min);margin:-6px -8px 0 0;border-radius:var(--r-full);display:grid;place-items:center;color:var(--ink-muted)}.sheet-close:hover{background:var(--surface);color:var(--ink)}.sheet-body{overflow-y:auto;overscroll-behavior:contain;padding:var(--s-4);padding-bottom:calc(var(--s-5) + env(safe-area-inset-bottom))}.sheet-foot{display:flex;justify-content:flex-end;gap:var(--s-2);padding:var(--s-3) var(--s-4);padding-bottom:calc(var(--s-3) + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--canvas)}@media(min-width:640px){.sheet-scrim{align-items:center;padding:var(--s-5)}.sheet{border-radius:var(--r-xl);border-bottom:1px solid var(--line);max-height:86vh}.sheet-grip{display:none}.sheet-head{padding-top:var(--s-4)}}.toasts{position:fixed;inset-inline:0;bottom:calc(var(--nav-h) + env(safe-area-inset-bottom) + var(--s-3));z-index:70;display:flex;flex-direction:column;align-items:center;gap:var(--s-2);padding:0 var(--s-4);pointer-events:none}.toast{pointer-events:auto;display:flex;align-items:center;gap:var(--s-2);width:100%;max-width:440px;padding:var(--s-2) var(--s-2) var(--s-2) var(--s-4);border-radius:var(--r-full);background:var(--ink);color:var(--bg);box-shadow:var(--shadow-lg);font-size:var(--text-sm);animation:toast-in var(--dur-base) var(--ease-spring)}.toast.is-error{background:var(--signal-attention);color:var(--paper-50)}@keyframes toast-in{0%{transform:translateY(12px);opacity:0}to{transform:none;opacity:1}}.toast-message{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.toast-action{flex:none;min-height:32px;padding:0 var(--s-3);border-radius:var(--r-full);background:color-mix(in srgb,var(--bg) 18%,transparent);color:inherit;font-size:var(--text-xs);font-weight:600;letter-spacing:var(--tracking-wide)}.toast-action:hover{background:color-mix(in srgb,var(--bg) 30%,transparent)}.toast-dismiss{flex:none;width:32px;height:32px;border-radius:var(--r-full);display:grid;place-items:center;color:inherit;opacity:.6}.toast-dismiss:hover{opacity:1}.skeleton-text{display:flex;flex-direction:column;gap:var(--s-2)}.skeleton-block{display:flex;gap:var(--s-3);padding:var(--s-4);border:1px solid var(--line);border-radius:var(--r-lg);background:var(--canvas)}.skeleton-block-text{flex:1;display:flex;flex-direction:column;gap:var(--s-2)}.empty-icon{color:var(--ink-subtle);display:flex;justify-content:center;margin-bottom:var(--s-3)}.empty-action{display:flex;justify-content:center;margin-top:var(--s-4)}.error-detail{margin-top:var(--s-5);font-size:var(--text-xs);color:var(--ink-subtle)}.error-detail summary{cursor:pointer}.error-detail pre{margin-top:var(--s-2);padding:var(--s-2);border-radius:var(--r-sm);background:var(--surface);text-align:start;white-space:pre-wrap;font-family:var(--font-mono)}.page-eyebrow-btn{display:inline-flex;align-items:center;gap:var(--s-1);min-height:28px;color:var(--ink-subtle);transition:color var(--dur-fast) var(--ease-out)}.page-eyebrow-btn:hover{color:var(--ink-muted)}.rituals-count{font-size:var(--text-2xs);color:var(--ink-subtle)}.rituals-list{list-style:none;padding:0;margin:0}.ritual{display:flex;align-items:flex-start;gap:var(--s-3);width:100%;min-height:var(--tap-min);padding:var(--s-2) var(--s-2) var(--s-2) 0;text-align:start;border-radius:var(--r-md);transition:background var(--dur-fast) var(--ease-out)}.ritual:hover{background:var(--surface)}.ritual-box{flex:none;width:20px;height:20px;margin-top:2px;border-radius:var(--r-sm);border:1.5px solid var(--line-strong);display:grid;place-items:center;color:transparent;transition:background var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}.ritual.is-done .ritual-box{background:var(--ink-muted);border-color:var(--ink-muted);color:var(--canvas)}.ritual-text{display:flex;flex-direction:column;gap:1px;min-width:0}.ritual-title{font-size:var(--text-base);line-height:var(--leading-snug)}.ritual-desc{font-size:var(--text-sm);color:var(--ink-muted);line-height:var(--leading-snug)}.ritual.is-done .ritual-title{color:var(--ink-muted);text-decoration:line-through;text-decoration-color:var(--line-strong)}.ritual.is-done .ritual-desc{color:var(--ink-subtle)}.day-done{position:relative;overflow:hidden;padding:var(--s-5) var(--s-4);border:1px solid var(--line);border-radius:var(--r-lg);background:var(--canvas)}.day-done-glow{position:absolute;inset:-60% -20% auto;height:150px;background:var(--brand-gradient);filter:blur(52px);opacity:.14;pointer-events:none}.day-done-title{position:relative;font-family:var(--font-display);font-size:var(--text-lg);font-weight:600;letter-spacing:var(--tracking-tight)}.day-done-list{position:relative;list-style:none;padding:0;margin:var(--s-3) 0 0;display:flex;flex-direction:column;gap:var(--s-2);font-size:var(--text-sm);color:var(--ink-muted);line-height:var(--leading-snug)}.day-done-list strong{color:var(--ink);font-weight:550}.day-done-quote{position:relative;margin:var(--s-4) 0 0;padding-inline-start:var(--s-3);border-inline-start:2px solid var(--accent)}.day-done-quote blockquote{font-family:var(--font-display);font-size:var(--text-md);line-height:var(--leading-snug)}.day-done-quote figcaption{font-size:var(--text-2xs);color:var(--ink-subtle);margin-top:var(--s-1)}.day-done-actions{position:relative;margin-top:var(--s-4)}.cycle{display:flex;flex-direction:column;gap:var(--s-6)}.cycle-title{font-family:var(--font-display);font-size:var(--text-lg);font-weight:600;letter-spacing:var(--tracking-tight);line-height:var(--leading-snug)}.cycle-sub{font-size:var(--text-sm);color:var(--ink-muted);margin-top:var(--s-1)}.cycle-section{display:flex;flex-direction:column;gap:var(--s-3)}.cycle-note{font-size:var(--text-xs);color:var(--ink-subtle);line-height:var(--leading-relaxed)}.cycle-ceremony{position:relative;overflow:hidden;display:flex;align-items:center;gap:var(--s-3);width:100%;min-height:72px;padding:var(--s-4);text-align:start;border:1px solid var(--line-strong);border-radius:var(--r-lg);background:var(--canvas);color:var(--ink);transition:transform var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}.cycle-ceremony:hover{box-shadow:var(--shadow-md)}.cycle-ceremony:active{transform:scale(.995)}.cycle-ceremony-glow{position:absolute;inset:auto -10% -70%;height:130px;background:var(--brand-gradient);filter:blur(44px);opacity:.22}.cycle-ceremony-text{position:relative;flex:1;display:flex;flex-direction:column;gap:2px}.cycle-ceremony-title{font-family:var(--font-display);font-size:var(--text-md);font-weight:600;letter-spacing:var(--tracking-tight)}.cycle-ceremony-sub{font-size:var(--text-sm);color:var(--ink-muted)}.cycle-goals{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--s-3)}.cycle-goal{display:flex;flex-direction:column;gap:3px;padding-inline-start:var(--s-3);border-inline-start:3px solid var(--domain-color, var(--line-strong))}.cycle-goal-statement{font-size:var(--text-base);line-height:var(--leading-snug)}.cycle-goal-evidence{font-size:var(--text-2xs);color:var(--ink-subtle)}.cycle-priorities{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:var(--s-2)}.cycle-priorities li{display:inline-flex;align-items:center;gap:var(--s-2);padding:var(--s-1) var(--s-3);border-radius:var(--r-full);font-size:var(--text-xs);font-weight:550;color:var(--domain-color, var(--ink-muted));background:color-mix(in srgb,var(--domain-color, var(--ink-muted)) 12%,transparent)}.cycle-priority-rank{opacity:.55}.cycle-weeks{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--s-2)}.cycle-week{display:flex;align-items:center;gap:var(--s-3);width:100%;min-height:56px;padding:var(--s-3) var(--s-4);text-align:start;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--canvas);transition:border-color var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out)}.cycle-week:hover{border-color:var(--line-strong)}.cycle-week.is-live{border-color:var(--accent);background:var(--accent-wash)}.cycle-week-n{flex:none;width:26px;height:26px;border-radius:var(--r-full);display:grid;place-items:center;background:var(--surface-alt);font-size:var(--text-xs);font-weight:600;color:var(--ink-muted)}.cycle-week.is-live .cycle-week-n{background:var(--accent);color:var(--accent-ink)}.cycle-week-text{flex:1;display:flex;flex-direction:column;gap:1px;min-width:0}.cycle-week-theme{font-size:var(--text-base);font-weight:550;letter-spacing:var(--tracking-tight);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cycle-week-meta{font-size:var(--text-2xs);color:var(--ink-subtle)}.cycle-week-dots{display:flex;gap:3px;flex:none}.cycle-dot{width:5px;height:5px;border-radius:var(--r-full);background:var(--line-strong)}.cycle-dot.is-on{background:var(--signal-progress)}.cycle-principles{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--s-2);font-size:var(--text-sm);color:var(--ink-muted);line-height:var(--leading-snug)}.cycle-principles li{padding-inline-start:var(--s-3);border-inline-start:2px solid var(--line)}.cycle-foot{display:flex;justify-content:center}.week{display:flex;flex-direction:column;gap:var(--s-4)}.week-head{display:flex;flex-direction:column;align-items:flex-start;gap:var(--s-2)}.week-back{display:inline-flex;align-items:center;gap:var(--s-1);min-height:32px;font-size:var(--text-sm);color:var(--ink-muted)}.week-back:hover{color:var(--ink)}.week-theme{display:flex;align-items:baseline;gap:var(--s-2);min-height:36px;text-align:start;color:var(--ink)}.week-theme:hover{color:var(--accent)}.week-number{font-size:var(--text-2xs);font-weight:600;letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--ink-subtle)}.week-theme-name{font-family:var(--font-display);font-size:var(--text-lg);font-weight:600;letter-spacing:var(--tracking-tight)}.week-rename{display:flex;gap:var(--s-2);width:100%}.week-focus{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--s-2)}.week-focus li{display:flex;flex-direction:column;gap:1px;padding-inline-start:var(--s-3);border-inline-start:2px solid var(--domain-color, var(--line-strong));font-size:var(--text-sm);color:var(--ink-muted);line-height:var(--leading-snug)}.week-focus-domain{font-size:var(--text-2xs);font-weight:600;letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--domain-color, var(--ink-subtle))}.week-materials{padding:var(--s-3);border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);font-size:var(--text-sm)}.week-materials summary{cursor:pointer;font-weight:550;min-height:24px}.week-materials ul{margin:var(--s-2) 0 0;padding-inline-start:1.2em;color:var(--ink-muted)}.week-materials li+li{margin-top:var(--s-1)}.week-days{display:flex;flex-direction:column;gap:var(--s-5)}.week-day{display:flex;flex-direction:column;gap:var(--s-2)}.week-day-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--s-3);padding-bottom:var(--s-1);border-bottom:1px solid var(--line)}.week-day-date{font-size:var(--text-sm);font-weight:600;color:var(--ink-muted);min-height:28px}.week-day-date:hover{color:var(--accent)}.week-day.is-today .week-day-date{color:var(--ink)}.week-day-total{font-size:var(--text-2xs);color:var(--ink-subtle)}.week-day-note{font-size:var(--text-sm);color:var(--ink-muted);font-style:italic}.week-blocks{list-style:none;padding:0;margin:0;display:flex;flex-direction:column}.week-block{display:flex;align-items:center;gap:var(--s-2);min-height:var(--tap-min);transition:opacity var(--dur-base) var(--ease-out)}.week-block.is-settled{opacity:.55}.week-block.is-settled:hover{opacity:1}.week-block-check{flex:none;width:22px;height:22px;border-radius:var(--r-full);border:2px solid var(--domain-color, var(--line-strong));display:grid;place-items:center;color:transparent}.week-block.is-settled .week-block-check{background:var(--domain-color, var(--ink-muted));border-color:var(--domain-color, var(--ink-muted));color:var(--canvas)}.week-block-main{flex:1;display:flex;flex-direction:column;gap:1px;min-width:0;min-height:var(--tap-min);padding:var(--s-2) 0;text-align:start;border-radius:var(--r-sm)}.week-block-title{font-size:var(--text-base);line-height:var(--leading-snug);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.week-block-main:hover .week-block-title{color:var(--accent)}.week-block-meta{font-size:var(--text-2xs);color:var(--ink-subtle)}.week-block-order{flex:none;display:flex;flex-direction:column}.week-block-order button{width:30px;height:22px;display:grid;place-items:center;color:var(--ink-subtle);border-radius:var(--r-sm)}.week-block-order button:hover:not(:disabled){color:var(--ink);background:var(--surface)}.week-block-order button:disabled{opacity:.25;cursor:default}.week-add{display:inline-flex;align-items:center;gap:var(--s-2);min-height:36px;align-self:flex-start;font-size:var(--text-sm);color:var(--ink-subtle)}.week-add:hover{color:var(--accent)}.chip-swatch{padding-inline-start:var(--s-2)}.chip-dot{width:8px;height:8px;border-radius:var(--r-full);background:var(--domain-color, var(--line-strong))}.chip.is-active .chip-dot{background:currentColor}.review{display:flex;flex-direction:column;gap:var(--s-6)}.review-head{position:relative;overflow:hidden;padding:var(--s-6) 0 var(--s-2);text-align:center}.review-sky{position:absolute;inset:-70% -20% auto;height:190px;background:var(--brand-gradient);filter:blur(58px);opacity:.2;pointer-events:none}.review-eyebrow{position:relative;font-size:var(--text-2xs);font-weight:600;letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--ink-subtle)}.review-title{position:relative;font-family:var(--font-display);font-size:var(--text-2xl);font-weight:600;line-height:var(--leading-tight);letter-spacing:var(--tracking-tight);margin-top:var(--s-2)}.review-span{position:relative;font-size:var(--text-sm);color:var(--ink-muted);margin-top:var(--s-2)}.review-quote{margin:0;text-align:center}.review-quote blockquote{font-family:var(--font-display);font-size:var(--text-lg);line-height:var(--leading-snug);letter-spacing:var(--tracking-tight)}.review-quote figcaption{font-size:var(--text-xs);color:var(--ink-subtle);margin-top:var(--s-2)}.review-empty{font-size:var(--text-base);color:var(--ink-muted);line-height:var(--leading-relaxed);text-align:center;max-width:44ch;margin-inline:auto}.review-section{display:flex;flex-direction:column;gap:var(--s-3)}.review-note{font-size:var(--text-sm);color:var(--ink-muted);line-height:var(--leading-relaxed)}.moves{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--s-2)}.move{display:flex;align-items:center;gap:var(--s-3);padding:var(--s-3) var(--s-4);border:1px solid var(--line);border-radius:var(--r-lg);background:var(--canvas)}.move-name{flex:1;font-size:var(--text-base);font-weight:550;min-width:0}.move-domain{font-size:var(--text-2xs);color:var(--ink-subtle);text-transform:uppercase;letter-spacing:var(--tracking-wide);display:none}.move-bar{display:flex;align-items:center;gap:var(--s-2);flex:none}.move-from{font-size:var(--text-sm);color:var(--ink-subtle)}.move-arrow{width:22px;height:2px;border-radius:var(--r-full);background:linear-gradient(90deg,var(--line-strong),var(--signal-progress))}.move-to{font-size:var(--text-md);font-weight:600;color:var(--signal-progress)}.move-level{font-size:var(--text-sm);color:var(--ink-muted)}.move-jump{flex:none;padding:1px var(--s-2);border-radius:var(--r-full);font-size:var(--text-2xs);font-weight:700;color:var(--signal-progress);background:color-mix(in srgb,var(--signal-progress) 14%,transparent)}.move.is-new{border-style:dashed}@media(min-width:480px){.move-domain{display:inline}}.stuck{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--s-2)}.stuck li{display:flex;flex-direction:column;gap:2px;padding:var(--s-3) var(--s-4);border:1px solid color-mix(in srgb,var(--signal-stalled) 40%,var(--line));border-radius:var(--r-lg);background:color-mix(in srgb,var(--signal-stalled) 7%,var(--canvas))}.stuck-name{font-size:var(--text-base);font-weight:550}.stuck-note{font-size:var(--text-sm);color:var(--ink-muted);line-height:var(--leading-snug)}.proposal{display:flex;flex-direction:column;gap:var(--s-3);padding:var(--s-4);border:1px solid var(--line-strong);border-radius:var(--r-lg);background:var(--canvas)}.proposal.is-empty{border-style:dashed;align-items:flex-start}.proposal-title{font-family:var(--font-display);font-size:var(--text-md);font-weight:600;letter-spacing:var(--tracking-tight)}.proposal-why{font-size:var(--text-sm);color:var(--ink-muted);line-height:var(--leading-relaxed)}.proposal-reasons{margin:0;padding-inline-start:1.1em;font-size:var(--text-sm);color:var(--ink-muted);line-height:var(--leading-snug)}.proposal-reasons li+li{margin-top:var(--s-1)}.review-foot{display:flex;flex-direction:column;align-items:center;gap:var(--s-2);padding-top:var(--s-5);border-top:1px solid var(--line);text-align:center}.review-foot-note{font-size:var(--text-xs);color:var(--ink-subtle);max-width:40ch;line-height:var(--leading-snug)}.book-wrap{display:flex;flex-direction:column;gap:var(--s-5)}.book-empty{text-align:center;padding:var(--s-6) var(--s-3)}.book{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--canvas);overflow:hidden}.book-cover{position:relative;overflow:hidden;padding:var(--s-8) var(--s-5);text-align:center;border-bottom:1px solid var(--line)}.book-cover-sky{position:absolute;inset:-40% -20% auto;height:260px;background:var(--brand-gradient);filter:blur(50px);opacity:.24}.book-cover-eyebrow{position:relative;font-family:var(--font-display);font-size:var(--text-md);font-style:italic;color:var(--ink-muted)}.book-cover-name{position:relative;font-family:var(--font-display);font-size:var(--text-3xl);font-weight:600;line-height:var(--leading-tight);letter-spacing:var(--tracking-tight);margin-top:var(--s-2)}.book-cover-date{position:relative;font-size:var(--text-xs);color:var(--ink-subtle);margin-top:var(--s-3)}.book-page{padding:var(--s-5) var(--s-5) var(--s-6);border-bottom:1px solid var(--line)}.book-page-title{font-family:var(--font-display);font-size:var(--text-lg);font-weight:600;letter-spacing:var(--tracking-tight);margin-bottom:var(--s-4)}.book-can{list-style:none;padding:0;margin:0;display:grid;gap:var(--s-3)}.book-can li{display:flex;flex-direction:column;gap:2px}.book-can-name{font-family:var(--font-display);font-size:var(--text-md);font-weight:600;letter-spacing:var(--tracking-tight)}.book-can-note{font-size:var(--text-sm);color:var(--ink-muted);line-height:var(--leading-snug)}.book-can-moved{font-size:var(--text-2xs);font-weight:600;letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--signal-progress);margin-top:2px}.book-quotes{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--s-4)}.book-quotes blockquote{font-family:var(--font-display);font-size:var(--text-lg);line-height:var(--leading-snug);letter-spacing:var(--tracking-tight);padding-inline-start:var(--s-4);border-inline-start:2px solid var(--accent)}.book-gallery{display:grid;gap:var(--s-3);grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.book-gallery figure{margin:0}.book-gallery img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:var(--r-md);border:1px solid var(--line)}.book-gallery figcaption{font-size:var(--text-2xs);color:var(--ink-subtle);margin-top:var(--s-1)}.book-end{padding:var(--s-5);text-align:center;font-size:var(--text-2xs);color:var(--ink-subtle)}.book-actions{display:flex;gap:var(--s-3);justify-content:center;flex-wrap:wrap}@media(min-width:560px){.book-can{grid-template-columns:1fr 1fr;gap:var(--s-4)}}@media print{.shell-top,.shell-nav,.capture-dock,.toasts,.sheet-head,.sheet-foot,.book-actions{display:none!important}.sheet-scrim{position:static;background:none;backdrop-filter:none;padding:0}.sheet{max-width:none;max-height:none;border:none;box-shadow:none;animation:none}.sheet-body{overflow:visible;padding:0}.book{border:none;border-radius:0}.book-cover-sky{display:none}.book-page{break-inside:avoid;border-bottom:none}.book-quotes blockquote,.book-can li,.book-gallery figure{break-inside:avoid}}.auth-fields{display:flex;flex-direction:column;gap:var(--s-2);margin-top:var(--s-5);text-align:start}.field{padding:var(--s-3) var(--s-4);border:1px solid var(--line-strong);border-radius:var(--r-md);background:var(--canvas);color:var(--ink);font-size:var(--text-base);outline:none;transition:border-color var(--dur-fast) var(--ease-out)}.field:focus{border-color:var(--accent)}.field::placeholder{color:var(--ink-subtle)}.field-code{text-align:center;letter-spacing:.35em;font-family:var(--font-mono);font-size:var(--text-lg);text-transform:uppercase}.seg{display:flex;gap:var(--s-1)}.seg-item{flex:1;min-height:42px;border-radius:var(--r-md);border:1px solid var(--line);background:var(--canvas);font-size:var(--text-sm);font-weight:550;color:var(--ink-muted)}.seg-item.is-active{border-color:var(--accent);color:var(--ink);background:var(--accent-wash)}.seg-input{flex:1;min-height:42px;border-radius:var(--r-md);border:1px solid var(--line);background:var(--canvas);font-size:var(--text-sm);text-align:center;color:var(--ink);outline:none}.seg-input.is-active{border-color:var(--accent);background:var(--accent-wash)}.seg-input::placeholder{color:var(--ink-subtle)}.join-code{font-family:var(--font-mono);font-size:var(--text-2xl);letter-spacing:.3em;text-align:center;padding:var(--s-4);margin:var(--s-4) 0;border:2px dashed var(--line-strong);border-radius:var(--r-lg)}.datestrip{display:flex;gap:var(--s-1);overflow-x:auto;scrollbar-width:none;margin:0 calc(-1 * var(--s-4)) var(--s-4);padding:0 var(--s-4)}.datestrip::-webkit-scrollbar{display:none}.datestrip-day{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:46px;padding:var(--s-2) var(--s-1);border-radius:var(--r-md);border:1px solid transparent;color:var(--ink-muted)}.datestrip-day:hover{background:var(--surface)}.datestrip-day.is-selected{border-color:var(--accent);background:var(--accent-wash);color:var(--ink)}.datestrip-day.is-today .datestrip-num{color:var(--accent);font-weight:700}.datestrip-dow{font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:var(--tracking-wide)}.datestrip-num{font-size:var(--text-md);font-weight:550;font-variant-numeric:tabular-nums}.datestrip-dots{display:flex;gap:2px;height:5px}.datestrip-dot{width:4px;height:4px;border-radius:999px;background:var(--ink-subtle)}.datestrip-dot.is-done{background:var(--signal-progress)}.levelbar{display:inline-flex;gap:2px;align-items:center;vertical-align:middle}.levelbar-seg{position:relative;display:block;overflow:hidden;background:var(--surface-alt);border-radius:2px}.levelbar-sm .levelbar-seg{width:10px;height:5px}.levelbar-md .levelbar-seg{width:16px;height:6px}.levelbar-lg .levelbar-seg{width:24px;height:8px}.levelbar-fill{position:absolute;inset:0;display:block;transform-origin:left;background:var(--domain-color, var(--accent))}.levelbar-fill.is-soft{opacity:.55;background-image:repeating-linear-gradient(135deg,transparent 0 2px,rgba(255,255,255,.45) 2px 4px)}.levelbar.is-unmeasured .levelbar-seg{opacity:.6}.trendbadge{display:inline-flex;align-items:center;gap:4px;font-size:var(--text-2xs);font-weight:600;letter-spacing:var(--tracking-wide);text-transform:uppercase}.trendbadge svg{width:12px;height:12px}.trendbadge-sm svg{width:11px;height:11px}.check{clear:both;display:flex;flex-direction:column;gap:var(--s-2);padding:0 var(--s-4) var(--s-3) 46px}.check-row{display:flex;align-items:center;gap:var(--s-3)}.check-marks{display:inline-flex;gap:6px}.check-mark{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:28px;height:28px;padding:0;border:1px solid var(--line);border-radius:var(--r-full);background:transparent;color:var(--ink-subtle);font-size:var(--text-2xs);font-weight:600;letter-spacing:var(--tracking-wide);text-transform:uppercase;transition:background var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),min-width var(--dur-base) var(--ease-out),padding var(--dur-base) var(--ease-out)}.check-mark:hover{border-color:var(--line-strong);color:var(--ink);background:var(--surface)}.check-mark.is-active{color:var(--canvas);padding:0 var(--s-3)}.check-mark-done.is-active{background:var(--signal-progress);border-color:var(--signal-progress)}.check-mark-partial.is-active{background:var(--signal-stalled);border-color:var(--signal-stalled)}.check-mark-skipped.is-active{background:var(--ink-muted);border-color:var(--ink-muted)}.check-note-add{font-size:var(--text-xs);color:var(--ink-subtle);padding:var(--s-1) var(--s-2);border-radius:var(--r-sm);transition:color var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out)}.check-note-add:hover{color:var(--ink);background:var(--surface)}.check-note{width:100%;height:30px;padding:0 2px;border:none;border-bottom:1px solid var(--line);background:transparent;font:inherit;font-size:var(--text-sm);color:var(--ink);transition:border-color var(--dur-fast) var(--ease-out)}.check-note::placeholder{color:var(--ink-subtle)}.check-note:focus{outline:none;border-bottom-color:var(--accent)}.closeday{padding:var(--s-4);border:1px solid var(--line);border-radius:var(--r-lg);background:var(--canvas)}.closeday .section-head{margin-bottom:var(--s-2)}.closeday-lead{font-size:var(--text-sm);color:var(--ink-muted);line-height:var(--leading-snug)}.closeday-notes{width:100%;margin-top:var(--s-3);padding:var(--s-3);border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);font:inherit;font-size:var(--text-sm);color:var(--ink);resize:vertical}.closeday-notes:focus{outline:none;border-color:var(--accent);background:var(--canvas)}.closeday-hint{font-size:var(--text-xs)}.closeday.is-closed{padding:var(--s-3) var(--s-4);background:color-mix(in srgb,var(--signal-progress) 6%,var(--canvas));border-color:color-mix(in srgb,var(--signal-progress) 30%,var(--line))}.closeday-row{display:flex;align-items:flex-start;gap:var(--s-3)}.closeday-check{flex:none;width:22px;height:22px;border-radius:var(--r-full);display:grid;place-items:center;background:var(--signal-progress);color:var(--canvas)}.closeday-text{display:flex;flex-direction:column;gap:2px;min-width:0}.closeday-title{font-weight:560}.closeday-sub{font-size:var(--text-sm);color:var(--ink-muted);line-height:var(--leading-snug)}.checkin-banner{display:flex;align-items:center;gap:var(--s-3);width:100%;text-align:start;margin-top:var(--s-4);padding:var(--s-3) var(--s-4);border:1px solid color-mix(in srgb,var(--accent) 45%,var(--line));border-radius:var(--r-lg);background:color-mix(in srgb,var(--accent) 8%,var(--canvas));transition:border-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}.checkin-banner:hover{border-color:var(--accent);box-shadow:var(--shadow-sm)}.checkin-banner-dot{flex:none;width:9px;height:9px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 22%,transparent)}.checkin-banner-text{display:flex;flex-direction:column;gap:1px;min-width:0;flex:1}.checkin-banner-title{font-weight:560}.checkin-banner-sub{font-size:var(--text-sm);color:var(--ink-muted);line-height:var(--leading-snug)}.checkin-banner-cta{flex:none;font-size:var(--text-sm);font-weight:600;color:var(--accent)}.wk-lead{font-size:var(--text-sm);color:var(--ink-muted);line-height:var(--leading-snug);margin-bottom:var(--s-4)}.wk-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.wk-table th{text-align:start;font-size:var(--text-2xs);font-weight:600;letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--ink-subtle);padding:0 var(--s-2) var(--s-2) 0}.wk-table td{padding:var(--s-2) var(--s-2) var(--s-2) 0;border-top:1px solid var(--line);vertical-align:middle}.wk-domain{font-weight:550;white-space:nowrap}.wk-swatch{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--domain-color);margin-inline-end:var(--s-2);vertical-align:middle}.wk-record{color:var(--ink-muted);white-space:nowrap}.wk-rating{display:inline-flex;gap:3px}.wk-rate{min-width:34px;height:30px;padding:0 var(--s-2);border:1px solid var(--line);border-radius:var(--r-md);background:var(--canvas);font-family:var(--font-mono);font-size:var(--text-sm);font-weight:600;color:var(--ink-muted);transition:background var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}.wk-rate:hover{border-color:var(--line-strong);color:var(--ink)}.wk-rate.is-active{color:var(--canvas)}.wk-rate-neg.is-active{background:var(--signal-attention);border-color:var(--signal-attention)}.wk-rate-0.is-active{background:var(--ink-muted);border-color:var(--ink-muted)}.wk-rate-1.is-active{background:var(--signal-progress);border-color:var(--signal-progress)}.wk-rate-2.is-active{background:var(--domain-logic);border-color:var(--domain-logic)}.wk-questions{display:flex;flex-direction:column;gap:var(--s-3);margin-top:var(--s-5)}.wk-questions .section-title{margin-bottom:var(--s-1)}.wk-questions .field-label{text-transform:none;letter-spacing:normal;font-size:var(--text-sm);color:var(--ink)}@media(max-width:480px){.wk-table thead{display:none}.wk-table tr{display:grid;grid-template-columns:1fr auto;padding:var(--s-2) 0;border-top:1px solid var(--line)}.wk-table td{border:0;padding:2px 0}.wk-table td:nth-child(3){grid-column:1 / -1}}.chart{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--canvas);padding:var(--s-3) var(--s-3) var(--s-2)}.chart-bar{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);flex-wrap:wrap;margin-bottom:var(--s-2)}.chart-note{font-size:var(--text-2xs)}.chart-svg{display:block;width:100%;height:auto}.chart-grid{stroke:var(--line);stroke-width:1}.chart-tick{fill:var(--ink-subtle);font-size:10px;font-family:var(--font-ui)}.chart-now{stroke:var(--ink-subtle);stroke-width:1;stroke-dasharray:2 3}.chart-empty{padding:var(--s-5);text-align:center;font-size:var(--text-sm);border:1px dashed var(--line-strong);border-radius:var(--r-lg)}.chart-legend{list-style:none;margin:var(--s-2) 0 0;padding:0;display:flex;flex-wrap:wrap;gap:4px var(--s-2)}.chart-key{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 var(--s-2);border-radius:var(--r-full);border:1px solid transparent;font-size:var(--text-xs);color:var(--ink-muted);transition:background var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}.chart-key:hover{background:var(--surface)}.chart-key.is-active{border-color:var(--domain-color);color:var(--ink);background:color-mix(in srgb,var(--domain-color) 10%,transparent)}.chart-key-swatch{width:10px;height:3px;border-radius:2px;background:var(--domain-color)}.chart-key-val{font-weight:600;color:var(--ink)}.track{display:flex;flex-direction:column;gap:var(--s-2)}.track-domain{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--canvas);overflow:hidden}.track-domain.is-open{border-color:var(--line-strong)}.track-head{display:flex;align-items:center;gap:var(--s-3);width:100%;padding:var(--s-3) var(--s-4);text-align:start}.track-head:hover{background:var(--surface)}.track-swatch{flex:none;width:10px;height:10px;border-radius:50%;background:var(--domain-color)}.track-head-text{display:flex;flex-direction:column;gap:1px;min-width:0;flex:1}.track-name{font-weight:560}.track-sub{font-size:var(--text-xs);color:var(--ink-muted)}.track-level{display:flex;align-items:center;gap:var(--s-2);flex:none}.track-level-num{font-weight:600;font-size:var(--text-md)}.track-delta{font-size:var(--text-2xs);font-weight:600}.track-delta.is-up{color:var(--signal-progress)}.track-delta.is-down{color:var(--signal-attention)}.track-chevron{flex:none;color:var(--ink-subtle);transition:transform var(--dur-base) var(--ease-out)}.track-domain.is-open .track-chevron{transform:rotate(180deg)}.track-skills{list-style:none;margin:0;padding:0 var(--s-2) var(--s-2);border-top:1px solid var(--line)}.track-skill{display:flex;align-items:center;gap:var(--s-2);border-radius:var(--r-md)}.track-skill:hover{background:var(--surface)}.track-skill.is-focus{background:color-mix(in srgb,var(--domain-color) 6%,transparent)}.track-skill.is-stalled .track-skill-name{color:var(--signal-stalled)}.track-skill-main{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0;padding:var(--s-2) var(--s-2);text-align:start}.track-skill-name{font-size:var(--text-sm);font-weight:520;display:flex;align-items:center;gap:var(--s-2);flex-wrap:wrap}.track-target{font-size:var(--text-2xs);font-weight:600;color:var(--domain-color);background:color-mix(in srgb,var(--domain-color) 12%,transparent);padding:1px 6px;border-radius:var(--r-full);white-space:nowrap}.track-skill-meta{display:flex;align-items:center;gap:var(--s-2);font-size:var(--text-xs);color:var(--ink-muted);flex-wrap:wrap}.track-skill-num{font-weight:600;color:var(--ink)}.track-seen{font-size:var(--text-2xs)}.track-pin{font-size:var(--text-2xs);font-weight:600;text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--accent)}.track-spark{flex:none;padding-inline-end:var(--s-2);color:var(--domain-color)}.track-more{padding:var(--s-2)}.spark{display:block}.review{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--canvas);padding:var(--s-4);display:flex;flex-direction:column;gap:var(--s-3)}.review-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--s-3);flex-wrap:wrap}.review-title{font-weight:600;font-family:var(--font-display);font-size:var(--text-md);letter-spacing:var(--tracking-tight)}.review-when{font-size:var(--text-2xs)}.review-ratings{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:4px var(--s-2)}.review-rating{display:inline-flex;align-items:center;gap:5px;font-size:var(--text-xs);color:var(--ink-muted)}.review-rating-glyph{display:inline-grid;place-items:center;min-width:22px;height:18px;padding:0 4px;border-radius:var(--r-sm);font-family:var(--font-mono);font-size:var(--text-2xs);font-weight:700;color:var(--canvas);background:var(--ink-muted)}.rate-neg .review-rating-glyph{background:var(--signal-attention)}.rate-1 .review-rating-glyph{background:var(--signal-progress)}.rate-2 .review-rating-glyph{background:var(--domain-logic)}.review-parent{margin:0;display:grid;grid-template-columns:auto 1fr;gap:2px var(--s-3);font-size:var(--text-sm)}.review-parent>div{display:contents}.review-parent dt{color:var(--ink-subtle);white-space:nowrap}.review-parent dd{margin:0}.review-answers summary{font-size:var(--text-xs);color:var(--ink-muted);cursor:pointer}.review-agent{border-top:1px solid var(--line);padding-top:var(--s-3);display:flex;flex-direction:column;gap:var(--s-3)}.review-summary{font-size:var(--text-sm);line-height:var(--leading-relaxed)}.review-list{display:flex;flex-direction:column;gap:3px}.review-list-title{font-size:var(--text-2xs);font-weight:600;letter-spacing:var(--tracking-wide);text-transform:uppercase}.review-list.is-up .review-list-title{color:var(--signal-progress)}.review-list.is-stall .review-list-title{color:var(--signal-stalled)}.review-list.is-plan .review-list-title{color:var(--accent)}.review-list ul{margin:0;padding-left:1.1em;font-size:var(--text-sm);line-height:var(--leading-snug);color:var(--ink)}.tell{display:flex;align-items:flex-end;gap:var(--s-2);margin-top:var(--s-5);padding:var(--s-1) var(--s-2) var(--s-1) var(--s-1);border:1px solid var(--line);border-radius:22px;background:var(--canvas);transition:border-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}.tell:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 14%,transparent)}.tell-mic{flex:none;width:34px;height:34px;border-radius:var(--r-full);display:grid;place-items:center;color:var(--ink-muted);background:var(--surface);transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}.tell-mic:hover{background:var(--accent-wash);color:var(--accent)}.tell-input{flex:1;min-width:0;min-height:38px;max-height:40vh;padding:8px 0;field-sizing:content;resize:none;border:none;background:transparent;font:inherit;font-size:var(--text-base);line-height:22px;color:var(--ink)}.tell-input:focus{outline:none}.tell-input::placeholder{color:var(--ink-subtle)}.tell-actions{display:inline-flex;gap:6px;flex:none;padding-bottom:3px}.datestrip-state{width:5px;height:5px;border-radius:999px;border:1px solid var(--ink-subtle);background:transparent}.datestrip-state.is-some{background:color-mix(in srgb,var(--signal-progress) 55%,transparent);border-color:transparent}.datestrip-state.is-all{background:var(--signal-progress);border-color:transparent}.tabs{display:flex;gap:var(--s-1);margin-top:var(--s-4);border-bottom:1px solid var(--line)}.tab{padding:var(--s-2) var(--s-3);margin-bottom:-1px;font-size:var(--text-sm);font-weight:550;color:var(--ink-muted);border-bottom:2px solid transparent;transition:color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}.tab:hover{color:var(--ink)}.tab.is-active{color:var(--ink);border-bottom-color:var(--accent)}.rubric-meta{margin-bottom:var(--s-4)}.rubric-meta-title{font-family:var(--font-display);font-size:var(--text-lg);font-weight:600;letter-spacing:var(--tracking-tight)}.rubric-meta-summary{font-size:var(--text-sm);color:var(--ink-muted);margin-top:2px}.rubric-meta-when{font-size:var(--text-2xs);color:var(--ink-subtle);margin-top:var(--s-1)}.domaingrid{display:grid;gap:var(--s-2);grid-template-columns:repeat(auto-fill,minmax(150px,1fr));list-style:none;margin:0;padding:0}.domaingrid>li{display:contents}.domaingrid .domaintile{width:100%;height:100%}.domaingrid-wrap{display:contents}.domaingrid-note{grid-column:1 / -1;font-size:var(--text-xs);color:var(--ink-subtle);margin-top:var(--s-2)}.domaintile{display:flex;flex-direction:column;gap:var(--s-2);align-items:flex-start;text-align:start;padding:var(--s-3) var(--s-3);border:1px solid var(--line);border-radius:var(--r-lg);background:var(--canvas);transition:border-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out),transform var(--dur-instant) var(--ease-out)}.domaintile:hover{border-color:color-mix(in srgb,var(--domain-color, var(--line-strong)) 55%,var(--line));box-shadow:var(--shadow-sm)}.domaintile:active{transform:scale(.99)}.domaintile.is-unmeasured{opacity:.66}.domaintile-head{display:flex;align-items:center;gap:var(--s-2);width:100%}.domaintile-name{font-size:var(--text-sm);font-weight:560;line-height:var(--leading-snug);flex:1}.domaintile-figure{display:inline-flex;align-items:center;gap:var(--s-2)}.domaintile-level{font-size:var(--text-xl);font-weight:620;font-variant-numeric:tabular-nums;letter-spacing:var(--tracking-tight)}.domaintile-foot{font-size:var(--text-2xs);color:var(--ink-subtle)}.crumbs{display:flex;align-items:center;gap:var(--s-2);margin-bottom:var(--s-3)}.crumbs-back{display:inline-flex;align-items:center;justify-content:center;gap:4px;height:30px;padding:0 var(--s-3);border-radius:var(--r-full);border:1px solid var(--line);color:var(--ink-muted);font-size:var(--text-xs);font-weight:550}.crumbs-back:hover{border-color:var(--line-strong);color:var(--ink)}.crumbs-trail{display:flex;gap:var(--s-1);align-items:center;font-size:var(--text-sm);color:var(--ink-subtle);list-style:none;margin:0;padding:0}.crumbs-trail li{display:inline-flex;align-items:center;gap:var(--s-1)}.crumbs-trail li+li:before{content:"/";color:var(--ink-subtle);margin-inline-end:var(--s-1)}.crumbs-link{color:var(--ink-muted)}.crumbs-link:hover{color:var(--ink);text-decoration:underline}.domaindetail-head{display:flex;flex-direction:column;gap:var(--s-2);margin-bottom:var(--s-4)}.domaindetail-name{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:600;letter-spacing:var(--tracking-tight)}.domaindetail-desc{font-size:var(--text-sm);color:var(--ink-muted);line-height:var(--leading-relaxed);max-width:56ch}.domaindetail-figure{display:flex;align-items:center;gap:var(--s-2);flex-wrap:wrap}.domaindetail-level{font-size:var(--text-2xl);font-weight:620;font-variant-numeric:tabular-nums;letter-spacing:var(--tracking-tight)}.domaindetail-of{font-size:var(--text-sm);color:var(--ink-subtle)}.skilllist{display:flex;flex-direction:column;list-style:none;margin:0;padding:0}.skilllist-note{font-size:var(--text-xs);color:var(--ink-subtle);margin:var(--s-2) 0}.skillrow{display:flex;align-items:center;gap:var(--s-3);width:100%;padding:var(--s-3) var(--s-2);text-align:start;border-bottom:1px solid var(--line);border-radius:var(--r-sm)}.skillrow:hover{background:var(--surface)}.skillrow.is-unmeasured{opacity:.62}.skillrow-main{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.skillrow-name{font-size:var(--text-base);font-weight:530;display:flex;align-items:center;gap:var(--s-2)}.skillrow-yours{font-size:var(--text-2xs);font-weight:700;text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--accent);background:var(--accent-wash);padding:1px 6px;border-radius:var(--r-full)}.skillrow-note{font-size:var(--text-sm);color:var(--ink-muted);line-height:var(--leading-snug)}.skillrow-when{font-size:var(--text-2xs);color:var(--ink-subtle)}.skillrow-right{display:flex;align-items:center;gap:var(--s-3);flex:none}.skillrow-level{font-size:var(--text-md);font-weight:620;font-variant-numeric:tabular-nums}.skillrow-level.is-blank{color:var(--ink-subtle);font-weight:400}.skillrow-chevron{color:var(--ink-subtle);display:inline-flex}.skilldetail-head{display:flex;flex-direction:column;align-items:flex-start;gap:var(--s-2)}.skilldetail-name{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:600;letter-spacing:var(--tracking-tight)}.skilldetail-level{display:flex;align-items:center;gap:var(--s-2);font-variant-numeric:tabular-nums}.skilldetail-level>*{flex:none}.skilldetail-desc{font-size:var(--text-sm);color:var(--ink-muted);line-height:var(--leading-relaxed);margin-top:var(--s-2);max-width:56ch}.skilldetail-gap{margin-top:var(--s-4)}.skilldetail-reads{display:flex;flex-direction:column;gap:var(--s-2);margin-top:var(--s-3)}.skilldetail-note{margin-top:var(--s-3);padding:var(--s-3);border-inline-start:3px solid var(--accent);background:var(--surface);border-radius:0 var(--r-md) var(--r-md) 0}.skilldetail-note-body{font-size:var(--text-sm);line-height:var(--leading-snug)}.skilldetail-actions{display:flex;gap:var(--s-2);margin-top:var(--s-4)}.skilldetail-unmeasured{padding:var(--s-3);background:var(--surface);border-radius:var(--r-md);margin-top:var(--s-3)}.skilldetail-unmeasured-title{font-weight:560;font-size:var(--text-sm)}.skilldetail-unmeasured-body{font-size:var(--text-sm);color:var(--ink-muted);line-height:var(--leading-snug)}.skilldetail-prereqs,.skilldetail-hints{margin-top:var(--s-5)}.ladder{list-style:none;margin:var(--s-3) 0 0;padding:0;display:flex;flex-direction:column;gap:2px}.ladder-step{display:flex;gap:var(--s-3);align-items:baseline;padding:var(--s-2) var(--s-3);border-radius:var(--r-md);font-size:var(--text-sm);color:var(--ink-muted);line-height:var(--leading-snug)}.ladder-step.is-current{background:color-mix(in srgb,var(--domain-color, var(--accent)) 10%,transparent);color:var(--ink)}.ladder-step.is-next{border:1px dashed var(--line-strong)}.ladder-num{flex:none;width:1.2em;font-weight:620;color:var(--domain-color, var(--accent))}.ladder-text{flex:1}.descriptor{margin-top:var(--s-3);padding:var(--s-3);background:var(--surface);border-radius:var(--r-md)}.descriptor-title{font-size:var(--text-2xs);font-weight:600;text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--ink-subtle)}.descriptor-text{font-size:var(--text-sm);line-height:var(--leading-snug);margin-top:2px}.descriptor-examples{font-size:var(--text-xs);color:var(--ink-muted);margin-top:var(--s-1)}.prereq-lead,.hint-list{font-size:var(--text-sm);color:var(--ink-muted)}.prereq-list,.hint-list{margin:var(--s-2) 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:var(--s-1)}.prereq-list li,.hint{font-size:var(--text-sm);line-height:var(--leading-snug);padding-inline-start:var(--s-3);position:relative}.prereq-list li:before,.hint:before{content:"·";position:absolute;inset-inline-start:0;color:var(--ink-subtle)}.evidence{margin-top:var(--s-4)}.evidence-count{font-size:var(--text-2xs);color:var(--ink-subtle)}.evidence-list{list-style:none;margin:var(--s-2) 0 0;padding:0;display:flex;flex-direction:column;gap:var(--s-2)}.evidence-item{padding:var(--s-3);border:1px solid var(--line);border-radius:var(--r-md);background:var(--canvas)}.evidence-summary{font-size:var(--text-sm);line-height:var(--leading-snug)}.evidence-quote{font-family:var(--font-display);font-size:var(--text-md);margin-top:var(--s-1)}.evidence-when{display:flex;gap:var(--s-2);align-items:baseline;margin-bottom:2px}.evidence-date,.evidence-ago{font-size:var(--text-2xs);color:var(--ink-subtle)}.evidence-ago:before{content:"·";margin-inline-end:var(--s-1)}.evidence-signals{display:flex;gap:var(--s-2);margin-top:var(--s-1);flex-wrap:wrap}.evidence-aside{font-size:var(--text-xs);color:var(--ink-muted)}.evidence-raw{margin-top:var(--s-2);font-size:var(--text-xs);color:var(--ink-muted);background:var(--surface);padding:var(--s-2) var(--s-3);border-radius:var(--r-sm)}.evidence-raw-toggle{font-size:var(--text-2xs);color:var(--ink-subtle);text-decoration:underline}.evidence-empty{font-size:var(--text-sm);color:var(--ink-muted)}.evidence-empty-body{font-size:var(--text-xs);color:var(--ink-subtle)}.evidence-more{margin-top:var(--s-2)}.signal{display:inline-flex;align-items:center;gap:4px;font-size:var(--text-2xs);font-weight:600;letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--ink-muted)}.signal-demonstrated{color:var(--signal-progress)}.signal-struggled{color:var(--signal-stalled)}.signal-read{color:var(--ink-muted)}.conf{position:relative;display:inline-flex}.conf-btn{display:inline-grid;place-items:center;width:18px;height:18px}.conf-dot{width:9px;height:9px;border-radius:50%;border:1.5px solid var(--ink-subtle);position:relative;overflow:hidden;display:inline-block}.conf-dot-fill{position:absolute;inset:0;background:var(--ink-muted);transform-origin:bottom}.conf-pop{position:absolute;z-index:30;top:calc(100% + 6px);inset-inline-start:50%;transform:translate(-50%);width:230px;padding:var(--s-3);border-radius:var(--r-md);background:var(--canvas);border:1px solid var(--line-strong);box-shadow:var(--shadow-md);font-size:var(--text-xs);color:var(--ink-muted);line-height:var(--leading-snug)}.override{margin-top:var(--s-5);padding:var(--s-4);border:1px dashed var(--line-strong);border-radius:var(--r-lg)}.override.is-set{border-style:solid;border-color:color-mix(in srgb,var(--accent) 45%,var(--line));background:color-mix(in srgb,var(--accent) 5%,transparent)}.override-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--s-3)}.override-when{font-size:var(--text-2xs);color:var(--ink-subtle)}.override-lead{font-size:var(--text-sm);color:var(--ink-muted);line-height:var(--leading-snug);margin-top:var(--s-1)}.override-steps{display:flex;gap:4px;margin-top:var(--s-3)}.override-step{flex:1;height:38px;border:1px solid var(--line);border-radius:var(--r-md);display:inline-flex;align-items:center;justify-content:center;gap:5px;font-size:var(--text-xs);font-weight:600;font-variant-numeric:tabular-nums;color:var(--ink-muted)}.override-step .tnum{font-size:var(--text-md)}.override-step:hover{border-color:var(--line-strong);color:var(--ink)}.override-step.is-active{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.override-note{margin-top:var(--s-2)}.override-actions{display:flex;gap:var(--s-2);margin-top:var(--s-3)}.factlist{display:flex;flex-direction:column;gap:var(--s-2);margin-top:var(--s-3)}.fact{display:flex;justify-content:space-between;gap:var(--s-3);font-size:var(--text-sm);padding:var(--s-2) 0;border-bottom:1px solid var(--line)}.fact-label{color:var(--ink-subtle)}.fact-value{font-weight:530;text-align:end}.invite{display:flex;align-items:center;gap:var(--s-2);margin-top:var(--s-3)}.invite-link{flex:1;min-width:0;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--ink-muted)}.settings{max-width:460px}.segmented{display:inline-flex;gap:4px;padding:3px;background:var(--surface);border-radius:var(--r-full)}.segmented .segment{padding:var(--s-1) var(--s-3);border-radius:var(--r-full);font-size:var(--text-xs);font-weight:550;color:var(--ink-muted)}.segmented .segment.is-active{background:var(--canvas);color:var(--ink);box-shadow:var(--shadow-sm)}.planpanel-head{display:flex;flex-direction:column;gap:2px}.planpanel-title{font-family:var(--font-display);font-size:var(--text-xl);font-weight:600;letter-spacing:var(--tracking-tight)}.planpanel-progress{font-size:var(--text-sm);color:var(--ink-muted)}.planpanel-foot{margin-top:var(--s-6);display:flex;justify-content:center}.goal-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--s-2)}.goal{display:flex;align-items:baseline;gap:var(--s-2);padding:var(--s-3);border:1px solid var(--line);border-radius:var(--r-md);background:var(--canvas)}.goal-statement{font-size:var(--text-sm);line-height:var(--leading-snug)}.priority-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--s-1);counter-reset:p}.priority{display:flex;gap:var(--s-2);font-size:var(--text-sm);line-height:var(--leading-snug)}.priority-num{color:var(--ink-subtle);font-weight:600}.principle-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--s-1)}.principle-item{font-size:var(--text-sm);line-height:var(--leading-snug);color:var(--ink-muted);padding-inline-start:var(--s-3);position:relative}.principle-item:before{content:"·";position:absolute;inset-inline-start:0;color:var(--ink-subtle)}.week-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--s-2)}.week-list>.week{display:block;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--canvas);overflow:hidden}.week-list>.week.is-current{border-color:color-mix(in srgb,var(--accent) 45%,var(--line))}.week-list .week-head{display:flex;flex-direction:row;align-items:center;gap:var(--s-3);width:100%;padding:var(--s-3) var(--s-4);text-align:start}.week-list .week-head:hover{background:var(--surface)}.week-num{flex:none;width:28px;height:28px;border-radius:var(--r-full);display:grid;place-items:center;background:var(--surface-alt);font-size:var(--text-sm);font-weight:620}.week.is-current .week-num{background:var(--accent);color:var(--accent-ink)}.week-text{display:flex;flex-direction:column;gap:1px;flex:1;min-width:0}.week-theme{font-weight:560}.week-meta{font-size:var(--text-xs);color:var(--ink-muted)}.week-chevron{color:var(--ink-subtle);transition:transform var(--dur-base) var(--ease-out)}.week[open] .week-chevron,.week-head[aria-expanded=true] .week-chevron{transform:rotate(180deg)}.week-body{padding:0 var(--s-4) var(--s-3);border-top:1px solid var(--line)}.week-focus{list-style:none;margin:var(--s-3) 0 0;padding:0;display:flex;flex-direction:column;gap:var(--s-1);font-size:var(--text-sm)}.week-focus li{display:flex;align-items:baseline;gap:var(--s-2)}.week-days{list-style:none;margin:var(--s-2) 0 0;padding:0}.week-day-head{display:flex;justify-content:space-between;gap:var(--s-3);width:100%;padding:var(--s-2) 0;text-align:start;border-bottom:1px solid var(--line)}.week-day-head:hover .week-day-date{color:var(--accent)}.week-day.is-today .week-day-date{color:var(--accent);font-weight:600}.week-day-date{font-size:var(--text-sm)}.week-day-count{font-size:var(--text-xs);color:var(--ink-subtle)}.week-blocks{list-style:none;margin:var(--s-1) 0 var(--s-2);padding:0;display:flex;flex-direction:column;gap:2px}.week-blocks li{display:flex;align-items:center;gap:var(--s-2);font-size:var(--text-xs);color:var(--ink-muted)}.week-block-dot{width:6px;height:6px;border-radius:999px;background:var(--domain-color, var(--ink-subtle));flex:none}.timeline-sub{margin-top:var(--s-2);font-size:var(--text-sm);color:var(--ink-muted)}.timeline-filters{display:flex;flex-wrap:wrap;gap:var(--s-2);margin-bottom:var(--s-5)}.timeline .tell{margin-top:0;margin-bottom:var(--s-4)}.timeline-days,.timeline-entries{list-style:none;margin:0;padding:0}.timeline-days{display:flex;flex-direction:column;gap:var(--s-6)}.timeline-day{position:relative}.timeline-dayhead{display:flex;align-items:baseline;gap:var(--s-3);margin-bottom:var(--s-3);position:sticky;top:0;z-index:1;padding:var(--s-2) 0;background:linear-gradient(var(--bg) 70%,transparent)}.timeline-dayrel{font-family:var(--font-serif);font-size:var(--text-lg);font-weight:600;letter-spacing:var(--tracking-tight);color:var(--ink)}.timeline-daydate{font-size:var(--text-sm);color:var(--ink-muted)}.timeline-daycount{margin-left:auto;font-size:var(--text-2xs);font-weight:600;color:var(--ink-subtle);padding:1px var(--s-2);border-radius:var(--r-full);background:var(--surface)}.timeline-entries{position:relative;display:flex;flex-direction:column;gap:2px;padding-left:0}.timeline-entries:before{content:"";position:absolute;left:13px;top:14px;bottom:14px;width:1px;background:var(--line)}.tl-entry{display:grid;grid-template-columns:28px 1fr;gap:var(--s-3);align-items:start;padding:var(--s-2) 0}.tl-glyph{position:relative;z-index:1;width:28px;height:28px;border-radius:var(--r-full);display:grid;place-items:center;background:var(--canvas);border:1.5px solid var(--domain-color, var(--line-strong));color:var(--domain-color, var(--ink-muted));margin-top:2px}.tl-mark .tl-glyph{background:var(--domain-color, var(--ink-muted));color:var(--canvas)}.tl-sapling .tl-glyph,.tl-material .tl-glyph{border-color:var(--accent);color:var(--accent);background:var(--accent-wash)}.tl-level .tl-glyph{border-style:dashed}.tl-body{display:flex;flex-direction:column;gap:3px;min-width:0;text-align:start;padding:var(--s-2) var(--s-3);margin:calc(var(--s-2) * -1) 0;border-radius:var(--r-md);transition:background var(--dur-fast) var(--ease-out)}.tl-body:hover{background:var(--surface)}.tl-body:active{background:var(--surface-alt)}.tl-meta{display:flex;align-items:center;flex-wrap:wrap;gap:var(--s-2);font-size:var(--text-2xs);color:var(--ink-subtle)}.tl-kind{font-weight:600;letter-spacing:var(--tracking-wide);text-transform:uppercase}.tl-domain{color:var(--domain-color, var(--ink-muted));font-weight:600}.tl-who{font-weight:600;color:var(--ink-muted)}.tl-who:before{content:"·";margin-right:var(--s-2);color:var(--ink-subtle);font-weight:400}.tl-who.is-sapling{color:var(--accent)}.tl-time{margin-left:auto;font-weight:500}.tl-title{font-size:var(--text-md);font-weight:560;line-height:var(--leading-snug);letter-spacing:var(--tracking-tight);display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--s-2)}.tl-status,.tl-level{font-size:var(--text-2xs);font-weight:600;letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--ink-muted);padding:1px var(--s-2);border-radius:var(--r-full);background:var(--surface)}.tl-status.is-done{color:var(--accent);background:var(--accent-wash)}.tl-status.is-skipped{color:var(--ink-subtle)}.tl-level{color:var(--accent);background:var(--accent-wash)}.tl-text{font-size:var(--text-sm);line-height:var(--leading-relaxed);color:var(--ink-muted);white-space:pre-wrap;overflow-wrap:anywhere}.tl-capture .tl-text,.tl-note .tl-text{color:var(--ink)}.tl-photo{margin-top:var(--s-2);max-width:260px;max-height:200px;border-radius:var(--r-md);object-fit:cover;border:1px solid var(--line);background:var(--surface)}@media(max-width:480px){.tl-time{margin-left:0}.tl-body{padding:var(--s-2) var(--s-2)}}.material-frame{display:block;width:100%;height:100%;min-height:420px;border:0;background:var(--bg)}.preview-stage .material-frame{min-height:420px;aspect-ratio:3 / 4;max-height:70vh}.kid-stage .material-frame{min-height:0;height:100%;border-radius:var(--r-xl);background:var(--canvas)}.kid-material{position:relative;display:grid;min-height:0}.kid-material>*{grid-area:1 / 1}.kid-cover{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--s-4);border-radius:var(--r-xl);background:var(--canvas);z-index:1;transition:opacity .36s var(--ease-out),transform .36s var(--ease-out)}.kid-cover.is-ready{opacity:0;transform:scale(1.03);pointer-events:none}.kid-cover-face{width:min(44vmin,280px);aspect-ratio:1;display:grid;place-items:center;animation:kid-cover-in .52s var(--ease-out) both}.kid-cover-face img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 8px 14px rgba(58,45,20,.16))}.kid-cover-emoji{font-size:min(24vmin,150px);line-height:1}.kid-cover-title{font-family:var(--font-display);font-size:var(--text-xl);color:var(--ink);text-align:center;padding:0 var(--s-4);animation:kid-cover-in .52s 80ms var(--ease-out) both}.kid-cover-dots{display:flex;gap:8px}.kid-cover-dots i{width:9px;height:9px;border-radius:50%;background:var(--ink-subtle);opacity:.35;animation:kid-cover-dot 1.2s var(--ease-out) infinite}.kid-cover-dots i:nth-child(2){animation-delay:.16s}.kid-cover-dots i:nth-child(3){animation-delay:.32s}@keyframes kid-cover-in{0%{opacity:0;transform:translateY(8px) scale(.97)}}@keyframes kid-cover-dot{0%,to{opacity:.25;transform:translateY(0)}40%{opacity:.8;transform:translateY(-4px)}}@media(prefers-reduced-motion:reduce){.kid-cover,.kid-cover-face,.kid-cover-title,.kid-cover-dots i{animation:none;transition:opacity .2s linear;transform:none}}.preview-played{font-size:var(--text-sm);color:var(--ink-muted)}.btn-link{color:var(--accent);font-weight:600;text-decoration:underline;text-underline-offset:2px}.page-tools{display:flex;gap:var(--s-2);margin-top:var(--s-3)}.page-tools .btn svg{margin-right:4px;vertical-align:-2px}.composer-photos{max-width:var(--content-max);margin:0 auto var(--s-2);display:flex;flex-direction:column;gap:var(--s-2)}.composer-thumbs{display:flex;flex-wrap:wrap;gap:var(--s-2)}.composer-thumb{position:relative;width:64px;height:64px;border-radius:var(--r-md);overflow:hidden;border:1px solid var(--line);background:var(--surface)}.composer-thumb img{width:100%;height:100%;object-fit:cover;display:block}.composer-thumb button{position:absolute;top:2px;right:2px;width:20px;height:20px;border-radius:var(--r-full);background:var(--ink);color:var(--bg);font-size:14px;line-height:1;display:grid;place-items:center}.composer-purpose{display:flex;gap:var(--s-2)}.composer-attach{flex:none;width:34px;height:34px;border-radius:var(--r-full);color:var(--ink-subtle);display:grid;place-items:center;margin-left:calc(var(--s-2) * -1)}.composer-attach:hover{color:var(--ink);background:var(--surface)}.composer-spin{width:14px;height:14px;border-radius:var(--r-full);border:2px solid color-mix(in srgb,var(--bg) 40%,transparent);border-top-color:var(--bg);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.artifact-photo{width:120px;height:120px;border-radius:var(--r-md);overflow:hidden;border:1px solid var(--line);background:var(--surface)}.artifact-photo img{width:100%;height:100%;object-fit:cover;display:block}.seg-wrap{flex-wrap:wrap}.seg-wrap .seg-item,.seg-wrap .seg-input{flex:1 0 auto;padding:0 var(--s-3)}@media(pointer:coarse){.chip,.btn-sm,.roster-chip,.composer-purpose .chip{min-height:44px}.composer-attach,.composer-send{width:44px;height:44px}}
