@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;500;600;700;800;900&family=DM+Sans:wght@400;500;600;700;800&display=swap');
:root{--paper:#eeeade;--ink:#283e36;--muted:#718077;--green:#537864;--line:rgba(48,71,59,.16);--panel:rgba(248,246,236,.78)}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans','Noto Sans SC',sans-serif;transition:background 1.2s,color 1.2s;overflow-x:hidden}button,a,input{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #d38850;outline-offset:5px}button{border:0}a{color:inherit;text-decoration:none}.paper{position:fixed;inset:0;z-index:20;pointer-events:none;opacity:.10;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='.87' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23666666' opacity='.42' filter='url(%23n)' d='M0 0h180v180H0z'/%3E%3C/svg%3E")}.header{height:124px;padding:32px 5.2%;display:flex;align-items:center;justify-content:space-between;position:relative;z-index:3}.brand{display:flex;align-items:center;gap:12px;font-size:15px;font-weight:800;line-height:1.06;letter-spacing:1.5px}.brand-symbol{width:45px;height:45px;background:var(--ink);color:var(--paper);border-radius:50%;font-family:Georgia,serif;font-style:italic;font-size:43px;font-weight:400;line-height:36px;letter-spacing:-4px;padding-left:8px}.brand-dot{font-size:9px;vertical-align:top;margin-left:3px}.header-note{font-size:11px;letter-spacing:2px;text-align:center;line-height:1.9;color:var(--muted)}.header-note>span{display:block;font-size:8px;letter-spacing:2.3px}.sound-button{display:flex;align-items:center;gap:10px;background:transparent;border:1px solid var(--line);padding:11px 15px;border-radius:22px;font-size:11px;letter-spacing:.7px}.sound-bars{display:flex;height:13px;align-items:center;gap:3px}.sound-bars i{width:2px;height:6px;background:var(--green);border-radius:2px}.sound-bars i:nth-child(2){height:13px}.sound-bars i:nth-child(3){height:9px}.sound-button[aria-pressed=true] i{animation:sound .8s infinite alternate}.sound-button i:nth-child(2){animation-delay:.25s}.sound-button i:nth-child(3){animation-delay:.5s}main{position:relative;min-height:640px;height:calc(100svh - 192px);max-height:920px}.intro{position:absolute;z-index:2;left:8%;top:12%;pointer-events:none}.intro>*{pointer-events:auto}.eyebrow{display:flex;align-items:center;gap:8px;font-size:9px;font-weight:600;letter-spacing:2px;color:var(--green);margin-bottom:25px}.eyebrow>span{height:5px;width:5px;border-radius:50%;background:var(--green)}h1{font-size:clamp(64px,6.3vw,98px);line-height:1.16;letter-spacing:-5px;margin:0;font-weight:900}.accent{color:#71957d}.english-title{font-family:Georgia,'Times New Roman',serif;font-style:italic;font-size:20px;margin:20px 0 24px;letter-spacing:-.4px}.description{font-size:12px;line-height:2.1;letter-spacing:1.3px;color:var(--muted);margin-bottom:30px}.ride-button{border-radius:30px;padding:16px 23px;background:var(--ink);color:var(--paper);display:flex;align-items:center;gap:34px;font-size:12px;letter-spacing:1px;box-shadow:0 7px 14px #243b2c13;transition:transform .2s}.ride-button:hover{transform:translateY(-3px)}#ride-icon{font-size:16px}.ride-caption{display:flex;gap:6px;align-items:center;font-size:9px;color:var(--muted);letter-spacing:.5px;margin:13px 0 0 12px}.status-dot{width:4px;height:4px;border-radius:50%;background:#78957f}.world{position:absolute;left:28%;right:0;top:-5%;bottom:60px}.world-halo{position:absolute;width:68%;aspect-ratio:1;left:18%;top:7%;border-radius:50%;background:radial-gradient(ellipse,#dce3ca88 0,#dde5d338 57%,transparent 71%);pointer-events:none}#scene{position:absolute;inset:0;touch-action:none;cursor:grab}#scene:active{cursor:grabbing}#scene canvas{display:block;width:100%;height:100%;outline:none}.scene-label{position:absolute;right:11%;top:9%;display:flex;align-items:center;gap:12px;transform:rotate(7deg);pointer-events:none}.tiny-star{font-size:36px;color:#8e9d72}.scene-label>div{font-size:11px;letter-spacing:3px}.scene-label div>span{display:block;font-size:7px;letter-spacing:1.2px;margin-top:7px;color:var(--muted)}.orbit-hint{position:absolute;bottom:10%;left:49%;transform:translateX(-50%);font-size:10px;letter-spacing:1px;color:var(--muted);pointer-events:none}.orbit-hint span{font-size:16px;margin-right:8px}.reset-view{position:absolute;bottom:8.3%;right:12%;width:35px;height:35px;background:transparent;border:1px solid var(--line);border-radius:50%;font-size:21px;color:var(--muted)}.loading{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:15px;letter-spacing:3px;background:var(--paper);transition:opacity .5s;pointer-events:none;z-index:3}.loading span{font-size:8px;letter-spacing:1px;margin-top:12px}.loading.loaded{opacity:0}.postcard{position:absolute;right:5.1%;bottom:23%;transform:rotate(7deg);font-size:12px;line-height:1.8;letter-spacing:1.7px;display:grid;justify-items:center;gap:8px;pointer-events:none}.postcard-star{color:#b9855c;font-size:35px;line-height:1}.postcard-line{width:24px;height:1px;background:var(--line)}.postcard small{font-size:7px;letter-spacing:1px}.controls{position:absolute;bottom:15px;left:50%;transform:translateX(-50%);z-index:3;display:flex;align-items:center;gap:27px;background:var(--panel);border:1px solid rgba(255,255,255,.6);box-shadow:0 14px 50px #26392d06;border-radius:18px;padding:20px 28px;backdrop-filter:blur(18px);width:650px}.control-label{font-size:10px;letter-spacing:1.1px;display:flex;justify-content:space-between;margin-bottom:12px}.weather-options{display:flex;gap:3px}.weather-options button{display:flex;align-items:center;gap:6px;font-size:10px;padding:7px 11px;border-radius:20px;background:transparent;white-space:nowrap;color:var(--muted)}.weather-options button>span{font-size:16px;line-height:14px}.weather-options button.selected{background:var(--ink);color:var(--paper)}.divider{height:41px;width:1px;background:var(--line)}.speed-control{min-width:180px}.speed-control output{font-size:9px;letter-spacing:0;color:var(--muted);margin-left:20px}.range-row{display:flex;align-items:center;gap:11px;height:28px}.range-row>span{font-size:9px;color:var(--muted)}input[type=range]{width:140px;height:3px;accent-color:var(--green);cursor:pointer}.action-controls{display:flex;gap:19px}.circle-button{display:flex;flex-direction:column;align-items:center;gap:7px;background:transparent;min-width:30px}.circle-button>span{font-size:25px;height:23px;line-height:23px}.circle-button small{font-size:9px;white-space:nowrap;letter-spacing:.5px}.circle-button:hover{color:#bf8151}.camera-icon{width:22px;height:16px!important;border:1.5px solid currentColor;border-radius:4px;position:relative;margin:4px 0 3px}.camera-icon:before{content:'';position:absolute;width:7px;height:7px;border:1.5px solid currentColor;border-radius:50%;left:5.8px;top:2.7px}.camera-icon:after{content:'';position:absolute;width:7px;height:3px;border:1.5px solid currentColor;border-bottom:0;left:5px;top:-5px;border-radius:2px 2px 0 0}footer{min-height:68px;margin:0 5.2%;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:15px;color:var(--muted);font-size:8px;letter-spacing:1px}.footer-center{font-size:10px;letter-spacing:1.5px}.footer-center span{margin:0 10px}.footer-flower{font-size:19px;vertical-align:middle;margin-left:13px}.toast{position:fixed;bottom:155px;left:50%;transform:translate(-50%,15px);background:var(--ink);color:var(--paper);padding:12px 24px;border-radius:30px;font-size:12px;opacity:0;transition:opacity .25s,transform .25s;z-index:50;pointer-events:none;white-space:nowrap}.toast.show{opacity:1;transform:translate(-50%,0)}#flash{position:fixed;inset:0;background:#fff;opacity:0;pointer-events:none;z-index:40}#flash.active{animation:flash .5s ease-out}body[data-mood=night]{--paper:#243941;--ink:#e1e8d8;--muted:#adc0b6;--green:#b5c6a1;--line:#dce5d22b;--panel:#2b4249d9}body[data-mood=night] .accent{color:#adc5ac}body[data-mood=sunset]{--paper:#f1dfcd;--ink:#644d40;--muted:#9a7b64;--green:#9c8461;--panel:#f9ebddcc}body[data-mood=sunset] .accent{color:#b17e5d}@keyframes flash{0%{opacity:.8}100%{opacity:0}}@keyframes sound{to{transform:scaleY(.4)}}
.bell-icon{position:relative;width:17px;height:17px!important;border:1.5px solid currentColor;border-radius:10px 10px 3px 3px;margin:3px 0}.bell-icon:before{content:'';position:absolute;width:23px;height:1.5px;background:currentColor;bottom:0;left:-4.5px}.bell-icon:after{content:'';position:absolute;width:4px;height:3px;border-radius:0 0 5px 5px;background:currentColor;left:5px;bottom:-5px}
dialog{width:min(700px,92vw);max-height:90svh;padding:23px;border:1px solid var(--line);border-radius:20px;color:var(--ink);background:var(--paper);box-shadow:0 30px 90px #12291d30}dialog::backdrop{background:#16291f70;backdrop-filter:blur(7px)}.photo-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.photo-heading h2{font-size:19px;letter-spacing:1px;margin:0}.photo-heading button{font-size:28px;background:transparent;width:36px;height:36px}.photo-bottom{display:flex;align-items:center;justify-content:space-between;gap:15px;padding-top:18px;font-size:11px}.photo-bottom a{border-radius:25px;background:var(--ink);color:var(--paper);padding:13px 18px;white-space:nowrap}#photo-preview{width:100%;max-height:60svh;object-fit:contain;display:block;border-radius:10px}
@media(min-width:1600px){.intro{left:11%;top:16%}.world{left:30%;right:4%}.postcard{right:7%}}@media(max-width:1100px){.intro{left:6%}h1{font-size:72px}.world{left:28%;right:-8%}.postcard{display:none}.scene-label{right:16%}.header-note{display:none}.english-title{font-size:17px}.description{font-size:11px}.controls{bottom:12px}.orbit-hint{bottom:13%}.reset-view{bottom:11%;right:18%}}
@media(min-width:721px) and (max-height:800px){.header{height:100px;padding-top:22px;padding-bottom:22px}main{min-height:520px;height:calc(100svh - 155px)}.intro{top:7%}h1{font-size:70px}.eyebrow{margin-bottom:19px}.english-title{margin:16px 0}.description{margin-bottom:22px}.controls{bottom:8px;padding-top:16px;padding-bottom:16px}.world{top:-7%;bottom:57px}.postcard{bottom:27%;right:3%}.orbit-hint{bottom:9%}.reset-view{bottom:7%}footer{min-height:55px}}
@media(max-width:720px){.header{height:92px;padding:22px 6%}.brand{font-size:12px}.brand-symbol{width:38px;height:38px;font-size:36px;line-height:31px}.sound-button{font-size:10px;padding:9px 12px}main{height:auto;min-height:950px;max-height:none}.intro{left:7%;top:21px}.eyebrow{font-size:8px;letter-spacing:1.4px;margin-bottom:19px}h1{font-size:63px;line-height:1.12;letter-spacing:-3px}.english-title{font-size:17px;margin:15px 0}.description{font-size:11px;margin:0 0 20px}.ride-button{padding:13px 18px;font-size:11px;gap:26px}.ride-caption{font-size:8px}.world{left:-10%;right:-10%;top:323px;bottom:168px}.scene-label{top:0;right:13%;gap:7px}.tiny-star{font-size:28px}.scene-label>div{font-size:9px}.scene-label div>span{font-size:6px}.orbit-hint{bottom:3%;left:51%;font-size:9px;white-space:nowrap}.reset-view{bottom:1%;right:15%}.world-halo{top:8%}.controls{bottom:15px;width:88%;padding:18px;gap:15px;flex-wrap:wrap;border-radius:16px}.weather-control{flex:1}.weather-options button{padding:6px 10px}.controls>.divider{display:none}.speed-control{order:3;flex:1;min-width:100%;border-top:1px solid var(--line);padding-top:12px}.speed-control .control-label{margin-bottom:6px}.range-row input{width:100%}.range-row{height:22px}.action-controls{gap:16px}footer{margin:0 6%;padding:20px 0;flex-wrap:wrap;font-size:7px;min-height:80px;gap:13px}footer>span:last-child{display:none}.footer-center{font-size:8px}.footer-center span{margin:0 4px}.toast{bottom:40px;max-width:90%;white-space:normal;text-align:center}.loading{font-size:11px}.loading span{font-size:7px}}@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}}
@media(min-width:721px) and (max-width:1100px){.world{right:0}}@media(max-width:720px){.world{left:0;right:0}}
