/* Intro FX v3 — premium/solemn layer. Scoped to html[data-fx=v3]; ?fx=v2 turns it off. Original card art untouched. */
html[data-fx=v3] body{background:radial-gradient(120% 80% at 50% 30%,#1a140b 0%,#070604 55%,#020202 100%) fixed}
/* film grain + vignette over everything, non-interactive */
html[data-fx=v3] body::before{content:'';position:fixed;inset:-50%;z-index:30;pointer-events:none;background:url(../assets/fx-grain.png);opacity:.055;mix-blend-mode:overlay;animation:fx-grain 1.2s steps(6) infinite}
html[data-fx=v3] body::after{content:'';position:fixed;inset:0;z-index:29;pointer-events:none;background:radial-gradient(ellipse at 50% 45%,transparent 55%,#000000a6 100%)}
@keyframes fx-grain{0%{transform:translate(0,0)}33%{transform:translate(-3%,2%)}66%{transform:translate(2%,-3%)}100%{transform:translate(0,0)}}
/* Top page: quiet gold hairlines, mincho, no pill buttons */
html[data-fx=v3] .entry-art{position:relative}
html[data-fx=v3] .entry-art::after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(to bottom,transparent 72%,#050403 100%)}
html[data-fx=v3] .intro-cue-button{border-radius:0!important;border:0!important;border-block:1px solid #c9a96266!important;background:transparent!important;box-shadow:none!important;font:500 14px/1.6 'Noto Serif CJK JP','Yu Mincho',serif!important;letter-spacing:.32em!important;color:#e9d7ae!important;padding:10px 28px!important}
html[data-fx=v3] .intro-cue[data-mode=first] .intro-cue-button::after{content:''!important}
html[data-fx=v3] .fortune-form label{letter-spacing:.2em;font-size:13px;color:#cdb98a}
html[data-fx=v3] .fortune-form input[type=text],html[data-fx=v3] .fortune-form input[type=date]{background:transparent;border:0;border-bottom:1px solid #8a7447;border-radius:0;letter-spacing:.08em}
html[data-fx=v3] .fortune-form input:focus{outline:0;border-bottom-color:#f0d89c;box-shadow:0 1px 0 #f0d89c}
html[data-fx=v3] .fortune-form .integration-notice{background:transparent;border:0;border-block:1px solid #3a3020;text-align:center;letter-spacing:.06em}
html[data-fx=v3] #calculate{border-radius:0;background:linear-gradient(180deg,#2a2112,#120e07);border:1px solid #b8975a;color:#f3e2b8;letter-spacing:.42em;font-weight:500;box-shadow:inset 0 0 0 3px #120e07,inset 0 0 0 4px #b8975a55;transition:box-shadow .4s,color .4s}
html[data-fx=v3] #calculate:hover{box-shadow:inset 0 0 0 3px #120e07,inset 0 0 0 4px #e8cc8a,0 0 24px #c9a96233}
/* Motion stage: framed, cinematic */
html[data-fx=v3] .presentation-stage{background:radial-gradient(80% 60% at 50% 50%,#1b1309,#030302)}
html[data-fx=v3] .presentation-stage::after{content:'';position:absolute;inset:10px;z-index:5;pointer-events:none;border:1px solid #c9a96233;outline:1px solid #c9a96214;outline-offset:4px}
html[data-fx=v3] .presentation-stage video{filter:contrast(1.06) saturate(.92) sepia(.08)}
/* Ritual lines: no pill; engraved gold serif between hairlines */
html[data-fx=v3] .intro-ritual{background:none!important;border-radius:0!important;padding:10px 4px!important;font:500 16px/1.7 'Noto Serif CJK JP','Yu Mincho',serif!important;letter-spacing:.42em!important;color:#f3e3bb!important;text-shadow:0 0 18px #000,0 0 3px #000,0 0 28px #d9a95355!important;transition:opacity .7s ease,letter-spacing 1.4s ease!important}
html[data-fx=v3] .intro-ritual::before,html[data-fx=v3] .intro-ritual::after{content:'';display:block;height:1px;margin:6px auto;width:60%;background:linear-gradient(90deg,transparent,#d8bb7c,transparent)}
html[data-fx=v3] .intro-ritual[data-on="1"]{letter-spacing:.5em!important}
/* Reveal: warm bloom instead of hard white; card rises from light instead of flipping */
html[data-fx=v3] #motion-white{background:radial-gradient(circle at 50% 46%,#fff8e6 0%,#f3d79a 30%,#8a6a2e 62%,#000 100%)!important}
html[data-fx=v3] .presentation-stage[data-fx-reveal] #approved-frame-shell{transform:translateY(var(--fx-y,0)) scale(var(--fx-s,1))!important;filter:blur(var(--fx-b,0)) brightness(var(--fx-l,1));transform-origin:50% 55%}
html[data-fx=v3] #approved-frame-shell{position:relative}
html[data-fx=v3] .presentation-stage[data-fx-reveal] #approved-frame-shell::after{content:'';position:absolute;inset:0;pointer-events:none;z-index:3;background:linear-gradient(105deg,transparent 35%,#fff3d0aa 50%,transparent 65%);background-size:300% 100%;background-position:var(--fx-sweep,150%) 0;mix-blend-mode:soft-light}
@media(prefers-reduced-motion:reduce){html[data-fx=v3] body::before{animation:none}}
/* Wide/iPad (>=768px): lighter vignette + gentler art fade; larger title art in the side-by-side layout. */
@media(min-width:768px){
 html[data-fx=v3] body::after{background:radial-gradient(ellipse at 50% 45%,transparent 70%,#00000059 100%)}
 html[data-fx=v3] .entry-art::after{background:linear-gradient(to bottom,transparent 88%,#05040399 100%)}
 html[data-fx=v3] .entry-art img{filter:brightness(1.08) contrast(1.04)}
}
@media(min-width:960px){
 html[data-fx=v3] body[data-intro=v2][data-integration-state=input] #app{max-width:1000px}
 html[data-fx=v3] body[data-intro=v2] #entry-screen:not([hidden]) .entry-stage{grid-template-columns:auto 400px;gap:48px}
 html[data-fx=v3] body[data-intro=v2] .entry-art{--art-w:min(540px,calc((100svh - 40px)/1.513))}
}
