:root{color-scheme:dark;--bg:#151f24;--panel:#1b282d;--ink:#f1ede4;--muted:#a4ada9;--gold:#cbb88d;--line:#ffffff1c;font-family:'Malgun Gothic','Apple SD Gothic Neo',sans-serif;background:var(--bg);color:var(--ink)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;min-height:100vh}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit}button:disabled{cursor:default;opacity:.45}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:2px solid var(--gold);outline-offset:4px}a{color:inherit;text-decoration:none}[hidden]{display:none!important}.ambient{position:fixed;z-index:-1;inset:0;background:radial-gradient(ellipse at 50% -10%,#8f876d26,transparent 58%),linear-gradient(180deg,#152126,#131c20);pointer-events:none}.topbar{max-width:1280px;margin:auto;display:flex;align-items:center;justify-content:space-between;padding:25px 48px;border-bottom:1px solid var(--line)}.topbar nav{display:flex;gap:8px}.brand{display:flex;align-items:center;gap:12px;font-family:Georgia,serif;font-size:25px;letter-spacing:5px}.brand-mark{font-size:37px;color:var(--gold);line-height:1}.brand small{display:block;font:8px sans-serif;letter-spacing:2.5px;margin-top:5px;color:var(--gold)}.edition{font-size:9px;letter-spacing:3px;color:var(--muted)}main{max-width:1120px;margin:auto;padding:0 32px;min-height:calc(100vh - 170px)}.step{animation:step-in .7s ease both}.centered{text-align:center;min-height:70vh;display:flex;flex-direction:column;align-items:center;justify-content:center}.welcome{text-align:center;min-height:75vh;padding:9vh 0 50px}.wordmark{display:flex;justify-content:center;font:400 clamp(50px,8vw,86px)/1 Georgia,serif;letter-spacing:.26em;margin-left:.26em;color:#f5efe3}.wordmark span{background:linear-gradient(90deg,var(--gold),#f5efe3 52%,var(--gold));background-size:250% 100%;background-clip:text;color:transparent;animation:ink-in 1.4s ease both}.wordmark span:nth-child(2){animation-delay:.12s}.wordmark span:nth-child(3){animation-delay:.24s}.wordmark span:nth-child(4){animation-delay:.36s}.tagline,.eyebrow{font-size:9px;letter-spacing:3px;color:var(--gold);font-weight:600}.tagline{margin:20px 0 48px;animation:step-in .8s .5s both}h1,h2{font-family:'Batang','Georgia',serif;font-weight:400}.welcome h1{font-size:30px;margin:0 0 12px;animation:step-in .7s .8s both}.lede{color:var(--muted);font-size:12px;line-height:1.8;animation:step-in .7s 1s both}.birth-form{max-width:620px;margin:35px auto 0;display:grid;grid-template-columns:1.5fr 1.1fr .7fr .8fr;gap:13px;text-align:left;animation:step-in .7s 1.15s both}.birth-form label,.admin-form label{font-size:10px;color:#d7dcd8;letter-spacing:.3px}.birth-form input,.birth-form select,.admin-form input,.chat-form textarea{display:block;width:100%;margin-top:8px;background:#ffffff06;color:var(--ink);border:1px solid #ffffff28;border-radius:6px;padding:14px;outline:none}.birth-form select option{color:#182125}.birth-form small{display:block;color:var(--muted);font-size:9px;margin-top:7px;letter-spacing:0}.birth-form .wide{grid-column:1/-1;margin-top:10px}.primary{background:var(--gold);color:#20292b;border:1px solid var(--gold);border-radius:5px;padding:14px 24px;white-space:nowrap;font-size:12px;font-weight:600;transition:background .2s,transform .2s}.primary:hover:not(:disabled){background:#e4d2aa;transform:translateY(-1px)}.primary span{padding-left:17px}.quiet{background:transparent;border:1px solid var(--line);padding:10px 15px;border-radius:5px;font-size:11px}.quiet:hover{border-color:var(--gold)}.centered h1{font-size:35px;line-height:1.55;margin:22px 0 8px}.centered h1 span{color:var(--gold);font-size:23px}.centered p{color:var(--muted)}.button-row{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}.centered .button-row{justify-content:center}.orbit{position:relative;width:95px;height:95px;margin-bottom:35px;border:1px solid #cbb88d38;border-radius:50%;animation:orbit 5s linear infinite}.orbit:after{content:'☾';position:absolute;inset:0;display:grid;place-items:center;color:var(--gold);font:33px Georgia}.orbit i{position:absolute;width:5px;height:5px;border-radius:50%;background:var(--gold);left:45px;top:-3px}.orbit i:nth-child(2){left:1px;top:69px}.orbit i:nth-child(3){left:87px;top:69px}.intro{text-align:center;padding:52px 0 30px}.intro h1{font-size:35px;line-height:1.55;margin:17px 0 12px}.intro p{color:var(--muted);font-size:12px}.ritual{max-width:680px;margin:auto}.question-label{display:block;font-size:11px;margin-bottom:9px}.question-label span{margin-left:8px;color:var(--muted);font-size:10px}#question{width:100%;background:#ffffff05;color:var(--ink);border:1px solid #ffffff25;padding:15px;border-radius:5px;outline:none}#question::placeholder,.chat-form textarea::placeholder{color:#7f8a87}.ritual-meta{display:flex;justify-content:space-between;color:var(--muted);font-size:10px;margin-top:12px}.ritual-meta label{display:flex;gap:6px}.spread-section{max-width:740px;margin:39px auto 35px}.section-line{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.section-line h2{font-size:15px}.section-line>span{font-size:10px;letter-spacing:2px;color:var(--gold)}.spread{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.slot{border:1px dashed #cbb88d40;border-radius:11px;aspect-ratio:2/2.8;max-height:270px;display:flex;align-items:center;justify-content:center;position:relative;background:radial-gradient(ellipse,#cbb88d08,transparent);flex-direction:column;gap:15px}.slot-symbol{font:34px Georgia;color:#cbb88d66}.slot-label{font-size:10px;letter-spacing:4px;color:var(--muted)}.slot.filled{border:0;background:none}.slot img{height:100%;max-width:100%;object-fit:contain;filter:drop-shadow(0 8px 12px #0005);animation:arrive .55s ease-out}.slot img.reversed,.reading-cards img.reversed{transform:rotate(180deg)}.slot .caption{position:absolute;bottom:-24px;font-size:10px;color:#d6d0c1;white-space:nowrap}#status{text-align:center;font-size:12px;color:var(--gold);min-height:20px;margin:40px 0 0}.deck-section{border-top:1px solid var(--line);padding-top:27px;margin-bottom:40px;transition:opacity .6s,transform .6s}.deck-section.departing{opacity:0;transform:translateY(20px)}.deck{display:grid;grid-template-columns:repeat(26,minmax(0,1fr));gap:12px 0;padding:10px 15px 15px 0;min-height:180px}.deck-card{position:relative;border:0;background:none;aspect-ratio:2/3;width:calc(100% + 15px);padding:0;transition:transform .24s,filter .24s;transform-origin:bottom;filter:drop-shadow(-3px 3px 3px #0007)}.deck-card img{display:block;width:100%;border-radius:5px}.deck-card:hover:not(:disabled),.deck-card:focus-visible{transform:translateY(-12px) rotate(-2deg);z-index:3;filter:drop-shadow(0 0 8px #cbb88d66)}.deck-card.chosen{opacity:.08;transform:translateY(5px)}.deck.shuffling .deck-card{animation:shuffle .65s ease-in-out;animation-delay:calc(var(--idx)*3ms)}.deck-note{text-align:center;font-size:10px;color:#8c9793}.completion{text-align:center;padding:30px 0 70px;animation:step-in .8s both}.completion h2{font-size:27px;margin:20px 0 10px}.completion p{color:var(--muted);margin-bottom:28px}.reading-layout{display:grid;grid-template-columns:270px minmax(0,1fr);gap:55px;padding:60px 0 80px}.reading-layout aside{position:sticky;top:25px;align-self:start}.reading-cards{display:flex;gap:8px;margin:22px 0}.reading-cards figure{margin:0;min-width:0;text-align:center}.reading-cards img{width:100%;filter:drop-shadow(0 8px 12px #0006)}.reading-cards figcaption{font-size:8px;color:var(--muted);margin-top:8px;line-height:1.4}.small{font-size:9px}.context-panel{white-space:pre-line;border-left:1px solid var(--gold);padding:12px;margin-top:12px;color:var(--muted);font-size:10px;line-height:1.7}.conversation>h1{font-size:35px;margin:14px 0 30px}.messages{display:flex;flex-direction:column;gap:14px}.message{max-width:90%;padding:18px 20px;border-radius:8px;white-space:pre-wrap;line-height:1.85;font-size:13px}.message.user{align-self:flex-end;background:#cbb88d20;border:1px solid #cbb88d28}.message.assistant{align-self:flex-start;background:#ffffff07;border-left:2px solid var(--gold)}.message.thinking{min-width:150px;min-height:58px}.message.thinking:after{content:'SARO가 읽고 있어요';color:var(--muted);animation:pulse 1.2s infinite}.message.error{color:#eab7a3}.followups{margin-top:30px;border-top:1px solid var(--line);padding-top:24px}.followups p{font-family:Batang,serif}.chips{display:flex;gap:8px;flex-wrap:wrap}.chips button{border:1px solid #cbb88d4a;background:#cbb88d0d;color:#ddd4c1;border-radius:30px;padding:10px 14px;font-size:11px}.chips button:hover,.chips button.used{background:#cbb88d25;border-color:var(--gold)}.chips button.used:after{content:' ✓'}.chat-form{margin-top:28px}.chat-form>label{font-size:11px;color:var(--muted)}.chat-form>div{display:flex;align-items:stretch;gap:9px;margin-top:9px}.chat-form textarea{resize:vertical;margin:0;line-height:1.5}.chat-form small{color:#778481;font-size:9px}.reveal-dialog,.admin-dialog{padding:0;border:0;background:transparent;color:var(--ink);max-height:96dvh}.reveal-dialog{width:min(520px,95vw)}dialog::backdrop{background:#080f15df;backdrop-filter:blur(14px)}.reveal-content{text-align:center;padding:24px 15px;display:flex;flex-direction:column;align-items:center}.reveal-content h2{font-size:23px;margin:15px 0 6px}.reveal-content p{font-size:12px;color:var(--muted)}.flip-card{width:min(260px,52vw);aspect-ratio:2/3;position:relative;padding:0;background:none;border:0;perspective:1200px;animation:summon .6s cubic-bezier(.16,1,.3,1);opacity:1!important}.flipper{display:block;position:absolute;inset:0;transform-style:preserve-3d;transition:transform 850ms cubic-bezier(.22,.8,.25,1)}.flip-card.flipped .flipper{transform:rotateY(180deg)}.face{position:absolute;inset:0;display:block;backface-visibility:hidden;-webkit-backface-visibility:hidden;filter:drop-shadow(0 15px 24px #0008)}.face img{width:100%;height:100%}.face.front{transform:rotateY(180deg)}.face.front img.reversed{transform:rotate(180deg)}.flip-card:not(.flipped):hover{filter:drop-shadow(0 0 16px #dbc49355);animation:pulse 1.8s infinite}.reveal-name{min-height:53px;padding:17px 0 12px;color:var(--gold);font-size:14px}.reveal-content .primary{min-width:235px}.admin-dialog{width:min(680px,94vw);background:var(--panel);border:1px solid #ffffff20;border-radius:10px}.admin-form{padding:28px}.dialog-heading{display:flex;justify-content:space-between;align-items:start}.admin-form h2{font-size:25px;margin:10px 0}.admin-form>p{font-size:11px;color:var(--muted);line-height:1.7}.admin-form>label{display:block;margin-top:13px}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.provider-status{min-height:20px;color:var(--gold)!important}footer{max-width:1120px;margin:0 auto;border-top:1px solid var(--line);padding:24px 32px 35px;display:flex;gap:13px;color:var(--gold);font-size:12px}footer span:last-child{margin-left:auto;color:#84918c;font-size:10px}
@keyframes step-in{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes ink-in{from{opacity:0;background-position:100% 0;filter:blur(8px)}to{opacity:1;background-position:0 0;filter:none}}@keyframes orbit{to{transform:rotate(360deg)}}@keyframes summon{from{transform:translateY(90px) scale(.6) rotate(-10deg);opacity:0}to{transform:none;opacity:1}}@keyframes arrive{from{opacity:0;translate:0 -20px}to{opacity:1;translate:0 0}}@keyframes shuffle{0%,100%{transform:none}50%{transform:translateX(16px) translateY(-10px) rotate(7deg)}}@keyframes pulse{50%{opacity:.45}}
@media(min-width:1101px){.deck-card{max-height:90px}.spread{padding:0 50px}}
@media(min-width:501px) and (max-width:1100px){main{padding-inline:28px}.birth-form{grid-template-columns:1.4fr 1.2fr}.birth-form .wide{grid-column:1/-1}.deck{grid-template-columns:repeat(13,minmax(0,1fr));gap:12px 0;padding-right:10px}.deck-card{width:calc(100% + 10px);max-height:105px}.spread{padding:0 35px}.reading-layout{grid-template-columns:230px minmax(0,1fr);gap:32px}.reading-cards{gap:5px}.message{max-width:94%}}
@media(max-width:760px){.topbar{padding:19px 20px}.edition{display:none}main{padding:0 20px}.reading-layout{grid-template-columns:1fr;gap:30px;padding-top:35px}.reading-layout aside{position:static}.reading-cards{max-width:390px}.conversation>h1{font-size:29px}}
@media(min-width:761px) and (max-width:900px){.reading-layout{grid-template-columns:1fr;gap:32px;padding-top:42px}.reading-layout aside{position:static;display:grid;grid-template-columns:1fr auto;column-gap:22px;align-items:start}.reading-layout aside>.eyebrow{grid-column:1/-1}.reading-cards{max-width:500px}.context-panel{grid-column:1/-1}.conversation{max-width:760px}.chat-form>div{position:relative}.chat-form .primary{min-width:100px}}
@media(max-width:500px){body{padding-bottom:env(safe-area-inset-bottom)}.topbar{padding-top:max(18px,env(safe-area-inset-top));position:relative}.brand{font-size:20px}.welcome{padding-top:55px}.wordmark{font-size:51px}.welcome h1{font-size:25px}.birth-form{grid-template-columns:1fr}.birth-form .wide{grid-column:auto}.birth-form input,.birth-form select,.chat-form textarea,.admin-form input{font-size:16px}.primary,.quiet,.chips button{min-height:44px}.intro h1{font-size:27px}.spread{gap:9px}.slot{border-radius:7px}.slot-symbol{font-size:27px}.slot-label{letter-spacing:2px;font-size:9px}.slot .caption{font-size:8px}.deck{grid-template-columns:none;grid-template-rows:repeat(3,92px);grid-auto-flow:column;grid-auto-columns:58px;gap:9px 1px;min-height:310px;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;scroll-snap-type:x proximity;padding:14px 18px 18px 7px;scrollbar-color:#cbb88d55 transparent;scrollbar-width:thin}.deck-card{width:68px;scroll-snap-align:start}.deck-card:hover:not(:disabled),.deck-card:focus-visible{transform:translateY(-5px)}.deck-note:before{content:'좌우로 천천히 살펴보세요 · ';color:var(--gold)}.settings-grid{grid-template-columns:1fr}.admin-form{padding:22px 18px}.message{max-width:96%}.chat-form>div{flex-direction:column}.chat-form .primary{align-self:stretch}.reading-layout{padding-bottom:40px}footer{padding:20px;padding-bottom:max(20px,env(safe-area-inset-bottom))}.topbar .quiet{padding:9px}.reveal-content{padding:15px 10px}.flip-card{width:min(230px,58vw)}}
/* @context R02 Compact symbolic deck and transient ritual copy */
body[data-step="tarot-step"] footer{display:none}#tarot-step{min-height:calc(100dvh - 96px);padding-top:18px}.tarot-intro{position:fixed;z-index:30;inset:77px 0 0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:30px;background:radial-gradient(ellipse at center,#223239 0,#151f24 65%);transition:opacity .55s ease,filter .55s ease}.tarot-intro.leaving{opacity:0;filter:blur(5px);pointer-events:none}.ritual{margin-top:4px}.spread-section{margin-top:24px;margin-bottom:18px}.slot{max-height:185px}#status{opacity:0;margin-top:28px;transition:opacity .45s;pointer-events:none}#status.visible{opacity:1}.deck-section{padding-top:18px;margin-bottom:22px}.deck{--spread:46px;position:relative;height:190px;min-height:0;overflow:hidden;padding:6px 0 0}.deck-card{position:absolute;left:50%;top:3px;border:0;background:none;aspect-ratio:2/3;width:88px;max-height:none;padding:0;transition:transform .24s,filter .24s;transform-origin:50% 120%;transform:translateX(calc(-50% + var(--offset)*var(--spread))) translateY(var(--arc-y)) rotate(calc(var(--offset)*2.2deg));filter:drop-shadow(-3px 3px 3px #0007)}.deck-card:hover:not(:disabled),.deck-card:focus-visible{transform:translateX(calc(-50% + var(--offset)*var(--spread))) translateY(calc(var(--arc-y) - 10px)) rotate(calc(var(--offset)*2.2deg));z-index:20;filter:drop-shadow(0 0 10px #cbb88d88)}.deck-note{margin:4px 0 0}.deck.shuffling .deck-card{animation-delay:calc(var(--idx)*18ms)}
.draw-meta{max-width:740px;margin:0 auto;display:flex;justify-content:space-between;color:var(--muted);font-size:9px;letter-spacing:1px}.spread-section{margin-top:12px}
@media(min-width:501px) and (max-width:1100px){.deck{--spread:38px;display:block;grid-template-columns:none;height:182px;padding:6px 0}.deck-card{width:82px;max-height:none}.spread{padding-inline:60px}}
@media(max-width:500px){#tarot-step{padding-top:10px}.tarot-intro{inset:77px 0 0}.ritual-meta{margin-top:8px}.spread-section{margin-top:18px;margin-bottom:10px}.spread{gap:8px}.slot{max-height:150px}.slot .caption{bottom:-18px}#status{margin-top:25px;margin-bottom:0}.deck-section{padding-top:13px;margin-top:0}.deck-section .section-line{margin-bottom:5px}.deck{--spread:25px;display:block;grid-template-columns:none;grid-template-rows:none;grid-auto-flow:initial;grid-auto-columns:auto;height:145px;min-height:0;overflow:hidden;padding:5px 0}.deck-card{width:65px;max-height:none;scroll-snap-align:none}.deck-card:hover:not(:disabled),.deck-card:focus-visible{transform:translateX(calc(-50% + var(--offset)*var(--spread))) translateY(calc(var(--arc-y) - 6px)) rotate(calc(var(--offset)*2.2deg))}.deck-note:before{content:none}.deck-note{margin-top:0}}
@media(max-height:760px) and (min-width:501px){#tarot-step{padding-top:8px}.ritual{max-width:760px}.spread-section{margin-top:14px;margin-bottom:8px}.slot{max-height:145px}#status{margin-top:22px}.deck{height:145px}.deck-card{width:67px}.deck-section{padding-top:10px}.deck-note{display:none}}
.reading-layout{display:block;max-width:900px;margin-inline:auto}.reading-layout aside{position:static;display:block;text-align:center}.reading-cards{justify-content:center;max-width:330px;margin-inline:auto}.reading-cards figure{flex:1 1 0;max-width:92px}.reading-cards img{display:block;margin-inline:auto}.context-panel{max-width:520px;margin:14px auto 0;text-align:left}.conversation{max-width:800px;margin:48px auto 0}.conversation>.eyebrow,.conversation>h1{text-align:center}
.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.reading-layout{padding-top:24px}.reading-layout aside{position:sticky;top:0;z-index:12;margin-inline:calc(50% - 50vw);padding:14px max(20px,calc((100vw - 900px)/2));background:linear-gradient(180deg,#151f24 78%,#151f2400);backdrop-filter:blur(12px)}.reading-layout aside>.eyebrow{margin-bottom:-8px}.reading-cards{margin-block:14px 10px}.reading-cards figure{max-width:76px}.reading-cards figcaption{margin-top:5px}.reading-layout aside .quiet{min-height:34px;padding:7px 12px}.conversation{margin-top:26px}.messages{max-width:760px;margin-inline:auto}.message.assistant:before{content:'SARO';display:block;margin-bottom:7px;color:var(--gold);font-size:8px;letter-spacing:2px}.message.user:before{content:'나';display:block;margin-bottom:7px;color:var(--muted);font-size:8px;letter-spacing:2px}.message.thinking:before{content:''}.followups{width:min(90%,760px);margin:14px 0 0;padding:18px 20px;border-top:0}.followups p{margin:0 0 13px;font-family:inherit;font-size:12px}.followups:before{content:none}.chat-form{position:sticky;bottom:0;z-index:11;margin:24px -12px 0;padding:18px 12px max(12px,env(safe-area-inset-bottom));background:linear-gradient(180deg,#151f2400,#151f24 22%)}
@media(max-width:500px){.reading-layout{padding-top:8px}.reading-layout aside{padding-top:9px}.reading-cards{max-width:255px;margin-block:9px 6px}.reading-cards figure{max-width:70px}.reading-layout aside>.eyebrow{display:none}.conversation{margin-top:16px}.message{padding:15px 16px}.followups{width:96%}.chat-form{margin-inline:-8px;padding-inline:8px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.tarot-intro{transition:opacity .01s!important}}
