:root { --bg: #160f2b; --bg2: #1d1538; --surface: #261c47; --surface2: #332553; --line: #48356f; --ink: #f4eeff; --ink2: #c9bce6; --ink3: #a495c6; --accent: #ffd23f; --accent-lt: #ffe894; --accent-dk: #c99a00; --sky: #a685ff; --sky-dk: #6b4ad1; --grass: #4ade80; --dirt: #c78b3f; --dirt-dk: #8a5c26; --stone: #9d90bb; --diamond: #7ce7ff; --emerald: #57e08a; --tnt: #ff5d8f; --tnt-ink: #ff92b3; --on-accent: #151f2b; --bw: 1px; --r: 18px; --r-lg: 28px; --sh-block: 0 22px 46px -22px rgba(8,2,24,.85); --h1-max: 58px; --h2-max: 35px; --h1-measure: 28ch; --font-display: "Fraunces","Trebuchet MS",Impact,sans-serif; --font-ui: "Space Grotesk",ui-monospace,"SFMono-Regular",Menlo,monospace; --font-body: "Figtree",system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif }

html { color-scheme: dark }

*,*::before,*::after { box-sizing: border-box }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: 84px }

body,h1,h2,h3,h4,p,ul,ol,figure,dl,dd { margin: 0 }

ul,ol { padding: 0; list-style: none }

img,svg,video { display: block; max-width: 100% }

img { height: auto }

button,input,select,textarea { font: inherit; color: inherit }

a { color: inherit }

table { border-collapse: collapse }

body { margin: 0; background: var(--bg); color: var(--ink); font-family: var(--font-body); font-size: 16px; line-height: 1.68; font-weight: 400; overflow-x: hidden; -webkit-font-smoothing: antialiased; background-image:  radial-gradient(900px 420px at 88% -8%, color-mix(in srgb, var(--sky) 15%, transparent), transparent 70%), radial-gradient(760px 380px at 4% 2%, color-mix(in srgb, var(--accent) 8%, transparent), transparent 72%); background-repeat: no-repeat }

::selection { background: var(--accent); color: var(--on-accent) }

.rg-jumpline { position: absolute; left: -9999px; top: 0; z-index: 200; background: var(--accent); color: var(--on-accent); padding: 12px 20px; font-family: var(--font-ui); font-size: 13px; letter-spacing: .05em }

.rg-jumpline:focus { left: 12px; top: 12px }

:where(a,button,summary,[tabindex]):focus-visible { outline: 3px solid var(--diamond); outline-offset: 3px; border-radius: 2px }

/* ---------- layout ---------- */ .rg-glade { width: min(100% - 32px, 1240px); margin-inline: auto }

.rg-glade-narrow { width: min(100% - 32px, 980px); margin-inline: auto }

main { display: block }

