:root{color-scheme:light;--ink:#183a42;--gold:#a27d42;--paper:#f5f2ec}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--paper);font-family:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;font-size:16px;line-height:1.7}button,a{touch-action:manipulation}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid #ac8040;outline-offset:5px}header{max-width:1200px;margin:auto;display:flex;align-items:center;justify-content:space-between;padding:25px 30px;gap:20px}#brand{font-family:Georgia,serif;letter-spacing:.16em;color:var(--ink);text-decoration:none;line-height:1.2;font-size:24px}#brand small{font-size:12px}.preview{font-size:12px;color:#657679}nav{display:flex;justify-content:center;gap:35px;border-block:1px solid #dcded8;position:sticky;top:0;z-index:5;background:#f5f2ecf5}nav button{padding:16px 5px;border:0;background:none;color:#66767a;border-bottom:2px solid transparent}nav button.active{color:var(--ink);border-color:var(--gold)}main{max-width:1140px;margin:auto;padding:38px 25px;min-height:75vh}h1,h2,h3{font-family:Georgia,"Yu Mincho","Hiragino Mincho ProN",serif;font-weight:500;line-height:1.4}h1{font-size:32px;margin:0 0 12px}h2{font-size:25px}h3{font-size:21px;margin:14px 0 8px}p{margin:10px 0 20px}.eyebrow{color:var(--gold);font-size:12px;letter-spacing:.18em}.muted{color:#697b7c;font-size:14px}.deck-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px;margin-top:28px}.deck{background:white;border:1px solid #e3e2dc;border-radius:18px;overflow:hidden}.deck-art{height:330px;display:flex;align-items:center;justify-content:center;gap:0;background:radial-gradient(ellipse at top,#416674,#102b37);overflow:hidden}.deck-art img{height:auto;width:183.75px;max-width:36%;flex-shrink:0;border-radius:9px;box-shadow:0 12px 30px #0005}.deck-art img:first-child{transform:rotate(-13deg) translateX(20px)}.deck-art img:last-child{transform:rotate(13deg) translateX(-20px)}.deck-art img:nth-child(2){z-index:1;width:202.5px;max-width:40%}.trial-art{background:linear-gradient(125deg,#dcece9,#d9e4ed,#f0e4da)}.deck-body{padding:24px}.primary,.secondary{padding:12px 22px;border-radius:30px;border:1px solid var(--ink);display:inline-block}.primary{background:var(--ink);color:#fff}.secondary{background:transparent;color:var(--ink)}.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.future{margin-top:28px;padding:22px;border:1px dashed #b3c3c0;border-radius:15px}.spreads{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.spread{background:white;border:1px solid #deded5;border-radius:16px;padding:20px}.spread p{font-size:14px;min-height:48px}.price{color:var(--gold);font-size:16px}.layout{position:relative;height:220px;max-width:290px;margin:auto;background:radial-gradient(ellipse,#e4ede9,transparent 70%)}.mini{position:absolute;width:30px;height:44px;border:1px solid #c7ad7b;border-radius:4px;background:#203c47 url('assets/back.webp') center/cover;transform:translate(-50%,-50%);box-shadow:0 3px 6px #16303c20}.setup{max-width:700px;margin:auto}.setup .layout{height:260px}label{display:block;margin:20px 0 8px}textarea{width:100%;font:inherit;border:1px solid #a9bbb6;border-radius:12px;padding:16px;min-height:105px;background:#fff;resize:vertical}ol{padding-left:25px}li{margin:7px 0}.ritual{min-height:70vh;border-radius:22px;background:linear-gradient(#163b4e22,#15384788),url('assets/crystal-clearing-wide.webp') center/cover;display:flex;flex-direction:column;align-items:center;justify-content:end;padding:30px;text-align:center;color:#fff}.crystal{border:0;background:none;flex:1;min-height:270px;display:grid;place-items:center}.crystal img{width:160px;max-height:280px;object-fit:contain;filter:drop-shadow(0 0 28px #d9fbff);animation:float 4s ease-in-out infinite}.cleansing{animation:glow 1.3s ease-in-out}.ritual p{text-shadow:0 2px 10px #000}.fan{display:flex;overflow-x:auto;gap:12px;padding:25px 5px 35px;scroll-snap-type:x proximity}.back{flex:0 0 105px;background:none;border:0;padding:0;transition:transform .3s;scroll-snap-align:center}.back img{width:100%;border-radius:8px}.back.selected{transform:translateY(-16px);opacity:.4}.back:disabled{cursor:default}.results-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:25px}.result button{border:0;background:none;padding:0;width:100%}.result img{width:100%;max-width:270px;border-radius:12px;box-shadow:0 8px 20px #19323b30;animation:reveal .7s ease both}.result{text-align:center}.result .muted{margin-top:18px}.history-item{padding:20px 0;border-bottom:1px solid #ccd5d0}dialog{border:0;border-radius:18px;padding:35px;max-width:680px;width:calc(100% - 30px);max-height:90vh;color:var(--ink)}dialog::backdrop{background:#0b263bc9;backdrop-filter:blur(5px)}dialog img{display:block;max-height:45vh;max-width:100%;margin:auto;border-radius:10px}.close{position:sticky;top:0;float:right;border:0;background:#fff;font-size:28px}.badge{font-size:12px;letter-spacing:.1em;color:var(--gold)}footer{text-align:center;font-family:Georgia,serif;font-size:13px;color:#687c7c;padding:30px}@keyframes float{50%{transform:translateY(-12px)}}@keyframes glow{50%{filter:brightness(1.8)}}@keyframes reveal{from{opacity:0;transform:perspective(700px) rotateY(80deg) scale(.8)}to{opacity:1;transform:none}}@media(max-width:650px){header{padding:20px}.preview{max-width:140px}main{padding:28px 18px}h1{font-size:27px}.deck-grid,.spreads{grid-template-columns:1fr}.deck-art{height:285px}.deck-art img{width:157.5px}.deck-art img:nth-child(2){width:180px}.results-grid{grid-template-columns:repeat(2,1fr);gap:17px}.ritual{margin:-10px -8px;min-height:72vh}.layout{height:210px}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.deck-ritual{position:relative;justify-content:space-between;overflow:hidden;min-height:690px}.deck-ritual .eyebrow{color:#fff5da}.shuffle-stage{width:100%;min-height:360px;display:grid;place-items:center}.ritual-stack{position:relative;width:180px;height:260px;border:0;background:none;touch-action:pan-y;cursor:grab;isolation:isolate}.stack-layer{position:absolute;width:100%;height:100%;object-fit:cover;left:calc(var(--layer)*2px);top:calc(var(--layer)*-2px);border:1px solid #dcc89d;border-radius:12px;box-shadow:0 10px 25px #061c3650;transform:rotate(calc((var(--layer) - 2)*2deg));pointer-events:none}.ritual-stack:active{cursor:grabbing}.ritual-copy{width:100%;position:relative;z-index:2}.ritual-actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}.ritual-actions .secondary,.jump-panel .secondary{color:#fff;border-color:#fff;background:#15384788}.ritual-actions .primary,.jump-panel .primary{background:#f4eddb;color:#183a42;border-color:#f4eddb}.ritual-status{min-height:54px}.deck-ritual [hidden]{display:none!important}.mixing .stack-layer{animation:hand-shuffle .65s ease-in-out both;animation-delay:calc(var(--layer)*-50ms)}.purifying .ritual-stack{animation:purify 1.5s ease-in-out}.purifying .shuffle-stage{background:radial-gradient(ellipse,#e7fff866,transparent 60%)}.jump-panel{margin:auto;text-align:center;max-width:420px;padding:20px}.jump-panel .row{justify-content:center}.jump-card{width:155px;max-height:260px;object-fit:contain;border-radius:10px;animation:card-jump .65s ease-out both;box-shadow:0 0 35px #d7fcff88}.deck-ritual button:disabled{cursor:default;opacity:.8}@keyframes hand-shuffle{0%,100%{transform:translateX(0) rotate(calc((var(--layer) - 2)*2deg))}40%{transform:translateX(calc((var(--layer) - 2)*48px)) rotate(calc((var(--layer) - 2)*10deg))}70%{transform:translateX(calc((2 - var(--layer))*18px)) translateY(-12px)}}@keyframes purify{50%{filter:brightness(1.3) drop-shadow(0 0 38px #e2ffff)}}@keyframes card-jump{from{opacity:0;transform:translateY(120px) rotate(-24deg) scale(.7)}70%{transform:translateY(-15px) rotate(4deg)}to{opacity:1;transform:none}}@media(max-width:650px){.deck-ritual{min-height:660px;padding:24px 14px}.ritual-stack{width:155px;height:228px}.shuffle-stage{min-height:330px}}
.draw-reveal{margin:auto;display:grid;justify-items:center;gap:25px;perspective:1100px;padding:25px 0}.flip-card{position:relative;width:min(240px,65vw);aspect-ratio:3/4;transform-style:preserve-3d;transition:transform .8s ease}.flip-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;border-radius:12px;backface-visibility:hidden;-webkit-backface-visibility:hidden}.flip-front{transform:rotateY(180deg)}.turned .flip-card{transform:rotateY(180deg)}.is-jump{animation:card-jump .65s ease-out}.reveal-next{background:#f4eddb;color:#183a42}.drawn-slots{display:flex;gap:6px;max-width:100%;overflow-x:auto;padding:5px}.drawn-slots img{width:32px;height:44px;object-fit:contain}.deck-ritual .mixing .stack-layer:nth-child(odd){animation:split-left .8s ease-in-out}.deck-ritual .mixing .stack-layer:nth-child(even){animation:split-right .8s ease-in-out}@keyframes split-left{45%{transform:translateX(-48px) rotate(-8deg)}75%{transform:translateX(8px)}}@keyframes split-right{45%{transform:translateX(65px) rotate(15deg)}75%{transform:translateX(-8px)}}
.result .share-card{width:auto;max-width:100%;min-height:44px;padding:10px 16px;border:1px solid #a0b6b0;background:#fff;border-radius:8px;font-size:14px;color:var(--ink)}
.reading-share{display:flex;justify-content:center;margin:30px 0 20px}
.card-share{padding:26px;max-width:620px;background:#f7f5f0}
.card-share h2{margin:8px 40px 4px 0;font-size:24px}
.card-share .share-close{position:sticky;top:0;float:right;min-width:44px;min-height:44px;border:1px solid #ccd5d0;border-radius:50%;background:#fff;color:var(--ink);font-size:26px;z-index:1}
.share-intro{margin:0 0 12px;font-size:16px}
.share-status{font-size:14px;min-height:24px;color:#466563}
.card-share .share-preview{max-height:50vh;width:auto;max-width:100%;height:auto;border-radius:5px;box-shadow:0 6px 22px #19323b18}
.share-actions{display:flex;flex-wrap:wrap;gap:10px;margin:20px 0 12px}
.share-actions button,.share-actions a{min-height:44px;margin:0;text-align:center;font-size:16px}
.share-actions a{text-decoration:none;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}
.card-share [hidden]{display:none!important}
.card-share label{font-size:14px}
.card-share .share-copy{font-size:14px;min-height:120px;padding:12px;line-height:1.7}
.share-help{font-size:14px;line-height:1.8;color:#466563;margin-bottom:0}
.share-actions button:disabled{opacity:.5;cursor:wait}
.share-card:focus-visible,.card-share button:focus-visible,.card-share a:focus-visible{outline:3px solid #977b46;outline-offset:3px}
@media(max-width:650px){.card-share{padding:20px}.share-actions>*{flex:1 1 44%}.share-actions .primary{flex-basis:100%}.result .share-card{padding:10px 8px}}
