:root{--wh-orange-500:oklch(67.69% .1812 49.13);--wh-ink-900:oklch(20.03% .0105 268.16);--wh-ink-850:oklch(20.91% .0104 268.19);--wh-ink-800:oklch(24.77% .014 267);--wh-ink-700:oklch(30.9% .0171 266.39);--wh-ink-400:oklch(54.34% .0406 269.5);--wh-slate-300:oklch(70.54% .0215 267.22);--wh-white:oklch(100% 0 0);--wh-red-400:oklch(71.16% .1812 22.84);--wh-red-600:oklch(57.89% .1724 24.27);--wh-red-700:oklch(52.43% .1571 24.33);--wh-green-300:oklch(78.6% .1379 154.52);--wh-amber-400:oklch(76.49% .1399 72.95);--wh-blue-300:oklch(73.92% .1154 242.05);--wh-grey-400:oklch(65.35% .03 276.58);--wh-grey-300:oklch(74.57% .0304 254.72);--wh-violet-300:oklch(73.58% .1394 299.78);--wh-orange-300:oklch(80.12% .1343 68.79);--wh-gold-300:oklch(88.03% .1348 86.06);--wh-mint-400:oklch(77.75% .1595 166.57);--wh-rose-400:oklch(64.76% .2042 11.07);--wh-teal-500:oklch(59.23% .112 227.97);--wh-sand-300:oklch(83.42% .117 87.43);--wh-pine-400:oklch(63.04% .1013 183.03);--wh-clay-400:oklch(67.83% .1559 35.18);--wh-apricot-300:oklch(78.06% .1269 57.86);--wh-sky-400:oklch(78.24% .1213 222.46);--wh-magenta-500:oklch(53.56% .2253 335.66);--wh-indigo-500:oklch(55.58% .2141 269.02);--wh-fuchsia-500:oklch(64.29% .2436 .71);--wh-grey-600:oklch(38.67% 0 89.88);--wh-teal-600:oklch(58.56% .0853 207.56);--wh-plum-500:oklch(53.85% .132 346.97);--wh-ochre-400:oklch(69.18% .1187 80.26);--wh-teal-scrim:oklch(23.48% .024 214.42/.9);--wh-honey-300:oklch(76.12% .114 69.67);--wh-honey-200:oklch(85.46% .0852 75.55);--wh-umber-600:oklch(51.18% .0833 58.49);--wh-honey-scrim:oklch(22.75% .0298 72.07/.9);--wh-moss-900:oklch(24.88% .017 163.2);--wh-moss-300:oklch(80.28% .0873 156.79);--wh-moss-scrim:oklch(20.49% .0199 160.13/.9);--wh-parchment-500:oklch(58.42% .0596 88.63);--wh-ember-700:oklch(41.21% .1053 22.86);--wh-ember-400:oklch(64.82% .1526 42.6);--wh-ember-scrim:oklch(19.17% .0308 37.17/.9);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:var(--wh-ink-850);--surface:var(--wh-ink-800);--surface-sunken:var(--wh-ink-900);--border:var(--wh-ink-700);--border-strong:var(--wh-ink-400);--text:oklch(100% 0 0/.9);--text-muted:var(--wh-slate-300);--accent:var(--wh-orange-500);--on-accent:var(--wh-white);--accent-wash:color-mix(in srgb, var(--accent) 12%, var(--surface));--accent-line:color-mix(in srgb, var(--accent) 75%, var(--border));--danger:var(--wh-red-400);--danger-solid:var(--wh-red-700);--danger-solid-hover:var(--wh-red-600);--on-danger-solid:var(--wh-white);--danger-wash:color-mix(in srgb, var(--danger) 12%, var(--surface));--danger-line:color-mix(in srgb, var(--danger) 75%, var(--border));--success:var(--wh-green-300);--success-wash:color-mix(in srgb, var(--success) 12%, var(--surface));--success-line:color-mix(in srgb, var(--success) 75%, var(--border));--warning:var(--wh-amber-400);--warning-wash:color-mix(in srgb, var(--warning) 12%, var(--surface));--warning-line:color-mix(in srgb, var(--warning) 75%, var(--border));--info:var(--wh-blue-300);--info-wash:color-mix(in srgb, var(--info) 12%, var(--surface));--info-line:color-mix(in srgb, var(--info) 75%, var(--border));--status-wishlist:var(--wh-grey-400);--status-unassembled:var(--wh-grey-300);--status-assembled:var(--wh-blue-300);--status-primed:var(--wh-violet-300);--status-inprogress:var(--wh-orange-300);--status-painted:var(--wh-green-300);--status-complete:var(--wh-gold-300);--focus-ring:var(--accent);--swatch-unknown:var(--wh-grey-600);--confetti-a-1:var(--accent);--confetti-a-2:var(--wh-gold-300);--confetti-a-3:var(--wh-mint-400);--confetti-a-4:var(--wh-rose-400);--confetti-a-5:var(--wh-teal-500);--confetti-b-1:var(--accent);--confetti-b-2:var(--wh-sand-300);--confetti-b-3:var(--wh-pine-400);--confetti-b-4:var(--wh-clay-400);--confetti-b-5:var(--wh-apricot-300);--confetti-c-1:var(--accent);--confetti-c-2:var(--wh-sky-400);--confetti-c-3:var(--wh-magenta-500);--confetti-c-4:var(--wh-indigo-500);--confetti-c-5:var(--wh-fuchsia-500);--border-soft:color-mix(in srgb, var(--border) 60%, transparent);--ovation-glow:color-mix(in srgb, var(--accent) 34%, transparent);--scrim:oklch(0% 0 0/.45);--scrim-strong:oklch(0% 0 0/.58);--scrim-heavy:oklch(0% 0 0/.88);--ambient-a:transparent;--ambient-b:transparent;--ambient-c:transparent;--ambient-scrim:var(--scrim-heavy);--ambient-ceiling:.05;--surface-solid:var(--wh-ink-800);--space-2:.125rem;--space-4:.25rem;--space-6:.375rem;--space-8:.5rem;--space-12:.75rem;--space-16:1rem;--space-20:1.25rem;--space-24:1.5rem;--space-32:2rem;--space-48:3rem;--text-12:.75rem;--text-14:.875rem;--text-16:1rem;--text-18:1.125rem;--text-20:1.25rem;--text-24:1.5rem;--text-32:2rem;--hero-size:clamp(2rem, 5vw, 3.25rem);--display-28:1.75rem;--display-40:2.5rem;--display-56:3.5rem;--display-80:5rem;--radius-4:4px;--radius-8:8px;--radius-12:12px;--radius-16:16px;--radius-full:999px;--radius-circle:50%;--weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--leading-tight:1.2;--leading-body:1.5;--shadow-raised:0 8px 24px #00000059;--shadow-raised-lg:0 10px 28px #00000073;--shadow-overlay:0 22px 55px #00000080;--shadow-scrim:0 0 0 9999px #0000008c;--glow-accent:0 0 42px color-mix(in srgb, var(--accent) 55%, transparent);--glow-success:0 0 18px color-mix(in srgb, var(--success) 90%, transparent);--dur-fast:.12s;--dur-base:.18s;--dur-slow:.32s;--ease-standard:cubic-bezier(.2, 0, 0, 1);--ease-entrance:cubic-bezier(.16, 1, .3, 1);--ease-celebrate-pop:cubic-bezier(.2, .9, .3, 1.2);--ease-celebrate-rise:cubic-bezier(.2, 1.1, .3, 1.15);--ease-celebrate-land:cubic-bezier(.2, 1.1, .3, 1.2);--layer-ambient:-1;--layer-raised:10;--layer-sticky:100;--layer-toast:1000;--layer-overlay:1100;--control-h:2.75rem;--tab-bar-h:calc(var(--control-h) + var(--space-6) + var(--space-6));--drawer-header-h:calc(var(--control-h) + var(--space-12));--dialog-top-offset:max(var(--space-24), 8vh)}:root[data-mood=wet-palette],.mood-preview[data-mood=wet-palette]{--ambient-a:var(--wh-teal-600);--ambient-b:var(--wh-plum-500);--ambient-c:var(--wh-ochre-400);--ambient-scrim:var(--wh-teal-scrim);--ambient-ceiling:.075;--surface:color-mix(in srgb, var(--wh-ink-800) 65%, transparent)}:root[data-mood=lamplight],.mood-preview[data-mood=lamplight]{--ambient-a:var(--wh-honey-300);--ambient-b:var(--wh-honey-200);--ambient-c:var(--wh-umber-600);--ambient-scrim:var(--wh-honey-scrim);--ambient-ceiling:.07;--surface:color-mix(in srgb, var(--wh-ink-800) 65%, transparent)}:root[data-mood=cutting-mat],.mood-preview[data-mood=cutting-mat]{--ambient-a:var(--wh-moss-900);--ambient-b:var(--wh-moss-300);--ambient-scrim:var(--wh-moss-scrim);--ambient-ceiling:.06;--surface:color-mix(in srgb, var(--wh-ink-800) 65%, transparent)}:root[data-mood=scriptorium],.mood-preview[data-mood=scriptorium]{--ambient-a:var(--wh-ember-700);--ambient-b:var(--wh-ember-400);--ambient-c:var(--wh-parchment-500);--ambient-scrim:var(--wh-ember-scrim);--ambient-ceiling:.12;--surface:color-mix(in srgb, var(--wh-ink-800) 65%, transparent)}.stack{gap:var(--space-16);flex-direction:column;display:flex}.stack-tight{gap:var(--space-8)}.stack-loose{gap:var(--space-24)}.cluster{align-items:center;gap:var(--space-12);flex-wrap:wrap;display:flex}.cluster-tight{gap:var(--space-8)}.grid{gap:var(--space-12);grid-template-columns:repeat(auto-fit,minmax(180px,1fr));display:grid}.grid-wide{gap:var(--space-16);grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}.btn,.btn-primary,.btn-secondary,.btn-ghost,.btn-danger{justify-content:center;align-items:center;gap:var(--space-8);min-height:var(--control-h);padding:var(--space-8) var(--space-16);border-radius:var(--radius-8);font:inherit;font-size:var(--text-16);font-weight:var(--weight-regular);line-height:var(--leading-tight);text-align:center;cursor:pointer;transition:filter var(--dur-base) var(--ease-standard), border-color var(--dur-base) var(--ease-standard), background-color var(--dur-base) var(--ease-standard);border:1px solid #0000;text-decoration:none;display:inline-flex}.btn:disabled,.btn-primary:disabled,.btn-secondary:disabled,.btn-ghost:disabled,.btn-danger:disabled,.btn[aria-disabled=true],.btn-primary[aria-disabled=true],.btn-secondary[aria-disabled=true],.btn-ghost[aria-disabled=true],.btn-danger[aria-disabled=true]{opacity:.5;cursor:not-allowed}.btn-primary,.btn-secondary{font-weight:var(--weight-semibold)}.btn,.btn-secondary{background:var(--surface-solid);border-color:var(--border);color:var(--text)}.btn:hover:not(:disabled),.btn-secondary:hover:not(:disabled){border-color:var(--accent)}.btn-primary{background:var(--accent);color:var(--on-accent)}.btn-primary:hover:not(:disabled){filter:brightness(1.1)}.btn-ghost{border-color:var(--border);color:var(--text);background:0 0}.btn-ghost:hover:not(:disabled){border-color:var(--text-muted)}.btn-danger{background:var(--danger-solid);color:var(--on-danger-solid)}.btn-danger:hover:not(:disabled){background:var(--danger-solid-hover)}.btn-lg{padding:var(--space-12) var(--space-24)}.btn-icon{min-width:var(--control-h);min-height:var(--control-h);padding:var(--space-6) var(--space-8);border-radius:var(--radius-4);color:var(--text-muted);font:inherit;font-size:var(--text-14);cursor:pointer;transition:color var(--dur-base) var(--ease-standard), background-color var(--dur-base) var(--ease-standard);background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex}.btn-icon:hover:not(:disabled){color:var(--danger);background:var(--surface-sunken)}.btn-icon:disabled,.btn-icon[aria-disabled=true]{opacity:.5;cursor:not-allowed}.btn-spinner{vertical-align:-.1em;border-radius:var(--radius-circle);border:2px solid;border-right-color:#0000;width:.85em;height:.85em;animation:.6s linear infinite btn-spin;display:inline-block}@keyframes btn-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.btn-spinner{animation-duration:2s}*,:before,:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.btn-spinner{animation-duration:2s!important;animation-iteration-count:infinite!important}}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-12);padding:var(--space-20);margin-bottom:var(--space-20)}.badge{padding:var(--space-2) var(--space-8);border:1px solid var(--border);border-radius:var(--radius-full);background:var(--surface);color:var(--text-muted);font-size:var(--text-12);font-weight:var(--weight-regular);white-space:nowrap;vertical-align:middle;display:inline-block}.badge-sunken{background:var(--surface-sunken)}.banner{border-radius:var(--radius-8);padding:var(--space-12) var(--space-16);margin:var(--space-12) 0 var(--space-16);line-height:var(--leading-body);border:1px solid #0000}.error.banner{background:var(--danger-wash);border-color:var(--danger-line)}.notice.banner{background:var(--accent-wash);border-color:var(--accent-line);color:var(--text)}.warning.banner{background:var(--warning-wash);border-color:var(--warning-line);color:var(--text)}.banner-actionable{align-items:center;gap:var(--space-8) var(--space-16);flex-wrap:wrap;display:flex}.banner-actionable>:last-child{flex-shrink:0;margin-left:auto}input,select,textarea{font-family:inherit;font-size:var(--text-16);min-height:var(--control-h);min-width:var(--control-h)}input[type=checkbox],input[type=radio]{min-width:0;min-height:0}.link-standalone{min-height:var(--control-h);min-width:var(--control-h);align-items:center;display:inline-flex}.field{gap:var(--space-4);font-size:var(--text-14);color:var(--text-muted);flex-direction:column;display:flex}.field input,.field select,.field textarea{min-height:var(--control-h);padding:var(--space-8) var(--space-12);border:1px solid var(--border-strong);border-radius:var(--radius-8);background:var(--surface-sunken);color:var(--text)}.field textarea{resize:vertical}.field-wide{grid-column:1/-1}.subtext{color:var(--text-muted);font-size:var(--text-16);margin:var(--space-8) 0}.subtext-flush{margin:0}.subtext-actionable{color:var(--text);font-weight:var(--weight-medium)}.field-hint{color:var(--text-muted);font-size:var(--text-16)}.field-ok{color:var(--success);font-size:var(--text-14);font-weight:var(--weight-bold);line-height:1}.field:has(>.field-ok) input{border-color:var(--success)}.field-label{align-items:baseline;gap:var(--space-2);display:flex}.required-mark{color:var(--danger)}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:var(--leading-body);font-weight:var(--weight-regular);--surface-deep:var(--surface-sunken);color:var(--text);background-color:var(--bg);scrollbar-gutter:stable;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,:before,:after{box-sizing:border-box}body{min-width:320px;min-height:100dvh;margin:0}a{font-weight:var(--weight-medium);color:var(--accent);-webkit-text-decoration:inherit;text-decoration:inherit}a:hover{filter:brightness(1.15)}button{font-family:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.crash-screen{max-width:34rem;margin:var(--space-48) auto;padding:0 var(--space-24);text-align:center}.crash-title{font-size:var(--text-24);margin:0 0 var(--space-12)}.crash-body{color:var(--text-muted);margin:0 0 var(--space-24);line-height:var(--leading-body)}.crash-actions{gap:var(--space-12);flex-direction:column;align-items:center;display:flex}.achievement-toast{z-index:var(--layer-toast);background:linear-gradient(135deg, var(--surface-solid), var(--surface-deep));border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:var(--radius-8);width:min(22rem,100vw - 2rem);box-shadow:var(--shadow-raised-lg);animation:toast-in var(--dur-slow) var(--ease-celebrate-pop);position:fixed;bottom:1rem;right:1rem}.achievement-toast.toast-leaving{animation:toast-out var(--dur-slow) var(--ease-standard) forwards}.toast-body{gap:var(--space-12);width:100%;padding:var(--space-12) var(--space-16) var(--space-8);color:inherit;text-align:left;cursor:pointer;font:inherit;background:0 0;border:none;align-items:center;display:flex}.toast-icon{font-size:var(--text-24);animation:medal-wiggle .9s var(--ease-standard) var(--dur-slow)}.toast-label{font-size:var(--text-12);letter-spacing:.08em;text-transform:uppercase;color:var(--accent);display:block}.toast-name{font-weight:var(--weight-bold);display:block}.toast-flavor{font-size:var(--text-16);color:var(--text-muted);display:block}.toast-actions{justify-content:flex-end;gap:var(--space-4);padding:0 var(--space-8) var(--space-8);display:flex}.toast-action{min-height:var(--control-h);color:var(--text-muted);font-size:var(--text-12);cursor:pointer;padding:var(--space-4) var(--space-6);border-radius:var(--radius-4);background:0 0;border:none}.toast-action:hover,.toast-action:focus-visible{color:var(--text);background:var(--surface-deep)}@keyframes toast-in{0%{opacity:0;transform:translate(120%)}to{opacity:1;transform:translate(0)}}@keyframes toast-out{to{opacity:0;transform:translate(120%)}}@keyframes medal-wiggle{0%,to{transform:rotate(0)}25%{transform:rotate(-14deg)}55%{transform:rotate(10deg)}80%{transform:rotate(-5deg)}}.milestone-overlay{z-index:var(--layer-overlay);background:var(--ambient-scrim);animation:overlay-in var(--dur-slow) var(--ease-standard);cursor:pointer;padding:var(--space-16);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.milestone-card{text-align:center;background:var(--surface-solid);border:1px solid var(--border);border-radius:var(--radius-12);width:min(26rem,100%);padding:var(--space-24) var(--space-24);box-shadow:var(--shadow-overlay);animation:milestone-pop .45s var(--ease-celebrate-rise);cursor:default}.milestone-badge{width:6rem;height:6rem;margin:0 auto var(--space-16);border-radius:var(--radius-circle);font-size:var(--display-40);background:radial-gradient(circle at 35% 30%, var(--warning), var(--accent) 60%, var(--warning));box-shadow:var(--glow-accent);justify-content:center;align-items:center;display:flex}.milestone-label{font-size:var(--text-12);letter-spacing:.1em;text-transform:uppercase;color:var(--accent)}.milestone-name{font-size:var(--text-24);font-weight:var(--weight-bold);margin:var(--space-4) 0}.milestone-flavor{color:var(--text-muted)}.milestone-hint{margin-top:var(--space-20);font-size:var(--text-12);color:var(--text-muted);opacity:.8}.milestone-skip{margin-top:var(--space-12)}.ovation-overlay{z-index:var(--layer-overlay);background:radial-gradient(circle at 50% 38%, var(--ovation-glow), transparent 58%), var(--ambient-scrim);animation:overlay-in var(--dur-slow) var(--ease-standard);cursor:pointer;padding:var(--space-16);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.ovation-card{text-align:center;background:var(--surface-solid);border:1px solid var(--accent-line);border-radius:var(--radius-16);width:min(32rem,100%);padding:var(--space-32) var(--space-24);box-shadow:var(--shadow-overlay);animation:ovation-rise .6s var(--ease-entrance);cursor:default}.ovation-mark{font-size:var(--display-80);margin-bottom:var(--space-12);animation:ovation-mark-pop .7s var(--ease-celebrate-land);line-height:1}.ovation-ceremony .ovation-mark{font-size:var(--display-80)}.ovation-ordinal{font-size:var(--text-12);letter-spacing:.18em;text-transform:uppercase;color:var(--accent);margin-bottom:var(--space-6)}.ovation-headline{font-size:var(--text-32);font-weight:var(--weight-bold);line-height:var(--leading-tight)}.ovation-ceremony .ovation-headline{font-size:var(--display-40)}.ovation-flavor{margin-top:var(--space-8);font-size:var(--text-16);color:var(--text-muted)}.ovation-hint{margin-top:var(--space-24);font-size:var(--text-12);color:var(--text-muted);opacity:.8}.ovation-actions{margin-top:var(--space-16);gap:var(--space-8);flex-wrap:wrap;justify-content:center;display:flex}.log-first-entry-action{margin-top:var(--space-12)}@media (width<=30rem){.ovation-card{padding:var(--space-24) var(--space-20)}.ovation-mark,.ovation-ceremony .ovation-mark{font-size:var(--display-56)}.ovation-headline{font-size:var(--display-28)}.ovation-ceremony .ovation-headline{font-size:var(--text-32)}.ovation-flavor{font-size:var(--text-16)}}@keyframes ovation-rise{0%{opacity:0;transform:translateY(1.5rem)scale(.92)}to{opacity:1;transform:none}}@keyframes ovation-mark-pop{0%{transform:scale(.3)rotate(-12deg)}65%{transform:scale(1.15)rotate(4deg)}to{transform:none}}@keyframes overlay-in{0%{opacity:0}}@keyframes milestone-pop{0%{opacity:0;transform:scale(.4)}70%{opacity:1;transform:scale(1.06)}to{transform:scale(1)}}.recap-card{background:var(--surface-solid);border:1px solid var(--border);border-radius:var(--radius-12);padding:var(--space-24);width:min(26rem,100%)}.recap-list{margin:var(--space-16) 0;text-align:left;gap:var(--space-8);max-height:45vh;padding:0;list-style:none;display:grid;overflow-y:auto}.recap-list li{gap:var(--space-8);align-items:center;display:flex}.recap-icon{font-size:var(--text-20)}.recap-name{font-weight:var(--weight-semibold);display:block}.recap-desc{font-size:var(--text-16);color:var(--text-muted);display:block}.confetti-field{pointer-events:none;position:absolute;inset:0;overflow:hidden}.confetti-piece{border-radius:var(--radius-4);opacity:0;width:8px;height:13px;animation:1.9s ease-in forwards confetti-fall;position:absolute;top:18%}@keyframes confetti-fall{0%{opacity:0;transform:translate(0)rotate(0)}8%{opacity:1}80%{opacity:1}to{opacity:0;transform:translate(var(--drift,0px), 62vh) rotate(560deg)}}.nav-badge{min-width:1.15rem;margin-left:var(--space-6);padding:0 var(--space-4);border-radius:var(--radius-full);background:var(--accent);color:var(--on-accent);font-size:var(--text-12);font-weight:var(--weight-bold);line-height:var(--leading-body);text-align:center;display:inline-block}.achievements-hero{gap:var(--space-16);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-8);padding:var(--space-16) var(--space-16);margin-bottom:var(--space-16);flex-wrap:wrap;justify-content:space-between;align-items:center;display:flex}.hero-stats{gap:var(--space-24);flex-wrap:wrap;display:flex}.hero-stat .hero-value{font-size:var(--text-20);font-weight:var(--weight-bold);display:block}.hero-stat .hero-caption{font-size:var(--text-12);color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;display:block}.hero-next{font-size:var(--text-14);color:var(--text-muted)}.hero-next strong{color:var(--text)}.achievements-toolbar{gap:var(--space-8);margin-bottom:var(--space-16);flex-wrap:wrap;justify-content:space-between;align-items:center;display:flex}.view-switch{border:1px solid var(--border);border-radius:var(--radius-8);display:inline-flex;overflow:hidden}.view-switch button{min-height:var(--control-h);background:var(--surface-solid);color:var(--text-muted);padding:var(--space-6) var(--space-16);cursor:pointer;font:inherit;font-size:var(--text-14);border:none}.view-switch button.view-active{background:var(--accent);color:var(--on-accent);font-weight:var(--weight-semibold)}.achievement-log{border-left:2px solid var(--border);margin-left:var(--space-8);padding-left:var(--space-16);gap:var(--space-16);display:grid}.log-item{position:relative}.log-item:before{content:"";border-radius:var(--radius-circle);background:var(--accent);width:.6rem;height:.6rem;position:absolute;top:.45rem;left:-1.45rem}.log-item.log-next:before{background:var(--surface-deep);border:2px dashed var(--text-muted);width:.45rem;height:.45rem}.log-title{font-weight:var(--weight-bold)}.log-date{font-size:var(--text-12);color:var(--text-muted)}.log-flavor{font-size:var(--text-16);color:var(--text-muted)}.category-grid{gap:var(--space-16);grid-template-columns:repeat(auto-fill,minmax(17rem,1fr));display:grid}.category-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-8);padding:var(--space-16) var(--space-16)}.category-title{font-weight:var(--weight-bold);margin-bottom:var(--space-8)}.tier-chain{align-items:center;gap:var(--space-4);margin-bottom:var(--space-8);flex-wrap:wrap;display:flex}.tier-node{border-radius:var(--radius-circle);width:1.7rem;height:1.7rem;font-size:var(--text-12);font-weight:var(--weight-bold);background:radial-gradient(circle at 35% 30%, var(--warning), var(--accent) 65%);color:var(--text);justify-content:center;align-items:center;display:inline-flex}.tier-node.tier-locked{background:var(--surface-deep);color:var(--text-muted);border:1px solid var(--border)}.tier-link{background:var(--border);flex:0 0 .7rem;height:2px}.tier-link.tier-link-done{background:var(--accent)}.achievement-row{gap:var(--space-12);padding:var(--space-8) 0;align-items:flex-start;display:flex}.achievement-row+.achievement-row{border-top:1px solid var(--border)}.achievement-row.row-locked{opacity:.65}.row-icon{font-size:var(--text-20)}.row-locked .row-icon{filter:grayscale();opacity:.6}.row-name{font-weight:var(--weight-semibold);align-items:center;gap:var(--space-6);flex-wrap:wrap;display:flex}.row-desc{font-size:var(--text-16);color:var(--text-muted)}.row-progress{margin-top:var(--space-4);align-items:center;gap:var(--space-8);display:flex}.row-progress .progress-track{flex:1;max-width:12rem}.row-progress-caption{font-size:var(--text-12);color:var(--text-muted);white-space:nowrap}.hidden-row{color:var(--text-muted);font-style:italic}@media (prefers-reduced-motion:reduce){.achievement-toast,.achievement-toast.toast-leaving,.milestone-card,.milestone-overlay,.ovation-card,.ovation-mark,.ovation-overlay,.toast-icon{animation:none}.achievement-toast,.milestone-overlay,.ovation-overlay{transition:opacity var(--dur-base) var(--ease-standard)}.confetti-piece{display:none}}.ambient-root{z-index:var(--layer-ambient);pointer-events:none;opacity:calc(var(--ambient-ceiling) * var(--ambient-level,0));transition:opacity var(--dur-base) var(--ease-standard);position:fixed;inset:0}.ambient-scene{width:100%;height:100%;position:absolute;inset:0}.ambient-softs{transition:transform var(--dur-slow) var(--ease-standard);position:absolute;inset:0}.ambient-soft{position:absolute;inset:0}.ambient-root[data-ambient-step="20"] .ambient-soft{opacity:.55}.ambient-root[data-ambient-step="20"] .ambient-scene{opacity:0}.ambient-root[data-ambient-step="40"] .ambient-soft{opacity:.8}.ambient-root[data-ambient-step="40"] .ambient-scene{opacity:.5}.ambient-root[data-ambient-step="60"] .ambient-scene{opacity:.75}.ambient-root[data-ambient-step="80"] .ambient-scene{opacity:.9}:root[data-mood=cutting-mat] .ambient-root[data-ambient-step="20"] .ambient-scene{opacity:.45}:root[data-mood=cutting-mat] .ambient-root[data-ambient-step="40"] .ambient-scene{opacity:.65}.ambient-root.is-stirring .ambient-softs{transition-duration:var(--dur-base);transform:scale(1.02)}@supports (animation-timeline:scroll()){.ambient-softs{animation:linear both ambient-scroll-thin;animation-timeline:scroll(root)}}@keyframes ambient-scroll-thin{0%{opacity:1}to{opacity:.72}}.is-pool-high{background:radial-gradient(52% 48% at 22% 15%, var(--ambient-a), transparent 72%), radial-gradient(25% 26% at 77% 70%, var(--ambient-a), transparent 70%)}.is-pool-low{background:radial-gradient(38% 45% at 9% 50%, var(--ambient-b), transparent 72%), radial-gradient(22% 24% at 34% 30%, var(--ambient-b), transparent 70%)}.is-pool-far{background:radial-gradient(55% 53% at 88% 87%, var(--ambient-c), transparent 72%)}.is-cone{background:conic-gradient(from 175deg at 102% -2%, transparent 0deg, var(--ambient-a) 26deg, var(--ambient-a) 40deg, transparent 62deg)}.is-glow{background:radial-gradient(18% 26% at 96% 2%, var(--ambient-b), transparent 70%)}.is-floor{background:linear-gradient(to top, var(--ambient-c), transparent 22%)}.is-bed{background:radial-gradient(42% 26% at 50% 104%, var(--ambient-a), transparent 75%)}.is-bed-core{background:radial-gradient(20% 12% at 50% 102%, var(--ambient-b), transparent 70%)}.is-margins{background:linear-gradient(to right, var(--ambient-c), transparent 10%), linear-gradient(to left, var(--ambient-c), transparent 10%)}.ambient-vignette{background:radial-gradient(ellipse at center, transparent 52%, var(--ambient-scrim));position:absolute;inset:0}.ambient-root.is-drifting .ambient-soft{animation:140s linear infinite alternate ambient-drift}@keyframes ambient-drift{0%,to{transform:none}50%{transform:translate3d(calc(var(--ambient-drift,0) * 1.4%), calc(var(--ambient-drift,0) * -1%), 0) scale(calc(1 + var(--ambient-drift,0) * .04))}}:root[data-mood] .list-placeholder,:root[data-mood] .page-loading{z-index:0;position:relative;overflow:hidden}:root[data-mood] .list-placeholder:after,:root[data-mood] .page-loading:after{content:"";z-index:var(--layer-ambient);background:linear-gradient(105deg, transparent 35%, var(--ambient-b) 50%, transparent 65%);opacity:var(--ambient-ceiling);animation:2.6s linear infinite ambient-shimmer;position:absolute;inset:0;transform:translate(-100%)}@keyframes ambient-shimmer{to{transform:translate(100%)}}@media (prefers-reduced-motion:reduce){.ambient-root,.ambient-root .ambient-scene,.ambient-root .ambient-softs,.ambient-root .ambient-soft,.ambient-root.is-drifting .ambient-soft,.ambient-root .ambient-vignette,:root[data-mood] .list-placeholder:after,:root[data-mood] .page-loading:after{transition:none;animation:none}.ambient-root.is-stirring .ambient-softs{transform:none}}.pipeline-picker{border:none;min-inline-size:0;margin:0;padding:0}.pipeline-track{gap:var(--space-6);flex-wrap:wrap;display:flex}.pipeline-chip{display:inline-flex;position:relative}.pipeline-radio{opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute;inset:0}.pipeline-chip-face{align-items:center;gap:var(--space-6);min-height:var(--control-h);padding:var(--space-6) var(--space-12);border:1px solid var(--border);border-radius:var(--radius-8);background:var(--surface-deep);color:var(--text-muted);font-size:var(--text-14);cursor:pointer;-webkit-user-select:none;user-select:none;transition:border-color var(--dur-fast) var(--ease-standard), background var(--dur-fast) var(--ease-standard), color var(--dur-fast) var(--ease-standard);display:inline-flex}.pipeline-chip:hover .pipeline-chip-face{border-color:var(--text-muted)}.pipeline-radio:checked~.pipeline-chip-face{border-color:var(--accent);background:var(--accent-wash);color:var(--text)}.pipeline-radio:focus-visible~.pipeline-chip-face{outline:2px solid var(--accent);outline-offset:2px}.pipeline-chip-glyph{font-size:var(--text-16)}.quantity-stepper{align-items:stretch;gap:var(--space-6);display:flex}.stepper-btn{min-width:var(--control-h);min-height:var(--control-h);border:1px solid var(--border);border-radius:var(--radius-8);background:var(--surface-deep);color:var(--text);font-size:var(--text-20);cursor:pointer;line-height:1}.stepper-btn:hover:not(:disabled){border-color:var(--accent)}.stepper-btn:disabled{opacity:.4;cursor:default}.quantity-stepper input{width:5.5rem;min-height:var(--control-h);text-align:center;font-size:var(--text-16);border:1px solid var(--border-strong);border-radius:var(--radius-8);background:var(--surface-deep);color:var(--text)}.suggestion-chips{gap:var(--space-6);margin-top:var(--space-6);flex-wrap:wrap;display:flex}.suggestion-chip{min-height:32px;padding:var(--space-4) var(--space-12);border:1px solid var(--border);border-radius:var(--radius-full);background:var(--surface-deep);color:var(--text-muted);font-size:var(--text-14);cursor:pointer;transition:border-color var(--dur-fast) var(--ease-standard), color var(--dur-fast) var(--ease-standard)}.suggestion-chip:hover{border-color:var(--accent);color:var(--text)}.app{max-width:960px;padding:var(--space-24) var(--space-16) var(--space-48);margin:0 auto}.app-header{justify-content:space-between;align-items:center;gap:var(--space-8) var(--space-16);margin-bottom:var(--space-24);flex-wrap:wrap;display:flex}.app-header h1{font-size:var(--display-28);color:var(--accent);letter-spacing:.02em;margin:0}.tagline{margin:var(--space-2) 0 0;color:var(--text-muted);font-size:var(--text-14)}.summary{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-12);padding:var(--space-20);margin-bottom:var(--space-20)}.summary-progress-labels{margin-bottom:var(--space-8);justify-content:space-between;align-items:baseline;display:flex}.summary-progress-title{font-weight:var(--weight-semibold)}.summary-progress-value{font-size:var(--text-24);font-weight:var(--weight-bold);color:var(--accent)}.progress-track{background:var(--surface-deep);border-radius:var(--radius-4);height:12px;overflow:hidden}.progress-fill{background:linear-gradient(90deg, var(--accent) 0%, var(--warning) 100%);border-radius:var(--radius-4);height:100%;transition:width var(--dur-slow) var(--ease-standard)}.summary-caption{margin:var(--space-8) 0 0;color:var(--text-muted);font-size:var(--text-14)}.summary-statuses{gap:var(--space-8);margin-top:var(--space-16);flex-wrap:wrap;display:flex}.status-chip{min-height:var(--control-h);min-width:5.5rem;padding:var(--space-8) var(--space-12);background:var(--surface-deep);border:1px solid var(--border);border-radius:var(--radius-8);cursor:pointer;color:var(--text);transition:border-color var(--dur-base) var(--ease-standard), background var(--dur-base) var(--ease-standard);flex-direction:column;align-items:center;display:flex}.status-chip:hover{border-color:var(--accent)}.status-chip.active{border-color:var(--accent);background:var(--accent-wash)}.status-chip-count{font-size:var(--text-20);font-weight:var(--weight-bold)}.status-chip-label{font-size:var(--text-12);color:var(--text-muted)}.toolbar{gap:var(--space-12);margin-bottom:var(--space-20);display:flex}.search-input{padding:var(--space-8) var(--space-16);border-radius:var(--radius-8);border:1px solid var(--border-strong);background:var(--surface-solid);color:var(--text);font-size:var(--text-16);flex:1}.form-actions{gap:var(--space-12);margin-top:var(--space-16);display:flex}.pending-hint{margin-top:var(--space-8);font-size:var(--text-16);color:var(--text-muted);display:block}.system-group{margin-bottom:var(--space-24)}.system-title{align-items:baseline;gap:var(--space-8);font-size:var(--text-16);margin:0 0 var(--space-8);display:flex}.system-count{font-size:var(--text-12);font-weight:var(--weight-regular);color:var(--text-muted)}.mini-list{gap:var(--space-8);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.mini-card{padding:var(--space-12) var(--space-16);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-8);border-left-width:4px}.mini-card-row{justify-content:space-between;align-items:center;gap:var(--space-12);display:flex}.mini-card-main{gap:var(--space-2);flex-direction:column;min-width:0;display:flex}.mini-card-name{font-weight:var(--weight-semibold);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mini-card-meta{gap:var(--space-8);font-size:var(--text-12);color:var(--text-muted);display:flex}.mini-card-actions{align-items:center;gap:var(--space-6);flex-shrink:0;display:flex}.status-select{min-height:var(--control-h);padding:var(--space-6) var(--space-8);border-radius:var(--radius-8);border:1px solid var(--border-strong);background:var(--surface-deep);color:var(--text);font-size:var(--text-16);cursor:pointer}.status-border-wishlist{border-left-color:var(--status-wishlist)}.status-border-unassembled{border-left-color:var(--status-unassembled)}.status-border-assembled{border-left-color:var(--status-assembled)}.status-border-primed{border-left-color:var(--status-primed)}.status-border-inprogress{border-left-color:var(--status-inprogress)}.status-border-painted{border-left-color:var(--status-painted)}.status-border-complete{border-left-color:var(--status-complete)}.list-placeholder{text-align:center;color:var(--text-muted);padding:var(--space-32) var(--space-16)}.empty-state{text-align:center;color:var(--text-muted);padding:var(--space-32) var(--space-16);gap:var(--space-8);flex-direction:column;align-items:center;display:flex}.empty-state .empty-title{font-size:var(--text-18);color:var(--text);font-weight:var(--weight-semibold)}.empty-state .empty-body{max-width:42ch}.empty-state .empty-action{margin-top:var(--space-8)}.error{color:var(--danger)}.confirm{margin-top:var(--space-16);padding:var(--space-16);border:1px solid var(--danger-line);border-radius:var(--radius-8);background:var(--surface-deep);gap:var(--space-12);flex-direction:column;display:flex}.confirm-actions{align-items:center;gap:var(--space-12);flex-wrap:wrap;display:flex}.checkbox{align-items:flex-start;gap:var(--space-8);font-size:var(--text-16);line-height:var(--leading-body);cursor:pointer;display:flex}.checkbox input{margin-top:var(--space-4);flex-shrink:0}footer{margin-top:var(--space-32);text-align:center;color:var(--text-muted);font-size:var(--text-12)}.header-actions{align-items:center;gap:var(--space-12);flex-wrap:wrap;display:flex}.user-menu{align-items:center;gap:var(--space-8);display:flex}.user-email{text-overflow:ellipsis;white-space:nowrap;max-width:14rem;color:var(--text-muted);font-size:var(--text-14);overflow:hidden}.user-identity{align-items:center;gap:var(--space-8);min-width:0;display:inline-flex}.user-identity-name{text-overflow:ellipsis;white-space:nowrap;max-width:12rem;color:var(--text-muted);font-size:var(--text-14);overflow:hidden}.user-avatar{border-radius:var(--radius-circle);object-fit:cover;background:var(--surface);flex-shrink:0;width:2rem;height:2rem}.user-avatar-placeholder{border:1px solid var(--border);color:var(--text-muted);font-weight:var(--weight-bold);font-size:var(--text-14);justify-content:center;align-items:center;display:inline-flex}.user-identity-large .user-avatar{width:6rem;height:6rem;font-size:var(--display-40)}.profile-avatar{align-items:flex-start;gap:var(--space-16);margin-bottom:var(--space-20);flex-wrap:wrap;display:flex}.profile-avatar-actions{gap:var(--space-8);flex-direction:column;flex:1;min-width:12rem;display:flex}.profile-avatar-copy{color:var(--text-muted);font-size:var(--text-16);margin:0}.profile-avatar-buttons{gap:var(--space-8);flex-wrap:wrap;display:flex}.profile-form{gap:var(--space-16);flex-direction:column;max-width:26rem;display:flex}.profile-saved{color:var(--text-muted);font-size:var(--text-16);margin:0}.page-loading{min-height:50vh;color:var(--text-muted);place-items:center;display:grid}.auth-page{min-height:100vh;padding:var(--space-16);place-items:center;display:grid}.auth-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-12);width:100%;max-width:380px;padding:var(--space-32)}.auth-card h1{margin:0 0 var(--space-4);color:var(--accent);font-size:var(--text-24)}.auth-card h2{margin:0 0 var(--space-20);font-size:var(--text-18);color:var(--text-muted);font-weight:var(--weight-medium)}.brand-link{min-height:var(--control-h);align-items:center;text-decoration:none;display:inline-flex}.auth-intro{margin:0 0 var(--space-20);font-size:var(--text-16);color:var(--text-muted);line-height:var(--leading-body)}.auth-form{gap:var(--space-16);flex-direction:column;display:flex}.auth-switch{margin:var(--space-20) 0 0;font-size:var(--text-16);color:var(--text-muted)}.auth-switch a{color:var(--accent)}.external-providers{margin-top:var(--space-20);gap:var(--space-8);flex-direction:column;display:flex}.divider,.provider-label{text-align:center;color:var(--text-muted);font-size:var(--text-12);margin:0 0 var(--space-4)}.email-form{margin-top:var(--space-20)}.email-form .divider{margin-bottom:var(--space-6)}.invite-entry{margin-top:var(--space-20)}.privacy-note{margin:var(--space-20) 0 0;font-size:var(--text-16);color:var(--text-muted);text-align:center;line-height:var(--leading-body)}.waitlist-prompt{margin-bottom:var(--space-16)}.auth-secondary{justify-content:space-between;gap:var(--space-12);margin-top:var(--space-16);flex-wrap:wrap;display:flex}.link-button{color:var(--accent);font:inherit;font-size:var(--text-14);cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}.link-button:disabled{color:var(--text-muted);cursor:default;text-decoration:none}.confirm-context{margin:0 0 var(--space-20);padding:var(--space-16) var(--space-16);border:1px solid var(--border);border-radius:var(--radius-8);background:var(--surface-deep);gap:var(--space-6);flex-direction:column;display:flex}.confirm-context div{justify-content:space-between;gap:var(--space-16);font-size:var(--text-14);display:flex}.confirm-context dt{color:var(--text-muted)}.confirm-context dd{font-weight:var(--weight-semibold);margin:0}.confirm-warning{margin:var(--space-20) 0 0;font-size:var(--text-16)}.landing .app-header{margin-bottom:var(--space-48)}.landing a{text-decoration:none}.hero{text-align:center;padding:var(--space-48) 0 var(--space-48)}.hero h1{font-size:var(--hero-size);margin:0 0 var(--space-16);line-height:var(--leading-tight)}.hero-sub{max-width:620px;margin:0 auto var(--space-24);color:var(--text-muted);font-size:var(--text-18);line-height:var(--leading-body)}.hero-cta a{text-decoration:none}.features{margin:var(--space-32) 0 var(--space-48)}.feature{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-12);padding:var(--space-24)}.feature h3{margin:0 0 var(--space-8);font-size:var(--text-16);color:var(--accent)}.feature p{color:var(--text-muted);font-size:var(--text-16);line-height:var(--leading-body);margin:0}.waitlist{text-align:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-12);padding:var(--space-32) var(--space-24)}.waitlist h2{margin:0 0 var(--space-8)}.waitlist p{color:var(--text-muted);max-width:520px;margin:0 auto var(--space-20)}.waitlist-form{gap:var(--space-8);flex-wrap:wrap;justify-content:center;display:flex}.waitlist-form input{padding:var(--space-12) var(--space-16);border-radius:var(--radius-8);border:1px solid var(--border-strong);background:var(--surface-deep);color:var(--text);font-size:var(--text-16);min-width:240px}.waitlist-thanks{font-weight:var(--weight-semibold);color:var(--text)!important}.scanner-video-wrap{margin-bottom:var(--space-12)}.scanner-picture{position:relative}.scanner-video{border-radius:var(--radius-8);background:var(--surface-deep);object-fit:cover;width:100%;max-height:280px;display:block}.scanner-chips{left:0;right:0;bottom:var(--space-6);justify-content:center;gap:var(--space-8);display:flex;position:absolute}.scanner-chip{min-width:var(--control-h);min-height:var(--control-h);padding:0 var(--space-12);border:1px solid var(--border);border-radius:var(--radius-full);background:var(--surface-solid);color:var(--text);font:inherit;font-size:var(--text-14);font-weight:var(--weight-medium);cursor:pointer}.scanner-chip[aria-pressed=true]{border-color:var(--accent)}.scanner-chip:disabled{color:var(--text-muted);cursor:default}.scanner-paused{justify-content:center;align-items:center;gap:var(--space-8);width:100%;min-height:calc(var(--control-h) + var(--space-12));margin-bottom:var(--space-12);padding:0 var(--space-12);border:1px dashed var(--border-strong);border-radius:var(--radius-8);background:var(--surface-sunken);color:var(--text);font:inherit;font-size:var(--text-14);cursor:pointer;display:flex}.scanner-manual{gap:var(--space-8);display:flex}.scanner-manual input{padding:var(--space-8) var(--space-12);border-radius:var(--radius-8);border:1px solid var(--border-strong);background:var(--surface-deep);color:var(--text);font-size:var(--text-16);flex:1}.scanner-video-wrap--hidden{display:none}.scanner-reticle{left:50%;bottom:calc(var(--control-h) + var(--space-6) + var(--space-4));border:2px solid var(--accent);border-radius:var(--radius-8);width:min(280px,70%);height:min(150px,36%);box-shadow:var(--shadow-scrim);pointer-events:none;position:absolute;overflow:hidden;transform:translate(-50%)}.scanner-reticle-hit{border-color:var(--success);box-shadow:var(--shadow-scrim), var(--glow-success)}.scanner-sweep{background:var(--accent);opacity:.8;height:2px;animation:1.6s ease-in-out infinite alternate scanner-sweep;position:absolute;left:6%;right:6%}@keyframes scanner-sweep{0%{top:12%}to{top:86%}}@media (prefers-reduced-motion:reduce){.scanner-sweep{animation:none;top:50%}}.scan-history{margin-top:var(--space-12)}.scan-history-label{color:var(--text-muted);font-size:var(--text-12);margin-bottom:var(--space-6);display:block}.scan-history-chips{gap:var(--space-6);flex-wrap:wrap;display:flex}.scan-history-chip{min-height:var(--control-h);padding:var(--space-4) var(--space-12);border-radius:var(--radius-full);border:1px solid var(--border);background:var(--surface-deep);color:var(--text);font-size:var(--text-12);cursor:pointer}.scan-history-chip:hover:not(:disabled){border-color:var(--accent)}.scan-card{gap:var(--space-16);padding:var(--space-16);border:1px solid var(--border);border-radius:var(--radius-8);background:var(--surface-deep);align-items:flex-start;display:flex}.scan-card-added{border-color:var(--success)}.scan-card-image{object-fit:cover;border-radius:var(--radius-8);flex-shrink:0;width:96px;height:96px}.scan-card-body{flex:1;min-width:0}.scan-card-body h3{margin:0 0 var(--space-4);font-size:var(--text-16)}.scan-card-meta{color:var(--text-muted);font-size:var(--text-14);margin:0}.scan-card-code{margin:var(--space-4) 0 0;color:var(--text-muted);font-size:var(--text-12);font-family:ui-monospace,monospace}.scan-card-actions{gap:var(--space-8);flex-direction:column;flex-shrink:0;display:flex}.scan-report-photos{margin:var(--space-12) 0}.scan-report-note{width:100%;margin-top:var(--space-4);padding:var(--space-8) var(--space-12);border-radius:var(--radius-8);border:1px solid var(--border-strong);background:var(--surface-solid);color:var(--text);font-size:var(--text-16);resize:vertical;font-family:inherit}.scan-report-sharing{margin:var(--space-8) 0 0;color:var(--text-muted);font-size:var(--text-16);line-height:var(--leading-body)}@media (width<=48rem){.scan-card{flex-direction:column}.scan-card-actions{flex-flow:wrap}}.modal-backdrop{z-index:var(--layer-overlay);background:var(--scrim-strong);padding:var(--space-24);padding-top:var(--dialog-top-offset);justify-content:center;align-items:flex-start;display:flex;position:fixed;inset:0;overflow-y:auto}.modal-panel{width:min(560px,100%);max-height:calc(100vh - var(--dialog-top-offset) - var(--space-24));max-height:calc(100dvh - var(--dialog-top-offset) - var(--space-24));background:var(--surface-solid);border:1px solid var(--border);border-radius:var(--radius-12);flex-direction:column;display:flex}.dialog-header{align-items:center;gap:var(--space-12);min-height:var(--control-h);margin-top:var(--space-20);padding:0 var(--space-20);flex:none;display:flex}.dialog-header h2{min-width:0;font-size:var(--text-18);white-space:nowrap;text-overflow:ellipsis;flex:auto;margin:0;overflow:hidden}.dialog-close{min-width:var(--control-h);min-height:var(--control-h);border-radius:var(--radius-8);color:var(--text-muted);font-size:var(--text-18);cursor:pointer;background:0 0;border:none;flex:none;justify-content:center;align-items:center;padding:0;line-height:1;display:flex}.dialog-close:hover{color:var(--text)}.dialog-body{min-height:0;padding:var(--space-16) var(--space-20) var(--space-20);flex:auto;overflow-y:auto}.dialog-body:has(+.dialog-footer){padding-bottom:0}.dialog-footer{padding:0 var(--space-20) calc(var(--space-20) + env(safe-area-inset-bottom,0px));flex:none}.dialog-form{flex-direction:column;flex:auto;min-height:0;display:flex}@media (width<=48rem){.modal-backdrop{align-items:stretch;padding:0}.modal-panel{border:none;border-radius:0;width:100%;max-height:100dvh}.modal-panel-sheet{height:100dvh}.modal-backdrop-drawer{background:var(--scrim);align-items:flex-end;overflow:hidden}.modal-panel-drawer{border-radius:var(--radius-16) var(--radius-16) 0 0;max-height:90dvh;animation:drawer-rise var(--dur-slow) var(--ease-entrance);transition:transform var(--dur-base) var(--ease-standard), height var(--dur-base) var(--ease-standard);touch-action:pan-y;overflow:hidden}.modal-panel-drawer[data-detent=half]{height:max(50dvh,24rem)}.modal-panel-drawer[data-detent=full]{height:90dvh}.modal-panel-drawer .dialog-header{grid-template-columns:minmax(0, 1fr) var(--control-h) minmax(0, 1fr);height:var(--drawer-header-h);touch-action:none;-webkit-user-select:none;user-select:none;cursor:grab;align-items:center;margin-top:0;display:grid}.modal-panel-drawer .dialog-close{justify-self:end}.modal-panel-drawer .dialog-body{padding:0 var(--space-20) calc(var(--space-20) + env(safe-area-inset-bottom,0px))}.modal-panel-drawer .dialog-body:has(+.dialog-footer){padding-bottom:0}.drawer-handle{width:var(--control-h);height:var(--control-h);padding:var(--space-8) 0 0;border-radius:var(--radius-8);cursor:inherit;background:0 0;border:none;justify-content:center;place-self:start center;align-items:flex-start;display:flex}.drawer-handle:after{content:"";border-radius:var(--radius-full);background:var(--border-strong);width:2.25rem;height:.25rem}.drawer-handle:focus-visible{outline-offset:-3px}.scanner[data-typing=true] .scanner-video-wrap{display:none}.modal-panel-drawer[data-detent=half] .scanner-video{max-height:160px}.modal-panel-drawer[data-detent=full] .scanner-video{max-height:min(280px,35dvh)}.modal-panel-drawer[data-detent=half] .scanner-video-wrap .subtext{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.modal-panel-drawer[data-detent=half] .scan-history-chips{flex-wrap:nowrap;overflow-x:auto}}@keyframes drawer-rise{0%{transform:translateY(100%)}to{transform:translateY(0)}}.app-nav{align-items:center;gap:var(--space-8) var(--space-16);flex-wrap:wrap;flex-basis:100%;display:flex}.app-nav-group{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.nav-active{border-color:var(--accent);color:var(--accent)}.nav-link{align-items:center;gap:var(--space-6);min-height:var(--control-h);padding:var(--space-8);border-radius:var(--radius-8);color:var(--text-muted);font-weight:var(--weight-medium);transition:color var(--dur-base) var(--ease-standard), background-color var(--dur-base) var(--ease-standard);text-decoration:none;display:inline-flex}.nav-link:hover{color:var(--text);background:var(--surface)}.nav-link.nav-active{color:var(--accent);background:var(--surface-sunken);font-weight:var(--weight-semibold)}.tab-bar{z-index:var(--layer-sticky);justify-content:space-around;align-items:stretch;gap:var(--space-2);padding:var(--space-6);padding-bottom:calc(var(--space-6) + env(safe-area-inset-bottom,0px));background:var(--surface-solid);border-top:1px solid var(--border);display:flex;position:fixed;bottom:0;left:0;right:0}.app:has(.tab-bar){padding-bottom:calc(var(--tab-bar-h) + var(--space-16) + env(safe-area-inset-bottom,0px))}.tab-item{justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--control-h);padding:var(--space-4) 0;border-radius:var(--radius-8);color:var(--text-muted);font:inherit;font-size:var(--text-14);font-weight:var(--weight-medium);white-space:nowrap;cursor:pointer;background:0 0;border:none;flex-direction:column;flex:1 1 0;text-decoration:none;display:inline-flex}.tab-item.nav-active{color:var(--accent);font-weight:var(--weight-semibold)}.tab-scan{justify-content:center;align-items:center;gap:var(--space-4);min-height:var(--control-h);padding:var(--space-8) var(--space-8);border-radius:var(--radius-full);background:var(--accent);color:var(--on-accent);font:inherit;font-size:var(--text-16);font-weight:var(--weight-semibold);cursor:pointer;transition:filter var(--dur-base) var(--ease-standard);border:none;flex:1 1 0;display:inline-flex}.tab-scan:hover{filter:brightness(1.1)}.brand-row{justify-content:space-between;align-items:center;gap:var(--space-12);display:flex}.avatar-button{min-width:var(--control-h);min-height:var(--control-h);border-radius:var(--radius-full);cursor:pointer;background:0 0;border:none;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex;position:relative}.avatar-button[aria-current] .user-avatar{outline:2px solid var(--accent);outline-offset:2px}.avatar-button .nav-badge{margin:0;position:absolute;top:0;right:0}.account-sheet-nav{gap:var(--space-2);margin-top:var(--space-8);flex-direction:column;display:flex}.account-sheet-identity,.account-sheet-link{align-items:center;gap:var(--space-8);min-height:var(--control-h);padding:var(--space-8) var(--space-12);border-radius:var(--radius-8);color:var(--text);font-size:var(--text-18);text-decoration:none;display:flex}.account-sheet-identity:hover,.account-sheet-link:hover{background:var(--surface-sunken)}.account-sheet-identity.nav-active,.account-sheet-link.nav-active{color:var(--accent);font-weight:var(--weight-semibold)}.account-sheet-identity .user-identity{flex:auto}.account-sheet-identity .user-identity-name{max-width:none;color:inherit;font-size:inherit}.account-sheet-trailer{color:var(--text-muted);font-size:var(--text-14);flex:none}.account-sheet-chevron{color:var(--text-muted);font-size:var(--text-20);flex:none;line-height:1}.account-sheet-foot{margin-top:var(--space-12);padding-top:var(--space-8);border-top:1px solid var(--border-soft)}.account-sheet-signout{align-items:center;gap:var(--space-8);width:100%;min-height:var(--control-h);padding:var(--space-8) var(--space-12);border-radius:var(--radius-8);color:var(--text-muted);font:inherit;font-size:var(--text-16);text-align:left;cursor:pointer;background:0 0;border:none;display:flex}.account-sheet-signout:hover{color:var(--text);background:var(--surface-sunken)}.brand-link{color:inherit;font-weight:inherit;text-decoration:none}.paint-list{margin:var(--space-12) 0 0;gap:var(--space-8);flex-direction:column;padding:0;list-style:none;display:flex}.paint-row{align-items:center;gap:var(--space-12);display:flex}.paint-swatch{border-radius:var(--radius-4);border:1px solid var(--border);flex-shrink:0;width:26px;height:26px}.paint-name{flex-direction:column;flex:1;min-width:0;display:flex}.paint-brand{color:var(--text-muted);font-size:var(--text-12)}.paint-equivalent{color:var(--accent);font-size:var(--text-12)}.paint-owned{color:var(--text-muted);font-size:var(--text-14)}.recipe{border-top:1px solid var(--border);padding-top:var(--space-12);margin-top:var(--space-12)}.recipe-head{justify-content:space-between;align-items:center;display:flex}.recipe-head h3{font-size:var(--text-16);margin:0}.recipe-steps{margin:var(--space-8) 0 0;padding-left:var(--space-20);color:var(--text-muted);font-size:var(--text-16)}.recipe-form{border-top:1px solid var(--border);margin-top:var(--space-16);padding-top:var(--space-16);gap:var(--space-8);flex-direction:column;display:flex}.recipe-form h3{font-size:var(--text-16);margin:0}.recipe-form input,.recipe-form select{padding:var(--space-8) var(--space-12);border-radius:var(--radius-8);border:1px solid var(--border-strong);background:var(--surface-deep);color:var(--text);font-size:var(--text-16)}.recipe-step-row{gap:var(--space-8);display:flex}.recipe-step-row input{flex:1}.paint-search-row{gap:var(--space-8);display:flex}.paint-search-row .search-input{flex:1;min-width:0}.brand-select{padding:var(--space-8) var(--space-12);border-radius:var(--radius-8);border:1px solid var(--border-strong);background:var(--surface-deep);color:var(--text);font-size:var(--text-16);max-width:40%}.recipe-actions{align-items:center;gap:var(--space-6);display:flex}.recipe-badge{margin:var(--space-6) 0 0;color:var(--accent);font-size:var(--text-14);font-weight:var(--weight-semibold)}.recipe-meta{margin:var(--space-2) 0 0;color:var(--text-muted);font-size:var(--text-12)}.recipe-section-view{margin-top:var(--space-8)}.recipe-section-name{margin:var(--space-8) 0 0;font-size:var(--text-14);color:var(--text)}.paint-chips{gap:var(--space-6);margin-top:var(--space-4);flex-wrap:wrap;display:flex}.paint-chip{align-items:center;gap:var(--space-6);padding:var(--space-2) var(--space-8);border:1px solid var(--border);border-radius:var(--radius-full);background:var(--surface-deep);font-size:var(--text-12);color:var(--text);display:inline-flex}.paint-chip .paint-swatch{border-radius:var(--radius-circle);width:14px;height:14px}.chip-role-tag{color:var(--text-muted);font-size:var(--text-12);text-transform:uppercase;letter-spacing:.04em}.chip-role{padding:var(--space-2) var(--space-4);border-radius:var(--radius-4);border:1px solid var(--border);background:var(--surface);color:var(--text-muted);font-size:var(--text-12)}.paint-chip .btn-icon{font-size:var(--text-12);padding:0 var(--space-4)}.recipe-editor-section{gap:var(--space-8);border-left:2px solid var(--border);padding-left:var(--space-12);flex-direction:column;display:flex}.recipe-section-head{gap:var(--space-8);display:flex}.recipe-section-head input{flex:1}.recipe-editor-step{gap:var(--space-6);flex-direction:column;display:flex}.paint-picker{border:1px solid var(--border);border-radius:var(--radius-8);padding:var(--space-8);background:var(--surface-solid)}.paint-picker .search-input{width:100%}.recipe-form textarea{padding:var(--space-8) var(--space-12);border-radius:var(--radius-8);border:1px solid var(--border-strong);background:var(--surface-deep);color:var(--text);font-size:var(--text-16);resize:vertical;font-family:inherit}.rollup{margin-top:var(--space-8);border-top:1px dashed var(--border);padding-top:var(--space-8)}.rollup-list{gap:var(--space-8);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.rollup-row{align-items:center;gap:var(--space-12);display:flex}.rollup-verdict{font-size:var(--text-14);color:var(--text-muted);text-align:right}.rollup-owned .rollup-verdict{color:var(--success)}.rollup-alternativeowned .rollup-verdict,.rollup-closematchowned .rollup-verdict{color:var(--accent)}.linked-recipe-list{margin:0 0 var(--space-12);gap:var(--space-8);flex-direction:column;padding:0;list-style:none;display:flex}.linked-recipe-row{align-items:center;gap:var(--space-12);flex-wrap:wrap;display:flex}.linked-recipe-name{color:var(--text);font-weight:var(--weight-semibold)}.linked-recipe-row .recipe-badge{flex:1;margin:0}.link-recipe-select{padding:var(--space-8) var(--space-12);border-radius:var(--radius-8);border:1px solid var(--border-strong);background:var(--surface-deep);color:var(--text);font-size:var(--text-16)}.invite-head{justify-content:space-between;align-items:flex-start;gap:var(--space-16);flex-wrap:wrap;display:flex}.invite-head h2{margin:0 0 var(--space-4);font-size:var(--text-18)}.invite-list{margin:var(--space-16) 0 0;gap:var(--space-8);flex-direction:column;padding:0;list-style:none;display:flex}.invite-row{padding:var(--space-12) var(--space-16);background:var(--surface-deep);border:1px solid var(--border);border-radius:var(--radius-8)}.invite-summary{align-items:center;gap:var(--space-12);flex-wrap:wrap;display:flex}.invite-code{font-family:ui-monospace,monospace;font-size:var(--text-16);letter-spacing:.06em}.invite-status{font-size:var(--text-12);font-weight:var(--weight-semibold);padding:var(--space-2) var(--space-8);border-radius:var(--radius-full);border:1px solid var(--border);color:var(--text-muted)}.invite-status-pending{border-color:var(--accent-line);color:var(--accent)}.invite-status-claimed{border-color:var(--success);color:var(--success)}.invite-expiry{color:var(--text-muted);font-size:var(--text-12);margin-left:auto}.invite-actions{align-items:center;gap:var(--space-8);margin-top:var(--space-8);flex-wrap:wrap;display:flex}.invite-link{min-width:200px;padding:var(--space-8) var(--space-12);border-radius:var(--radius-8);border:1px solid var(--border);background:var(--surface-solid);color:var(--text-muted);font-family:ui-monospace,monospace;font-size:var(--text-12);flex:1}.photo-gallery{margin-top:var(--space-12);padding-top:var(--space-12);border-top:1px solid var(--border)}.photo-grid{gap:var(--space-8);flex-wrap:wrap;display:flex}.photo-thumb{width:84px;height:84px;margin:0;position:relative}.photo-thumb img{object-fit:cover;border-radius:var(--radius-8);border:1px solid var(--border);width:100%;height:100%}.photo-delete{background:var(--scrim-strong);color:var(--text);border-radius:var(--radius-4);padding:var(--space-2) var(--space-6);font-size:var(--text-12);position:absolute;top:2px;right:2px}.photo-add{border-radius:var(--radius-8);border:1px dashed var(--border);background:var(--surface-deep);width:84px;height:84px;color:var(--text-muted);cursor:pointer;font-size:var(--text-12)}.photo-add:hover:not(:disabled){border-color:var(--accent);color:var(--text)}.photo-thumb-open{cursor:zoom-in;background:0 0;border:none;width:100%;height:100%;padding:0;display:block}.photo-tile-uploading img{opacity:.6}.photo-progress{border-radius:var(--radius-4);background:var(--scrim-strong);height:6px;position:absolute;bottom:6px;left:6px;right:6px;overflow:hidden}.photo-progress-bar{background:var(--accent);height:100%;transition:width var(--dur-base) var(--ease-standard)}.photo-thumb.photo-tile-error{gap:var(--space-8);align-items:flex-start;width:100%;max-width:320px;height:auto;display:flex}.photo-tile-error img{opacity:.6;flex:none;width:84px;height:84px}.photo-tile-error .photo-delete{position:absolute;top:2px;left:2px;right:auto}.photo-tile-error-text,.photo-tile-error figcaption{font-size:var(--text-16);color:var(--danger);align-self:center}.photo-confirm{z-index:var(--layer-raised);min-width:210px;padding:var(--space-8) var(--space-12);border-radius:var(--radius-8);border:1px solid var(--border);background:var(--surface-solid);box-shadow:var(--shadow-raised);position:absolute;top:0;left:0}.photo-confirm p{margin:0 0 var(--space-8);font-size:var(--text-16);color:var(--text)}.photo-confirm-actions{gap:var(--space-6);display:flex}.photo-confirm-actions .btn-danger,.photo-confirm-actions .btn-ghost{padding:var(--space-4) var(--space-8);font-size:var(--text-12)}.mini-card-cover{width:var(--control-h);height:var(--control-h);object-fit:cover;border-radius:var(--radius-8);border:1px solid var(--border);flex:none}.lightbox{background:0 0;border:none;max-width:min(96vw,1100px);max-height:94vh;padding:0}.lightbox::backdrop{background:var(--scrim-heavy)}.lightbox-body{align-items:center;gap:var(--space-6);flex-direction:column;display:flex}.lightbox-stage{touch-action:pan-y;justify-content:center;display:flex}.lightbox-photo{object-fit:contain;border-radius:var(--radius-8);-webkit-user-select:none;user-select:none;max-width:min(92vw,1000px);max-height:80vh}.lightbox-meta{align-items:center;gap:var(--space-12);padding:var(--space-4) var(--space-8);border-radius:var(--radius-8);background:var(--scrim-strong);color:var(--text);font-size:var(--text-14);display:flex}.lightbox-caption{color:var(--text)}.lightbox-cover-badge{color:var(--warning)}.lightbox-make-cover{padding:var(--space-4) var(--space-8);font-size:var(--text-12);color:var(--text)}.lightbox-count{color:var(--text-muted)}.lightbox-nav{border-radius:var(--radius-circle);width:var(--control-h);height:var(--control-h);font-size:var(--text-24);background:var(--scrim-strong);color:var(--text);cursor:pointer;border:none;line-height:1;position:fixed;top:50%;transform:translateY(-50%)}.lightbox-prev{left:12px}.lightbox-next{right:12px}.lightbox-close{background:var(--scrim-strong);color:var(--text);position:fixed;top:12px;right:12px}@media (width<=48rem){.app-header{flex-direction:column;align-items:flex-start}.brand-row{align-self:stretch}.mini-card-row{flex-direction:column;align-items:stretch}.mini-card-actions{justify-content:space-between}}.filter-select{min-height:var(--control-h);padding:var(--space-8) var(--space-16);border-radius:var(--radius-8);border:1px solid var(--border-strong);background:var(--surface-solid);color:var(--text);font-size:var(--text-16);max-width:13rem}.toolbar{flex-wrap:wrap}.toolbar-tools{align-items:center;gap:var(--space-8);margin-top:calc(var(--space-8) * -1)}.group-toggle{gap:var(--space-6);display:flex}a.mini-card-name{color:var(--text);text-decoration:none}a.mini-card-name:hover{color:var(--accent);text-decoration:underline}.mini-card-notes{font-size:var(--text-12);color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.mini-select{min-height:var(--control-h);width:1.15rem;height:1.15rem;accent-color:var(--accent);cursor:pointer;flex:none}.mini-card-selected{border-color:var(--accent)}.bulk-bar{z-index:var(--layer-sticky);align-items:center;gap:var(--space-8);margin-top:var(--space-16);padding:var(--space-12) var(--space-16);background:var(--surface-solid);border:1px solid var(--accent);border-radius:var(--radius-12);box-shadow:var(--shadow-raised-lg);flex-wrap:wrap;display:flex;position:sticky;bottom:.75rem}.bulk-count{font-weight:var(--weight-semibold);margin-right:var(--space-4)}.bulk-bar select{padding:var(--space-8) var(--space-8);border-radius:var(--radius-8);border:1px solid var(--border-strong);background:var(--surface-deep);color:var(--text);font-size:var(--text-16)}.bulk-bar .btn-secondary,.bulk-bar .btn-ghost{padding:var(--space-8) var(--space-12);font-size:var(--text-14)}.bulk-warning{align-items:center;gap:var(--space-8);flex-wrap:wrap;flex-basis:100%;display:flex}.bulk-warning p{font-size:var(--text-16);margin:0}.bulk-warning .btn-danger{padding:var(--space-6) var(--space-12);font-size:var(--text-14)}.bulk-error{font-size:var(--text-16);flex-basis:100%;margin:0}.project-progress{align-items:center;gap:var(--space-8);font-size:var(--text-12);font-weight:var(--weight-regular);color:var(--text-muted);display:inline-flex}.progress-mini{width:110px;height:8px;display:inline-block}.progress-mini .progress-fill{display:block}.projects-manager h3{margin:0 0 var(--space-8);font-size:var(--text-16)}.project-list{margin:var(--space-12) 0;gap:var(--space-8);flex-direction:column;padding:0;list-style:none;display:flex}.project-row{justify-content:space-between;align-items:flex-start;gap:var(--space-12);padding:var(--space-12) var(--space-16);background:var(--surface-deep);border:1px solid var(--border);border-radius:var(--radius-8);flex-wrap:wrap;display:flex}.project-row-main{gap:var(--space-2);flex-direction:column;min-width:0;display:flex}.project-name{font-weight:var(--weight-semibold)}.project-meta{font-size:var(--text-12);color:var(--text-muted)}.project-notes{font-size:var(--text-12);color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;max-width:24rem;overflow:hidden}.project-row-actions{gap:var(--space-6);flex-shrink:0;display:flex}.project-row-actions .btn-ghost{padding:var(--space-6) var(--space-12);font-size:var(--text-14)}.project-edit{gap:var(--space-8);flex-wrap:wrap;flex:1;align-items:center;display:flex}.project-edit input{min-width:10rem;padding:var(--space-8) var(--space-12);border-radius:var(--radius-8);border:1px solid var(--border-strong);background:var(--surface-solid);color:var(--text);font-size:var(--text-16);flex:1}.project-edit .btn-secondary,.project-edit .btn-ghost{padding:var(--space-8) var(--space-12);font-size:var(--text-14)}.project-confirm{align-items:center;gap:var(--space-8);flex-wrap:wrap;display:flex}.project-confirm p{font-size:var(--text-16);margin:0}.project-confirm .btn-danger,.project-confirm .btn-ghost{padding:var(--space-4) var(--space-8);font-size:var(--text-12)}.back-link{min-height:var(--control-h);margin-bottom:var(--space-16);color:var(--text-muted);align-items:center;text-decoration:none;display:inline-flex}.back-link:hover{color:var(--accent)}.detail-head{justify-content:space-between;align-items:flex-start;gap:var(--space-12);margin-bottom:var(--space-16);flex-wrap:wrap;display:flex}.detail-name{font-size:var(--text-24);margin:0}.detail-actions{align-items:center;gap:var(--space-8);flex-wrap:wrap;display:flex}.detail-confirm{align-items:center;gap:var(--space-8);font-size:var(--text-16);display:inline-flex}.detail-confirm .btn-danger,.detail-confirm .btn-ghost{padding:var(--space-6) var(--space-12);font-size:var(--text-14)}.detail-fields{gap:var(--space-12);grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin:0;display:grid}.detail-fields dt{font-size:var(--text-12);text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin-bottom:var(--space-4)}.detail-fields dd{font-size:var(--text-16);margin:0}.detail-notes{margin:var(--space-16) 0 0;padding-top:var(--space-12);border-top:1px solid var(--border);color:var(--text);font-size:var(--text-16);white-space:pre-wrap}.detail-section-title{margin:0 0 var(--space-12);font-size:var(--text-16)}.timeline{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.timeline-item{gap:var(--space-6);padding:var(--space-8) 0;border-bottom:1px solid var(--border);font-size:var(--text-14);flex-direction:column;display:flex}.timeline-item:last-child{border-bottom:none}.timeline-row{justify-content:space-between;align-items:baseline;gap:var(--space-12);display:flex}.timeline-move{font-weight:var(--weight-medium)}.timeline-date{color:var(--text-muted);font-size:var(--text-12);white-space:nowrap}.timeline-move-wrap{align-items:center;gap:var(--space-2);display:inline-flex}.timeline-photo-moment{align-items:center;gap:var(--space-8);display:inline-flex}.timeline-photo{width:var(--control-h);height:var(--control-h);object-fit:cover;border-radius:var(--radius-8);border:1px solid var(--border)}.timeline-note{color:var(--text-muted);white-space:pre-wrap;margin:0;font-style:italic}.timeline-note-edit{margin-left:var(--space-6);font-size:var(--text-12)}.timeline-note-editor{align-items:center;gap:var(--space-8);flex-wrap:wrap;display:flex}.timeline-note-editor input{min-width:200px;padding:var(--space-6) var(--space-8);border-radius:var(--radius-8);border:1px solid var(--border-strong);background:var(--surface-deep);color:var(--text);font-size:var(--text-16);flex:1}.status-note-prompt{align-items:center;gap:var(--space-8);margin-top:var(--space-8);padding:var(--space-8) var(--space-8);border:1px dashed var(--border);border-radius:var(--radius-8);font-size:var(--text-14);flex-wrap:wrap;display:flex}.status-note-label{color:var(--text-muted);white-space:nowrap}.status-note-input{min-width:180px;padding:var(--space-6) var(--space-8);border-radius:var(--radius-8);border:1px solid var(--border-strong);background:var(--surface-deep);color:var(--text);font-size:var(--text-16);flex:1}.status-note-prompt .btn-secondary,.status-note-prompt .btn-ghost{padding:var(--space-6) var(--space-12);font-size:var(--text-12)}.status-note-error{font-size:var(--text-16);flex-basis:100%}.log-week{margin-bottom:var(--space-16)}.log-week-head{justify-content:space-between;align-items:baseline;gap:var(--space-12);margin-bottom:var(--space-8);flex-wrap:wrap;display:flex}.log-week-title{font-size:var(--text-16);margin:0}.log-week-counts{color:var(--text-muted);font-size:var(--text-14);margin:0}.log-entries{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.log-entry{gap:var(--space-4);padding:var(--space-8) 0;border-bottom:1px solid var(--border);font-size:var(--text-14);flex-direction:column;display:flex}.log-entry:last-child{border-bottom:none}.log-entry-row{justify-content:space-between;align-items:baseline;gap:var(--space-12);display:flex}.log-entry-main{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:inline-flex}.log-name{font-weight:var(--weight-medium);color:var(--text);text-decoration:none}a.log-name:hover{color:var(--accent);text-decoration:underline}.log-retired{color:var(--text-muted);font-weight:var(--weight-regular);font-size:var(--text-12)}.log-what{color:var(--text)}.log-aside{color:var(--text-muted)}.log-thumb{object-fit:cover;border-radius:var(--radius-4);border:1px solid var(--border);width:36px;height:36px;margin-right:var(--space-8);align-self:center}.log-date{color:var(--text-muted);font-size:var(--text-12);white-space:nowrap}.log-note{color:var(--text-muted);white-space:pre-wrap;margin:0;font-style:italic}.log-foot{text-align:center;padding:var(--space-12) 0 var(--space-24)}.log-end{color:var(--text-muted);font-size:var(--text-16)}.method-group-title{margin:var(--space-16) 0 var(--space-6);font-size:var(--text-12);font-weight:var(--weight-semibold);color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em}.method-list{margin:var(--space-8) 0 0;gap:var(--space-8);flex-direction:column;padding:0;list-style:none;display:flex}.method-row{padding:var(--space-12) var(--space-16);background:var(--surface-deep);border:1px solid var(--border);border-radius:var(--radius-8);justify-content:space-between;align-items:center;gap:var(--space-12);flex-wrap:wrap;display:flex}.method-summary{gap:var(--space-2);flex-direction:column;min-width:0;display:flex}.method-name{font-weight:var(--weight-medium);overflow-wrap:anywhere}.method-meta{color:var(--text-muted);font-size:var(--text-12)}.method-authority{color:var(--text-muted);font-size:var(--text-16);max-width:52ch}.method-authority.is-marked{color:var(--text);border-left:3px solid var(--warning-line);padding-left:var(--space-8);margin-top:var(--space-4)}.method-chip{margin-top:var(--space-2);padding:var(--space-2) var(--space-8);border-radius:var(--radius-full);border:1px solid var(--border);background:var(--surface);color:var(--text-muted);font-size:var(--text-12);white-space:nowrap;align-self:flex-start}.method-badge{margin-left:var(--space-6);padding:var(--space-2) var(--space-6);border-radius:var(--radius-full);background:var(--surface-deep);border:1px solid var(--border);color:var(--text-muted);font-size:var(--text-12);font-weight:var(--weight-regular);vertical-align:middle;white-space:nowrap}.method-actions,.method-confirm,.method-rename,.method-link-row{align-items:center;gap:var(--space-8);flex-wrap:wrap;display:flex}.method-confirm p{color:var(--text-muted);font-size:var(--text-16);line-height:var(--leading-body);flex:100%;margin:0}.method-link-row{margin-top:var(--space-12)}.passkey-nudge{z-index:var(--layer-raised);pointer-events:none;width:min(26rem,100vw - 2rem);position:fixed;bottom:1rem;left:1rem}.passkey-nudge-body{pointer-events:auto;background:var(--surface-solid);border:1px solid var(--accent-line);border-left:3px solid var(--accent);border-radius:var(--radius-12);padding:var(--space-16) var(--space-16);box-shadow:var(--shadow-raised);font-size:var(--text-16);line-height:var(--leading-body)}.passkey-nudge-body p{margin:0 0 var(--space-8);color:var(--text-muted)}.passkey-nudge-title{margin:0 0 var(--space-8);color:var(--text);font-weight:var(--weight-semibold);font-size:var(--text-16)}.passkey-nudge-actions{align-items:center;gap:var(--space-8);flex-wrap:wrap;display:flex}@media (width>=48rem){.passkey-nudge{width:30rem}.passkey-nudge-body{padding:var(--space-20) var(--space-20);font-size:var(--text-16)}.passkey-nudge-title{font-size:var(--text-16)}}.messages-head{justify-content:space-between;align-items:center;gap:var(--space-12);flex-wrap:wrap;display:flex}.messages-head h2{margin:0}.messages-head-actions{align-items:center;gap:var(--space-8);flex-wrap:wrap;display:flex}.thread-list{margin:var(--space-16) 0 0;gap:var(--space-8);flex-direction:column;padding:0;list-style:none;display:flex}.thread-row{justify-content:space-between;align-items:center;gap:var(--space-12);padding:var(--space-12) var(--space-16);border:1px solid var(--border);border-radius:var(--radius-8);background:var(--surface-deep);color:var(--text);font-weight:var(--weight-regular);display:flex}.thread-row:hover{border-color:var(--accent);filter:none}.thread-row-main{gap:var(--space-2);flex-direction:column;min-width:0;display:flex}.thread-cat{font-weight:var(--weight-semibold);align-items:center;gap:var(--space-6);flex-wrap:wrap;display:flex}.thread-unread{padding:0 var(--space-8);border-radius:var(--radius-full);background:var(--accent);color:var(--on-accent);font-size:var(--text-12);font-weight:var(--weight-bold);line-height:var(--leading-body);text-transform:uppercase;letter-spacing:.04em}.thread-state{padding:0 var(--space-8);border-radius:var(--radius-full);border:1px solid var(--border);color:var(--text-muted);font-size:var(--text-12);font-weight:var(--weight-semibold);line-height:var(--leading-body);text-transform:uppercase;letter-spacing:.04em}.thread-meta{color:var(--text-muted);font-size:var(--text-14)}.thread-date{color:var(--text-muted);font-size:var(--text-14);flex-shrink:0}.compose-doors{gap:var(--space-8);margin-bottom:var(--space-12);flex-wrap:wrap;display:flex}.door-btn{min-height:var(--control-h);padding:var(--space-8) var(--space-16);border-radius:var(--radius-8);border:1px solid var(--border);background:var(--surface-deep);color:var(--text);font-weight:var(--weight-semibold);font-size:var(--text-14);cursor:pointer;flex:auto}.door-btn:hover{border-color:var(--accent)}.door-btn[aria-pressed=true]{border-color:var(--accent);background:var(--accent-wash)}.compose-textarea{width:100%;padding:var(--space-8) var(--space-12);border-radius:var(--radius-8);border:1px solid var(--border-strong);background:var(--surface-deep);color:var(--text);font-size:var(--text-16);resize:vertical;font-family:inherit}.message-photos{margin:var(--space-8) 0}.compose-context{margin-top:var(--space-8);padding:var(--space-12) var(--space-16);border:1px solid var(--border);border-radius:var(--radius-8);background:var(--surface-deep);color:var(--text-muted);font-size:var(--text-16);line-height:var(--leading-body)}.compose-context p{margin:0 0 var(--space-8)}.compose-context p:last-child{margin-bottom:0}.compose-context strong{color:var(--text);font-weight:var(--weight-semibold);overflow-wrap:anywhere}.thread-back{margin-bottom:var(--space-12);display:inline-block}.thread-messages{margin:0 0 var(--space-12);gap:var(--space-8);flex-direction:column;padding:0;list-style:none;display:flex}.msg{max-width:85%;padding:var(--space-8) var(--space-12);border-radius:var(--radius-12);border:1px solid var(--border)}.msg-user{background:var(--accent-wash);border-bottom-right-radius:var(--radius-4);align-self:flex-end}.msg-support{background:var(--surface-deep);border-bottom-left-radius:var(--radius-4);align-self:flex-start}.msg-author{font-size:var(--text-12);font-weight:var(--weight-bold);text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);display:block}.msg-author-agent{color:var(--accent)}.msg-assisted{color:var(--accent);text-transform:none;letter-spacing:0;font-weight:var(--weight-semibold)}.msg-body{margin:var(--space-4) 0 0;white-space:pre-wrap;overflow-wrap:anywhere}.msg-attachments{gap:var(--space-8);margin-top:var(--space-8);flex-wrap:wrap;display:flex}.msg-attachments img{border-radius:var(--radius-8);object-fit:cover;max-width:180px;max-height:180px}.msg-stamp{margin-top:var(--space-4);font-size:var(--text-12);color:var(--text-muted);display:block}.thread-waiting{color:var(--text-muted);font-size:var(--text-16);margin:0 0 var(--space-12);font-style:italic}.thread-reply{gap:var(--space-8);border-top:1px dashed var(--border);padding-top:var(--space-12);flex-direction:column;display:flex}.thread-reply .form-actions{margin-top:0}.changelog-film{max-width:100%;height:auto;margin:var(--space-12) 0 var(--space-16);border:1px solid var(--border);border-radius:var(--radius-12);background:var(--surface-deep);display:block}.account-group{margin-bottom:var(--space-32)}.account-group-title{margin:0 0 var(--space-6);font-size:var(--text-12);font-weight:var(--weight-semibold);letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.account-group.is-quiet{margin-top:var(--space-32);padding-top:var(--space-20);border-top:1px solid var(--border)}.account-group.is-quiet .card{border-color:var(--border-soft);padding:var(--space-16) var(--space-20);background:0 0}.account-group.is-quiet .card h3{font-size:var(--text-16);color:var(--text-muted)}.account-group.is-quiet .card>p{color:var(--text-muted);font-size:var(--text-16);max-width:68ch}.account-group .card h3,.card.is-loud h3{margin:0 0 var(--space-8);font-size:var(--text-16)}.account-group .invite-head h3{margin:0 0 var(--space-4)}.account-attention{margin:0 0 var(--space-20);font-size:var(--text-16);color:var(--text)}.account-attention.is-clear{color:var(--text-muted)}.card.is-loud{border-color:var(--warning-line)}.account-offer{margin:var(--space-6) 0 0;padding:var(--space-12) var(--space-16);border:1px dashed var(--border);border-radius:var(--radius-8);align-items:flex-start;gap:var(--space-12);flex-direction:column;max-width:62ch;display:flex}.account-offer p{max-width:60ch}.account-summary{cursor:pointer;color:var(--text-muted);font-size:var(--text-14);padding:var(--space-2) 0}.account-summary:hover{color:var(--text)}.profile-names{gap:var(--space-16);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));align-items:start;display:grid}.card-head-line{align-items:center;gap:var(--space-8);flex-wrap:wrap;display:flex}.card-help-toggle{width:var(--control-h);height:var(--control-h);margin:calc(var(--space-12) * -1);color:var(--text-muted);font-size:var(--text-12);cursor:pointer;background:0 0;border:none;place-items:center;padding:0;line-height:1;display:grid;position:relative}.card-help-toggle:before{content:"";border:1px solid var(--border);border-radius:var(--radius-full);width:1.15rem;height:1.15rem;position:absolute}.card-help-toggle:hover,.card-help-toggle[aria-expanded=true]{color:var(--text)}.card-help-toggle:hover:before,.card-help-toggle[aria-expanded=true]:before{border-color:var(--text-muted)}.card-help{margin:var(--space-6) 0 0;color:var(--text-muted);font-size:var(--text-16);flex-basis:100%;max-width:68ch}.method-group{margin-top:var(--space-16)}.appearance-copy{margin:0 0 var(--space-12);color:var(--text-muted);font-size:var(--text-16);max-width:68ch}.mood-picker{margin:0 0 var(--space-16);border:none;min-inline-size:0;padding:0}.mood-grid{gap:var(--space-8);grid-template-columns:repeat(2,1fr);display:grid}@media (width>=30rem){.mood-grid{grid-template-columns:repeat(auto-fit,minmax(10rem,1fr))}}.mood-preview{gap:var(--space-6);cursor:pointer;flex-direction:column;display:flex;position:relative}.mood-radio{opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute;inset:0}.mood-preview-art{aspect-ratio:16/10;border:1px solid var(--border);border-radius:var(--radius-8);background:var(--bg);pointer-events:none;transition:transform var(--dur-fast) var(--ease-standard), border-color var(--dur-fast) var(--ease-standard);display:block;position:relative;overflow:hidden}.mood-preview-wash{background:radial-gradient(60% 55% at 22% 20%, var(--ambient-a), transparent 70%), radial-gradient(48% 52% at 84% 78%, var(--ambient-b), transparent 72%), linear-gradient(to top, var(--ambient-c), transparent 55%);opacity:.6;position:absolute;inset:0}.mood-preview-scene{object-fit:cover;opacity:.85;width:100%;height:100%;position:absolute;inset:0}.mood-preview:hover .mood-preview-art{transform:translateY(-1px)}.mood-preview-name{color:var(--text-muted);font-size:var(--text-14);-webkit-user-select:none;user-select:none}.mood-radio:checked~.mood-preview-art{border-color:var(--accent);outline:1px solid var(--accent);outline-offset:-2px}.mood-radio:checked~.mood-preview-name{color:var(--text)}.mood-radio:focus-visible~.mood-preview-art{outline:2px solid var(--accent);outline-offset:2px}.intensity-field{max-width:26rem}.intensity-field input[type=range]{width:100%;min-height:var(--control-h);accent-color:var(--accent);cursor:pointer;font-size:var(--text-16)}.intensity-detents{justify-content:space-between;gap:var(--space-2);flex-wrap:wrap;display:flex}.intensity-detent{min-height:var(--control-h);min-width:var(--control-h);padding:var(--space-4) var(--space-2);border-radius:var(--radius-4);color:var(--text-muted);font-size:var(--text-12);cursor:pointer;background:0 0;border:none}.intensity-detent:hover{color:var(--text)}.intensity-detent.is-current-step{color:var(--text);font-weight:var(--weight-medium)}.intensity-detent:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion:reduce){.mood-preview-art,.mood-preview:hover .mood-preview-art{transition:none;transform:none}.modal-panel-drawer{transition:none}}
