/* Fixed frames, shared transfer coordinates and room for titles at every size. */
body.continuous-journey .opening-chapter .hero-art{overflow:hidden;isolation:isolate}
.opening-chapter .hero-art img,.opening-chapter .hero-art canvas{object-position:50% 50%}
.city-window{border-radius:42% 42% 4px 4px;isolation:isolate;overflow:hidden}
.city-chart{transform:none;border-radius:inherit;overflow:hidden;box-shadow:none}
.city-chart svg{overflow:hidden}
body.turn23-active .city-window{visibility:visible}body.turn23-active .city-window>img{visibility:hidden}
body.turn23-active .city-chart{visibility:hidden}
.turn23-chart{visibility:visible!important;transform:none!important}
body.turn23-active .experience-leaf:nth-child(2){filter:brightness(.87)}
.village-photo-frame{position:absolute;inset:0;border-radius:43% 43% 3px 3px;overflow:hidden;isolation:isolate;box-shadow:0 22px 35px #231d4333}
.village-photo-frame>img{display:block;width:100%;height:100%;object-fit:cover;border-radius:0;box-shadow:none}
.coast-photo{clip-path:none;border-radius:45% 45% 4px 4px;overflow:hidden;isolation:isolate}
.sierra-photo{isolation:isolate}
body.continuous-journey .city-atlas,body.continuous-journey .coast-sculpture,body.continuous-journey .village-model,body.continuous-journey .sierra-model,body.continuous-journey .compas-instrument{left:4%;top:34%;width:min(54vw,68vh);height:auto;aspect-ratio:4/3;translate:none}
body.continuous-journey .experiences-heading,body.continuous-journey .city-heading,body.continuous-journey .coast-heading,body.continuous-journey .village-heading,body.continuous-journey .sierra-heading,body.continuous-journey .compas-heading{top:10%;translate:none}
body.continuous-journey .experiences-heading h2,body.continuous-journey .city-heading h2,body.continuous-journey .coast-heading h2,body.continuous-journey .village-heading h2,body.continuous-journey .sierra-heading h2,body.continuous-journey .compas-heading h2{font-size:clamp(44px,5.1vw,76px);margin:16px 0;line-height:.92}
body.continuous-journey .experience-fan{left:5%;bottom:19%;width:48vw;height:48vh}
@media(max-width:700px){
 body.continuous-journey .city-atlas,body.continuous-journey .coast-sculpture,body.continuous-journey .village-model,body.continuous-journey .sierra-model,body.continuous-journey .compas-instrument{left:50%;top:28%;width:min(90vw,37.333vh);height:auto;transform:translateX(-50%);translate:none}
 body.continuous-journey .experiences-heading,body.continuous-journey .city-heading,body.continuous-journey .coast-heading,body.continuous-journey .village-heading,body.continuous-journey .sierra-heading,body.continuous-journey .compas-heading{top:9%}
 body.continuous-journey .experiences-heading h2,body.continuous-journey .city-heading h2,body.continuous-journey .coast-heading h2,body.continuous-journey .village-heading h2,body.continuous-journey .sierra-heading h2,body.continuous-journey .compas-heading h2{font-size:clamp(34px,9.5vw,42px);margin:12px 0;line-height:.92}
 body.continuous-journey .coast-heading h2 em{display:block;margin-left:0}
 body.continuous-journey .experience-fan{left:9%;top:25%;bottom:auto;width:82vw;height:25vh}
}

/* A closed sheet has no visible edge or independently styled background. */
.opening-guide[hidden]{display:none!important}
/* One arch bounds the photograph, both shutters and all engraved windows.
   Half-width shutters need twice the horizontal radius, the same vertical radius. */
.village-view{border-radius:43% 43% 3px 3px;overflow:hidden;isolation:isolate}
.village-door{overflow:hidden;box-sizing:border-box;box-shadow:none}
.village-door.left{border-radius:86% 0 0 0 / 43% 0 0 0}
.village-door.right{border-radius:0 86% 0 0 / 0 43% 0 0}
.village-door svg{display:block;overflow:hidden}
/* Scroll-controlled exposure: preserve the night at zero, lift the white
   façades and warm the scene while the shutters uncover the photograph. */
.village-photo-frame>img{filter:brightness(calc(1 + var(--village-daylight,0)*1.35)) saturate(calc(1 + var(--village-daylight,0)*.18))}
.village-photo-frame:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,#07172c66,#081d3433);opacity:calc(1 - var(--village-daylight,0))}

/* Mobile scenes share three layout rows. The copy determines its own height;
   the illustration uses the remaining row instead of competing at 54–62vh.
   Direct children stay in the scene coordinate system used by the handoffs. */
@media(max-width:700px){
 body.continuous-journey :is(#panel-umbral,#panel-ciudad,#panel-costa,#panel-pueblos,#panel-sierra,#panel-compas){
  display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:24px;
  box-sizing:border-box;padding:88px 7% 42px;align-items:start;
 }
 body.continuous-journey :is(.experiences-heading,.city-heading,.coast-heading,.village-heading,.sierra-heading,.compas-heading){
  position:relative;inset:auto;width:100%;grid-row:1;margin:0;translate:none;
 }
 body.continuous-journey :is(.experiences-heading,.city-heading,.coast-heading,.village-heading,.sierra-heading,.compas-heading) h2{margin:12px 0 0}
 body.continuous-journey :is(.city-atlas,.coast-sculpture,.village-model,.sierra-model,.compas-instrument){
  position:relative;inset:auto;grid-row:2;align-self:center;justify-self:center;
  width:auto;height:100%;max-height:260px;max-width:100%;min-height:0;
  aspect-ratio:4/3;transform:none;translate:none;margin:0;
  overflow:clip;overflow-clip-margin:16px;
 }
 body.continuous-journey :is(.experiences-selector,.city-notebook,.coast-notebook,.village-notebook,.sierra-notebook,.compas-notebook){
  position:relative;inset:auto;grid-row:3;width:100%;max-width:none;margin:0;min-width:0;
 }
 /* Rotated leaves extend below their bottom hinge. Reserve that geometry,
    including the rivet, before placing any interactive controls. */
 body.continuous-journey .experience-fan{
  position:relative;inset:auto;grid-row:2;align-self:center;justify-self:center;
  width:82vw;height:100%;max-height:240px;min-height:0;margin:0;transform:none;
 }
 body.continuous-journey .experiences-selector{margin-top:calc(14vw + 16px)}
 body.continuous-journey :is(.city-atlas-caption,.coast-caption,.village-model-caption,.sierra-caption,.compas-caption){bottom:-14px}
 body.continuous-journey :is(.city-scroll-progress,.coast-meter,.village-meter,.sierra-meter,.compas-meter){bottom:15px}
}
