/* Editorial landing: one rhythm, four material studies, native document scrolling. */
html.landing { scroll-padding-top:32px; }
body.landing { overflow-x:clip; }
.landing-wrap { width:min(var(--page),calc(100% - 112px)); margin-inline:auto; }
.landing-nav { display:flex; align-items:center; gap:32px; font-size:14px; font-weight:600; }
.landing-nav>a:not(.btn) { display:flex; align-items:center; min-height:44px; }
.landing-nav>a:not(.btn):hover,.text-link:hover { text-decoration:underline; text-underline-offset:5px; }
.eyebrow { font-size:12px; font-weight:700; line-height:1.4; letter-spacing:.11em; text-transform:uppercase; }
.landing h1,.landing h2 { font-weight:700; letter-spacing:-.065em; }
.landing h2 { font-size:clamp(48px,5.5vw,80px); line-height:.98; }
.landing-hero { display:grid; grid-template-columns:1fr 1.15fr; align-items:center; padding-top:60px; padding-bottom:36px; }
.hero-copy { position:relative; z-index:2; }
.hero-copy h1 { margin:27px 0 26px; font-size:clamp(62px,6.5vw,104px); line-height:.95; }
.hero-deck { color:var(--ink-2); font-size:18px; line-height:1.5; letter-spacing:-.02em; }
.hero-actions { display:flex; flex-wrap:wrap; align-items:center; gap:18px; margin-top:30px; }
.platform-note { font-size:12px; line-height:1.5; color:var(--ink-2); }
.hero-tail { grid-column:1/-1; display:flex; align-items:center; justify-content:space-between; gap:20px; margin-top:60px; padding-top:25px; border-top:1px solid var(--rule); font-size:13px; }
.text-link { display:inline-flex; align-items:center; min-height:44px; font-weight:600; }
.motion-control { min-height:44px; padding:0; border:0; background:transparent; color:var(--ink-2); font-size:12px; }
.scene { position:relative; margin:0; }
.art-layer { position:relative; }
.scene img { display:block; width:100%; height:auto; aspect-ratio:3/2; object-fit:contain; }
.scene-architecture { width:116%; margin-left:-10%; }
/* The complete poster remains underneath until every moving layer is ready. */
.scene-motion { position:absolute; inset:0; width:100%; height:100%; visibility:hidden; pointer-events:none; overflow:visible; }
.motion-ready .scene-ready .scene-motion { visibility:visible; }
.motion-ready .scene-ready .scene-poster { opacity:0; }
.art-part { transform-box:view-box; animation-iteration-count:infinite; animation-fill-mode:both; animation-timing-function:cubic-bezier(.45,0,.55,1); animation-play-state:paused; }
.scene-moving .art-part { animation-play-state:running; }
.architecture-beam { animation-name:bridge-lift; animation-duration:12s; }
.terrain-top { animation-name:terrain-lift; animation-duration:10s; }
.terrain-middle { animation-name:terrain-middle; animation-duration:12s; }
.terrain-bottom { animation-name:terrain-base; animation-duration:14s; }
.current-upper { transform-origin:1500px 548px; animation-name:current-upper; animation-duration:9s; }
.current-middle { transform-origin:1500px 560px; animation-name:current-middle; animation-duration:11s; }
.current-lower { transform-origin:1500px 594px; animation-name:current-lower; animation-duration:10s; }
.weight-left { transform-origin:139px 507px; animation-name:pendulum; animation-duration:6.4s; --swing:5deg; --return-swing:-5deg; }
.weight-right { transform-origin:1425px 190px; animation-name:pendulum; animation-duration:8.1s; --swing:-4.5deg; --return-swing:4.5deg; }
.weight-low { transform-origin:1225px 484px; animation-name:pendulum; animation-duration:7.3s; --swing:8deg; --return-swing:-8deg; }
@keyframes bridge-lift { 0%,100% { transform:translate(0,0); } 50% { transform:translate(0,-48px); } }
@keyframes terrain-lift { 0%,100% { transform:translate(0,0); } 50% { transform:translate(0,-30px); } }
@keyframes terrain-middle { 0%,100% { transform:translate(0,0); } 50% { transform:translate(0,-8px); } }
@keyframes terrain-base { 0%,100% { transform:translate(0,0); } 50% { transform:translate(0,10px); } }
@keyframes current-upper { 0%,100% { transform:rotate(0) scaleY(1); } 35% { transform:rotate(1.2deg) scaleY(1.035); } 70% { transform:rotate(-.7deg) scaleY(.99); } }
@keyframes current-middle { 0%,100% { transform:rotate(0); } 35% { transform:rotate(-.6deg); } 70% { transform:rotate(.7deg); } }
@keyframes current-lower { 0%,100% { transform:rotate(0) scaleY(1); } 35% { transform:rotate(-1deg) scaleY(1.035); } 70% { transform:rotate(.8deg) scaleY(.985); } }
@keyframes pendulum {
  0%,50%,100% { transform:rotate(0); animation-timing-function:cubic-bezier(.33,.5,.67,1); }
  25% { transform:rotate(var(--swing)); animation-timing-function:cubic-bezier(.33,0,.67,.5); }
  75% { transform:rotate(var(--return-swing)); animation-timing-function:cubic-bezier(.33,0,.67,.5); }
}
.art-unavailable .scene-motion { display:none; }
.chapter { padding:110px 0 80px; }
.chapter-heading { display:grid; grid-template-columns:1.3fr 1fr; align-items:end; gap:12%; position:relative; z-index:2; }
.chapter-heading h2,.kinetic-copy h2,.landing-questions h2 { margin-top:23px; }
.chapter-deck { max-width:32ch; font-size:18px; line-height:1.6; color:var(--ink-2); letter-spacing:-.025em; }
.chapter-terrain { background:#e5e8da; --paper:#e5e8da; --rule:#bac1ad; --ink-2:#4c5845; }
.scene-topography { width:min(1050px,100%); margin:45px auto 30px; }
.chapter-notes { display:grid; grid-template-columns:repeat(3,1fr); gap:6%; position:relative; z-index:2; }
.chapter-notes>div { border-top:1px solid var(--rule); padding-top:23px; }
.chapter-notes h3 { font-size:20px; line-height:1.15; letter-spacing:-.035em; }
.chapter-notes p { margin-top:12px; max-width:29ch; font-size:15px; line-height:1.6; color:var(--ink-2); }
.chapter-currents { background:#173c3a; color:#f1eee3; --paper:#173c3a; --rule:#53736b; --ink-2:#c0d0c4; }
.chapter-currents .eyebrow { color:#d0d7bf; }
.scene-currents { width:min(1300px,100%); margin:36px auto 32px; }
.chapter-kinetic { padding-block:145px; }
.kinetic-layout { display:grid; grid-template-columns:1.2fr 1fr; align-items:center; gap:7%; }
.scene-kinetic { width:110%; margin-left:-7%; }
.kinetic-copy { position:relative; z-index:2; }
.kinetic-copy .chapter-deck { margin-top:28px; }
.work-details { margin:35px 0 0; }
.work-details>div { display:grid; grid-template-columns:100px 1fr; gap:15px; padding-block:17px; border-top:1px solid var(--rule); }
.work-details dt { font-size:15px; font-weight:700; }
.work-details dd { margin:0; color:var(--ink-2); font-size:14px; line-height:1.55; max-width:29ch; }
.landing-questions { display:grid; grid-template-columns:1fr 1fr; gap:12%; padding-block:30px 120px; }
.questions { padding-top:3px; }
.questions details { border-top:1px solid var(--rule); }
.questions details:last-child { border-bottom:1px solid var(--rule); }
.questions summary { display:flex; justify-content:space-between; align-items:center; gap:20px; padding-block:24px; cursor:pointer; list-style:none; font-size:18px; font-weight:600; line-height:1.3; letter-spacing:-.025em; }
.questions summary::-webkit-details-marker { display:none; }
.landing-disclosure-icon { width:17px; height:17px; flex:none; }
.landing details[open]>summary>.landing-disclosure-icon { transform:rotate(180deg); }
.questions p { padding:0 28px 24px 0; color:var(--ink-2); font-size:15px; line-height:1.65; }
.landing-ending { background:#252b26; color:#f3eee5; padding:100px 0 95px; --ink:#f3eee5; --paper:#252b26; --ink-2:#c0c4b9; --accent-ink:#e4b180; }
.landing-ending h2 { font-size:clamp(56px,7.5vw,112px); margin:25px 0 38px; }
.landing-ending .platform-note { margin-top:15px; }
.foot-zone { position:relative; padding:30px 0 max(28px,env(safe-area-inset-bottom)); color:var(--ink-3); font-size:13px; background:var(--paper); }
.foot-links { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:8px 24px; }
.foot-links nav { display:flex; gap:24px; }
.foot-links a { display:flex; align-items:center; min-height:44px; }
.foot-links a:hover { color:var(--ink); }
.landing-updates,.landing-legal { display:inline-block; vertical-align:top; margin-right:24px; }
.landing-updates[open],.landing-legal[open] { display:block; margin-right:0; }
.landing-updates summary,.landing-legal summary { display:flex; align-items:center; gap:8px; min-height:44px; width:max-content; cursor:pointer; list-style:none; }
.landing-updates summary::-webkit-details-marker,.landing-legal summary::-webkit-details-marker { display:none; }
.foot-keep { max-width:540px; padding:8px 0 18px; }
.foot-disc { max-width:110ch; font-size:12px; line-height:1.6; }
.foot-operator { margin-top:8px; font-size:12px; }
.skip-link { position:fixed; left:16px; top:12px; z-index:100; padding:12px 18px; opacity:0; pointer-events:none; transform:translateY(-180%); background:var(--ink); color:var(--paper); }
.skip-link:focus { opacity:1; pointer-events:auto; transform:none; }
.download-dialog { width:min(600px,calc(100% - 32px)); max-height:calc(100dvh - 40px); padding:0; border:1px solid var(--rule); border-radius:var(--r-card); color:var(--ink); background:#fff; box-shadow:0 12px 40px rgba(0,0,0,.18); overflow:auto; }
.download-dialog::backdrop { background:rgba(36,40,35,.25); -webkit-backdrop-filter:blur(4px); backdrop-filter:blur(4px); }
.download-dialog-header { position:sticky; top:0; z-index:1; display:flex; justify-content:space-between; align-items:center; padding:16px 22px; border-bottom:1px solid var(--rule); background:#fff; }
html.landing .download-dialog-header .mark { width:36px; height:31px; }
#download-content { padding:24px; }
.download-dialog .gate { border:0; border-radius:0; box-shadow:none; padding:0; background:transparent; }
.download-loading { padding:36px 0; text-align:center; }
.download-unavailable { display:flex; flex-wrap:wrap; gap:16px; align-items:center; }
.download-unavailable p { flex-basis:100%; }
.download-unavailable>a { text-decoration:underline; font-size:13px; }
.download-dialog .panel h1 { font-weight:700; }
@media (min-width:1800px) { .landing-hero { padding-top:90px; } }
@media (max-width:1100px) {
  .hero-copy { padding-right:20px; }
  .scene-architecture { width:105%; margin-left:0; }
  .hero-copy h1 { font-size:clamp(46px,5.7vw,62px); }
  .hero-deck { font-size:16px; }
  .hero-deck br { display:none; }
  .chapter-heading { gap:8%; }
  .kinetic-layout { gap:4%; }
  .work-details>div { grid-template-columns:80px 1fr; }
}
@media (max-width:1000px) { .landing-wrap { width:calc(100% - 64px); } }
@media (max-width:760px) {
  .landing-wrap { width:calc(100% - 40px); }
  .landing-nav { gap:18px; font-size:13px; }
  .landing-hero { display:flex; flex-direction:column; align-items:stretch; padding-top:36px; padding-bottom:20px; }
  .hero-copy { padding-right:0; }
  .hero-copy h1 { font-size:clamp(56px,10.9vw,82px); margin-top:22px; margin-bottom:23px; }
  .hero-deck { max-width:30ch; font-size:17px; }
  .hero-actions { gap:14px; margin-top:26px; }
  .scene-architecture { margin-block:12px -20px; }
  .hero-tail { margin-top:25px; padding-top:12px; gap:14px; }
  .hero-tail .text-link { max-width:24ch; font-size:12px; gap:12px; }
  .motion-control { font-size:11px; white-space:nowrap; }
  .chapter { padding:70px 0 55px; }
  .landing h2 { font-size:clamp(45px,8.7vw,64px); }
  .chapter-heading { display:block; }
  .chapter-heading h2,.kinetic-copy h2,.landing-questions h2 { margin-top:20px; }
  .chapter-deck { margin-top:25px; max-width:36ch; font-size:17px; line-height:1.55; }
  .scene-topography { margin-block:32px 25px; }
  .scene-currents { margin-block:30px 20px; }
  .chapter-notes { grid-template-columns:1fr; gap:22px; }
  .chapter-notes>div { padding-top:18px; }
  .chapter-notes h3 { font-size:19px; }
  .chapter-notes p { max-width:34ch; margin-top:7px; font-size:15px; }
  .kinetic-layout { display:flex; flex-direction:column-reverse; gap:30px; }
  .kinetic-copy { width:100%; }
  .kinetic-copy .chapter-deck { margin-top:25px; }
  .scene-kinetic { margin-block:0; }
  .scene { width:calc(100% + 40px); margin-inline:-20px; }
  .work-details { margin-top:28px; }
  .work-details>div { grid-template-columns:80px 1fr; }
  .landing-questions { display:block; padding:20px 0 75px; }
  .questions { margin-top:35px; }
  .questions summary { padding-block:22px; font-size:17px; }
  .landing-ending { padding:70px 0; }
  .landing-ending h2 { font-size:clamp(49px,9.8vw,76px); }
  .foot-links { gap:4px; }
  .foot-links>span { flex-basis:100%; }
  .foot-links nav { gap:26px; }
  .download-dialog { max-height:calc(100dvh - 24px); }
}
@media (max-width:370px) {
  .landing-wrap { width:calc(100% - 32px); }
  .scene { width:calc(100% + 32px); margin-inline:-16px; }
  .landing-nav { gap:8px; }
  .landing-nav .btn { padding-inline:8px; }
  .hero-copy h1 { font-size:47px; }
  .hero-actions { align-items:flex-start; flex-direction:column; gap:10px; }
  .hero-tail .text-link { max-width:18ch; }
  .landing-ending h2 { font-size:45px; }
}
@media (prefers-reduced-motion:reduce) {
  .scene-motion,.motion-control { display:none; }
  .scene-ready .scene-poster { opacity:1; }
}
