/* ════════════════════════════════════════════════
   薩姆的財務指環觀點 — 共用主題 (Summer · Natural)
   ════════════════════════════════════════════════ */

:root {
  --sky:#e8f4f8; --sky2:#d0eaf4;
  --leaf:#3d7a5c; --leaf2:#5a9e78; --leaf3:#2d5e44;
  --sand:#f5efe0; --sand2:#ede4ce;
  --text:#1c2e24; --text2:#3d5246;
  --muted:#7a9488; --faint:#a8bfb4;
  --white:#ffffff;
  --coral:#e8836a; --amber:#f0a832;
  --bull:#2e7d52; --bear:#c0392b; --neutral:#c07800;
  --border:rgba(61,122,92,.12);
  --border2:rgba(61,122,92,.2);
  --shadow:0 2px 20px rgba(61,122,92,.08);
  --shadow-lg:0 8px 40px rgba(61,122,92,.14);
}

/* ── Reset & Base ── */
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; -webkit-tap-highlight-color:transparent }
html { scroll-behavior:smooth }
body {
  font-family:'Plus Jakarta Sans',sans-serif;
  color:var(--text); line-height:1.7;
  overflow-x:hidden;
  background: linear-gradient(160deg,#f8fdf6 0%,#f0f7ee 30%,#e8f4f0 60%,#f5efe0 100%);
  min-height:100vh;
}
body::before {
  content:'';
  position:fixed; inset:0; z-index:-1;
  background:
    radial-gradient(ellipse 80% 50% at 10% 20%,rgba(208,234,244,.5) 0%,transparent 60%),
    radial-gradient(ellipse 60% 40% at 90% 80%,rgba(232,243,232,.4) 0%,transparent 60%),
    linear-gradient(160deg,#f8fdf6 0%,#f0f7ee 30%,#e8f4f0 60%,#f5efe0 100%);
}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
a{color:var(--leaf);text-decoration:none}
a:hover{text-decoration:underline}
img{display:block;max-width:100%}

/* ── Animations ── */
@keyframes blink    { 0%,100%{opacity:1} 50%{opacity:.3} }
@keyframes tickRoll { 0%{transform:translateX(0)} 100%{transform:translateX(-50%)} }
@keyframes fadeUp   { from{opacity:0;transform:translateY(16px)} to{opacity:1;transform:translateY(0)} }
@keyframes leafFloat{
  0%,100%{transform:translateY(0) rotate(0deg)}
  33%{transform:translateY(-14px) rotate(5deg)}
  66%{transform:translateY(6px) rotate(-3deg)}
}

/* ── Leaf decorations ── */
.leaf-deco{position:fixed;pointer-events:none;z-index:0;opacity:.06}
.leaf-deco svg{animation:leafFloat 14s ease-in-out infinite}
.leaf-deco:nth-child(1){top:6%;right:4%}
.leaf-deco:nth-child(2){top:45%;right:1%;opacity:.04}.leaf-deco:nth-child(2) svg{animation-delay:-5s;transform:rotate(35deg)}
.leaf-deco:nth-child(3){bottom:18%;left:2%;opacity:.04}.leaf-deco:nth-child(3) svg{animation-delay:-9s;transform:rotate(-18deg)}

/* ── Ticker ── */
.ticker-wrap{
  background:linear-gradient(90deg,#d6eee3,#c8e8f4,#d6eee3);
  height:30px;display:flex;align-items:center;overflow:hidden;
  border-bottom:1px solid rgba(61,122,92,.15);position:relative;z-index:10;
}
.ticker-flag{
  background:var(--leaf);color:white;
  font:600 8px 'JetBrains Mono',monospace;letter-spacing:2px;
  padding:0 14px;height:100%;display:flex;align-items:center;gap:5px;
  clip-path:polygon(0 0,88% 0,100% 50%,88% 100%,0 100%);flex-shrink:0;
}
.ticker-dot{width:5px;height:5px;border-radius:50%;background:#a8ffc8;animation:blink 1.4s infinite}
.ticker-scroll{overflow:hidden;flex:1}
.ticker-track{display:flex;animation:tickRoll 14s linear infinite;white-space:nowrap}
.t-item{display:flex;gap:5px;padding:0 18px;font:400 10px 'JetBrains Mono',monospace;color:var(--text2)}
.t-up{color:#2e7d52;font-weight:600}.t-dn{color:#c0392b;font-weight:600}

/* ── Header ── */
header{
  position:sticky;top:0;z-index:100;
  background:rgba(248,253,246,.9);
  backdrop-filter:blur(20px);
  border-bottom:1px solid rgba(61,122,92,.1);
  box-shadow:0 1px 20px rgba(61,122,92,.06);
}
.header-inner{
  max-width:1100px;margin:0 auto;padding:14px 24px;
  display:flex;flex-direction:column;gap:10px;
}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--text)}
.logo:hover{text-decoration:none}
.logo-mark{
  width:32px;height:32px;border-radius:50%;
  background:linear-gradient(135deg,var(--leaf),var(--leaf2));
  display:flex;align-items:center;justify-content:center;
  color:white;font-size:14px;font-weight:700;flex-shrink:0;
  box-shadow:0 2px 10px rgba(61,122,92,.3);
}
.logo-text{font:600 16px 'Plus Jakarta Sans',sans-serif;color:var(--text)}
.logo-sub{font:400 10px 'JetBrains Mono',monospace;color:var(--muted);letter-spacing:.08em}
nav{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none}
nav::-webkit-scrollbar{display:none}
.nav-a,.nav-link{
  font:500 12px 'Plus Jakarta Sans',sans-serif;padding:6px 14px;
  border-radius:999px;text-decoration:none;white-space:nowrap;
  border:1px solid transparent;color:var(--text2);transition:all .2s;
}
.nav-a:hover{background:rgba(61,122,92,.08);color:var(--leaf);text-decoration:none}
.nav-a.active{background:var(--leaf);color:white;box-shadow:0 2px 10px rgba(61,122,92,.25)}
.nav-link{color:var(--leaf);border-color:rgba(61,122,92,.3);background:rgba(61,122,92,.05)}
.nav-link:hover{background:var(--leaf);color:white;box-shadow:0 2px 10px rgba(61,122,92,.25);text-decoration:none}
@media(min-width:768px){
  .header-inner{flex-direction:row;justify-content:space-between;align-items:center}
}

/* ── Article Layout ── */
.article-container{
  max-width:860px;margin:0 auto;padding:40px 20px 60px;
  position:relative;z-index:1;
  animation:fadeUp .5s ease both;
}

/* back link */
.back-link{
  display:inline-flex;align-items:center;gap:6px;
  font:500 12px 'Plus Jakarta Sans',sans-serif;
  color:var(--muted);padding:6px 0;margin-bottom:28px;
  transition:color .2s;
}
.back-link:hover{color:var(--leaf);text-decoration:none}
.back-link::before{content:'←';font-size:14px}

/* article hero */
.article-hero{margin-bottom:36px;padding-bottom:32px;border-bottom:1px solid var(--border)}
.article-cat{
  display:inline-flex;align-items:center;gap:4px;
  font:600 10px 'JetBrains Mono',monospace;letter-spacing:.1em;
  padding:4px 10px;border-radius:999px;margin-bottom:14px;
  background:rgba(61,122,92,.1);color:var(--leaf);border:1px solid rgba(61,122,92,.15);
}
.article-title{
  font:500 clamp(30px,5vw,50px)/1.15 'Cormorant',serif;
  color:var(--text);margin-bottom:18px;
  background:linear-gradient(135deg,#1c2e24 20%,#3d7a5c);
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
}
.article-meta{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.author-box{display:flex;align-items:center;gap:10px}
.author-av{
  width:36px;height:36px;border-radius:50%;
  background:linear-gradient(135deg,var(--leaf),var(--leaf2));
  display:flex;align-items:center;justify-content:center;
  color:white;font:700 14px 'Cormorant',serif;
  box-shadow:0 2px 8px rgba(61,122,92,.2);
}
.author-info strong{display:block;font:600 13px 'Plus Jakarta Sans';color:var(--text)}
.author-tag{
  font:500 10px 'JetBrains Mono';color:var(--leaf);
  background:rgba(61,122,92,.08);padding:2px 7px;border-radius:4px;
  margin-top:2px;display:inline-block;
}
.article-date{font:400 11px 'JetBrains Mono';color:var(--muted)}

/* tldr box */
.tldr-box{
  background:rgba(255,255,255,.7);
  border:1px solid var(--border2);
  border-left:3px solid var(--leaf);
  border-radius:12px;padding:24px 24px 20px;
  margin-bottom:36px;
  box-shadow:var(--shadow);
  position:relative;
}
.tldr-box::before{
  content:attr(data-label);
  position:absolute;top:-11px;left:16px;
  background:var(--leaf);color:white;
  padding:2px 10px;border-radius:999px;
  font:600 9px 'JetBrains Mono';letter-spacing:.1em;
}
.tldr-list{list-style:none}
.tldr-list li{
  margin-bottom:10px;padding-left:20px;position:relative;
  font:400 15px 'Plus Jakarta Sans';color:var(--text2);line-height:1.65;
}
.tldr-list li::before{content:'→';position:absolute;left:0;color:var(--leaf2);font-weight:700}

/* impact widget */
.impact-widget{
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:10px;margin-bottom:36px;
}
.impact-item{
  background:white;padding:18px 14px;border-radius:12px;
  border:1px solid var(--border);box-shadow:var(--shadow);
  text-align:center;
}
.impact-label{
  font:600 9px 'JetBrains Mono';letter-spacing:.1em;
  color:var(--muted);text-transform:uppercase;margin-bottom:8px;
}
.impact-status{font:600 16px 'Cormorant',serif}
.impact-status.bull{color:var(--bull)}
.impact-status.bear{color:var(--bear)}
.impact-status.neutral{color:var(--neutral)}

/* main content */
.main-content{font-size:17px;line-height:1.85;color:var(--text2);font-weight:400}
.main-content p{margin-bottom:24px}
.main-content h2{
  font:500 30px/1.2 'Cormorant',serif;color:var(--text);
  margin:40px 0 16px;padding-left:14px;
  border-left:3px solid var(--leaf2);
}
.main-content h3{
  font:600 18px 'Plus Jakarta Sans';color:var(--text);
  margin:28px 0 12px;
}
.main-content strong{color:var(--text);font-weight:600}
.main-content blockquote{
  background:rgba(255,255,255,.6);
  border-left:3px solid var(--amber);border-radius:0 10px 10px 0;
  padding:16px 20px;margin:24px 0;
  font-style:italic;color:var(--text2);
  box-shadow:var(--shadow);
}
.main-content ul,.main-content ol{padding-left:20px;margin-bottom:20px}
.main-content li{margin-bottom:8px}
.main-content a{color:var(--leaf);border-bottom:1px solid rgba(61,122,92,.3)}
.main-content a:hover{border-bottom-color:var(--leaf)}
.main-content hr{border:none;border-top:1px solid var(--border);margin:36px 0}
.main-content img{border-radius:12px;box-shadow:var(--shadow-lg);margin:24px 0}

/* highlight / callout */
.callout{
  background:rgba(61,122,92,.06);border:1px solid rgba(61,122,92,.18);
  border-radius:12px;padding:18px 20px;margin:24px 0;
}
.callout-label{
  font:700 9px 'JetBrains Mono';letter-spacing:.1em;
  color:var(--leaf);margin-bottom:8px;
}

/* data table */
.data-table{width:100%;border-collapse:collapse;margin:24px 0;font-size:14px}
.data-table th{
  background:var(--leaf);color:white;
  font:600 11px 'Plus Jakarta Sans';padding:10px 14px;text-align:left;
}
.data-table td{padding:10px 14px;border-bottom:1px solid var(--border)}
.data-table tr:nth-child(even) td{background:rgba(255,255,255,.5)}
.data-table tr:hover td{background:rgba(61,122,92,.05)}

/* ── Footer ── */
footer{
  padding:36px 24px;text-align:center;
  border-top:1px solid var(--border);
  background:rgba(248,253,246,.6);
}
.f-links{display:flex;justify-content:center;gap:20px;margin-bottom:14px;flex-wrap:wrap}
.f-link{font:400 12px 'Plus Jakarta Sans';color:var(--text2)}
.f-link:hover{color:var(--leaf);text-decoration:none}
.f-copy{font:400 11px 'JetBrains Mono';color:var(--muted)}
