@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+KR:wght@400;500;600;700&display=swap');
:root{color-scheme:dark;--paper:#f3e5c4;--muted:#c5b897;--gold:#dec07f;--line:#c4a36755;--serif:'Noto Serif KR',Georgia,serif}
*{box-sizing:border-box}body{margin:0;background:#16101d;color:var(--paper);font:17px/1.9 var(--serif);word-break:keep-all;background-image:radial-gradient(ellipse at 50% 10%,#593b382c,transparent 65%)}[hidden]{display:none!important}button,input,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--gold);outline-offset:5px}.talisman-shop{max-width:540px;margin:auto;min-height:100dvh;padding:0 24px 36px;background:linear-gradient(#27182a66,#17101d);border-inline:1px solid #c4a36722}.shop-header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 0 32px;font-size:14px;color:var(--muted)}h1{font-size:clamp(26px,6.2vw,34px);line-height:1.65;letter-spacing:-.04em;margin:10px 0 20px}h2{font-size:25px;line-height:1.7;margin:8px 0 22px;color:var(--paper)}h3{font-size:15px;color:var(--gold);margin:22px 0 6px}p{margin:10px 0}.shop-eyebrow{font-size:13px;letter-spacing:.1em;color:var(--gold)}.shop-intro{color:var(--muted)}.shop-price{margin:22px 0;font-size:16px}.shop-price strong{font-size:26px;color:var(--gold)}#shop-categories{display:flex;gap:10px;overflow:auto;padding:12px 0;scrollbar-width:thin}#shop-categories button{flex:none;border:1px solid var(--line);border-radius:30px;background:none;color:var(--muted);padding:7px 15px;font-size:14px}#shop-categories button[aria-pressed=true]{background:#dac18a;color:#251925;border-color:#dac18a}.carousel-heading{display:flex;justify-content:space-between;align-items:center;margin:22px 0 5px;font-size:13px;color:var(--muted)}.carousel-heading button{background:none;border:0;color:var(--gold);padding:5px 14px;font-size:24px}.carousel-heading button:disabled{opacity:.25;cursor:default}.swipe-hint{font-size:13px;color:var(--muted);margin:0 0 16px}#shop-carousel{display:flex;gap:16px;overflow-x:auto;padding:8px 10px 22px;scroll-snap-type:x mandatory;scrollbar-color:#b49863 #24172b;scrollbar-width:thin;overscroll-behavior-x:contain}.talisman-choice{flex:0 0 75%;max-width:320px;background:none;border:1px solid var(--line);color:var(--paper);padding:18px 10px 16px;scroll-snap-align:center;text-align:center}.talisman-choice[aria-pressed=true]{border-color:#edcd82;box-shadow:0 0 24px #ceab5b1c,inset 0 0 0 3px #c4a36726}.talisman-choice img{display:block;height:340px;width:100%;object-fit:contain;filter:drop-shadow(0 8px 18px #0008)}.talisman-choice span{display:block;font-size:16px;font-weight:600;margin-top:18px}.talisman-choice small{display:block;color:var(--gold);font-size:12px;margin-top:8px}#shop-details{padding:24px 0;border-bottom:1px solid var(--line);min-height:300px}#shop-details p{font-size:17px}.ritual-action{display:block;text-align:center;width:100%;background:linear-gradient(110deg,#332038,#211629);border:1px solid #d0af6f;color:#ffe2a4;padding:17px 14px;margin:26px 0 12px;font-weight:700;font-size:20px;line-height:1.6;box-shadow:inset 0 0 0 4px #c4a36713}.quiet-action{display:block;margin:12px auto;padding:12px 8px;background:none;border:0;color:var(--gold);text-decoration:underline;text-underline-offset:6px;font-size:16px;text-align:center}.shop-symbolic,.shop-note,.checkout-test-note{font-size:13px;color:var(--muted);line-height:1.9;margin:18px 0}fieldset{border:0;padding:0;margin:28px 0}legend{font-size:15px;color:var(--gold);margin-bottom:14px}.recipient-choice,.pay-methods{display:flex;flex-wrap:wrap;gap:10px}.recipient-choice label,.pay-methods label{position:relative;flex:1;min-width:100px;text-align:center;cursor:pointer}.recipient-choice input,.pay-methods input{position:absolute;opacity:0;width:1px;height:1px}.recipient-choice span,.pay-methods span{display:block;padding:14px 8px;border:1px solid var(--line);font-size:15px}.recipient-choice input:checked+span,.pay-methods input:checked+span{background:#debf80;color:#211629;font-weight:700;border-color:#edcd82}.recipient-choice input:focus-visible+span,.pay-methods input:focus-visible+span{outline:2px solid white;outline-offset:3px}.chosen-summary{display:flex;align-items:center;gap:20px;padding:18px 0 26px}.chosen-summary img{width:70px;height:150px;object-fit:contain}.chosen-summary small{font-size:12px;color:var(--muted)}.chosen-summary h2{font-size:21px;margin:8px 0}.message-label{display:block;color:var(--gold);font-size:16px;margin:20px 0 12px}textarea{width:100%;resize:vertical;min-height:150px;background:#130e18;color:var(--paper);border:1px solid #b69b6b;padding:18px;font-size:18px;line-height:1.8}textarea::placeholder{color:#a89a87}.message-hint{font-size:12px;color:var(--muted)}#message-error,#checkout-error,#recovery-error{color:#ffbfad;font-size:15px;white-space:pre-wrap}.checkout-summary{border-block:1px solid var(--line);padding:22px 0;margin:28px 0}.checkout-summary span{font-size:14px;color:var(--gold)}.checkout-summary p,#complete-message{white-space:pre-wrap;overflow-wrap:anywhere}.price-summary{display:grid;grid-template-columns:1fr auto;align-items:center;gap:12px;margin:30px 0}.price-summary strong{font-size:36px;color:var(--gold)}.price-summary small{grid-column:1/-1;font-size:13px;color:var(--muted)}.gift-confirm{display:flex;align-items:flex-start;gap:12px;font-size:16px;color:var(--paper);padding:18px 0;border-block:1px solid var(--line)}.gift-confirm input{appearance:auto;accent-color:#d8ba7a;flex:none;width:22px;height:22px;margin:5px 0 0}button:disabled{opacity:.55;cursor:wait}#shop-recovery{padding:20px 0;margin-top:30px;border-top:1px solid var(--line);font-size:15px;text-align:center}#complete-link{max-width:100%;width:100%;background:#160e1d;color:var(--paper);padding:12px;font-size:14px;border:1px solid var(--line)}footer{text-align:center;padding:36px 0 8px;font-size:12px;color:var(--muted)}footer a{display:inline-block;margin-top:18px;color:var(--gold);font-size:16px}@media(max-width:360px){.talisman-shop{padding-inline:18px}.talisman-choice{flex-basis:86%}.talisman-choice img{height:300px}.price-summary strong{font-size:31px}}@media(prefers-reduced-motion:no-preference){.talisman-choice img{transition:filter .3s}.talisman-choice[aria-pressed=true] img{filter:drop-shadow(0 0 18px #cf9e3e44)}html{scroll-behavior:smooth}}

.shop-policy{margin-top:36px;border-top:1px solid var(--line);padding-top:18px;font-size:13px;color:var(--muted)}.shop-policy summary{cursor:pointer;color:var(--gold)}

.gift-save-preview{box-sizing:border-box;width:min(480px,calc(100vw - 24px));max-height:90dvh;overflow:auto;overscroll-behavior:contain;border:1px solid var(--gold);padding:20px;background:#211629;color:var(--paper);font-family:var(--serif)}.gift-save-preview::backdrop{background:#09040ddb}.gift-save-preview img{display:block;width:100%;height:auto;margin:20px 0}.gift-save-preview p{font-size:14px;line-height:1.8}



.gift-data-summary{border:1px solid #b7a17d;background:#211a27;padding:16px;font-size:14px;line-height:1.8;color:#eee1c8;margin-top:24px}.gift-data-summary a{display:inline-block;color:#f4d79d;text-decoration:underline;text-underline-offset:4px;padding:8px 0}.gift-confirm{background:#28202e!important;border:1px solid #d6bd89!important;padding:16px!important;color:#fff1d1!important;font-size:16px!important}.gift-confirm input{width:24px!important;height:24px!important;flex:0 0 24px}.shop-policy{margin-top:28px;border:1px solid #8e795b;padding:16px;font-size:14px;line-height:1.85}.shop-policy summary{font-size:16px;font-weight:700;color:#f3dba8;cursor:pointer}.shop-price{padding:16px;border-block:1px solid #a78d5a66}.shop-price strong{font-size:25px}

/* Carry the consultation purchase treatment through the two gift steps. */
#shop-review,#shop-pay{
 position:relative;
 isolation:isolate;
 overflow:hidden;
 padding-inline:36px;
 background:linear-gradient(115deg,#3e273c,#25182e 65%,#402737);
 border-color:#e3c384;
 color:#ffe7b2;
 box-shadow:inset 0 0 0 4px #c8a15c22,inset 0 0 0 5px #c8a15c55,0 0 20px #d8a44a26;
}
#shop-review::before,#shop-pay::before{
 content:'';
 position:absolute;
 inset:0;
 z-index:-1;
 pointer-events:none;
 background:linear-gradient(112deg,transparent 36%,#ffe6a120 44%,#fff1ba52 49%,#ffe6a120 54%,transparent 62%);
 transform:translateX(-110%);
 animation:gift-cta-shine 4.8s ease-in-out infinite;
}
#shop-review::after,#shop-pay::after{
 content:'✦';
 position:absolute;
 inset-inline-end:15px;
 top:50%;
 transform:translateY(-50%);
 color:#ffe39d;
 font-size:16px;
 text-shadow:0 0 8px #eec47c;
 pointer-events:none;
 animation:gift-cta-spark 2.4s ease-in-out infinite;
}
#shop-review:hover:not(:disabled),#shop-pay:hover:not(:disabled){border-color:#fff0bd;filter:brightness(1.12)}
#shop-review:focus-visible,#shop-pay:focus-visible{outline:2px solid #ffeab7;outline-offset:4px}
#shop-pay:disabled::before,#shop-pay:disabled::after{animation:none}
@keyframes gift-cta-shine{0%,18%{transform:translateX(-110%)}55%,100%{transform:translateX(110%)}}
@keyframes gift-cta-spark{0%,100%{opacity:.55}50%{opacity:1}}
@media(prefers-reduced-motion:reduce){
 #shop-review::before,#shop-pay::before,#shop-review::after,#shop-pay::after{animation:none}
}

#gift-policy { font-size: 0.8rem; }
#gift-policy summary, #gift-policy p { font-size: inherit; }

#shop-physical-open, #shop-message-physical-open { margin-top: 12px; }
.physical-banner { display: block; width: 100%; height: auto; margin: 18px 0 20px; border-radius: 6px; }
#physical-form label:not(.physical-consent, .physical-option) { display: block; margin-block: 18px; }
#physical-form input:not([type=checkbox]), #physical-form textarea {
 display: block; width: 100%; box-sizing: border-box; margin-top: 6px; padding: 12px;
 border: 1px solid #8e795b; border-radius: 6px; background: #211a25; color: #fff1d7;
 font: inherit; color-scheme: dark;
}
.physical-personalization { min-width: 0; margin: 22px 0; padding: 0 14px 12px; border: 1px solid var(--line); }
.physical-personalization legend { margin: 0; padding: 0 7px; }
.physical-option { display: flex; align-items: center; gap: 9px; min-height: 44px; cursor: pointer; }
.physical-option input { flex: none; width: 20px; height: 20px; margin: 0; accent-color: var(--gold); }
#physical-inscription-field p { margin: 8px 0 0; color: var(--muted); font-size: 14px; }
#physical-form #physical-inscription-field label { margin: 10px 0 0; }
.physical-consent { display: flex; gap: 9px; align-items: baseline; margin-block: 16px; }
#physical-error { color: #ffb2a2; }

#physical-form label small { color: #b9b4bf; margin-inline-start: 0.35em; }

#shop-carousel .talisman-choice {
 display: flex;
 flex-direction: column;
 align-items: center;
 flex-basis: clamp(126px, 36vw, 162px);
 padding: 12px 9px;
}
#shop-carousel .talisman-choice img {
 flex: none;
 width: 90px;
 height: 195px;
}
#shop-carousel .talisman-choice span {
 width: 100%;
 min-height: 3em;
 font-size: 14px;
 line-height: 1.5;
}
#shop-carousel .talisman-choice img,#message-image{-webkit-touch-callout:none;user-select:none}

