:root {
  color-scheme: dark;
  color: #d3d9df;
  background: #100f13;
  font-family: "Microsoft YaHei", "PingFang SC", sans-serif;
  --portal-x: 66vw; --portal-y: 46vh; --portal-radius: 0px; --portal-inner: 0px; --portal-glow: 0;
}
* { box-sizing: border-box; }
body { margin: 0; min-width: 280px; }
a { color: inherit; text-decoration: none; -webkit-tap-highlight-color: transparent; }
[hidden] { display: none !important; }
.atlas {
  position: fixed; inset: 0; overflow: hidden; min-height: 320px; isolation: isolate;
  background: radial-gradient(ellipse at 50% 105%, #61503b55, transparent 57%), radial-gradient(ellipse at 50% 43%, #292b35, #15141a 58%, #0d0c10);
}
.atlas-ambient { position: absolute; inset: 0; pointer-events: none; background: radial-gradient(ellipse at 9% 40%,#755c3420,transparent 29%),radial-gradient(ellipse at 88% 70%,#85704a18,transparent 34%); }
.atlas-ambient::after { content: ""; position: absolute; inset: 0; opacity: .13; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23fff' filter='url(%23n)' opacity='.35' d='M0 0h180v180H0z'/%3E%3C/svg%3E"); }
.atlas-header { position: absolute; top: max(30px,env(safe-area-inset-top)); left: clamp(24px,4.2vw,80px); right: clamp(24px,4.2vw,80px); display: flex; align-items: center; gap: 26px; z-index: 3; }
.atlas-back { display: inline-flex; align-items: center; gap: 8px; padding-right: 24px; min-height: 44px; border-right: 1px solid #c6b89b29; color: #b9b6af; font-size: 12px; letter-spacing: .1em; }
.atlas-back svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.2; }
.atlas-wordmark { display: grid; gap: 7px; }
.atlas-wordmark > span { font-size: 13px; letter-spacing: .24em; color: #d0c5ae; }
.atlas-wordmark small { font-size: 8px; letter-spacing: .26em; color: #898478; }
.atlas-coordinate { margin-left: auto; color: #978f80; font-family: "Songti SC", "STSong", "SimSun", serif; font-size: 12px; letter-spacing: .23em; }
.atlas-coordinate i { margin: 0 14px; font-style: normal; color: #b9ad95; }

/* A full-size painted surface is uncovered by two travelling rollers. Nothing is stretched. */
.atlas-scroll {
  --roller-width: clamp(34px,4vw,60px); --fold: 0%; --left-roll: 0%; --right-roll: 100%; --ink-opacity: 1; --unroll-scale: 1; --unroll-tilt: 0deg;
  position: absolute; left: 50%; top: 51%; width: min(82vw,1460px); height: min(62dvh,720px);
  transform: translate(-50%,-50%) perspective(1500px) rotateX(var(--unroll-tilt)) scale(var(--unroll-scale));
  transform-style: preserve-3d;
}
.atlas-scripted .atlas:not([data-scroll-state="open"]) .atlas-scroll { --fold: 50%; --left-roll: 50%; --right-roll: 50%; --ink-opacity: .12; --unroll-scale: .92; --unroll-tilt: 7deg; }
.atlas-scroll-shadow { position: absolute; inset: 7% -1% -5%; background: #020509; border-radius: 35%; filter: blur(32px); opacity: .8; transform: translateY(22px) scaleX(var(--shadow-scale,1)); pointer-events: none; }
.atlas-paper-reveal { position: absolute; inset: -3px 0; clip-path: inset(-8px var(--fold) -8px var(--fold)); }
.atlas-scroll-surface {
  --entry-x: 64%; --entry-y: 44%; position: absolute; inset: 0; isolation: isolate; overflow: hidden; background: #0b1422;
  clip-path: polygon(0 .55%,3% .2%,8% .65%,14% .3%,21% .85%,28% .15%,35% .45%,42% .15%,50% .65%,58% .2%,64% .5%,72% .1%,79% .7%,86% .3%,93% .6%,100% .15%,100% 99.4%,95% 99.85%,88% 99.4%,81% 99.7%,74% 99.35%,66% 99.9%,58% 99.5%,50% 99.8%,43% 99.4%,36% 99.85%,28% 99.4%,21% 99.8%,14% 99.45%,7% 99.9%,0 99.5%);
  box-shadow: inset 0 0 50px #000c;
}
.atlas-canvas { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; opacity: var(--ink-opacity); }
.atlas-silk { position: absolute; inset: 0; pointer-events: none; z-index: 1; opacity: .76; background: linear-gradient(90deg,#060b18b0,transparent 4%,#b6cfe104 17%,transparent 28%,#00000012 48%,transparent 61%,#95b3d506 80%,transparent 96%,#010612b3),linear-gradient(180deg,#bea67b4d 0,transparent 2px,#11161966 1%,transparent 5%,transparent 94%,#14192299 98%,#c1aa6c55 99.6%,#010511 100%),repeating-linear-gradient(0deg,transparent 0 3px,#a0adbe04 3px 4px),repeating-linear-gradient(90deg,transparent 0 4px,#748ba005 4px 5px); box-shadow: inset 0 0 28px #0008; }
.atlas-map-border { position: absolute; inset: 15px 18px; border: 1px solid #b7a17532; pointer-events: none; z-index: 1; }
.atlas-map-border::before { content: ""; position: absolute; inset: 4px; border: 1px solid #b7a17517; }
.atlas-map-border i { position: absolute; width: 17px; height: 17px; border: 1px solid #b1a58372; }
.atlas-map-border i:nth-child(1) { top: -1px; left: -1px; border-right: 0; border-bottom: 0; }
.atlas-map-border i:nth-child(2) { top: -1px; right: -1px; border-left: 0; border-bottom: 0; }
.atlas-map-border i:nth-child(3) { bottom: -1px; left: -1px; border-right: 0; border-top: 0; }
.atlas-map-border i:nth-child(4) { bottom: -1px; right: -1px; border-left: 0; border-top: 0; }
.atlas-title { position: absolute; left: 4.8%; top: 8%; z-index: 1; display: flex; flex-direction: row-reverse; align-items: flex-start; gap: 12px; pointer-events: none; color: #d1c8ae; text-shadow: 0 2px 14px #030914; opacity: var(--ink-opacity); }
.atlas-title h1 { margin: 0; writing-mode: vertical-rl; font-family: "KaiTi", "STKaiti", "Songti SC", "SimSun", serif; font-size: clamp(30px,3vw,46px); font-weight: 400; letter-spacing: .26em; line-height: 1.25; }
.atlas-kicker { margin: 2px 0 0; padding: 10px 5px; writing-mode: vertical-rl; font-family: "KaiTi", "SimSun", serif; font-size: 10px; letter-spacing: .24em; border: 1px solid #a78f5d55; color: #b8a277; }
.atlas-subtitle { margin: 4px 0 0; writing-mode: vertical-rl; font-family: "KaiTi", "STKaiti", "SimSun", serif; font-size: 11px; letter-spacing: .3em; line-height: 1.8; color: #acac9f; }
.atlas-seal { position: absolute; top: calc(100% + 20px); right: 38px; border: 1px solid #a76753b3; padding: 4px 5px; font-family: "KaiTi", "SimSun", serif; color: #b97560; line-height: 1.1; font-size: 14px; opacity: .75; transform: rotate(-4deg); }
.atlas-colophon { position: absolute; bottom: 4.8%; right: 4.5%; margin: 0; font-family: "KaiTi", "STKaiti", "SimSun", serif; font-size: 11px; letter-spacing: .3em; color: #b6aa8c8c; z-index: 1; pointer-events: none; }

/* Dark jade shafts, tarnished brass collars and turned wooden finials. */
.atlas-roller { position: absolute; top: -29px; bottom: -29px; width: var(--roller-width); z-index: 3; pointer-events: none; filter: drop-shadow(7px 8px 9px #0009); }
.atlas-roller--left { left: var(--left-roll); transform: translateX(-87%); }
.atlas-roller--right { left: var(--right-roll); transform: translateX(-13%); }
.atlas-roller-body { position: absolute; inset: 14px 4px; border-radius: 45% / 2%; overflow: hidden; background: linear-gradient(90deg,#070d10,#192b30 15%,#3d4d4b 29%,#273b3d 46%,#142729 67%,#050b10 91%,#02070c); border: 1px solid #62645644; box-shadow: inset 2px 0 3px #b4ac8466,inset -3px 0 5px #000b; }
.atlas-roller-body::before { content: ""; position: absolute; inset: 0; background: radial-gradient(ellipse at 30% 19%,#9ba29838,transparent 14%),radial-gradient(ellipse at 68% 63%,#8fae9c29,transparent 21%),repeating-linear-gradient(2deg,transparent 0 35px,#d8b97809 36px,transparent 37px 69px),linear-gradient(90deg,transparent,#fff1,transparent 55%); }
.atlas-roller-body i { position: absolute; inset: 4% 24%; border: 1px solid #b9b48220; border-radius: 40% / 3%; }
.atlas-roller-body i::before, .atlas-roller-body i::after { content: "◇"; position: absolute; left: 50%; transform: translateX(-50%); color: #a7a77b46; font-size: 23px; }
.atlas-roller-body i::before { top: 9%; }.atlas-roller-body i::after { bottom: 9%; }
.atlas-roller-collar { position: absolute; height: 32px; left: -1px; right: -1px; z-index: 2; border-radius: 42% / 12%; background: linear-gradient(0deg,#28281e 0,#a89a6a 5%,#4e503b 11%,#9a977b 17%,#6c705b 24%,#323b35 65%,#a0a183 87%,#333b30 94%,#b4a377 98%,#242e27); box-shadow: inset 3px 0 4px #f0d99c24,inset -10px 0 11px #000b,0 3px 5px #0009; }
.atlas-roller-collar::after { content: ""; position: absolute; inset: 7px 5px; border-top: 1px solid #dccea729; border-bottom: 1px solid #222d2a66; background: repeating-linear-gradient(90deg,transparent 0 6px,#d1c38e10 7px,transparent 8px 12px); }
.atlas-roller-collar--top { top: 3px; }.atlas-roller-collar--bottom { bottom: 3px; }
.atlas-roller-finial { position: absolute; left: 9%; right: 9%; height: 39px; border-radius: 48% 48% 35% 35%; background: linear-gradient(90deg,#080b0b,#42463a 25%,#232b25 52%,#070d0d 87%); box-shadow: inset 0 4px 2px #9290794d,0 -3px 2px #070b0b,inset 0 -6px 2px #080e0c; }
.atlas-roller-finial::before { content: ""; position: absolute; height: 11px; width: 26%; left: 37%; top: -7px; border-radius: 60% 60% 12% 12%; background: linear-gradient(90deg,#141b17,#676858 37%,#18201b 82%); }
.atlas-roller-finial::after { content: ""; position: absolute; top: 9px; left: 0; right: 0; height: 10px; border-radius: 50%; border-top: 2px solid #b6b09152; border-bottom: 3px solid #070b0b; }
.atlas-roller-finial--top { top: -29px; }.atlas-roller-finial--bottom { bottom: -29px; transform: rotate(180deg); }

.atlas-entry-star { position: absolute; left: var(--entry-x); top: var(--entry-y); width: 84px; height: 84px; transform: translate(-50%,-50%); display: grid; place-items: center; outline: none; z-index: 2; }
.atlas-entry-aura { position: absolute; inset: -30px; border-radius: 50%; background: radial-gradient(circle,#d8e8ff4d 0%,#a5baff24 16%,#748cf212 43%,transparent 70%); animation: atlas-star-breathe 3.4s ease-in-out infinite; pointer-events: none; }
.atlas-entry-core { width: 6px; height: 6px; border-radius: 50%; background: #f5fbff; box-shadow: 0 0 6px 2px #e0f4ff,0 0 18px 6px #7a9cf0b3,0 0 42px 12px #91a8ff47; animation: atlas-star-breathe 3.4s ease-in-out infinite; pointer-events: none; }
.atlas-entry-rays { position: absolute; width: 49px; height: 49px; pointer-events: none; background: linear-gradient(90deg,transparent 48.5%,#e7f6ffb3 50%,transparent 51.5%),linear-gradient(0deg,transparent 48.5%,#e7f6ffb3 50%,transparent 51.5%); mask-image: radial-gradient(circle,#000,transparent 67%); -webkit-mask-image: radial-gradient(circle,#000,transparent 67%); }
.atlas-entry-star:hover .atlas-entry-core, .atlas-entry-star:focus-visible .atlas-entry-core { box-shadow: 0 0 8px 3px #f2fbff,0 0 26px 11px #aabfff9c,0 0 60px 22px #809cfa38; }
.atlas-entry-star:focus-visible { outline: 1px solid #c0dfff80; outline-offset: 5px; border-radius: 50%; }
.atlas-star-caption { position: absolute; top: 81px; left: 50%; transform: translateX(-50%); display: grid; justify-items: center; gap: 9px; width: 150px; color: #d0dce9; white-space: nowrap; text-shadow: 0 2px 14px #03111f; transition: color .3s; }
.atlas-star-caption small { color: #a8a991; font-size: 9px; letter-spacing: .18em; }
.atlas-star-caption strong { font-family: "KaiTi", "STKaiti", "SimSun", serif; font-size: 23px; letter-spacing: .2em; font-weight: 400; }
.atlas-star-caption > span { color: #a0adc7; font-size: 10px; letter-spacing: .14em; }
.atlas-star-caption i { margin-left: 7px; font-style: normal; }.atlas-entry-star:hover .atlas-star-caption { color: #f5fbff; }
.atlas-opening-caption { position: absolute; bottom: 7%; left: 0; right: 0; text-align: center; font-family: "KaiTi", "SimSun", serif; font-size: 12px; letter-spacing: .3em; color: #ad9f84; pointer-events: none; opacity: 0; transition: opacity .5s; }
.atlas-opening-caption > span { font-size: 19px; }.atlas-opening-caption i { display: inline-block; width: 35px; height: 1px; margin: 0 18px; vertical-align: middle; background: #89755377; }
.atlas-scripted .atlas:not([data-scroll-state="open"]) .atlas-opening-caption { opacity: 1; }
.atlas-scripted .atlas:not([data-scroll-state="open"]) :is(.atlas-entry-star,.atlas-footer) { opacity: 0; pointer-events: none; }
.atlas-footer { position: absolute; bottom: max(24px,env(safe-area-inset-bottom)); left: clamp(24px,4.2vw,80px); right: clamp(24px,4.2vw,80px); display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; }
.atlas-hint { margin: 0 0 14px; color: #9d9a91; font-size: 10px; letter-spacing: .12em; }.atlas-hint > span { margin-right: 8px; color: #c3c8cc; font-size: 17px; vertical-align: -2px; }
.atlas-icp { color: #78736b; font-size: 9px; }
.atlas-index { color: #b0a58e; font-family: "Songti SC", "SimSun", serif; font-size: 12px; letter-spacing: .2em; white-space: nowrap; display: flex; align-items: center; gap: 16px; }
.atlas-index b { font-size: 28px; font-weight: 400; border-right: 1px solid #b2a17e3b; padding-right: 16px; }.atlas-index small { display: block; margin-top: 7px; color: #787567; font-family: sans-serif; font-size: 7px; letter-spacing: .18em; }
.atlas-status { position: absolute; left: 50%; bottom: 5%; transform: translateX(-50%); margin: 0; text-align: center; font-size: 11px; letter-spacing: .12em; color: #c7d9e8; z-index: 3; }.atlas-status:empty { display: none; }
.atlas-header,.atlas-title,.atlas-footer,.atlas-star-caption,.atlas-colophon,.atlas-entry-star { transition: opacity .6s ease; }
.atlas[data-phase="entering"] :is(.atlas-header,.atlas-title,.atlas-footer,.atlas-star-caption,.atlas-colophon),.atlas[data-phase="exhibit"] :is(.atlas-header,.atlas-title,.atlas-footer,.atlas-star-caption,.atlas-colophon) { opacity: 0; }
.atlas[data-phase="loading"] .atlas-entry-aura { transform: scale(1.3); }
.atlas[data-phase="exhibit"] * { animation-play-state: paused; }
.atlas-portal { position: fixed; inset: 0; z-index: 5; background: #160d10; mask-image: radial-gradient(circle at var(--portal-x) var(--portal-y),#000 0,#000 var(--portal-inner),transparent var(--portal-radius)); -webkit-mask-image: radial-gradient(circle at var(--portal-x) var(--portal-y),#000 0,#000 var(--portal-inner),transparent var(--portal-radius)); }
.atlas-portal.is-open { mask-image: none; -webkit-mask-image: none; }.atlas-portal iframe { display: block; width: 100%; height: 100%; border: 0; }
.atlas-portal iframe { position: absolute; inset: 0; opacity: 0; visibility: hidden; transition: opacity .4s ease; }
.atlas-portal.is-ready iframe { opacity: 1; visibility: visible; }
.atlas-portal-shell { position: absolute; inset: 0; display: grid; place-items: center; padding: 24px; background: radial-gradient(ellipse at 50% 36%,#412027,#160d10 65%); color: #e3cabb; }
.atlas-portal.is-ready .atlas-portal-shell { visibility: hidden; pointer-events: none; }
.atlas-portal-loading { text-align: center; max-width: 420px; }
.atlas-portal-spark { color: #d8af94; font-size: 36px; }
.atlas-portal-kicker { margin: 24px 0 18px; font-size: 10px; letter-spacing: .2em; color: #b5917e; }
.atlas-portal-loading h2 { margin: 0; font: 400 44px "KaiTi","Songti SC","SimSun",serif; letter-spacing: .18em; }
#museumPortalStatus { margin: 24px 0; font-size: 12px; line-height: 1.8; color: #bba69b; }
.atlas-portal-actions { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }
.atlas-portal-actions :is(a,button) { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 9px 15px; color: #e1c6b5; background: #bf89740b; border: 1px solid #b68a6a52; border-radius: 2px; font: 12px "Microsoft YaHei",sans-serif; cursor: pointer; }
.atlas-portal-actions :is(a,button):hover { border-color: #d8b493aa; background: #b982631a; }
.atlas-portal-actions :is(a,button):focus-visible { outline: 2px solid #d8b493; outline-offset: 4px; }
.atlas-portal-rim { position: fixed; inset: 0; z-index: 6; pointer-events: none; opacity: var(--portal-glow); background: radial-gradient(circle at var(--portal-x) var(--portal-y),transparent max(0px,calc(var(--portal-inner) - 25px)),#cce5ff10 var(--portal-inner),#b9ddff44 calc(var(--portal-radius) - 16px),transparent calc(var(--portal-radius) + 30px)); }
.atlas-back:focus-visible,.atlas-icp:focus-visible { outline: 1px solid #d7edff; outline-offset: 5px; }
@keyframes atlas-star-breathe { 0%,100% { opacity: .48; transform: scale(.9); } 48% { opacity: 1; transform: scale(1.15); } 69% { opacity: .78; transform: scale(1.04); } }
@media (orientation: portrait) {
  .atlas-scroll { width: 78vw; height: 65dvh; }
  .atlas-scroll-surface { --entry-x: 62%; --entry-y: 49%; }
  .atlas-title { left: 9%; top: 7%; gap: 8px; }.atlas-title h1 { font-size: 34px; }
  .atlas-kicker { display: none; }.atlas-title .atlas-seal { right: 9px; top: calc(100% + 12px); }
}
@media (max-width: 600px) {
  .atlas-header { top: max(19px,env(safe-area-inset-top)); gap: 16px; }.atlas-back { padding-right: 15px; }.atlas-back > span { display: none; }
  .atlas-wordmark > span { font-size: 12px; }.atlas-wordmark small { font-size: 7px; }.atlas-coordinate { display: none; }
  .atlas-scroll { width: calc(100vw - 66px); height: 62dvh; --roller-width: 30px; top: 51%; }
  .atlas-roller { top: -17px; bottom: -17px; }.atlas-roller-collar { height: 25px; }.atlas-roller-finial { height: 28px; }.atlas-roller-finial--top { top: -21px; }.atlas-roller-finial--bottom { bottom: -21px; }
  .atlas-map-border { inset: 12px 10px; }.atlas-title { gap: 6px; }.atlas-title h1 { font-size: 29px; }.atlas-subtitle { font-size: 9px; }
  .atlas-star-caption { top: 71px; gap: 8px; }.atlas-star-caption strong { font-size: 21px; }.atlas-star-caption small { font-size: 8px; }
  .atlas-colophon { bottom: 4%; right: 7%; font-size: 9px; letter-spacing: .13em; }
  .atlas-hint { font-size: 9px; margin-bottom: 12px; letter-spacing: .03em; }.atlas-index { display: none; }.atlas-status { bottom: 94px; width: 90%; }
  .atlas-opening-caption { bottom: 9%; }
}
@media (max-height: 600px) and (orientation: landscape) {
  .atlas-scroll { width: 76vw; height: 52dvh; top: 52%; --roller-width: 32px; }
  .atlas-header { top: 13px; }.atlas-coordinate { display: none; }.atlas-wordmark small { display: none; }
  .atlas-title h1 { font-size: 24px; }.atlas-title { gap: 6px; }.atlas-subtitle { font-size: 9px; }.atlas-kicker,.atlas-seal,.atlas-colophon { display: none; }
  .atlas-star-caption { top: 69px; gap: 5px; }.atlas-star-caption strong { font-size: 18px; }.atlas-star-caption > span { display: none; }
  .atlas-roller { top: -13px; bottom: -13px; }.atlas-roller-finial { height: 24px; }.atlas-roller-finial--top { top: -18px; }.atlas-roller-finial--bottom { bottom: -18px; }.atlas-roller-collar { height: 24px; }
  .atlas-footer { bottom: 12px; }.atlas-hint { margin-bottom: 5px; font-size: 9px; }.atlas-index { display: none; }
}
@media (prefers-reduced-motion: reduce) { .atlas *, .atlas *::before, .atlas *::after { animation: none !important; transition: none !important; } }
