  :root {
    --ground:#EEEFF0; --surface:#F7F8F8; --surface-2:#E3E5E7;
    --ink:#15181C; --ink-2:#454C55; --ink-3:#6E7680;
    --rule:#C9CDD1; --rule-soft:#DCDFE2; --steel:#33414F; --on-steel:#EEEFF0;
    --accent:#E8B60C; --accent-ink:#15181C; --accent-soft:#8A6E05;
    --ok:#2F7D4F; --field:#FFFFFF;
  }
  @media (prefers-color-scheme: dark) {
    :root:not([data-theme="light"]) {
      --ground:#101317; --surface:#171B20; --surface-2:#1F252B;
      --ink:#EDEFF1; --ink-2:#AEB6BF; --ink-3:#7C858F;
      --rule:#2C333A; --rule-soft:#232930; --steel:#1C2A38; --on-steel:#EDEFF1;
      --accent:#F5C518; --accent-ink:#101317; --accent-soft:#F5C518;
      --ok:#5FBF86; --field:#0C0F12;
    }
  }
  :root[data-theme="dark"] {
    --ground:#101317; --surface:#171B20; --surface-2:#1F252B;
    --ink:#EDEFF1; --ink-2:#AEB6BF; --ink-3:#7C858F;
    --rule:#2C333A; --rule-soft:#232930; --steel:#1C2A38; --on-steel:#EDEFF1;
    --accent:#F5C518; --accent-ink:#101317; --accent-soft:#F5C518;
    --ok:#5FBF86; --field:#0C0F12;
  }
  * { box-sizing:border-box; }
  html { scroll-behavior:smooth; }
  body { margin:0; background:var(--ground); color:var(--ink);
    font-family:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
    font-size:16px; line-height:1.6; -webkit-font-smoothing:antialiased; }
  img { max-width:100%; height:auto; display:block; }
  .mono, .tag, .mark, .rate, .num { font-family:ui-monospace,"SF Mono",SFMono-Regular,Menlo,Consolas,monospace; }
  .tag { font-size:.6875rem; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-3); }
  .wrap { max-width:72rem; margin:0 auto; padding:0 1.5rem; }
  a { color:inherit; }
  :focus-visible { outline:3px solid var(--accent); outline-offset:2px; }

  /* label bar */
  .label-bar { background:var(--surface); border-bottom:1px solid var(--rule); }
  .label-bar .wrap { display:flex; flex-wrap:wrap; gap:.75rem 2.25rem; align-items:baseline; padding-top:.9rem; padding-bottom:.9rem; }
  .mark { font-size:.8125rem; letter-spacing:.2em; text-transform:uppercase; font-weight:700; margin-right:auto; }
  .mark span { color:var(--accent-soft); }
  .field { display:flex; flex-direction:column; gap:.1rem; }
  .field b { font-family:ui-monospace,"SF Mono",Menlo,monospace; font-size:.8125rem; font-weight:600; }

  /* hero */
  .hero { padding:3.5rem 0 3rem; }
  .hero .wrap { display:grid; grid-template-columns:1.05fr .95fr; gap:2.5rem; align-items:center; }
  .hero h1 { font-size:clamp(2.1rem,5vw,3.6rem); line-height:1.03; letter-spacing:-.025em; font-weight:800; margin:1rem 0 0; text-wrap:balance; }
  .hero h1 em { font-style:normal; box-shadow:inset 0 -.4em 0 var(--accent); }
  .hero .sub { margin:1.35rem 0 0; font-size:1.125rem; color:var(--ink-2); max-width:54ch; }
  .hero figure { margin:0; border:1px solid var(--rule); }
  .hero figure img { aspect-ratio:4/3; object-fit:cover; width:100%; }
  .hero figcaption { font-size:.8125rem; color:var(--ink-3); padding:.5rem .75rem; background:var(--surface); border-top:1px solid var(--rule); }
  @media (max-width:52rem){ .hero .wrap{ grid-template-columns:1fr; } }

  .cta-row { display:flex; flex-wrap:wrap; align-items:center; gap:.75rem 1rem; margin-top:2rem; }
  .btn { display:inline-flex; align-items:center; gap:.5rem; text-decoration:none; cursor:pointer;
    font-family:ui-monospace,"SF Mono",Menlo,monospace; font-weight:700; font-size:1rem; letter-spacing:.03em;
    padding:.8rem 1.3rem; border:1px solid var(--accent); background:var(--accent); color:var(--accent-ink); }
  .btn:hover { background:transparent; color:var(--ink); }
  .btn.ghost { background:transparent; color:var(--ink); border-color:var(--rule); }
  .btn.ghost:hover { border-color:var(--ink); }

  .hazard { height:12px; background-image:repeating-linear-gradient(-45deg,var(--accent) 0 14px,#15181C 14px 28px); }

  section { padding:3.5rem 0; }
  .band { background:var(--surface); border-block:1px solid var(--rule); }
  h2 { font-size:1.6rem; line-height:1.2; letter-spacing:-.015em; font-weight:800; margin:.4rem 0 1.5rem; text-wrap:balance; }
  .lede { color:var(--ink-2); max-width:62ch; margin:-.75rem 0 1.75rem; }

  /* specs */
  .specs { display:grid; grid-template-columns:repeat(auto-fit,minmax(14rem,1fr)); border-top:1px solid var(--rule); margin:0; }
  .spec { border-bottom:1px solid var(--rule); padding:1rem 1.25rem 1rem 0; }
  .spec dt { font-family:ui-monospace,"SF Mono",Menlo,monospace; font-size:.6875rem; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-3); }
  .spec dd { margin:.2rem 0 0; font-weight:700; }
  .spec dd small { display:block; font-weight:400; font-size:.875rem; color:var(--ink-2); }

  /* photo strip */
  .strip { display:grid; grid-template-columns:repeat(4,1fr); gap:.5rem; margin-top:2rem; }
  .strip img { aspect-ratio:4/3; object-fit:cover; width:100%; border:1px solid var(--rule); }
  @media (max-width:46rem){ .strip{ grid-template-columns:repeat(2,1fr); } }

  /* locations */
  .locs { display:grid; grid-template-columns:repeat(auto-fit,minmax(18rem,1fr)); gap:1px; background:var(--rule); border:1px solid var(--rule); }
  .loc { background:var(--ground); display:flex; flex-direction:column; }
  .loc img { aspect-ratio:16/10; object-fit:cover; width:100%; }
  .loc .body { padding:1.1rem 1.25rem 1.35rem; }
  .loc h3 { margin:.35rem 0 .35rem; font-size:1.125rem; }
  .loc p { margin:0; color:var(--ink-2); font-size:.9375rem; }
  .pill { display:inline-block; font-family:ui-monospace,"SF Mono",Menlo,monospace; font-size:.6875rem; letter-spacing:.1em; text-transform:uppercase; padding:.2rem .5rem; border:1px solid var(--rule); color:var(--ink-2); }
  .pill.open { border-color:var(--ok); color:var(--ok); }

  /* builder */
  .builder { display:grid; grid-template-columns:1.2fr .8fr; gap:2rem; align-items:start; }
  @media (max-width:56rem){ .builder{ grid-template-columns:1fr; } }
  .choices { display:flex; flex-direction:column; gap:1.5rem; }
  fieldset { border:1px solid var(--rule); background:var(--surface); margin:0; padding:1.1rem 1.25rem 1.25rem; }
  legend { font-weight:700; padding:0 .4rem; }
  .hint { font-size:.875rem; color:var(--ink-3); margin:.1rem 0 .8rem; }
  .opts { display:flex; flex-wrap:wrap; gap:.5rem; }
  .opt { position:relative; }
  .opt input { position:absolute; opacity:0; inset:0; margin:0; cursor:pointer; }
  .opt span { display:block; padding:.55rem .85rem; border:1px solid var(--rule); background:var(--ground); font-size:.9375rem; cursor:pointer; }
  .opt span b { font-family:ui-monospace,"SF Mono",Menlo,monospace; font-weight:600; color:var(--ink-2); margin-left:.35rem; font-size:.8125rem; }
  .opt input:checked + span { border-color:var(--ink); background:var(--accent); color:var(--accent-ink); }
  .opt input:checked + span b { color:var(--accent-ink); }
  .opt input:focus-visible + span { outline:3px solid var(--accent); outline-offset:2px; }
  .counters { display:grid; grid-template-columns:repeat(auto-fit,minmax(13rem,1fr)); gap:.75rem; }
  .counter { display:flex; align-items:center; justify-content:space-between; gap:.75rem; border:1px solid var(--rule); background:var(--ground); padding:.5rem .6rem .5rem .85rem; }
  .counter label { font-size:.9375rem; }
  .counter label small { display:block; font-family:ui-monospace,"SF Mono",Menlo,monospace; color:var(--ink-3); font-size:.75rem; }
  .step { display:flex; align-items:center; }
  .step button { width:2.1rem; height:2.1rem; border:1px solid var(--rule); background:var(--surface); color:var(--ink); font-size:1.1rem; cursor:pointer; }
  .step input { width:3.4rem; height:2.1rem; text-align:center; border:1px solid var(--rule); border-inline:0; background:var(--field); color:var(--ink); font:600 .9375rem ui-monospace,Menlo,monospace; }

  .quote { position:sticky; top:1rem; background:var(--steel); color:var(--on-steel); padding:1.5rem; }
  .quote .tag { color:var(--on-steel); opacity:.7; }
  .quote .big { font-family:ui-monospace,"SF Mono",Menlo,monospace; font-size:2.4rem; font-weight:700; line-height:1.1; margin:.35rem 0 .15rem; font-variant-numeric:tabular-nums; }
  .quote .per { opacity:.75; font-size:.875rem; }
  .quote ul { list-style:none; padding:0; margin:1.1rem 0; border-top:1px solid rgba(255,255,255,.18); }
  .quote li { display:flex; justify-content:space-between; gap:1rem; padding:.45rem 0; border-bottom:1px solid rgba(255,255,255,.12); font-size:.9375rem; }
  .quote li span:last-child { font-family:ui-monospace,Menlo,monospace; font-variant-numeric:tabular-nums; white-space:nowrap; }
  .quote .note { font-size:.8125rem; opacity:.8; margin:0 0 1rem; }
  .quote .btn { width:100%; justify-content:center; }

  /* menu */
  .menu { display:grid; gap:1px; background:var(--rule); border:1px solid var(--rule); }
  .row { background:var(--ground); display:grid; grid-template-columns:10rem 1fr 10rem; gap:1.25rem; padding:1.15rem 1.35rem; align-items:start; }
  .row .basis { font-family:ui-monospace,Menlo,monospace; font-size:.6875rem; letter-spacing:.14em; text-transform:uppercase; color:var(--accent-soft); font-weight:600; padding-top:.25rem; }
  .row h3 { margin:0 0 .25rem; font-size:1.0625rem; }
  .row p { margin:0; color:var(--ink-2); font-size:.9375rem; }
  .row .rate { text-align:right; font-weight:700; font-variant-numeric:tabular-nums; }
  .row .rate small { display:block; font-weight:400; font-size:.75rem; letter-spacing:.05em; text-transform:uppercase; color:var(--ink-3); }
  @media (max-width:46rem){ .row{ grid-template-columns:1fr; gap:.4rem; } .row .rate{ text-align:left; } }

  .pitch { display:grid; grid-template-columns:repeat(auto-fit,minmax(15rem,1fr)); gap:1.75rem 2.25rem; }
  .pitch h3 { font-size:1rem; margin:0 0 .45rem; padding-top:.8rem; border-top:3px solid var(--accent); }
  .pitch p { margin:0; color:var(--ink-2); font-size:.9375rem; }

  .loc iframe { width:100%; aspect-ratio:16/10; border:0; display:block; background:var(--surface-2); }
  .maprow { display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--rule); border:1px solid var(--rule); margin-top:1.5rem; }
  .maprow figure { margin:0; background:var(--ground); }
  .maprow iframe { width:100%; aspect-ratio:4/3; border:0; display:block; background:var(--surface-2); }
  .maprow figcaption { display:flex; flex-wrap:wrap; justify-content:space-between; gap:.35rem 1rem; padding:.65rem .9rem; font-size:.875rem; color:var(--ink-2); }
  .maprow figcaption a { font-family:ui-monospace,"SF Mono",Menlo,monospace; font-weight:600; }
  @media (max-width:46rem){ .maprow{ grid-template-columns:1fr; } }
  .vids { display:grid; grid-template-columns:1.25fr 1fr 1fr; gap:1rem; align-items:start; }
  .vid { margin:0; border:1px solid var(--rule); background:var(--ground); }
  .vid video { display:block; width:100%; aspect-ratio:9/16; max-height:40rem; object-fit:cover; background:#101317; }
  .vid figcaption { display:flex; flex-direction:column; padding:.6rem .8rem; font-size:.875rem; }
  .vid figcaption span { color:var(--ink-3); font-family:ui-monospace,"SF Mono",Menlo,monospace; font-size:.75rem; }
  @media (max-width:52rem){ .vids{ grid-template-columns:1fr 1fr; } .vid.main{ grid-column:1/-1; } .vid.main video{ max-height:34rem; } }
  /* studio room grid: one vertical clip beside real stills */
  .roomgrid { display:grid; grid-template-columns:minmax(0,20rem) minmax(0,1fr); gap:1rem; align-items:start; margin-top:1.5rem; }
  .roomgrid figure { margin:0; border:1px solid var(--rule); background:var(--ground); }
  .roomgrid video { display:block; width:100%; aspect-ratio:9/16; object-fit:cover; background:#101317; }
  .roomgrid img { aspect-ratio:4/3; object-fit:cover; width:100%; }
  .roomgrid .tall img { aspect-ratio:3/4; }
  .roomgrid figcaption { display:flex; flex-direction:column; gap:.15rem; padding:.6rem .8rem; font-size:.875rem; color:var(--ink-2); }
  .roomgrid figcaption span { color:var(--ink-3); font-family:ui-monospace,"SF Mono",Menlo,monospace; font-size:.75rem; }
  .roomgrid .shots { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
  .roomgrid.pair { grid-template-columns:1fr 1fr; }
  .roomgrid.pair img { aspect-ratio:3/4; }
  @media (max-width:52rem){ .roomgrid{ grid-template-columns:1fr; } .roomgrid .shots{ grid-template-columns:1fr 1fr; } }
  @media (max-width:34rem){ .roomgrid .shots{ grid-template-columns:1fr; } }

  .opt input:disabled { cursor:not-allowed; }
  .opt input:disabled + span { opacity:.4; cursor:not-allowed; text-decoration:line-through; }

  /* form */
  .contact { display:grid; grid-template-columns:.8fr 1.2fr; gap:2.5rem; }
  @media (max-width:52rem){ .contact{ grid-template-columns:1fr; } }
  form .grid { display:grid; grid-template-columns:1fr 1fr; gap:.85rem; }
  @media (max-width:40rem){ form .grid{ grid-template-columns:1fr; } }
  form label { display:flex; flex-direction:column; gap:.3rem; font-size:.875rem; font-weight:600; }
  form .full { grid-column:1/-1; }
  input[type=text], input[type=tel], input[type=email], textarea {
    font:inherit; font-weight:400; padding:.65rem .75rem; border:1px solid var(--rule); background:var(--field); color:var(--ink); width:100%; }
  textarea { min-height:6rem; resize:vertical; }
  .hp { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
  .summary { font-family:ui-monospace,Menlo,monospace; font-size:.8125rem; background:var(--surface); border:1px solid var(--rule); padding:.65rem .8rem; color:var(--ink-2); white-space:pre-wrap; }
  .status { margin:.9rem 0 0; font-weight:600; min-height:1.5rem; }
  .status.ok { color:var(--ok); }

  .closer { background:var(--steel); color:var(--on-steel); }
  .closer h2 { color:var(--on-steel); }
  .closer p { opacity:.85; max-width:50ch; }
  footer { padding:1.75rem 0 2.5rem; color:var(--ink-3); font-size:.8125rem; }
  @media (prefers-reduced-motion:reduce){ html{ scroll-behavior:auto; } }
  /* ---- shared additions 2026-09-28 ---- */
  .pagenav { background:var(--steel); }
  .pagenav .wrap { display:flex; flex-wrap:wrap; gap:.4rem 1.25rem; align-items:center; padding:.6rem 1.5rem; }
  .pagenav a { color:var(--on-steel); text-decoration:none; font-family:ui-monospace,"SF Mono",Menlo,monospace; font-size:.75rem; letter-spacing:.12em; text-transform:uppercase; opacity:.72; padding:.15rem 0; border-bottom:2px solid transparent; }
  .pagenav a:hover { opacity:1; }
  .pagenav a[aria-current="page"] { opacity:1; border-bottom-color:var(--accent); }
  .pagenav .sep { color:var(--on-steel); opacity:.3; }

  .doors { display:grid; grid-template-columns:repeat(auto-fit,minmax(16rem,1fr)); gap:1px; background:var(--rule); border:1px solid var(--rule); }
  .door { background:var(--ground); padding:0 0 1.5rem; display:flex; flex-direction:column; gap:.55rem; text-decoration:none; color:inherit; }
  .door > :not(img) { padding-inline:1.4rem; }
  .door img { aspect-ratio:16/9; object-fit:cover; width:100%; margin-bottom:.85rem; filter:saturate(.92); }
  .door:hover img { filter:saturate(1.05); }
  .door:hover { background:var(--surface); }
  .door h3 { margin:0; font-size:1.15rem; }
  .door p { margin:0; color:var(--ink-2); font-size:.9375rem; flex:1; }
  .door .go { font-family:ui-monospace,"SF Mono",Menlo,monospace; font-size:.8125rem; font-weight:700; color:var(--accent-soft); }
  .door .from { font-family:ui-monospace,"SF Mono",Menlo,monospace; font-size:.75rem; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-3); }

  .stack { display:grid; grid-template-columns:repeat(auto-fit,minmax(15rem,1fr)); gap:1.75rem 2.25rem; }
  .stack h3 { font-size:1rem; margin:0 0 .45rem; padding-top:.8rem; border-top:3px solid var(--accent); }
  .stack p { margin:0; color:var(--ink-2); font-size:.9375rem; }

  .terms { display:grid; grid-template-columns:repeat(auto-fit,minmax(9rem,1fr)); gap:1px; background:var(--rule); border:1px solid var(--rule); margin-top:1.25rem; }
  .term { background:var(--ground); padding:.9rem 1rem; }
  .term b { display:block; font-family:ui-monospace,"SF Mono",Menlo,monospace; font-size:.9375rem; }
  .term span { font-size:.8125rem; color:var(--ink-3); }

  .soon { border:1px dashed var(--rule); background:var(--surface); padding:1.5rem; text-align:center; color:var(--ink-3); font-size:.9375rem; }

