.sas-magic-modal{width:min(1040px,96vw);max-width:1040px;padding:0;background:#101c24;border:1px solid #d5bb753b;box-shadow:0 32px 120px #0008;border-radius:24px;overflow:auto;color:#e7dfc8}.sas-magic-modal .tiny{color:#bca97a}.magic-stage{position:relative;min-height:760px;isolation:isolate;overflow:hidden;background:#101c24;color:#e7dfc8}.magic-stage:before{content:'';position:absolute;inset:0;z-index:-2;background:radial-gradient(ellipse at 50% 54%,#214948 0%,#172f35 28%,#101c24 63%)}#magic-particles{position:absolute;inset:0;width:100%;height:100%;z-index:2;pointer-events:none}.magic-aurora{position:absolute;inset:10% 10% 0;z-index:-1;background:radial-gradient(ellipse at center,#67b1a00d,transparent 70%);opacity:.7}.magic-stage-top{position:relative;z-index:6;display:flex;align-items:center;gap:16px;padding:24px 32px;font-size:12px;letter-spacing:2px;color:#bcab82}.magic-stage-top>span{margin-right:auto}.magic-audio,.magic-close{border:1px solid #b7a16b38;background:#ffffff04;color:#b8b394;font-size:12px;padding:8px 12px;border-radius:8px;min-height:40px}.magic-close{font-size:24px;width:40px;padding:0;letter-spacing:0}.magic-stage-copy{text-align:center;position:relative;z-index:4;padding:8px 24px}.magic-eyebrow{font-size:10px;letter-spacing:3px;line-height:16px;color:#a99460}.magic-stage-copy h2{font-size:30px;line-height:40px;color:#e8dab8;letter-spacing:2px;margin:16px 0 8px}.magic-stage-copy p{font-size:14px!important;line-height:24px;color:#8aaba6!important;max-width:520px;margin:0 auto;min-height:48px}.magic-card-zone{position:relative;width:100%;height:420px;perspective:1200px;isolation:isolate}.magic-ring{position:absolute;left:50%;top:50%;width:490px;height:490px;color:#bca26740;transform:translate(-50%,-50%) rotateX(64deg);pointer-events:none;z-index:-1}.magic-ring svg{width:100%;height:100%}.ring-inner{width:360px;height:360px;color:#5fa19a66;transform:translate(-50%,-38%) rotateX(64deg) rotateZ(30deg)}.magic-card-control{position:absolute;left:50%;top:50%;width:210px;height:315px;padding:0;border:0;background:none;transform:translate(-50%,-50%);perspective:1000px;z-index:3;touch-action:manipulation;transition:filter .5s var(--curve)}.magic-card-control:focus-visible{outline:2px solid #e1c98a;outline-offset:12px}.magic-card-control:hover{filter:drop-shadow(0 0 18px #b9d9b044)}.magic-turner{display:block;position:relative;width:100%;height:100%;transform-style:preserve-3d;transform:rotateZ(-5deg) translateY(-4px);animation:cardIdle 5s var(--curve) infinite}.magic-card-face{display:block;position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;border-radius:12px;overflow:hidden;box-shadow:0 20px 50px #0007,0 0 28px #799f7330;border:1px solid #a899663d}.magic-card-back{background:#173334}.magic-card-back:before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 50% 50%,#44706844,transparent 70%)}.magic-card-back svg{position:relative;width:100%;height:100%;filter:drop-shadow(0 0 8px #ccb27555)}.magic-card-front{transform:rotateY(180deg)}.magic-card-front img{width:100%;height:100%;object-fit:cover;display:block}.magic-beam{position:absolute;left:calc(50% - 100px);top:10%;width:200px;height:90%;background:linear-gradient(0deg,#77d5bd00,#86d4bd0d 20%,#c6e6b533 80%,#ffffff00);clip-path:polygon(45% 0,55% 0,100% 100%,0 100%);filter:blur(16px);opacity:0;transform-origin:50% 100%;pointer-events:none}.magic-flare{position:absolute;left:50%;top:50%;width:300px;height:400px;background:radial-gradient(ellipse,#e1f3ce66,transparent 68%);transform:translate(-50%,-50%) scale(.3);opacity:0;pointer-events:none;z-index:4}.magic-orbit-dot{position:absolute;width:5px;height:5px;background:#ddc787;border-radius:50%;box-shadow:0 0 18px #dfd1a7;left:calc(50% - 200px);top:60%;pointer-events:none}.orbit-dot-two{left:calc(50% + 160px);top:35%;width:3px;height:3px}.magic-stage-bottom{position:relative;z-index:5;text-align:center;padding:8px 24px 24px}.magic-begin{display:inline-flex;align-items:center;justify-content:center;gap:32px;border:1px solid #d4bb7799;border-radius:8px;background:#c5b077;color:#152b2b;min-height:48px;padding:12px 24px;font-size:14px;font-weight:600;box-shadow:0 0 24px #c1a56818;transition:transform .5s var(--curve),background-color .3s var(--curve),box-shadow .3s var(--curve)}.magic-begin:hover{background:#e1cc97;box-shadow:0 0 36px #c6bb773b;transform:translateY(-2px)}.magic-begin:disabled{opacity:.65;color:#213b36}.magic-begin span{font-size:18px}.magic-skip{display:block;margin:12px auto 0;padding:8px 12px;background:none;color:#8ca29b;font-size:12px;min-height:36px}.magic-skip:hover{color:#dfd2aa}.magic-stage-bottom>p{font-size:10px!important;line-height:16px;color:#758b83!important;margin:16px 0 0}.summoning .magic-turner{animation:cardSummon 5.1s var(--curve) forwards}.summoning .ring-outer{animation:runeAwaken 5.1s var(--curve) forwards;color:#c1a96a99}.summoning .ring-inner{animation:runeCounter 5.1s var(--curve) forwards;color:#83c7b0aa}.summoning .magic-beam{animation:beamAwaken 5.1s var(--curve) forwards}.summoning .magic-flare{animation:flareAwaken 5.1s var(--curve) forwards}.summoning .magic-orbit-dot{animation:orbitGather 4s var(--curve) forwards}.magic-result{background:#101d25;color:#d7d6c3;padding-bottom:24px;animation:magicResultEnter .9s var(--curve) both;--magic-accent:#c9b479}.magic-result[data-animal=whale]{--magic-accent:#adcbd2}.magic-result[data-animal=fox]{--magic-accent:#d0a679}.magic-result[data-animal=owl]{--magic-accent:#b4a0cc}.magic-result-layout{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center;padding:16px 48px 32px}.magic-art-column{position:relative;perspective:1000px;min-width:0}.magic-art-halo{position:absolute;inset:8% -15%;background:radial-gradient(ellipse,#5f8c7328,transparent 70%);pointer-events:none}.magic-portrait.sas-animal{position:relative;max-width:370px;width:100%;aspect-ratio:2/3;margin:0 auto;background:#172d32;border:1px solid #b5a16a88;border-radius:16px;box-shadow:0 24px 50px #0007,0 0 32px #56877318;overflow:hidden;transition:transform .7s var(--curve),box-shadow .5s var(--curve)}.magic-portrait>img{display:block;width:100%;height:100%;object-fit:cover}.portrait-shimmer{position:absolute;inset:-30%;background:linear-gradient(110deg,transparent 40%,#ffffff00 45%,#fff3 50%,#ffffff00 55%,transparent 60%);opacity:0;transform:translateX(-65%);pointer-events:none}.magic-portrait:hover{box-shadow:0 24px 55px #0008,0 0 40px #a6ca7c24}.magic-portrait.touched{animation:portraitPulse 1s var(--curve)}.magic-portrait.touched .portrait-shimmer{animation:portraitShimmer 1s var(--curve)}.magic-art-caption{display:block;text-align:center;font-size:10px;color:#81968a;margin-top:16px;letter-spacing:1px}.magic-result-copy{padding:16px 0}.magic-result-copy .magic-eyebrow{color:var(--magic-accent);font-size:10px;letter-spacing:2px}.magic-result-pre{color:#839b91!important;font-size:12px!important;line-height:20px;margin:24px 0 8px}.magic-result-copy h2{font-size:36px;line-height:48px;font-weight:500;color:#e8dfc5;letter-spacing:3px;margin:0 0 16px}.magic-copy-divider{width:100%;height:1px;background:#8c927340;position:relative;margin:32px 0}.magic-copy-divider span{position:absolute;left:calc(50% - 12px);top:-10px;background:#101d25;padding:0 8px;color:var(--magic-accent);font-size:18px}.magic-result .sas-quote{font-size:20px!important;line-height:36px!important;color:#e1d3af!important;text-align:left;margin:0 0 24px;animation:lineReveal 1s var(--curve) .2s both}.magic-result-note{font-size:14px!important;line-height:24px!important;color:#93a89c!important;margin:0 0 32px}.magic-result-actions{display:flex;flex-direction:column;gap:12px;margin-top:32px}.magic-result-actions .magic-begin{width:100%;font-size:14px}.magic-replay,.magic-journal{background:#ffffff03;border:1px solid #96a5872e;color:#aab5a2;font-size:12px;border-radius:8px;padding:8px 16px;min-height:40px}.magic-replay:hover,.magic-journal:hover{background:#9caf8f14;color:#e5d9b4}.magic-result-disclaimer{font-size:10px!important;line-height:20px!important;color:#728d80!important;margin:24px 0 0}.sas-result-modal .sas-save-preview{color:#b9c7b7;background:#142b2d;border-color:#53746a;margin:16px 32px}.sas-result-modal #sas-download-status{color:#a5baa9;font-size:12px}.sas-result-modal .magic-result-copy #sas-download-status{margin-top:16px}.sas-result-modal .sas-save-preview summary{color:#bdc6ae}.sas-result-modal .sas-save-preview img{max-height:70vh;object-fit:contain}@keyframes cardIdle{0%,100%{transform:rotateZ(-4deg) rotateY(-8deg) translateY(0)}50%{transform:rotateZ(-1deg) rotateY(5deg) translateY(-10px)}}@keyframes cardSummon{0%{transform:rotateY(0) rotateZ(-4deg) translateY(0) scale(1)}25%{transform:rotateY(0) rotateZ(0) translateY(-18px) scale(1.03)}48%{transform:rotateY(12deg) rotateZ(0) translateY(-22px) scale(1.07)}70%{transform:rotateY(180deg) translateY(-14px) scale(1.09)}100%{transform:rotateY(180deg) translateY(0) scale(1.05)}}@keyframes runeAwaken{0%{transform:translate(-50%,-50%) rotateX(64deg) rotateZ(0) scale(1);opacity:.4}50%{opacity:1;transform:translate(-50%,-50%) rotateX(56deg) rotateZ(120deg) scale(1.15)}100%{transform:translate(-50%,-50%) rotateX(52deg) rotateZ(210deg) scale(1.2);opacity:.4}}@keyframes runeCounter{0%{transform:translate(-50%,-38%) rotateX(64deg) rotateZ(30deg);opacity:.5}60%{opacity:1}100%{transform:translate(-50%,-38%) rotateX(60deg) rotateZ(-180deg) scale(1.25);opacity:.4}}@keyframes beamAwaken{0%{opacity:0;transform:scaleX(.5)}40%{opacity:.9;transform:scaleX(1)}75%{opacity:.7}100%{opacity:.15;transform:scaleX(1.3)}}@keyframes flareAwaken{0%,35%{opacity:0;transform:translate(-50%,-50%) scale(.4)}60%{opacity:.65;transform:translate(-50%,-50%) scale(1.6)}100%{opacity:0;transform:translate(-50%,-50%) scale(2)}}@keyframes orbitGather{from{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-100px) translateX(50px) scale(.2)}}@keyframes magicResultEnter{from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes portraitPulse{0%,100%{transform:scale(1)}40%{transform:scale(1.025) rotateY(-3deg)}70%{transform:scale(1.01) rotateY(2deg)}}@keyframes portraitShimmer{0%{opacity:0;transform:translateX(-65%)}35%{opacity:.8}100%{opacity:0;transform:translateX(65%)}}
@media(max-width:900px){.magic-result-layout{gap:24px;padding:8px 32px 24px}.magic-result-copy h2{font-size:30px;line-height:40px}.magic-result .sas-quote{font-size:18px!important;line-height:32px!important}.magic-result-note{font-size:12px!important;line-height:22px!important}.magic-stage{min-height:740px}.magic-result-actions{gap:8px}}
@media(max-width:640px){.sas-magic-modal{width:100%;border-radius:16px;max-height:94dvh}.sas-magic-modal .magic-stage{min-height:690px}.magic-stage-top{padding:16px;gap:8px;font-size:10px;letter-spacing:1px}.magic-audio{font-size:10px;padding:8px;min-height:36px}.magic-close{width:36px;min-height:36px}.magic-stage-copy{padding:8px 16px}.magic-stage-copy h2{font-size:20px;line-height:32px;letter-spacing:1px;margin-top:12px}.magic-stage-copy p{font-size:12px!important;line-height:20px;max-width:270px;min-height:40px}.magic-eyebrow{font-size:9px;letter-spacing:2px}.magic-card-zone{height:355px}.magic-card-control{width:172px;height:258px}.magic-ring{width:360px;height:360px}.ring-inner{width:280px;height:280px}.magic-flare{width:230px;height:320px}.magic-stage-bottom{padding:0 16px 24px}.magic-begin{font-size:12px;padding:12px 16px;min-height:44px;gap:16px}.magic-stage-bottom>p{font-size:9px!important;line-height:16px;max-width:270px;margin:12px auto 0}.magic-skip{font-size:10px}.magic-result-layout{grid-template-columns:1fr;padding:0 24px 24px;gap:24px}.magic-portrait.sas-animal{max-width:250px;border-radius:12px}.magic-result-copy{text-align:center;padding:0}.magic-result-copy .magic-eyebrow{font-size:9px}.magic-result-pre{font-size:10px!important;margin:16px 0 8px}.magic-result-copy h2{font-size:30px;line-height:40px;letter-spacing:2px;margin-bottom:16px}.magic-copy-divider{margin:24px 0}.magic-result .sas-quote{text-align:center;font-size:18px!important;line-height:32px!important;margin-bottom:16px}.magic-result-note{font-size:12px!important;line-height:22px!important;margin-bottom:24px}.magic-result-actions{margin-top:24px}.magic-art-caption{font-size:9px;margin-top:8px}.magic-result-disclaimer{font-size:9px!important;line-height:18px!important}.sas-result-modal .sas-save-preview{margin:16px 24px}.magic-art-halo{inset:0}}
@media(max-height:800px) and (min-width:641px){.magic-stage{min-height:650px}.magic-card-zone{height:330px}.magic-card-control{width:178px;height:267px}.magic-stage-top{padding:16px 24px}.magic-stage-copy h2{font-size:24px;line-height:32px;margin:12px 0 8px}.magic-ring{width:420px;height:420px}.ring-inner{width:300px;height:300px}.magic-result-layout{padding-top:0}.magic-portrait.sas-animal{max-width:290px}.magic-result-copy h2{font-size:30px;line-height:40px}.magic-result-note{margin-bottom:16px}.magic-result-actions{margin-top:16px}}
@media(prefers-reduced-motion:reduce){.magic-turner,.magic-ring,.magic-beam,.magic-flare,.magic-orbit-dot,.magic-result,.magic-portrait,.portrait-shimmer{animation:none!important;transition:none!important}.magic-turner{transform:none}.summoning .magic-turner{transform:rotateY(180deg)}.magic-flare,.magic-beam,#magic-particles{display:none}.magic-portrait{transform:none!important}.magic-result{opacity:1;transform:none}}
/* Editorial card fronts; summoning-stage geometry, back and timing remain unchanged. */
.editorial-result .magic-portrait.sas-animal{border:0;border-radius:2px;padding:0;background:transparent;box-shadow:0 20px 54px #0004;aspect-ratio:2/3;overflow:hidden}.editorial-result .magic-portrait img{width:100%;height:100%;object-fit:contain;border-radius:0}.editorial-result .magic-art-halo{opacity:.25}.editorial-result .portrait-shimmer{opacity:.22}.editorial-result .magic-art-caption{letter-spacing:1px}
.card-attribution{font-size:12px!important;line-height:1.8!important;color:#b3b5a2!important;margin:-8px 0 8px!important}.card-source{font-size:11px;color:#b3b5a2;text-underline-offset:4px}.psychological-glow{margin-top:22px}.psychological-glow h3{font-size:11px;letter-spacing:3px;color:#c2b689;font-weight:400;margin:0 0 10px}.psychological-glow .magic-result-note{font-size:13px;line-height:1.9}.shelf-literary-quote{font-size:13px;line-height:1.8;color:#c5c9b6;max-width:340px;margin:14px auto 8px}.shelf-literary-credit{display:block;font-size:10px;line-height:1.7;color:#a3ad98;margin-bottom:14px}
