:root {
  --ink: #25312d;
  --muted: #68736c;
  --paper: #eee9dc;
  --paper-light: #f8f4e9;
  --paper-dark: #ded6c3;
  --green: #345f4e;
  --green-dark: #243f35;
  --gold: #c79d52;
  --red: #a34f43;
  --blue: #5d8791;
  --line: rgba(37, 49, 45, .18);
  --shadow: 0 18px 50px rgba(36, 47, 41, .14);
}

* { box-sizing: border-box; }

html, body { min-height: 100%; }

body {
  margin: 0;
  color: var(--ink);
  background: #d8d1bf;
  font-family: 'DM Sans', ui-sans-serif, system-ui, sans-serif;
  font-size: 15px;
  overflow-x: hidden;
}

button, input { font: inherit; }
button { color: inherit; }
button:not(:disabled) { cursor: pointer; }
button:focus-visible, input:focus-visible { outline: 3px solid #dfb45f; outline-offset: 3px; }
[hidden] { display: none !important; }

.paper-noise {
  position: fixed; inset: 0; pointer-events: none; z-index: 20; opacity: .22;
  background-image: radial-gradient(circle at 15% 24%, rgba(63, 52, 37, .14) 0 .6px, transparent .8px), radial-gradient(circle at 72% 61%, rgba(255,255,255,.35) 0 .55px, transparent .8px);
  background-size: 9px 11px, 13px 15px;
}

.topbar {
  min-height: 78px; display: grid; grid-template-columns: minmax(230px, 1fr) auto minmax(260px, 1fr) auto;
  align-items: stretch; background: var(--green-dark); color: #f6f0df; border-bottom: 1px solid rgba(255,255,255,.12);
  position: sticky; top: 0; z-index: 15;
}

.wordmark { display: flex; align-items: center; gap: 12px; text-align: left; background: none; border: 0; color: inherit; padding: 12px 22px; }
.wordmark-mark { display: grid; place-items: center; width: 39px; height: 39px; color: var(--gold); border: 1px solid rgba(255,255,255,.3); border-radius: 50%; font-size: 1.35rem; }
.wordmark strong { display: block; font: 650 1.3rem/1 'Newsreader', serif; letter-spacing: .02em; }
.wordmark small { display: block; margin-top: 4px; color: #adbaaf; font-size: .67rem; letter-spacing: .1em; text-transform: uppercase; }

.clock-block, .deadline-block { border-left: 1px solid rgba(255,255,255,.12); padding: 12px 22px; display: flex; align-items: center; }
.clock-block { gap: 12px; }
.clock-sun { color: var(--gold); font-size: 1.7rem; }
.clock-block span:last-child { display: grid; }
.clock-block small, .deadline-block small { color: #aebcb2; font-size: .62rem; letter-spacing: .15em; font-weight: 700; }
.clock-block strong { font: 600 1.08rem 'Newsreader', serif; }
.deadline-block { min-width: 270px; display: grid; align-content: center; gap: 2px; }
.deadline-block strong { font-size: .86rem; }
.deadline-track { margin-top: 6px; height: 3px; width: 100%; background: rgba(255,255,255,.14); overflow: hidden; }
.deadline-track i { display: block; height: 100%; width: 100%; background: var(--gold); transform-origin: left; transition: width .25s; }
.deadline-block.urgent strong { color: #f0a58c; }
.deadline-block.urgent .deadline-track i { background: #da765f; }
.top-actions { display: flex; align-items: center; gap: 4px; padding: 0 16px; border-left: 1px solid rgba(255,255,255,.12); }
.text-button { border: 0; background: transparent; color: #dce4dc; padding: 12px 10px; font-size: .76rem; }
.text-button:hover { color: #fff; }

.game-shell { display: grid; grid-template-columns: minmax(470px, 1.45fr) minmax(350px, .85fr) 345px; height: calc(100vh - 154px); min-height: 620px; }
.map-panel, .trade-panel, .ledger-panel { min-height: 0; }
.map-panel { background: var(--paper); padding: 24px; display: flex; flex-direction: column; }
.map-heading, .section-heading, .offer-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 18px; }
.eyebrow { margin: 0 0 4px; font-size: .63rem; line-height: 1; font-weight: 800; letter-spacing: .18em; color: #7d7059; text-transform: uppercase; }
h1, h2, h3, p { margin-top: 0; }
h1, h2 { font-family: Georgia, 'Times New Roman', serif; }
.map-heading h1 { margin: 0; font-size: clamp(1.7rem, 2.7vw, 2.55rem); line-height: 1; font-weight: 600; }
.map-key { display: flex; gap: 12px; white-space: nowrap; font-size: .68rem; color: var(--muted); }
.map-key span { display: flex; align-items: center; gap: 5px; }
.key-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--green); }
.key-dot.home { background: var(--gold); box-shadow: 0 0 0 3px rgba(199,157,82,.25); }

.map-frame { position: relative; flex: 1; min-height: 430px; margin-top: 16px; overflow: hidden; border: 1px solid rgba(56,69,61,.18); background-color: #e5dfcf; background-image: linear-gradient(rgba(44,61,51,.04) 1px, transparent 1px), linear-gradient(90deg, rgba(44,61,51,.04) 1px, transparent 1px); background-size: 38px 38px; }
.map-frame::after { content: ''; position: absolute; inset: 8px; border: 1px solid rgba(65,72,63,.13); pointer-events: none; }
.map-terrain, .route-layer { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.river { fill: none; stroke: #90adb0; stroke-width: 32; opacity: .45; }
.ridge, .hill { fill: none; stroke: #9d9a85; stroke-width: 5; opacity: .58; }
.trees { fill: #6f896e; opacity: .42; }
.route-line { fill: none; stroke: rgba(68,79,70,.3); stroke-width: .3; stroke-dasharray: 1.1 1.4; vector-effect: non-scaling-stroke; }
.map-label { position: absolute; font: 650 .52rem 'Newsreader', serif; letter-spacing: .25em; color: rgba(54,65,59,.38); pointer-events: none; }
.map-label.north { left: 38%; top: 5%; }.map-label.south { right: 26%; bottom: 5%; }
.map-markers { position: absolute; inset: 0; }
.map-marker { position: absolute; width: 86px; transform: translate(-50%, -50%); border: 0; background: transparent; padding: 0; text-align: center; z-index: 2; }
.map-marker .marker-icon { width: 43px; height: 43px; display: grid; place-items: center; margin: auto; border: 2px solid var(--green-dark); border-radius: 50%; background: #f3eddf; box-shadow: 0 4px 10px rgba(45,54,48,.15); transition: transform .15s, background .15s; }
.map-marker .marker-icon img { width: 27px; height: 27px; object-fit: contain; }
.map-marker .marker-name { display: inline-block; margin-top: 5px; padding: 2px 5px; color: var(--ink); background: rgba(238,233,220,.88); font: 650 .68rem Georgia, serif; white-space: nowrap; }
.map-marker:hover .marker-icon, .map-marker.selected .marker-icon { transform: translateY(-3px); background: #fff9e9; border-color: var(--gold); }
.map-marker.home .marker-icon { width: 52px; height: 52px; background: #e8c77e; }
.map-marker.home .marker-name { font-weight: 700; }
.map-marker.has-arrival .marker-icon::after { content: ''; width: 8px; height: 8px; background: var(--red); border: 2px solid #f3eddf; border-radius: 50%; position: absolute; transform: translate(17px,-17px); }
.map-note { margin: 10px 0 0; font-size: .7rem; color: var(--muted); text-align: center; }

.trade-panel { background: var(--paper-light); border-left: 1px solid var(--line); border-right: 1px solid var(--line); overflow-y: auto; }
.trade-empty { height: 100%; display: grid; place-content: center; justify-items: center; padding: 30px; text-align: center; color: var(--muted); }
.trade-empty .compass { color: var(--gold); font-size: 3.5rem; }
.trade-empty h2 { color: var(--ink); margin: 12px 0 6px; font-size: 1.6rem; }
.trade-empty p { max-width: 250px; font-size: .86rem; }
.settlement-heading { position: sticky; top: 0; z-index: 3; display: grid; grid-template-columns: 56px 1fr 32px; gap: 13px; align-items: center; padding: 20px 20px 16px; background: rgba(248,244,233,.96); border-bottom: 1px solid var(--line); backdrop-filter: blur(9px); }
.settlement-heading > img { width: 53px; height: 53px; padding: 8px; background: #e8dfc9; border-radius: 50%; }
.settlement-heading h2 { margin: 0; font-size: 1.85rem; line-height: 1; }
.close-panel, .dialog-x { border: 0; background: transparent; color: var(--muted); font-size: 1.8rem; line-height: 1; }
.settlement-meta { display: grid; grid-template-columns: 1fr 1fr; border-bottom: 1px solid var(--line); }
.settlement-meta span { display: grid; gap: 2px; padding: 12px 20px; }
.settlement-meta span + span { border-left: 1px solid var(--line); }
.settlement-meta small { color: var(--muted); font-size: .59rem; font-weight: 800; letter-spacing: .13em; }
.settlement-meta strong { font-size: .78rem; }
.offer-heading { padding: 20px 20px 10px; align-items: center; }
.offer-heading h3 { margin: 0; font: 650 1.12rem 'Newsreader', serif; }
.offer-heading span { color: var(--muted); font-size: .68rem; }
.offer-list { display: grid; gap: 9px; padding: 0 16px 18px; }
.offer-card { background: #fffdf6; border: 1px solid var(--line); box-shadow: 0 3px 9px rgba(50,57,51,.05); }
.offer-card.baseline { border-left: 3px solid var(--green); }
.offer-tag { padding: 7px 10px 0; color: var(--green); font-size: .55rem; font-weight: 800; letter-spacing: .12em; }
.offer-exchange { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 7px; padding: 10px; }
.offer-side { display: flex; flex-wrap: wrap; align-items: center; gap: 5px; }
.offer-side.receive { justify-content: flex-end; text-align: right; }
.item-chip { display: inline-flex; align-items: center; gap: 4px; font-size: .69rem; font-weight: 650; }
.item-chip img { width: 25px; height: 25px; object-fit: contain; }
.item-chip strong { font-size: .86rem; }
.exchange-arrow { color: var(--gold); font: 600 1.3rem 'Newsreader', serif; }
.bonus-line { margin: -3px 10px 8px; padding: 5px 7px; color: #3a6653; background: #e8f0e9; font-size: .62rem; text-align: center; }
.offer-footer { display: flex; align-items: center; justify-content: space-between; border-top: 1px solid var(--line); padding: 8px 10px; }
.offer-stock { display: grid; color: var(--muted); font-size: .59rem; }
.offer-stock strong { color: var(--ink); font-size: .68rem; }
.trade-button { min-width: 96px; padding: 9px 13px; color: #fff; background: var(--green); border: 0; font-size: .7rem; font-weight: 700; }
.trade-button:hover:not(:disabled) { background: var(--green-dark); }
.trade-button:disabled { color: #817f76; background: #dedbd2; cursor: not-allowed; }
.utility-slot { margin: 0 16px 16px; padding: 14px; background: #e7deca; border: 1px solid #cabb9d; }
.utility-card { display: grid; grid-template-columns: 47px 1fr; gap: 10px; }
.utility-card > img { width: 47px; height: 47px; }
.utility-card h3 { margin: 0 0 3px; font: 650 1rem 'Newsreader', serif; }
.utility-card p { margin: 0; color: var(--muted); font-size: .68rem; }
.utility-buy { grid-column: 1 / -1; display: flex; justify-content: space-between; align-items: center; gap: 8px; margin-top: 6px; }
.utility-buy .offer-side { flex: 1; }
.utility-owned { color: var(--green); font-size: .7rem; font-weight: 700; }
.reroll-button { display: block; margin: 0 16px 20px; width: calc(100% - 32px); padding: 11px; background: transparent; border: 1px dashed var(--green); color: var(--green); font-size: .72rem; font-weight: 700; }

.ledger-panel { background: #e6dfce; overflow-y: auto; }
.vow-card { padding: 20px; color: #f5f0e4; background: var(--green); }
.vow-card .eyebrow { color: #cdbf9e; }
.vow-card h2 { margin: 0; font-size: 1.5rem; line-height: 1.05; }
.god-epithet { margin: 4px 0 15px; color: #bdc9c0; font-size: .7rem; }
.demand-list { display: grid; gap: 7px; }
.demand-item { display: grid; grid-template-columns: 37px 1fr auto; align-items: center; gap: 8px; padding: 7px; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.12); }
.demand-item img { width: 35px; height: 35px; }
.demand-item span { font-size: .72rem; }.demand-item strong { font-family: 'Newsreader', serif; font-size: 1rem; }
.demand-item.complete { background: rgba(230,201,129,.17); }
.offering-button { width: 100%; margin-top: 12px; padding: 12px; color: var(--green-dark); background: var(--gold); border: 0; font-size: .72rem; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; }
.offering-button:disabled { opacity: .43; cursor: not-allowed; }
.offering-hint { margin: 7px 0 0; color: #c8d0ca; font-size: .62rem; text-align: center; }
.bargain-button { width: 100%; margin-top: 9px; padding: 7px; color: #e2d7bf; background: transparent; border: 1px solid rgba(255,255,255,.18); font-size: .63rem; }
.bargain-button:disabled { opacity: .45; cursor: not-allowed; }
.ledger-section { padding: 17px 18px; border-bottom: 1px solid var(--line); }
.section-heading { align-items: center; margin-bottom: 10px; }
.section-heading h2 { margin: 0; font-size: 1.3rem; line-height: 1; }
.section-heading > span { color: var(--muted); font-size: .65rem; }
.inventory-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 6px; }
.inventory-item { min-width: 0; display: grid; grid-template-columns: 31px 1fr auto; align-items: center; gap: 5px; padding: 7px; background: rgba(255,255,255,.48); border: 1px solid rgba(44,55,49,.1); }
.inventory-item img { width: 29px; height: 29px; }
.inventory-item span { overflow: hidden; font-size: .62rem; white-space: nowrap; text-overflow: ellipsis; }
.inventory-item strong { font: 650 1rem 'Newsreader', serif; }
.inventory-item.required { border-color: rgba(199,157,82,.75); }
.incoming-list { display: grid; gap: 7px; }
.incoming-card { display: grid; grid-template-columns: 1fr auto; gap: 5px 10px; padding: 9px; background: rgba(255,255,255,.52); border-left: 3px solid var(--blue); }
.incoming-card strong { font-size: .71rem; }.incoming-card time { font-size: .65rem; font-weight: 700; }
.incoming-card p { grid-column: 1 / -1; margin: 0; font-size: .62rem; color: var(--muted); }
.empty-line { margin: 5px 0; color: var(--muted); font-size: .7rem; font-style: italic; }
.upgrade-list { display: flex; flex-wrap: wrap; gap: 6px; }
.upgrade-pill { display: flex; align-items: center; gap: 6px; padding: 5px 8px; background: rgba(255,255,255,.5); border: 1px solid var(--line); font-size: .62rem; }
.upgrade-pill img { width: 23px; height: 23px; }.upgrade-pill.off { opacity: .45; }

.time-dock { height: 76px; display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 20px; padding: 10px 22px; color: #f4efe3; background: #2b332f; position: sticky; bottom: 0; z-index: 14; box-shadow: 0 -4px 18px rgba(27,35,31,.16); }
.next-event-copy { display: grid; min-width: 0; }.next-event-copy small { color: #9aa69f; font-size: .58rem; letter-spacing: .15em; }.next-event-copy strong { overflow: hidden; font-size: .75rem; text-overflow: ellipsis; white-space: nowrap; }
.time-actions { display: flex; gap: 7px; }
.skip-button, .next-button { min-height: 49px; border: 1px solid rgba(255,255,255,.17); }
.skip-button { min-width: 87px; display: grid; place-content: center; color: #d4dbd6; background: transparent; font-size: .69rem; }
.skip-button small { font-size: .5rem; letter-spacing: .12em; color: #89958e; }
.next-button { min-width: 158px; display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 0 15px; color: #28352f; background: var(--gold); font-size: .76rem; font-weight: 800; border-color: var(--gold); }
.next-button strong { font-size: .67rem; opacity: .7; }
.time-dock button:disabled { opacity: .35; cursor: not-allowed; }
.mobile-nav { display: none; }

dialog { color: var(--ink); border: 0; padding: 0; box-shadow: var(--shadow); }
dialog::backdrop { background: rgba(25,34,30,.72); backdrop-filter: blur(3px); }
.start-dialog { width: min(530px, calc(100% - 28px)); max-height: calc(100vh - 28px); background: var(--paper-light); }
.start-card { padding: 32px 38px; text-align: center; }
.start-sigil, .result-sun { width: 60px; height: 60px; display: grid; place-items: center; margin: 0 auto 14px; color: var(--gold); border: 1px solid #cdbf9e; border-radius: 50%; font-size: 2rem; }
.start-card h2, .plain-dialog h2, .result-dialog h2 { margin: 8px 0 12px; font-size: 2.5rem; line-height: .98; font-weight: 600; }
.start-card > p:not(.eyebrow) { color: var(--muted); font-size: .84rem; line-height: 1.6; }
.start-rule { display: grid; grid-template-columns: 32px 1fr; gap: 8px; align-items: center; padding: 8px 0; border-top: 1px solid var(--line); text-align: left; }
.start-rule > span { color: var(--gold); font: 650 1rem 'Newsreader', serif; }
.start-rule p { margin: 0; font-size: .72rem; }.start-rule strong { display: block; }
.start-options { display: grid; gap: 10px; margin-top: 13px; padding: 13px; background: #eae3d4; text-align: left; }
.start-options label:first-child { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 10px; color: var(--muted); font-size: .68rem; }
.start-options input[type='text'], .start-options input:not([type]) { width: 100%; border: 1px solid var(--line); background: #fffdf6; padding: 8px 10px; color: var(--ink); }
.mode-toggle { display: flex; align-items: center; gap: 8px; font-size: .69rem; }.mode-toggle input { width: 15px; height: 15px; accent-color: var(--green); }
.start-button, .resume-button { width: 100%; border: 0; padding: 13px 16px; font-weight: 800; font-size: .75rem; }
.start-button { margin-top: 14px; color: #fff; background: var(--green); }
.resume-button { margin-top: 7px; color: var(--green); background: transparent; border: 1px solid var(--green); }
.plain-dialog, .result-dialog { width: min(470px, calc(100% - 28px)); padding: 30px; background: var(--paper-light); }
.plain-dialog .dialog-x { position: absolute; right: 16px; top: 14px; }
.plain-dialog ol { margin: 20px 0; padding: 0; list-style: none; counter-reset: rules; }
.plain-dialog li { counter-increment: rules; display: grid; grid-template-columns: 30px 1fr; padding: 10px 0; border-top: 1px solid var(--line); }
.plain-dialog li::before { content: '0' counter(rules); color: var(--gold); font: 650 1rem 'Newsreader', serif; }
.plain-dialog li strong, .plain-dialog li span { display: block; }.plain-dialog li span { color: var(--muted); font-size: .72rem; }
.menu-actions { display: grid; gap: 7px; margin: 20px 0; }.menu-actions button { padding: 12px; text-align: left; background: transparent; border: 1px solid var(--line); }.menu-actions button:hover { border-color: var(--green); }
.save-note { margin: 0; color: var(--muted); font-size: .68rem; }
.confirm-dialog p:not(.eyebrow) { color: var(--muted); line-height: 1.55; }
.dialog-actions { display: flex; gap: 8px; margin-top: 20px; }.dialog-actions > * { flex: 1; margin-top: 0; }
.cancel-button, .danger-button { padding: 12px; background: transparent; border: 1px solid var(--line); font-weight: 700; font-size: .72rem; }.danger-button { color: #fff; background: var(--red); border-color: var(--red); }
.result-dialog { text-align: center; }.result-dialog h2 { font-size: 2.4rem; }.result-dialog > p:not(.eyebrow) { color: var(--muted); line-height: 1.55; }
.result-stats { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: 20px; border: 1px solid var(--line); }.result-stats span { display: grid; padding: 11px 5px; }.result-stats span + span { border-left: 1px solid var(--line); }.result-stats small { color: var(--muted); font-size: .55rem; letter-spacing: .1em; }.result-stats strong { font: 650 1.1rem 'Newsreader', serif; }
.toast-region { position: fixed; right: 18px; bottom: 94px; z-index: 50; display: grid; gap: 8px; pointer-events: none; }
.toast { max-width: 330px; padding: 11px 14px; color: #fff; background: var(--green-dark); box-shadow: var(--shadow); font-size: .72rem; animation: toast-in .22s ease-out; }
.toast.good { border-left: 4px solid var(--gold); }.toast.warn { border-left: 4px solid #d66d57; }
@keyframes toast-in { from { opacity: 0; transform: translateY(8px); } }

@media (max-width: 1180px) {
  .game-shell { grid-template-columns: minmax(430px, 1.25fr) minmax(330px, .9fr) 310px; }
  .top-actions { display: none; }
  .topbar { grid-template-columns: 1fr auto minmax(240px, .8fr); }
  .inventory-grid { grid-template-columns: 1fr; }
}

@media (max-width: 880px) {
  body { padding-bottom: 129px; background: var(--paper); }
  .topbar { height: 66px; min-height: 66px; grid-template-columns: 1fr auto; }
  .wordmark { padding: 10px 14px; }.wordmark-mark { width: 34px; height: 34px; }.wordmark strong { font-size: 1.05rem; }.wordmark small { display: none; }
  .clock-block { padding: 9px 13px; }.clock-sun { display: none; }.clock-block strong { font-size: .9rem; }
  .deadline-block { position: fixed; left: 0; right: 0; bottom: 129px; min-width: 0; height: 36px; grid-template-columns: auto 1fr; align-items: center; gap: 10px; padding: 6px 12px; z-index: 15; background: var(--green-dark); border-top: 1px solid rgba(255,255,255,.1); }
  .deadline-block .deadline-track { grid-column: 1/-1; margin: -2px 0 0; }.deadline-block strong { justify-self: end; }
  .game-shell { display: block; height: auto; min-height: calc(100vh - 195px); }
  .view-panel { display: none; min-height: calc(100vh - 195px); border: 0; }.view-panel.active { display: flex; }
  .map-panel { padding: 14px; }.map-heading { align-items: flex-start; }.map-heading h1 { font-size: 1.8rem; }.map-key { display: none; }
  .map-frame { min-height: 545px; margin-top: 12px; }
  .trade-panel.active { display: block; }.trade-panel { min-height: calc(100vh - 195px); }
  .trade-empty { min-height: calc(100vh - 195px); }
  .ledger-panel.active { display: block; }.ledger-panel { min-height: calc(100vh - 195px); }
  .inventory-grid { grid-template-columns: repeat(2, 1fr); }
  .time-dock { position: fixed; left: 0; right: 0; bottom: 54px; height: 75px; padding: 8px; grid-template-columns: 1fr; z-index: 16; }
  .next-event-copy { display: none; }.time-actions { width: 100%; }.skip-button { min-width: 0; flex: .65; }.next-button { min-width: 0; flex: 1.5; }
  .mobile-nav { position: fixed; left: 0; right: 0; bottom: 0; z-index: 17; height: 54px; display: grid; grid-template-columns: repeat(3, 1fr); color: #c3cbc6; background: #202824; border-top: 1px solid rgba(255,255,255,.1); }
  .mobile-nav button { position: relative; display: flex; align-items: center; justify-content: center; gap: 6px; border: 0; background: transparent; color: inherit; font-size: .65rem; }.mobile-nav button span { font-size: 1rem; }.mobile-nav button.active { color: #f1cc7a; background: rgba(255,255,255,.04); }.mobile-nav i { display: grid; place-items: center; min-width: 16px; height: 16px; color: #fff; background: var(--red); border-radius: 10px; font-size: .55rem; font-style: normal; }
  .toast-region { left: 12px; right: 12px; bottom: 144px; }.toast { max-width: none; }
}

@media (max-width: 520px) {
  .map-marker { width: 70px; }.map-marker .marker-icon { width: 39px; height: 39px; }.map-marker .marker-icon img { width: 24px; height: 24px; }.map-marker .marker-name { max-width: 72px; overflow: hidden; text-overflow: ellipsis; font-size: .6rem; }
  .map-frame { min-height: 500px; }.map-label { display: none; }
  .start-card { padding: 24px 22px; }.start-card h2 { font-size: 2.1rem; }.start-card > p:not(.eyebrow) { line-height: 1.4; }
  .start-rule { padding: 6px 0; }.start-options { padding: 10px; }
  .start-options label:first-child { grid-template-columns: 1fr; gap: 5px; }
  .start-options input { min-width: 0; }
  .plain-dialog, .result-dialog { padding: 25px 20px; }.plain-dialog h2, .result-dialog h2 { font-size: 2rem; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; }
}
