/* ===========================================================================
   B:30 Desert Destination — design-a (Last Light) — BODY styles
   Scoped to [data-design="a"]; keyframes ll-*-prefixed. Mounts under #design-mount
   below the injected AI hero. Motion: transform/opacity/clip-path/box-shadow/
   filter/color/stroke-dashoffset only. Windowed-center on every reading column.
   =========================================================================== */

/* Register --ll-temp as a typed <number> so the Stays-selector warm/cool
   crossfade (opacity: var(--ll-temp)) actually interpolates. An UNregistered
   custom property is untyped — `transition: opacity` over a var()-derived value
   can stall mid-flight and pin the displayed opacity. Typing it makes the
   number animatable and opacity follow it cleanly. (Not a layout prop.) */
@property --ll-temp { syntax: "<number>"; inherits: true; initial-value: 0.5; }

/* ── Token contract (dusk default — the pitch leads with its signature hour) ── */
[data-design="a"][data-ll] {
  --ll-dusk:#161C24; --ll-field:#1E2731; --ll-field-2:#27323E;
  --ll-light:#F4ECDA; --ll-haze:#9BA8B2; --ll-haze-soft:#6E7B86;
  --ll-ember:#E89A3C; --ll-glow:#D8693B; --ll-cool:#6E9BB7;
  --ll-moss:#87A06A; --ll-moss-deep:#A8C18A; --ll-rust:#C0492F;
  --ll-line:#33404B; --ll-line-soft:#283139;

  --ll-font-display:"Cormorant Garamond","Canela",Georgia,"Times New Roman",serif;
  --ll-font-body:"Söhne","Aktiv Grotesk",-apple-system,"Helvetica Neue",system-ui,sans-serif;
  --ll-font-meta:"IBM Plex Mono","Space Mono",ui-monospace,Menlo,monospace;

  --ll-t-display:clamp(2rem,5vw,3.25rem);
  --ll-t-head:clamp(1.5rem,3vw,2.25rem);
  --ll-t-lead:clamp(1.2rem,2vw,1.5rem);
  --ll-t-body:clamp(1rem,1.1vw,1.0625rem);
  --ll-t-meta:0.8125rem;
  --ll-lh-body:1.66; --ll-lh-tight:1.04; --ll-track-meta:0.22em;

  --ll-grain:4px; --ll-step:8px; --ll-margin:16px; --ll-stop:24px;
  --ll-frame:32px; --ll-spread:48px; --ll-horizon:72px; --ll-vista:96px;

  --ll-quick:200ms; --ll-settle:420ms; --ll-expose:900ms;
  --ll-ease-light:cubic-bezier(.37,0,.2,1);
  --ll-ease-settle:cubic-bezier(.16,.84,.44,1);
  --ll-ease-bloom:cubic-bezier(.4,0,.2,1);

  --ll-r-frame:4px; --ll-r-panel:10px; --ll-r-read:9999px;
  --ll-elev-line:0 0 0 1px var(--ll-line);
  --ll-elev-lift:0 18px 48px -24px rgba(8,12,18,.72);
  --ll-glow-ember:0 0 0 1px color-mix(in oklab, var(--ll-ember), transparent 70%),
                  0 10px 44px -10px color-mix(in oklab, var(--ll-ember), transparent 52%);
  --ll-focus:0 0 0 3px color-mix(in oklab, var(--ll-ember), transparent 58%);

  /* CTA button-floor tokens consumed by body-life.css (in case any anchor goes class-less) */
  --bl-cta-ink:#20180c;
  --bl-cta-bg:linear-gradient(180deg, color-mix(in oklab,var(--ll-ember),white 8%), var(--ll-ember));

  /* windowed-center column width */
  --ll-maxw:1240px;
  --ll-pad-inline:clamp(20px,5vw,48px);

  background:var(--ll-dusk);
  color:var(--ll-light);
  font-family:var(--ll-font-body);
  font-size:var(--ll-t-body);
  line-height:var(--ll-lh-body);
}

