/* Companion-linked palettes and a soft, non-literal habitat.
   Atmosphere and UI materials change; records, structure and semantic data colors do not. */
body[data-spirit-theme]{
 --spirit-paper:246,249,252;--spirit-ground:#e6edfa;--spirit-ink:#30425f;
 --spirit-muted:#62758d;--spirit-accent:#6283a8;--spirit-rgb:133,160,193;
 --spirit-mist:#dce8f5;--spirit-pearl:#f2f7ff;--spirit-wash:#92b3d4;
 --spirit-glow:145,176,208;
}
body[data-spirit-theme="rabbit"]{
 --spirit-paper:250,247,253;--spirit-ground:#eeebf5;--spirit-ink:#4d4262;
 --spirit-muted:#756783;--spirit-accent:#7e639a;--spirit-rgb:174,151,200;
 --spirit-mist:#e7ddef;--spirit-pearl:#faf5ff;--spirit-wash:#b49acb;
 --spirit-glow:176,154,209;
}
body[data-spirit-theme="dog"]{
 --spirit-paper:255,250,246;--spirit-ground:#f5ece7;--spirit-ink:#5c483f;
 --spirit-muted:#826a5c;--spirit-accent:#906b55;--spirit-rgb:209,169,142;
 --spirit-mist:#f0e1d5;--spirit-pearl:#fff7ef;--spirit-wash:#dcba9f;
 --spirit-glow:211,177,163;
}
body[data-spirit-theme="fox"]{
 --spirit-paper:253,251,241;--spirit-ground:#f1ede1;--spirit-ink:#554c39;
 --spirit-muted:#7b715b;--spirit-accent:#817047;--spirit-rgb:191,177,137;
 --spirit-mist:#e9e3ce;--spirit-pearl:#fffbec;--spirit-wash:#c7ba90;
 --spirit-glow:205,188,143;
}
body[data-spirit-theme="cat"]{
 --spirit-paper:251,248,250;--spirit-ground:#eee9ef;--spirit-ink:#514853;
 --spirit-muted:#796c7d;--spirit-accent:#7b677c;--spirit-rgb:185,163,182;
 --spirit-mist:#e8dde6;--spirit-pearl:#fcf5fa;--spirit-wash:#b7a5bc;
 --spirit-glow:191,170,183;
}

