/* Chef's Guild — readable journal foundation. Authentic artwork is in art.css. */
:root {
  --paper: #d9c99f;
  --paper-light: #eee1bc;
  --card: #e5d6ad;
  --ink: #372b1b;
  --muted: #6d5a3c;
  --line: #ad9462;
  --gold: #ffd86a;
  --gold-dark: #a98235;
  --forest: #5b6937;
  --forest-deep: #25261b;
  --stone: #39352b;
  --sidebar-width: 280px;
  --heading-font: "RuneScape Bold", "Courier New", Courier, monospace;
  font-family: Arial, Helvetica, sans-serif;
  font-synthesis: none;
  color: var(--ink);
  background: #24221d;
  text-rendering: optimizeLegibility;
}
* { box-sizing: border-box; }
[hidden] { display: none !important; }
html { scroll-behavior: smooth; scroll-padding-top: 90px; }
body { margin: 0; font-size: 16px; line-height: 1.65; background: repeating-linear-gradient(0deg,#ffffff02 0 1px,transparent 1px 4px),#29271f; }
button,input,textarea,select { font: inherit; color: inherit; }
button,a,input,textarea { -webkit-tap-highlight-color: transparent; }
button { cursor: pointer; }
button:disabled,[aria-disabled="true"] { cursor: default; }
button:disabled { opacity: .52; }
a { color: #425328; text-underline-offset: 3px; }
a:hover { color: #243413; }
button,.primary-button,.secondary-button { min-height: 44px; }
:focus-visible { outline: 3px solid #b26820; outline-offset: 3px; }
.sidebar :focus-visible,.topbar :focus-visible,.guild-hero :focus-visible { outline-color: #ffe46f; }
::selection { background: #f2cf6e; color: #312613; }
.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; top: 8px; left: 8px; z-index: 100; padding: 10px 18px; background: #ffedb5; color: #372711; border: 3px ridge #b18e45; transform: translateY(-160%); }
.skip-link:focus { transform: translateY(0); }
.shell { min-height: 100vh; }
.pixel-icon,.brand-mark { image-rendering: pixelated; }
.pixel-icon { width: 34px; height: 34px; flex: 0 0 auto; }

/* Persistent wood-and-stone navigation. */
.sidebar {
  position: fixed; inset: 0 auto 0 0; z-index: 40; display: flex; flex-direction: column;
  width: var(--sidebar-width); color: #e3d2a9; overflow: hidden;
  border-right: 5px ridge #8c7952;
  background: repeating-linear-gradient(0deg,#0000000a 0 2px,transparent 2px 6px),linear-gradient(90deg,#2c2a22,#3a352a 45%,#302c24);
  box-shadow: inset -3px 0 #201d17,5px 0 0 #15150f55;
}
.brand { display: flex; align-items: center; gap: 11px; padding: 23px 18px 18px; text-decoration: none; color: var(--gold); border-bottom: 2px groove #746447; }
.brand:hover { color: #ffeb98; }
.brand-mark { display: block; width: 50px; height: 50px; flex: 0 0 50px; }
.brand-text { font-family: var(--heading-font); font-weight: 700; font-size: 21px; line-height: 1.08; letter-spacing: -.8px; text-shadow: 2px 2px #0d0c09; }
.brand-text span,.brand-text small { display: block; margin-top: 7px; font-family: Arial,Helvetica,sans-serif; color: #c8b694; font-size: 10px; font-weight: 400; letter-spacing: 1.25px; line-height: 1.4; text-shadow: none; text-transform: uppercase; }
#guild-nav { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; padding: 15px 13px; border-bottom: 2px groove #776544; }
.hub-link { display: flex; align-items: center; justify-content: center; gap: 6px; min-height: 43px; padding: 8px 6px; font-family: var(--heading-font); font-size: 12px; line-height: 1.25; font-weight: 700; text-align: center; text-decoration: none; color: #e6c978; border: 2px solid; border-color: #85714e #201d16 #201d16 #85714e; background: linear-gradient(#544b38,#393328); box-shadow: 0 0 0 1px #18160f; }
.hub-link:hover { color: #fff19a; background: #60543a; }
.hub-link.current,.hub-link.active,.hub-link[aria-current="page"] { color: #ffee98; background: #302b20; border-color: #1d1b14 #a18a54 #a18a54 #1d1b14; box-shadow: inset 0 0 0 1px #6d5935; }
.hub-link .pixel-icon { width: 23px; height: 23px; }
.rail-progress { padding: 16px 20px; color: #c8b88c; border-bottom: 2px groove #776544; font-size: 11px; }
.rail-progress > div { display: flex; justify-content: space-between; gap: 10px; margin-bottom: 9px; }
.rail-progress strong { color: #ffe27a; font-weight: 700; font-variant-numeric: tabular-nums; }
.rail-progress small { display: block; margin-top: 7px; font-size: 10px; color: #bfb08e; }
progress { display: block; appearance: none; -webkit-appearance: none; width: 100%; height: 9px; overflow: hidden; border: 1px solid #796540; border-radius: 0; background: #b2a07a; }
progress::-webkit-progress-bar { background: #b2a07a; }
progress::-webkit-progress-value { background: linear-gradient(#8a994e,#546832); }
progress::-moz-progress-bar { background: #63773a; }
.rail-progress progress { background: #201f17; border-color: #70603f; }
.rail-progress progress::-webkit-progress-bar { background: #201f17; }
.rail-progress progress::-webkit-progress-value { background: linear-gradient(#f0ca5b,#b18b33); }
.rail-progress progress::-moz-progress-bar { background: #d1ab44; }
#chapter-nav { flex: 1; min-height: 0; overflow-y: auto; padding: 10px 10px 22px; scrollbar-width: thin; scrollbar-color: #8b7650 #28251d; }
.nav-phase { border-bottom: 1px solid #8a73432d; padding-bottom: 5px; margin-bottom: 5px; }
.nav-phase > summary { display: flex; justify-content: space-between; position: relative; gap: 8px; list-style: none; min-height: 46px; margin: 0; padding: 13px 9px 13px 22px; cursor: pointer; color: #ddc384; font-size: 10px; font-weight: 700; letter-spacing: .7px; line-height: 1.6; text-transform: uppercase; }
.nav-phase > summary::-webkit-details-marker { display: none; }
.nav-phase > summary::before { content: "▸"; position: absolute; top: 11px; left: 6px; font-size: 15px; color: #c6a564; }
.nav-phase[open] > summary::before { content: "▾"; }
.nav-phase > summary > span { color: #b9a784; font-weight: 400; font-size: 10px; letter-spacing: 0; }
.chapter-link { position: relative; display: flex; align-items: flex-start; gap: 8px; min-height: 43px; padding: 10px 9px; margin: 2px 0; border: 1px solid transparent; text-decoration: none; color: #ded2b4; font-size: 12px; line-height: 1.5; }
.chapter-link:hover { background: #5c513733; color: #ffdd73; border-color: #8d75433d; }
.chapter-link.current { color: #ffe275; border-color: #a1844d; background: #26251c; box-shadow: inset 2px 0 #e5c15e; }
.chapter-number { flex: 0 0 19px; font-family: var(--heading-font); font-size: 10px; line-height: 20px; color: #aa9471; }
.chapter-name { flex: 1; }
.chapter-count { flex: 0 0 auto; color: #b8a884; font-size: 9px; line-height: 20px; white-space: nowrap; font-variant-numeric: tabular-nums; }
.chapter-link.current .chapter-number,.chapter-link.current .chapter-count { color: #d6bb6a; }
.chapter-link.complete:not(.current) { color: #9fbe7d; }
.chapter-link.complete:not(.current) .chapter-count { color: #a0b882; }
.sidebar-footer { border-top: 2px groove #776544; padding: 14px 20px 17px; color: #b3a080; font-size: 10px; line-height: 1.7; }
.sidebar-footer a { color: #e8cc83; }
.sidebar-footer > span { display: block; margin-top: 3px; }

/* Game-style utility bar, with the readable journal below. */
.workspace { min-width: 0; min-height: 100vh; margin-left: var(--sidebar-width); }
.topbar { position: sticky; top: 0; z-index: 25; display: flex; align-items: center; gap: 18px; min-height: 68px; padding: 12px 28px; border-bottom: 4px ridge #8b7650; background: linear-gradient(#4a4335,#322e25); box-shadow: 0 4px 0 #14130e55; color: #dfc68a; }
.breadcrumb { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-family: var(--heading-font); font-size: 12px; font-weight: 700; letter-spacing: .1px; color: #e1c378; }
.search-wrap { flex: 0 1 280px; position: relative; }
.search-wrap input { width: 100%; min-width: 0; height: 42px; padding: 8px 42px 8px 36px; border: 2px solid; border-color: #1c1b15 #8b7956 #8b7956 #1c1b15; border-radius: 0; background: #24231b; color: #f2e4bd; font-size: 13px; box-shadow: inset 1px 1px #0005; }
.search-wrap input::placeholder { color: #c0b08d; }
.search-wrap > svg { position: absolute; left: 11px; top: 12px; color: #d6bd78; pointer-events: none; }
.search-wrap kbd { position: absolute; right: 10px; top: 10px; color: #b9a67f; font-family: var(--heading-font); font-size: 11px; border: 1px solid #6d5c3b; padding: 0 4px; background: #363025; pointer-events: none; }
.tools-button,.menu-button { display: inline-flex; align-items: center; justify-content: center; gap: 6px; padding: 8px 13px; border: 2px solid; border-color: #9b8356 #211e16 #211e16 #9b8356; border-radius: 0; color: #ffe184; background: linear-gradient(#65563a,#473d2a); box-shadow: 0 0 0 1px #211e16; font-size: 12px; font-weight: 700; white-space: nowrap; }
.tools-button:hover,.menu-button:hover { color: #fff0a9; background: #6e5b3b; }
.menu-button { display: none; }
#main { max-width: 1060px; margin: 26px auto; padding: 30px 38px 34px; width: calc(100% - 50px); min-height: 70vh; border: 5px ridge #917846; outline: 1px solid #15150d; background: radial-gradient(ellipse at 30% 0,#fff5d655,transparent 65%),repeating-linear-gradient(0deg,#00000003 0 1px,transparent 1px 4px),var(--paper); box-shadow: inset 0 0 0 2px #f3e1b250,0 6px 20px #0004; }
.route-head { display: flex; align-items: center; justify-content: space-between; gap: 15px; margin-bottom: 22px; color: #6b5937; font-size: 12px; }
.route-head p { margin: 0; }
.route-head a { color: #4e5a2e; font-weight: 700; }
.eyebrow,.section-kicker { display: block; color: #775821; font-family: var(--heading-font); font-size: 11px; font-weight: 700; letter-spacing: .8px; text-transform: uppercase; }
h1,h2,h3,h4 { line-height: 1.25; text-wrap: balance; }
h1 { margin: 0 0 17px; font-family: var(--heading-font); font-size: clamp(28px,2.8vw,38px); font-weight: 700; letter-spacing: -1.2px; color: #4b3419; text-shadow: 1px 1px #f7e9bd; }
h2 { font-family: var(--heading-font); font-size: 25px; letter-spacing: -.8px; color: #4a341b; }
h3 { font-family: var(--heading-font); font-size: 19px; letter-spacing: -.5px; color: #4a341b; }
.chapter-heading { margin: 25px 0 26px; }
.chapter-topline { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 13px; }
.chapter-topline > span:not(.eyebrow) { font-size: 11px; color: #74603e; }
#chapter-intro { margin: 0; max-width: 760px; color: #665033; font-size: 15px; line-height: 1.8; }
.chapter-progress { margin-top: 23px; }
#chapter-content { min-width: 0; }
.section-heading { margin: 30px 0 13px; font-family: var(--heading-font); font-size: 23px; font-weight: 700; letter-spacing: -.7px; line-height: 1.3; }
.section-heading:first-child { margin-top: 0; }
.task-item { position: relative; margin: 0 0 9px; border: 1px solid #b49a66; border-bottom: 2px solid #9f8450; background: linear-gradient(100deg,#f0e3bc,#e1cfa3); box-shadow: inset 0 1px #fff4ce88; }
.task-item:hover { border-color: #93703a; background: #f0e1b8; }
.task-label { display: flex; align-items: flex-start; gap: 12px; min-height: 66px; padding: 16px 17px; cursor: pointer; }
.task-label input[type="checkbox"] { position: relative; flex: 0 0 22px; width: 22px; height: 22px; margin: 3px 0 0; appearance: none; -webkit-appearance: none; border: 2px solid; border-color: #6f5933 #c6b389 #c6b389 #6f5933; border-radius: 0; background: #ccb98b; box-shadow: inset 1px 1px #8b75494d,0 0 0 1px #9a804c; cursor: pointer; }
.task-label input[type="checkbox"]:checked { border-color: #314424 #7a8c4e #7a8c4e #314424; background: #4b6535; }
.task-label input[type="checkbox"]:checked::after { content: ""; display: block; position: absolute; width: 5px; height: 10px; left: 6px; top: 2px; border: solid #e8f1b8; border-width: 0 3px 3px 0; transform: rotate(45deg); }
.task-index { flex: 0 0 20px; margin-top: 3px; color: #9c7f47; font-family: var(--heading-font); font-size: 10px; font-variant-numeric: tabular-nums; line-height: 23px; }
.task-copy { flex: 1; min-width: 0; color: #594329; font-size: 15px; line-height: 1.8; overflow-wrap: anywhere; }
.task-copy b,.task-copy strong { color: #352514; font-weight: 700; }
.task-item.done { border-color: #9eaa77; background: #ced2a6; }
.task-item.done .task-copy { color: #58633b; }
.task-item.done .task-copy b,.task-item.done .task-copy strong { color: #3b512c; }
.task-item.done .task-index { color: #778454; }
.trip-kit { margin: 0 16px 16px 70px; border: 1px solid #b69b62; background: #e5d4a8; color: #514023; }
.kit-heading { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; padding: 9px 12px; border-bottom: 1px solid #b69b62; background: #d4bd86; font-size: 11px; line-height: 1.6; }
.kit-heading strong { letter-spacing: .7px; }
.kit-heading > span:last-child:not(.kit-icon) { flex-basis: 100%; font-size: 12px; }
.kit-icon { color: #61502b; font-size: 18px; line-height: 1; }
.kit-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
.kit-grid > div { padding: 12px 14px; border-right: 1px solid #c9b17d; border-bottom: 1px solid #c9b17d; }
.kit-grid > div:nth-child(even) { border-right: 0; }
.kit-grid h3 { margin: 0 0 8px; font-family: Arial,Helvetica,sans-serif; color: #423017; font-size: 12px; font-weight: 700; }
.kit-grid ul { margin: 0; padding-left: 17px; }
.kit-grid li { margin: 0 0 6px; font-size: 13px; line-height: 1.65; overflow-wrap: anywhere; }
.kit-grid li:last-child { margin-bottom: 0; }
.task-item.done .trip-kit { background: #d8d9b1; border-color: #a2aa7c; }
.task-item.done .kit-heading { background: #c3c99a; border-color: #a2aa7c; }
@media(max-width:700px) {
  .trip-kit { margin: 0 12px 12px; }
  .kit-grid { grid-template-columns: 1fr; }
  .kit-grid > div { border-right: 0; }
}
.body-copy { margin: 17px 0; color: #5f482b; font-size: 15px; line-height: 1.85; }
.small-copy,.helper-text,.muted { color: #79613e; font-size: 12px; line-height: 1.8; }
.small-copy { margin: 15px 0 22px; }
.helper-text { margin: 10px 0; }
.callout { margin: 20px 0; padding: 16px 18px; border: 1px solid #a5aa75; border-left: 4px solid #5f733b; background: #d0d3ab; color: #4d5b32; font-size: 13px; line-height: 1.8; }
.callout p:first-child { margin-top: 0; }
.callout p:last-child { margin-bottom: 0; }
.callout b,.callout strong { color: #354b28; }
.callout.amber { background: #e3cb8b; border-color: #b99750; border-left-color: #987027; color: #6c5025; }
.callout.amber b,.callout.amber strong { color: #543c17; }
.table-wrap { max-width: 100%; overflow-x: auto; margin: 20px 0 24px; border: 2px solid #a88c54; background: #eaddb5; }
table { width: 100%; border-collapse: collapse; text-align: left; font-size: 13px; line-height: 1.7; }
th,td { padding: 13px 14px; vertical-align: top; border-bottom: 1px solid #bca370; }
thead th { background: #c6ad76; color: #4a3419; font-family: var(--heading-font); font-size: 12px; font-weight: 700; letter-spacing: -.2px; }
tbody th { background: transparent; color: #4a331b; font-size: 13px; font-weight: 700; }
tbody td { color: #675032; }
tbody tr:nth-child(even) { background: #daca9e; }
tbody tr:last-child td,tbody tr:last-child th { border-bottom: 0; }
.toc-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; margin: 22px 0; }
.toc-grid a { display: flex; align-items: center; justify-content: space-between; min-height: 70px; padding: 15px 16px; border: 2px solid #b49a62; background: #eadbb2; color: #503b1f; text-decoration: none; font-size: 14px; }
.toc-grid a:hover { background: #f2e4b9; border-color: #8d6a32; }
.field-label { display: block; margin: 22px 0; color: #594224; font-size: 13px; font-weight: 700; }
.field-label textarea { display: block; resize: vertical; width: 100%; min-height: 112px; margin-top: 8px; padding: 13px 14px; border: 2px solid; border-color: #a28a57 #eaddb7 #eaddb7 #a28a57; border-radius: 0; background: #f3e6be; color: #463019; font-size: 15px; line-height: 1.7; font-weight: 400; }
.field-label textarea::placeholder { color: #9a8359; }
.sources { margin-top: 30px; padding: 9px 15px; border: 2px groove #c8ad75; background: #cfbb89; }
.sources summary { min-height: 42px; padding: 8px 0; color: #5b4b26; cursor: pointer; font-size: 12px; font-weight: 700; }
.source-links { display: flex; flex-wrap: wrap; align-items: baseline; gap: 7px 15px; padding: 6px 0 12px; }
.source-links a { display: inline-block; max-width: 100%; color: #46542d; font-size: 12px; line-height: 1.7; overflow-wrap: anywhere; }
.chapter-bottom { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-top: 26px; padding-top: 23px; border-top: 2px groove #baa16c; }
#chapter-position { color: #8b703e; font-family: var(--heading-font); font-size: 12px; white-space: nowrap; }
.primary-button,.secondary-button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 11px 17px; border: 2px solid; border-radius: 0; font-family: var(--heading-font); font-size: 13px; font-weight: 700; line-height: 1.45; text-decoration: none; text-align: center; }
.primary-button { border-color: #ad995c #2b2b1d #2b2b1d #ad995c; background: linear-gradient(#686543,#444a30); color: #ffe17a; box-shadow: 0 0 0 1px #353221,inset 0 0 0 1px #82784b; text-shadow: 1px 1px #272214; }
.primary-button:hover { color: #fff0a0; background: #767049; }
.secondary-button { border-color: #f1dda6 #99804a #99804a #f1dda6; background: #ccb47d; color: #574020; box-shadow: 0 0 0 1px #a5894e; }
.secondary-button:hover { background: #dec78d; color: #3b2a12; }
.primary-button:active,.secondary-button:active,.tools-button:active,.hub-link:active { transform: translateY(1px); }
.site-footer { margin: 30px 0 0; padding: 22px 0 0; border-top: 2px groove #bba16c; color: #80663d; font-size: 11px; line-height: 1.8; }
.site-footer a { color: #62613a; }
.site-footer p { margin: 0 0 6px; }

/* Guild Hall and its noticeboard. */
.hub-view { min-width: 0; }
.guild-hero { position: relative; isolation: isolate; display: flex; align-items: center; min-height: 350px; margin: -2px -2px 26px; padding: 32px; overflow: hidden; border: 4px ridge #9d824b; background: #445032; box-shadow: 0 0 0 1px #3b3220,inset 0 0 0 2px #27281c; }
.guild-hero::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg,#191d12eb 0,#1e2614d6 35%,#20271859 69%,#27301d10); }
.guild-hero > div { max-width: 510px; }
.guild-hero h1 { font-family: var(--heading-font); font-size: clamp(36px,4.1vw,58px); line-height: 1.04; letter-spacing: -2.2px; color: #ffe17b; text-shadow: 3px 3px 0 #141409,1px 1px 0 #141409; margin-bottom: 17px; }
.guild-hero p { max-width: 425px; color: #f2e8c8; font-size: 15px; line-height: 1.7; text-shadow: 1px 2px #14180c; }
.guild-hero .section-kicker,.guild-hero .eyebrow { color: #d6c184; font-size: 11px; letter-spacing: 1.6px; text-shadow: 1px 1px #151609; margin-bottom: 16px; }
.guild-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; margin-top: 23px; }
.guild-hero .primary-button { color: #3f3013; border-color: #fff0b8 #846328 #846328 #fff0b8; background: linear-gradient(#eed38c,#c4a04f); box-shadow: 0 0 0 1px #382b16; text-shadow: none; }
.guild-hero .primary-button:hover { background: #f1d794; }
.guild-hero .secondary-button { background: #393d28e8; color: #eddaa0; border-color: #8a8055 #202416 #202416 #8a8055; box-shadow: 0 0 0 1px #242318; }
.guild-intro { margin: 28px 0; }
.guild-intro h2 { margin: 0 0 10px; }
.guild-intro p { color: #665031; font-size: 15px; }
.guild-board { display: grid; gap: 0; margin: 22px 0 27px; padding: 9px 18px; border: 4px ridge #a98e57; background: #cdb47d; box-shadow: inset 0 0 0 2px #e9cf9666; }
.board-entry { display: flex; align-items: center; gap: 17px; min-width: 0; padding: 21px 0; border-bottom: 2px groove #b99b60; text-decoration: none; color: #46331c; }
.board-entry:last-child { border-bottom: 0; }
a.board-entry:hover { color: #705221; }
.board-entry h2,.board-entry h3 { margin: 0 0 6px; font-size: 22px; }
.board-entry p { margin: 0; color: #6c512e; font-size: 14px; line-height: 1.7; }
.board-entry > div:not(.board-icon) { flex: 1; min-width: 0; }
.board-entry > span:last-child { color: #8b6b2c; }
.board-icon { display: grid; place-items: center; flex: 0 0 57px; width: 57px; height: 57px; border: 3px solid; border-color: #8b774e #29281c #29281c #8b774e; background: #48442f; box-shadow: 0 0 0 1px #76603c; color: #e7ca73; font-size: 26px; }
.board-icon .pixel-icon { width: 36px; height: 36px; }
.route-map { display: grid; gap: 10px; margin: 23px 0; }
.route-card { display: flex; align-items: center; gap: 16px; padding: 16px; border: 2px solid; border-color: #f1e0ac #a68a4e #a68a4e #f1e0ac; background: #dfc995; color: #50391c; text-decoration: none; box-shadow: 0 0 0 1px #b89a5d; }
.route-card:hover { color: #6c4b20; background: #efdaa5; }
.route-card > span:nth-child(2) { flex: 1; }
.route-card-number { display: flex; align-items: center; justify-content: center; flex: 0 0 37px; width: 37px; height: 37px; border: 2px ridge #b7974f; background: #4e4830; color: #f5d377; font-family: var(--heading-font); font-size: 14px; }
.route-card strong { display: block; font-family: var(--heading-font); font-size: 18px; line-height: 1.3; }
.route-card small { display: block; margin-top: 5px; color: #7d6036; font-size: 12px; line-height: 1.6; }

/* Personal progress ledger. */
.progress-cards { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; margin: 24px 0; }
.progress-card { min-width: 0; padding: 18px 16px; border: 3px ridge #a98e54; background: #453e2b; color: #d7c293; box-shadow: inset 0 0 0 1px #2b2a1d; }
.progress-card strong { display: block; margin: 6px 0; color: #ffe17a; font-family: var(--heading-font); font-size: 28px; letter-spacing: -1px; line-height: 1.25; }
.progress-card span,.progress-card small { display: block; color: #cbb889; font-size: 12px; line-height: 1.6; }
.progress-card h3 { margin: 0; color: #ddc58a; font-family: Arial,Helvetica,sans-serif; font-size: 11px; letter-spacing: .6px; text-transform: uppercase; }
.phase-progress { margin: 14px 0; padding: 15px 16px; border: 1px solid #b39960; background: #e7d4a5; }
.phase-progress > div { display: flex; align-items: center; justify-content: space-between; gap: 15px; }
.phase-progress a { color: #4e3c21; font-size: 14px; font-weight: 700; text-decoration: none; }
.phase-progress a:hover { text-decoration: underline; }
.phase-progress small { color: #806637; font-size: 11px; }
.phase-progress progress { margin-top: 10px; }
.phase-meter { height: 8px; margin-top: 10px; background: #b5a075; border: 1px solid #8d7548; }
.phase-meter > span,.phase-meter > i { display: block; height: 100%; background: #728248; }

/* Sous Chef's public notice and setup area. */
.bot-panel { margin: 23px 0; padding: 24px; border: 4px ridge #a1884f; background: linear-gradient(110deg,#eadab0,#d3bc87); box-shadow: inset 0 0 0 2px #f4dfaa55; }
.bot-mark { display: grid; place-items: center; width: 80px; height: 80px; margin-bottom: 17px; border: 4px ridge #9d824c; background: #3d3d29; }
.bot-mark img,.bot-mark svg { width: 64px; height: 64px; image-rendering: pixelated; }
.bot-panel h2 { margin: 0 0 12px; }
.bot-panel p { color: #685031; font-size: 15px; }
.status-badge { display: inline-flex; align-items: center; gap: 6px; padding: 4px 9px; border: 1px solid #9b7439; background: #dec080; color: #654b22; font-family: var(--heading-font); font-size: 11px; font-weight: 700; line-height: 1.5; }
.status-badge.available { background: #c5d09b; border-color: #7a8e48; color: #3b552c; }
.setup-steps { padding: 0; margin: 22px 0; list-style: none; counter-reset: guild-setup; }
.setup-steps li { position: relative; padding: 15px 0 17px 50px; border-bottom: 1px solid #b99d66; color: #6b5230; font-size: 14px; }
.setup-steps li:last-child { border-bottom: 0; }
.setup-steps li::before { counter-increment: guild-setup; content: counter(guild-setup); position: absolute; top: 16px; left: 0; display: grid; place-items: center; width: 32px; height: 32px; border: 2px ridge #ae8d4d; background: #51472f; color: #f1d279; font-family: var(--heading-font); font-weight: 700; }
.setup-steps strong { color: #49331a; }
.command-list { margin: 20px 0; border: 3px ridge #947a46; background: #342f23; color: #d9c296; }
.command-list > div,.command-list > li { padding: 15px 18px; border-bottom: 1px solid #7f6a3e66; }
.command-list > :last-child { border-bottom: 0; }
.command-list code { color: #ffe16c; font-family: var(--heading-font); font-size: 14px; }
.command-list p,.command-list dd,.command-list span { color: #ceb98b; font-size: 13px; line-height: 1.7; }
.command-list p { margin: 5px 0 0; }
.command-list dd { margin: 4px 0 0; }
.command-list dt { font-weight: 700; }

/* Search, backups and notices. */
.search-heading { margin: 15px 0 23px; }
.search-heading h1 { margin-top: 10px; }
.search-heading > p:not(.eyebrow) { color: #775b34; font-size: 14px; }
.search-result { display: block; width: 100%; margin: 0 0 11px; padding: 16px 18px; border: 2px solid #b69a60; border-radius: 0; background: #e8d6a9; text-align: left; }
.search-result:hover { background: #f0dfb3; border-color: #907039; }
.result-title { display: block; margin-bottom: 5px; color: #51391d; font-size: 14px; font-weight: 700; }
.result-context { display: block; color: #79603b; font-size: 13px; line-height: 1.7; }
mark { padding: 0 2px; background: #f2d16d; color: #533c15; }
.tools-dialog { width: min(590px,calc(100vw - 32px)); max-height: calc(100dvh - 44px); padding: 26px; border: 5px ridge #ab8c4c; border-radius: 0; color: var(--ink); background: #dfcc9c; box-shadow: 0 0 0 2px #2d281d,0 22px 90px #0009; }
.tools-dialog::backdrop { background: #15160fbd; }
.dialog-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 15px; }
.dialog-heading h2 { margin: 0; font-family: var(--heading-font); font-size: 26px; letter-spacing: -1px; }
.dialog-close { display: grid; place-items: center; flex: 0 0 38px; width: 38px; min-height: 38px; border: 2px solid; border-color: #ab8f64 #39251d #39251d #ab8f64; border-radius: 0; background: #744b34; color: #f0cc83; font-size: 25px; }
.dialog-close:hover { background: #87563c; }
.tool-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 21px 0; }
.tool-grid button,.tool-grid a { display: block; min-height: 82px; padding: 13px; border: 2px solid; border-color: #f0dda9 #a28a52 #a28a52 #f0dda9; border-radius: 0; color: #4e3c21; background: #e9d5a0; text-align: left; text-decoration: none; line-height: 1.6; }
.tool-grid button:hover,.tool-grid a:hover { background: #f3dfa9; }
.tool-grid strong { display: block; font-size: 13px; }
.tool-grid span { display: block; margin-top: 5px; color: #82633a; font-size: 11px; }
.status-message { min-height: 24px; margin: 13px 0 0; color: #42562b; font-size: 13px; overflow-wrap: anywhere; }
.toast { position: fixed; z-index: 100; bottom: 24px; left: calc(50% + var(--sidebar-width)/2); transform: translateX(-50%); max-width: calc(100vw - var(--sidebar-width) - 44px); padding: 13px 19px; border: 3px ridge #ae9352; background: #3c4129; color: #f7dc8c; box-shadow: 0 6px 20px #0006; font-size: 13px; text-align: center; }
.scrim { display: none; }
.world-banner { display: none; }

@media (min-width: 1500px) {
  :root { --sidebar-width: 294px; }
  #main { margin-top: 32px; padding: 34px 42px 38px; }
  .guild-hero { min-height: 370px; }
}
@media (max-width: 1150px) {
  :root { --sidebar-width: 258px; }
  .brand { padding-left: 14px; padding-right: 14px; gap: 8px; }
  .brand-text { font-size: 20px; }
  .brand-mark { flex-basis: 45px; width: 45px; height: 45px; }
  .topbar { padding: 11px 22px; gap: 12px; }
  .breadcrumb { font-size: 10px; }
  .search-wrap { flex-basis: 225px; }
  #main { width: calc(100% - 36px); padding: 26px 26px 30px; }
  .guild-hero { min-height: 325px; padding: 25px; }
  .guild-hero h1 { font-size: 44px; }
  .chapter-link { font-size: 11px; gap: 6px; }
}
@media (max-width: 820px) {
  :root { --sidebar-width: 286px; }
  .sidebar { transform: translateX(-102%); transition: transform .18s ease; box-shadow: 8px 0 35px #0006; }
  body.menu-open { overflow: hidden; }
  body.menu-open .sidebar { transform: translateX(0); }
  .workspace { margin-left: 0; }
  .menu-button { display: inline-flex; flex: 0 0 42px; width: 42px; padding: 7px; font-size: 20px; }
  .scrim { position: fixed; inset: 0; z-index: 35; border: 0; background: #14170eb3; }
  body.menu-open .scrim:not([hidden]) { display: block; }
  .topbar { min-height: 65px; padding: 10px 18px; gap: 11px; }
  .breadcrumb { display: none; }
  .search-wrap { flex: 1; }
  #main { width: calc(100% - 34px); max-width: 760px; padding: 25px 25px 29px; margin: 20px auto; }
  .guild-hero { min-height: 315px; }
  .toast { left: 50%; max-width: calc(100vw - 32px); }
}
@media (max-width: 520px) {
  html { scroll-padding-top: 75px; }
  body { font-size: 15px; }
  .topbar { min-height: 62px; padding: 8px 11px; gap: 8px; }
  .search-wrap input { height: 42px; font-size: 16px; padding-left: 32px; padding-right: 9px; }
  .search-wrap > svg { left: 9px; top: 13px; width: 15px; height: 15px; }
  .search-wrap kbd { display: none; }
  .tools-button { padding: 7px 8px; font-size: 10px; }
  #main { width: calc(100% - 20px); margin: 12px auto; padding: 21px 15px 24px; border-width: 4px; }
  .route-head { align-items: flex-start; gap: 12px; font-size: 11px; margin-bottom: 20px; }
  .eyebrow,.section-kicker { font-size: 10px; letter-spacing: .55px; }
  h1 { font-size: 28px; letter-spacing: -1px; line-height: 1.2; }
  h2,.section-heading { font-size: 23px; }
  .chapter-heading { margin: 20px 0 23px; }
  .chapter-topline { flex-wrap: wrap; gap: 6px; }
  #chapter-intro { font-size: 14px; }
  .task-label { gap: 11px; padding: 15px 12px; }
  .task-copy { font-size: 15px; line-height: 1.75; }
  .task-index { display: none; }
  .callout { padding: 13px 14px; font-size: 13px; }
  .table-wrap table { min-width: 470px; }
  th,td { padding: 11px 13px; }
  .toc-grid { grid-template-columns: 1fr; }
  .chapter-bottom { gap: 8px; flex-wrap: wrap; }
  .chapter-bottom button { font-size: 11px; padding: 9px 11px; flex: 1; }
  #chapter-position { font-size: 10px; }
  .field-label textarea { font-size: 16px; }
  .guild-hero { min-height: 335px; padding: 23px 18px; margin: -3px -3px 23px; background-position: 60% center; }
  .guild-hero::before { background: linear-gradient(90deg,#1c2213f0,#202a17b3 72%,#27301d66); }
  .guild-hero h1 { font-size: 39px; letter-spacing: -1.8px; }
  .guild-hero p { font-size: 14px; line-height: 1.7; }
  .guild-hero .section-kicker { font-size: 10px; letter-spacing: 1px; }
  .guild-actions { gap: 10px; }
  .guild-actions > a,.guild-actions > button { font-size: 12px; padding: 10px 13px; }
  .guild-board { padding: 5px 12px; border-width: 3px; }
  .board-entry { gap: 12px; padding: 18px 0; align-items: flex-start; }
  .board-entry h2,.board-entry h3 { font-size: 20px; }
  .board-entry p { font-size: 13px; }
  .board-icon { flex-basis: 43px; width: 43px; height: 43px; border-width: 2px; }
  .board-icon .pixel-icon { width: 29px; height: 29px; }
  .route-card { gap: 12px; padding: 13px; }
  .route-card strong { font-size: 16px; }
  .route-card-number { flex-basis: 31px; width: 31px; height: 31px; font-size: 12px; }
  .route-card small { font-size: 12px; }
  .progress-cards { gap: 8px; }
  .progress-card { padding: 12px 8px; border-width: 2px; }
  .progress-card strong { font-size: 23px; }
  .progress-card span,.progress-card small { font-size: 10px; }
  .phase-progress { padding: 13px 12px; }
  .phase-progress > div { align-items: flex-start; }
  .phase-progress a { font-size: 13px; }
  .bot-panel { padding: 19px 15px; border-width: 3px; }
  .bot-panel p { font-size: 14px; }
  .tools-dialog { padding: 21px; border-width: 4px; }
  .dialog-heading h2 { font-size: 23px; }
  .tool-grid { grid-template-columns: 1fr; }
  .tool-grid button,.tool-grid a { min-height: 72px; }
  .site-footer { font-size: 10px; }
}
@media (max-width: 350px) {
  .tools-button { font-size: 9px; padding: 6px; }
  .guild-hero h1 { font-size: 34px; }
  .progress-cards { grid-template-columns: 1fr; }
  .progress-card { padding: 14px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *,*::before,*::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}
@media print {
  .sidebar,.topbar,.route-head,.chapter-bottom,.tools-dialog,.toast,.scrim,.skip-link,.guild-hero,.guild-actions { display: none !important; }
  .workspace { margin: 0; }
  body { background: white; font-size: 11pt; }
  #main { max-width: none; width: 100%; margin: 0; padding: 0; border: 0; outline: 0; background: white; box-shadow: none; }
  .task-item { break-inside: avoid; background: transparent; box-shadow: none; }
  .task-copy { font-size: 10pt; }
  .callout,.table-wrap,.route-card { break-inside: avoid; }
  .table-wrap { overflow: visible; }
  .table-wrap table { min-width: 0; }
  .field-label textarea { min-height: 80px; }
  .site-footer { padding-top: 18px; }
}

/* Pixel lettering is kept to headings and controls; long instructions stay readable. */
.brand-text { font-size: 28px; letter-spacing: 0; }
.hub-link { font-size: 19px; font-weight: 400; }
.breadcrumb { font-size: 18px; font-weight: 400; }
h1 { font-size: clamp(35px,3.2vw,45px); font-weight: 400; letter-spacing: -.4px; }
h2,.section-heading { font-size: 31px; font-weight: 400; letter-spacing: 0; }
h3 { font-size: 26px; font-weight: 400; letter-spacing: 0; }
.eyebrow,.section-kicker { font-size: 17px; font-weight: 400; letter-spacing: .5px; }
.chapter-number,.task-index,.chapter-count { font-family: Arial,Helvetica,sans-serif; }
.primary-button,.secondary-button { font-size: 19px; font-weight: 400; }
.guild-hero h1 { font-size: clamp(48px,5vw,68px); font-weight: 400; letter-spacing: -.5px; }
.guild-hero .section-kicker,.guild-hero .eyebrow { font-size: 17px; font-weight: 400; letter-spacing: .8px; }
.board-entry h2,.board-entry h3 { font-size: 29px; }
.route-card strong { font-size: 25px; font-weight: 400; }
.route-card-number { font-size: 20px; }
.progress-card strong { font-size: 38px; font-weight: 400; }
.status-badge { font-size: 17px; font-weight: 400; padding-top: 1px; padding-bottom: 1px; }
.dialog-heading h2 { font-size: 33px; font-weight: 400; }
#chapter-position { font-size: 17px; }
.view-heading { margin: 0 0 25px; }
.view-heading .section-kicker { margin-bottom: 9px; }
.view-heading p { max-width: 700px; color: #6a5233; font-size: 15px; line-height: 1.8; }
.stats-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; margin: 24px 0; }
.stats-grid > div { min-width: 0; padding: 18px 16px; border: 3px ridge #a98e54; background: #453e2b; color: #d7c293; box-shadow: inset 0 0 0 1px #2b2a1d; }
.stats-grid strong { display: block; margin: 6px 0; color: #ffe17a; font-family: var(--heading-font); font-size: 38px; font-weight: 400; line-height: 1.2; }
.stats-grid span,.stats-grid small { display: block; color: #cbb889; font-size: 12px; line-height: 1.6; }
.phase-summary { margin: 12px 0; padding: 15px 16px; border: 1px solid #b39960; background: #e7d4a5; }
.phase-summary > div { display: flex; align-items: center; justify-content: space-between; gap: 15px; }
.phase-summary a { color: #4e3c21; font-size: 14px; font-weight: 700; text-decoration: none; }
.phase-summary a:hover { text-decoration: underline; }
.phase-summary small,.phase-summary span { color: #806637; font-size: 12px; }
.phase-summary progress { margin-top: 11px; }
.next-task { display: block; margin: 23px 0; padding: 20px; border: 3px ridge #a18d55; background: #cbd1a5; color: #475632; }
.next-task strong { display: block; color: #354828; font-family: var(--heading-font); font-size: 26px; font-weight: 400; line-height: 1.3; }
.next-task p { margin: 7px 0 12px; font-size: 14px; }
.notes-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 18px; }
.notes-grid > :last-child:nth-child(odd) { grid-column: 1 / -1; }
.quiet-link { display: inline-block; color: #5a5c32; font-size: 13px; font-weight: 700; text-underline-offset: 4px; }
.bot-layout { display: grid; grid-template-columns: minmax(0,1.25fr) minmax(240px,.75fr); gap: 22px; align-items: start; }
.bot-layout .bot-panel { margin-top: 0; }
@media(max-width:1150px) {
  .brand-text { font-size: 27px; }
  .breadcrumb { font-size: 16px; }
  .guild-hero h1 { font-size: 57px; }
  .bot-layout { grid-template-columns: 1fr; gap: 5px; }
}
@media(max-width:520px) {
  h1 { font-size: 35px; }
  h2,.section-heading { font-size: 28px; }
  h3 { font-size: 24px; }
  .eyebrow,.section-kicker { font-size: 16px; }
  .guild-hero h1 { font-size: 51px; }
  .guild-hero .section-kicker,.guild-hero .eyebrow { font-size: 16px; }
  .guild-actions > a,.guild-actions > button { font-size: 18px; }
  .chapter-bottom button { font-size: 17px; }
  .primary-button,.secondary-button { font-size: 18px; }
  .board-entry h2,.board-entry h3 { font-size: 26px; }
  .route-card strong { font-size: 23px; }
  .route-card-number { font-size: 18px; }
  .progress-card strong,.stats-grid strong { font-size: 31px; }
  .stats-grid { gap: 8px; }
  .stats-grid > div { padding: 12px 8px; border-width: 2px; }
  .stats-grid span,.stats-grid small { font-size: 10px; }
  .notes-grid { grid-template-columns: 1fr; }
  .dialog-heading h2 { font-size: 30px; }
  .next-task { padding: 16px; }
  .next-task strong { font-size: 25px; }
  #chapter-position { font-size: 15px; }
}

/* Shared content contracts used by the Guild Hall and progress renderer. */
.guild-hero .guild-intro { margin: 0; }
.guild-hero .guild-intro p { color: #f2e8c8; }
.guild-hero .guild-intro .section-kicker { color: #d6c184; }
.banner-stat { position: absolute; right: 18px; bottom: 13px; color: #f5d97c; font-family: var(--heading-font); font-size: 16px; letter-spacing: .7px; text-shadow: 1px 2px #17180e; }
.board-entry > span:nth-child(2) { flex: 1; min-width: 0; }
.board-entry > span:nth-child(2) > strong { display: block; margin-bottom: 6px; font-family: var(--heading-font); font-size: 29px; font-weight: 400; line-height: 1.15; }
.board-entry > span:nth-child(2) > small { display: block; color: #6c512e; font-size: 14px; line-height: 1.65; }
#phase-progress.phase-progress { display: grid; gap: 10px; padding: 0; border: 0; background: transparent; }
a.phase-summary { display: grid; grid-template-columns: minmax(0,1fr) 140px 14px; gap: 18px; align-items: center; margin: 0; color: #594322; text-decoration: none; }
a.phase-summary:hover { background: #eedcb0; border-color: #94713a; }
a.phase-summary > span { display: block; }
a.phase-summary strong { display: block; color: #543f20; font-size: 14px; line-height: 1.55; }
a.phase-summary small { display: block; margin-top: 3px; color: #826639; font-size: 11px; }
a.phase-summary progress { width: 100%; margin: 0; }
.next-task .quiet-link { margin-left: 15px; }
.bot-panel { display: flex; align-items: center; gap: 22px; }
.bot-panel > .bot-mark { flex: 0 0 96px; width: 96px; height: 96px; margin: 0; padding: 6px; }
.bot-panel > div { flex: 1; min-width: 0; }
.bot-panel h1 { margin-bottom: 9px; }
.bot-panel p { margin: 5px 0 10px; }
.setup-steps li strong,.setup-steps li span { display: block; }
.setup-steps li strong { margin-bottom: 5px; }
.source-links p { font-size: 13px; color: #6d5633; }
.task-copy { font-size: 16px; }
.guide-nav-link { grid-column: 1 / -1; }
.guide-badges { display: flex; flex-wrap: wrap; gap: 7px; margin: 13px 0; }
.guide-badge,.task-tag { display: inline-block; padding: 3px 8px; border: 1px solid #a48b58; background: #d9c28c; color: #55401e; font-size: 10px; line-height: 1.5; font-weight: 700; letter-spacing: .35px; text-transform: uppercase; }
.guide-badge.core { background: #c9d0a2; border-color: #829457; color: #354720; }
.guide-badge.recommended { background: #d2d2b4; border-color: #8d9473; color: #434d30; }
.guide-badge.optional,.task-tag.optional { background: #e9cd91; border-color: #b68f43; color: #704d18; }
.guide-badge.group,.task-tag.group { background: #b9c9cd; border-color: #708e96; color: #304e58; }
.guide-badge.reference,.muted-badge { background: #d3c8ae; color: #68583e; }
.task-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 7px; }
.task-tag { font-size: 9px; padding: 1px 6px; }
.nav-tag { display: block; color: #bfaa72; font-size: 9px; text-transform: uppercase; letter-spacing: .6px; }
.guide-spotlight { margin: 22px 0; padding: 22px; border: 2px groove #b69a60; background: #e5d6ac; }
.guide-spotlight h2 { margin: 9px 0; }
.guide-spotlight p { margin: 10px 0; font-size: 14px; }
.guide-feature { padding: 25px; border: 4px ridge #9e844c; background: linear-gradient(110deg,#e9d8a9,#d4bc80); box-shadow: inset 0 0 0 1px #f4e4bb; }
.guide-feature > h2 { margin: 15px 0; font-size: 39px; }
.guide-feature > p { font-size: 15px; }
.guide-mode-cards { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 17px; margin: 23px 0; }
.guide-mode-cards > div { display: flex; flex-direction: column; align-items: flex-start; padding: 20px; border: 2px groove #b29a65; background: #f0e2ba; }
.guide-mode-cards h3 { margin: 0 0 10px; font-size: 28px; }
.guide-mode-cards p { margin: 0 0 18px; flex: 1; font-size: 14px; }
.guide-scope-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 13px; }
.guide-scope-grid article { padding: 17px; border: 1px solid #af9766; background: #d9c8a0; }
.guide-scope-grid h3 { margin: 0 0 11px; font-size: 25px; }
.guide-scope-grid p { font-size: 13px; }
.guide-legend { padding: 11px 18px; border: 1px solid #b49b68; background: #e8dab4; }
.guide-legend p { font-size: 14px; }
.guide-legend .guide-badge { margin: 0 5px 4px 0; }
.editorial-notes { font-size: 13px; padding-bottom: 10px; }
.route-controls { display: flex; align-items: flex-end; gap: 18px; flex-wrap: wrap; padding: 16px 18px; border: 3px ridge #9c8756; background: #d5be89; }
.route-controls > div { flex: 0 1 240px; }
.route-controls label:not(.optional-toggle) { display: block; margin-bottom: 6px; color: #50381b; font-size: 12px; font-weight: 700; }
.route-controls select { width: 100%; min-height: 43px; border: 2px inset #c5ad78; padding: 8px 12px; border-radius: 0; background: #f0e3be; color: #3c2c16; font-size: 15px; }
.optional-toggle { display: flex; align-items: center; gap: 9px; min-height: 43px; font-size: 13px; cursor: pointer; }
.optional-toggle input { width: 19px; height: 19px; margin: 0; accent-color: #536b34; }
#route-scope-note { flex-basis: 100%; margin: 0; font-size: 12px; line-height: 1.7; color: #69502c; }
.chapter-preparation { margin: 22px 0 28px; border: 2px groove #b79e69; background: #eaddb9; }
.prep-heading { padding: 14px 18px; border-bottom: 1px solid #bfa676; background: #d9c695; }
.prep-heading .section-kicker { margin: 0 0 6px; }
.chapter-goal { margin: 0; font-size: 15px; color: #4f3b1d; }
.prep-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(190px,1fr)); }
.prep-grid > div { padding: 15px 17px 17px; border-right: 1px solid #c5af7d; }
.prep-grid > div:last-child { border-right: 0; }
.prep-grid h2 { margin: 0 0 9px; font-size: 25px; }
.prep-grid ul,.finish-panel ul { margin: 0; padding-left: 19px; }
.prep-grid li { margin: 0 0 9px; font-size: 13px; line-height: 1.75; color: #614a2b; }
.prep-grid li:last-child { margin-bottom: 0; }
.risk-note { margin: 0; padding: 13px 18px; border-top: 1px solid #c6a96b; background: #e1c996; color: #695027; font-size: 13px; }
.finish-panel { margin: 25px 0; padding: 20px 23px; border: 3px ridge #93a16e; background: #d1d6af; color: #43552d; }
.finish-panel h2 { margin: 5px 0 12px; color: #374c24; }
.finish-panel .section-kicker { margin: 0; color: #586937; }
.finish-panel li { margin: 8px 0; font-size: 14px; line-height: 1.75; }
.text-button { padding: 0; border: 0; background: transparent; font: inherit; font-weight: 700; color: inherit; text-decoration: underline; cursor: pointer; }
@media(max-width:1100px) {
  .prep-grid { grid-template-columns: 1fr; }
  .prep-grid > div { border-right: 0; border-bottom: 1px solid #c5af7d; }
  .prep-grid > div:last-child { border-bottom: 0; }
  .guide-scope-grid { grid-template-columns: 1fr; }
}
@media(max-width:600px) {
  .guide-mode-cards { grid-template-columns: 1fr; }
  .guide-feature { padding: 17px; }
  .guide-feature > h2 { font-size: 34px; }
  .guide-mode-cards > div { padding: 16px; }
  .route-controls { padding: 13px; gap: 9px; }
  .route-controls > div { flex-basis: 100%; }
  .guide-badge { font-size: 9px; }
  .chapter-topline { flex-wrap: wrap; gap: 5px; }
  .finish-panel { padding: 17px; }
}
@media(max-width:520px) {
  .banner-stat { right: 13px; bottom: 10px; font-size: 14px; }
  .board-entry > span:nth-child(2) > strong { font-size: 26px; }
  .board-entry > span:nth-child(2) > small { font-size: 13px; }
  a.phase-summary { grid-template-columns: minmax(0,1fr) 68px 10px; gap: 10px; padding: 12px; }
  a.phase-summary strong { font-size: 12px; }
  a.phase-summary small { font-size: 10px; }
  .next-task .quiet-link { display: block; margin: 13px 0 0; }
  .bot-panel { align-items: flex-start; gap: 14px; }
  .bot-panel > .bot-mark { flex-basis: 68px; width: 68px; height: 68px; padding: 3px; }
  .bot-panel .section-kicker { font-size: 14px; }
  .task-copy { font-size: 16px; }
}
