:root{color-scheme:light;--paper:#f2f0ea;--ink:#24231f;--muted:#756f65;--line:rgba(45,42,36,.13);--blue:#315f78;--serif:"Songti SC","STSong",serif;--sans:"Inter","PingFang SC","Microsoft YaHei",system-ui,sans-serif;--mono:"SFMono-Regular","Consolas",monospace}
*{box-sizing:border-box}html{background:var(--paper)}body{margin:0;color:var(--ink);font-family:var(--sans);background:linear-gradient(rgba(95,82,61,.02) 1px,transparent 1px),var(--paper);background-size:100% 32px}a{color:inherit}.topbar{height:64px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 32px;border-bottom:1px solid var(--line);background:rgba(242,240,234,.84);backdrop-filter:blur(18px);position:sticky;top:0;z-index:10}.brand{display:inline-flex;align-items:center;gap:10px;text-decoration:none;width:max-content}.brand span{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#263d48;color:#fff;font-family:var(--serif)}.brand strong{font-family:var(--serif);font-size:15px;letter-spacing:.06em}.topbar nav{display:flex;gap:24px}.topbar nav a{text-decoration:none;font-size:11px;color:var(--muted);padding:22px 0 18px;border-bottom:1px solid transparent}.topbar nav a:hover{color:var(--ink);border-color:var(--blue)}.universe-link{justify-self:end;text-decoration:none;font-size:10px;padding:8px 12px;border:1px solid var(--line);border-radius:999px}.hero{position:relative;min-height:72vh;display:flex;align-items:flex-end;overflow:hidden}.hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(13,18,20,.82),rgba(13,18,20,.46) 50%,rgba(13,18,20,.1)),linear-gradient(0deg,rgba(9,13,15,.65),transparent 55%)}.hero-copy{position:relative;z-index:1;width:min(1240px,calc(100% - 64px));margin:0 auto;padding:80px 0;color:#fff}.hero-copy>p,.index{font-family:var(--mono);font-size:9px;letter-spacing:.13em}.hero h1{margin:18px 0 16px;font-family:var(--serif);font-size:clamp(72px,11vw,146px);font-weight:500;letter-spacing:-.08em;line-height:.9}.hero blockquote{margin:0;font-family:var(--serif);font-size:clamp(18px,2.3vw,28px);color:rgba(255,255,255,.85)}.hero-meta{display:flex;gap:24px;margin-top:32px;font-size:10px;color:rgba(255,255,255,.72)}main{min-height:100vh}.intro{width:min(1240px,calc(100% - 64px));margin:0 auto;padding:120px 0;display:grid;grid-template-columns:150px minmax(0,1.2fr) minmax(280px,.8fr);gap:38px;border-bottom:1px solid var(--line)}.index{color:#8d877e;margin:0}.intro h2{margin:0;font-family:var(--serif);font-size:clamp(38px,5vw,64px);font-weight:500;line-height:1.25;letter-spacing:-.04em}.intro>p:last-child{margin:8px 0 0;color:var(--muted);line-height:1.9;font-size:13px}.directory{width:min(1240px,calc(100% - 64px));margin:0 auto;padding:40px 0 100px}.directory>a{display:grid;grid-template-columns:80px minmax(0,1fr) 40px;align-items:center;min-height:126px;border-bottom:1px solid var(--line);text-decoration:none;transition:padding .2s,background .2s}.directory>a:hover{padding-left:14px;background:rgba(255,255,255,.22)}.directory>a>span{font-family:var(--serif);font-size:24px;color:var(--blue)}.directory h3{margin:0;font-family:var(--serif);font-size:28px;font-weight:500}.directory p{margin:7px 0 0;color:var(--muted);font-size:12px}.directory b{font-weight:400;text-align:right}.quick-links{width:min(1240px,calc(100% - 64px));margin:0 auto 100px;padding:40px 0;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:flex-end}.quick-links h2{font-family:var(--serif);font-size:36px;font-weight:500;margin:9px 0 0}.quick-links nav{display:flex;gap:22px}.quick-links a{font-size:11px;text-decoration:none;border-bottom:1px solid var(--line);padding-bottom:5px}footer{display:flex;justify-content:space-between;padding:24px 32px;border-top:1px solid var(--line);font-size:9px;color:var(--muted)}
@media(max-width:800px){.topbar{grid-template-columns:1fr auto;padding:0 16px}.topbar nav{display:none}.hero-copy,.intro,.directory,.quick-links{width:calc(100% - 36px)}.hero-copy{padding-bottom:48px}.hero-meta{flex-wrap:wrap}.intro{grid-template-columns:1fr;padding:80px 0;gap:18px}.directory>a{grid-template-columns:50px 1fr 24px;min-height:112px}.directory h3{font-size:24px}.quick-links{display:block}.quick-links nav{margin-top:30px;flex-wrap:wrap}footer{padding:20px 18px;display:grid;gap:7px}}

/* Universe ↔ Wiki continuity */
.world-arrival{position:fixed;z-index:200;inset:0;display:grid;place-items:center;overflow:hidden;background:#02050a;opacity:0;visibility:hidden;pointer-events:none;transition:opacity 1s cubic-bezier(.22,.75,.2,1),visibility 0s 1s}
.from-universe .world-arrival,.world-arrival.departing{opacity:1;visibility:visible;pointer-events:auto;transition:none}
.arrival-stars{position:absolute;inset:-12%;background-image:radial-gradient(circle,#fff 0 1px,transparent 1.2px);background-size:61px 61px;opacity:.13;transform:scale(2.8)}
.arrival-horizon{position:absolute;left:50%;top:57%;width:62vmax;height:62vmax;border-radius:50%;transform:translate(-50%,-16%) scale(2.65);background:radial-gradient(circle at 38% 30%,rgba(255,255,255,.9),#487f9d 17%,#143343 48%,#050b10 77%);box-shadow:0 0 10vmax rgba(74,133,167,.5)}
.arrival-copy{position:relative;z-index:2;display:grid;gap:10px;text-align:center;color:#fff;opacity:.9}.arrival-copy small{font:8px var(--mono);letter-spacing:.22em;color:rgba(255,255,255,.55)}.arrival-copy strong{font-family:var(--serif);font-size:clamp(42px,7vw,86px);font-weight:500;letter-spacing:.05em}
body.arrival-reveal .world-arrival{opacity:0;visibility:hidden;transition:opacity 1.15s .12s cubic-bezier(.22,.75,.2,1),visibility 0s 1.4s}
body.arrival-reveal .arrival-horizon{transform:translate(-50%,8%) scale(.72);transition:transform 1.35s cubic-bezier(.18,.74,.18,1)}
body.arrival-reveal .arrival-stars{transform:scale(1);opacity:0;transition:transform 1.35s cubic-bezier(.18,.74,.18,1),opacity 1s}
body.arrival-reveal .arrival-copy{opacity:0;transform:translateY(-16px);transition:opacity .55s,transform .7s}
.world-arrival.departing{transition:opacity .25s}.world-arrival.departing .arrival-horizon{transform:translate(-50%,-14%) scale(.18);opacity:.2}.world-arrival.departing.run .arrival-horizon{transform:translate(-50%,-14%) scale(3.1);opacity:1;transition:transform 1s cubic-bezier(.2,.76,.18,1),opacity .18s}.world-arrival.departing .arrival-stars{transform:scale(1);opacity:.08}.world-arrival.departing.run .arrival-stars{transform:scale(3);opacity:.18;transition:transform 1s cubic-bezier(.2,.76,.18,1),opacity .3s}.world-arrival.departing .arrival-copy{opacity:0}.world-arrival.departing.run .arrival-copy{opacity:1;transition:opacity .35s .1s}
@media(max-width:700px){.arrival-horizon{width:78vmax;height:78vmax}.arrival-copy strong{font-size:44px}}

/* v6.1 · never scale the transition backing layer inside the mobile viewport */
.world-arrival{inset:0!important;width:100dvw;height:100dvh;min-width:100%;min-height:100%;transform:none!important;background:#02050a;contain:paint}
body.arrival-reveal .arrival-horizon{transform:translate(-50%,-5%) scale(1.28);transition:transform 1.5s cubic-bezier(.18,.74,.18,1)}
body.arrival-reveal .world-arrival{opacity:0;visibility:hidden;transition:opacity 1.3s .08s cubic-bezier(.22,.75,.2,1),visibility 0s 1.45s}
.world-arrival.departing.run .arrival-horizon{transform:translate(-50%,-14%) scale(3.45);opacity:1;transition:transform 1.22s cubic-bezier(.2,.76,.18,1),opacity .18s}
.world-arrival.departing.run .arrival-stars{transform:scale(3.45);opacity:.18;transition:transform 1.22s cubic-bezier(.2,.76,.18,1),opacity .3s}

/* v7 — one animation director: GSAP. The overlay remains viewport-sized while
   only its internal planet/star layers scale. */
.gsap-motion .world-arrival,
.gsap-motion .arrival-horizon,
.gsap-motion .arrival-stars,
.gsap-motion .arrival-copy,
.gsap-motion .topbar,
.gsap-motion main,
.gsap-motion footer{transition:none!important}
.gsap-motion .world-arrival{will-change:opacity;transform:none!important}
.gsap-motion .arrival-horizon,.gsap-motion .arrival-stars,.gsap-motion .arrival-copy{will-change:transform,opacity}