/* No filter is applied to the app, avatar, photos or data visualizations. */
body[data-spirit-theme]{
 --ink:var(--spirit-ink);--muted:var(--spirit-muted);--line:rgba(var(--spirit-rgb),.28);
 --paper:rgb(var(--spirit-paper));--motion-ink:var(--spirit-ink);--motion-blue:var(--spirit-accent);
 background:var(--spirit-ground);color:var(--spirit-ink);
 --spirit-atmosphere:.84;
}
body[data-spirit-theme]:is([data-page="finance"],[data-page="health"],[data-page="time"],[data-page="journal"],[data-page="goals"],[data-page="review"]){--spirit-atmosphere:.38}
body[data-spirit-theme] .scene{background:rgb(var(--spirit-paper));overflow:hidden;opacity:1;pointer-events:none}
body[data-spirit-theme] .scene::before{
 content:"";display:block;position:absolute;inset:0 auto 0 50%;width:min(100%,430px);
 transform:translateX(-50%);filter:none;animation:none;will-change:auto;
 background:radial-gradient(ellipse 95% 65% at 108% 62%,rgba(var(--spirit-rgb),.48),transparent 74%),radial-gradient(ellipse 98% 52% at -14% 94%,rgba(var(--spirit-rgb),.36),transparent 75%),radial-gradient(ellipse 100% 66% at 24% -12%,#fff,transparent 80%),linear-gradient(150deg,#fcfbf8,var(--spirit-pearl) 48%,var(--spirit-mist));
 opacity:var(--spirit-atmosphere);
}
/* Broad, translucent folds stay below the reading surface; no particles or scenery. */
body[data-spirit-theme] .scene::after{
 content:"";display:block;position:absolute;inset:auto auto -3% 50%;width:min(110%,474px);height:61%;
 transform:translateX(-50%);filter:none;opacity:calc(var(--spirit-atmosphere) * .78);will-change:auto;
 background:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22430%22%20height%3D%22520%22%20viewBox%3D%220%200%20430%20520%22%20preserveAspectRatio%3D%22none%22%3E%3Cdefs%3E%3ClinearGradient%20id%3D%22a%22%20x1%3D%220%22%20y1%3D%220%22%20x2%3D%22.15%22%20y2%3D%221%22%3E%3Cstop%20stop-color%3D%22white%22%20stop-opacity%3D%22.78%22%2F%3E%3Cstop%20offset%3D%22.7%22%20stop-color%3D%22white%22%20stop-opacity%3D%220%22%2F%3E%3C%2FlinearGradient%3E%3ClinearGradient%20id%3D%22b%22%20x1%3D%220%22%20y1%3D%220%22%20x2%3D%22.2%22%20y2%3D%221%22%3E%3Cstop%20stop-color%3D%22white%22%20stop-opacity%3D%22.58%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22white%22%20stop-opacity%3D%220%22%2F%3E%3C%2FlinearGradient%3E%3C%2Fdefs%3E%3Cpath%20d%3D%22M-40%20235%20C95%2056%20191%20298%20470%2048%20L470%20560H-40Z%22%20fill%3D%22url%28%23a%29%22%2F%3E%3Cpath%20d%3D%22M-40%20369%20C130%20446%20201%20193%20470%20253%20L470%20560H-40Z%22%20fill%3D%22url%28%23b%29%22%2F%3E%3Cpath%20d%3D%22M-40%20235%20C95%2056%20191%20298%20470%2048%22%20fill%3D%22none%22%20stroke%3D%22white%22%20stroke-opacity%3D%22.20%22%20stroke-width%3D%221%22%2F%3E%3C%2Fsvg%3E") center bottom/100% 100% no-repeat;
 animation:spirit-mist-drift 22s ease-in-out infinite alternate;
}
/* Rabbit habitat study: a pearly lunar edge, mostly outside the reading column. */
.spirit-habitat{display:none}
body[data-spirit-theme="rabbit"] .spirit-habitat{display:block;position:absolute;inset:0 auto 0 50%;width:min(100%,430px);transform:translateX(-50%);overflow:hidden;opacity:var(--spirit-atmosphere);pointer-events:none}
.spirit-moon-aura{position:absolute;top:18%;right:-110px;width:380px;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(239,229,255,.30) 36%,rgba(255,255,255,.82) 47%,transparent 68%);filter:blur(18px)}
.spirit-moon{position:absolute;top:23%;right:-45px;width:260px;aspect-ratio:1;transform:rotate(-18deg);background:linear-gradient(132deg,#fff 18%,#f9f5ff 49%,#e5daf3 76%,#d7c6e9);mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20300%20300%22%3E%3Cpath%20fill%3D%22white%22%20d%3D%22M226%2034C110-12%2021%2065%2040%20166C53%20251%20170%20297%20243%20236C142%20257%2076%20184%2097%20115C111%2065%20159%2037%20226%2034Z%22%2F%3E%3C%2Fsvg%3E");-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20300%20300%22%3E%3Cpath%20fill%3D%22white%22%20d%3D%22M226%2034C110-12%2021%2065%2040%20166C53%20251%20170%20297%20243%20236C142%20257%2076%20184%2097%20115C111%2065%20159%2037%20226%2034Z%22%2F%3E%3C%2Fsvg%3E");mask-size:contain;-webkit-mask-size:contain;mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;opacity:.90}

body[data-spirit-theme="rabbit"][data-page="chat"] .spirit-habitat{opacity:.78}
@media(prefers-reduced-motion:no-preference){
 .spirit-moon-aura{animation:spirit-moon-breathe 14s ease-in-out infinite alternate}
 @keyframes spirit-moon-breathe{from{opacity:.50;transform:scale(.97)}to{opacity:.9;transform:scale(1.04)}}
}
body.motion-paused .spirit-moon-aura,body:has(dialog[open]) .spirit-moon-aura,body:has(.study.is-paused) .spirit-moon-aura{animation-play-state:paused}
@keyframes spirit-mist-drift{from{transform:translate(-50%,0) scale(1);opacity:calc(var(--spirit-atmosphere) * .64)}to{transform:translate(-48.5%,-9px) scale(1.025);opacity:calc(var(--spirit-atmosphere) * .84)}}
body[data-spirit-theme].motion-paused .scene::after,
body[data-spirit-theme]:has(dialog[open]) .scene::after,
body[data-spirit-theme]:has(.study.is-paused) .scene::after{animation-play-state:paused}
@media(prefers-reduced-motion:reduce){body[data-spirit-theme] .scene::after{animation:none!important}}
body[data-spirit-theme] .mobile-shell{background:linear-gradient(180deg,rgba(var(--spirit-paper),.20),rgba(var(--spirit-paper),.48) 55%,rgba(var(--spirit-paper),.72));color:var(--spirit-ink)}
body[data-spirit-theme][data-page="chat"] .mobile-shell{background:rgba(var(--spirit-paper),.04)}
body[data-spirit-theme] :is(.life-page,.life-spaces,.finance-page,.mobile-week){
 --life-muted:var(--spirit-muted);--life-line:var(--line);--finance-line:var(--line);--week-ink:var(--spirit-ink);--week-muted:var(--spirit-muted);--week-line:var(--line);--muted:var(--spirit-muted);--line:rgba(var(--spirit-rgb),.28);color:var(--spirit-ink);
}
body[data-spirit-theme] :is(.topbar,.wordmark,.wordmark:not(.is-companion),.life-title h1,.page-heading h1,.life-spaces .heading h1,.life-section-heading h2,.finance-heading h1,.life-compass-center,.life-compass-center strong,.life-compass-label,.home-now-card p,.home-now-clock){color:var(--spirit-ink)}
body[data-spirit-theme][data-page="chat"] .topbar{background:linear-gradient(180deg,rgba(var(--spirit-paper),.88),rgba(var(--spirit-paper),.32))}
body[data-spirit-theme] :is(.header-moment,.settings-icon,.life-title>p,.thinking-caption,.home-now-card small,.home-section-head small,.home-empty,.home-more summary,.home-time-legend,.home-time-legend>p,.home-time-legend small,.life-compass-center small,.home-time-ticks,.moment-label,.moment-chevron,.finance-empty,.finance-note,.finance-footnote,.finance-record small,.finance-heading p,.finance-totals span,.finance-balance small){color:var(--spirit-muted)}
body[data-spirit-theme] .settings-icon circle{fill:rgb(var(--spirit-paper))}
body[data-spirit-theme] .wordmark::after{color:var(--spirit-muted)}
body[data-spirit-theme] :is(.bottom-nav,.life-space-nav){border-color:var(--line)}
body[data-spirit-theme] .bottom-nav{background:rgba(var(--spirit-paper),.92)}
body[data-spirit-theme] :is(.nav-item,.life-space-nav button){color:var(--spirit-muted)}
body[data-spirit-theme] :is(.nav-item,.life-space-nav button)[aria-current="page"]{color:var(--spirit-ink)}
body[data-spirit-theme] :is(.nav-item,.life-space-nav button)[aria-current="page"]::after{background:var(--spirit-accent)}
body[data-spirit-theme] .motion-nav-marker{background:rgba(var(--spirit-rgb),.17)}
body[data-spirit-theme] .motion-period-marker{background:var(--spirit-accent)}

body[data-spirit-theme] .message.partner .message-text{background:rgba(var(--spirit-paper),.86);color:var(--spirit-ink);border-color:#ffffffb3;box-shadow:0 4px 20px rgba(var(--spirit-rgb),.05)}
body[data-spirit-theme] .message.user .message-text{background:rgba(var(--spirit-paper),.95);color:var(--spirit-ink);border-color:#ffffffcc;box-shadow:0 4px 20px rgba(var(--spirit-rgb),.05)}
body[data-spirit-theme] .composer{background:linear-gradient(180deg,rgba(var(--spirit-paper),0),rgba(var(--spirit-paper),.80) 40%,rgba(var(--spirit-paper),.95))}
body[data-spirit-theme] .composer-row{background:rgba(var(--spirit-paper),.84);border-color:#ffffffd9;box-shadow:0 3px 18px rgba(var(--spirit-rgb),.10)}
body[data-spirit-theme] :is(.icon-button,.text-link,.home-pause){color:var(--spirit-accent)}
body[data-spirit-theme] :is(.primary,.send-button){background:var(--spirit-accent);color:#fff}
body[data-spirit-theme] :is(textarea,input,select){color:var(--spirit-ink);accent-color:var(--spirit-accent)}
body[data-spirit-theme] :is(textarea,input)::placeholder{color:var(--spirit-muted);opacity:.75}
body[data-spirit-theme] :is(button,a,input,textarea,select,summary):focus-visible{outline-color:var(--spirit-accent)}

body[data-spirit-theme] :is(.home-now-card,.journal-card-face){background:rgba(var(--spirit-paper),.74);border-color:#fff9;box-shadow:none}
body[data-spirit-theme] .home-parallel{background:rgba(var(--spirit-paper),.40)}
body[data-spirit-theme] :is(.home-next,.home-done,.life-section,.life-space-nav,.finance-record,.mobile-week){border-color:var(--line)}
body[data-spirit-theme] .home-time-track{background:rgba(var(--spirit-rgb),.18)}
body[data-spirit-theme] .home-focus-ring{border-color:rgba(var(--spirit-rgb),.23);border-top-color:var(--spirit-accent)}
body[data-spirit-theme] .home-time-track [data-time-now]{background:var(--spirit-accent);box-shadow:0 0 0 2px rgba(var(--spirit-paper),.5)}
body[data-spirit-theme] .home-now-card::after{background:linear-gradient(90deg,transparent,rgba(var(--spirit-rgb),.75),transparent)}
body[data-spirit-theme] :is(.life-periods,.period-tabs,.review-periods,.mode-tabs) button[aria-pressed="true"]{color:var(--spirit-accent);border-color:var(--spirit-accent)}
body[data-spirit-theme] #lifeCompassWash stop:first-child{stop-color:var(--spirit-mist)}
body[data-spirit-theme] #lifeCompassWash stop:nth-child(2){stop-color:var(--spirit-wash)}
body[data-spirit-theme] #lifeCompassWash stop:last-child{stop-color:var(--spirit-pearl)}
body[data-spirit-theme] #lifeCompassPearl stop:last-child{stop-color:var(--spirit-wash)}
body[data-spirit-theme] .compass-membrane-back{stroke:var(--spirit-accent)}
body[data-spirit-theme] .life-comparison-pair>span+span i{background:var(--spirit-accent)}

body[data-spirit-theme] dialog{background:rgb(var(--spirit-paper));color:var(--spirit-ink);border-color:var(--line);box-shadow:0 12px 40px rgba(var(--spirit-rgb),.20)}
body[data-spirit-theme] dialog::backdrop{background:rgba(var(--spirit-rgb),.27)}
body[data-spirit-theme] :is(.spirit-choices,.avatar-choices) button[aria-pressed="true"]{background:var(--spirit-mist);border-color:var(--spirit-accent);color:var(--spirit-ink)}
body[data-spirit-theme] .spirit-selected{color:var(--spirit-accent)}
body[data-spirit-theme] .mobile-week .week-selection{background:rgba(var(--spirit-rgb),.18);box-shadow:inset 0 0 0 1px var(--line)}
body[data-spirit-theme] .mobile-week :is(.week-day.is-selected,.week-day.is-today strong){color:var(--spirit-accent)}
body[data-spirit-theme] .mobile-week .week-plan-dot{background:var(--spirit-accent)}
body[data-spirit-theme] .finance-toolbar .finance-month-trigger{color:var(--spirit-muted)}
body[data-spirit-theme] :is(#financeSheet,#financeCalendar){background:rgb(var(--spirit-paper));color:var(--spirit-ink)}
body[data-spirit-theme] #financeSheet .finance-save,
body[data-spirit-theme] #financeCalendar [data-calendar-day][aria-selected="true"]{background:var(--spirit-accent);color:#fff}
body[data-spirit-theme] #financeCalendar .finance-calendar-months>button[aria-pressed="true"]{background:var(--spirit-mist);color:var(--spirit-ink)}
body[data-spirit-theme] #financeCalendar .finance-calendar-months>button[aria-pressed="true"]>span{color:var(--spirit-ink)}
body[data-spirit-theme] #financeCalendar .finance-calendar-footer button{color:var(--spirit-accent)}
body[data-spirit-theme] #financeCalendar [data-calendar-day].is-today::after{background:var(--spirit-accent)}
body[data-spirit-theme] #financeCalendar [data-calendar-day][aria-selected="true"]::after{background:#fff8}