/* ---------- pixel primitives ---------- */ .rg-seam { height: 26px; width: 100%; position: relative; background:  linear-gradient(var(--grass) 0 9px, transparent 9px), repeating-linear-gradient(90deg,var(--dirt) 0 12px,var(--dirt-dk) 12px 24px); border-top: 3px solid color-mix(in srgb, var(--grass) 70%, #000); image-rendering: pixelated }

.rg-seam::after { content: ""; position: absolute; left: 0; right: 0; top: 9px; height: 4px; background: repeating-linear-gradient(90deg,color-mix(in srgb,var(--grass) 65%,#000) 0 6px,transparent 6px 12px) }

.rg-seam--line { height: 34px; background: none; border-top: 0; position: relative; display: grid; place-items: center }

.rg-seam--line::before { content: ""; position: absolute; left: 0; right: 0; top: 50%; height: 2px; background: repeating-linear-gradient(90deg,var(--line) 0 14px,transparent 14px 22px) }

.rg-xose { position: relative; width: 16px; height: 16px; border: 3px solid var(--accent); border-radius: 50%; background: var(--bg) }

.rg-seam--wave { height: auto; background: none; border-top: 0; line-height: 0 }

.rg-seam--wave::after { content: none }

.rg-seam--wave svg { width: 100%; height: 52px; display: block }

.rg-kacu { fill: var(--surface) }

.rg-velo { fill: none; stroke: var(--sky); stroke-width: 3; vector-effect: non-scaling-stroke; opacity: .85 }

/* ---------- buttons ---------- */ .rg-wish { border-radius: var(--r); --btn-bg: var(--accent); --btn-ink: var(--on-accent); --btn-edge: var(--accent-dk); display: inline-flex; align-items: center; justify-content: center; gap: 9px; font-family: var(--font-ui); font-weight: 400; font-size: 13.5px; letter-spacing: .045em; line-height: 1.15; padding: 16px 26px 17px; text-decoration: none; cursor: pointer; background: var(--btn-bg); color: var(--btn-ink); border: 0; border-bottom: 5px solid var(--btn-edge); box-shadow: inset 0 3px 0 rgba(255,255,255,.32), inset 0 -3px 0 rgba(0,0,0,.12); transition: transform .12s ease, filter .12s ease; text-align: center }

.rg-wish:hover { filter: brightness(1.08) }

.rg-wish:active { transform: translateY(3px); border-bottom-width: 2px }

.rg-wish svg { width: 19px; height: 19px; flex: none }

.rg-wish--ghost { --btn-bg: transparent; --btn-ink: var(--ink); --btn-edge: transparent; border: var(--bw) solid var(--line); box-shadow: none; padding: 13px 22px }

.rg-wish--ghost:hover { border-color: var(--accent); color: var(--accent); filter: none }

.rg-wish--ghost:active { transform: translateY(2px) }

.rg-wish--sm { font-size: 11.5px; padding: 12px 16px 13px; border-bottom-width: 4px }

.rg-wish--wide { width: 100% }

/* ---------- header ---------- */ .rg-canopy { position: sticky; top: 0; z-index: 90; background: color-mix(in srgb, var(--bg2) 92%, transparent); backdrop-filter: blur(10px); border-bottom: var(--bw) solid var(--line) }

.rg-canopy-row { display: flex; align-items: center; gap: 18px; min-height: 70px }

.rg-sigil { display: flex; align-items: center; gap: 11px; text-decoration: none; flex: 0 1 auto; min-width: 0 }

.rg-sigil-icon { width: 38px; height: 38px; flex: none; image-rendering: pixelated }

.rg-sigil-name { font-family: var(--font-display); font-size: clamp(17px,4.8vw,26px); color: var(--accent); letter-spacing: .005em; line-height: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis }

.rg-trailmap { margin-left: auto; display: none }

.rg-trailmap ul { display: flex; align-items: center; gap: 2px }

.rg-trailmap a { display: block; padding: 9px 11px; text-decoration: none; font-size: 14px; font-weight: 500; color: var(--ink2); border-bottom: 3px solid transparent; transition: color .15s,border-color .15s; white-space: nowrap }

.rg-trailmap a:hover { color: var(--ink) }

.rg-trailmap a[aria-current="page"] { color: var(--accent); border-bottom-color: var(--accent) }

.rg-canopy-cta { display: none; flex: none }

.rg-latch { border-radius: var(--r); margin-left: auto; width: 46px; height: 42px; background: var(--surface); border: var(--bw) solid var(--line); display: grid; place-items: center; cursor: pointer; padding: 0 }

.rg-latch span { display: block; width: 20px; height: 3px; background: var(--ink); box-shadow: 0 -7px 0 var(--ink),0 7px 0 var(--ink); transition: .2s }

.rg-latch[aria-expanded="true"] span { background: transparent; box-shadow: 0 0 0 transparent }

.rg-latch[aria-expanded="true"]::before,.rg-latch[aria-expanded="true"]::after { content: ""; position: absolute; width: 22px; height: 3px; background: var(--accent) }

.rg-latch[aria-expanded="true"]::before { transform: rotate(45deg) }

.rg-latch[aria-expanded="true"]::after { transform: rotate(-45deg) }

.rg-latch { position: relative }

.rg-satchel { border-top: var(--bw) solid var(--line); background: var(--bg2) }

.rg-satchel[hidden] { display: none }

.rg-satchel ul { display: grid; grid-template-columns: 1fr 1fr; gap: 0 }

.rg-satchel li:last-child:nth-child(odd) { grid-column: 1 / -1 }

.rg-satchel nav a { display: block; padding: 14px 12px; text-decoration: none; font-size: 14.5px; font-weight: 500; color: var(--ink2); border-bottom: 1px solid var(--line); border-right: 1px solid var(--line) }

.rg-satchel li:last-child:nth-child(odd) a { border-right: 0 }

.rg-satchel nav a[aria-current="page"] { color: var(--accent) }

.rg-satchel-cta { padding: 16px }

/* ---------- hero ---------- */ .rg-arch { position: relative; overflow: hidden; border-bottom: var(--bw) solid var(--line) }

.rg-arch::before { content: ""; position: absolute; inset: 0; background:  linear-gradient(180deg, color-mix(in srgb,var(--sky) 22%,transparent) 0%, transparent 45%), repeating-linear-gradient(90deg, color-mix(in srgb,var(--line) 45%,transparent) 0 1px, transparent 1px 44px), repeating-linear-gradient(0deg, color-mix(in srgb,var(--line) 45%,transparent) 0 1px, transparent 1px 44px); opacity: .5; pointer-events: none }

.rg-arch-row { position: relative; display: grid; gap: 30px; padding: 38px 0 44px }

.rg-arch-copy { min-width: 0 }

.rg-arch-actions { min-width: 0 }

.rg-arch-actions .rg-arch-cta { margin-top: 0 }

.rg-arch-row--art-wide .rg-arch-art img { width: 100% }

.rg-arch-row--art-wide .rg-arch-offer { right: auto; left: 0 }

/* The wide band centres its copy; the art is capped near its intrinsic width so a small source asset is never upscaled into mush. */ .rg-arch-row--art-wide .rg-arch-art { max-width: var(--hero-art-max,820px); margin-inline: auto; width: 100% }

.rg-arch h1 { font-family: var(--font-display); font-weight: 400; font-size: clamp(32px,6.4vw,var(--h1-max)); line-height: 1.04; letter-spacing: .002em; margin: 16px 0 0; text-wrap: balance }

.rg-arch h1 { max-width: var(--h1-measure,none) }

.rg-arch h1 .rg-shimmer { color: var(--accent) }

.rg-arch-lede { margin-top: 16px; font-size: clamp(16px,2.3vw,18.5px); color: var(--ink2); max-width: 56ch }

.rg-arch-cta { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 26px }

.rg-arch-note { margin-top: 14px; font-size: 12.5px; color: var(--ink3); display: flex; align-items: flex-start; gap: 7px }

.rg-arch-note svg { width: 14px; height: 14px; flex: none; margin-top: 3px }

.rg-arch-art { position: relative }

.rg-arch-art .rg-pane { border-radius: var(--r-lg); overflow: hidden; border: var(--bw) solid var(--line); background: var(--bg2); box-shadow: var(--sh-block); position: relative; overflow: hidden }

.rg-arch-art img { width: 100%; image-rendering: pixelated }

.rg-arch-art--portrait .rg-pane { display: grid; place-items: center; padding: 20px; background: var(--bg2) }

.rg-arch-art--portrait img { width: auto; max-width: 100%; max-height: min(58vh,430px) }

.rg-arch-art .rg-pane::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(180deg,transparent 62%, color-mix(in srgb,var(--bg) 78%,transparent)) }

.rg-arch-offer { border-radius: var(--r); position: absolute; right: -6px; bottom: -14px; z-index: 2; background: var(--accent); color: var(--on-accent); border-bottom: 5px solid var(--accent-dk); padding: 11px 15px 12px; font-family: var(--font-display); line-height: 1.05; box-shadow: var(--sh-block) }

.rg-arch-offer b { display: block; font-size: 27px; font-weight: 400; line-height: 1 }

.rg-arch-offer span { display: block; font-family: var(--font-ui); font-size: 9px; letter-spacing: .1em; text-transform: uppercase; opacity: .85; margin-top: 6px }

.rg-arch-offer.rg-arch-offer--bottom-left { right: auto; left: -6px }

.rg-arch-offer.rg-arch-offer--top-left { right: auto; bottom: auto; left: -6px; top: -14px }

.rg-arch-offer.rg-arch-offer--top-right { bottom: auto; top: -14px }

/* ---------- fact strip ---------- */ .rg-hoard { background: var(--bg2); border-bottom: var(--bw) solid var(--line) }

.rg-hoard--strip .rg-hoard-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 0; border-left: 1px solid var(--line); border-right: 1px solid var(--line) }

.rg-hoard-item { padding: 20px 16px; border-bottom: 1px solid var(--line); border-right: 1px solid var(--line); display: flex; align-items: center; gap: 13px; min-width: 0 }

.rg-hoard--strip .rg-hoard-item:nth-child(2n) { border-right: 0 }

.rg-hoard-icon { border-radius: var(--r); width: 42px; height: 42px; flex: none; display: grid; place-items: center; border: max(2px, calc(var(--bw) - 1px)) solid var(--line); background: var(--surface) }

.rg-hoard-icon svg { width: 22px; height: 22px }

.rg-hoard-body { min-width: 0 }

.rg-hoard-label { display: block; font-family: var(--font-ui); font-size: 9.5px; letter-spacing: .13em; text-transform: uppercase; color: var(--ink3) }

.rg-hoard-value { display: block; font-family: var(--font-display); font-size: 24px; color: var(--ink); line-height: 1.15; margin-top: 6px; overflow-wrap: break-word; hyphens: auto }

.rg-hoard-value.rg-hue-gold { color: var(--accent) }

.rg-hoard-value.rg-hue-sky { color: var(--diamond) }

.rg-hoard-value.rg-hue-clover { color: var(--emerald) }

.rg-hoard--cards { background: transparent; border-bottom: 0; padding: 26px 0 4px }

.rg-hoard--cards .rg-hoard-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 12px; border: 0 }

.rg-hoard--cards .rg-hoard-item { flex-direction: column; align-items: flex-start; gap: 10px; padding: 16px 15px; border: var(--bw) solid var(--line); border-radius: var(--r-lg); background: var(--surface); box-shadow: var(--sh-block) }

.rg-hoard--cards .rg-hoard-item .rg-hoard-label,.rg-hoard--cards .rg-hoard-item .rg-hoard-value { display: block }

.rg-hoard--cards .rg-hoard-value { margin-top: 2px }

.rg-hoard--list { background: var(--bg2); border-bottom: var(--bw) solid var(--line); padding: 6px 0 }

.rg-hoard--list .rg-hoard-grid { display: grid; grid-template-columns: 1fr; gap: 0 34px; border: 0 }

.rg-hoard--list .rg-hoard-item { display: grid; grid-template-columns: 34px 1fr auto; align-items: center; gap: 12px; padding: 13px 2px; border: 0; border-bottom: 1px dashed var(--line) }

.rg-hoard--list .rg-hoard-item:last-child { border-bottom: 0 }

@media (min-width:760px) {
  .rg-hoard--list .rg-hoard-grid { grid-template-columns: 1fr 1fr }
  }
@media (min-width:760px) {
  .rg-hoard--list .rg-hoard-item:nth-last-child(2) { border-bottom: 0 }
  }
@media (min-width:760px) {}

.rg-hoard--list .rg-hoard-icon { width: 34px; height: 34px; border: 0; background: transparent; color: var(--accent) }

.rg-hoard--list .rg-hoard-icon svg { width: 20px; height: 20px }

.rg-hoard--list .rg-hoard-label { font-family: var(--font-ui); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--ink3) }

.rg-hoard--list .rg-hoard-value { margin: 0; font-family: var(--font-display); font-size: 19px; color: var(--ink); text-align: right; line-height: 1.2 }

/* ---------- page shell ---------- */ .rg-vault { display: grid; gap: 34px; padding: 38px 0 56px; align-items: start }

/* Long compounds (Finnish, German, Dutch) blow past a 320px column otherwise. `hyphens` needs the document language, which the head already declares. */ .rg-arch h1,.rg-tale h2,.rg-tale h3,.rg-riddle-q,.rg-index-list a,.rg-cuta { overflow-wrap: break-word; hyphens: auto }

/* ---------- prose ---------- */ .rg-tale { min-width: 0; font-size: 16.5px }

.rg-tale > * + * { margin-top: 19px }

.rg-tale h2 { font-family: var(--font-display); font-weight: 400; font-size: clamp(25px,3.7vw,var(--h2-max)); line-height: 1.16; letter-spacing: .004em; margin-top: 52px; padding-top: 4px; position: relative; padding-left: 26px; text-wrap: balance; scroll-margin-top: 90px }

.rg-tale h2::before { content: ""; position: absolute; left: 0; top: .42em; width: 14px; height: 14px; background: var(--accent); box-shadow: 0 -8px 0 -3px var(--sky), 0 8px 0 -3px var(--emerald) }

.rg-tale h3 { font-family: var(--font-body); font-weight: 700; font-size: clamp(18px,2.6vw,21px); line-height: 1.32; margin-top: 34px; color: var(--ink); text-wrap: balance; scroll-margin-top: 90px }

.rg-tale h2 + h3, .rg-tale h2 + p, .rg-tale h2 + ul, .rg-tale h2 + ol, .rg-tale h2 + .rg-ledger { border-radius: var(--r-lg); margin-top: 17px }

.rg-tale p { color: var(--ink2) }

.rg-tale strong { color: var(--ink); font-weight: 600 }

.rg-tale .rg-opener { font-size: 17px; color: var(--ink); font-weight: 600; border-left: 4px solid var(--accent); padding-left: 14px }

.rg-tale ul { display: grid; gap: 11px }

.rg-tale ul > li { position: relative; padding-left: 29px; color: var(--ink2) }

.rg-tale ul > li::before { content: ""; position: absolute; left: 2px; top: .56em; width: 11px; height: 11px; background: var(--sky); box-shadow: inset 0 2px 0 rgba(255,255,255,.35) }

.rg-tale ul > li > ul { margin-top: 10px }

.rg-tale ul > li > ul > li::before { background: var(--stone) }

.rg-tale li p { margin-top: 8px }

.rg-tale ol { counter-reset: step; display: grid; gap: 15px }

.rg-tale ol > li { position: relative; padding-left: 48px; counter-increment: step; color: var(--ink2) }

.rg-tale ol > li::before { content: counter(step); position: absolute; left: 0; top: 0; width: 33px; height: 33px; display: grid; place-items: center; font-family: var(--font-ui); font-size: 13px; background: var(--surface2); color: var(--accent); border: max(2px, calc(var(--bw) - 1px)) solid var(--line) }

.rg-tale ol > li > ul { margin-top: 11px }

.rg-ledger { overflow-x: auto; border: var(--bw) solid var(--line); background: var(--surface); box-shadow: var(--sh-block); -webkit-overflow-scrolling: touch; background-image:  linear-gradient(to right, var(--surface), color-mix(in srgb, var(--surface) 0%, transparent)), linear-gradient(to left, var(--surface), color-mix(in srgb, var(--surface) 0%, transparent)), linear-gradient(to right, rgba(0,0,0,.42), rgba(0,0,0,0)), linear-gradient(to left, rgba(0,0,0,.42), rgba(0,0,0,0)); background-position: 0 0, 100% 0, 0 0, 100% 0; background-repeat: no-repeat; background-size: 26px 100%, 26px 100%, 14px 100%, 14px 100%; background-attachment: local, local, scroll, scroll }

.rg-ledger table { width: 100%; min-width: 520px; font-size: 15px }

.rg-ledger th,.rg-ledger td { padding: 12px 15px; text-align: left; border-bottom: 1px solid var(--line); vertical-align: top }

.rg-ledger thead th { background: var(--surface2); color: var(--ink); font-family: var(--font-ui); font-size: 10.5px; letter-spacing: .09em; text-transform: uppercase; border-bottom: var(--bw) solid var(--line); position: sticky; top: 0; white-space: nowrap }

.rg-ledger tbody tr:last-child td { border-bottom: 0 }

.rg-ledger tbody tr:nth-child(even) { background: color-mix(in srgb,var(--surface2) 45%,transparent) }

.rg-ledger td { color: var(--ink2) }

.rg-ledger td:first-child { color: var(--ink); font-weight: 500 }

.rg-ledger td strong { color: var(--accent); font-weight: 600 }

.rg-ledger-hint { display: none; align-items: center; gap: 6px; margin-top: 8px; font-size: 12px; color: var(--ink3) }

html:not(.rg-js) .rg-ledger-hint { display: flex }

.rg-ledger.rg-pans + .rg-ledger-hint { display: flex }

.rg-ledger-hint svg { width: 13px; height: 13px }

/* ---------- faq ---------- */ .rg-riddles { display: grid; gap: 10px; margin-top: 20px }

.rg-riddle { border-radius: var(--r); border: var(--bw) solid var(--line); background: var(--surface) }

.rg-riddle-q { margin: 0; font-family: var(--font-body); font-size: 16.5px; font-weight: 600; line-height: 1.45 }

.rg-riddle-toggle { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 16px; background: none; border: 0; padding: 16px 17px; text-align: left; cursor: pointer; color: var(--ink); font: inherit }

.rg-riddle-toggle:hover { color: var(--accent) }

.rg-riddle-icon { width: 26px; height: 26px; flex: none; position: relative; border: max(2px, calc(var(--bw) - 1px)) solid var(--line); background: var(--surface2); transition: .18s }

.rg-riddle-icon::before,.rg-riddle-icon::after { content: ""; position: absolute; background: var(--accent); left: 50%; top: 50%; transform: translate(-50%,-50%) }

.rg-riddle-icon::before { width: 11px; height: 3px }

.rg-riddle-icon::after { width: 3px; height: 11px; transition: opacity .18s }

.rg-riddle-toggle[aria-expanded="true"] .rg-riddle-icon { background: var(--accent); border-color: var(--accent) }

.rg-riddle-toggle[aria-expanded="true"] .rg-riddle-icon::before { background: var(--on-accent) }

.rg-riddle-toggle[aria-expanded="true"] .rg-riddle-icon::after { opacity: 0 }

.rg-riddle-a { padding: 0 17px 17px; border-top: 1px solid var(--line); padding-top: 15px }

.rg-riddle-a > * + * { margin-top: 14px }

.rg-riddle-a p { color: var(--ink2); font-size: 15.5px }

.rg-riddle-a[hidden] { display: none }

details.rg-riddle summary { list-style: none; cursor: pointer }

details.rg-riddle summary::-webkit-details-marker { display: none }

details.rg-riddle .rg-riddle-toggle { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 16px 17px; color: var(--ink) }

details.rg-riddle .rg-riddle-q { margin: 0; font-family: var(--font-body); font-size: 16.5px; font-weight: 600; line-height: 1.45 }

details.rg-riddle summary:hover .rg-riddle-q { color: var(--accent) }

details.rg-riddle[open] .rg-riddle-icon { background: var(--accent); border-color: var(--accent) }

details.rg-riddle[open] .rg-riddle-icon::before { background: var(--on-accent) }

details.rg-riddle[open] .rg-riddle-icon::after { opacity: 0 }

details.rg-riddle .rg-riddle-a { padding: 0 17px 17px; border-top: 1px solid var(--line); padding-top: 15px }

/* ---------- sidebar ---------- */ .rg-ledgerail { display: grid; gap: 20px; min-width: 0 }

.rg-chest { border-radius: var(--r-lg); border: var(--bw) solid var(--line); background: var(--surface); box-shadow: var(--sh-block) }

.rg-chest-head { padding: 13px 16px; border-bottom: var(--bw) solid var(--line); background: var(--surface2); font-family: var(--font-ui); font-size: 10.5px; letter-spacing: .11em; text-transform: uppercase; color: var(--ink); display: flex; align-items: center; gap: 9px }

.rg-chest-head svg { width: 17px; height: 17px; color: var(--accent) }

.rg-chest-body { padding: 16px }

.rg-pot { border-color: var(--accent); box-shadow: 0 0 0 3px color-mix(in srgb,var(--accent) 16%,transparent), var(--sh-block) }

.rg-pot .rg-chest-head { background: var(--accent); color: var(--on-accent); border-bottom-color: var(--accent-dk) }

.rg-pot .rg-chest-head svg { color: var(--on-accent) }

.rg-pot-value { font-family: var(--font-display); font-size: clamp(30px,4.6vw,38px); color: var(--accent); line-height: 1.06 }

.rg-pot-extra { font-family: var(--font-display); font-size: 21px; color: var(--ink); margin-top: 6px; line-height: 1.1 }

.rg-pot-terms { font-size: 12px; color: var(--ink3); margin-top: 12px; line-height: 1.5 }

.rg-pot .rg-wish { margin-top: 15px }

.rg-scroll dl { display: grid; gap: 0 }

.rg-scroll .rg-entry { display: flex; justify-content: space-between; gap: 14px; padding: 10px 0; border-bottom: 1px dashed var(--line) }

.rg-scroll .rg-entry:last-child { border-bottom: 0 }

.rg-scroll dt { font-size: 13px; color: var(--ink3); letter-spacing: .03em }

.rg-scroll dd { margin: 0; font-family: var(--font-display); font-size: 18px; color: var(--ink); text-align: right; line-height: 1.25 }

/* ---------- page contents ---------- */ .rg-index { background: var(--bg2); border-bottom: var(--bw) solid var(--line); padding: 18px 0 20px }

.rg-index-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 34px }

