@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;1,400;1,500&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{color-scheme:dark;--bg:#101a20;--surface:rgba(15,24,29,.82);--surface-edge:rgba(211,187,143,.17);--gold:#ddbb82;--gold-pale:#f1dfbe;--white:#f1efe7;--muted:#9ba39f;--dim:#77817c;--line:rgba(226,210,170,.18);--accent:#baa173;--ui-sans:'Manrope',Arial,sans-serif;--serif:'Cormorant Garamond',Georgia,serif}
*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;overflow:hidden;background:#0b1518;color:var(--white);font-family:var(--ui-sans)}button,input,a{font:inherit}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--gold);outline-offset:3px}button:disabled{opacity:.45;pointer-events:none}#viewport,#scene,#vignette{position:fixed;inset:0;width:100%;height:100%}#scene{display:block;touch-action:none}#vignette{pointer-events:none;background:linear-gradient(90deg,rgba(7,15,18,.23),transparent 37%,transparent 68%,rgba(7,15,18,.12)),linear-gradient(0deg,rgba(4,10,13,.40),transparent 23%,transparent 80%,rgba(4,10,13,.19));z-index:1}#interface{position:fixed;inset:0;z-index:2;pointer-events:none}#interface button,#interface a,#interface input,#interface .glass,#interface .hotspot,#interface .tour-start{pointer-events:auto}.glass{background:linear-gradient(125deg,rgba(14,24,29,.94),rgba(11,20,24,.82));border:1px solid var(--surface-edge);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}.topbar{height:86px;display:flex;align-items:center;justify-content:space-between;padding:0 3.25%;border-bottom:1px solid rgba(225,212,178,.14);background:linear-gradient(180deg,rgba(10,19,25,.83),rgba(10,19,25,.44));pointer-events:auto}.brand{display:flex;align-items:center;gap:14px;text-decoration:none;color:var(--white)}.brand img{height:50px;width:50px}.brand-text{display:flex;flex-direction:column;gap:7px}.brand strong{font-size:16px;letter-spacing:.19em;font-weight:800}.brand strong em{font-weight:400;font-style:normal;color:var(--gold)}.brand small{font-size:8px;color:#bbb09f;letter-spacing:.27em}.topmeta{display:flex;align-items:center;gap:15px;letter-spacing:.18em;color:var(--gold-pale);font-weight:600;font-size:10px}.edition{color:#b7b8b1;font-size:9px}.thin-separator{height:16px;width:1px;background:var(--line)}.live-pulse{height:6px;width:6px;border-radius:100%;background:#b8cb94;box-shadow:0 0 13px rgba(189,224,146,.8)}.top-actions{display:flex;gap:9px}.head-button{height:33px;min-width:37px;border:1px solid rgba(228,208,168,.26);color:#eee0c5;background:rgba(21,30,32,.66);letter-spacing:.1em;font-size:10px}.icon-button{font-size:19px;font-family:Georgia,sans-serif}.head-button:hover,.tool:hover,.sun-moon:hover{border-color:var(--gold);color:var(--gold-pale)}.layout{position:absolute;top:106px;bottom:113px;left:3.25%;right:3.25%;display:grid;grid-template-columns:300px minmax(0,1fr) 277px;gap:18px;min-height:0}.left-panel{max-height:100%;overflow:auto;scrollbar-width:thin;scrollbar-color:#706754 transparent;padding:27px 25px 21px;display:flex;flex-direction:column}.eyebrow{font-size:9px;letter-spacing:.2em;font-weight:800;color:var(--gold);display:flex;gap:9px;align-items:center;line-height:1.55}.diamond{display:inline-block;width:7px;height:7px;border:1px solid var(--gold);transform:rotate(45deg);flex:none}.left-panel h1{font-family:var(--serif);font-size:44px;font-weight:500;line-height:.92;letter-spacing:-.024em;margin:24px 0 15px;color:#fff8e9}.left-panel h1 i{font-weight:400;color:var(--gold)}.lead{font-size:11px;line-height:1.9;color:#c1c5bc;margin:0 0 25px}.section-line{display:flex;gap:10px;align-items:center;font-size:9px;letter-spacing:.17em;color:var(--gold);font-weight:800;white-space:nowrap;margin-bottom:12px}.section-line .line{flex:1;height:1px;background:rgba(228,202,163,.24)}.places{display:flex;flex-direction:column}.place{border:0;border-bottom:1px solid rgba(225,213,175,.10);background:transparent;text-align:left;color:#dad9cd;padding:10px 1px;display:flex;align-items:center;gap:12px;min-height:45px;transition:background .2s,color .2s}.place:hover,.place.active{color:var(--gold-pale);background:rgba(226,190,129,.08)}.place .place-index{font-size:9px;letter-spacing:.08em;color:#a1977e;flex:none}.place .place-name{font-family:var(--serif);font-size:19px;letter-spacing:.01em;flex:1}.place .place-arrow{font-size:15px;color:var(--gold);opacity:.3}.place.active .place-arrow,.place:hover .place-arrow{opacity:1}.panel-foot{margin-top:auto;padding-top:19px}.goldline{height:1px;width:35px;background:var(--gold)}.panel-foot p{font-size:9px;line-height:1.85;color:#a4aaa4;margin:9px 0}.text-link{border:0;padding:7px 0;background:transparent;color:var(--gold);font-size:9px;letter-spacing:.18em;font-weight:800}.center-overlay{position:relative;pointer-events:none}.center-title{position:absolute;left:0;right:0;top:4px;text-align:center;text-shadow:0 2px 17px rgba(0,0,0,.34);transition:opacity .8s}.center-title .overline{display:block;color:#f5e8ca;font-size:9px;letter-spacing:.24em;font-weight:700;margin-bottom:9px}.center-title strong{display:block;color:#fff6e8;font-family:var(--serif);font-size:49px;font-weight:500;letter-spacing:.17em;line-height:1}.center-title .subtitle{display:block;font-family:var(--serif);font-style:italic;font-size:18px;color:#fff2e0;letter-spacing:.065em;margin-top:5px}.scene-top-right{position:absolute;top:125px;right:2px;display:flex;flex-direction:column;align-items:flex-end;gap:12px}.tour-start{pointer-events:auto;border:1px solid rgba(238,224,195,.66);background:rgba(14,22,25,.49);color:#fff5df;height:44px;padding:0 15px;letter-spacing:.15em;font-size:10px;font-weight:800;display:flex;gap:10px;align-items:center;transition:background .2s}.tour-start:hover{background:rgba(171,138,90,.29)}.tour-start>span:first-child{color:var(--gold);font-size:17px}#quality-badge{font-size:8px;letter-spacing:.22em;color:#d8d4c8;background:rgba(15,26,29,.37);padding:7px 11px}#hotspot-layer{position:absolute;inset:0;overflow:hidden;pointer-events:none}.hotspot{position:absolute;border:0;background:transparent;color:white;display:flex;flex-direction:column;align-items:center;gap:7px;transform:translate(-50%,-50%);transition:opacity .25s,filter .25s;white-space:nowrap}.hotspot-dot{width:27px;height:27px;border:1px solid rgba(245,229,196,.9);border-radius:50%;display:grid;place-items:center;background:rgba(30,39,39,.52);box-shadow:0 0 0 5px rgba(18,26,23,.16),0 0 24px rgba(255,219,162,.12)}.hotspot-dot:after{content:'';width:5px;height:5px;background:#ecd3a9;border-radius:50%}.hotspot:hover .hotspot-dot,.hotspot.active .hotspot-dot{box-shadow:0 0 0 8px rgba(219,192,142,.18),0 0 30px rgba(239,199,119,.50);background:rgba(167,129,71,.7)}.hotspot-text{padding:5px 8px;background:rgba(12,20,22,.75);border:1px solid rgba(226,209,168,.24);font-size:9px;font-weight:700;letter-spacing:.12em;opacity:0;transition:opacity .2s}.hotspot:hover .hotspot-text,.hotspot.active .hotspot-text{opacity:1}.movement-hint{position:absolute;bottom:3px;left:50%;transform:translateX(-50%);font-size:9px;font-weight:700;letter-spacing:.16em;color:#fff5db;text-shadow:0 2px 8px #15150f;white-space:nowrap}#hover-tooltip{position:absolute;pointer-events:none;display:none;background:#172421;border:1px solid var(--gold);padding:10px 14px;color:#fff;font-size:11px;z-index:20}.right-panel{overflow:hidden;display:flex;flex-direction:column;max-height:100%;opacity:1;transition:opacity .35s,transform .4s}.detail-header{height:65px;flex:none;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 21px}.detail-scroll{overflow:auto;padding:23px 21px;scrollbar-width:thin}.small-close{width:31px;height:31px;border:1px solid var(--line);background:transparent;color:#cbbd9c;font-size:23px;font-weight:300}.icon-scene{font-family:Georgia,serif;font-size:27px;color:var(--gold);border:1px solid rgba(220,187,137,.2);width:46px;height:46px;display:grid;place-items:center}.right-panel h2{font-size:34px;line-height:1.04;font-family:var(--serif);font-weight:500;margin:19px 0 9px;color:#fff3df}.detail-years{font-size:9px;font-weight:700;letter-spacing:.23em;color:var(--gold)}#detail-description{color:#e2dfd0;font-size:11px;line-height:1.95;margin:18px 0}.detail-rule{height:1px;background:var(--line);margin:21px 0}.history-label{font-size:9px;color:var(--gold);letter-spacing:.17em;font-weight:800;line-height:1.6}#detail-history{color:#afb8af;font-size:10px;line-height:1.95;margin:10px 0 23px}#detail-action{margin-top:12px}.detail-button{width:100%;border:1px solid rgba(223,192,144,.46);height:38px;background:rgba(209,171,112,.11);color:#f1dbb4;font-size:9px;font-weight:800;letter-spacing:.16em}.detail-button:hover{background:rgba(205,170,119,.26)}.control-caption{display:flex;justify-content:space-between;margin-bottom:5px;color:#c6bb9e;font-size:9px;letter-spacing:.07em}.detail-range{margin-bottom:19px}.detail-range input{width:100%}.detail-bottom{margin-top:auto;flex:none;min-height:50px;display:flex;gap:9px;align-items:center;justify-content:center;border-top:1px solid var(--line);color:#999f95;font-size:8px;letter-spacing:.13em}.small-diamond{color:var(--gold)}.bottom-bar{position:absolute;bottom:25px;left:3.25%;right:3.25%;min-height:68px;padding:0 22px;display:flex;align-items:center;justify-content:space-between;gap:13px;pointer-events:auto}.toolbar-group{display:flex;align-items:center;gap:8px;min-width:0}.toolbar-kicker{color:#bba47d;font-size:9px;font-weight:800;letter-spacing:.13em;margin-right:4px}.tool,.sun-moon{background:rgba(34,42,42,.35);border:1px solid transparent;color:#ddd8c7;height:34px;padding:0 10px;font-size:9px;font-weight:800;letter-spacing:.11em;white-space:nowrap}.tool.active,.sun-moon.active{background:rgba(222,186,131,.16);border-color:rgba(218,188,145,.38);color:#f3ddb7}.sun-moon{font-family:Georgia;font-size:19px;min-width:32px;padding:0}.footer-sep{height:30px;width:1px;background:var(--line)}input[type=range]{appearance:none;-webkit-appearance:none;background:rgba(231,213,176,.2);height:3px;cursor:pointer;accent-color:var(--gold)}input[type=range]::-webkit-slider-thumb{appearance:none;width:10px;height:10px;border-radius:50%;background:#edcf9e;border:2px solid #5b5040;box-shadow:0 0 0 2px #cbb388}input[type=range]::-moz-range-thumb{width:10px;height:10px;background:var(--gold);border-radius:50%}#sun-slider{width:64px}#ferry-slider{width:92px}.play-button{background:rgba(211,167,102,.22);border:1px solid rgba(220,186,143,.4);color:var(--gold-pale);height:30px;width:30px;font-size:16px}.ferry-percent{font-size:9px;color:#ddd5c7;min-width:33px;font-variant-numeric:tabular-nums}.fps{font-size:8px;letter-spacing:.1em;color:#989e95;width:47px;text-align:right}.mobile-toggle{display:none}#toast{position:absolute;left:50%;bottom:106px;transform:translateX(-50%) translateY(12px);opacity:0;transition:opacity .24s,transform .24s;background:rgba(13,26,30,.93);padding:11px 19px;border:1px solid var(--line);font-size:10px;letter-spacing:.09em;color:#f7e6c9;white-space:nowrap}#toast.show{opacity:1;transform:translateX(-50%) translateY(0)}.modal-backdrop{position:fixed;inset:0;z-index:5;background:rgba(5,12,15,.79);display:grid;place-items:center;pointer-events:auto;padding:22px;backdrop-filter:blur(11px)}.modal-backdrop.hidden{display:none}.modal{position:relative;width:min(680px,100%);max-height:85vh;overflow-y:auto;padding:38px 42px}.modal .small-close{position:absolute;right:24px;top:22px}.modal h2{font-family:var(--serif);font-size:35px;font-weight:500;letter-spacing:.03em;margin:17px 0}.modal p{font-size:12px;line-height:2;color:#cbd0c7}.modal a{color:var(--gold-pale);font-size:12px;line-height:2;text-decoration:underline;text-decoration-color:#998563;text-underline-offset:3px}.ref-card{padding:12px 0;border-top:1px solid var(--line)}.ref-card p{margin:5px 0 0;font-size:10px}.modal .footnote{font-style:italic;color:#9da9a3;font-size:10px}#loading-screen{position:fixed;inset:0;z-index:9;background:radial-gradient(circle at 50% 35%,#24333a 0,#0d181e 65%,#071117 100%);display:flex;flex-direction:column;align-items:center;justify-content:center;transition:opacity .8s,visibility .8s}#loading-screen.done{opacity:0;visibility:hidden;pointer-events:none}.loading-mark{width:94px;height:94px;border:1px solid rgba(220,186,132,.29);display:grid;place-items:center;transform:rotate(45deg);margin-bottom:40px}.loading-mark img{width:65px;height:65px;transform:rotate(-45deg)}.load-title{font-weight:800;letter-spacing:.33em;font-size:18px;color:#eee7d8}.load-title span{color:var(--gold)}.load-line{width:224px;height:2px;background:rgba(224,203,171,.17);margin:30px 0 18px}.load-line span{width:10%;height:100%;background:var(--gold);display:block;transition:width .3s}#load-message{font-size:9px;color:#c8bb9d;letter-spacing:.23em;font-weight:800}#loading-screen small{font-size:8px;letter-spacing:.3em;color:#899594;margin-top:21px}.noscript{position:fixed;z-index:100;background:#0d171b;color:#fff;padding:20px;top:35%;left:25%;width:50%}
@media(max-width:1330px){.layout{grid-template-columns:270px minmax(0,1fr) 250px;gap:10px}.left-panel{padding:21px 19px}.left-panel h1{font-size:39px}.bottom-bar{padding:0 10px;gap:6px}.toolbar-group{gap:4px}.tool{padding:0 7px}.toolbar-kicker{font-size:8px}#sun-slider{width:44px}#ferry-slider{width:64px}.topmeta .edition{display:none}}
@media(max-width:1090px){.layout{grid-template-columns:248px minmax(0,1fr)}.right-panel{position:absolute;right:0;top:0;width:260px;bottom:0;z-index:2;box-shadow:-6px 0 24px rgba(0,0,0,.22)}.right-panel.closed{opacity:0;transform:translateX(105%);pointer-events:none}.center-title{left:5px;right:5px}.center-title strong{font-size:39px}.scene-top-right{top:105px}.bottom-bar .footer-sep:last-of-type,.bottom-bar .utility-group .fps{display:none}}
@media(max-width:750px){.topbar{height:60px;padding:0 15px}.brand{gap:8px}.brand img{width:37px;height:37px}.brand strong{font-size:12px}.brand small{font-size:7px;letter-spacing:.13em}.topmeta{display:none}.top-actions{gap:5px}.head-button{min-width:30px;height:28px}.layout{top:69px;bottom:86px;left:10px;right:10px;display:block}.left-panel{position:absolute;left:0;top:0;bottom:0;width:min(298px,90vw);z-index:4;transform:translateX(-120%);transition:transform .27s;box-shadow:4px 0 22px #090e17}.left-panel.mobile-open{transform:translateX(0)}.center-overlay{height:100%}.center-title{top:8px}.center-title .overline{font-size:8px}.center-title strong{font-size:32px}.center-title .subtitle{font-size:15px}.scene-top-right{right:0;top:110px}.tour-start{height:37px;font-size:8px}#quality-badge{display:none}.right-panel{width:min(280px,86vw);z-index:3;top:0;bottom:0}.movement-hint{bottom:60px;font-size:8px;max-width:90%;white-space:normal;text-align:center;line-height:1.7}.bottom-bar{bottom:11px;left:10px;right:10px;min-height:60px;padding:8px;gap:4px;flex-wrap:wrap;justify-content:center}.toolbar-group{gap:4px}.toolbar-kicker{display:none}.footer-sep{display:none}.tool{height:31px;font-size:8px;padding:0 6px}.sun-moon{height:30px;min-width:30px}.utility-group{display:none}#sun-slider{width:40px}#ferry-slider{width:50px}.mobile-toggle{display:flex;position:absolute;left:13px;top:82px;border:1px solid rgba(218,185,140,.42);background:rgba(11,22,27,.79);color:var(--gold-pale);height:38px;align-items:center;gap:9px;padding:0 12px;letter-spacing:.15em;font-size:9px;pointer-events:auto}.left-panel.mobile-open~.center-overlay .hotspot{opacity:.1}.modal{padding:29px 23px}.modal h2{font-size:28px}}
@media(max-height:780px) and (min-width:751px){.topbar{height:66px}.layout{top:76px;bottom:85px}.left-panel h1{font-size:36px;margin:10px 0}.lead{margin-bottom:14px;line-height:1.6}.left-panel{padding-top:15px}.place{min-height:35px;padding:5px 1px}.place .place-name{font-size:17px}.bottom-bar{bottom:12px;min-height:57px}.center-title strong{font-size:38px}.scene-top-right{top:92px}.detail-scroll{padding:12px 19px}#detail-description{line-height:1.7;margin:10px 0}.right-panel h2{font-size:30px;margin:9px 0}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important}}
