:root{color-scheme:light dark;--bg: #f6f1e8;--bg-elev: #fffdf8;--ink: #26232b;--ink-soft: #5d5866;--line: #e3dccf;--accent: #2f6f6a;--accent-ink: #ffffff;--accent-soft: #d9ebe8;--warn-bg: #fff3d6;--warn-ink: #6b4b00;--danger: #a23b2e;--danger-soft: #f8e3df;--demo-bg: #2b2540;--demo-ink: #f3ecff;--radius: 16px;--shadow: 0 1px 2px rgba(20, 16, 10, .06), 0 8px 24px rgba(20, 16, 10, .06);font-family:ui-rounded,SF Pro Rounded,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:16px;line-height:1.5}@media(prefers-color-scheme:dark){:root{--bg: #1b1a22;--bg-elev: #25232e;--ink: #f0ebe3;--ink-soft: #b4adbd;--line: #38343f;--accent: #7fc7bf;--accent-ink: #10201e;--accent-soft: #223a37;--warn-bg: #3a3012;--warn-ink: #ffe3a0;--danger: #ff8c7a;--danger-soft: #3f2420;--demo-bg: #6b5bb3;--demo-ink: #ffffff;--shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 8px 24px rgba(0, 0, 0, .3)}}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--ink)}body{min-height:100dvh}.app{max-width:920px;margin:0 auto;padding:0 16px calc(24px + env(safe-area-inset-bottom))}.skip-link{position:absolute;left:-9999px;top:8px;background:var(--accent);color:var(--accent-ink);padding:8px 12px;border-radius:8px}.skip-link:focus{left:16px;z-index:10}.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.topbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding:18px 0 12px}.brand{display:inline-flex;align-items:center;gap:10px;font-weight:700;letter-spacing:.01em}.brand-mark{width:24px;height:24px;border-radius:50%;background:radial-gradient(circle at 50% 50%,#bff3ea 0,#7fc7bf 18%,#7fc7bf40,#2a2550 62%,#120f22);border:1px solid var(--line);display:inline-block}.badge{font-size:.75rem;font-weight:600;padding:2px 8px;border-radius:999px}.badge-muted{background:var(--accent-soft);color:var(--ink)}.nav{display:flex;gap:4px;list-style:none;margin:0;padding:4px;background:var(--bg-elev);border:1px solid var(--line);border-radius:999px}.nav a{display:inline-block;padding:6px 14px;border-radius:999px;color:var(--ink);text-decoration:none;font-weight:500}.nav a.active{background:var(--accent);color:var(--accent-ink)}.nav a:focus-visible,.btn:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.demo-banner{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:12px 0 0;padding:10px 14px;background:var(--demo-bg);color:var(--demo-ink);border-radius:12px;font-size:.95rem}.demo-banner .btn-ghost{color:var(--demo-ink);border-color:#ffffff59;margin-left:auto}.alert{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:12px 0;padding:12px 14px;background:var(--danger-soft);color:var(--ink);border:1px solid var(--danger);border-radius:12px}.alert-warn{background:var(--warn-bg);color:var(--warn-ink);border-color:transparent}.content{display:grid;gap:16px;padding-top:12px}.content:focus{outline:none}.card{background:var(--bg-elev);border:1px solid var(--line);border-radius:var(--radius);padding:20px 22px;box-shadow:var(--shadow)}.card-muted{background:transparent;box-shadow:none}.card-danger{border-color:var(--danger)}.hero h1{font-size:clamp(1.6rem,4vw,2.2rem);margin:0 0 8px;letter-spacing:-.01em}h1{font-size:1.6rem;margin:0 0 8px}h2{font-size:1.1rem;margin:0 0 8px}.lead{font-size:1.05rem}.muted{color:var(--ink-soft)}.small{font-size:.9rem}code{font-size:.85em;background:var(--accent-soft);padding:1px 6px;border-radius:6px}.two-col{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.rules,.plain{margin:0;padding-left:0;list-style:none;display:grid;gap:8px}.plain li{padding-left:18px;position:relative}.plain li:before{content:"•";position:absolute;left:2px;color:var(--accent)}.rule-id{display:inline-block;min-width:42px;font-weight:700;color:var(--accent);font-variant-numeric:tabular-nums}.check{display:flex;gap:10px;align-items:flex-start;margin:14px 0 4px}.check input{width:20px;height:20px;margin-top:3px;flex:none}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 18px;border-radius:999px;border:1px solid var(--line);background:var(--bg-elev);color:var(--ink);font:inherit;font-weight:600;text-decoration:none;cursor:pointer;min-height:44px}.btn:hover{filter:brightness(.97)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.btn-large{padding:14px 26px;font-size:1.05rem}.btn-ghost{background:transparent}.btn-small{min-height:34px;padding:4px 12px;font-size:.85rem}.btn-danger{background:transparent;color:var(--danger);border-color:var(--danger)}.btn-row{display:flex;flex-wrap:wrap;gap:8px}.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px 20px;margin:14px 0}.facts div{display:grid;gap:2px}.facts dt{font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft)}.facts dd{margin:0;font-weight:600}.progress{height:12px;background:var(--accent-soft);border-radius:999px;overflow:hidden;margin:16px 0 4px}.progress-bar{height:100%;background:var(--accent);border-radius:999px;transition:width 1s linear}.bars{list-style:none;margin:0;padding:0;display:grid;gap:10px}.bars li{display:grid;grid-template-columns:minmax(110px,1.2fr) 2fr auto;align-items:center;gap:10px;font-size:.95rem}.bar{height:10px;background:var(--accent-soft);border-radius:999px;overflow:hidden}.bar-fill{display:block;height:100%;background:var(--accent)}.bar-fill-alt{background:#b07a4e}.bar-value{font-variant-numeric:tabular-nums;color:var(--ink-soft);min-width:48px;text-align:right}.choices{border:0;padding:0;margin:8px 0 0;display:grid;gap:10px}.choice{display:flex;gap:10px;align-items:flex-start}.choice input{margin-top:4px}.timeline{list-style:none;margin:0;padding:0;display:grid;gap:8px}.timeline li{display:grid;grid-template-columns:minmax(170px,auto) 1fr;gap:12px;padding-left:14px;border-left:3px solid var(--accent)}.timeline-when{color:var(--ink-soft);font-size:.9rem}.egg-screen{text-align:center}.egg-screen .facts{text-align:left}.egg-stage{display:grid;place-items:center;padding:10px 0 4px}.egg{max-width:100%;height:auto;transform-origin:50% 90%}.egg-quivering .egg-body{animation:quiver 2.8s ease-in-out infinite;transform-origin:50% 90%}.egg-cracking .egg-body{animation:quiver 1.1s ease-in-out infinite;transform-origin:50% 90%}.egg-ready .egg-glow{animation:glow 2.4s ease-in-out infinite;transform-origin:50% 53%}.egg-stage-hatched .egg{animation:hatch 2.2s ease-in forwards}.demo-controls{margin-top:18px;padding-top:14px;border-top:1px dashed var(--line);text-align:left}.companion-hero{display:grid;grid-template-columns:minmax(200px,280px) 1fr;gap:20px;align-items:center}.creature-stage{display:grid;place-items:center}.creature{max-width:100%;height:auto}.creature-body{animation:breathe 4.5s ease-in-out infinite;transform-origin:50% 50%}@media(max-width:640px){.companion-hero{grid-template-columns:1fr;text-align:center}.bars li{grid-template-columns:1fr;gap:4px}.bar-value{text-align:left}.timeline li{grid-template-columns:1fr;gap:2px}}.footer{padding:24px 4px 0;font-size:.85rem;text-align:center}@keyframes quiver{0%,to{transform:rotate(0)}20%{transform:rotate(-2.2deg)}40%{transform:rotate(2.4deg)}60%{transform:rotate(-1.4deg)}80%{transform:rotate(1.2deg)}}@keyframes glow{0%,to{opacity:.55;transform:scale(.96)}50%{opacity:1;transform:scale(1.04)}}@keyframes hatch{0%{transform:scale(1) rotate(0);opacity:1}40%{transform:scale(1.06) rotate(-3deg);opacity:1}to{transform:scale(1.5) rotate(4deg);opacity:0}}@keyframes breathe{0%,to{transform:scale(1)}50%{transform:scale(1.025)}}@media(prefers-reduced-motion:reduce){.egg-quivering .egg-body,.egg-cracking .egg-body,.egg-ready .egg-glow,.creature-body{animation:none}.egg-stage-hatched .egg{animation:none;opacity:.4}.progress-bar{transition:none}}.researcher-card{display:grid;grid-template-columns:auto 1fr;gap:16px;align-items:start}.researcher-avatar{width:56px;height:56px;border-radius:50%;background:var(--accent-soft);display:grid;place-items:center}.researcher-says{font-style:italic}.researcher-note{margin:14px 0 0;padding:10px 14px;border-left:3px solid var(--accent);background:var(--accent-soft);border-radius:0 10px 10px 0;text-align:left}.companion-says{font-weight:600;color:var(--accent)}.birth-words{display:grid;gap:6px}.questions{list-style:none;margin:0;padding:0;display:grid;gap:14px}.question{display:grid;grid-template-columns:32px 1fr;gap:12px;padding:14px 0 0;border-top:1px solid var(--line)}.question:first-child{border-top:0;padding-top:0}.question h3{font-size:1.05rem;margin:4px 0 10px}.question-index{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;font-weight:700;background:var(--accent-soft);color:var(--accent)}.question-answered .question-index{background:var(--accent);color:var(--accent-ink)}.question-locked .question-index{opacity:.5}.question-form{display:grid;gap:12px}.field{display:grid;gap:4px}.field input{font:inherit;padding:10px 12px;border-radius:10px;border:1px solid var(--line);background:var(--bg);color:var(--ink);max-width:420px}.answer p{margin:0 0 8px}.memories{list-style:none;margin:0;padding:0;display:grid;gap:8px}.memories li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:8px 0;border-bottom:1px solid var(--line)}.dossier{white-space:pre-wrap;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.85rem;background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:12px 14px;max-height:320px;overflow:auto}@media(max-width:640px){.researcher-card{grid-template-columns:1fr}.memories li{flex-direction:column;align-items:flex-start}}.conv-head{display:grid;gap:14px}.provider{border:1px solid var(--line);border-radius:12px;padding:10px 14px;margin:0;display:grid;gap:8px}.thread{list-style:none;margin:0 0 14px;padding:0;display:grid;gap:10px;max-height:52vh;overflow:auto}.thread-empty{text-align:center;padding:12px 0}.bubble{max-width:85%;padding:10px 14px;border-radius:16px;background:var(--accent-soft)}.bubble p{margin:4px 0 0;white-space:pre-wrap}.bubble-adoptant{justify-self:end;background:var(--bg);border:1px solid var(--line)}.bubble-compagnon{justify-self:start}.bubble-meta{display:flex;flex-wrap:wrap;gap:4px 6px;align-items:center}.bubble-meta .btn-small{min-height:24px;padding:0 8px;font-size:.75rem;margin-left:auto;border:0}.composer{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:end}.composer textarea,.field textarea{font:inherit;padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:var(--bg);color:var(--ink);resize:vertical;width:100%}@media(max-width:640px){.composer{grid-template-columns:1fr}.bubble{max-width:100%}}.passphrase{display:grid;gap:8px;margin:10px 0}.passphrase .field input{max-width:420px}.field input[type=file]{padding:8px 0;background:transparent;border:0}.restore-preview{margin-top:14px;padding-top:12px;border-top:1px dashed var(--line)}.restore-preview h3{font-size:1rem;margin:0 0 6px}.voice-panel{display:grid;gap:8px;margin:0 0 12px;padding:10px 12px;border:1px dashed var(--line);border-radius:12px}.voice-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}.consent{padding:10px 12px;background:var(--warn-bg);color:var(--warn-ink);border-radius:10px;display:grid;gap:8px}.consent .btn-primary{background:var(--warn-ink);border-color:var(--warn-ink);color:var(--warn-bg)}.bubble-actions{display:flex;gap:6px;margin-top:6px}.experience-form{margin-top:10px;padding:10px 12px;border-radius:12px;background:var(--bg);border:1px solid var(--line);display:grid;gap:10px}.experience-result{margin-top:8px;padding:8px 12px;border-radius:10px;background:var(--accent-soft)}.brand-sub{font-weight:500;letter-spacing:.04em}.genesis{max-width:100%;height:auto;border-radius:50%;box-shadow:0 0 0 1px var(--line)}.genesis-seed{animation:genesisSeed 6s ease-in-out infinite;transform-origin:120px 120px}.genesis-orbit{animation:genesisOrbit 6s linear infinite;transform-origin:120px 120px}.genesis-orbit-2{animation-duration:8s;animation-direction:reverse}.genesis-orbit-3{animation-duration:10s}.genesis-atom circle:first-child{animation:glow 3s ease-in-out infinite;transform-origin:120px 120px}.genesis-waves circle{animation:genesisWave 2.7s ease-out infinite;transform-origin:120px 120px}.genesis-stars circle{animation:genesisTwinkle 3s ease-in-out infinite}.genesis-blob{animation:genesisBreathe 5s ease-in-out infinite;transform-origin:120px 120px}.genesis-halo{animation:glow 2.4s ease-in-out infinite;transform-origin:120px 120px}.egg-stage-hatched .genesis{animation:hatch 2.2s ease-in forwards}@keyframes genesisSeed{0%,to{opacity:.35;transform:scale(.8)}50%{opacity:.9;transform:scale(1.2)}}@keyframes genesisOrbit{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes genesisWave{0%{transform:scale(.3);opacity:.9}to{transform:scale(5.5);opacity:0}}@keyframes genesisTwinkle{0%,to{opacity:.5}50%{opacity:1}}@keyframes genesisBreathe{0%,to{transform:scale(1) rotate(0)}50%{transform:scale(1.04) rotate(2deg)}}@media(prefers-reduced-motion:reduce){.genesis-seed,.genesis-orbit,.genesis-atom circle:first-child,.genesis-waves circle,.genesis-stars circle,.genesis-blob,.genesis-halo{animation:none}}.alert-info{background:var(--accent-soft, rgba(27, 106, 94, .12));color:var(--ink);border-color:transparent}.install-note{margin:12px 0;padding:12px 14px;border:1px dashed var(--line);border-radius:12px}.install-note p{margin:6px 0}.install-note .alert{margin:8px 0 0}textarea.report{width:100%;box-sizing:border-box;padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:var(--bg);color:var(--ink);margin-top:10px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.85rem}.steps{padding-left:1.3em;display:grid;gap:8px}.prologue{overflow:hidden}.prologue-dark{background:#0b0a12;color:#f1ecff;border-color:#221f33}.prologue-light{background:#fff;color:#3a3630;border-color:#f0ebe0;animation:light-return 1.6s ease-out both}@keyframes light-return{0%{background:#fff;color:transparent}to{background:#fff;color:#3a3630}}.details summary{cursor:pointer;font-weight:600}.details[open] summary{margin-bottom:8px}.researcher-stage{display:grid;grid-template-columns:140px 1fr;gap:14px;align-items:start;margin:6px 0 14px}.researcher-stage-small{grid-template-columns:96px 1fr}@media(max-width:480px){.researcher-stage{grid-template-columns:96px 1fr}.researcher-stage svg.researcher{width:96px;height:auto}}.researcher{animation:researcher-bob 4s ease-in-out infinite;transform-origin:50% 100%}@keyframes researcher-bob{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-3px) rotate(-1deg)}}.researcher-lid{animation:researcher-blink 5s infinite}@keyframes researcher-blink{0%,92%,to{height:0}95%{height:26px}}.researcher-hand{animation:researcher-wave 1.6s ease-in-out infinite;transform-origin:160px 190px}@keyframes researcher-wave{0%,to{transform:rotate(-6deg)}50%{transform:rotate(8deg)}}.bubble{position:relative;background:var(--bg);border:1px solid var(--line);border-radius:16px;padding:12px 14px;min-height:3.2em;cursor:pointer}.bubble:before{content:"";position:absolute;left:-9px;top:22px;width:14px;height:14px;background:var(--bg);border-left:1px solid var(--line);border-bottom:1px solid var(--line);transform:rotate(45deg)}.bubble p{margin:0;font-size:1.05rem;line-height:1.45}.prologue-light .bubble,.prologue-light .bubble:before{background:#fffdf7}.researcher-voice{margin:4px 0 10px}.scene{position:relative;display:grid;justify-items:center;gap:10px}.scene-svg{width:min(100%,360px);height:auto;border-radius:50%}.scene-caption{margin:0;font-size:1.05rem;text-align:center;min-height:1.6em;transition:opacity .6s}.scene-actions{justify-content:center}.prologue-dark .btn-ghost{color:#d9d2ff}.bb-point{animation:bb-pulse 1.2s ease-in-out infinite;transform-origin:160px 160px}@keyframes bb-pulse{0%,to{transform:scale(1);opacity:.7}50%{transform:scale(2);opacity:1}}.bb-ring,.bb-ring-2,.bb-core,.bb-particle,.bb-planet{opacity:0}.bigbang-step-1 .bb-point,.bigbang-step-2 .bb-point,.bigbang-step-3 .bb-point{animation:none;opacity:0}.bigbang-step-1 .bb-ring{animation:bb-ring 2.4s ease-out forwards}.bigbang-step-1 .bb-ring-2{animation:bb-ring 2.4s ease-out .4s forwards}.bigbang-step-1 .bb-core{animation:bb-core 2.4s ease-out forwards}.bigbang-step-1 .bb-particle,.bigbang-step-2 .bb-particle,.bigbang-step-3 .bb-particle{animation:bb-fly 2.2s ease-out forwards;transform-origin:160px 160px}@keyframes bb-ring{0%{transform:scale(.2);opacity:1;transform-origin:160px 160px}to{transform:scale(14);opacity:0;transform-origin:160px 160px}}@keyframes bb-core{0%{transform:scale(.1);opacity:0;transform-origin:160px 160px}30%{opacity:1}to{transform:scale(2.6);opacity:0;transform-origin:160px 160px}}@keyframes bb-fly{0%{transform:rotate(var(--angle)) translate(0);opacity:0}20%{opacity:1}to{transform:rotate(var(--angle)) translate(var(--dist));opacity:.9}}.bigbang-step-2 .bb-planet,.bigbang-step-3 .bb-planet{animation:bb-planet 2.6s ease-out forwards;transform-origin:160px 160px}.bigbang-step-3 .bb-planet{animation:bb-planet-spin 24s linear infinite;opacity:1}@keyframes bb-planet{0%{transform:scale(.1);opacity:0}to{transform:scale(1);opacity:1}}@keyframes bb-planet-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.scene-static .bb-planet{opacity:1;animation:none}.scene-static .bb-particle{opacity:.8;transform:rotate(var(--angle)) translate(var(--dist));transform-origin:160px 160px;animation:none}.scene-static .bb-point{animation:none;opacity:0}.lab{--px: 0;--py: 0;position:relative;border-radius:16px;overflow:hidden;background:#16262a;color:#eef4f2;padding-bottom:12px}.lab-layer{position:relative}.lab-back{position:absolute;inset:0 0 auto;height:220px;transform:translate(calc(var(--px) * -6px),calc(var(--py) * -3px));transition:transform .2s ease-out}.lab-mid{position:absolute;left:0;right:0;top:150px;height:90px;transform:translate(calc(var(--px) * -12px),calc(var(--py) * -5px));transition:transform .2s ease-out}.lab-svg{width:100%;height:100%;display:block}.lab-lamp{animation:lamp 2.2s ease-in-out infinite}@keyframes lamp{0%,to{opacity:.6}50%{opacity:1}}.lab-front{position:relative;display:grid;grid-template-columns:150px 1fr;gap:12px;align-items:start;padding:14px 14px 0;min-height:240px;transform:translate(calc(var(--px) * 4px),calc(var(--py) * 2px));transition:transform .2s ease-out}@media(max-width:480px){.lab-front{grid-template-columns:1fr;justify-items:center}}.lab-capsule{text-align:center}.lab-capsule .capsule{width:120px;height:auto;filter:drop-shadow(0 10px 18px rgba(0,0,0,.5))}.lab-capsule p{margin:4px 0 0;color:#9fd3cc}.lab-side .bubble,.lab-side .bubble:before{background:#1f3236;border-color:#3a5257}.lab-side .researcher-stage{margin:0}.materials{list-style:none;margin:12px 0 0;padding:0 12px;display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:8px;position:relative}.material{display:flex;align-items:center;gap:8px;width:100%;padding:6px 10px;border-radius:12px;border:1px solid #3a5257;background:#1f3236;color:#eef4f2;font:inherit;cursor:pointer;transition:transform .15s,border-color .15s,background .15s}.material:hover:not(:disabled){transform:translateY(-1px);border-color:#9fd3cc}.material:disabled{opacity:.45;cursor:not-allowed}.material-on{background:#2f6f6a;border-color:#bff3ea;box-shadow:0 0 0 2px #bff3ea59}.capsule-orb{animation:orb-drop .5s ease-out both}@keyframes orb-drop{0%{transform:translateY(-40px);opacity:0}to{transform:translateY(0);opacity:1}}.scene-compression{min-height:320px}.compression-stage .capsule{width:160px;height:auto;transition:filter 1.2s}.capsule-compressing .capsule-orb{animation:orb-compress 2.2s ease-in forwards}@keyframes orb-compress{0%{transform:translate(0) scale(1)}70%{transform:translate(var(--tx, 0),var(--ty, 0)) scale(.4);opacity:1}to{transform:translate(var(--tx, 0),var(--ty, 0)) scale(.05);opacity:.4}}.compression-black .compression-stage .capsule{filter:brightness(.15) contrast(1.4)}.compression-black .capsule-orb{opacity:0}.flash{position:absolute;inset:-40px;background:#fff;opacity:0;pointer-events:none;border-radius:16px}.compression-flash .flash{animation:flash-in .35s ease-out forwards}@keyframes flash-in{0%{opacity:0}to{opacity:1}}.scene-static .flash{opacity:1;animation:none}.scene-static .scene-actions,.compression-flash .scene-actions{position:relative;z-index:2}.compression-flash .scene-actions .btn-ghost{color:#3a3630}.genesis-veil{transition:opacity 1.5s ease-out}.materials-line{text-align:center;margin-top:-4px}@media(prefers-reduced-motion:reduce){.researcher,.researcher-lid,.researcher-hand,.bb-point,.lab-lamp,.capsule-orb{animation:none!important}}.advance-form{display:flex;flex-wrap:wrap;align-items:end;gap:10px;margin-top:10px}.advance-form .field{margin:0}.advance-form input[type=number]{width:110px}.advance-form select{font:inherit;padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:var(--bg);color:var(--ink)}.menu{position:relative;display:flex;gap:6px;align-items:center}.menu-panel{position:absolute;right:0;top:calc(100% + 6px);list-style:none;margin:0;padding:6px;background:var(--bg-elev);border:1px solid var(--line);border-radius:12px;box-shadow:0 10px 30px #00000026;min-width:180px;z-index:20}.menu-panel li a,.menu-panel li .link{display:block;padding:8px 10px;border-radius:8px;color:var(--ink);text-decoration:none;background:none;border:0;font:inherit;width:100%;text-align:left;cursor:pointer}.menu-panel li a:hover,.menu-panel li .link:hover{background:var(--accent-soft)}.back{margin:0 0 6px}.back a{color:var(--ink-soft);text-decoration:none}.back a:hover{text-decoration:underline}.action-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:10px}@media(min-width:640px){.action-grid{grid-template-columns:repeat(4,1fr)}}.action-tile{display:flex;flex-direction:column;gap:4px;width:100%;min-height:78px;padding:12px;border-radius:14px;border:1px solid var(--line);background:var(--bg);color:var(--ink);font:inherit;text-align:left;text-decoration:none;cursor:pointer;transition:transform .12s,border-color .12s}.action-tile:hover:not([aria-disabled=true]){transform:translateY(-1px);border-color:var(--accent)}.action-primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.action-primary .action-hint{color:var(--accent-ink);opacity:.85}.action-soon,.action-tile[aria-disabled=true]{opacity:.55;cursor:not-allowed}.action-label{font-weight:600;display:flex;gap:8px;align-items:center}.action-badge{background:var(--danger);color:#fff}.action-hint{font-size:.82rem;color:var(--ink-soft)}.advance-panel{margin-top:14px;padding:12px 14px;border:1px solid var(--line);border-radius:14px}.advance-panel h2{margin:0 0 4px;font-size:1.05rem}.advance-panel input[type=range]{width:100%;accent-color:var(--accent)}.companion-home{display:grid;justify-items:center;gap:8px}.companion-line{margin:0;font-size:1.1rem;text-align:center}.alive{position:relative;display:inline-block;touch-action:manipulation}.alive-touch{background:none;border:0;padding:0;cursor:pointer;border-radius:50%}.alive-touch:focus-visible{outline:3px solid var(--accent);outline-offset:4px}.alive .creature-body{transform-origin:100px 160px;animation:creature-breathe var(--breath, 3.8s) ease-in-out infinite}.alive .creature-lobes{transform-origin:100px 100px;animation:creature-sway calc(var(--breath, 3.8s) * 1.6) ease-in-out infinite}.alive .creature-lid{animation:creature-blink 4.6s infinite}@keyframes creature-breathe{0%,to{transform:scale(1)}50%{transform:scale(1.015,1.035)}}@keyframes creature-sway{0%,to{transform:rotate(-1.5deg)}50%{transform:rotate(1.5deg)}}@keyframes creature-blink{0%,93%,to{height:0}96%{height:14px}}.alive svg.creature{transform-origin:50% 70%;transition:transform .3s}.creature-hop svg.creature{animation:creature-hop .9s ease-out}.creature-tilt svg.creature{animation:creature-tilt 1.1s ease-in-out}.creature-wiggle svg.creature{animation:creature-wiggle .9s ease-in-out}.creature-peek svg.creature{animation:creature-peek 1.1s ease-in-out}.creature-poke svg.creature{animation:creature-poke .7s ease-out}@keyframes creature-hop{0%,to{transform:translateY(0)}35%{transform:translateY(-16px) scale(1.02,.98)}60%{transform:translateY(0) scale(.98,1.04)}}@keyframes creature-tilt{0%,to{transform:rotate(0)}40%{transform:rotate(-7deg)}70%{transform:rotate(4deg)}}@keyframes creature-wiggle{0%,to{transform:translate(0)}25%{transform:translate(-6px)}50%{transform:translate(6px)}75%{transform:translate(-3px)}}@keyframes creature-peek{0%,to{transform:scale(1)}50%{transform:scale(1.06) translateY(-4px)}}@keyframes creature-poke{0%{transform:scale(1)}30%{transform:scale(.9,1.1)}60%{transform:scale(1.08,.94)}to{transform:scale(1)}}.alive-bubble{position:absolute;top:-8px;left:50%;transform:translate(-50%,-100%);background:var(--bg);border:1px solid var(--line);border-radius:14px;padding:8px 12px;white-space:nowrap;box-shadow:0 6px 18px #0000001f;animation:bubble-in .3s ease-out;z-index:2}@keyframes bubble-in{0%{opacity:0;transform:translate(-50%,-90%)}to{opacity:1;transform:translate(-50%,-100%)}}.alive-calm .creature-body,.alive-calm .creature-lobes{animation-duration:6s}@media(prefers-reduced-motion:reduce){.alive .creature-body,.alive .creature-lobes,.alive svg.creature{animation:none!important}}