/* shared windowed-center column helper */
[data-design="a"] .ll-col {
  box-sizing:border-box; max-width:var(--ll-maxw); margin-inline:auto;
  padding-inline:var(--ll-pad-inline);
}

[data-design="a"] .ll-reading {
  display:inline-block; font-family:var(--ll-font-meta); font-size:var(--ll-t-meta);
  letter-spacing:.12em; text-transform:uppercase; color:var(--ll-haze);
  border:1px solid var(--ll-line); border-radius:var(--ll-r-read);
  padding:6px 14px; white-space:nowrap; margin:0;
}

/* ── The Beacon CTA ───────────────────────────────────────────────────────── */
[data-design="a"] .ll-cta {
  position:relative; display:inline-flex; align-items:center; gap:var(--ll-step);
  box-sizing:border-box; padding:14px 26px; min-height:48px; border:none; cursor:pointer;
  border-radius:var(--ll-r-read); text-decoration:none; color:#20180c;
  font-family:var(--ll-font-body); font-weight:600; font-size:1rem; letter-spacing:.01em;
  background:linear-gradient(180deg, color-mix(in oklab,var(--ll-ember),white 8%), var(--ll-ember));
  box-shadow:var(--ll-glow-ember); transition:transform var(--ll-quick) var(--ll-ease-settle);
  will-change:transform; isolation:isolate;
}
[data-design="a"] .ll-cta__bloom {
  position:absolute; inset:-3px; z-index:-1; border-radius:inherit; pointer-events:none;
  background:radial-gradient(120px 120px at var(--ll-bx,50%) var(--ll-by,50%),
    color-mix(in oklab,var(--ll-ember),transparent 35%), transparent 70%);
  opacity:.6; animation:ll-bloom 5s var(--ll-ease-bloom) infinite;
}
[data-design="a"] .ll-cta__ext { font-family:var(--ll-font-meta); font-size:.8rem; opacity:.75; }
@media (hover:hover) and (pointer:fine) {
  [data-design="a"] .ll-cta:hover { transform:translateY(-2px); }
}
[data-design="a"] .ll-cta:active { transform:translateY(0) scale(.97); }
[data-design="a"] .ll-cta:focus-visible { outline:none; box-shadow:var(--ll-glow-ember), var(--ll-focus); }
@keyframes ll-bloom { 0%,100% { transform:scale(1); opacity:.55; } 50% { transform:scale(1.06); opacity:.22; } }

