@import url('./fonts/bodoni-moda.css');
@font-face{font-family:Inter;src:url('./fonts/inter-latin-wght-normal.woff2') format('woff2');font-weight:100 900;font-display:swap}
@font-face{font-family:JetBrains;src:url('./fonts/jetbrains-mono-latin-500-normal.woff2') format('woff2');font-weight:500;font-display:swap}
:root{--ink:#08111e;--paper:#eeeae3;--muted:#a5adb8;--gold:#dfc18a;--hair:rgba(223,229,239,.12);--serif:'Bodoni Moda',Didot,'Times New Roman',serif;--sans:Inter,Arial,sans-serif;color-scheme:dark}
*{box-sizing:border-box}html,body{margin:0;padding:0}html{background:var(--ink);scrollbar-width:thin;scrollbar-color:#65707a #08111e}body{font-family:var(--sans);color:var(--paper);font-size:14px;overflow-x:hidden;background:#08111e}body.loading{overflow:hidden}button,input,a{-webkit-tap-highlight-color:transparent}button,input{font:inherit}button{color:inherit;cursor:pointer}button{border:0;background:none}button:disabled{cursor:wait;opacity:.5}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--gold);outline-offset:5px}button:active{transform:scale(.975)}button{transition:background .2s,color .2s,border-color .2s,opacity .2s}a{color:var(--gold)}button[hidden],[hidden]{display:none!important}kbd{font:9px var(--sans);display:inline-grid;place-content:center;min-width:17px;min-height:17px;border:1px solid #ffffff24;border-radius:3px;padding:1px 3px;margin-left:7px;opacity:.65}button:hover kbd{opacity:1}
#scene{position:fixed;inset:0;width:100%;height:100dvh;display:block;z-index:0;outline:0}#scene-wash{position:fixed;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg,#02071344 0%,transparent 48%),linear-gradient(0deg,#02081366,transparent 25%,transparent 85%,#02071333)}#labels{position:fixed;inset:0;z-index:4;pointer-events:none;overflow:hidden}.map-label{pointer-events:auto;position:absolute;color:#eee7dc;font-size:9px;letter-spacing:1.7px;font-weight:600;text-align:center;white-space:nowrap;text-shadow:0 1px 12px #08111e,0 1px 3px #08111e;padding:7px 11px;will-change:transform;transform-origin:center}.map-label:hover{color:#fff;background:#0a142c99;border-radius:5px}.map-label small{display:block;font-size:9px;letter-spacing:1px;color:var(--gold);margin-top:6px;font-weight:500}.map-label:after{content:'';display:block;width:1px;height:20px;background:linear-gradient(#dfc18a77,transparent);margin:6px auto 0}.progress-line{position:fixed;top:0;left:0;right:0;height:2px;z-index:60;background:#ffffff04}.progress-line i{display:block;background:var(--gold);width:100%;height:100%;transform:scaleX(0);transform-origin:left;box-shadow:0 0 7px #dfc18a66}
.glass{background:linear-gradient(135deg,rgba(8,15,26,.90),rgba(10,23,37,.76));border:1px solid var(--hair);box-shadow:0 10px 40px #0002;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}.tools{position:fixed;top:18px;right:20px;display:flex;align-items:center;gap:8px;z-index:40;transition:opacity .5s}.tool{border:1px solid var(--hair);border-radius:30px;padding:10px 14px;background:#08111ebd;backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:center;white-space:nowrap;letter-spacing:1.8px;font-size:9px;font-weight:700;height:37px}.tool-icon{font-size:16px;margin-right:8px;font-weight:400;line-height:1}.tool:hover,.tool[aria-pressed=true]:first-child{border-color:#dfc18a77;background:#192334;color:var(--gold)}.experience-button{height:38px;letter-spacing:2px;font-size:10px;font-weight:800;border-radius:24px;background:var(--gold);color:#1d2025;padding:0 22px;box-shadow:0 0 28px #dcb46a13;white-space:nowrap}.experience-button span{font-size:10px;margin-right:7px}.experience-button:hover,.hero-experience:hover{background:#eddaa9}.settings-button{border:1px solid var(--hair);border-radius:50%;width:38px;height:38px;background:#08111ebd;backdrop-filter:blur(10px);font-size:19px;color:#adb6c2}.settings-button:hover{color:var(--gold);border-color:#dfc18a77}.settings-panel{position:fixed;z-index:55;right:20px;top:68px;width:310px;border-radius:14px;padding:22px}.settings-title{letter-spacing:2.7px;font-size:10px;display:flex;justify-content:space-between;align-items:center;color:var(--gold);margin-bottom:28px;font-weight:700}.settings-title button{font-size:23px;padding:0;line-height:15px}.setting-label{display:block;letter-spacing:1.5px;font-size:9px;color:#a5adb8;margin-bottom:10px}.light-options,.quality-options{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;margin-bottom:24px}.light-options button,.quality-options button{border-radius:5px;border:1px solid var(--hair);background:#0d192944;padding:9px 5px;font-size:10px}.light-options button:hover,.quality-options button:hover,.selected{background:#dfc18a20!important;border-color:#dfc18a66!important;color:var(--gold)!important}.switch-row{display:flex;justify-content:space-between;align-items:center;margin:16px 0;font-size:12px;color:#c6ccd4}.switch-row input{appearance:none;width:29px;height:16px;border-radius:15px;background:#334052;position:relative;cursor:pointer;margin:0}.switch-row input:after{content:'';position:absolute;width:10px;height:10px;border-radius:50%;background:#8992a2;left:3px;top:3px;transition:transform .2s}.switch-row input:checked{background:#766545}.switch-row input:checked:after{background:#f3dfb7;transform:translateX(13px)}.settings-note{font-size:10px;line-height:1.7;color:#7f8b9d;border-top:1px solid var(--hair);padding-top:16px;margin:22px 0 0}
.veil{position:fixed;inset:0;z-index:100;background:radial-gradient(ellipse at 50% 40%,#162233c7,#050a13f2);backdrop-filter:blur(12px);display:flex;flex-direction:column;align-items:center;justify-content:center;transition:opacity 1.1s,visibility 1.1s}.entered .veil{opacity:0;visibility:hidden;pointer-events:none}.veil-mark{font-size:30px;color:var(--gold);margin-bottom:25px;opacity:.85}.veil h1{font:400 clamp(65px,8vw,100px)/1 var(--serif);letter-spacing:-4px;margin:0}.veil-subtitle{font:italic 28px var(--serif);letter-spacing:3px;color:#c8b58e;margin:10px 0 38px}.load-line{width:220px;height:1px;background:#ffffff20;margin:0 auto 16px}.load-line i{display:block;background:var(--gold);height:1px;width:0;transition:width .3s}.load-copy{font:8px var(--sans);letter-spacing:2.5px;color:#8391a5;margin:0 0 26px}.begin{padding:16px 25px;border:1px solid #dfc18a66;border-radius:50px;font-size:9px;font-weight:700;letter-spacing:2px;background:#dfc18a15;min-width:250px}.begin:not(:disabled){background:var(--gold);color:#141d28;border-color:var(--gold)}.begin span{margin-left:18px;font-size:14px}.sound-invitation{font-size:8px;color:#717e91;letter-spacing:2.1px;margin-top:22px}.load-error{max-width:380px;text-align:center;line-height:1.6;color:#ecc496;padding:18px}
#journey{position:relative;height:13000px;pointer-events:none}
.story{position:fixed;left:12px;top:12px;bottom:12px;width:326px;border-radius:15px;z-index:30;transform:translateX(calc(-100% - 20px));opacity:0;transition:transform .6s cubic-bezier(.2,.8,.2,1),opacity .5s;overflow:hidden}.story.shown{transform:translateX(0);opacity:1}.story-content{height:100%;overflow:auto;padding:29px 27px 32px;scrollbar-width:thin;scrollbar-color:#64738444 transparent;overscroll-behavior:contain}.close-story{position:absolute;right:12px;top:12px;width:26px;height:26px;background:#ffffff06;border:1px solid #ffffff14;border-radius:7px;font-size:20px;line-height:20px;color:#98a4b3;z-index:2}.close-story:hover{color:#fff;background:#ffffff15}.story-eyebrow{font-size:8px;letter-spacing:2.1px;color:#8c99a8;font-weight:700;margin:5px 20px 18px 0;line-height:1.8}.story-eyebrow strong{color:var(--gold);font-weight:600}.story h2{font:400 37px/1.08 var(--serif);letter-spacing:-1.9px;margin:0 0 26px;color:#eee9e3}.story h2 em{color:var(--gold);font-weight:400}.story-metrics{display:grid;grid-template-columns:1fr 1fr;margin:0 0 25px;border-bottom:1px solid var(--hair);padding-bottom:23px}.story-metrics>div+div{border-left:1px solid var(--hair);padding-left:17px}.story-metrics span{font-size:8px;letter-spacing:1.3px;color:#8b98ab;display:block;margin-bottom:12px;font-weight:600}.story-metrics strong{font:500 23px var(--sans);letter-spacing:-.8px;display:block}.story-metrics small{font-size:10px;color:#92a1b3;letter-spacing:0;font-weight:400}.story-metrics i{font-size:7px;letter-spacing:1.3px;font-style:normal;color:var(--gold);display:block;margin-top:9px}.stage-track{display:flex;align-items:center;gap:12px;margin:0 0 27px}.stage-track span{font:8px JetBrains,monospace;color:#7e8c9f}.stage-track>div{height:1px;background:#ffffff22;flex:1;position:relative}.stage-track i{display:block;height:1px;background:var(--gold);width:var(--stage-progress,0%)}.story p.body-copy{font-size:11px;line-height:1.95;color:#b4c0ce;margin:0 0 18px}.story p.body-copy strong{font-weight:600;color:#dfdfe0}.story-facts{border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);padding:18px 0;font-size:8px;font-weight:600;letter-spacing:1.25px;line-height:2.2;color:#96a4b6;margin:26px 0}.story-facts b{color:var(--gold);margin:0 8px}.field-label{font-size:8px;letter-spacing:2.5px;font-weight:700;color:#96a4b6;margin-bottom:22px}.field-label:before{content:'';display:inline-block;width:5px;height:5px;background:var(--gold);vertical-align:middle;margin:-2px 10px 0 0}.field-row{display:grid;grid-template-columns:82px 1fr;gap:12px;margin:0 0 18px}.field-row dt{font-size:8px;letter-spacing:1px;color:#7f8a9a;font-weight:700}.field-row dd{margin:0;font-size:10px;line-height:1.75;color:#aebdca}.field-row dd strong{color:#d8c399;font-weight:500}.stage-navigation{display:flex;justify-content:space-between;border-top:1px solid var(--hair);margin-top:29px;padding-top:18px}.stage-navigation button{font-size:9px;letter-spacing:1.2px;color:#aeb4bb;padding:6px 0}.stage-navigation button:hover{color:var(--gold)}.open-story{position:fixed;left:14px;top:18px;z-index:30;border-radius:25px;padding:12px 15px;font-size:8px;letter-spacing:1.5px}.open-story span{font-size:12px;margin-right:10px}
.chapter-title{position:fixed;left:53%;top:46%;transform:translate(-50%,-50%);z-index:3;text-align:center;pointer-events:none;opacity:0;transition:opacity .65s;mix-blend-mode:screen;text-shadow:0 3px 22px #06111b55}.chapter-title span{font:400 clamp(94px,10vw,170px)/1 var(--serif);display:block;color:#dfc18a77;letter-spacing:-8px}.chapter-title em{font:italic clamp(20px,2vw,30px) var(--serif);display:block;color:#e8d4ad;margin-top:-10px;letter-spacing:.3px}.chapter-title.show{opacity:.75}
.telemetry{position:fixed;bottom:19px;right:23px;z-index:25;display:flex;border-radius:12px;overflow:hidden;transition:opacity .5s,transform .5s}.telemetry>div{padding:12px 18px;min-width:102px}.telemetry>div+div{border-left:1px solid var(--hair)}.telemetry span{font-size:7px;letter-spacing:1.5px;color:#8190a5;display:block;font-weight:700;margin-bottom:5px}.telemetry strong{display:block;font-family:var(--sans);font-size:22px;font-weight:650;letter-spacing:-1px;white-space:nowrap}.telemetry small{font:9px var(--sans);margin-left:5px;letter-spacing:0;color:#9aa7b6}.telemetry .word-stat{font-size:15px;line-height:27px;letter-spacing:-.3px}.telemetry .gold{font-size:17px;line-height:27px;color:var(--gold);letter-spacing:0}.scene-credit{position:fixed;bottom:8px;left:15px;z-index:24;color:#91a0ad99;font-size:7px;letter-spacing:.2px;text-shadow:0 1px 4px #000;max-width:50vw;transition:opacity .3s}.scene-credit button{text-decoration:underline;font-size:7px;color:#a9b8c5;padding:0 4px}.entered .scene-credit{opacity:1}body:not(.entered) .tools,body:not(.entered) .telemetry,body:not(.entered) .scene-credit{opacity:0}.panel-shown .scene-credit{left:352px;max-width:28vw}
.free-guide{position:fixed;left:50%;bottom:108px;transform:translateX(-50%);z-index:40;display:flex;gap:18px;align-items:center;padding:13px 17px;border-radius:9px;white-space:nowrap;font-size:9px}.free-guide b{font-size:8px;letter-spacing:2px;color:var(--gold);margin-right:8px}.free-guide span{font-weight:600;letter-spacing:.5px}.free-guide i{font-size:9px;color:#8290a3;font-style:normal;margin-left:4px}.free-guide button{font-size:8px;letter-spacing:1px;color:#bcc6d3}.free-light{position:fixed;left:50%;bottom:73px;transform:translateX(-50%);z-index:40;display:flex;align-items:center;gap:12px;white-space:nowrap;color:#adbacb}.free-light span{font-size:8px;letter-spacing:2px;color:var(--gold);margin-right:5px}.free-light button{font-size:9px;background:#08111eaa;border:1px solid #ffffff15;border-radius:20px;padding:6px 10px}.free-light button:hover{color:var(--gold);border-color:#dfc18a66}.free-flight #scene{cursor:grab;touch-action:none}.free-flight #scene:active{cursor:grabbing}.free-flight .telemetry{opacity:0}.free-flight .hero,.free-flight .story,.free-flight .open-story{opacity:0;pointer-events:none}
.cinema-bar{position:fixed;z-index:45;left:50%;bottom:25px;transform:translateX(-50%);width:min(650px,calc(100vw - 50px));border-radius:11px;padding:12px 18px}.cinema-top{display:flex;align-items:center;gap:16px;font-size:10px}.cinema-top>button:first-child{width:23px;height:23px;color:var(--gold);font-size:15px}.cinema-top>span:nth-child(2){flex:1;color:#c4cdd8;font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cinema-top>span:nth-child(3){font:9px JetBrains,monospace;color:#8593a6}.cinema-top>button:last-child{font-size:8px;letter-spacing:1px}.cinema-bar input[type=range]{display:block;width:100%;height:2px;margin:12px 0 13px;accent-color:var(--gold);cursor:ew-resize}.cinema-bottom{display:flex;justify-content:space-between}.cinema-bottom button{padding:4px 9px;font-size:9px;border-radius:3px;margin-right:4px;color:#9eacbf;border:1px solid transparent}.cinema-bottom button:hover{background:#ffffff0a;color:#fff}.letterbox{position:fixed;left:0;right:0;height:0;background:#020408;z-index:20;pointer-events:none;transition:height .8s}.letterbox.top{top:0}.letterbox.bottom{bottom:0}.cinematic .letterbox{height:6vh}.cinematic .tools{opacity:0;pointer-events:none}.cinematic .telemetry{transform:translateY(-120px);opacity:.8}.cinematic .scene-credit{bottom:6.7vh}.cinematic .story{top:calc(6vh + 12px);bottom:calc(6vh + 12px)}.notice{position:fixed;z-index:85;left:50%;top:82px;transform:translateX(-50%);padding:14px 20px;font-size:11px;border-radius:9px;max-width:85vw;text-align:center}
.ledger{position:relative;z-index:15;min-height:100dvh;background:linear-gradient(180deg,#08111ee0,#08111ef5 50%,#08111e);border-top:1px solid var(--hair);backdrop-filter:blur(30px);-webkit-backdrop-filter:blur(30px);padding:115px 8vw 30px}.ledger-inner{max-width:1160px;margin:auto}.ledger-eyebrow{font-size:10px;letter-spacing:3px;color:var(--gold);font-weight:600;margin:0 0 26px}.ledger h2{font:400 clamp(49px,5.5vw,88px)/1.1 var(--serif);letter-spacing:-3px;max-width:850px;margin:0 0 25px}.ledger h2 em{color:var(--gold);font-weight:400}.ledger-lead{font-size:15px;line-height:1.9;color:#96a7ba;max-width:580px;margin-bottom:70px}.ledger-numbers{display:grid;grid-template-columns:1.1fr 1fr 1fr;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);margin-bottom:60px}.ledger-numbers>div{padding:28px 30px 35px;border-right:1px solid var(--hair)}.ledger-numbers>div:first-child{padding-left:0}.ledger-numbers>div:last-child{border:0}.ledger-numbers strong{font:400 80px var(--serif);color:#ece6db;letter-spacing:-3px;display:block}.ledger-numbers strong em{font-size:35px;color:var(--gold);font-weight:400;margin-left:4px}.ledger-numbers span{font-size:8px;letter-spacing:2px;color:#8190a3;display:block;margin-top:4px}.route-list{display:grid;grid-template-columns:1fr 1fr;gap:0 55px}.route-row{display:flex;text-align:left;align-items:center;gap:20px;border-bottom:1px solid var(--hair);padding:22px 0}.route-row>span:first-child{font:italic 24px var(--serif);color:#9a865f;min-width:24px}.route-row>span:nth-child(2){flex:1}.route-row strong{display:block;font-size:12px;font-weight:500;margin-bottom:6px}.route-row small{font-size:9px;color:#77889b}.route-row>span:last-child{font-size:18px;color:#8593a1}.route-row:hover strong,.route-row:hover>span:last-child{color:var(--gold)}.ledger-bottom{display:grid;grid-template-columns:1fr auto;gap:80px;align-items:end;padding:65px 0 90px}.ledger-bottom>div{max-width:570px}.ledger h3{font:400 31px var(--serif);letter-spacing:-.8px;margin:0 0 18px}.ledger-bottom p{font-size:11px;color:#8091a7;line-height:1.9}.source-link{font-size:8px;letter-spacing:1.7px;color:#bcac8b;padding:15px 0 0}.restart{border-bottom:1px solid var(--gold);padding:20px 0;font-size:10px;letter-spacing:2px;color:var(--gold);white-space:nowrap}.restart span{font-size:24px;margin-left:24px}.ledger footer{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--hair);padding:24px 0;color:#778293;font-size:8px;letter-spacing:2px}.ledger footer>span:first-child{font:400 25px var(--serif);letter-spacing:1px;color:#c9c7c1}.ledger footer i{font-size:15px;color:var(--gold);letter-spacing:0;margin-left:12px}.in-ledger .telemetry,.in-ledger .scene-credit,.in-ledger .tools{opacity:0;pointer-events:none}.in-ledger .story{opacity:0;pointer-events:none}.sources-dialog{color:#b9c3d0;border-radius:18px;padding:38px;max-width:570px;width:calc(100% - 30px);max-height:85dvh}.sources-dialog::backdrop{background:#030812a8;backdrop-filter:blur(9px)}.sources-dialog>button{float:right;font-size:27px;line-height:20px;color:#9aabba}.sources-dialog h2{font:400 35px var(--serif);color:#ede5d5;margin:4px 0 25px}.sources-dialog p{font-size:12px;line-height:1.85}.sources-dialog a{color:#d6bd8f}.reduced-motion .chapter-title{display:none}
@media(min-width:1700px){.story{width:375px}.story-content{padding:33px 31px}.story h2{font-size:43px}.story p.body-copy{font-size:12px}.story-eyebrow{font-size:9px}.field-row{grid-template-columns:94px 1fr}.field-row dd{font-size:11px}.field-row dt{font-size:9px}.panel-shown .scene-credit{left:400px}.telemetry>div{min-width:118px}}
@media(max-width:1100px){.tool-label{display:none}.tool{padding:9px 11px}.tool-icon{margin:0}.tool kbd{display:none}.story{width:290px}.story-content{padding:26px 22px}.story h2{font-size:33px}.story-metrics strong{font-size:20px}.telemetry>div{min-width:87px;padding:11px 12px}.telemetry strong{font-size:20px}.panel-shown .scene-credit{left:315px}.scene-credit{max-width:45vw}.free-guide{gap:10px;font-size:8px}.free-guide b{display:none}}
@media(max-width:700px){.tools{top:15px;right:13px;gap:6px}.tool{width:34px;height:34px;padding:7px}.settings-button{width:34px;height:34px;font-size:17px}.experience-button{height:34px;padding:0 15px;font-size:8px;letter-spacing:1.4px}.settings-panel{right:12px;top:59px;width:285px}.telemetry{left:12px;right:12px;bottom:25px;border-radius:10px;display:grid;grid-template-columns:repeat(4,1fr)}.telemetry>div{padding:10px 11px;min-width:0}.telemetry>div:last-child{display:none}.telemetry span{font-size:6px;letter-spacing:1px}.telemetry strong{font-size:18px}.telemetry .word-stat{font-size:11px;line-height:22px}.telemetry small{font-size:7px;margin-left:3px}.scene-credit{max-width:calc(100vw - 25px);left:13px;bottom:8px;font-size:6px}.scene-credit button{font-size:6px}.panel-shown .scene-credit{left:13px;max-width:calc(100vw - 25px)}.story{top:auto;left:12px;right:12px;bottom:105px;width:auto;height:min(40dvh,340px);border-radius:13px;transform:translateY(120%);background:linear-gradient(135deg,#08111efa,#0a172de8)}.story.shown{transform:translateY(0)}.story-content{padding:21px 22px;display:block}.story h2{font-size:30px;letter-spacing:-1px;margin:0 0 15px;max-width:90%}.story-eyebrow{font-size:7px;letter-spacing:1.5px;margin:0 0 9px}.story-metrics{padding:12px 0;margin-bottom:14px}.story-metrics span{font-size:7px;margin-bottom:6px}.story-metrics strong{font-size:20px}.story-metrics i{display:none}.story p.body-copy{font-size:11px;line-height:1.8}.story-facts{margin:15px 0}.stage-track{margin-bottom:17px}.open-story{top:auto;bottom:105px;left:13px;padding:10px 14px;font-size:7px}.chapter-title{left:50%;top:36%}.chapter-title span{font-size:100px}.chapter-title em{font-size:23px}.free-guide{bottom:77px;width:calc(100% - 24px);white-space:normal;gap:10px;justify-content:space-between;font-size:8px}.free-guide span:nth-of-type(n+2){display:none}.free-guide span:first-of-type i{font-size:8px}.free-light{bottom:30px;width:100%;justify-content:center;gap:5px}.free-light>span{display:none}.free-light button{font-size:7px;padding:7px 8px}.cinema-bar{bottom:14px;width:calc(100vw - 24px);padding:11px 13px}.cinema-top{gap:9px}.cinema-top>span:nth-child(2){font-size:9px}.cinema-top>span:nth-child(3){font-size:7px}.cinema-top>button:last-child{font-size:7px}.cinema-top kbd{display:none}.cinematic .telemetry{transform:translateY(-105px)}.cinematic .story{bottom:calc(210px + 1vh);top:auto;height:34dvh}.cinematic .scene-credit{display:none}.ledger{padding:75px 7vw 20px}.ledger h2{font-size:49px;letter-spacing:-2px}.ledger-eyebrow{font-size:8px;letter-spacing:2px}.ledger-lead{font-size:12px;margin-bottom:40px}.ledger-numbers{margin-bottom:30px}.ledger-numbers>div{padding:20px 14px}.ledger-numbers strong{font-size:55px}.ledger-numbers strong em{font-size:25px}.ledger-numbers span{font-size:6px;letter-spacing:1.2px;line-height:1.8}.route-list{grid-template-columns:1fr;gap:0}.route-row{padding:19px 0}.ledger-bottom{grid-template-columns:1fr;gap:20px;padding:45px 0 55px}.restart{justify-self:start;font-size:9px}.ledger footer{gap:20px}.ledger footer>span:last-child{font-size:6px}.ledger footer>span:first-child{font-size:22px}.ledger footer i{display:block;font-size:13px;margin:5px 0 0}.sources-dialog{padding:27px}.sources-dialog h2{font-size:31px}.sources-dialog p{font-size:11px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}.chapter-title{display:none}}

/* Route selection and source-map consultation. No scene is loaded until a route is chosen. */
.route-picker{position:fixed;inset:0;z-index:120;overflow:auto;background:#09121b;isolation:isolate}.picker-backdrop{position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#071119ed,#091521cc 60%,#08121abf),url('./assets/satellite-4096.jpg') center 42%/cover;opacity:.9}.picker-inner{width:min(1380px,88vw);min-height:100dvh;margin:auto;display:flex;flex-direction:column;justify-content:center;padding:70px 0 30px}.picker-kicker{font-size:9px;letter-spacing:3.5px;color:#a2afb9;margin:0 0 22px}.picker-inner>h1{font:400 clamp(78px,10.5vw,167px)/.9 var(--serif);letter-spacing:-.055em;margin:0;color:#e6e3dc}.picker-inner>h1 em{display:block;font:italic clamp(30px,3.2vw,48px)/1.4 var(--serif);letter-spacing:2px;color:var(--gold);margin-top:16px}.picker-intro{font-size:12px;letter-spacing:.4px;color:#a0acb8;margin:18px 0 38px}.route-options{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid #e4d2ae45;border-bottom:1px solid #e4d2ae28}.route-choice{text-align:left;padding:28px 30px 25px;position:relative;border-right:1px solid #e4d2ae28;background:#0b162558;transition:background .25s}.route-choice:first-child{padding-left:23px}.route-choice:last-child{border-right:0}.route-choice:hover,.route-choice:focus-visible{background:#dbc18b17}.choice-type{display:block;letter-spacing:2px;font-size:8px;color:#99a9b7}.route-choice>strong{font:400 clamp(65px,7.8vw,118px)/1.4 var(--serif);letter-spacing:-5px;display:block;color:#e8e4dc}.route-choice>strong small{font:italic 29px var(--serif);letter-spacing:-.6px;color:var(--gold);margin-left:10px}.choice-bottom{font-size:10px;color:#a7b4bf;display:flex;align-items:center;justify-content:space-between;gap:10px}.choice-bottom b{font-size:24px;color:var(--gold);font-weight:400}.picker-note{font-size:10px;line-height:1.8;color:#7f929f;margin:19px 0 30px}.picker-footer{display:flex;justify-content:space-between;font-size:8px;letter-spacing:2.4px;color:#8a989f;margin-top:42px}.picker-footer>span:first-child{color:#c7b795}.choosing-route #scene,.choosing-route #scene-wash,.choosing-route #labels,.choosing-route #journey,.choosing-route #ledger,.choosing-route .progress-line,.viewing-map #scene,.viewing-map #scene-wash,.viewing-map #labels,.viewing-map #journey,.viewing-map #ledger,.viewing-map .progress-line{display:none}.choosing-route,.viewing-map{overflow:hidden!important}.change-route{position:fixed;top:18px;left:20px;z-index:112;border-radius:24px;padding:11px 15px;font-size:8px;letter-spacing:1.6px;display:flex;align-items:center;gap:10px;color:#c2cbd1;white-space:nowrap}.change-route>span{font-size:14px;color:var(--gold)}.change-route>b{border-left:1px solid #ffffff24;padding-left:11px;font-size:9px;font-weight:600;color:var(--gold);letter-spacing:1px}.change-route:hover{border-color:#dfc18a77;background:#152235}.panel-shown .change-route{left:352px}.cinematic .change-route{top:calc(6vh + 15px)}.in-ledger .change-route{opacity:1;pointer-events:auto}.map-viewer{position:fixed;inset:0;background:#0b131c;z-index:110;overflow:hidden}.map-header{position:absolute;left:5vw;right:5vw;top:80px;display:flex;justify-content:space-between;align-items:flex-end;gap:25px;pointer-events:none;z-index:2}.map-header p{font-size:8px;letter-spacing:2px;color:#8e9fab;margin:0 0 6px}.map-header h1{font:400 52px/.95 var(--serif);letter-spacing:-2px;margin:0;color:#e1e1db}.map-header h1 em{font-size:30px;font-weight:400;color:var(--gold);margin-left:3px}.map-header .map-source{font-size:10px;letter-spacing:.2px;color:#a6b2bb;line-height:1.6}.map-source span{color:var(--gold);margin:0 7px}.map-viewport{position:absolute;inset:162px 4vw 100px;overflow:hidden;border:1px solid #8e9aab25;background:#080f16;border-radius:8px;touch-action:none;outline-offset:3px!important}.map-viewport img{position:absolute;top:50%;left:50%;max-width:none;max-height:none;transform-origin:center;user-select:none;will-change:transform;transition:opacity .3s}.map-viewport.zoomed{cursor:grab}.map-viewport.dragging{cursor:grabbing}.map-viewport>p{position:absolute;left:20px;right:20px;top:45%;text-align:center;color:#b6c3cb;font-size:12px}.map-controls{position:absolute;bottom:38px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:10px;border-radius:40px;padding:8px 14px;z-index:4;white-space:nowrap}.map-controls button{padding:7px 9px;color:#d5dce1;font-size:18px;line-height:1}.map-controls button:disabled{cursor:default;opacity:.25}.map-controls output{font:10px JetBrains,monospace;color:#99a9b8;min-width:43px;text-align:center}.map-controls i{width:1px;height:15px;background:#ffffff25;margin:0 6px}.map-controls #map-fit,.map-controls a{font-size:9px;letter-spacing:1px;padding:9px;color:var(--gold);text-decoration:none}.map-controls a{border-left:1px solid #ffffff20;padding-left:20px}.map-controls button:hover:not(:disabled),.map-controls a:hover{color:#fff}.map-hint{position:absolute;bottom:6px;text-align:center;width:100%;font-size:7px;letter-spacing:1.6px;color:#738795}.map-hint span{margin:0 10px;color:#b29d76}.viewing-map .change-route{background:#142131}
.site-back{position:absolute;top:18px;left:20px;z-index:2;border-radius:24px;padding:11px 16px;font-size:10px;letter-spacing:1.6px;display:flex;align-items:center;gap:10px;color:#c2cbd1;text-decoration:none;white-space:nowrap}.site-back>span{font-size:14px;color:var(--gold)}.site-back:hover,.site-back:focus-visible{border-color:#dfc18a77;background:#152235;color:#fff}
@media(min-width:1700px){.panel-shown .change-route{left:400px}}
@media(max-width:1100px){.panel-shown .change-route{left:310px}.route-choice{padding:24px 19px}.picker-inner{width:88vw}.change-route{left:16px}.change-route>b{display:none}}
@media(max-width:700px){.picker-inner{width:86vw;padding:52px 0 25px;justify-content:flex-start}.picker-kicker{font-size:7px;letter-spacing:2px;margin-bottom:20px}.picker-inner>h1{font-size:23vw}.picker-inner>h1 em{font-size:32px;letter-spacing:1px;margin-top:13px}.picker-intro{font-size:11px;margin:12px 0 27px}.route-options{grid-template-columns:1fr 1fr}.route-choice{padding:18px 19px!important}.route-choice:nth-child(2){border-right:0}.route-choice:nth-child(-n+2){border-bottom:1px solid #e4d2ae28}.choice-type{font-size:6px;letter-spacing:1.6px}.route-choice>strong{font-size:70px;line-height:1.3;letter-spacing:-3px}.route-choice>strong small{font-size:23px;margin-left:5px}.choice-bottom{font-size:8px;gap:4px}.choice-bottom b{font-size:20px}.picker-note{font-size:8px;margin:15px 0 20px}.picker-footer{font-size:6px;letter-spacing:1.3px;margin-top:auto;padding-top:17px}.change-route,.panel-shown .change-route{left:12px;top:15px;padding:9px 11px;font-size:0;gap:0;min-width:33px;min-height:34px;justify-content:center}.change-route>span{font-size:16px}.viewing-map .change-route{font-size:8px;gap:10px;padding:10px 15px}.cinematic .change-route{top:calc(6vh + 12px)}.map-header{left:5vw;right:5vw;top:75px;gap:15px}.map-header h1{font-size:40px}.map-header h1 em{font-size:25px}.map-header .map-source{font-size:8px;max-width:170px;text-align:right}.map-header p{font-size:7px;letter-spacing:1.3px}.map-viewport{inset:145px 12px 98px;border-radius:5px}.map-controls{bottom:37px;gap:3px;padding:8px}.map-controls button{padding:7px}.map-controls output{font-size:9px;min-width:37px}.map-controls #map-fit,.map-controls a{font-size:7px;padding:8px}.map-controls a{padding-left:11px}.map-controls i{margin:0 4px}.map-hint{font-size:6px;letter-spacing:1px}.map-hint span{margin:0 5px}}

.choosing-route #real-map,.viewing-map #real-map{display:none!important}

.choice-type.reconstructed{color:#d5bb8d;font-size:7px;letter-spacing:1.15px;line-height:1.6;min-height:16px}.route-assets{position:fixed;top:66px;left:20px;z-index:44;display:flex;align-items:center;gap:0;border-radius:8px;padding:3px 5px}.route-assets a,.route-assets button{font-size:7px;letter-spacing:1.3px;color:#b9c7cf;padding:10px 11px;text-decoration:none;white-space:nowrap}.route-assets a:hover,.route-assets button:hover{color:var(--gold)}.route-assets a:not([hidden])+button:not([hidden]){border-left:1px solid #ffffff22}.route-accuracy{position:fixed;top:106px;left:20px;z-index:43;max-width:280px;font-size:8px;letter-spacing:.6px;color:#e0c491;background:#0b1428bd;border:1px solid #dbc58b33;border-radius:5px;padding:8px 10px;margin:0;backdrop-filter:blur(12px)}.panel-shown .route-assets,.panel-shown .route-accuracy{left:352px}body:not(.entered) .route-assets,body:not(.entered) .route-accuracy,.viewing-map .route-assets,.viewing-map .route-accuracy{display:none!important}.cinematic .route-assets{display:none}.cinematic .route-accuracy{top:calc(6vh + 58px)}.map-return{position:absolute;right:20px;top:18px;z-index:4;border-radius:25px;padding:12px 17px;font-size:8px;letter-spacing:1.5px;color:var(--gold)}.map-return:hover{border-color:#dfc18a66}
@media(min-width:1700px){.panel-shown .route-assets,.panel-shown .route-accuracy{left:400px}}
@media(max-width:1100px){.panel-shown .route-assets,.panel-shown .route-accuracy{left:310px}.choice-type.reconstructed{font-size:6px;letter-spacing:.5px}}
@media(max-width:700px){.route-assets,.panel-shown .route-assets{left:12px;top:59px}.route-assets a,.route-assets button{font-size:6px;padding:9px;letter-spacing:1px}.route-accuracy,.panel-shown .route-accuracy{left:12px;top:99px;font-size:7px;padding:7px 9px;max-width:260px}.map-return{right:12px;top:15px;padding:11px 12px;font-size:7px;letter-spacing:.8px}.choice-type.reconstructed{font-size:6px;letter-spacing:.5px;line-height:1.6;min-height:20px}.choice-type{min-height:20px}}

/* A localized scrim follows the opening text, then clears as the route begins. */
#scene-wash::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(3,12,20,.91) 0%,rgba(3,12,20,.79) 30%,rgba(3,12,20,.6) 55%,rgba(3,12,20,.15) 80%,transparent 100%);opacity:var(--hero-visibility,1)}
.free-flight #scene-wash::after{opacity:0}
.hero{position:fixed;left:6vw;top:clamp(160px,24vh,290px);z-index:5;will-change:transform,opacity;pointer-events:auto;max-width:88vw}
.hero-kicker{font-size:12px;font-weight:650;line-height:1.7;letter-spacing:2px;color:#edf1f3;margin:0 0 24px;text-shadow:0 2px 8px #03101880}
.hero h2{font:500 clamp(110px,15.5vw,220px)/.94 var(--serif);letter-spacing:-.055em;margin:0;color:#fffaf1;text-shadow:0 3px 24px #03101866}
.hero-subtitle{font:italic 500 clamp(36px,3.5vw,54px)/1.2 var(--serif);color:#f1d69f;letter-spacing:2px;margin:22px 0 32px;text-shadow:0 2px 14px #03101880}
.hero-actions{display:flex;flex-wrap:wrap;gap:14px;align-items:center}
.hero-experience,.scroll-start{min-height:48px;display:inline-flex;align-items:center;justify-content:center;border-radius:30px;padding:0 23px;font-size:12px;line-height:1.4;letter-spacing:1px;font-weight:750}
.hero-experience{background:#eed29a;color:#17212a;box-shadow:0 5px 22px #02081333}
.hero-experience span{font-size:10px;margin-right:10px}
.scroll-start{gap:15px;color:#f8fafb;border:1px solid #d8e3ec80;background:#081522c9;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.scroll-start span{font-size:21px;font-weight:400}
.scroll-start:hover{color:#fff;background:#213345;border-color:#f1d69f}
.hero-signature{font-size:12px;line-height:1.7;letter-spacing:1px;color:#e2e8ed;margin:26px 0 0;font-weight:600;text-shadow:0 2px 8px #03101880}
.hero-signature b{margin:0 10px;color:#f1d69f}
.hero-accuracy{font-size:12px;line-height:1.6;letter-spacing:.3px;color:#f1d69f;max-width:360px;margin:20px 0 -12px}
@media(max-width:700px){
  #scene-wash::after{background:linear-gradient(90deg,#030c14e8,#030c14a8 65%,#030c1466),linear-gradient(0deg,transparent,#030c1426 50%,transparent)}
  .hero{left:7vw;top:clamp(160px,25vh,270px);max-width:86vw}
  .hero h2{font-size:22vw;letter-spacing:-.055em}
  .hero-kicker{font-size:11px;letter-spacing:1px;margin-bottom:20px}
  .hero-subtitle{font-size:38px;letter-spacing:1px;margin:16px 0 25px}
  .hero-actions{gap:12px}
  .hero-experience,.scroll-start{font-size:11px;padding:0 18px;min-height:46px;letter-spacing:.6px}
  .hero-signature{font-size:11px;letter-spacing:.5px;margin-top:22px}
  .hero-signature b{margin:0 6px}
  .hero-accuracy{font-size:11px;margin-top:16px}
}
@media(max-height:720px) and (min-width:701px){
  .hero{top:138px}
  .hero h2{font-size:min(15.5vw,22vh)}
  .hero-kicker{font-size:11px;letter-spacing:1.5px;margin-bottom:12px}
  .hero-subtitle{font-size:32px;margin:10px 0 18px}
  .hero-experience,.scroll-start{min-height:44px}
  .hero-signature{margin-top:16px}
  .hero-accuracy{margin-top:14px}
}
@media(prefers-reduced-motion:reduce){.hero{will-change:auto}}

/* Geographic labels need their own contrast over bright roofs and sand. */
.map-label{background:#071421ed;border:1px solid #d9c59c80;border-radius:8px;padding:10px 14px;color:#fffaf1;font-size:12px;letter-spacing:.3px;line-height:1.4;box-shadow:0 4px 18px #02081355;text-shadow:none;min-height:44px}
.map-label strong{font-weight:750}
.map-label small{font-size:11px;letter-spacing:.3px;color:#f1d69f;margin-top:3px;font-weight:600}
.map-label:after{position:absolute;left:50%;bottom:-18px;height:17px;margin:0;background:linear-gradient(#eed29a,#eed29a55);box-shadow:0 1px 3px #020813}
.map-label:hover{color:#fff;background:#1b3042;border-color:#f1d69f;border-radius:8px}
.chapter-title{mix-blend-mode:normal;background:#071421ed;border:1px solid #d9c59c80;border-radius:12px;box-shadow:0 8px 32px #0208134d;padding:17px 26px;max-width:calc(100vw - 40px);text-shadow:none}
.chapter-title span{font:700 11px/1.4 var(--sans);letter-spacing:2px;color:#f1d69f}
.chapter-title span:before{content:"ETAPA "}
.chapter-title em{font:italic 500 clamp(25px,2.2vw,34px)/1.25 var(--serif);color:#fffaf1;margin:5px 0 0;letter-spacing:0}
.chapter-title.show{opacity:1}
@media(max-width:700px){.chapter-title{top:32%;padding:14px 20px}.chapter-title em{font-size:27px}.map-label{padding:8px 11px}}

/* Keep the full marathon distance readable within the existing route cards. */
.route-choice>strong.marathon-distance{font-size:clamp(42px,4.8vw,74px);letter-spacing:-.045em;min-height:clamp(91px,10.92vw,165px);display:flex;align-items:center;gap:6px;white-space:nowrap}
.route-choice>strong.marathon-distance small{font-size:.4em;margin:0}
#ledger-distance.marathon-distance{font-size:clamp(38px,5vw,70px);letter-spacing:-.04em}
@media(max-width:700px){
  .route-choice>strong.marathon-distance{font-size:8vw;min-height:91px}
  #ledger-distance.marathon-distance{font-size:7vw}
  #ledger-distance.marathon-distance em{display:block;font-size:20px;margin:0}
  #map-title.marathon-distance{font-size:30px;letter-spacing:-1px}
}
@media(max-width:700px){.site-back{top:16px;left:7vw;padding:10px 14px}.route-picker .picker-inner{padding-top:84px}}
/* No resumo final os atalhos do topo sairiam por cima do texto. */
.route-assets{transition:opacity .3s}.in-ledger .route-assets{opacity:0;pointer-events:none}
/* Créditos do mapa (logo e "Data attribution") dentro do rodapé de créditos. */
.map-credits{display:inline-flex;align-items:center;vertical-align:middle;margin-right:8px}
.map-credits:empty{display:none}
.map-credits .cesium-widget-credits{position:static;display:inline-flex;align-items:center;gap:6px;padding:0;font-size:inherit;color:inherit;text-shadow:inherit}
.map-credits img{height:13px;width:auto;vertical-align:middle}
.map-credits a,.map-credits .cesium-credit-expand-link{color:#a9b8c5;text-decoration:underline;cursor:pointer}
/* Crédito curto só no celular, onde divide o rodapé com o crédito do mapa. */
.credit-short{display:none}
/* Ícones em SVG no lugar de símbolos de texto, que alguns celulares desenham como emoji. */
.icon{width:1em;height:1em;display:inline-block;vertical-align:-.14em;flex:none;overflow:visible}
.tool-icon .icon,.settings-button .icon{vertical-align:middle}
.free-light kbd{margin:0 5px 0 0;min-width:14px;min-height:14px;font-size:8px}
/* Toque: o navegador cuida só da rolagem vertical; arrastar de lado e pinçar ficam para o mapa. */
@media (pointer:coarse){body{touch-action:pan-y}}
/* Dicas por tipo de tela: toque ou mouse e teclado. */
@media (pointer:coarse){.desk-only{display:none!important}kbd{display:none!important}}
@media not all and (pointer:coarse){.touch-only{display:none!important}}
.map-hint b{margin:0 10px;color:#b29d76;font-weight:400}

/* Celular: texto legível (nada abaixo de 9 px), alvos de toque de 40 a 44 px e respeito às bordas do aparelho. */
@media(max-width:700px){
  .picker-backdrop{background:linear-gradient(90deg,#071119ed,#091521cc 60%,#08121abf),url('./assets/satellite-1600.jpg') center 42%/cover}
  .picker-kicker{font-size:10px;letter-spacing:1.6px}
  .picker-intro{font-size:14px}
  .choice-type{font-size:9px;letter-spacing:.9px;line-height:1.45;min-height:26px}
  .choice-bottom{font-size:11px}
  .picker-note{font-size:12px;line-height:1.6}
  .picker-footer{font-size:9px}
  .site-back{top:max(14px,env(safe-area-inset-top));font-size:11px;min-height:42px}
  .load-copy{font-size:10px;letter-spacing:1.6px}
  .sound-invitation{font-size:10px;letter-spacing:1.4px}
  .begin{font-size:11px;min-height:52px}

  .tools{top:max(12px,env(safe-area-inset-top));right:10px;gap:6px}
  .tool,.settings-button{width:42px;height:42px;padding:0}
  .tool-icon,.settings-button{font-size:19px}
  .experience-button{height:42px;padding:0 14px;font-size:10px;letter-spacing:1.2px}
  .experience-button span{font-size:11px}
  .change-route,.panel-shown .change-route{top:max(12px,env(safe-area-inset-top));left:10px;min-width:42px;min-height:42px}
  .viewing-map .change-route{font-size:10px}
  .route-assets,.panel-shown .route-assets{top:calc(max(12px,env(safe-area-inset-top)) + 50px);left:10px}
  .route-assets a,.route-assets button{font-size:10px;letter-spacing:.8px;padding:0 12px;min-height:40px;display:inline-flex;align-items:center;gap:6px}
  .settings-panel{top:calc(max(12px,env(safe-area-inset-top)) + 50px);right:10px;width:min(300px,calc(100vw - 20px))}
  .setting-label{font-size:10px}
  .light-options button,.quality-options button{font-size:12px;min-height:40px}
  .switch-row{font-size:13px;min-height:40px;margin:6px 0}

  .telemetry{left:10px;right:10px;bottom:calc(26px + env(safe-area-inset-bottom))}
  .telemetry>div{padding:10px 10px}
  .telemetry span{font-size:9px;letter-spacing:.5px}
  .telemetry strong{font-size:19px}
  .telemetry small{font-size:9px}
  .telemetry .word-stat{font-size:12px}
  .scene-credit,.panel-shown .scene-credit{bottom:calc(6px + env(safe-area-inset-bottom));left:auto;right:10px;max-width:calc(100vw - 20px);text-align:right;font-size:9px;white-space:nowrap}
  .map-credits img{height:11px}
  .scene-credit button{font-size:9px;padding:4px 0 4px 6px}
  .credit-long{display:none}.credit-short{display:inline}
  .telemetry .word-stat{white-space:normal;font-size:11px;line-height:13px;min-height:26px;display:flex;align-items:center}

  .story{bottom:calc(106px + env(safe-area-inset-bottom));height:min(44dvh,380px)}
  .story-content{padding:20px 20px 24px}
  .story-eyebrow{font-size:10px;letter-spacing:1.1px;padding-right:44px}
  .story h2{font-size:31px}
  .story-metrics span{font-size:9px;letter-spacing:.8px}
  .story-metrics strong{font-size:22px}
  .stage-track span{font-size:10px}
  .story p.body-copy{font-size:14px;line-height:1.65;margin-bottom:14px}
  .story-facts{font-size:10px;letter-spacing:.8px}
  .field-label{font-size:10px;letter-spacing:1.6px}
  .field-row dt{font-size:10px}
  .field-row dd{font-size:13px;line-height:1.6}
  .stage-navigation button{font-size:11px;min-height:44px;padding:0 2px}
  .close-story{width:40px;height:40px;right:8px;top:8px}
  .open-story{bottom:calc(106px + env(safe-area-inset-bottom));font-size:10px;padding:0 16px;min-height:44px;display:inline-flex;align-items:center}
  .open-story span{font-size:14px}

  .free-guide{bottom:calc(92px + env(safe-area-inset-bottom));font-size:11px;padding:10px 14px;gap:8px 12px;flex-wrap:wrap;justify-content:space-between}
  .free-guide span.touch-only{display:inline}
  .free-guide i,.free-guide span:first-of-type i{font-size:11px}
  .free-guide button{font-size:11px;letter-spacing:.8px;min-height:40px;padding:0 4px}
  .free-light{bottom:calc(34px + env(safe-area-inset-bottom));flex-wrap:wrap;gap:6px;padding:0 10px}
  .free-light button{font-size:11px;padding:0 11px;min-height:40px}

  .cinema-bar{bottom:calc(12px + env(safe-area-inset-bottom))}
  .cinematic .telemetry{transform:translateY(-120px)}
  .cinema-top>button:first-child{width:40px;height:40px;font-size:17px}
  .cinema-top>span:nth-child(2){font-size:11px}
  .cinema-top>span:nth-child(3){font-size:10px}
  .cinema-top>button:last-child{font-size:10px;min-height:40px;padding:0 4px}
  .cinema-bottom button{font-size:11px;min-height:36px;padding:0 9px}

  .map-header{top:calc(max(12px,env(safe-area-inset-top)) + 58px)}
  .map-header p{font-size:10px;letter-spacing:1px}
  .map-header .map-source{font-size:11px}
  .map-return{top:max(12px,env(safe-area-inset-top));font-size:10px;letter-spacing:.8px;min-height:42px}
  .map-viewport{bottom:calc(112px + env(safe-area-inset-bottom))}
  .map-controls{bottom:calc(46px + env(safe-area-inset-bottom));padding:4px 8px}
  .map-controls button{min-width:42px;min-height:42px;font-size:20px}
  .map-controls output{font-size:11px}
  .map-controls #map-fit,.map-controls a{font-size:10px;min-height:42px;display:inline-flex;align-items:center;gap:5px}
  .map-hint{font-size:10px;letter-spacing:.6px;line-height:1.5;bottom:calc(10px + env(safe-area-inset-bottom));padding:0 12px}
  .map-hint b{margin:0 5px}

  .ledger-eyebrow{font-size:10px}
  .ledger-lead{font-size:15px;line-height:1.6}
  .ledger-numbers span{font-size:9px;letter-spacing:.7px}
  .route-row{min-height:60px}
  .route-row strong{font-size:14px}
  .route-row small{font-size:10px}
  .ledger-bottom p{font-size:14px;line-height:1.7}
  .source-link{font-size:11px;letter-spacing:1.2px;min-height:44px}
  .restart{font-size:11px;min-height:44px}
  .ledger footer>span:last-child{font-size:9px}
  .sources-dialog p{font-size:14px;line-height:1.7}
  .sources-dialog>button{width:44px;height:44px;margin:-10px -10px 0 0}
}
/* Celulares estreitos (até 360 px, como o iPhone SE). */
@media(max-width:360px){
  .telemetry>div{padding:9px 7px}
  .telemetry strong{font-size:16px}
  .telemetry small{font-size:8px;margin-left:2px}
  .viewing-map .change-route{font-size:0;gap:0;padding:0;min-width:42px;justify-content:center}
  .map-controls{gap:1px;padding:3px 6px}
  .map-controls button{min-width:36px}
  .map-controls output{min-width:34px}
  .map-controls #map-fit,.map-controls a{padding:0 7px;letter-spacing:.4px}
  .map-controls i{margin:0 2px}
  .free-guide{bottom:calc(142px + env(safe-area-inset-bottom))}
  .tools{gap:4px}
  .experience-button{width:42px;padding:0;font-size:0;letter-spacing:0}
  .experience-button span{font-size:14px;margin:0}
  .hero-signature{display:none}
  .cinematic .telemetry{opacity:0;pointer-events:none}
}
/* Celular deitado: pouca altura, então título menor, painéis com rolagem e mais área para o mapa. */
@media (orientation:landscape) and (max-height:500px){
  .hero{top:calc(max(12px,env(safe-area-inset-top)) + 110px)}
  .hero-kicker{font-size:10px;margin-bottom:8px}
  .hero h2{font-size:min(22vw,24vh)}
  .hero-subtitle{font-size:26px;margin:6px 0 12px}
  .hero-actions{gap:10px}
  .hero-experience,.scroll-start{min-height:42px}
  .hero-signature{margin-top:10px}
  .settings-panel{max-height:calc(100dvh - 76px);overflow:auto;overscroll-behavior:contain}
  .map-header,.map-hint{display:none}
  .map-viewport{top:calc(max(12px,env(safe-area-inset-top)) + 56px);bottom:calc(60px + env(safe-area-inset-bottom))}
  .map-controls{bottom:calc(8px + env(safe-area-inset-bottom))}
  .veil-mark{margin-bottom:10px}
  .cinematic .story{display:none}
  .scroll-start{display:none}
  .hero h2{font-size:min(20vw,18vh)}
  .hero-signature{display:none}
  .cinematic .scene-credit{opacity:0;pointer-events:none}
  .hero-subtitle{font-size:22px;margin:4px 0 10px}
}
@media (orientation:landscape) and (max-height:500px) and (min-width:701px){
  .telemetry{bottom:calc(30px + env(safe-area-inset-bottom))}
}
@media (orientation:landscape) and (max-height:500px) and (max-width:700px){
  .story{left:10px;right:auto;top:calc(max(12px,env(safe-area-inset-top)) + 104px);bottom:calc(46px + env(safe-area-inset-bottom));width:min(320px,50vw);height:auto;transform:translateX(calc(-100% - 20px))}
  .story.shown{transform:none}
  .story h2{font-size:26px}
  .telemetry{left:auto;right:10px;width:calc(50vw - 30px);bottom:calc(30px + env(safe-area-inset-bottom))}
  .telemetry>div{padding:9px 7px}
  .telemetry strong{font-size:16px}
  .telemetry small{font-size:8px;margin-left:2px}
  .open-story{bottom:calc(30px + env(safe-area-inset-bottom))}
  .free-guide{width:auto;max-width:calc(100% - 24px)}
  .hero{max-width:calc(50vw - 30px)}
  .cinematic .telemetry{opacity:0;pointer-events:none}
}
