/* Diggles — shared design system for the homepage and the docs.
   Structure follows the craft/inventory panels; palette is sampled from the
   Diggle artwork: moss ground, sage body, bandana green, leather + brass. */

:root{
  --moss:#bbd9b4;        /* page ground — matches the artwork background exactly */
  --moss-deep:#a9cca2;
  --paper:#f1f8ec;
  --paper2:#f8fcf5;
  --sage:#6c9d8b;        /* diggle body */
  --deep:#3a6c56;        /* bandana */
  --deeper:#2e5250;
  --edge:#24463a;        /* drawn outline */
  --edge-soft:#3c6d5b;
  --leather:#8b5a2b;
  --leather-dark:#5b3a1e;
  --pit:#22352c;         /* code blocks / mine shaft */
  --brass:#e0a72e;       /* buckle */
  --brass-soft:#f0d79a;
  --ink:#16302a;
  --muted:#4c6b5e;
  --line:#b9d0b3;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;background:var(--moss);color:var(--ink);
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none}
img{max-width:100%}

.wrap{width:min(1180px,calc(100% - 28px));margin:0 auto;padding:18px 0 96px}

/* ---------- display lettering: CSS recreation of the drawn logo style ---------- */
.display{
  font-family:"Arial Rounded MT Bold","Trebuchet MS","Avenir Next Rounded",Arial,sans-serif;
  font-weight:900;text-transform:uppercase;letter-spacing:.015em;
  color:var(--sage);
  -webkit-text-stroke:2px var(--edge);
  paint-order:stroke fill;
  text-shadow:0 3px 0 var(--deep),0 5px 0 var(--edge);
  line-height:.95;
}
h2.display{-webkit-text-stroke-width:1.25px;text-shadow:0 2px 0 var(--deep)}
@supports not (-webkit-text-stroke:1px black){
  .display{text-shadow:-2px -2px 0 var(--edge),2px -2px 0 var(--edge),-2px 2px 0 var(--edge),2px 2px 0 var(--edge),0 5px 0 var(--deep)}
  h2.display{text-shadow:-1px -1px 0 var(--edge),1px -1px 0 var(--edge),-1px 1px 0 var(--edge),1px 1px 0 var(--edge),0 2px 0 var(--deep)}
}

