/* Layout: one phone column. Velvet night ground, parchment "archive pages" for ritual work, raised gold foil for anything sacred. */
:root{
  color-scheme: dark;
  --night:#16132A;        /* velvet midnight plum */
  --night-2:#211C3B;
  --night-3:#2C2650;
  --line:rgba(231,196,90,.28);
  --glow:#F4F1E6;         /* Lunar Glow */
  --glow-dim:#F5F1FA;
  --glow-faint:#E7E0F0;
  --fuchsia:#BF1E73;      /* Cosmic Fuchsia */
  --fuchsia-hi:#E0438F;
  --flame:#E4572E;        /* Solar Flame */
  --teal:#3A8484;         /* Sunset Teal */
  --petal:#EBB7D0;        /* Petal Dust */
  --ember:#583A20;        /* Forest Ember */
  --gold:#E7C45A;
  --gold-deep:#9A7414;
  --parch:#F3EAD3;
  --parch-2:#E8DBBC;
  --ink:#2A2130;
  --ink-soft:#5B4B5E;
  --foil:linear-gradient(100deg,#8A6512 0%,#E9C861 22%,#FFF1B8 38%,#C99B26 55%,#F4D778 74%,#8A6512 100%);
  --f-display:"Lora","Iowan Old Style",Georgia,serif;
  --f-sc:"Lora",Georgia,serif;
  --f-book:"Atkinson Hyperlegible","Segoe UI",system-ui,sans-serif;
  --f-ui:"Atkinson Hyperlegible","Segoe UI",system-ui,sans-serif;
  --r:14px;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html,body{height:100%}
body{margin:0;background:var(--world-bg,var(--night));color:var(--glow);transition:background 1.4s ease;font-family:var(--f-book);font-size:20.5px;line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:hidden}
body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;opacity:.5;
  background:
   radial-gradient(1200px 500px at 110% -10%,rgba(191,30,115,.22),transparent 60%),
   radial-gradient(900px 520px at -20% 30%,rgba(58,132,132,.16),transparent 60%);}
body::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;opacity:.09;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");}
button,input,textarea{font:inherit;color:inherit}
button{cursor:pointer}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:6px}
.app{position:relative;z-index:1;max-width:480px;margin:0 auto;min-height:100%;padding:0 18px calc(96px + env(safe-area-inset-bottom,0px))}
.foil{background:var(--foil);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent}
@media (prefers-reduced-motion:no-preference){.foil.shine{animation:shine 9s ease-in-out infinite}}
@keyframes shine{0%,100%{background-position:0% 0}50%{background-position:100% 0}}

/* header */
.top{display:flex;align-items:center;gap:12px;padding-block:18px 8px}
.top .brand{flex:1;min-width:0}
.brand .eyebrow{font-family:var(--f-ui);font-size:15.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--glow-faint)}
.brand h1{margin:0;font-family:var(--f-sc);font-weight:400;font-size:28.5px;line-height:1.05;letter-spacing:.01em}
.setbtn{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:rgba(244,241,230,.06);border:1px solid rgba(244,241,230,.18);color:var(--glow-dim);padding:0}.setbtn svg{width:22px;height:22px}.setbtn:focus-visible,.setbtn:hover{color:var(--glow)}
.topctl{display:flex!important;flex-direction:row!important;align-items:center;gap:8px}
.seal-btn{border:0;background:none;padding:0;width:52px;height:52px;flex:none;filter:drop-shadow(0 3px 6px rgba(0,0,0,.45))}
.seal-btn canvas{width:52px;height:52px;display:block}

/* sky strip */
.sky{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:center;padding:14px 0 18px;border-bottom:1px solid var(--line)}
.sky svg{width:58px;height:58px}
.sky .phase{font-family:var(--f-display);font-size:24px;line-height:1.1}
.sky .meta{font-family:var(--f-ui);font-size:15.5px;color:var(--glow-dim);letter-spacing:.02em;margin-top:3px}
.sky .meta b{font-weight:700;color:var(--glow)}

section.view{padding-top:18px;display:grid;grid-template-columns:minmax(0,1fr);gap:22px}
section.view>*{min-width:0}
.label{font-family:var(--f-ui);font-size:16px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--gold)}
h2{font-family:var(--f-display);font-weight:400;font-size:32px;line-height:1.1;margin:4px 0 0;text-wrap:balance}
h3{font-family:var(--f-display);font-weight:400;font-size:25.5px;line-height:1.15;margin:0;text-wrap:balance}
p{margin:0}
.muted{color:var(--glow-dim)}
.small{font-family:var(--f-ui);font-size:17.5px;line-height:1.55}

