:root{
  --bg:#0b0c10;
  --panel:#14161c;
  --panel-2:#1a1d25;
  --line:#2b2f39;
  --text:#f3f0e8;
  --muted:#9b9ca3;
  --soft:#d6d0c5;
  --accent:#d8bf82;
  --accent-2:#8b7dbf;
  --danger:#d57b7b;
  --radius:22px;
  --safe-bottom:max(20px,env(safe-area-inset-bottom));
  --card-ratio:2 / 3;
  font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","Segoe UI",sans-serif;
  color-scheme:dark;
}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--text);min-height:100%}
body{
  background:
    radial-gradient(circle at 85% 5%,rgba(139,125,191,.13),transparent 30%),
    radial-gradient(circle at 10% 40%,rgba(216,191,130,.08),transparent 26%),
    var(--bg);
}
button,input,textarea{font:inherit}
button{color:inherit}
.app-shell{width:min(100%,760px);margin:0 auto;padding:18px 18px var(--safe-bottom)}
.topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}
.topbar-actions{display:flex;gap:8px;align-items:center}
.eyebrow{font-size:11px;letter-spacing:.18em;color:var(--muted);font-weight:700}
.brand{font-size:20px;font-weight:650;letter-spacing:-.02em;margin-top:4px}
.icon-button,.back-button,.text-button,.quiet-row,.feature-card,.primary-button{border:0;background:none;cursor:pointer}
.icon-button{
  width:44px;height:44px;border-radius:50%;border:1px solid var(--line);
  display:grid;place-items:center;font-size:20px;background:rgba(255,255,255,.02)
}
.view{display:none}
.view.active{display:block}
.center{text-align:center}
.muted{color:var(--muted)}
.orb-wrap{display:grid;place-items:center;padding:90px 0 30px}
.orb{
  width:76px;height:76px;border-radius:50%;
  background:
    radial-gradient(circle at 35% 30%,#efe3c2 0 5%,#a8956a 12%,#4f4864 48%,#151722 72%);
  box-shadow:0 0 60px rgba(216,191,130,.15);
  animation:pulse 1.8s ease-in-out infinite
}
@keyframes pulse{50%{transform:scale(1.04);filter:brightness(1.1)}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
.hero-copy{padding:18px 0 22px}
.hero-copy.compact{padding-top:4px}
h1{font-size:34px;line-height:1.02;letter-spacing:-.045em;margin:10px 0 12px;font-weight:650}
h2{font-size:22px;line-height:1.1;letter-spacing:-.025em;margin:8px 0 8px}
p{color:var(--soft);line-height:1.55;margin:0}
.stack{display:grid;gap:14px}
.field{display:grid;gap:8px}
.field>span{font-size:13px;color:var(--muted)}
.field em{font-style:normal;color:#71737b}
input,textarea{
  width:100%;border:1px solid var(--line);border-radius:16px;background:#111319;
  color:var(--text);padding:15px 16px;outline:none;font-size:16px
}
input:focus,textarea:focus{border-color:#6d6780;box-shadow:0 0 0 3px rgba(139,125,191,.12)}
textarea{resize:vertical;min-height:128px}
.primary-button{
  width:100%;min-height:52px;padding:14px 18px;border-radius:17px;
  background:var(--text);color:#111319;font-weight:700
}
.primary-button:disabled{opacity:.45;cursor:not-allowed}
.text-button{min-height:44px;color:var(--muted)}
.back-button{min-height:44px;color:var(--muted);padding:0 4px;margin-bottom:8px}
.hero{
  min-height:190px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  padding:28px 2px;display:grid;grid-template-columns:1fr auto;gap:16px;align-items:center;margin-bottom:16px
}
.hero h1{max-width:420px}
.hero p{max-width:460px}
.mini-orbit{width:84px;height:84px;position:relative;display:grid;place-items:center}
.mini-orbit:before{
  content:"";position:absolute;inset:8px;border:1px solid #4d4f58;border-radius:50%;transform:rotate(-18deg)
}
.mini-orbit span{width:24px;height:24px;border-radius:50%;background:var(--accent)}
.mini-orbit i{position:absolute;width:8px;height:8px;border-radius:50%;background:var(--accent-2);right:8px;top:20px}
.feature-card{
  width:100%;display:grid;grid-template-columns:44px 1fr 30px;align-items:center;gap:12px;
  text-align:left;padding:20px 4px;border-bottom:1px solid var(--line)
}
.feature-card:active{opacity:.78}
.daily-feature{grid-template-columns:44px 44px 1fr 30px}
.daily-visual{
  width:38px;height:58px;border:1px solid #585363;border-radius:9px;display:grid;place-items:center;
  overflow:hidden;background:
    radial-gradient(circle at center,rgba(216,191,130,.2),transparent 34%),
    linear-gradient(145deg,#3b1722,#171421);color:var(--accent);font-size:17px
}
.daily-visual img{width:100%;height:100%;object-fit:cover;display:block}
.daily-feature.is-open .daily-visual{border-color:rgba(216,191,130,.65);box-shadow:0 0 18px rgba(216,191,130,.12)}
.feature-index{font-size:12px;color:var(--accent);font-variant-numeric:tabular-nums}
.feature-title{font-size:21px;letter-spacing:-.02em}
.feature-subtitle{font-size:13px;color:var(--muted);margin-top:4px;line-height:1.35}
.feature-arrow{text-align:right;color:var(--muted);font-size:20px}
.quiet-row{
  width:100%;display:flex;justify-content:space-between;gap:18px;min-height:54px;align-items:center;
  border-bottom:1px solid var(--line);padding:6px 4px;color:var(--muted);text-align:left
}
.quiet-row span:last-child{text-align:right;color:var(--soft);font-size:13px}
.fineprint{font-size:12px;line-height:1.45;color:#777982;margin-top:18px}
.cards-stage{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:22px 0 24px
}
.cards-stage.single{grid-template-columns:minmax(150px,220px);justify-content:center}
.tarot-card{
  min-width:0;aspect-ratio:var(--card-ratio);border:1px solid #454956;border-radius:18px;
  background:
    linear-gradient(145deg,rgba(216,191,130,.08),rgba(139,125,191,.06)),
    #111319;
  padding:12px;display:flex;flex-direction:column;justify-content:space-between;
  overflow:hidden;position:relative;animation:card-in .46s ease both
}
.tarot-card:nth-child(2){animation-delay:.08s}
.tarot-card:nth-child(3){animation-delay:.16s}
@keyframes card-in{from{opacity:0;transform:translateY(10px) rotateX(7deg)}to{opacity:1;transform:none}}
.card-symbol{
  width:34px;height:34px;border:1px solid #4f5260;border-radius:50%;display:grid;place-items:center;
  color:var(--accent);font-size:15px
}
.card-name{font-size:15px;line-height:1.05;letter-spacing:-.02em;overflow-wrap:anywhere}
.card-meta{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin-top:6px}
.card-orientation{font-size:10px;color:#8d8f97;margin-top:8px}
.reading-copy{border-top:1px solid var(--line);padding-top:22px}
.section-label{font-size:10px;letter-spacing:.18em;color:var(--muted);font-weight:700}
.prose{margin-top:10px;color:var(--soft);white-space:pre-wrap;line-height:1.65;font-size:16px}
.premium-box{
  margin-top:28px;padding:20px;border:1px solid #3c3f49;border-radius:var(--radius);
  background:linear-gradient(150deg,rgba(139,125,191,.08),rgba(216,191,130,.06))
}
.premium-button{margin-top:18px}
.hidden{display:none!important}
.history-list{display:grid;gap:10px}
.history-item{
  display:grid;grid-template-columns:48px 1fr;column-gap:12px;align-items:center;
  border:1px solid var(--line);border-radius:17px;padding:12px 15px;background:rgba(255,255,255,.015)
}
.history-thumb{
  grid-row:1 / span 3;width:48px;height:70px;border:1px solid #4b4e59;border-radius:9px;display:grid;place-items:center;
  overflow:hidden;background:linear-gradient(145deg,#3b1722,#171421);color:var(--accent);font-size:16px
}
.history-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.history-type{font-size:10px;letter-spacing:.13em;color:var(--muted)}
.history-title{font-size:16px;margin:4px 0 3px}
.history-date{font-size:11px;color:#6f7179}
.collection-group{margin-top:24px}
.collection-group>.section-label{margin-bottom:10px}
.collection-grid{display:grid;gap:10px}
.collection-item{
  display:grid;grid-template-columns:58px 1fr auto;gap:12px;align-items:center;
  border:1px solid var(--line);border-radius:17px;padding:10px 12px;background:rgba(255,255,255,.015)
}
.collection-item.equipped{border-color:rgba(216,191,130,.5);background:rgba(216,191,130,.045)}
.collection-preview{width:52px;height:74px;border:1px solid #4b4e59;border-radius:10px;display:grid;place-items:center;overflow:hidden;background:
  radial-gradient(circle at center,rgba(216,191,130,.2),transparent 34%),linear-gradient(145deg,#3b1722,#171421);color:var(--accent);font-size:18px}
.collection-preview img{width:100%;height:100%;object-fit:cover;display:block}
.collection-item-title{font-size:15px;line-height:1.15}
.collection-item-meta{font-size:11px;color:var(--muted);margin-top:6px}
.collection-action{border:1px solid rgba(216,191,130,.35);border-radius:999px;background:transparent;color:var(--accent);padding:8px 11px;font-size:11px;white-space:nowrap;cursor:pointer}
.collection-action:disabled{border-color:var(--line);color:#777982;cursor:default}
  position:sticky;bottom:var(--safe-bottom);margin:14px auto 0;width:max-content;max-width:100%;
  background:#ece8df;color:#17181c;border-radius:999px;padding:10px 14px;font-size:13px;
  opacity:0;pointer-events:none;transform:translateY(8px);transition:.2s ease
}
.toast.show{opacity:1;transform:none}
.danger-panel{border:1px solid rgba(213,123,123,.35);border-radius:var(--radius);padding:22px;background:rgba(213,123,123,.05)}
.danger-panel h1{font-size:28px}
@media (max-width:420px){
  h1{font-size:31px}
  .app-shell{padding-left:15px;padding-right:15px}
  .cards-stage{gap:7px}
  .tarot-card{padding:10px;border-radius:15px}
  .card-name{font-size:13px}
  .mini-orbit{width:70px;height:70px}
  .collection-item{grid-template-columns:48px 1fr;gap:9px}
  .collection-preview{width:44px;height:63px}
  .collection-action{grid-column:2;justify-self:start}
}


/* Cinematic card reveal */
.ritual-overlay{
  position:fixed;inset:0;z-index:50;display:grid;grid-template-rows:auto 1fr auto;
  min-height:100%;padding:max(28px,env(safe-area-inset-top)) 18px max(22px,env(safe-area-inset-bottom));
  background:
    radial-gradient(circle at 50% 42%,rgba(139,125,191,.18),transparent 31%),
    radial-gradient(circle at 50% 58%,rgba(216,191,130,.09),transparent 37%),
    #090a0e;
  overflow:hidden;isolation:isolate
}
.ritual-overlay.hidden{display:none!important}
.ritual-curtains,.ritual-lantern,.ritual-ball,.ritual-motes{position:absolute;pointer-events:none}
.ritual-curtains{inset:0;z-index:0;overflow:hidden}
.ritual-curtains span{position:absolute;top:-5%;bottom:-5%;width:34%;opacity:.82}
.ritual-curtains span:first-child{left:-8%;transform:skewX(8deg);background:
  radial-gradient(ellipse at 72% 7%,rgba(216,191,130,.22),transparent 10%),
  radial-gradient(ellipse at 76% 17%,rgba(216,191,130,.08),transparent 20%),
  linear-gradient(90deg,#160b11 0 28%,#35141c 62%,rgba(103,31,53,.18))}
.ritual-curtains span:last-child{right:-8%;transform:skewX(-8deg);background:
  radial-gradient(ellipse at 28% 7%,rgba(216,191,130,.22),transparent 10%),
  radial-gradient(ellipse at 24% 17%,rgba(216,191,130,.08),transparent 20%),
  linear-gradient(270deg,#160b11 0 28%,#35141c 62%,rgba(103,31,53,.18))}
.ritual-lantern{z-index:1;top:12%;left:50%;width:22px;height:32px;transform:translateX(-50%);opacity:0}
.ritual-lantern span{display:block;width:12px;height:18px;margin:6px auto 0;border:1px solid rgba(216,191,130,.72);border-radius:45% 45% 50% 50%;background:radial-gradient(circle,rgba(240,233,220,.96) 0 18%,rgba(216,191,130,.66) 35%,rgba(103,31,53,.42) 72%);box-shadow:0 0 24px rgba(216,191,130,.58)}
.ritual-lantern:before,.ritual-lantern:after{content:"";position:absolute;left:50%;width:1px;background:rgba(216,191,130,.3);transform:translateX(-50%)}
.ritual-lantern:before{top:-22px;height:22px}.ritual-lantern:after{bottom:-11px;height:11px}
.ritual-ball{z-index:1;top:47%;left:50%;width:min(48vw,210px);aspect-ratio:1;transform:translate(-50%,-50%) scale(.82);border-radius:50%;opacity:0;background:
  radial-gradient(circle at 36% 29%,rgba(240,233,220,.7) 0 2%,rgba(216,191,130,.26) 9%,transparent 24%),
  radial-gradient(circle at 52% 52%,rgba(101,88,133,.52),rgba(25,24,42,.34) 47%,rgba(9,10,14,.04) 70%);box-shadow:0 0 34px rgba(139,125,191,.24),0 0 110px rgba(216,191,130,.13),inset 12px 10px 24px rgba(255,255,255,.08)}
.ritual-ball:before{content:"";position:absolute;inset:-14%;border-radius:50%;background:radial-gradient(ellipse,rgba(139,125,191,.2),transparent 62%);filter:blur(12px)}
.ritual-ball:after{content:"";position:absolute;inset:12%;border:1px solid rgba(216,191,130,.26);border-radius:50%;transform:scaleY(.35) rotate(-16deg);box-shadow:0 0 18px rgba(216,191,130,.15)}
.ritual-ball span{position:absolute;inset:25%;border:1px solid rgba(240,233,220,.18);border-radius:50%;transform:rotate(22deg) scaleY(.52)}
.ritual-ball i{position:absolute;left:29%;top:24%;width:13%;aspect-ratio:1;border-radius:50%;background:rgba(240,233,220,.65);filter:blur(2px);box-shadow:0 0 16px rgba(240,233,220,.52)}
.ritual-motes{inset:0;z-index:2;overflow:hidden}
.ritual-motes span{position:absolute;left:var(--x);top:var(--y);width:3px;height:3px;border-radius:50%;background:rgba(216,191,130,.7);opacity:0;box-shadow:0 0 9px rgba(216,191,130,.65)}
.ritual-overlay.active .ritual-ball{animation:ritual-ball-bloom 3.8s ease-in-out infinite;opacity:.9}
.ritual-overlay.active .ritual-lantern{animation:ritual-lantern-in .8s ease .15s forwards}
.ritual-overlay.active .ritual-motes span{animation:ritual-mote-drift var(--d) ease-in-out var(--delay) infinite}
@keyframes ritual-ball-bloom{50%{transform:translate(-50%,-50%) scale(1.02);filter:brightness(1.12)}}
@keyframes ritual-lantern-in{to{opacity:1}}
@keyframes ritual-mote-drift{0%,100%{opacity:0;transform:translate3d(0,18px,0) scale(.7)}24%,72%{opacity:.76}50%{transform:translate3d(12px,-28px,0) scale(1)}}
.ritual-grain{
  position:absolute;inset:0;pointer-events:none;opacity:.16;mix-blend-mode:soft-light;
  background-image:
    radial-gradient(circle at 20% 30%,rgba(255,255,255,.18) 0 .6px,transparent .8px),
    radial-gradient(circle at 80% 65%,rgba(255,255,255,.14) 0 .7px,transparent .9px);
  background-size:17px 19px,23px 29px;z-index:-1
}
.ritual-copy{text-align:center;align-self:start;padding-top:8px}
.ritual-title{font-size:31px;line-height:1;letter-spacing:-.045em;font-weight:650;margin-top:10px}
.ritual-hint{font-size:13px;color:var(--muted);margin-top:10px;transition:opacity .3s ease}
.ritual-stage{position:relative;z-index:3;display:grid;place-items:center;min-height:420px;perspective:1200px}
.ritual-sigil{position:absolute;z-index:1;width:min(53vw,190px);aspect-ratio:1;border:1px solid rgba(216,191,130,.22);border-radius:50%;transform:rotate(-16deg) scale(.7);opacity:0;pointer-events:none}
.ritual-sigil:before,.ritual-sigil:after{content:"";position:absolute;inset:-13%;border:1px solid rgba(139,125,191,.18);border-radius:50%;transform:scaleY(.42) rotate(35deg)}
.ritual-sigil:after{inset:13%;border-color:rgba(216,191,130,.2);transform:scaleY(.54) rotate(-41deg)}
.ritual-sigil span{position:absolute;inset:35%;border:1px solid rgba(216,191,130,.46);transform:rotate(45deg)}
.ritual-sigil i{position:absolute;inset:46%;border-radius:50%;background:var(--accent);box-shadow:0 0 15px rgba(216,191,130,.4)}
.ritual-overlay.active .ritual-sigil{animation:ritual-sigil-trace 1s cubic-bezier(.2,.8,.2,1) .32s forwards}
@keyframes ritual-sigil-trace{to{opacity:.8;transform:rotate(10deg) scale(1)}}
.ritual-deck{position:absolute;z-index:3;width:168px;aspect-ratio:var(--card-ratio);transform-style:preserve-3d}
.ritual-deck span{
  position:absolute;inset:0;border:1px solid #4b4e59;border-radius:20px;
  background:
    radial-gradient(circle at center,transparent 0 20%,rgba(216,191,130,.12) 20.5% 21%,transparent 21.5%),
    repeating-radial-gradient(circle at center,rgba(216,191,130,.09) 0 1px,transparent 1.5px 8px),
    linear-gradient(145deg,#161820,#0f1117);
  box-shadow:0 18px 50px rgba(0,0,0,.33);
  transform:translate(calc(var(--i,0)*1.5px),calc(var(--i,0)*-1.5px)) rotate(calc(var(--i,0)*.25deg))
}
.ritual-deck span:nth-child(1){--i:0}.ritual-deck span:nth-child(2){--i:1}
.ritual-deck span:nth-child(3){--i:2}.ritual-deck span:nth-child(4){--i:3}.ritual-deck span:nth-child(5){--i:4}
.ritual-overlay.shuffling .ritual-deck span:nth-child(1){animation:shuffle-a .62s cubic-bezier(.2,.8,.2,1) 2}
.ritual-overlay.shuffling .ritual-deck span:nth-child(2){animation:shuffle-b .62s cubic-bezier(.2,.8,.2,1) .05s 2}
.ritual-overlay.shuffling .ritual-deck span:nth-child(3){animation:shuffle-c .62s cubic-bezier(.2,.8,.2,1) .1s 2}
.ritual-stage.three .ritual-cards{gap:clamp(6px,2vw,14px)}
.ritual-stage.three .ritual-reveal-card{width:calc((100% - 28px) / 3);max-width:150px}
@keyframes shuffle-a{35%{transform:translate(-94px,-8px) rotate(-12deg)}75%{transform:translate(35px,4px) rotate(5deg)}}
@keyframes shuffle-b{35%{transform:translate(92px,6px) rotate(13deg)}75%{transform:translate(-30px,-4px) rotate(-5deg)}}
@keyframes shuffle-c{45%{transform:translate(0,-28px) rotate(2deg)}80%{transform:translate(0,7px) rotate(-1deg)}}
.ritual-cards{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:14px;pointer-events:none}
.ritual-reveal-card{
  width:min(29vw,150px);aspect-ratio:var(--card-ratio);position:relative;z-index:4;transform-style:preserve-3d;will-change:transform,opacity;
  opacity:0;transform:translateY(44px) scale(.88) rotate(var(--fan,0deg));
  transition:transform .72s cubic-bezier(.2,.9,.2,1),opacity .42s ease;
}
.ritual-reveal-card.ready{opacity:1;transform:translateY(0) scale(1) rotate(var(--fan,0deg))}
.ritual-reveal-card.revealed{transform:translateY(-8px) scale(1.025) rotate(0deg) rotateY(180deg)}
.ritual-reveal-card.revealed:after{content:"";position:absolute;inset:-8px;border:1px solid rgba(216,191,130,.78);border-radius:22px;pointer-events:none;opacity:0;animation:ritual-gold-rim .75s ease forwards;box-shadow:0 0 18px rgba(216,191,130,.22)}
@keyframes ritual-gold-rim{28%{opacity:.95;transform:scale(1.01)}100%{opacity:0;transform:scale(1.08)}}
.ritual-face{
  position:absolute;inset:0;border-radius:18px;backface-visibility:hidden;-webkit-backface-visibility:hidden;
  border:1px solid #4b4e59;overflow:hidden
}
.ritual-back{
  background:
    radial-gradient(circle at center,transparent 0 20%,rgba(216,191,130,.13) 20.5% 21%,transparent 21.5%),
    repeating-radial-gradient(circle at center,rgba(216,191,130,.08) 0 1px,transparent 1.5px 8px),
    linear-gradient(145deg,#171922,#0f1117);
  box-shadow:0 22px 60px rgba(0,0,0,.38)
}
.ritual-front{
  transform:rotateY(180deg);display:flex;flex-direction:column;justify-content:space-between;padding:14px;
  background:
    radial-gradient(circle at 50% 28%,rgba(216,191,130,.14),transparent 26%),
    linear-gradient(160deg,#1c1e27,#101217);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.015)
}
.ritual-front-symbol{
  width:38px;height:38px;border-radius:50%;border:1px solid #565966;display:grid;place-items:center;
  color:var(--accent);font-size:17px
}
.ritual-front-name{font-size:16px;line-height:1.04;letter-spacing:-.025em}
.ritual-front-state{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.1em;margin-top:7px}
.ritual-tap{position:absolute;inset:0;border:0;background:transparent;z-index:4;cursor:pointer}
.ritual-skip{
  position:relative;z-index:5;justify-self:center;border:0;background:transparent;color:#777982;
  min-height:44px;padding:0 18px;font:inherit;cursor:pointer
}
.ritual-overlay.completed .ritual-skip{opacity:0;pointer-events:none}
.ritual-overlay.completed .ritual-hint{opacity:0}
.ritual-overlay.completed .ritual-cards{animation:ritual-out .72s ease .55s both}
.ritual-overlay.reduced .ritual-ball{opacity:.72;animation:none;transform:translate(-50%,-50%) scale(1)}
.ritual-overlay.reduced .ritual-sigil{opacity:.7;animation:none;transform:rotate(0deg) scale(1)}
.ritual-overlay.reduced .ritual-reveal-card{opacity:1;transition:none;transform:translateY(0) scale(.96) rotate(0deg)}
.ritual-overlay.reduced .ritual-reveal-card.revealed{transform:translateY(0) scale(.96) rotate(0deg) rotateY(180deg)}
.ritual-overlay.reduced .ritual-reveal-card.revealed:after{animation:none;opacity:.28}
@keyframes ritual-out{to{opacity:0;transform:scale(.96);filter:blur(5px)}}
@media (max-width:390px){
  .ritual-stage{min-height:380px}
  .ritual-deck{width:150px}
  .ritual-cards{gap:8px}
  .ritual-reveal-card{width:min(30vw,128px)}
  .ritual-front{padding:10px}.ritual-front-name{font-size:14px}
}
@media (prefers-reduced-motion:reduce){
  .ritual-overlay.active .ritual-ball,.ritual-overlay.active .ritual-lantern,.ritual-overlay.active .ritual-motes span{animation:none!important}
  .ritual-overlay.shuffling .ritual-deck span{animation:none!important}
  .ritual-reveal-card,.ritual-overlay.completed .ritual-cards{transition:none!important;animation:none!important}
}

.home-kicker{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.owner-pill{font-size:9px;letter-spacing:.14em;font-weight:800;color:var(--accent);border:1px solid rgba(216,191,130,.28);border-radius:999px;padding:5px 8px}
.ritual-deck{transition:opacity .28s ease,transform .35s ease}

/* Launch scene */
.launch-view{min-height:calc(100svh - 90px);display:none}
.launch-view.active{display:grid;place-items:center}
.launch-scene{position:relative;width:100%;min-height:min(720px,calc(100svh - 96px));overflow:hidden;display:grid;place-items:center;isolation:isolate}
.launch-stars{position:absolute;inset:-20%;opacity:0;animation:launch-stars-in .9s ease .1s forwards;background-repeat:repeat;background-size:53px 59px;filter:blur(.1px)}
.launch-stars-a{background-image:radial-gradient(circle,rgba(255,255,255,.52) 0 .7px,transparent .9px),radial-gradient(circle,rgba(216,191,130,.35) 0 .6px,transparent .8px);background-position:11px 7px,31px 37px}
.launch-stars-b{background-image:radial-gradient(circle,rgba(139,125,191,.45) 0 .55px,transparent .8px);background-size:79px 83px;background-position:17px 29px;animation-delay:.24s}
.launch-eclipse{position:absolute;top:42%;left:50%;width:min(68vw,360px);aspect-ratio:1;transform:translate(-50%,-50%) scale(.72);opacity:0;animation:launch-eclipse-in .95s cubic-bezier(.2,.75,.2,1) .12s forwards}
.launch-eclipse-core{position:absolute;inset:16%;border-radius:50%;background:#07080b;box-shadow:0 0 90px rgba(0,0,0,.9)}
.launch-eclipse-ring{position:absolute;inset:14%;border-radius:50%;border:1px solid rgba(216,191,130,.52);box-shadow:0 0 42px rgba(216,191,130,.14),inset 0 0 30px rgba(139,125,191,.08);animation:launch-ring-breathe 2.4s ease-in-out infinite}
.launch-eclipse-ring:before,.launch-eclipse-ring:after{content:"";position:absolute;border-radius:50%;inset:-13%;border:1px solid rgba(139,125,191,.12);transform:rotate(18deg) scaleY(.64)}
.launch-eclipse-ring:after{inset:-22%;border-color:rgba(216,191,130,.08);transform:rotate(-24deg) scaleY(.74)}
.launch-card-wrap{position:absolute;top:41%;left:50%;width:148px;aspect-ratio:2/3.35;transform:translate(-50%,30%) scale(.82) rotateX(16deg);opacity:0;perspective:900px;animation:launch-card-rise .9s cubic-bezier(.16,.9,.22,1) .44s forwards;filter:drop-shadow(0 32px 45px rgba(0,0,0,.48))}
.launch-card{position:absolute;inset:0;border:1px solid rgba(216,191,130,.42);border-radius:22px;background:linear-gradient(155deg,rgba(27,29,38,.97),rgba(11,12,17,.98));box-shadow:inset 0 0 0 1px rgba(255,255,255,.018),inset 0 0 38px rgba(139,125,191,.08);overflow:hidden}
.launch-card:before,.launch-card:after{content:"";position:absolute;inset:10px;border:1px solid rgba(216,191,130,.15);border-radius:15px}
.launch-card:after{inset:18px;border-color:rgba(139,125,191,.13)}
.launch-card-orbit{position:absolute;width:74%;aspect-ratio:1;left:13%;top:25%;border:1px solid rgba(216,191,130,.24);border-radius:50%;transform:scaleY(.48) rotate(-18deg);animation:launch-orbit 7s linear infinite}
.launch-card-orbit:after{content:"";position:absolute;width:7px;height:7px;background:var(--accent);border-radius:50%;left:9%;top:19%;box-shadow:0 0 16px rgba(216,191,130,.55)}
.launch-card-sigil{position:absolute;inset:0;display:grid;place-items:center}
.sigil-line{position:absolute;width:1px;height:52%;background:linear-gradient(transparent,rgba(216,191,130,.55),transparent);transform-origin:center;opacity:0;animation:sigil-line-in .5s ease 1.02s forwards}
.sigil-line-a{transform:rotate(31deg)}.sigil-line-b{transform:rotate(-31deg)}
.sigil-eye{position:absolute;width:68px;height:34px;border:1px solid rgba(216,191,130,.55);border-radius:50% 50% 48% 48%/60% 60% 40% 40%;transform:rotate(45deg) scale(.5);opacity:0;animation:sigil-eye-in .48s cubic-bezier(.2,.9,.2,1) 1.08s forwards}
.sigil-star{position:absolute;color:var(--accent);font-size:24px;opacity:0;transform:scale(.2);text-shadow:0 0 22px rgba(216,191,130,.5);animation:sigil-star-in .48s cubic-bezier(.2,1.3,.2,1) 1.18s forwards}
.launch-wordmark{position:absolute;bottom:7%;left:0;right:0;text-align:center;opacity:0;transform:translateY(12px);animation:launch-wordmark-in .62s ease 1.05s forwards}
.launch-kicker{font-size:8px;letter-spacing:.31em;color:#777982;margin-bottom:9px}
.launch-name{font-size:27px;font-weight:650;letter-spacing:.36em;text-indent:.36em;color:#f1ede4;text-shadow:0 0 32px rgba(216,191,130,.08)}
.launch-status{font-size:11px;letter-spacing:.08em;color:#696b73;margin-top:12px;min-height:17px}
.launch-scene.exiting{animation:launch-scene-out .42s cubic-bezier(.4,0,1,1) forwards}
@keyframes launch-stars-in{to{opacity:.7;transform:scale(1.015)}}
@keyframes launch-eclipse-in{to{opacity:1;transform:translate(-50%,-50%) scale(1)}}
@keyframes launch-ring-breathe{50%{box-shadow:0 0 58px rgba(216,191,130,.2),inset 0 0 38px rgba(139,125,191,.1)}}
@keyframes launch-card-rise{0%{opacity:0;transform:translate(-50%,32%) scale(.82) rotateX(16deg)}75%{opacity:1}100%{opacity:1;transform:translate(-50%,-50%) scale(1) rotateX(0)}}
@keyframes launch-orbit{to{transform:scaleY(.48) rotate(342deg)}}
@keyframes sigil-line-in{to{opacity:.78}}
@keyframes sigil-eye-in{to{opacity:1;transform:rotate(45deg) scale(1)}}
@keyframes sigil-star-in{to{opacity:1;transform:scale(1)}}
@keyframes launch-wordmark-in{to{opacity:1;transform:none}}
@keyframes launch-scene-out{to{opacity:0;transform:scale(1.035);filter:blur(7px)}}

@media (max-height:680px){.launch-scene{min-height:560px}.launch-eclipse{top:39%;width:min(55vw,300px)}.launch-card-wrap{top:39%;width:126px}.launch-wordmark{bottom:4%}}
@media (prefers-reduced-motion:reduce){
  .launch-stars,.launch-eclipse,.launch-card-wrap,.launch-wordmark,.sigil-line,.sigil-eye,.sigil-star{animation:none!important;opacity:1!important}
  .launch-eclipse{transform:translate(-50%,-50%) scale(1)}.launch-card-wrap{transform:translate(-50%,-50%)}
  .launch-scene.exiting{animation:none!important}
}

body.launching .topbar{opacity:0;pointer-events:none;transform:translateY(-8px)}
.topbar{transition:opacity .38s ease,transform .38s ease}
body.launching .app-shell{padding-top:0}
body.launching .launch-view{min-height:100svh}
body:not(.launching) .topbar{opacity:1;transform:none}


/* Circus Oracle production art rollout */
.tarot-card.has-art{
  background:none;padding:0;border-color:rgba(216,191,130,.38);
  box-shadow:0 18px 44px rgba(0,0,0,.28),0 0 0 1px rgba(216,191,130,.05) inset
}
.tarot-card.has-art>div{display:none}
.tarot-card-art{display:block;width:100%;height:100%;object-fit:contain;object-position:center}
.ritual-back{
  background-size:cover;background-position:center;background-repeat:no-repeat
}
.ritual-front.has-art{
  padding:0;background:none;
  border-color:rgba(216,191,130,.5);box-shadow:0 26px 70px rgba(0,0,0,.45)
}
.ritual-front.has-art>div{display:none}
.ritual-front-art{display:block;width:100%;height:100%;object-fit:contain;object-position:center}
.ritual-reveal-card.revealed .ritual-front.has-art{
  filter:drop-shadow(0 0 12px rgba(216,191,130,.16))
}
