/* Shared look for /store/ and /blessings/: ink, ivory, one champagne metal, hairlines, square corners. */
:root{--ink:#0e0d0b;--ink-2:#171512;--ivory:#efe8da;--ivory-2:#d9d3c6;--metal:#b9a57f;--hair:rgba(239,232,218,.2);--focus:#b9a57f}
body{background:var(--ink);color:var(--ivory);font-family:'Hanken Grotesk','Noto Sans TC',system-ui,sans-serif;font-size:20px;line-height:1.5}
html[data-lang="zh"] body{font-family:'Hanken Grotesk','Noto Sans TC',system-ui,sans-serif;font-weight:300;font-size:18px}
h1,h2,h3{font-weight:400}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:64px}
html:has(dialog[open]){overflow:hidden}
body{margin:0;overflow-x:hidden}
img{display:block;max-width:100%}
html[data-lang="zh"] .en,html[data-lang="en"] .zh{display:none}
:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
button,input{font:inherit;color:inherit}
button{cursor:pointer}

.topnav{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:8px;min-height:56px;padding:6px 16px;background:var(--ink);color:var(--ivory);border-bottom:1px solid var(--hair)}
.topnav a{color:inherit;text-decoration:none;padding:8px 4px;font-size:17px;white-space:nowrap}
.topnav .brand{font-family:'Hanken Grotesk','Noto Sans TC',system-ui,sans-serif;font-weight:400;font-size:20px;letter-spacing:.14em;margin-right:6px}
.topnav nav{display:flex;gap:6px}
.topnav [aria-current]{color:var(--metal)}
.topnav .lang{margin-left:auto;background:none;border:0;padding:8px 4px;font-size:16px;min-height:44px}
.topnav .cartbtn{display:flex;align-items:center;gap:6px;min-height:44px;background:none;color:inherit;border:0;padding:6px 0 6px 6px;font-size:16px;white-space:nowrap}
.topnav .cartbtn b{font-weight:400;color:var(--metal)}

.btn{display:block;width:100%;min-height:48px;padding:12px 16px;border:0;border-radius:0;background:var(--metal);color:var(--ink);font-weight:500;font-size:17px;letter-spacing:.06em;text-align:center;text-decoration:none}
.btn.ghost{background:none;box-shadow:inset 0 0 0 1px var(--hair);color:var(--ivory)}
.linkbtn{background:none;border:0;padding:8px 0;color:var(--ivory);text-decoration:underline;text-underline-offset:3px;font-size:16px}

.cartdlg{width:min(440px,100vw);max-width:100vw;height:100dvh;max-height:100dvh;margin:0 0 0 auto;padding:16px 16px calc(16px + env(safe-area-inset-bottom));border:0;background:var(--ink-2);color:var(--ivory);overflow-y:auto}
.cartdlg::backdrop{background:rgba(0,0,0,.65)}
.cartdlg[open]{animation:slidein .4s cubic-bezier(.2,.7,.2,1)}
@keyframes slidein{from{transform:translateX(24px);opacity:0}}
.cd-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.cd-head h2{margin:0;font-size:26px;font-weight:400}
.x{width:44px;height:44px;background:none;border:0;font-size:28px;line-height:1;color:inherit}
.cd-lines{list-style:none;margin:0;padding:0}
.cd-lines li{display:flex;gap:12px;padding:12px 0;border-bottom:1px solid var(--hair)}
.cd-thumb{flex:0 0 60px;height:60px;overflow:hidden;background:var(--hair)}
.cd-thumb img{width:100%;height:100%;object-fit:cover}
.cd-info{flex:1;min-width:0}
.cd-info strong{display:block;font-size:18px;font-weight:500}
.cd-info small{display:block;opacity:.8;font-size:16px;margin-top:2px;overflow-wrap:anywhere}
.cd-row{display:flex;align-items:center;justify-content:space-between;margin-top:4px}
.qty{display:inline-flex;align-items:center;gap:4px}
.qty button{width:36px;height:36px;border:1px solid var(--hair);background:none;font-size:20px}
.qty b{min-width:24px;text-align:center}
.cd-total{display:flex;justify-content:space-between;margin:16px 0 2px;font-size:20px}
.cd-note{margin:0 0 12px;font-size:16px;opacity:.8}
.cd-empty{margin:32px 0 24px}
.cd-links{display:grid;gap:8px}
.cd-form{display:grid;gap:12px}
.cd-form label{display:grid;gap:4px;font-size:16px}
.cd-form input{min-height:46px;padding:10px;border:1px solid var(--hair);border-radius:0;background:transparent;font-size:18px}
.cd-form p{margin-bottom:0}
.cd-done{text-align:center;padding-top:40px}
.cd-done h3{font-size:30px;font-weight:400;margin:0 0 12px;color:var(--metal)}
.cd-done p{margin:0 0 24px;line-height:1.6}

.toast{position:fixed;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));z-index:30;display:flex;align-items:center;justify-content:space-between;gap:12px;max-width:416px;margin:auto;padding:10px 14px;background:var(--ivory);color:var(--ink);font-size:17px;transform:translateY(160%);transition:transform .4s cubic-bezier(.2,.7,.2,1);visibility:hidden}
.toast.on{transform:none;visibility:visible}
.toast button{flex:none;min-height:40px;padding:6px 10px;background:none;border:1px solid currentColor;color:inherit}

@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

body{font-weight:400;line-height:1.6;letter-spacing:.005em}
h1,h2,h3,.gname,.pp{font-weight:500}
