:root{
  --teal-900:#0b3d3a;
  --teal-700:#0d6d63;
  --teal-600:#0f9488;
  --teal-100:#e6f5f3;
  --gold:#c9a227;
  --gold-light:#f3e6bd;
  --ink:#1c2b2a;
  --gray:#5f6f6d;
  --bg:#fafaf8;
  --white:#ffffff;
  --danger:#c0392b;
}
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:'Noto Sans TC',sans-serif;color:var(--ink);background:var(--bg);line-height:1.7}
a{text-decoration:none;color:var(--teal-700)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:14px 28px;border-radius:999px;font-weight:700;font-size:.95rem;cursor:pointer;border:none;transition:.25s}
.btn-primary{background:var(--teal-700);color:#fff}
.btn-primary:hover{background:var(--teal-900)}
.btn-gold{background:linear-gradient(120deg,var(--gold),#e2c35c);color:#3a2f05}
.btn-outline{background:transparent;border:2px solid var(--teal-700);color:var(--teal-700)}
.btn-outline:hover{background:var(--teal-100)}

/* Landing */
.landing-hero{min-height:100vh;display:flex;align-items:center;background:radial-gradient(1200px 600px at 80% -10%, var(--teal-100), transparent)}
.landing-wrap{max-width:920px;margin:0 auto;padding:60px 24px;text-align:center}
.landing-badge{display:inline-block;background:var(--gold-light);color:#7a611a;font-weight:700;font-size:.85rem;padding:8px 18px;border-radius:999px;margin-bottom:24px}
.landing-wrap h1{font-size:2.6rem;font-weight:900;color:var(--teal-900);margin-bottom:20px;line-height:1.35}
.landing-wrap p.lead{font-size:1.1rem;color:var(--gray);max-width:560px;margin:0 auto 36px}
.landing-cta{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;margin-bottom:56px}
.feature-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;text-align:left}
@media(max-width:800px){.feature-grid{grid-template-columns:repeat(2,1fr)}.landing-wrap h1{font-size:2rem}}
.feature-card{background:var(--white);border-radius:16px;padding:22px;box-shadow:0 8px 30px rgba(11,61,58,.08)}
.feature-card b{display:block;color:var(--teal-900);margin-bottom:6px;font-size:.95rem}
.feature-card span{font-size:.82rem;color:var(--gray)}

/* Auth forms */
.auth-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}
.auth-card{background:var(--white);border-radius:20px;box-shadow:0 10px 40px rgba(11,61,58,.12);padding:44px;width:100%;max-width:400px}
.auth-card h1{font-size:1.4rem;color:var(--teal-900);margin-bottom:8px}
.auth-card p.sub{color:var(--gray);font-size:.9rem;margin-bottom:24px}
.auth-card label{display:block;font-size:.82rem;font-weight:600;color:var(--gray);margin:14px 0 6px}
.auth-card input{width:100%;padding:13px 16px;border:1.5px solid #dfe6e4;border-radius:12px;font-size:.95rem}
.auth-card input:focus{outline:none;border-color:var(--teal-600)}
.url-preview{font-size:.82rem;color:var(--teal-700);margin-top:6px;font-family:monospace}
.auth-error{color:var(--danger);font-size:.85rem;margin-top:14px;min-height:1.2em}
.auth-card button[type=submit]{width:100%;margin-top:22px}
.auth-switch{text-align:center;margin-top:20px;font-size:.88rem;color:var(--gray)}
