@font-face{font-family:LocalSerif;src:local('Baskerville')}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#081511;color:#f4ead9;font-family:Arial,sans-serif}button,a,input{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{font:inherit;color:inherit;border:1px solid #e5d8b83d;background:#10221fdb;padding:12px 18px;border-radius:30px;cursor:pointer;min-height:44px}button:hover{background:#30473e;border-color:#e8d5a8}button:focus-visible,a:focus-visible,input:focus-visible,canvas:focus-visible{outline:2px solid #ffdf9e;outline-offset:4px}a{color:inherit}button span{margin-left:20px}.primary{background:#ebd6af;color:#172820;border:0;padding:17px 26px}.primary:hover{background:#fff0d2}.eyebrow{font-size:10px;letter-spacing:2.7px;font-weight:600;line-height:1.5;color:#dfc99f}h1,h2{font-family:LocalSerif,Georgia,serif;font-weight:400}h2{margin:8px 0 12px;font-size:32px}header{position:fixed;inset:0 0 auto;z-index:4;display:flex;align-items:center;justify-content:space-between;padding:25px 38px;background:linear-gradient(#05100c8c,transparent)}.wordmark{display:flex;align-items:center;gap:12px;text-decoration:none;font-family:Georgia,serif;font-size:20px}nav{display:flex;gap:10px}#help-open{width:45px;padding:10px}#world,#scene,#markers{position:absolute;inset:0;width:100%;height:100%}#scene{touch-action:none;outline:none}#markers{pointer-events:none}.marker{position:absolute;pointer-events:auto;white-space:nowrap;transform:translate(-50%,-100%);font-size:11px;letter-spacing:.5px;padding:10px 15px;background:#071914c9;box-shadow:0 0 30px #edbf6925;transition:opacity .2s}.marker:before{content:'✦';color:#f0c47d;margin-right:8px}#welcome{position:absolute;inset:0;z-index:3;background:linear-gradient(90deg,#031710d9 0%,#03171083 42%,#0317100a 80%),linear-gradient(0deg,#031710c7,transparent 35%),url('media/outer-path.jpg') center/cover;display:flex;align-items:center}.welcome-content{margin:40px 9vw 0}h1{font-size:clamp(64px,7.8vw,124px);line-height:.98;letter-spacing:-4px;margin:25px 0}.intro{font-size:16px;line-height:1.8;color:#e0e1d4;margin:26px 0 30px}.birthday{font-family:Georgia,serif;font-style:italic;color:#d1d6c4;font-size:14px;margin-top:27px}.welcome-foot{position:absolute;bottom:30px;left:38px;right:38px;display:flex;justify-content:space-between;align-items:center;font-size:9px;letter-spacing:2px;color:#c8cbb6}#welcome[hidden], [hidden]{display:none!important}#location{position:absolute;bottom:145px;left:38px;pointer-events:none;max-width:340px;text-shadow:0 2px 20px #000}#location button{pointer-events:auto;text-shadow:none;margin-top:8px}#location p{font-size:13px;line-height:1.7;color:#d6dbcf;margin:0 0 10px}#walk-hint{position:absolute;bottom:104px;left:38px;font-size:11px;color:#b5c8be;letter-spacing:.5px}#walk-hint i{padding:0 8px}#home{position:absolute;right:30px;bottom:105px;font-size:22px;padding:8px 16px}#player{position:absolute;z-index:5;bottom:max(20px,env(safe-area-inset-bottom));left:30px;right:30px;display:flex;align-items:center;gap:18px;border:1px solid #e2dcbd33;background:#081c18eb;backdrop-filter:blur(20px);border-radius:14px;padding:12px 18px;box-shadow:0 8px 40px #0003}.round{border-radius:50%;width:44px;padding:10px;background:#dcca9f;color:#10271d}.now{min-width:170px;display:flex;flex-direction:column;gap:5px}.now span{font-size:8px;letter-spacing:2px;color:#9bad9a}.now strong{font-size:13px;font-weight:400}#next{border:0;padding:8px;font-size:24px}.seek-label{flex:1}input[type=range]{accent-color:#d8c591;width:100%;cursor:pointer}#elapsed{font-size:11px;font-variant-numeric:tabular-nums;color:#bfc8b8}#mute{font-size:11px;border:0;padding:8px}dialog{color:#f4ead9;background:#0c211cec;border:1px solid #c4d1b640;backdrop-filter:blur(28px);border-radius:20px;padding:28px;width:min(920px,calc(100% - 32px));max-height:calc(100dvh - 40px);box-shadow:0 25px 120px #000b}dialog::backdrop{background:#020c0bd1;backdrop-filter:blur(8px)}.dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.dialog-head .eyebrow{margin:0}.dialog-head button{flex-shrink:0}.dialog-head h2{font-size:30px}.map-layout{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin-top:15px}.map-art{background:radial-gradient(ellipse,#2c473133,transparent);border:1px solid #c6d3ad1f;border-radius:12px}.map-art p{text-align:center;font:italic 13px Georgia,serif;color:#bfc9b6}#map-svg{width:100%;height:320px}#map-svg .map-node{cursor:pointer}#map-svg text{font:12px Arial,sans-serif;fill:#dfdbc4;pointer-events:none}#song-list{display:flex;flex-direction:column;gap:6px}.song-row{display:flex;align-items:center;gap:10px;padding:7px 0;border-bottom:1px solid #d8dbb818}.song-row .number{font:12px Georgia,serif;color:#bca77e;width:22px}.song-row .track-info{flex:1}.song-row strong{display:block;font-size:13px;font-weight:400}.song-row small{font-size:10px;color:#9db5a5;display:block;margin-top:6px}.song-row button{padding:8px 12px;font-size:11px}.song-row button.listen{border:0;font-size:15px}#help{max-width:520px}#help p{font-size:14px;line-height:1.7;color:#ced9cc}.setting{display:block;padding:12px 0;font-size:14px}.setting input{accent-color:#ceba8f;margin-right:10px}#help .small{font-size:12px;color:#9daf9f}#cinema{width:min(1160px,calc(100% - 24px));background:#050908}#film{display:block;width:100%;max-height:70dvh;background:#000;margin:16px 0}#film-status{font-size:12px;color:#c1c3b2}.download{font-size:12px;color:#d7bf91;text-decoration:none}#notice{position:fixed;left:50%;top:90px;transform:translateX(-50%);z-index:10;max-width:90%;background:#152f25;border-radius:10px;font-size:13px;text-align:center;padding:12px 20px;pointer-events:none}#notice:empty{display:none}#joystick{display:none}#scene{background:url('media/outer-path.jpg') center/cover}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.no-js{position:fixed;z-index:20;bottom:20px;background:#102820;padding:20px}.standalone{overflow:auto;min-height:100%;height:auto;background:linear-gradient(#04120ad9,#04120afa),url('media/canopy.jpg') center/cover fixed}.standalone main{max-width:1160px;margin:110px auto 40px;padding:20px}.standalone video{width:100%;max-height:70vh;background:#000}.standalone .caption{display:flex;justify-content:space-between;align-items:center}.standalone h1{font-size:48px;letter-spacing:-1px;margin:20px 0}.standalone p{color:#acbeaf;font-size:13px}
@media(pointer:coarse){#joystick{display:block;position:absolute;left:24px;bottom:130px;width:92px;height:92px;border:1px solid #d4d9b952;border-radius:50%;background:#102a207d;touch-action:none}#joystick span{display:block;width:38px;height:38px;border-radius:50%;background:#e2d4ad90;position:absolute;left:26px;top:26px;pointer-events:none}#walk-hint{display:none}#location{bottom:250px}}
@media(max-width:650px){header{padding:18px 20px}.wordmark{font-size:16px;gap:7px}.wordmark img{width:24px;height:24px}nav{gap:6px}nav button{font-size:11px;padding:10px 12px}nav button span{display:none}#help-open{width:44px}.welcome-content{margin:10px 28px 0}h1{font-size:76px;letter-spacing:-3px}.intro{font-size:14px}#welcome{background-position:62% center}.welcome-foot{left:28px;right:28px;bottom:25px;font-size:7px;letter-spacing:1px}.welcome-foot span:last-child{display:none}#location{left:24px;max-width:260px}#location h2{font-size:29px}#location p{font-size:12px}#player{left:12px;right:12px;bottom:max(12px,env(safe-area-inset-bottom));padding:10px 12px;gap:12px;flex-wrap:wrap}.now{flex:1;min-width:120px}.seek-label{flex-basis:calc(100% - 65px);order:5}#elapsed{order:6}#mute{font-size:10px}#home{right:24px;bottom:144px}#walk-hint{left:24px;font-size:9px;bottom:120px}.map-layout{grid-template-columns:1fr;gap:12px}.map-art{display:none}dialog{padding:20px;border-radius:15px}.dialog-head h2{font-size:27px}.dialog-head button{padding:8px 12px;font-size:11px}#cinema .dialog-head h2{font-size:28px}#cinema{padding:15px}#film{max-height:65dvh}.marker{font-size:10px;padding:9px 12px}.standalone main{margin-top:80px}.standalone .caption{display:block}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
@media(max-height:500px){.welcome-content{margin-top:55px}h1{font-size:48px;margin:10px 0}.intro{margin:10px 0}.birthday{margin:12px 0}.welcome-foot{display:none}#location{bottom:130px}#location p{display:none}#joystick{bottom:110px}#player{bottom:8px}dialog{max-height:calc(100dvh - 16px)}}
/* Keep projected labels inside the visual viewport on mobile browsers. */
#markers{overflow:hidden;contain:layout paint}.marker{max-width:220px;overflow:hidden;text-overflow:ellipsis}

/* Album and original downloads. */
.map-keepsake{margin:20px 0 0;text-align:right;font-size:13px;color:#dfc99f}.keepsakes main{max-width:1000px}.release{display:grid;grid-template-columns:260px 1fr;gap:38px;align-items:center;margin:30px 0 48px}.release-art{width:100%;aspect-ratio:1;object-fit:cover;border-radius:10px}.release h1{font-size:58px}.release .release-note{font:italic 17px/1.7 Georgia,serif;color:#dfdfcf}.keepsake-button{display:inline-block;text-decoration:none;border-radius:30px;font-size:14px;margin-top:10px}.keepsake-tracks{list-style:none;padding:0}.keepsake-tracks li{display:flex;justify-content:space-between;align-items:center;gap:20px;border-top:1px solid #d8dbb826;padding:24px 0}.keepsake-tracks li>div{min-width:0}.keepsake-tracks h2{font-size:26px;margin:8px 0 16px}.keepsake-tracks audio{display:block;width:320px;max-width:100%;height:44px}.keepsake-tracks .download,.keepsake-actions .download{padding:14px 0;display:inline-block}.film-keepsake{padding:30px 0 40px;border-top:1px solid #d8dbb826}.keepsake-actions{display:flex;align-items:center;gap:24px}.keepsakes header>a:last-child{font-size:13px}.wordmark{min-width:0}
@media(max-width:650px){.wordmark{font-size:15px}.release{grid-template-columns:1fr;gap:20px;margin-top:10px}.release-art{width:180px}.release h1{font-size:44px}.keepsake-tracks li{display:block}.keepsake-tracks audio{width:100%}.keepsake-actions{display:block}.keepsakes header{gap:14px}.keepsakes header>a:last-child{font-size:11px;white-space:nowrap}}
@media(max-width:380px){header{padding:16px 12px}.wordmark{font-size:13px;gap:5px}.wordmark img{width:20px;height:20px}nav button{padding:10px 8px}.welcome-content{margin-left:22px}.standalone header>a:last-child{font-size:11px}}