/* ── 1. Header ────────────────────────────────────────────────────────────── */
[data-design="a"] .ll-header {
  position:sticky; top:0; z-index:40;
  background:color-mix(in oklab, var(--ll-dusk), transparent 8%);
  backdrop-filter:saturate(1.15) blur(8px); border-bottom:1px solid var(--ll-line);
}
[data-design="a"] .ll-header__bar {
  box-sizing:border-box; max-width:var(--ll-maxw); margin-inline:auto;
  padding:var(--ll-margin) var(--ll-pad-inline); display:flex; align-items:center;
  justify-content:space-between; gap:var(--ll-margin);
}
[data-design="a"] .ll-logo {
  display:inline-flex; align-items:center; gap:var(--ll-step); text-decoration:none;
  color:var(--ll-light); opacity:0; transform:translateY(7px);
  animation:ll-expose var(--ll-settle) var(--ll-ease-light) .1s forwards;
}
[data-design="a"] .ll-logo__sun {
  width:11px; height:11px; border-radius:50%; flex:0 0 auto;
  background:radial-gradient(circle at 38% 34%, color-mix(in oklab,var(--ll-ember),white 30%), var(--ll-ember));
  box-shadow:0 0 14px -2px color-mix(in oklab,var(--ll-ember),transparent 30%);
}
[data-design="a"] .ll-logo__mark {
  font-family:var(--ll-font-display); font-weight:600;
  font-size:clamp(1.2rem,2.6vw,1.7rem); letter-spacing:.01em; line-height:1;
}
[data-design="a"] .ll-header__horizon { position:absolute; inset:auto 0 -1px 0; height:2px; overflow:hidden; pointer-events:none; }
[data-design="a"] .ll-header__light {
  position:absolute; inset:0 -50%; display:block;
  background:linear-gradient(90deg, transparent, var(--ll-cool) 22%, var(--ll-ember) 50%, var(--ll-glow) 64%, transparent);
  opacity:.8; animation:ll-drift 28s ease-in-out infinite;
}
[data-design="a"] .ll-burger {
  background:none; border:1px solid var(--ll-line); border-radius:var(--ll-r-frame);
  width:44px; height:44px; display:grid; gap:4px; place-content:center; cursor:pointer; padding:0;
  transition:border-color var(--ll-quick) var(--ll-ease-settle); flex:0 0 auto;
}
[data-design="a"] .ll-burger span {
  display:block; width:20px; height:1.6px; background:var(--ll-light);
  transition:transform var(--ll-quick) var(--ll-ease-settle), opacity var(--ll-quick) linear;
}
[data-design="a"] .ll-burger[aria-expanded="true"] span:nth-child(1) { transform:translateY(5.6px) rotate(45deg); }
[data-design="a"] .ll-burger[aria-expanded="true"] span:nth-child(2) { opacity:0; }
[data-design="a"] .ll-burger[aria-expanded="true"] span:nth-child(3) { transform:translateY(-5.6px) rotate(-45deg); }
[data-design="a"] .ll-burger:focus-visible { outline:none; box-shadow:var(--ll-focus); }
[data-design="a"] .ll-waypoints {
  position:fixed; inset:0; z-index:60; background:var(--ll-dusk);
  box-sizing:border-box;
  padding:clamp(72px,14vh,140px) var(--ll-pad-inline) var(--ll-vista);
  display:grid; align-content:start; gap:var(--ll-step);
  max-width:var(--ll-maxw); margin-inline:auto;
  opacity:0; transform:translateY(-8px);
  transition:opacity var(--ll-settle) var(--ll-ease-light), transform var(--ll-settle) var(--ll-ease-light);
}
[data-design="a"] .ll-waypoints[data-open] { opacity:1; transform:translateY(0); }
[data-design="a"] .ll-waypoints__cap {
  font-family:var(--ll-font-meta); font-size:var(--ll-t-meta); letter-spacing:var(--ll-track-meta);
  text-transform:uppercase; color:var(--ll-haze); border-bottom:1px solid var(--ll-line);
  padding-bottom:var(--ll-step); margin:0;
}
[data-design="a"] .ll-waypoint {
  font-family:var(--ll-font-display); font-size:var(--ll-t-head); color:var(--ll-light);
  text-decoration:none; padding:var(--ll-step) 0; position:relative; width:max-content;
}
[data-design="a"] .ll-waypoint::after {
  content:""; position:absolute; left:0; bottom:6px; width:100%; height:1.5px;
  background:var(--ll-ember); transform:scaleX(0); transform-origin:left;
  transition:transform var(--ll-quick) var(--ll-ease-settle);
}
@media (hover:hover) and (pointer:fine) {
  [data-design="a"] .ll-waypoint:hover::after { transform:scaleX(1); }
}
[data-design="a"] .ll-waypoint:focus-visible { outline:none; box-shadow:var(--ll-focus); border-radius:var(--ll-r-frame); }
[data-design="a"] .ll-waypoint-cta { margin-top:var(--ll-stop); }
[data-design="a"] .ll-waypoint-cta::after { display:none; }

