/* Original immersive layout retained; project controls and safe fallback. */
:root{--dim:rgba(244,241,238,.78);--dimmer:rgba(244,241,238,.56)}
button{font:inherit;color:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:6px}button{border:0;background:none}a,button{-webkit-tap-highlight-color:transparent}.skip-link{position:fixed;top:-70px;left:25px;padding:12px;background:#101d27;z-index:100}.skip-link:focus{top:15px}.brand-name small{font-size:8px;display:inline-block;letter-spacing:2px;margin-left:14px;color:#b6c8d0}.chrome{pointer-events:none}.chrome a{pointer-events:auto}.chrome-meta{font-size:9px}.stage-brief{visibility:hidden;pointer-events:none}.chapter:not(#sc0) .stage-brief{visibility:visible;pointer-events:auto}.stage.is-active{visibility:visible;pointer-events:auto}.stage.is-inactive{visibility:hidden;pointer-events:none}.stage{max-width:min(49ch,42vw)}.title{line-height:1.3;font-weight:300}.display{font-weight:250}.lead{font-size:clamp(13px,1.05vw,16px);line-height:1.95;text-shadow:0 1px 15px #0008}.specs{margin-top:32px}.specs>div{font-size:10px;padding:10px 0}.art-link{display:inline-flex;align-items:center;gap:35px;padding:10px 0;margin-top:22px;font-size:10px;letter-spacing:1.5px;border-bottom:1px solid #ffffff55}.art-link:hover{color:var(--accent)}.art-link span{font-size:17px}.experience-controls{position:fixed;right:var(--pad);bottom:clamp(22px,3.2vw,40px);z-index:10;display:flex;align-items:center;gap:9px;font-family:var(--f-mono);font-size:9px;letter-spacing:1px}.mode-control{display:flex;background:#050d17bd;padding:4px;border:1px solid #e0e7ea42;border-radius:30px;backdrop-filter:blur(12px)}.mode-control button{border-radius:20px;padding:9px 12px;transition:background .2s,color .2s}.mode-control button[aria-pressed=true]{background:#e8e8e2;color:#0f2631}.mode-control button:disabled{opacity:.4;cursor:not-allowed}.experience-controls>button{height:37px;padding:0 13px;background:#050d17bd;border:1px solid #e0e7ea42;border-radius:30px;backdrop-filter:blur(12px)}.experience-controls>button:hover{border-color:var(--accent)}#motion-toggle{width:37px;padding:0;font-size:14px}#day-toggle[aria-pressed=true]{color:#bfe4ff}#fallback{position:fixed;inset:0;z-index:0;opacity:0;pointer-events:none;background:#050b12}#fallback img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:60% center}#fallbackB{opacity:0}body.is-fallback #fallback{opacity:1}body.is-fallback #stage{display:none}.island-entry{position:absolute;top:40%;left:0}.art-note{font-size:10px;line-height:1.9;color:#9fadb4;max-width:58ch;margin:25px 0 65px}.outro{padding-bottom:85px}.hud{font-size:8px}#skip-3d{font-size:10px;color:#c3c7c7;border-bottom:1px solid #ffffff44;padding:8px;margin-top:10px;letter-spacing:1px}.boot{transition:opacity .6s}.boot[hidden]{display:none}#render-notice{position:fixed;z-index:9;top:86px;right:var(--pad);max-width:300px;padding:10px 14px;font-size:10px;line-height:1.7;color:#d2dde0;background:#061421ce;border:1px solid #dcefff28;border-radius:3px}#render-notice[hidden]{display:none}dialog{width:min(1200px,94vw);max-width:94vw;max-height:94svh;border:1px solid #ffffff36;border-radius:4px;background:#08141d;color:#eef4f5;padding:24px;box-shadow:0 10px 100px #0009}dialog::backdrop{background:#000d;backdrop-filter:blur(15px)}body:has(dialog[open]){overflow:hidden}.gallery-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.gallery-head h2{font-size:16px;font-weight:400;letter-spacing:1px}.gallery-head p{font-size:9px;color:#a7b8be;margin-top:9px}.gallery-head>button{font-size:27px;padding:2px 12px}.gallery-foot{display:flex;align-items:center;justify-content:center;gap:28px;margin-top:15px;font-size:11px}.gallery-foot button{font-size:20px;padding:5px 20px;border:1px solid #ffffff36;border-radius:25px}#gallery-image{display:block;width:100%;height:calc(85svh - 140px);object-fit:contain}.rail-item{color:#a5b3b9}.rail-item:focus b{opacity:1}body.is-paused .dot,body.is-paused .cue-line:after,body.is-paused .boot-mark{animation:none}
@media(max-width:900px){.stage{max-width:75vw}.panel{padding-bottom:17vh}.title{font-size:clamp(29px,4.5vw,40px);margin-bottom:18px}.lead{font-size:13px;max-width:45ch}.specs{margin-top:20px}.art-link{margin-top:14px}.experience-controls{gap:6px}.mode-control button{padding:8px 10px}.hud{bottom:85px}.rail{right:25px}}
@media(max-width:640px){.chrome{padding-top:24px}.brand-name small{display:block;margin:7px 0 0;font-size:7px}.chrome-meta{font-size:8px;letter-spacing:1px}.stage{max-width:calc(100vw - 2*var(--pad))}.panel{padding-bottom:19vh}.display{font-size:clamp(42px,11vw,62px)}.title{font-size:31px;line-height:1.25}.lead{font-size:12px;line-height:1.85}.eyebrow{font-size:8px;margin-bottom:19px}.specs{max-width:100%;margin-top:17px}.specs>div{grid-template-columns:52px 1fr;font-size:9px;padding:8px 0;gap:12px}.cue{font-size:9px;margin-top:28px}.experience-controls{right:20px;left:20px;justify-content:center;bottom:max(20px,env(safe-area-inset-bottom));gap:7px;font-size:8px;letter-spacing:0}.experience-controls>button{padding:0 10px;height:34px}.mode-control button{padding:8px 10px}#motion-toggle{width:34px}.rail{top:100px;left:var(--pad);right:auto;transform:none;flex-direction:row;gap:17px;align-items:center;padding:0}.rail-item{display:inline-flex;font-size:9px}.rail-item b{display:none}.rail-line{display:none}.art-link{font-size:9px;margin-top:12px;padding:8px 0}.outro{padding-top:140px;padding-bottom:85px}.outro-title{font-size:36px}.art-note{font-size:9px;margin-bottom:35px}.foot{font-size:8px;margin-top:45px;gap:14px}.ledger{grid-template-columns:1fr 1fr}.ledger li{font-size:9px}.backtop{font-size:9px}.fx-grain{inset:8px}#render-notice{top:130px;font-size:9px;max-width:245px;right:20px}dialog{padding:17px}.gallery-head h2{font-size:14px}.gallery-head p{font-size:8px}#gallery-image{height:calc(83svh - 125px)}.gallery-foot{gap:18px}.art-note{max-width:none}}
@media(max-height:700px) and (min-width:641px){.title{font-size:36px}.lead{font-size:12px;line-height:1.7}.specs{margin-top:20px}.panel{padding-top:45px}.eyebrow{margin-bottom:20px}}

.experience-controls button:disabled{opacity:.4;cursor:not-allowed}body.is-fallback .stage-brief{visibility:visible}
@media(max-width:640px){.specs{display:none}.panel{padding-bottom:19vh}.art-link{margin-top:18px}}

/* Six chapters: keep the 3D stage full-screen and make its artwork clickable. */
.rail-item b{opacity:.62;transform:none}.rail-item{min-height:26px;align-items:center}.rail-item.is-on b{opacity:1}
.chapter-note{margin-top:24px;color:#c9b4a8;font-size:10px;line-height:1.8;letter-spacing:.08em}
#photo-ui{position:fixed;z-index:5;left:52vw;top:22vh;width:36vw;height:48vh;pointer-events:none}
#photo-ui[hidden]{display:none}#photo-hit{position:absolute;inset:0;width:100%;height:100%;pointer-events:auto;border-radius:12px}
#photo-hit>span{position:absolute;left:50%;bottom:10px;transform:translateX(-50%);white-space:nowrap;font-size:9px;letter-spacing:.1em;color:#fff;background:#061320bd;border:1px solid #ffffff2e;padding:9px 13px;border-radius:25px;opacity:0;transition:opacity .2s}
#photo-hit:hover>span,#photo-hit:focus-visible>span{opacity:1}.photo-meta{position:absolute;top:calc(100% + 16px);width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;text-shadow:0 1px 10px #000;pointer-events:auto}
#photo-title{font-size:11px;line-height:1.6;letter-spacing:.08em}#photo-caption{font-size:8px;line-height:1.6;color:#b0bec6;margin-top:4px;max-width:36ch}.photo-actions{display:flex;align-items:center;gap:7px;flex-shrink:0;font-size:9px}.photo-actions button{height:32px;min-width:32px;border:1px solid #ffffff47;border-radius:50%;background:#07131daa;font-size:15px}.photo-actions button:hover{border-color:var(--accent)}.photo-actions button:disabled{opacity:.28;cursor:default}#photo-count{font-variant-numeric:tabular-nums;white-space:nowrap}
#gallery-image-button{display:block;width:100%;padding:0}#gallery-image-button:disabled{cursor:default}.gallery-foot button:disabled{opacity:.25;cursor:default}

@media(max-width:1100px) and (min-width:901px){.photo-meta{flex-direction:column;align-items:flex-start;gap:9px}#photo-caption{max-width:45ch}}
@media(max-width:900px){
  #photo-ui{left:5vw;top:21vh;width:90vw;height:28vh}
  .photo-meta{top:calc(100% + 10px);gap:10px;max-width:100%}#photo-title{font-size:10px}#photo-caption{font-size:8px;max-width:42ch}
  #photo-hit>span{opacity:1;font-size:8px;padding:6px 9px;bottom:7px}.photo-actions{gap:6px;font-size:8px}.photo-actions button{height:28px;min-width:28px;font-size:13px}
  .panel{align-content:end;padding-top:0;padding-bottom:16svh}.stage{max-width:min(620px,90vw)}.title{font-size:30px;margin-bottom:14px}.display{font-size:50px;margin-bottom:20px}.lead{font-size:12px;max-width:58ch;line-height:1.8}.specs{display:none}.eyebrow{margin-bottom:14px}.art-link{margin-top:12px}.chapter-note{margin-top:14px;font-size:9px}

  .hud{display:none}.rail{top:91px;left:var(--pad);right:var(--pad);transform:none;flex-direction:row;justify-content:space-between;padding:0;gap:0}.rail-line{display:none}.rail-item{font-size:9px;gap:8px;min-height:36px}.rail-item b{display:block}
}
@media(max-width:640px){
  .panel{padding-bottom:15svh}.stage{max-width:100%}.title{font-size:27px;line-height:1.2;margin-bottom:11px}.display{font-size:44px}.lead{font-size:11px;line-height:1.8}.eyebrow{font-size:8px;margin-bottom:12px}.cue{margin-top:20px}.art-link{font-size:9px;margin-top:10px}
  .rail{top:86px}.rail-item{min-width:36px;flex-direction:column;justify-content:center;gap:5px;font-size:8px;letter-spacing:.04em}.rail-item b{font-size:8px}
  .photo-meta{top:calc(100% + 8px);align-items:flex-start}#photo-title{font-size:9px}#photo-caption{font-size:7px;max-width:27ch}.photo-actions{gap:4px}.photo-actions button{min-width:26px;height:26px;font-size:12px}#photo-expand{display:none}
  .experience-controls{font-size:8px}.experience-controls>button{padding:0 10px}.mode-control button{padding:8px 11px}
}
@media(max-height:690px) and (max-width:900px){.title{font-size:23px}.lead{font-size:10px;line-height:1.65}.eyebrow{margin-bottom:8px}.art-link{margin-top:6px}.panel{padding-bottom:14svh}#photo-caption{display:none}.photo-meta{top:calc(100% + 6px)}.chapter-note{margin-top:8px}}

/* A short landscape viewport needs two columns, not a compressed phone stack.
   These exhibit bounds match the renderers' non-stacked camera layout. */
.chapter:focus,#top:focus,#outro:focus{outline:none}
#photo-ui.is-loading #photo-hit>span{opacity:1}
@media(max-width:900px) and (max-height:550px) and (orientation:landscape){
  .chrome{padding:12px var(--pad)}
  .brand-name small{display:inline-block;margin:0 0 0 9px;font-size:7px}
  .chrome-meta{font-size:8px;letter-spacing:1px}
  .rail{top:43px;left:var(--pad);right:var(--pad);gap:8px}
  .rail-item{min-width:0;min-height:24px;flex-direction:row;gap:5px;font-size:8px;letter-spacing:.04em}
  .rail-item b{font-size:8px}
  .panel{align-content:center;padding:78px var(--pad) 58px}
  .stage{width:42vw;max-width:42vw}
  .display{font-size:clamp(28px,4vw,36px);margin-bottom:12px}
  .title{font-size:clamp(20px,2.9vw,26px);line-height:1.18;margin-bottom:8px}
  .eyebrow{font-size:8px;line-height:1.3;gap:7px;letter-spacing:.14em;margin-bottom:7px}
  .lead{font-size:11px;line-height:1.55;max-width:100%}
  .art-link{font-size:9px;line-height:1.4;gap:18px;padding:6px 0;margin-top:7px}
  .art-link span{font-size:14px}
  .cue{font-size:8px;gap:9px;margin-top:14px;letter-spacing:.12em}
  .chapter-note{font-size:8px;line-height:1.5;margin-top:8px}
  #photo-ui{left:52vw;top:22vh;width:36vw;height:48vh}
  #photo-hit>span{font-size:7px;letter-spacing:.04em;padding:5px 8px;bottom:6px}
  .photo-meta{top:calc(100% + 6px);flex-direction:column;align-items:flex-start;gap:5px}
  #photo-title{font-size:9px;line-height:1.4;letter-spacing:.04em}
  #photo-caption{display:none}
  .photo-actions{font-size:8px;gap:6px}
  .photo-actions button{height:26px;min-width:26px;font-size:12px}
  #photo-expand{display:inline-flex;align-items:center;justify-content:center}

  .experience-controls{left:var(--pad);right:auto;bottom:max(8px,env(safe-area-inset-bottom));justify-content:flex-start;gap:6px;font-size:8px;letter-spacing:0}
  .experience-controls>button{height:30px;padding:0 9px}
  .mode-control{padding:3px}
  .mode-control button{padding:6px 9px}
  #motion-toggle{width:30px}

  #render-notice{top:77px;right:var(--pad);max-width:36vw;font-size:8px}
}

/* Keep the supplied logo intact; crop its outer whitespace only in layout.
   Screen blends the inverted white artwork into each scene without a box. */
.chrome{mix-blend-mode:screen}
.brand-logo{position:absolute;left:50%;top:clamp(14px,2.2vw,26px);transform:translateX(-50%);display:block;width:50px;aspect-ratio:36/29;overflow:hidden}
.brand-logo img{position:absolute;display:block;width:150%;max-width:none;height:auto;left:-25%;top:-44.827586%;filter:grayscale(1) invert(1) contrast(1.25);pointer-events:none}
@media(max-width:900px){
  .chrome{padding-top:20px}
  .brand-logo{width:35px}
}
@media(max-width:900px) and (max-height:550px) and (orientation:landscape){
  .chrome{padding-top:6px;padding-bottom:6px}
  .brand-logo{width:20px}
}

/* OpenAstra is a document foreground above the independent original shaders. */
#chapter-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none}
.mode-control button[hidden]{display:none}

/* Default OpenAstra foreground: the universe keeps rendering beneath it. */
#photo-ui [hidden]{display:none!important}
.foreground-head{position:absolute;inset:0 0 auto;display:flex;justify-content:space-between;gap:12px;align-items:center;height:28px;border-bottom:1px solid #ffffff38;font-size:9px;letter-spacing:.18em;text-shadow:0 1px 12px #000;color:#e4e9eb}
.foreground-head>span:first-child{color:var(--accent)}
#chapter-photo,#photo-hit{top:40px;height:calc(100% - 40px)}
#chapter-photo{filter:drop-shadow(0 10px 22px #0005)}
.concept-layer{position:absolute;inset:40px 0 0;display:flex;flex-direction:column;justify-content:flex-end;text-shadow:0 2px 18px #000a}
.universe-signature{padding:18px 0}
.world-wordmark{font-size:clamp(27px,3.9vw,63px);font-weight:300;letter-spacing:.045em;line-height:1.2}
.world-tagline{font-size:clamp(13px,1.3vw,20px);line-height:1.65;letter-spacing:.12em;margin-top:12px}
.world-gates{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:16px}
.world-gates>span{pointer-events:auto;display:flex;flex-direction:column;gap:12px;border-top:1px solid #ffffff55;padding:14px 0;background:linear-gradient(0deg,#0003,transparent);transition:color .2s,border-color .2s}
.world-gates a:hover{color:var(--accent);border-color:var(--accent)}
.world-gates small{font-size:8px;letter-spacing:.05em;color:#c6cfd4}
.world-gates span{font-size:11px;white-space:nowrap}
.mars-layer{justify-content:center;padding:12px 0}
.mars-heading>p{font-size:10px;letter-spacing:.18em;color:#ffcab4}
.mars-heading h3{margin:14px 0 20px;font-weight:300;font-size:clamp(24px,3vw,46px);line-height:1.3;letter-spacing:.07em}
.mars-vision{display:grid;gap:12px}
.mars-vision li{display:flex;gap:15px;align-items:flex-start;border-top:1px solid #ffffff2e;padding-top:10px}
.mars-vision i{font-style:normal;font-size:10px;color:var(--accent);padding-top:3px}
.mars-vision strong{display:block;font-size:12px;font-weight:400;letter-spacing:.12em}
.mars-vision span{display:block;font-size:9px;color:#c6cfd4;margin-top:5px;line-height:1.5}
.vision-caption{margin-top:18px;font-size:8px;letter-spacing:.12em;color:#c6cfd4}
@media(max-width:900px){
 .foreground-head{height:24px;font-size:8px}
 #chapter-photo,#photo-hit{top:32px;height:calc(100% - 32px)}
 .concept-layer{inset:32px 0 0}
 .universe-layer{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:end}
 .universe-signature{padding:0 0 8px}
 .world-wordmark{font-size:clamp(23px,5.5vw,42px)}.world-tagline{font-size:11px;margin-top:8px;line-height:1.5}
 .world-gates{display:flex;flex-direction:column;gap:0;margin:0}.world-gates>span{flex-direction:row;justify-content:space-between;padding:10px 0;gap:10px}.world-gates small{font-size:7px}.world-gates span{font-size:9px}
 .mars-layer{display:grid;grid-template-columns:1fr 1.2fr;gap:8px 26px;align-content:center;padding:0}.mars-heading>p{font-size:8px}.mars-heading h3{font-size:28px;margin:10px 0 0}.mars-vision{gap:6px}.mars-vision li{padding-top:6px;gap:9px}.mars-vision strong{font-size:10px}.mars-vision span{font-size:8px;margin-top:3px}.mars-vision i{font-size:8px}.vision-caption{grid-column:1 / -1;margin:2px 0 0;font-size:7px}
}
@media(max-width:480px){.universe-layer{gap:17px}.world-wordmark{font-size:23px}.world-tagline{font-size:10px}.world-gates>span{padding:10px 0}.world-gates small{display:none}.world-gates span{font-size:10px}.mars-layer{gap:9px 15px}.mars-heading h3{font-size:25px}}
@media(max-height:690px) and (max-width:900px){.mars-vision span{display:none}.mars-vision li{padding-top:6px}.mars-heading h3{font-size:23px}.world-gates>span{padding:8px 0}.world-wordmark{font-size:24px}}
@media(max-width:900px) and (max-height:550px) and (orientation:landscape){
 .foreground-head{font-size:7px;height:20px}#chapter-photo,#photo-hit{top:27px;height:calc(100% - 27px)}.concept-layer{inset:27px 0 0}
 .universe-layer{display:flex;gap:0}.universe-signature{padding:0}.world-wordmark{font-size:27px}.world-tagline{font-size:10px}.world-gates{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-top:12px}.world-gates>span{padding:8px 0;display:block}.world-gates small{display:none}.world-gates span{font-size:8px}
 .mars-layer{display:grid;grid-template-columns:1fr 1fr;gap:9px}.mars-heading>p{font-size:7px}.mars-heading h3{font-size:24px}.mars-vision strong{font-size:9px}.mars-vision span{display:none}.vision-caption{font-size:7px}
}

/* ── site navigation: 首页 / 关于 / 产品 / 照片 / 合作 + 中·EN ────────────────
   Lives inside .chrome (pointer-events:none) — each item re-enables itself.
   Current/hover indicator is a 1px accent underline, same language as the rail. */
.site-nav{display:flex;align-items:center;gap:clamp(16px,2.4vw,34px)}
.site-nav-item{position:relative;pointer-events:auto;padding:7px 0;font-family:var(--f-mono);font-size:13px;letter-spacing:.22em;color:var(--dim);transition:color .35s var(--ease)}
.site-nav-item:hover{color:var(--fg)}
.site-nav-item::after{content:"";position:absolute;left:0;right:100%;bottom:0;height:1px;background:var(--accent);transition:right .35s var(--ease)}
.site-nav-item:hover::after{right:0}
.site-nav-item.is-current{color:var(--fg)}
.site-nav-item.is-current::after{right:0}
.chrome-side{display:inline-flex;align-items:center;gap:clamp(14px,1.7vw,26px)}
.chrome-side .atlas-entry{margin:0}
.lang-toggle{pointer-events:auto;display:inline-flex;align-items:center;gap:6px;padding:7px 0;font-family:var(--f-mono);font-size:11.5px;letter-spacing:.12em;color:var(--dimmer)}
.lang-toggle i{font-style:normal;opacity:.55}
.lang-toggle span[aria-pressed="true"]{color:var(--fg)}
.lang-toggle:hover span{color:var(--dim)}

/* About / partnership pages reuse the atlas dialog shell. */
.page-dialog{width:min(760px,94vw);overflow:auto}
.page-dialog .gallery-head{align-items:flex-start}
.page-dialog .page-body{display:grid;gap:24px;max-width:62ch;margin-top:4px}
.page-dialog .page-lead{font-size:13px;line-height:1.95;color:#d9e2e5}
.page-facts{display:grid;border-top:1px solid #ffffff22}
.page-facts>div{display:grid;grid-template-columns:92px 1fr;gap:14px;padding:11px 0;border-bottom:1px solid #ffffff22;font-family:var(--f-mono);font-size:10px;letter-spacing:.1em}
.page-facts dt{color:#8d9fac}
.page-facts dd{color:#eef4f5;opacity:.88}
.page-list{display:grid;gap:13px}
.page-list li{display:flex;gap:15px;align-items:flex-start;border-top:1px solid #ffffff20;padding-top:11px}
.page-list i{font-style:normal;font-family:var(--f-mono);font-size:10px;color:var(--accent);padding-top:3px}
.page-list strong{display:block;font-size:12px;font-weight:400;letter-spacing:.1em}
.page-list span{display:block;font-size:10px;color:#a7b8be;margin-top:5px;line-height:1.6}
.page-mail{justify-self:start;font-family:var(--f-mono);font-size:11px;letter-spacing:.14em;color:var(--accent);border-bottom:1px solid #ffffff3a;padding-bottom:7px}
.page-mail:hover{border-color:var(--accent)}
.page-note{font-size:10px;line-height:1.8;color:#8d9fac;max-width:56ch}
.product-link{display:inline-block;margin-top:10px;font-family:var(--f-mono);font-size:10px;letter-spacing:.16em;color:var(--accent);text-decoration:none;border-bottom:1px solid #ffffff3a;padding-bottom:5px}
.product-link:hover{border-color:var(--accent)}
.media-matrix{display:flex;align-items:center;gap:2px;background:#050d17bd;border:1px solid #e0e7ea42;border-radius:30px;backdrop-filter:blur(12px);padding:4px 8px}
.media-matrix a{display:flex;align-items:center;justify-content:center;width:29px;height:29px;border-radius:50%;color:#c9d6db;opacity:.72;transition:opacity .2s,color .2s}
.media-matrix a:hover{opacity:1;color:var(--accent)}
.media-matrix svg{width:15px;height:15px}

/* 来函表单（合作页 → contact-dialog） */
.page-mail-btn{background:none;border:0;border-bottom:1px solid #ffffff3a;padding:0 0 7px;cursor:pointer}
.contact-dialog{width:min(620px,94vw)}
.contact-banner{margin:6px 0 2px;border:1px solid #ffffff1f;overflow:hidden}
.contact-banner img{display:block;width:100%;height:auto}
.contact-form{display:grid;gap:18px;margin-top:8px}
.contact-field{display:grid;gap:8px}
.contact-field>span{font-family:var(--f-mono);font-size:10px;letter-spacing:.2em;color:#8d9fac}
.contact-field input,.contact-field textarea{width:100%;box-sizing:border-box;background:#ffffff08;border:1px solid #ffffff2a;color:var(--fg);font-size:13px;line-height:1.7;padding:11px 13px;outline:none;resize:vertical;transition:border-color .3s var(--ease)}
.contact-field input:focus,.contact-field textarea:focus{border-color:var(--accent)}
.contact-field ::placeholder{color:#5f7079}
.contact-submit{justify-self:start;background:none;border:1px solid #ffffff3a;color:var(--accent);font-family:var(--f-mono);font-size:11px;letter-spacing:.16em;padding:11px 22px;cursor:pointer;transition:border-color .3s var(--ease),color .3s var(--ease)}
.contact-submit:hover{border-color:var(--accent);color:var(--fg)}
.contact-submit:disabled{opacity:.45;cursor:wait}
#contact-hint:empty{display:none}

/* 故事弹层：系列 + 逐篇上架的故事槽位 */
.story-series{display:grid;gap:13px}
.story-series h3{display:flex;gap:15px;align-items:flex-start;margin:0;border-top:1px solid #ffffff20;padding-top:13px}
.story-series i{font-style:normal;font-family:var(--f-mono);font-size:10px;color:var(--accent);padding-top:3px}
.story-series strong{display:block;font-size:12px;font-weight:400;letter-spacing:.1em}
.story-series span{display:block;font-size:10px;color:#a7b8be;margin-top:5px;line-height:1.6}
.story-empty{margin:0 0 0 25px;padding:10px 13px;border:1px dashed #ffffff24;font-family:var(--f-mono);font-size:10px;letter-spacing:.14em;color:#5f7079}

@media(max-width:900px){
  .site-nav{gap:14px}
  .site-nav-item{font-size:9px;letter-spacing:.14em}
  .chrome-side .atlas-entry{display:none}
  .lang-toggle{font-size:9px}
  .page-dialog .page-lead{font-size:11px}
  .page-facts>div{grid-template-columns:64px 1fr;font-size:9px}
}
@media(max-width:640px){.site-nav{display:none}}

/* ── 北辰 2026-10-20：01 创世岛 / 03 居民 / 06 火星 改为图左文右，不挡画面 ── */
@media (min-width: 641px) {
  body[data-chapter="1"] #photo-ui,
  body[data-chapter="3"] #photo-ui,
  body[data-chapter="6"] #photo-ui {
    left: 10vw;
    right: auto;
  }
  body[data-chapter="1"] .panel,
  body[data-chapter="3"] .panel,
  body[data-chapter="6"] .panel {
    justify-items: end;
    padding-right: var(--pad);
    padding-left: clamp(var(--pad), 14vw, 200px);
  }
}

/* ── 北辰 2026-10-20：宽屏下图左章节的图卡与右侧文字共用一条底部基线 ── */
@media (min-width: 901px) {
  body[data-chapter="1"] #photo-ui,
  body[data-chapter="3"] #photo-ui,
  body[data-chapter="6"] #photo-ui {
    top: auto;
    bottom: clamp(70px, 12svh, 130px);
    transform: none;
  }
  body[data-chapter="1"] .panel,
  body[data-chapter="3"] .panel,
  body[data-chapter="6"] .panel {
    align-content: end;
    padding-bottom: clamp(70px, 12svh, 130px);
  }
}

@media(max-width:640px){.brand-logo{width:22px;top:16px}}
