/* URTH · the site report in 3D (blender/viewer.html). A29, 25 Sep 2026; A31, 26 Sep: Alan's rule, "the dark green is supposed to be for
   text on a clear background, not even as a header". One light cream page; dark green only for text, thin lines and small accents; no
   bar, band, panel, readout, HUD, card, month cell or stage filled green. Buttons are cream, outlined; the current one carries gold.
   The colours come from design/tokens.css (design system v1.0) and live only in this block. */
:root{
  --bg:#FFFDF7;        /* --urth-cream-50: the one page background */
  --ink:#26372E;       /* --urth-text-primary: body text (13.2:1 on the page) */
  --ink-strong:#1D4331;/* --urth-forest-900: headings, links, outlines (text, lines and small accents only) */
  --muted:#66736B;     /* --urth-text-muted (4.9:1 on the page) */
  --line:#E2D9C8;      /* --urth-line: hairlines */
  --gold:#CDA24A;      /* --urth-gold-500: the current screen's outline, small accents */
  --gold-text:#6B4A12; /* the AI tag and notes in gold, readable on cream (7.9:1) */
  --cream:#FFFDF7; --deep:#1D4331; --link:#1D4331; --panel:#FFFDF7; --green:#1D4331;
}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--ink);font-family:system-ui,-apple-system,"Segoe UI",Arial,sans-serif;overflow-x:hidden}
a{color:var(--link)}
header{display:flex;align-items:center;gap:12px;flex-wrap:nowrap;background:var(--bg);border-bottom:1px solid var(--line);padding:6px 16px}
header h1{font-family:Georgia,"Times New Roman",serif;font-weight:600;font-size:18px;margin:0;color:var(--ink-strong);flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
header a.back{flex:0 0 auto;white-space:nowrap;display:inline-flex;align-items:center;min-height:44px;padding:0 14px;border-radius:999px;border:1.5px solid var(--ink-strong);color:var(--ink-strong);background:var(--bg);text-decoration:none;font-weight:600;font-size:14px}
header a.home{flex:0 0 auto;display:inline-flex;align-items:center;min-height:44px;padding:0 12px;color:var(--ink-strong);text-decoration:none;font-size:13px}
.screens{position:sticky;top:0;z-index:15;display:flex;gap:6px;padding:6px 16px;background:var(--bg);border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:thin;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}
.screens button{flex:0 0 auto;min-height:44px;border-radius:999px;border:1.5px solid var(--line);background:var(--bg);color:var(--ink-strong);font-weight:700;font-size:14px;padding:0 14px 0 6px;cursor:pointer;display:inline-flex;align-items:center;gap:7px;white-space:nowrap}
.screens button i{font-style:normal;font-size:11.5px;width:24px;height:24px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);color:var(--muted)}
.screens button.on{border-color:var(--gold);box-shadow:inset 0 0 0 1px var(--gold)}
.screens button.on i{border-color:var(--gold);color:var(--gold-text)}
.screenhead{max-width:1400px;margin:0 auto;padding:4px 16px 8px}
.screenhead h2{font-family:Georgia,"Times New Roman",serif;font-weight:600;font-size:22px;margin:0 0 2px;color:var(--ink-strong);display:flex;align-items:center;gap:10px}
.screenhead h2 span{font-family:system-ui,sans-serif;font-size:12px;font-weight:800;width:26px;height:26px;border-radius:50%;border:1.5px solid var(--gold);color:var(--gold-text);display:inline-flex;align-items:center;justify-content:center;flex:0 0 26px}
.screenhead p{margin:0;font-size:13.5px;line-height:1.5;color:var(--muted)}
.screenhead .missing{margin:6px 0 0;padding:6px 10px;border-radius:9px;border:1px solid var(--gold);color:var(--gold-text);font-size:13px}
.screennav{max-width:1400px;margin:0 auto;display:flex;align-items:center;gap:8px;padding:8px 16px 0}
.screennav .btn{flex:1 1 0;min-width:0;justify-content:center;min-height:44px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.screennav span{font-size:12px;color:var(--muted);white-space:nowrap}
.cl{margin:4px 0 8px;padding-left:18px}.cl li{margin:0 0 5px}
.proprow{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:6px 16px;max-width:1400px;margin:0 auto}
.proprow select{flex:1 1 220px;min-width:0;max-width:520px;height:40px;font-size:15px;font-weight:600}
.main{display:grid;grid-template-columns:minmax(0,1fr);gap:0;max-width:1400px;margin:0 auto}
@media (min-width:1000px){ .main{grid-template-columns:minmax(0,1fr) 360px} #numbers{max-height:70vh;overflow:auto} }
#streetphoto{display:none;max-width:1400px;margin:0 auto;padding:8px 16px;box-sizing:border-box}
body[data-screen="photos"] #streetphoto{display:block}
#streetphoto img{display:block;width:100%;max-width:960px;height:auto;aspect-ratio:640/400;object-fit:cover;border:1px solid var(--line);border-radius:10px;background:var(--bg)}
#streetphoto figcaption{margin:6px 0 0;font-size:13.5px;color:var(--ink)}
.homeline{display:none;max-width:1400px;margin:0 auto;padding:0 16px 8px;box-sizing:border-box;font-size:14px;color:var(--ink-strong)}
body[data-screen="photos"] .homeline{display:block}
/* the original report's header links (A35): thin outlines on the cream header; one sideways-scrolling row, never a second line */
header .hdracts{flex:0 1 auto;min-width:0;display:flex;gap:6px;overflow-x:auto;white-space:nowrap;scrollbar-width:none;-webkit-overflow-scrolling:touch}
header .hdracts::-webkit-scrollbar{display:none}
header .hdracts a{flex:0 0 auto;display:inline-flex;align-items:center;min-height:34px;padding:0 11px;border:1px solid var(--ink-strong);border-radius:999px;color:var(--ink-strong);background:var(--bg);text-decoration:none;font-size:13px;font-weight:600}
#stage{position:relative;width:100%;height:68vh;min-height:380px;background:linear-gradient(#cfe0ea,#eef2ef 60%,#e9ecdf);overflow:hidden;touch-action:none}
#stage canvas{display:block;width:100%;height:100%}
#stage.relief{background:radial-gradient(circle at 50% 40%,#FFFDF7,#efe8d8 75%)}
#hud{position:absolute;left:10px;top:10px;background:rgba(255,253,247,.92);color:var(--ink);border:1px solid var(--line);border-radius:10px;padding:8px 10px;font-size:12.5px;line-height:1.45;max-width:min(360px,70vw);pointer-events:none}
#hud b{color:var(--ink-strong)}
#pick{position:absolute;right:10px;top:10px;background:rgba(255,253,247,.96);color:var(--ink);border:1px solid var(--line);border-radius:10px;padding:8px 26px 8px 10px;font-size:12.5px;line-height:1.45;max-width:min(300px,calc(100% - 20px));max-height:calc(100% - 20px);overflow:auto;display:none}
#pick .mut{color:var(--muted)}
#pick .x{position:absolute;right:2px;top:2px;background:none;border:0;color:var(--ink-strong);font-size:18px;min-width:28px;min-height:28px;cursor:pointer}
#loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-align:center;padding:16px;font-size:14px;color:var(--ink-strong);background:rgba(255,253,247,.5)}
#numbers{background:var(--bg);border-left:1px solid var(--line);padding:10px 14px 14px;font-size:13px;line-height:1.45;min-width:0}
#numbers h3{font-family:Georgia,serif;font-weight:600;color:var(--ink-strong);font-size:16px;margin:4px 0 6px}
#numbers h4{color:var(--ink-strong);font-size:14px;margin:10px 0 4px}
#numbers p{margin:4px 0 8px}
.nt{width:100%;border-collapse:collapse;margin:4px 0 10px;font-size:12.5px}
.nt th,.nt td{text-align:left;padding:4px 6px;border-bottom:1px solid var(--line);vertical-align:top}
.nt th{color:var(--ink-strong);font-weight:700}
.nt td:last-child{font-variant-numeric:tabular-nums}
.small{font-size:12px;color:var(--muted);line-height:1.45}
.sw{display:inline-block;width:11px;height:11px;border-radius:3px;margin-right:5px;vertical-align:-1px;border:1px solid rgba(29,67,49,.3)}
.months{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;margin:6px 0 8px}
.mo{border-radius:7px;padding:4px 5px 4px 9px;background:var(--bg);border:1px solid var(--line);border-left:5px solid var(--line);font-size:11.5px;display:flex;flex-direction:column;min-width:0}
.mo b{color:var(--ink-strong)} .mo i{font-style:normal;color:var(--muted);font-size:10.5px}
.mo.shade{border-left-color:rgb(43,90,58)} .mo.partsun{border-left-color:rgb(124,138,74)} .mo.sun{border-left-color:rgb(229,192,74)} .mo.now{outline:2px solid var(--gold)}
.panel{max-width:1400px;margin:0 auto;padding:10px 16px 28px}
.row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:8px 0}
.lbl{font-size:11.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;min-width:64px}
.seg button,.btn{background:var(--bg);color:var(--ink-strong);border:1.5px solid var(--line);border-radius:9px;min-height:34px;padding:0 12px;font-size:13px;font-weight:700;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center}
.seg button.on,.btn.on{border-color:var(--gold);box-shadow:inset 0 0 0 1px var(--gold)}
.seg button:disabled,.btn:disabled{opacity:.45;cursor:default}
.btn.ghost{background:var(--bg);color:var(--ink-strong);border:1.5px solid var(--ink-strong)}
.links{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0}
input[type=range]{accent-color:var(--gold);flex:1 1 220px;min-width:160px}
.val{font-variant-numeric:tabular-nums;font-size:13px;min-width:120px}
.layers{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:13px}
.layers label,.chk{display:flex;gap:6px;align-items:center;cursor:pointer;font-size:13px}
select{height:34px;border-radius:9px;border:1px solid var(--line);background:var(--bg);color:var(--ink);padding:0 8px;font-size:13px;max-width:100%}
.legend{display:flex;align-items:center;flex-wrap:wrap;gap:4px 8px;font-size:12px;color:var(--muted)}
.ramp{height:12px;width:min(200px,36vw);border-radius:6px;background:linear-gradient(90deg,rgb(43,90,58),rgb(124,138,74),rgb(229,192,74))}
.note{font-size:12px;color:var(--muted);line-height:1.5;margin-top:10px;border-top:1px solid var(--line);padding-top:10px}
.compare{margin:12px 0;border:1px solid var(--line);border-radius:12px;padding:8px 12px}
.compare summary{cursor:pointer;font-weight:700;color:var(--ink-strong);min-height:32px;display:flex;align-items:center}
.bedcard:empty{display:none}
.bedcard{border:1px solid var(--gold);border-radius:10px;padding:6px 10px;margin:8px 0;background:var(--bg)}
.sched{max-height:none}
.flag{display:inline-block;font-size:11px;font-weight:800;letter-spacing:.06em;padding:2px 8px;border-radius:999px;border:1.5px solid var(--gold-text);color:var(--gold-text);background:var(--bg);margin:0 6px 0 0}
[hidden]{display:none!important}
@media (pointer:coarse){ .seg button,.btn,select{min-height:44px;height:auto} input[type=range]{min-height:44px} .layers label,.chk{min-height:44px} }
/* phone first (A31): the model near the top; the property row and the screen's intro fold under the model */
@media (max-width:560px){ #stage{height:56vh;min-height:300px} .lbl{min-width:100%} #hud{font-size:11px;max-width:calc(100vw - 20px);padding:6px 8px} #hud .hx{display:none}
  input[type=range]{min-width:0;flex:1 1 150px} .val{min-width:0} .seg button,.btn{padding:0 9px;font-size:12.5px} .row>*{max-width:100%}
  .screens{padding:4px 10px} .screens button{font-size:13.5px} #numbers{border-left:0;border-top:1px solid var(--line)}
  header{gap:8px;padding:2px 10px} header h1{font-size:15px;flex:0 1 16%} header .hdracts{flex:1 1 0} header .hdracts a{min-height:32px;padding:0 9px;font-size:12.5px} header a.back{padding:0 11px;font-size:13px} header a.home{padding:0 6px}
  body{display:flex;flex-direction:column} header{order:0} .screens{order:1} .screenhead{order:2;padding:2px 12px 4px} .screenhead h2{font-size:17px} .screenhead p{font-size:12.5px;line-height:1.35}
  .main{order:3} .screennav{order:4} .proprow{order:5} .panel{order:6} #printsheet{order:7} }
/* embedded in the temporary review page (blender/review.html): that page carries the property and view controls */
body.embed header,body.embed .proprow,body.embed .screens,body.embed .screennav,body.embed .compare,body.embed .note{display:none}
body.embed #stage{height:62vh;min-height:300px}
/* the print sheet: composed in the Print view, and the only thing printed */
#printsheet{display:none}
body[data-screen="print"] #printsheet{display:block;max-width:1100px;margin:0 auto 30px;padding:0 16px}
.sheet{background:#FFFDF7;color:#1d2a22;border-radius:12px;padding:18px 20px;font-family:Georgia,"Times New Roman",serif}
.sheet .tb{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;border-bottom:2px solid #1D4331;padding-bottom:8px;margin-bottom:12px}
.sheet .tb h2{margin:0;font-size:22px;color:#1D4331}
.sheet .tb .meta{font-family:system-ui,Arial,sans-serif;font-size:12px;color:#44584c;text-align:right}
.sheet .grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr));gap:10px}
.sheet figure{margin:0;border:1px solid #d8d2c2;border-radius:8px;overflow:hidden;background:#eee8da;break-inside:avoid}
.sheet figure img{display:block;width:100%;height:auto}
.sheet figcaption{font-family:system-ui,Arial,sans-serif;font-size:11.5px;padding:5px 8px;color:#2d3b32}
.sheet .nt th,.sheet .nt td{border-bottom:1px solid #d8d2c2;color:#1d2a22}
.sheet h3{font-size:16px;color:#1D4331;margin:14px 0 6px}
.sheet .foot{font-family:system-ui,Arial,sans-serif;font-size:11px;color:#556;margin-top:12px;border-top:1px solid #d8d2c2;padding-top:6px}
@media print{
  @page{size:letter;margin:12mm}
  html,body{background:#fff!important;color:#000}
  body>*:not(#printsheet){display:none!important}
  #printsheet{display:block!important;padding:0;max-width:none}
  .sheet{border-radius:0;padding:0}
}
