/* Edge-to-edge iPhone web app, with controls kept clear of the camera cutout. */
html{width:100%;height:100%;overflow:hidden;background:#102d43;touch-action:pan-x pan-y;-webkit-text-size-adjust:100%}
body{position:fixed;inset:0;width:100%;height:100%;height:100dvh;margin:0;padding:0;overflow:hidden;overscroll-behavior:none;touch-action:pan-x pan-y}
html body canvas#world{position:fixed;inset:0;display:block;width:100%;height:100%;height:100dvh;max-width:none;max-height:none;touch-action:none}
/* Installed iOS can report dvh/100% as screen height minus the status bar
   even with viewport-fit=cover (measured: 894px versus 956px lvh).
   Fill the large viewport in BOTH installed display modes. Safari tabs keep
   the dynamic height above; only controls reserve the safe-area insets. */
@media(display-mode:standalone),(display-mode:fullscreen){html,body,html body canvas#world{height:100vh;height:100lvh;min-height:100vh;min-height:100lvh}}
#iosInstallGuide{position:fixed;inset:0;z-index:2000;display:grid;place-items:center;padding:max(18px,env(safe-area-inset-top)) max(18px,env(safe-area-inset-right)) max(18px,env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left));background:#071c2bb8;backdrop-filter:blur(12px)}
#iosInstallGuide[hidden]{display:none!important}
.ios-install-card{position:relative;width:min(430px,100%);padding:25px 25px 22px;border:1px solid #ffffff38;border-radius:25px;background:#153c50f7;color:#edf8fc;box-shadow:0 25px 80px #04152180;text-align:left}
.ios-install-heading{display:flex;align-items:center;gap:14px;padding-right:30px}.ios-install-heading img{width:64px;height:64px;border-radius:15px;box-shadow:0 7px 18px #03131f66}.ios-install-heading h2{margin:0;font-size:23px;line-height:1.15}.ios-install-heading small{display:block;margin-top:6px;color:#91bdcd;font-size:12px;font-weight:600}.ios-install-card>p{margin:18px 0 14px;color:#c5dce5;font-size:14px;line-height:1.5}.ios-install-card ol{display:grid;gap:11px;margin:0;padding:0;list-style:none;counter-reset:install}.ios-install-card li{counter-increment:install;display:flex;align-items:center;gap:10px;color:#f3f9fc;font-size:14px}.ios-install-card li:before{content:counter(install);display:grid;place-items:center;flex:none;width:27px;height:27px;border-radius:50%;background:#ffd557;color:#16384a;font-weight:800}.ios-share{display:inline-grid;place-items:center;width:24px;height:22px;margin:0 3px;border:2px solid #8cdefc;border-radius:5px;color:#8cdefc;font-size:18px;font-weight:800;line-height:1}.ios-share span{transform:translateY(-7px)}.ios-install-actions{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:20px}.ios-install-actions small{color:#8fb4c3;font-size:11px}.ios-install-later{padding:11px 17px;border-radius:999px;background:#ffd557;color:#16384a;font-weight:800}.ios-install-close{position:absolute;right:13px;top:13px;width:38px;height:38px;border-radius:50%;background:#ffffff12;color:#fff;font-size:23px}
@supports (-webkit-touch-callout:none){@media (pointer:coarse){input,select,textarea{font-size:16px!important}}}
@supports (padding:max(0px)){@media (max-width:900px){body>header{left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right))}body #modeMenu{right:max(12px,env(safe-area-inset-right))}.compass{left:max(16px,env(safe-area-inset-left))}body #cameraDock{right:max(10px,env(safe-area-inset-right))}body #sceneDock{bottom:max(14px,env(safe-area-inset-bottom))}}}
@media (max-height:430px){.ios-install-card{width:min(650px,100%);padding:17px 20px}.ios-install-heading img{width:50px;height:50px}.ios-install-heading h2{font-size:19px}.ios-install-heading small{margin-top:3px}.ios-install-card>p{margin:10px 0}.ios-install-card ol{grid-template-columns:1fr 1.25fr;gap:8px}.ios-install-actions{margin-top:12px}}
@media (prefers-reduced-motion:reduce){#iosInstallGuide{backdrop-filter:none}}