.rg-index-title { display: flex; align-items: center; gap: 9px; font-family: var(--font-ui); font-size: 10.5px; letter-spacing: .13em; text-transform: uppercase; color: var(--ink2) }

.rg-index-title svg { width: 16px; height: 16px; color: var(--accent); flex: none }

.rg-index-toggle { border-radius: var(--r); display: none; align-items: center; gap: 10px; cursor: pointer; background: var(--surface); border: max(2px, calc(var(--bw) - 1px)) solid var(--line); padding: 8px 12px; font-family: var(--font-ui); font-size: 10px; letter-spacing: .09em; text-transform: uppercase; color: var(--ink2) }

.rg-index-toggle:hover { border-color: var(--accent); color: var(--accent) }

.rg-index-icon { width: 16px; height: 16px; flex: none; position: relative }

.rg-index-icon::before,.rg-index-icon::after { content: ""; position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%); background: var(--accent) }

.rg-index-icon::before { width: 11px; height: 3px }

.rg-index-icon::after { width: 3px; height: 11px; transition: opacity .18s }

.rg-index-toggle[aria-expanded="true"] .rg-index-icon::after { opacity: 0 }

.rg-index-list { counter-reset: pn; display: grid; grid-template-columns: 1fr; gap: 2px; margin-top: 14px }

