:root{--p31-base: 16px;--p31-bg: oklch(10% .01 240);--p31-surface: oklch(15% .015 240);--p31-surface2: oklch(22% .02 240);--p31-accent: oklch(65% .18 195);--p31-accent-alt: oklch(65% .18 285);--p31-accent-violet: oklch(65% .18 285);--p31-accent-gold: oklch(65% .18 15);--p31-accent-green: oklch(65% .18 105);--p31-accent-red: oklch(65% .18 20);--p31-accent-iris: oklch(65% .18 270);--p31-text: oklch(96% .005 240);--p31-text-secondary: oklch(75% .01 240);--p31-text-tertiary: oklch(55% .01 240);--p31-glass-bg: oklch(100% .01 240 / .04);--p31-glass-border: oklch(100% .01 240 / .08);--p31-glass-border-hover: oklch(100% .01 240 / .15);--p31-glass-shadow: 0 8px 32px rgba(0,0,0,.15);--p31-glass-blur: blur(12px);--p31-glow-cyan: 0 0 20px rgba(0,240,255,.25);--p31-scale-xs: calc(var(--p31-base) * .75);--p31-scale-sm: var(--p31-base);--p31-scale-md: calc(var(--p31-base) * 1.3333);--p31-scale-lg: calc(var(--p31-base) * 1.7777);--p31-scale-xl: calc(var(--p31-base) * 2.3703);--p31-scale-2xl: calc(var(--p31-base) * 3.1604);--p31-scale-3xl: calc(var(--p31-base) * 4.2139);--p31-scale-4xl: calc(var(--p31-base) * 5.6186);--p31-type-caption: clamp(var(--p31-scale-xs), .8vw, var(--p31-scale-sm));--p31-type-body: clamp(calc(var(--p31-base) * .95), 1vw + .5rem, var(--p31-scale-sm));--p31-type-label: var(--p31-scale-sm);--p31-type-h3: clamp(var(--p31-scale-md), 2vw, var(--p31-scale-lg));--p31-type-h2: clamp(var(--p31-scale-lg), 3.5vw, var(--p31-scale-xl));--p31-type-h1: clamp(var(--p31-scale-xl), 5.6vw, var(--p31-scale-2xl));--p31-type-display: clamp(var(--p31-scale-2xl), 7vw, var(--p31-scale-3xl));--p31-font-sans: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--p31-font-mono: ui-monospace, SFMono-Regular, "Fira Code", "Fira Mono", "Roboto Mono", "JetBrains Mono", Menlo, Monaco, Consolas, monospace;--p31-font-display: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--p31-duration-fast: .1s;--p31-duration-normal: .3s;--p31-duration-slow: .5s;--p31-easing-smooth: cubic-bezier(.4, 0, .2, 1);--p31-easing-snappy: cubic-bezier(.34, 1.56, .64, 1);--p31-easing-linear: linear;--p31-speed-factor: 1;--p31-starfield-hearth: oklch(55% .15 35);--p31-starfield-teal: oklch(60% .08 185);--p31-starfield-remembrance: oklch(95% .01 80);--p31-starfield-particle-teal: oklch(70% .12 185 / .6);--p31-starfield-particle-coral: oklch(65% .14 40 / .5);--p31-blur-subtle: 8px;--p31-blur-standard: 12px;--p31-blur-strong: 24px;--p31-space-xs: clamp(var(--p31-scale-xs), 1vw, var(--p31-scale-sm));--p31-space-sm: clamp(var(--p31-scale-sm), 1.5vw, var(--p31-scale-md));--p31-space-md: clamp(var(--p31-scale-md), 2.5vw, var(--p31-scale-lg));--p31-space-lg: clamp(var(--p31-scale-lg), 3.5vw, var(--p31-scale-xl));--p31-space-xl: clamp(var(--p31-scale-xl), 5vw, var(--p31-scale-2xl));--p31-space-2xl: clamp(var(--p31-scale-2xl), 6.5vw, var(--p31-scale-3xl));--p31-radius-sm: calc(var(--p31-scale-sm) / 2);--p31-radius-md: calc(var(--p31-scale-md) / 2);--p31-radius-lg: calc(var(--p31-scale-lg) / 2);--p31-radius-xl: calc(var(--p31-scale-xl) / 2);--p31-radius-full: 9999px;--p31-touch-min: 48px;--p31-touch-recommended: 56px;--p31-touch-large: 64px;--p31-z-starfield: 0;--p31-z-topbar: 10;--p31-z-toast: 9999;--p31-z-crisis: 99999;--p31-z-skip-link: 100;--p31-space-3xl: 64px}:root [data-brand=p31ca]{--p31-glass-bg: oklch(14% .02 260 / .35);--p31-glass-border: oklch(100% .01 240 / .12);--p31-glass-border-hover: oklch(100% .01 240 / .25);--p31-glass-blur: blur(24px)}:root [data-brand=phosphorus31]{--p31-glass-bg: oklch(99% .01 85 / .55);--p31-glass-border: oklch(80% .02 75 / .3);--p31-glass-border-hover: oklch(70% .03 70 / .4);--p31-glass-blur: blur(16px)}:root [data-brand=willow]{--p31-glass-bg: rgba(255, 248, 240, .7);--p31-glass-border: rgba(200, 180, 160, .25);--p31-glass-blur: blur(16px);--p31-text: oklch(25% .02 80);--p31-text-secondary: oklch(55% .02 75);--p31-accent: oklch(65% .18 45);--p31-accent-alt: oklch(60% .15 200);--p31-accent-gold: oklch(72% .14 80);--p31-accent-green: oklch(70% .12 120);--p31-accent-red: oklch(62% .15 10);--p31-font-sans: "Comic Sans MS", "Chalkboard SE", cursive, sans-serif;--p31-font-display: "Comic Sans MS", "Chalkboard SE", cursive;--p31-radius-sm: 12px;--p31-radius-md: 20px;--p31-radius-lg: 28px;--p31-radius-xl: 40px;--p31-radius-full: 9999px;--p31-space-xs: .5rem;--p31-space-sm: .75rem;--p31-space-md: 1.25rem;--p31-space-lg: 2rem;--p31-space-xl: 2.5rem;--p31-space-2xl: 4rem;--p31-duration-fast: .2s;--p31-duration-normal: .4s;--p31-duration-slow: .6s;--p31-easing-smooth: cubic-bezier(.34, 1.56, .64, 1);--p31-easing-snappy: cubic-bezier(.34, 1.56, .64, 1);--p31-touch-min: 56px;--p31-touch-recommended: 64px}[data-spoons="3"]{--p31-speed-factor: .5;--p31-glass-blur: blur(12px)}[data-dark-mode=true]{--p31-glass-bg: rgba(30, 28, 26, .8);--p31-glass-border: rgba(80, 75, 70, .3);--p31-text: oklch(90% .01 80);--p31-text-secondary: oklch(65% .02 80)}[data-theme=light]{--p31-bg: #F8FAFC;--p31-surface: #FFFFFF;--p31-surface2: #F1F5F9;--p31-text: #0F172A;--p31-text-secondary: rgba(15,23,42,.6);--p31-text-tertiary: rgba(15,23,42,.3);--p31-glass-bg: rgba(0,0,0,.03);--p31-glass-border: rgba(0,0,0,.08);--p31-glass-border-hover: rgba(0,0,0,.15)}:root{--p31-void-deep: #050508;--p31-void: #0A0A0F;--p31-surface: #12121A;--p31-surface2: #1C1C2A;--p31-cloud: #A1A1AA;--p31-text-primary: #F5F5F7;--p31-text-secondary: rgba(245,245,247,.6);--p31-text-tertiary: rgba(245,245,247,.3);--p31-glow-cyan: 0 0 20px rgba(0,240,255,.25);--p31-glow-violet: 0 0 20px rgba(167,139,250,.25);--p31-glow-gold: 0 0 20px rgba(251,191,36,.25);--p31-glow-green: 0 0 20px rgba(52,211,153,.25);--p31-glass-surface: var(--p31-glass-bg);--p31-glass-surface-hover: rgba(255,255,255,.06);--p31-glass-blur: 12px;--p31-glass-radius: 24px;--p31-font-sans: Inter, ui-sans-serif, system-ui, -apple-system, sans-serif;--p31-font-mono: JetBrains Mono, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;--p31-radius-none: 0;--p31-h1: 51px;--p31-h2: 38px;--p31-h3: 28px;--p31-h4: 21px;--p31-body: 16px;--p31-body-sm: 14px;--p31-label: 12px;--p31-caption: 7px;--p31-text-xs: clamp(.75rem, .7rem + .25vw, .875rem);--p31-text-sm: clamp(.875rem, .8rem + .35vw, 1rem);--p31-text-base: clamp(1rem, .9rem + .5vw, 1.125rem);--p31-text-md: clamp(1.0625rem, .95rem + .55vw, 1.25rem);--p31-text-lg: clamp(1.125rem, 1rem + .6vw, 1.5rem);--p31-text-xl: clamp(1.25rem, 1.1rem + .75vw, 1.75rem);--p31-text-2xl: clamp(1.5rem, 1.3rem + 1vw, 2.25rem);--p31-text-3xl: clamp(1.875rem, 1.6rem + 1.4vw, 3rem);--p31-text-4xl: clamp(2.25rem, 1.9rem + 1.75vw, 4rem);--p31-line-height-tight: 1.2;--p31-line-height-snug: 1.35;--p31-line-height-normal: 1.5;--p31-line-height-relaxed: 1.75;--p31-space-unit: clamp(.25rem, .2rem + .25vw, .5rem);--p31-space-1: calc(var(--p31-space-unit) * 1);--p31-space-2: calc(var(--p31-space-unit) * 2);--p31-space-3: calc(var(--p31-space-unit) * 3);--p31-space-4: calc(var(--p31-space-unit) * 4);--p31-space-5: calc(var(--p31-space-unit) * 5);--p31-space-6: calc(var(--p31-space-unit) * 6);--p31-space-8: calc(var(--p31-space-unit) * 8);--p31-space-10: calc(var(--p31-space-unit) * 10);--p31-space-12: calc(var(--p31-space-unit) * 12);--p31-space-16: calc(var(--p31-space-unit) * 16);--p31-space-20: calc(var(--p31-space-unit) * 20);--p31-space-24: calc(var(--p31-space-unit) * 24);--p31-space-32: calc(var(--p31-space-unit) * 32);--p31-section-sm: clamp(2rem, 5vw, 4rem);--p31-section-md: clamp(4rem, 8vw, 8rem);--p31-section-lg: clamp(6rem, 12vw, 12rem);--p31-container-sm: 640px;--p31-container-md: 768px;--p31-container-lg: 1024px;--p31-container-xl: 1280px;--p31-container-2xl: 1536px;--p31-prose-width: 65ch;--p31-nav-h: clamp(3.25rem, 2.75rem + 1.5vw, 4rem);--p31-nav-z: 50;--p31-brand-size: clamp(2rem, 1.75rem + .75vw, 2.5rem);--p31-chrome-strip-h: 22px;--p31-surface3: #232830;--p31-glass-strong-bg: rgba(255,255,255,.08);--p31-duration-instant: 62.5ms;--p31-duration-fast: 125ms;--p31-duration-standard: .25s;--p31-duration-slow: .5s;--p31-duration-slower: 1s;--p31-easing-standard: cubic-bezier(.4, 0, .2, 1);--p31-easing-decelerate: cubic-bezier(0, 0, .2, 1);--p31-easing-accelerate: cubic-bezier(.4, 0, 1, 1)}*,*:before,*:after{box-sizing:border-box}html{font-family:var(--p31-font-sans);font-size:var(--p31-body);line-height:1.6;color:var(--p31-text-primary);background:var(--p31-void);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;padding:0;min-height:100vh;background:var(--p31-void);color:var(--p31-text-primary)}h1{font-size:var(--p31-h1);font-weight:700;line-height:1.1;letter-spacing:-.02em}h2{font-size:var(--p31-h2);font-weight:600;line-height:1.2}h3{font-size:var(--p31-h3);font-weight:600;line-height:1.3}h4{font-size:var(--p31-h4);font-weight:600;line-height:1.3}a{color:var(--p31-accent);text-decoration:none}a:hover{text-decoration:underline}code,pre{font-family:var(--p31-font-mono);font-size:13px}::selection{background:#00f0ff33;color:#fff}:focus-visible{outline:2px solid var(--p31-accent);outline-offset:2px;border-radius:4px}body{min-height:100dvh}.glass-subtle{background:#ffffff08;backdrop-filter:blur(var(--p31-blur-subtle));-webkit-backdrop-filter:blur(var(--p31-blur-subtle));border:1px solid rgba(255,255,255,.06);border-radius:var(--p31-glass-radius)}.glass-panel{background:var(--p31-glass-surface);backdrop-filter:blur(var(--p31-blur-standard));-webkit-backdrop-filter:blur(var(--p31-blur-standard));border:1px solid var(--p31-glass-border);border-radius:var(--p31-glass-radius);box-shadow:var(--p31-glass-shadow);transition:all var(--p31-duration-standard) var(--p31-easing-standard)}.glass-panel:hover{border-color:var(--p31-glass-border-hover);background:var(--p31-glass-surface-hover);transform:translateY(-2px);box-shadow:0 12px 48px #00000040}.glass-card{background:var(--p31-glass-surface);backdrop-filter:blur(var(--p31-blur-standard));-webkit-backdrop-filter:blur(var(--p31-blur-standard));border:1px solid var(--p31-glass-border);border-radius:var(--p31-glass-radius);padding:var(--p31-spacing-lg);box-shadow:var(--p31-glass-shadow);transition:all var(--p31-duration-standard) var(--p31-easing-standard)}.p31-surface,.p31-card,.glass-panel,.glass-card{background:linear-gradient(135deg,#ffffff0a,#ffffff03);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border:1px solid rgba(255,255,255,.08);box-shadow:0 20px 50px -10px #00000080,inset 0 1px #ffffff1f;border-radius:1.25rem;transition:transform .3s cubic-bezier(.16,1,.3,1),border-color .3s ease,box-shadow .3s ease}.p31-surface:hover,.p31-card:hover,.glass-panel:hover,.glass-card:hover{border-color:#06b6d459;box-shadow:0 30px 60px -12px #0009,0 0 30px #06b6d426,inset 0 1px #fff3;transform:translateY(-3px)}.glass-strong{background:#ffffff14;backdrop-filter:blur(var(--p31-blur-strong));-webkit-backdrop-filter:blur(var(--p31-blur-strong));border:1px solid rgba(255,255,255,.12);border-radius:var(--p31-glass-radius);box-shadow:0 12px 48px #0000004d}.glass-navbar{background:#ffffff0f;backdrop-filter:blur(var(--p31-blur-strong));-webkit-backdrop-filter:blur(var(--p31-blur-strong));border:1px solid var(--p31-glass-border);border-radius:var(--p31-glass-radius);position:fixed;top:var(--p31-spacing-md);left:50%;transform:translate(-50%);z-index:50;padding:var(--p31-spacing-sm) var(--p31-spacing-md);width:95%;max-width:64rem}.btn-primary{background:var(--p31-accent);color:var(--p31-void);font-weight:700;padding:var(--p31-spacing-sm) var(--p31-spacing-lg);border-radius:var(--p31-radius-md);border:none;cursor:pointer;transition:all var(--p31-duration-fast) ease;box-shadow:var(--p31-glow-cyan)}.btn-primary:hover{opacity:.8;transform:translateY(-2px);box-shadow:0 8px 24px #00f0ff4d}.btn-secondary{background:#a78bfa1a;color:var(--p31-accent-violet);font-weight:700;padding:var(--p31-spacing-sm) var(--p31-spacing-lg);border-radius:var(--p31-radius-md);border:1px solid rgba(167,139,250,.3);cursor:pointer;transition:all var(--p31-duration-fast) ease}.btn-secondary:hover{background:#a78bfa33;transform:translateY(-2px);box-shadow:var(--p31-glow-violet)}.btn-ghost{background:#ffffff0d;color:var(--p31-text-secondary);font-weight:700;padding:var(--p31-spacing-sm) var(--p31-spacing-lg);border-radius:var(--p31-radius-md);border:1px solid rgba(255,255,255,.1);cursor:pointer;transition:all var(--p31-duration-fast) ease}.btn-ghost:hover{background:#ffffff1a;color:var(--p31-text-primary)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:0s!important;animation-delay:0s!important;transition-duration:0s!important;transition-delay:0s!important}}[data-spoons="0"] *,[data-spoons="0"] *:before,[data-spoons="0"] *:after,[data-spoons="1"] *,[data-spoons="1"] *:before,[data-spoons="1"] *:after{animation-duration:0s!important;transition-duration:0s!important}[data-spoons="2"] *,[data-spoons="2"] *:before,[data-spoons="2"] *:after{animation-duration:.8s!important;animation-delay:.4s!important;transition-duration:.8s!important;transition-delay:.4s!important}[data-spoons="3"] *,[data-spoons="3"] *:before,[data-spoons="3"] *:after{animation-duration:.4s!important;animation-delay:.2s!important;transition-duration:.4s!important;transition-delay:.2s!important}[data-spoons="4"] *,[data-spoons="4"] *:before,[data-spoons="4"] *:after{animation-duration:.6s!important;animation-delay:.3s!important;transition-duration:.6s!important;transition-delay:.3s!important}[data-spoons="5"] *,[data-spoons="5"] *:before,[data-spoons="5"] *:after{animation-duration:.2s!important;animation-delay:.1s!important;transition-duration:.2s!important;transition-delay:.1s!important}.glass-panel,.glass-card{transition:all var(--p31-duration-standard) var(--p31-easing-standard)}.btn-primary,.btn-secondary,.btn-ghost{transition:all var(--p31-duration-fast) ease}.text-h1{font-size:var(--p31-text-4xl);font-weight:700;line-height:var(--p31-line-height-tight);letter-spacing:-.02em}.text-h2{font-size:var(--p31-text-3xl);font-weight:600;line-height:var(--p31-line-height-tight)}.text-h3{font-size:var(--p31-text-2xl);font-weight:600;line-height:var(--p31-line-height-snug)}.text-h4{font-size:var(--p31-text-xl);font-weight:600;line-height:var(--p31-line-height-snug)}.text-body{font-size:var(--p31-text-base);font-weight:400;line-height:var(--p31-line-height-normal)}.text-body-sm{font-size:var(--p31-text-sm);font-weight:400;line-height:var(--p31-line-height-normal)}.text-label{font-size:var(--p31-text-xs);font-weight:500;line-height:1;letter-spacing:.05em;text-transform:uppercase}.text-caption{font-size:.625rem;font-weight:400;line-height:var(--p31-line-height-snug)}.text-code{font-family:var(--p31-font-mono);font-size:var(--p31-text-sm);line-height:var(--p31-line-height-normal)}.text-muted{color:var(--p31-text-secondary)}.text-dim{color:var(--p31-text-tertiary)}.text-accent{color:var(--p31-accent)}.text-violet{color:var(--p31-accent-violet)}.text-gold{color:var(--p31-accent-gold)}.text-green{color:var(--p31-accent-green)}.text-red{color:var(--p31-accent-red)}.glow-cyan{text-shadow:0 0 20px rgba(0,240,255,.3),0 0 40px rgba(0,240,255,.1)}.glow-violet{text-shadow:0 0 20px rgba(167,139,250,.3),0 0 40px rgba(167,139,250,.1)}.glow-gold{text-shadow:0 0 20px rgba(251,191,36,.3),0 0 40px rgba(251,191,36,.1)}.glow-green{text-shadow:0 0 20px rgba(52,211,153,.3),0 0 40px rgba(52,211,153,.1)}.glow-rose{text-shadow:0 0 20px rgba(251,113,133,.3),0 0 40px rgba(251,113,133,.1)}.font-mono-tech{font-family:var(--p31-font-mono);letter-spacing:-.02em}[data-size-class=compact]{--p31-font-base: 13px;--p31-spacing-unit: 6px;--p31-touch-target: 48px;--p31-nav-h: 46px;--p31-columns: 1;--p31-container-padding: 10px}[data-size-class=regular]{--p31-font-base: 14px;--p31-spacing-unit: 8px;--p31-touch-target: 48px;--p31-nav-h: 50px;--p31-columns: 1;--p31-container-padding: 14px}[data-size-class=medium]{--p31-font-base: 15px;--p31-spacing-unit: 10px;--p31-touch-target: 44px;--p31-nav-h: 54px;--p31-columns: 2;--p31-container-padding: 18px}[data-size-class=expanded]{--p31-font-base: 16px;--p31-spacing-unit: 12px;--p31-touch-target: 40px;--p31-nav-h: 58px;--p31-columns: 3;--p31-container-padding: 24px}:root{--p31-ambient-opacity: .2;--p31-ambient-blur: 6px;--p31-hero-filter: drop-shadow(0 0 30px var(--p31-accent)) brightness(1.1);--p31-ambient-filter: blur(var(--p31-ambient-blur)) opacity(var(--p31-ambient-opacity))}body{background-color:var(--p31-void, #030712);background-image:radial-gradient(circle at 50% -20%,rgba(6,182,212,.12) 0%,transparent 55%),radial-gradient(circle at 10% 80%,rgba(16,185,129,.07) 0%,transparent 45%),radial-gradient(circle at 90% 90%,rgba(139,92,246,.07) 0%,transparent 45%);color:var(--p31-text-primary, #F5F5F7);min-height:100vh;overflow-x:hidden}[data-ui-active=true]{filter:none;z-index:5;transition:filter var(--p31-duration-fast) ease,opacity var(--p31-duration-fast) ease}[data-ui-active=hero]{filter:var(--p31-hero-filter);z-index:10;transition:filter var(--p31-duration-standard) ease;pointer-events:auto}[data-ui-active=ghost]{filter:var(--p31-ambient-filter);z-index:1;transition:filter var(--p31-duration-fast) ease,opacity var(--p31-duration-fast) ease;pointer-events:none}@media(prefers-reduced-transparency:reduce){[data-ui-active=ghost]{filter:none;opacity:.35}}@media(prefers-reduced-motion:reduce){[data-ui-active=true],[data-ui-active=hero],[data-ui-active=ghost]{transition:none}}[data-container]{container-type:inline-size}[data-container-adaptive]{--p31-container-font: clamp(.75rem, 1.2cqi + .5rem, 1.25rem);--p31-container-padding: clamp(.5rem, 1cqi, 1.5rem);--p31-container-gap: clamp(.25rem, .8cqi, 1rem)}[data-container-grid]{display:grid;container-type:inline-size;gap:var(--p31-container-gap, .75rem);grid-template-columns:repeat(2,1fr)}@container (max-width: 400px){[data-container-grid]{grid-template-columns:1fr}}@container (min-width: 800px){[data-container-grid]{grid-template-columns:repeat(3,1fr)}}@container (max-width: 360px){[data-container-adaptive] .leaderboard-entry{font-size:.75rem;gap:4px}[data-container-adaptive] .leaderboard-rank{width:16px}}.link-glow{text-decoration:none!important}.link-glow:hover{text-decoration:none!important;background:linear-gradient(100deg,#00f0ff,#a78bfa,#34d399);-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:0 0 12px rgba(0,240,255,.55);transition:text-shadow .3s ease}:root{--p31-tetra-vertices: 4;--p31-tetra-edges: 6;--p31-tetra-overlap: .3333333333333333;--p31-tetra-bond-angle: -.3333333333333333;--p31-tetra-rigidity: 6;--p31-sic-dimension: 2;--p31-sic-states: 4;--p31-sic-overlap: var(--p31-tetra-overlap);--p31-sic-fiducial: .7071067811865475;--p31-phi: 1.618033988749895;--p31-phi-inverse: .618033988749895;--p31-quantum-cyan: #00F0FF;--p31-quantum-violet: #A78BFA;--p31-quantum-gold: #FBBF24;--p31-quantum-green: #34D399;--p31-quantum-red: #FB4175;--p31-edge-12: #6EE7B7;--p31-edge-13: #FCD34D;--p31-edge-14: #6EE7B7;--p31-edge-23: #D8B4FE;--p31-edge-24: #A7F3D0;--p31-edge-34: #FDE68A;--p31-font-scale: 1.333;--p31-font-base: 16px;--p31-font-sm: calc(var(--p31-font-base) / var(--p31-font-scale));--p31-font-md: var(--p31-font-base);--p31-font-lg: calc(var(--p31-font-base) * var(--p31-font-scale));--p31-font-xl: calc(var(--p31-font-base) * var(--p31-font-scale) * var(--p31-font-scale));--p31-font-2xl: calc(var(--p31-font-base) * var(--p31-font-scale) * var(--p31-font-scale) * var(--p31-font-scale));--p31-space-base: 1rem;--p31-space-sm: calc(var(--p31-space-base) / var(--p31-font-scale));--p31-space-lg: calc(var(--p31-space-base) * var(--p31-font-scale));--p31-space-xl: calc(var(--p31-space-base) * var(--p31-font-scale) * var(--p31-font-scale))}.tetra-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--p31-tetra-overlap, .333rem)}@media(max-width:1024px){.tetra-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:768px){.tetra-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:480px){.tetra-grid{grid-template-columns:1fr}}.tetra-nav{display:flex;flex-wrap:wrap;gap:var(--p31-tetra-overlap)}.tetra-nav a{flex:0 0 calc(33.333% - var(--p31-tetra-overlap));text-align:center;padding:var(--p31-space-sm);border-radius:.5rem;background:#ffffff06;border:1px solid rgba(255,255,255,.05);transition:all .3s cubic-bezier(.4,0,.2,1)}.tetra-nav a:hover{background:#ffffff0d;border-color:var(--p31-quantum-cyan);box-shadow:0 0 30px #00f0ff26}.sic-gauge{display:flex;justify-content:center;align-items:center;gap:var(--p31-space-sm);padding:var(--p31-space-lg);border-radius:1rem;background:#ffffff06;border:1px solid rgba(255,255,255,.05)}.sic-gauge .outcome{flex:1;text-align:center;padding:var(--p31-space-sm);border-radius:.5rem;transition:all .5s cubic-bezier(.4,0,.2,1)}.sic-gauge .outcome .bar{height:4px;border-radius:2px;margin-top:4px;transition:width .5s cubic-bezier(.4,0,.2,1)}.resonance-pulse{animation:pulse-863 863ms ease-in-out infinite}@keyframes pulse-863{0%,to{opacity:.6;transform:scale(1)}50%{opacity:1;transform:scale(1.02)}}.k4-node{position:relative;border-radius:50%;transition:all .5s cubic-bezier(.4,0,.2,1)}.k4-edge{height:2px;border-radius:1px;transition:all .5s cubic-bezier(.4,0,.2,1)}.honest-label{font-size:.6rem;font-family:Courier New,monospace;color:#ffffff26;text-align:center;padding:var(--p31-space-sm);border-top:1px solid rgba(255,255,255,.05);margin-top:var(--p31-space-xl);letter-spacing:.05em}[data-spoons="0"] .ui-chrome,[data-spoons="0"] .ui-chrome *{display:none!important}html:not([data-spoons="0"]) p31-crisis-overlay{display:none!important}[data-spoons="0"] body{padding-bottom:0!important}[data-spoons="1"] .spoon-orbit-btn{opacity:.5;filter:saturate(.6)}.spoon-orbit-btn{transition:opacity .3s ease,filter .3s ease,transform var(--p31-duration-fast) var(--p31-easing-standard);border-radius:12px}.spoon-orbit-btn:hover{box-shadow:0 0 18px #00f0ff4d}.spoon-orbit-btn:focus-visible{outline:2px solid var(--p31-accent);outline-offset:4px}@media(prefers-reduced-motion:reduce){.spoon-orbit-btn{animation:none!important}}:root{--p31-base: 16px;--p31-bg: oklch(10% .01 240);--p31-surface: oklch(15% .015 240);--p31-surface2: oklch(22% .02 240);--p31-accent: oklch(65% .18 195);--p31-accent-alt: oklch(65% .18 285);--p31-accent-gold: oklch(65% .18 15);--p31-accent-green: oklch(65% .18 105);--p31-accent-red: oklch(65% .18 20);--p31-text: oklch(96% .005 240);--p31-text-secondary: oklch(75% .01 240);--p31-text-tertiary: oklch(55% .01 240);--p31-glass-bg: oklch(100% .01 240 / .04);--p31-glass-border: oklch(100% .01 240 / .08);--p31-glass-border-hover: oklch(100% .01 240 / .15);--p31-glass-shadow: 0 8px 32px rgba(0,0,0,.15);--p31-glass-blur: blur(12px);--p31-scale-xs: calc(var(--p31-base) * .75);--p31-scale-sm: var(--p31-base);--p31-scale-md: calc(var(--p31-base) * 1.3333);--p31-scale-lg: calc(var(--p31-base) * 1.7777);--p31-scale-xl: calc(var(--p31-base) * 2.3703);--p31-scale-2xl: calc(var(--p31-base) * 3.1604);--p31-scale-3xl: calc(var(--p31-base) * 4.2139);--p31-scale-4xl: calc(var(--p31-base) * 5.6186);--p31-type-caption: clamp(var(--p31-scale-xs), .8vw, var(--p31-scale-sm));--p31-type-body: clamp(calc(var(--p31-base) * .95), 1vw + .5rem, var(--p31-scale-sm));--p31-type-label: var(--p31-scale-sm);--p31-type-h3: clamp(var(--p31-scale-md), 2vw, var(--p31-scale-lg));--p31-type-h2: clamp(var(--p31-scale-lg), 3.5vw, var(--p31-scale-xl));--p31-type-h1: clamp(var(--p31-scale-xl), 5.6vw, var(--p31-scale-2xl));--p31-type-display: clamp(var(--p31-scale-2xl), 7vw, var(--p31-scale-3xl));--p31-font-sans: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--p31-font-mono: ui-monospace, SFMono-Regular, "Fira Code", "Fira Mono", "Roboto Mono", "JetBrains Mono", Menlo, Monaco, Consolas, monospace;--p31-font-display: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--p31-duration-fast: .1s;--p31-duration-normal: .3s;--p31-duration-slow: .5s;--p31-easing-smooth: cubic-bezier(.4, 0, .2, 1);--p31-easing-snappy: cubic-bezier(.34, 1.56, .64, 1);--p31-speed-factor: 1;--p31-space-xs: clamp(var(--p31-scale-xs), 1vw, var(--p31-scale-sm));--p31-space-sm: clamp(var(--p31-scale-sm), 1.5vw, var(--p31-scale-md));--p31-space-md: clamp(var(--p31-scale-md), 2.5vw, var(--p31-scale-lg));--p31-space-lg: clamp(var(--p31-scale-lg), 3.5vw, var(--p31-scale-xl));--p31-space-xl: clamp(var(--p31-scale-xl), 5vw, var(--p31-scale-2xl));--p31-space-2xl: clamp(var(--p31-scale-2xl), 6.5vw, var(--p31-scale-3xl));--p31-space-3xl: 64px;--p31-radius-sm: calc(var(--p31-scale-sm) / 2);--p31-radius-md: calc(var(--p31-scale-md) / 2);--p31-radius-lg: calc(var(--p31-scale-lg) / 2);--p31-radius-xl: calc(var(--p31-scale-xl) / 2);--p31-radius-full: 9999px;--p31-touch-min: 48px;--p31-touch-recommended: 56px;--p31-touch-large: 64px;--p31-z-topbar: 10;--p31-z-toast: 9999;--p31-z-crisis: 99999;--p31-z-skip-link: 100;--p31-z-starfield: 0}[data-brand=willow]{--p31-glass-bg: rgba(255, 248, 240, .7);--p31-glass-border: rgba(200, 180, 160, .25);--p31-glass-blur: blur(16px);--p31-text: oklch(25% .02 80);--p31-text-secondary: oklch(55% .02 75);--p31-accent: oklch(65% .18 45);--p31-accent-alt: oklch(60% .15 200);--p31-accent-gold: oklch(72% .14 80);--p31-accent-green: oklch(70% .12 120);--p31-accent-red: oklch(62% .15 10);--p31-font-sans: "Comic Sans MS", "Chalkboard SE", cursive, sans-serif;--p31-font-display: "Comic Sans MS", "Chalkboard SE", cursive;--p31-radius-sm: 12px;--p31-radius-md: 20px;--p31-radius-lg: 28px;--p31-radius-xl: 40px;--p31-space-xs: .5rem;--p31-space-sm: .75rem;--p31-space-md: 1.25rem;--p31-space-lg: 2rem;--p31-space-xl: 2.5rem;--p31-space-2xl: 4rem;--p31-duration-fast: .2s;--p31-duration-normal: .4s;--p31-duration-slow: .6s;--p31-easing-smooth: cubic-bezier(.34, 1.56, .64, 1);--p31-touch-min: 56px;--p31-touch-recommended: 64px}html[data-dark-mode=true]{--p31-glass-bg: rgba(30, 28, 26, .8);--p31-glass-border: rgba(80, 75, 70, .3);--p31-text: oklch(90% .01 80);--p31-text-secondary: oklch(65% .02 80)}[data-spoons="0"],[data-spoons="1"]{--p31-speed-factor: 0;--p31-glass-blur: none}[data-spoons="2"]{--p31-speed-factor: .25;--p31-glass-blur: blur(8px)}[data-spoons="3"]{--p31-speed-factor: .5}[data-spoons="4"]{--p31-speed-factor: .75}[data-spoons="5"]{--p31-speed-factor: 1}@media(prefers-reduced-motion:reduce){:root{--p31-speed-factor: 0}}*{margin:0;padding:0;box-sizing:border-box}html,body{width:100%;height:100%;touch-action:manipulation;overscroll-behavior:none}body{font-family:var(--p31-font-sans);font-size:18px;line-height:1.6;color:var(--p31-text);background:linear-gradient(135deg,#f5efe6,linen,#f5f0eb);-webkit-font-smoothing:antialiased}.app{display:flex;flex-direction:column;height:100vh;width:100vw;max-width:100%;margin:0 auto;background:var(--p31-glass-bg);-webkit-backdrop-filter:var(--p31-glass-blur);backdrop-filter:var(--p31-glass-blur);box-shadow:0 0 60px #0000000f;position:relative;overflow-y:auto}@media(min-width:768px){.app{max-width:1200px;box-shadow:0 0 80px #00000014}}#topbar{flex-shrink:0;height:var(--p31-scale-2xl);padding:var(--p31-space-sm) var(--p31-space-lg);background:var(--p31-glass-bg);backdrop-filter:var(--p31-glass-blur);-webkit-backdrop-filter:var(--p31-glass-blur);border-bottom:2px solid var(--p31-glass-border);z-index:var(--p31-z-topbar);display:flex;align-items:center;justify-content:space-between;gap:var(--p31-space-md)}.topbar-left{display:flex;align-items:center;gap:var(--p31-space-sm)}.topbar-avatar{width:var(--p31-scale-xl);height:var(--p31-scale-xl);border-radius:50%;background:var(--p31-accent);display:flex;align-items:center;justify-content:center;font-size:var(--p31-scale-lg);box-shadow:0 4px 12px #c8783c40;border:2px solid rgba(255,255,255,.6)}.topbar-greeting{font-size:var(--p31-type-body);font-weight:600;color:var(--p31-text);line-height:1.2}.topbar-greeting small{display:block;font-size:var(--p31-type-caption);font-weight:400;color:var(--p31-text-secondary)}.topbar-metrics{display:flex;align-items:center;gap:var(--p31-space-sm)}.metric-badge{display:flex;align-items:center;gap:var(--p31-space-xs);padding:var(--p31-space-xs) var(--p31-space-md);background:#ffffff80;border:2px solid var(--p31-glass-border);border-radius:var(--p31-radius-full);font-size:var(--p31-type-label);font-weight:600;color:var(--p31-text);min-height:var(--p31-touch-min)}.metric-badge .emoji{font-size:var(--p31-scale-md)}#timer-badge{cursor:pointer}.spoon-row{display:flex;gap:var(--p31-space-xs);align-items:center}.spoon{width:var(--p31-scale-xl);height:var(--p31-scale-xl);border-radius:50%;background:#fff6;border:2px solid var(--p31-glass-border);cursor:pointer;touch-action:none;min-height:var(--p31-touch-min);min-width:var(--p31-touch-min);display:flex;align-items:center;justify-content:center;font-size:var(--p31-scale-sm);transition:all var(--p31-duration-normal) var(--p31-easing-smooth)}.spoon.active{background:var(--p31-accent);border-color:var(--p31-accent);box-shadow:0 0 16px #c8783c4d;transform:scale(1.1)}.spoon-label{font-size:var(--p31-type-caption);color:var(--p31-text-secondary);font-weight:600;margin-right:2px}.viewport{flex:1;position:relative;overflow-y:auto;overflow-x:hidden;padding:var(--p31-space-lg);padding-bottom:calc(80px + var(--p31-space-lg))}.page{display:none;animation:pageIn var(--p31-duration-normal) var(--p31-easing-smooth) forwards}.page.active{display:block}@keyframes pageIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.page h2{font-family:var(--p31-font-display);font-size:var(--p31-type-h2);font-weight:700;color:var(--p31-text);margin-bottom:var(--p31-space-md);letter-spacing:-.5px}.page .subtitle{font-size:var(--p31-type-body);color:var(--p31-text-secondary);margin-bottom:var(--p31-space-lg)}#navbar{flex-shrink:0;height:var(--p31-scale-2xl);background:var(--p31-glass-bg);backdrop-filter:var(--p31-glass-blur);-webkit-backdrop-filter:var(--p31-glass-blur);border-top:2px solid var(--p31-glass-border);z-index:var(--p31-z-topbar);display:flex;justify-content:space-around;align-items:center;padding:0 var(--p31-space-sm);padding-bottom:max(0px,env(safe-area-inset-bottom))}.nav-tab{flex:1;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;background:none;border:none;color:var(--p31-text-secondary);font-size:var(--p31-type-caption);font-weight:600;cursor:pointer;touch-action:none;min-width:var(--p31-touch-min);min-height:var(--p31-touch-min);transition:all var(--p31-duration-normal) var(--p31-easing-smooth);border-radius:var(--p31-radius-md);padding:var(--p31-space-xs);font-family:var(--p31-font-sans)}.nav-tab.active{color:var(--p31-accent);background:#c8783c14}.nav-tab:active{background:#c8783c26;transform:scale(.95)}.nav-icon{font-size:var(--p31-scale-lg);pointer-events:none;line-height:1}.companion-card{background:var(--p31-glass-bg);backdrop-filter:var(--p31-glass-blur);-webkit-backdrop-filter:var(--p31-glass-blur);border:2px solid var(--p31-glass-border);border-radius:var(--p31-radius-lg);padding:var(--p31-space-lg);transition:all var(--p31-duration-normal) var(--p31-easing-smooth);box-shadow:0 8px 24px #0000000a,0 2px 8px #00000005;min-height:80px}.companion-card:active{transform:scale(.97);background:#fff8f0e6}.companion-card .card-icon{font-size:var(--p31-scale-3xl);margin-bottom:var(--p31-space-sm)}.companion-card h3{font-family:var(--p31-font-display);font-size:var(--p31-type-h3);font-weight:700;margin-bottom:var(--p31-space-xs)}.companion-card p{font-size:var(--p31-type-body);color:var(--p31-text-secondary);line-height:1.5}.button{padding:var(--p31-space-sm) var(--p31-space-xl);background:var(--p31-accent);border:none;border-radius:var(--p31-radius-full);color:#fff;font-family:var(--p31-font-sans);font-weight:700;font-size:var(--p31-type-body);cursor:pointer;touch-action:none;min-height:var(--p31-touch-recommended);min-width:var(--p31-touch-recommended);display:inline-flex;align-items:center;justify-content:center;transition:all var(--p31-duration-normal) var(--p31-easing-smooth);-webkit-user-select:none;user-select:none;box-shadow:0 4px 12px #c8783c40;gap:var(--p31-space-sm)}.button:active{transform:scale(.95);box-shadow:0 2px 8px #c8783c26}.button.secondary{background:var(--p31-glass-bg);color:var(--p31-text);border:2px solid var(--p31-glass-border);box-shadow:none}.button.secondary:active{background:#fff8f0e6}.button.green{background:var(--p31-accent-green);box-shadow:0 4px 12px #64b47840}.button.blue{background:var(--p31-accent-alt);box-shadow:0 4px 12px #508cc840}.button.rose{background:var(--p31-accent-red);box-shadow:0 4px 12px #c8788c40}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:var(--p31-space-md)}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--p31-space-md)}@media(max-width:400px){.grid-2{grid-template-columns:1fr}.grid-3{grid-template-columns:1fr 1fr}}@media(max-width:320px){.grid-2,.grid-3{grid-template-columns:1fr!important}}.mood-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:var(--p31-space-sm)}.mood-btn{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#ffffff4d;border:2px solid var(--p31-glass-border);border-radius:var(--p31-radius-md);font-size:var(--p31-scale-2xl);cursor:pointer;touch-action:none;min-height:var(--p31-touch-min);transition:all var(--p31-duration-normal) var(--p31-easing-smooth)}.mood-btn:active{transform:scale(.9)}.mood-btn.selected{border-color:var(--p31-accent);background:#c8783c26;box-shadow:0 0 20px #c8783c26}.mood-btn .label{font-size:var(--p31-type-caption);color:var(--p31-text-secondary);margin-top:2px}.game-card{background:var(--p31-glass-bg);backdrop-filter:var(--p31-glass-blur);-webkit-backdrop-filter:var(--p31-glass-blur);border:2px solid var(--p31-glass-border);border-radius:var(--p31-radius-lg);padding:var(--p31-space-lg);text-align:center;transition:all var(--p31-duration-normal) var(--p31-easing-smooth);cursor:pointer;touch-action:none;display:flex;flex-direction:column;align-items:center;gap:var(--p31-space-sm);min-height:140px;justify-content:center}.game-card:active{transform:scale(.95);background:#fff8f0e6}.game-icon{font-size:var(--p31-scale-3xl)}.game-title{font-weight:700;font-size:var(--p31-type-h3);color:var(--p31-text)}.game-desc{font-size:var(--p31-type-caption);color:var(--p31-text-secondary)}.toast{position:fixed;top:12px;left:50%;transform:translate(-50%);max-width:500px;width:90%;margin:0 auto;background:var(--p31-glass-bg);backdrop-filter:var(--p31-glass-blur);-webkit-backdrop-filter:var(--p31-glass-blur);border:2px solid var(--p31-glass-border);border-left:4px solid var(--p31-accent);border-radius:var(--p31-radius-lg);padding:var(--p31-space-md) var(--p31-space-lg);font-size:var(--p31-type-body);z-index:var(--p31-z-toast);animation:slideUp var(--p31-duration-normal) var(--p31-easing-smooth);pointer-events:none;text-align:center;box-shadow:0 12px 40px #00000014}.toast.error{border-left-color:var(--p31-accent-red)}.toast.success{border-left-color:var(--p31-accent-green)}@keyframes slideUp{0%{transform:translate(-50%) translateY(60px) scale(.95);opacity:0}to{transform:translate(-50%) translateY(0) scale(1);opacity:1}}#crisis-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--p31-glass-bg);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:var(--p31-space-2xl);z-index:var(--p31-z-crisis)}html[data-spoons="0"] .app>*:not(#crisis-overlay){display:none}.breathing-circle{width:120px;height:120px;border-radius:50%;background:radial-gradient(circle,var(--p31-accent),var(--p31-accent-red));opacity:.4;animation:breathe 5s ease-in-out infinite}@keyframes breathe{0%,to{transform:scale(1);opacity:.3}50%{transform:scale(1.3);opacity:.7}}.crisis-text{font-size:var(--p31-type-h2);font-weight:600;color:var(--p31-text);text-align:center;max-width:280px;font-family:var(--p31-font-display)}#break-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--p31-glass-bg);z-index:calc(var(--p31-z-crisis) - 1);flex-direction:column;align-items:center;justify-content:center;gap:var(--p31-space-xl);padding:var(--p31-space-lg)}#break-overlay .crisis-text{font-size:var(--p31-type-h1);line-height:1.3}#pin-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--p31-glass-bg);z-index:calc(var(--p31-z-crisis) + 1);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--p31-space-md);overflow-y:auto}#pin-content{display:flex;flex-direction:column;align-items:center;gap:var(--p31-space-xs);max-width:280px;width:100%;max-height:100vh;justify-content:center}#pin-icon{font-size:var(--p31-scale-2xl);margin-bottom:var(--p31-space-xs)}#pin-title{font-family:var(--p31-font-display);font-size:var(--p31-type-h3);font-weight:700;color:var(--p31-text);text-align:center}#pin-desc{font-size:var(--p31-type-caption);color:var(--p31-text-secondary);text-align:center;line-height:1.4;max-width:260px}#pin-dots{font-size:var(--p31-scale-xl);letter-spacing:8px;font-weight:700;color:var(--p31-accent);min-height:32px;line-height:1;margin:var(--p31-space-xs) 0}#pin-error{font-size:var(--p31-type-caption);color:var(--p31-accent-red);min-height:20px;text-align:center;font-weight:600}#pin-numpad{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--p31-space-xs);max-width:220px;width:100%}.pin-key{aspect-ratio:1;display:flex;align-items:center;justify-content:center;background:var(--p31-glass-bg);border:2px solid var(--p31-glass-border);border-radius:var(--p31-radius-md);font-size:var(--p31-scale-lg);font-weight:700;cursor:pointer;touch-action:none;min-height:var(--p31-touch-min);min-width:var(--p31-touch-min);transition:all var(--p31-duration-normal) var(--p31-easing-smooth);-webkit-user-select:none;user-select:none;color:var(--p31-text);font-family:var(--p31-font-sans)}.pin-key:active{transform:scale(.92);background:#c8783c1a}.pin-key.fn{font-size:var(--p31-type-h2)}#pin-actions{display:flex;gap:var(--p31-space-sm);flex-wrap:wrap;justify-content:center;margin-top:var(--p31-space-sm)}#tourOverlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:none;align-items:center;justify-content:center;z-index:10000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}#tourOverlay.active{display:flex}.tour-card{background:var(--p31-glass-bg);border:1px solid var(--p31-glass-border);border-radius:var(--p31-radius-xl);padding:var(--p31-space-xl);max-width:420px;width:90%;position:relative}.tour-close{position:absolute;top:12px;right:12px;background:none;border:none;color:var(--p31-text-secondary);font-size:18px;cursor:pointer;min-width:36px;min-height:36px;z-index:1}.tour-step h2{font-size:18px;font-weight:600;margin-bottom:var(--p31-space-md);background:linear-gradient(135deg,var(--p31-accent),var(--p31-accent-gold));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.tour-step p{font-size:13px;color:var(--p31-text-secondary);line-height:1.6;margin-bottom:var(--p31-space-sm)}.tour-footer{display:flex;align-items:center;justify-content:space-between;margin-top:var(--p31-space-lg)}.tour-dots{display:flex;gap:6px}.tour-dot{width:8px;height:8px;border-radius:50%;background:var(--p31-glass-border);transition:all var(--p31-animation-speed) var(--p31-easing)}.tour-dot.active{background:var(--p31-accent);width:24px;border-radius:4px}.profile-field{background:#fff6;border:2px solid var(--p31-glass-border);border-radius:var(--p31-radius-md);padding:var(--p31-space-md);font-family:var(--p31-font-mono);font-size:var(--p31-type-caption);word-break:break-all;color:var(--p31-text)}.setting-row{display:flex;align-items:center;justify-content:space-between;padding:var(--p31-space-md) 0;border-bottom:1px solid var(--p31-glass-border)}.setting-row:last-child{border-bottom:none}.setting-label{font-weight:600;font-size:var(--p31-type-h3)}.setting-desc{font-size:var(--p31-type-caption);color:var(--p31-text-secondary)}.toggle{width:52px;height:32px;border-radius:var(--p31-radius-full);background:var(--p31-glass-border);border:none;cursor:pointer;transition:all var(--p31-duration-normal) var(--p31-easing-smooth);position:relative;min-height:32px;min-width:52px}.toggle.active{background:var(--p31-accent-green)}.toggle:after{content:"";position:absolute;top:3px;left:3px;width:26px;height:26px;border-radius:50%;background:#fff;transition:all var(--p31-duration-normal) var(--p31-easing-smooth);box-shadow:0 2px 4px #0000001a}.toggle.active:after{left:23px}#caregiver-panel{display:none}#caregiver-panel.visible{display:block}.chat-bubble{background:#fff;border-radius:var(--p31-radius-lg) var(--p31-radius-lg) var(--p31-radius-lg) 4px;padding:var(--p31-space-md) var(--p31-space-lg);max-width:85%;box-shadow:0 2px 12px #0000000a;margin-bottom:var(--p31-space-sm);font-size:var(--p31-type-body);line-height:1.5;border:1px solid var(--p31-glass-border)}.chat-bubble.companion{background:var(--p31-accent);color:#fff;border-radius:var(--p31-radius-lg) var(--p31-radius-lg) 4px var(--p31-radius-lg);align-self:flex-start;border:none}.chat-bubble.user{align-self:flex-end;background:var(--p31-glass-bg)}.chat-container{display:flex;flex-direction:column;gap:var(--p31-space-sm);padding:var(--p31-space-md) 0}.skip-link{position:absolute;top:-60px;left:var(--p31-space-md);background:var(--p31-accent);color:#fff;padding:var(--p31-space-md) var(--p31-space-lg);text-decoration:none;z-index:var(--p31-z-skip-link);font-weight:700;border-radius:var(--p31-radius-md)}.skip-link:focus{top:var(--p31-space-md)}*:focus-visible{outline:3px solid var(--p31-accent);outline-offset:3px}@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}}@media(max-width:480px){.app{max-width:100%}}@media(max-width:320px){.grid-2,.grid-3{grid-template-columns:1fr!important}.nav-tab{max-width:60px;font-size:.5rem}.nav-icon{width:16px;height:16px}.spoon-row{gap:2px}.spoon{width:24px;height:24px;min-width:24px;min-height:24px;font-size:.6rem}.topbar-metrics{gap:4px;flex-wrap:wrap}.metric-badge{font-size:.6rem;padding:2px 6px}#topbar{height:48px;padding:0 8px}.topbar-left{font-size:.8rem}.viewport{padding:8px}.companion-card{padding:12px}.mood-grid{grid-template-columns:repeat(3,1fr)!important}}