/* ── 2. Place story ───────────────────────────────────────────────────────── */
[data-design="a"] .ll-place {
  box-sizing:border-box; max-width:var(--ll-maxw); margin-inline:auto;
  padding:var(--ll-horizon) var(--ll-pad-inline); display:grid; gap:var(--ll-spread);
}
[data-design="a"] .ll-place__title {
  font-family:var(--ll-font-display); font-weight:600; font-size:var(--ll-t-display);
  line-height:var(--ll-lh-tight); color:var(--ll-light); margin:var(--ll-step) 0 var(--ll-margin); max-width:18ch;
}
[data-design="a"] .ll-place__body { max-width:62ch; }
[data-design="a"] .ll-place__body p {
  font-size:var(--ll-t-body); line-height:var(--ll-lh-body);
  color:color-mix(in oklab,var(--ll-light),transparent 8%); margin:0 0 var(--ll-margin);
}
[data-design="a"] .ll-place__body p:last-child { margin-bottom:0; }
[data-design="a"] .ll-place__feature {
  margin:0; position:relative; border-radius:var(--ll-r-panel); overflow:hidden;
  border:1px solid var(--ll-line); box-shadow:var(--ll-elev-lift);
}
[data-design="a"] .ll-place__feature img {
  display:block; width:100%; height:clamp(280px,46vw,540px); object-fit:cover;
}
[data-design="a"] .ll-place__cap {
  position:absolute; left:var(--ll-margin); bottom:var(--ll-margin); z-index:2;
  color:var(--ll-light); background:color-mix(in oklab,var(--ll-dusk),transparent 18%);
  border-color:color-mix(in oklab,var(--ll-light),transparent 64%); backdrop-filter:blur(4px);
}
@media (min-width:860px) {
  [data-design="a"] .ll-place { grid-template-columns:1fr 1.05fr; align-items:center; padding-block:var(--ll-vista); }
}

/* ── 3. Key facts ─────────────────────────────────────────────────────────── */
[data-design="a"] .ll-facts {
  box-sizing:border-box; max-width:var(--ll-maxw); margin-inline:auto;
  padding:0 var(--ll-pad-inline) var(--ll-horizon); display:grid; gap:var(--ll-spread);
}
[data-design="a"] .ll-facts__grid {
  list-style:none; margin:0; padding:0; display:grid; gap:var(--ll-margin);
  grid-template-columns:repeat(auto-fit,minmax(170px,1fr));
}
[data-design="a"] .ll-fact {
  background:var(--ll-field); border:1px solid var(--ll-line); border-radius:var(--ll-r-panel);
  padding:var(--ll-stop); display:grid; gap:6px; align-content:start;
}
[data-design="a"] .ll-fact__n {
  font-family:var(--ll-font-display); font-weight:600; font-size:clamp(2.2rem,4vw,3rem);
  line-height:1; color:var(--ll-ember);
}
[data-design="a"] .ll-fact__u { font-size:.42em; color:var(--ll-haze); margin-left:2px; }
[data-design="a"] .ll-fact__l {
  font-family:var(--ll-font-body); font-size:var(--ll-t-meta);
  color:color-mix(in oklab,var(--ll-light),transparent 14%); line-height:1.4;
}
[data-design="a"] .ll-facts__quote {
  margin:0; font-family:var(--ll-font-display); font-size:var(--ll-t-lead); font-style:italic;
  line-height:1.45; color:var(--ll-light); border-left:2px solid var(--ll-ember);
  padding-left:var(--ll-stop); max-width:60ch;
}
[data-design="a"] .ll-facts__quote cite {
  display:block; margin-top:var(--ll-step); font-family:var(--ll-font-meta); font-style:normal;
  font-size:var(--ll-t-meta); letter-spacing:.04em; color:var(--ll-haze);
}

