:root { --bg:#F7F2EA; --card:#FFFDF9; --stroke:#E4D9C8; --text:#2A2320; --hi:#1A1411; --lo:#6B5E55; --copper:#A04A1F; --patina:#1B6F5F; }
@media (prefers-color-scheme: dark) { :root { --bg:#0F1716; --card:#172321; --stroke:#2A3A37; --text:#E8E2D9; --hi:#FFFFFF; --lo:#A9B5B1; --copper:#E08A5C; --patina:#5FB8A3; } }
* { box-sizing:border-box; }
body { margin:0; background:var(--bg); color:var(--text); font:16px/1.65 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif; }
a { color:var(--patina); }
.shell { max-width:760px; margin:0 auto; padding:24px 16px 64px; }
.top { display:flex; align-items:center; gap:12px; flex-wrap:wrap; justify-content:space-between; margin-bottom:28px; }
.brand { display:flex; align-items:center; gap:10px; color:var(--hi); text-decoration:none; font-weight:800; }
.brand img { width:36px; height:36px; }
nav a { margin-left:14px; color:var(--lo); text-decoration:none; font-size:14px; }
nav a:hover { color:var(--hi); }
.card { background:var(--card); border:1px solid var(--stroke); border-radius:20px; padding:28px 22px; }
h1 { color:var(--hi); font-size:30px; line-height:1.15; margin:6px 0 10px; letter-spacing:-0.4px; font-family:Georgia,"Source Serif 4",serif; }
h2 { color:var(--hi); font-size:19px; margin:28px 0 8px; }
.eyebrow { color:var(--copper); font-size:12px; font-weight:800; letter-spacing:1.4px; text-transform:uppercase; }
.meta { color:var(--lo); font-size:14px; }
.rule { height:3px; background:linear-gradient(90deg,var(--copper),var(--patina)); border-radius:2px; margin:18px 0 6px; }
ul, ol { padding-left:20px; } li { margin:6px 0; }
table { border-collapse:collapse; width:100%; font-size:14px; } td, th { border:1px solid var(--stroke); padding:8px; text-align:left; vertical-align:top; }
footer { color:var(--lo); font-size:13px; margin-top:28px; text-align:center; }

/* Penny Value public site. Appended by build.py after legal-site/assets/styles.css, whose tokens
   (--bg, --card, --stroke, --text, --hi, --lo, --copper, --patina; light and dark) are reused here. */
:root { --on-copper:#FFFFFF; --warn-bg:#FBEBD9; --warn-ink:#5E2A0C; --chip:#EFE6D8; --soft:#F2EADF; }
@media (prefers-color-scheme: dark) { :root { --on-copper:#1A1411; --warn-bg:#3A2616; --warn-ink:#F6D6BC; --chip:#22302E; --soft:#132019; } }

html { -webkit-text-size-adjust:100%; text-size-adjust:100%; }
main, footer { overflow-wrap:break-word; word-wrap:break-word; }
img { max-width:100%; height:auto; }
[hidden] { display:none !important; }

.top nav { display:flex; flex-wrap:wrap; gap:2px 18px; }
.top nav a { margin-left:0; font-size:15px; padding:8px 0; }
.card + .card { margin-top:16px; }
@media (max-width:480px) { .card { padding:22px 16px; border-radius:16px; } h1 { font-size:26px; } }

h3 { color:var(--hi); font-size:16px; margin:20px 0 6px; }
.crumbs { font-size:13px; color:var(--lo); margin:0 0 10px; }
.crumbs a { color:var(--lo); }
.lead { font-size:18px; line-height:1.55; color:var(--text); margin:8px 0 4px; }
.small { font-size:13px; color:var(--lo); }
.muted { color:var(--lo); }

.btn { display:inline-block; background:var(--copper); color:var(--on-copper); font-weight:700; text-decoration:none;
  padding:13px 24px; border-radius:999px; min-height:48px; line-height:22px; text-align:center; }
.btn:hover, .btn:focus-visible { filter:brightness(1.08); }
.btn.alt { background:transparent; color:var(--copper); box-shadow:inset 0 0 0 2px var(--copper); }
.actions { display:flex; flex-wrap:wrap; gap:10px; margin:18px 0 6px; }
.cta { background:var(--soft); border:1px solid var(--stroke); border-radius:16px; padding:16px; margin:22px 0; }
.cta h2 { margin-top:0; }
.cta p { margin:4px 0 12px; }

.tags { display:flex; flex-wrap:wrap; gap:6px; margin:10px 0 4px; }
.tag { display:inline-block; font-size:12px; font-weight:700; line-height:18px; padding:3px 10px; border-radius:999px;
  background:var(--chip); color:var(--text); white-space:nowrap; }
.tag.key { background:var(--copper); color:var(--on-copper); }
.tag.semi, .tag.var { background:var(--patina); color:var(--on-copper); }

.warn { background:var(--warn-bg); color:var(--warn-ink); border-radius:14px; padding:14px 16px; margin:16px 0; }
.warn strong { display:block; margin-bottom:2px; }
.shared { background:var(--soft); border:1px solid var(--stroke); border-radius:12px; padding:10px 14px; margin:0 0 14px; font-size:14px; }

.tiles { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin:12px 0; }
@media (max-width:340px) { .tiles { grid-template-columns:1fr; } }
.tile { border:1px solid var(--stroke); border-radius:14px; padding:12px; background:var(--bg); }
.tile .k { font-size:13px; color:var(--lo); line-height:1.35; }
.tile .v { font-size:21px; font-weight:800; color:var(--hi); font-variant-numeric:tabular-nums; line-height:1.3; margin:4px 0 2px; }
.tile .s { font-size:12px; color:var(--lo); line-height:1.35; }

.table-wrap { overflow-x:auto; -webkit-overflow-scrolling:touch; margin:12px 0; max-width:100%; }
table.ladder { font-size:14px; }
table.ladder th { font-weight:700; color:var(--lo); }
table.ladder td, table.ladder th { padding:7px 6px; }
table.ladder th { line-height:1.3; }
table.ladder .num { text-align:right; white-space:nowrap; font-variant-numeric:tabular-nums; }
table.ladder td.g { white-space:nowrap; font-weight:700; color:var(--hi); }
table.ladder td.g span { display:block; font-size:12px; font-weight:400; color:var(--lo); white-space:normal; line-height:1.3; }

.list { list-style:none; padding:0; margin:8px 0; }
.list > li { border-top:1px solid var(--stroke); padding:10px 0; margin:0; }
.list > li:last-child { border-bottom:1px solid var(--stroke); }
.row { display:flex; justify-content:space-between; align-items:flex-start; gap:12px; }
.row .val { text-align:right; white-space:nowrap; font-variant-numeric:tabular-nums; font-size:14px; }
.row .val span { display:block; color:var(--lo); font-size:12px; }
.row a { font-weight:700; }
.row .sub { font-size:13px; color:var(--lo); }
.list .tags { margin:4px 0 0; }
.nested { margin:6px 0 0 12px; padding-left:12px; border-left:2px solid var(--stroke); }
.nested > li { border-top:0; padding:6px 0; }
.nested > li:last-child { border-bottom:0; }
.year { font-weight:800; color:var(--hi); margin:22px 0 2px; font-size:16px; font-family:Georgia,"Source Serif 4",serif; }

.specs { display:grid; grid-template-columns:minmax(92px, 34%) 1fr; margin:8px 0; font-size:15px; }
.specs dt, .specs dd { margin:0; padding:8px 0; border-top:1px solid var(--stroke); }
.specs dt { color:var(--lo); padding-right:12px; }
.checks > li { margin:10px 0; }
.checks .ask { display:block; font-size:14px; color:var(--lo); }

.inshort { background:var(--bg); border:1px solid var(--stroke); border-radius:14px; padding:6px 16px; margin:16px 0; }
.inshort h2 { font-size:15px; margin:10px 0 0; text-transform:uppercase; letter-spacing:1px; color:var(--copper); }
.callout { border-left:4px solid var(--patina); background:var(--bg); border-radius:0 12px 12px 0; padding:10px 14px; margin:16px 0; }
.callout.watch { border-left-color:var(--copper); background:var(--warn-bg); color:var(--warn-ink); }
.callout b { display:block; }

.grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(230px, 1fr)); gap:12px; margin:12px 0; }
.grid a.box { display:block; text-decoration:none; color:var(--text); border:1px solid var(--stroke); border-radius:14px; padding:14px; background:var(--bg); }
.grid a.box strong { display:block; color:var(--hi); }
.grid a.box span { display:block; font-size:14px; color:var(--lo); }
.steps { padding-left:22px; }
.sources li { font-size:14px; }
footer p { margin:6px 0; }
footer a { color:var(--lo); }

.coin-photos { margin:16px 0; }
.coin-photos .pair { display:flex; gap:12px; align-items:center; }
.coin-photos .pair img { flex:1 1 0; min-width:0; max-width:200px; height:auto; border-radius:50%; }
.coin-photos .pair img.detail { border-radius:10px; max-width:100%; }
.coin-photos figcaption { margin-top:6px; }

/* Platform-aware install CTAs (html.is-android / is-ios / is-desktop is set by PLATFORM_JS in <head>). */
.cta-alt { display:none; margin:16px 0; padding:12px 14px; border:1px dashed var(--stroke); border-radius:12px; color:var(--lo); font-size:15px; }
.cta-alt span { display:none; }
.is-ios .cta-alt, .is-desktop .cta-alt { display:block; }
.is-ios .cta-alt .for-ios, .is-desktop .cta-alt .for-desktop { display:inline; }
.is-ios .cta, .is-desktop .cta, .is-ios .android-only, .is-desktop .android-only { display:none; }
.sticky-get { display:none; }
.is-android .sticky-get { display:flex; position:fixed; left:12px; right:12px; bottom:12px; z-index:20; max-width:560px; margin:0 auto;
  align-items:center; justify-content:space-between; gap:12px; padding:10px 10px 10px 16px; background:var(--card);
  border:1px solid var(--stroke); border-radius:16px; box-shadow:0 10px 28px rgba(0,0,0,.28); }
.is-android .sticky-get span { font-size:15px; font-weight:600; color:var(--hi); }
.is-android .sticky-get .btn { margin:0; padding:10px 16px; white-space:nowrap; }
.is-android body { padding-bottom:88px; }

/* Polish */
details.credits { display:inline; }
details.credits summary { display:inline; cursor:pointer; color:var(--lo); text-decoration:underline dotted; }
details.credits[open] summary { margin-right:6px; }
.coin-photos .pair { justify-content:center; }
table.ladder tbody tr:nth-child(even) td { background:color-mix(in srgb, var(--stroke) 22%, transparent); }
table.ladder td a { font-weight:600; }
h3 + p { margin-top:4px; }
.lead { line-height:1.55; }
.chips { display:flex; flex-wrap:wrap; gap:8px; margin:8px 0 4px; }
.chips a.chip { display:inline-block; padding:7px 12px; border:1px solid var(--stroke); border-radius:999px; background:var(--bg);
  color:var(--hi); text-decoration:none; font-size:14px; font-weight:600; }
.chips a.chip:hover, .chips a.chip:focus-visible { border-color:var(--copper); color:var(--copper); }