.rg-index-list li { counter-increment: pn; min-width: 0 }

.rg-index-list a { display: flex; gap: 11px; padding: 9px 11px; text-decoration: none; font-size: 14px; line-height: 1.4; color: var(--ink2); border-left: 3px solid transparent; transition: color .15s,background .15s,border-color .15s }

.rg-index-list a::before { content: counter(pn,decimal-leading-zero); font-family: var(--font-ui); font-size: 10px; color: var(--ink3); flex: none; padding-top: 3px }

.rg-index-list a:hover { color: var(--accent); background: var(--surface); border-left-color: var(--accent) }

.rg-index-list a.rg-here { color: var(--accent); background: var(--surface); border-left-color: var(--accent) }

/* ---------- in-content promo band ---------- */ .rg-charm { border-radius: var(--r-lg); position: relative; overflow: hidden; border: 3px solid var(--accent); background: linear-gradient(135deg,var(--surface2),var(--surface)); padding: 24px 22px; display: grid; gap: 18px; box-shadow: var(--sh-block) }

.rg-charm::before { content: ""; position: absolute; inset: 0; opacity: .16; pointer-events: none; background: repeating-linear-gradient(45deg,var(--accent) 0 8px,transparent 8px 24px) }

.rg-charm > * { position: relative }

.rg-charm-title { font-family: var(--font-display); font-size: clamp(24px,3.6vw,30px); line-height: 1.14; color: var(--ink) }