/* Aura intake */
.aura{position:relative;padding:20px 18px 18px;border-radius:18px;background:linear-gradient(180deg,rgba(44,38,80,.92),rgba(33,28,59,.92));border:1px solid var(--line);box-shadow:inset 0 1px 0 rgba(255,241,184,.12),0 18px 40px -20px rgba(0,0,0,.7)}
.aura .speaker{display:flex;align-items:center;gap:10px}
.aura .speaker svg{width:30px;height:30px;flex:none}
.aura .speaker .who{font-family:var(--f-ui);font-size:15.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--glow-dim)}
.aura .q{font-family:var(--f-display);font-size:30.5px;line-height:1.12;margin:12px 0 12px}
textarea{width:100%;min-height:108px;resize:vertical;border-radius:12px;border:1px solid rgba(231,196,90,.35);background:rgba(22,19,42,.7);padding:12px 14px;font-family:var(--f-book);font-size:20.5px;line-height:1.45;color:var(--glow)}
textarea::placeholder{color:var(--glow-faint);font-style:italic}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{border:1px solid rgba(244,241,230,.18);background:rgba(244,241,230,.04);border-radius:999px;padding:7px 13px;font-family:var(--f-ui);font-size:16px;color:var(--glow-dim);transition:all .15s}
.chip:hover{border-color:var(--gold);color:var(--glow)}
.chip[aria-pressed="true"]{background:rgba(231,196,90,.14);border-color:var(--gold);color:var(--glow)}
.row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.row.between{justify-content:space-between}
.timechips .chip{padding:6px 11px}
.btn{border:0;border-radius:999px;padding:13px 20px;font-family:var(--f-ui);font-weight:700;font-size:18.5px;letter-spacing:.03em;display:inline-flex;align-items:center;justify-content:center;gap:8px}
.btn-main{background:radial-gradient(120% 140% at 30% 0%,var(--fuchsia-hi),var(--fuchsia) 55%,#8E1054);color:#FFF6FA;box-shadow:inset 0 0 0 1px rgba(255,220,120,.55),inset 0 2px 0 rgba(255,255,255,.18),0 10px 22px -10px rgba(191,30,115,.8)}
.btn-main:hover{filter:brightness(1.08)}
.btn-ghost{background:transparent;color:var(--glow);box-shadow:inset 0 0 0 1px rgba(231,196,90,.5)}
.btn-ghost:hover{background:rgba(231,196,90,.08)}
.btn-ink{background:var(--ink);color:var(--parch)}
.btn[disabled]{opacity:.5;cursor:default}
.full{width:100%}

/* guardian reading */
.reading{border-radius:18px;overflow:hidden;border:1px solid var(--line);background:var(--night-2)}
.reading .head{display:flex;gap:12px;align-items:center;padding:16px 18px 0}
.reading .head svg{width:44px;height:44px;flex:none}
.reading .who{font-family:var(--f-ui);font-size:15.5px;letter-spacing:.08em;text-transform:uppercase}
.reading .name{font-family:var(--f-display);font-size:27.5px;line-height:1}
.reading .body{padding:12px 18px 16px;display:grid;gap:12px}
.reading .voice{font-family:var(--f-display);font-style:italic;font-size:23px;line-height:1.35}
.why{font-family:var(--f-ui);font-size:16.5px;line-height:1.5;color:var(--glow-dim);border-left:2px solid var(--gold);padding-left:10px}
.why b{color:var(--glow);font-weight:700}
.care{background:rgba(235,183,208,.1);border:1px solid rgba(235,183,208,.4);border-radius:12px;padding:12px 14px;font-family:var(--f-ui);font-size:17px}
.thinking{display:flex;align-items:center;gap:12px;padding:18px;font-family:var(--f-display);font-style:italic;font-size:23.5px;color:var(--glow-dim)}
.thinking .orb{width:14px;height:14px;border-radius:50%;background:var(--gold);box-shadow:0 0 18px 4px rgba(231,196,90,.55)}
@media (prefers-reduced-motion:no-preference){.thinking .orb{animation:pulse 1.4s ease-in-out infinite}}
@keyframes pulse{50%{transform:scale(.6);opacity:.6}}

/* parchment ritual card */
.page{position:relative;background:linear-gradient(180deg,var(--parch),var(--parch-2));color:var(--ink);border-radius:6px;padding:18px 18px 16px;box-shadow:0 14px 30px -16px rgba(0,0,0,.8)}
.page::before{content:"";position:absolute;inset:6px;border:1px solid rgba(154,116,20,.55);border-radius:3px;pointer-events:none;box-shadow:inset 0 0 0 3px var(--parch),inset 0 0 0 4px rgba(154,116,20,.35)}
.page .kicker{font-family:var(--f-ui);font-size:15.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-soft)}
.page h3{color:var(--ink);font-size:28.5px;margin-top:4px}
.page .facts{display:flex;flex-wrap:wrap;gap:6px 14px;margin:8px 0 10px;font-family:var(--f-ui);font-size:15.5px;color:var(--ink-soft)}
.page .needs{font-size:19px;line-height:1.45}
.page .needs b{font-family:var(--f-ui);font-size:15.5px;letter-spacing:.08em;text-transform:uppercase;font-weight:600;color:var(--ink-soft);display:block;margin-bottom:2px}
.page .adj{font-family:var(--f-ui);font-size:15.5px;color:#7A3B12;margin-top:8px}
.page .actions{display:flex;gap:10px;margin-top:14px;position:relative}

/* cards generic */
.card{border-radius:16px;border:1px solid rgba(244,241,230,.30);background:rgba(25,21,48,.95);padding:16px;box-shadow:0 12px 28px -22px rgba(0,0,0,.8)}
.card.link{display:block;width:100%;text-align:left;color:inherit}
.card.link:hover{border-color:var(--line)}

/* altar draw */
.altar{display:flex;flex-direction:column;align-items:center;gap:18px}.altar .tarot{width:150px;height:225px}.altar .tarot .front svg{width:60px;height:60px}.altar .tarot .cname{font-size:19px}.altar #drawText{width:100%;text-align:left}
.tarot{perspective:900px;width:112px;height:168px;border:0;background:none;padding:0}
.tarot .inner{position:relative;width:100%;height:100%;transition:transform .8s cubic-bezier(.2,.7,.2,1);transform-style:preserve-3d}
.tarot.flipped .inner{transform:rotateY(180deg)}
.tarot .face{position:absolute;inset:0;border-radius:10px;backface-visibility:hidden;-webkit-backface-visibility:hidden;overflow:hidden}
.tarot .back{background:radial-gradient(circle at 50% 42%,#3A2B6B,#1B1535 70%);box-shadow:inset 0 0 0 1px rgba(231,196,90,.7),inset 0 0 0 5px #1B1535,inset 0 0 0 6px rgba(231,196,90,.45)}
.tarot .back svg{width:100%;height:100%}
.tarot .front{transform:rotateY(180deg);background:linear-gradient(180deg,var(--parch),var(--parch-2));color:var(--ink);display:grid;place-items:center;text-align:center;padding:10px;box-shadow:inset 0 0 0 1px rgba(154,116,20,.8),inset 0 0 0 5px var(--parch),inset 0 0 0 6px rgba(154,116,20,.4)}
.tarot .front svg{width:46px;height:46px}
.tarot .front .n{font-family:var(--f-sc);font-size:19.5px}
@media (prefers-reduced-motion:reduce){.tarot .inner{transition:none}}

/* resurface */
.memory blockquote{margin:8px 0 0;font-family:var(--f-display);font-style:italic;font-size:23.5px;line-height:1.35;color:var(--glow)}

/* journey */
.days{display:grid;gap:8px}
.day{display:grid;grid-template-columns:44px 1fr auto;gap:12px;align-items:center;width:100%;text-align:left;border:1px solid rgba(244,241,230,.18);background:rgba(27,23,52,.88);border-radius:14px;padding:10px 12px;color:inherit}
.day .num{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;font-family:var(--f-sc);font-size:22.5px;box-shadow:inset 0 0 0 1px var(--line)}
.day.done .num{background:rgba(231,196,90,.16);color:var(--gold)}
.day.next{border-color:var(--gold);background:rgba(44,38,80,.9)}
.day[disabled]{opacity:.45;cursor:default}
.day .t{font-family:var(--f-display);font-size:23.5px;line-height:1.1}
.day .s{font-family:var(--f-ui);font-size:15.5px;color:var(--glow-dim);margin-top:2px}
.day .st{font-family:var(--f-ui);font-size:15.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--glow-faint)}
.progress{height:4px;border-radius:4px;background:rgba(244,241,230,.1);overflow:hidden}
.progress i{display:block;height:100%;background:var(--foil)}
.price{font-family:var(--f-ui);font-size:16px;font-weight:700;color:var(--gold);white-space:nowrap}
.offer{display:grid;grid-template-columns:1fr auto;gap:4px 12px;align-items:start}
.offer .d{grid-column:1/-1;font-size:19px;color:var(--glow-dim)}

/* circle */
.circle{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.g{border:1px solid rgba(244,241,230,.18);background:rgba(27,23,52,.90);border-radius:14px;padding:14px 6px 12px;display:grid;justify-items:center;gap:6px;color:inherit;text-align:center}
.g:hover{border-color:var(--line)}
.g svg{width:46px;height:46px}
.g .n{font-family:var(--f-display);font-size:23.5px;line-height:1}
.g .e{font-family:var(--f-ui);font-size:15.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--glow-faint)}
.lead{display:grid;grid-template-columns:64px 1fr;gap:14px;align-items:center}
.lead svg{width:64px;height:64px}

/* archive */
.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.stat{border-top:1px solid var(--line);padding-top:8px}
.stat .v{font-family:var(--f-display);font-size:34.5px;line-height:1;font-variant-numeric:tabular-nums}
.stat .k{font-family:var(--f-ui);font-size:15.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--glow-faint);margin-top:4px}
.search{width:100%;border-radius:999px;border:1px solid rgba(244,241,230,.16);background:rgba(22,19,42,.6);padding:10px 16px;font-family:var(--f-ui);font-size:17px}
.entries{display:grid;gap:10px}
.entry{display:grid;grid-template-columns:34px 1fr;gap:12px;text-align:left;width:100%;border:0;border-bottom:1px solid rgba(244,241,230,.08);background:none;padding:10px 0;color:inherit}
.entry svg{width:34px;height:34px}
.entry .t{font-family:var(--f-display);font-size:23.5px;line-height:1.15}
.entry .m{font-family:var(--f-ui);font-size:15.5px;color:var(--glow-faint);margin-top:2px}
.entry .x{font-size:19px;color:var(--glow-dim);margin-top:4px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.empty{text-align:center;padding:26px 10px;border:1px dashed var(--line);border-radius:16px}
.empty h3{margin-bottom:6px}
.tag{display:inline-block;font-family:var(--f-ui);font-size:15.5px;border-radius:999px;padding:3px 10px;background:rgba(244,241,230,.07);color:var(--glow-dim)}

/* tab bar */
nav.tabs{position:fixed;left:0;right:0;bottom:0;z-index:12;padding:8px 12px calc(8px + env(safe-area-inset-bottom,0px));background:linear-gradient(180deg,rgba(22,19,42,0),rgba(22,19,42,.96) 30%)}
nav.tabs .in{max-width:480px;margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);gap:4px;background:rgba(33,28,59,.92);border:1px solid var(--line);border-radius:22px;padding:6px;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
nav.tabs button{border:0;background:none;border-radius:16px;padding:7px 0 6px;display:grid;justify-items:center;gap:2px;color:var(--glow-faint);font-family:var(--f-ui);font-size:15.5px;letter-spacing:.08em}
nav.tabs button svg{width:22px;height:22px}
nav.tabs button[aria-selected="true"]{color:var(--glow);background:rgba(231,196,90,.1)}
nav.tabs button[aria-selected="true"] svg{color:var(--gold)}

/* sheet */
.scrim{position:fixed;inset:0;z-index:20;background:rgba(8,6,18,.66);display:flex;align-items:flex-end;justify-content:center}
.sheet{width:100%;max-width:480px;max-height:92%;overflow:auto;background:var(--night-2);border:1px solid var(--line);border-bottom:0;border-radius:22px 22px 0 0;padding:10px 18px calc(24px + env(safe-area-inset-bottom,0px))}
.sheet .grab{width:44px;height:4px;border-radius:4px;background:rgba(244,241,230,.2);margin:4px auto 12px}
.sheet{position:relative}
.sheetnav{display:flex;align-items:center;min-height:38px;margin:0 0 2px}
.navback{border:0;background:rgba(244,241,230,.07);color:var(--glow);min-height:38px;border-radius:999px;padding:0 12px;display:inline-flex;align-items:center;gap:6px;font-family:var(--f-ui);font-size:15px;font-weight:700;letter-spacing:.02em;white-space:nowrap}
.navback:focus-visible,.navback:hover{background:rgba(231,196,90,.12);color:var(--gold)}
.sheet .stack{display:grid;gap:16px}
@media (prefers-reduced-motion:no-preference){.sheet{animation:up .28s cubic-bezier(.2,.8,.2,1)}}
@keyframes up{from{transform:translateY(30px);opacity:.4}}
.field{display:grid;gap:6px}
.field label,.field .lbl{font-family:var(--f-ui);font-size:15.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--glow-faint)}
.field input[type=text]{border-radius:12px;border:1px solid rgba(231,196,90,.35);background:rgba(22,19,42,.7);padding:11px 14px;font-size:20.5px}
.switch{display:flex;justify-content:space-between;align-items:center;gap:12px;font-family:var(--f-ui);font-size:18px;padding:8px 0;border-bottom:1px solid rgba(244,241,230,.08)}
.switch input{width:22px;height:22px;accent-color:var(--fuchsia)}

/* ritual mode */
.rite .guide{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin:14px 0 4px}.rite .btn.sm{padding:9px 14px;font-size:15px;color:#3a2a1a;border-color:rgba(154,116,20,.5)}
.rite{position:fixed;inset:0;z-index:30;background:var(--parch);color:var(--ink);display:flex;flex-direction:column;padding:env(safe-area-inset-top,0px) 0 env(safe-area-inset-bottom,0px)}
.rite::before{content:"";position:absolute;inset:10px;border:1px solid rgba(154,116,20,.55);box-shadow:inset 0 0 0 4px var(--parch),inset 0 0 0 5px rgba(154,116,20,.35);pointer-events:none;border-radius:4px}
.rite .wrap{position:relative;flex:1;overflow:auto;max-width:560px;width:100%;margin:0 auto;padding:26px 30px 20px;display:flex;flex-direction:column;gap:16px}
.rite .bar{display:flex;align-items:center;gap:8px}
.rite .bar>.navback{color:var(--ink);background:rgba(42,33,48,.08);padding:0 10px}
.rite .bar>.navback:hover,.rite .bar>.navback:focus-visible{color:#6E1142;background:rgba(110,17,66,.08)}
.rite .bar>svg{width:30px;height:30px}
.rite .bar .t{flex:1;min-width:0;font-family:var(--f-ui);font-size:15.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-soft)}
.rite .close{border:0;background:rgba(42,33,48,.08);width:36px;height:36px;border-radius:50%;font-family:var(--f-ui);font-size:22.5px}
.rite .count{font-family:var(--f-sc);font-size:18.5px;color:var(--ink-soft)}
.rite h2{color:var(--ink);font-size:41.5px}
.rite .text{font-size:23px;line-height:1.5}
.rite .say{font-family:var(--f-display);font-style:italic;font-size:28.5px;line-height:1.3;color:#6E1142;padding:14px 0;border-top:1px solid rgba(154,116,20,.4);border-bottom:1px solid rgba(154,116,20,.4);text-align:center;text-wrap:balance}
.rite .secret{font-size:19.5px;color:var(--ink-soft);font-style:italic}
.rite .timer{display:flex;align-items:center;gap:12px;font-family:var(--f-ui);font-variant-numeric:tabular-nums}
.rite .timer .clock{font-size:29.5px;font-weight:700;min-width:70px}
.rite .foot{position:relative;max-width:560px;width:100%;margin:0 auto;padding:12px 30px 22px;display:flex;gap:10px}
.rite .foot .btn{flex:1}
.rite .btn-ghost{color:var(--ink);box-shadow:inset 0 0 0 1px rgba(42,33,48,.35)}
.rite input[type=text]{background:rgba(255,255,255,.5);border:1px solid rgba(154,116,20,.5);color:var(--ink);border-radius:12px;padding:11px 14px;font-size:20.5px}
.rite input[type=text]::placeholder{color:#8a7a86}
.rite .field label{font-family:var(--f-ui);font-size:15.5px;letter-spacing:.08em;text-transform:uppercase}
.rite textarea{background:rgba(255,255,255,.5);border-color:rgba(154,116,20,.5);color:var(--ink)}
.rite textarea::placeholder{color:#8a7a86}
.rite .chip{color:var(--ink);border-color:rgba(42,33,48,.25);background:rgba(255,255,255,.35)}
.rite .chip[aria-pressed="true"]{background:#6E1142;color:#FFF3F8;border-color:#6E1142}
.pips{display:flex;gap:6px}
.pips i{height:3px;flex:1;border-radius:3px;background:rgba(42,33,48,.15)}
.pips i.on{background:#9A7414}
.toast{position:fixed;left:16px;right:16px;margin:0 auto;width:fit-content;top:calc(14px + env(safe-area-inset-top,0px));text-align:center;z-index:60;line-height:1.35;z-index:40;background:var(--glow);color:var(--ink);font-family:var(--f-ui);font-size:17px;padding:10px 16px;border-radius:16px;box-shadow:0 10px 24px -10px rgba(0,0,0,.6);max-width:440px}
/* circle strip on Today */
.strip{display:flex;gap:10px;overflow-x:auto;padding:4px 2px 8px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.strip::-webkit-scrollbar{display:none}
.av{flex:none;width:74px;border:0;background:none;padding:0;display:grid;justify-items:center;gap:4px;color:var(--glow)}
.av .frame{width:66px;height:80px;border-radius:33px 33px 12px 12px;display:grid;place-items:center;background:linear-gradient(180deg,rgba(44,38,80,.95),rgba(22,19,42,.95));box-shadow:inset 0 0 0 1px var(--c),0 8px 18px -10px var(--c)}
.av .frame svg{width:50px;height:50px}
.av .n{font-family:var(--f-display);font-size:18.5px;line-height:1}
/* talk */
.talk{position:fixed;inset:0;z-index:30;background:var(--night);display:flex;flex-direction:column;padding:env(safe-area-inset-top,0px) 0 env(safe-area-inset-bottom,0px)}
.talk .hd{max-width:480px;width:100%;margin:0 auto;display:flex;gap:9px;align-items:center;padding:12px 12px;border-bottom:1px solid var(--line)}
.talk .hd>.navback{padding:0 10px}
.talk .hd>svg{width:40px;height:40px;flex:none}
.talk .hd .who{flex:1;min-width:0}
.talk .hd .who .n{font-family:var(--f-display);font-size:26.5px;line-height:1}
.talk .hd .who .t{font-family:var(--f-ui);font-size:15.5px;letter-spacing:.08em;text-transform:uppercase}
.iconbtn{border:0;background:rgba(244,241,230,.08);min-width:38px;height:38px;border-radius:19px;padding:0 12px;font-family:var(--f-ui);font-size:16px;color:var(--glow)}
.talk .msgs{flex:1;overflow:auto;max-width:480px;width:100%;margin:0 auto;padding:16px;display:flex;flex-direction:column;gap:12px}
.intro{border:1px solid var(--line);border-radius:18px;background:linear-gradient(180deg,rgba(44,38,80,.9),rgba(33,28,59,.9));padding:16px;display:grid;gap:10px}
.intro .top2{display:grid;grid-template-columns:64px 1fr;gap:12px;align-items:center}
.intro .top2 svg{width:64px;height:64px}
.intro .kv{font-family:var(--f-ui);font-size:16.5px;line-height:1.5;color:var(--glow-dim)}
.intro .kv b{color:var(--glow);font-weight:700}
.bub{max-width:86%;padding:10px 14px;border-radius:16px;font-size:20.5px;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere}
.bub.me{align-self:flex-end;background:rgba(191,30,115,.26);border:1px solid rgba(224,67,143,.45);border-bottom-right-radius:4px}
.bub.them{align-self:flex-start;background:var(--night-2);border:1px solid var(--line);border-bottom-left-radius:4px;font-family:var(--f-display);font-size:23.5px;line-height:1.38}
.bub .btn{margin-top:10px;font-size:17px;padding:10px 14px}
.talk .ft{max-width:480px;width:100%;margin:0 auto;padding:10px 16px 14px;display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:end;border-top:1px solid rgba(244,241,230,.08)}
.talk textarea{min-height:48px;max-height:140px}
.talk .hint{grid-column:1/-1;font-family:var(--f-ui);font-size:15.5px;color:var(--glow-dim)}
.mic,.send{width:48px;height:48px;border-radius:50%;border:0;display:grid;place-items:center;flex:none}
.mic{background:rgba(231,196,90,.14);box-shadow:inset 0 0 0 1px var(--gold);color:var(--gold)}
.mic svg,.send svg{width:22px;height:22px}
.mic.on{background:var(--fuchsia);color:#fff;box-shadow:0 0 0 6px rgba(191,30,115,.25)}
@media (prefers-reduced-motion:no-preference){.mic.on{animation:ring 1.3s ease-out infinite}}
@keyframes ring{0%{box-shadow:0 0 0 0 rgba(224,67,143,.6)}100%{box-shadow:0 0 0 14px rgba(224,67,143,0)}}
.send{background:radial-gradient(120% 140% at 30% 0%,var(--fuchsia-hi),var(--fuchsia) 55%,#8E1054);color:#fff}
.composer{position:relative}
.composer textarea{padding-right:56px}
.composer .mic{position:absolute;right:6px;bottom:8px;width:42px;height:42px}
.composer .mic svg{width:20px;height:20px}
.talk .ft{display:flex;gap:8px;align-items:flex-end}
.talk .ft .composer{flex:1;min-width:0}
.talk .ft textarea{border-radius:24px;padding:12px 56px 12px 16px;resize:none}
.talk .ft .composer .mic{bottom:3px;right:3px}
.ask{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px;font-family:var(--f-ui);font-size:17px;color:var(--ink);position:relative}
.ask .chip,.dh .chip{color:var(--ink);border-color:rgba(42,33,48,.3);background:rgba(255,255,255,.4)}
.dh{margin-top:10px;display:grid;gap:8px;position:relative;color:var(--ink-soft)}
.linkish.dark{color:#6E1142;align-self:center;font-family:var(--f-ui);font-size:17px}
.page .actions{align-items:center;flex-wrap:wrap}
.quiet{border:1px solid rgba(244,241,230,.1);border-radius:16px;padding:14px 16px;background:rgba(33,28,59,.5)}
.quiet summary{cursor:pointer;list-style:none;display:grid;gap:4px}
.quiet summary::-webkit-details-marker{display:none}
.quiet .qt{font-family:var(--f-display);font-size:23.5px;line-height:1.25}
.ledg{margin-top:12px}
.ledg .lk{font-family:var(--f-ui);font-size:15.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--glow-faint)}
.ledg .li{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:start;padding:6px 0;border-bottom:1px solid rgba(244,241,230,.06);font-size:19.5px}
.x2{border:0;background:none;color:var(--glow-faint);font-size:22.5px;line-height:1;padding:0 4px}
.danger{box-shadow:inset 0 0 0 1px rgba(240,112,63,.6)!important;color:#F4A58A!important}
.btn-main.danger{background:#8E2A12;color:#fff!important}
.pill{margin-left:auto;border:1px solid rgba(244,241,230,.2);background:rgba(22,19,42,.5);color:var(--glow-dim);border-radius:999px;padding:5px 11px;font-family:var(--f-ui);font-size:15.5px}
.pill:hover{color:var(--glow);border-color:var(--gold)}
.li{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid rgba(244,241,230,.06);font-size:19.5px}
.checkin{border-color:rgba(231,196,90,.4)}
.ask.dark{color:var(--glow)}
.ask.dark .chip{color:var(--glow-dim);border-color:rgba(244,241,230,.2);background:rgba(244,241,230,.04)}
.plan{margin:10px 0 12px;padding-left:20px;display:grid;gap:8px}
.close.voice.on{background:#6E1142;color:#fff}
.simple{position:fixed;inset:0;z-index:60;background:var(--night);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:24px;text-align:center}
.simple .breath{width:120px;height:120px;border-radius:50%;background:radial-gradient(circle,rgba(231,196,90,.55),rgba(231,196,90,.08) 70%);box-shadow:0 0 60px rgba(231,196,90,.35)}
@media (prefers-reduced-motion:no-preference){.simple .breath{animation:breathe 10s ease-in-out infinite}}
@keyframes breathe{0%,100%{transform:scale(.6)}40%{transform:scale(1.25)}50%{transform:scale(1.25)}}
.simple .s1{font-family:var(--f-display);font-size:34.5px;line-height:1.15}
.simple .s2{font-size:23.5px;color:var(--glow-dim);max-width:30ch}
.simple .s3{font-family:var(--f-display);font-style:italic;font-size:23px;color:var(--gold)}
.group{border-top:1px solid rgba(244,241,230,.1);padding-top:10px}
.group summary{cursor:pointer;list-style:none;font-family:var(--f-display);font-size:23px;display:flex;justify-content:space-between}
.group summary::-webkit-details-marker{display:none}


.group .lbl{font-family:var(--f-ui);font-size:15.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--glow-faint)}
.addrow{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.addrow input{flex:1 1 140px;min-width:0;border-radius:12px;border:1px solid rgba(231,196,90,.35);background:rgba(22,19,42,.7);padding:10px 12px;font-size:19.5px;color:var(--glow)}
.x2.in{font-size:18.5px;padding:0 0 0 4px;color:var(--glow-dim)}
span.chip{display:inline-flex;align-items:center}
.altarsvg{width:100%;height:auto;margin-top:8px}
.ba{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:8px}
.ba blockquote{margin:4px 0 0;font-family:var(--f-display);font-style:italic;font-size:20.5px;line-height:1.35}
.eyes{position:fixed;inset:0;z-index:70;background:#000;color:#6c6480;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;font-family:var(--f-display);font-size:25.5px;text-align:center;padding:24px}
.yearbook p b{font-family:var(--f-ui);font-weight:700;font-size:16px;letter-spacing:.06em}
.chip.calm{border-color:rgba(231,196,90,.5);color:var(--gold)}
.badge.gold{background:rgba(231,196,90,.16);color:var(--gold);border-color:rgba(231,196,90,.5);margin-left:6px;vertical-align:middle}
.icircle{border-color:rgba(224,67,143,.45);background:linear-gradient(180deg,rgba(60,24,70,.85),rgba(33,28,59,.85))}
.icircle.open{border-color:rgba(231,196,90,.5)}
.chgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px}
.chc{display:grid;grid-template-columns:30px 1fr auto;gap:8px;align-items:center;text-align:left;border:1px solid rgba(244,241,230,.1);background:rgba(22,19,42,.5);border-radius:12px;padding:8px;color:inherit}
.chc svg{width:30px;height:30px}
.chc .cn{font-family:var(--f-display);font-size:18.5px;line-height:1.1;min-width:0}
.cl{font-family:var(--f-ui);font-size:15.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--gold)}
.li.jl{width:100%;border:0;background:none;text-align:left;color:inherit}
.promise{font-family:var(--f-display);font-style:italic;font-size:19.5px;color:var(--glow-dim);text-align:center;margin-top:12px}
.handoff{display:grid;grid-template-columns:30px 1fr;gap:10px;align-items:start;padding:16px 18px 4px}
.handoff svg{width:30px;height:30px}
.handoff p{font-family:var(--f-display);font-style:italic;font-size:22.5px;line-height:1.35;color:var(--glow-dim)}
.handoff .who2{display:block;font-family:var(--f-ui);font-style:normal;font-size:15.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--gold);margin-bottom:2px}
.recall{border:1px solid rgba(231,196,90,.35);border-radius:14px;padding:12px 14px;background:rgba(22,19,42,.5)}
.recall blockquote{margin:6px 0 0;font-family:var(--f-display);font-style:italic;font-size:23.5px;line-height:1.35}
.whynow{margin-top:12px;border-top:1px solid rgba(154,116,20,.35);padding-top:10px;position:relative}
.whynow summary{cursor:pointer;font-family:var(--f-ui);font-size:15.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#6E1142;list-style:none}
.whynow summary::-webkit-details-marker{display:none}


.whytalk{margin-top:8px;font-size:20px;line-height:1.55;color:var(--ink)}
.whysign{margin-top:8px;font-family:var(--f-display);font-style:italic;font-size:22.5px;color:#6E1142}
.whysign span{font-family:var(--f-ui);font-style:normal;font-size:15.5px;letter-spacing:.08em;color:var(--ink-soft)}
.whynow dl{margin:10px 0 0;display:grid;gap:8px}
.whynow dt{font-family:var(--f-ui);font-size:15.5px;font-weight:600;letter-spacing:.06em;color:var(--ink)}
.whynow dd{margin:0;font-size:19px;line-height:1.45;color:var(--ink-soft)}
.linkish{border:0;background:none;padding:0;color:var(--gold);font:inherit;text-decoration:underline;text-underline-offset:2px}
.badge{display:inline-block;font-family:var(--f-ui);font-size:15.5px;letter-spacing:.08em;text-transform:uppercase;padding:3px 9px;border-radius:999px;background:rgba(191,30,115,.2);color:#F7B3D3;border:1px solid rgba(224,67,143,.45)}
.page.locked{background:linear-gradient(180deg,#E9DFC6,#DCCDA8)}
.page .lock{font-family:var(--f-ui);font-size:15.5px;letter-spacing:.08em;text-transform:uppercase;color:#6E1142;font-weight:600}
.disclaim{font-family:var(--f-ui);font-size:15.5px;color:var(--glow-faint);text-align:center;line-height:1.5}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.chip{padding:9px 15px}
.feelhint{margin-top:10px}
@media (min-width:760px){html{zoom:1.35}}
@media (min-width:1300px) and (min-height:900px){html{zoom:1.5}}
.letterc{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:center;text-align:left;border-color:rgba(231,196,90,.45);background:linear-gradient(135deg,rgba(191,30,115,.16),rgba(33,28,59,.9))}
.letterc>span{display:grid;gap:4px}.letterc .lt{font-family:var(--f-display);font-size:21px;line-height:1.2;color:var(--glow)}
.page.letter{padding:24px 22px}.page.letter p{font-family:var(--f-display);font-size:19px;line-height:1.6;margin:12px 0 0;color:var(--ink)}
.page.letter .intent{margin-top:16px;padding-top:12px;border-top:1px solid rgba(154,116,20,.4);font-family:var(--f-display);font-style:italic;font-size:19px;color:#6E1142}
.page.letter .intent b{display:block;font-family:var(--f-ui);font-style:normal;font-size:14px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft)}
.headline{display:grid;gap:14px;border-color:rgba(231,196,90,.5)}.headline .hl{display:grid;grid-template-columns:58px 1fr;gap:12px;align-items:center}.headline .hl>span{display:grid;gap:3px}.headline b{font-family:var(--f-display);font-weight:500;font-size:19px}
.nudge{border-width:1.5px}
.trialc{border-color:rgba(231,196,90,.5);background:linear-gradient(135deg,rgba(231,196,90,.1),rgba(33,28,59,.9))}
.aurasays p{margin:0}.aurasays .who2{color:var(--gold)}

/* ---------- Decorative layer ---------- */
body{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='300' height='300'><g fill='%23F4E7B8'><circle cx='20' cy='30' r='.9'/><circle cx='140' cy='80' r='.6'/><circle cx='250' cy='20' r='1.1'/><circle cx='70' cy='160' r='.7'/><circle cx='210' cy='190' r='.9'/><circle cx='120' cy='250' r='.6'/><circle cx='280' cy='270' r='.8'/><circle cx='30' cy='280' r='.6'/></g><path d='M190 120l1.4 3.6 3.6 1.4-3.6 1.4-1.4 3.6-1.4-3.6-3.6-1.4 3.6-1.4z' fill='%23E7C45A' opacity='.7'/><path d='M60 60l1 2.6 2.6 1-2.6 1-1 2.6-1-2.6-2.6-1 2.6-1z' fill='%23E7C45A' opacity='.5'/></svg>");background-size:300px 300px}
.label::before{content:"✦";margin-right:.5em;font-size:.85em;opacity:.85}
.rite .bar .t::before,.page .kicker::before{content:none}
.card,.aura{position:relative}
.card::after,.aura::after{content:"";position:absolute;inset:6px;pointer-events:none;background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40'><g fill='none' stroke='%23E7C45A' stroke-width='1.1' stroke-linecap='round'><path d='M2 38V12Q2 2 12 2h26'/><path d='M10 10c6 0 9 3 9 9M10 10c0 6 3 9 9 9'/></g><circle cx='10' cy='10' r='2' fill='%23E7C45A'/></svg>") top left/26px 26px no-repeat,url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40'><g transform='translate(40 40) scale(-1 -1)'><g fill='none' stroke='%23E7C45A' stroke-width='1.1' stroke-linecap='round'><path d='M2 38V12Q2 2 12 2h26'/><path d='M10 10c6 0 9 3 9 9M10 10c0 6 3 9 9 9'/></g><circle cx='10' cy='10' r='2' fill='%23E7C45A'/></g></svg>") bottom right/26px 26px no-repeat;opacity:.55;border-radius:inherit}
.aura::after{opacity:.8;background-size:34px 34px,34px 34px}
.sky{border-bottom:0;background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 20' preserveAspectRatio='none'><path d='M0 10h180M220 10h180' stroke='%23E7C45A' stroke-opacity='.45'/><path d='M200 3l2.2 4.8L207 10l-4.8 2.2L200 17l-2.2-4.8L193 10l4.8-2.2z' fill='%23E7C45A'/><circle cx='186' cy='10' r='1.5' fill='%23E7C45A'/><circle cx='214' cy='10' r='1.5' fill='%23E7C45A'/></svg>") bottom center/100% 16px no-repeat;padding-bottom:26px}
.howbtn{margin-left:auto;width:32px;height:32px;border-radius:50%;border:1px solid rgba(231,196,90,.5);background:rgba(231,196,90,.08);color:var(--gold);font-family:var(--f-display);font-size:18px;line-height:1}
.popseal{display:grid;place-items:center;margin-top:4px}.popseal svg{width:64px;height:64px;filter:drop-shadow(0 0 18px rgba(231,196,90,.35))}
.auraPop .aurasays p{font-size:20px;line-height:1.5}
.howpt{display:grid;grid-template-columns:44px 1fr;gap:12px;align-items:start;padding:10px 0;border-bottom:1px solid rgba(231,196,90,.14)}
.howpt .hn{font-family:var(--f-display);color:var(--gold);font-size:20px;text-align:center;border:1px solid rgba(231,196,90,.4);border-radius:50%;width:40px;height:40px;display:grid;place-items:center}
.howpt b{display:block;font-family:var(--f-display);font-weight:500;font-size:19px;margin-bottom:2px}
.disclaim .linkish{color:var(--gold)}
/* Ritual pages: an illuminated page */
.rite{background:radial-gradient(120% 90% at 50% 40%,rgba(255,250,235,.0) 55%,rgba(154,116,20,.22) 100%),url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='p'><feTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='4' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 .45 0 0 0 0 .33 0 0 0 0 .12 0 0 0 .09 0'/></filter><rect width='100%' height='100%' filter='url(%23p)'/></svg>"),linear-gradient(180deg,#F6EDD5,#EBDDB9)}
.rite::before{inset:8px;border:1.5px solid rgba(154,116,20,.6);box-shadow:inset 0 0 0 5px rgba(246,237,213,.6),inset 0 0 0 6px rgba(154,116,20,.35);border-radius:6px;background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 80 80'><g fill='none' stroke='%239A7414' stroke-width='1.3' stroke-linecap='round'><path d='M3 77V18Q3 3 18 3h59'/><path d='M10 77V24Q10 10 24 10h53' stroke-opacity='.45'/><path d='M18 18c10 0 16 6 16 16M18 18c0 10 6 16 16 16'/><path d='M34 3c0 7 4 11 11 11M3 34c7 0 11 4 11 11'/><path d='M50 10c3-5 9-5 12 0M10 50c-5 3-5 9 0 12' stroke-opacity='.6'/></g><circle cx='18' cy='18' r='3.4' fill='%23BF1E73'/><circle cx='34' cy='34' r='1.8' fill='%239A7414'/></svg>") top left/74px no-repeat,url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 80 80'><g transform='translate(80 0) scale(-1 1)' fill='none' stroke='%239A7414' stroke-width='1.3' stroke-linecap='round'><path d='M3 77V18Q3 3 18 3h59'/><path d='M10 77V24Q10 10 24 10h53' stroke-opacity='.45'/><path d='M18 18c10 0 16 6 16 16M18 18c0 10 6 16 16 16'/><path d='M34 3c0 7 4 11 11 11M3 34c7 0 11 4 11 11'/><path d='M50 10c3-5 9-5 12 0M10 50c-5 3-5 9 0 12' stroke-opacity='.6'/></g><g transform='translate(80 0) scale(-1 1)'><circle cx='18' cy='18' r='3.4' fill='%23BF1E73'/><circle cx='34' cy='34' r='1.8' fill='%239A7414'/></g></svg>") top right/74px no-repeat,url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 80 80'><g transform='translate(0 80) scale(1 -1)' fill='none' stroke='%239A7414' stroke-width='1.3' stroke-linecap='round'><path d='M3 77V18Q3 3 18 3h59'/><path d='M10 77V24Q10 10 24 10h53' stroke-opacity='.45'/><path d='M18 18c10 0 16 6 16 16M18 18c0 10 6 16 16 16'/><path d='M34 3c0 7 4 11 11 11M3 34c7 0 11 4 11 11'/><path d='M50 10c3-5 9-5 12 0M10 50c-5 3-5 9 0 12' stroke-opacity='.6'/></g><g transform='translate(0 80) scale(1 -1)'><circle cx='18' cy='18' r='3.4' fill='%23BF1E73'/><circle cx='34' cy='34' r='1.8' fill='%239A7414'/></g></svg>") bottom left/74px no-repeat,url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 80 80'><g transform='translate(80 80) scale(-1 -1)' fill='none' stroke='%239A7414' stroke-width='1.3' stroke-linecap='round'><path d='M3 77V18Q3 3 18 3h59'/><path d='M10 77V24Q10 10 24 10h53' stroke-opacity='.45'/><path d='M18 18c10 0 16 6 16 16M18 18c0 10 6 16 16 16'/><path d='M34 3c0 7 4 11 11 11M3 34c7 0 11 4 11 11'/><path d='M50 10c3-5 9-5 12 0M10 50c-5 3-5 9 0 12' stroke-opacity='.6'/></g><g transform='translate(80 80) scale(-1 -1)'><circle cx='18' cy='18' r='3.4' fill='%23BF1E73'/><circle cx='34' cy='34' r='1.8' fill='%239A7414'/></g></svg>") bottom right/74px no-repeat}
.rite .wm{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none;opacity:.09}
.rite .wm svg{width:min(88vw,420px);height:auto}
.rite .wm svg circle[fill^="rgba"]{fill:none}
.rite .wrap{padding:30px 34px 20px;text-align:center;align-items:center}
.rite .wrap>*{max-width:100%}
.rite .bar{width:100%;text-align:left}
.rite .bar svg{width:38px;height:38px;filter:drop-shadow(0 2px 4px rgba(42,33,48,.25))}
.rite .pips{width:100%;gap:0;align-items:center;justify-content:center;margin-top:2px}
.rite .pips i{flex:none;width:10px;height:10px;border-radius:1px;transform:rotate(45deg);background:transparent;box-shadow:inset 0 0 0 1.5px #9A7414;margin:0 11px;position:relative}

.rite .pips i.on{background:#9A7414}
.rite .pips i.now{background:#BF1E73;box-shadow:0 0 0 3px rgba(191,30,115,.18)}
.rite .count{display:flex;align-items:center;gap:10px;justify-content:center;font-family:var(--f-display);font-style:italic;color:var(--ink-soft);margin-top:6px}
.rite .seal{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#E0438F,#8E1253 70%);color:#FFE9A8;font-family:var(--f-display);font-style:normal;font-size:17px;font-weight:600;box-shadow:0 3px 8px -2px rgba(110,17,66,.6),inset 0 0 0 3px rgba(255,233,168,.25);letter-spacing:.02em}
.rite h2{font-size:40px;line-height:1.08;text-wrap:balance;margin-top:2px}
.rite .orn{width:200px;height:18px;flex:none}
.rite .purpose{font-family:var(--f-display);font-style:italic;font-size:19px;color:var(--ink-soft);max-width:30ch}
.rite .text{font-size:22px;line-height:1.55;max-width:30ch}
.rite .say{position:relative;font-family:var(--f-display);font-style:italic;font-size:26px;line-height:1.35;color:#6E1142;padding:22px 18px 18px;margin-top:6px;border:1px solid rgba(154,116,20,.45);border-radius:14px;background:rgba(255,255,255,.35);text-wrap:balance;max-width:34ch}
.rite .say .sayl{position:absolute;top:-11px;left:50%;transform:translateX(-50%);background:#F3E8CC;padding:0 10px;font-family:var(--f-ui);font-style:normal;font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:#9A7414;white-space:nowrap}
.rite .timer{justify-content:center;flex-direction:column;gap:10px}
.rite .timer .clock{display:grid;place-items:center;width:112px;height:112px;border-radius:50%;border:2px solid #9A7414;box-shadow:inset 0 0 0 6px rgba(246,237,213,.8),inset 0 0 0 7px rgba(154,116,20,.35);font-family:var(--f-display);font-size:30px}
.rite .secret{max-width:32ch;font-family:var(--f-display)}
.rite .field,.rite textarea,.rite .switch,.rite .wrap>div{width:100%;text-align:left}
.rite .foot .btn-ink{box-shadow:inset 0 0 0 1px rgba(231,196,90,.6)}
.page{background:radial-gradient(120% 90% at 50% 40%,transparent 60%,rgba(154,116,20,.18) 100%),url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='p'><feTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='4' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 .45 0 0 0 0 .33 0 0 0 0 .12 0 0 0 .09 0'/></filter><rect width='100%' height='100%' filter='url(%23p)'/></svg>"),linear-gradient(180deg,var(--parch),var(--parch-2))}
.page.letter::after{content:"";position:absolute;inset:10px;pointer-events:none;background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 80 80'><g fill='none' stroke='%239A7414' stroke-width='1.3' stroke-linecap='round'><path d='M3 77V18Q3 3 18 3h59'/><path d='M10 77V24Q10 10 24 10h53' stroke-opacity='.45'/><path d='M18 18c10 0 16 6 16 16M18 18c0 10 6 16 16 16'/><path d='M34 3c0 7 4 11 11 11M3 34c7 0 11 4 11 11'/><path d='M50 10c3-5 9-5 12 0M10 50c-5 3-5 9 0 12' stroke-opacity='.6'/></g><circle cx='18' cy='18' r='3.4' fill='%23BF1E73'/><circle cx='34' cy='34' r='1.8' fill='%239A7414'/></svg>") top left/54px no-repeat,url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 80 80'><g transform='translate(80 80) scale(-1 -1)' fill='none' stroke='%239A7414' stroke-width='1.3' stroke-linecap='round'><path d='M3 77V18Q3 3 18 3h59'/><path d='M10 77V24Q10 10 24 10h53' stroke-opacity='.45'/><path d='M18 18c10 0 16 6 16 16M18 18c0 10 6 16 16 16'/><path d='M34 3c0 7 4 11 11 11M3 34c7 0 11 4 11 11'/><path d='M50 10c3-5 9-5 12 0M10 50c-5 3-5 9 0 12' stroke-opacity='.6'/></g><g transform='translate(80 80) scale(-1 -1)'><circle cx='18' cy='18' r='3.4' fill='%23BF1E73'/><circle cx='34' cy='34' r='1.8' fill='%239A7414'/></g></svg>") bottom right/54px no-repeat;opacity:.8}
.page.letter h3{text-align:center}.page.letter .kicker{text-align:center}
.auraPop .aurasays>svg{display:none}.auraPop .aurasays{display:block;text-align:center}.auraPop .aurasays .who2{display:block;margin-bottom:6px}
.aura::after{inset:4px;background-size:22px 22px,22px 22px}
.rite .foot .btn{white-space:nowrap;padding-left:12px;padding-right:12px}
.group summary::after,.whynow summary::after{content:"";display:inline-block;width:8px;height:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);margin-left:12px;vertical-align:4px;transition:transform .2s}
.group summary::after{color:var(--gold)}
.group[open] summary::after,.whynow[open] summary::after{transform:rotate(-135deg);vertical-align:0}
.brand .eyebrow{margin-bottom:10px}
.brand .eyebrow:has(#memBadge[hidden]){display:none}
.ghosts{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:14px}
.ghosts span{width:34px;height:34px;border-radius:50%;border:1px dashed rgba(231,196,90,.35);background:radial-gradient(circle,rgba(231,196,90,.12),transparent 70%)}
.spread{position:relative;height:210px;margin-top:14px}
.spread .tarot.sp{position:absolute;left:50%;top:18px;width:96px;height:144px;margin-left:-48px;transform:translateX(calc(var(--i) * 58px)) rotate(calc(var(--i) * 7deg)) translateY(calc(var(--i) * var(--i) * 3px));transform-origin:50% 120%;transition:transform .5s cubic-bezier(.2,.7,.2,1),opacity .4s,filter .3s;filter:drop-shadow(0 8px 14px rgba(0,0,0,.5))}
.spread .tarot.sp:hover,.spread .tarot.sp:focus-visible{transform:translateX(calc(var(--i) * 58px)) rotate(calc(var(--i) * 7deg)) translateY(-14px)}
.spread.chosen .tarot.sp:not(.picked){opacity:0;transform:translateX(calc(var(--i) * 58px)) rotate(calc(var(--i) * 7deg)) translateY(40px)}
.spread .tarot.sp.picked{transform:translateX(0) rotate(0) translateY(-6px) scale(1.12);z-index:2}
.spread .tarot .front svg{width:40px;height:40px}.spread .tarot .front .n{font-size:16px}
.seal-btn.gear{width:auto;height:auto;display:grid;justify-items:center;gap:2px;color:var(--gold);filter:drop-shadow(0 4px 8px rgba(0,0,0,.5))}
.seal-btn.gear svg{width:58px;height:58px;display:block;transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.seal-btn.gear:hover svg,.seal-btn.gear:focus-visible svg{transform:rotate(45deg)}
.seal-btn.gear .gl{font-family:var(--f-ui);font-size:12.5px;letter-spacing:.1em;text-transform:uppercase}
.safety h2{font-size:30px}
.safesteps{margin:0;padding:0 0 0 0;list-style:none;counter-reset:s;display:grid;gap:10px}
.safesteps li{counter-increment:s;display:grid;grid-template-columns:34px 1fr;gap:10px;align-items:start;font-size:18px;line-height:1.45}
.safesteps li::before{content:counter(s);display:grid;place-items:center;width:30px;height:30px;border-radius:50%;border:1px solid rgba(231,196,90,.5);color:var(--gold);font-family:var(--f-display)}
a.btn{text-decoration:none}
.micwrap{position:relative;display:block;width:100%;flex:1;min-width:0}
.micwrap>input,.micwrap>textarea{width:100%;padding-right:54px!important}
.micwrap>.mic{position:absolute;right:5px;top:50%;transform:translateY(-50%);width:40px;height:40px}
.micwrap.ta>.mic{top:auto;bottom:8px;transform:none}
.micwrap>.mic svg{width:19px;height:19px}
.rite .micwrap>.mic{background:rgba(110,17,66,.1);box-shadow:inset 0 0 0 1px #9A7414;color:#6E1142}
.addrow{flex-wrap:wrap}
.addrow>.micwrap{flex:1 1 100%}
.addrow>input[type=date]{flex:1 1 auto;min-width:0}
.addrow>.btn{margin-left:auto}
.agecheck{border:1px solid rgba(231,196,90,.35);border-radius:12px;padding:12px 14px;border-bottom-width:1px}
/* Chamber cards: symbol and status on top, the name gets the whole width below */
.chc{grid-template-columns:auto 1fr;grid-template-areas:"g l" "n n";align-items:center;row-gap:6px;padding:10px 12px}
.chc>svg{grid-area:g}
.chc .cl{grid-area:l;justify-self:end;font-size:12.5px;letter-spacing:.12em;padding:2px 8px;border-radius:999px;border:1px solid rgba(231,196,90,.35)}
.chc .cn{grid-area:n;font-size:17px;line-height:1.2;overflow-wrap:break-word}
.gate{position:fixed;inset:0;z-index:55;overflow:auto;display:flex;align-items:center;justify-content:center;padding:calc(24px + env(safe-area-inset-top,0px)) 18px calc(24px + env(safe-area-inset-bottom,0px));background:radial-gradient(900px 500px at 110% -10%,rgba(191,30,115,.25),transparent 60%),radial-gradient(800px 520px at -20% 40%,rgba(58,132,132,.18),transparent 60%),var(--night)}
body:has(#talk) .scrim{z-index:40}body:has(#gate) .scrim{z-index:60}
.field input[type=tel]{border-radius:12px;border:1px solid rgba(231,196,90,.35);background:rgba(22,19,42,.7);padding:11px 14px;font-size:20.5px;color:var(--glow);width:100%}
.gate .gatesnd{position:absolute;top:calc(14px + env(safe-area-inset-top,0px));right:14px}
.gate .in{max-width:420px;width:100%;display:grid;gap:16px}
.gate h1{margin:0;text-align:center;font-family:var(--f-display);font-weight:400;font-size:34px;line-height:1.1}
.gate .aurasays p{font-size:20px;line-height:1.5}
.switch input{flex:none}
.home{padding:4px 2px 0}
.home .greet{font-family:var(--f-ui);font-size:16px;letter-spacing:.08em;text-transform:uppercase;color:var(--gold)}
.home .hline{font-size:30px;margin-top:6px}
.home .obs{font-family:var(--f-display);font-style:italic;font-size:21px;line-height:1.45;color:var(--glow-dim);margin-top:10px}
.feelset{margin-top:10px}.feelset summary{cursor:pointer;color:var(--glow-dim);list-style:none}.feelset summary::-webkit-details-marker{display:none}.feelset summary::after{content:" ›"}
.trio{display:grid;gap:12px}.hcard h3{font-size:22px}
.sky{grid-template-columns:auto 1fr;padding:8px 0 14px!important}.sky svg{width:40px!important;height:40px!important}.sky .phase{font-size:19px!important}.sky .meta{font-size:14px!important}
.g .e.job{text-transform:none;letter-spacing:0;font-size:13.5px;line-height:1.25;color:var(--glow-dim)}
.memline{margin-top:4px}
.rhythm .speaker{display:flex;align-items:center;gap:10px}.rhythm .who{font-family:var(--f-ui);font-size:14px;font-weight:700;letter-spacing:.16em;text-transform:uppercase}.rhythm .q2{font-family:var(--f-display);font-size:20px}
.gchips{display:flex;gap:6px;overflow-x:auto;margin-top:12px;padding-bottom:2px}.threadrow{display:block;width:100%;text-align:left;background:none;border:0;border-top:1px solid rgba(244,241,230,.1);padding:12px 2px;color:var(--glow);font:inherit;cursor:pointer}.threadrow b{display:block;font-family:var(--f-display);font-size:19px;font-weight:500}.threadrow span{font-family:var(--f-ui);font-size:14px;color:var(--glow-dim)}.threadrow[aria-pressed="true"] b{color:var(--gold)}
.chip.sm{padding:5px 10px;font-size:13px;min-height:0}
.tarot .cf{display:flex;flex-direction:column;align-items:center;gap:4px}.tarot .cnum{font-family:var(--f-display);font-size:13px;letter-spacing:.2em;color:#9A7414}.tarot .cname{font-family:var(--f-display);font-size:15px;line-height:1.15;font-weight:600}.tarot .front .n{font-size:13px!important;letter-spacing:.12em;text-transform:uppercase;opacity:.7}
.cardq{margin-top:12px;padding:10px 12px;border-left:2px solid var(--gold);background:rgba(231,196,90,.06);border-radius:0 12px 12px 0}
details.whythis{margin-top:8px}details.whythis>summary{list-style:none;cursor:pointer;font-family:var(--f-ui);font-size:15px;color:var(--gold);display:inline-block}details.whythis>summary::-webkit-details-marker{display:none}
.remember{margin-top:12px;padding:10px 12px;border-left:2px solid var(--gold);background:rgba(231,196,90,.06);border-radius:0 12px 12px 0}.remember p{font-family:var(--f-ui);font-size:15.5px;margin-top:4px;color:var(--glow)}
.dotsrow{display:flex;gap:8px;justify-content:center;margin:20px 0 16px}.dotsrow i{width:8px;height:8px;border-radius:50%;background:rgba(244,241,230,.25)}.dotsrow i.on{background:var(--gold)}
details.more{margin:6px 0 4px}details.more>summary{list-style:none;cursor:pointer;font-family:var(--f-ui);font-size:15.5px;color:var(--glow-dim);padding:14px 4px;text-align:center}details.more>summary::after{content:" \203A"}details.more[open]>summary::after{content:" \2039"}details.more>summary::-webkit-details-marker{display:none}
.gplus{width:40px;height:40px;border-radius:50%;border:1px dashed rgba(231,196,90,.6);display:grid;place-items:center;font-size:22px;color:var(--gold)}.gchip{display:flex;flex-direction:column;align-items:center;gap:4px;background:none;border:0;color:var(--glow);font-family:var(--f-ui);font-size:14px;min-width:68px;padding:4px;cursor:pointer}
.addnums{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:12px 0}.addnums div{text-align:center}.addnums b{display:block;font-family:var(--f-display);font-size:26px;color:var(--gold)}.addnums span{display:block;font-family:var(--f-ui);font-size:13px;line-height:1.3;color:var(--glow-dim);margin-top:2px}
select{background:rgba(10,8,24,.55);color:var(--glow);border:1px solid rgba(231,196,90,.35);border-radius:14px;padding:12px 10px;font:inherit;font-size:17px;color-scheme:dark;flex:1}
input[type=date]{width:100%;background:rgba(10,8,24,.55);color:var(--glow);border:1px solid rgba(231,196,90,.35);border-radius:14px;padding:12px 14px;font:inherit;font-size:17px;color-scheme:dark}
.dots{display:grid;grid-template-columns:repeat(14,1fr);gap:5px;margin-top:6px}.dots i{aspect-ratio:1;border-radius:50%;background:rgba(244,241,230,.09)}.dots i.on{background:var(--gold);box-shadow:0 0 8px rgba(231,196,90,.45)}
textarea{min-height:124px}.talk textarea{min-height:48px}
input::placeholder,textarea::placeholder{text-overflow:ellipsis}
.topctl{display:grid;justify-items:center;gap:8px;flex:none}
.sndbar{display:flex;gap:6px;align-items:center}.snd.one{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;padding:0;background:rgba(244,241,230,.06);border:1px solid rgba(231,196,90,.35);color:var(--gold)}.snd.one svg{width:22px;height:22px}.snd.one.off{color:var(--glow-dim);border-color:rgba(244,241,230,.18)}.rite .snd.one{background:rgba(42,30,58,.06);border-color:rgba(154,116,20,.45);color:#7a5a12}
.sndrow{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;padding:6px 0;border-top:1px solid rgba(244,241,230,.08)}.sndrow>span{font-family:var(--f-display);font-size:19px}
body:has(#rite) .scrim{z-index:45}
.snd{width:34px;height:34px;border-radius:50%;border:1px solid rgba(231,196,90,.45);background:rgba(231,196,90,.08);color:var(--gold);display:grid;place-items:center;padding:0;position:relative}
.snd svg,.talk .hd .snd svg,.rite .bar .snd svg{width:17px;height:17px;filter:none}
.snd.off{opacity:.75}
.snd.lab{width:auto;height:32px;border-radius:999px;padding:0 11px 0 9px;display:inline-flex;gap:5px;font-family:var(--f-ui);font-size:13px;font-weight:700;letter-spacing:.02em;white-space:nowrap}
.snd.lab.off::after{left:9px;right:auto;width:17px}
.rite .snd.lab,.talk .snd.lab{width:38px;height:38px;padding:0;justify-content:center;gap:0}
.rite .snd.lab span,.talk .snd.lab span{display:none}
.rite .snd.lab.off::after,.talk .snd.lab.off::after{left:10px;width:18px}
.toast{z-index:80!important}
.snd.off::after{content:"";position:absolute;left:7px;right:7px;top:50%;height:2px;background:currentColor;transform:rotate(-45deg);border-radius:2px}
.rite .snd{color:#6E1142;border-color:rgba(154,116,20,.5);background:rgba(255,255,255,.35);width:36px;height:36px}
.talk .snd{width:38px;height:38px}
body.novoice .hear{display:none}
.hear{float:right;margin:-4px -4px 4px 8px;width:34px;height:34px;border-radius:50%;border:1px solid rgba(231,196,90,.4);background:rgba(231,196,90,.08);color:var(--gold);display:grid;place-items:center;font-style:normal}
.hear.on{background:var(--fuchsia);border-color:var(--fuchsia);color:#fff;box-shadow:0 0 0 5px rgba(191,30,115,.2)}
.bdayErr{color:#f2b8a0;margin-top:6px}
.chc.wide{display:flex;align-items:center;gap:10px;width:100%;margin-top:12px}.chc.wide .cl{margin-left:auto}
.circle .g.ghost{opacity:.45;border-style:dashed}.circle .g.ghost .gq{display:grid;place-items:center;width:44px;height:44px;margin:0 auto;border-radius:50%;border:1px dashed var(--line);font-family:var(--f-display);font-size:22px;color:var(--gold)}
/* ---------- The same world under different light (data-daypart on <html>) ---------- */
:root{--world-bg:#16132A;--dp-a:rgba(191,30,115,.22);--dp-b:rgba(58,132,132,.16);--dp-c:rgba(231,196,90,0);--dp-wash:rgba(22,19,42,0);--moonglow:.6}
html[data-daypart=dawn]{--world-bg:#403B6B;--dp-a:rgba(240,150,190,.38);--dp-b:rgba(105,105,180,.34);--dp-c:rgba(242,205,112,.22);--dp-wash:rgba(58,45,110,.10)}
html[data-daypart=morning]{--world-bg:#665E88;--dp-a:rgba(243,177,205,.34);--dp-b:rgba(106,188,184,.30);--dp-c:rgba(244,211,126,.22);--dp-wash:rgba(84,75,126,.06)}
html[data-daypart=afternoon]{--world-bg:#5F587A;--dp-a:rgba(200,115,176,.28);--dp-b:rgba(91,180,177,.34);--dp-c:rgba(244,211,126,.20);--dp-wash:rgba(77,64,111,.06)}
html[data-daypart=transition]{--world-bg:#53334F;--dp-a:rgba(229,79,148,.42);--dp-b:rgba(244,155,72,.28);--dp-c:rgba(241,189,88,.30);--dp-wash:rgba(61,27,58,.06)}
html[data-daypart=evening]{--world-bg:#211C3B;--dp-a:rgba(191,30,115,.24);--dp-b:rgba(58,132,132,.16);--dp-c:rgba(231,196,90,.04);--dp-wash:rgba(22,19,42,.02)}
html[data-daypart=deepnight]{--world-bg:#0C0918;--dp-a:rgba(120,30,90,.14);--dp-b:rgba(40,80,90,.08);--dp-c:rgba(0,0,0,0);--dp-wash:rgba(8,6,18,.30)}
body::before{opacity:1;transition:background 2s ease;background:
  radial-gradient(1200px 500px at 110% -10%,var(--dp-a),transparent 60%),
  radial-gradient(900px 520px at -20% 30%,var(--dp-b),transparent 60%),
  radial-gradient(1100px 420px at 50% 112%,var(--dp-c),transparent 65%),
  linear-gradient(var(--dp-wash),var(--dp-wash))}
html[data-daypart=deepnight] .foil.shine{animation:none}
.sky svg{filter:drop-shadow(0 0 calc(var(--moonglow) * 14px) rgba(255,240,200,calc(var(--moonglow) * .45)))}
/* Daily Alchemy strip */
.sky{display:block;padding:16px 0 20px}
.alch{display:grid;grid-template-columns:auto 1fr;gap:16px;align-items:center;width:100%;text-align:left;background:rgba(24,20,47,.42);border:1px solid rgba(244,241,230,.18);padding:14px 14px;border-radius:18px;color:inherit;cursor:pointer;box-shadow:0 12px 30px -24px rgba(0,0,0,.9)}
.alch:hover,.alch:focus-visible{border-color:rgba(231,196,90,.55);background:rgba(24,20,47,.52)}
.alch .alt{display:grid;gap:5px;min-width:0}
.alch .adate{font-family:var(--f-display);font-size:22px;line-height:1.05;color:var(--glow)}
.alch .aline{font-family:var(--f-ui);font-size:15px;letter-spacing:.045em;color:var(--glow-dim)}
.alch .aplant{font-size:17px}.alch .aplant b{font-weight:700;color:var(--gold)}
.alch .aread{font-family:var(--f-display);font-style:italic;font-size:18.5px;line-height:1.35;color:var(--glow)}
.alch .aopen{font-family:var(--f-ui);font-size:14.5px;font-weight:700;letter-spacing:.04em;color:var(--gold);margin-top:2px}
.alchsheet .pday{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin:8px 0}
.alchsheet .pday div{font-size:13px;line-height:1.25;padding:6px;border:1px solid rgba(244,241,230,.1);border-radius:10px}
.alchsheet .pday div span{display:block;font-family:var(--f-ui);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--glow-faint)}
.alchsheet .pday div.on{border-color:var(--gold)}
.relayrow{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:8px}.relay{font-family:var(--f-ui);font-size:13px;padding:4px 10px;border-radius:999px;border:1px solid rgba(244,241,230,.15)}.relay.on{border-color:var(--gold);color:var(--gold)}.rarr{color:var(--glow-faint)}
/* Focus, since, arc, day ritual */
.card.focus{border-color:rgba(231,196,90,.55)}
.since{border-left:2px solid var(--gold);padding:6px 12px;margin:4px 0 12px;background:rgba(231,196,90,.05);border-radius:0 12px 12px 0}.since p{font-size:16.5px;margin:2px 0}
.arcq{margin-top:12px;padding-top:10px;border-top:1px solid rgba(244,241,230,.08)}.arcq input{border-radius:12px;border:1px solid rgba(231,196,90,.35);background:rgba(22,19,42,.7);padding:9px 12px;font-size:17px}
.arcq.done p{font-family:var(--f-display);font-style:italic;margin-top:2px}
.dayrit{margin-top:12px;padding-top:10px;border-top:1px solid rgba(244,241,230,.08)}
.btn.sm{padding:8px 13px;font-size:15px}
.subrow{display:grid;grid-template-columns:24px 1fr;gap:10px;align-items:start;margin-top:12px;padding-top:10px;border-top:1px solid rgba(244,241,230,.08)}
.cardnow{margin-top:10px;font-family:var(--f-display);font-style:italic}
/* Iris */
.cycstat{display:flex;gap:14px;align-items:center;margin-bottom:12px}.cday{display:grid;place-items:center;min-width:84px;padding:8px;border-radius:16px;border:1px solid rgba(224,112,142,.5)}.cday span{font-family:var(--f-ui);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--glow-faint)}.cday b{font-family:var(--f-display);font-size:34px;line-height:1;color:#E0708E}
.cinfo p{margin:2px 0}
details.cyclog{margin-top:12px;border-top:1px solid rgba(244,241,230,.08);padding-top:10px}details.cyclog summary{cursor:pointer;font-family:var(--f-ui);font-size:15px;letter-spacing:.04em}
details.cyclog input[type=date],details.cyclog input[type=text]{border-radius:12px;border:1px solid rgba(231,196,90,.35);background:rgba(22,19,42,.7);padding:9px 12px}
/* Real tarot faces */
.tarot .front{padding:0!important}
.tarot .front svg.tcard,.altar .tarot .front svg.tcard,.spread .tarot .front svg.tcard{width:100%!important;height:100%!important;display:block}
.tarot svg.tcard.rev{transform:rotate(180deg)}
.altar .tarot{width:160px;height:256px}.spread .tarot.sp{height:154px}
.spread.seven .tarot.sp{width:84px;height:134px;margin-left:-42px;transform:translateX(calc(var(--i) * 40px)) rotate(calc(var(--i) * 6deg)) translateY(calc(var(--i) * var(--i) * 3px))}
.spread.seven .tarot.sp:hover,.spread.seven .tarot.sp:focus-visible{transform:translateX(calc(var(--i) * 40px)) rotate(calc(var(--i) * 6deg)) translateY(-12px)}
.spread.seven .tarot.sp.picked{transform:translateX(calc(var(--i) * 40px)) rotate(calc(var(--i) * 6deg)) translateY(-26px);z-index:2}
.three{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:12px 0}
.three .tcol{display:flex;flex-direction:column;align-items:center;gap:6px}
.three .tarot.mini{width:100%;max-width:104px;aspect-ratio:10/16;height:auto}
.three .pos{font-family:var(--f-ui);font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--glow-faint);text-align:center;line-height:1.25}
details.tread{border-top:1px solid rgba(244,241,230,.08);padding:8px 0}details.tread summary{cursor:pointer}
.card.together{margin-top:12px;border-color:rgba(231,196,90,.45)}
/* ---------- Weather: the same world, under this sky ---------- */
#wxLayer{position:fixed;inset:0;pointer-events:none;z-index:0;opacity:0;transition:opacity 2s ease}
html[data-weather] #wxLayer{opacity:1}
html[data-weather=clouds] #wxLayer{background:linear-gradient(180deg,rgba(150,155,180,.22),rgba(78,76,110,.12) 60%,transparent)}
html[data-daylight="1"][data-weather=clouds] #wxLayer{background:linear-gradient(180deg,rgba(220,220,235,.24),rgba(165,170,195,.16) 55%,transparent)}
html[data-weather=clear-day] #wxLayer{background:radial-gradient(900px 580px at 75% -8%,rgba(255,226,147,.22),transparent 58%),linear-gradient(180deg,rgba(130,195,205,.08),transparent 62%)}
html[data-weather=fog] #wxLayer{background:linear-gradient(180deg,rgba(200,195,215,.10),rgba(200,195,215,.16) 70%,rgba(200,195,215,.06));backdrop-filter:blur(.4px)}
html[data-weather=rain] #wxLayer,html[data-weather=storm] #wxLayer{background:
  repeating-linear-gradient(105deg,transparent 0 18px,rgba(200,215,255,.07) 18px 19px,transparent 19px 41px),
  linear-gradient(180deg,rgba(40,50,90,.28),rgba(20,20,45,.12));background-size:240px 240px,100% 100%}
html[data-weather=storm] #wxLayer{box-shadow:inset 0 0 160px 40px rgba(5,5,15,.55)}
html[data-weather=snow] #wxLayer{background-image:radial-gradient(circle,rgba(255,255,255,.55) 0 1.2px,transparent 1.6px),radial-gradient(circle,rgba(255,255,255,.35) 0 .9px,transparent 1.2px),linear-gradient(180deg,rgba(190,200,230,.10),transparent);background-size:90px 90px,60px 60px,100% 100%;background-position:0 0,30px 20px,0 0}
html[data-weather=hot] #wxLayer{background:radial-gradient(1000px 600px at 50% 110%,rgba(240,150,60,.16),transparent 65%)}
html[data-weather=cold] #wxLayer{background:linear-gradient(180deg,rgba(150,190,240,.12),transparent 60%)}
html[data-weather=wind] #wxLayer{background:repeating-linear-gradient(172deg,transparent 0 60px,rgba(244,241,230,.035) 60px 61px,transparent 61px 140px);background-size:400px 400px}
html[data-weather=clear-night] #wxLayer{background:radial-gradient(900px 500px at 50% -10%,rgba(231,220,160,.07),transparent 60%)}
@media (prefers-reduced-motion:no-preference){
  html[data-weather=rain] #wxLayer,html[data-weather=storm] #wxLayer{animation:wxrain 1.1s linear infinite}
  html[data-weather=snow] #wxLayer{animation:wxsnow 14s linear infinite}
  html[data-weather=wind] #wxLayer{animation:wxwind 6s linear infinite}
  html[data-daypart=deepnight][data-weather=rain] #wxLayer{animation-duration:2.2s}
}
@keyframes wxrain{to{background-position:-60px 240px,0 0}}
@keyframes wxsnow{to{background-position:20px 90px,50px 80px,0 0}}
@keyframes wxwind{to{background-position:-400px 40px}}
.app{position:relative;z-index:1}

@media (max-width:360px){
  .talk .hd>.navback span,.rite .bar>.navback span{display:none}
  .talk .hd>.navback,.rite .bar>.navback{width:38px;padding:0;justify-content:center}
  .spread.seven .tarot.sp{width:72px;height:116px;margin-left:-36px;transform:translateX(calc(var(--i) * 34px)) rotate(calc(var(--i) * 5deg)) translateY(calc(var(--i) * var(--i) * 2px))}
  .spread.seven .tarot.sp:hover,.spread.seven .tarot.sp:focus-visible{transform:translateX(calc(var(--i) * 34px)) rotate(calc(var(--i) * 5deg)) translateY(-10px)}
  .spread.seven .tarot.sp.picked{transform:translateX(calc(var(--i) * 34px)) rotate(calc(var(--i) * 5deg)) translateY(-22px)}
}

/* readability and sacred-object polish */
.page.ritualcard{padding:20px 20px 18px;background:
  radial-gradient(circle at 85% 10%,rgba(191,30,115,.07),transparent 28%),
  linear-gradient(180deg,#F7EED8,#E9DBBC)}
.ritualguardian{display:flex;align-items:center;gap:10px;border:0;background:none;color:var(--ink-soft);padding:0;text-align:left;width:100%}
.ritualguardian svg{width:42px;height:42px;filter:drop-shadow(0 2px 4px rgba(42,33,48,.18))}
.ritualguardian .small{display:block;color:#6D5A68;font-size:13.5px}
.ritualpurpose{font-family:var(--f-display);font-size:19px;line-height:1.4;margin-top:7px;color:#47394A}
.needchips{display:flex;flex-wrap:wrap;gap:7px;margin-top:8px}
.needchips span{font-family:var(--f-ui);font-size:14.5px;line-height:1.2;padding:6px 9px;border-radius:999px;border:1px solid rgba(154,116,20,.38);background:rgba(255,255,255,.34);color:#4C3F4F}
.gatherbox{margin-top:16px;padding:14px;border:1px solid rgba(154,116,20,.42);border-radius:14px;background:rgba(255,255,255,.30)}
.prepnote{font-family:var(--f-ui);font-size:15px;line-height:1.45;color:#66566A;margin-top:12px}
.gmark{border:0;background:none;padding:0;display:inline-grid;place-items:center;color:inherit;flex:none;border-radius:50%}
.gmark:hover,.gmark:focus-visible{filter:drop-shadow(0 0 7px rgba(231,196,90,.45))}
.handoff .gmark svg,.speaker .gmark svg{width:inherit;height:inherit}
.tracker{display:grid;gap:12px;margin-top:12px}
.tracker select,.tracker input{width:100%;border-radius:12px;border:1px solid rgba(231,196,90,.34);background:rgba(22,19,42,.84);padding:10px 12px;color:var(--glow);font-family:var(--f-ui);font-size:16.5px}
.trackerfields{align-items:end}.trackerfields>.field{flex:1;min-width:130px}
.trackerstat{display:flex;align-items:baseline;gap:8px;padding:8px 0}.trackerstat b{font-family:var(--f-display);font-size:34px;color:var(--gold)}.trackerstat span{font-family:var(--f-ui);color:var(--glow-dim)}
.goalrow{display:grid;gap:9px;padding:12px 0;border-top:1px solid rgba(244,241,230,.14)}
.goalnext{flex-wrap:nowrap}.goalnext input{flex:1;min-width:0}
.mailhead{display:flex;align-items:center;gap:12px}.mailhead svg{flex:none}
.mailbox .li{padding:12px 0;border-top:1px solid rgba(244,241,230,.12)}
.contactprefs .chips{margin-top:6px}
.rite .wm{opacity:.055}
.rite .wrap{background:
  radial-gradient(circle at 90% 8%,rgba(191,30,115,.05),transparent 26%),
  linear-gradient(180deg,#F7EED8,#E8DBBC)}
.tarot .back{background:
  radial-gradient(circle at 50% 38%,rgba(93,72,153,.95),#1B1535 68%),
  repeating-radial-gradient(circle at 50% 50%,transparent 0 12px,rgba(231,196,90,.035) 13px 14px)}
.tarot .front{background:
  radial-gradient(circle at 50% 36%,rgba(255,250,228,.95),rgba(243,234,211,.96) 58%,#E4D3AF 100%);
  box-shadow:inset 0 0 0 1px rgba(154,116,20,.9),inset 0 0 0 5px #F3EAD3,inset 0 0 0 6px rgba(154,116,20,.55),0 9px 18px -12px rgba(0,0,0,.8)}
.tarot.flipped .front{box-shadow:inset 0 0 0 1px rgba(154,116,20,.9),inset 0 0 0 5px #F3EAD3,inset 0 0 0 6px rgba(154,116,20,.55),0 12px 24px -10px rgba(0,0,0,.75)}
@media (max-width:380px){.alch{grid-template-columns:52px 1fr;padding:12px}.alch .adate{font-size:20px}.sky svg{width:52px;height:52px}}

.rite .wrap{border-left:3px solid color-mix(in srgb,var(--gcol,var(--gold)) 55%,transparent);box-shadow:0 22px 60px -38px rgba(0,0,0,.72)}
.rite .count .seal{box-shadow:0 0 0 1px color-mix(in srgb,var(--gcol,var(--gold)) 55%,transparent),0 0 22px color-mix(in srgb,var(--gcol,var(--gold)) 18%,transparent)}
.rite .say{border-color:color-mix(in srgb,var(--gcol,var(--gold)) 50%,#9A7414)}
.page.ritualcard::after{content:"✦";position:absolute;right:16px;bottom:10px;font-family:var(--f-display);font-size:34px;color:rgba(154,116,20,.14);pointer-events:none}

/* Readability override: secondary text should still be easy to read on a phone. */
.muted,.why,.intro .kv,.talk .hint,.entry .m,.g .e,.stat .k,.field label,.field .lbl{opacity:1;text-shadow:0 1px 1px rgba(0,0,0,.16)}

.gmark.labeled{display:inline-flex;align-items:center;gap:7px;border-radius:999px;padding:2px 5px 2px 2px}
.gmarkname{font-family:var(--f-ui);font-size:15.5px;font-weight:700;letter-spacing:.035em;color:inherit;white-space:nowrap}
.rite .gmark.labeled{color:var(--ink-soft);background:rgba(42,33,48,.045);padding-right:8px}
.rite .gmarkname{color:var(--ink-soft)}


/* ---------- Light engine v2: real sky first, emotional tone second ---------- */
:root{--mood-wash:rgba(0,0,0,0)}
html[data-light=day-bright]{--world-bg:#777092;--dp-a:rgba(247,178,211,.34);--dp-b:rgba(113,202,197,.34);--dp-c:rgba(255,221,132,.30);--dp-wash:rgba(252,239,211,.035)}
html[data-light=day-low]{--world-bg:#69617F;--dp-a:rgba(233,137,190,.34);--dp-b:rgba(95,181,181,.30);--dp-c:rgba(250,196,91,.34);--dp-wash:rgba(104,72,105,.035)}
html[data-light=golden]{--world-bg:#5A405E;--dp-a:rgba(230,84,151,.44);--dp-b:rgba(242,139,70,.35);--dp-c:rgba(255,194,79,.40);--dp-wash:rgba(74,38,68,.04)}
html[data-light=blue]{--world-bg:#303858;--dp-a:rgba(128,84,164,.28);--dp-b:rgba(62,139,160,.30);--dp-c:rgba(129,143,201,.18);--dp-wash:rgba(27,31,63,.08)}
html[data-light=night]{--world-bg:#0C0918;--dp-a:rgba(120,30,90,.14);--dp-b:rgba(40,80,90,.08);--dp-c:rgba(0,0,0,0);--dp-wash:rgba(8,6,18,.30)}
html[data-sky=bright][data-light=day-bright]{--world-bg:#817A9D;--dp-b:rgba(120,215,209,.38);--dp-c:rgba(255,229,146,.34)}
html[data-sky=soft][data-light=day-bright]{--world-bg:#6C6886}
html[data-sky=dim][data-light=day-bright]{--world-bg:#5E5D77;--dp-a:rgba(175,158,190,.22);--dp-b:rgba(145,165,180,.20);--dp-c:rgba(225,205,160,.12)}
html[data-atmosphere=held]{--mood-wash:rgba(20,16,42,.085)}
html[data-atmosphere=gentle]{--mood-wash:rgba(92,76,126,.055)}
html[data-atmosphere=lifted]{--mood-wash:rgba(255,215,115,.035)}
body::before{background:
  radial-gradient(1200px 500px at 110% -10%,var(--dp-a),transparent 60%),
  radial-gradient(900px 520px at -20% 30%,var(--dp-b),transparent 60%),
  radial-gradient(1100px 420px at 50% 112%,var(--dp-c),transparent 65%),
  linear-gradient(var(--mood-wash),var(--mood-wash)),
  linear-gradient(var(--dp-wash),var(--dp-wash))}
html[data-light=golden][data-weather=clear-day] #wxLayer{background:radial-gradient(900px 640px at 78% 4%,rgba(255,215,118,.32),transparent 58%),linear-gradient(180deg,rgba(255,174,122,.11),transparent 64%)}
html[data-light=blue][data-weather=clear-night] #wxLayer{background:linear-gradient(180deg,rgba(74,108,158,.18),rgba(48,59,102,.12) 60%,transparent)}
html[data-light=day-bright][data-sky=bright][data-weather=clear-day] #wxLayer{background:radial-gradient(900px 620px at 75% -8%,rgba(255,233,158,.30),transparent 58%),linear-gradient(180deg,rgba(134,212,218,.11),transparent 66%)}


/* ---------- Responsive surface system ---------- */
:root{
  --surface-card:rgba(25,21,48,.95);--surface-card-2:rgba(33,28,59,.94);
  --surface-aura-1:rgba(50,36,80,.97);--surface-aura-2:rgba(31,25,57,.97);
  --surface-reading:rgba(30,25,57,.96);--surface-nav:rgba(33,28,59,.95);
  --surface-sheet:#211C3B;--surface-input:rgba(22,19,42,.78);--surface-tile:rgba(27,23,52,.92);
}
html[data-light=day-bright]:not([data-theme]){--surface-card:rgba(48,35,72,.96);--surface-card-2:rgba(59,43,82,.95);--surface-aura-1:rgba(75,46,98,.97);--surface-aura-2:rgba(45,34,70,.98);--surface-reading:rgba(52,39,77,.97);--surface-nav:rgba(39,30,63,.96);--surface-sheet:#342747;--surface-input:rgba(28,21,48,.88);--surface-tile:rgba(49,36,73,.95)}
html[data-light=day-low]:not([data-theme]){--surface-card:rgba(43,31,63,.96);--surface-card-2:rgba(57,39,72,.95);--surface-aura-1:rgba(82,45,86,.97);--surface-aura-2:rgba(47,31,62,.98);--surface-reading:rgba(55,37,68,.97);--surface-nav:rgba(39,28,57,.96);--surface-sheet:#34243F;--surface-input:rgba(30,20,43,.88);--surface-tile:rgba(51,34,64,.95)}
html[data-light=golden]:not([data-theme]){--surface-card:rgba(50,28,50,.96);--surface-card-2:rgba(67,36,56,.95);--surface-aura-1:rgba(94,41,73,.97);--surface-aura-2:rgba(53,28,51,.98);--surface-reading:rgba(63,33,56,.97);--surface-nav:rgba(46,27,47,.96);--surface-sheet:#3D2639;--surface-input:rgba(35,19,35,.88);--surface-tile:rgba(58,31,50,.95)}
html[data-light=blue]:not([data-theme]){--surface-card:rgba(22,29,57,.96);--surface-card-2:rgba(30,39,72,.95);--surface-aura-1:rgba(40,48,92,.97);--surface-aura-2:rgba(25,32,64,.98);--surface-reading:rgba(30,39,72,.97);--surface-nav:rgba(22,30,59,.96);--surface-sheet:#1E294B;--surface-input:rgba(14,20,43,.88);--surface-tile:rgba(26,36,68,.95)}
.card{background:var(--surface-card)}
.aura{background:linear-gradient(180deg,var(--surface-aura-1),var(--surface-aura-2))}
.reading{background:var(--surface-reading)}
.day,.g{background:var(--surface-tile)}
.day.next{background:var(--surface-card-2)}
.sheet{background:var(--surface-sheet)}
nav.tabs .in{background:var(--surface-nav)}
textarea,.field input[type=text],.search,.tracker select,.tracker input{background:var(--surface-input)}
.card,.aura,.reading,.day,.g,.sheet,nav.tabs .in{transition:background .75s ease,border-color .75s ease,color .35s ease}

/* Manual appearance always wins over the living-day palette. */
html[data-theme=dark]{color-scheme:dark;--world-bg:#0E0A1C;--glow:#F4F1E6;--glow-dim:#E8E2F0;--glow-faint:#D9D0E5;--line:rgba(231,196,90,.28);--surface-card:rgba(24,20,47,.97);--surface-card-2:rgba(33,28,59,.97);--surface-aura-1:rgba(45,36,78,.98);--surface-aura-2:rgba(29,24,54,.98);--surface-reading:rgba(29,24,54,.98);--surface-nav:rgba(27,23,52,.97);--surface-sheet:#1B1732;--surface-input:rgba(15,12,31,.90);--surface-tile:rgba(28,24,54,.96)}
html[data-theme=light]{color-scheme:light;--world-bg:#F0EAF1;--glow:#2A2130;--glow-dim:#4E4256;--glow-faint:#65576E;--line:rgba(102,74,103,.24);--gold:#9A7414;--surface-card:rgba(255,252,249,.93);--surface-card-2:rgba(246,239,244,.96);--surface-aura-1:rgba(255,247,250,.97);--surface-aura-2:rgba(242,232,244,.97);--surface-reading:rgba(255,252,249,.96);--surface-nav:rgba(255,252,249,.94);--surface-sheet:#FBF7F5;--surface-input:rgba(255,255,255,.80);--surface-tile:rgba(250,246,248,.95)}
html[data-theme=light] body::after{opacity:.035}
html[data-theme=light] .btn-ghost,html[data-theme=light] .navback{color:var(--glow)}
html[data-theme=light] .chip{border-color:rgba(65,45,72,.18);background:rgba(65,45,72,.035);color:var(--glow-dim)}
html[data-theme=light] .muted,html[data-theme=light] .small{color:var(--glow-dim)}
html[data-theme=light] nav.tabs{background:linear-gradient(180deg,rgba(240,234,241,0),rgba(240,234,241,.97) 30%)}

/* User-controlled text sizes. Standard is already larger than the original app. */
html[data-font=large] body{font-size:22.5px}
html[data-font=large] .small{font-size:19px}
html[data-font=large] .label{font-size:17px}
html[data-font=large] .chip{font-size:17px}
html[data-font=large] .btn{font-size:19.5px}
html[data-font=large] .muted,html[data-font=large] .why{font-size:18px}
html[data-font=large] h2{font-size:35px}
html[data-font=large] h3{font-size:28px}
html[data-font=xlarge] body{font-size:24px}
html[data-font=xlarge] .small{font-size:20.5px}
html[data-font=xlarge] .label{font-size:18px}
html[data-font=xlarge] .chip{font-size:18px;padding:8px 14px}
html[data-font=xlarge] .btn{font-size:21px}
html[data-font=xlarge] .muted,html[data-font=xlarge] .why{font-size:19.5px}
html[data-font=xlarge] h2{font-size:38px}
html[data-font=xlarge] h3{font-size:30px}
html[data-font=xlarge] .app{max-width:520px}

/* Lunar progress instead of generic habit dots. */
.moontrail{display:grid;grid-template-columns:repeat(10,1fr);gap:6px 7px;margin-top:14px;align-items:center}
.moonday{width:22px;height:22px;display:grid;place-items:center;color:var(--glow-faint);opacity:.42;border-radius:50%;padding:2px}
.moonday svg{width:18px;height:18px;display:block}
.moonday.on{color:var(--gold);opacity:1;box-shadow:0 0 0 1px rgba(231,196,90,.72),0 0 13px rgba(231,196,90,.24)}

/* Journeys: guardian identity is an actual doorway. */
.journeycard{display:grid;gap:8px}
.journeyrow{align-items:center;flex-wrap:nowrap}
.journeyopen,.journeybody,.journeyguardianname{border:0;background:none;color:inherit;text-align:left;padding:0}
.journeyopen{flex:1;min-width:0}
.journeybody{display:grid;gap:4px;width:100%;font-family:var(--f-ui);font-size:16.5px;color:var(--glow-dim)}
.journeybody .progress{width:100%}
.journeyguardianname .label{text-align:left}
.journeyhead .gmark{filter:drop-shadow(0 5px 14px rgba(0,0,0,.3))}

/* Ritual cards should feel like objects, not beige boxes. */
.page.ritualcard{border-radius:18px;padding:22px 20px 20px;border:1px solid color-mix(in srgb,var(--gcol,var(--gold)) 48%,#9A7414);background:
 radial-gradient(circle at 86% 9%,color-mix(in srgb,var(--gcol,var(--gold)) 17%,transparent),transparent 27%),
 radial-gradient(circle at 9% 92%,rgba(154,116,20,.10),transparent 31%),
 linear-gradient(145deg,#FFF8E8 0%,#F1E2BF 58%,#E4CFA4 100%);box-shadow:0 22px 48px -25px rgba(9,6,17,.8),inset 0 1px rgba(255,255,255,.65);overflow:hidden}
.page.ritualcard::before{inset:8px;border-radius:12px;border:1px solid rgba(154,116,20,.48);box-shadow:none}
.page.ritualcard::after{content:"☾";right:17px;bottom:5px;font-size:46px;color:color-mix(in srgb,var(--gcol,var(--gold)) 24%,transparent)}
.ritualguardian{position:relative;z-index:1;padding:8px 10px;border-radius:14px;background:color-mix(in srgb,var(--gcol,var(--gold)) 10%,rgba(255,255,255,.42));border:1px solid color-mix(in srgb,var(--gcol,var(--gold)) 30%,transparent)}
.page.ritualcard h3{font-size:31px;line-height:1.05;margin-top:14px;color:#2C2030}
.page.ritualcard .facts{gap:7px;margin-top:12px}
.page.ritualcard .facts span{padding:5px 8px;border-radius:999px;background:rgba(84,59,70,.07);border:1px solid rgba(84,59,70,.13)}
.page.ritualcard .needs{margin-top:15px;padding-top:13px;border-top:1px solid rgba(154,116,20,.28)}
.supplyhint{font-family:var(--f-ui);font-size:14px;line-height:1.35;color:#6A596A;margin-top:3px}
.needchips{display:flex;flex-wrap:wrap;gap:7px;margin-top:9px}
.needchip{font-family:var(--f-ui);font-size:14.5px;line-height:1.25;padding:7px 10px;border-radius:999px;border:1px solid rgba(94,75,64,.23);background:rgba(255,255,255,.48);color:#443848;display:inline-flex;align-items:center;gap:6px}
button.needchip{cursor:pointer}
.needchip .needcheck{width:18px;height:18px;border-radius:50%;display:grid;place-items:center;background:rgba(74,120,79,.12);font-weight:700}
.needchip.missing{background:rgba(147,64,71,.08);border-color:rgba(147,64,71,.32);text-decoration:none}
.needchip.missing .needcheck{background:rgba(147,64,71,.12);color:#8F3943}
.supplyswap{margin-top:12px;padding:11px 12px;border-radius:12px;background:rgba(154,116,20,.08);border:1px solid rgba(154,116,20,.22);font-family:var(--f-ui);font-size:15px;color:#5F4C43}
.supplyswap .label{display:block;color:#7C5D16;margin-bottom:3px}
.gatherbox.attention{animation:supplyPulse .7s ease}
@keyframes supplyPulse{50%{box-shadow:0 0 0 5px rgba(191,30,115,.13)}}
.prepfoot{flex-wrap:wrap}
.prepfoot .btn{min-width:180px}

/* Tarot cards: the SVG is the card. Do not shrink a full card into a tiny icon inside another card. */
.tarot{width:118px;height:189px;filter:drop-shadow(0 12px 15px rgba(0,0,0,.28))}
.altar .tarot{width:168px;height:269px}
.tarot .face{border-radius:12px}
.tarot .front{padding:0;background:transparent;box-shadow:none}
.tarot .front .tcard{width:100%!important;height:100%!important;display:block}
.altar .tarot .front .tcard{width:100%!important;height:100%!important}
.tarot .back{border-radius:12px;background:#16132A;box-shadow:0 18px 30px -18px rgba(0,0,0,.9)}
.tarot.flipped .front{box-shadow:0 20px 34px -22px rgba(0,0,0,.88)}
.spread .tarot{transform-origin:50% 100%}
.three .tarot.mini{width:96px;height:154px}
@media(max-width:390px){.altar .tarot{width:152px;height:243px}.three .tarot.mini{width:84px;height:134px}.moontrail{grid-template-columns:repeat(8,1fr)}}


/* ================================================================
   LUXURY EXPERIENCE PASS — Oct 2 2026
   Restraint first: fewer boxes, stronger hierarchy, physical objects.
   ================================================================ */
:root{
  --luxe-night:#161226;
  --luxe-night-2:#211832;
  --luxe-plum:#241936;
  --luxe-paper:#F8F0DD;
  --luxe-parch:#F0E3C5;
  --luxe-gold:#C7A44A;
}
.label{letter-spacing:.12em}
.card{box-shadow:none}
nav.tabs .in{background:rgba(28,22,49,.94);border-color:rgba(199,164,74,.22);border-radius:18px;padding:5px}
nav.tabs button{border-radius:12px;letter-spacing:.035em;color:rgba(244,239,232,.66);position:relative}
nav.tabs button[aria-selected="true"]{background:transparent;color:#F4EFE8}
nav.tabs button[aria-selected="true"]::after{content:"";width:4px;height:4px;border-radius:50%;background:var(--luxe-gold);position:absolute;bottom:2px}
nav.tabs button[aria-selected="true"] svg{color:var(--luxe-gold)}
.top{padding-top:16px}.brand h1{font-size:30px}.brand .eyebrow{letter-spacing:.08em}
#memBadge{border-radius:999px;background:transparent!important;border-color:rgba(199,164,74,.48)!important;color:#DEC36F!important}

/* Today: editorial, not a pile of rounded cards */
.home{padding:8px 0 2px}
.home .greet{font-family:var(--f-ui);font-size:14px;letter-spacing:.1em;text-transform:uppercase;color:rgba(244,239,232,.62)}
.home .hline{font-size:35px;line-height:1.05;max-width:430px}
.home .obs{margin-top:9px;font-family:var(--f-display);font-style:italic;font-size:20px;color:rgba(244,239,232,.78)}
.aura{border-radius:0;border-width:1px 0;background:linear-gradient(90deg,transparent,rgba(36,25,54,.76) 14%,rgba(36,25,54,.76) 86%,transparent);box-shadow:none;padding:20px 4px}
.aura .speaker{padding:0 8px}.aura .speaker .who{letter-spacing:.08em}
.aura textarea{border-radius:16px;background:rgba(13,10,25,.46);border-color:rgba(199,164,74,.26)}
.aura .btn-main{box-shadow:none;background:#3A294B;border:1px solid rgba(199,164,74,.56);color:#F8F0DD}
details.more>summary{letter-spacing:.04em}

/* Altar: a real deck, not a fan of floating clip-art cards */
.altarstage{display:grid;gap:14px;padding:2px 0 8px}
.altarhead{max-width:430px}
.altarhead h2{font-size:34px;margin-top:5px}
.altarpositions{display:grid;gap:5px;margin-top:13px;padding-left:12px;border-left:1px solid rgba(199,164,74,.42)}
.altarpositions span{font-family:var(--f-ui);font-size:15px;color:rgba(244,239,232,.56)}
.altarpositions span.next{color:#F4EFE8}.altarpositions span.done{color:#C7A44A}
.altarhint{font-family:var(--f-display);font-size:19px;font-style:italic;color:rgba(244,239,232,.82);margin-top:12px}
.decknote{font-family:var(--f-ui);font-size:14px;color:rgba(244,239,232,.54);text-align:center}
.spread.seven{
  width:calc(100% + 18px);margin-left:-9px;padding:12px 18px 18px;
  display:flex;gap:14px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;
  justify-content:flex-start;scrollbar-width:none;
}
.spread.seven::-webkit-scrollbar{display:none}
.spread.seven .tarot.sp{
  flex:0 0 116px;width:116px;height:186px;margin:0!important;transform:none!important;scroll-snap-align:center;
  filter:drop-shadow(0 14px 12px rgba(0,0,0,.30));transition:transform .25s ease,filter .25s ease;
}
.spread.seven .tarot.sp:hover,.spread.seven .tarot.sp:focus-visible{transform:translateY(-7px)!important}
.spread.seven .tarot.sp.picked{transform:translateY(-10px)!important;filter:drop-shadow(0 18px 18px rgba(0,0,0,.45));z-index:2}
.tarot .face{border-radius:7px}
.tarot .back{
  background:
    radial-gradient(circle at 50% 44%,rgba(199,164,74,.10),transparent 34%),
    linear-gradient(145deg,#2A1D3C,#171126 58%,#0F0B19);
  box-shadow:inset 0 0 0 1px rgba(199,164,74,.8),inset 0 0 0 5px #181226,inset 0 0 0 6px rgba(199,164,74,.28);
}
.tarot .back svg{opacity:.72;filter:saturate(.78)}
.tarot.flipped .front{box-shadow:0 20px 34px -24px rgba(0,0,0,.9)}
.three{gap:14px;margin:18px 0}.three .pos{letter-spacing:.03em;text-transform:none;font-size:13px;line-height:1.3}
.card.together{border-radius:4px;background:rgba(25,21,48,.62);border-color:rgba(199,164,74,.34);padding:18px}
details.tread{padding:11px 0;border-color:rgba(244,241,230,.1)}

/* Ritual: ceremonial folio with natural height, no giant beige void */
.rite{display:block;overflow:auto;background:
  radial-gradient(circle at 80% 0,rgba(199,164,74,.08),transparent 28%),
  linear-gradient(180deg,#F8F0DD,#EADDBF);padding-bottom:calc(18px + env(safe-area-inset-bottom,0px))}
.rite::before{display:none}
.rite .wm{display:none}
.rite .wrap{flex:none;overflow:visible;max-width:620px;min-height:0;margin:0 auto;padding:22px 24px 0;background:transparent!important;border:0!important;box-shadow:none!important;gap:14px}
.rite .bar{min-height:54px;border-bottom:1px solid rgba(85,65,45,.16);padding-bottom:12px}
.ritualwho{display:flex;align-items:center;gap:8px;min-width:0;flex:1}
.ritualwho .gmark{flex:none}.ritualwho>span{display:grid;min-width:0}
.ritualwho b{font-family:var(--f-display);font-size:18px;font-weight:500;line-height:1.05;color:#2F2632}
.ritualwho small{font-family:var(--f-ui);font-size:12px;letter-spacing:.04em;color:#786A72;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rite .bar>.navback{background:transparent;border:0;padding:0 7px 0 0;color:#3D3340}
.rite .pips{margin:3px 0 8px;gap:5px}.rite .pips i{height:2px;background:rgba(61,51,64,.13)}.rite .pips i.on{background:#9A7414}
.ritualintro,.ritualstep,.ritualcomplete{display:grid;gap:16px;padding:10px 0 2px}
.ritualkicker{font-family:var(--f-ui);font-size:13px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#8D6F27}
.rite h1{font-family:var(--f-display);font-size:clamp(38px,10vw,52px);font-weight:400;line-height:1.02;color:#2F2632;letter-spacing:-.015em}
.rite .purpose{font-family:var(--f-display);font-style:italic;font-size:23px;line-height:1.35;color:#5B4B58}
.ritualmeta{display:flex;flex-wrap:wrap;gap:6px 0;border-block:1px solid rgba(85,65,45,.16);padding:9px 0}
.ritualmeta span{font-family:var(--f-ui);font-size:13px;color:#6B5D63;padding-right:12px;margin-right:12px;border-right:1px solid rgba(85,65,45,.16)}
.ritualmeta span:last-child{border:0}
.gatherbox.ritualtray{margin:0;border-radius:4px;border:1px solid rgba(154,116,20,.30);background:rgba(255,255,255,.28);padding:16px}
.trayhead{display:flex;justify-content:space-between;gap:12px;align-items:baseline}.trayhead .sayl{font-family:var(--f-display);font-size:21px;color:#332937}.trayhead .small{font-size:13px;color:#74666D}
.needchips{gap:8px;margin-top:12px}.needchip{border-radius:6px;background:rgba(255,255,255,.42);border-color:rgba(85,65,45,.18);padding:9px 11px}
.needchip .needcheck{border-radius:50%;background:rgba(72,105,70,.10)}.needchip.missing{background:rgba(132,74,70,.07)}
.supplyhint{margin-top:11px;color:#786B70;font-size:13px}.prepnote{display:none}
.supplyswap{border-radius:4px}
.rite .text{font-family:var(--f-display);font-size:25px;line-height:1.48;color:#403441}
.rite .say{margin:4px 0;padding:18px 16px;border:0;border-left:2px solid #9A7414;text-align:left;font-size:28px;color:#5A2842;background:rgba(255,255,255,.22)}
.rite .say .sayl{display:block;font-family:var(--f-ui);font-style:normal;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#8D6F27;margin-bottom:6px}
.rite .foot{position:relative;max-width:620px;margin:16px auto 0;padding:0 24px 8px;display:flex;gap:10px}
.rite .foot .btn{min-height:52px;border-radius:10px}
.rite .btn-ink{background:#2C2331;color:#F8F0DD;box-shadow:none}
.rite .btn-ghost{box-shadow:inset 0 0 0 1px rgba(61,51,64,.24);border-radius:10px}
.ritualcomplete .finishq{font-family:var(--f-display);font-size:27px;color:#4A3B48}
.afterfeel{gap:8px}.rite .afterfeel .chip{border-radius:8px;padding:10px 13px}
.ritualnotes{margin-top:6px;border-top:1px solid rgba(85,65,45,.18);padding-top:14px}
.ritualnotes summary{font-family:var(--f-ui);font-weight:700;color:#574A52;cursor:pointer;padding:7px 0}
.ritualnotes textarea{min-height:120px;margin-top:10px;background:rgba(255,255,255,.42);border-radius:8px}
.ritualnotes .field{margin-top:12px}.ritualnotes #outWhen{margin-top:8px}
@media(max-width:390px){.rite .wrap,.rite .foot{padding-left:20px;padding-right:20px}.rite h1{font-size:42px}.trayhead{display:grid;gap:2px}}

/* Mailbox: correspondence, not another generic dark card */
.mailbox{border:0!important;border-radius:0!important;background:transparent!important;padding:2px 0 4px!important;box-shadow:none!important}
.mailhead{padding-bottom:14px;border-bottom:1px solid rgba(199,164,74,.30)}.mailhead svg{width:48px;height:auto}
.mailhead h3{font-size:28px}.mailintro{font-family:var(--f-display);font-style:italic;font-size:18px;color:rgba(244,239,232,.70);margin:12px 0}
.mailstack{display:grid}
.mailletter{width:100%;display:grid;grid-template-columns:12px minmax(0,1fr) auto;gap:12px;align-items:start;text-align:left;border:0;border-bottom:1px solid rgba(244,239,232,.12);background:transparent;color:inherit;padding:16px 0}
.mailletter .wax{width:7px;height:7px;border-radius:50%;background:rgba(199,164,74,.42);margin-top:8px}
.mailletter.unread .wax{background:#C7A44A;box-shadow:0 0 0 4px rgba(199,164,74,.08)}
.mailcopy{display:grid;gap:3px;min-width:0}.mailmeta,.maildate{font-family:var(--f-ui);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:rgba(244,239,232,.52)}
.mailcopy strong{font-family:var(--f-display);font-size:22px;font-weight:500;color:#F4EFE8}
.mailpreview{font-family:var(--f-display);font-size:16px;color:rgba(244,239,232,.68);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mailopen{font-family:var(--f-ui);font-size:13px;color:#C7A44A;padding-top:19px}
.empty-mail{padding-top:8px!important}.empty-mail .aurasays{margin-top:14px}
.sealednote{margin-top:16px}.page.letter{border-radius:2px;padding:30px 25px;background:#F8F0DD;box-shadow:0 20px 45px -30px rgba(0,0,0,.8)}
.page.letter::before{inset:10px;border-color:rgba(154,116,20,.28);box-shadow:none}
.letterbrand{font-family:var(--f-ui);font-size:11px;font-weight:700;letter-spacing:.16em;color:#8A6E2A}
.lettermeta{font-family:var(--f-ui);font-size:12px;color:#796A70;margin-top:4px}
.page.letter h2{font-size:37px;color:#2F2632;margin:20px 0 5px}.page.letter p{font-size:20px;line-height:1.68;color:#403441}
.lettersign{font-family:var(--f-display);font-style:italic;font-size:28px;color:#5C4054;margin-top:24px}
.letterstack{gap:12px}.letterback{text-align:center;padding:8px}

/* Guardian conversation: typeset dialogue, not Messenger */
.talk{background:
  radial-gradient(circle at 15% 0,color-mix(in srgb,var(--talk-accent,#C7A44A) 11%,transparent),transparent 30%),
  #141021}
.talk .hd{max-width:620px;padding:12px 18px;border-color:rgba(199,164,74,.18)}
.talkportrait{width:46px;height:46px;display:grid;place-items:center}.talkportrait svg{width:44px!important;height:44px!important}
.talk .hd .who .n{font-size:24px}.talk .hd .who .t{font-size:12px;letter-spacing:.04em;text-transform:none;color:rgba(244,239,232,.60)!important}
.talkeyebrow{display:block;font-family:var(--f-ui);font-size:10px;letter-spacing:.13em;text-transform:uppercase;color:#C7A44A;margin-bottom:1px}
.talk .msgs{max-width:620px;padding:20px 22px 24px;gap:18px}
.talk .intro{border-radius:4px;background:rgba(33,24,50,.52);border-color:rgba(199,164,74,.18);padding:18px}
.bub{max-width:100%;border-radius:0!important;padding:0!important;white-space:normal}
.bub .msgwho{display:block;font-family:var(--f-ui);font-size:11px;font-weight:700;letter-spacing:.11em;text-transform:uppercase;margin-bottom:5px}
.bub p{white-space:pre-wrap}
.bub.them{align-self:stretch;background:transparent!important;border:0!important;font-family:var(--f-display);font-size:23px;line-height:1.48;color:#F4EFE8;padding-left:14px!important;border-left:1px solid color-mix(in srgb,var(--talk-accent,#C7A44A) 48%,transparent)!important}
.bub.them .msgwho{color:var(--talk-accent,#C7A44A)}
.bub.me{align-self:stretch;margin-left:44px;background:rgba(244,239,232,.055)!important;border:0!important;border-radius:4px!important;padding:12px 14px!important;font-family:var(--f-book);font-size:18px;color:rgba(244,239,232,.84)}
.bub.me .msgwho{color:rgba(244,239,232,.46)}
.bub .btn{border-radius:8px;margin:12px 8px 0 0}
.talk .ft{max-width:620px;padding:12px 18px 16px;border-color:rgba(199,164,74,.15);background:rgba(20,16,33,.96)}
.talk .ft textarea{border-radius:12px;background:rgba(244,239,232,.055);border-color:rgba(199,164,74,.24);padding-left:14px}
.talk .send,.talk .mic{box-shadow:none}.talk .send{background:#3A294B;border:1px solid rgba(199,164,74,.5);color:#F8F0DD}

/* Keep surfaces restrained everywhere */
.page.ritualcard{border-radius:4px}.page.ritualcard::after{display:none}
.card.letterc{border-radius:4px;background:rgba(25,21,48,.72)}


/* ================================================================
   PREMIUM EDITORIAL PASS · OCT 2026
   One visual language: restrained, physical, mystical, not decorative.
================================================================ */

/* Restraint */
.label{letter-spacing:.13em}
.card{box-shadow:none;border-color:rgba(244,241,230,.16);background:rgba(20,17,40,.78)}
.card::before,.card::after{box-shadow:none}
nav.tabs .in{border-radius:18px;background:rgba(22,18,43,.94);padding:4px;border-color:rgba(231,196,90,.18)}
nav.tabs button{border-radius:12px;letter-spacing:.035em;padding:8px 0 7px}
nav.tabs button[aria-selected="true"]{background:rgba(231,196,90,.07);color:var(--glow)}
nav.tabs button[aria-selected="true"]::after{content:"";width:4px;height:4px;border-radius:50%;background:var(--gold);margin-top:1px}

/* Today feels like an almanac page, not a stack of cards */
.sky{border:0!important;border-top:1px solid rgba(231,196,90,.32)!important;border-bottom:1px solid rgba(231,196,90,.22)!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;padding:15px 2px 17px!important}
.sky .phase{font-family:var(--f-display);font-size:22px!important}
.sky .meta{letter-spacing:.02em!important}
.home{padding-top:8px}
.home .hline{font-family:var(--f-display);font-weight:400;line-height:1.08}
.home .obs{max-width:34ch}
.rhythm,.quiet{background:transparent;border-left:0;border-right:0;border-radius:0;border-color:rgba(244,241,230,.12)}

/* ---------------- THE ALTAR ---------------- */
.altarstage{padding:8px 0 18px}
.altarhead{max-width:36rem}
.altarhead>.label{color:var(--gold);margin-bottom:5px}
.altarhead h2{font-weight:400;font-size:clamp(32px,8vw,43px);line-height:1.04;margin:0}
.altarpositions{display:grid;gap:5px;margin:18px 0 10px;padding:13px 0;border-top:1px solid rgba(231,196,90,.22);border-bottom:1px solid rgba(231,196,90,.16)}
.altarpositions span{font-family:var(--f-ui);font-size:14px;color:var(--glow-faint);letter-spacing:.025em}
.altarpositions span.next{color:var(--gold)}
.altarpositions span.done{color:var(--glow-dim)}
.altarpositions span.done::after{content:"  ✓";color:var(--gold)}
.altarhint,.decknote{font-family:var(--f-display);font-size:19px;line-height:1.45;color:var(--glow-dim);margin:8px 0 0}
.decknote{font-family:var(--f-ui);font-size:14px;letter-spacing:.01em;text-align:center;margin-top:12px;color:var(--glow-faint)}

/* No fan. A physical deck rail. */
.spread,.spread.seven{position:relative;height:auto;margin:18px -2px 0;padding:12px 8px 18px;display:flex;align-items:flex-end;gap:0;overflow-x:auto;overflow-y:visible;scroll-snap-type:x proximity;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.spread::-webkit-scrollbar{display:none}
.spread .tarot.sp,.spread.seven .tarot.sp{position:relative!important;left:auto!important;top:auto!important;flex:0 0 108px;width:108px!important;height:173px!important;margin:0 0 0 -23px!important;transform:none!important;filter:drop-shadow(0 12px 15px rgba(0,0,0,.38));scroll-snap-align:center;z-index:1;transition:transform .35s ease,filter .35s ease,opacity .35s ease}
.spread .tarot.sp:first-child,.spread.seven .tarot.sp:first-child{margin-left:0!important}
.spread .tarot.sp:nth-child(odd){transform:translateY(4px)!important}
.spread .tarot.sp:hover,.spread .tarot.sp:focus-visible,.spread.seven .tarot.sp:hover,.spread.seven .tarot.sp:focus-visible{transform:translateY(-9px)!important;z-index:5;filter:drop-shadow(0 18px 22px rgba(0,0,0,.5))}
.spread .tarot.sp.picked,.spread.seven .tarot.sp.picked{transform:translateY(-13px)!important;z-index:6;filter:drop-shadow(0 20px 24px rgba(0,0,0,.55))}
.spread .tarot.sp.picked .inner{transform:rotateY(180deg)}
.spread .tarot.sp.picked~.tarot.sp{opacity:.9}
.tarot .face{border-radius:9px}
.tarot .back{background:#161226;box-shadow:0 0 0 1px rgba(231,196,90,.72),inset 0 0 0 5px #161226,inset 0 0 0 6px rgba(231,196,90,.25)}
.tarot .front{background:#161226;box-shadow:0 0 0 1px rgba(231,196,90,.72)}
.tarot .inner{transition:transform .62s cubic-bezier(.2,.72,.2,1)}
.three{gap:12px;margin:20px 0 18px}
.three .tarot.mini{max-width:118px}
.three .pos{text-transform:none;letter-spacing:.01em;font-size:13px;line-height:1.35;color:var(--glow-dim)}
details.tread{padding:12px 0;border-color:rgba(244,241,230,.1)}
.card.together{background:transparent;border-left:1px solid rgba(231,196,90,.45);border-right:0;border-top:0;border-bottom:0;border-radius:0;padding:4px 0 4px 16px}

/* ---------------- RITUAL FOLIO ---------------- */
.rite{background:
 radial-gradient(900px 500px at 50% -150px,rgba(255,255,255,.52),transparent 62%),
 linear-gradient(180deg,#F3E8CD 0%,#EBDDba 100%);color:#2C2431}
.rite::before{display:none}
.rite .wrap{max-width:600px;padding:22px 26px 12px;gap:18px}
.rite .bar{padding-bottom:12px;border-bottom:1px solid rgba(112,83,31,.2)}
.rite .bar>.navback{background:transparent;border-radius:0;padding:0;color:#3B3140;box-shadow:none}
.ritualwho{display:flex;align-items:center;gap:9px;min-width:0;flex:1}
.ritualwho>svg{width:36px!important;height:36px!important}
.ritualwho span{display:grid;line-height:1.05}
.ritualwho b{font-family:var(--f-ui);font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:#6A532A}
.ritualwho small{font-family:var(--f-ui);font-size:12px;color:#756B74;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rite .pips{gap:4px;margin-top:-8px}
.rite .pips i{height:2px;background:rgba(70,55,67,.11)}
.rite .pips i.on{background:#A7863D}
.ritualintro,.ritualstep,.ritualcomplete{display:flex;flex-direction:column;gap:14px;max-width:520px;width:100%;margin:0 auto}
.ritualkicker{font-family:var(--f-ui);font-weight:700;font-size:13px;letter-spacing:.16em;text-transform:uppercase;color:#8A6A28;margin-top:8px}
.rite h1,.ritualintro h1,.ritualstep h1,.ritualcomplete h1{font-family:var(--f-display);font-weight:400;font-size:clamp(39px,9vw,54px);line-height:1.02;color:#2D2532;margin:0;text-wrap:balance}
.ritualintro .purpose,.ritualstep .purpose{font-family:var(--f-display);font-style:italic;font-size:22px;line-height:1.4;color:#6E6170;margin:0}
.ritualmeta{display:flex;flex-wrap:wrap;gap:0;margin:2px 0 5px;color:#655A65;font:14px var(--f-ui)}
.ritualmeta span+span::before{content:"·";color:#A7863D;margin:0 9px}
.ritualtray{margin-top:8px;padding:18px 0 8px;border:0;border-top:1px solid rgba(112,83,31,.25);border-bottom:1px solid rgba(112,83,31,.18);background:transparent;border-radius:0}
.trayhead{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}
.trayhead .sayl{font:700 13px var(--f-ui);letter-spacing:.14em;text-transform:uppercase;color:#6B5326}
.trayhead .small{color:#776E76}
.ritualtray .needchips{display:flex;flex-wrap:wrap;gap:9px;margin:14px 0 8px}
.rite .needchip{border:1px solid rgba(112,83,31,.28);background:rgba(255,252,243,.54);color:#352D38;border-radius:999px;padding:9px 13px;min-height:42px;font:16px var(--f-ui);box-shadow:none}
.rite .needchip .needcheck{color:#8E6E2C;margin-right:6px}
.rite .needchip.missing{border-style:dashed;opacity:.7}
.ritualtray .supplyhint{font:14px/1.45 var(--f-ui);color:#766C75;margin:8px 0 2px;max-width:46ch}
.supplyswap{background:rgba(255,252,243,.5);border-left:2px solid #A7863D;border-radius:0;padding:10px 13px}
.rite .foot{max-width:600px;padding:10px 26px calc(18px + env(safe-area-inset-bottom,0px));background:linear-gradient(180deg,rgba(235,221,186,0),rgba(235,221,186,.98) 35%)}
.rite .foot .btn{min-height:52px;border-radius:999px}
.rite .btn-ink{background:#282031;color:#FBF2DB;box-shadow:none}
.rite .btn-ink:hover,.rite .btn-ink:focus-visible{background:#1E1826}
.rite .btn-ghost{background:transparent;box-shadow:inset 0 0 0 1px rgba(54,43,57,.24);color:#3B313F}
.ritualstep .text{font-family:var(--f-display);font-size:25px;line-height:1.48;color:#403642;margin:4px 0}
.ritualstep .say{border:0;border-left:1px solid #A7863D;padding:5px 0 5px 18px;text-align:left;color:#4A394A;font-size:25px;background:transparent}
.ritualstep .say .sayl{display:block;font:700 12px var(--f-ui);font-style:normal;letter-spacing:.15em;text-transform:uppercase;color:#8B6B29;margin-bottom:7px}
.ritualcomplete{padding-top:18px}
.ritualcomplete .finishq{font:italic 25px/1.35 var(--f-display);color:#645765}
.afterfeel{gap:8px}
.rite .afterfeel .chip{border-radius:999px;background:rgba(255,252,243,.48)}
.ritualnotes{margin-top:8px;border-top:1px solid rgba(112,83,31,.2);padding-top:12px}
.ritualnotes summary{font:700 14px var(--f-ui);color:#6A532A;cursor:pointer}
.ritualnotes textarea{min-height:120px}

/* ---------------- MAILBOX ---------------- */
.mailbox{background:transparent!important;border:0!important;padding:0!important}
.mailhead{display:flex;align-items:center;gap:14px;padding-bottom:14px;border-bottom:1px solid rgba(231,196,90,.2)}
.mailhead svg{filter:drop-shadow(0 8px 12px rgba(0,0,0,.2))}
.mailbox .li{padding:15px 2px;border-color:rgba(244,241,230,.1)}
.mailbox .li>span:first-child{font-family:var(--f-display);font-size:20px;line-height:1.3}
.letterc{background:#F3E8CD!important;color:#2D2532!important;border:1px solid rgba(199,164,74,.5)!important;border-radius:7px!important;box-shadow:0 12px 28px -18px rgba(0,0,0,.7)!important}
.letterc .label,.letterc .small{color:#7D6228!important}
.letterc .lt{font-family:var(--f-display);font-size:23px}
.page.letter{background:#F4E8CB;border-radius:4px;color:#302734;padding:24px 22px;box-shadow:0 20px 45px -30px #000}
.page.letter .kicker{color:#846727}
.page.letter h3{font-size:36px;font-weight:400}
.page.letter p{font-family:var(--f-display);font-size:20px;line-height:1.55}

/* ---------------- GUARDIAN DIALOGUE ---------------- */
.talk .hd{border-bottom:1px solid rgba(231,196,90,.15);padding-top:14px;padding-bottom:14px}
.talk .hd .who .n{font-size:28px;font-weight:400}
.talk .hd .who .t{letter-spacing:.08em;font-size:13px}
.talk .msgs{gap:18px;padding:18px 18px 24px}
.intro{background:transparent;border:0;border-bottom:1px solid rgba(244,241,230,.1);border-radius:0;padding:4px 0 18px}
.intro .kv{display:none}
.intro .top2{grid-template-columns:48px 1fr}
.intro .top2 svg{width:48px;height:48px}
.bub{max-width:92%}
.bub.them{align-self:stretch;max-width:none;background:transparent!important;border:0!important;border-left:1px solid rgba(231,196,90,.32)!important;border-radius:0!important;padding:5px 8px 5px 16px;font-family:var(--f-display);font-size:22px;line-height:1.48}
.bub.me{align-self:flex-end;max-width:84%;background:rgba(244,241,230,.075);border:1px solid rgba(244,241,230,.12);border-radius:15px 15px 4px 15px;padding:10px 13px;font-size:18px}
.bub.them .hear{float:right;margin-left:8px}
.talk .ft{border-top:1px solid rgba(244,241,230,.08);padding-top:12px}
.talk .ft textarea{border-radius:17px;background:rgba(244,241,230,.055);border-color:rgba(244,241,230,.14)}
.send{background:var(--gold);color:#171326;box-shadow:none}

/* Mobile polish */
@media (max-width:420px){
  .spread .tarot.sp,.spread.seven .tarot.sp{flex-basis:102px;width:102px!important;height:163px!important;margin-left:-28px!important}
  .rite .wrap{padding-left:22px;padding-right:22px}
  .rite .foot{padding-left:22px;padding-right:22px}
  .ritualwho small{max-width:170px}
  .altarpositions span{font-size:13px}
}


/* ================================================================
   CRISP BACKGROUND PASS · OCT 2026
   Keep the living palette and stars, remove full-screen haze and grain.
================================================================ */
body::before,body::after{display:none!important}
#wxLayer{-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
html[data-weather=fog] #wxLayer{background:linear-gradient(180deg,rgba(200,195,215,.025),rgba(200,195,215,.04) 70%,rgba(200,195,215,.015))!important}


/* ================================================================
   JEWEL-TONE WORLD PASS · OCT 2026
   Auto appearance must stay rich and crisp around surfaces.
================================================================ */
html[data-light=day-bright]:not([data-theme]){--world-bg:#3A3055}
html[data-light=day-low]:not([data-theme]){--world-bg:#332943}
html[data-light=golden]:not([data-theme]){--world-bg:#3A263D}
html[data-light=blue]:not([data-theme]){--world-bg:#222A46}
html[data-light=night]:not([data-theme]){--world-bg:#0C0918}
html[data-weather] #wxLayer{opacity:.55}

/* ================================================================
   LIVING PALETTE · OCT 6 2026
   skyTick() sets the accent, button and card colors through the day.
================================================================ */
.card,.reading,.aura,.sheet{border-color:var(--card-edge,rgba(244,241,230,.30))}
.btn-main{background:radial-gradient(120% 140% at 30% 0%,var(--fuchsia-hi),var(--fuchsia) 60%,color-mix(in srgb,var(--fuchsia) 70%,#000));box-shadow:inset 0 0 0 1px rgba(255,220,120,.45),inset 0 2px 0 rgba(255,255,255,.18),0 10px 22px -10px color-mix(in srgb,var(--fuchsia) 80%,transparent)}
.chip[aria-pressed=true]{border-color:var(--accent,var(--gold))}
html:not([data-theme]) .card{background:var(--surface-card)}
html:not([data-theme]) .card.icircle{background:linear-gradient(180deg,var(--surface-aura-1),var(--surface-card))}
html:not([data-theme]) nav.tabs .in{background:var(--surface-nav)}
html:not([data-theme]) .alch{background:color-mix(in srgb,var(--surface-card) 72%,transparent)}
html:not([data-theme]) .chc{background:color-mix(in srgb,var(--surface-card-2) 85%,transparent)}
html:not([data-theme]) textarea{background:var(--surface-input)}