/* ── Pointer ──────────────────────────────────────────────────────────────── */
[data-design="a"] .ll-pointer {
  position:relative; display:grid; justify-items:center; gap:6px;
  margin:var(--ll-spread) auto var(--ll-horizon); width:max-content; cursor:pointer;
}
[data-design="a"] .ll-pointer__glow {
  position:absolute; top:-6px; left:50%; width:70px; height:70px; border-radius:50%; pointer-events:none;
  background:radial-gradient(circle, color-mix(in oklab,var(--ll-ember),transparent 40%), transparent 68%);
  transform:translate(-50%,0); animation:ll-sink 5s var(--ll-ease-light) infinite;
}
[data-design="a"] .ll-pointer__svg { display:block; position:relative; }
[data-design="a"] .ll-pointer__line {
  stroke:var(--ll-ember); stroke-width:1.6; stroke-dasharray:64; stroke-dashoffset:64;
  animation:ll-rake-down 5s var(--ll-ease-light) infinite;
}
[data-design="a"] .ll-pointer__tip {
  stroke:var(--ll-ember); stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round;
  opacity:0; animation:ll-tip-in 5s var(--ll-ease-light) infinite;
}
[data-design="a"] .ll-pointer__label {
  font-family:var(--ll-font-meta); text-transform:uppercase; letter-spacing:var(--ll-track-meta);
  font-size:var(--ll-t-meta); color:var(--ll-haze);
}
@keyframes ll-sink { 0%,100% { transform:translate(-50%,0); opacity:.7; } 55% { transform:translate(-50%,16px); opacity:.25; } }
@keyframes ll-rake-down { 0% { stroke-dashoffset:64; } 55%,100% { stroke-dashoffset:0; } }
@keyframes ll-tip-in { 0%,45% { opacity:0; } 70%,100% { opacity:1; } }