/* ---------- top bar ---------- */
.topbar{height:60px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.brand{display:flex;align-items:center;gap:10px;font-size:20px;font-weight:850;letter-spacing:-.03em}
.brand img{width:38px;height:38px;object-fit:contain}
.actions{display:flex;align-items:center;gap:9px}
.actions a{
  font-size:12px;font-weight:800;padding:9px 13px;border-radius:10px;
  border:1px solid var(--edge-soft);background:rgba(255,255,255,.42);
  box-shadow:inset 0 2px 0 rgba(255,255,255,.4);transition:.15s ease;
}
.actions a:hover{transform:translateY(-1px);background:rgba(255,255,255,.68)}
.actions .cta{background:var(--brass);border-color:var(--edge);box-shadow:0 3px 0 rgba(36,70,58,.22),inset 0 2px 0 rgba(255,255,255,.32)}
.actions .cta:hover{background:#e8b444}

/* ---------- panels ---------- */
.panel{
  background:var(--paper);border:2px solid var(--edge);border-radius:18px;
  box-shadow:inset 0 2px 0 rgba(255,255,255,.5),0 14px 34px rgba(22,48,42,.12);
  overflow:hidden;
}
.panel-lid{
  height:52px;background:linear-gradient(var(--sage),var(--deep));
  border-bottom:2px solid var(--edge);
  box-shadow:inset 0 3px 0 rgba(255,255,255,.22),inset 0 -4px 0 rgba(22,48,42,.16);
  position:relative;
}
.panel-lock{
  position:absolute;left:50%;top:32px;transform:translateX(-50%);
  width:40px;height:36px;border-radius:9px;background:var(--brass);
  border:2px solid var(--edge);box-shadow:inset 0 2px 0 rgba(255,255,255,.34);
  z-index:2;
}
.panel-lock::after{
  content:"";position:absolute;left:50%;top:9px;transform:translateX(-50%);
  width:9px;height:9px;border-radius:50%;border:2px solid var(--leather-dark);
}

.eyebrow{font-size:9.5px;letter-spacing:.18em;font-weight:900;color:var(--deep);margin-bottom:9px}

/* ---------- hero ---------- */
.hero{position:relative;margin-top:14px}
.hero-body{
  padding:34px 38px 30px;display:grid;grid-template-columns:minmax(0,1fr) 300px;
  gap:26px;align-items:center;position:relative;
}
.hero-body::before{ /* mine strata, very faint */
  content:"";position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(120% 80% at 78% 40%,rgba(108,157,139,.16),transparent 62%),
    repeating-linear-gradient(to bottom,transparent 0 38px,rgba(36,70,58,.035) 38px 39px);
}
.hero-copy{position:relative;z-index:1}
.hero h1{margin:0;font-size:clamp(40px,6.4vw,68px)}
.hero .lede{margin:14px 0 0;max-width:560px;color:var(--muted);font-size:15px;line-height:1.68}
.hero .lede b{color:var(--ink)}
.hero-art{position:relative;z-index:1;display:grid;place-items:center}
.hero-art img{width:100%;max-width:280px;filter:drop-shadow(0 16px 18px rgba(22,48,42,.22))}
.hero-cta{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.btn{
  display:inline-flex;align-items:center;gap:8px;padding:12px 17px;border-radius:12px;
  font-size:13px;font-weight:850;border:2px solid var(--edge);transition:.15s ease;
}
.btn.primary{background:var(--brass);box-shadow:0 4px 0 rgba(36,70,58,.26),inset 0 2px 0 rgba(255,255,255,.34)}
.btn.primary:hover{transform:translateY(-2px);background:#e8b444}
.btn.ghost{background:var(--paper2);box-shadow:0 4px 0 rgba(36,70,58,.14),inset 0 2px 0 rgba(255,255,255,.5)}
.btn.ghost:hover{transform:translateY(-2px);background:#fff}
.btn b{font-weight:900}

/* ---------- stat strip ---------- */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:14px}
.stat{
  background:var(--paper);border:2px solid var(--edge);border-radius:14px;padding:15px 16px;
  box-shadow:inset 0 2px 0 rgba(255,255,255,.5),0 8px 18px rgba(22,48,42,.08);
}
.stat small{display:block;font-size:8.5px;letter-spacing:.15em;font-weight:900;color:var(--deep);margin-bottom:7px}
.stat strong{display:block;font-size:26px;letter-spacing:-.04em;line-height:1}
.stat span{display:block;margin-top:6px;font-size:11.5px;color:var(--muted);line-height:1.45}

/* ---------- section scaffolding ---------- */
.section{margin-top:34px}
.section-tab{
  width:max-content;max-width:100%;display:flex;align-items:center;gap:9px;
  padding:8px 13px;margin-left:16px;background:var(--sage);
  border:2px solid var(--edge);border-bottom:0;border-radius:11px 11px 0 0;
  box-shadow:inset 0 2px 0 rgba(255,255,255,.24);
}
.section-tab span{font-size:9px;font-weight:900;color:var(--paper)}
.section-tab strong{font-size:12.5px;color:#12241f}
.sheet{
  background:var(--paper);border:2px solid var(--edge);border-radius:15px;padding:28px 30px;
  box-shadow:inset 0 2px 0 rgba(255,255,255,.5),0 10px 24px rgba(22,48,42,.09);
}
.sheet h2{font-size:clamp(22px,3vw,28px);margin:0 0 10px}
.sheet > p{font-size:13.5px;line-height:1.72;color:var(--muted);margin:0 0 14px;max-width:78ch}
.sheet > p b{color:var(--ink)}

/* ---------- the loop ---------- */
.loop{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin-top:18px}
.loop-step{
  position:relative;background:var(--paper2);border:1px solid var(--line);border-radius:11px;
  padding:12px 11px;min-height:104px;
}
.loop-step small{display:block;font-size:8px;color:var(--deep);font-weight:900;margin-bottom:6px;letter-spacing:.1em}
.loop-step strong{font-size:11.5px;line-height:1.34;display:block}
.loop-step .ico{width:24px;height:24px;margin-bottom:8px;color:var(--deep)}
.loop-step .ico svg{width:100%;height:100%}
.loop-step::after{
  content:"→";position:absolute;right:-7px;top:50%;transform:translateY(-50%);
  font-size:12px;font-weight:900;color:var(--edge-soft);z-index:2;
}
.loop-step:last-child::after{display:none} /* nothing to point at; it would clip the sheet edge */

/* ---------- mechanic cards ---------- */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:6px}
.card{
  background:var(--paper2);border:2px solid var(--edge);border-radius:14px;padding:19px 19px 21px;
  box-shadow:inset 0 2px 0 rgba(255,255,255,.6),0 8px 18px rgba(22,48,42,.08);
}
.card .badge{
  width:38px;height:38px;border-radius:11px;display:grid;place-items:center;
  background:var(--sage);border:2px solid var(--edge);color:var(--paper);
  box-shadow:inset 0 2px 0 rgba(255,255,255,.26);margin-bottom:13px;
}
.card .badge svg{width:19px;height:19px}
.card h3{margin:0 0 8px;font-size:15.5px;letter-spacing:-.02em}
.card p{margin:0;font-size:12.5px;line-height:1.66;color:var(--muted)}
.card p + p{margin-top:9px}

/* ---------- level ladder ---------- */
.ladder{display:grid;grid-template-columns:repeat(5,1fr);gap:9px;align-items:end;margin:20px 0 12px}
.rung{text-align:center}
.rung .bar{
  border:2px solid var(--edge);border-radius:10px 10px 6px 6px;
  background:linear-gradient(var(--sage),var(--deep));
  box-shadow:inset 0 2px 0 rgba(255,255,255,.24),inset 0 -4px 0 rgba(22,48,42,.16);
}
.rung:nth-child(1) .bar{height:40px}
.rung:nth-child(2) .bar{height:62px}
.rung:nth-child(3) .bar{height:86px}
.rung:nth-child(4) .bar{height:112px}
.rung:nth-child(5) .bar{height:142px;background:linear-gradient(var(--brass-soft),var(--brass))}
.rung .lvl{margin-top:9px;font-size:11.5px;font-weight:900}
.rung .note{font-size:9.5px;color:var(--muted);margin-top:3px;line-height:1.35}
.axis{display:flex;justify-content:space-between;gap:12px;font-size:10.5px;font-weight:800;color:var(--deep);border-top:1px dashed var(--line);padding-top:10px}

.callout{
  display:flex;gap:12px;align-items:flex-start;margin-top:16px;padding:14px 16px;
  background:var(--brass-soft);border:2px solid var(--edge);border-radius:12px;
  font-size:12.5px;line-height:1.6;
}
.callout svg{width:18px;height:18px;flex:0 0 auto;margin-top:1px;color:var(--leather-dark)}

/* ---------- closing banner ---------- */
.finale{
  margin-top:34px;padding:38px 30px;text-align:center;background:var(--paper);
  border:2px solid var(--edge);border-radius:18px;
  box-shadow:inset 0 2px 0 rgba(255,255,255,.5),0 14px 30px rgba(22,48,42,.11);
}
.finale h2{margin:0 0 10px;font-size:clamp(20px,3.4vw,32px)}
.finale p{margin:0 auto;max-width:56ch;color:var(--muted);font-size:13.5px;line-height:1.7}
.finale .hr{width:64px;height:10px;border-radius:5px;background:var(--brass);border:2px solid var(--edge);margin:20px auto 0;box-shadow:inset 0 2px 0 rgba(255,255,255,.34)}

.foot{margin-top:26px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;
  font-size:11px;color:var(--muted)}

/* ---------- dock ---------- */
.dock{position:fixed;left:50%;bottom:15px;transform:translateX(-50%);display:flex;gap:8px;z-index:30}
.dock a{
  width:36px;height:36px;border-radius:11px;display:grid;place-items:center;
  background:var(--paper);border:1px solid var(--edge);color:var(--deep);
  box-shadow:0 5px 12px rgba(22,48,42,.14),inset 0 2px 0 rgba(255,255,255,.5);
  transition:.15s ease;
}
.dock a:hover{transform:translateY(-2px);background:#fff}
.dock a.active{background:var(--brass)}
.dock svg{width:16px;height:16px}
.dock .x svg{fill:currentColor}

/* ---------- docs shell ---------- */
.docs-shell{display:grid;grid-template-columns:262px minmax(0,1fr);gap:16px;align-items:start;margin-top:14px}
.inventory{
  position:sticky;top:14px;padding:12px;background:var(--sage);
  border:2px solid var(--edge);border-radius:16px;
  box-shadow:inset 0 2px 0 rgba(255,255,255,.26),inset 0 -4px 0 rgba(22,48,42,.14),0 12px 28px rgba(22,48,42,.12);
}
.inventory-head{
  display:flex;align-items:center;gap:10px;background:#82ae9b;border:1px solid var(--edge-soft);
  border-radius:11px;padding:11px;
  box-shadow:inset 0 2px 0 rgba(255,255,255,.3),inset 0 -2px 0 rgba(22,48,42,.12);
}
.inventory-head .icon{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;background:var(--paper);border:1px solid var(--line)}
.inventory-head svg{width:17px;height:17px}
.inventory-head small{display:block;font-size:8px;letter-spacing:.16em;font-weight:900;color:#25473b}
.inventory-head strong{display:block;font-size:14px;margin-top:2px;color:#12241f}
.slots{display:flex;flex-direction:column;gap:7px;margin-top:10px}
.slot{
  display:grid;grid-template-columns:38px 1fr;gap:9px;align-items:center;min-height:50px;
  padding:7px 9px;border-radius:11px;background:#8fb9a5;border:1px solid var(--edge-soft);
  box-shadow:inset 0 2px 0 rgba(255,255,255,.24),inset 0 -3px 0 rgba(22,48,42,.1);transition:.14s ease;
}
.slot:hover{transform:translateY(-1px);background:#9cc3b0}
.slot.active{background:var(--paper);box-shadow:inset 0 0 0 2px var(--brass),inset 0 -3px 0 rgba(22,48,42,.08)}
.slot-icon{width:32px;height:32px;border-radius:8px;display:grid;place-items:center;background:var(--paper2);border:1px solid var(--edge-soft);color:var(--deep)}
.slot-icon svg{width:15px;height:15px}
.slot-copy{font-size:12px;font-weight:850;line-height:1.15}
.slot-copy small{display:block;font-size:8px;color:#2b5346;margin-bottom:3px;letter-spacing:.08em}
.inventory-note{
  margin-top:10px;padding:10px;border-radius:11px;background:var(--deep);
  border:1px solid var(--edge);color:#e7f3e6;font-size:10.5px;line-height:1.5;
}

.chapter{scroll-margin-top:18px;margin-top:16px}
.chapter-sheet{
  background:var(--paper);border:2px solid var(--edge);border-radius:15px;padding:26px 30px;
  box-shadow:inset 0 2px 0 rgba(255,255,255,.5),0 10px 22px rgba(22,48,42,.09);
}
.chapter-sheet h2{font-size:24px;margin:0 0 9px}
.chapter-sheet h3{font-size:14.5px;margin:26px 0 8px;letter-spacing:-.01em}
.chapter-sheet h3:first-child{margin-top:0}
.chapter-sheet p{font-size:13px;line-height:1.72;color:var(--muted);margin:0 0 12px}
.chapter-sheet strong{color:var(--ink)}
.chapter-sheet ol,.chapter-sheet ul{font-size:13px;line-height:1.72;color:var(--muted);padding-left:22px;margin:0 0 12px}
.chapter-sheet li{margin:5px 0}
.chapter-sheet code{font-family:"SFMono-Regular",Consolas,monospace}
.chapter-sheet p code,.chapter-sheet li code{
  background:#dcecd6;border:1px solid var(--line);border-radius:5px;padding:1px 5px;color:#1d4034;font-size:12px;
}
pre{
  background:var(--pit);color:#d8ecd4;border:2px solid #16241d;border-radius:11px;
  padding:15px 17px;overflow-x:auto;font-size:12px;line-height:1.7;
  box-shadow:inset 0 2px 0 rgba(255,255,255,.05);
}
.table-frame{overflow-x:auto;margin:14px 0 20px;border:2px solid var(--edge);border-radius:11px;background:var(--paper2)}
table{width:100%;border-collapse:collapse;font-size:12px;min-width:420px}
th,td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--line)}
th{background:#a9cfb8;font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:#183a2e}
tr:last-child td{border-bottom:0}

/* ---------- responsive ---------- */
@media(max-width:1100px){
  .docs-shell{grid-template-columns:1fr}
  .inventory{position:relative;top:auto}
  .slots{display:grid;grid-template-columns:repeat(2,1fr)}
  .loop{grid-template-columns:repeat(3,1fr)}
  .loop-step:nth-child(3)::after{content:"↓";right:auto;left:50%;top:auto;bottom:-16px;transform:translateX(-50%)}
  .cards{grid-template-columns:1fr}
  .stats{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:820px){
  .hero-body{grid-template-columns:1fr;padding:28px 22px 24px}
  .hero-art{order:-1}
  .hero-art img{max-width:210px}
  .hero .lede{max-width:none}
}
@media(max-width:680px){
  .wrap{width:min(100% - 16px,680px);padding-top:8px;padding-bottom:88px}
  .slots{grid-template-columns:1fr}
  .loop{grid-template-columns:1fr 1fr}
  .loop-step::after{display:none}
  .ladder{grid-template-columns:repeat(5,1fr);gap:5px}
  .rung .note{display:none}
  .sheet{padding:22px 18px}
  .chapter-sheet{padding:22px 18px}
  .finale{padding:30px 20px}
  .actions .docs-link{display:none}
}