.rg-charm-title em { font-style: normal; color: var(--accent) }

.rg-charm-text { font-size: 15px; color: var(--ink2); margin-top: 8px }

.rg-charm-terms { font-size: 11.5px; color: var(--ink3); margin-top: 11px }

/* ---------- pickaxe tier strip ---------- */ .rg-zilo { display: grid; grid-template-columns: 1fr; gap: 12px }

@media (min-width:400px) {
  .rg-zilo { grid-template-columns: repeat(2,1fr) }
  }
@media (min-width:400px) {}

.rg-token { min-width: 0; border-radius: var(--r); border: var(--bw) solid var(--line); background: var(--surface); padding: 15px 14px; text-align: center }

.rg-token-icon { border-radius: var(--r); display: grid; place-items: center; width: 52px; height: 52px; margin: 0 auto 12px; border: max(2px, calc(var(--bw) - 1px)) solid var(--line); background: var(--surface2) }

.rg-token-icon svg { width: 30px; height: 30px }

.rg-token-name { font-family: var(--font-display); font-size: 20px; line-height: 1.1 }

.rg-token-meter { display: flex; gap: 3px; margin-top: 11px; justify-content: center }

.rg-token-meter i { display: block; width: 11px; height: 11px; background: var(--line) }

.rg-token-meter i.rg-aglow { background: var(--tnt) }

