/* rmhbaltimore.com · commons stylesheet · Baltimore brick & Chesapeake navy */
:root{
  --rmb-paper:#FAF6F2;
  --rmb-card:#FFFFFF;
  --rmb-navy:#1E293B;
  --rmb-navy-soft:#334155;
  --rmb-marigold:#D97706;
  --rmb-marigold-deep:#B45309;
  --rmb-marigold-wash:#FEF3C7;
  --rmb-harbor:#0284C7;
  --rmb-harbor-deep:#0369A1;
  --rmb-harbor-wash:#E0F2FE;
  --rmb-brick:#B4532A;
  --rmb-rule:#E7DDD3;
  --rmb-muted:#55606F;
  --rmb-serif:'Merriweather', Georgia, 'Times New Roman', serif;
  --rmb-sans:'Public Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --rmb-mono:'Fira Mono', ui-monospace, Menlo, Consolas, monospace;
  --rmb-wide:74rem;
  --rmb-read:43rem;
  --rmb-radius:6px;
  --rmb-shadow:0 1px 2px rgba(30,41,59,.06), 0 6px 18px rgba(30,41,59,.06);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--rmb-paper);color:var(--rmb-navy);font:400 1.0625rem/1.72 var(--rmb-sans)}
img,svg{max-width:100%;height:auto}
a{color:var(--rmb-harbor-deep);text-decoration-thickness:1px;text-underline-offset:.2em}
a:hover{color:var(--rmb-marigold-deep)}
:focus-visible{outline:3px solid var(--rmb-marigold);outline-offset:2px}
h1,h2,h3{font-family:var(--rmb-serif);font-weight:700;line-height:1.3;color:var(--rmb-navy);margin:0 0 .6em}
h1{font-size:clamp(1.85rem,3.6vw,2.7rem)}
h2{font-size:clamp(1.35rem,2.4vw,1.7rem);margin-top:1.9em}
h3{font-size:1.15rem;margin-top:1.4em}
p{margin:0 0 1.05em}
.rmb-mono{font-family:var(--rmb-mono);font-size:.92em}
.rmb-visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.rmb-skip{position:absolute;left:-999px;top:0;background:var(--rmb-marigold);color:var(--rmb-navy);padding:.5rem 1rem;z-index:10}
.rmb-skip:focus{left:1rem}

