/* TarotNote V20: reader team, opening wordmark, and final reveal cleanup. */
html,body{max-width:100%;overflow-x:clip}

/* Reveal lighting is intentionally disabled. Legacy bundles contain several
   generations of the same effect, so the final stylesheet neutralizes every
   known node and pseudo-element instead of relying on source order. */
.selection-beam,
.reveal-beam,
.v9-reveal-beam,
.card-beam,
.reveal-card .burst,
.reveal-card::before,
.reveal-card::after,
.hand-slot::before,
.hand-slot::after{
  display:none!important;
  content:none!important;
  width:0!important;
  height:0!important;
  opacity:0!important;
  animation:none!important;
  background:none!important;
  box-shadow:none!important;
  filter:none!important;
}

/* Opening brand: a compact seal and a restrained ink-like wordmark. */
.splash-core{gap:15px!important}
.splash-brand{position:relative;display:grid;grid-template-columns:minmax(34px,78px) auto minmax(34px,78px);align-items:center;gap:14px;isolation:isolate;animation:v20BrandArrive .78s cubic-bezier(.2,.78,.18,1) .12s both}
.splash-mark{grid-column:2;grid-row:1;width:52px;height:52px;margin:0 auto 4px;filter:drop-shadow(0 0 16px rgba(232,202,112,.34));animation:v20SealEnter .82s cubic-bezier(.2,.8,.18,1) .08s both}
.splash-title{grid-column:1/-1;grid-row:2;display:flex;justify-content:center;align-items:center;min-height:1.35em;padding:0!important;color:#f2dea0;font-size:clamp(34px,5vw,54px)!important;font-weight:600;line-height:1.1;letter-spacing:.08em!important;text-shadow:0 1px 0 #24170a,0 0 20px rgba(215,182,91,.3),0 10px 38px rgba(0,0,0,.7);animation:none!important}
html[lang^="zh"] .splash-title{font-family:"STKaiti","KaiTi","FZKai-Z03","Noto Serif SC","Songti SC",serif;font-weight:700;letter-spacing:.12em!important}
.splash-title>i{display:inline-block;font-style:normal;opacity:0;filter:blur(7px);transform:translateY(18px) scale(.94);animation:v20InkCharacter .58s cubic-bezier(.2,.8,.18,1) forwards;animation-delay:calc(.24s + var(--char-index)*.075s)}
.splash-brand-rule{align-self:end;width:100%;height:1px;margin-bottom:12px;background:linear-gradient(90deg,transparent,rgba(223,193,105,.72));transform:scaleX(0);transform-origin:right;animation:v20RuleOpen .52s ease .32s forwards}
.splash-brand-rule:first-child{grid-column:1;grid-row:1}.splash-brand-rule:last-of-type{grid-column:3;grid-row:1;background:linear-gradient(90deg,rgba(223,193,105,.72),transparent);transform-origin:left}
.splash-sub{margin-top:2px;letter-spacing:.22em!important}
@keyframes v20BrandArrive{from{opacity:0;transform:translateY(13px)}to{opacity:1;transform:none}}
@keyframes v20SealEnter{0%{opacity:0;transform:scale(.56) rotate(-24deg)}70%{opacity:1;transform:scale(1.06) rotate(3deg)}100%{opacity:1;transform:none}}
@keyframes v20InkCharacter{to{opacity:1;filter:none;transform:none}}
@keyframes v20RuleOpen{to{transform:scaleX(1)}}

/* Reader team */
.v20-reader-team{position:relative;padding-block:96px 108px;background:linear-gradient(180deg,rgba(7,5,11,.15),rgba(18,16,13,.82) 18%,rgba(8,7,8,.96));overflow:hidden}
.v20-reader-team::before{content:"";position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(90deg,transparent 0 79px,rgba(236,214,152,.025) 80px)}
.v20-reader-team .container{position:relative}
.v20-reader-heading{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,520px);align-items:end;gap:36px;margin-bottom:38px;padding-bottom:22px;border-bottom:1px solid rgba(224,198,126,.28)}
.v20-reader-heading span{display:block;margin-bottom:10px;color:#cdb56f;font:600 12px/1.4 var(--display);letter-spacing:.2em}
.v20-reader-heading h2{margin:0;color:#f1eadc;font-family:"STKaiti","KaiTi","Noto Serif SC",var(--display),serif;font-size:clamp(32px,4vw,52px);font-weight:650;line-height:1.15;letter-spacing:0}
.v20-reader-heading p{margin:0;color:#c7c0b5;font-size:15px;line-height:1.85;text-wrap:pretty}
.v20-reader-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.v20-reader-card{min-width:0;border:1px solid rgba(221,195,119,.24);border-radius:6px;background:#100e10;overflow:hidden;box-shadow:0 28px 58px rgba(0,0,0,.28);opacity:0;transform:translateY(24px);transition:opacity .75s ease,transform .75s cubic-bezier(.2,.75,.18,1),border-color .35s,box-shadow .35s}
.v20-reader-card.v20-visible{opacity:1;transform:none}
.v20-reader-card:nth-child(2){transition-delay:.1s}.v20-reader-card:nth-child(3){transition-delay:.2s}
.v20-reader-card:hover{border-color:rgba(230,204,128,.52);box-shadow:0 32px 70px rgba(0,0,0,.4)}
.v20-reader-visual{position:relative;aspect-ratio:4/5;overflow:hidden;background:#080708}
.v20-reader-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 32%;transition:opacity .55s ease,transform 1s cubic-bezier(.2,.72,.18,1),filter .45s}
.v20-reader-session{opacity:1;filter:saturate(.86) contrast(1.03) brightness(.92)}
.v20-reader-proof{opacity:0;object-position:center 22%;filter:saturate(.78) contrast(1.02) brightness(.9);transform:scale(1.035)}
.v20-reader-card:hover .v20-reader-session{transform:scale(1.025);filter:saturate(.96) contrast(1.02) brightness(.97)}
.v20-reader-card.show-proof .v20-reader-session{opacity:0;transform:scale(1.02)}
.v20-reader-card.show-proof .v20-reader-proof{opacity:1;transform:none}
.v20-reader-visual::after{content:"";position:absolute;inset:auto 0 0;height:34%;pointer-events:none;background:linear-gradient(transparent,rgba(7,6,7,.9))}
.v20-reader-index{position:absolute;right:14px;top:13px;z-index:2;color:rgba(244,224,160,.9);font:600 12px/1 var(--display);letter-spacing:.18em;text-shadow:0 2px 12px #000}
.v20-reader-toggle{position:absolute;left:13px;bottom:13px;z-index:3;display:flex;align-items:center;gap:9px;max-width:calc(100% - 26px);min-height:42px;padding:5px 11px 5px 5px;border:1px solid rgba(235,213,148,.42);border-radius:4px;background:rgba(8,7,8,.86);color:#eee4cf;box-shadow:0 8px 24px rgba(0,0,0,.34);backdrop-filter:blur(12px);cursor:pointer}
.v20-reader-toggle img{width:30px;height:32px;border-radius:2px;object-fit:cover;object-position:top}
.v20-reader-toggle span{min-width:0;font-size:12px;line-height:1.35;white-space:normal;text-align:left;overflow-wrap:anywhere}
.v20-reader-toggle:hover,.v20-reader-toggle:focus-visible{border-color:#dcc276;color:#fff8e7;outline:none}
.v20-reader-copy{padding:20px 20px 22px}
.v20-reader-copy small{display:block;margin-bottom:8px;color:#b9a66f;font:600 10px/1.4 var(--display);letter-spacing:.16em}
.v20-reader-copy h3{margin:0;color:#f1eadc;font-size:21px;line-height:1.3;letter-spacing:0}
.v20-reader-copy>div{display:flex;flex-wrap:wrap;gap:7px;margin-top:15px}
.v20-reader-copy>div span{padding:5px 8px;border:1px solid rgba(214,190,119,.22);border-radius:3px;color:#bbb3a6;font-size:12px;line-height:1.35}

@media(max-width:900px){.v20-reader-heading{grid-template-columns:1fr}.v20-reader-grid{gap:12px}.v20-reader-copy{padding:17px}.v20-reader-copy h3{font-size:19px}}
@media(max-width:760px){
 .splash-brand{grid-template-columns:34px auto 34px;gap:10px}.splash-mark{width:46px;height:46px}.splash-title{font-size:clamp(32px,11vw,46px)!important}
 .v20-reader-team{padding-block:70px 82px}.v20-reader-heading{gap:16px;margin-bottom:26px}.v20-reader-heading h2{font-size:38px}.v20-reader-heading p{font-size:14px;line-height:1.75}
 .v20-reader-grid{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:min(84vw,340px);gap:12px;margin-inline:calc(var(--container-pad,20px)*-1);padding-inline:var(--container-pad,20px);overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:var(--container-pad,20px);overscroll-behavior-inline:contain;scrollbar-width:none}
 .v20-reader-grid::-webkit-scrollbar{display:none}.v20-reader-card{scroll-snap-align:start}.v20-reader-card:nth-child(n){transition-delay:0s}.v20-reader-card:hover{transform:none}
}
@media(prefers-reduced-motion:reduce){.splash-brand,.splash-mark,.splash-title>i,.splash-brand-rule,.v20-reader-card{animation:none!important;transition:none!important;opacity:1!important;filter:none!important;transform:none!important}}

/* Service-card micro alignment. Keep the coin marker on the same optical
   baseline as its label and prevent older generic <i> rules from moving it. */
.v17-cost-line{
  display:grid!important;
  grid-template-columns:8px minmax(0,max-content)!important;
  align-items:center!important;
  justify-content:center!important;
  column-gap:9px!important;
  line-height:1.35!important;
}
.v17-cost-line>i{
  position:static!important;
  display:block!important;
  align-self:center!important;
  justify-self:center!important;
  width:8px!important;
  height:8px!important;
  min-width:8px!important;
  min-height:8px!important;
  margin:0!important;
  padding:0!important;
  transform:translateY(-1px)!important;
  line-height:0!important;
}
.v17-cost-line>span{display:block;min-width:0;line-height:1.35!important}

.v9-service-gateway .v9-recommend{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:31px!important;
  padding:7px 13px!important;
  font-size:14px!important;
  font-weight:800!important;
  line-height:1!important;
}
@media(max-width:760px){
  .v17-cost-line{grid-template-columns:8px minmax(0,max-content)!important;column-gap:8px!important}
  .v9-service-gateway .v9-recommend{min-height:29px!important;padding:6px 11px!important;font-size:13px!important}
  .v9-service-gateway .v9-tier-card.recommended>small{padding-right:102px!important}
}

/* A deliberate prestige ladder: silver, ceremonial gold, then the richest
   precious-metal treatment. Content and card order remain unchanged. */
.v9-service-gateway .v9-tier-card{
  isolation:isolate;
  transition:transform .42s cubic-bezier(.2,.75,.18,1),border-color .35s,box-shadow .42s,filter .35s!important;
}
.v9-service-gateway .v9-tier-card.tier-one{
  border-color:rgba(190,185,200,.5)!important;
  background:linear-gradient(155deg,rgba(48,40,58,.88),rgba(17,12,23,.96) 68%,rgba(9,7,13,.98))!important;
  box-shadow:inset 0 1px rgba(255,255,255,.05),0 20px 45px rgba(0,0,0,.24)!important;
}
.v9-service-gateway .tier-one .v9-tier-roman{color:#bcb7c5!important;opacity:.28!important}
.v9-service-gateway .tier-one>small{color:#c6bfce!important}
.v9-service-gateway .tier-one h3{
  color:#ddd7e2!important;
  font-weight:650!important;
  text-shadow:0 2px 18px rgba(210,204,220,.12)!important;
}
.v9-service-gateway .tier-one>p{color:#aaa2b1!important}
.v9-service-gateway .tier-one strong span{color:#ded8e5!important;-webkit-text-fill-color:#ded8e5!important;text-shadow:0 0 20px rgba(213,207,222,.14)!important}
.v9-service-gateway .tier-one strong em,.v9-service-gateway .tier-one>i{color:#aaa3b1!important}
.v9-service-gateway .tier-one .v17-cost-line{border-color:rgba(194,189,204,.42)!important;background:rgba(28,23,34,.72)!important;color:#ddd7e3!important;box-shadow:inset 0 1px rgba(255,255,255,.025)!important}
.v9-service-gateway .tier-one .v17-cost-line>i{background:#c7c2cf!important;box-shadow:0 0 12px rgba(199,194,207,.55)!important}

.v9-service-gateway .v9-tier-card.tier-two{
  border:1px solid rgba(229,191,83,.82)!important;
  background:radial-gradient(circle at 50% -8%,rgba(150,103,46,.23),transparent 42%),linear-gradient(155deg,rgba(51,27,69,.97),rgba(17,9,27,.98) 72%)!important;
  box-shadow:inset 0 1px rgba(255,239,181,.09),0 24px 54px rgba(0,0,0,.3),0 0 28px rgba(218,181,76,.16)!important;
}
.v9-service-gateway .tier-two .v9-tier-roman{color:#d6b75f!important;opacity:.34!important}
.v9-service-gateway .tier-two>small{color:#ddc878!important}
.v9-service-gateway .tier-two h3{
  color:#f2d475!important;
  font-weight:720!important;
  text-shadow:0 0 18px rgba(232,195,86,.3),0 2px 0 rgba(48,26,3,.65)!important;
}
.v9-service-gateway .tier-two>p{color:#c7b7c9!important}
.v9-service-gateway .tier-two strong span{color:#f0cf6d!important;-webkit-text-fill-color:#f0cf6d!important;text-shadow:0 0 24px rgba(232,194,84,.25)!important}
.v9-service-gateway .tier-two strong em,.v9-service-gateway .tier-two>i{color:#d8bd65!important}
.v9-service-gateway .tier-two .v17-cost-line{border-color:rgba(229,192,84,.56)!important;background:rgba(37,21,43,.76)!important;color:#f1d679!important;box-shadow:inset 0 0 18px rgba(214,175,69,.045)!important}
.v9-service-gateway .tier-two .v17-cost-line>i{background:#e0bd58!important;box-shadow:0 0 14px rgba(231,194,84,.72)!important}
.v9-service-gateway .tier-two .v9-recommend{border-color:rgba(244,211,112,.72)!important;background:rgba(91,61,27,.6)!important;color:#ffe79b!important;box-shadow:0 0 18px rgba(230,190,72,.18),inset 0 1px rgba(255,246,203,.12)!important}

.v9-service-gateway .v9-tier-card.tier-three{
  border:2px solid rgba(238,199,91,.88)!important;
  background:radial-gradient(circle at 84% 15%,rgba(181,98,174,.2),transparent 27%),radial-gradient(circle at 10% 90%,rgba(181,125,48,.14),transparent 32%),linear-gradient(155deg,rgba(49,19,48,.99),rgba(15,7,21,.99) 58%,rgba(6,5,10,.99))!important;
  box-shadow:inset 0 0 0 4px rgba(6,5,10,.95),inset 0 0 0 5px rgba(231,196,97,.32),0 30px 68px rgba(0,0,0,.42),0 0 36px rgba(225,181,66,.18)!important;
}
.v9-service-gateway .tier-three .v9-tier-roman{color:#e7c56d!important;opacity:.42!important;text-shadow:0 0 20px rgba(231,195,91,.24)!important}
.v9-service-gateway .tier-three>small{color:#e5c77e!important;font-weight:720!important}
.v9-service-gateway .tier-three h3{
  font-size:clamp(30px,2.35vw,39px)!important;
  font-weight:780!important;
  background:linear-gradient(90deg,#f6dea0,#efbd62 54%,#e7aaca)!important;
  background-clip:text!important;
  -webkit-background-clip:text!important;
  color:transparent!important;
  -webkit-text-fill-color:transparent!important;
  text-shadow:0 0 24px rgba(236,192,89,.18)!important;
}
.v9-service-gateway .tier-three>p{color:#d0bed0!important}
.v9-service-gateway .tier-three strong span{
  background:linear-gradient(90deg,#ffe7a7,#f2c865 58%,#e9b0c9)!important;
  background-clip:text!important;
  -webkit-background-clip:text!important;
  color:transparent!important;
  -webkit-text-fill-color:transparent!important;
  text-shadow:0 0 28px rgba(238,194,87,.22)!important;
}
.v9-service-gateway .tier-three strong em,.v9-service-gateway .tier-three>i{color:#e4c476!important;font-weight:700!important}
.v9-service-gateway .tier-three .v17-cost-line{border-color:rgba(239,199,91,.7)!important;background:linear-gradient(90deg,rgba(60,30,51,.82),rgba(25,13,31,.9))!important;color:#ffe08a!important;box-shadow:inset 0 0 20px rgba(235,192,80,.07),0 0 18px rgba(222,175,64,.07)!important}
.v9-service-gateway .tier-three .v17-cost-line>i{background:#f0cb68!important;box-shadow:0 0 16px rgba(246,207,100,.88)!important}
.v9-service-gateway .tier-three .v9-witch-orb{filter:saturate(1.2) brightness(1.12)!important;box-shadow:0 0 30px rgba(194,123,207,.35),inset -8px -9px 18px #08020e!important}

@media(min-width:761px){
  .v9-service-gateway .tier-one{transform:translateY(8px) scale(.985)}
  .v9-service-gateway .tier-two{transform:translateY(4px)}
  .v9-service-gateway .tier-three{transform:translateY(-2px) scale(1.012)}
  .v9-service-gateway .tier-one:hover{transform:translateY(1px) scale(.993)!important}
  .v9-service-gateway .tier-two:hover{transform:translateY(-4px) scale(1.006)!important}
  .v9-service-gateway .tier-three:hover{transform:translateY(-10px) scale(1.022)!important}
}
@media(max-width:760px){
  .v9-service-gateway .v9-tier-card{transform:none!important}
  .v9-service-gateway .tier-three h3{font-size:29px!important}
}

html[lang] body .v9-service-gateway .tier-one h3{font-size:clamp(28px,2.15vw,34px)!important}
html[lang] body .v9-service-gateway .tier-two h3{font-size:clamp(31px,2.35vw,37px)!important}
html[lang] body .v9-service-gateway .tier-three h3{font-size:clamp(34px,2.6vw,41px)!important}
@media(min-width:761px){
  .v9-service-gateway .v9-tier-card.tier-one{transform:translateY(8px) scale(.985)!important}
  .v9-service-gateway .v9-tier-card.tier-two{transform:translateY(4px)!important}
  .v9-service-gateway .v9-tier-card.tier-three{transform:translateY(-2px) scale(1.012)!important}
}
@media(max-width:760px){
  html[lang] body .v9-service-gateway .tier-one h3{font-size:27px!important}
  html[lang] body .v9-service-gateway .tier-two h3{font-size:29px!important}
  html[lang] body .v9-service-gateway .tier-three h3{font-size:31px!important}
}

/* Make the discount unmistakable without changing either price. */
.v9-tier-card strong.v14-price-pair{row-gap:8px!important;min-height:104px!important}
.v9-tier-card .v14-price-pair del,
.v9-service-price.v14-price-pair del{
  display:inline-flex!important;
  align-items:center!important;
  width:max-content!important;
  max-width:100%!important;
  min-height:30px!important;
  margin:0!important;
  padding:5px 10px!important;
  border:1px solid rgba(225,126,143,.52)!important;
  border-radius:4px!important;
  background:rgba(104,43,60,.34)!important;
  color:#dfb4bd!important;
  -webkit-text-fill-color:#dfb4bd!important;
  font-family:var(--cn,"Noto Serif SC",serif)!important;
  font-size:17px!important;
  font-weight:700!important;
  line-height:1.15!important;
  letter-spacing:0!important;
  text-decoration-line:line-through!important;
  text-decoration-color:#ff8da0!important;
  text-decoration-thickness:2px!important;
  text-decoration-skip-ink:none!important;
  text-shadow:0 1px 0 rgba(0,0,0,.35)!important;
  box-shadow:inset 0 1px rgba(255,225,230,.05),0 0 15px rgba(211,91,112,.07)!important;
  opacity:1!important;
}
.v9-tier-card .v14-price-pair del::before,
.v9-service-price.v14-price-pair del::before{margin-right:7px;font-size:.78em;font-weight:800;white-space:nowrap}
.v9-service-price.v14-price-pair del{min-height:34px!important;font-size:20px!important}
html[lang="zh-CN"] .v14-price-pair del::before{content:"原价"}
html[lang="zh-TW"] .v14-price-pair del::before{content:"原價"}
html[lang="en"] .v14-price-pair del::before{content:"WAS"}
html[lang="ja"] .v14-price-pair del::before{content:"通常価格"}
html[lang="fr"] .v14-price-pair del::before{content:"PRIX INITIAL"}
html[lang="de"] .v14-price-pair del::before{content:"STATT"}
html[lang="ko"] .v14-price-pair del::before{content:"정가"}
@media(max-width:760px){
  .v9-tier-card strong.v14-price-pair{min-height:94px!important;row-gap:6px!important}
  .v9-tier-card .v14-price-pair del{min-height:27px!important;padding:4px 8px!important;font-size:15px!important}
  .v9-service-price.v14-price-pair del{min-height:31px!important;font-size:18px!important}
}

/* Keep the revealed face continuously composited after the flip finishes. */
.reveal-card.flipped{
  opacity:1!important;
  visibility:visible!important;
  transform:perspective(1200px) rotateX(0deg) rotateY(180deg) translateZ(0)!important;
}
.reveal-card.flipped .face.front{
  display:block!important;
  opacity:1!important;
  visibility:visible!important;
  transform:rotateY(180deg) translateZ(1px)!important;
  -webkit-backface-visibility:hidden!important;
  backface-visibility:hidden!important;
}
.reveal-card.flipped .face.back{
  visibility:hidden!important;
  transition:visibility 0s .46s!important;
  pointer-events:none!important;
}

.api-error{max-width:760px;margin-inline:auto}
.api-error>p{max-width:680px;margin:14px auto 0;line-height:1.8;text-wrap:pretty}
.api-error-diagnostic{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;width:max-content;max-width:100%;margin:18px auto 0;padding:8px 12px;border:1px solid rgba(218,187,111,.26);border-radius:4px;background:rgba(10,7,16,.5);color:#b8a9bd;font:600 12px/1.35 system-ui,sans-serif;letter-spacing:0}
.api-error-diagnostic code{max-width:100%;overflow-wrap:anywhere;color:#e7cf9a;font:700 12px/1.35 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:0}
.api-error[data-error-kind="network"] .api-error-diagnostic,
.api-error[data-error-kind="server"] .api-error-diagnostic{border-color:rgba(202,105,126,.34)}
@media(max-width:600px){
  .api-error{padding-inline:4px}
  .api-error>h3{font-size:clamp(22px,7vw,28px);line-height:1.25;text-wrap:balance}
  .api-error>p{font-size:14px;line-height:1.75}
  .api-error .result-actions{display:grid;grid-template-columns:minmax(0,1fr);width:min(100%,360px);margin-inline:auto}
  .api-error .rite-btn{width:100%;min-width:0;white-space:normal}
}

/* Homepage reading order: question and deck first, then plans and feedback. */
#view-home>.container>.hero{margin-bottom:clamp(18px,3vw,34px);padding-bottom:clamp(28px,5vh,62px)}
#view-home>.container>#serviceGateway{width:100%;max-width:none;margin-top:0}
#view-home>.container>#v17FeedbackInline{margin-top:clamp(18px,3vw,30px)}
@media(max-width:760px){
  #view-home>.container>.hero{gap:8px;margin-bottom:10px;padding-bottom:16px!important}
  #view-home>.container>#serviceGateway{margin-top:0!important}
  #view-home>.container>#v17FeedbackInline{margin-top:8px}
}

/* Mobile rendering budget: retain ritual motion while removing ambient work. */
@media(max-width:980px),(pointer:coarse){
  #view-home>.v113-dashboard,
  #view-home>.v114-account-pulse,
  #view-home>.section{content-visibility:auto;contain-intrinsic-size:auto 720px}
  .v14-ambient,.ambient-veil{display:none!important}
  .card-back-pattern{background-image:url('tarot-deck/back/card-back.webp')!important}
  #view-home .hero-card:nth-last-child(2) .card-back-pattern{background-image:url('tarot-deck/back/card-back.webp')!important}
  .performance-lite #view-home .hero-card:nth-last-child(2) .card-back-pattern{background-image:url('tarot-deck/back/card-back.webp')!important}
  .hero-card,.hero-deck::before,.hero-deck::after,.hero-deck .orbit,.hero-deck .moon-phase i,
  .v9-tier-card::after{animation:none!important}
  .topbar,.v113-mobile-nav{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
  button,a,[role="button"]{touch-action:manipulation}
  #serviceAtlas{touch-action:pan-y;overscroll-behavior-inline:contain;-webkit-user-select:none;user-select:none}
  #serviceAtlas.is-swiping{cursor:grabbing}
  .deck-stage.mobile-shuffle-lite{contain:layout paint;isolation:isolate}
  .deck-stage.mobile-shuffle-lite .deck-card.shuffle{
    animation-name:v20MobileShuffle!important;
    animation-duration:2.85s!important;
    animation-timing-function:cubic-bezier(.22,.7,.2,1)!important;
    transition:none!important;
    will-change:transform,opacity!important;
    filter:none!important;
  }

  /* The selection fan keeps 78 hit targets, but does not keep 78 GPU layers.
     Mobile browsers otherwise retain every shadow/filter layer after shuffle. */
  .deck-stage.selecting .deck-card{
    contain:paint;
    transform-style:flat!important;
    will-change:auto!important;
    transition:none!important;
    box-shadow:none!important;
    filter:none!important;
  }
  .deck-stage.selecting .deck-card .card-back-pattern{
    filter:none!important;
    box-shadow:none!important;
  }
  .deck-stage.selecting .deck-card .card-back-pattern::before,
  .deck-stage.selecting .deck-card .card-back-pattern::after{
    display:none!important;
    content:none!important;
  }
  .deck-stage.selecting .deck-card:is(:hover,.hovered){
    filter:none!important;
    outline:1px solid rgba(235,205,120,.45);
    box-shadow:none!important;
  }
}

/* Mobile response budget: short, composited transitions with no continuously
   running background work. Core card flips and ritual feedback remain. */
.mobile-performance #starCanvas,
.mobile-performance .ambient-veil{display:none!important}
.mobile-performance #splash{transition:opacity .2s ease,visibility .2s!important}
.mobile-performance .splash-card,
.mobile-performance .splash-runes,
.mobile-performance .splash-dust i,
.mobile-performance .deck-ghosts i,
.mobile-performance .splash-brand,
.mobile-performance .splash-mark,
.mobile-performance .splash-title>i,
.mobile-performance .splash-brand-rule{
  animation:none!important;
  filter:none!important;
  transform:none!important;
  opacity:1!important;
}
.mobile-performance .view.active{
  animation:v20MobileViewIn .18s ease-out both!important;
  filter:none!important;
}
.mobile-performance .service-track{will-change:transform;backface-visibility:hidden;transform-style:flat}
.mobile-performance .service-slide,
.mobile-performance .service-slide::before,
.mobile-performance .service-slide::after{animation:none!important;filter:none!important}
.mobile-performance .service-copy-full,
.mobile-performance .service-visual,
.mobile-performance .service-visual *{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
@keyframes v20MobileViewIn{from{opacity:.72;transform:translate3d(0,4px,0)}to{opacity:1;transform:translate3d(0,0,0)}}

@media(max-width:980px),(pointer:coarse){
  .performance-lite .deck-stage.mobile-shuffle-lite .deck-card.shuffle{animation-duration:2.45s!important}
  .performance-lite .v20-reader-toggle{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
}

@keyframes v20MobileShuffle{
  0%{transform:translate3d(0,0,0) rotate(0);opacity:0}
  8%{opacity:1}
  28%{transform:translate3d(var(--fanX),var(--fanY),0) rotate(var(--fanR))}
  52%{transform:translate3d(var(--splitX),var(--riffleY),0) rotate(var(--splitR))}
  72%{transform:translate3d(calc(var(--splitX)*-.7),calc(var(--riffleY)*-.4),0) rotate(calc(var(--splitR)*-.75))}
  88%{transform:translate3d(calc(var(--fanX)*.18),calc(var(--fanY)*.1),0) rotate(calc(var(--fanR)*.18))}
  100%{transform:translate3d(0,0,0) rotate(0);opacity:1}
}
