*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
:root {
    --black: #080808; --ink: #0e0e0e; --surface: #141414; --surface-2: #1b1b1b;
    --border: #232323; --border-mid: #2c2c2c; --border-light: #383838;
    --gold: #C4A265; --gold-dim: #9a7d50; --gold-faint: #3e2f1a;
    --cream: #EDE8DF; --text-hi: #C8C0B5; --text: #A8A099; --sub: #888078; --faint: #4a4440;
    --font-display: 'Cormorant Garamond', Georgia, serif;
    --font-body: 'Noto Sans TC', sans-serif;
    --font-mono: 'DM Mono', monospace;
    --t-label: 0.75rem; --t-sm: 0.9rem; --t-base: 1rem; --t-lg: 1.1rem;
    --t-h3: 1.35rem; --t-h2: clamp(1.8rem, 3.2vw, 2.4rem); --t-hero: clamp(2.2rem, 4.5vw, 3.2rem);
    --max: 1080px; --gutter: clamp(1.25rem, 5vw, 3rem); --section: clamp(4rem, 9vw, 7rem);
}
html { font-size: 16px; scroll-behavior: smooth; }
body { background: var(--black); color: var(--text); font-family: var(--font-body); font-size: var(--t-base); line-height: 1.65; -webkit-font-smoothing: antialiased; overflow-x: hidden; }
::selection { background: var(--gold-faint); color: var(--cream); }
:focus-visible { outline: 1.5px solid var(--gold-dim); outline-offset: 3px; }
body::after { content:''; position:fixed; inset:0; background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); background-size:160px 160px; opacity:0.022; pointer-events:none; z-index:9000; }
.container { max-width: var(--max); margin: 0 auto; padding: 0 var(--gutter); }
.reveal { opacity:0; transform:translateY(12px); transition:opacity 0.4s cubic-bezier(0.4,0,0.2,1), transform 0.4s cubic-bezier(0.4,0,0.2,1); }
.reveal.in { opacity:1; transform:translateY(0); }
.reveal-d1 { transition-delay: 0.05s; } .reveal-d2 { transition-delay: 0.10s; } .reveal-d3 { transition-delay: 0.15s; }
.eyebrow { font-family:var(--font-body); font-size:var(--t-label); font-weight:400; letter-spacing:0.06em; color:var(--gold-dim); display:flex; align-items:center; gap:0.75rem; line-height:1; }
.eyebrow::before { content:''; width:20px; height:1px; background:var(--gold-dim); flex-shrink:0; }
.btn { font-family:var(--font-body); font-size:0.95rem; font-weight:500; letter-spacing:0.04em; text-decoration:none; display:inline-flex; align-items:center; justify-content:center; gap:0.6rem; padding:1rem 2.2rem; min-height:48px; border-radius:2px; transition:all 0.25s ease; cursor:pointer; border:1px solid transparent; white-space:nowrap; }
.btn-gold { background:var(--gold); color:var(--black); border-color:var(--gold); }
.btn-gold:hover { background:#d4b278; border-color:#d4b278; box-shadow:0 0 28px rgba(196,162,101,0.2); }
.btn-outline { background:transparent; color:var(--sub); border-color:var(--border-mid); }
.btn-outline:hover { color:var(--cream); border-color:var(--border-light); }
.h2 { font-family:var(--font-display); font-size:var(--t-h2); font-weight:300; color:var(--cream); letter-spacing:-0.01em; line-height:1.2; }
.h2 em { font-style:italic; color:var(--gold); }
/* ─── Nav ─── */
#nav { position:fixed; top:0; left:0; right:0; z-index:200; height:60px; display:flex; align-items:center; border-bottom:1px solid var(--border); background:rgba(8,8,8,0.93); backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px); transition:border-color 0.3s, transform 0.38s cubic-bezier(0.4,0,0.2,1); }
#nav.nav-hidden { transform:translateY(-100%); }
#nav .container { display:flex; align-items:center; justify-content:space-between; width:100%; }
.nav-logo { font-family:var(--font-display); font-size:1.05rem; font-weight:400; color:var(--cream); text-decoration:none; letter-spacing:0.03em; }
.nav-logo em { font-style:normal; color:var(--gold); }
.nav-logo-prefix { font-family:'Noto Sans TC',sans-serif; margin-right:4px; }
.nav-links { display:flex; align-items:center; gap:2rem; list-style:none; }
.nav-links a { font-family:var(--font-body); font-size:var(--t-label); font-weight:400; letter-spacing:0.04em; color:var(--sub); text-decoration:none; transition:color 0.2s; }
.nav-links a:hover { color:var(--cream); }
.nav-links a.active { color:var(--text-hi); }
.nav-links .nav-cta { color:var(--gold); border:1px solid var(--gold-dim); padding:0.45rem 1.1rem; border-radius:1px; transition:background 0.2s, color 0.2s; }
.nav-links .nav-cta:hover { background:var(--gold); color:var(--black); }
.nav-hamburger { display:none; background:none; border:1px solid var(--border-mid); color:var(--sub); width:36px; height:36px; cursor:pointer; border-radius:1px; font-size:1rem; line-height:1; align-items:center; justify-content:center; transition:color 0.2s, border-color 0.2s; }
.nav-hamburger:hover { color:var(--cream); border-color:var(--border-light); }
#mobile-menu { display:none; position:fixed; top:60px; left:0; right:0; background:var(--ink); border-bottom:1px solid var(--border); z-index:199; padding:0.5rem 0 1rem; }
#mobile-menu.open { display:block; }
#mobile-menu a { display:flex; align-items:center; font-family:var(--font-body); font-size:var(--t-label); letter-spacing:0.04em; color:var(--sub); text-decoration:none; padding:0.9rem var(--gutter); border-bottom:1px solid var(--border); transition:color 0.2s; min-height:44px; }
#mobile-menu a:hover { color:var(--cream); }
#mobile-menu .mobile-cta { color:var(--gold); border-bottom:none; }
/* ─── Hero ─── */
#learn-hero { padding: calc(60px + clamp(3rem,8vw,6rem)) var(--gutter) clamp(3rem,7vw,5rem); text-align:center; position:relative; overflow:hidden; border-bottom:1px solid var(--border); }
.hero-glow { position:absolute; pointer-events:none; border-radius:50%; filter:blur(120px); }
.hero-glow-a { width:min(700px,90vw); height:380px; background:radial-gradient(ellipse, rgba(196,162,101,0.09) 0%, transparent 70%); top:0; left:50%; transform:translateX(-50%); animation:glow-float 18s ease-in-out infinite; }
@keyframes glow-float { 0%,100%{transform:translateX(-50%) translateY(0)} 50%{transform:translateX(-50%) translateY(28px)} }
.learn-hero-inner { position:relative; z-index:1; max-width:720px; margin:0 auto; }
.learn-eyebrow { font-family:var(--font-body); font-size:0.82rem; letter-spacing:0.13em; color:var(--gold-dim); margin-bottom:2rem; display:block; }
.learn-hero-title { font-family:var(--font-display); font-size:var(--t-hero); font-weight:300; line-height:1.15; color:var(--cream); letter-spacing:-0.015em; margin-bottom:1.25rem; }
.learn-hero-title em { font-style:italic; color:var(--gold); }
.learn-hero-sub { font-size:var(--t-lg); color:var(--text); line-height:1.8; max-width:560px; margin:0 auto 2.5rem; }
.hero-tags { display:flex; gap:0.5rem; justify-content:center; flex-wrap:wrap; margin-bottom:1.5rem; }
.hero-tag { font-family:var(--font-mono); font-size:0.72rem; letter-spacing:0.06em; color:var(--gold-dim); border:1px solid var(--gold-faint); padding:0.3rem 0.8rem; border-radius:1px; }
/* ─── Layout ─── */
#learn-body { display:grid; grid-template-columns:220px 1fr; gap:0; min-height:70vh; border-top:1px solid var(--border); }
/* ─── Sidebar ─── */
.learn-sidebar { border-right:1px solid var(--border); padding:2.5rem var(--gutter) 4rem; position:sticky; top:60px; height:calc(100vh - 60px); overflow-y:auto; background:var(--ink); }
.sidebar-label { font-family:var(--font-mono); font-size:0.68rem; letter-spacing:0.12em; text-transform:uppercase; color:var(--border-light); margin-bottom:1.25rem; }
.sidebar-nav { list-style:none; display:flex; flex-direction:column; gap:0; }
.sidebar-nav li a { display:block; font-size:var(--t-sm); color:var(--sub); text-decoration:none; padding:0.65rem 0.85rem; border-left:2px solid transparent; transition:color 0.2s, border-color 0.2s, background 0.2s; border-radius:0 2px 2px 0; }
.sidebar-nav li a:hover { color:var(--text-hi); background:rgba(196,162,101,0.04); }
.sidebar-nav li a.active { color:var(--gold); border-left-color:var(--gold-dim); background:rgba(196,162,101,0.06); }
.sidebar-cat-label { font-family:var(--font-mono); font-size:0.65rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--faint); padding:1.25rem 0.85rem 0.4rem; }
/* ─── FAQ Main ─── */
.learn-main { padding:0; }
.faq-category { border-bottom:1px solid var(--border); }
.faq-cat-header { padding:clamp(2.5rem,5vw,4rem) clamp(2rem,4vw,3.5rem) 2rem; border-bottom:1px solid var(--border); background:var(--surface); }
.faq-cat-badge { display:inline-flex; align-items:center; gap:0.6rem; font-family:var(--font-mono); font-size:0.7rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--gold-dim); border:1px solid var(--gold-faint); padding:0.3rem 0.75rem; border-radius:1px; margin-bottom:1.25rem; }
.faq-cat-title { font-family:var(--font-display); font-size:clamp(1.6rem,3vw,2rem); font-weight:300; color:var(--cream); line-height:1.2; margin-bottom:0.75rem; }
.faq-cat-desc { font-size:var(--t-sm); color:var(--sub); line-height:1.85; max-width:520px; }
.faq-list { padding:0 clamp(2rem,4vw,3.5rem); }
.faq-item { border-bottom:1px solid var(--border); }
.faq-item:last-child { border-bottom:none; }
.faq-btn { width:100%; background:none; border:none; padding:1.5rem 0; display:flex; align-items:flex-start; justify-content:space-between; gap:1.5rem; cursor:pointer; text-align:left; }
.faq-btn:hover .faq-q { color:var(--cream); }
.faq-q { font-family:var(--font-display); font-size:1.15rem; font-weight:300; color:var(--text-hi); line-height:1.4; transition:color 0.2s; }
.faq-icon { width:24px; height:24px; border:1px solid var(--border-mid); border-radius:50%; display:flex; align-items:center; justify-content:center; color:var(--gold-dim); font-size:0.9rem; flex-shrink:0; transition:transform 0.3s, border-color 0.2s; margin-top:2px; }
.faq-item.open .faq-icon { transform:rotate(45deg); border-color:var(--gold-dim); }
.faq-body { max-height:0; overflow:hidden; transition:max-height 0.45s cubic-bezier(0.4,0,0.2,1); }
.faq-inner { padding:0 3rem 1.75rem 0; }
.faq-inner p { font-size:var(--t-sm); color:var(--sub); line-height:1.95; margin-bottom:0.85rem; }
.faq-inner p:last-child { margin-bottom:0; }
.faq-cite { font-family:var(--font-mono) !important; font-size:0.68rem !important; color:var(--faint) !important; letter-spacing:0.02em; border-left:1px solid var(--border); padding-left:0.75rem; }
/* ─── CTA Strip ─── */
.learn-cta-strip { background:var(--surface); border-top:1px solid var(--border); border-bottom:1px solid var(--border); padding:clamp(3rem,6vw,5rem) var(--gutter); text-align:center; }
.learn-cta-strip .h2 { margin-bottom:1rem; }
.learn-cta-sub { font-size:var(--t-base); color:var(--text); line-height:1.85; margin-bottom:2rem; max-width:480px; margin-left:auto; margin-right:auto; }
.learn-cta-actions { display:flex; gap:0.75rem; justify-content:center; flex-wrap:wrap; }
/* ─── Footer ─── */
footer { border-top:1px solid var(--border); padding:2rem 0; }
footer .container { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:0.75rem; }
.footer-logo { font-family:var(--font-display); font-size:0.95rem; font-weight:400; color:var(--sub); text-decoration:none; letter-spacing:0.03em; }
.footer-logo em { font-style:normal; color:var(--gold-dim); }
.footer-copy { font-family:var(--font-mono); font-size:var(--t-label); font-weight:300; letter-spacing:0.08em; color:var(--sub); }
.footer-nav-link { color:var(--sub); text-decoration:none; transition:color 0.2s; }
.footer-nav-link:hover { color:var(--gold-dim); }
/* ─── Responsive ─── */
@media (max-width: 900px) {
    #learn-body { grid-template-columns:1fr; }
    .learn-sidebar { position:static; height:auto; border-right:none; border-bottom:1px solid var(--border); padding:1.5rem var(--gutter); overflow:hidden; }
    .sidebar-nav { flex-direction:row; flex-wrap:wrap; gap:0.35rem; }
    .sidebar-nav li a { padding:0.4rem 0.7rem; border-left:none; border:1px solid var(--border); border-radius:2px; font-size:0.72rem; }
    .sidebar-nav li a.active { border-color:var(--gold-faint); }
    .sidebar-cat-label { display:none; }
}
@media (max-width: 768px) {
    .nav-links { display:none; }
    .nav-hamburger { display:flex; }
    .faq-cat-header, .faq-list { padding-left:var(--gutter); padding-right:var(--gutter); }
    .faq-inner { padding-right:0; }
}
@media (max-width: 480px) {
    .learn-cta-actions { flex-direction:column; align-items:center; }
    .learn-cta-actions .btn { width:100%; max-width:300px; }
}
