:root{color-scheme:dark;--background:#111a12;--foreground:#eef0e5;--primary:#d5dfb8;--border:#ffffff22}*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;overflow:hidden;background:var(--background);font-family:Arial,Helvetica,sans-serif}button{font:inherit}body{overscroll-behavior:none}.forest,.forest-canvas{width:100%;height:100%;position:absolute;top:0;right:0;bottom:0;left:0}.forest-canvas canvas{width:100%;height:100%;display:block;outline:none;touch-action:none}.loading{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;gap:20px;align-items:center;justify-content:center;color:#d0d8c5;font-size:14px;background:#111a12}.loading-mark{height:30px;width:30px;border:1px solid #5a684c;border-top-color:#d0d8c5;border-radius:50%;animation:turn 1.5s linear infinite}@keyframes turn{to{transform:rotate(360deg)}}.camera-hint{position:absolute;bottom:max(26px,env(safe-area-inset-bottom));width:100%;padding:0 24px;text-align:center;font-size:14px;color:#fff;pointer-events:none;text-shadow:0 1px 6px #000;opacity:0}.camera-hint.ready{animation:hint 14s both}@keyframes hint{0%,12%{opacity:0}20%,70%{opacity:.8}to{opacity:0}}@media(pointer:coarse){.camera-hint{display:none}}@media(prefers-reduced-motion:reduce){.loading-mark{animation:none}.camera-hint.ready{animation:none;opacity:.75}}.forest.exploring .camera-hint{display:none}.touch-joystick{display:none;position:absolute;width:110px;height:110px;margin:-55px 0 0 -55px;border:1px solid #ffffff38;background:#18231b22;border-radius:50%;pointer-events:none}.touch-joystick.active{display:grid;place-items:center}.touch-joystick span{width:45px;height:45px;border:1px solid #ffffff77;background:#ecf2dd24;border-radius:50%}.touch-flight{display:none;position:absolute;right:20px;bottom:max(28px,env(safe-area-inset-bottom));gap:12px}.touch-flight button{width:46px;height:46px;border:1px solid #ffffff45;border-radius:50%;background:#19251c30;color:#fff;font-size:22px;touch-action:none}.touch-hint{display:none;position:absolute;bottom:max(32px,env(safe-area-inset-bottom));left:20px;right:90px;font-size:14px;color:#ffffffc9;text-shadow:0 2px 5px #000;pointer-events:none}.touch-hint.used{opacity:0;transition:opacity 1s}@media(pointer:coarse){.touch-flight{display:flex;flex-direction:column}.touch-hint{display:block}}canvas:focus-visible{outline:1px solid #c7d4a788!important;outline-offset:-2px}.forest.cinematic .touch-flight,.forest.cinematic .touch-hint,.forest.cinematic .touch-joystick,.forest.cinematic .camera-hint{display:none!important}.lighting{position:absolute;top:16px;right:16px;width:260px;max-height:calc(100% - 32px);overflow:auto;font:10pt/1.35 Optima,Optima nova,Candara,Segoe UI,sans-serif;color:#e9ebe0;background:#0f1610c2;border:1px solid #ffffff22;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.lighting-toggle{display:flex;justify-content:space-between;align-items:center;width:100%;padding:8px 12px;border:0;background:none;color:inherit;font:inherit;letter-spacing:.06em;text-transform:uppercase;cursor:pointer}.lighting-toggle:after{content:"+";font-size:12pt;line-height:1}.lighting.open .lighting-toggle:after{content:"−"}.lighting-body{display:none;padding:0 12px 12px}.lighting.open .lighting-body{display:block}.lighting h2{margin:10px 0 4px;font:inherit;font-size:9pt;letter-spacing:.08em;text-transform:uppercase;color:#ffc27a}.lighting h2:first-child{margin-top:0}.lighting-row{display:grid;grid-template-columns:92px 1fr 40px;align-items:center;gap:6px;min-height:22px}.lighting-row input[type=range]{width:100%;margin:0;accent-color:#ffa63d}.lighting-row input[type=color]{grid-column:2/4;width:100%;height:18px;padding:0;border:1px solid #ffffff33;background:none;cursor:pointer}.lighting-row output{text-align:right;font-variant-numeric:tabular-nums;color:#c9cdbd}.lighting-reset{margin-top:10px;width:100%;padding:5px 0;border:1px solid #ffffff33;background:#ffffff0d;color:inherit;font:inherit;cursor:pointer}.lighting-reset:hover,.lighting-toggle:hover{background:#ffffff14}.forest.cinematic .lighting{display:none}.camera-hint,.loading,.touch-hint{font-family:Optima,Optima nova,Candara,Segoe UI,sans-serif;font-size:10pt}@media(max-width:560px){.lighting{left:16px;right:16px;width:auto}}.nav-control{position:absolute;top:16px;left:16px;z-index:5;display:flex;flex-direction:column;width:44px;font:10pt/1.35 Optima,Optima nova,Candara,Segoe UI,sans-serif;color:#f1ead8;background:#0f1610c2;border:1px solid #ffffff22;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:4px}.nav-control button{height:34px;border:0;border-bottom:1px solid #ffffff1c;background:none;color:inherit;font-size:16pt;line-height:1;cursor:pointer;display:grid;place-items:center}.nav-control button:hover{background:#ffffff12}.nav-control svg{width:20px;height:20px;transition:transform .05s linear}.nav-control select{position:absolute;left:52px;top:0;width:170px;height:34px;padding:0 8px;font:inherit;color:inherit;background:#0f1610c2;border:1px solid #ffffff22;border-radius:4px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);cursor:pointer}.nav-control select option{background:#162018}.forest-canvas canvas{cursor:grab}.forest-canvas canvas.grabbing{cursor:grabbing}.nav-control .nav-mode{font-size:9pt;letter-spacing:.04em}.mode-hint{position:absolute;left:50%;bottom:18px;transform:translate(-50%);z-index:4;padding:5px 12px;font:10pt/1.35 Optima,Optima nova,Candara,Segoe UI,sans-serif;color:#e9ebe0;background:#0f1610a8;border:1px solid #ffffff1f;border-radius:4px;white-space:nowrap;pointer-events:none;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.mode-hint b{color:#ffc27a;font-weight:400;border:1px solid #ffc27a88;border-radius:3px;padding:0 4px;margin-right:2px}.forest.cinematic .mode-hint{display:none}@media(max-width:560px){.mode-hint{font-size:9pt;white-space:normal;width:calc(100% - 32px);text-align:center}}.forest.cinematic .nav-control{display:none}@media(max-width:560px){.nav-control select{width:140px}}
