:root{font-family:Inter,Segoe UI,Arial,sans-serif;color:#273d36;background:#d7dfda;font-synthesis:none;--cream:#f4efe4;--green:#244c44;--muted:#6c7569;--line:#d9d7c9}*{box-sizing:border-box}body{margin:0}button,a,select{-webkit-tap-highlight-color:transparent}button,select{font:inherit}button{cursor:pointer}button:focus-visible,a:focus-visible,select:focus-visible{outline:3px solid #d09b4c;outline-offset:4px}button:disabled{opacity:.45;cursor:wait}#app{position:relative;width:100%;height:100dvh;min-height:650px;overflow:hidden}#viewport{position:absolute;inset:0}canvas{width:100%;height:100%;display:block;touch-action:none}.masthead{position:absolute;top:30px;left:36px;right:36px;display:flex;align-items:center;gap:40px;z-index:3}.brand{color:var(--green);text-decoration:none;font-family:Georgia,serif;font-size:36px;letter-spacing:5px;line-height:1}.brand span{display:block;font-family:Arial,sans-serif;font-size:8px;letter-spacing:4.2px;margin-top:8px}.edition{font-size:10px;letter-spacing:1.8px;font-weight:600;display:flex;align-items:center;gap:13px}.edition i{width:3px;height:3px;border-radius:50%;background:currentColor}.round{margin-left:auto;border:1px solid #6a7d6a66;background:#f5f0e0bb;border-radius:50%;width:35px;height:35px;color:var(--green)}.story{position:absolute;z-index:3;top:128px;left:36px;width:310px;max-height:calc(100dvh - 288px);overflow:auto;scrollbar-width:thin;background:#f4efe4f2;padding:25px 26px 20px;border:1px solid #ffffff80;box-shadow:0 15px 60px #35423212;border-radius:3px}.eyebrow{font-size:9px;letter-spacing:1.8px;font-weight:700;display:flex;justify-content:space-between;gap:12px;line-height:1.5;color:#79826d}.eyebrow span{color:#af9872;white-space:nowrap}h1,h2{font-family:Georgia,Times New Roman,serif;font-weight:400;letter-spacing:-1.5px}h1{font-size:42px;line-height:1.07;margin:22px 0 17px}p{font-size:12px;line-height:1.8;margin:0 0 20px;color:#667165}.chapters{margin:27px 0 20px;display:grid}.chapters button{display:flex;align-items:center;gap:13px;background:none;border:0;border-top:1px solid var(--line);padding:13px 0;color:#657467;text-align:left;font-size:11px}.chapters button:last-child{border-bottom:1px solid var(--line)}.chapters button span{font-family:Georgia,serif;font-size:12px;color:#a7ac9a}.chapters button b{margin-left:auto;font-size:16px;font-weight:400;opacity:0}.chapters button:hover,.chapters button.active{color:#204e43}.chapters button.active{font-weight:650}.chapters button.active span{color:#a97537}.chapters button.active b,.chapters button:hover b{opacity:1}.chapter-note{font-size:10px;line-height:1.7;color:#8a8b79;border-left:2px solid #b8aa8a;padding-left:11px;margin-bottom:16px}.text-button{display:flex;justify-content:space-between;width:100%;background:none;border:0;padding:8px 0;color:#5d7464;font-size:10px}.text-button span{font-size:12px}.sources-button{border-top:1px solid var(--line);margin-top:5px;padding-top:14px}#details svg{display:block;width:100%;max-height:180px}#details p{font-size:10px;margin:8px 0}.scene-label{position:absolute;top:135px;right:38px;font-size:8px;letter-spacing:1.6px;display:flex;align-items:center;gap:8px;color:#485d50;pointer-events:none}.status-dot{height:5px;width:5px;border-radius:50%;background:#4d7761}.view-tools{position:absolute;bottom:152px;right:36px;display:flex;gap:8px;z-index:3}.view-tools button,.view-tools label{background:#f2eedfda;border:1px solid #ffffff77;padding:9px 12px;color:#5b6a5d;border-radius:3px;font-size:10px}.view-tools select{background:none;border:0;color:#365545;font-size:10px;max-width:112px}.view-tools label{display:flex;align-items:center;gap:6px}.bottom-bar{position:absolute;bottom:40px;left:36px;right:36px;z-index:3;background:#f5f1e8f2;display:flex;align-items:center;justify-content:space-between;padding:22px 26px;border:1px solid #ffffffb3;border-radius:3px;box-shadow:0 4px 28px #243d3120;gap:20px}.metrics{display:flex;gap:39px}.metrics>div{display:flex;flex-direction:column;gap:6px}.metrics strong{font-family:Georgia,serif;font-size:25px;font-weight:400;line-height:1}.metrics small{font-size:14px}.metrics span{font-size:8px;letter-spacing:1.4px;color:#7f8675}.actions{display:flex;gap:10px}.actions button{border-radius:2px;padding:15px 23px;display:flex;gap:12px;align-items:center;font-size:11px;white-space:nowrap}.primary{background:var(--green);border:1px solid var(--green);color:#fff}.primary[aria-pressed=true]{background:#8e6e42;border-color:#8e6e42}.secondary{border:1px solid #c9cfbd;background:transparent;color:#466455}.secondary[aria-pressed=false]{opacity:.55}.flow-icon{font-size:20px;line-height:.6}.gesture{position:absolute;bottom:14px;left:0;right:0;text-align:center;font-size:8px;letter-spacing:.5px;color:#627263;pointer-events:none}#markers{position:absolute;inset:0;pointer-events:none;z-index:2}.marker{position:absolute;width:28px;height:28px;border:1px solid #f2ecd9;background:#244c44db;color:#f4f0df;border-radius:50%;font-size:10px;pointer-events:auto;box-shadow:0 0 0 5px #f2eddf36;transform:translate(-50%,-50%);transition:opacity .2s}.marker:hover{background:#a57a45;box-shadow:0 0 0 7px #f2eddf36}.marker span{position:absolute;left:37px;top:5px;width:max-content;background:#f5f0e3ed;color:#466052;padding:3px 7px;font-size:9px;border-radius:2px;opacity:0}.marker:hover span,.marker:focus-visible span{opacity:1}.hydraulic{position:absolute;z-index:3;right:36px;bottom:210px;background:#244c44ef;color:#f3f0df;width:min(480px,calc(100% - 410px));padding:20px 23px;border-radius:3px}.hydraulic div{display:flex;justify-content:space-between;gap:20px}.hydraulic b{font-family:Georgia,serif;font-size:17px;font-weight:400}.hydraulic span{font-size:9px;line-height:1.6;max-width:135px;color:#b5c8ba}.hydraulic svg{width:100%;margin:10px 0}.hydraulic text{font:8px Arial;letter-spacing:1px;fill:#c3d5c9}.hydraulic small{font-size:9px;line-height:1.5;color:#aebfb2;display:block}#loader{position:absolute;inset:0;z-index:10;background:#ede9dc;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:20px;color:#526b58;font-size:12px;transition:opacity .5s}#loader.loaded{opacity:0;pointer-events:none}.loading-emblem{font:50px Georgia;letter-spacing:12px;color:#2d5146}.load-track{height:2px;width:200px;background:#c6ccbd}.load-track i{height:2px;width:5%;background:#416b5b;display:block;transition:width .2s}#loader small{font-size:10px;color:#86917d}dialog{color:#374e40;max-width:610px;width:calc(100% - 40px);max-height:85dvh;overflow:auto;border:1px solid #fff;border-radius:4px;padding:38px;background:var(--cream);box-shadow:0 20px 100px #112a2260}dialog::backdrop{background:#1b352c7a;backdrop-filter:blur(4px)}dialog h2{font-size:32px;line-height:1.2;margin:20px 0}dialog p,dialog li{font-size:12px;line-height:1.8}dialog li{margin:14px 0}dialog a{color:#3c7768}.small{font-size:10px!important}dialog ul{padding-left:20px}.dialog-close{position:absolute;right:18px;top:12px;border:0;background:none;color:#66806c;font-size:26px}kbd{background:#dfe1d1;padding:2px 5px;border-radius:3px}.skip{position:absolute;top:-50px;left:15px;z-index:20;background:#fff;padding:12px}.skip:focus{top:10px}[hidden]{display:none!important}@media(min-width:1600px){.story{width:350px;padding:30px}.story p{font-size:13px}h1{font-size:47px}.chapters button{padding:16px 0;font-size:12px}}@media(max-height:820px)and (min-width:801px){.story{top:107px;padding:20px 23px;max-height:calc(100dvh - 260px)}h1{font-size:35px;margin:15px 0}.story p{font-size:11px;margin-bottom:14px}.chapters{margin:17px 0}.chapters button{padding:10px 0}.chapter-note{font-size:9px}}@media(max-width:1000px){.edition{font-size:8px;gap:8px}.story{left:22px;width:280px}.masthead{left:22px;right:22px}.bottom-bar{left:22px;right:22px;padding:18px}.metrics{gap:22px}.actions button{padding:13px 15px}.metrics strong{font-size:22px}.scene-label{max-width:260px;text-align:right;line-height:1.5}.hydraulic{width:calc(100% - 350px)}.hydraulic div{display:block}.hydraulic span{display:block;margin-top:8px;max-width:none}}@media(max-width:800px){#app{min-height:740px}.masthead{top:20px}.brand{font-size:30px}.edition{display:none}.story{top:auto;bottom:176px;left:16px;width:265px;max-height:250px;padding:17px;background:#f4efe4ed}.story h1{font-size:28px;margin:13px 0 9px}.story p{font-size:10px;margin-bottom:8px}.chapters{display:flex;gap:7px;margin:14px 0}.chapters button{font-size:0!important;padding:9px;border:1px solid var(--line)!important;border-radius:50%;width:32px;height:32px;justify-content:center}.chapters button span{font-size:11px}.chapters button b{display:none}.chapters button.active{background:#dde3d3}.chapter-note{font-size:8px;margin-bottom:8px}.text-button{font-size:9px;padding:5px 0}.bottom-bar{bottom:30px;left:16px;right:16px;display:block;padding:14px}.metrics{justify-content:space-between;gap:12px;margin-bottom:14px}.metrics strong{font-size:19px}.metrics span{font-size:6px}.actions{width:100%}.actions button{flex:1;justify-content:center;padding:12px;font-size:10px}.gesture{font-size:7px;bottom:10px}.scene-label{top:93px;right:18px;font-size:7px;max-width:180px}.view-tools{right:16px;bottom:188px;flex-direction:column}.view-tools button span{display:none}.view-tools label{font-size:0;max-width:93px;padding:8px}.view-tools select{font-size:8px;max-width:80px}.hydraulic{right:16px;top:136px;bottom:auto;width:calc(100% - 32px);padding:13px}.hydraulic b{font-size:15px}.hydraulic div{display:flex}.hydraulic span{font-size:8px;max-width:130px;margin:0}.hydraulic svg{height:50px;margin:3px 0}.hydraulic small{font-size:8px}.marker{width:24px;height:24px;font-size:9px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}#camera-data{box-sizing:border-box;width:100%;margin:10px 0 16px;padding:14px;background:#f6f3e9;border:1px solid #b8b5a4;border-radius:8px;font:13px/1.5 monospace;color:#203f3b;resize:vertical}.camera-actions{display:flex;flex-wrap:wrap;gap:8px}.camera-actions button{padding:11px 14px;border-radius:7px;cursor:pointer}.camera-actions .secondary{border:1px solid #82948a;background:#f6f3e9;color:#203f3b}#camera-status{font-size:13px;min-height:2em}#reset span{display:inline!important}#story-toggle{display:none}@media(pointer:coarse),(max-width:600px){html,body{height:100%;overflow:hidden}#app{height:100dvh;min-height:0}.masthead{top:max(12px,env(safe-area-inset-top));left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right));gap:10px}.brand{font-size:26px}.edition{display:none}.round{margin-left:0;flex:none;width:44px;height:44px}#story-toggle{display:block;margin-left:auto;min-height:44px;padding:8px 14px;background:var(--cream);border:1px solid #b7c1af;border-radius:4px;color:var(--green)}.story{display:none;inset:76px 12px auto;width:auto;max-height:calc(100dvh - 280px);padding:16px;overscroll-behavior:contain;background:#f4efe4fa}#app.story-open .story{display:block}.story h1{font-size:28px;margin:10px 0}.story p{font-size:12px}.chapter-note{font-size:11px}.chapters{display:flex;gap:6px;margin:12px 0}.chapters button{font-size:0!important;flex:none;width:44px;height:44px;padding:0;border:1px solid var(--line)!important;border-radius:50%;justify-content:center}.chapters button span{font-size:13px}.chapters button b{display:none}.text-button{min-height:44px;font-size:12px;align-items:center}.bottom-bar{left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right));bottom:calc(22px + env(safe-area-inset-bottom));display:block;padding:10px}.metrics{justify-content:space-between;gap:8px;margin-bottom:10px}.metrics strong{font-size:19px}.metrics span{font-size:7px;letter-spacing:.5px}.actions{gap:8px}.actions button{min-height:44px;flex:1;justify-content:center;padding:10px 5px;font-size:11px}.view-tools{left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right));bottom:calc(150px + env(safe-area-inset-bottom));flex-direction:row;gap:6px}.view-tools button,.view-tools label{min-height:44px;flex:1;padding:6px;font-size:12px;max-width:none}.view-tools label{font-size:0;justify-content:center}.view-tools select{font-size:12px;min-height:30px;width:100%;max-width:none}.gesture{bottom:calc(5px + env(safe-area-inset-bottom));font-size:9px}.scene-label{top:68px;right:12px;max-width:220px;font-size:7px}.hydraulic{inset:100px 12px auto;width:auto;padding:12px;max-height:calc(100dvh - 305px);overflow:auto}#app.story-open .hydraulic{display:none}dialog{padding:24px 18px;max-height:calc(100dvh - 24px);width:calc(100% - 24px)}.dialog-close{min-width:44px;min-height:44px;right:8px;top:4px}#camera-data{font-size:16px}.camera-actions button{min-height:44px}.marker{width:44px;height:44px;font-size:12px}}@media(max-height:500px)and (pointer:coarse){.masthead{top:8px}.brand{font-size:22px}.brand span{font-size:7px;margin-top:4px}.scene-label{display:none}.bottom-bar{bottom:calc(20px + env(safe-area-inset-bottom));padding:7px}.metrics{display:none}.view-tools{bottom:calc(88px + env(safe-area-inset-bottom));left:auto;width:300px}.story{top:62px;left:12px;right:auto;width:min(360px,calc(100% - 24px));max-height:calc(100dvh - 152px)}.hydraulic{top:62px;left:12px;right:auto;width:min(390px,calc(100% - 24px));max-height:calc(100dvh - 152px)}}.marker span{pointer-events:none}#loader{position:fixed;min-height:100dvh;padding:28px;text-align:center;gap:18px}#load-text{font-size:16px;font-weight:600}#load-detail{margin:0;max-width:360px;min-height:3em;font-size:12px;line-height:1.6;color:#526b58}#loader small{max-width:330px;line-height:1.6}#load-retry{min-height:44px;padding:12px 24px;border-radius:3px}.load-track{height:4px;width:min(260px,80vw);overflow:hidden;border-radius:4px}.load-track i{height:4px;width:0;transition:width .15s}.load-track.indeterminate i{width:34%!important;animation:load-activity 1.3s ease-in-out infinite}@keyframes load-activity{0%{transform:translate(-100%)}to{transform:translate(310%)}}#loader[data-state=error] #load-text{color:#7b4439}@media(prefers-reduced-motion:reduce){.load-track.indeterminate i{animation:none;transform:translate(100%)}#loader{transition:none}}