/* ── 4. Stays selector — Find your light ──────────────────────────────────── */
[data-design="a"] .ll-find {
  box-sizing:border-box; max-width:var(--ll-maxw); margin-inline:auto;
  padding:var(--ll-horizon) var(--ll-pad-inline);
}
[data-design="a"] .ll-find__title {
  font-family:var(--ll-font-display); font-weight:600; font-size:var(--ll-t-display);
  line-height:var(--ll-lh-tight); color:var(--ll-light); margin:var(--ll-step) 0 var(--ll-spread);
}
[data-design="a"] .ll-find__grid { display:grid; gap:var(--ll-spread); }
[data-design="a"] .ll-find__list { display:grid; gap:var(--ll-margin); align-content:start; }
[data-design="a"] .ll-site {
  box-sizing:border-box; text-align:left; width:100%; cursor:pointer;
  background:var(--ll-field); border:1px solid var(--ll-line); border-radius:var(--ll-r-panel);
  padding:var(--ll-margin) var(--ll-stop); min-height:64px; display:grid; gap:4px; color:var(--ll-light);
  transition:transform var(--ll-quick) var(--ll-ease-settle), border-color var(--ll-quick) linear,
    box-shadow var(--ll-quick) var(--ll-ease-settle);
}
[data-design="a"] .ll-site__name { font-family:var(--ll-font-display); font-size:var(--ll-t-lead); font-weight:600; }
[data-design="a"] .ll-site__light { font-family:var(--ll-font-meta); font-size:var(--ll-t-meta); letter-spacing:.08em; color:var(--ll-haze); }
@media (hover:hover) and (pointer:fine) {
  [data-design="a"] .ll-site:hover { transform:translateY(-2px); border-color:color-mix(in oklab,var(--ll-ember),transparent 50%); }
}
[data-design="a"] .ll-site:focus-visible { outline:none; box-shadow:var(--ll-focus); }
[data-design="a"] .ll-site[aria-checked="true"] { border-color:var(--ll-ember); box-shadow:var(--ll-glow-ember); }
[data-design="a"] .ll-site[aria-checked="true"] .ll-site__light { color:var(--ll-ember); }
[data-design="a"] .ll-find__preview {
  position:relative; box-sizing:border-box; overflow:hidden;
  border:1px solid var(--ll-line); border-radius:var(--ll-r-panel); background:var(--ll-field-2);
  min-height:380px; isolation:isolate;
  /* The warm/cool crossfade is driven by JS, which tweens --ll-temp via rAF and
     the warm/cool layers resolve opacity from it per-frame. CSS transitions on a
     var()-fed opacity (or on the custom property itself) stall in some engines,
     so the motion is owned in script.js — no CSS transition on the temperature. */
}
[data-design="a"] .ll-find__warm, [data-design="a"] .ll-find__cool {
  position:absolute; inset:0; z-index:-1;
  /* never transition opacity here — the preview interpolates --ll-temp and these
     resolve per-frame. (Also defeats any inherited transition:all from chrome.) */
  transition:none;
}
[data-design="a"] .ll-find__warm {
  background:radial-gradient(120% 90% at 50% 110%,
    color-mix(in oklab,var(--ll-glow),transparent 40%), color-mix(in oklab,var(--ll-ember),transparent 62%) 40%, transparent 72%);
  opacity:var(--ll-temp,.5);
}
[data-design="a"] .ll-find__cool {
  background:radial-gradient(120% 90% at 50% 110%, color-mix(in oklab,var(--ll-cool),transparent 42%), transparent 70%);
  opacity:calc(1 - var(--ll-temp,.5));
}
[data-design="a"] .ll-find__photo {
  position:absolute; inset:0; z-index:-1; background-size:cover; background-position:center;
  opacity:.34; mix-blend-mode:luminosity; transition:opacity var(--ll-settle) var(--ll-ease-light);
}
[data-design="a"] .ll-find__body { padding:var(--ll-frame); display:grid; gap:var(--ll-step); align-content:start; }
[data-design="a"] .ll-find__body[data-swap] { animation:ll-frame-in var(--ll-settle) var(--ll-ease-light); }
[data-design="a"] .ll-find__name { font-family:var(--ll-font-display); font-weight:600; font-size:var(--ll-t-head); color:var(--ll-light); margin:4px 0 0; }
[data-design="a"] .ll-find__meta { font-family:var(--ll-font-meta); font-size:var(--ll-t-meta); text-transform:uppercase; letter-spacing:.06em; color:var(--ll-haze); margin:0; }
[data-design="a"] .ll-find__terrain { font-family:var(--ll-font-body); line-height:var(--ll-lh-body); color:color-mix(in oklab,var(--ll-light),transparent 6%); margin:0; max-width:52ch; }
[data-design="a"] .ll-find__incl { list-style:none; padding:0; margin:4px 0 var(--ll-margin); display:grid; gap:6px; }
[data-design="a"] .ll-find__incl li { font-family:var(--ll-font-body); font-size:var(--ll-t-meta); color:var(--ll-light); padding-left:20px; position:relative; }
[data-design="a"] .ll-find__incl li::before { content:""; position:absolute; left:0; top:.5em; width:9px; height:9px; border-radius:50%; background:var(--ll-moss); }
@keyframes ll-frame-in { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:translateY(0); } }
@media (min-width:768px) {
  [data-design="a"] .ll-find__grid { grid-template-columns:.9fr 1.1fr; align-items:start; }
}

