:root{color-scheme:dark;--ink:#101f29;--paper:#f8ebd3;--amber:#f1b86d;--coral:#ed886d;--muted:#aec1bd;--green:#529b91;--edge:rgba(255,241,213,.18);--font:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Arial,sans-serif}
*,*::before,*::after{box-sizing:border-box}html{min-height:100%;scroll-behavior:smooth}body{margin:0;min-width:320px;background:#101c25;color:var(--paper);font-family:var(--font)}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid #ffd496;outline-offset:4px}button:disabled{cursor:not-allowed;opacity:.6}[hidden]{display:none!important}
.app{position:relative;min-height:100vh;min-height:100svh;overflow:hidden;background:radial-gradient(ellipse 54% 70% at 68% 43%,#2a5459 0,#172d35 47%,#0c1923 100%)}.app.night{background:radial-gradient(ellipse 54% 70% at 68% 43%,#283653 0,#162236 43%,#0b1223 100%)}.ambient-shape{position:absolute;pointer-events:none;filter:blur(100px);opacity:.38}.ambient-shape--a{width:46vw;height:58vh;left:30%;top:10%;background:#e6a65425}.ambient-shape--b{width:35vw;height:65vh;right:-18%;top:0;background:#d15f9020}
.header{height:91px;position:relative;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(23px,4.7vw,84px);border-bottom:1px solid var(--edge)}.brand{display:flex;align-items:center;gap:14px;text-decoration:none;color:var(--paper)}.brand-logo{display:grid;place-items:center;width:42px;height:42px;color:#e6b36d}.brand-logo svg{width:42px;height:42px}.brand strong{font-size:14px;letter-spacing:.145em;font-weight:780;white-space:nowrap}.brand em{font-style:normal;color:#e6ad6e}.brand small{display:block;color:#a1b5ad;font-size:8px;font-weight:680;letter-spacing:.21em;margin-top:5px}.header-middle{display:flex;align-items:center;gap:11px;color:#b7cac3;font-size:9px;letter-spacing:.21em}.online-dot,.status-pulse{width:5px;height:5px;border-radius:50%;background:#e8bf7a;box-shadow:0 0 10px #f4d08b}.header-actions{display:flex;gap:10px}.pill{height:37px;border:1px solid rgba(238,228,204,.32);background:#10242aaa;color:var(--paper);border-radius:40px;display:flex;align-items:center;gap:13px;padding:0 19px;font-size:10px;letter-spacing:.14em;font-weight:750;transition:background .2s,border-color .2s}.pill:hover{background:#33606088;border-color:#f1d3a6}.pill-lang{padding:0 13px}.lang-swap{color:#f5c58b;font-size:15px}.info-symbol{display:grid;place-items:center;border:1px solid #edbf7d;border-radius:50%;height:18px;width:18px;font-family:Georgia,serif;color:#edbf7d;font-size:11px}
.museum{height:calc(100svh - 91px);min-height:645px;max-height:1000px;position:relative;isolation:isolate}.stage{position:absolute;inset:0;overflow:hidden;z-index:1;touch-action:none}.stage-halo{position:absolute;width:60%;aspect-ratio:1;left:35%;top:42%;transform:translate(-50%,-50%);pointer-events:none;background:radial-gradient(circle,#f5ae5750 0,#6d8b7848 29%,#274a5530 54%,transparent 71%);filter:blur(24px)}.sun-disc{position:absolute;z-index:-1;pointer-events:none;left:45.3%;top:45.5%;width:min(61vw,700px);aspect-ratio:1;border-radius:50%;border:1px solid #b4aa8350;transform:translate(-50%,-50%);box-shadow:0 0 0 35px #ccac7310,0 0 0 72px #d0b77b0a;background:radial-gradient(circle at 57% 44%,#eaa05c24,#a48e794a 43%,#3c6e6c26 61%,transparent 66%)}.sun-disc:after,.sun-disc:before{content:"";position:absolute;inset:7%;border:1px solid #d5b57424;border-radius:50%}.sun-disc:after{inset:16%}.sun-disc-inner{display:block;position:absolute;inset:28%;border:1px dashed #d7b47b20;border-radius:50%}
#viewport{display:block;width:100%;height:100%;touch-action:none;cursor:grab;position:absolute;inset:0;z-index:3;outline:none}#viewport:active{cursor:grabbing}.scene-grain{position:absolute;inset:0;z-index:4;pointer-events:none;opacity:.19;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='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.16'/%3E%3C/svg%3E")}.stage-overlay{position:absolute;pointer-events:none;inset:0;z-index:5;background:linear-gradient(90deg,#0f202ad9 0,transparent 42%,transparent 82%,#0f202a60 100%),linear-gradient(0deg,#0e20298c 0,transparent 30%,transparent 78%,#101e2736)}
.side-story{position:absolute;z-index:8;top:13.5%;left:clamp(28px,7vw,128px);width:min(380px,33vw);pointer-events:none}.story-topline{display:flex;align-items:center;gap:12px;font-size:10px;letter-spacing:.19em;color:#f5c18c;font-weight:710}.dash{display:block;background:#d7b173;width:24px;height:1px}.editorial-index{font:500 12px Georgia,serif;letter-spacing:.1em;margin:37px 0 16px;color:#90b1aa}.editorial-index span{padding-left:8px;color:#d4a46a}.side-story h1{margin:0;line-height:.93;font-size:clamp(53px,6.25vw,101px);font-weight:520;letter-spacing:-.078em;color:#fbf0d8}.side-story h1 i{font-weight:400;color:#e5aa69;font-family:Georgia,serif;letter-spacing:-.055em}.english-title{font-size:9px;letter-spacing:.23em;color:#a3c5b8;font-weight:700;margin:27px 0 20px}.story-lede{font-size:clamp(13px,1.11vw,16px);line-height:1.78;max-width:320px;color:#d2d8ce;margin:0}.story-divider{height:1px;background:linear-gradient(90deg,#ffffff55,transparent);margin:32px 0 26px;max-width:290px}.micro-meta{display:flex;gap:27px}.micro-meta b{display:block;color:#a8b9ad;font-size:9px;letter-spacing:.14em;font-weight:600}.micro-meta small{display:block;color:#f5dcc0;font-size:12px;line-height:1.4;margin-top:7px}.guide{margin-top:30px;color:#d7b88b;display:flex;align-items:center;gap:10px;max-width:310px;font-size:10px;letter-spacing:.045em;line-height:1.5}.guide-icon{width:30px;height:30px;border:1px solid #c4a67a6e;border-radius:50%;display:grid;place-items:center;font-size:18px;flex:none}
.right-accent{position:absolute;z-index:8;right:clamp(22px,3.7vw,75px);top:37%;writing-mode:vertical-rl;display:flex;align-items:center;gap:22px;font-size:9px;letter-spacing:.25em;color:#f0d2ae90}.vert-rule{height:48px;border-right:1px solid #f2cdaa80}.stage-info{position:absolute;z-index:8;right:clamp(22px,3.7vw,75px);bottom:152px;display:flex;align-items:center;flex-direction:column;gap:9px;font-size:9px;font-weight:600;letter-spacing:.14em;color:#d7e0d1}.status{display:flex;align-items:center;gap:8px}.status-pulse{background:#55c6a5;box-shadow:0 0 10px #55c6a5}.model-id{color:#9caeac;font-size:9px}.lower-note{position:absolute;z-index:9;left:clamp(28px,7vw,128px);bottom:18px;font-size:9px;letter-spacing:.16em;font-weight:650;color:#a5c3b6;display:flex;align-items:center;gap:12px}.star{color:#e8ac6e;font-size:19px}
.controls{position:absolute;z-index:12;bottom:55px;left:clamp(28px,7vw,128px);right:clamp(25px,4vw,70px);display:flex;gap:29px;align-items:end;justify-content:space-between}.controls-left{display:flex;flex-direction:column;gap:13px;white-space:nowrap}.controls-caption{color:#f1ce9a;font-size:10px;font-weight:730;letter-spacing:.19em}.controls-hint{color:#b1c0b8;font-size:9px;letter-spacing:.08em}.control-row{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:8px;max-width:790px}.action-button{background:#152831c9;color:#f8ebcf;border:1px solid #f9e3c34d;border-radius:7px;min-height:47px;padding:10px 15px;display:flex;gap:9px;align-items:center;justify-content:center;font-size:11px;font-weight:670;white-space:nowrap;transition:background .25s,border-color .25s,transform .25s,box-shadow .25s}.action-button:hover{background:#36645cdb;border-color:#f3ca8d;transform:translateY(-2px)}.action-button[aria-pressed="true"]{background:#bc884e;color:#14232a;border-color:#ffdaad;box-shadow:0 7px 25px #101d2633}.action-button.primary{background:#edd0a4;color:#26312e;border-color:#f6ddbb}.action-button.primary[aria-pressed="true"]{background:#a8cfbf;color:#14342f}.action-button.reset{border-color:#72938f;color:#c9d4cb}.action-icon{font-size:19px;line-height:1;font-weight:400}.bee-icon{font-size:19px;color:#e8bc80}.action-button[aria-pressed="true"] .bee-icon{color:#17352b}
.hotspots{position:absolute;inset:0;z-index:7;pointer-events:none}.hotspot{position:absolute;pointer-events:auto;display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:#15292eba;border:1px solid #ffd19e8f;color:#f4d3a0;box-shadow:0 0 0 7px #f9bd5820,0 0 17px #ffd39c45;transition:transform .2s,background .2s;transform:translate(-50%,-50%)}.hotspot:hover,.hotspot.selected{background:#f1c68f;color:#17332e;transform:translate(-50%,-50%) scale(1.12)}.hotspot span{font-weight:250;font-size:22px;line-height:1;margin-top:-1px}.hotspot-note{position:absolute;right:15%;top:24%;width:min(306px,80vw);z-index:12;padding:26px;border:1px solid #dcb88f73;border-radius:8px;background:#112630ed;box-shadow:0 20px 60px #05161be5;backdrop-filter:blur(15px)}.hotspot-note #note-close{position:absolute;right:13px;top:10px;background:none;border:0;color:#e8cdad;font-size:25px}.note-kicker{font-size:9px;color:#e6b578;letter-spacing:.18em}.hotspot-note h3{font:normal 27px Georgia,serif;margin:14px 0 12px;color:#fae8cb}.hotspot-note p{font-size:13px;color:#bccdc4;line-height:1.7;margin:0}
.loading,.webgl-error{position:absolute;z-index:30;left:50%;top:50%;transform:translate(-50%,-50%);text-align:center;padding:30px;background:#12252bc9;border-radius:8px;color:#f5d4a9;font-size:11px;letter-spacing:.1em}.loading{display:flex;gap:18px;align-items:center;white-space:nowrap;transition:opacity .3s}.loading.hide{opacity:0;pointer-events:none}.loading-orbit{border:2px solid #dfb87944;border-top-color:#edc78c;width:21px;height:21px;animation:spin 1s linear infinite;border-radius:50%}@keyframes spin{to{transform:rotate(360deg)}}.webgl-error{width:min(460px,90%);line-height:1.7}.webgl-error strong{font-size:19px;color:#ffe2ac}.webgl-error p{font-size:13px;letter-spacing:0}
.info-panel{position:fixed;z-index:60;top:0;right:0;width:min(425px,100vw);height:100dvh;background:#10252c;box-shadow:-20px 0 70px #061117c2;border-left:1px solid #c3b49a44;padding:36px 38px;overflow:auto;transform:translateX(101%);transition:transform .48s cubic-bezier(.18,.8,.2,1)}.info-panel.is-open{transform:translateX(0)}.info-head{display:flex;justify-content:space-between;align-items:center;color:#afbdaf;font-size:10px;letter-spacing:.18em}.info-head button{background:transparent;border:1px solid #f7e3c35c;border-radius:50%;width:33px;height:33px;color:var(--paper);font-size:24px}.panel-overline{display:block;color:#e8b879;letter-spacing:.14em;font-size:10px;margin-top:41px}.info-panel h2{font:normal 52px/.95 Georgia,serif;letter-spacing:-.055em;color:#f3e6cd;margin:21px 0 24px}.info-panel>p{line-height:1.85;font-size:14px;color:#c6d5c9}.info-facts{margin:24px 0 22px;border-top:1px solid #c5d9cd30}.info-facts>div{display:grid;grid-template-columns:105px 1fr;gap:12px;padding:17px 0;border-bottom:1px solid #c5d9cd30}.info-facts small{font-size:9px;color:#c8a378;letter-spacing:.12em;line-height:1.6}.info-facts strong{font-weight:500;color:#f2ddc2;font-size:12px;line-height:1.6}.info-panel details{border-bottom:1px solid #c5d9cd30;padding:17px 0}.info-panel summary{cursor:pointer;font-size:13px;color:#f6dec3;font-weight:650}.info-panel details p{font-size:12px;color:#b9cac1;line-height:1.82}.info-panel a{color:#ebc089;overflow-wrap:anywhere}.panel-footer{display:flex;gap:14px;justify-content:space-between;border-top:1px solid #c5d9cd30;color:#a6bbb1;margin-top:34px;padding-top:20px;font-size:9px;letter-spacing:.12em}.toast{z-index:70;position:fixed;bottom:23px;left:50%;transform:translateX(-50%);padding:12px 20px;background:#f3d8aa;color:#19332c;border-radius:30px;font-weight:650;font-size:12px;box-shadow:0 10px 30px #071c2355;text-align:center;max-width:90vw}
@media (max-width:1180px){.header-middle{display:none}.side-story{left:45px;top:13%;width:320px}.side-story h1{font-size:69px}.story-lede{font-size:14px}.controls{left:34px;right:30px;bottom:49px;flex-direction:column;align-items:stretch;gap:12px}.controls-left{flex-direction:row;justify-content:space-between}.control-row{max-width:none;justify-content:start}.right-accent{display:none}.stage-info{bottom:151px}.lower-note{left:36px}.action-button{min-height:42px;padding:9px 12px}}
@media (max-width:720px){.app{overflow:hidden}.header{height:68px;padding:0 18px}.brand-logo,.brand-logo svg{width:33px;height:33px}.brand{gap:7px}.brand strong{font-size:11px;letter-spacing:.11em}.brand small{font-size:7px}.pill{height:34px;padding:0 10px;font-size:9px}.pill-about{padding:0 10px}.pill-about [data-key="aboutButton"]{display:none}.museum{height:calc(100svh - 68px);min-height:690px;max-height:none}.side-story{top:22px;left:22px;width:260px}.story-topline{font-size:9px}.editorial-index{margin:12px 0 7px;font-size:11px}.side-story h1{font-size:54px;letter-spacing:-.06em}.english-title{font-size:8px;letter-spacing:.13em;margin:13px 0 11px}.story-lede{font-size:12px;line-height:1.6;max-width:237px}.story-divider,.micro-meta,.guide{display:none}.stage-overlay{background:linear-gradient(180deg,#10263055 0,#10263030 37%,transparent 62%,#0e2024cc 88%)}.sun-disc{width:590px;left:53%;top:47%}.stage-halo{width:98%;top:43%;left:50%}.controls{bottom:54px;left:15px;right:15px;gap:12px}.controls-left{display:none}.control-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.action-button{min-height:50px;font-size:10px;white-space:normal;line-height:1.1;padding:7px 5px;gap:5px;flex-direction:column;text-align:center}.action-icon{font-size:21px}.stage-info{bottom:205px;right:20px;align-items:flex-end}.lower-note{left:19px;bottom:15px;font-size:8px;letter-spacing:.06em}.hotspot{width:30px;height:30px}.hotspot-note{right:18px;top:35%;width:240px}.info-panel{padding:25px 24px}.info-panel h2{font-size:44px}}
@media(max-width:390px){.brand small{letter-spacing:.04em}.side-story h1{font-size:48px}.story-lede{font-size:11px}.action-button{font-size:9px}.controls{bottom:51px}.stage-info{bottom:202px}}
@media(max-height:690px) and (min-width:721px){.museum{min-height:560px}.side-story{top:8%}.story-divider{margin:18px 0}.guide{margin-top:10px}.controls{bottom:40px}.stage-info{bottom:115px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}
