:root{--ink:#101921;--forest:#102c30;--teal:#49b6ad;--amber:#ffd078;--peach:#f3d7bd;--text:#eee9dc;--muted:#9eaeb1;--line:rgba(206,227,220,.18);--rasp:#dc6e8a}*{box-sizing:border-box}html{min-height:100%;background:#101921}body{margin:0;min-height:100%;color:var(--text);font-family:Inter,"Segoe UI",Arial,sans-serif}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:2px solid #ffd889;outline-offset:4px}button:disabled{opacity:.45;cursor:not-allowed}a{color:inherit;text-decoration:none}.app{width:100%;height:100dvh;min-height:650px;overflow:hidden;isolation:isolate;position:relative;background:radial-gradient(ellipse at 65% 41%,#205453 0%,#11363a 25%,#172d38 45%,#111c2b 73%,#101925 100%)}.grain{position:absolute;inset:0;pointer-events:none;opacity:.21;z-index:8;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' opacity='.14' filter='url(%23n)'/%3E%3C/svg%3E")}button{border:0}.header{height:91px;position:absolute;top:0;left:0;right:0;z-index:20;padding:0 clamp(20px,4vw,66px);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:linear-gradient(180deg,rgba(9,18,28,.55),rgba(9,18,28,.03))}.brand{display:flex;align-items:center;gap:11px}.brand-symbol{position:relative;display:grid;place-items:center;width:47px;height:47px;color:#ffd59a}.brand-hex{font-size:51px;line-height:1;font-weight:200}.brand-spark{position:absolute;font-size:22px;left:16px;top:11px}.brand-name{display:flex;flex-direction:column;line-height:1.06;letter-spacing:.19em;font-size:12px}.brand-name>b{font-weight:750}.brand-name>span{font-weight:360;letter-spacing:.25em}.brand-name i{font-size:8px;font-style:normal;vertical-align:top;opacity:.45}.header-center{display:flex;gap:15px;align-items:center;letter-spacing:.23em;font-size:10px;color:#cbd3ce;font-weight:600}.pulse{height:6px;width:6px;border-radius:50%;background:#9ee5ba;box-shadow:0 0 13px #a0ebc1}.sep{opacity:.32}.header-actions{display:flex;align-items:center;gap:26px}.header-number{color:#99aaaa;letter-spacing:.2em;font-size:11px}.language{border:1px solid #819d9a66;min-width:66px;height:35px;color:#f8e9cc;background:#1a34407a;border-radius:2px;font-size:11px;font-weight:750;letter-spacing:.12em}.language span{color:#79d1bd;padding-left:5px}.stage{position:absolute;inset:91px 0 94px;min-height:0}.scene-backdrop{inset:0;position:absolute;pointer-events:none;overflow:hidden}.halo{position:absolute;left:64%;top:49%;border:1px solid #93cbbc25;border-radius:50%;transform:translate(-50%,-50%);width:min(56vw,760px);aspect-ratio:1}.halo-one:before,.halo-one:after{content:"";position:absolute;inset:10%;border-radius:50%;border:1px solid #a2bd9d1e}.halo-one:after{inset:-7%;border-style:dotted;opacity:.6}.halo-two{width:min(43vw,560px);border:1px solid #dfb97823;background:radial-gradient(circle,#60c9ab13 0,transparent 63%)}.gallery-line{position:absolute;top:-10%;height:150%;border-left:1px solid #a9cbc315;transform:rotate(22deg)}.gallery-line-a{left:47%}.gallery-line-b{left:85%}.glow-ground{position:absolute;left:63%;bottom:-12%;width:53vw;height:50%;background:radial-gradient(ellipse,#40c5a42c 0,transparent 69%);transform:translateX(-50%)}.canvas-wrap{position:absolute;inset:0;touch-action:none}#sceneCanvas{display:block;width:100%;height:100%;outline:none;cursor:grab}#sceneCanvas:active{cursor:grabbing}.hotspot-layer{position:absolute;inset:0;pointer-events:none}.hotspot{pointer-events:auto;position:absolute;width:32px;height:32px;border-radius:50%;background:#e6cf93d9;border:1px solid #fff2ca;box-shadow:0 0 0 5px #fff2c822,0 0 25px #ffb86470;color:#22302a;display:grid;place-items:center;font-size:13px;font-weight:800;transform:translate(-50%,-50%);transition:background .25s,scale .25s;z-index:4}.hotspot:hover,.hotspot:focus-visible{background:#fff8df;scale:1.15}.hotspot[data-selected="true"]{background:var(--rasp);color:white;border-color:#ffd2d9}.hotspot:after{content:attr(data-label);position:absolute;top:45px;white-space:nowrap;color:#fff1d2;font-size:10px;letter-spacing:.1em;font-weight:650;background:#112b30ca;padding:7px 9px;border:1px solid #b6c8bb40;opacity:0;transition:opacity .2s}.hotspot:hover:after,.hotspot:focus-visible:after{opacity:1}.hero-copy{position:absolute;z-index:5;left:clamp(22px,4.7vw,75px);top:clamp(70px,15%,140px);max-width:min(345px,30vw);pointer-events:none}.overline{display:flex;gap:12px;align-items:center;color:#a8d7ce;font-size:10px;letter-spacing:.26em;font-weight:650}.tiny-cross{font-size:16px;color:#ffc484}.small-rule{height:1px;width:37px;background:#e8bc86;margin:27px 0 22px}.hero-copy h1{font-family:Georgia,"Times New Roman",serif;font-weight:400;letter-spacing:-.052em;font-size:clamp(56px,7.7vw,119px);line-height:.91;margin:0;color:#f3eadc;text-shadow:0 3px 42px #00192020}.hero-copy h1 em,.drawer h2 em{font-weight:400;font-style:italic;color:#f0b28c}.hero-en{letter-spacing:.2em;font-size:10px;font-weight:800;color:#f3bd8f;margin:23px 0 28px}.hero-en span{margin-left:7px;color:#95c9c1}.hero-body{font-size:13px;line-height:1.85;letter-spacing:.003em;color:#d4ded6;max-width:315px;margin:0}.hero-meta{display:flex;gap:35px;padding-top:30px;margin-top:31px;border-top:1px solid #cbddd328;font-size:12px;color:#f3e6cf}.hero-meta>div{display:flex;flex-direction:column;gap:8px}.meta-label{letter-spacing:.19em;font-size:10px;font-weight:650;color:#74bbb3}.exhibit-side{position:absolute;right:clamp(20px,4vw,65px);top:6%;height:82%;z-index:7;display:flex;flex-direction:column;align-items:flex-end;pointer-events:none}.catalogue-nr{font-size:13px;letter-spacing:.28em;font-weight:700;color:#f4e4bf}.catalogue-nr span{color:#63a69c;padding:0 6px}.compass{width:77px;height:77px;border:1px solid #9dc8bb3e;margin-top:40px;border-radius:50%;display:grid;place-items:center}.compass-inner{display:flex;align-items:center;flex-direction:column;gap:0;font-size:9px;letter-spacing:.1em;color:#b5e1d5}.compass-star{font-size:23px;color:#edbf8a}.season-panel{pointer-events:auto;width:253px;margin-top:auto;align-self:flex-end;background:linear-gradient(139deg,rgba(19,47,53,.93),rgba(20,35,42,.95));border:1px solid #9dc1b94f;box-shadow:0 19px 65px #07171f7a;backdrop-filter:blur(14px);padding:20px 20px 19px}.panel-top{display:flex;align-items:center;justify-content:space-between}.panel-eyebrow{font-size:9px;letter-spacing:.23em;font-weight:800;color:#e8e3ce}.panel-icon{font-size:23px;color:#e2b482}.season-buttons{display:grid;grid-template-columns:repeat(3,1fr);gap:3px;margin:17px 0 20px}.season-btn{background:#233f42;color:#9dc1b9;font-size:11px;padding:11px 2px;white-space:nowrap}.season-btn.active{background:#e3b57c;color:#212e2d;font-weight:750}.season-btn:not(.active):hover{background:#2e5856;color:white}.honey-row{display:flex;justify-content:space-between;align-items:center;font-size:8px;color:#9abdb4;letter-spacing:.115em;font-weight:700}.honey-row b{font-size:14px;color:#ffc879}.honey-track{height:3px;background:#435f5e;margin:12px 0 15px}.honey-fill{height:100%;background:linear-gradient(90deg,#ae7478,#fbc875);transition:width 1s}.season-text{color:#bbccc5;font-size:11px;line-height:1.65;margin:0;min-height:51px}.scene-label{display:flex;align-items:center;gap:12px;position:absolute;bottom:17px;color:#8eaaa6;font-size:9px;letter-spacing:.17em;font-weight:700;z-index:6}.scene-label-left{left:clamp(20px,4vw,64px)}.scene-label-right{right:clamp(20px,4vw,64px)}.small-line{height:1px;width:19px;background:#b8b3a5}.footer{height:94px;position:absolute;bottom:0;left:0;right:0;z-index:19;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 clamp(20px,4vw,65px);border-top:1px solid #d4e6d023;background:#0e1a25ed}.controls-hint{display:flex;align-items:center;gap:10px;color:#90aaa9;font-size:9px;letter-spacing:.13em;font-weight:650;max-width:260px;line-height:1.4}.orbit-symbol{font-size:25px;color:#deb287}.tool-dock{display:flex;align-items:center;gap:4px;padding:5px;border:1px solid #96b8ae2f;background:#122a34}.tool{display:flex;align-items:center;justify-content:center;gap:8px;min-width:111px;height:48px;background:transparent;color:#a4c3bc;font-size:11px;letter-spacing:.035em;transition:background .18s,color .18s}.tool-icon{font-size:20px;line-height:1;color:#f5c687}.tool:hover{background:#27444b;color:white}.tool.active{color:white;background:#27444b}.tool.primary{background:#dbb380;color:#1b2d2d;font-weight:800;padding:0 13px}.tool.primary .tool-icon{color:#263431}.tool.primary:hover{background:#efd0a5}.about-btn{justify-self:end;background:transparent;color:#e8e2cc;display:flex;gap:12px;align-items:center;font-size:11px;letter-spacing:.035em}.about-btn span:first-child{font-size:18px;color:#e9b781}.about-btn span:last-child{font-size:16px;color:#77d4b9}.about-btn:hover{color:#fff}.object-popup{position:absolute;left:50%;bottom:123px;z-index:12;transform:translateX(-50%);width:min(340px,calc(100% - 40px));padding:21px 25px 20px;background:#f4e4c8;color:#18302e;box-shadow:0 25px 80px #0519208a;border-left:4px solid #ce7778}.object-popup[hidden]{display:none}.object-popup #popupClose{position:absolute;right:13px;top:8px;font-size:27px;line-height:1;background:none;color:#244a48}.popup-index{color:#90654a;font-size:9px;letter-spacing:.2em;font-weight:850}.object-popup h3{font:400 28px/1.05 Georgia,serif;margin:10px 0 10px}.object-popup p{font-size:12px;line-height:1.6;margin:0}.drawer{position:absolute;z-index:27;right:0;top:0;bottom:0;width:min(475px,100%);background:#f0e6d4;color:#193437;box-shadow:-30px 0 95px #061320a8;transform:translateX(105%);transition:transform .5s cubic-bezier(.22,.8,.28,1);display:flex;flex-direction:column}.drawer.open{transform:translateX(0)}.drawer-top{height:90px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #123c3a27;padding:0 35px;color:#6a8580;font-size:10px;font-weight:800;letter-spacing:.18em}.drawer-top button{width:34px;height:34px;border:1px solid #527b785e;color:#244c4e;background:transparent;font-size:23px}.drawer-body{overflow-y:auto;padding:50px 44px 50px}.drawer-tag{font-size:10px;color:#ae755a;font-weight:800;letter-spacing:.22em}.drawer h2{font:400 clamp(40px,4.1vw,59px)/.98 Georgia,serif;letter-spacing:-.035em;margin:19px 0 39px}.drawer h2 em{color:#b66a74}.drawer-section{display:grid;grid-template-columns:25px 1fr;gap:15px;margin:0 0 24px;border-top:1px solid #0e4a4738;padding-top:19px}.section-num{font-size:11px;color:#b67865;font-weight:800}.drawer-section h3{font-size:14px;margin:0 0 9px;letter-spacing:.015em}.drawer-section p{font-size:12px;line-height:1.8;color:#4b6260;margin:0}.sources{border-top:1px solid #174a4936;margin-top:31px;padding-top:22px;display:flex;flex-direction:column;gap:13px}.sources-heading{font-size:9px;letter-spacing:.2em;font-weight:850;margin-bottom:7px;color:#ba7e6c}.sources a{font-size:12px;display:flex;justify-content:space-between;padding:4px 0;border-bottom:1px solid #173e372a}.sources a:hover{color:#bc596b}.toast{position:absolute;z-index:30;top:106px;left:50%;transform:translate(-50%,-15px);opacity:0;transition:opacity .3s,transform .3s;background:#f7e5ba;color:#183a35;font-size:11px;letter-spacing:.03em;padding:12px 21px;pointer-events:none;max-width:80%;text-align:center}.toast.visible{transform:translate(-50%,0);opacity:1}.error{position:absolute;z-index:29;top:50%;left:50%;transform:translate(-50%,-50%);padding:30px;max-width:480px;background:#f3dfc1;color:#1b3134;text-align:center;box-shadow:0 14px 50px #0a142a}.error[hidden]{display:none}.error p{line-height:1.7;font-size:13px}
@media(max-width:1200px){.hero-copy{max-width:270px}.hero-copy h1{font-size:clamp(59px,7.5vw,86px)}.hero-body{font-size:12px}.hero-meta{gap:19px}.controls-hint{max-width:200px}.tool{min-width:88px;padding:0 6px}.season-panel{width:234px}.header-center{font-size:9px}}
@media(max-width:950px){.header{height:70px}.header-center{display:none}.stage{top:70px;bottom:86px}.header-number{display:none}.hero-copy{top:48px;max-width:280px}.hero-copy h1{font-size:70px}.hero-body{font-size:11px;max-width:240px}.hero-meta{display:none}.small-rule{margin:17px 0}.hero-en{margin:17px 0}.exhibit-side{right:17px;top:30px;height:83%}.season-panel{width:204px;padding:16px 14px}.compass{display:none}.footer{height:86px;grid-template-columns:auto 1fr;gap:8px}.controls-hint{display:none}.tool-dock{justify-self:start}.about-btn{justify-self:end}.scene-label{display:none}}
@media(max-width:670px){.app{height:100dvh;min-height:600px}.header{height:65px;padding:0 18px}.brand-symbol{width:32px;height:37px}.brand-hex{font-size:38px}.brand-spark{font-size:15px;left:12px;top:11px}.brand-name{font-size:10px}.stage{inset:65px 0 123px}.halo{width:105vw;left:57%;top:50%}.halo-two{width:83vw}.hero-copy{left:19px;top:16px;max-width:calc(100% - 38px)}.overline{font-size:8px;letter-spacing:.15em}.small-rule{display:none}.hero-copy h1{font-size:clamp(47px,12vw,66px);line-height:.89;margin-top:11px}.hero-copy h1 br{display:none}.hero-copy h1 em{margin-left:10px}.hero-en{font-size:8px;margin:13px 0 0}.hero-body{display:none}.exhibit-side{right:12px;left:12px;top:auto;bottom:13px;height:auto;align-items:stretch}.catalogue-nr{display:none}.season-panel{width:100%;max-width:none;padding:11px 13px 9px;background:#102a33e8}.panel-eyebrow{font-size:9px}.panel-icon{font-size:15px}.season-buttons{display:flex;gap:4px;margin:9px 0 10px}.season-btn{flex:1;padding:8px 2px;font-size:10px}.honey-row{font-size:8px}.honey-row b{font-size:11px}.honey-track{margin:7px 0 2px}.season-text{display:none}.footer{height:123px;padding:10px 12px 18px;display:flex;flex-direction:column;justify-content:center;gap:8px}.tool-dock{width:100%;padding:4px;gap:2px}.tool{flex:1;min-width:0;gap:2px;flex-direction:column;font-size:9px;height:51px}.tool.primary{padding:0 4px}.tool-icon{font-size:18px}.about-btn{font-size:11px;align-self:center;gap:7px}.about-btn span:first-child{font-size:13px}.about-btn span:last-child{font-size:12px}.drawer-body{padding:35px 26px}.drawer-top{padding:0 25px;height:65px}.object-popup{bottom:243px;width:calc(100% - 34px)}.hotspot{width:26px;height:26px;font-size:11px}.hotspot:after{display:none}}
@media(max-width:380px){.hero-copy h1{font-size:46px}.brand-name{letter-spacing:.11em}.language{min-width:52px}.tool{font-size:8px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
