/* Base tokens */
:root{--bg:#fff7fb;--fg:#2a1633;--muted:#7a6b78;--primary:#ff6ec7;--accent:#7aa2ff;--panel:#ffe9f4;--card:#ffffff;--shadow:rgba(42,22,51,.15)}
/* Optional named palettes via body class */
body.theme-dark{--bg:#0b1220;--fg:#e8f0ff;--muted:#a8b3c7;--primary:#7aa2ff;--accent:#ff7aa8;--panel:#111a2e;--card:#0f172a;--shadow:rgba(0,0,0,.35)}
body.theme-light{--bg:#fff7fb;--fg:#2a1633;--muted:#7a6b78;--primary:#ff6ec7;--accent:#7aa2ff;--panel:#ffe9f4;--card:#ffffff;--shadow:rgba(42,22,51,.15)}
body.theme-candy{--bg:#fff7fb;--fg:#2a1633;--muted:#7a6b78;--primary:#ff6ec7;--accent:#7aa2ff;--panel:#ffe9f4;--card:#ffffff;--shadow:rgba(42,22,51,.15)}
body.theme-lavender{--bg:#f7f3ff;--fg:#221b33;--muted:#6d6480;--primary:#8b7bff;--accent:#ff9ace;--panel:#efe9ff;--card:#ffffff;--shadow:rgba(34,27,51,.12)}
body.theme-sunset{--bg:#fff5f0;--fg:#2b1a12;--muted:#7a5e54;--primary:#ff7a59;--accent:#ffb86b;--panel:#ffe7dd;--card:#ffffff;--shadow:rgba(43,26,18,.12)}
body.theme-ocean{--bg:#f0f7ff;--fg:#0f1a2b;--muted:#4a607a;--primary:#3aa9ff;--accent:#66e6c4;--panel:#e3f0ff;--card:#ffffff;--shadow:rgba(15,26,43,.12)}
body.theme-mint{--bg:#f5fff9;--fg:#0f291c;--muted:#4e6a5d;--primary:#3ad29f;--accent:#6ea8ff;--panel:#e6fbf1;--card:#ffffff;--shadow:rgba(15,41,28,.12)}
body.theme-rose{--bg:#fff5f7;--fg:#2b0f18;--muted:#7a5663;--primary:#ff5c8a;--accent:#7aa2ff;--panel:#ffe3ec;--card:#ffffff;--shadow:rgba(43,15,24,.12)}
body.theme-galaxy{--bg:#0a0f1f;--fg:#eaf2ff;--muted:#99a7c1;--primary:#7aa2ff;--accent:#c889ff;--panel:#0e1630;--card:#0c1226;--shadow:rgba(0,0,0,.35)}
body.theme-ink{--bg:#0b0b0c;--fg:#f3f3f5;--muted:#a6a6ad;--primary:#7aa2ff;--accent:#ff7aa8;--panel:#141418;--card:#0f0f13;--shadow:rgba(0,0,0,.4)}
body.theme-sakura{--bg:#fff8fb;--fg:#2a1421;--muted:#7b5c6c;--primary:#ff6aa5;--accent:#ffd1e6;--panel:#ffeaf3;--card:#ffffff;--shadow:rgba(42,20,33,.12)}
body.theme-lemon{--bg:#fffdf2;--fg:#2a2a14;--muted:#6f6f54;--primary:#ffd54d;--accent:#6cc4ff;--panel:#fff6cc;--card:#ffffff;--shadow:rgba(42,42,20,.12)}
body.theme-forest{--bg:#f3fbf5;--fg:#0f2418;--muted:#51675a;--primary:#3bb27a;--accent:#7aa2ff;--panel:#e6f7ed;--card:#ffffff;--shadow:rgba(15,36,24,.12)}
body.theme-coffee{--bg:#f9f5f2;--fg:#231b16;--muted:#6e5f55;--primary:#c58b67;--accent:#7aa2ff;--panel:#efe5de;--card:#ffffff;--shadow:rgba(35,27,22,.12)}
body.theme-cyber{--bg:#0c0f1a;--fg:#e8f6ff;--muted:#7ba0b8;--primary:#00e5ff;--accent:#ff57c6;--panel:#0f1526;--card:#0b1220;--shadow:rgba(0,0,0,.4)}
body.theme-gold{--bg:#fffaf0;--fg:#2b2414;--muted:#7c6e54;--primary:#f1c24b;--accent:#7aa2ff;--panel:#fff1cc;--card:#ffffff;--shadow:rgba(43,36,20,.12)}
body.theme-grape{--bg:#fbf7ff;--fg:#20142e;--muted:#6f5c86;--primary:#9b6cff;--accent:#ff85c3;--panel:#efe6ff;--card:#ffffff;--shadow:rgba(32,20,46,.12)}
body.theme-sky{--bg:#f6fbff;--fg:#0f1a26;--muted:#55708a;--primary:#5ab3ff;--accent:#ff85c3;--panel:#e9f4ff;--card:#ffffff;--shadow:rgba(15,26,38,.12)}
body.theme-latte{--bg:#fffaf6;--fg:#2b1f16;--muted:#6f6156;--primary:#e6b088;--accent:#7aa2ff;--panel:#f3e5dc;--card:#ffffff;--shadow:rgba(43,31,22,.12)}
body.theme-peach{--bg:#fff6f2;--fg:#2b1a14;--muted:#7a5e54;--primary:#ff9a73;--accent:#7aa2ff;--panel:#ffe4d9;--card:#ffffff;--shadow:rgba(43,26,20,.12)}
body.theme-ice{--bg:#f7fbff;--fg:#0f1e2b;--muted:#53708a;--primary:#8fd3ff;--accent:#a0ffe6;--panel:#e9f4ff;--card:#ffffff;--shadow:rgba(15,30,43,.12)}
body.theme-berry{--bg:#fff7fc;--fg:#2a162f;--muted:#6f5677;--primary:#cf6bff;--accent:#6bc7ff;--panel:#f6e6fb;--card:#ffffff;--shadow:rgba(42,22,47,.12)}
body.theme-neon{--bg:#0b0f16;--fg:#eaf2ff;--muted:#97a5bf;--primary:#6ae1ff;--accent:#ff6bd2;--panel:#0f1622;--card:#0c121d;--shadow:rgba(0,0,0,.4)}
body.theme-midnight{--bg:#0a0d14;--fg:#e5eeff;--muted:#95a3bd;--primary:#7aa2ff;--accent:#e78bff;--panel:#0f1420;--card:#0c111b;--shadow:rgba(0,0,0,.38)}
body.theme-sand{--bg:#fffaf2;--fg:#2b261c;--muted:#6f6656;--primary:#e7c27a;--accent:#6ab7ff;--panel:#f3eadc;--card:#ffffff;--shadow:rgba(43,38,28,.12)}
body.theme-flamingo{--bg:#fff6fb;--fg:#2a1623;--muted:#6f5667;--primary:#ff6aa5;--accent:#7aa2ff;--panel:#ffe4f1;--card:#ffffff;--shadow:rgba(42,22,35,.12)}
body.theme-clay{--bg:#f9f7f4;--fg:#222018;--muted:#6b675d;--primary:#c8a27a;--accent:#7aa2ff;--panel:#efeae3;--card:#ffffff;--shadow:rgba(34,32,24,.12)}
body.theme-violet{--bg:#f7f3ff;--fg:#231b33;--muted:#6d6480;--primary:#8b7bff;--accent:#ff9ace;--panel:#efe9ff;--card:#ffffff;--shadow:rgba(35,27,51,.12)}
body.theme-coral{--bg:#fff6f4;--fg:#2b1a16;--muted:#7a5f58;--primary:#ff7a59;--accent:#6dbbff;--panel:#ffe6e0;--card:#ffffff;--shadow:rgba(43,26,22,.12)}
body.theme-emerald{--bg:#f4fff9;--fg:#0f281b;--muted:#4f6b5d;--primary:#2fd39a;--accent:#7aa2ff;--panel:#e4faef;--card:#ffffff;--shadow:rgba(15,40,27,.12)}
body.theme-inkblue{--bg:#0b1220;--fg:#e8f0ff;--muted:#a8b3c7;--primary:#7aa2ff;--accent:#ff7aa8;--panel:#111a2e;--card:#0f172a;--shadow:rgba(0,0,0,.35)}
body.theme-snow{--bg:#ffffff;--fg:#10131a;--muted:#5a6473;--primary:#3b82f6;--accent:#ef3a7a;--panel:#f6f7fb;--card:#ffffff;--shadow:rgba(16,19,26,.15)}
@media (prefers-color-scheme: light){:root{--bg:#fff7fb;--fg:#2a1633;--muted:#7a6b78;--primary:#ff6ec7;--accent:#7aa2ff;--panel:#ffe9f4;--card:#ffffff;--shadow:rgba(42,22,51,.15)}}
@media (prefers-color-scheme: dark){:root{--bg:#0b1220;--fg:#e8f0ff;--muted:#a8b3c7;--primary:#7aa2ff;--accent:#ff7aa8;--panel:#111a2e;--card:#0f172a;--shadow:rgba(0,0,0,.35)}}
@media (prefers-color-scheme: light){:root{--bg:#ffffff;--fg:#10131a;--muted:#5a6473;--primary:#3b82f6;--accent:#ef3a7a;--panel:#f6f7fb;--card:#ffffff;--shadow:rgba(16,19,26,.15)}}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;background:var(--bg);color:var(--fg);font:16px/1.7 'Noto Sans TC', system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, 'PingFang TC', 'Heiti TC', sans-serif}
.container{max-width:1100px;margin:0 auto;padding:24px}
.bg-layer{position:fixed;inset:0;z-index:-1}
.nav{position:sticky;top:0;backdrop-filter:saturate(140%) blur(8px);background:color-mix(in oklab,var(--panel) 80%,transparent);border-bottom:1px solid color-mix(in oklab,var(--fg) 10%,transparent);display:flex;align-items:center;justify-content:space-between;padding:10px 18px;z-index:10}
.nav__brand{font:800 18px Inter,system-ui;color:var(--fg)}
.nav__menu a{color:var(--fg);text-decoration:none;margin:0 10px;opacity:.9}
.nav__menu a:hover{opacity:1}
.nav__tools .btn{margin-left:8px}
.btn{appearance:none;border:1px solid color-mix(in oklab,var(--fg) 18%,transparent);background:color-mix(in oklab,var(--card) 90%,transparent);color:var(--fg);padding:8px 14px;border-radius:10px;cursor:pointer;transition:transform .15s ease,background .2s ease}
.btn:active{transform:scale(.98)}
.btn--primary{background:linear-gradient(135deg,var(--primary),color-mix(in oklab,var(--primary) 40%,#8bd5ff));border:none;color:color-mix(in oklab,#000 70%,var(--fg));box-shadow:0 8px 24px var(--shadow)}
.btn--ghost{background:transparent;border-color:color-mix(in oklab,var(--fg) 24%,transparent)}
.hero{text-align:center;padding:96px 24px}
.headline{font:900 44px 'Noto Serif TC', serif;letter-spacing:.3px;margin:0 0 10px}
.subtitle{color:var(--muted);margin:0 0 20px}
.cta{display:flex;gap:12px;justify-content:center;margin:10px 0 30px}
.stats{display:flex;gap:14px;justify-content:center}
.stat{display:flex;align-items:end;gap:6px;background:color-mix(in oklab,var(--card) 88%,transparent);padding:10px 14px;border-radius:12px;box-shadow:0 10px 24px var(--shadow)}
.stat__num{font:800 28px Inter}
.section{padding:30px 0}
.section__title{font:800 28px 'Noto Serif TC', serif;margin:0 0 12px}
.muted{color:var(--muted)}
.note{opacity:.85}
.timer{display:flex;gap:12px;flex-wrap:wrap}
.timebox{min-width:110px;text-align:center;background:color-mix(in oklab,var(--card) 92%,transparent);padding:16px;border-radius:14px;box-shadow:0 10px 30px var(--shadow)}
.timebox span{display:block;font:900 34px Inter}
.masonry{column-width:280px;column-gap:14px}
.card{break-inside:avoid;background:var(--card);border-radius:14px;box-shadow:0 10px 30px var(--shadow);margin:0 0 14px;overflow:hidden}
.card img{width:100%;display:block}
.card figcaption{padding:10px 12px;color:var(--muted)}
.wish-form{display:flex;gap:10px;margin:12px 0}
.wish-form input{flex:1;min-width:0;padding:10px 12px;border-radius:10px;border:1px solid color-mix(in oklab,var(--fg) 12%,transparent);background:color-mix(in oklab,var(--card) 94%,transparent);color:var(--fg)}
.wish-list{list-style:none;padding:0;margin:10px 0;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.wish-list li{background:var(--card);border-radius:12px;padding:12px;box-shadow:0 10px 24px var(--shadow)}
.features{line-height:1.9}
.footer{border-top:1px solid color-mix(in oklab,var(--fg) 10%,transparent);margin-top:20px}
.fwrap{display:flex;justify-content:space-between;gap:12px;align-items:center}
@media (max-width:700px){.headline{font-size:32px}.timebox{min-width:90px}.nav__menu{display:none}}
