:root {
  color-scheme: light;
  --sage: #edf0e5;
  --ivory: #fffdf6;
  --pine: #263b32;
  --muted: #58665b;
  --ochre: #80601f;
  --line: #d7ddcf;
  --action: #315645;
  --focus: #9a6924;
  font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 17px;
  color: var(--pine);
  background: var(--sage);
}
* { box-sizing: border-box; }
body { margin: 0; min-width: 320px; background: var(--sage); line-height: 1.48; }
a { color: inherit; }
button, select, textarea { font: inherit; }
button, select, a { -webkit-tap-highlight-color: transparent; }
button:focus-visible, select:focus-visible, textarea:focus-visible, a:focus-visible, h1:focus { outline: 3px solid var(--focus); outline-offset: 3px; }
.site-header { min-height: 58px; padding: 10px max(18px, calc((100vw - 760px) / 2)); display:flex; align-items:center; justify-content:space-between; gap:12px; }
.header-actions { display:flex; align-items:center; gap:10px; }
.reset-link { min-height:44px; border:0; padding:8px 3px; background:transparent; color:var(--muted); text-decoration:underline; text-underline-offset:3px; font-size:.84rem; cursor:pointer; }
.brand { font-weight:750; text-decoration:none; letter-spacing:-.025em; }
.brand span { display:block; margin-top:-3px; font-size:.65rem; font-weight:650; letter-spacing:.13em; color:var(--muted); }
.prototype-link { min-height:44px; display:inline-flex; align-items:center; color:var(--muted); font-size:.88rem; }
.shell { width:min(100% - 28px, 680px); margin:0 auto; padding: 8px 0 32px; }
.site-footer { width:min(100% - 32px,680px); margin: 0 auto; padding: 0 0 max(22px, env(safe-area-inset-bottom)); color:var(--muted); font-size:.8rem; }
.site-footer a { display:inline-flex; min-height:44px; align-items:center; color:var(--action); }
h1,h2,h3,p { margin-top:0; }
h1 { margin-bottom:8px; font-size:clamp(1.55rem,6vw,2rem); line-height:1.16; letter-spacing:-.035em; }
h2 { font-size:1.16rem; line-height:1.3; margin-bottom:8px; }
h3 { margin-bottom:3px; font-size:1.02rem; line-height:1.3; }
.eyebrow { color:var(--muted); font-size:.78rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; margin-bottom:6px; }
.intro { max-width:58ch; color:var(--muted); margin-bottom:14px; }
.prototype-note { margin:-2px 0 8px; color:var(--muted); font-size:.78rem; }
.need-row { display:grid; grid-template-columns:auto minmax(0,1fr); align-items:center; gap:10px; margin: 0 0 12px; }
.need-row label { font-weight:700; }
select { min-height:48px; width:100%; appearance:none; border:1px solid #adb9a9; border-radius:11px; background-color:var(--ivory); background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='m5 7.5 5 5 5-5' stroke='%23315645' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 12px center; color:var(--pine); padding:8px 42px 8px 12px; accent-color:var(--action); }
select option { background:var(--ivory); color:var(--pine); }
select option:checked { background:#e7eadf; color:var(--pine); }
.route-heading { display:flex; justify-content:space-between; align-items:baseline; gap:12px; margin: 2px 0 2px; }
.route-heading h2 { margin:0; }
.route-heading span { color:var(--muted); font-size:.84rem; }
.notice { margin: 11px 0; padding:10px 12px; background:#f4f1e5; border-left:3px solid #b28a3f; color:#514b3b; font-size:.88rem; }
.door-list { list-style:none; margin:0; padding:0; }
.door { position:relative; margin-left:12px; padding:14px 0 15px 30px; border-left:1px solid #aab8a5; }
.door:last-child { padding-bottom:4px; border-left-color:transparent; }
.door::before { content:""; position:absolute; left:-7px; top:22px; width:12px; height:12px; border-radius:50%; border:2px solid #82957e; background:var(--sage); }
.door-top { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; }
.door h3 { margin:0 0 2px; }
.door-meta { font-size:.81rem; color:var(--muted); margin:0 0 8px; }
.purpose-line { color:#435349; font-size:.91rem; margin:0 0 5px; }
.row-freshness { color:var(--muted); font-size:.77rem; margin:0 0 9px; }
.unknown { color:#574626; font-weight:700; font-size:.85rem; margin:0 0 10px; }
.door-actions { display:flex; flex-wrap:wrap; gap:8px; }
.button { min-height:48px; padding:10px 16px; display:inline-flex; align-items:center; justify-content:center; border:1px solid transparent; border-radius:9px; background:var(--action); color:#fffdf6; text-decoration:none; font-weight:720; font-size:.95rem; cursor:pointer; }
.button.secondary { background:transparent; color:var(--pine); border-color:#aeb9aa; }
.button.quiet { min-height:44px; padding:8px 12px; }
.button.full { width:100%; }
.status-label { display:inline-flex; align-items:center; min-height:24px; padding:2px 8px; border-radius:99px; background:#ece7d8; color:#514b3b; font-size:.75rem; font-weight:700; white-space:normal; }
.screen-nav { display:flex; align-items:center; justify-content:space-between; gap:10px; margin: 0 0 17px; }
.text-button { min-height:44px; border:0; padding:8px 4px; color:#315645; background:none; text-decoration:underline; text-underline-offset:3px; font-weight:700; cursor:pointer; }
.detail-title { margin-bottom:5px; }
.detail-desc { margin-bottom:9px; color:#435349; }
.snapshot { color:var(--muted); font-size:.81rem; margin:0 0 14px; }
.detail-phone { font-size:1.05rem; font-weight:750; margin:0 0 12px; }
.detail-phone a { text-underline-offset:3px; }
.inline-phone { color:var(--action); text-decoration:underline; text-underline-offset:3px; }
.trail-sections { margin:16px 0 0; padding:0; list-style:none; }
.trail-section { position:relative; margin-left:13px; padding:0 0 18px 25px; border-left:1px solid #aab8a5; }
.trail-section:last-child { padding-bottom:4px; border-left-color:transparent; }
.trail-section::before { content:""; position:absolute; left:-7px; top:6px; width:12px; height:12px; border-radius:50%; border:2px solid #82957e; background:var(--sage); }
.trail-section h2 { margin:0 0 6px; }
.trail-section p { margin:0 0 7px; }
.trail-section ul { margin:0; padding-left:20px; }
.trail-section li { margin:3px 0; }
.fact-line { color:var(--muted); font-size:.91rem; }
.sticky-contact { position:sticky; bottom:0; z-index:2; margin:10px -14px 0; padding:12px 14px max(14px, env(safe-area-inset-bottom)); border-top:1px solid var(--line); background:rgba(255,253,246,.97); }
.sticky-contact .contact-label { margin:0 0 7px; font-size:.82rem; font-weight:700; overflow-wrap:anywhere; }
.sticky-contact .button { min-height:50px; width:100%; }
.detail-bottom-space { height:25px; }
.report-panel { margin-top:16px; padding:18px; border:1px solid var(--line); border-radius:14px; background:var(--ivory); }
.report-panel h2 { margin-bottom:4px; }
.report-help { color:var(--muted); font-size:.9rem; margin-bottom:14px; }
.outcome-list { display:grid; gap:8px; }
.outcome-choice { display:flex; align-items:center; gap:10px; min-height:48px; padding:8px 10px; border:1px solid #bdc7b7; border-radius:9px; cursor:pointer; }
.outcome-choice:has(input:checked) { border-color:var(--action); background:#edf1e9; }
.outcome-choice input { width:20px; height:20px; accent-color:var(--action); }
textarea { width:100%; min-height:88px; padding:10px; border:1px solid #adb9a9; border-radius:9px; background:#fff; color:var(--pine); resize:vertical; }
.field-label { display:block; margin:15px 0 6px; font-weight:700; }
.privacy-note { margin:5px 0 13px; color:var(--muted); font-size:.82rem; }
.report-actions { display:flex; gap:8px; flex-wrap:wrap; margin-top:14px; }
.report-confirm { margin:0 0 13px; padding:12px; border-left:3px solid #73866d; background:#edf1e9; }
.report-confirm strong { display:block; }
.next-door { margin:15px 0 18px; padding:15px; border-radius:12px; background:var(--ivory); border:1px solid var(--line); }
.next-door .eyebrow { margin-bottom:4px; color:var(--ochre); }
.next-door h2 { margin-bottom:5px; overflow-wrap:anywhere; }
.attempted { margin:12px 0; padding:11px 12px; border-left:2px solid #b7aa88; color:#555246; background:#f5f1e7; font-size:.88rem; }
.all-tried { padding:14px; border:1px solid #d0c5a6; border-radius:10px; background:#f5f1e7; }
.all-tried h2 { margin-bottom:4px; }
.all-tried p { margin-bottom:10px; }
.list-return { margin-top:15px; }
.error-panel { padding:18px; border-radius:12px; background:var(--ivory); }
.error-panel p { color:var(--muted); }
.loading { padding:20px 0; color:var(--muted); }
.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; }
@media (min-width:640px) {
  .shell { padding-top:24px; }
  .site-header { min-height:68px; }
  .door { padding-top:17px; padding-bottom:18px; }
  .sticky-contact { margin-right:0; margin-left:0; border:1px solid var(--line); border-bottom:0; border-radius:12px 12px 0 0; padding-left:18px; padding-right:18px; }
}
@media (prefers-reduced-motion: reduce) { *,*::before,*::after { scroll-behavior:auto !important; animation-duration:.01ms !important; transition-duration:.01ms !important; } }