/* ── 5. Gallery ───────────────────────────────────────────────────────────── */
[data-design="a"] .ll-gallery {
  box-sizing:border-box; max-width:var(--ll-maxw); margin-inline:auto;
  padding:var(--ll-horizon) var(--ll-pad-inline);
}
[data-design="a"] .ll-gallery__title {
  font-family:var(--ll-font-display); font-weight:600; font-size:var(--ll-t-display);
  line-height:var(--ll-lh-tight); color:var(--ll-light); margin:var(--ll-step) 0 var(--ll-spread); max-width:22ch;
}
[data-design="a"] .ll-gallery__grid {
  display:grid; gap:var(--ll-margin); grid-template-columns:repeat(2,1fr);
}
[data-design="a"] .ll-gallery__frame {
  margin:0; border-radius:var(--ll-r-panel); overflow:hidden; border:1px solid var(--ll-line);
  background:var(--ll-field); box-shadow:var(--ll-elev-line);
}
[data-design="a"] .ll-gallery__frame img {
  display:block; width:100%; height:clamp(180px,26vw,300px); object-fit:cover;
  transition:transform var(--ll-expose) var(--ll-ease-light), filter var(--ll-settle) var(--ll-ease-light);
}
@media (hover:hover) and (pointer:fine) {
  [data-design="a"] .ll-gallery__frame:hover img { transform:scale(1.05); filter:brightness(1.06) saturate(1.05); }
}
@media (min-width:768px) {
  [data-design="a"] .ll-gallery__grid { grid-template-columns:repeat(3,1fr); }
  [data-design="a"] .ll-gallery__frame--wide { grid-column:span 2; }
  [data-design="a"] .ll-gallery__frame--wide img { height:clamp(240px,30vw,400px); }
}

/* ── 6. What's nearby ─────────────────────────────────────────────────────── */
[data-design="a"] .ll-nearby {
  box-sizing:border-box; max-width:var(--ll-maxw); margin-inline:auto;
  padding:var(--ll-horizon) var(--ll-pad-inline);
}
[data-design="a"] .ll-nearby__title {
  font-family:var(--ll-font-display); font-weight:600; font-size:var(--ll-t-display);
  line-height:var(--ll-lh-tight); color:var(--ll-light); margin:var(--ll-step) 0 var(--ll-spread);
}
[data-design="a"] .ll-nearby__list {
  list-style:none; margin:0; padding:0; display:grid; gap:var(--ll-margin);
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
}
[data-design="a"] .ll-near {
  background:var(--ll-field); border:1px solid var(--ll-line); border-radius:var(--ll-r-panel);
  padding:var(--ll-stop); display:grid; gap:6px; align-content:start;
  transition:transform var(--ll-quick) var(--ll-ease-settle), border-color var(--ll-quick) linear;
}
@media (hover:hover) and (pointer:fine) {
  [data-design="a"] .ll-near:hover { transform:translateY(-2px); border-color:color-mix(in oklab,var(--ll-ember),transparent 55%); }
}
[data-design="a"] .ll-near__time {
  font-family:var(--ll-font-meta); font-size:var(--ll-t-meta); letter-spacing:.08em;
  text-transform:uppercase; color:var(--ll-ember);
}
[data-design="a"] .ll-near__name { font-family:var(--ll-font-display); font-weight:600; font-size:var(--ll-t-lead); color:var(--ll-light); margin:0; }
[data-design="a"] .ll-near__note { font-family:var(--ll-font-body); font-size:var(--ll-t-meta); line-height:1.5; color:color-mix(in oklab,var(--ll-light),transparent 16%); margin:0; }

/* ── 7. Host ──────────────────────────────────────────────────────────────── */
[data-design="a"] .ll-host {
  box-sizing:border-box; max-width:var(--ll-maxw); margin-inline:auto;
  padding:var(--ll-horizon) var(--ll-pad-inline); display:grid; gap:var(--ll-margin);
}
[data-design="a"] .ll-host__title {
  font-family:var(--ll-font-display); font-weight:600; font-size:var(--ll-t-display);
  line-height:var(--ll-lh-tight); color:var(--ll-light); margin:var(--ll-step) 0 0;
}
[data-design="a"] .ll-host__body {
  font-family:var(--ll-font-body); font-size:var(--ll-t-lead); line-height:var(--ll-lh-body);
  color:color-mix(in oklab,var(--ll-light),transparent 8%); max-width:60ch; margin:0;
}