.rg-token-note { font-size: 12px; color: var(--ink3); margin-top: 9px; line-height: 1.45; display: block }

.rg-token--wood { color: #c08c53 }

.rg-token--stone { color: var(--stone) }

.rg-token--iron { color: #dfe6ee }

.rg-token--diamond { color: var(--diamond) }

.rg-token-name { color: currentColor }

.rg-token-icon { color: currentColor }

/* ---------- gallery ---------- */ .rg-plates { display: grid; gap: 14px; grid-template-columns: 1fr; align-items: start }

.rg-plate { border-radius: var(--r-lg); border: var(--bw) solid var(--line); background: var(--bg2); box-shadow: var(--sh-block); overflow: hidden }

.rg-plate img { width: 100%; image-rendering: pixelated }

.rg-plate figcaption { padding: 11px 14px; font-size: 12.5px; color: var(--ink3); border-top: 1px solid var(--line) }

/* ---------- footer ---------- */ .rg-roots { background: var(--bg2); border-top: var(--bw) solid var(--line); padding: 42px 0 0; font-size: 14.5px }

.rg-roots-grid { display: grid; gap: 30px; grid-template-columns: 1fr }

.rg-roots-col h2 { font-family: var(--font-ui); font-size: 10px; letter-spacing: .13em; text-transform: uppercase; color: var(--ink); margin-bottom: 14px }

.rg-roots-col ul { display: grid; gap: 9px }

.rg-roots-col a { color: var(--ink3); text-decoration: none; transition: color .15s }

.rg-roots-col a:hover { color: var(--accent) }

.rg-purse { display: flex; flex-wrap: wrap; gap: 8px }

.rg-purse span { border-radius: var(--r); border: max(2px, calc(var(--bw) - 1px)) solid var(--line); background: var(--surface); padding: 7px 11px; font-family: var(--font-ui); font-size: 9.5px; letter-spacing: .05em; color: var(--ink3) }

.rg-mindful { margin-top: 34px; border-top: 1px solid var(--line); padding: 24px 0; display: grid; gap: 16px; align-items: center }

.rg-mindful-chips { display: flex; flex-wrap: wrap; gap: 9px; align-items: center }

.rg-mindful-chip { border-radius: var(--r); display: inline-flex; align-items: center; gap: 7px; border: max(2px, calc(var(--bw) - 1px)) solid var(--line); padding: 7px 12px; font-size: 12px; color: var(--ink2); background: var(--surface) }

.rg-mindful-chip b { font-family: var(--font-ui); color: var(--tnt-ink); font-size: 12px; letter-spacing: .04em }

.rg-mindful-chip svg { width: 15px; height: 15px; color: var(--ink3) }

.rg-mindful p { color: var(--ink3); font-size: 13px; line-height: 1.6 }

.rg-mindful a { color: var(--ink2) }

.rg-roots-bottom { border-top: 1px solid var(--line); padding: 18px 0 30px; color: var(--ink3); font-size: 12.5px; display: grid; gap: 8px }

/* ---------- sticky mobile CTA ---------- */ .rg-dock { position: fixed; left: 0; right: 0; bottom: 0; z-index: 80; background: color-mix(in srgb, var(--bg2) 96%, transparent); backdrop-filter: blur(10px); border-top: var(--bw) solid var(--line); padding: 10px 0 calc(10px + env(safe-area-inset-bottom)); box-shadow: 0 -10px 24px -14px rgba(0,0,0,.7) }

.rg-dock-row { display: flex; align-items: center; justify-content: space-between; gap: 14px }

.rg-dock-text { flex: 1 1 auto; min-width: 0; line-height: 1.15 }

.rg-dock-text b { display: block; font-family: var(--font-display); font-size: 18px; color: var(--accent); overflow: hidden; text-overflow: ellipsis; white-space: nowrap }

.rg-dock-text span { display: block; font-family: var(--font-ui); font-size: 9.5px; letter-spacing: .1em; text-transform: uppercase; color: var(--ink3); margin-top: 4px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap }

@media (max-width:359px) {
  .rg-dock-row { gap: 10px }
  }
@media (max-width:359px) {
  .rg-dock .rg-wish { padding-left: 14px; padding-right: 14px }
  }
@media (max-width:359px) {
  .rg-dock-text span { display: none }
  }
@media (max-width:359px) {}

.rg-dock .rg-wish { flex: none; white-space: nowrap }

.rg-js .rg-dock { transform: translateY(110%); transition: transform .28s ease; will-change: transform }

.rg-js .rg-dock.rg-lifted { transform: none }

.rg-nomi .rg-dock { display: none }

/* ---------- 404 ---------- */ .rg-mist { min-height: 62vh; display: grid; place-items: center; text-align: center; padding: 60px 0 }

.rg-mist-code { font-family: var(--font-display); font-size: clamp(84px,22vw,170px); line-height: .86; color: var(--accent); text-shadow: 7px 7px 0 var(--surface2) }

.rg-mist h1 { font-family: var(--font-display); font-size: clamp(28px,5.2vw,40px); margin-top: 20px; font-weight: 400 }

.rg-mist p { color: var(--ink2); margin-top: 14px; max-width: 52ch; margin-inline: auto }

.rg-mist .rg-mist-code { color: var(--accent); max-width: none; margin-top: 0 }

.rg-mist .rg-arch-cta { justify-content: center }

.rg-mist-links { margin-top: 30px; display: flex; flex-wrap: wrap; gap: 9px; justify-content: center }

.rg-mist-links a { border-radius: var(--r); border: max(2px, calc(var(--bw) - 1px)) solid var(--line); background: var(--surface); padding: 9px 14px; text-decoration: none; font-size: 13.5px; color: var(--ink2); transition: .15s }

.rg-mist-links a:hover { border-color: var(--accent); color: var(--accent) }

/* ---------- reveal ---------- */ .rg-js .rg-fade { opacity: 0; transform: translateY(16px) }

.rg-js .rg-fade.rg-lit { opacity: 1; transform: none; transition: opacity .5s ease,transform .5s ease }

/* ---------- breadcrumb ---------- */ .rg-steps { padding: 14px 0; font-size: 13px; color: var(--ink3); border-bottom: 1px solid var(--line); background: var(--bg2) }

.rg-steps ol { display: flex; flex-wrap: wrap; gap: 7px; align-items: center }

.rg-steps a { color: var(--ink2); text-decoration: none }

.rg-steps a:hover { color: var(--accent) }

.rg-steps li + li::before { content: "›"; margin-right: 7px; color: var(--ink3) }

.rg-steps li { display: flex; align-items: center }

.rg-steps [aria-current] { color: var(--ink3) }

/* ---------- responsive ---------- */ @media (max-width:719px) {
  .rg-index-toggle { display: inline-flex }
  }
/* ---------- responsive ---------- */ @media (max-width:719px) {
  .rg-js .rg-index-list { display: none }
  }
/* ---------- responsive ---------- */ @media (max-width:719px) {
  .rg-js .rg-index.rg-unlocked .rg-index-list { display: grid }
  }
/* ---------- responsive ---------- */ @media (max-width:719px) {}

@media (max-width:599px) {
  .rg-arch-offer { position: static; margin-top: -2px; padding: 13px 16px; text-align: center; border-radius: 0 0 var(--r-lg) var(--r-lg); box-shadow: none }
  }
@media (max-width:599px) {
  .rg-arch-offer b { font-size: 23px }
  }
@media (max-width:599px) {}

@media (min-width:600px) {
  .rg-index-list { grid-template-columns: 1fr 1fr }
  }
@media (min-width:600px) {
  .rg-hoard--cards .rg-hoard-grid { grid-template-columns: repeat(3,1fr) }
  }
@media (min-width:600px) {
  .rg-hoard--strip .rg-hoard-grid { grid-template-columns: repeat(3,1fr) }
  }
@media (min-width:600px) {
  .rg-hoard--strip .rg-hoard-item:nth-child(2n) { border-right: 1px solid var(--line) }
  }
@media (min-width:600px) {
  .rg-hoard--strip .rg-hoard-item:nth-child(3n) { border-right: 0 }
  }
@media (min-width:600px) {
  .rg-zilo { grid-template-columns: repeat(4,1fr) }
  }
@media (min-width:600px) {
  .rg-charm { grid-template-columns: 1fr auto; align-items: center; gap: 26px; padding: 28px 26px }
  }
@media (min-width:600px) {
  .rg-mindful { grid-template-columns: auto 1fr; gap: 24px }
  }
@media (min-width:600px) {
  .rg-roots-bottom { grid-template-columns: 1fr auto; align-items: center }
  }
@media (min-width:600px) {
  .rg-plates { grid-template-columns: 2fr 1fr }
  }
@media (min-width:600px) {}

@media (max-width:899px) {
  .rg-arch-row--art-left .rg-arch-copy { order: -1 }
  }
@media (max-width:899px) {}

@media (min-width:900px) {
  .rg-arch-row.rg-arch-row--art-left { grid-template-columns: .94fr 1.06fr }
  }
@media (min-width:900px) {
  .rg-arch-row.rg-arch-row--art-wide { grid-template-columns: 1fr; gap: 26px; align-items: start; text-align: center; padding: 34px 0 40px }
  }
@media (min-width:900px) {
  .rg-arch-row--art-wide h1 { font-size: clamp(32px,5vw,50px) }
  }
@media (min-width:900px) {
  .rg-arch-row--art-wide .rg-arch-copy { max-width: none }
  }
@media (min-width:900px) {
  .rg-arch-row--art-wide h1 { margin-inline: auto }
  }
@media (min-width:900px) {
  .rg-arch-row--art-wide .rg-arch-lede { max-width: 56ch; margin-inline: auto }
  }
@media (min-width:900px) {
  .rg-arch-row--art-wide .rg-arch-cta, .rg-arch-row--art-wide .rg-arch-note { justify-content: center }
  }
@media (min-width:900px) {
  .rg-arch-row--art-wide .rg-arch-note { align-items: center }
  }
@media (min-width:900px) {
  .rg-index { padding: 22px 0 26px }
  }
@media (min-width:900px) {
  .rg-index-list { grid-template-columns: repeat(3,1fr); gap: 2px 18px; margin-top: 16px }
  }
@media (min-width:900px) {
  .rg-arch-row { grid-template-columns: 1.06fr .94fr; align-items: center; gap: 44px; padding: 52px 0 60px }
  }
@media (min-width:900px) {
  .rg-hoard--cards .rg-hoard-grid { grid-template-columns: repeat(6,1fr) }
  }
@media (min-width:900px) {
  .rg-hoard--strip .rg-hoard-grid { grid-template-columns: repeat(6,1fr) }
  }
@media (min-width:900px) {
  .rg-hoard--strip .rg-hoard-item:nth-child(3n) { border-right: 1px solid var(--line) }
  }
@media (min-width:900px) {
  .rg-hoard--strip .rg-hoard-item:nth-child(6n) { border-right: 0 }
  }
@media (min-width:900px) {
  .rg-hoard-item { flex-direction: column; align-items: flex-start; gap: 11px; padding: 20px 15px }
  }
@media (min-width:900px) {
  .rg-satchel { display: none }
  }
@media (min-width:900px) {}

@media (max-width:1079px) {
  body { padding-bottom: 78px }
  }
@media (max-width:1079px) {}

@media (min-width:1080px) {
  .rg-dock { display: none }
  }
@media (min-width:1080px) {
  .rg-trailmap { display: block }
  }
@media (min-width:1080px) {
  .rg-latch { display: none }
  }
@media (min-width:1080px) {
  .rg-canopy-cta { display: inline-flex }
  }
@media (min-width:1080px) {
  .rg-vault { grid-template-columns: minmax(0,1fr) 316px; gap: 42px; padding: 44px 0 72px }
  }
@media (min-width:1080px) {
  .rg-vault--side-left { grid-template-columns: 316px minmax(0,1fr) }
  }
@media (min-width:1080px) {
  .rg-ledgerail { position: sticky; top: 88px; max-height: calc(100vh - 104px); overflow-y: auto; overflow-x: hidden; padding: 0 10px 10px 0; margin-right: -10px; scrollbar-width: thin; scrollbar-color: var(--line) transparent }
  }
@media (min-width:1080px) {
  .rg-ledgerail::-webkit-scrollbar { width: 8px }
  }
@media (min-width:1080px) {
  .rg-ledgerail::-webkit-scrollbar-thumb { background: var(--line) }
  }
@media (min-width:1080px) {
  .rg-ledgerail::-webkit-scrollbar-track { background: transparent }
  }
@media (min-width:1080px) {
  .rg-roots-grid { grid-template-columns: 1.5fr 1fr 1fr 1fr }
  }
@media (min-width:1080px) {}

@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior: auto }
  }
@media (prefers-reduced-motion:reduce) {
  *,*::before,*::after { animation-duration: .001ms !important; transition-duration: .001ms !important }
  }
@media (prefers-reduced-motion:reduce) {
  .rg-js .rg-fade { opacity: 1; transform: none }
  }
@media (prefers-reduced-motion:reduce) {}

@media print {
  .rg-canopy,.rg-ledgerail,.rg-charm,.rg-arch-cta,.rg-latch,.rg-satchel,.rg-index,.rg-dock { display: none !important }
  }
@media print {
  body { background: #fff; color: #000 }
  }
@media print {
  .rg-tale p,.rg-tale li { color: #222 }
  }
@media print {}

