@font-face{font-family:JetBrains;src:url(assets/fonts/jetbrains-mono-400.ttf) format("truetype");font-weight:400;font-display:swap}
@font-face{font-family:JetBrains;src:url(assets/fonts/jetbrains-mono-700.ttf) format("truetype");font-weight:700;font-display:swap}
@font-face{font-family:CelestialCJK;src:url(assets/fonts/celestial-cjk.ttf) format("truetype");font-weight:100 900;font-display:swap}
:root{--ink:#080909;--ink-soft:#101313;--paper:#eee8da;--paper-soft:#d9d0bf;--gold:#b89555;--gold-bright:#d5b470;--line:rgba(213,180,112,.34);--glass:rgba(8,9,9,.78);--shell-max:1180px;--section-space:80px;--control-min:44px;--motion-fast:.2s;--motion-stage:.7s;--focus-ring:2px solid var(--gold-bright);--status-success:#bfe0bd;--status-error:#f0bd9a;--report-white:#f7f3e9;--report-muted:#c8c3b8;--report-gold:#ddb96e;--topbar:78px;--ease:cubic-bezier(.22,1,.36,1);--serif:"Iowan Old Style","Baskerville","Times New Roman",serif;--mono:JetBrains,CelestialCJK,"PingFang SC","Microsoft YaHei",monospace}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;background:var(--ink);color:var(--paper);font-family:var(--mono)}
body{overflow:hidden}
button,input,textarea{font:inherit}
button{color:inherit}
button:focus-visible,input:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:var(--focus-ring);outline-offset:4px}
[hidden]{display:none!important}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.film{position:fixed;inset:0;z-index:200;pointer-events:none;opacity:.13;mix-blend-mode:screen;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.35'/%3E%3C/svg%3E")}
.eyebrow{margin:0 0 12px;font-size:10px;line-height:1.4;letter-spacing:.24em;text-transform:uppercase;font-weight:700}
h1,h2,h3,p{margin-top:0}
h1,h2,h3{font-family:var(--serif);font-weight:400}
.entry{position:fixed;inset:0;display:grid;place-items:center;overflow:hidden;background:#e9e2d3;color:var(--ink);transition:opacity .7s var(--ease),transform 1.1s var(--ease)}
.entry::before,.entry::after{content:"";position:absolute;border-radius:50%;background:#080909}
.entry::before{width:56vmax;height:56vmax;left:-30vmax;top:-27vmax}
.entry::after{width:58vmax;height:58vmax;right:-36vmax;bottom:-31vmax}
.entry-art{position:absolute;inset:0;background:url(assets/backgrounds/gateway-collage.webp) center/cover;mix-blend-mode:multiply;opacity:.46;animation:entryDrift 22s ease-in-out infinite alternate}
.entry-copy{position:relative;z-index:2;width:min(780px,82vw);text-align:center;padding:48px;background:rgba(238,232,218,.62);backdrop-filter:blur(12px);border:1px solid rgba(8,9,9,.18);box-shadow:0 28px 100px rgba(0,0,0,.16)}
.entry h1{font-size:clamp(46px,7vw,104px);line-height:.86;letter-spacing:-.055em;margin:20px 0 26px}
.entry h1 span,.entry h1 small{display:block}
.entry h1 small{font-family:var(--mono);font-size:.22em;letter-spacing:.48em;margin-top:24px}
.entry-lede{max-width:620px;margin:0 auto 30px;line-height:1.8;font-size:13px}
.entry-note{font-size:9px;letter-spacing:.12em;margin:18px 0 0;text-transform:uppercase}
.entry-disclaimer{max-width:620px;margin:15px auto 0;color:rgba(8,9,9,.72);font-size:7px;line-height:1.55}.entry-disclaimer span{font-family:CelestialCJK,"PingFang SC",sans-serif;color:#76592d}
.seal-button{border:0;background:none;display:inline-flex;align-items:center;gap:14px;padding:0;cursor:pointer;text-transform:uppercase;letter-spacing:.14em;font-weight:700;font-size:11px}
.seal-mark{display:grid;place-items:center;width:64px;height:64px;border-radius:50%;background:var(--ink);color:var(--gold-bright);font-size:22px;transition:transform .6s var(--ease),box-shadow .4s}
@media(hover:hover) and (pointer:fine){.seal-button:hover .seal-mark{transform:rotate(45deg) scale(1.08);box-shadow:0 0 0 8px rgba(8,9,9,.08)}}
.entry.is-leaving{opacity:0;transform:scale(1.06);pointer-events:none}
.entry.is-arriving::before{animation:entryOrbLeft 2.35s cubic-bezier(.16,1,.3,1) both}.entry.is-arriving::after{animation:entryOrbRight 2.5s .08s cubic-bezier(.16,1,.3,1) both}.entry.is-arriving .entry-art{animation:entryBackdropResolve 2.6s cubic-bezier(.16,1,.3,1) both}.entry.is-arriving .entry-copy{animation:entryPanelUnfold 1.45s .18s cubic-bezier(.16,1,.3,1) both}.entry.is-arriving .entry-copy>p,.entry.is-arriving .entry-copy>h1,.entry.is-arriving .entry-copy>button{animation:entryCopyResolve .9s cubic-bezier(.16,1,.3,1) both}.entry.is-arriving .entry-copy>.eyebrow{animation-delay:.54s}.entry.is-arriving .entry-copy>h1{animation-delay:.68s}.entry.is-arriving .entry-copy>.entry-lede{animation-delay:.9s}.entry.is-arriving .entry-copy>.seal-button{animation-delay:1.08s}.entry.is-arriving .entry-copy>.entry-note{animation-delay:1.28s}.entry.is-arriving .seal-mark{animation:entrySealWake 1.05s 1.12s cubic-bezier(.16,1,.3,1) both}
.app{height:100dvh;overflow:hidden;background:var(--ink)}
.topbar{height:var(--topbar);position:fixed;z-index:80;inset:0 0 auto;display:flex;align-items:center;justify-content:space-between;padding:12px clamp(14px,3vw,46px);border-bottom:1px solid var(--line);background:rgba(8,9,9,.82);backdrop-filter:blur(18px)}
.brand{display:flex;align-items:center;gap:12px;border:0;background:none;padding:0;text-align:left;cursor:pointer}
.brand-sigil{display:grid;place-items:center;width:42px;height:42px;border:1px solid var(--gold);border-radius:50%;color:var(--gold-bright);transition:transform .7s var(--ease)}
@media(hover:hover) and (pointer:fine){.brand:hover .brand-sigil{transform:rotate(45deg)}}
.brand b,.brand small{display:block}.brand b{font-family:var(--serif);font-weight:400;font-size:18px;letter-spacing:.01em}.brand small{font-size:7px;letter-spacing:.18em;margin-top:3px;color:var(--gold-bright)}
.top-actions{display:flex;align-items:center;gap:8px}
.icon-button,.text-button{border:1px solid var(--line);background:rgba(8,9,9,.38);min-height:42px;cursor:pointer;transition:background .2s,color .2s,border .2s,transform .2s}
.icon-button{width:42px;border-radius:50%;font-size:15px}.text-button{padding:0 14px;border-radius:22px;font-size:9px;text-transform:uppercase;letter-spacing:.1em}.text-button b{color:var(--gold-bright)}
@media(hover:hover) and (pointer:fine){.icon-button:hover,.text-button:hover{background:var(--gold);border-color:var(--gold);color:var(--ink);transform:translateY(-1px)}}
.stage{position:relative;height:100dvh;overflow:hidden}
.view{position:absolute;inset:var(--topbar) 0 0;overflow:auto;overscroll-behavior:contain;opacity:0;transform:translate3d(0,22px,0) scale(.992);pointer-events:none;transition:opacity .55s var(--ease),transform .75s var(--ease);background:var(--ink)}
.view.is-active{opacity:1;transform:none;pointer-events:auto;z-index:2}
.bg-layer{position:fixed;inset:var(--topbar) 0 0;background-position:center;background-size:cover;animation:ambientDrift 26s ease-in-out infinite alternate;will-change:transform}
.bg-layer::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,9,9,.12),rgba(8,9,9,.5))}
.gateway .bg-layer{background-image:url(assets/backgrounds/gateway-editorial-collage-v2.webp);background-position:center}
.gateway{color:var(--ink)}
.gateway .bg-layer::after{background:linear-gradient(90deg,rgba(8,9,9,.04) 0%,rgba(8,9,9,.02) 52%,rgba(8,9,9,.12) 100%)}
.gateway-heading{position:relative;z-index:1;width:min(760px,90vw);padding:clamp(34px,7vh,84px) clamp(22px,5vw,76px) 24px}
.gateway-heading h2{font-size:clamp(44px,7vw,104px);line-height:.9;letter-spacing:-.05em;margin-bottom:22px}
.gateway-heading>p:last-child{max-width:580px;line-height:1.7;font-size:12px}
.gateway-grid{position:relative;z-index:2;display:grid;grid-template-columns:1.2fr 1fr 1fr 1fr;gap:1px;padding:0 clamp(20px,4vw,66px) 52px}
.gateway-card{position:relative;isolation:isolate;min-height:275px;text-align:left;padding:26px 24px;border:1px solid rgba(8,9,9,.25);background:rgba(238,232,218,.67);backdrop-filter:blur(13px);cursor:pointer;overflow:hidden;transition:color .35s var(--ease),transform .45s var(--ease),background .35s}
.gateway-card::before{content:"";position:absolute;z-index:-1;inset:100% 0 0;background:var(--ink);transition:inset .5s var(--ease)}
.gateway-card.primary{background:rgba(8,9,9,.9);color:var(--paper)}.gateway-card.primary::before{background:var(--gold)}@media(hover:hover) and (pointer:fine){.gateway-card:hover{color:var(--paper);transform:translateY(-6px)}.gateway-card:hover::before{inset:0}.gateway-card.primary:hover{color:var(--ink)}}
.gateway-index{font-size:8px;letter-spacing:.16em}.gateway-title{display:block;font-family:var(--serif);font-size:clamp(28px,3vw,48px);line-height:.95;margin-top:42px}.gateway-zh{display:block;margin-top:10px;font-size:10px;letter-spacing:.18em}.gateway-desc{display:block;max-width:210px;margin-top:34px;font-size:9px;line-height:1.7}.gateway-arrow{position:absolute;right:20px;bottom:18px;font-size:24px;transition:transform var(--motion-fast) var(--ease)}@media(hover:hover) and (pointer:fine){.gateway-card:hover .gateway-arrow{transform:translate(4px,-4px)}}
.gateway-foot{position:relative;z-index:1;text-align:right;margin:-32px 5vw 24px;font-size:7px;letter-spacing:.18em}
.page-heading{position:relative;z-index:2;padding:clamp(30px,6vh,70px) clamp(20px,5vw,80px) 20px;max-width:900px}.page-heading h2{font-size:clamp(44px,7vw,94px);line-height:.9;margin:0 0 20px;letter-spacing:-.045em}.page-heading>p:last-child{font-size:11px;line-height:1.8;max-width:680px}
.ritual .bg-layer{background-image:url(assets/backgrounds/ritual-chamber.webp)}
.ritual-board{position:relative;z-index:3;min-height:520px;padding:10px clamp(20px,5vw,80px) 80px}
.question-panel{width:min(560px,100%);padding:28px;background:rgba(8,9,9,.72);border:1px solid var(--line);backdrop-filter:blur(16px)}
.question-panel label{font-size:9px;letter-spacing:.13em;text-transform:uppercase;color:var(--gold-bright)}
textarea{display:block;width:100%;min-height:110px;margin:14px 0 18px;padding:16px;border:1px solid var(--line);background:rgba(0,0,0,.35);color:var(--paper);resize:vertical;line-height:1.6;border-radius:0}
.question-actions,.report-actions{display:flex;gap:10px;flex-wrap:wrap}
.button{min-height:var(--control-min);padding:0 18px;border:1px solid var(--gold);background:rgba(8,9,9,.62);color:var(--paper);cursor:pointer;font-size:9px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;transition:transform var(--motion-fast) var(--ease),background var(--motion-fast),color var(--motion-fast),opacity var(--motion-fast)}.button.gold{background:var(--gold);color:var(--ink)}.button.ghost{border-color:rgba(238,232,218,.25);color:var(--paper-soft)}.button:disabled{opacity:.35;cursor:not-allowed;transform:none}@media(hover:hover) and (pointer:fine){.button:hover{transform:translateY(-2px);background:var(--paper);color:var(--ink)}.button.gold:hover{background:var(--gold-bright)}}.microcopy{font-size:8px;color:var(--paper-soft);margin:18px 0 0;line-height:1.5}
.draw-panel{padding:18px 0;text-align:center}.ritual-instruction{display:flex;justify-content:center;gap:16px;align-items:center;font-size:10px;letter-spacing:.12em;text-transform:uppercase}.ritual-instruction b{color:var(--gold-bright)}
.deck-selector{position:relative;display:grid;grid-template-columns:46px minmax(0,1fr) 46px;align-items:center;min-height:250px;margin:16px max(-20px,-5vw) 0;isolation:isolate}.deck-selector::before,.deck-selector::after{content:"";position:absolute;z-index:4;top:0;bottom:15px;width:clamp(38px,7vw,110px);pointer-events:none}.deck-selector::before{left:45px;background:linear-gradient(90deg,rgba(8,9,9,.95),transparent)}.deck-selector::after{right:45px;background:linear-gradient(-90deg,rgba(8,9,9,.95),transparent)}
.deck-fan{position:relative;z-index:2;display:flex;align-items:center;gap:clamp(9px,1.2vw,17px);min-width:0;min-height:238px;padding:34px calc(50% - clamp(42px,5vw,58px)) 26px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x proximity;scroll-behavior:smooth;scroll-padding-inline:50%;overscroll-behavior-inline:contain;touch-action:auto;perspective:1000px;scrollbar-color:rgba(213,180,112,.55) rgba(238,232,218,.08);scrollbar-width:thin}.deck-fan.is-gesture-browsing{scroll-snap-type:none;scroll-behavior:auto}.deck-fan::-webkit-scrollbar{height:4px}.deck-fan::-webkit-scrollbar-track{background:rgba(238,232,218,.08)}.deck-fan::-webkit-scrollbar-thumb{background:var(--gold)}
.deck-choice{position:relative;flex:0 0 clamp(84px,9vw,116px);aspect-ratio:2/3;border:0;border-radius:8px;background:url(assets/cards/r1/approved/card-back-lunar-seal.webp) center/cover;box-shadow:0 14px 40px rgba(0,0,0,.58),0 0 0 1px rgba(213,180,112,.14);cursor:pointer;scroll-snap-align:center;translate:0 0;scale:1;rotate:0deg;transition:translate .3s var(--ease),scale .3s var(--ease),filter .24s,opacity .3s,box-shadow .24s;will-change:translate,scale,opacity}.deck-choice:focus-visible,.deck-choice.is-gesture-candidate{z-index:3;translate:0 -18px;scale:1.04;filter:brightness(1.16);box-shadow:0 22px 52px rgba(0,0,0,.7),0 0 28px rgba(213,180,112,.38),0 0 0 2px var(--gold-bright)}@media(hover:hover) and (pointer:fine){.deck-choice:hover{z-index:3;translate:0 -18px;scale:1.04;filter:brightness(1.16);box-shadow:0 22px 52px rgba(0,0,0,.7),0 0 28px rgba(213,180,112,.38),0 0 0 2px var(--gold-bright)}}.deck-choice.is-picked{opacity:.14;translate:0 -24px;scale:.9;filter:grayscale(1);pointer-events:none}.deck-choice.is-picked::after{content:"✦";position:absolute;inset:0;display:grid;place-items:center;background:rgba(8,9,9,.48);color:var(--gold-bright);font-size:24px}
.deck-selector.is-resolving .deck-fan{animation:deckViewportResolve 1.35s cubic-bezier(.16,1,.3,1) both}.deck-selector.is-resolving .deck-choice{animation:deckRibbonResolve .95s var(--deck-delay,0ms) cubic-bezier(.16,1,.3,1) both}.deck-resolve-mark{position:absolute;z-index:5;left:50%;top:48%;width:96px;aspect-ratio:2/3;translate:-50% -50%;pointer-events:none;opacity:0}.deck-resolve-mark i{position:absolute;inset:0;border:1px solid rgba(213,180,112,.7);border-radius:8px;background:url(assets/cards/r1/approved/card-back-lunar-seal.webp) center/cover;box-shadow:0 16px 55px rgba(0,0,0,.7);rotate:calc((var(--stack-index,0) - 2)*2deg);translate:calc((var(--stack-index,0) - 2)*3px) calc((var(--stack-index,0) - 2)*-2px)}.deck-resolve-mark i:nth-child(1){--stack-index:0}.deck-resolve-mark i:nth-child(2){--stack-index:1}.deck-resolve-mark i:nth-child(3){--stack-index:2}.deck-resolve-mark i:nth-child(4){--stack-index:3}.deck-resolve-mark i:nth-child(5){--stack-index:4}.deck-resolve-mark span{position:absolute;z-index:2;inset:auto -30px -34px;text-align:center;color:var(--gold-bright);font-size:9px;letter-spacing:.45em}.deck-selector.is-resolving .deck-resolve-mark{animation:deckSealResolve 1.25s cubic-bezier(.16,1,.3,1) both}
.deck-scroll-button{position:relative;z-index:6;width:38px;height:38px;margin:auto;border:1px solid var(--line);border-radius:50%;background:rgba(8,9,9,.76);color:var(--paper);cursor:pointer;transition:background var(--motion-fast),color var(--motion-fast),scale var(--motion-fast),opacity var(--motion-fast)}@media(hover:hover) and (pointer:fine){.deck-scroll-button:hover{background:var(--gold);color:var(--ink);scale:1.06}}.deck-scroll-button:disabled{opacity:.28;cursor:not-allowed;scale:1}.deck-position{display:flex;justify-content:center;align-items:center;gap:10px;min-height:28px;color:var(--gold-bright);font-size:8px;letter-spacing:.15em}.deck-position>i{width:70px;height:1px;background:var(--gold)}.deck-position small{margin-left:8px;color:var(--paper-soft);letter-spacing:.08em;text-transform:uppercase}
.reading-slots{display:flex;justify-content:center;align-items:center;gap:clamp(12px,3vw,34px);min-height:260px;margin-top:12px}.reading-slot{width:clamp(120px,14vw,190px);aspect-ratio:2/3;perspective:1400px;opacity:1;transform:none}.reading-slot.is-empty,.reading-slot.is-awaiting-deal{opacity:0;transform:none;animation:none}.reading-slot.is-dealt{animation:slotSettle .58s cubic-bezier(.16,1,.3,1) both}.deal-clone{position:fixed;z-index:155;pointer-events:none;border-radius:7px;background:url(assets/cards/r1/approved/card-back-lunar-seal.webp) center/cover;box-shadow:0 18px 55px rgba(0,0,0,.72),0 0 0 1px rgba(213,180,112,.38),0 0 26px rgba(213,180,112,.16);transform-origin:center;transition:left .82s cubic-bezier(.16,1,.3,1),top .82s cubic-bezier(.16,1,.3,1),width .82s cubic-bezier(.16,1,.3,1),height .82s cubic-bezier(.16,1,.3,1),rotate .82s cubic-bezier(.16,1,.3,1),scale .82s cubic-bezier(.16,1,.3,1),opacity .18s ease}.deal-clone::after{content:"";position:absolute;inset:-12%;border-radius:10%;background:radial-gradient(circle,rgba(239,207,139,.28),transparent 66%);filter:blur(14px);z-index:-1}.deal-clone.is-settling{opacity:0;scale:.96}.tarot-card{position:relative;width:100%;height:100%;transform-style:preserve-3d;transition:transform 1.18s cubic-bezier(.16,1,.3,1)}.tarot-card.is-flipped{transform:rotateY(180deg)}.card-side{position:absolute;inset:0;backface-visibility:hidden;border-radius:4.5%;overflow:hidden;box-shadow:0 20px 70px rgba(0,0,0,.55)}.card-side img{width:100%;height:100%;object-fit:cover;display:block}.card-face{transform:rotateY(180deg)}.card-face.is-reversed img{transform:rotate(180deg)}.card-face.is-reversed .card-label{transform:translateZ(2px) rotate(180deg);inset:5% 7% auto}.card-label{position:absolute;inset:auto 7% 5%;padding:7px 8px;background:rgba(8,9,9,.8);border:1px solid rgba(213,180,112,.55);font-size:7px;letter-spacing:.1em;text-transform:uppercase;text-align:center;backface-visibility:hidden;transform:translateZ(2px)}.reveal-button{display:block;margin:0 auto}
.meaning-panel{position:relative;width:min(var(--shell-max),96%);margin:0 auto 50px;padding:clamp(22px,4vw,48px);background:rgba(9,10,10,.92);border:1px solid var(--line);box-shadow:0 28px 90px rgba(0,0,0,.5);backdrop-filter:blur(18px);animation:panelRise var(--motion-stage) var(--ease)}.meaning-head{display:flex;justify-content:space-between;gap:20px;align-items:start}.meaning-head h3{font-size:clamp(28px,4vw,54px);line-height:1;margin:0}.meaning-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);margin:28px 0}.meaning-card{padding:20px;background:var(--ink)}.meaning-card b{display:block;font-family:var(--serif);font-size:25px;font-weight:400;margin-bottom:10px}.meaning-card span{display:block;font-size:8px;color:var(--gold-bright);letter-spacing:.13em;text-transform:uppercase;margin-bottom:14px}.meaning-card p,.synthesis p:last-child{font-size:10px;line-height:1.75;color:var(--paper-soft)}.synthesis{border-left:2px solid var(--gold);padding:4px 0 4px 22px;margin-bottom:24px}.report-options{display:flex;gap:16px;flex-wrap:wrap;padding:16px 0;border-top:1px solid var(--line);font-size:8px}.report-options label{display:flex;align-items:center;gap:7px}.report-options input{accent-color:var(--gold)}
.arcana .bg-layer{background-image:url(assets/backgrounds/arcana-archive.webp)}.inline-heading{max-width:none;display:flex;justify-content:space-between;align-items:end;gap:20px}.inline-heading h2{margin-bottom:0}.search-field{display:flex;align-items:center;width:min(380px,42vw);height:46px;border-bottom:1px solid var(--gold)}.search-field input{flex:1;background:none;border:0;color:var(--paper);padding:0 8px;font-size:10px;outline:0}.search-field span:last-child{font-size:20px}.filter-row{position:relative;z-index:3;display:flex;gap:8px;padding:0 clamp(20px,5vw,80px) 24px;flex-wrap:wrap}.chip{border:1px solid var(--line);background:rgba(8,9,9,.65);padding:8px 12px;color:var(--paper);font-size:8px;letter-spacing:.1em;text-transform:uppercase;cursor:pointer}.chip.is-active{background:var(--gold);color:var(--ink);border-color:var(--gold)}
.arcana-grid{position:relative;z-index:2;display:grid;grid-template-columns:repeat(6,minmax(140px,1fr));gap:clamp(10px,1.8vw,25px);padding:0 clamp(20px,5vw,80px)}.arcana-item{border:0;background:none;padding:0;color:var(--paper);text-align:left;cursor:pointer;transition:transform .3s var(--ease),opacity .24s}.arcana-item img{display:block;width:100%;aspect-ratio:2/3;object-fit:cover;border-radius:5%;box-shadow:0 20px 60px rgba(0,0,0,.45)}.arcana-item b,.arcana-item small{display:block}.arcana-item b{font-family:var(--serif);font-size:17px;font-weight:400;margin-top:12px}.arcana-item small{font-size:7px;letter-spacing:.12em;color:var(--gold-bright);margin-top:5px}.proof-limit{position:relative;z-index:2;padding:26px clamp(20px,5vw,80px) 70px;font-size:8px;color:var(--paper-soft);line-height:1.6}.arcana-item[hidden]{display:none}@media(hover:hover) and (pointer:fine){.arcana-item:hover{transform:translateY(-7px)}}
.chamber .bg-layer{background-image:url(assets/backgrounds/reading-chamber.webp)}.chamber-heading{max-width:800px}.gallery-shell{position:relative;z-index:3;display:grid;grid-template-columns:56px minmax(0,1fr) 56px;align-items:center;width:100%;overflow:hidden}.gallery-arrow{width:52px;height:52px;margin:auto;border-radius:50%;border:1px solid var(--line);background:rgba(8,9,9,.7);color:var(--paper);cursor:pointer;z-index:4}.session-gallery{display:flex;gap:clamp(20px,5vw,80px);overflow-x:auto;scroll-snap-type:x mandatory;padding:20px calc(50% - min(290px,36vw)) 55px;scrollbar-width:none}.session-gallery::-webkit-scrollbar{display:none}.session-card{flex:0 0 min(580px,72vw);min-height:320px;scroll-snap-align:center;background:rgba(8,9,9,.76);border:1px solid var(--line);padding:clamp(20px,4vw,44px);display:grid;grid-template-columns:1fr 1.1fr;gap:26px;opacity:.28;filter:blur(.6px);transform:scale(.88);transition:opacity .55s,transform .7s var(--ease),filter .5s}.session-card.is-selected{opacity:1;filter:none;transform:scale(1)}.session-cards{display:flex;align-items:center}.session-cards img{width:44%;aspect-ratio:2/3;object-fit:cover;border-radius:5%;box-shadow:0 12px 40px rgba(0,0,0,.5)}.session-cards img+img{margin-left:-19%;transform:rotate(6deg)}.session-copy h3{font-size:clamp(28px,4vw,48px);line-height:1;margin:12px 0}.session-copy p{font-size:9px;line-height:1.75;color:var(--paper-soft)}.session-date{font-size:7px;letter-spacing:.14em;color:var(--gold-bright)}.gallery-index{position:relative;z-index:3;display:flex;align-items:center;justify-content:center;gap:12px;font-size:8px;letter-spacing:.18em}.gallery-index i{width:100px;height:1px;background:var(--gold)}.session-empty{flex:0 0 min(720px,82vw);min-height:300px;scroll-snap-align:center;display:grid;place-items:center;text-align:center;padding:42px;border:1px solid var(--line);background:rgba(8,9,9,.76)}.session-empty h3{font-size:clamp(30px,5vw,58px);margin:0 0 18px}.session-empty p{max-width:520px;font-size:9px;line-height:1.8;color:var(--paper-soft)}
.grimoire{color:var(--paper)}.grimoire .bg-layer{background-image:url(assets/backgrounds/grimoire-paper-flight.webp);background-position:center;background-size:cover}.grimoire .bg-layer::after{background:linear-gradient(90deg,rgba(4,5,5,.78),rgba(4,5,5,.28) 48%,rgba(4,5,5,.62)),linear-gradient(180deg,rgba(0,0,0,.15),rgba(0,0,0,.5))}.book-layout{position:relative;z-index:2;display:grid;grid-template-columns:minmax(230px,.7fr) minmax(0,1.7fr);gap:clamp(20px,5vw,80px);padding:clamp(36px,7vh,80px) clamp(30px,11vw,190px) 80px;min-height:calc(100dvh - var(--topbar))}.chapter-nav{border-right:1px solid rgba(213,180,112,.4);padding:24px 30px 24px 24px;background:linear-gradient(90deg,rgba(4,5,5,.66),rgba(4,5,5,.22));backdrop-filter:blur(4px)}.chapter-nav h2{font-size:clamp(44px,6vw,86px);line-height:.9;margin-bottom:30px;text-shadow:0 4px 30px #000}.chapter-button{display:block;width:100%;padding:13px 0;border:0;border-bottom:1px solid rgba(238,232,218,.18);background:none;color:var(--paper);text-align:left;cursor:pointer;font-size:9px}.chapter-button span{color:var(--gold-bright);margin-right:8px}.chapter-button.is-active{font-weight:700;padding-left:12px;border-bottom-color:var(--gold-bright);background:linear-gradient(90deg,rgba(184,149,85,.18),transparent)}.chapter-page{align-self:center;max-width:700px;padding:36px;background:rgba(6,7,7,.8);color:var(--paper);backdrop-filter:blur(10px);border:1px solid rgba(213,180,112,.42);box-shadow:0 28px 90px rgba(0,0,0,.52)}.chapter-page h3{font-size:clamp(38px,6vw,82px);line-height:.92;letter-spacing:-.04em;margin:0 0 28px}.chapter-page p{font-size:11px;line-height:2;color:var(--paper-soft)}.chapter-page blockquote{font-family:var(--serif);font-size:22px;line-height:1.45;margin:30px 0;padding-left:22px;border-left:2px solid var(--gold);color:var(--paper)}
.settings-panel,.review-panel{position:fixed;z-index:100;inset:var(--topbar) 0 0 auto;width:min(520px,100vw);background:rgba(8,9,9,.96);border-left:1px solid var(--line);padding:28px;overflow:auto;transform:translateX(105%);transition:transform .6s var(--ease);box-shadow:-30px 0 100px rgba(0,0,0,.4)}.settings-panel.is-open,.review-panel.is-open{transform:none}.drawer-head{display:flex;justify-content:space-between;align-items:start;border-bottom:1px solid var(--line);padding-bottom:18px;margin-bottom:26px}.drawer-head h2{font-size:42px;margin:0}.settings-panel section{margin-bottom:30px}.settings-panel h3{font-family:var(--mono);font-size:9px;letter-spacing:.13em;text-transform:uppercase}.segmented{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line)}.segmented button{min-height:42px;border:0;border-right:1px solid var(--line);background:none;color:var(--paper);font-size:9px;cursor:pointer}.segmented button:last-child{border:0}.segmented button.is-active{background:var(--gold);color:var(--ink)}.setting-list{border-top:1px solid var(--line)}.setting-list label{display:flex;justify-content:space-between;gap:20px;padding:18px 0;border-bottom:1px solid var(--line);cursor:pointer}.setting-list b,.setting-list small{display:block}.setting-list b{font-size:10px}.setting-list small{font-size:8px;color:var(--paper-soft);margin-top:7px;line-height:1.5}.setting-list input{width:36px;accent-color:var(--gold)}.drawer-note{font-size:7px;letter-spacing:.12em;color:var(--gold-bright)}
.review-panel{width:min(660px,100vw)}.review-intro{font-size:9px;line-height:1.7;color:var(--paper-soft)}.review-filters{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:18px}.review-list{display:grid;gap:10px;padding-bottom:90px}.review-item{border:1px solid var(--line);padding:14px;background:rgba(255,255,255,.018)}.review-item[data-status="approved"]{border-color:rgba(128,176,128,.65)}.review-item[data-status="revise"]{border-color:rgba(218,126,100,.72)}.review-meta{display:flex;justify-content:space-between;gap:10px;font-size:7px;letter-spacing:.13em;text-transform:uppercase;color:var(--gold-bright)}.review-item h3{font-family:var(--mono);font-size:11px;font-weight:700;line-height:1.5;margin:8px 0}.review-item p{font-size:8px;line-height:1.55;color:var(--paper-soft)}.review-actions{display:flex;gap:7px;margin-top:11px}.review-actions button{flex:1;min-height:34px;border:1px solid var(--line);background:none;color:var(--paper);font-size:8px;cursor:pointer}.review-actions .selected{background:var(--gold);border-color:var(--gold);color:var(--ink)}.review-note{width:100%;margin-top:9px;padding:9px;background:rgba(0,0,0,.35);border:1px solid var(--line);color:var(--paper);font-size:8px}.review-footer{position:sticky;bottom:-28px;display:flex;gap:8px;padding:18px 0 28px;background:linear-gradient(0deg,var(--ink) 78%,transparent)}
dialog{border:1px solid var(--line);background:rgba(8,9,9,.97);color:var(--paper);padding:0;box-shadow:0 40px 140px rgba(0,0,0,.7)}dialog::backdrop{background:rgba(0,0,0,.77);backdrop-filter:blur(8px)}.card-dialog{width:min(860px,92vw);max-height:90dvh;overflow:auto}.dialog-close{position:absolute;z-index:2;right:16px;top:16px}.card-dialog[open]{display:grid;grid-template-columns:minmax(220px,.8fr) 1.2fr;gap:34px;padding:34px}.dialog-card{perspective:1400px}.dialog-card .tarot-card{aspect-ratio:2/3}.dialog-copy{align-self:center;padding-right:20px}.dialog-copy h2{font-size:clamp(42px,7vw,76px);line-height:.9;margin-bottom:20px}.dialog-copy p{font-size:10px;line-height:1.8;color:var(--paper-soft)}.dialog-keywords{color:var(--gold-bright)!important;text-transform:uppercase;letter-spacing:.12em;font-size:8px!important}.hand-dialog{width:min(720px,92vw)}.hand-stage{position:relative;display:grid;place-items:center;min-height:560px;text-align:center;padding:50px;overflow:hidden;background:radial-gradient(circle at 50% 45%,rgba(184,149,85,.16),transparent 34%),#050606}.camera-grain{position:absolute;inset:0;opacity:.24;background:repeating-linear-gradient(90deg,transparent 0 8px,rgba(213,180,112,.05) 9px 10px)}.gesture-orbit{position:relative;display:grid;place-items:center;width:230px;height:230px;border:1px dashed var(--gold);border-radius:50%;margin-bottom:30px;animation:orbit 8s linear infinite}.gesture-orbit::before,.gesture-orbit::after{content:"";position:absolute;border:1px solid rgba(213,180,112,.25);border-radius:50%}.gesture-orbit::before{inset:18px}.gesture-orbit::after{inset:52px}.gesture-orbit span{font-size:38px;color:var(--gold-bright)}.hand-stage h3{font-size:34px;margin:5px 0 12px}.hand-stage p:not(.eyebrow){font-size:9px;color:var(--paper-soft)}
.pigeon-flight{position:fixed;z-index:150;inset:0;pointer-events:none;display:none}.pigeon-flight.is-active{display:block}.paper-report{position:absolute;left:50%;top:54%;width:220px;height:130px;background:var(--paper);border:2px solid var(--gold);transform:translate(-50%,-50%);animation:foldReport 1.1s var(--ease) forwards}.paper-pigeon{position:absolute;left:50%;top:51%;font-size:78px;color:var(--paper);opacity:0;text-shadow:0 0 24px var(--gold);animation:flyPigeon 2.2s .9s var(--ease) forwards}.dissolve-layer{position:fixed;z-index:145;inset:0;pointer-events:none;display:none;background:radial-gradient(circle,transparent 0 5%,rgba(184,149,85,.35) 7%,rgba(8,9,9,.98) 34%)}.dissolve-layer.is-active{display:block;animation:dissolve .9s ease-out forwards}.toast{position:fixed;z-index:180;left:50%;bottom:24px;max-width:calc(100vw - 30px);transform:translate(-50%,24px);opacity:0;padding:12px 18px;border:1px solid var(--gold);background:var(--ink);font-size:8px;letter-spacing:.08em;text-transform:uppercase;pointer-events:none;transition:opacity .25s,transform .35s}.toast.is-visible{opacity:1;transform:translate(-50%,0)}.morph-clone{position:fixed;z-index:130;margin:0;pointer-events:none;transform-origin:center;transition:left .75s var(--ease),top .75s var(--ease),width .75s var(--ease),height .75s var(--ease),border-radius .75s var(--ease),opacity .2s .62s;background:var(--gold);mix-blend-mode:screen}

/* Original ceremonial ident: inspired by the reference's pacing, not its assets. */
.click-particle-canvas{position:fixed;z-index:190;inset:0;width:100%;height:100%;pointer-events:none}
.opening-sequence{position:fixed;z-index:400;inset:0;display:grid;place-items:center;overflow:hidden;color:#e8d29d;background:radial-gradient(circle at 50% 46%,#183931 0,#0c201c 24%,#06110f 56%,#020605 100%);transition:opacity .55s cubic-bezier(.16,1,.3,1),filter .55s ease}
.opening-sequence::before,.opening-sequence::after{content:"";position:absolute;inset:-25%;pointer-events:none}
.opening-sequence::before{background:conic-gradient(from 20deg,transparent 0 18%,rgba(212,181,113,.08) 19%,transparent 22% 52%,rgba(235,223,184,.08) 54%,transparent 58%);animation:openingSweep 5.4s ease-in-out both}
.opening-sequence::after{background:radial-gradient(circle,transparent 0 7%,rgba(214,180,111,.12) 8%,transparent 9% 22%,rgba(214,180,111,.06) 23%,transparent 24%);animation:openingBloom 6s ease-in-out both}
.opening-sequence.is-ending{opacity:0;filter:brightness(1.5) blur(8px);pointer-events:none}
#opening-particle-canvas{position:absolute;inset:0;width:100%;height:100%}
.opening-frame{position:absolute;inset:clamp(18px,4vw,55px);opacity:.7}.opening-frame::before,.opening-frame::after{content:"";position:absolute;background:rgba(226,198,136,.38)}.opening-frame::before{left:0;right:0;top:0;height:1px}.opening-frame::after{top:0;bottom:0;left:0;width:1px}.opening-frame i{position:absolute;width:34px;height:34px;border-color:#d5b470}.opening-frame i:nth-child(1){left:0;top:0;border-left:1px solid;border-top:1px solid}.opening-frame i:nth-child(2){right:0;top:0;border-right:1px solid;border-top:1px solid}.opening-frame i:nth-child(3){left:0;bottom:0;border-left:1px solid;border-bottom:1px solid}.opening-frame i:nth-child(4){right:0;bottom:0;border-right:1px solid;border-bottom:1px solid}
.opening-ident{position:relative;width:min(43vw,390px);aspect-ratio:1;filter:drop-shadow(0 0 28px rgba(214,180,112,.32));animation:identArrive 5.1s var(--ease) both}
.ident-orbit{position:absolute;border:1px solid rgba(225,194,128,.65);border-radius:50%}.orbit-a{inset:7%;animation:orbit 9s linear infinite}.orbit-b{inset:22%;border-style:dashed;animation:orbit 6s linear reverse infinite}.ident-crescent{position:absolute;inset:29%;border-radius:50%;background:#dfbc72;box-shadow:0 0 35px rgba(232,198,126,.7)}.ident-crescent::after{content:"";position:absolute;inset:-7% -18% 5% 23%;border-radius:50%;background:#0a1c18}.ident-star{position:absolute;inset:0;display:grid;place-items:center;font-size:clamp(30px,6vw,70px);color:#fff6d8;text-shadow:0 0 25px #d5b470;animation:starPulse 2.4s ease-in-out infinite}.ident-wing{position:absolute;top:45%;width:38%;height:13%;border-top:2px solid #ddbd7b}.ident-wing::before,.ident-wing::after{content:"";position:absolute;inset:0;border-top:1px solid rgba(221,189,123,.75);transform:rotate(15deg);transform-origin:100% 0}.ident-wing::after{transform:rotate(-15deg)}.wing-left{right:75%;transform:rotate(-8deg)}.wing-right{left:75%;transform:scaleX(-1) rotate(-8deg)}
.opening-wordmark{position:absolute;top:calc(50% + min(29vw,255px));text-align:center;letter-spacing:.22em;animation:wordmarkArrive 5.7s var(--ease) both}.opening-wordmark span,.opening-wordmark b,.opening-wordmark small{display:block}.opening-wordmark span{font-family:var(--serif);font-size:clamp(18px,2.3vw,32px);font-weight:400}.opening-wordmark b{margin:9px 0;font-size:11px;letter-spacing:.7em}.opening-wordmark small{font-size:7px;color:rgba(237,218,174,.65)}.opening-skip{position:absolute;right:clamp(24px,4vw,62px);bottom:clamp(22px,4vw,48px);border:0;border-bottom:1px solid rgba(226,198,136,.5);padding:8px 0;background:none;color:#e2c688;font-size:8px;letter-spacing:.16em;cursor:pointer}

/* Live local camera ritual. */
.hand-dialog{width:min(840px,94vw)}.hand-stage{min-height:min(720px,88dvh);padding:44px}.camera-shell{position:relative;width:min(700px,100%);aspect-ratio:16/9;overflow:hidden;border:1px solid rgba(213,180,112,.6);background:radial-gradient(circle,#182b27,#030505 68%);box-shadow:0 0 60px rgba(184,149,85,.12)}
#gesture-video{width:100%;height:100%;object-fit:cover;transform:scaleX(-1);opacity:.55;filter:grayscale(1) contrast(1.35) sepia(.3)}#gesture-analysis-canvas{display:none}.camera-shell::after{content:"";position:absolute;inset:0;box-shadow:inset 0 0 80px #020303;pointer-events:none}.gesture-zones{position:absolute;inset:0;display:grid;grid-template-columns:repeat(3,1fr);pointer-events:none}.gesture-zones i{display:flex;align-items:flex-end;justify-content:center;padding:16px 5px;border-right:1px solid rgba(213,180,112,.2);color:rgba(238,232,218,.38);font-size:7px;letter-spacing:.18em;font-style:normal;transition:background .15s,color .15s}.gesture-zones i:last-child{border-right:0}.gesture-zones i.is-active{background:rgba(213,180,112,.14);color:#f0d89d}.gesture-zones i.is-selected{animation:zoneConfirm .75s ease-out}.gesture-reticle{position:absolute;left:50%;top:50%;display:grid;place-items:center;width:90px;height:90px;border:1px dashed rgba(213,180,112,.55);border-radius:50%;transform:translate(-50%,-50%);animation:orbit 8s linear infinite}.gesture-reticle span{font-size:26px;color:#edce89}.gesture-meter{position:absolute;left:8%;right:8%;bottom:8px;height:2px;background:rgba(255,255,255,.16)}.gesture-meter i{display:block;width:0;height:100%;background:#edce89;box-shadow:0 0 12px #d5b470;transition:width .12s}.gesture-actions{display:flex;justify-content:center;gap:8px;flex-wrap:wrap}.hand-stage>.eyebrow{margin:25px 0 8px}.hand-stage h3{font-size:clamp(24px,4vw,38px);margin:0 0 8px}.hand-stage>p:not(.eyebrow){max-width:630px;line-height:1.6}.hand-stage.is-live .gesture-reticle{border-style:solid;box-shadow:0 0 35px rgba(213,180,112,.18)}

/* Cinematic card emergence: portal, bloom, fan, settle. */
.reveal-cinema{position:fixed;z-index:160;inset:0;display:grid;place-items:center;overflow:hidden;contain:layout paint;background:radial-gradient(ellipse at 50% 63%,rgba(174,122,45,.38),transparent 18%),radial-gradient(circle at 50% 54%,#211b11 0,#060606 42%,#020202 75%);opacity:0;transition:opacity .52s cubic-bezier(.16,1,.3,1)}.reveal-cinema.is-active{opacity:1}.reveal-cinema::before{content:"";position:absolute;left:0;right:0;bottom:-13%;height:40%;border-radius:50%;background:#030303;box-shadow:0 -28px 80px rgba(229,188,98,.28),0 -5px 15px rgba(255,238,185,.4)}#reveal-particle-canvas{position:absolute;inset:0;width:100%;height:100%}.reveal-haze{position:absolute;inset:0;background:linear-gradient(105deg,transparent 36%,rgba(255,235,182,.08) 48%,transparent 58%);mix-blend-mode:screen;animation:revealSweep 4.35s ease-in-out both}.cinema-ribbon{position:absolute;left:-15%;right:-15%;top:52%;height:62px;background:#c39c54;transform:rotate(-5deg) scaleX(0);transform-origin:left;opacity:.65;mix-blend-mode:screen}.is-active .cinema-ribbon{animation:ribbonDraw 3.8s .18s cubic-bezier(.16,1,.3,1) both}.cinema-cards{position:relative;width:min(720px,90vw);height:min(65vh,650px);perspective:1600px}.cinema-card{--spread:0deg;--x:0px;position:absolute;left:50%;top:54%;width:clamp(135px,18vw,230px);aspect-ratio:2/3;transform:translate3d(-50%,46vh,0) rotate(var(--spread)) scale(.7);opacity:0;filter:brightness(.15) blur(2px);transition:transform 1.25s cubic-bezier(.16,1,.3,1),opacity .58s ease,filter 1s ease;transition-delay:calc(var(--i)*.12s);will-change:transform,opacity,filter}.is-active .cinema-card{opacity:1;filter:brightness(1) blur(0);transform:translate3d(calc(-50% + var(--x)),calc(-50% + 15px),0) rotate(var(--spread)) scale(1)}.reveal-cinema.is-completing .cinema-card{opacity:0;filter:brightness(1.25) blur(4px);transform:translate3d(calc(-50% + var(--x)),calc(-50% - 28px),0) rotate(var(--spread)) scale(1.025);transition-duration:.5s;transition-delay:calc(var(--i)*.06s)}.cinema-card:nth-child(1){--x:-220px;--spread:-13deg}.cinema-card:nth-child(2){--x:0px;--spread:0deg;z-index:2}.cinema-card:nth-child(3){--x:220px;--spread:13deg}.cinema-card-inner{position:absolute;inset:0;transform:rotateY(0deg) translateZ(0);transform-style:preserve-3d;transition:transform 1.08s cubic-bezier(.16,1,.3,1);transition-delay:calc(var(--i)*.18s);will-change:transform}.reveal-cinema.is-flipping .cinema-card-inner{transform:rotateY(180deg) translateZ(0)}.cinema-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:5%;backface-visibility:hidden;-webkit-backface-visibility:hidden;transform:translateZ(.1px);box-shadow:0 20px 80px #000,0 0 35px rgba(221,180,91,.25)}.cinema-face{transform:rotateY(180deg) translateZ(.1px)!important}.reveal-cinema>p{position:absolute;bottom:6vh;text-align:center;opacity:0;letter-spacing:.2em}.is-active>p{animation:cinemaCopy 3.85s 1.05s cubic-bezier(.16,1,.3,1) both}.reveal-cinema>p span,.reveal-cinema>p b{display:block}.reveal-cinema>p span{font-family:var(--serif);font-size:clamp(20px,3vw,43px);font-weight:400}.reveal-cinema>p b{margin-top:8px;font-size:9px;letter-spacing:.55em;color:#d5b470}
.hand-stage h3{max-width:720px;font-size:clamp(24px,3.2vw,38px);line-height:1.18;white-space:pre-line}

/* Ordered scene assembly after the ceremonial opening. */
.scene-element{--scene-delay:calc(var(--scene-index,0)*54ms);opacity:0;translate:0 26px;scale:.985;filter:blur(8px);transition:opacity .72s cubic-bezier(.2,.8,.2,1) var(--scene-delay),translate .9s cubic-bezier(.16,1,.3,1) var(--scene-delay),scale .9s cubic-bezier(.16,1,.3,1) var(--scene-delay),filter .78s ease var(--scene-delay);will-change:opacity,translate,scale,filter}
.scene-element[data-scene-kind="card"]{translate:0 36px;scale:.955;filter:blur(10px) brightness(.72)}
.scene-element[data-scene-kind="micro"]{translate:18px 0;filter:blur(4px);transition-duration:.62s,.82s,.82s,.66s}
.scene-element.is-scene-visible{opacity:1;translate:0 0;scale:1;filter:none;will-change:auto}

/* Layered interpretation details. */
.meaning-card small{display:block;margin:-5px 0 15px;color:var(--paper-soft);font-size:7px;line-height:1.55;letter-spacing:.08em;text-transform:uppercase}.meaning-depth{margin-top:18px;padding-top:15px;border-top:1px solid rgba(213,180,112,.22)}.meaning-depth h4,.reading-detail h4,.dialog-meaning-depth b{margin:0 0 7px;color:var(--gold-bright);font-family:var(--mono);font-size:7px;line-height:1.4;letter-spacing:.12em;text-transform:uppercase}.meaning-depth p{margin:0 0 14px!important;font-size:8px!important;line-height:1.65!important}.reading-details{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin:0 0 24px;background:var(--line);border:1px solid var(--line)}.reading-detail{display:grid;grid-template-columns:34px 1fr;gap:12px;padding:18px;background:rgba(8,9,9,.94)}.reading-detail>span{color:var(--gold);font-size:8px;letter-spacing:.12em}.reading-detail p{margin:0;color:var(--paper-soft);font-size:8px;line-height:1.7}.dialog-meaning-depth{display:grid;grid-template-columns:82px 1fr;gap:8px 12px;margin:22px 0;padding:18px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.dialog-meaning-depth p{margin:0!important;font-size:9px!important;line-height:1.65!important}
html[data-motion="off"] *,html[data-motion="off"] *::before,html[data-motion="off"] *::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
html[data-language="en"] .gateway-zh,html[data-language="en"] .brand small{display:none}html[data-language="zh"] [data-i18n]:not([data-i18n="settings"]):not([data-i18n="review"]){font-family:CelestialCJK,"PingFang SC","Microsoft YaHei",var(--mono)}
@keyframes entryDrift{to{transform:scale(1.04) translate3d(1.2%,-1%,0)}}@keyframes ambientDrift{to{transform:scale(1.035) translate3d(-.6%,.4%,0)}}@keyframes orbit{to{transform:rotate(360deg)}}@keyframes dealCard{to{opacity:1;transform:none}}@keyframes panelRise{from{opacity:0;transform:translateY(40px)}}@keyframes foldReport{0%{transform:translate(-50%,-50%) scale(1)}70%{transform:translate(-50%,-50%) scale(.28) rotate(22deg);clip-path:polygon(0 0,100% 50%,0 100%,24% 50%)}100%{opacity:0;transform:translate(-50%,-50%) scale(.18);clip-path:polygon(0 0,100% 50%,0 100%,24% 50%)}}@keyframes flyPigeon{0%{opacity:0;transform:translate(-50%,-50%) rotate(-10deg) scale(.4)}18%{opacity:1}100%{opacity:0;transform:translate(48vw,-55vh) rotate(12deg) scale(1.2)}}@keyframes dissolve{0%{opacity:0;transform:scale(.2)}45%{opacity:1}100%{opacity:0;transform:scale(2)}}
@keyframes entryOrbLeft{0%{opacity:1;translate:-18vw -12vh;scale:1.35}100%{opacity:1;translate:0 0;scale:1}}@keyframes entryOrbRight{0%{opacity:1;translate:22vw 16vh;scale:1.4}100%{opacity:1;translate:0 0;scale:1}}@keyframes entryBackdropResolve{0%{opacity:0;filter:blur(22px) saturate(.3);transform:scale(1.13)}35%{opacity:.25}100%{opacity:.46;filter:blur(0) saturate(1);transform:scale(1)}}@keyframes entryPanelUnfold{0%{opacity:0;clip-path:inset(49% 6% 49% 6%);transform:scaleX(.72);filter:blur(12px)}42%{opacity:1;clip-path:inset(0 6% 0 6%)}100%{opacity:1;clip-path:inset(0);transform:scaleX(1);filter:blur(0)}}@keyframes entryCopyResolve{0%{opacity:0;translate:0 24px;filter:blur(8px)}100%{opacity:1;translate:0 0;filter:blur(0)}}@keyframes entrySealWake{0%{opacity:0;scale:.45;rotate:-90deg;box-shadow:0 0 0 0 rgba(8,9,9,0)}58%{opacity:1;scale:1.12;rotate:8deg;box-shadow:0 0 0 14px rgba(8,9,9,.09)}100%{opacity:1;scale:1;rotate:0deg;box-shadow:0 0 0 0 rgba(8,9,9,0)}}@keyframes deckGather{0%{opacity:0;filter:blur(5px);translate:0 34px;scale:.88}62%{opacity:1;filter:none;scale:1.035}100%{opacity:1;filter:none;translate:0 0;scale:1}}@keyframes slotSettle{0%{opacity:0;translate:0 -14px;scale:1.06;filter:brightness(1.5) blur(2px)}58%{opacity:1;translate:0 3px;scale:.985;filter:brightness(1.1)}100%{opacity:1;translate:0 0;scale:1;filter:none}}
@keyframes openingSweep{0%{opacity:0;transform:rotate(-20deg) scale(.7)}35%{opacity:1}100%{opacity:.3;transform:rotate(70deg) scale(1.05)}}@keyframes openingBloom{0%,18%{opacity:0;transform:scale(.3)}45%{opacity:1}78%{opacity:.7;transform:scale(1.1)}100%{opacity:0;transform:scale(1.6)}}@keyframes identArrive{0%,12%{opacity:0;transform:scale(.08) rotate(-55deg);filter:blur(16px)}42%{opacity:1;transform:scale(1.12) rotate(4deg);filter:blur(0)}70%{transform:scale(1) rotate(0)}100%{opacity:.8;transform:scale(.94)}}@keyframes starPulse{50%{transform:scale(1.28) rotate(20deg);text-shadow:0 0 55px #fff0bd}}@keyframes wordmarkArrive{0%,47%{opacity:0;transform:translateY(20px);letter-spacing:.42em}70%,92%{opacity:1;transform:none}100%{opacity:0}}@keyframes zoneConfirm{0%{box-shadow:inset 0 0 0 #d5b470}40%{box-shadow:inset 0 0 80px rgba(213,180,112,.72)}100%{box-shadow:inset 0 0 0 transparent}}@keyframes revealSweep{0%,15%{opacity:0;transform:translateX(-25%)}55%{opacity:1}100%{opacity:0;transform:translateX(25%)}}@keyframes ribbonDraw{0%{transform:rotate(-5deg) scaleX(0)}45%,75%{transform:rotate(-5deg) scaleX(1)}100%{opacity:0;transform:rotate(-5deg) scaleX(1.15)}}@keyframes cinemaFlip{0%,28%{transform:rotateY(0)}72%,100%{transform:rotateY(180deg)}}@keyframes cinemaCopy{0%,15%{opacity:0;transform:translateY(15px)}42%,80%{opacity:1;transform:none}100%{opacity:0}}
@media(max-width:1100px){.gateway-grid{grid-template-columns:repeat(2,1fr)}.gateway-card{min-height:220px}.arcana-grid{grid-template-columns:repeat(3,1fr)}.book-layout{padding-inline:5vw}.session-card{flex-basis:70vw}}
@media(max-width:700px){:root{--topbar:66px}.topbar{padding:9px 12px}.brand b{font-size:14px}.brand small{font-size:6px}.brand-sigil{width:36px;height:36px}.text-button span{display:none}.text-button{padding:0 10px}.entry-copy{width:90vw;padding:28px 18px}.entry h1{font-size:46px}.gateway-heading{padding-top:34px}.gateway-heading h2{font-size:50px}.gateway-grid{grid-template-columns:1fr;padding-inline:14px}.gateway-card{min-height:170px}.gateway-title{margin-top:24px}.gateway-desc{margin-top:18px}.page-heading{padding:28px 18px 10px}.page-heading h2{font-size:48px}.ritual-board{padding:10px 14px 60px}.question-panel{padding:18px}.deck-fan{transform:scale(.86);margin-inline:-25px}.reading-slots{gap:8px;min-height:210px}.reading-slot{width:29vw}.meaning-panel{width:calc(100% - 20px);padding:18px}.meaning-grid,.reading-details{grid-template-columns:1fr}.inline-heading{display:block}.search-field{width:100%;margin-top:22px}.arcana-grid{grid-template-columns:repeat(2,1fr);padding-inline:14px}.filter-row,.proof-limit{padding-inline:14px}.gallery-shell{grid-template-columns:38px minmax(0,1fr) 38px}.gallery-arrow{width:36px;height:36px}.session-gallery{padding-inline:10vw;gap:20px}.session-card{flex-basis:80vw;grid-template-columns:1fr;min-height:490px}.session-cards{justify-content:center}.book-layout{grid-template-columns:1fr;padding:28px 16px 60px}.chapter-nav{border-right:0;padding-right:0}.chapter-nav h2{font-size:52px}.chapter-nav>div{display:flex;overflow:auto}.chapter-button{flex:0 0 auto;width:auto;padding:10px 14px;border:1px solid rgba(8,9,9,.18)}.chapter-page{padding:24px}.chapter-page h3{font-size:44px}.card-dialog[open]{display:block;padding:22px}.dialog-card{max-width:250px;margin:0 auto 25px}.dialog-copy{padding:0}.dialog-meaning-depth{grid-template-columns:1fr}.settings-panel,.review-panel{padding:20px}.hand-stage{min-height:560px;padding:26px 14px}.camera-shell{width:100%;aspect-ratio:4/5}.gesture-actions .button{flex:1 1 40%}.report-actions .button{flex:1 1 46%}.cinema-card{width:31vw}.cinema-card:nth-child(1){--x:-29vw}.cinema-card:nth-child(3){--x:29vw}.opening-ident{width:min(70vw,320px)}.opening-wordmark{top:calc(50% + min(43vw,210px))}}
@media(max-height:700px) and (min-width:701px){.gateway-heading{padding-top:26px}.gateway-heading h2{font-size:58px;margin-bottom:14px}.gateway-card{min-height:190px}.page-heading{padding-top:28px}.page-heading h2{font-size:58px}.deck-fan{min-height:170px;transform:scale(.78);margin-top:-10px}.reading-slots{min-height:220px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.001ms!important}}

@keyframes deckViewportResolve{0%{opacity:0;clip-path:inset(0 50%);filter:blur(12px)}38%{opacity:.5;clip-path:inset(0 42%)}100%{opacity:1;clip-path:inset(0);filter:none}}
@keyframes deckRibbonResolve{0%{opacity:0;translate:0 72px;scale:.62;rotate:var(--entry-rotate,0deg);filter:blur(8px) brightness(.35)}55%{opacity:1;translate:0 -7px;scale:1.035;filter:blur(0) brightness(1.22)}100%{opacity:1;translate:0 0;scale:1;rotate:0deg;filter:none}}
@keyframes deckSealResolve{0%{opacity:0;translate:-50% -35%;scale:.62;filter:blur(10px)}24%,48%{opacity:1;translate:-50% -50%;scale:1;filter:none}72%{opacity:.8;translate:-50% -60%;scale:.92;filter:blur(1px)}100%{opacity:0;translate:-50% -82%;scale:.7;filter:blur(8px)}}

@media(max-width:700px){.deck-selector{grid-template-columns:38px minmax(0,1fr) 38px;margin:10px -14px 0;min-height:222px}.deck-selector::before{left:37px;width:34px}.deck-selector::after{right:37px;width:34px}.deck-fan{transform:none;margin:0;min-height:218px;padding-block:28px 22px;gap:10px}.deck-choice{flex-basis:82px}.deck-scroll-button{width:32px;height:32px}.deck-position{flex-wrap:wrap;gap:7px}.deck-position small{flex-basis:100%;margin:0;font-size:6px}.reading-slots{margin-top:8px}.chapter-nav{padding:18px}.chapter-button{color:var(--paper);border-color:rgba(238,232,218,.18)}.chapter-button.is-active{border-color:var(--gold-bright)}}
@media(max-height:700px) and (min-width:701px){.deck-selector{min-height:190px;margin-top:0}.deck-fan{transform:none;min-height:184px;margin:0;padding-block:20px 16px}.deck-choice{flex-basis:76px}.reading-slots{margin-top:4px}}

/* Generated 4K Grimoire environment and archival session frames. */
.grimoire .bg-layer{background-image:url(assets/backgrounds/grimoire-celestial-pigeon-4k.webp);background-position:center;background-size:cover}.grimoire .bg-layer::after{background:linear-gradient(90deg,rgba(4,5,5,.84),rgba(4,5,5,.38) 50%,rgba(4,5,5,.38)),linear-gradient(180deg,rgba(0,0,0,.12),rgba(0,0,0,.5))}.chapter-nav{background:linear-gradient(90deg,rgba(4,5,5,.74),rgba(4,5,5,.28));backdrop-filter:blur(6px)}.chapter-page{background:rgba(6,7,7,.84)}
.session-card{position:relative;isolation:isolate;background:linear-gradient(145deg,rgba(20,20,18,.94),rgba(6,7,7,.97));border-color:var(--gold);padding:clamp(28px,4vw,50px);box-shadow:0 28px 80px rgba(0,0,0,.6),inset 0 0 0 8px rgba(238,232,218,.025)}.session-card::before{content:"";position:absolute;z-index:-1;inset:10px;border:1px solid rgba(213,180,112,.35);pointer-events:none}.session-card::after{content:"ARCHIVAL SHEET · 天穹档案";position:absolute;right:18px;top:16px;color:rgba(213,180,112,.72);font-size:6px;letter-spacing:.16em}.session-card.is-new{animation:archivalSheetArrive 1.15s cubic-bezier(.16,1,.3,1) both}.chamber-shortcut{font-family:var(--serif);font-size:17px}.app.is-saving .chamber-shortcut{animation:chamberBeacon 2.4s ease-in-out both}

/* Page-scale Save and Export rituals. */
.app.is-saving .stage,.app.is-exporting .stage{animation:pageRitualContract 2.65s cubic-bezier(.16,1,.3,1) both}.app.is-saving .topbar,.app.is-exporting .topbar{transition:filter .45s,opacity .45s;filter:brightness(.55);opacity:.7}
.save-transition,.export-transition{position:fixed;z-index:175;inset:0;display:none;overflow:hidden;pointer-events:none;background:radial-gradient(circle at 50% 48%,rgba(184,149,85,.12),rgba(3,4,4,.76) 48%,rgba(2,3,3,.96));opacity:0}.save-transition.is-active,.export-transition.is-active{display:block;animation:transitionCurtain 2.8s ease both}.save-light-beam{position:absolute;left:-12%;top:-35%;width:46%;height:145%;rotate:-24deg;background:linear-gradient(90deg,transparent,rgba(255,242,205,.28),rgba(255,242,205,.04),transparent);filter:blur(12px);opacity:0}.save-transition.is-folding .save-light-beam{animation:saveBeam 1.9s ease-out both}#save-trail-canvas{position:absolute;inset:0;width:100%;height:100%}
.save-report-sheet{position:absolute;display:grid;grid-template-columns:1fr auto;align-content:end;gap:5px;padding:18px;background:var(--paper);color:var(--ink);border:1px solid var(--gold);box-shadow:0 24px 80px rgba(0,0,0,.7);overflow:hidden;opacity:1;translate:0 0;scale:1;rotate:0deg;clip-path:inset(0);transition:left .72s var(--ease),top .72s var(--ease),width .72s var(--ease),height .72s var(--ease),translate .72s var(--ease),scale .65s var(--ease),rotate .65s var(--ease),opacity .35s,clip-path .7s var(--ease),filter .5s}.save-report-sheet::before{content:"";position:absolute;inset:8px;border:1px solid rgba(8,9,9,.18)}.save-report-sheet>span,.save-report-sheet>b{position:relative;z-index:2;font-size:7px;letter-spacing:.14em}.save-report-sheet>b{color:#795d2e}.save-report-cards{grid-column:1/-1;display:flex;justify-content:center;height:62%;margin-bottom:8px}.save-report-cards img{height:100%;aspect-ratio:2/3;object-fit:cover;box-shadow:0 6px 18px rgba(0,0,0,.35)}.save-report-cards img+img{margin-left:-7%;rotate:4deg}.save-transition.is-contracting .save-report-sheet{left:50%!important;top:52%!important;width:300px!important;height:190px!important;translate:-50% -50%;filter:brightness(1.08)}.save-transition.is-folding .save-report-sheet{clip-path:polygon(0 0,100% 48%,68% 52%,100% 100%,0 70%,34% 50%);scale:.24;rotate:18deg;opacity:0;filter:brightness(1.8) blur(2px)}
.origami-pigeon{position:absolute;left:50%;top:51%;width:190px;height:130px;translate:-50% -50%;opacity:0;filter:drop-shadow(0 0 24px rgba(229,194,119,.8));transition:left 1.25s cubic-bezier(.2,.75,.2,1),top 1.25s cubic-bezier(.2,.75,.2,1),translate 1.25s cubic-bezier(.2,.75,.2,1),scale 1.25s cubic-bezier(.2,.75,.2,1),rotate 1.25s cubic-bezier(.2,.75,.2,1),opacity .35s,filter .7s}.origami-pigeon i{position:absolute;display:block;background:linear-gradient(145deg,#fff6df,#c8ae78 58%,#6f552f);box-shadow:inset 0 0 0 1px rgba(8,9,9,.16)}.pigeon-body{left:62px;top:52px;width:100px;height:58px;clip-path:polygon(0 38%,35% 4%,61% 24%,100% 6%,78% 48%,100% 69%,57% 64%,30% 100%,18% 61%)}.pigeon-wing{left:35px;top:2px;width:105px;height:82px;transform-origin:72% 78%;clip-path:polygon(100% 100%,0 3%,28% 80%,9% 45%,63% 94%)}.wing-b{scale:-1 1;left:75px;rotate:-8deg;filter:brightness(.78)}.pigeon-star{left:118px;top:63px!important;width:22px;height:22px!important;display:grid!important;place-items:center;background:none!important;color:#3f2d17;font-style:normal;font-size:12px;box-shadow:none!important}.save-transition.is-folding .save-pigeon{opacity:1;animation:pigeonFoldWake .72s cubic-bezier(.16,1,.3,1) both}.save-transition.is-flying .save-pigeon{left:var(--target-x);top:var(--target-y);scale:.24;rotate:12deg;opacity:.1;filter:drop-shadow(0 0 42px #fff0b9)}.save-transition.is-flying .save-pigeon .wing-a{animation:paperWing .32s ease-in-out infinite alternate}.save-destination{position:absolute;left:var(--target-x);top:var(--target-y);translate:-50% -50%;display:grid;place-items:center;width:120px;height:120px;border:1px solid rgba(213,180,112,.5);border-radius:50%;opacity:0;color:var(--gold-bright);text-align:center}.save-destination span{font-size:26px}.save-destination b,.save-destination small{font-size:6px;letter-spacing:.14em}.save-transition.is-flying .save-destination{animation:destinationReceive 1.25s .7s ease-out both}
.export-transition{background:radial-gradient(circle at 50% 50%,rgba(243,211,139,.25),rgba(4,5,5,.93) 45%,#010202)}.export-report-sheet{position:absolute;left:50%;top:50%;width:min(560px,82vw);height:min(330px,48vh);translate:-50% -50%;display:grid;place-items:center;align-content:center;gap:10px;background:linear-gradient(145deg,#f1eadb,#cfc3ac);color:var(--ink);border:2px solid var(--gold);box-shadow:0 0 90px rgba(220,179,90,.28);transition:scale .62s var(--ease),rotate .62s var(--ease),opacity .35s,clip-path .65s var(--ease),filter .5s}.export-report-sheet::before{content:"";position:absolute;inset:13px;border:1px solid rgba(8,9,9,.3)}.export-report-sheet>span,.export-report-sheet>b{font-size:9px;letter-spacing:.18em}.export-report-sheet>b{color:#76592d}.lunar-stamp{position:absolute;right:38px;bottom:32px;display:grid;place-items:center;width:86px;height:86px;border:3px double #a2762f;border-radius:50%;color:#8b6225;font-size:38px;font-style:normal;opacity:0;scale:2.4;rotate:-24deg}.export-transition.is-stamped .lunar-stamp{animation:lunarStamp .62s cubic-bezier(.2,1.5,.4,1) both}.export-transition.is-folding .export-report-sheet{clip-path:polygon(0 0,100% 44%,70% 51%,100% 100%,0 68%,32% 50%);scale:.14;rotate:-16deg;opacity:0;filter:brightness(1.7)}.export-transition.is-folding .export-pigeon{opacity:1;animation:exportPigeonGlow 1.5s cubic-bezier(.16,1,.3,1) both}.export-halo{position:absolute;left:50%;top:50%;width:15vmin;height:15vmin;border-radius:50%;translate:-50% -50%;background:#f2cf7c;opacity:0;box-shadow:0 0 100px #d6a94d}.export-transition.is-folding .export-halo{animation:exportHalo 1.5s ease-out both}.export-transition>p{position:absolute;left:0;right:0;bottom:7vh;text-align:center;font-size:8px;letter-spacing:.28em;color:var(--gold-bright);opacity:0}.export-transition.is-stamped>p{animation:exportCopy 1.9s .35s ease both}

/* Visible Hand Ritual guides, candidate card, and tuning. */
.gesture-card-hud{position:absolute;z-index:4;right:16px;top:16px;display:grid;justify-items:end;gap:10px;pointer-events:none}.gesture-candidate-card{position:relative;width:74px;aspect-ratio:2/3;border:2px solid var(--gold-bright);border-radius:6px;background:url(assets/cards/r1/approved/card-back-lunar-seal.webp) center/cover;box-shadow:0 0 35px rgba(213,180,112,.45);transition:scale .18s,filter .18s}.gesture-candidate-card.is-locking{scale:1.08;filter:brightness(1.25)}.gesture-candidate-card small{position:absolute;left:50%;top:-18px;translate:-50% 0;color:var(--gold-bright);font-size:5px;letter-spacing:.14em;text-shadow:0 1px 5px #000}.gesture-candidate-card span{position:absolute;left:50%;bottom:-23px;translate:-50% 0;width:90px;padding:4px;background:rgba(3,4,4,.86);color:var(--gold-bright);font-size:7px;letter-spacing:.11em}.gesture-picked-cards{display:flex;gap:5px;margin-top:20px}.gesture-picked-cards i{display:grid;place-items:center;width:32px;aspect-ratio:2/3;border:1px solid rgba(213,180,112,.5);background:rgba(3,4,4,.78);background-position:center;background-size:cover;color:rgba(238,232,218,.45);font-size:6px;font-style:normal;transition:scale .25s var(--ease),filter .25s,box-shadow .25s}.gesture-picked-cards i.is-filled{color:transparent;box-shadow:0 0 18px rgba(213,180,112,.48);filter:brightness(1.08);scale:1.04}.gesture-guide{margin:2px 0 9px!important;color:var(--gold-bright)!important;font-size:7px!important;letter-spacing:.09em;text-transform:uppercase}.gesture-tuning{display:grid;grid-template-columns:repeat(2,minmax(190px,1fr));gap:12px;width:min(620px,100%);margin:13px 0 18px}.gesture-tuning label{display:grid;gap:8px;text-align:left;color:var(--paper-soft);font-size:7px;letter-spacing:.1em}.gesture-tuning output{float:right;color:var(--gold-bright)}.gesture-tuning input{width:100%;accent-color:var(--gold)}.gesture-zones i{padding-bottom:24px;text-shadow:0 2px 9px #000}.gesture-zones i:nth-child(2){color:rgba(244,213,145,.78);background:linear-gradient(180deg,transparent 55%,rgba(213,180,112,.1))}.hand-stage.is-live .gesture-card-hud{animation:hudResolve .6s var(--ease) both}

@keyframes pageRitualContract{0%{scale:1;filter:none;opacity:1}30%{scale:.97;filter:brightness(.68) blur(1px)}75%{scale:.94;filter:brightness(.42) blur(3px);opacity:.64}100%{scale:.98;filter:brightness(.68);opacity:.82}}@keyframes transitionCurtain{0%{opacity:0}12%,82%{opacity:1}100%{opacity:0}}@keyframes saveBeam{0%{opacity:0;translate:-25% 0}35%,78%{opacity:1}100%{opacity:0;translate:60% 0}}@keyframes pigeonFoldWake{0%{opacity:0;scale:.18;rotate:-30deg;filter:blur(8px)}60%{opacity:1;scale:1.12;rotate:5deg;filter:none}100%{opacity:1;scale:1;rotate:0}}@keyframes paperWing{to{rotate:14deg;scale:1 .88}}@keyframes destinationReceive{0%{opacity:0;scale:.5;box-shadow:0 0 0 rgba(213,180,112,0)}40%{opacity:1;scale:1.12;box-shadow:0 0 65px rgba(213,180,112,.75)}100%{opacity:0;scale:1.35;box-shadow:0 0 100px rgba(213,180,112,0)}}@keyframes chamberBeacon{0%,18%{background:rgba(8,9,9,.38);box-shadow:none}52%{background:var(--gold);color:var(--ink);box-shadow:0 0 38px var(--gold-bright)}100%{background:rgba(8,9,9,.38);box-shadow:none}}@keyframes archivalSheetArrive{0%{opacity:0;translate:0 70px;scale:.76;filter:blur(12px) brightness(1.7)}55%{opacity:1;translate:0 -8px;scale:1.03;filter:blur(0) brightness(1.18)}100%{opacity:1;translate:0 0;scale:1;filter:none}}@keyframes lunarStamp{0%{opacity:0;scale:2.4;rotate:-24deg;filter:blur(4px)}62%{opacity:1;scale:.86;rotate:-8deg;filter:none}100%{opacity:.95;scale:1;rotate:-10deg}}@keyframes exportPigeonGlow{0%{opacity:0;scale:.12;rotate:-20deg;filter:blur(8px)}55%{opacity:1;scale:1.35;rotate:3deg;filter:drop-shadow(0 0 65px #ffdc87)}100%{opacity:0;scale:3.4;rotate:12deg;filter:drop-shadow(0 0 120px #fff1bd) blur(2px)}}@keyframes exportHalo{0%{opacity:0;scale:.2}48%{opacity:.82;scale:2.8}100%{opacity:0;scale:8}}@keyframes exportCopy{0%,14%{opacity:0;translate:0 14px}38%,76%{opacity:1;translate:0 0}100%{opacity:0}}@keyframes hudResolve{from{opacity:0;translate:16px -8px;filter:blur(6px)}}

@media(max-width:700px){.gesture-card-hud{right:9px;top:9px}.gesture-candidate-card{width:58px}.gesture-tuning{grid-template-columns:1fr;gap:9px}.save-destination{width:82px;height:82px}.save-report-sheet{padding:11px}.export-report-sheet{height:280px}.lunar-stamp{width:68px;height:68px;right:22px;bottom:22px}.session-card::after{right:14px;top:12px}.grimoire .bg-layer{background-position:68% center}}

/* Deck-first Hand Ritual: the camera is an invisible local sensor, never a preview. */
.hand-dialog{width:min(940px,calc(100vw - 24px));max-height:calc(100dvh - 24px);overflow:auto;overscroll-behavior:contain}.hand-stage{min-height:0;padding:clamp(26px,4vw,44px);overflow:hidden}.camera-shell{width:min(820px,100%);height:clamp(280px,45dvh,430px);aspect-ratio:auto;isolation:isolate;background:radial-gradient(circle at 50% 46%,rgba(44,62,52,.82),#070a09 50%,#020303 100%)}
#gesture-video{position:absolute!important;left:0;top:0;width:2px!important;height:2px!important;opacity:0!important;clip-path:inset(50%);pointer-events:none;transform:none!important;filter:none!important}#gesture-analysis-canvas{display:none}.camera-shell::before{content:"";position:absolute;z-index:0;inset:0;background:linear-gradient(90deg,transparent,rgba(213,180,112,.035) 49.8%,rgba(213,180,112,.13) 50%,rgba(213,180,112,.035) 50.2%,transparent),radial-gradient(circle at 50% 50%,rgba(213,180,112,.13),transparent 42%);pointer-events:none}.camera-shell::after{z-index:8;box-shadow:inset 0 0 90px #020303,inset 0 0 0 1px rgba(213,180,112,.08)}
.gesture-deck-heading{position:absolute;z-index:6;left:16px;right:16px;top:13px;display:flex;justify-content:space-between;align-items:center;color:var(--gold-bright);font-size:7px;letter-spacing:.16em}.gesture-deck-heading b{font-size:8px}.gesture-deck-rail{position:absolute;z-index:1;left:50%;top:51%;display:flex;align-items:center;justify-content:center;gap:clamp(5px,1.15vw,12px);width:112%;translate:-50% -50%;opacity:.64;filter:brightness(.72);will-change:translate}.gesture-deck-rail i{display:block;flex:0 0 clamp(54px,8vw,82px);aspect-ratio:2/3;border:1px solid rgba(213,180,112,.46);border-radius:6px;background:url(assets/cards/r1/approved/card-back-lunar-seal.webp) center/cover;box-shadow:0 16px 34px rgba(0,0,0,.65);rotate:calc((var(--rail-index,4) - 4)*2.2deg);transition:opacity .22s,filter .22s}.gesture-deck-rail i:nth-child(1){--rail-index:0;translate:0 28px}.gesture-deck-rail i:nth-child(2){--rail-index:1;translate:0 18px}.gesture-deck-rail i:nth-child(3){--rail-index:2;translate:0 10px}.gesture-deck-rail i:nth-child(4){--rail-index:3;translate:0 4px}.gesture-deck-rail i:nth-child(5){--rail-index:4;opacity:.08}.gesture-deck-rail i:nth-child(6){--rail-index:5;translate:0 4px}.gesture-deck-rail i:nth-child(7){--rail-index:6;translate:0 10px}.gesture-deck-rail i:nth-child(8){--rail-index:7;translate:0 18px}.gesture-deck-rail i:nth-child(9){--rail-index:8;translate:0 28px}.camera-shell[data-browse="left"] .gesture-deck-rail{animation:gestureRailLeft .48s linear infinite}.camera-shell[data-browse="right"] .gesture-deck-rail{animation:gestureRailRight .48s linear infinite}.camera-shell[data-browse="hold"] .gesture-deck-rail{filter:brightness(.55);opacity:.48}
.gesture-card-hud{z-index:5;inset:0;display:block;pointer-events:none}.gesture-candidate-card{position:absolute;left:50%;top:50%;width:clamp(92px,13vw,126px);translate:-50% -50%;padding:0;cursor:pointer;pointer-events:auto;color:var(--paper);transform-origin:center;border:2px solid var(--gold-bright);transition:translate .24s var(--ease),scale .24s var(--ease),filter .2s,box-shadow .2s}.gesture-candidate-card:focus-visible{translate:-50% calc(-50% - 7px);scale:1.035;filter:brightness(1.13)}.gesture-candidate-card.is-locking{translate:-50% -50%;scale:1.09;filter:brightness(1.28);box-shadow:0 0 58px rgba(238,204,129,.72),0 0 0 5px rgba(213,180,112,.1)}.gesture-candidate-card.is-drawing{animation:gestureCandidateDepart .72s cubic-bezier(.16,1,.3,1) both}.gesture-candidate-card small{top:-21px}.gesture-candidate-card span{bottom:-24px}.gesture-candidate-card em{position:absolute;left:50%;bottom:-43px;translate:-50% 0;width:180px;color:rgba(238,232,218,.64);font-size:5px;font-style:normal;letter-spacing:.1em}.gesture-picked-cards{position:absolute;right:16px;top:38px;margin:0;gap:7px}.gesture-picked-cards i{width:clamp(32px,4.7vw,46px);border-color:rgba(213,180,112,.62)}.gesture-picked-cards i.is-filled{box-shadow:0 0 22px rgba(213,180,112,.52)}.gesture-picked-cards i.is-arriving{animation:gestureSlotArrive .72s cubic-bezier(.16,1,.3,1) both}.gesture-reticle{z-index:3;width:clamp(150px,24vw,230px);height:clamp(150px,24vw,230px);border-color:rgba(213,180,112,.3)}.gesture-reticle span{opacity:.28}.gesture-zones{z-index:4}.gesture-zones i{align-items:flex-end;padding-bottom:17px;background:transparent!important}.gesture-zones i.is-active{color:#ffe2a2;text-shadow:0 0 16px #d5b470}.gesture-meter{z-index:7}@media(hover:hover) and (pointer:fine){.gesture-candidate-card:hover{translate:-50% calc(-50% - 7px);scale:1.035;filter:brightness(1.13)}}
.gesture-pointer{position:absolute;z-index:6;left:50%;top:50%;width:54px;height:54px;translate:-50% -50%;opacity:0;pointer-events:none;border:1px solid rgba(255,229,168,.9);border-radius:50%;background:radial-gradient(circle,rgba(255,242,196,.32),rgba(213,180,112,.12) 34%,transparent 68%);box-shadow:0 0 16px rgba(255,226,150,.8),0 0 44px rgba(213,180,112,.48),inset 0 0 15px rgba(255,244,213,.34);transition:left .1s linear,top .1s linear,scale .2s var(--ease),opacity .25s,filter .2s}.gesture-pointer i{position:absolute;left:50%;top:50%;width:8px;height:8px;translate:-50% -50%;border-radius:50%;background:#fff0bd;box-shadow:0 0 12px #fff,0 0 22px #d5b470}.gesture-pointer span{position:absolute;left:50%;top:calc(100% + 7px);translate:-50% 0;width:90px;color:#f5d990;font-size:5px;letter-spacing:.13em;text-align:center;text-shadow:0 1px 5px #000}.hand-stage.is-live .gesture-pointer{opacity:1}.gesture-pointer.is-holding{scale:1.35;filter:brightness(1.35)}.gesture-pointer.is-confirmed{animation:gesturePointerConfirm .72s cubic-bezier(.16,1,.3,1)}
.gesture-sensor-state{display:flex;align-items:center;justify-content:center;gap:10px;max-width:760px;margin:5px auto 0;font-size:6px;line-height:1.45;letter-spacing:.08em}.gesture-sensor-state span{flex:0 0 auto;padding:5px 8px;border:1px solid rgba(213,180,112,.34);color:var(--paper-soft);text-transform:uppercase}.gesture-sensor-state small{color:rgba(238,232,218,.62);font-size:6px;text-align:left}.gesture-sensor-state span[data-state="requesting"]{border-color:#d5b470;color:#f5d990;animation:sensorRequestPulse 1s ease-in-out infinite}.gesture-sensor-state span[data-state="live"]{border-color:#9fd7ae;color:#bceac8;box-shadow:0 0 18px rgba(123,210,149,.18)}.gesture-sensor-state span[data-state="error"]{border-color:#d88970;color:#ffc5b3}.gesture-sensor-state span[data-state="unsupported"]{border-color:#d88970;color:#ffc5b3}
.gesture-draw-clone{position:absolute;z-index:7;perspective:900px;pointer-events:none;transition:left .62s cubic-bezier(.16,1,.3,1),top .62s cubic-bezier(.16,1,.3,1),width .62s cubic-bezier(.16,1,.3,1),height .62s cubic-bezier(.16,1,.3,1),rotate .62s cubic-bezier(.16,1,.3,1),scale .62s cubic-bezier(.16,1,.3,1),opacity .24s}.gesture-draw-clone-inner{position:absolute;inset:0;transform-style:preserve-3d;transition:transform .48s cubic-bezier(.16,1,.3,1)}.gesture-draw-back,.gesture-draw-face{position:absolute;inset:0;border-radius:6%;backface-visibility:hidden;background-position:center;background-size:cover;box-shadow:0 15px 44px rgba(0,0,0,.72),0 0 28px rgba(213,180,112,.46)}.gesture-draw-back{background-image:url(assets/cards/r1/approved/card-back-lunar-seal.webp)}.gesture-draw-face{transform:rotateY(180deg)}.gesture-draw-face.is-reversed{transform:rotateY(180deg) rotate(180deg)}.gesture-draw-clone.is-revealing .gesture-draw-clone-inner{transform:rotateY(180deg)}.gesture-draw-clone.is-settling{opacity:0;scale:.88;filter:brightness(1.35)}
.gesture-guide{max-width:760px!important}.gesture-tuning{margin:11px 0 14px}.gesture-actions .button{min-width:150px}.hand-stage>.eyebrow{margin-top:18px}.hand-stage h3{font-size:clamp(21px,3vw,34px)}
@keyframes gestureRailLeft{from{translate:-48% -50%}to{translate:-54% -50%}}@keyframes gestureRailRight{from{translate:-52% -50%}to{translate:-46% -50%}}@keyframes gestureCandidateDepart{0%{opacity:1;scale:1.09;filter:brightness(1.28)}45%{opacity:.3;scale:.72;filter:brightness(1.8)}100%{opacity:1;scale:1;filter:none}}@keyframes gestureSlotArrive{0%{opacity:.1;scale:.72;filter:brightness(2)}65%{opacity:1;scale:1.14;filter:brightness(1.35)}100%{opacity:1;scale:1.04;filter:brightness(1.08)}}@keyframes gesturePointerConfirm{0%{opacity:1;scale:1.35}50%{opacity:1;scale:2.2;box-shadow:0 0 30px #fff1bd,0 0 90px #d5b470}100%{opacity:.65;scale:1}}@keyframes sensorRequestPulse{50%{filter:brightness(1.5);box-shadow:0 0 18px rgba(213,180,112,.3)}}

/* Cross-device containment and Hand Ritual breakpoints. */
.view,.ritual-board,.book-layout,.gallery-shell,.session-gallery,.arcana-grid,.camera-shell{min-width:0}img,video,canvas,svg{max-width:100%}.hand-dialog .dialog-close{position:sticky;float:right;right:10px;top:10px;margin:10px 10px -52px 0}
@media(max-width:900px){.hand-dialog{width:min(760px,calc(100vw - 20px));max-height:calc(100dvh - 20px)}.camera-shell{height:clamp(280px,42dvh,380px)}.gesture-deck-rail{width:122%}.gesture-deck-rail i{flex-basis:clamp(50px,9vw,70px)}}
@media(max-width:700px){.hand-stage{padding:54px 12px 20px}.camera-shell{height:clamp(250px,39dvh,320px);border-inline:0}.gesture-deck-heading{left:10px;right:10px}.gesture-deck-rail{width:138%;gap:5px}.gesture-deck-rail i{flex-basis:56px}.gesture-candidate-card{width:88px}.gesture-candidate-card em{bottom:-37px;width:155px}.gesture-picked-cards{right:9px;top:35px;gap:4px}.gesture-picked-cards i{width:30px}.gesture-reticle{width:152px;height:152px}.gesture-pointer{width:46px;height:46px}.gesture-zones i{padding:0 2px 13px;font-size:5px;letter-spacing:.08em}.gesture-tuning{width:100%;margin:8px 0 12px}.gesture-tuning label{gap:5px}.gesture-actions{width:100%}.gesture-actions .button{flex:1 1 42%;min-width:0;padding-inline:10px}.gesture-sensor-state{align-items:flex-start;gap:6px}.gesture-sensor-state small{font-size:5px}.hand-stage>.eyebrow{margin:14px 0 6px;font-size:7px}.hand-stage h3{font-size:20px;margin-bottom:6px}.hand-stage>p:not(.eyebrow){font-size:7px}.gesture-guide{font-size:6px!important}}

/* Decorative texture must never intercept Hand Ritual controls. */
.camera-grain{pointer-events:none;user-select:none}

/* Gesture grammar: palm browses, one finger aims, pinch alone confirms. */
.gesture-mode-badge{position:absolute;z-index:7;left:14px;top:14px;display:grid;gap:2px;padding:7px 9px;border:1px solid rgba(213,180,112,.36);background:rgba(3,4,4,.78);text-align:left;pointer-events:none;backdrop-filter:blur(8px)}.gesture-mode-badge b{color:var(--paper);font-size:6px;letter-spacing:.13em}.gesture-mode-badge small{color:rgba(238,232,218,.58);font-size:6px}.gesture-mode-badge[data-mode="palm"]{border-color:#9dc6dd;box-shadow:0 0 22px rgba(116,190,226,.18)}.gesture-mode-badge[data-mode="point"]{border-color:#e3c071;box-shadow:0 0 24px rgba(213,180,112,.24)}.gesture-mode-badge[data-mode="pinch"]{border-color:#b9e8c2;box-shadow:0 0 30px rgba(137,225,156,.32)}.gesture-pointer.is-browsing{border-color:#9fd4ee;box-shadow:0 0 16px rgba(137,207,240,.82),0 0 46px rgba(87,165,204,.42),inset 0 0 15px rgba(226,247,255,.3)}.gesture-pointer.is-pointing{width:46px;height:46px;border-width:2px;box-shadow:0 0 18px rgba(255,226,150,.92),0 0 54px rgba(213,180,112,.64),inset 0 0 16px rgba(255,244,213,.42)}.gesture-pointer.is-pinching{scale:1.32;border-color:#c8ffd1;filter:brightness(1.42);box-shadow:0 0 20px rgba(196,255,207,.95),0 0 66px rgba(129,231,150,.66),inset 0 0 18px rgba(240,255,243,.52)}.camera-shell[data-gesture="point"] .gesture-deck-rail{animation-play-state:paused}.camera-shell[data-gesture="pinch"] .gesture-candidate-card{filter:brightness(1.28)}

.export-transition.is-opening{display:block;animation:exportMenuCurtain 1.1s ease both}.export-transition.is-opening .export-report-sheet{animation:exportMenuSheet 1.1s var(--ease) both}.export-transition.is-opening>p{animation:exportMenuCopy 1.1s ease both}.export-transition.is-rendering{display:block;animation:exportPrepare .42s ease-out both}.export-transition.is-rendering .export-report-sheet{animation:exportSheetBreathe 1.15s ease-in-out infinite alternate}.export-transition.is-error{animation:transitionCurtain 1.25s ease both}.export-transition.is-error .export-report-sheet{filter:grayscale(.7) brightness(.7)}
@keyframes exportMenuCurtain{0%,100%{opacity:0}16%,76%{opacity:1}}@keyframes exportMenuSheet{0%{opacity:0;scale:.78;rotate:-3deg;filter:blur(8px)}38%,76%{opacity:1;scale:1;rotate:0;filter:none}100%{opacity:0;scale:1.04}}@keyframes exportMenuCopy{0%,25%,100%{opacity:0;translate:0 10px}45%,76%{opacity:1;translate:0 0}}@keyframes exportPrepare{from{opacity:0}to{opacity:1}}@keyframes exportSheetBreathe{from{scale:.975;filter:brightness(.92)}to{scale:1.015;filter:brightness(1.12)}}

/* English and Chinese are distinct reading lines in bilingual mode. */
.bilingual-lines{display:inline-flex;flex-direction:column;align-items:inherit;gap:.22em;white-space:normal}.bilingual-lines>[lang="en"],.bilingual-lines>[lang="zh"]{display:block}.bilingual-lines>[lang="zh"]{font-family:CelestialCJK,"PingFang SC","Microsoft YaHei",var(--mono);font-size:.88em;line-height:1.45;letter-spacing:.04em;color:var(--gold-bright)}p.bilingual-lines,.gesture-sensor-state .bilingual-lines{display:flex}.session-copy h3,.session-copy>p,.card-label{white-space:pre-line}.arcana-item small>.bilingual-lines{margin-top:4px}.toast{white-space:pre-line;text-align:center}

@media(max-width:700px){.gesture-mode-badge{left:8px;top:8px;padding:6px}.gesture-mode-badge b,.gesture-mode-badge small{font-size:5px}.bilingual-lines{gap:.15em}}

/* Save/export feedback begins within one frame instead of holding on a blank page. */
@keyframes transitionCurtain{0%{opacity:.12}3%,82%{opacity:1}100%{opacity:0}}
@media(max-width:430px){.brand small{max-width:170px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.top-actions{gap:5px}.icon-button{width:38px;min-height:38px}.camera-shell{height:260px}.gesture-deck-rail{width:158%}.gesture-deck-rail i:nth-child(1),.gesture-deck-rail i:nth-child(9){display:none}.gesture-candidate-card{width:82px}.gesture-picked-cards i{width:27px}.gesture-deck-heading span{max-width:170px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.entry-copy{max-height:calc(100dvh - 24px);overflow:auto}.entry-note{line-height:1.5}}
@media(max-height:620px) and (min-width:701px){.hand-stage{padding:50px 24px 18px}.camera-shell{height:250px}.hand-stage>.eyebrow{margin-top:11px}.hand-stage h3{font-size:21px}.gesture-guide,#gesture-status{margin-bottom:5px!important}.gesture-tuning{margin:5px 0 8px}.gesture-tuning label{gap:4px}}

/* Bilingual type containment: every translation owns a real line and may grow its container. */
.bilingual-lines{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:.26rem;width:auto;min-width:0;max-width:100%;height:auto;white-space:normal;text-align:left;overflow-wrap:anywhere;text-wrap:pretty}
.bilingual-lines>[lang="en"],.bilingual-lines>[lang="zh"]{display:block;width:100%;min-width:0;max-width:100%;margin:0!important;padding:0;line-height:1.35}
.bilingual-lines>[lang="zh"]{font-family:CelestialCJK,"PingFang SC","Microsoft YaHei",var(--mono);font-size:.82em;line-height:1.5;letter-spacing:.035em;color:var(--gold-bright)}
h1.bilingual-lines,h2.bilingual-lines,h3.bilingual-lines,.gateway-title.bilingual-lines{gap:.12em;line-height:1.05}
h1.bilingual-lines>[lang="en"],h2.bilingual-lines>[lang="en"],h3.bilingual-lines>[lang="en"],.gateway-title.bilingual-lines>[lang="en"]{line-height:1.02;text-wrap:balance}
h1.bilingual-lines>[lang="zh"],h2.bilingual-lines>[lang="zh"],h3.bilingual-lines>[lang="zh"]{font-size:.36em;line-height:1.25;letter-spacing:.08em}
.gateway-title.bilingual-lines>[lang="zh"]{font-size:.56em;line-height:1.3;letter-spacing:.07em}
.gateway-heading>.bilingual-lines,.entry-copy>.bilingual-lines,.hand-stage>.bilingual-lines,.meaning-head>.bilingual-lines{align-items:center;text-align:center}
.gateway-card,.question-panel,.meaning-card,.session-card,.session-copy,.chapter-nav,.chapter-page,.setting-list label,.report-options label{min-width:0}
.gateway-title,.gateway-desc,.session-copy h3,.session-copy p,.chapter-page,.chapter-button{max-width:100%;overflow-wrap:anywhere}
html[data-language="bilingual"] .gateway-zh{display:none}
.button.bilingual-lines,.chip.bilingual-lines{align-items:center;text-align:center;min-height:44px;height:auto;padding-block:8px;line-height:1.25}
.button.bilingual-lines>[lang="zh"],.chip.bilingual-lines>[lang="zh"]{font-size:.78em;line-height:1.35}
.chapter-button{display:flex;align-items:center;gap:8px;height:auto;min-height:42px;line-height:1.35}
.chapter-button>.bilingual-lines{flex:1;align-items:flex-start;text-align:left}
.chapter-button>.bilingual-lines>[lang]{line-height:1.35}
.meaning-card .bilingual-lines>span{margin:0!important;text-transform:none}
.meaning-card b>.bilingual-lines{gap:3px}
.meaning-card p.bilingual-lines{line-height:1.6}
.meaning-card p.bilingual-lines>[lang]{font-size:1em;line-height:1.65;text-transform:none;letter-spacing:normal;color:inherit}
.setting-list label>span{min-width:0}.setting-list label b,.setting-list label small{overflow-wrap:anywhere}
.setting-list .volume-setting{display:grid;grid-template-columns:minmax(0,1fr) minmax(130px,46%);align-items:center}.setting-list .volume-setting input{width:100%;accent-color:var(--gold)}
.audio-state{margin:12px 0 0;padding:8px 10px;border:1px solid rgba(213,180,112,.25);color:var(--paper-soft);font-size:7px;line-height:1.5;letter-spacing:.08em}.audio-state[data-state="running"]{border-color:rgba(146,211,160,.48);color:#bceac8}.audio-state[data-state="suspended"]{border-color:rgba(221,185,110,.62);color:var(--gold-bright)}
.gesture-sensor-state{flex-wrap:wrap}.gesture-sensor-state>.bilingual-lines{flex:1 1 240px;align-items:flex-start;text-align:left}
.gesture-sensor-state>.bilingual-lines>[lang]{padding:0;border:0;background:none;color:inherit;text-transform:none;box-shadow:none;animation:none}

/* Gesture browsing gives each newly focused card a directional arrival and ribbon ripple. */
.gesture-candidate-card::after{content:"";position:absolute;inset:-10px;border:1px solid rgba(241,207,133,.75);border-radius:10px;opacity:0;pointer-events:none;box-shadow:0 0 34px rgba(213,180,112,.42)}
.gesture-candidate-card.is-changing{animation:gestureCandidateFocus .44s cubic-bezier(.16,1,.3,1) both}
.gesture-candidate-card.is-changing::after{animation:gestureFocusHalo .44s ease-out both}
.gesture-candidate-card span.is-updating{animation:gestureCounterTick .4s cubic-bezier(.16,1,.3,1) both}
.camera-shell[data-card-shift="right"]{--gesture-shift:28px;--gesture-turn:3deg;--gesture-nudge:-3px}
.camera-shell[data-card-shift="left"]{--gesture-shift:-28px;--gesture-turn:-3deg;--gesture-nudge:3px}
.gesture-deck-rail.is-shifting i{animation:gestureRailRipple .42s cubic-bezier(.16,1,.3,1) both}
.gesture-deck-rail.is-shifting i:nth-child(1){animation-delay:0ms}.gesture-deck-rail.is-shifting i:nth-child(2){animation-delay:18ms}.gesture-deck-rail.is-shifting i:nth-child(3){animation-delay:36ms}.gesture-deck-rail.is-shifting i:nth-child(4){animation-delay:54ms}.gesture-deck-rail.is-shifting i:nth-child(5){animation-delay:72ms}.gesture-deck-rail.is-shifting i:nth-child(6){animation-delay:90ms}.gesture-deck-rail.is-shifting i:nth-child(7){animation-delay:108ms}.gesture-deck-rail.is-shifting i:nth-child(8){animation-delay:126ms}.gesture-deck-rail.is-shifting i:nth-child(9){animation-delay:144ms}
.deck-choice.is-candidate-arriving{animation:deckCandidateArrive .44s cubic-bezier(.16,1,.3,1) both}
.deck-choice[data-arrival="right"]{--gesture-shift:28px}.deck-choice[data-arrival="left"]{--gesture-shift:-28px}
@keyframes gestureCandidateFocus{0%{opacity:.35;translate:calc(-50% + var(--gesture-shift,0px)) -50%;scale:.9;rotate:var(--gesture-turn,0deg);filter:brightness(1.75) blur(2px)}62%{opacity:1;translate:calc(-50% + var(--gesture-nudge,0px)) -50%;scale:1.075;rotate:0deg;filter:brightness(1.35) blur(0)}100%{opacity:1;translate:-50% -50%;scale:1;rotate:0deg;filter:none}}
@keyframes gestureFocusHalo{0%{opacity:0;scale:.72}45%{opacity:1;scale:1.04}100%{opacity:0;scale:1.24}}
@keyframes gestureCounterTick{0%{opacity:.15;translate:-50% 8px;filter:blur(3px)}100%{opacity:1;translate:-50% 0;filter:none}}
@keyframes gestureRailRipple{0%{filter:brightness(.65);transform:translateX(var(--gesture-shift,0px)) scale(.92)}55%{filter:brightness(1.35);transform:translateX(var(--gesture-nudge,0px)) scale(1.045)}100%{filter:brightness(1);transform:translateX(0) scale(1)}}
@keyframes deckCandidateArrive{0%{opacity:.45;translate:var(--gesture-shift,0px) -7px;scale:.94;filter:brightness(1.6) blur(2px)}100%{opacity:1;translate:0 -18px;scale:1.04;filter:brightness(1.16) blur(0)}}

@media(max-width:700px){
  .bilingual-lines{gap:.18rem}
  h1.bilingual-lines>[lang="zh"],h2.bilingual-lines>[lang="zh"],h3.bilingual-lines>[lang="zh"]{font-size:.42em}
  .gateway-title.bilingual-lines{margin-top:20px}.gateway-title.bilingual-lines>[lang="zh"]{font-size:.58em}
  .gateway-desc.bilingual-lines{margin-top:14px}
  .button.bilingual-lines,.chip.bilingual-lines{padding-inline:12px}
  .chapter-nav>div{max-width:100%}.chapter-button{flex:0 0 min(78vw,300px);white-space:normal}
  .gesture-sensor-state>.bilingual-lines{flex-basis:100%}
}

/* Gateway hierarchy stays legible as the collage moves from paper to ink. */
.gateway-heading{isolation:isolate;width:min(920px,94vw);padding-right:clamp(36px,9vw,130px)}
.gateway-heading::before{content:"";position:absolute;z-index:-1;inset:clamp(16px,3vh,34px) 0 4px -4vw;background:linear-gradient(102deg,rgba(7,9,9,.72) 0%,rgba(7,9,9,.5) 54%,rgba(7,9,9,.16) 82%,transparent 100%);border-left:4px solid rgba(221,185,110,.78);box-shadow:0 20px 52px rgba(8,9,9,.24);clip-path:polygon(0 0,96% 0,100% 84%,91% 100%,0 100%);backdrop-filter:blur(1px) saturate(.82)}
.gateway-heading>.eyebrow{width:max-content;max-width:100%;padding:7px 11px 6px;background:rgba(8,9,9,.92);color:var(--paper);font-weight:700;text-shadow:0 1px 5px #000}
.gateway-heading>h2.bilingual-lines,.gateway-heading>p.bilingual-lines{align-items:flex-start;text-align:left}
.gateway-heading h2{margin:18px 0 26px;font-weight:600;color:var(--paper);text-shadow:0 3px 0 rgba(0,0,0,.58),0 10px 30px rgba(0,0,0,.72)}
.gateway-heading h2.bilingual-lines>[lang="en"]{font-weight:600;letter-spacing:-.055em}
.gateway-heading h2.bilingual-lines>[lang="zh"]{width:fit-content;margin-top:8px!important;padding:5px 10px 7px;border:1px solid rgba(224,186,111,.38);background:rgba(8,9,9,.48);color:#e0ba6f;font-weight:800;letter-spacing:.12em;text-shadow:0 2px 8px #000}
.gateway-heading>p:last-child{max-width:720px;font-size:clamp(12px,1.2vw,16px);line-height:1.65;font-weight:700}
.gateway-heading>p.bilingual-lines>[lang]{width:fit-content;padding:3px 8px;background:rgba(8,9,9,.5);box-decoration-break:clone;-webkit-box-decoration-break:clone}
.gateway-heading>p.bilingual-lines>[lang="en"]{color:var(--paper);font-weight:700;text-shadow:0 2px 7px #000}
.gateway-heading>p.bilingual-lines>[lang="zh"]{background:rgba(8,9,9,.6);color:#e0ba6f;font-size:.78em;font-weight:700;text-shadow:0 1px 5px #000}

/* Restart keeps the question and reshuffles only the current draw. */
.restart-draw-control{display:inline-flex;align-items:center;gap:8px;min-height:34px;margin-left:14px;padding:5px 11px;border:1px solid rgba(213,180,112,.44);background:rgba(8,9,9,.54);color:var(--paper);cursor:pointer;font-size:7px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;transition:background .25s,color .25s,transform .25s,border-color .25s}
.restart-draw-control:hover,.restart-draw-control:focus-visible{transform:translateY(-2px);border-color:var(--gold-bright);background:var(--gold);color:var(--ink)}
.restart-draw-control>span:first-child{color:var(--gold-bright);font-size:15px;line-height:1;transition:rotate .45s var(--ease)}
.restart-draw-control:hover>span:first-child{color:inherit;rotate:-180deg}
.restart-draw-control .bilingual-lines{align-items:flex-start;gap:1px;text-align:left}.restart-draw-control .bilingual-lines>[lang="zh"]{font-size:.78em}
.draw-panel.is-restarting,.meaning-panel.is-restarting{pointer-events:none;animation:restartDrawFold .38s cubic-bezier(.4,0,.2,1) both}
@keyframes restartDrawFold{0%{opacity:1;transform:none;filter:none}58%{opacity:.55;transform:scale(.975) translateY(8px);filter:blur(2px) brightness(1.28)}100%{opacity:0;transform:scale(.94) translateY(20px);filter:blur(8px)}}

/* Reading hierarchy: position, card identity, core message, then supporting context. */
.meaning-panel{color:var(--report-white);background:linear-gradient(145deg,rgba(13,15,15,.97),rgba(5,6,6,.98));border-color:rgba(221,185,110,.42)}
.meaning-head{padding-bottom:24px;border-bottom:1px solid rgba(221,185,110,.3)}
.meaning-head>div{min-width:0}
.meaning-head .eyebrow{color:var(--report-white);font-size:clamp(9px,1vw,12px);font-weight:700}
.meaning-head h3{font-size:clamp(38px,5.4vw,70px);font-weight:600;letter-spacing:-.035em;color:var(--report-white);text-shadow:0 6px 28px rgba(0,0,0,.7)}
.meaning-head h3.bilingual-lines{align-items:flex-start;text-align:left;gap:7px}
.meaning-head h3.bilingual-lines>[lang="en"]{color:var(--report-white);font-weight:600;line-height:1}
.meaning-head h3.bilingual-lines>[lang="zh"]{color:var(--report-gold);font-size:.35em;font-weight:800;letter-spacing:.08em;line-height:1.25}
.meaning-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:26px 0;background:transparent}
.meaning-card{position:relative;display:flex;flex-direction:column;padding:0;overflow:hidden;border:1px solid rgba(221,185,110,.32);background:linear-gradient(180deg,rgba(25,27,26,.98),rgba(9,10,10,.98));box-shadow:0 20px 48px rgba(0,0,0,.28)}
.meaning-card::before{content:"";position:absolute;inset:0 0 auto;height:3px;background:linear-gradient(90deg,var(--report-gold),transparent 72%)}
.meaning-card-head{position:relative;padding:24px 22px 20px;border-bottom:1px solid rgba(221,185,110,.22);background:linear-gradient(135deg,rgba(221,185,110,.09),transparent 62%)}
.meaning-card-number{position:absolute;right:18px;top:16px;margin:0!important;color:rgba(221,185,110,.36)!important;font-family:var(--serif);font-size:34px!important;line-height:1!important;letter-spacing:-.04em!important}
.meaning-card-position{margin:0 52px 17px 0;color:var(--report-gold);font-size:9px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}
.meaning-card-position>.bilingual-lines{gap:2px;margin:0!important;font-size:inherit;letter-spacing:inherit;text-transform:inherit}
.meaning-card-position [lang="en"]{color:var(--report-white);font-size:1em;font-weight:800}
.meaning-card-position [lang="zh"]{color:var(--report-gold);font-size:.82em;font-weight:700}
.meaning-card-name{margin:0 0 14px;font-family:var(--serif);font-size:clamp(36px,4vw,56px);font-weight:800;line-height:.98;letter-spacing:-.03em}
.meaning-card-name>.bilingual-lines{gap:5px;margin:0!important;font-size:inherit;letter-spacing:inherit;text-transform:none}
.meaning-card-name [lang="en"]{color:var(--report-white);font-size:1em;font-weight:800;line-height:1}
.meaning-card-name [lang="zh"]{color:var(--report-gold);font-family:var(--mono);font-size:.44em;font-weight:800;line-height:1.25;letter-spacing:.08em}
.meaning-card-keywords{margin:0;color:var(--report-muted);font-size:10px;line-height:1.6;letter-spacing:.06em}
.meaning-card-keywords>.bilingual-lines{gap:3px;margin:0!important;font-size:inherit;letter-spacing:inherit;text-transform:none}
.meaning-card-keywords [lang="en"]{color:var(--report-white);font-size:1em;font-weight:700}
.meaning-card-keywords [lang="zh"]{color:var(--report-gold);font-size:.82em;font-weight:600}
.meaning-core{padding:22px;background:rgba(255,255,255,.025)}
.meaning-core h5,.meaning-depth-item h5{display:grid;grid-template-columns:max-content minmax(44px,1fr);align-items:center;column-gap:18px;margin:0 0 18px;font-family:var(--mono);font-size:clamp(16px,1.5vw,22px);line-height:1.25;letter-spacing:.08em;text-transform:none;font-weight:800}
.meaning-card-name,.meaning-core h5,.meaning-depth-item h5,.reading-detail h4{min-width:0;overflow-wrap:anywhere}
.meaning-depth-item h5{grid-template-columns:minmax(0,1fr)}.meaning-depth-item h5::after{display:none}
.meaning-core h5::after,.meaning-depth-item h5::after{content:"";height:1px;background:linear-gradient(90deg,var(--report-gold),rgba(221,185,110,.45) 56%,rgba(221,185,110,.06));box-shadow:0 0 8px rgba(221,185,110,.18)}
.meaning-core h5>.bilingual-lines,.meaning-depth-item h5>.bilingual-lines{margin:0!important;gap:4px;font-size:inherit!important;line-height:inherit;letter-spacing:inherit;text-transform:none}
.meaning-core h5 [lang="en"],.meaning-depth-item h5 [lang="en"]{color:var(--report-white);font-size:1em!important;font-weight:800;line-height:1.2}
.meaning-core h5 [lang="zh"],.meaning-depth-item h5 [lang="zh"]{color:var(--report-gold);font-size:.68em;font-weight:800}
.meaning-core>p,.meaning-depth-item>p{margin:0!important;font-size:12px!important;line-height:1.8!important;letter-spacing:0!important;text-transform:none!important}
.meaning-core>p>.bilingual-lines,.meaning-depth-item>p>.bilingual-lines{margin:0!important;font-size:inherit;letter-spacing:0;text-transform:none}
.meaning-core p [lang="en"],.meaning-depth-item p [lang="en"]{color:var(--report-white);font-size:1em;font-weight:500}
.meaning-core p [lang="zh"],.meaning-depth-item p [lang="zh"]{color:var(--report-gold);font-size:.88em;font-weight:500}
.meaning-core>p>.bilingual-lines,.meaning-depth-item>p>.bilingual-lines,.meaning-core p [lang],.meaning-depth-item p [lang]{letter-spacing:.1em!important}
.meaning-depth{display:grid;grid-template-columns:1fr 1fr;gap:0;margin:0;padding:0;border-top:1px solid rgba(221,185,110,.22)}
.meaning-depth-item{min-width:0;padding:19px 22px 22px}
.meaning-depth-item+.meaning-depth-item{border-left:1px solid rgba(221,185,110,.18)}
.synthesis{padding:22px 24px;margin:0 0 24px;border-left:3px solid var(--report-gold);background:rgba(221,185,110,.07)}
.synthesis .eyebrow,.reading-detail h4{display:grid;grid-template-columns:max-content minmax(24px,1fr);align-items:center;gap:14px}.synthesis .eyebrow::after,.reading-detail h4::after{content:"";height:1px;background:linear-gradient(90deg,var(--report-gold),rgba(221,185,110,.08))}
.synthesis .eyebrow [lang="en"],.reading-detail h4 [lang="en"],.reading-detail p [lang="en"]{color:var(--report-white);font-weight:700}
.synthesis .eyebrow [lang="zh"],.reading-detail h4 [lang="zh"],.reading-detail p [lang="zh"]{color:var(--report-gold)}
.synthesis p:last-child{margin-bottom:0;color:var(--report-white);font-size:13px;line-height:1.8}
.reading-details{gap:12px;background:transparent;border:0}
.reading-detail{grid-template-columns:42px minmax(0,1fr);padding:20px;border:1px solid rgba(221,185,110,.24);background:rgba(255,255,255,.025)}
.reading-detail>span{color:var(--report-gold);font-family:var(--serif);font-size:24px;line-height:1}
.reading-detail h4{margin:0 0 10px;font-size:clamp(10px,1vw,12px);line-height:1.4;font-weight:800}.reading-detail p{color:var(--report-white);font-size:11px}
.meaning-panel [lang="en"]{color:var(--report-white)}
.meaning-panel [lang="zh"]{color:var(--report-gold)}

/* Approved gold-rule hierarchy shared by kept readings and output ceremonies. */
.session-copy h3{font-weight:700;margin-bottom:18px}.session-copy h3::after{content:"";display:block;width:100%;height:1px;margin-top:16px;background:linear-gradient(90deg,var(--gold-bright),rgba(213,180,112,.35) 62%,transparent)}
.session-summary-label{margin:0 0 10px!important;font-size:10px!important;font-weight:800;line-height:1.35!important}.session-summary-label [lang="en"]{color:var(--paper);font-weight:800}.session-summary-label [lang="zh"]{color:var(--gold-bright);font-size:.78em}.session-copy .session-summary{font-size:11px;line-height:1.75;color:var(--paper-soft)}

/* One active layer at a time: Choose → Draw → Reveal → Meaning. */
.ritual-stage-rail{display:grid;grid-template-columns:repeat(4,1fr);margin:0 0 18px;border:1px solid rgba(213,180,112,.24);background:rgba(3,4,4,.55)}
.ritual-stage-rail span{position:relative;padding:9px 11px;color:rgba(238,232,218,.42);font-size:7px;line-height:1.35;letter-spacing:.1em;text-transform:uppercase;border-right:1px solid rgba(213,180,112,.15);transition:color .35s,background .35s,box-shadow .35s}.ritual-stage-rail span:last-child{border-right:0}.ritual-stage-rail small{color:inherit;font-size:6px}.ritual-stage-rail span.is-active{color:#f8e2a7;background:linear-gradient(90deg,rgba(213,180,112,.2),rgba(213,180,112,.04));box-shadow:inset 0 -2px var(--gold-bright),0 0 24px rgba(213,180,112,.12)}
.draw-panel[data-stage="choose"] .deck-selector{filter:brightness(1.12);box-shadow:0 0 54px rgba(213,180,112,.17)}
.draw-panel[data-stage="draw"] .reading-slots{filter:brightness(1.16) drop-shadow(0 0 20px rgba(213,180,112,.2))}
.draw-panel[data-stage="reveal"] .reading-slots{filter:brightness(1.22);animation:readingSlotsReady 1.8s ease-in-out infinite alternate}.draw-panel[data-stage="reveal"] .deck-selector{opacity:.48;filter:brightness(.6);pointer-events:none}
.draw-panel[data-stage="meaning"] .deck-selector,.draw-panel[data-stage="meaning"] .deck-position{opacity:.26;filter:brightness(.5);pointer-events:none}
@keyframes readingSlotsReady{to{filter:brightness(1.38) drop-shadow(0 0 34px rgba(213,180,112,.42))}}
.save-report-sheet>span{display:flex;align-items:center;gap:9px;font-weight:800}.save-report-sheet>span::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,#a77b35,transparent)}
.export-report-sheet>span{display:flex;align-items:center;gap:12px;font-weight:800}.export-report-sheet>span::before,.export-report-sheet>span::after{content:"";width:68px;height:1px;background:linear-gradient(90deg,transparent,#a2762f)}.export-report-sheet>span::after{background:linear-gradient(90deg,#a2762f,transparent)}

/* Frequent gesture browsing responds quickly and remains interruptible. */
.gesture-candidate-card.is-changing{animation-duration:.34s;animation-timing-function:var(--ease)}
.gesture-candidate-card.is-changing::after{animation-duration:.4s}
.gesture-candidate-card span.is-updating{animation-duration:.24s}
.camera-shell[data-card-shift="right"]{--gesture-shift:28px;--gesture-turn:3deg;--gesture-counterturn:0deg;--gesture-nudge:-2px}
.camera-shell[data-card-shift="left"]{--gesture-shift:-28px;--gesture-turn:-3deg;--gesture-counterturn:0deg;--gesture-nudge:2px}
.gesture-deck-rail.is-shifting i{animation-duration:.32s;animation-timing-function:var(--ease)}
.gesture-deck-rail.is-shifting i:nth-child(1){animation-delay:0ms}.gesture-deck-rail.is-shifting i:nth-child(2){animation-delay:10ms}.gesture-deck-rail.is-shifting i:nth-child(3){animation-delay:20ms}.gesture-deck-rail.is-shifting i:nth-child(4){animation-delay:30ms}.gesture-deck-rail.is-shifting i:nth-child(5){animation-delay:40ms}.gesture-deck-rail.is-shifting i:nth-child(6){animation-delay:50ms}.gesture-deck-rail.is-shifting i:nth-child(7){animation-delay:60ms}.gesture-deck-rail.is-shifting i:nth-child(8){animation-delay:70ms}.gesture-deck-rail.is-shifting i:nth-child(9){animation-delay:80ms}
.camera-shell[data-browse="left"] .gesture-deck-rail,.camera-shell[data-browse="right"] .gesture-deck-rail{animation-duration:.48s}
.deck-choice.is-candidate-arriving{animation-duration:.34s;animation-timing-function:var(--ease)}
.deck-choice[data-arrival="right"]{--gesture-shift:28px}.deck-choice[data-arrival="left"]{--gesture-shift:-28px}
@keyframes gestureCandidateFocus{0%{opacity:.45;translate:calc(-50% + var(--gesture-shift,0px)) -50%;scale:.96;rotate:var(--gesture-turn,0deg);filter:brightness(1.25) blur(1px)}100%{opacity:1;translate:-50% -50%;scale:1;rotate:0deg;filter:none;box-shadow:0 0 35px rgba(213,180,112,.45)}}
@keyframes gestureFocusHalo{0%{opacity:.65;scale:.92}100%{opacity:0;scale:1.18}}
@keyframes gestureCounterTick{0%{opacity:.3;translate:-50% 6px}100%{opacity:1;translate:-50% 0}}
@keyframes gestureRailRipple{0%{opacity:.55;filter:brightness(.75);transform:translateX(var(--gesture-shift,0px)) scale(.96)}100%{opacity:1;filter:brightness(1);transform:translateX(0) scale(1)}}
@keyframes deckCandidateArrive{0%{opacity:.5;translate:var(--gesture-shift,0px) -8px;scale:.96;filter:brightness(1.15) blur(1px)}100%{opacity:1;translate:0 -18px;scale:1.04;filter:brightness(1.16)}}

@media(max-width:900px){.meaning-grid{grid-template-columns:1fr}.meaning-card{display:grid;grid-template-columns:minmax(220px,.72fr) minmax(0,1.28fr)}.meaning-card-head{grid-row:1/3}.meaning-depth{grid-column:2}.meaning-core{grid-column:2}}
@media(max-width:700px){
  .gateway-heading{width:100%;padding:30px 18px 24px}.gateway-heading::before{inset:12px 0 0;background:linear-gradient(180deg,rgba(7,9,9,.72),rgba(7,9,9,.42));clip-path:none;border-left:0;border-top:3px solid rgba(221,185,110,.72)}
  .gateway-heading h2{font-size:clamp(42px,13vw,62px)}.gateway-heading>p:last-child{font-size:11px}
  .meaning-head h3{font-size:clamp(34px,11vw,52px)}.meaning-grid{gap:12px}
  .meaning-card{display:flex}.meaning-card-head{padding:21px 18px 18px}.meaning-core,.meaning-depth-item{padding:18px}.meaning-depth{grid-template-columns:1fr}.meaning-depth-item+.meaning-depth-item{border-left:0;border-top:1px solid rgba(221,185,110,.18)}
  .meaning-core h5,.meaning-depth-item h5,.reading-detail h4{grid-template-columns:minmax(0,1fr)}.meaning-core h5::after,.meaning-depth-item h5::after,.reading-detail h4::after{display:none}
  .reading-details{grid-template-columns:1fr}
  .ritual-stage-rail span{padding:8px 5px;font-size:6px}.setting-list .volume-setting{grid-template-columns:1fr}.setting-list .volume-setting input{margin-top:10px}
  .ritual-instruction{flex-wrap:wrap}.restart-draw-control{margin-left:0}
}

.dialog-copy>p:not(.eyebrow):not(.dialog-keywords),.dialog-meaning-depth p{font-size:12px!important;line-height:1.8!important}

/* Two-page local export: one semantic dialog owns options, progress, and persistent result links. */
.export-dialog{width:min(760px,calc(100vw - 28px));max-height:calc(100dvh - 28px);padding:0;overflow:auto;border:1px solid rgba(221,185,110,.62);background:#090b0b;color:var(--paper);box-shadow:0 34px 110px rgba(0,0,0,.8),0 0 0 1px rgba(238,232,218,.06)}
.export-dialog::backdrop{background:rgba(2,3,3,.72);backdrop-filter:blur(8px)}
.export-dialog-frame{position:relative;padding:clamp(28px,5vw,52px);background:radial-gradient(circle at 84% 8%,rgba(213,180,112,.14),transparent 34%),linear-gradient(145deg,rgba(27,29,28,.98),rgba(7,8,8,.99))}
.export-dialog-frame::before{content:"";position:absolute;inset:12px;border:1px solid rgba(213,180,112,.2);pointer-events:none}
.export-dialog .eyebrow{margin:0 0 15px;color:var(--gold-bright);font-weight:800}
.export-dialog h2{margin:0;font-family:var(--serif);font-size:clamp(40px,7vw,68px);line-height:.98;color:var(--paper);letter-spacing:-.045em}
.export-dialog-lede{max-width:620px;margin:18px 0 28px;color:var(--paper-soft);font-size:10px;line-height:1.75}
.export-dialog-options>label{display:grid;grid-template-columns:auto minmax(0,1fr);gap:5px 12px;align-items:center;padding:18px;border:1px solid rgba(213,180,112,.36);background:rgba(238,232,218,.035);cursor:pointer}
.export-dialog-options input{grid-row:1/3;width:18px;height:18px;accent-color:var(--gold)}
.export-dialog-options label span{color:var(--paper);font-size:10px;font-weight:800;letter-spacing:.06em}.export-dialog-options label small{color:var(--gold-bright);font-size:8px;letter-spacing:.08em}
.export-dialog-note,.export-question-error{margin:11px 0 0;font-size:7px;line-height:1.55;color:var(--paper-soft)}.export-question-error{padding:10px;border-left:2px solid #d4a260;color:#f3dba6;background:rgba(180,103,48,.12)}
.export-dialog-actions,.export-downloads{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}.export-downloads{display:grid;grid-template-columns:1fr;margin-top:22px}
.export-downloads .button{justify-content:flex-start;width:100%;min-height:52px;text-align:left;text-decoration:none}
.export-dialog-progress,.export-dialog-ready,.export-dialog-error{text-align:center}.export-dialog-progress .button{margin-top:18px}.export-dialog-progress>p{margin:16px 0 0;font-size:9px;color:var(--paper)}
.export-progress-mark{position:relative;display:grid;place-items:center;width:92px;height:92px;margin:8px auto;border:1px solid rgba(213,180,112,.5);border-radius:50%;color:var(--gold-bright);font-size:30px;box-shadow:0 0 45px rgba(213,180,112,.18)}.export-progress-mark i{position:absolute;inset:8px;border:1px dashed rgba(238,232,218,.32);border-radius:50%;animation:exportDialogOrbit 5s linear infinite}
.export-ready-mark{margin:0;color:var(--gold-bright);font-size:40px;text-shadow:0 0 24px rgba(213,180,112,.7)}.export-dialog-ready h3,.export-dialog-error h3{margin:8px 0 10px;font-family:var(--serif);font-size:clamp(28px,5vw,44px);color:var(--paper)}.export-dialog-ready>p:not(.export-ready-mark),.export-dialog-error>p{margin:0 auto;max-width:560px;color:var(--paper-soft);font-size:9px;line-height:1.7}.export-dialog-ready .export-dialog-actions,.export-dialog-error .export-dialog-actions{justify-content:center}
.export-dialog[data-phase="rendering"]{width:min(520px,calc(100vw - 28px));background:rgba(7,8,8,.88)}.export-dialog[data-phase="rendering"] .export-dialog-frame{padding-block:32px}.export-dialog[data-phase="rendering"] .eyebrow,.export-dialog[data-phase="rendering"] h2,.export-dialog[data-phase="rendering"] .export-dialog-lede{display:none}
@keyframes exportDialogOrbit{to{rotate:360deg}}
@media(max-width:560px){.export-dialog-frame{padding:34px 22px}.export-dialog h2{font-size:42px}.export-dialog-actions{display:grid;grid-template-columns:1fr}.export-dialog-actions .button{width:100%}.export-downloads .button{font-size:7px;line-height:1.5;white-space:normal}}

.offline-settings{padding:18px;border:1px solid rgba(213,180,112,.3);background:rgba(213,180,112,.045)}.offline-settings h3{margin:0 0 10px}.offline-settings>p{margin:0 0 10px;color:var(--paper);font-size:8px;line-height:1.55}.offline-settings>p[data-state="ready"]{color:var(--status-success)}.offline-settings>p[data-state="error"]{color:var(--status-error)}.offline-settings>small{display:block;margin-top:12px;color:var(--paper-soft);font-size:7px;line-height:1.6}.offline-progress{height:3px;margin:12px 0 15px;overflow:hidden;background:rgba(238,232,218,.12)}.offline-progress i{display:block;width:0;height:100%;background:linear-gradient(90deg,var(--gold),var(--gold-bright));box-shadow:0 0 12px rgba(213,180,112,.55);transition:width .3s ease}.offline-actions{display:flex;flex-wrap:wrap;gap:8px}.offline-actions .button{flex:1 1 190px;min-width:0;font-size:7px}
.install-settings{padding:18px;border:1px solid rgba(213,180,112,.2)}.install-settings .button{width:100%;font-size:7px}.install-settings p{margin:12px 0 0;color:var(--paper-soft);font-size:8px;line-height:1.6}.install-settings p span{color:var(--gold-bright)}
.diagnostic-settings{padding:18px;border:1px solid rgba(213,180,112,.2);background:rgba(3,4,4,.24)}.diagnostic-settings summary{cursor:pointer;color:var(--paper);font-size:9px;font-weight:800;letter-spacing:.06em}.diagnostic-settings>p{margin:10px 0 0;color:var(--paper-soft);font-size:7px;line-height:1.6}.diagnostic-settings>p+ p{margin-top:2px;color:var(--gold-bright)}.diagnostic-settings pre{max-height:210px;margin:14px 0;padding:12px;overflow:auto;border:1px solid rgba(213,180,112,.16);background:#040505;color:#d8d5cd;font:6px/1.65 JetBrains,monospace;white-space:pre-wrap;word-break:break-word}
.reflection-disclaimer{display:flex;flex-direction:column;gap:4px;margin:18px 0 24px;padding-top:14px;border-top:1px solid rgba(221,185,110,.24);color:var(--report-muted);font-size:7px;line-height:1.5;letter-spacing:.06em}.reflection-disclaimer span{color:var(--report-gold);font-family:CelestialCJK,"PingFang SC",sans-serif}

/* Hand Ritual: readable local-camera state, restrained ceremony, immediate touch response. */
.hand-dialog[open]{animation:handDialogEnter .24s var(--ease)}
.hand-stage{background:radial-gradient(circle at 50% 26%,rgba(213,180,112,.12),transparent 31%),linear-gradient(155deg,rgba(18,20,19,.98),rgba(5,6,6,.99))}
.hand-stage::before{content:"";position:absolute;inset:12px;border:1px solid rgba(213,180,112,.2);pointer-events:none}
.camera-shell{border-color:rgba(221,185,110,.74);box-shadow:0 28px 80px rgba(0,0,0,.5),inset 0 0 0 1px rgba(238,232,218,.045)}
.hand-stage>.eyebrow{margin:0 0 8px;color:var(--gold-bright);font-size:9px;font-weight:800}
.hand-stage h3{max-width:720px;margin:0;font-size:clamp(29px,3.2vw,42px);line-height:1.04}
.gesture-guide{max-width:720px;margin:8px 0 12px!important;color:var(--paper)!important;font-size:8px!important;line-height:1.65;letter-spacing:.08em}
#gesture-status{max-width:720px;margin:4px 0 10px;color:var(--paper);font-size:9px;line-height:1.65}
.gesture-sensor-state{display:flex;align-items:center;justify-content:flex-start;gap:10px;width:min(760px,100%);min-height:54px;margin:0 0 14px;padding:10px 12px;border:1px solid rgba(213,180,112,.32);background:rgba(3,4,4,.62);text-align:left}
.gesture-sensor-state span{color:var(--paper);font-size:8px;font-weight:800;line-height:1.45;letter-spacing:.08em}.gesture-sensor-state small{color:var(--paper-soft);font-size:7px;line-height:1.55}
.hand-stage[data-sensor-state="requesting"] .gesture-sensor-state{border-color:rgba(221,185,110,.7);background:rgba(213,180,112,.09)}
.hand-stage[data-sensor-state="live"] .gesture-sensor-state{border-color:rgba(155,202,157,.58);background:rgba(96,146,101,.1)}
.hand-stage[data-sensor-state="error"] .gesture-sensor-state{border-color:rgba(221,145,105,.7);background:rgba(161,82,48,.12)}
.gesture-tuning{margin:10px 0 16px}.gesture-tuning label{font-size:8px;line-height:1.5}.gesture-tuning output{font-size:8px;font-weight:800}.gesture-tuning input{min-height:28px}
.gesture-actions{gap:12px}.gesture-actions .button{min-width:180px;min-height:48px;font-size:8px}
.button:active:not(:disabled){transform:scale(.97)}.icon-button:active,.text-button:active{transform:scale(.95)}.gateway-card:active{transform:scale(.985)}.seal-button:active .seal-mark{transform:scale(.96)}.deck-scroll-button:active:not(:disabled){scale:.94}.gesture-candidate-card:active{scale:.97}
@keyframes handDialogEnter{from{opacity:0;transform:translateY(10px) scale(.97);filter:blur(4px)}to{opacity:1;transform:none;filter:none}}
@media(max-width:700px){#gesture-status{font-size:8px}.gesture-sensor-state{align-items:flex-start;flex-direction:column;gap:3px}.gesture-actions{display:grid;grid-template-columns:1fr;width:100%}.gesture-actions .button{width:100%;min-width:0}.hand-stage h3{font-size:clamp(28px,9vw,38px)}}
