[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}}.p31-topbar-root{position:relative}.topbar{flex-shrink:0;height:var(--p31-topbar-height, 56px);margin:var(--p31-space-xs) var(--p31-space-sm) 0;padding:0 var(--p31-space-sm);background:var(--p31-glass-bg);-webkit-backdrop-filter:var(--p31-glass-blur);backdrop-filter:var(--p31-glass-blur);border:1px solid var(--p31-glass-border);border-radius:var(--p31-radius-candy);box-shadow:inset 0 1px color-mix(in oklch,var(--p31-text) 10%,transparent),inset 0 -1px #0000002e,var(--p31-glass-shadow);display:flex;align-items:center;justify-content:space-between;gap:var(--p31-space-xs);position:relative;z-index:calc(var(--p31-z-topbar, 100) + 1);overflow:hidden;transition:border-color var(--p31-duration-fast) var(--p31-ease-kuramoto),box-shadow var(--p31-duration-fast) var(--p31-ease-kuramoto)}.topbar:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;pointer-events:none;background:linear-gradient(180deg,oklch(100% .01 75 / .14),transparent 55%);opacity:.6;animation:none;transition:opacity var(--p31-duration-fast) var(--p31-ease-kuramoto)}.topbar:hover:before{opacity:.9}.topbar-left{display:flex;align-items:center;gap:var(--p31-space-xs);font-weight:800;font-size:var(--p31-scale-lg);color:var(--p31-accent);letter-spacing:.02em}.topbar-brand{white-space:nowrap;cursor:default}.topbar-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;align-items:center;gap:var(--p31-space-tiny);width:max-content;flex-wrap:nowrap}.topbar-right{display:flex;align-items:center;gap:var(--p31-space-tiny)}.metric-badge{display:flex;align-items:center;gap:6px;padding:5px 10px;background:var(--p31-glass-bg);border:1px solid var(--p31-glass-border);border-radius:var(--p31-radius-sm);font-size:var(--p31-scale-xs);color:var(--p31-text-secondary);white-space:nowrap}.metric-badge strong{color:var(--p31-text);font-weight:700}.metric-badge.clickable{cursor:pointer;transition:border-color var(--p31-duration-instant) ease,color var(--p31-duration-instant) ease}.metric-badge.clickable:hover{border-color:var(--p31-accent);color:var(--p31-text)}.status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--p31-accent-green);box-shadow:0 0 8px var(--p31-accent-green)}.status-dot.offline{background:var(--p31-accent-red);box-shadow:0 0 8px var(--p31-accent-red)}.spoon-dial{display:flex;gap:3px;background:#00000073;border:1px solid var(--p31-glass-border);border-radius:var(--p31-radius-full);padding:4px 6px}.spoon-btn{width:30px;height:30px;border-radius:50%;border:none;background:transparent;color:var(--p31-text-tertiary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--p31-duration-instant) ease}.spoon-btn svg{width:15px;height:15px;fill:currentColor}.spoon-btn:hover{color:var(--p31-text);background:var(--p31-glass-bg)}.spoon-btn.active{background:var(--p31-accent);color:#000;box-shadow:0 0 12px #00a4a480;box-shadow:0 0 12px oklch(65% .18 195 / .5)}.header-drawer{position:fixed;top:calc(var(--p31-topbar-height, 56px) + var(--p31-space-xs, 8px));left:var(--p31-space-sm, 12px);right:var(--p31-space-sm, 12px);z-index:calc(var(--p31-z-topbar, 100) + 2);height:var(--p31-topbar-height, 56px);white-space:nowrap;background:var(--p31-glass-bg);backdrop-filter:var(--p31-glass-blur) saturate(1.4);-webkit-backdrop-filter:var(--p31-glass-blur) saturate(1.4);border:1px solid var(--p31-glass-border);border-radius:var(--p31-radius-candy);box-shadow:inset 0 1px color-mix(in oklch,var(--p31-text) 10%,transparent),inset 0 -1px #0000002e,var(--p31-glass-shadow),0 0 0 1px color-mix(in oklch,var(--p31-accent) 30%,transparent),0 0 24px color-mix(in oklch,var(--p31-accent) 22%,transparent);display:flex;flex-direction:column;align-items:stretch;gap:var(--p31-space-micro);padding:var(--p31-space-tiny) var(--p31-space-sm);overflow-x:auto;overflow-y:auto;scrollbar-width:none;opacity:0;transform:translateY(-10px) scaleY(.95);pointer-events:none;visibility:hidden;transform-origin:top center;transition:opacity var(--p31-duration-base) var(--p31-ease-kuramoto),transform var(--p31-duration-base) var(--p31-ease-kuramoto),visibility 0s linear var(--p31-duration-base)}.header-drawer::-webkit-scrollbar{display:none}.header-drawer:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;pointer-events:none;background:linear-gradient(180deg,oklch(100% .01 75 / .12),transparent 55%);opacity:.5;animation:none}.header-drawer.open{opacity:1;transform:translateY(0) scaleY(1);pointer-events:auto;visibility:visible;transition:opacity var(--p31-duration-base) var(--p31-ease-kuramoto),transform var(--p31-duration-base) var(--p31-ease-kuramoto)}.drawer-nav-item{flex-shrink:0;display:flex;align-items:center;gap:var(--p31-space-tiny);min-height:44px;padding:0 var(--p31-space-xs);border:none;border-radius:var(--p31-radius-full);background:none;color:var(--p31-text-secondary);font-size:var(--p31-scale-sm);font-family:var(--p31-font-sans);cursor:pointer;position:relative;transition:color var(--p31-duration-instant),background var(--p31-duration-instant);height:44px;box-sizing:border-box}.drawer-nav-item:hover{color:var(--p31-text);background:var(--p31-glass-bg)}.drawer-nav-item.active{color:var(--p31-accent);background:var(--p31-glass-bg)}.drawer-nav-icon{flex-shrink:0;width:24px;text-align:center;font-size:18px;line-height:1}.drawer-nav-label{white-space:nowrap}.drawer-nav-item .badge{position:absolute;top:4px;right:6px;background:var(--p31-accent-red);color:#fff;font-size:9px;font-weight:700;padding:1px 5px;border-radius:var(--p31-radius-full);line-height:1.4}.topbar-icon-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border:none;border-radius:var(--p31-radius-sm);background:none;color:var(--p31-text-secondary);font-size:var(--p31-scale-md);font-family:var(--p31-font-sans);cursor:pointer;transition:color var(--p31-duration-instant),background var(--p31-duration-instant)}.topbar-icon-btn:hover{color:var(--p31-text);background:var(--p31-glass-bg)}.topbar-icon-btn:focus-visible{outline:2px solid var(--p31-accent);outline-offset:2px}.topbar-icon-btn .badge-mini{position:absolute;top:4px;right:2px}.drawer-toggle svg{transition:transform var(--p31-duration-base) var(--p31-ease-kuramoto)}.drawer-toggle.open svg{transform:rotate(180deg)}.p31-brandmark{display:inline-flex;align-items:center;gap:10px;text-decoration:none;color:var(--p31-text)}.p31-brandmark-glyph{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px}.p31-brandmark-glyph .p31-brandmark-crown{width:34px;height:34px;overflow:visible}.p31-brandmark-name{font-size:15px;font-weight:800;letter-spacing:-.02em;line-height:1.1;color:var(--p31-text)}.p31-brandmark-name em{font-style:normal;color:var(--p31-accent)}.p31-brandmark-tagline{display:block;margin-top:2px;font-family:var(--p31-font-mono, ui-monospace, monospace);font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--p31-text-tertiary)}.badge-mini{position:absolute;top:-4px;right:-4px;background:var(--p31-accent-red);color:#fff;font-size:9px;font-weight:700;min-width:15px;height:15px;padding:0 4px;border-radius:var(--p31-radius-full);display:flex;align-items:center;justify-content:center}@media(max-width:768px){.topbar{padding:0 var(--p31-space-xs)}.topbar-center .metric-badge{display:none}}@media(max-width:640px){.topbar-center{position:static;transform:none;width:auto;flex-wrap:wrap}.topbar{margin:var(--p31-space-xs) var(--p31-space-xs) 0}.header-drawer{left:var(--p31-space-xs);right:var(--p31-space-xs)}}@media(max-width:480px){.topbar{padding:0 var(--p31-space-tiny)}.spoon-btn{width:26px;height:26px}}[data-spoons="0"] .topbar,[data-spoons="0"] .header-drawer,[data-spoons="1"] .topbar,[data-spoons="1"] .header-drawer{transition-duration:0ms!important}[data-spoons="0"] .p31-brandmark svg .cr-rotate,[data-spoons="0"] .p31-brandmark svg .cr-jewel,[data-spoons="0"] .p31-brandmark svg .cr-core,[data-spoons="0"] .p31-brandmark svg .cr-band,[data-spoons="1"] .p31-brandmark svg .cr-rotate,[data-spoons="1"] .p31-brandmark svg .cr-jewel,[data-spoons="1"] .p31-brandmark svg .cr-core,[data-spoons="1"] .p31-brandmark svg .cr-band{animation:none}html[data-spoons="2"] .cr-rotate{animation-duration:60s!important}html[data-spoons="2"] .cr-band{animation-duration:16s!important}html[data-spoons="2"] .cr-core{animation-duration:6s!important}html[data-spoons="2"] .cr-jewel{animation-duration:32s!important}html[data-spoons="3"] .cr-rotate{animation-duration:40s!important}html[data-spoons="3"] .cr-band{animation-duration:12s!important}html[data-spoons="3"] .cr-core{animation-duration:4s!important}html[data-spoons="3"] .cr-jewel{animation-duration:24s!important}html[data-spoons="4"] .cr-rotate{animation-duration:30s!important}html[data-spoons="4"] .cr-band{animation-duration:10s!important}html[data-spoons="4"] .cr-core{animation-duration:3s!important}html[data-spoons="4"] .cr-jewel{animation-duration:18s!important}html[data-spoons="5"] .cr-rotate{animation-duration:24s!important}html[data-spoons="5"] .cr-band{animation-duration:8s!important}html[data-spoons="5"] .cr-core{animation-duration:2.5s!important}html[data-spoons="5"] .cr-jewel{animation-duration:14s!important}:root{--p31-chrome-glass-bg: oklch(100% 0 240 / .05);--p31-chrome-glass-border: oklch(100% 0 240 / .1);--p31-chrome-radius: 10px}.topbar{background:var(--p31-chrome-glass-bg);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-color:var(--p31-chrome-glass-border);border-radius:var(--p31-chrome-radius)}.header-drawer{background:var(--p31-chrome-glass-bg);backdrop-filter:blur(8px) saturate(1.05);-webkit-backdrop-filter:blur(8px) saturate(1.05);border-color:var(--p31-chrome-glass-border);border-radius:calc(var(--p31-chrome-radius) + 2px)}.chameleon-panel{background:var(--p31-chrome-glass-bg);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-color:var(--p31-chrome-glass-border);border-radius:calc(var(--p31-chrome-radius) + 2px)}.spoon-dial{background:#ffffff0a;border-color:var(--p31-chrome-glass-border);border-radius:var(--p31-chrome-radius)}.spoon-btn,.drawer-nav-item,.topbar button,.header-drawer button,.chameleon-panel button{border-radius:8px}: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(80% .01 240);--p31-text-tertiary: oklch(78% .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-glass-bg-strong: oklch(100% .01 75 / .22);--p31-glass-bg-overlay: oklch(100% .01 75 / .1);--p31-glass-bg-light: oklch(100% .01 75 / .1);--p31-glass-border-strong: oklch(100% .01 75 / .16);--p31-glass-border-strong-hover: oklch(100% .01 75 / .25);--p31-glow-cyan: 0 0 20px rgba(0,240,255,.25);--p31-glow-neon: 0 0 6px oklch(90.5% .155 194.8), 0 0 20px oklch(90.5% .155 194.8 / .3);--p31-glow-magenta: 0 0 6px oklch(70.2% .322 328.4), 0 0 20px oklch(70.2% .322 328.4 / .3);--p31-glow-violet: 0 0 6px oklch(67% .234 309.1), 0 0 20px oklch(67% .234 309.1 / .3);--p31-glow-amber: 0 0 6px oklch(88.7% .182 95.3), 0 0 20px oklch(88.7% .182 95.3 / .3);--p31-glow-mint: 0 0 6px oklch(87.6% .228 152.5), 0 0 20px oklch(87.6% .228 152.5 / .3);--p31-glow-coral: 0 0 6px oklch(71.2% .181 22.8), 0 0 20px oklch(71.2% .181 22.8 / .3);--p31-neon: oklch(90.5% .155 194.8);--p31-neon-dim: oklch(90.5% .155 194.8 / .35);--p31-neon-faint: oklch(90.5% .155 194.8 / .08);--p31-neon-ghost: oklch(90.5% .155 194.8 / .03);--p31-neon-cyan: oklch(90.5% .155 194.8);--p31-neon-magenta: oklch(70.2% .322 328.4);--p31-neon-violet: oklch(67% .234 309.1);--p31-neon-amber: oklch(88.7% .182 95.3);--p31-neon-mint: oklch(87.6% .228 152.5);--p31-neon-coral: oklch(71.2% .181 22.8);--p31-neon-orange: oklch(75.4% .164 50.4);--p31-neon-blue: oklch(80.4% .146 219.5);--p31-neon-lavender: oklch(62% .279 290.8);--p31-neon-pink: oklch(67.4% .293 340.4);--p31-surface-s1: oklch(0% 0 0);--p31-surface-s2: oklch(4.9% 0 0);--p31-surface-s3: oklch(6.9% 0 0);--p31-surface-s4: oklch(10.5% 0 0);--p31-status-online: oklch(65% .18 105);--p31-status-offline: oklch(78% .01 240);--p31-status-warning: oklch(65% .18 15);--p31-status-error: oklch(65% .18 20);--p31-status-info: oklch(65% .18 195);--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-space-tiny: 2px;--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-radius-candy: 24px;--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-topbar-height: 64px;--p31-z-content: 1;--p31-z-floating: 60;--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="0"],[data-spoons="1"]{--p31-speed-factor: 0;--p31-glass-blur: none}[data-spoons="2"]{--p31-speed-factor: .25;--p31-glass-blur: blur(4px)}[data-spoons="3"]{--p31-speed-factor: .5;--p31-glass-blur: blur(8px)}[data-spoons="4"]{--p31-speed-factor: .75;--p31-glass-blur: blur(12px)}[data-spoons="5"]{--p31-speed-factor: 1;--p31-glass-blur: blur(16px)}[data-spoons="2"]{--p31-speed-factor: .25;--p31-glass-blur: blur(8px)}[data-spoons="3"]{--p31-speed-factor: .5;--p31-glass-blur: blur(12px)}@media(prefers-reduced-motion:reduce){:root{--p31-speed-factor: 0}}[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)}[data-portal=mesh]{--p31-portal-accent: var(--p31-accent);--p31-portal-glow: rgba(0, 240, 255, .08)}[data-portal=research]{--p31-portal-accent: var(--p31-accent-violet);--p31-portal-glow: rgba(167, 139, 250, .08)}[data-portal=quantum]{--p31-portal-accent: var(--p31-accent-alt);--p31-portal-glow: rgba(139, 92, 246, .08)}[data-portal=build]{--p31-portal-accent: var(--p31-accent-green);--p31-portal-glow: rgba(52, 211, 153, .08)}[data-portal=blog]{--p31-portal-accent: var(--p31-accent);--p31-portal-glow: rgba(0, 240, 255, .06)}[data-portal=passport]{--p31-portal-accent: var(--p31-accent-iris);--p31-portal-glow: rgba(139, 92, 246, .08)}[data-portal=care]{--p31-portal-accent: var(--p31-accent-gold);--p31-portal-glow: rgba(251, 191, 36, .08)}[data-portal] main,[data-portal] .portal-content{position:relative;z-index:1}[data-brand=willow]{--p31-accent: #FF6B8B;--p31-accent-alt: #4ECDC4;--p31-accent-gold: #FFE66D;--p31-accent-green: #96CEB4;--p31-accent-red: #FF6B6B;--p31-text: #2D3748;--p31-text-secondary: #718096;--p31-text-tertiary: #A0AEC0;--p31-glass-bg: #FFF;--p31-glass-border: #E2E8F0;--p31-glass-border-hover: #CBD5E0;--p31-glass-shadow: 0 6px 16px rgba(0,0,0,.05);--p31-glass-blur: none;--p31-font-sans: "Fredoka", cursive, sans-serif;--p31-font-mono: "Fira Code", ui-monospace, monospace;--p31-font-display: "Fredoka", cursive, sans-serif;--p31-radius-sm: 6px;--p31-radius-md: 10px;--p31-radius-lg: 20px;--p31-radius-xl: 40px;--p31-radius-full: 9999px;--p31-space-xs: 6px;--p31-space-sm: 8px;--p31-space-md: 12px;--p31-space-lg: 16px;--p31-space-xl: 24px;--p31-space-2xl: 40px;--p31-space-3xl: 64px;--p31-duration-fast: .15s;--p31-duration-normal: .3s;--p31-duration-slow: .5s;--p31-easing-snappy: cubic-bezier(.175, .885, .32, 1.275);--p31-touch-min: 44px;--p31-touch-recommended: 48px;--p31-touch-large: 56px}[data-brand=willow]{--site-bg: var(--p31-bg);--site-surface: var(--p31-surface);--site-accent: var(--p31-accent);--site-accent-alt: var(--p31-accent-alt);--site-accent-gold: var(--p31-accent-gold);--site-success: var(--p31-accent-green);--site-error: var(--p31-accent-red);--site-glass: var(--p31-glass-bg);--site-glass-hover: var(--p31-glass-border-hover);--site-border: var(--p31-glass-border);--site-border-strong: var(--p31-glass-border-hover);--site-text: var(--p31-text);--site-text-dim: var(--p31-text-secondary)}[data-spoons="0"],[data-spoons="1"]{--p31-speed-factor: 0}[data-spoons="2"]{--p31-speed-factor: .25}[data-spoons="3"]{--p31-speed-factor: .5}[data-spoons="4"]{--p31-speed-factor: .75}[data-spoons="5"]{--p31-speed-factor: 1}html[data-dark-mode=true]{--p31-surface: #1A202C;--p31-surface2: #2D3748;--p31-glass-bg: #1A2235;--p31-glass-border: #2D3748;--p31-glass-border-hover: #4A5568;--p31-text: #E2E8F0;--p31-text-secondary: #A0AEC0;--p31-text-tertiary: #718096}*,*:before,*:after{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:var(--p31-scale-lg);line-height:1.6;color:var(--p31-text);background:#fff0f5;-webkit-font-smoothing:antialiased}.app{display:flex;flex-direction:column;height:100vh;width:100vw;max-width:100%;margin:0 auto;background:#fff0f5;position:relative;overflow-y:auto}#topbar{background:#fff;border-radius:16px;margin:12px;padding:12px 20px;box-shadow:0 4px 12px #ff6b8b33;display:flex;justify-content:space-between;align-items:center;flex-shrink:0;z-index:var(--p31-z-topbar)}.topbar-left{display:flex;align-items:center;gap:12px}.topbar-avatar{width:40px;height:40px;border-radius:50%;background:var(--p31-accent);display:flex;align-items:center;justify-content:center;font-size:24px;color:#fff}.topbar-greeting{font-size:var(--p31-scale-md);font-weight:600;color:var(--p31-text);line-height:1.3}.topbar-greeting small{display:block;font-size:var(--p31-scale-xs);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:4px;padding:4px 12px;background:var(--p31-surface2);border-radius:var(--p31-radius-full);font-size:var(--p31-scale-sm);font-weight:600;color:var(--p31-text);min-height:32px}.metric-badge .emoji{font-size:var(--p31-scale-lg)}#timer-badge{cursor:pointer}.spoon-dial{display:flex;gap:4px;align-items:center;background:#fff5f799;border:1px solid rgba(255,200,210,.4);border-radius:var(--p31-radius-full);padding:4px}.spoon-btn{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:transparent;border:none;cursor:pointer;transition:all var(--p31-duration-normal) var(--p31-easing-smooth);color:#4a5568}.spoon-btn svg{width:16px;height:16px;fill:currentColor}.spoon-btn:hover{color:#2d3748}.spoon-btn.active{background:#ff6b8b;color:#fff;box-shadow:0 0 12px #ff6b8b66}.viewport{flex:1;position:relative;overflow-y:auto;overflow-x:hidden;padding:var(--p31-space-md);padding-bottom:calc(80px + var(--p31-space-lg))}.page{display:none;animation:pageIn var(--p31-duration-normal) ease forwards}.page.active{display:block}#page-create.active{display:flex;flex-direction:column}@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-scale-2xl);font-weight:700;color:#ff6b8b;margin-bottom:var(--p31-space-sm)}.page .subtitle{font-size:var(--p31-scale-md);color:var(--p31-text-secondary);margin-bottom:var(--p31-space-lg)}#navbar{flex-shrink:0;background:#fff;border-top:2px solid #FFD1DC;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%;min-height:56px;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-scale-xs);font-weight:600;cursor:pointer;min-width:var(--p31-touch-min);transition:all var(--p31-duration-fast) ease;border-radius:var(--p31-radius-sm);padding:var(--p31-space-xs);font-family:var(--p31-font-sans)}.nav-tab.active{color:#ff6b8b;background:#ff6b8b14}.nav-tab:active{background:#ff6b8b26;transform:scale(.95)}.nav-icon{font-size:20px;pointer-events:none;line-height:1}.companion-card,.game-card,.child-card{background:#fff;border-radius:var(--p31-radius-lg);padding:var(--p31-space-lg);box-shadow:0 6px 16px #0000000d;border:none;transition:all var(--p31-duration-normal) ease}.companion-card:active,.game-card:active{transform:scale(.97);box-shadow:0 4px 12px #00000008}.companion-card .card-icon{font-size:var(--p31-scale-3xl);margin-bottom:var(--p31-space-sm)}.companion-card h3{font-size:var(--p31-scale-md);font-weight:700;margin-bottom:var(--p31-space-xs);color:var(--p31-text)}.companion-card p{font-size:var(--p31-scale-sm);color:var(--p31-text-secondary);line-height:1.5}.button{padding:6px 18px;background:#4ecdc4;border:none;border-radius:var(--p31-radius-md);color:#fff;font-family:var(--p31-font-sans);font-weight:700;font-size:var(--p31-scale-sm);cursor:pointer;min-height:36px;display:inline-flex;align-items:center;justify-content:center;transition:all var(--p31-duration-fast) ease;-webkit-user-select:none;user-select:none;box-shadow:0 4px #36b3a8;gap:var(--p31-space-xs)}.button:active{transform:translateY(3px);box-shadow:0 1px #36b3a8}.button.secondary{background:#edf2f7;color:#718096;box-shadow:none}.button.secondary:active{background:#cbd5e0;transform:scale(.97)}.button.green{background:var(--p31-accent-green);box-shadow:0 4px #78b096}.button.blue{background:var(--p31-accent-alt);box-shadow:0 4px #36b3a8}.button.rose{background:var(--p31-accent-red);box-shadow:0 4px #e05252}.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)}.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:#fff;border:2px solid var(--p31-glass-border);border-radius:var(--p31-radius-md);font-size:var(--p31-scale-2xl);cursor:pointer;min-height:var(--p31-touch-min);transition:all var(--p31-duration-fast) ease}.mood-btn:active{transform:scale(.9)}.mood-btn.selected{border-color:#ff6b8b;background:#ff6b8b14;box-shadow:0 0 16px #ff6b8b1f}.mood-btn .label{font-size:var(--p31-scale-xs);color:var(--p31-text-secondary);margin-top:2px}.game-card{text-align:center;cursor:pointer;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:#f7fafc}.game-icon{font-size:var(--p31-scale-3xl)}.game-title{font-weight:700;font-size:var(--p31-scale-md);color:var(--p31-text)}.game-desc{font-size:var(--p31-scale-xs);color:var(--p31-text-secondary)}.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 8px #0000000a;margin-bottom:var(--p31-space-sm);font-size:var(--p31-scale-sm);line-height:1.5;border:1px solid var(--p31-glass-border)}.chat-bubble.companion{background:#ff6b8b;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:#f7fafc;border:1px solid #E2E8F0}.chat-container{display:flex;flex-direction:column;gap:var(--p31-space-sm);padding:var(--p31-space-md) 0}.profile-field{background:var(--p31-surface);border:1px 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-scale-xs);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-scale-md)}.setting-desc{font-size:var(--p31-scale-xs);color:var(--p31-text-secondary)}.toggle{width:48px;height:28px;border-radius:var(--p31-radius-full);background:#cbd5e0;border:none;cursor:pointer;transition:all var(--p31-duration-fast) ease;position:relative;min-height:28px;min-width:48px}.toggle.active{background:var(--p31-accent-green)}.toggle:after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;transition:all var(--p31-duration-fast) ease;box-shadow:0 1px 3px #0000001a}.toggle.active:after{left:23px}#caregiver-panel{display:none}#caregiver-panel.visible{display:block}.toast{position:fixed;top:12px;left:50%;transform:translate(-50%);max-width:480px;width:90%;margin:0 auto;background:#fff;border:1px solid var(--p31-glass-border);border-left:4px solid #FF6B8B;border-radius:var(--p31-radius-md);padding:var(--p31-space-md) var(--p31-space-lg);font-size:var(--p31-scale-sm);z-index:var(--p31-z-toast);animation:slideUp var(--p31-duration-normal) ease;text-align:center;box-shadow:0 8px 24px #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}}#rest-overlay{position:fixed;top:0;right:0;bottom:0;left:0;display:none;z-index:var(--p31-z-crisis);pointer-events:none}html[data-spoons="0"] .app>#rest-overlay{display:block}html[data-spoons="0"] .app>*:not(#rest-overlay){display:none}#rest-return{position:fixed;top:20px;left:50%;transform:translate(-50%);pointer-events:auto;padding:10px 20px;border-radius:999px;border:1px solid rgba(255,255,255,.14);background:#0a0e1773;color:#ffffffb3;font-family:var(--p31-font-sans);font-size:13px;letter-spacing:.02em;cursor:pointer;opacity:.5;transition:opacity var(--p31-duration-fast) ease,background var(--p31-duration-fast) ease,color var(--p31-duration-fast) ease}#rest-return:hover,#rest-return:focus-visible{opacity:1;background:#0a0e17b3;color:#fff;outline:2px solid var(--p31-accent);outline-offset:2px}#break-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a0e17f2;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:calc(var(--p31-z-crisis) - 1);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--p31-space-md);padding:var(--p31-space-xl);text-align:center}#break-overlay .crisis-text{font-size:var(--p31-scale-2xl);line-height:1.3}#pin-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a0e17f2;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);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%}#pin-icon{font-size:var(--p31-scale-2xl);margin-bottom:var(--p31-space-xs)}#pin-title{font-size:var(--p31-scale-md);font-weight:700;color:#fff;text-align:center}#pin-desc{font-size:var(--p31-scale-xs);color:#9ca3af;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:#10b981;min-height:32px;line-height:1;margin:var(--p31-space-xs) 0}#pin-error{font-size:var(--p31-scale-xs);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:#ffffff0f;border:1px solid rgba(255,255,255,.1);border-radius:var(--p31-radius-md);font-size:var(--p31-scale-lg);font-weight:700;cursor:pointer;min-height:48px;min-width:48px;transition:all var(--p31-duration-fast) ease;-webkit-user-select:none;user-select:none;color:#fff;font-family:var(--p31-font-sans)}.pin-key:active{transform:scale(.92);background:#ff6b8b26}.pin-key.fn{font-size:var(--p31-scale-lg)}#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;right:0;bottom:0;left: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:#fff;border-radius:var(--p31-radius-lg);padding:var(--p31-space-lg);max-width:420px;width:90%;position:relative;box-shadow:0 12px 40px #00000026}.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}.tour-step h2{font-size:var(--p31-scale-lg);font-weight:700;margin-bottom:var(--p31-space-sm);color:#ff6b8b}.tour-step p{font-size:var(--p31-scale-sm);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:#cbd5e0;transition:all var(--p31-duration-fast) ease}.tour-dot.active{background:#ff6b8b;width:24px;border-radius:4px}.create-workspace{display:grid;grid-template-columns:280px 1fr 300px;gap:12px;min-height:0;flex:1}.block-palette{background:#fff;border-radius:var(--p31-radius-lg);padding:var(--p31-space-lg);display:flex;flex-direction:column;gap:var(--p31-space-sm);overflow-y:auto;box-shadow:0 6px 16px #0000000d}.block-palette h3{font-size:var(--p31-scale-md);color:var(--p31-text)}.block-palette .subtitle{font-size:var(--p31-scale-xs);color:var(--p31-text-secondary)}.block-list{display:flex;flex-direction:column;gap:var(--p31-space-sm);margin-top:var(--p31-space-sm)}.code-block{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-radius:var(--p31-radius-md);font-weight:600;font-size:var(--p31-scale-sm);cursor:pointer;-webkit-user-select:none;user-select:none;transition:transform .1s ease;color:#fff}.code-block:active{transform:translateY(3px)}.code-block.teal{background:#4ecdc4;box-shadow:0 4px #36b3a8}.code-block.teal:active{box-shadow:0 1px #36b3a8}.code-block.pink{background:#ff6b6b;box-shadow:0 4px #e05252}.code-block.pink:active{box-shadow:0 1px #e05252}.code-block.purple{background:#96ceb4;box-shadow:0 4px #78b096}.code-block.purple:active{box-shadow:0 1px #78b096}.code-block.gold{background:#ffe66d;color:#4a5568;box-shadow:0 4px #e6cd53}.code-block.gold:active{box-shadow:0 1px #e6cd53}.block-plus{font-size:var(--p31-scale-lg)}.create-tip{margin-top:auto;background:#f7fafc;padding:var(--p31-space-sm);border-radius:14px;border:2px dashed #CBD5E0}.create-tip .tip-title{font-size:var(--p31-scale-xs);color:var(--p31-text-secondary);font-weight:600}.create-tip .tip-text{font-size:var(--p31-scale-xs);color:var(--p31-text-tertiary);margin-top:4px}.canvas-area{display:grid;grid-template-rows:1fr 1fr;gap:12px}.canvas-panel{background:#fff;border-radius:var(--p31-radius-lg);padding:var(--p31-space-lg);display:flex;flex-direction:column;gap:var(--p31-space-sm);overflow:hidden;box-shadow:0 6px 16px #0000000d}.canvas-toolbar{display:flex;justify-content:space-between;align-items:center;flex-shrink:0}.canvas-toolbar h3{font-size:var(--p31-scale-md);color:var(--p31-text)}.canvas-actions{display:flex;gap:var(--p31-space-xs)}.btn-create-outline{background:#edf2f7;border:none;color:#718096;padding:6px 12px;border-radius:var(--p31-radius-md);cursor:pointer;font-size:var(--p31-scale-xs);font-weight:600;font-family:var(--p31-font-sans);transition:all var(--p31-duration-fast) ease}.btn-create-outline:hover{background:#cbd5e0}.btn-create-primary{background:#4ecdc4;color:#fff;border:none;padding:6px 18px;border-radius:var(--p31-radius-md);cursor:pointer;font-size:var(--p31-scale-sm);font-weight:700;font-family:var(--p31-font-sans);box-shadow:0 4px #36b3a8;transition:all .15s ease}.btn-create-primary:active{transform:translateY(3px);box-shadow:0 1px #36b3a8}.btn-create-primary:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}.btn-create-magic{background:#ed64a6;color:#fff;border:none;padding:10px 16px;border-radius:var(--p31-radius-md);cursor:pointer;font-weight:700;font-size:var(--p31-scale-sm);font-family:var(--p31-font-sans);width:100%;transition:all var(--p31-duration-fast) ease}.btn-create-magic:hover{background:#d53f8c}.workspace-area{display:flex;flex-wrap:wrap;gap:var(--p31-space-xs);margin-top:var(--p31-space-sm);overflow-y:auto;flex:1}.workspace-block{font-size:var(--p31-scale-xs);padding:8px 12px;flex-shrink:0;white-space:nowrap}.workspace-empty{padding:var(--p31-space-xl);font-style:italic;color:var(--p31-text-tertiary);text-align:center;width:100%;display:flex;align-items:center;justify-content:center}.stage-panel{background:linear-gradient(180deg,#ebf8ff,#bee3f8);display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;border-radius:var(--p31-radius-lg);min-height:200px;box-shadow:0 6px 16px #0000000d}.stage-character{transition:transform .25s cubic-bezier(.175,.885,.32,1.275);display:flex;flex-direction:column;align-items:center;gap:var(--p31-space-xs)}.stage-star{width:80px;height:80px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:42px}.stage-label{font-weight:700;color:#2b6cb0;font-size:var(--p31-scale-md)}.helper-panel{background:#fff;border-radius:var(--p31-radius-lg);padding:var(--p31-space-lg);display:flex;flex-direction:column;gap:var(--p31-space-sm);overflow-y:auto;box-shadow:0 6px 16px #0000000d}.helper-header{display:flex;align-items:center;gap:var(--p31-space-xs)}.helper-icon{font-size:24px}.helper-header h3{font-size:var(--p31-scale-md);color:var(--p31-text)}.helper-chat{background:#f7fafc;padding:var(--p31-space-md);border-radius:14px;border:1px solid #E2E8F0;font-size:var(--p31-scale-sm);line-height:1.5;color:#4a5568;min-height:80px}.helper-actions{margin-top:auto;display:flex;flex-direction:column;gap:var(--p31-space-xs)}.portal-loader{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--p31-space-md);padding:var(--p31-space-2xl)}.loader-spinner{width:32px;height:32px;border:3px solid #E2E8F0;border-top-color:#ff6b8b;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.skip-link{position:absolute;top:-60px;left:var(--p31-space-md);background:#ff6b8b;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 #FF6B8B;outline-offset:3px}@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}}@media(max-width:480px){.app{max-width:100%}#topbar{margin:8px;border-radius:12px;padding:8px 14px}.topbar-greeting{font-size:var(--p31-scale-xs)}.spoon{width:22px;height:22px;font-size:12px}.mood-btn{font-size:var(--p31-scale-xl)}.viewport{padding:8px}.companion-card{padding:var(--p31-space-md)}}@media(max-width:320px){.grid-2,.grid-3{grid-template-columns:1fr!important}.nav-tab{max-width:60px;font-size:9px}.nav-icon{width:18px;height:18px}.spoon-dial{gap:3px}.spoon-btn{width:24px;height:24px}.topbar-metrics{gap:4px;flex-wrap:wrap}.metric-badge{font-size:9px;padding:2px 6px}#topbar{padding:0 8px}.topbar-left{font-size:9px}.mood-grid{grid-template-columns:repeat(3,1fr)!important}}@media(max-width:1024px){.create-workspace{grid-template-columns:1fr;overflow-y:auto}.helper-panel{order:3}}@media(max-width:480px){.create-workspace{padding:0}.canvas-area{grid-template-rows:auto;gap:var(--p31-space-sm)}.stage-panel{min-height:160px}.stage-star{width:60px;height:60px;font-size:32px}}@media(max-width:320px){.viewport{padding:8px}}