/* ── 8. Closing ───────────────────────────────────────────────────────────── */
[data-design="a"] .ll-close {
  position:relative; overflow:hidden;
  background:linear-gradient(180deg, var(--ll-dusk), var(--ll-field));
  border-top:1px solid var(--ll-line);
}
[data-design="a"] .ll-close__inner {
  box-sizing:border-box; max-width:var(--ll-maxw); margin-inline:auto;
  padding:var(--ll-vista) var(--ll-pad-inline) var(--ll-horizon);
  display:grid; gap:var(--ll-margin); justify-items:start;
}
[data-design="a"] .ll-close__title {
  font-family:var(--ll-font-display); font-weight:600; font-size:clamp(2.2rem,6vw,3.75rem);
  line-height:var(--ll-lh-tight); color:var(--ll-light); margin:var(--ll-step) 0 0; max-width:18ch;
}
[data-design="a"] .ll-close__sub {
  font-family:var(--ll-font-body); font-size:var(--ll-t-lead); line-height:var(--ll-lh-body);
  color:color-mix(in oklab,var(--ll-light),transparent 12%); max-width:54ch; margin:0;
}
[data-design="a"] .ll-close__cta { margin-top:var(--ll-step); }
[data-design="a"] .ll-colophon {
  box-sizing:border-box; max-width:var(--ll-maxw); margin-inline:auto;
  padding:var(--ll-stop) var(--ll-pad-inline) var(--ll-vista);
  display:flex; flex-wrap:wrap; gap:var(--ll-margin) var(--ll-spread);
  border-top:1px solid var(--ll-line-soft);
  font-family:var(--ll-font-meta); font-size:var(--ll-t-meta); letter-spacing:.04em; color:var(--ll-haze);
}

/* ── Reduced motion ───────────────────────────────────────────────────────── */
@media (prefers-reduced-motion:reduce) {
  [data-design="a"] .ll-header__light,
  [data-design="a"] .ll-cta__bloom,
  [data-design="a"] .ll-pointer__glow { animation:none; }
  [data-design="a"] .ll-cta__bloom { opacity:.4; }
  [data-design="a"] .ll-pointer__line { animation:none; stroke-dashoffset:0; }
  [data-design="a"] .ll-pointer__tip { animation:none; opacity:1; }
  [data-design="a"] .ll-logo { animation:none; opacity:1; transform:none; }
  [data-design="a"] .ll-waypoints,
  [data-design="a"] .ll-cta,
  [data-design="a"] .ll-site,
  [data-design="a"] .ll-near,
  [data-design="a"] .ll-find__preview,
  [data-design="a"] .ll-find__photo,
  [data-design="a"] .ll-gallery__frame img { transition:none; }
  [data-design="a"] .ll-find__body[data-swap] { animation:none; }
}

/* ── Mobile floor (mandatory tail) ────────────────────────────────────────── */
@keyframes ll-drift { 0%,100% { transform:translateX(-12%); } 50% { transform:translateX(12%); } }
@keyframes ll-expose { to { opacity:1; transform:translateY(0); } }

[data-design="a"].dq-design, [data-design="a"] .dq-design { max-width:100%; overflow-x:clip; }
[data-design="a"].dq-design * { min-width:0; }
[data-design="a"].dq-design img { max-width:100%; height:auto; }

/* Re-assert fixed cover heights for the framed photos (the generic dq img
   height:auto above must not collapse them — these are object-fit:cover frames,
   incl. the parallax feature which needs to fill its clipping frame). */
[data-design="a"].dq-design .ll-place__feature img { height:clamp(280px,46vw,540px); }
[data-design="a"].dq-design .ll-gallery__frame img { height:clamp(180px,26vw,300px); }
@media (min-width:768px) {
  [data-design="a"].dq-design .ll-gallery__frame--wide img { height:clamp(240px,30vw,400px); }
}

/* Phase-3.4 hero visibility floor (forge_assemble) */
[data-design="a"] [data-mf-role="hero"] :is(h1,h2,p,.headline,.subtitle,.proof,[class*="headline"],[class*="subtitle"],[class*="proof"]),
[data-design="a"] [data-mf-role="cta"] { opacity: 1 !important; }
