:root{--paper: #f6f2eb;--paper-2: #efe9df;--ink: #33302b;--ink-soft: #6b655c;--warm-grey: #a29b92;--mist-blue: #95a6ad;--clay: #c08a77;--hairline: rgba(51, 48, 43, .18);--serif-latin: "Cormorant Garamond", Georgia, serif;--serif-cjk: "Noto Serif TC", "Songti TC", serif;--serif: var(--serif-latin), var(--serif-cjk);--sans-cjk: "Noto Sans TC", -apple-system, "PingFang TC", sans-serif;--maxw: 680px;--ease: cubic-bezier(.22, .61, .36, 1)}*{box-sizing:border-box;margin:0;padding:0}.intro__title,.q__prompt,.result__title,.result__verse,.capture__title{text-wrap:balance}.intro__sub,.result__lead,.capture__sub,.q__hint,.result__collection{text-wrap:pretty}html,body{height:100%}body{background:var(--paper);color:var(--ink);font-family:var(--serif-cjk);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;line-height:1.8}.label{font-family:var(--sans-cjk);font-size:.72rem;letter-spacing:.42em;text-transform:uppercase;color:var(--warm-grey);font-weight:400}.hairline{height:1px;background:var(--hairline);border:0;width:100%}.stage{min-height:100svh;display:flex;align-items:center;justify-content:center;padding:clamp(1.5rem,5vw,4rem)}.screen{display:none;width:100%;max-width:var(--maxw)}.screen.active{display:block;animation:fade .9s var(--ease) both}@keyframes fade{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.intro{text-align:center}.intro__mark{margin-bottom:2.5rem}.intro__title{font-family:var(--serif);font-weight:300;font-size:clamp(2rem,6vw,3.2rem);letter-spacing:.04em;line-height:1.3;margin:1.2rem 0}.intro__sub{color:var(--ink-soft);font-size:1.05rem;margin-bottom:2.8rem}.intro__hero{width:82%;max-width:380px;aspect-ratio:1;object-fit:cover;margin:0 auto 2.6rem;display:block;border-radius:2px;filter:saturate(.85)}.q__meta{display:flex;align-items:center;gap:1rem;margin-bottom:2.4rem}.q__num{font-family:var(--serif-latin);font-size:1.1rem;letter-spacing:.3em;color:var(--warm-grey)}.q__prompt{font-family:var(--serif);font-weight:400;font-size:clamp(1.6rem,4.5vw,2.3rem);line-height:1.5;margin-bottom:2.2rem}.q__card{width:82%;max-width:400px;aspect-ratio:1;object-fit:cover;display:block;margin:0 auto 2.4rem;border-radius:2px;filter:saturate(.9)}.q__hint{text-align:center;color:var(--warm-grey);font-size:.92rem;margin-bottom:1.8rem;font-style:italic}.options{list-style:none;display:flex;flex-direction:column;gap:0}.option{font-family:var(--serif-cjk);font-size:1.12rem;color:var(--ink);background:none;border:0;border-top:1px solid var(--hairline);text-align:left;padding:1.15rem .4rem;cursor:pointer;width:100%;display:flex;align-items:center;gap:1rem;transition:padding .4s var(--ease),color .3s var(--ease)}.options .option:last-child{border-bottom:1px solid var(--hairline)}.option__dot{width:5px;height:5px;border-radius:50%;background:var(--warm-grey);opacity:0;transition:opacity .3s var(--ease);flex:none}@media(hover:hover)and (pointer:fine){.option:hover{padding-left:1.4rem;color:var(--clay)}.option:hover .option__dot{opacity:1;background:var(--clay)}}.option:active{color:var(--clay)}.option:active .option__dot{opacity:1;background:var(--clay)}.draw{text-align:center}.draw__hint{color:var(--ink-soft);font-size:1.1rem;margin:1.6rem 0 2.6rem}.draw__orb{width:130px;height:130px;border-radius:50%;margin:0 auto;background:radial-gradient(circle at 38% 32%,#fff 0%,var(--paper-2) 45%,var(--warm-grey) 100%);box-shadow:0 0 60px #c08a7740;cursor:pointer;border:1px solid var(--hairline);animation:breathe 4s ease-in-out infinite;transition:transform .6s var(--ease)}.draw__orb:hover{transform:scale(1.05)}.draw__orb:active{transform:scale(.96)}@keyframes breathe{0%,to{box-shadow:0 0 40px #c08a772e}50%{box-shadow:0 0 80px #c08a7759}}.draw__tap{margin-top:2rem}.result{text-align:center;animation:fade 1.2s var(--ease) both}.result__cluster{margin-bottom:1.6rem}.result__title{font-family:var(--serif);font-weight:300;font-size:clamp(3rem,11vw,5rem);letter-spacing:.12em;line-height:1;margin:.6rem 0 .4rem}.result__ref{font-family:var(--serif-latin);color:var(--clay);letter-spacing:.12em;font-size:1.05rem;margin-bottom:2.2rem}.result__lead{color:var(--ink-soft);font-size:1.02rem;margin-bottom:1.6rem}.result__verse{font-family:var(--serif);font-size:clamp(1.3rem,3.6vw,1.7rem);line-height:1.95;color:var(--ink);margin:0 auto 2.6rem;max-width:30ch}.result__necklace{width:100%;max-width:420px;aspect-ratio:1;object-fit:cover;margin:0 auto .8rem;display:block;border-radius:2px;background:var(--paper-2)}.result__necklace.loading{animation:pulse 1.4s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.55}50%{opacity:.9}}.result__genhint{color:var(--warm-grey);font-size:.85rem;margin-bottom:2rem}.palette{display:flex;justify-content:center;flex-wrap:wrap;gap:1.3rem;margin:1.8rem 0}.swatch{display:flex;flex-direction:column;align-items:center;gap:.5rem}.swatch__dot{width:26px;height:26px;border-radius:50%;border:1px solid var(--hairline)}.swatch__name{font-family:var(--sans-cjk);font-size:.72rem;letter-spacing:.1em;color:var(--ink-soft)}.result__halves{display:flex;justify-content:center;gap:2.4rem;flex-wrap:wrap;margin:.4rem 0 .6rem;color:var(--ink-soft);font-size:.92rem}.result__halves span{display:inline-flex;gap:.5rem}.result__collection{font-family:var(--serif-latin);letter-spacing:.18em;color:var(--warm-grey);font-size:.95rem;margin:1.6rem 0 2.6rem}.capture{border-top:1px solid var(--hairline);padding-top:2.4rem;margin-top:1rem}.capture__title{font-family:var(--serif);font-size:1.3rem;margin-bottom:.6rem}.capture__sub{color:var(--ink-soft);font-size:.95rem;margin-bottom:1.6rem}.capture__row{display:flex;gap:.6rem;max-width:420px;margin:0 auto}.capture__input{flex:1;font-family:var(--serif-cjk);font-size:1rem;color:var(--ink);background:var(--paper);border:1px solid var(--hairline);border-radius:2px;padding:.85rem 1rem;outline:none}.capture__input:focus{border-color:var(--clay)}.capture__thanks{color:var(--clay);font-family:var(--serif);font-size:1.15rem}.btn{font-family:var(--sans-cjk);font-size:.82rem;letter-spacing:.3em;text-transform:uppercase;color:var(--ink);background:none;border:1px solid var(--ink);border-radius:2px;padding:.95rem 2.4rem;cursor:pointer;transition:all .4s var(--ease);white-space:nowrap}.capture__row .btn{letter-spacing:.15em;padding:.95rem 1.4rem}.btn:hover,.btn--solid{background:var(--ink);color:var(--paper)}.btn--solid:hover{background:var(--clay);border-color:var(--clay)}.foot{text-align:center;margin-top:3rem}.restart{background:none;border:0;color:var(--warm-grey);font-family:var(--sans-cjk);font-size:.78rem;letter-spacing:.2em;cursor:pointer}.restart:hover{color:var(--clay)}.site-nav{display:flex;align-items:center;justify-content:space-between;padding:1.2rem clamp(1.5rem,5vw,3rem);max-width:1100px;margin:0 auto}.site-nav__brand{font-family:var(--serif);font-size:1.15rem;letter-spacing:.08em;color:var(--ink);text-decoration:none}.site-nav__links{display:flex;gap:1.6rem}.site-nav__links a{font-family:var(--sans-cjk);font-size:.78rem;letter-spacing:.22em;color:var(--ink-soft);text-decoration:none;padding:.3rem 0;transition:color .3s var(--ease)}.site-nav__links a:hover{color:var(--clay)}.shop{max-width:1100px;margin:0 auto;padding:1rem clamp(1.5rem,5vw,3rem) 5rem}.shop__head{text-align:center;margin:1.5rem 0 3.2rem}.shop__title{font-family:var(--serif);font-weight:300;font-size:clamp(2rem,6vw,3rem);letter-spacing:.05em;margin:1rem 0 .6rem}.shop__sub{color:var(--ink-soft)}.shop__grid{display:grid;gap:clamp(1.6rem,4vw,2.8rem);grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.card{display:flex;flex-direction:column}.card__media{aspect-ratio:1;background:var(--paper-2);border-radius:2px;overflow:hidden;margin-bottom:1.2rem}.card__img{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(.9)}.card__name{font-family:var(--serif);font-weight:400;font-size:1.25rem;line-height:1.5;margin-bottom:.5rem}.card__desc{color:var(--ink-soft);font-size:.95rem;flex:1;margin-bottom:1.2rem}.card__buy{display:flex;align-items:center;justify-content:space-between;gap:1rem;border-top:1px solid var(--hairline);padding-top:1.1rem}.card__price{font-family:var(--serif-latin);font-size:1.45rem;letter-spacing:.03em}.card__add{letter-spacing:.12em;padding:.7rem 1.2rem;font-size:.76rem}.toast{position:fixed;left:50%;bottom:2rem;transform:translate(-50%,1rem);z-index:60;background:var(--ink);color:var(--paper);font-family:var(--sans-cjk);font-size:.82rem;letter-spacing:.12em;padding:.85rem 1.6rem;border-radius:2px;opacity:0;transition:opacity .3s var(--ease),transform .3s var(--ease);pointer-events:none}.toast.show{opacity:1;transform:translate(-50%)}.checkout{max-width:560px;margin:0 auto;padding:1rem clamp(1.5rem,5vw,3rem) 5rem}.checkout__head{text-align:center;margin:1.5rem 0 2.4rem}.checkout__title{font-family:var(--serif);font-weight:300;font-size:clamp(1.8rem,5vw,2.6rem);letter-spacing:.06em;margin-top:.8rem}.checkout__summary{border:1px solid var(--hairline);border-radius:2px;padding:1.4rem 1.6rem;margin-bottom:2.4rem}.sum-line{display:flex;justify-content:space-between;gap:1rem;padding:.55rem 0;color:var(--ink)}.sum-line__name em{color:var(--warm-grey);font-style:normal;font-size:.9em}.sum-line__price{font-family:var(--serif-latin);letter-spacing:.03em;white-space:nowrap}.checkout__total{display:flex;justify-content:space-between;align-items:baseline;border-top:1px solid var(--hairline);margin-top:.8rem;padding-top:1rem;font-size:1.05rem}.checkout__total span:last-child{font-family:var(--serif-latin);font-size:1.5rem;letter-spacing:.03em;color:var(--clay)}.checkout__summary .cart-empty{padding:1rem 0}.checkout__summary .cart-empty a{color:var(--clay)}.checkout__subtitle{font-family:var(--serif);font-weight:400;font-size:1.15rem;margin-bottom:1.2rem;letter-spacing:.04em}.field{display:block;margin-bottom:1.2rem}.field>span{display:block;font-family:var(--sans-cjk);font-size:.78rem;letter-spacing:.12em;color:var(--ink-soft);margin-bottom:.45rem}.field input,.field textarea{width:100%;font-family:var(--serif-cjk);font-size:1rem;color:var(--ink);background:var(--paper);border:1px solid var(--hairline);border-radius:2px;padding:.8rem 1rem;outline:none;transition:border-color .3s var(--ease);resize:vertical}.field input:focus,.field textarea:focus{border-color:var(--clay)}.checkout__pay{width:100%;margin-top:.6rem;letter-spacing:.2em}.checkout__pay:disabled{opacity:.4;cursor:not-allowed}.checkout__note{text-align:center;color:var(--warm-grey);font-size:.82rem;margin-top:1rem}.result__shop{margin:.6rem 0 1.2rem}.cart-btn{position:fixed;top:1.1rem;right:1.1rem;z-index:40;width:46px;height:46px;border-radius:50%;background:var(--paper);color:var(--ink);border:1px solid var(--hairline);cursor:pointer;display:grid;place-items:center;transition:all .3s var(--ease);box-shadow:0 2px 12px #33302b0f}.cart-btn:hover{color:var(--clay);border-color:var(--clay)}.cart-btn__badge{position:absolute;top:-5px;right:-5px;min-width:19px;height:19px;padding:0 5px;border-radius:10px;background:var(--clay);color:#fff;font-family:var(--sans-cjk);font-size:.68rem;line-height:19px;text-align:center}.cart-overlay{position:fixed;inset:0;z-index:50;background:#211e1b52;opacity:0;transition:opacity .35s var(--ease)}.cart-overlay.show{opacity:1}.cart-drawer{position:fixed;top:0;right:0;z-index:51;height:100svh;width:min(420px,90vw);background:var(--paper);border-left:1px solid var(--hairline);box-shadow:-8px 0 40px #211e1b14;transform:translate(100%);transition:transform .4s var(--ease);display:flex;flex-direction:column;padding:1.6rem}.cart-drawer.show{transform:none}.cart-head{display:flex;align-items:center;justify-content:space-between;padding-bottom:1.2rem;border-bottom:1px solid var(--hairline)}.cart-x{background:none;border:0;font-size:1.8rem;line-height:1;color:var(--warm-grey);cursor:pointer}.cart-x:hover{color:var(--clay)}.cart-lines{flex:1;overflow-y:auto;padding:.4rem 0}.cart-empty{color:var(--warm-grey);text-align:center;padding:3rem 0;font-size:.95rem}.cart-line{display:grid;grid-template-columns:56px 1fr auto;gap:.9rem;align-items:center;padding:1rem 0;border-bottom:1px solid var(--hairline)}.cart-line__img{width:56px;height:56px;object-fit:cover;border-radius:2px;background:var(--paper-2)}.cart-line__name{font-size:.98rem;line-height:1.4}.cart-line__price{color:var(--ink-soft);font-size:.82rem;font-family:var(--serif-latin);letter-spacing:.04em}.cart-line__right{text-align:right}.cart-qty{display:inline-flex;align-items:center;gap:.1rem;border:1px solid var(--hairline);border-radius:2px}.cart-qty button{width:26px;height:26px;background:none;border:0;cursor:pointer;color:var(--ink);font-size:1rem}.cart-qty button:hover{color:var(--clay)}.cart-qty span{min-width:26px;text-align:center;font-family:var(--serif-latin);font-size:.95rem}.cart-remove{display:block;margin-top:.4rem;background:none;border:0;color:var(--warm-grey);font-family:var(--sans-cjk);font-size:.68rem;letter-spacing:.1em;cursor:pointer}.cart-remove:hover{color:var(--clay)}.cart-foot{border-top:1px solid var(--hairline);padding-top:1.2rem}.cart-total{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:1.1rem;font-size:1.05rem}.cart-total span:last-child{font-family:var(--serif-latin);font-size:1.4rem;letter-spacing:.03em}.cart-checkout{display:block;text-align:center;width:100%}.cart-checkout[aria-disabled=true]{opacity:.4;pointer-events:none}
