[hidden]{display:none!important}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;height:100%;font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:#1d2a1d;overflow:hidden;background:#0b1a10}
#map{position:fixed;inset:0}
.screen{position:fixed;inset:0;z-index:20;display:flex;align-items:center;justify-content:center;padding:16px;background:radial-gradient(ellipse at 50% 30%,rgba(30,60,30,.25),rgba(5,15,8,.9))}
.lcard{text-align:center;color:#fff;max-width:520px;width:100%;animation:up .9s ease}.lcard h1{font-family:Georgia,serif;font-size:30px;margin:14px 0 4px;text-shadow:0 2px 12px #000}.lh{opacity:.8;font-size:14px}
#flags{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:18px}
.flag{display:flex;align-items:center;gap:12px;padding:14px;border-radius:18px;border:2px solid #ffffff30;background:#ffffff14;backdrop-filter:blur(6px);color:#fff;font-size:18px;font-weight:700;cursor:pointer;transition:transform .2s}
.flag:active{transform:scale(.96)}.flag svg{width:54px;height:36px;border-radius:5px;box-shadow:0 2px 8px #0008;flex:none}
.startcard{background:rgba(255,253,245,.96);border-radius:22px;padding:22px;max-width:480px;width:100%;box-shadow:0 10px 40px #0008;animation:up .8s ease;align-self:flex-end}
@keyframes up{from{transform:translateY(40px);opacity:0}}
.startcard h1{font-family:Georgia,serif;font-size:25px;margin:10px 0 6px;color:#2d4b22}.melisa{display:flex;gap:10px;align-items:center}.melisa small{display:block;color:#667}
.orb{width:46px;height:46px;border-radius:50%;background:radial-gradient(circle at 32% 30%,#fff3c4,#f0b35a 45%,#a6531f);display:grid;place-items:center;color:#fff;font-weight:800;font-size:21px;box-shadow:0 0 0 4px #ffd98a44,0 0 24px #ffc76a;animation:pulse 2.6s infinite;flex:none}
.orb.big{width:90px;height:90px;font-size:40px;margin:auto}.orb.talk.on{animation:talk .35s infinite alternate}
@keyframes pulse{50%{box-shadow:0 0 0 12px #ffd98a11,0 0 34px #ffc76a}}@keyframes talk{to{transform:scale(1.12);box-shadow:0 0 0 8px #ffd98a33,0 0 40px #ffd98a}}
.big{width:100%;padding:14px;font-size:18px;border:0;border-radius:14px;background:#2d4b22;color:#fff;font-weight:700;margin-top:10px}
header{position:fixed;top:0;left:0;right:0;z-index:5;display:flex;gap:8px;align-items:center;padding:calc(env(safe-area-inset-top) + 8px) 12px 10px;background:linear-gradient(#000b,#0000);color:#fff}
header b{flex:1;font-family:Georgia,serif;font-size:17px;text-shadow:0 1px 3px #000}#gpsstate{font-size:12px;opacity:.9}
.flagbtn{border:2px solid #fff;border-radius:8px;padding:0;width:42px;height:28px;overflow:hidden;background:none}.flagbtn svg{width:100%;height:100%;display:block}
#facing{position:fixed;top:calc(env(safe-area-inset-top) + 52px);left:50%;transform:translate(-50%,-20px);z-index:5;background:rgba(15,30,15,.85);color:#fff;padding:9px 16px;border-radius:99px;font-size:15px;opacity:0;transition:.4s;border:1px solid #ffd98a88;box-shadow:0 0 20px #ffd98a55;white-space:nowrap;cursor:pointer}
#facing.on{opacity:1;transform:translate(-50%,0)}#facing b{color:#ffd98a}
#tourbar{position:fixed;left:10px;right:10px;bottom:calc(env(safe-area-inset-bottom) + 62px);z-index:5;display:none;background:rgba(255,253,245,.95);border-radius:14px;padding:9px 12px;font-size:14px;box-shadow:0 4px 14px #0006}
#tourbar.on{display:flex;gap:10px;align-items:center}#tourbar .grow{flex:1}
#toolbar{position:fixed;left:0;right:0;bottom:calc(env(safe-area-inset-bottom) + 8px);z-index:6;display:flex;gap:6px;overflow-x:auto;padding:0 10px;scrollbar-width:none}
.pill{flex:none;border:0;border-radius:99px;padding:10px 14px;background:rgba(255,253,245,.95);font-size:14px;font-weight:700;box-shadow:0 2px 8px #0005}.pill.main{background:#c7782e;color:#fff}.pill.on{background:#2d4b22;color:#fff}
.sheet{position:fixed;left:0;right:0;bottom:0;z-index:8;max-height:74vh;overflow:auto;background:#fffdf5;border-radius:20px 20px 0 0;box-shadow:0 -8px 30px #0006;transform:translateY(105%);transition:transform .35s ease;padding:14px 16px calc(env(safe-area-inset-bottom) + 16px)}
.sheet.open{transform:none}.sheet .x{position:sticky;top:0;float:right;border:0;background:#eee;border-radius:50%;width:32px;height:32px;font-size:18px}
.sheet h2{font-family:Georgia,serif;color:#2d4b22;margin:4px 0 8px;font-size:21px}.sheet p{line-height:1.5;margin:0 0 10px}
.row{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0}.row button{flex:1}
.btn{border:0;border-radius:12px;padding:11px 14px;background:#2d4b22;color:#fff;font-weight:700;font-size:15px}.btn.alt{background:#e8e2cf;color:#2d4b22}
.list{list-style:none;padding:0;margin:0}.list li{display:flex;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid #eee}
.list img,.list .thumb{width:58px;height:44px;object-fit:cover;border-radius:8px;flex:none;background:#dfe6d3}
.num{display:inline-grid;place-items:center;min-width:26px;height:26px;border-radius:50%;background:#b8352b;color:#fff;font-weight:800;font-size:13px}
.src{font-size:12px;color:#666}.warn{font-size:12px;color:#a35a00}
.mk{width:30px;height:30px;border-radius:50%;background:#b8352b;color:#fff;border:3px solid #fff;display:grid;place-items:center;font-weight:800;font-size:13px;box-shadow:0 3px 8px #0008;transition:transform .5s cubic-bezier(.3,1.6,.5,1),box-shadow .5s,background .3s;cursor:pointer}
.mk.inroute{background:#c7782e}.mk.done{background:#5d7a4b}.mk.next{animation:nx 1.2s infinite}@keyframes nx{50%{box-shadow:0 0 0 10px #ffd98a55,0 3px 8px #0008}}
.mk.lift{transform:translateY(-26px) scale(1.55);box-shadow:0 22px 18px -6px #0007,0 0 26px 8px #ffd98acc}
.me{width:22px;height:22px;border-radius:50%;background:#2f8cff;border:3px solid #fff;box-shadow:0 0 0 0 #2f8cffaa,0 0 18px #6fb4ff;animation:me 1.6s infinite}
.me.big{width:34px;height:34px;border-width:5px}.me.big::after{content:attr(data-l);position:absolute;left:40px;top:2px;white-space:nowrap;background:#2f8cff;color:#fff;font-weight:700;padding:3px 10px;border-radius:99px;font-size:16px}
@keyframes me{70%{box-shadow:0 0 0 22px #2f8cff00,0 0 18px #6fb4ff}100%{box-shadow:0 0 0 0 #2f8cff00,0 0 18px #6fb4ff}}
#toast{position:fixed;top:96px;left:50%;transform:translateX(-50%);z-index:9;background:#000c;color:#fff;padding:8px 14px;border-radius:99px;font-size:14px;opacity:0;transition:.3s;pointer-events:none;max-width:92vw;text-align:center}#toast.on{opacity:1}
.ask{display:flex;gap:6px}.ask input{flex:1;min-width:0;padding:11px;border-radius:12px;border:1px solid #bbb;font-size:16px}
.chat{max-height:36vh;overflow:auto;margin:8px 0}.chat div{margin:6px 0;padding:8px 11px;border-radius:12px;max-width:88%}.chat .u{background:#e8e2cf;margin-left:auto}.chat .m{background:#2d4b22;color:#fff}
label.opt{display:inline-flex;gap:5px;align-items:center;margin:4px 10px 4px 0}
.maplibregl-popup-content{border-radius:14px;padding:0;overflow:hidden;width:240px}.pop img,.pop .ph{width:100%;height:120px;object-fit:cover;display:block}.pop>div{padding:8px 10px}.pop b{color:#2d4b22}.pop p{font-size:13px;margin:4px 0 8px}
.ph{display:grid;place-items:center;color:#5a6b4d;font-family:Georgia,serif;font-size:40px;background:repeating-linear-gradient(45deg,#dfe6d3,#dfe6d3 12px,#d3dcc5 12px,#d3dcc5 24px)}
/* scene */
#scene{position:fixed;inset:0;z-index:12;background:#000;opacity:0;transition:opacity .9s ease,transform 1.2s ease;transform:scale(1.15)}#scene.on{opacity:1;transform:none}
.scene-canvas{position:absolute;inset:0;image-rendering:pixelated}
.vign{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at center,transparent 68%,rgba(0,0,0,.3));z-index:1}
#scTitle{position:absolute;top:calc(env(safe-area-inset-top) + 18px);left:16px;right:16px;z-index:2;color:#fff;font-family:Georgia,serif;font-size:24px;text-shadow:0 2px 10px #000,0 0 30px #000;letter-spacing:.5px;animation:up 1.2s ease}
#scTitle small{display:block;font-family:system-ui;font-size:12px;opacity:.85;letter-spacing:2px;text-transform:uppercase}
#scMagic{position:absolute;top:40%;left:0;right:0;text-align:center;z-index:2;color:#e6f0ff;font-family:Georgia,serif;font-style:italic;font-size:22px;text-shadow:0 0 18px #9cc4ff;opacity:0;transition:opacity 2s}#scMagic.on{opacity:1}
#subs{position:absolute;left:12px;right:12px;bottom:calc(env(safe-area-inset-bottom) + 84px);z-index:2;text-align:center;color:#fff;font-size:17px;line-height:1.45;text-shadow:0 1px 3px #000,0 0 12px #000}
#subs span{background:rgba(0,0,0,.45);padding:4px 10px;border-radius:8px;-webkit-box-decoration-break:clone;box-decoration-break:clone}
.scbar{position:absolute;left:12px;right:12px;bottom:calc(env(safe-area-inset-bottom) + 18px);z-index:3;display:flex;gap:8px;align-items:center}.scbar #scBack{margin-left:auto}
#scAttr{position:absolute;right:8px;bottom:2px;z-index:3;font-size:9px;color:#fffa;text-shadow:0 1px 2px #000;max-width:70%;text-align:right}#scAttr a{color:#fffa}
#kiosk{position:fixed;inset:0;z-index:7;pointer-events:none}.ktitle{position:absolute;top:3vh;left:3vw;color:#fff;text-shadow:0 2px 10px #000}.ktitle h1{font-family:Georgia,serif;font-size:5vh;margin:0}.ktitle p{font-size:2.4vh}
.kqr{position:absolute;right:3vw;bottom:4vh;background:#fff;padding:1.4vh;border-radius:2vh;text-align:center;box-shadow:0 0 40px #ffd98a88}.kqr img{width:20vh;display:block}.kqr small{font-size:1.3vh}
#kstop{position:absolute;left:3vw;bottom:4vh;width:34vw;background:rgba(255,253,245,.94);border-radius:2vh;padding:2vh;font-size:2vh;opacity:0;transition:opacity 1s}#kstop.on{opacity:1}#kstop img{width:100%;height:22vh;object-fit:cover;border-radius:1.2vh}#kstop h2{font-family:Georgia,serif;color:#2d4b22;margin:1vh 0}

#arvid{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:none;z-index:0}#scene.ar #arvid{display:block}#scene.ar .scene-canvas{z-index:1}#scene.ar{background:#000}
#scene .scene-canvas{z-index:0}.fogov{display:none;position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(0deg,rgba(200,195,180,.18),transparent 45%),radial-gradient(ellipse at 50% 60%,transparent 40%,rgba(10,10,20,.45));animation:fogd 14s ease-in-out infinite alternate}
@keyframes fogd{to{opacity:.6}}#scene.ar .fogov,#scene.ar .vign{display:none}
#grain{position:absolute;inset:0;width:100%;height:100%;z-index:2;pointer-events:none;opacity:.05;mix-blend-mode:overlay;image-rendering:pixelated}
.lb{display:none;position:absolute;left:0;right:0;height:11vh;background:#000;z-index:2;transition:height 1s}.lb.top{top:0}.lb.bot{bottom:0}#scene.ar .lb{height:0}
#cut{position:absolute;inset:0;background:#000;z-index:2;opacity:0;pointer-events:none}#cut{transition:opacity .25s}#cut.on{opacity:.25}
#scTitle{top:calc(11vh + 10px)!important}#subs{bottom:calc(11vh + 64px)!important}
#scene.ar #scTitle{top:calc(env(safe-area-inset-top) + 16px)!important}
#scAR.on{background:#66e6ff;color:#002}
.holohint{position:absolute;top:calc(11vh + 64px);left:16px;z-index:3;color:#9ff0ff;font-size:12px;letter-spacing:2px;text-transform:uppercase;text-shadow:0 0 8px #66e6ff;animation:blink 1.4s infinite}@keyframes blink{50%{opacity:.4}}
html[dir=rtl] .scbar #scBack{margin-left:0;margin-right:auto}html[dir=rtl] #scTitle,html[dir=rtl] .sheet{text-align:right}
.lgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:14px;max-height:52vh;overflow:auto}.lgrid .flag{font-size:14px;padding:10px 8px;justify-content:center;flex-direction:column;gap:4px}.lgrid .flag svg{width:40px;height:26px}.lgrid .code{display:grid;place-items:center;width:40px;height:26px;border-radius:5px;background:#ffffff22;font-size:12px;letter-spacing:1px}
.lgrid .flag small{font-size:10px;opacity:.7;font-weight:400}

#world{position:fixed;inset:0;z-index:1;background:#bcd0dc}#world .worldgl{width:100%;height:100%;display:block;touch-action:none}
#wcap{position:absolute;left:0;right:0;top:38%;text-align:center;font:600 clamp(26px,6vw,64px)/1.1 Georgia,serif;color:#fff;letter-spacing:.06em;text-shadow:0 3px 24px rgba(0,0,0,.6);opacity:0;transition:opacity 1.2s;pointer-events:none}#wcap.on{opacity:1}
#wattr{position:absolute;left:6px;bottom:4px;font:10px/1.3 system-ui;color:#fff;text-shadow:0 1px 2px #000;opacity:.8;max-width:70%;pointer-events:none}
#btn3D.on{background:#1f6f5c;color:#fff}

#scene.flat{background:#000 center/cover no-repeat}#scene.flat .scene-canvas{display:none}.plan2d .mk2{cursor:pointer}.plan2d polyline.road{stroke:#fff}.plan2d polyline.path{stroke:#f6efe0}
