/* Jugami Economics: "Market Ledger" theme. Banknote green, brass, demand blue, supply terracotta, receipt paper. */
:root{
  --ink:#16322b; --ink2:#24493f; --text:#1f2a27; --muted:#56635f;
  --paper:#f8f5ec; --paper2:#eee8d8; --card:#fffdf8; --line:#d6cfbb; --grid:rgba(22,50,43,.06);
  --demand:#2a62a8; --demand-soft:#dce8f6; --supply:#b4472a; --supply-soft:#f6e1d9;
  --brass:#c99a2e; --brass-ink:#7a5600; --good:#24704a; --bad:#a3322a;
  --radius:12px;
  --serif:"Iowan Old Style","Palatino Linotype",Palatino,"Book Antiqua",Georgia,serif;
  --sans:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --mono:ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;color:var(--text);font-family:var(--sans);font-size:18px;line-height:1.65;background:var(--paper);
  background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:28px 28px}
a{color:var(--demand);text-underline-offset:2px}
a:hover{color:var(--ink)}
img,svg{max-width:100%;height:auto}
h1,h2,h3{font-family:var(--serif);color:var(--ink);line-height:1.2}
h2{font-size:1.75rem;margin:2.4em 0 .4em;scroll-margin-top:12px;display:flex;align-items:baseline;gap:.5em}
h2 .n{font-family:var(--mono);font-size:.8rem;color:var(--brass-ink);border:1.5px solid var(--brass);border-radius:6px;padding:1px 7px;letter-spacing:.05em;flex:none;transform:translateY(-3px)}
h3{font-size:1.22rem;margin:1.4em 0 .3em;scroll-margin-top:12px}
p,li{max-width:42rem}
.skip{position:absolute;left:-9999px;top:8px;min-height:44px;display:inline-flex;align-items:center}
.skip:focus{left:8px;background:var(--ink);color:#fff;padding:8px 12px;z-index:10}
:focus-visible{outline:3px solid var(--brass);outline-offset:2px}
.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.wrap{max-width:1080px;margin:0 auto;padding:0 18px}
.m0{margin:0}
.note{font-size:.95rem;color:var(--muted)}
/* header */
.site-head{background:var(--ink);color:#fff;border-bottom:5px solid var(--brass)}
.site-head .bar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:8px 18px}
.brand{display:inline-flex;align-items:center;gap:10px;min-height:44px;color:#fff;text-decoration:none;font-family:var(--serif);font-size:1.3rem;letter-spacing:.02em}
.brand img{width:36px;height:36px}
.brand:hover{color:#f3d58c}
.head-nav{margin-left:auto;display:flex;flex-wrap:wrap;gap:6px}
.head-nav a{display:inline-flex;align-items:center;min-height:44px;color:#fff;text-decoration:none;font-size:.92rem;padding:4px 12px;border:1px solid rgba(255,255,255,.35);border-radius:8px}
.head-nav a:hover,.head-nav a:focus-visible{background:var(--brass);border-color:var(--brass);color:var(--ink)}
.crumbs{font-size:.92rem;color:var(--muted);margin:10px 0 0}
.crumbs a{color:var(--muted);display:inline-flex;align-items:center;min-height:44px}
/* hero */
.hero{display:grid;grid-template-columns:1.1fr 1fr;gap:30px;align-items:center;padding:14px 0 6px}
.hero h1{font-size:clamp(2.1rem,5.4vw,3.2rem);margin:.1em 0 .2em}
.kicker{font-family:var(--mono);font-size:.85rem;letter-spacing:.12em;text-transform:uppercase;color:var(--brass-ink);margin:0}
.tagline{font-family:var(--serif);font-style:italic;font-size:1.28rem;color:var(--supply);margin:0 0 .6em}
.hero figure{margin:0}
.hero figure svg{display:block;border-radius:var(--radius);box-shadow:0 10px 28px rgba(22,50,43,.18)}
.btns{display:flex;flex-wrap:wrap;gap:10px;margin:14px 0}
.btn,button{font:inherit;font-size:1rem;cursor:pointer;border-radius:8px;padding:8px 16px;min-height:44px;border:2px solid var(--ink);background:var(--ink);color:#fff;text-decoration:none;display:inline-flex;align-items:center;line-height:1.3}
.btn.ghost,button.ghost{background:var(--card);color:var(--ink)}
.btn:hover,button:hover{background:var(--ink2);color:#fff}
.btn.ghost:hover,button.ghost:hover{background:var(--paper2);color:var(--ink)}
button[aria-pressed="true"],button[aria-pressed="true"]:hover,button.ghost[aria-pressed="true"]:hover{background:var(--brass);border-color:var(--brass);color:var(--ink)}
button:disabled{opacity:.5;cursor:not-allowed}
/* toc + cards */
.toc{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:14px 0}
.toc li{max-width:none}
.toc a{display:inline-flex;align-items:center;min-height:44px;padding:4px 12px;border:1px solid var(--line);border-radius:8px;text-decoration:none;color:var(--ink);background:var(--card);font-size:.95rem}
.toc a:hover{border-color:var(--brass);color:var(--brass-ink)}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(245px,1fr));gap:16px;list-style:none;padding:0;margin:16px 0}
.card{position:relative;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;max-width:none}
.card h3{margin:.3em 0 .3em}
.card p{font-size:.98rem;margin:.3em 0}
.card .num{font-family:var(--mono);font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;color:var(--brass-ink)}
.card.live{border:2px solid var(--ink);box-shadow:5px 5px 0 var(--brass)}
.card.live h3 a{color:var(--ink)}
.card.live h3 a::after{content:"";position:absolute;inset:0}
.card.soon{background:transparent;border-style:dashed;color:var(--muted)}
.card.soon h3{color:var(--muted)}
.tag{display:inline-block;font-size:.85rem;color:var(--ink2);background:var(--paper2);border-radius:6px;padding:2px 8px;margin-top:6px}
/* blocks */
.two{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:start}
.callout{background:var(--card);border-left:6px solid var(--brass);border-radius:0 var(--radius) var(--radius) 0;padding:12px 18px;margin:18px 0}
.callout.demand{border-color:var(--demand);background:#f5f9fd}
.callout.supply{border-color:var(--supply);background:#fdf7f4}
.callout p:first-child{margin-top:.2em}
.def{font-weight:700;color:var(--ink)}
blockquote{margin:18px 0;padding:14px 20px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);font-family:var(--serif);font-size:1.12rem}
blockquote p{margin:.2em 0}
blockquote footer{font-family:var(--sans);font-size:.92rem;color:var(--muted);margin-top:.5em}
.receipt{background:#fff;border:1px dashed var(--muted);border-radius:4px;padding:12px 18px;font-family:var(--mono);font-size:.95rem;max-width:34rem}
.receipt p{margin:.25em 0}
figure{margin:18px 0}
figcaption{font-size:.93rem;color:var(--muted);margin-top:6px}
.fig svg{display:block;width:100%;height:auto;max-width:520px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius)}
.table-wrap{overflow-x:auto;margin:14px 0}
table.data{border-collapse:collapse;background:var(--card);font-size:.98rem;min-width:300px}
table.data caption{text-align:left;font-weight:700;color:var(--ink);padding:0 0 6px}
table.data th,table.data td{border:1px solid var(--line);padding:6px 12px;text-align:left}
table.data thead th{background:var(--ink);color:#fff}
table.data a.act{display:inline-flex;align-items:center;min-height:44px;min-width:44px;padding:0 8px;margin:0 -8px;box-sizing:border-box;font-weight:700}
table.data td.n{text-align:right;font-family:var(--mono)}
.vs{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:14px 0}
.vs > div{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:12px 16px}
.vs h4{margin:.2em 0;font-family:var(--serif);font-size:1.05rem;color:var(--ink)}
.vs ul{padding-left:1.2em;margin:.3em 0}
.vs .pro{border-top:5px solid var(--good)} .vs .con{border-top:5px solid var(--bad)}
/* market lab */
.lab{background:var(--card);border:2px solid var(--ink);border-radius:var(--radius);padding:16px;margin:18px 0;box-shadow:6px 6px 0 var(--brass)}
.lab-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:18px;align-items:start}
.lab svg{display:block;width:100%;background:#fff;border:1px solid var(--line);border-radius:8px;touch-action:manipulation}
.ctl{margin:0 0 12px;padding:0;border:0}
.ctl legend,.ctl label{font-weight:700;color:var(--ink);font-size:.98rem}
.ctl output{font-family:var(--mono);font-weight:700}
.ctl input[type=range]{width:100%;min-height:44px;accent-color:var(--ink)}
.ctl.d input[type=range]{accent-color:var(--demand)} .ctl.s input[type=range]{accent-color:var(--supply)}
.seg{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}
.seg button{font-size:.92rem;padding:6px 12px}
.readout{font-family:var(--mono);font-size:.95rem;background:var(--paper);border:1px dashed var(--muted);border-radius:6px;padding:10px 12px;margin-top:10px}
.readout p{margin:.2em 0}
.readout .alert{color:var(--bad);font-weight:700}
.readout .ok{color:var(--good);font-weight:700}
.noscript{background:#fff3cd;border:1px solid #c99a2e;border-radius:8px;padding:10px 14px;margin:12px 0}
/* practice + quiz */
.practice{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;margin:16px 0}
.practice .scene{font-family:var(--serif);font-size:1.15rem;color:var(--ink);min-height:3em}
.choices{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px;margin:10px 0}
.choices button{justify-content:center;text-align:center}
.choices button.right{background:var(--good);border-color:var(--good);color:#fff}
.choices button.wrong{background:var(--bad);border-color:var(--bad);color:#fff}
.feedback{min-height:1.6em;font-weight:600}
.feedback.good{color:var(--good)} .feedback.bad{color:var(--bad)}
.score{font-family:var(--mono);font-size:.95rem;color:var(--muted)}
form.quiz fieldset{border:1px solid var(--line);border-radius:var(--radius);background:var(--card);margin:0 0 14px;padding:12px 16px}
form.quiz legend{font-weight:700;color:var(--ink);padding:0 6px;max-width:100%}
form.quiz label{display:flex;gap:10px;align-items:center;min-height:44px;padding:2px 6px;border-radius:6px;cursor:pointer}
form.quiz label:hover{background:var(--paper)}
form.quiz input[type=radio]{width:20px;height:20px;flex:none;accent-color:var(--ink)}
.qfb{margin:.4em 0 0;font-weight:600}
.qfb.good{color:var(--good)} .qfb.bad{color:var(--bad)}
.quiz-score{font-weight:700;font-size:1.1rem;color:var(--ink)}
.talk ul,.sources ul{padding-left:1.2em}
.talk li{margin:.4em 0}
.sources{font-size:.97rem}
dl.terms{display:grid;grid-template-columns:max-content 1fr;gap:6px 18px;max-width:46rem}
dl.terms dt{font-weight:700;color:var(--ink)} dl.terms dd{margin:0}
/* pager + footer */
.pager{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:40px 0 10px;padding:10px 0;border-top:2px solid var(--ink)}
.pager a{display:inline-flex;align-items:center;min-height:44px;text-decoration:none;font-weight:600;color:var(--ink)}
.pager a:hover{color:var(--supply)}
.site-foot{background:var(--ink);color:#e9efe9;margin-top:40px;padding:22px 0 30px;border-top:5px solid var(--brass)}
.site-foot a{color:#f3d58c}
.site-foot p{max-width:none}
.jugami-more{display:flex;flex-wrap:wrap;align-items:center;column-gap:18px;row-gap:2px;margin-top:10px}
.jugami-more span{font-weight:700}
.jugami-more a{display:inline-flex;align-items:center;min-height:44px}
@media (max-width:820px){
  .hero,.two,.lab-grid{grid-template-columns:1fr}
  .hero figure{order:-1}
}
@media (max-width:560px){
  body{font-size:17.5px}
  .vs{grid-template-columns:1fr}
  dl.terms{grid-template-columns:1fr} dl.terms dd{margin-bottom:8px}
  .head-nav{margin-left:0}
  h2{font-size:1.5rem}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
@media print{.site-head,.site-foot,.lab,.practice,form.quiz{display:none}}
