:root {
    --background: 60 12% 98%;
    --foreground: 160 12% 12%;

    --card: 0 0% 100%;
    --card-foreground: 160 12% 12%;

    --popover: 0 0% 100%;
    --popover-foreground: 222 47% 11%;

    --primary: 164 65% 24%;
    --primary-foreground: 0 0% 100%;

    --secondary: 65 80% 78%;
    --secondary-foreground: 160 30% 15%;

    --muted: 150 10% 94%;
    --muted-foreground: 160 6% 40%;

    --accent: 164 25% 92%;
    --accent-foreground: 164 65% 24%;

    --destructive: 0 84% 60%;
    --destructive-foreground: 0 0% 100%;

    --border: 150 10% 86%;
    --input: 150 10% 86%;
    --ring: 164 65% 24%;
    --hero-scrim: 160 18% 8%;
    --hero-text: 0 0% 100%;

    --success: 142 76% 36%;
    --success-foreground: 0 0% 100%;

    --radius: 0.5rem;

    --gradient-hero: linear-gradient(135deg, hsl(237, 94%, 58%), hsl(250, 100%, 70%));
    --gradient-card: linear-gradient(to bottom, hsl(0, 0%, 100%), hsl(240, 5%, 98%));
    
    --shadow-card: 0 1px 3px 0 hsl(0 0% 0% / 0.1), 0 1px 2px -1px hsl(0 0% 0% / 0.1);
    --shadow-card-hover: 0 8px 24px -8px hsl(160 20% 12% / 0.13);

    --sidebar-background: 0 0% 98%;
    --sidebar-foreground: 240 5.3% 26.1%;
    --sidebar-primary: 240 5.9% 10%;
    --sidebar-primary-foreground: 0 0% 98%;
    --sidebar-accent: 240 4.8% 95.9%;
    --sidebar-accent-foreground: 240 5.9% 10%;
    --sidebar-border: 220 13% 91%;
    --sidebar-ring: 217.2 91.2% 59.8%;
  }
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; font-family: ui-sans-serif, system-ui, sans-serif; color: hsl(var(--foreground)); background: hsl(var(--background)); line-height: 1.8; }
a { color: hsl(var(--primary)); text-underline-offset: 4px; }
a:focus-visible { outline: 3px solid hsl(var(--ring)); outline-offset: 4px; }
header { border-bottom: 1px solid hsl(var(--border)); }
header nav { max-width: 1184px; margin: auto; padding: 22px 24px; display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.brand { font-size: 22px; font-weight: 700; text-decoration: none; color: hsl(var(--foreground)); }
main { max-width: 800px; margin: auto; padding: 40px 24px 72px; }
.back { font-size: 13px; text-decoration: none; }
h1, h2 { font-family: Georgia, "Times New Roman", serif; font-weight: 400; letter-spacing: 0; }
h1 { font-size: 48px; line-height: 1.15; margin: 16px 0; overflow-wrap: break-word; }
h2 { font-size: 30px; line-height: 1.3; margin: 40px 0 18px; }
p { margin: 0 0 20px; }
.meta { font-size: 13px; color: hsl(var(--muted-foreground)); margin: 20px 0 30px; }
.category { font-size: 11px; text-transform: uppercase; color: hsl(var(--primary)); font-weight: 650; margin-top: 32px; }
.cover { width: 100%; height: auto; aspect-ratio: 16/9; object-fit: cover; border-radius: 6px; display: block; margin-bottom: 32px; }
.intro { font-size: 20px; }
.contents { border-top: 1px solid hsl(var(--border)); border-bottom: 1px solid hsl(var(--border)); padding: 24px 0; margin: 32px 0; font-size: 15px; }
.contents strong { display: block; }
.contents ul { margin: 8px 0; padding-left: 20px; }
li { margin: 8px 0; }
section { scroll-margin-top: 24px; }
.takeaway { border-left: 3px solid hsl(var(--primary)); padding: 8px 0 8px 24px; margin: 40px 0; }
.takeaway p { margin: 8px 0 0; }
.cta { display: inline-block; padding: 12px 24px; border-radius: 6px; background: hsl(var(--primary)); color: hsl(var(--primary-foreground)); text-decoration: none; font-weight: 600; }
.sources { font-size: 14px; border-top: 1px solid hsl(var(--border)); margin-top: 40px; padding-top: 24px; color: hsl(var(--muted-foreground)); }
.related { margin-top: 40px; padding-top: 20px; border-top: 1px solid hsl(var(--border)); }
footer { text-align: center; padding: 24px; background: hsl(var(--muted)); color: hsl(var(--muted-foreground)); font-size: 13px; }
@media(max-width:600px) { h1 { font-size: 34px; } h2 { font-size: 26px; } main { padding: 28px 20px 48px; } header nav { padding: 16px 20px; font-size: 13px; } .brand { font-size: 20px; } .intro { font-size: 18px; } }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior: auto; } }