
:root{
 --cream:#fffaf3;--cream2:#fffdf9;--ink:#27213f;--deep:#412d66;--purple:#65418d;
 --purple2:#7954a1;--muted:#6f6976;--gold:#d7aa54;--line:#eadfd3;--lav:#e9def4;
 --pink:#d76888;--shadow:0 14px 36px rgba(58,43,76,.12);
}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:#f6f2f8;color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif}
body{display:flex;justify-content:center;padding:18px}
a{text-decoration:none;color:inherit}button,input,textarea{font:inherit}.icon{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.app{width:min(430px,100%);min-height:900px;background:linear-gradient(180deg,#fffaf4,#fffdf8);border-radius:42px;box-shadow:0 20px 70px rgba(55,41,72,.13);overflow:hidden;border:1px solid #ebe2df;position:relative}
.screen{min-height:900px;padding:20px 26px 94px}.status{height:30px;display:flex;justify-content:space-between;align-items:center;font-size:14px;font-weight:700;color:#111}.status-icons{display:flex;gap:5px;align-items:center}.status-icons span{font-size:13px}
.top{height:46px;display:flex;align-items:center;justify-content:space-between}.iconBtn{width:42px;height:42px;display:grid;place-items:center;color:#251d49;background:none;border:0;padding:0}.gold{color:var(--gold)}
.serif{font-family:Georgia,"Times New Roman",serif}.greeting{text-align:center;font-size:14px;margin-top:14px}.brand{text-align:center;font-family:Georgia,"Times New Roman",serif;font-size:42px;font-weight:400;letter-spacing:.5px;color:#2f2450;margin:14px 0 8px}
.sunrise{width:calc(100% + 52px);margin-left:-26px;height:180px;object-fit:cover;display:block}.intro{text-align:center;font-size:16px;font-weight:600;line-height:1.5;margin:23px 0 27px}.label{font-size:14px;font-weight:600;margin-bottom:9px}.question{border:1px solid #eadfd3;background:rgba(255,255,255,.88);border-radius:16px;padding:15px 16px 11px;box-shadow:0 5px 16px rgba(69,52,87,.05)}textarea{border:0;background:transparent;outline:0;width:100%;resize:none;min-height:58px;font-size:17px;color:var(--ink)}.counter{text-align:right;color:#7e7784;font-size:11px}.sectionTitle{text-align:center;font-size:9px;font-weight:800;letter-spacing:.6px;margin:22px 0 12px}.topics{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.topic{text-align:center;font-size:11px;cursor:pointer}.topicCircle{width:52px;height:52px;border-radius:50%;margin:auto;border:1px solid #e3d8cc;display:grid;place-items:center;background:#fffdf9;box-shadow:0 5px 10px rgba(68,50,84,.05);color:#38245d}.topicCircle svg{width:25px;height:25px}.topic.selected .topicCircle{background:#f7e4eb}.topicName{margin-top:5px}.topicSymbol{font-size:25px;color:#3c285f}.heart{color:#c65378}.primary{width:100%;min-height:52px;border:0;border-radius:14px;background:linear-gradient(180deg,#744c9a,#5b347f);color:white;font-size:13px;font-weight:800;letter-spacing:.7px;margin-top:20px;box-shadow:0 8px 18px rgba(91,52,127,.2)}
.bottom{position:absolute;bottom:0;left:0;right:0;height:82px;border-top:1px solid #e9dfd6;background:rgba(255,252,247,.95);display:grid;grid-template-columns:repeat(4,1fr);align-items:center}.navItem{text-align:center;font-size:10px;color:#44404a}.navItem svg{width:23px;height:23px;margin-bottom:3px}.navItem.active{color:#523179;font-weight:700}.navItem.active svg{fill:#523179;stroke:#523179}.navItem.active svg path,.navItem.active svg circle{fill:inherit}
.pageTitle{text-align:center;font-size:24px;font-weight:700;letter-spacing:.4px;margin:8px 0 7px}.pageSub{text-align:center;font-size:14px;margin:0 0 7px}.goldDivider{text-align:center;color:var(--gold);font-size:20px;letter-spacing:8px;margin:11px 0 8px}.doors{width:calc(100% + 52px);margin-left:-26px;height:430px;object-fit:cover;object-position:center;display:block}.choices{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:8px}.choice{background:rgba(255,255,255,.88);border:1px solid #eadfd4;border-radius:18px;padding:13px 5px 14px;text-align:center;box-shadow:0 8px 18px rgba(68,49,87,.08);cursor:pointer}.choiceIcon{font-size:33px;height:40px}.choiceTitle{font-family:Georgia,"Times New Roman",serif;font-size:21px;color:#2f2451;margin:4px 0 5px}.choiceText{font-size:10px;line-height:1.35}.how{margin:36px auto 0;width:74%;min-height:48px;border:1px solid #e7dccf;border-radius:99px;background:#fffdf7;display:flex;align-items:center;justify-content:center;gap:9px;font-size:12px;font-weight:700;box-shadow:0 7px 16px rgba(61,47,77,.06)}.how svg{width:21px}
.resultHead{text-align:center;margin-top:5px}.kicker{font-size:11px;font-weight:700;letter-spacing:.8px}.pathName{font-family:Georgia,"Times New Roman",serif;font-size:42px;line-height:1;color:#2f2350;margin-top:3px}.pathMoon{font-size:40px;color:#70519b;line-height:1;margin-top:7px}.sparkRow{display:flex;justify-content:center;gap:38px;color:var(--gold);margin-top:-5px;font-size:17px}.cardArt{display:block;margin:14px auto 0;width:78%;height:auto;filter:drop-shadow(0 7px 12px rgba(39,30,55,.10))}.headline{text-align:center;font-family:Georgia,"Times New Roman",serif;font-size:22px;line-height:1.25;margin:16px 5px 9px;color:#2a2044}.body{text-align:center;font-size:14px;line-height:1.5;margin:0 10px}.advice{border:1px solid #e8ddd1;border-radius:16px;background:#fffdf9;margin-top:20px;padding:14px 16px;display:grid;grid-template-columns:45px 1fr;gap:8px;align-items:center}.adviceStar{font-size:36px;color:#8062ab}.adviceTitle{font-size:12px;font-weight:800;letter-spacing:.5px}.adviceText{font-size:13px;line-height:1.45;margin-top:3px}.secondaryLink{text-align:center;font-size:13px;font-weight:700;letter-spacing:.5px;margin-top:20px;display:block}.altTitle{text-align:center;font-size:21px;font-weight:700;margin-top:5px}.altSub{text-align:center;font-size:14px;margin-top:6px}.pillTitle{text-align:center;font-size:11px;font-weight:800;letter-spacing:.6px;margin-top:20px}.pills{display:flex;justify-content:center;gap:10px;margin-top:8px}.pill{background:#f0e2ea;border-radius:999px;padding:7px 13px;font-size:11px}.timelineTabs{display:grid;grid-template-columns:1fr 1fr;text-align:center;margin-top:15px;border-bottom:1px solid #e5dcd7}.timelineTabs span{padding:10px;font-size:15px}.timelineTabs .active{font-weight:700;color:#362354;border-bottom:2px solid #533078}.timeline{position:relative;margin-top:24px;padding-left:18px}.timeline:before{content:"";position:absolute;left:5px;top:6px;bottom:20px;width:1px;background:#d9cae8}.entry{position:relative;margin-bottom:24px}.dot{position:absolute;left:-18px;top:4px;width:12px;height:12px;border-radius:50%;background:#8b6bb0}.date{font-weight:700;font-size:14px;margin-bottom:10px}.historyCard{background:rgba(255,255,255,.75);border:1px solid #eadfd5;border-radius:17px;box-shadow:0 8px 20px rgba(65,49,82,.06);padding:15px 14px;display:grid;grid-template-columns:1fr 92px;gap:12px;align-items:center}.historyPath{font-family:Georgia,"Times New Roman",serif;font-size:20px;color:#342450}.historyName{font-size:15px;font-weight:600;margin-top:5px}.historyText{font-size:12px;line-height:1.5;color:#5e5865;margin-top:10px}.thumb{width:92px;height:128px;object-fit:cover;border-radius:6px;border:1px solid #cda958}
@media(max-width:470px){body{padding:0;background:var(--cream)}.app{width:100%;min-height:100vh;border-radius:0;box-shadow:none;border:0}.screen{min-height:100vh}.doors{height:420px}.bottom{position:fixed;max-width:430px;left:50%;transform:translateX(-50%);width:100%}}

/* V18 additions — V17 visual system remains unchanged */
.cardLabel{text-align:center;font-family:Georgia,"Times New Roman",serif;font-size:11px;color:#5d4b43;letter-spacing:.3px;margin-top:-1px}
.altHeadline{font-family:inherit!important;font-size:18px!important;font-weight:700!important;margin-top:20px!important}
.tabButton{border:0;background:none;color:var(--muted);font:inherit;padding:10px;font-size:15px;cursor:pointer;border-bottom:2px solid transparent}
.tabButton.active{font-weight:700;color:#362354;border-bottom-color:#533078}
.patternsPanel{margin-top:23px}.patternHero{display:flex;align-items:center;gap:16px;background:linear-gradient(135deg,#f5edf8,#fffaf7);border:1px solid #e9dfd8;border-radius:18px;padding:18px}.patternMoon{font-size:46px;color:#76549a}.patternKicker{font-size:9px;font-weight:800;letter-spacing:1px;color:#7c6c89}.patternLead{font-family:Georgia,"Times New Roman",serif;font-size:18px;line-height:1.3;margin-top:4px;color:#382751}.patternGrid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}.patternCard{background:#fffdf9;border:1px solid #e9ded5;border-radius:17px;padding:17px;text-align:center;box-shadow:0 7px 18px rgba(63,48,79,.05)}.patternIcon{font-size:28px;color:#715092}.patternLabel{font-size:8px;font-weight:800;letter-spacing:.8px;color:#7a7280;margin-top:8px}.patternValue{font-family:Georgia,"Times New Roman",serif;font-size:20px;color:#3a2957;margin-top:5px}.patternNote{font-size:13px;line-height:1.5;color:#655e69;text-align:center;margin:20px 13px 0}.historyLink{display:block;color:inherit}.emptyJourney{text-align:center;padding:42px 20px}.emptyJourney .emptyMoon{font-size:55px;color:#b7a5cb}.emptyJourney h3{font-family:Georgia,"Times New Roman",serif;font-size:21px;color:#382751;margin:10px 0 5px}.emptyJourney p{font-size:13px;line-height:1.5;color:#6e6772}.insightKicker{text-align:center;font-size:9px;font-weight:800;letter-spacing:1.1px;color:#775990;margin-top:10px}.dailyTitle{font-size:30px!important;margin-top:5px!important}.dailyDate{text-align:center;color:#807784;font-size:12px}.dailyHalo{height:0;position:relative;z-index:0;text-align:center}.dailyHalo span{position:absolute;left:50%;transform:translateX(-50%);top:45px;font-size:185px;line-height:1;color:#f1e6f6;opacity:.62}.dailyCard{position:relative;z-index:1;width:70%;margin-top:18px}.dailyBody{margin-top:3px}.dailyPrompt{border:1px solid #e8ddd1;border-radius:16px;background:#fffdf9;margin-top:19px;padding:14px 16px;display:grid;grid-template-columns:45px 1fr;gap:8px;align-items:center}.profileOrb{width:94px;height:94px;border-radius:50%;background:#eee3f5;color:#69478e;display:grid;place-items:center;font-size:50px;margin:28px auto 14px;border:1px solid #dfd0e9}.settingsGroup{background:#fffdf9;border:1px solid #eadfd7;border-radius:18px;margin-top:20px;padding:0 16px}.settingsTitle{font-size:9px;font-weight:800;letter-spacing:1px;color:#77598e;padding:15px 0 5px}.settingsRow{width:100%;min-height:64px;border:0;border-bottom:1px solid #eee5de;background:none;display:flex;align-items:center;justify-content:space-between;text-align:left;color:var(--ink);padding:8px 0;font-size:16px}.settingsRow:last-child{border-bottom:0}.settingsRow div{display:flex;flex-direction:column;gap:3px}.settingsRow b{font-size:14px}.settingsRow span{font-size:12px;color:#77707b}.settingsRow>a,.settingsRow>span{font-size:24px;color:#735394}.settingsRow.danger{cursor:pointer}.settingsRow.danger b{color:#82526a}.softDisclaimer{background:#f4edf7;border-radius:16px;padding:16px;margin-top:20px;text-align:center;font-size:12px;line-height:1.55;color:#5c5561}.softDisclaimer b{color:#654786}.steps{margin-top:24px}.step{display:grid;grid-template-columns:46px 1fr;gap:13px;padding:15px 0;border-bottom:1px solid #ece2dc}.stepNo{width:42px;height:42px;border-radius:50%;background:#ede2f4;color:#67458c;display:grid;place-items:center;font-family:Georgia,"Times New Roman",serif;font-size:21px}.step b{font-size:15px}.step p{font-size:13px;line-height:1.5;color:#6b6470;margin:5px 0 0}.flash{animation:flash .5s ease}@keyframes flash{0%{transform:scale(1)}40%{transform:scale(1.035)}100%{transform:scale(1)}}

.homeHelp{
  width:max-content;
  margin:14px auto 0;
  display:flex;
  align-items:center;
  gap:7px;
  color:#4d366d;
  font-size:10px;
  letter-spacing:.65px;
  font-weight:800;
}
.helpCircle{
  width:19px;height:19px;border-radius:50%;
  display:grid;place-items:center;
  border:1px solid #8d75a4;
  font-size:11px;
}
.cardArt,.dailyCard,.thumb{
  image-rendering:auto;
}
.cardArt{
  filter:drop-shadow(0 11px 17px rgba(48,38,62,.12));
}

/* V26 — clickable illustrated doors */
.doorsWrap{position:relative;width:calc(100% + 52px);margin-left:-26px;height:430px;overflow:hidden}
.doorsWrap .doors{width:100%;height:100%;margin:0;object-fit:cover;object-position:center;display:block}
.doorHotspot{position:absolute;top:22%;bottom:5%;z-index:4;border-radius:46% 46% 8px 8px;cursor:pointer;outline:none;transition:background .16s ease,box-shadow .16s ease,transform .16s ease}
.doorHotspot span{position:absolute;left:50%;bottom:5%;transform:translateX(-50%);font-family:Georgia,"Times New Roman",serif;font-size:12px;letter-spacing:1px;color:#fff;background:rgba(43,31,69,.46);padding:5px 10px;border-radius:999px;opacity:0;transition:opacity .16s ease}
.doorHotspot:hover,.doorHotspot:focus-visible{background:rgba(255,255,255,.09);box-shadow:inset 0 0 0 2px rgba(240,210,126,.72),0 0 22px rgba(237,208,132,.22)}
.doorHotspot:hover span,.doorHotspot:focus-visible span{opacity:1}
.doorHotspot:active{transform:scale(.985)}
.doorStay{left:6%;width:28%}.doorWait{left:35.3%;width:29.4%}.doorLeave{right:6%;width:28%}

/* V26 — deliberate card reveal; never flash a default tarot card */
.cardRevealFrame{min-height:420px;display:flex;align-items:center;justify-content:center}
.cardRevealFrame .cardArt{transition:opacity .32s ease,transform .32s ease;opacity:.94}
.cardRevealFrame .cardArt.isRevealing{opacity:.15;transform:scale(.985)}
.cardRevealFrame .cardArt.isRevealed{opacity:1;transform:scale(1)}
.cardPendingText{transition:opacity .24s ease}
@media(max-width:470px){.doorsWrap{height:420px}.cardRevealFrame{min-height:390px}}


/* V29 — warmer, clearer home hierarchy */
.homeBrand{
  text-align:center;
  margin:14px 0 4px;
}
.brandMini{
  font-family:Georgia,"Times New Roman",serif;
  font-size:26px;
  line-height:1.02;
  letter-spacing:2.1px;
  color:#332653;
}
.brandBy{
  margin-top:7px;
  font-size:12px;
  line-height:1;
  letter-spacing:2.2px;
  text-transform:uppercase;
  color:#917d99;
}
.decisionTitle{
  max-width:360px;
  margin:16px auto 8px;
  text-align:center;
  font-family:Georgia,"Times New Roman",serif;
  font-size:35px;
  line-height:1.02;
  font-weight:400;
  letter-spacing:-.35px;
  color:#2f244d;
}
.decisionSub{
  text-align:center;
  margin:0 auto 10px;
  max-width:300px;
  font-size:15px;
  line-height:1.45;
  color:#6b6472;
}
.greeting{
  text-align:center;
  font-size:14px;
  margin-top:14px;
  color:#2f2948;
}
@media (max-width:370px){
  .decisionTitle{font-size:31px;max-width:320px}
  .brandMini{font-size:22px}
  .brandBy{font-size:10px}
}


/* V32 generative reading state */
.aiLoadingText{
  position:relative;
  opacity:.72;
}
.aiLoadingText::after{
  content:"";
  display:inline-block;
  width:14px;
  height:14px;
  margin-left:8px;
  vertical-align:-2px;
  border:1.5px solid rgba(85,61,112,.25);
  border-top-color:#684b82;
  border-radius:50%;
  animation:aiSpin .8s linear infinite;
}
@keyframes aiSpin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){
  .aiLoadingText::after{animation:none}
}

/* V42 card geometry */
.cardArt,.dailyCard,.thumb{
  object-fit:contain;
}
.cardArt,.dailyCard{
  aspect-ratio:2 / 3;
}


/* V43 — Rose / Moon / Star Gate language */
.gatePageTitle{
  font-family:Georgia,"Times New Roman",serif;
  font-size:25px;
  letter-spacing:.2px;
}
.gatePageSub{
  max-width:310px;
  margin-left:auto;
  margin-right:auto;
  line-height:1.45;
  color:#6c6474;
}
.gateChoice{
  padding-left:3px;
  padding-right:3px;
}
.gateChoiceTitle{
  font-size:13px;
  line-height:1.15;
  letter-spacing:.25px;
  white-space:nowrap;
}
.gateChoiceText{
  font-size:9.5px;
  color:#625c68;
}
.roseGateIcon{color:#c96686}
.moonGateIcon{color:#704a9b}
.starGateIcon{color:#50618f}


/* V47 — free reading allowance */
.readingQuota{
  width:max-content;
  max-width:100%;
  margin:9px auto 2px;
  padding:7px 12px;
  border:1px solid #e6d9ea;
  border-radius:999px;
  background:linear-gradient(180deg,#fbf6ff,#fffaf6);
  color:#674b7d;
  font-size:10.5px;
  font-weight:700;
  letter-spacing:.15px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  box-shadow:0 5px 14px rgba(83,58,101,.05);
}
.quotaSpark{
  color:var(--gold);
  font-size:12px;
}
.readingQuota.quotaEmpty{
  color:#7d6978;
  background:#f8f3f5;
}
.primary.quotaDisabled,
.primary:disabled{
  opacity:.64;
  cursor:not-allowed;
  box-shadow:none;
}

/* V48 — installable/native app shell */
html,body{min-height:100%;overscroll-behavior-y:none}
body{-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none}
button,a,.pathChoice,.topic{touch-action:manipulation}
.appStandalone .status{display:none}
.appStandalone .screen{padding-top:max(12px,env(safe-area-inset-top))}
.appStandalone .bottom{padding-bottom:max(8px,env(safe-area-inset-bottom))}
.appStandalone .app{min-height:100dvh}
.offlineScreen{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding-left:28px;padding-right:28px;padding-bottom:max(30px,env(safe-area-inset-bottom))}
.offlineScreen .decisionSub{max-width:330px;line-height:1.55;margin-bottom:26px}
.offlineMark{color:var(--gold);font-size:42px;margin-bottom:16px}
@media (display-mode:standalone){
 .status{display:none}
 .screen{padding-top:max(12px,env(safe-area-inset-top))}
 .bottom{padding-bottom:max(8px,env(safe-area-inset-bottom))}
}


/* V52 — light icon matching launch splash */
.launchSplash{
  position:fixed;
  inset:0;
  z-index:9999;
  display:flex;
  align-items:center;
  justify-content:center;
  background:
    radial-gradient(circle at 50% 39%,rgba(192,167,218,.25),transparent 31%),
    linear-gradient(180deg,#fff6ea 0%,#fffaf5 100%);
  opacity:0;
  pointer-events:auto;
  transition: opacity .42s ease, transform .42s ease;
}
.launchSplash.splashVisible{opacity:1}
.launchSplash.splashLeaving{opacity:0;pointer-events:none}
.launchSplashInner{
  text-align:center;
  transform:translateY(-2.5vh);
  animation:launchFloat .65s ease both;
}
.launchSplashLogo{
  width:min(54vw,210px);
  aspect-ratio:1/1;
  object-fit:cover;
  border-radius:28%;
  box-shadow:0 12px 34px rgba(76,55,91,.10);
  margin-bottom:22px;
}
.launchTitle{
  color:#3e3150;
  font-family:Georgia,"Times New Roman",serif;
  font-size:31px;
  font-weight:700;
  letter-spacing:1.1px;
}
.launchBy{
  margin-top:6px;
  color:#a38155;
  font-size:9.5px;
  font-weight:800;
  letter-spacing:2.2px;
}
.launchStar{
  margin-top:18px;
  color:#c49a54;
  font-size:18px;
}
@keyframes launchFloat{
  from{opacity:0;transform:translateY(1vh) scale(.975)}
  to{opacity:1;transform:translateY(-2.5vh) scale(1)}
}
@media (prefers-reduced-motion:reduce){
  .launchSplash,.launchSplashInner{
    animation:none !important;
    transition:none !important;
  }
}
.nativeSettingsCard{
  padding:15px 14px;
  border:1px solid #e6dbea;
  border-radius:18px;
  background:linear-gradient(180deg,#fffaf5,#faf5ff);
  display:grid;
  grid-template-columns:34px 1fr auto;
  gap:11px;
  align-items:center;
  box-shadow:0 6px 18px rgba(67,47,82,.05);
}
.nativeSettingsIcon{
  width:34px;height:34px;border-radius:50%;
  display:grid;place-items:center;
  background:#efe7f7;color:#705294;font-size:18px;
}
.nativeSettingsTitle{
  font-size:10.5px;
  font-weight:800;
  letter-spacing:.7px;
  color:#493a58;
}
.nativeSettingsText{
  font-size:10.5px;
  line-height:1.35;
  color:#6e6672;
  margin-top:3px;
}
.nativeSettingsStatus{
  font-size:9.5px;
  color:#9a8ca0;
  margin-top:4px;
}
/* =========================================================
   V51 — TRUE FULLSCREEN MOBILE LAYOUT
   - app always matches device viewport
   - bottom navigation never covers content
   - Home + Gate screens fit on one normal iPhone screen
   - long reading/history screens scroll inside the viewport
   ========================================================= */

html,
body{
  width:100%;
  height:100%;
  min-height:100%;
  overflow:hidden;
}

body{
  padding:0;
  background:var(--cream);
  display:block;
}

.app{
  width:100%;
  max-width:430px;
  height:100dvh;
  min-height:0;
  margin:0 auto;
  border:0;
  border-radius:0;
  box-shadow:none;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  background:linear-gradient(180deg,#fffaf4,#fffdf8);
}

.screen{
  width:100%;
  height:100%;
  min-height:0;
  overflow-x:hidden;
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior-y:contain;
  padding:
    max(8px, env(safe-area-inset-top))
    22px
    calc(78px + max(10px, env(safe-area-inset-bottom)));
  scrollbar-width:none;
}
.screen::-webkit-scrollbar{display:none}

.bottom{
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  transform:none;
  width:100%;
  max-width:none;
  height:calc(68px + max(8px, env(safe-area-inset-bottom)));
  padding-bottom:max(8px, env(safe-area-inset-bottom));
  z-index:90;
  border-top:1px solid #e9dfd6;
  background:rgba(255,252,247,.97);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
}

.appStandalone .screen{
  padding-top:max(8px,env(safe-area-inset-top));
}
.appStandalone .bottom{
  padding-bottom:max(8px,env(safe-area-inset-bottom));
}
.appStandalone .app{
  height:100dvh;
  min-height:0;
}

/* ---------- HOME: fit without scrolling on normal iPhones ---------- */
.page-home .screen{
  overflow-y:hidden;
  padding-left:20px;
  padding-right:20px;
  padding-bottom:calc(70px + max(8px,env(safe-area-inset-bottom)));
}

.page-home .top{
  height:38px;
}
.page-home .iconBtn{
  width:36px;
  height:36px;
}
.page-home .top .gold{
  font-size:23px!important;
}
.page-home .greeting{
  font-size:13px;
  margin-top:2px;
}
.page-home .homeBrand{
  margin:6px 0 1px;
}
.page-home .brandMini{
  font-size:24px;
}
.page-home .brandBy{
  margin-top:4px;
  font-size:10px;
}
.page-home .decisionTitle{
  margin:9px auto 4px;
  max-width:330px;
  font-size:clamp(29px,4.1dvh,35px);
  line-height:1.0;
}
.page-home .decisionSub{
  margin-bottom:5px;
  max-width:310px;
  font-size:13px;
  line-height:1.32;
}
.page-home .sunrise{
  width:calc(100% + 40px);
  margin-left:-20px;
  height:clamp(105px,16.5dvh,145px);
}
.page-home .question{
  border-radius:15px;
  padding:10px 13px 7px;
}
.page-home textarea{
  min-height:44px;
  max-height:54px;
  font-size:14px;
  line-height:1.3;
}
.page-home .readingQuota{
  margin:6px auto 0;
  padding:5px 10px;
  font-size:9.8px;
}
.page-home .sectionTitle{
  margin:10px 0 7px;
  font-size:8.5px;
}
.page-home .topics{
  gap:4px;
}
.page-home .topic{
  font-size:10px;
}
.page-home .topicCircle{
  width:46px;
  height:46px;
}
.page-home .topicCircle svg{
  width:22px;
  height:22px;
}
.page-home .topicSymbol{
  font-size:22px;
}
.page-home .topicName{
  margin-top:3px;
}
.page-home .primary{
  min-height:44px;
  margin-top:10px;
  border-radius:13px;
  font-size:11.5px;
}
.page-home .homeHelp{
  margin-top:7px;
  font-size:8.8px;
}
.page-home .helpCircle{
  width:16px;
  height:16px;
  font-size:9px;
}

/* ---------- GATE SCREEN: all 3 cards visible above nav ---------- */
.page-paths .screen{
  overflow-y:hidden;
  padding-left:18px;
  padding-right:18px;
  padding-bottom:calc(70px + max(8px,env(safe-area-inset-bottom)));
}
.page-paths .top{
  height:38px;
}
.page-paths .iconBtn{
  width:36px;
  height:36px;
}
.page-paths .gatePageTitle{
  margin:4px auto 4px;
  max-width:340px;
  font-size:clamp(22px,3.2dvh,27px);
  line-height:1.02;
}
.page-paths .gatePageSub{
  max-width:320px;
  margin-bottom:2px;
  font-size:12.5px;
  line-height:1.3;
}
.page-paths .goldDivider{
  margin:5px 0 4px;
  font-size:16px;
}
.page-paths .doorsWrap{
  width:calc(100% + 36px);
  margin-left:-18px;
  height:clamp(310px,43dvh,390px);
}
.page-paths .choices{
  gap:8px;
  margin-top:7px;
}
.page-paths .choice{
  min-width:0;
  border-radius:16px;
  padding:8px 2px 8px;
}
.page-paths .choiceIcon{
  height:28px;
  font-size:25px;
}
.page-paths .gateChoiceTitle{
  margin:2px 0 3px;
  font-size:clamp(10.5px,1.45dvh,13px);
  white-space:normal;
  line-height:1.02;
}
.page-paths .gateChoiceText{
  font-size:8.6px;
  line-height:1.1;
}
.page-paths .how{
  display:none;
}

/* ---------- RESULT / ALTERNATE: never clipped; comfortable inner scrolling ---------- */
.page-result .screen,
.page-alternate .screen{
  padding-left:20px;
  padding-right:20px;
  padding-bottom:calc(82px + max(10px,env(safe-area-inset-bottom)));
}

.page-result .top,
.page-alternate .top{
  height:38px;
}
.page-result .pathName{
  font-size:clamp(29px,4dvh,38px);
}
.page-result .pathMoon{
  font-size:30px;
  margin-top:4px;
}
.page-result .cardRevealFrame,
.page-alternate .cardRevealFrame{
  min-height:0;
  height:auto;
}
.page-result .cardArt,
.page-alternate .cardArt{
  width:min(63%,245px);
  margin-top:9px;
}
.page-result .headline,
.page-alternate .headline{
  font-size:19px;
  margin-top:12px;
}
.page-result .body,
.page-alternate .body{
  font-size:13px;
  line-height:1.43;
  margin-left:4px;
  margin-right:4px;
}
.page-result .advice{
  margin-top:14px;
  padding:11px 13px;
}
.page-result .adviceStar{
  font-size:28px;
}
.page-result .secondaryLink{
  margin-top:14px;
  padding-bottom:6px;
}

/* ---------- DAILY INSIGHT: compact first viewport, scroll only when needed ---------- */
.page-insights .screen{
  padding-left:20px;
  padding-right:20px;
}
.page-insights .top{height:38px}
.page-insights .dailyTitle{
  font-size:27px!important;
}
.page-insights .dailyCard{
  width:min(58%,225px);
  margin-top:10px;
}
.page-insights .dailyHalo span{
  top:26px;
  font-size:150px;
}
.page-insights .dailyPrompt{
  margin-top:13px;
}

/* ---------- ME / HELP / HISTORY: full viewport + safe internal scroll ---------- */
.page-me .screen,
.page-help .screen,
.page-history .screen{
  padding-left:20px;
  padding-right:20px;
  padding-bottom:calc(82px + max(10px,env(safe-area-inset-bottom)));
}
.page-me .top,
.page-help .top,
.page-history .top{
  height:38px;
}
.page-me .profileOrb{
  width:74px;
  height:74px;
  font-size:38px;
  margin:12px auto 7px;
}
.page-me .settingsGroup{
  margin-top:12px;
}
.page-me .settingsRow{
  min-height:56px;
}
.page-me .softDisclaimer{
  margin-top:12px;
}
.page-help .steps{
  margin-top:14px;
}
.page-help .step{
  padding:11px 0;
}
.page-history .timeline{
  margin-top:15px;
}

/* ---------- short-height phones ---------- */
@media (max-height:760px){
  .page-home .greeting{font-size:11.5px}
  .page-home .homeBrand{margin-top:3px}
  .page-home .brandMini{font-size:21px}
  .page-home .brandBy{font-size:9px}
  .page-home .decisionTitle{font-size:27px;margin-top:6px}
  .page-home .decisionSub{font-size:11.5px}
  .page-home .sunrise{height:98px}
  .page-home .question{padding-top:8px}
  .page-home textarea{min-height:38px;font-size:13px}
  .page-home .readingQuota{margin-top:4px}
  .page-home .sectionTitle{margin:7px 0 5px}
  .page-home .topicCircle{width:41px;height:41px}
  .page-home .primary{min-height:40px;margin-top:7px}
  .page-home .homeHelp{display:none}

  .page-paths .gatePageTitle{font-size:21px}
  .page-paths .gatePageSub{font-size:11.5px}
  .page-paths .doorsWrap{height:300px}
  .page-paths .choice{padding-top:5px;padding-bottom:6px}
  .page-paths .choiceIcon{font-size:21px;height:24px}
  .page-paths .gateChoiceText{display:none}
}

/* ---------- wider tablet / browser keeps centered phone presentation ---------- */
@media (min-width:600px){
  body{
    display:flex;
    justify-content:center;
    align-items:flex-start;
    background:#f6f2f8;
  }
  .app{
    width:430px;
    max-width:430px;
    height:min(100dvh,932px);
    margin:0 auto;
    border-left:1px solid #ebe2df;
    border-right:1px solid #ebe2df;
  }
}

/* Native simulator / actual device must always use the full viewport. */
.appStandalone{
  overflow:hidden;
}
.appStandalone .app{
  width:100%;
  max-width:none;
  height:100dvh;
}


/* V53 — 3-Day Free Journey + paywall */
.readingQuota.quotaPaywall{
  color:#65487d;
  border-color:#d9c6e6;
  background:linear-gradient(180deg,#f7effd,#fff8ef);
}
.primary.quotaUnlock{
  opacity:1;
  cursor:pointer;
  background:linear-gradient(135deg,#74518f,#9570ad);
}
.page-unlock .app{
  background:
    radial-gradient(circle at 50% 29%,rgba(198,176,221,.25),transparent 30%),
    linear-gradient(180deg,#fff7ed,#fffdf9);
}
.unlockScreen{
  overflow-y:auto;
  text-align:center;
  padding-left:24px;
  padding-right:24px;
  padding-bottom:max(30px,env(safe-area-inset-bottom));
}
.unlockTop{
  display:flex;
  align-items:center;
  justify-content:space-between;
  min-height:42px;
}
.unlockTopStar{font-size:23px}
.unlockAura{
  margin:5px auto 6px;
  width:148px;
  height:148px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:radial-gradient(circle,rgba(204,183,225,.22),rgba(255,255,255,0) 70%);
}
.unlockIcon{
  width:118px;
  height:118px;
  border-radius:28px;
  object-fit:cover;
  box-shadow:0 10px 26px rgba(70,48,84,.11);
}
.unlockKicker{
  margin-top:2px;
  color:#9b7d59;
  font-size:9px;
  font-weight:800;
  letter-spacing:1.35px;
}
.unlockTitle{
  margin:8px 0 8px;
  color:#3e3150;
  font-family:Georgia,"Times New Roman",serif;
  font-size:36px;
  line-height:.98;
  letter-spacing:-.7px;
}
.unlockLead{
  margin:0 auto;
  max-width:330px;
  color:#6e6570;
  font-size:12.5px;
  line-height:1.5;
}
.unlockBenefits{
  margin:19px 0 17px;
  text-align:left;
  display:grid;
  gap:9px;
}
.unlockBenefit{
  display:grid;
  grid-template-columns:28px 1fr;
  gap:9px;
  align-items:start;
  padding:11px 12px;
  border:1px solid #eadfea;
  border-radius:15px;
  background:rgba(255,255,255,.65);
}
.unlockBenefit>span{
  color:#84609d;
  font-size:18px;
  line-height:1.2;
  text-align:center;
}
.unlockBenefit b{
  display:block;
  color:#4b3c58;
  font-size:11.5px;
}
.unlockBenefit small{
  display:block;
  margin-top:2px;
  color:#7d737d;
  font-size:9.8px;
  line-height:1.35;
}
.unlockPrimary{
  margin-top:0;
  min-height:48px;
}
.restoreButton{
  margin-top:10px;
  border:0;
  background:transparent;
  color:#725987;
  font-size:9px;
  font-weight:800;
  letter-spacing:.8px;
}
.unlockFreeNote{
  margin:12px auto 0;
  color:#8d838a;
  font-size:9px;
}
.unlockDevNote{
  margin:7px auto 0;
  color:#a06d75;
  font-size:9px;
}
@media(max-height:760px){
  .unlockAura{width:110px;height:110px}
  .unlockIcon{width:88px;height:88px;border-radius:22px}
  .unlockTitle{font-size:31px}
  .unlockBenefits{margin:12px 0 12px;gap:6px}
  .unlockBenefit{padding:8px 10px}
}


/* V54 — RevenueCat Test Store subscription UI */
.readingQuota.quotaPremium{
  color:#5e4374;
  border-color:#cdb6df;
  background:linear-gradient(135deg,#f3e8fb,#fff8ee);
  box-shadow:0 6px 18px rgba(90,61,111,.08);
}
.primary.quotaPremiumButton{opacity:1}
.planGrid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  margin:17px 0 12px;
}
.planCard{
  position:relative;
  min-height:112px;
  border:1px solid #e3d5e7;
  border-radius:18px;
  background:rgba(255,255,255,.7);
  color:#4a3b58;
  padding:17px 10px 12px;
  text-align:center;
  box-shadow:0 7px 18px rgba(74,54,86,.05);
}
.planCard.featured{
  border:1.5px solid #9d7bb4;
  background:linear-gradient(180deg,#f6edfb,#fff9f1);
}
.planCard:disabled,.restoreButton:disabled{opacity:.55}
.bestValue{
  position:absolute;
  top:-9px;
  left:50%;
  transform:translateX(-50%);
  white-space:nowrap;
  background:#795793;
  color:#fff;
  border-radius:999px;
  padding:4px 8px;
  font-size:7px;
  font-weight:800;
  letter-spacing:.8px;
}
.planName{display:block;font-size:9px;font-weight:800;letter-spacing:1px;color:#8d719e}
.planPrice{display:block;margin-top:9px;font-family:Georgia,"Times New Roman",serif;font-size:18px;color:#44334f}
.planMeta{display:block;margin-top:6px;font-size:8.5px;color:#887c86}
.compactBenefits{margin-top:10px}
.purchaseStatus{min-height:18px;margin:5px 0 2px;font-size:10px;line-height:1.35;text-align:center;color:#695673}
.purchaseStatus.success{color:#4f735c;font-weight:700}
.purchaseStatus.error{color:#9a5660}
.purchaseStatus.muted{color:#8c818a}
.unlockLegal{margin:7px auto 0;max-width:310px;color:#a1969b;font-size:7.8px;line-height:1.35;text-align:center}
@media(max-height:760px){
  .planGrid{margin:10px 0 8px}
  .planCard{min-height:93px;padding-top:13px}
  .compactBenefits{margin-top:7px}
}

/* V54.3 — softer inter-screen splash */
#launchSplash,
.launchSplash{
  transition: opacity .42s ease, transform .42s ease !important;
}


/* V55.1 — native paywall viewport/scroll hard fix */
html{
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
}

body.page-unlock{
  width:100%;
  height:100dvh;
  min-height:0;
  margin:0;
  padding:0;
  overflow:hidden;
  display:block;
  background:#fff7ed;
}

.page-unlock .app{
  width:100%;
  max-width:none;
  height:100dvh;
  min-height:0;
  margin:0;
  border:0;
  border-radius:0;
  overflow:hidden;
  display:block;
}

.page-unlock .unlockScreen{
  position:relative;
  width:100%;
  max-width:430px;
  height:100dvh;
  min-height:0;
  margin:0 auto;
  overflow-x:hidden;
  overflow-y:auto !important;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior-y:contain;
  touch-action:pan-y;
  text-align:center;
  padding:
    max(10px, env(safe-area-inset-top))
    22px
    calc(24px + max(12px, env(safe-area-inset-bottom)));
}

.page-unlock .unlockTop{
  min-height:38px;
}

.page-unlock .unlockAura{
  width:clamp(92px, 25vw, 126px);
  height:clamp(92px, 25vw, 126px);
  margin:2px auto 4px;
}

.page-unlock .unlockIcon{
  width:clamp(76px, 21vw, 104px);
  height:clamp(76px, 21vw, 104px);
  border-radius:24%;
}

.page-unlock .unlockTitle{
  font-size:clamp(28px, 8.5vw, 35px);
  line-height:1;
  margin:6px 0 7px;
}

.page-unlock .unlockLead{
  max-width:330px;
  font-size:12px;
  line-height:1.42;
}

.page-unlock .planGrid{
  width:100%;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:9px;
  margin:14px 0 10px;
}

.page-unlock .planCard{
  min-width:0;
  min-height:104px;
  padding:15px 8px 10px;
}

.page-unlock .planPrice{
  overflow-wrap:anywhere;
}

.page-unlock .compactBenefits{
  width:100%;
  margin:10px 0 9px;
  gap:7px;
}

.page-unlock .unlockBenefit{
  padding:9px 10px;
}

.page-unlock .restoreButton{
  min-height:34px;
  margin-top:4px;
}

.page-unlock .unlockFreeNote{
  margin:7px auto 0;
}

.page-unlock .unlockLegal{
  margin-bottom:8px;
}

@media (max-width:360px){
  .page-unlock .unlockScreen{
    padding-left:16px;
    padding-right:16px;
  }
  .page-unlock .planGrid{
    grid-template-columns:1fr;
  }
  .page-unlock .planCard{
    min-height:82px;
  }
}

@media (max-height:700px){
  .page-unlock .unlockAura{
    width:78px;
    height:78px;
  }
  .page-unlock .unlockIcon{
    width:66px;
    height:66px;
  }
  .page-unlock .unlockTitle{
    font-size:27px;
  }
  .page-unlock .planCard{
    min-height:88px;
  }
  .page-unlock .compactBenefits{
    margin-top:7px;
  }
}


/* V55.2 — compact native paywall; no large artwork */
.page-unlock .unlockMark{
  width:56px;
  height:56px;
  margin:2px auto 8px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  position:relative;
  background:linear-gradient(180deg,#f1e6f8,#fff6ea);
  border:1px solid #dfcfe8;
  box-shadow:0 7px 18px rgba(79,58,92,.08);
  color:#654779;
}
.page-unlock .unlockMoon{
  font-family:Georgia,"Times New Roman",serif;
  font-size:31px;
  line-height:1;
  transform:translate(-1px,-1px);
}
.page-unlock .unlockStar{
  position:absolute;
  right:7px;
  top:6px;
  color:#c59342;
  font-size:10px;
}
.page-unlock .unlockKicker{
  margin-top:0;
  font-size:9px;
  letter-spacing:1.2px;
}
.page-unlock .unlockTitle{
  margin:7px 0 8px;
  font-size:clamp(30px,8vw,36px);
  line-height:1;
}
.page-unlock .unlockLead{
  max-width:330px;
  margin:0 auto 2px;
  font-size:12.5px;
  line-height:1.4;
}
.page-unlock .planGrid{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important;
  width:100%;
  gap:10px;
  margin:18px 0 12px;
}
.page-unlock .planCard{
  -webkit-appearance:none;
  appearance:none;
  box-sizing:border-box;
  width:100%;
  min-width:0;
  min-height:118px;
  display:flex !important;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:5px;
  padding:18px 8px 12px;
  border:1px solid #e3d5e7;
  border-radius:18px;
  background:#fffdf9;
  color:#44334f;
  white-space:normal;
  overflow:hidden;
}
.page-unlock .planCard.featured{
  border:1.5px solid #9670ad;
  background:linear-gradient(180deg,#f6edfb,#fff9f1);
}
.page-unlock .planName{
  display:block !important;
  width:100%;
  font-size:9px;
  font-weight:800;
  line-height:1.1;
  letter-spacing:1px;
  color:#8d719e;
}
.page-unlock .planPrice{
  display:block !important;
  width:100%;
  margin:2px 0 0;
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(14px,4vw,18px);
  line-height:1.15;
  color:#44334f;
  overflow-wrap:normal;
  word-break:normal;
  white-space:normal;
}
.page-unlock .planMeta{
  display:block !important;
  width:100%;
  margin:0;
  font-size:8.5px;
  line-height:1.25;
  color:#887c86;
}
.page-unlock .bestValue{
  top:-8px;
  font-size:7px;
  padding:4px 8px;
}
.page-unlock .compactBenefits{
  margin:8px 0 7px;
}
.page-unlock .unlockBenefit{
  grid-template-columns:24px minmax(0,1fr);
  gap:7px;
  padding:9px 10px;
}
.page-unlock .unlockBenefit b{
  font-size:11px;
  line-height:1.2;
}
.page-unlock .unlockBenefit small{
  font-size:9.5px;
  line-height:1.3;
}
.page-unlock .restoreButton{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:170px;
  min-height:34px;
  margin:3px auto 0;
  padding:0 14px;
  border-radius:999px;
  font-size:9px;
}
.page-unlock .unlockFreeNote{
  font-size:9px;
  line-height:1.35;
}
.page-unlock .unlockLegal{
  font-size:8px;
  line-height:1.35;
  margin-top:7px;
  padding-bottom:6px;
}
@media(max-width:360px){
  .page-unlock .planGrid{
    grid-template-columns:1fr !important;
  }
  .page-unlock .planCard{
    min-height:88px;
  }
}
@media(max-height:720px){
  .page-unlock .unlockMark{
    width:46px;
    height:46px;
    margin-bottom:5px;
  }
  .page-unlock .unlockMoon{
    font-size:26px;
  }
  .page-unlock .unlockTitle{
    font-size:28px;
  }
  .page-unlock .planGrid{
    margin-top:12px;
  }
  .page-unlock .planCard{
    min-height:96px;
  }
}


/* V55.7 — Me / Daily Card Reminder layout */
.page-me .reminderGroup{margin-bottom:14px;}
.page-me .reminderRow{display:grid!important;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;width:100%;min-height:86px;padding:14px 16px!important;}
.page-me .reminderCopy{min-width:0;display:flex;flex-direction:column;align-items:flex-start;}
.page-me .reminderCopy b{display:block;margin:0;color:#3f3450;font-size:15px;line-height:1.2;}
.page-me .reminderCopy>span{display:block;margin-top:4px;color:#8a8188;font-size:11px;line-height:1.35;}
.page-me .reminderStatus{color:#7a5a91!important;font-size:9px!important;font-weight:700;letter-spacing:.15px;}

@media(max-width:360px){
  .page-me .reminderRow{
    gap:10px;
    padding:13px 14px !important;
  }
  .page-me .reminderCopy b{
    font-size:14px;
  }
  .page-me .reminderCopy>span{
    font-size:10px;
  }
}