/* banner */
.rmb-banner{background:var(--rmb-navy);color:#F8FAFC;border-bottom:4px solid var(--rmb-marigold)}
.rmb-independence-strip{margin:0;padding:.45rem 1.25rem;background:#0F172A;color:#E2E8F0;font-size:.82rem;text-align:center;line-height:1.5}
.rmb-independence-link{color:#FCD34D}
.rmb-independence-link:hover{color:#FFFFFF}
.rmb-banner-inner{max-width:var(--rmb-wide);margin:0 auto;padding:1rem 1.25rem;display:flex;flex-wrap:wrap;gap:1rem 2rem;align-items:center;justify-content:space-between;background-image:repeating-linear-gradient(0deg,transparent 0 13px,rgba(255,255,255,.025) 13px 14px)}
.rmb-wordmark{display:flex;gap:.8rem;align-items:center;color:#FFFFFF;text-decoration:none}
.rmb-wordmark:hover{color:#FFFFFF}
.rmb-mark-svg{width:44px;height:44px;flex:none}
.rmb-mark-brick{fill:var(--rmb-brick)}
.rmb-mark-cornice{fill:var(--rmb-marigold)}
.rmb-mark-window{fill:#FAF6F2}
.rmb-mark-door{fill:var(--rmb-harbor)}
.rmb-mark-step{fill:#FFFFFF}
.rmb-wordmark-text{display:flex;flex-direction:column;line-height:1.25}
.rmb-wordmark-name{font-family:var(--rmb-serif);font-weight:700;font-size:1.3rem}
.rmb-wordmark-sub{font-size:.8rem;color:#CBD5E1;max-width:24rem}
.rmb-wayfinder-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.25rem .4rem}
.rmb-wayfinder-link{display:block;padding:.4rem .7rem;border-radius:var(--rmb-radius);color:#F1F5F9;text-decoration:none;font-weight:500;font-size:.93rem}
.rmb-wayfinder-link:hover{background:rgba(255,255,255,.08);color:#FFFFFF}
.rmb-wayfinder-link[aria-current="page"]{background:var(--rmb-marigold);color:var(--rmb-navy)}

/* corridor layout */
.rmb-corridor{display:block}
.rmb-band{max-width:var(--rmb-wide);margin:0 auto;padding:2.75rem 1.25rem}
.rmb-band-tint{background:#F3ECE4;border-top:1px solid var(--rmb-rule);border-bottom:1px solid var(--rmb-rule)}
.rmb-band-tint > .rmb-band{padding-top:2.75rem;padding-bottom:2.75rem}
.rmb-kicker{font:700 .78rem/1.3 var(--rmb-sans);letter-spacing:.09em;text-transform:uppercase;color:var(--rmb-marigold-deep);margin:0 0 .6rem}
.rmb-section-head{max-width:var(--rmb-read);margin-bottom:1.5rem}
.rmb-section-head h2{margin-top:0}
.rmb-lede{font-size:1.15rem;color:var(--rmb-navy-soft)}

/* hero */
.rmb-hero{display:grid;gap:2rem;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);align-items:start}
.rmb-hero h1{margin-bottom:.5em}
.rmb-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.4rem}
.rmb-button{display:inline-block;padding:.7rem 1.15rem;border-radius:var(--rmb-radius);background:var(--rmb-navy);color:#FFFFFF;font-weight:700;text-decoration:none;border:2px solid var(--rmb-navy)}
.rmb-button:hover{background:var(--rmb-marigold);border-color:var(--rmb-marigold);color:var(--rmb-navy)}
.rmb-button-ghost{background:transparent;color:var(--rmb-navy)}
.rmb-notice{background:var(--rmb-card);border:1px solid var(--rmb-rule);border-left:6px solid var(--rmb-marigold);border-radius:var(--rmb-radius);padding:1.25rem 1.35rem;box-shadow:var(--rmb-shadow)}
.rmb-notice h2{font-size:1.15rem;margin:0 0 .6rem}
.rmb-notice p{font-size:.97rem}
.rmb-notice p:last-child{margin-bottom:0}

/* editor letter */
.rmb-letter{max-width:var(--rmb-read);background:var(--rmb-card);border:1px solid var(--rmb-rule);border-radius:var(--rmb-radius);padding:1.75rem 1.9rem;box-shadow:var(--rmb-shadow);font-family:var(--rmb-serif);font-size:1rem;line-height:1.8}
.rmb-letter-sign{font-family:var(--rmb-sans);font-weight:700;margin:1.4rem 0 0}
.rmb-letter-role{display:block;font-weight:400;color:var(--rmb-muted);font-size:.9rem}

/* planner */
.rmb-planner{background:var(--rmb-card);border:1px solid var(--rmb-rule);border-radius:10px;box-shadow:var(--rmb-shadow);overflow:hidden}
.rmb-tablist{display:flex;flex-wrap:wrap;border-bottom:1px solid var(--rmb-rule);background:#F8F4EF}
.rmb-tab{flex:1 1 14rem;font:700 .98rem var(--rmb-sans);color:var(--rmb-navy-soft);background:transparent;border:0;border-bottom:4px solid transparent;padding:1rem 1.25rem;cursor:pointer;text-align:left}
.rmb-tab[aria-selected="true"]{color:var(--rmb-navy);border-bottom-color:var(--rmb-marigold);background:var(--rmb-card)}
.rmb-tab-note{display:block;font-weight:400;font-size:.82rem;color:var(--rmb-muted)}
.rmb-pane{padding:1.5rem;display:grid;gap:1.75rem;grid-template-columns:minmax(0,20rem) minmax(0,1fr)}
.rmb-pane[hidden]{display:none}
.rmb-form{display:grid;gap:1rem;align-content:start}
.rmb-field{display:grid;gap:.3rem}
.rmb-field-off{opacity:.5}
.rmb-label{font-weight:700;font-size:.9rem}
.rmb-hint{font-size:.8rem;color:var(--rmb-muted)}
.rmb-input,.rmb-select{font:400 1rem var(--rmb-sans);color:var(--rmb-navy);padding:.5rem .6rem;border:1px solid #CBBFB2;border-radius:var(--rmb-radius);background:#FFFFFF;width:100%}
.rmb-range{width:100%;accent-color:var(--rmb-marigold)}
.rmb-range-row{display:flex;justify-content:space-between;align-items:baseline;gap:1rem}
.rmb-range-value{font-family:var(--rmb-mono);font-weight:500;color:var(--rmb-marigold-deep)}
.rmb-pair{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}
.rmb-results{min-width:0}
.rmb-results-lede{font-size:1.05rem;background:var(--rmb-harbor-wash);border-left:4px solid var(--rmb-harbor);padding:.8rem 1rem;border-radius:0 var(--rmb-radius) var(--rmb-radius) 0}
.rmb-ledger{width:100%;border-collapse:collapse;font-size:.95rem;margin:1rem 0}
.rmb-ledger th,.rmb-ledger td{padding:.5rem .6rem;border-bottom:1px solid var(--rmb-rule);text-align:right}
.rmb-ledger th:first-child{text-align:left;font-weight:500}
.rmb-ledger thead th{font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;color:var(--rmb-muted)}
.rmb-ledger td{font-family:var(--rmb-mono)}
.rmb-ledger tfoot th,.rmb-ledger tfoot td{font-weight:700;border-bottom:0}
.rmb-ledger tfoot tr:first-child th,.rmb-ledger tfoot tr:first-child td{border-top:2px solid var(--rmb-navy)}
.rmb-bars{display:grid;gap:.5rem;margin:1rem 0}
.rmb-bar{display:grid;grid-template-columns:6.5rem 1fr;gap:.6rem;align-items:center;font-size:.85rem}
.rmb-bar-track{background:#F1EAE2;border-radius:3px;height:1.1rem;overflow:hidden}
.rmb-bar-fill{display:block;height:100%}
.rmb-bar-hotel{background:var(--rmb-navy)}
.rmb-bar-apt{background:var(--rmb-marigold)}
.rmb-fine{font-size:.85rem;color:var(--rmb-muted)}
.rmb-fine-list{font-size:.85rem;color:var(--rmb-muted);padding-left:1.1rem}
.rmb-fine-list li{margin-bottom:.35rem}
.rmb-advice{background:var(--rmb-marigold-wash);border-left:4px solid var(--rmb-marigold);padding:.7rem 1rem;border-radius:0 var(--rmb-radius) var(--rmb-radius) 0;font-size:.93rem;margin:0 0 .8rem}
.rmb-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.rmb-pomodoro{list-style:none;margin:.75rem 0 0;padding:0;display:grid;gap:.35rem}
.rmb-pomodoro-block{display:grid;grid-template-columns:4.2rem 1fr;gap:.75rem;align-items:baseline;padding:.45rem .7rem;border-radius:var(--rmb-radius);background:#F8F4EF;font-size:.9rem}
.rmb-pomodoro-rest{background:transparent;color:var(--rmb-muted)}
.rmb-pomodoro-time{font-family:var(--rmb-mono);font-weight:500;color:var(--rmb-marigold-deep)}

/* study matrix tables */
.rmb-study-matrix{width:100%;border-collapse:collapse;font-size:.92rem;background:var(--rmb-card)}
.rmb-study-matrix caption{text-align:left;font-weight:700;padding:0 0 .6rem;font-size:.95rem}
.rmb-study-matrix th,.rmb-study-matrix td{padding:.55rem .65rem;border:1px solid var(--rmb-rule);vertical-align:top;text-align:left}
.rmb-study-matrix thead th{background:var(--rmb-navy);color:#FFFFFF;font-weight:500;font-size:.82rem;letter-spacing:.03em}
.rmb-study-matrix tbody tr:nth-child(even){background:#FBF8F5}
.rmb-study-matrix-num{font-size:.84rem}
.rmb-study-matrix-num th,.rmb-study-matrix-num td{padding:.45rem .5rem}
.rmb-study-matrix-num td{font-family:var(--rmb-mono);text-align:right}
.rmb-study-matrix-num td.rmb-cell-text{font-family:var(--rmb-sans);text-align:left}
.rmb-study-matrix-num tfoot td,.rmb-study-matrix-num tfoot th{font-weight:700;background:#F3ECE4}
.rmb-phase{display:inline-block;font:700 .72rem var(--rmb-sans);padding:.1rem .45rem;border-radius:3px;background:var(--rmb-harbor-wash);color:var(--rmb-harbor-deep);text-transform:uppercase;letter-spacing:.05em}
.rmb-phase-build{background:var(--rmb-marigold-wash);color:var(--rmb-marigold-deep)}
.rmb-phase-full{background:var(--rmb-navy);color:#FFFFFF}
.rmb-phase-taper{background:#ECFDF5;color:#047857}

/* map & schedule */
.rmb-map-grid{display:grid;gap:2rem;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);align-items:start}
.rmb-map-figure{margin:0;background:var(--rmb-card);border:1px solid var(--rmb-rule);border-radius:10px;padding:.75rem;box-shadow:var(--rmb-shadow)}
.rmb-map-caption{font-size:.82rem;color:var(--rmb-muted);padding:.5rem .4rem 0}
.rmb-map-ground{fill:#FFFDFB}
.rmb-map-block{fill:#F5EEE6}
.rmb-map-water{fill:var(--rmb-harbor-wash)}
.rmb-map-falls{fill:none;stroke:#BAE6FD;stroke-width:7;stroke-linecap:round}
.rmb-map-charles{fill:none;stroke:var(--rmb-marigold);stroke-width:8;stroke-linecap:round}
.rmb-map-rail{fill:none;stroke:var(--rmb-navy);stroke-width:3;stroke-dasharray:11 6}
.rmb-map-metro{fill:none;stroke:var(--rmb-navy-soft);stroke-width:4}
.rmb-map-shuttle{fill:none;stroke:var(--rmb-harbor);stroke-width:3;stroke-dasharray:3 5;stroke-linecap:round}
.rmb-map-stop{fill:#FFFFFF;stroke:var(--rmb-navy);stroke-width:2.5}
.rmb-map-stop-key{fill:var(--rmb-marigold);stroke:var(--rmb-navy);stroke-width:2.5}
.rmb-map-label{font:600 12.5px var(--rmb-sans);fill:var(--rmb-navy)}
.rmb-map-label-soft{font:400 11px var(--rmb-sans);fill:var(--rmb-muted)}
.rmb-map-mono{font:500 10.5px var(--rmb-mono);fill:var(--rmb-muted)}
.rmb-map-legend{fill:#FFFFFF;stroke:var(--rmb-rule)}
.rmb-map-water-label{font:italic 400 12px var(--rmb-serif);fill:var(--rmb-harbor-deep)}
.rmb-shuttle-schedule{margin:0;display:grid;gap:.6rem}
.rmb-shuttle-row{background:var(--rmb-card);border:1px solid var(--rmb-rule);border-radius:var(--rmb-radius);padding:.75rem .9rem}
.rmb-shuttle-schedule dt{font-weight:700;display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.rmb-shuttle-schedule dd{margin:.25rem 0 0;font-size:.9rem;color:var(--rmb-navy-soft)}
.rmb-interval{font-family:var(--rmb-mono);font-weight:500;color:var(--rmb-harbor-deep);font-size:.88rem}

/* cards */
.rmb-card-grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr))}
.rmb-card{background:var(--rmb-card);border:1px solid var(--rmb-rule);border-radius:var(--rmb-radius);padding:1.15rem 1.2rem;box-shadow:var(--rmb-shadow)}
.rmb-card h3{margin:0 0 .4rem;font-size:1.05rem}
.rmb-card p{font-size:.93rem;margin-bottom:.6rem}
.rmb-card p:last-child{margin-bottom:0}
.rmb-card-rate{font-family:var(--rmb-mono);font-size:.85rem;color:var(--rmb-marigold-deep)}
.rmb-card-link{text-decoration:none;color:inherit;display:block;height:100%}
.rmb-card-link:hover h3{color:var(--rmb-harbor-deep);text-decoration:underline}
.rmb-card-series{font:700 .72rem var(--rmb-sans);text-transform:uppercase;letter-spacing:.08em;color:var(--rmb-harbor-deep)}

/* resource guide article */
.rmb-resource-guide{max-width:var(--rmb-wide);margin:0 auto;padding:2rem 1.25rem 3rem}
.rmb-crumbs{font-size:.85rem;color:var(--rmb-muted);margin-bottom:1.25rem}
.rmb-crumbs-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.35rem}
.rmb-crumbs-list li+li::before{content:"›";margin-right:.35rem;color:var(--rmb-marigold-deep)}
.rmb-guide-head{max-width:var(--rmb-read);margin-bottom:1.75rem}
.rmb-byline{display:flex;flex-wrap:wrap;gap:.25rem 1.1rem;font-size:.88rem;color:var(--rmb-muted);border-top:1px solid var(--rmb-rule);padding-top:.8rem;margin-top:1.1rem}
.rmb-byline-name{font-weight:700;color:var(--rmb-navy)}
.rmb-guide-layout{display:grid;gap:2.5rem;grid-template-columns:minmax(0,var(--rmb-read)) minmax(0,17rem);align-items:start}
.rmb-guide-body{min-width:0}
.rmb-guide-body ul,.rmb-guide-body ol{padding-left:1.3rem;margin:0 0 1.1em}
.rmb-guide-body li{margin-bottom:.45em}
.rmb-guide-rail{position:sticky;top:1rem;display:grid;gap:1rem}
.rmb-contents{background:var(--rmb-card);border:1px solid var(--rmb-rule);border-radius:var(--rmb-radius);padding:1rem 1.1rem;font-size:.9rem}
.rmb-contents-title{font-weight:700;margin:0 0 .5rem}
.rmb-contents-list{margin:0;padding-left:1.1rem}
.rmb-contents-list li{margin-bottom:.3rem}
.rmb-homeward{background:var(--rmb-navy);color:#E2E8F0;border-radius:10px;padding:1.3rem 1.4rem;margin:0 0 2rem;border-left:6px solid var(--rmb-marigold)}
.rmb-homeward-kicker{font:700 .74rem var(--rmb-sans);text-transform:uppercase;letter-spacing:.09em;color:#FCD34D;margin:0 0 .4rem}
.rmb-homeward-title{font-family:var(--rmb-serif);font-size:1.15rem;color:#FFFFFF;margin:0 0 .5rem;font-weight:700}
.rmb-homeward p{font-size:.95rem}
.rmb-homeward-cta{display:inline-block;background:var(--rmb-marigold);color:var(--rmb-navy);font-weight:700;padding:.55rem 1rem;border-radius:var(--rmb-radius);text-decoration:none;margin-top:.2rem}
.rmb-homeward-cta:hover{background:#FFFFFF;color:var(--rmb-navy)}
.rmb-homeward-foot{margin:2.5rem 0 0}
.rmb-callout{background:var(--rmb-harbor-wash);border-left:4px solid var(--rmb-harbor);border-radius:0 var(--rmb-radius) var(--rmb-radius) 0;padding:.9rem 1.1rem;margin:1.4rem 0;font-size:.97rem}
.rmb-callout p:last-child{margin-bottom:0}
.rmb-logic-map{font-family:var(--rmb-mono);font-size:.9rem;background:var(--rmb-navy);color:#F1F5F9;border-radius:var(--rmb-radius);padding:1rem 1.15rem;overflow-x:auto;line-height:1.65;white-space:pre}
.rmb-figure{margin:1.6rem 0;background:var(--rmb-card);border:1px solid var(--rmb-rule);border-radius:var(--rmb-radius);padding:.9rem}
.rmb-figure-caption{font-size:.82rem;color:var(--rmb-muted);margin-top:.5rem}
.rmb-curve-axis{stroke:var(--rmb-navy-soft);stroke-width:1.2}
.rmb-curve-grid{stroke:var(--rmb-rule);stroke-width:1}
.rmb-curve-line{fill:none;stroke:var(--rmb-harbor);stroke-width:3;stroke-linejoin:round}
.rmb-curve-dot{fill:#FFFFFF;stroke:var(--rmb-harbor-deep);stroke-width:2}
.rmb-curve-band{fill:var(--rmb-marigold-wash)}
.rmb-curve-band-label{font:700 11px var(--rmb-sans);fill:var(--rmb-marigold-deep)}
.rmb-curve-tick{font:400 10.5px var(--rmb-mono);fill:var(--rmb-muted)}
.rmb-curve-value{font:500 10.5px var(--rmb-mono);fill:var(--rmb-navy)}
.rmb-related{margin-top:2.5rem;border-top:1px solid var(--rmb-rule);padding-top:1.5rem}
.rmb-related h2{font-size:1.2rem;margin-top:0}

/* prose pages */
.rmb-prose{max-width:var(--rmb-read);margin:0 auto;padding:2.5rem 1.25rem 3.5rem}
.rmb-prose h2{font-size:1.3rem}
.rmb-updated{font-family:var(--rmb-mono);font-size:.85rem;color:var(--rmb-muted)}

/* footer */
.rmb-footer{background:var(--rmb-navy);color:#CBD5E1;margin-top:0;border-top:4px solid var(--rmb-marigold);font-size:.9rem}
.rmb-footer-grid{max-width:var(--rmb-wide);margin:0 auto;padding:2.5rem 1.25rem 1.25rem;display:grid;gap:1.75rem;grid-template-columns:repeat(auto-fit,minmax(13rem,1fr))}
.rmb-footer-name{font-family:var(--rmb-serif);font-weight:700;font-size:1.1rem;color:#FFFFFF;margin-bottom:.5rem}
.rmb-footer-head{font-weight:700;color:#FFFFFF;margin-bottom:.5rem}
.rmb-footer-list{list-style:none;margin:0;padding:0;display:grid;gap:.3rem}
.rmb-footer-link{color:#E2E8F0;text-decoration:none}
.rmb-footer-link:hover{color:#FCD34D;text-decoration:underline}
.rmb-footer-disclaimer,.rmb-footer-legal{max-width:var(--rmb-wide);margin:0 auto;padding:0 1.25rem 1rem;font-size:.82rem;line-height:1.6}
.rmb-footer-disclaimer{border-top:1px solid #334155;padding-top:1.1rem;color:#E2E8F0}
.rmb-footer-legal{padding-bottom:2rem;color:#94A3B8}

@media (max-width:860px){
  .rmb-hero,.rmb-map-grid,.rmb-guide-layout,.rmb-pane{grid-template-columns:minmax(0,1fr)}
  .rmb-guide-rail{position:static;order:-1}
  .rmb-letter{padding:1.3rem 1.2rem}
}
@media print{
  .rmb-banner,.rmb-footer,.rmb-tablist,.rmb-form,.rmb-homeward,.rmb-guide-rail{display:none}
  .rmb-pane[hidden]{display:block}
  body{background:#FFFFFF}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
