:root{color:#26352b;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-synthesis:none;--fern-900:#264533;--fern-800:#31583f;--fern:#4a7c59;--fern-100:#e5efe5;--fern-050:#f1f6ef;--marigold:#f9a620;--marigold-soft:#fff3d9;--terracotta:#b7472a;--terracotta-soft:#f9e7df;--cream:#f5f3ed;--paper:#fffdf8;--ink:#26352b;--muted:#708077;--quiet:#9aa69e;--line:#dfe6dc;--line-strong:#cbd8ca;--ai:#79566d;--ai-soft:#f1e8ee;--surface-muted:#f1f4ef;--text:var(--ink);--purple:var(--ai);--purple-soft:var(--ai-soft);--orange:var(--marigold);--orange-soft:var(--marigold-soft);--card:var(--paper);--shadow-soft:0 12px 35px #26453312;--shadow-card:0 4px 18px #2645330f;background:#f5f3ed;font-family:DejaVu Sans,PingFang SC,Microsoft YaHei,system-ui,sans-serif;line-height:1.5}*{box-sizing:border-box}html{background:var(--cream);min-width:320px}body{background:radial-gradient(circle at 90% 0%, #f9a62014, transparent 28rem), var(--cream);min-width:320px;color:var(--ink);margin:0}body:before{z-index:-1;pointer-events:none;content:"";opacity:.22;background-image:radial-gradient(#4a7c5929 .7px,#0000 .7px);background-size:18px 18px;position:fixed;inset:0;-webkit-mask-image:linear-gradient(#000,#0000 78%);mask-image:linear-gradient(#000,#0000 78%)}button,input,select,textarea{font:inherit}button{cursor:pointer;border:0}button:disabled{cursor:not-allowed;opacity:.55}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:2px;outline:3px solid #f9a62066}.app-shell{min-height:100vh;display:flex}.sidebar{z-index:20;color:#f8fbf4;background:linear-gradient(155deg, #ffffff0f, transparent 36%), var(--fern-900);flex-direction:column;width:252px;padding:28px 17px 22px;display:flex;position:fixed;inset:0 auto 0 0;box-shadow:12px 0 35px #26453314}.brand{align-items:center;gap:11px;margin:0 11px 43px;display:flex}.brand-mark{width:38px;height:38px;color:var(--fern-900);background:var(--marigold);border:1px solid #f9a62099;border-radius:14px 14px 14px 5px;place-items:center;font-family:Georgia,DejaVu Serif,serif;font-size:21px;font-weight:700;display:grid;box-shadow:5px 7px #f9a62026}.brand b{color:#fffdf8;letter-spacing:-.03em;font-family:Georgia,DejaVu Serif,serif;font-size:19px;display:block}.brand small{color:#f0f9edad;margin-top:2px;font-size:10px;display:block}.desktop-nav{gap:7px;display:grid}.nav-item{color:#f1f9edad;border:1px solid #0000;border-radius:13px;align-items:center;gap:12px;padding:12px 14px;font-size:13px;text-decoration:none;transition:background .2s,color .2s,transform .2s;display:flex}.nav-item:hover{color:#fffdf8;background:#ffffff14;transform:translate(2px)}.nav-item.active{color:var(--fern-900);background:var(--marigold);border-color:#f9a62052;font-weight:700;box-shadow:0 7px 15px #f9a6201f}.sidebar-bottom{gap:13px;margin-top:auto;display:grid}.ai-button{color:#fffdf8;background:var(--ai);border:1px solid #f1e8ee59;border-radius:13px;justify-content:center;align-items:center;gap:8px;padding:12px;font-size:13px;font-weight:700;transition:transform .2s,background .2s;display:flex;box-shadow:0 8px 18px #18231c33}.ai-button:hover{background:#8b667d;transform:translateY(-1px)}.mode-switch{background:#ffffff14;border:1px solid #ffffff1a;border-radius:10px;padding:4px;display:flex}.mode-pill{color:#f1f9eda6;text-align:center;cursor:pointer;border-radius:7px;flex:1;padding:6px;font-size:11px}.mode-pill.selected{color:var(--fern-900);background:var(--paper);box-shadow:0 2px 6px #00000024}.mode-pill.selected.demo{color:#8d5510;background:var(--marigold-soft)}.text-button{color:#f1f9eda8;background:0 0;justify-content:center;align-items:center;gap:6px;font-size:11px;display:flex}.text-button:hover{color:var(--marigold)}.main{width:calc(100% - 252px);min-width:0;margin-left:252px}.topbar{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffdf8b8;border-bottom:1px solid #cbd8cab3;justify-content:space-between;align-items:center;min-height:94px;padding:23px clamp(24px,4vw,58px);display:flex}.topbar h1{color:var(--fern-900);letter-spacing:-.035em;margin:5px 0 0;font-family:Georgia,DejaVu Serif,serif;font-size:22px}.eyebrow{color:var(--fern);letter-spacing:.12em;text-transform:uppercase;font-size:10px;font-weight:800;line-height:1.3;display:inline-block}.mode-eyebrow.demo{color:#8d5510;background:var(--marigold-soft);letter-spacing:.04em;text-transform:none;border-radius:999px;padding:5px 8px}.top-actions{align-items:center;gap:15px;display:flex}.save-status{color:var(--muted);align-items:center;gap:6px;font-size:11px;display:flex}.icon-button{border:1px solid var(--line);width:36px;height:36px;color:var(--fern);background:var(--paper);border-radius:10px;place-items:center;transition:border-color .2s,color .2s,transform .2s;display:inline-grid}.icon-button:hover{border-color:var(--fern);color:var(--fern-900);transform:translateY(-1px)}.icon-button.danger:hover{border-color:var(--terracotta);color:var(--terracotta)}.page-content{width:min(1220px,100%);margin:0 auto;padding:40px clamp(18px,4vw,58px) 70px}.stack-lg{gap:25px;display:grid}.welcome-row,.page-intro{justify-content:space-between;align-items:flex-end;gap:25px;display:flex}.welcome-row{padding:4px 0 2px;position:relative;overflow:hidden}.welcome-row:after{content:"";pointer-events:none;border:1px solid #4a7c5929;border-radius:57% 43% 58% 42%;width:140px;height:140px;position:absolute;bottom:-48px;right:8%;transform:rotate(28deg)}.welcome-row h2,.page-intro h2{color:var(--fern-900);letter-spacing:-.045em;margin:7px 0 6px;font-family:Georgia,DejaVu Serif,serif;font-size:clamp(26px,3vw,34px);line-height:1.13}.muted{color:var(--muted);margin:0;font-size:12px;line-height:1.75}.primary-button,.secondary-button{border-radius:10px;justify-content:center;align-items:center;gap:8px;min-height:39px;padding:10px 16px;font-size:12px;font-weight:800;transition:transform .2s,box-shadow .2s,background .2s,border-color .2s;display:inline-flex}.primary-button{color:#fffdf8;background:var(--fern);box-shadow:0 8px 18px #4a7c592e}.primary-button:hover{background:var(--fern-800);transform:translateY(-1px);box-shadow:0 10px 21px #4a7c593d}.secondary-button{border:1px solid var(--line-strong);color:var(--fern-800);background:#fffdf8cc}.secondary-button:hover{border-color:var(--fern);background:var(--fern-050);transform:translateY(-1px)}.link-button{color:var(--fern);background:0 0;padding:4px;font-size:11px;font-weight:800}.link-button:hover{color:var(--terracotta)}.metric-grid{grid-template-columns:repeat(4,1fr);gap:13px;display:grid}.metric-card{border:1px solid var(--line);min-width:0;box-shadow:var(--shadow-card);background:#fffdf8e6;border-radius:15px;align-items:flex-start;gap:12px;padding:17px;display:flex}.metric-icon{border-radius:12px;flex:none;place-items:center;width:37px;height:37px;display:grid}.metric-icon.orange{color:#a96600;background:var(--marigold-soft)}.metric-icon.blue{color:var(--fern-800);background:var(--fern-100)}.metric-icon.green{color:var(--fern);background:#e2f0e4}.metric-icon.purple{color:var(--ai);background:var(--ai-soft)}.metric-label{color:var(--muted);font-size:11px;display:block}.metric-card strong{color:var(--fern-900);letter-spacing:-.04em;margin:4px 0;font-family:Georgia,DejaVu Serif,serif;font-size:21px;line-height:1.15;display:block}.metric-card small{color:var(--quiet);font-size:10px;line-height:1.5;display:block}.two-col{grid-template-columns:repeat(2,minmax(0,1fr));gap:17px;display:grid}.panel{border:1px solid var(--line);min-width:0;box-shadow:var(--shadow-card);background:#fffdf8eb;border-radius:16px;padding:22px}.panel-head{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:17px;display:flex}.panel h3{color:var(--fern-900);letter-spacing:-.03em;margin:4px 0;font-family:Georgia,DejaVu Serif,serif;font-size:18px;line-height:1.25}.panel-head>svg{color:var(--fern)}.quick-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;display:grid}.quick-grid button{border:1px solid var(--line);color:var(--ink);background:var(--surface-muted);text-align:left;border-radius:12px;gap:7px;padding:16px;transition:border-color .2s,background .2s,transform .2s;display:grid}.quick-grid button:hover{border-color:var(--fern);background:var(--fern-050);transform:translateY(-2px)}.quick-icon{border-radius:9px;place-items:center;width:29px;height:29px;display:grid}.quick-icon.orange{color:#a96600;background:var(--marigold-soft)}.quick-icon.purple{color:var(--ai);background:var(--ai-soft)}.quick-grid b{font-size:13px}.quick-grid small{color:var(--muted);font-size:10px}.task-row{border-top:1px solid var(--line);align-items:center;gap:11px;padding:12px 0;display:flex}.task-row>div{flex:1;min-width:0}.task-row b{color:var(--ink);font-size:12px;display:block}.task-row small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin-top:3px;font-size:10px;line-height:1.5;display:block;overflow:hidden}.task-dot{border:2px solid var(--fern);background:var(--fern-100);border-radius:50%;flex:none;width:9px;height:9px}.tag{color:var(--muted);background:var(--surface-muted);white-space:nowrap;border-radius:999px;align-items:center;gap:5px;padding:4px 8px;font-size:10px;line-height:1.2;display:inline-flex}.green-tag{color:var(--fern-800);background:var(--fern-100)}.orange-tag{color:#9c5d00;background:var(--marigold-soft)}.purple-tag{color:var(--ai);background:var(--ai-soft)}.notice{color:var(--fern-800);background:var(--fern-050);border:1px solid #d8e5d7;border-radius:13px;align-items:flex-start;gap:13px;padding:16px 18px;display:flex}.notice-icon{width:30px;height:30px;color:var(--fern);background:var(--fern-100);border-radius:9px;flex:none;place-items:center;display:grid}.notice b{font-size:12px}.notice p{color:var(--muted);margin:3px 0 0;font-size:11px;line-height:1.65}.timeline{position:relative}.timeline:before{content:"";background:var(--line-strong);width:1px;position:absolute;top:15px;bottom:15px;left:4px}.timeline .task-row{position:relative}.timeline .task-dot{z-index:1;background:var(--paper)}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.form-grid label{color:var(--muted);gap:6px;font-size:11px;display:grid}.form-grid input,.form-grid select,.panel textarea,.chat-input-row textarea,.diff-card input,.diff-card select{border:1px solid var(--line);width:100%;min-height:39px;color:var(--ink);background:#fffefb;border-radius:9px;padding:9px 11px;font-size:12px;transition:border-color .2s,box-shadow .2s}.form-grid input:focus,.form-grid select:focus,.panel textarea:focus,.chat-input-row textarea:focus,.diff-card input:focus,.diff-card select:focus{border-color:var(--fern);outline:0;box-shadow:0 0 0 3px #4a7c591a}.panel textarea,.chat-input-row textarea{resize:vertical}.span-2{grid-column:span 2}.consent{align-items:center;color:var(--muted)!important;gap:7px!important;display:flex!important}.consent input,.consent-line input{min-height:auto;accent-color:var(--fern);width:auto!important}.success-message,.error-message{border-radius:9px;margin-top:13px;padding:10px 12px;font-size:11px}.success-message{color:var(--fern-800);background:var(--fern-100)}.error-message{color:var(--terracotta);background:var(--terracotta-soft)}.inline-status{border-radius:10px;align-items:center;gap:8px;padding:11px 14px;font-size:11px;display:flex}.inline-status.warning{color:#9c5d00;background:var(--marigold-soft)}.inline-status.success{color:var(--fern-800);background:var(--fern-100)}.helper{color:var(--quiet);margin:10px 0 0;font-size:10px;line-height:1.6}.consent-line{align-items:center;gap:6px;display:flex}.nutrition-summary{background:linear-gradient(145deg,#fffdf8 0%,#fff6df 100%);min-height:100%}.nutrition-summary h3{color:var(--terracotta);letter-spacing:-.05em;margin:27px 0 15px;font-family:Georgia,DejaVu Serif,serif;font-size:34px}.macro-row{color:var(--muted);flex-wrap:wrap;gap:14px;font-size:11px;display:flex}.macro-row b{color:var(--ink);margin-left:4px}.upload-button{position:relative}.upload-button input{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.candidate-row{border-top:1px solid var(--line);grid-template-columns:minmax(0,1fr) 120px minmax(180px,1.2fr);align-items:center;gap:10px;padding:10px 0;display:grid}.candidate-row input{border:1px solid var(--line);min-height:36px;color:var(--ink);background:#fffefb;border-radius:8px;padding:8px 10px;font-size:12px}.candidate-row small{color:var(--muted);font-size:10px}.meal-row,.trace-row{border-top:1px solid var(--line);align-items:center;gap:12px;padding:13px 0;display:flex}.meal-badge{width:30px;height:30px;color:var(--terracotta);background:var(--terracotta-soft);border-radius:9px;flex:none;place-items:center;font-size:11px;font-weight:800;display:grid}.meal-main,.trace-row>div{flex:1;min-width:0}.meal-main b,.trace-row b{color:var(--ink);font-size:12px;display:block}.meal-main small,.trace-row small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin-top:3px;font-size:10px;display:block;overflow:hidden}.empty-state{min-height:110px;color:var(--muted);text-align:center;align-content:center;place-items:center;font-size:11px;display:grid}.empty-state p{margin:8px 0 0}.empty-icon{color:var(--line-strong);font-size:28px}.calendar-strip{grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;display:grid}.calendar-day{border:1px solid var(--line);min-width:0;color:var(--muted);background:var(--surface-muted);text-align:center;border-radius:11px;gap:6px;padding:11px 7px;transition:border-color .2s,background .2s,transform .2s;display:grid}.calendar-day:hover{border-color:var(--fern);transform:translateY(-1px)}.calendar-day.selected{border-color:var(--fern);color:#fffdf8;background:var(--fern);box-shadow:0 7px 14px #4a7c5929}.calendar-day b{font-size:12px}.calendar-day small,.calendar-day span{text-overflow:ellipsis;white-space:nowrap;font-size:9px;overflow:hidden}.calendar-day span{color:var(--fern)}.calendar-day.selected span{color:var(--marigold-soft)}.button-row{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:9px;display:flex}.full-button{width:100%;margin-top:10px}.proposal-rationale{background:var(--ai-soft);border:1px solid #e2d5de;border-radius:10px;margin-bottom:14px;padding:13px}.proposal-rationale b{color:var(--ai);font-size:12px}.proposal-rationale p{color:var(--muted);margin:6px 0 0;font-size:10px;line-height:1.6}.diff-card{border:1px solid var(--line);background:#fffdf8bf;border-radius:11px;margin-bottom:15px;padding:13px}.diff-card>div:first-child{color:var(--muted);justify-content:space-between;gap:10px;font-size:10px;display:flex}.diff-card>div:first-child b,.diff-card>b{color:var(--ink);font-size:12px}.diff-values{align-items:center;gap:8px;margin:10px 0;display:flex}.diff-values span{color:var(--muted);background:var(--surface-muted);border-radius:7px;padding:6px 10px;font-size:12px}.diff-values .new-value{color:var(--fern-800);background:var(--fern-100)}.diff-card small{color:var(--muted);font-size:10px;line-height:1.55}.settings-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.setting-card{align-items:flex-start;gap:14px;display:flex}.setting-card h3{margin:0 0 6px}.setting-card p{color:var(--muted);margin:0 0 10px;font-size:11px;line-height:1.7}.setting-icon{width:37px;height:37px;color:var(--fern);background:var(--fern-100);border-radius:11px;flex:none;place-items:center;display:grid}.safe-list{color:var(--muted);padding-left:20px;font-size:12px;line-height:2}.safe-list li::marker{color:var(--fern)}.onboarding{background:radial-gradient(circle at 15% 10%, #4a7c5924, transparent 34%), radial-gradient(circle at 88% 85%, #f9a6201f, transparent 28%), var(--cream);place-items:center;min-height:100vh;padding:30px 18px;display:grid}.onboarding-card{border:1px solid var(--line);background:#fffdf8f2;border-radius:22px;width:min(660px,100%);padding:38px 42px 42px;box-shadow:0 24px 65px #2645331f}.onboarding-card .brand{margin:0 0 31px}.onboarding-card .brand b{color:var(--fern-900)}.onboarding-card .brand small{color:var(--muted)}.progress-steps{align-items:center;gap:8px;margin-bottom:32px;display:flex}.progress-steps i{background:var(--line-strong);flex:1;height:1px}.step{border:1px solid var(--line);width:26px;height:26px;color:var(--quiet);background:var(--surface-muted);border-radius:50%;place-items:center;font-size:10px;display:grid}.step.done,.step.current{color:var(--fern-800);background:var(--fern-100);border-color:#4a7c594d}.onboarding-card h1{color:var(--fern-900);letter-spacing:-.045em;margin:8px 0;font-family:Georgia,DejaVu Serif,serif;font-size:29px;line-height:1.2}.onboarding-card>.muted{margin-bottom:25px}.loading-screen{min-height:100vh;color:var(--fern);background:var(--cream);place-items:center;font-size:13px;display:grid}.drawer-backdrop{z-index:100;background:#26453361;justify-content:flex-end;display:flex;position:fixed;inset:0}.ai-drawer{background:var(--paper);width:min(430px,100%);height:100%;padding:28px 25px;overflow:hidden;box-shadow:-14px 0 40px #2645332e}.chat-coach{flex-direction:column;gap:14px;height:100%;min-height:520px;display:flex}.chat-toolbar{justify-content:space-between;align-items:flex-start;display:flex}.chat-toolbar h3{color:var(--ai);margin:5px 0 0;font-family:Georgia,DejaVu Serif,serif;font-size:22px}.chat-conversation-list,.chat-quick-actions{gap:8px;padding-bottom:2px;display:flex;overflow-x:auto}.chat-conversation,.chip-button{border:1px solid var(--line);color:var(--text);background:var(--surface-muted);white-space:nowrap;cursor:pointer;border-radius:999px;padding:7px 10px;font-size:10px}.chat-conversation.active,.chip-button:hover{border-color:var(--ai);color:var(--ai);background:var(--ai-soft)}.chat-messages{flex-direction:column;flex:1;gap:10px;min-height:180px;max-height:360px;padding:4px;display:flex;overflow-y:auto}.chat-message{border:1px solid var(--line);max-width:90%;color:var(--ink);background:var(--surface-muted);border-radius:14px 14px 14px 4px;padding:10px 12px;font-size:12px}.chat-message.user{background:var(--ai-soft);border-color:#e1d1dd;border-radius:14px 14px 4px;align-self:flex-end}.chat-message.tool{color:var(--muted);background:#f7f7f1}.chat-message p{white-space:pre-wrap;margin:4px 0 0;line-height:1.6}.chat-role{color:var(--muted);font-size:10px}.chat-consent{flex-direction:column;gap:4px;display:flex}.chat-consent small{color:var(--quiet);font-size:10px}.chat-input-row{align-items:flex-end;gap:8px;display:flex}.chat-input-row textarea{flex:1;min-height:54px}.chat-input-row .primary-button{min-width:43px;padding:10px}.chat-empty-icon{color:var(--muted);align-items:center;gap:6px;font-size:11px;display:flex}.proposal-card{background:var(--ai-soft);border:1px solid #ddcbd8;border-radius:14px;flex-direction:column;gap:8px;padding:12px;display:flex}.proposal-card>div:first-child{gap:4px;display:grid}.proposal-card>div:first-child b{color:var(--ai);font-size:12px}.proposal-card small{color:var(--muted);font-size:10px;line-height:1.55}.spin{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.mobile-nav{display:none}@media (width<=1050px){.sidebar{width:220px}.main{width:calc(100% - 220px);margin-left:220px}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=720px){body{padding-bottom:78px}.sidebar{display:none}.main{width:100%;margin-left:0}.topbar{min-height:76px;padding:17px}.topbar h1{font-size:18px}.save-status{display:none}.page-content{padding:27px 15px 35px}.welcome-row,.page-intro{align-items:start;gap:17px;display:grid}.welcome-row h2,.page-intro h2{font-size:27px}.welcome-row:after{bottom:-75px;right:-15px}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.metric-card{gap:9px;padding:13px 11px}.metric-icon{border-radius:10px;width:31px;height:31px}.metric-card strong{font-size:16px}.metric-label,.metric-card small{font-size:9px}.two-col,.settings-grid{grid-template-columns:1fr}.panel{padding:17px}.panel h3{font-size:17px}.form-grid{gap:12px}.calendar-strip{grid-template-columns:repeat(4,minmax(0,1fr))}.candidate-row{grid-template-columns:minmax(0,1fr) 88px}.candidate-row small{grid-column:span 2}.secondary-button,.primary-button{width:100%}.panel-head>.primary-button,.panel-head>.secondary-button,.panel-head>.button-row .primary-button,.panel-head>.button-row .secondary-button{width:auto}.button-row{justify-content:flex-start}.mobile-nav{z-index:90;padding:8px 7px calc(8px + env(safe-area-inset-bottom));border-top:1px solid var(--line);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#fffdf8f0;grid-template-columns:repeat(5,1fr);gap:2px;display:grid;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -8px 25px #2645331a}.mobile-nav .nav-item{color:var(--muted);border:0;border-radius:10px;justify-items:center;gap:3px;padding:5px 2px;font-size:9px;display:grid}.mobile-nav .nav-item:hover{color:var(--fern);background:var(--fern-050);transform:none}.mobile-nav .nav-item.active{color:var(--fern-900);background:var(--fern-100);box-shadow:none}.ai-drawer{width:100%;height:min(88vh,760px);padding:21px 17px calc(15px + env(safe-area-inset-bottom));border-radius:24px 24px 0 0}.drawer-backdrop{align-items:flex-end}.chat-coach{min-height:0}.chat-messages{max-height:none}.onboarding{padding:20px 12px}.onboarding-card{border-radius:18px;padding:29px 21px 25px}.onboarding-card h1{font-size:25px}}@media (width<=380px){.metric-grid{grid-template-columns:1fr}.metric-card{align-items:center}.calendar-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.topbar h1{font-size:16px}.page-content{padding-left:12px;padding-right:12px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.companion-app{--fern-900:#173e45;--fern-800:#1d5660;--fern:#237781;--fern-100:#e4f0ec;--fern-050:#f1f7f3;--marigold:#f3c777;--marigold-soft:#fff4dc;--cream:#f4f3ee;--paper:#fffefa;--ink:#21383a;--muted:#62797a;--line:#e1e9e4;--line-strong:#c5d9d4;--ai:#366ae1;--ai-soft:#eaf0ff;--text:var(--ink);color:var(--ink);background:var(--cream)}.companion-app .sidebar{width:208px;box-shadow:none;background:#153d44;padding:30px 18px 24px}.companion-app .main{width:calc(100% - 208px);margin-left:208px}.companion-app .brand{margin:0 8px 51px}.companion-app .brand-mark{color:#173e45;width:37px;height:37px;box-shadow:none;background:#e9d5a3;border:0;border-radius:50%;font-style:italic}.companion-app .brand b{letter-spacing:-.06em;font-family:Georgia,serif;font-size:22px}.companion-app .brand small{letter-spacing:.16em;font-size:8px}.companion-app .desktop-nav{gap:6px}.companion-app .nav-item{border-radius:8px;padding:12px 14px;font-size:13px}.companion-app .nav-item.active{color:#f5e3b5;box-shadow:none;background:#ffffff17;border-color:#ebe4c147}.companion-app .sidebar-bottom{gap:17px}.sidebar-quote{border-top:1px solid #ffffff2e;padding:18px 12px 15px}.sidebar-quote span{color:#acd8d0;letter-spacing:.2em;font:700 9px DM Sans,sans-serif}.sidebar-quote p{color:#f5eee1;margin:10px 0 0;font:italic 15px/1.6 Georgia,serif}.companion-app .ai-button{box-shadow:none;background:0 0;border:1px solid #aacdd366;border-radius:8px;padding:11px;font-size:11px;font-weight:500}.companion-app .ai-button:hover{background:#ffffff1f}.companion-app .topbar{-webkit-backdrop-filter:none;backdrop-filter:none;background:#fffefa;border-bottom:1px solid #dfe8e3;min-height:79px;padding:17px 38px}.companion-app .topbar h1{margin-top:2px;font-size:19px}.companion-app .eyebrow{color:#438588}.companion-app .topbar .eyebrow{letter-spacing:.15em;font-size:9px}.companion-app .page-content{width:min(1230px,100%);padding:34px 42px 70px}.companion-app .page-content:has(.companion-home){width:100%;max-width:none;padding:0}.companion-app .panel,.companion-app .metric-card{box-shadow:none;border-radius:10px}.companion-app .panel{min-width:0}.companion-app .helper{overflow-wrap:anywhere}.companion-app .page-intro h2,.companion-app .welcome-row h2{font-size:clamp(30px,3vw,42px)}.companion-app .primary-button{background:#1c6771}.companion-app .primary-button:hover{background:#154d56}.companion-app .nutrition-summary{background:#fff6e5}.companion-app .icon-button{border-radius:50%}.soul-onboarding{color:#e7f4ed;background:radial-gradient(circle at 28% 48%,#276b72 0%,#0000 34%),linear-gradient(128deg,#0e343c,#163d48 58%,#285a61);min-height:100vh;padding:27px clamp(22px,4vw,80px) 35px}body:has(.soul-onboarding){background:#123d44;padding-bottom:0}.soul-onboarding-top{color:#a6c8c4;letter-spacing:.16em;justify-content:space-between;align-items:center;font:600 11px DM Sans,sans-serif;display:flex}.soul-logo{color:#f8f4e7;letter-spacing:-.04em;font:700 21px Georgia,serif}.soul-logo span{color:#eacb8d}.soul-onboarding-layout{grid-template-columns:minmax(0,1.1fr) minmax(390px,.9fr);align-items:center;gap:clamp(20px,4vw,70px);max-width:1500px;min-height:calc(100vh - 80px);margin:auto;display:grid}.soul-onboarding-art{place-items:center;min-height:570px;display:grid;position:relative}.soul-onboarding-art:before{aspect-ratio:1;content:"";border:1px solid #eff3da1c;border-radius:50%;width:min(82%,640px);position:absolute;box-shadow:0 0 0 62px #ffffff05,0 0 0 132px #ffffff03}.soul-onboarding-art p{color:#bdcfca;letter-spacing:.06em;margin:0;font:italic 17px Georgia,serif;position:absolute;bottom:6%}.soul-orbit-label{color:#aed0c9;letter-spacing:.28em;font:600 9px DM Sans,sans-serif;position:absolute;top:5%;left:8%}.soul-question{max-width:550px;padding:24px 0 40px}.soul-progress{color:#a9ccc5;letter-spacing:.16em;white-space:nowrap;align-items:center;gap:22px;margin-bottom:clamp(36px,7vh,70px);font:700 10px DM Sans,sans-serif;display:flex}.soul-progress div{background:#ffffff2b;flex:1;height:2px}.soul-progress i{background:#ecca8b;height:100%;transition:width .35s;display:block}.soul-kicker{color:#edce95;letter-spacing:.23em;font:700 11px DM Sans,sans-serif}.soul-question h1{color:#fbfaf1;letter-spacing:-.055em;margin:21px 0 16px;font:clamp(45px,5.3vw,79px)/1.09 Georgia,Noto Serif SC,serif}.soul-question h1 em{color:#eecf93;font-weight:400}.soul-question>p{color:#c4d8d2;max-width:490px;margin:0 0 32px;font-size:14px;line-height:1.8}.soul-options{gap:10px;display:grid}.soul-options button{color:#e9f5ee;text-align:left;background:#ffffff0e;border:1px solid #d9f0e838;border-radius:8px;justify-content:space-between;align-items:center;min-height:58px;padding:12px 18px;font-size:15px;transition:background .2s,border-color .2s,transform .2s;display:flex}.soul-options button:hover,.soul-options button.selected{background:#ecd7aa26;border-color:#eacb8d;transform:translate(3px)}.soul-options button b{font-weight:600;display:block}.soul-options button small{color:#bdd2c9;margin-top:3px;font-size:11px;display:block}.soul-input{color:#fff;background:0 0;border:0;border-bottom:1px solid #d9f0e866;border-radius:0;outline:none;width:100%;margin-top:14px;padding:16px 2px;font-size:15px}.soul-input::placeholder{color:#89ada9}.soul-input-large{margin-top:22px;font:italic 31px Georgia,serif}.soul-choice-label{color:#b6d5ce;margin:24px 0 11px;font-size:12px}.soul-segment{flex-wrap:wrap;gap:9px;display:flex}.soul-segment button{color:#e8f4eb;background:#ffffff0d;border:1px solid #d9f0e840;border-radius:30px;min-width:80px;padding:11px 17px;font-size:12px}.soul-segment button.selected{color:#173e45;background:#eacb8d;border-color:#eacb8d}.soul-health-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.soul-health-grid label{color:#bed2cc;font-size:11px}.soul-health-grid input,.soul-health-grid select{color:#fff;background:#21515a;border:1px solid #d9f0e83d;border-radius:6px;outline-color:#eacb8d;width:100%;min-height:42px;margin-top:5px;padding:8px 11px;display:block}.soul-health-grid option{color:#173e45;background:#fff}.soul-check{color:#c9d9d2;align-items:center;gap:8px;margin-top:17px;font-size:11px;display:flex}.soul-check input,.soul-consent input{accent-color:#eacb8d;width:17px;height:17px}.soul-consent{background:#ffffff12;border:1px solid #d9f0e83d;border-radius:8px;align-items:flex-start;gap:14px;padding:18px;display:flex}.soul-consent svg{color:#edce95;flex:none}.soul-consent div{flex:1}.soul-consent b,.soul-consent small{display:block}.soul-consent b{margin-bottom:4px;font-size:13px}.soul-consent small{color:#b9d1cc;font-size:11px;line-height:1.7}.soul-error{color:#ffe1a5;margin-top:14px;font-size:12px}.soul-onboarding-actions{justify-content:space-between;align-items:center;gap:20px;margin-top:34px;display:flex}.soul-back,.soul-next{justify-content:center;align-items:center;gap:10px;min-height:47px;font-size:12px;font-weight:700;display:inline-flex}.soul-back{color:#bdd3cc;background:0 0}.soul-back:disabled{opacity:.3}.soul-next{color:#183e45;background:#eacb8d;border-radius:5px;min-width:130px;padding:10px 20px}.soul-next:hover{background:#f7dfab}.soul-avatar{aspect-ratio:1;color:#d0eee7;isolation:isolate;width:min(100%,540px);position:relative}.soul-halo{filter:blur(28px);background:radial-gradient(circle,#b5efdf66,#56b7b51c 55%,#0000 70%);border-radius:50%;animation:5s ease-in-out infinite soul-pulse;position:absolute;inset:14%}.soul-form{filter:drop-shadow(0 24px 32px #08333c47);width:100%;height:100%;animation:6s ease-in-out infinite soul-float;position:relative;overflow:visible}.soul-body{transform-origin:260px 260px;animation:4.7s ease-in-out infinite soul-breathe}.soul-spark .soul-body{fill:url(#soulSpark)}.soul-leaf .soul-body{fill:url(#soulLeaf)}.soul-spark .soul-sprout{fill:#ffdfaf;transform-origin:258px 112px;transform:rotate(20deg)}.soul-tide .soul-sprout,.soul-emerging .soul-face,.soul-emerging .soul-sprout{opacity:0}.soul-emerging .soul-body{opacity:.85;filter:blur(4px)}.soul-orbit{transform-origin:260px 260px;animation:25s linear infinite soul-rotate}.soul-orbit-two{animation-duration:32s;animation-direction:reverse}.soul-particle{animation:3s ease-in-out infinite soul-twinkle}.soul-particle-two{animation-delay:1s}.soul-particle-three{animation-delay:2s}.soul-celebrate .soul-form{animation-duration:2.6s}.soul-rest .soul-form{animation-duration:9s}.soul-floor{filter:blur(8px);background:#21515847;border-radius:50%;height:10px;position:absolute;bottom:8%;left:22%;right:22%}@keyframes soul-breathe{50%{transform:scale(1.025,.985)}}@keyframes soul-float{50%{transform:translateY(-13px)}}@keyframes soul-pulse{50%{opacity:.68;transform:scale(1.08)}}@keyframes soul-rotate{to{transform:rotate(360deg)}}@keyframes soul-twinkle{50%{opacity:.25;transform:scale(.65)}}.companion-home{background:#f6f5ef;grid-template-columns:minmax(0,1.55fr) minmax(320px,.8fr);min-height:calc(100vh - 79px);display:grid}.companion-stage{color:#e9f3ed;background:radial-gradient(circle at 50% 25%,#356f75 0%,#0000 43%),linear-gradient(160deg,#153f47,#255861 75%,#326970);flex-direction:column;min-width:0;padding:28px clamp(28px,4vw,75px) 37px;display:flex;position:relative;overflow:hidden}.scene-morning{background:radial-gradient(circle at 50% 25%,#669c91 0%,#0000 43%),linear-gradient(160deg,#285f69,#4a8c86 75%,#6d9b86)}.scene-day{background:radial-gradient(circle at 50% 25%,#4c8e8b 0%,#0000 43%),linear-gradient(160deg,#1b5360,#39777b 75%,#5d8f88)}.stage-top{z-index:1;color:#c5ded4;letter-spacing:.18em;justify-content:space-between;gap:16px;font:700 10px DM Sans,sans-serif;display:flex;position:relative}.stage-art{flex:1;place-items:center;min-height:320px;display:grid;position:relative}.stage-aurora{aspect-ratio:1;opacity:.12;filter:blur(45px);background:#a0cbb5;border-radius:50%;width:65%;position:absolute}.stage-art .soul-avatar{width:min(100%,420px)}.stage-caption{color:#c0d7cd;writing-mode:vertical-rl;font:italic 12px Georgia,serif;position:absolute;bottom:10%;right:0}.stage-dialogue{z-index:1;max-width:650px;position:relative}.stage-speak-label{color:#e5d4a9;letter-spacing:.09em;font-size:11px;font-weight:700}.live-dot{background:#e5d4a9;border-radius:50%;width:7px;height:7px;margin-right:8px;display:inline-block;box-shadow:0 0 0 5px #e5d4a91f}.stage-dialogue h2{color:#fffdf2;letter-spacing:-.035em;margin:16px 0 10px;font:clamp(28px,3vw,43px)/1.36 Georgia,Noto Serif SC,serif}.stage-dialogue p{color:#c6ded4;min-height:22px;margin:0;font-size:13px;line-height:1.65}.stage-actions{flex-wrap:wrap;gap:10px;margin:23px 0;display:flex}.stage-actions button{color:#c6d8ff;background:#132e4747;border:1px solid #88b0ff8f;border-radius:4px;align-items:center;gap:10px;min-height:38px;padding:8px 13px;font-size:12px;font-weight:700;display:inline-flex}.stage-actions button:hover{color:#fff;background:#4169ba}.stage-composer{background:#ffffff1f;border:1px solid #ddeee245;border-radius:7px;align-items:center;gap:10px;min-height:59px;padding:7px;display:flex}.stage-composer input{color:#fff;background:0 0;border:0;outline:0;flex:1;min-width:0;font-size:13px}.stage-composer input::placeholder{color:#bad2cb}.stage-camera,.stage-send{color:#d9ebe2;background:0 0;border-radius:4px;flex:none;place-items:center;width:40px;height:40px;display:grid}.stage-send{color:#183f48;background:#eacb8d}.stage-send:disabled{opacity:.45}.stage-consent{color:#bfd7ce;flex-wrap:wrap;align-items:center;gap:8px 14px;margin:12px 0 0;font-size:12px;display:flex}.stage-consent>button{color:#c6d8ff;text-underline-offset:3px;align-items:center;gap:5px;font-weight:700;text-decoration:underline;display:inline-flex}.stage-consent-detail{background:#0b2c34b8;border:1px solid #ddeee24d;border-radius:7px;width:100%;padding:15px}.stage-consent-detail p{margin:0 0 12px;line-height:1.6}.stage-consent-detail button{color:#1b4148;background:#eacb8d;border-radius:4px;min-height:36px;margin-right:10px;padding:7px 12px;font-weight:700}.stage-consent-detail button:last-child{color:#d7e5df;background:0 0}.companion-journal{background:#f6f5ef;padding:clamp(32px,4vw,68px) clamp(25px,3vw,58px)}.journal-eyebrow{color:#548187;letter-spacing:.22em;font:700 10px DM Sans,sans-serif}.journal-head h2{color:#1b4248;letter-spacing:-.05em;margin:18px 0 15px;font:clamp(32px,3.2vw,48px)/1.18 Georgia,Noto Serif SC,serif}.journal-head h2 em{color:#a77342;font-weight:400}.journal-head p{color:#71817d;margin:0 0 42px;font-size:12px;line-height:1.9}.journal-status{border-top:1px solid #cddbd4;justify-content:space-between;align-items:center;gap:12px;padding:20px 0;display:flex}.journal-status span,.journal-status b{display:block}.journal-status span{color:#6c9695;letter-spacing:.07em;margin-bottom:9px;font:700 10px DM Sans,sans-serif}.journal-status b{color:#21444b;font-size:16px}.journal-status button{color:#1b4e59;background:#e2ede7;border-radius:50%;place-items:center;width:32px;height:32px;display:grid}.journal-memory{background:#edece4;border-left:2px solid #b89564;margin:31px 0;padding:24px 22px}.journal-memory span{color:#71817d;font-size:10px}.journal-memory blockquote{color:#345258;margin:12px 0 14px;font:italic 20px/1.55 Georgia,Noto Serif SC,serif}.journal-memory button,.journal-link button{color:#316b82;background:0 0;align-items:center;gap:7px;padding:0;font-size:11px;font-weight:700;display:inline-flex}.journal-week{border-top:1px solid #cddbd4;border-bottom:1px solid #cddbd4;margin:24px 0 20px;padding:19px 0 22px}.journal-week>span{color:#548187;font-size:11px;font-weight:700}.journal-week>div{grid-template-columns:repeat(7,1fr);gap:7px;margin:18px 0 10px;display:grid}.journal-week>div>div{justify-items:center;gap:8px;display:grid}.journal-week i{background:#e7efeb;border:1px solid #bad0cb;border-radius:50%;width:17px;height:17px;display:block}.journal-week .met i{background:#69b8ad;border-color:#35888b;box-shadow:0 0 0 5px #69b8ad29}.journal-week small{color:#78908c;font-size:9px}.journal-week p{color:#78908c;margin:0;font-size:10px;line-height:1.6}.journal-link{padding:8px 0 23px}.journal-conversation{border-top:1px solid #d1dcd5;padding-top:20px}.journal-conversation>span{color:#6b9291;font-size:10px;font-weight:700}.journal-conversation p{color:#56716d;margin:10px 0;font-size:11px;line-height:1.55}.journal-conversation b{color:#1d4c54;margin-right:9px}.companion-sheet-backdrop{z-index:110;background:#07222ba1;justify-content:flex-end;display:flex;position:fixed;inset:0}.companion-sheet{color:#1d454d;background:#fcfbf5;width:min(470px,100%);height:100%;padding:34px clamp(23px,3vw,42px);overflow-y:auto;box-shadow:-20px 0 65px #03141a38}.sheet-head{color:#528486;letter-spacing:.15em;justify-content:space-between;align-items:center;font:700 11px DM Sans,sans-serif;display:flex}.sheet-head button{color:#456c70;background:0 0}.companion-sheet h3{letter-spacing:-.04em;margin:47px 0 11px;font:35px/1.2 Georgia,Noto Serif SC,serif}.companion-sheet p{color:#6d8580;margin:0 0 25px;font-size:12px;line-height:1.8}.companion-sheet label{color:#5b7c7e;margin:17px 0;font-size:11px;display:block}.companion-sheet input,.companion-sheet select{color:#21454c;background:#fff;border:1px solid #cbdcd5;border-radius:5px;outline-color:#4c86a5;width:100%;min-height:44px;margin-top:7px;padding:10px 12px;font-size:13px;display:block}.sheet-food-row{grid-template-columns:1.4fr .6fr;gap:12px;display:grid}.sheet-add{color:#367ba0;background:0 0;align-items:center;gap:6px;padding:8px 0;font-size:12px;font-weight:700;display:inline-flex}.sheet-confirm{color:#fff;background:#1d626f;border-radius:5px;justify-content:center;align-items:center;gap:9px;width:100%;min-height:48px;margin-top:25px;font-size:13px;font-weight:700;display:flex}.sheet-confirm:hover{background:#124b56}.sheet-status{color:#66817c;margin-top:17px;line-height:1.6;display:block}.companion-settings{margin-top:4px}.companion-settings .soul-check{color:#45666a}.companion-preferences{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:18px 0;display:grid}.companion-preferences label{color:#628084;font-size:11px}.companion-preferences select{color:#21454c;background:#fff;border:1px solid #cbdcd5;border-radius:5px;width:100%;min-height:38px;margin-top:6px;padding:7px;display:block}.companion-memory-list{gap:8px;margin:19px 0;display:grid}.companion-memory-row{grid-template-columns:82px minmax(0,1fr) 46px 46px;align-items:center;gap:8px;display:grid}.companion-memory-row span{color:#668586;font-size:11px}.companion-memory-row input,.companion-memory-add input,.companion-settings textarea{color:#21454c;background:#fff;border:1px solid #cbdcd5;border-radius:5px;width:100%;min-height:39px;padding:8px 10px;font-size:12px}.companion-memory-row button{color:#2f7185;background:0 0;font-size:11px}.companion-memory-row button:disabled{opacity:.35}.companion-memory-add{gap:9px;display:flex}.companion-memory-add input{flex:1}.companion-memory-add .secondary-button{width:auto}.feedback-stars{gap:8px;margin:17px 0;display:flex}.feedback-stars button{color:#b8c4bf;background:0 0;font-size:29px}.feedback-stars button.selected{color:#d6a94f}.companion-settings textarea{resize:vertical;min-height:90px;margin-bottom:12px;display:block}@media (width<=1100px){.companion-home{grid-template-columns:minmax(0,1.25fr) minmax(280px,.8fr)}.companion-app .sidebar{width:185px}.companion-app .main{width:calc(100% - 185px);margin-left:185px}.companion-stage{padding-left:30px;padding-right:30px}.companion-journal{padding-left:26px;padding-right:26px}}@media (width<=800px){.soul-onboarding-layout{grid-template-columns:1fr;gap:0}.soul-onboarding-art{min-height:330px;max-height:360px}.soul-onboarding-art .soul-avatar{width:min(83vw,350px)}.soul-onboarding-art p{bottom:0}.soul-question{max-width:600px;margin:0 auto}.soul-progress{margin-bottom:30px}.companion-app .sidebar{display:none}.companion-app .main{width:100%;margin-left:0}.companion-home{grid-template-columns:1fr}.companion-stage{min-height:760px}.stage-art{min-height:330px}.companion-journal{padding:42px 30px}.companion-app .mobile-nav{display:grid}}@media (width<=720px){.companion-app .topbar{min-height:65px;padding:12px 20px}.companion-app .page-content{padding:24px 16px 100px}.companion-app .page-content:has(.companion-home){padding:0 0 76px}.companion-app .mobile-nav{background:#f9faf5}.companion-app .mobile-nav .nav-item.active{color:#1a626c;background:#dfefeb}.soul-onboarding{padding:19px 22px 90px}.soul-onboarding-top{font-size:9px}.soul-onboarding-art{min-height:280px;max-height:290px}.soul-onboarding-art .soul-avatar{width:290px}.soul-onboarding-art p{font-size:13px}.soul-question h1{font-size:clamp(42px,11vw,58px)}.soul-question>p{font-size:12px}.companion-stage{min-height:690px;padding:20px 22px 30px}.stage-top{font-size:9px}.stage-art{min-height:250px}.stage-art .soul-avatar{width:min(88vw,315px)}.stage-dialogue h2{font-size:28px}.stage-actions{gap:7px;margin:16px 0}.stage-actions button{padding:7px 10px;font-size:11px}.stage-caption{display:none}.companion-sheet-backdrop{align-items:flex-end}.companion-sheet{width:100%;height:auto;max-height:90vh;padding-bottom:calc(28px + env(safe-area-inset-bottom));border-radius:18px 18px 0 0}.companion-sheet h3{margin-top:28px}.companion-memory-row{grid-template-columns:1fr 43px 43px}.companion-preferences{grid-template-columns:1fr}.companion-memory-row span{grid-column:1/-1}.companion-memory-add{flex-direction:column}}@media (prefers-reduced-motion:reduce){.soul-avatar *,.soul-halo{animation:none!important}}html:has(.companion-home){background:#08151d}body:has(.companion-home){background:#08151d}#root:has(.companion-home){background:#08151d}:is(.companion-app:has(.companion-home) .sidebar,.companion-app:has(.companion-home) .topbar,.companion-app:has(.companion-home) .mobile-nav){display:none}.companion-app:has(.companion-home) .main{width:100%;margin:0}.companion-app:has(.companion-home) .page-content{background:#08151d;padding:0!important}.companion-home{background:#08151d;min-height:100svh;display:block}.companion-home .companion-stage{background:radial-gradient(at 51% 39%,#2a6a7059,#0000 36%),radial-gradient(circle at 8% 84%,#464f7026,#0000 30%),#08151d;min-height:100svh;padding:clamp(24px,3vw,44px) clamp(22px,5vw,84px) clamp(24px,3vw,42px)}.companion-home .stage-top{z-index:5;color:#d9e2dc;align-items:center}.stage-sigil{letter-spacing:.1em;font:600 17px Georgia,serif}.stage-sigil span{color:#86aaa6;font-size:24px}.stage-tools{gap:8px;display:flex}.stage-tools button{color:#c3d4cf;background:#122b32a6;border:1px solid #c6e1da33;border-radius:20px;align-items:center;gap:10px;min-height:38px;padding:5px 13px;font-size:12px;display:inline-flex}.stage-tools small{color:#87a9a6}.stage-tool-dot{background:#d7bd91;border-radius:50%;width:5px;height:5px}.companion-home .stage-art .soul-avatar{width:min(60vh,520px)}.companion-home .soul-emerging .soul-face,.companion-home .soul-emerging .soul-sprout,.soul-onboarding .soul-emerging .soul-face,.soul-onboarding .soul-emerging .soul-sprout{opacity:0}.companion-home .soul-avatar:not(.soul-emerging) .soul-face,.soul-onboarding .soul-avatar:not(.soul-emerging) .soul-face{opacity:.86;transition:opacity 1.4s}.companion-home .soul-avatar:not(.soul-emerging) .soul-sprout,.soul-onboarding .soul-avatar:not(.soul-emerging) .soul-sprout{opacity:.9;transition:opacity 1.4s}.companion-home .soul-emerging .soul-body{filter:blur(7px);opacity:.75}.companion-home .soul-avatar:not(.soul-emerging) .soul-body{filter:none;opacity:1;transition:filter 1.4s,opacity 1.4s}.companion-home .soul-emerging .soul-body,.soul-onboarding .soul-emerging .soul-body{fill:url(#soulCore)!important}.soul-fragments{transform-origin:260px 260px;animation:4.5s steps(4,end) infinite soul-signal}@keyframes soul-signal{0%,to{opacity:.18;transform:rotate(-2deg)scale(.98)}50%{opacity:.72;transform:rotate(2deg)scale(1.03)}}.companion-home .stage-aurora{opacity:.2}.stage-glyph{color:#789f9d;letter-spacing:.25em;font:500 12px DM Sans,sans-serif;display:block}.companion-home .stage-dialogue h2{letter-spacing:.025em;text-wrap:balance;margin:15px 0 8px;font:clamp(27px,3.3vw,48px)/1.5 Georgia,Noto Serif SC,serif;animation:.9s both scene-reveal}.companion-home .stage-dialogue p{color:#a6c3bc;min-height:0;font-size:13px}@keyframes scene-reveal{0%{opacity:0;filter:blur(9px);transform:translateY(11px)}to{opacity:1;filter:blur();transform:translateY(0)}}.companion-home .stage-send{background:#d4c49f;border-radius:50%}.stage-foot{color:#88a7a4;justify-content:space-between;align-items:center;width:min(720px,100%);margin:10px auto 0;font-size:11px;display:flex}.stage-foot button{color:#d7c7a2;background:0 0;align-items:center;gap:5px;display:inline-flex}.companion-home .stage-consent-detail{z-index:6;width:min(720px,100%);margin:12px auto 0;position:relative}.stage-map{z-index:10;color:#dce9df;background:#122a32;border:1px solid #bedbd240;border-radius:15px;width:min(350px,100vw - 44px);max-height:70vh;padding:24px;position:absolute;top:80px;right:clamp(22px,5vw,84px);overflow-y:auto;box-shadow:0 22px 70px #00000057}.stage-map-head,.stage-history-head{justify-content:space-between;align-items:center;display:flex}.stage-map-head span{font:23px Georgia,Noto Serif SC,serif}.stage-map-head button,.stage-history-head button{color:inherit;background:0 0}.stage-map p{color:#b2ccc3;font-size:13px;line-height:1.7}.stage-map-links,.stage-action-list{gap:6px;margin-top:15px;display:grid}.stage-map-links button,.stage-action-list button{color:#e2e9e0;text-align:left;background:0 0;border-top:1px solid #bedbd22e;justify-content:space-between;align-items:center;min-height:44px;font-size:13px;display:flex}.stage-map-links .stage-restart{color:#d6c397;margin-top:7px}.stage-action-list{background:#ebf3e70f;border-radius:8px;padding:8px 14px}.stage-action-list small{color:#8fb0a8}.stage-history-backdrop{z-index:120;background:#040d128c;position:fixed;inset:0}.stage-history{color:#e3ede5;background:#10252d;width:min(440px,100%);height:100%;padding:31px;position:absolute;top:0;right:0;overflow-y:auto}.stage-history-head{background:#10252d;padding:0 0 22px;font:25px Georgia,Noto Serif SC,serif;position:sticky;top:-31px}.stage-history p{border-top:1px solid #c4dcd326;padding:16px 0;font-size:15px;line-height:1.7}.stage-history p.from-you{color:#adc7c1}.stage-history small{color:#86aaa5;margin-bottom:6px;font-size:10px;display:block}.world-gift{z-index:3;color:#decda7;background:0 0;justify-items:center;gap:3px;font-size:29px;display:grid;position:absolute;bottom:18%;right:21%}.world-gift span{letter-spacing:.12em;font-size:9px}.world-gift-note{z-index:4;background:#132e35;border:1px solid #d3dec84d;border-radius:8px;width:180px;padding:14px;position:absolute;bottom:5%;right:7%;box-shadow:0 12px 35px #061216}.world-chess{border:1px solid #abb9a6;grid-template-columns:repeat(4,1fr);width:112px;margin:auto;display:grid}.world-chess i{color:#152d31;background:#879d8f;place-items:center;width:28px;height:28px;font-style:normal;display:grid}.world-chess i:nth-child(8n+2),.world-chess i:nth-child(8n+4),.world-chess i:nth-child(8n+5),.world-chess i:nth-child(8n+7){background:#d1d7ba}.world-gift-note p{font-size:11px;line-height:1.6}.world-gift-note button{color:#d9c59e;background:0 0;font-size:11px}@media (width<=720px){.companion-home .companion-stage{min-height:100svh;padding:18px 20px 30px}.companion-home .stage-art{min-height:36vh}.companion-home .stage-art .soul-avatar{width:min(83vw,350px)}.companion-home .stage-dialogue{margin-bottom:24px}.companion-home .stage-dialogue h2{font-size:clamp(25px,6.8vw,34px)}.stage-map{top:66px;right:20px}.world-gift{bottom:14%;right:8%}}@media (prefers-reduced-motion:reduce){.companion-home .stage-dialogue h2,.soul-fragments{animation:none}}body:has(.awakening-screen){background:#08151d;padding-bottom:0}.awakening-screen{color:#e9f1e8;background:radial-gradient(at 50% 40%,#3d7d8059,#0000 42%),#08151d;place-items:center;min-height:100svh;display:grid;position:relative;overflow:hidden}.awakening-noise{opacity:.18;background-image:radial-gradient(#d6cd997a .7px,#0000 .7px);background-size:19px 19px;animation:14s linear infinite awakening-drift;position:absolute;inset:-30%;-webkit-mask-image:radial-gradient(circle,#000,#0000 68%);mask-image:radial-gradient(circle,#000,#0000 68%)}@keyframes awakening-drift{to{transform:translate(2%,1%)rotate(3deg)}}.awakening-top{z-index:2;color:#86a8a5;letter-spacing:.15em;justify-content:space-between;font-size:11px;display:flex;position:absolute;top:25px;left:clamp(22px,5vw,70px);right:clamp(22px,5vw,70px)}.awakening-mark{color:#e2e8d9;font:600 18px Georgia,serif}.awakening-core{z-index:1;text-align:center;justify-items:center;width:min(680px,100vw - 44px);padding:70px 0 35px;display:grid;position:relative}.awakening-avatar{aspect-ratio:1;width:min(59vw,440px);min-width:260px;position:relative}.awakening-avatar .soul-avatar{width:100%}.awakening-orbit{color:#7da5a1;letter-spacing:.2em;font:10px DM Sans,sans-serif;position:absolute;bottom:13%;right:5%}.awakening-kicker{color:#d7bd8d;letter-spacing:.18em;margin-top:-15px;font:700 11px DM Sans,sans-serif}.awakening-core h1{color:#f4f1dc;letter-spacing:-.045em;margin:22px 0 12px;font:clamp(37px,6vw,72px)/1.17 Georgia,Noto Serif SC,serif}.awakening-core h1 em{color:#eacb8d;font-style:normal}.awakening-copy{color:#b3ccc3;margin:0 0 24px;font-size:14px;line-height:1.9}.awakening-consent{color:#c9dcd4;text-align:left;cursor:pointer;background:#12313973;border:1px solid #c2dcd333;border-radius:9px;align-items:flex-start;gap:12px;width:min(430px,100%);padding:14px 16px;display:flex}.awakening-consent input{accent-color:#eacb8d;width:18px;height:18px;margin:2px 0 0}.awakening-consent b,.awakening-consent small{display:block}.awakening-consent b{margin-bottom:4px;font-size:13px}.awakening-consent small{color:#88aaa5;font-size:10px;line-height:1.55}.awakening-enter{color:#183e45;background:#eacb8d;border-radius:5px;justify-content:center;align-items:center;gap:10px;min-width:150px;min-height:50px;margin-top:18px;font-weight:700;display:inline-flex}.awakening-enter:disabled{opacity:.35}.awakening-error{color:#eaa48b;font-size:12px}.scene-state-awakening .soul-fragments{animation-duration:2.5s}.scene-state-listening .stage-aurora{opacity:.28}.scene-state-curious .stage-aurora{opacity:.34;transform:scale(1.15)}.scene-state-reveal .stage-aurora{opacity:.45;transform:scale(1.25)}.scene-state-settled .stage-aurora{opacity:.22}.scene-accent-gold{--scene-accent:#eacb8d}.scene-accent-teal{--scene-accent:#9bd8cb}.scene-accent-violet{--scene-accent:#cdb5e6}.companion-home .companion-stage{background:radial-gradient(at 50% 38%,#2a6a7066,#0000 38%),radial-gradient(circle at 8% 84%,#464f702e,#0000 30%),#08151d;min-height:100svh}.companion-home .stage-art{min-height:min(52vh,510px)}.companion-home .stage-dialogue{text-align:center;width:min(760px,100%);max-width:none;margin:0 auto 22px}.companion-home .stage-glyph{color:var(--scene-accent,#789f9d)}.scene-text{letter-spacing:.02em;animation:scene-reveal var(--text-duration,.8s) ease both;flex-wrap:wrap;justify-content:center;gap:0 .22em;margin:15px auto 0;font:clamp(28px,3.5vw,52px)/1.45 Georgia,Noto Serif SC,serif;display:flex}.scene-text-segment{white-space:pre-wrap}.scene-text .tone-fitness{color:var(--scene-accent,#eacb8d);text-shadow:0 0 20px color-mix(in srgb,var(--scene-accent,#eacb8d) 35%,transparent)}.scene-text .tone-memory{color:#b7dcd0}.scene-text .tone-whisper{color:#86aaa5;font-size:.72em}.companion-home .stage-composer{z-index:20;background:#e7f1eb13;border-radius:30px;flex:none;width:min(720px,100%);min-height:60px;margin:0 auto;padding:6px 10px;position:relative}.companion-home .stage-composer input{z-index:1;touch-action:manipulation;pointer-events:auto;min-height:44px;font-size:16px;position:relative}.scene-question{border:1px solid color-mix(in srgb,var(--scene-accent,#eacb8d) 35%,transparent);background:#122c33d1;border-radius:10px;width:min(560px,100%);margin:0 auto 15px;padding:16px 18px}.scene-question p{color:#dce9df;margin:0 0 10px;font:17px/1.5 Georgia,Noto Serif SC,serif}.scene-question>div{flex-wrap:wrap;gap:8px;display:flex}.scene-question button{color:#dbe8df;background:#ffffff0f;border:1px solid #d8e8db40;border-radius:4px;align-items:center;gap:5px;min-height:35px;padding:7px 11px;font-size:12px;display:inline-flex}.scene-question button:hover{border-color:var(--scene-accent,#eacb8d)}.scene-question input{color:#f4f1dc;background:0 0;border:0;border-bottom:1px solid #dcebe040;outline:0;flex:1;min-width:180px;min-height:35px;padding:7px 10px;font-size:12px}.scene-prop{z-index:3;color:var(--scene-accent,#eacb8d);filter:drop-shadow(0 0 12px #eacb8d73);font-size:34px;animation:3s ease-in-out infinite prop-float;position:absolute;bottom:14%;right:17%}.scene-gift{font-size:42px;animation-duration:2s;bottom:25%;right:50%}@keyframes prop-float{50%{transform:translateY(-10px)rotate(5deg)}}@media (width<=720px){.awakening-top{font-size:9px;top:18px}.awakening-core{padding-top:42px}.awakening-avatar{width:min(82vw,350px)}.awakening-core h1{font-size:clamp(39px,10vw,57px)}.companion-home .stage-art{min-height:36vh}.scene-text{font-size:clamp(25px,7vw,35px)}.scene-question{padding:14px}}@media (prefers-reduced-motion:reduce){.awakening-noise,.scene-text,.scene-prop,.soul-fragments{animation:none!important}}
