:root{
  --bg:#150f0a; --ink:#ecdfc2; --muted:#cdb995; --accent:#e0a35c; --line:#5b4129; --btn:#2a1d12; --btn-on:#f0c27e; --btn-on-ink:#1b1209;
  --green:#8fe0b0;
}
*{box-sizing:border-box}
html{color-scheme:dark}
body{margin:0;background:var(--bg);color:var(--ink);font-family:Georgia,"Times New Roman",serif;line-height:1.55}
a{color:var(--accent);text-underline-offset:3px}
a:hover{color:#ffd9a0}
:focus-visible{outline:3px solid var(--green);outline-offset:3px}
.skip{position:absolute;left:-999px;top:8px;background:var(--btn-on);color:var(--btn-on-ink);padding:8px 12px;z-index:10}
.skip:focus{left:8px}
.top{padding:18px 24px 10px;max-width:1100px;margin:0 auto}
h1{margin:0;font-size:clamp(1.4rem,4.5vw,2rem);letter-spacing:.04em;line-height:1.2}
.lede{margin:.4rem 0 0;color:var(--muted)}
main{max-width:1100px;margin:0 auto}

/* Stage: the sky, a horizon glow behind the building and a vignette. The glow keeps the dark street
   from melting into the background; the vignette frames it. */
.stage{position:relative;height:clamp(300px,68vh,640px);margin:0 24px;border:1px solid var(--line);border-radius:6px;overflow:hidden;
  background:
    radial-gradient(ellipse 70% 38% at 50% 63%,var(--glow),transparent 72%),
    linear-gradient(180deg,var(--sky-top) 0,var(--sky-low) 58%,var(--ground) 58.1%,var(--ground-low) 100%)}
.stage[data-look=dusk]{--sky-top:#3a1f2e;--sky-low:#a35a33;--glow:rgba(255,170,90,.55);--ground:#6d5238;--ground-low:#3b2a1a}
.stage[data-look=noon]{--sky-top:#6f9fd6;--sky-low:#cfe0ee;--glow:rgba(255,255,255,.5);--ground:#b79c74;--ground-low:#8a7352}
.stage[data-look=moon]{--sky-top:#050912;--sky-low:#1a2a44;--glow:rgba(120,190,170,.35);--ground:#2a3b3a;--ground-low:#111c1d}
.stage[data-look=moon]::before{content:"";position:absolute;inset:0 0 42% 0;pointer-events:none;opacity:.9;
  background-image:
    radial-gradient(1.2px 1.2px at 12% 18%,#fff,transparent),radial-gradient(1px 1px at 27% 8%,#dfe8ff,transparent),
    radial-gradient(1.4px 1.4px at 41% 24%,#fff,transparent),radial-gradient(1px 1px at 58% 11%,#cfdcff,transparent),
    radial-gradient(1.2px 1.2px at 73% 20%,#fff,transparent),radial-gradient(1px 1px at 86% 9%,#dfe8ff,transparent),
    radial-gradient(1px 1px at 93% 28%,#fff,transparent),radial-gradient(1.2px 1.2px at 6% 36%,#cfdcff,transparent),
    radial-gradient(1px 1px at 64% 33%,#fff,transparent),radial-gradient(1px 1px at 34% 38%,#dfe8ff,transparent)}
.vignette{position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 90px 24px rgba(10,6,3,.55)}
model-viewer{position:absolute;inset:0;width:100%;height:100%;--poster-color:transparent;background:transparent}
.loading{position:absolute;inset:0;display:grid;place-items:center;color:var(--ink);letter-spacing:.06em;text-shadow:0 1px 3px #000}

.controls{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;padding:14px 24px 0}
.group{display:flex;gap:8px;flex-wrap:wrap}
button{font:inherit;background:var(--btn);color:var(--ink);border:1px solid #8a6842;border-radius:4px;padding:10px 18px;min-height:44px;cursor:pointer}
button:hover{background:#3a2818}
button[aria-pressed=true][data-look]{background:var(--btn-on);color:var(--btn-on-ink);border-color:var(--btn-on);font-weight:700}
.hint{margin:8px 24px 0;font-size:.85rem;color:var(--muted)}

.about,.gallery{padding:32px 24px 0;max-width:760px}
.gallery{max-width:none}
h2{font-size:1.25rem;letter-spacing:.05em;margin:0 0 .6rem;color:var(--accent)}
.about p{margin:0 0 1rem}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:16px}
figure{margin:0}
figure.wide{grid-column:1/-1}
img{display:block;width:100%;height:auto;border:1px solid var(--line);border-radius:4px;background:#000}
figcaption{margin-top:6px;font-size:.9rem;color:var(--muted)}

.foot{max-width:1100px;margin:40px auto 0;padding:20px 24px 32px;border-top:1px solid var(--line);font-size:.9rem;color:var(--muted)}
.foot p{margin:.3rem 0}
.credits{font-size:.85rem}

@media (max-width:600px){
  .top{padding:14px 16px 8px}
  .stage{margin:0 12px;height:clamp(300px,58vh,520px)}
  .controls,.hint,.about,.gallery{padding-left:16px;padding-right:16px}
  .hint{margin-left:16px;margin-right:16px;padding:0}
  .foot{padding-left:16px;padding-right:16px}
  .controls{flex-direction:column;align-items:stretch}
  .group button{flex:1}
}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