.shop-receipt-loading,.complete-heading { text-align: center; }
.complete-heading h1 { margin: 5px 0 22px; }
.complete-seal {
 display: inline-grid; place-items: center; width: 52px; height: 52px;
 border: 1px solid #d7ae6e99; box-shadow: inset 0 0 0 4px #d7ae6e15;
 border-radius: 50%; color: #f1d59c; font-size: 27px;
}
.complete-card {
 text-align: center; padding: 20px; border: 1px solid var(--line);
 background: radial-gradient(ellipse at 50% 18%, #59353080, transparent 72%), #231827;
}
.complete-art { display: grid; place-items: center; min-height: 200px; }
.complete-art img { display: block; max-width: 100%; max-height: clamp(210px, 38svh, 330px); object-fit: contain; filter: drop-shadow(0 8px 18px #100814a0); }
#complete-image-status { font-size: 13px; color: var(--muted); }
.complete-card h2 { font-size: clamp(20px, 5vw, 25px); margin: 18px 0 4px; }
.complete-card p { margin: 4px 0; color: var(--muted); }
.complete-actions .ritual-action { margin: 18px 0 4px; }
.complete-actions .quiet-action { margin: 0 auto; }
.complete-order { margin: 18px 0 4px; border-block: 1px solid var(--line); padding: 8px 0; font-size: 14px; }
.complete-order div { display: flex; justify-content: space-between; gap: 12px; }
.complete-order dt,.complete-note { color: var(--muted); }
.complete-order dd { margin: 0; text-align: right; overflow-wrap: anywhere; }
.complete-note { margin: 10px 0; text-align: center; }
