/* ============ THEMES ============ */
:root,[data-theme="daylight"]{--bg-rgb:246 248 251;--surface-rgb:255 255 255;--card-rgb:255 255 255;--heading-rgb:15 23 42;--muted-rgb:100 116 139;--line-rgb:15 23 42;--accent-rgb:37 99 235;--accent2-rgb:8 145 178;--success-rgb:22 163 74;--warn-rgb:217 119 6;--card-alpha:0.85;--glass-bg:rgb(255 255 255/0.72);--header-solid-bg:rgb(255 255 255/0.94);--grid-line:rgba(37,99,235,.055);--noise-op:.015;--card-hover-shadow:0 8px 24px rgba(15,23,42,.07),0 16px 40px rgba(15,23,42,.08);--btn-glow:rgba(37,99,235,.28);--btn-glow-strong:rgba(8,145,178,.16);--glow:rgba(8,145,178,.25);--glow-strong:rgba(8,145,178,.4);--scroll-track:#ECF1F7}
[data-theme="sunset"]{--bg-rgb:250 246 239;--surface-rgb:255 255 255;--card-rgb:255 255 255;--heading-rgb:41 37 36;--muted-rgb:120 113 108;--line-rgb:41 37 36;--accent-rgb:234 88 12;--accent2-rgb:217 119 6;--success-rgb:21 128 61;--warn-rgb:180 83 9;--card-alpha:.85;--glass-bg:rgb(255 255 255/.72);--header-solid-bg:rgb(255 255 255/.94);--grid-line:rgba(234,88,12,.05);--noise-op:.015;--card-hover-shadow:0 8px 24px rgba(41,37,36,.07),0 16px 40px rgba(41,37,36,.08);--btn-glow:rgba(234,88,12,.28);--btn-glow-strong:rgba(217,119,6,.16);--glow:rgba(234,88,12,.25);--glow-strong:rgba(234,88,12,.4);--scroll-track:#F3EDE3}
[data-theme="aurora"]{--bg-rgb:240 247 244;--surface-rgb:255 255 255;--card-rgb:255 255 255;--heading-rgb:12 43 38;--muted-rgb:90 115 106;--line-rgb:12 43 38;--accent-rgb:13 148 136;--accent2-rgb:5 150 105;--success-rgb:22 163 74;--warn-rgb:202 138 4;--card-alpha:.85;--glass-bg:rgb(255 255 255/.72);--header-solid-bg:rgb(255 255 255/.94);--grid-line:rgba(13,148,136,.055);--noise-op:.015;--card-hover-shadow:0 8px 24px rgba(12,43,38,.07),0 16px 40px rgba(12,43,38,.08);--btn-glow:rgba(13,148,136,.28);--btn-glow-strong:rgba(5,150,105,.16);--glow:rgba(5,150,105,.25);--glow-strong:rgba(5,150,105,.4);--scroll-track:#E4EFEA}
[data-theme="midnight"]{--bg-rgb:11 15 25;--surface-rgb:18 24 38;--card-rgb:18 24 38;--heading-rgb:255 255 255;--muted-rgb:148 163 184;--line-rgb:255 255 255;--accent-rgb:59 130 246;--accent2-rgb:34 211 238;--success-rgb:34 197 94;--warn-rgb:245 158 11;--card-alpha:.5;--glass-bg:rgb(18 24 38/.6);--header-solid-bg:rgb(11 15 25/.95);--grid-line:rgba(59,130,246,.03);--noise-op:.03;--card-hover-shadow:0 0 30px rgba(59,130,246,.1),0 20px 40px rgba(0,0,0,.3);--btn-glow:rgba(59,130,246,.4);--btn-glow-strong:rgba(34,211,238,.2);--glow:rgba(34,211,238,.3);--glow-strong:rgba(34,211,238,.6);--scroll-track:#0B0F19}
[data-theme="nebula"]{--bg-rgb:15 10 30;--surface-rgb:26 20 46;--card-rgb:26 20 46;--heading-rgb:245 243 255;--muted-rgb:178 162 216;--line-rgb:255 255 255;--accent-rgb:139 92 246;--accent2-rgb:236 72 153;--success-rgb:52 211 153;--warn-rgb:251 191 36;--card-alpha:.55;--glass-bg:rgb(26 20 46/.6);--header-solid-bg:rgb(15 10 30/.95);--grid-line:rgba(139,92,246,.04);--noise-op:.03;--card-hover-shadow:0 0 30px rgba(139,92,246,.12),0 20px 40px rgba(0,0,0,.35);--btn-glow:rgba(139,92,246,.4);--btn-glow-strong:rgba(236,72,153,.2);--glow:rgba(236,72,153,.3);--glow-strong:rgba(236,72,153,.55);--scroll-track:#0F0A1E}

/* ============ BASE ============ */
*{margin:0;padding:0;box-sizing:border-box}
html,body{overflow-x:hidden}
body{font-family:'Inter',sans-serif;background:rgb(var(--bg-rgb));color:rgb(var(--heading-rgb))}
body,section,footer,.glass{transition:background-color .35s ease,border-color .35s ease,color .35s ease}
[id]{scroll-margin-top:100px}
::selection{background:rgb(var(--accent-rgb)/.22)}
:focus-visible{outline:2px solid rgb(var(--accent-rgb));outline-offset:2px;border-radius:4px}
::-webkit-scrollbar{width:8px}
::-webkit-scrollbar-track{background:var(--scroll-track)}
::-webkit-scrollbar-thumb{background:rgb(var(--accent-rgb)/.7);border-radius:4px}
.bg-grid{background-image:linear-gradient(var(--grid-line) 1px,transparent 1px),linear-gradient(90deg,var(--grid-line) 1px,transparent 1px);background-size:60px 60px}

/* ============ COMPONENTS ============ */
.glass{background:var(--glass-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgb(var(--line-rgb)/.1)}
.glass-card{background:rgb(var(--card-rgb)/var(--card-alpha));backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgb(var(--line-rgb)/.09);transition:all .4s ease}
.glass-card:hover{border-color:rgb(var(--accent-rgb)/.35);box-shadow:var(--card-hover-shadow);transform:translateY(-4px)}
.gradient-text{background:linear-gradient(135deg,rgb(var(--accent-rgb)),rgb(var(--accent2-rgb)));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.btn-primary{background:linear-gradient(135deg,rgb(var(--accent-rgb)),rgb(var(--accent2-rgb)));position:relative;overflow:hidden;transition:all .3s ease}
.btn-primary:hover{box-shadow:0 6px 24px var(--btn-glow),0 2px 10px var(--btn-glow-strong);transform:translateY(-2px)}
.btn-outline{border:1px solid rgb(var(--accent-rgb)/.45);background:transparent;transition:all .3s ease}
.btn-outline:hover{background:rgb(var(--accent-rgb)/.08);border-color:rgb(var(--accent-rgb));box-shadow:0 4px 16px var(--btn-glow);transform:translateY(-2px)}
.header-solid{background:var(--header-solid-bg)!important;border-bottom:1px solid rgb(var(--line-rgb)/.08)}

/* ============ REVEAL / FAQ / TOAST ============ */
.fade-in{opacity:0;transform:translateY(30px);transition:all .8s cubic-bezier(.16,1,.3,1)}
.fade-in.visible{opacity:1;transform:translateY(0)}
.faq-answer{max-height:0;overflow:hidden;transition:max-height .4s ease,padding .4s ease}
.faq-answer.open{max-height:600px;padding-top:12px}
.faq-icon{transition:transform .3s ease}
.faq-icon.rotated{transform:rotate(45deg)}
#themeIconWrap{display:inline-flex;transition:transform .45s cubic-bezier(.34,1.56,.64,1)}
#themeIconWrap.spin{transform:rotate(360deg)}
.theme-toast{position:fixed;top:84px;left:50%;z-index:80;transform:translate(-50%,-12px);opacity:0;pointer-events:none;transition:all .3s ease;display:flex;align-items:center;gap:10px;padding:10px 18px;border-radius:12px;background:var(--glass-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgb(var(--line-rgb)/.12);box-shadow:var(--card-hover-shadow);font-size:13px;font-weight:600;color:rgb(var(--heading-rgb));white-space:nowrap}
.theme-toast.show{opacity:1;transform:translate(-50%,0)}
#progressBar{position:fixed;top:0;left:0;height:3px;z-index:60;background:linear-gradient(90deg,rgb(var(--accent-rgb)),rgb(var(--accent2-rgb)));width:0%;transition:width .1s linear}

/* ============ ARTICLE PROSE ============ */
.prose-bow{line-height:1.8}
.prose-bow h2{font-size:1.65rem;font-weight:800;letter-spacing:-.02em;margin:2.5rem 0 1rem;color:rgb(var(--heading-rgb))}
.prose-bow h3{font-size:1.25rem;font-weight:700;margin:1.8rem 0 .7rem;color:rgb(var(--heading-rgb))}
.prose-bow p{margin:0 0 1.15rem;color:rgb(var(--muted-rgb))}
.prose-bow ul,.prose-bow ol{margin:0 0 1.2rem 1.4rem;color:rgb(var(--muted-rgb))}
.prose-bow ul{list-style:disc}.prose-bow ol{list-style:decimal}
.prose-bow li{margin-bottom:.55rem}
.prose-bow strong{color:rgb(var(--heading-rgb));font-weight:700}
.prose-bow a{color:rgb(var(--accent-rgb));font-weight:600;text-decoration:underline;text-underline-offset:3px}
.bow-table{width:100%;border-collapse:collapse;margin:0 0 1.4rem;font-size:.9rem;border-radius:12px;overflow:hidden;border:1px solid rgb(var(--line-rgb)/.12)}
.bow-table th{background:rgb(var(--accent-rgb)/.1);color:rgb(var(--heading-rgb));font-weight:700;text-align:left;padding:12px 16px}
.bow-table td{padding:12px 16px;border-top:1px solid rgb(var(--line-rgb)/.1);color:rgb(var(--muted-rgb))}
.bow-table tr:hover td{background:rgb(var(--accent-rgb)/.04)}
.cta-box{background:linear-gradient(135deg,rgb(var(--accent-rgb)/.1),rgb(var(--accent2-rgb)/.1));border:1px solid rgb(var(--accent-rgb)/.3);border-radius:16px;padding:1.5rem;margin:2rem 0}
.badge-green{display:inline-flex;align-items:center;gap:6px;background:rgb(var(--success-rgb)/.12);border:1px solid rgb(var(--success-rgb)/.3);color:rgb(var(--success-rgb));font-size:.75rem;font-weight:700;padding:4px 12px;border-radius:999px}
.badge-red{display:inline-flex;align-items:center;gap:6px;background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.3);color:#EF4444;font-size:.75rem;font-weight:700;padding:4px 12px;border-radius:999px}

@media(max-width:767px){body{padding-bottom:76px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}.fade-in{opacity:1!important;transform:none!important}}