@font-face{font-family:Barlow;src:url('fonts/barlow-latin-400-normal.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:Barlow;src:url('fonts/barlow-latin-600-normal.woff2') format('woff2');font-weight:600;font-display:swap}
@font-face{font-family:'Barlow Condensed';src:url('fonts/barlow-condensed-latin-600-normal.woff2') format('woff2');font-weight:600;font-display:swap}
:root{--sky:#cce1ef;--ink:#233c50;--paper:#faf6e9;--mint:#b1cda6;--path:#eee4bf;--plum:#68576d;--muted:#4a6070;--edge:#9fb8c8;--shade:0 12px 35px #233c5022;font-family:Barlow,sans-serif;color:var(--ink);background:var(--sky);font-synthesis:none;color-scheme:light}
*{box-sizing:border-box}body{margin:0}button,select{font:inherit;color:inherit}button,a,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button{border:1px solid var(--edge);background:var(--paper);border-radius:9px;min-height:44px;padding:10px 14px;font-weight:600}button:hover{background:#fffdf5;border-color:var(--ink)}button:active{transform:translateY(1px)}button:disabled{cursor:progress;opacity:.55}button[aria-pressed=true]{background:var(--ink);color:var(--paper);border-color:var(--ink)}a{color:var(--ink);text-underline-offset:4px}svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.6;flex-shrink:0}h1,h2,p{margin:0}h1,h2{font-family:'Barlow Condensed',sans-serif;font-weight:600;text-wrap:balance}h1{font-size:clamp(48px,5vw,72px);line-height:.98;letter-spacing:-.02em}h2{font-size:30px;line-height:1.05}p{line-height:1.5}::selection{background:var(--plum);color:white}:focus-visible{outline:3px solid var(--plum);outline-offset:4px}::-webkit-scrollbar{width:8px;height:6px}::-webkit-scrollbar-thumb{background:var(--edge);border:2px solid var(--paper);border-radius:8px}[hidden]{display:none!important}
.masthead{position:relative;z-index:5;display:flex;align-items:center;justify-content:space-between;padding:22px 30px;height:86px;gap:20px}.brand{display:flex;align-items:center;gap:10px;background:transparent;border:0;padding:0;font-size:22px}.brand svg{width:30px;height:30px}.brand-dot{width:7px;height:7px;background:var(--plum);border-radius:50%;margin-top:4px}.where{font-size:14px}.quiet-button{background:transparent;border-color:transparent;font-weight:400;text-decoration:underline;text-underline-offset:5px;padding-right:0}.brand:hover,.quiet-button:hover{background:transparent;border-color:transparent}.quiet-button:hover{text-decoration-thickness:2px}
#world-main{display:grid;grid-template-columns:minmax(0,1fr);height:calc(100svh - 186px);min-height:490px}#scene-shell{position:relative;min-width:0;isolation:isolate}#scene{position:absolute;inset:0}canvas{display:block;width:100%;height:100%;touch-action:none;outline-offset:-5px!important}#map-labels{position:absolute;inset:0;pointer-events:none;overflow:hidden}.place-label{position:absolute;left:0;top:0;pointer-events:auto;background:var(--paper);border:0;box-shadow:0 4px 12px #233c5017;min-height:40px;display:flex;align-items:center;gap:9px;padding:8px 13px;white-space:nowrap;font-size:14px}.place-label:before{content:'';height:7px;width:7px;border-radius:50%;background:var(--place-color)}.place-label svg{height:14px;width:14px}.world-intro{position:absolute;top:22px;left:44px;pointer-events:none}.world-intro p{margin-top:18px;font-size:18px;line-height:1.45}.atlas-note{display:block;font-size:12px;margin-top:24px;color:var(--muted)}#chapter-labels{position:absolute;inset:0;pointer-events:none;font-family:'Barlow Condensed',sans-serif;font-size:28px;color:var(--muted)}#chapter-labels span{position:absolute;opacity:.85}.milan{left:33%;top:3%;transform:rotate(-8deg)}.tbilisi{right:18%;bottom:12%;transform:rotate(-8deg)}.gesture-hint{position:absolute;bottom:8px;left:50%;transform:translateX(-50%);font-size:13px;color:var(--muted);white-space:nowrap;pointer-events:none}.camera-tools{position:absolute;right:26px;bottom:18px;display:flex;gap:5px}.camera-tools button{width:42px;min-width:42px;padding:10px;display:grid;place-content:center;background:#faf6e9cc;border:0}.back-button{position:absolute;top:14px;left:28px;display:flex;gap:10px;align-items:center;box-shadow:var(--shade);border:0}.place-heading{display:flex;align-items:flex-start;gap:12px;justify-content:space-between}.place-heading h1{font-size:52px;max-width:8ch}.place-heading>span{margin-top:5px;font-size:14px;color:var(--muted)}
body[data-mode=place] #world-main{grid-template-columns:minmax(0,1fr) 330px;gap:0}#place-panel{background:var(--paper);border-radius:18px 0 0 18px;padding:28px 24px;overflow:auto;margin:8px 18px 0 0;box-shadow:var(--shade)}#place-intro{margin-top:18px;font-size:16px}.view-buttons{display:flex;flex-wrap:wrap;gap:6px;margin-top:24px}.view-buttons button{font-size:13px;padding:8px 10px;flex:1;white-space:nowrap}.room-light{margin-top:20px;display:flex;gap:6px;align-items:center;flex-wrap:wrap}.room-light>span{font-size:13px;margin-right:auto}.room-light button{font-size:12px;padding:8px}.about-place{margin-top:24px;font-size:13px;color:var(--muted);border-top:1px solid #dcdccf;padding-top:16px}.about-place summary{cursor:pointer;min-height:30px;color:var(--ink)}.about-place p{margin-top:10px}#study-layer{margin-top:28px}#study-layer>p:first-of-type{font-size:14px;margin-top:8px}#study-layer label{font-size:12px;display:block;margin:16px 0 6px}#course-select{width:100%;min-height:44px;padding:10px 32px 10px 10px;border:1px solid var(--edge);border-radius:6px;background:transparent;text-overflow:ellipsis;font-size:14px}#course-area{font-size:12px;color:var(--muted);margin-top:8px}#takeaway{font-size:14px;margin:14px 0 16px;font-style:italic}#study-table,#doors{font-size:13px;margin:0 0 6px;padding:8px 10px}#doors{background:transparent;color:var(--ink);border-color:var(--edge)}
.music-toggle{display:flex;gap:12px;align-items:center;text-align:left;width:100%;padding:16px 0;margin-top:24px;background:transparent;border:0;border-top:1px solid #dcdccf;border-radius:0;font-size:14px}.music-toggle>span:nth-child(2){flex:1}.music-toggle small{display:block;font-size:12px;font-weight:400;margin-top:4px;line-height:1.4}.record-icon{width:29px;height:29px;min-width:29px;border-radius:50%;border:9px solid var(--ink);background:var(--path);box-shadow:inset 0 0 0 2px var(--ink)}.music-toggle:hover{background:transparent}.track-title{font-size:15px;font-weight:600;margin-top:6px}.track-version{font-size:12px;color:var(--muted);margin:3px 0 12px}.official-link{font-size:14px}.music-consent,.fine-print{font-size:12px;line-height:1.5;color:var(--muted);margin:14px 0}.music-actions{display:flex;gap:6px;flex-wrap:wrap}.music-actions button{font-size:12px;padding:8px 9px}iframe{border:0;width:max(100%,280px);margin:15px min(0px,(100% - 280px)/2) 0;border-radius:10px;background:#eeedde}.fine-print:empty{display:none}
.place-nav{position:relative;display:flex;align-items:stretch;gap:6px;justify-content:center;z-index:5;margin:20px auto;width:max-content;max-width:calc(100% - 32px);background:var(--paper);padding:7px;border-radius:16px;box-shadow:var(--shade)}.place-nav button{display:flex;align-items:center;gap:12px;background:transparent;border:0;min-width:136px;text-align:left;padding:9px 18px;font-size:15px}.place-nav small{display:block;font-size:11px;font-weight:400;color:var(--muted);margin-top:3px}.place-nav button[aria-current=true]{background:var(--ink);color:var(--paper)}.place-nav button[aria-current=true] small{color:#d8e3e8}.place-nav button:hover:not([aria-current=true]){background:#e6eadc}.place-nav .nav-overview{min-width:125px}.nav-chip{height:12px;width:12px;background:var(--place-color);border-radius:3px;transform:rotate(-10deg);box-shadow:inset 0 0 0 1px #00000016}
#loading-status{position:absolute;bottom:58px;left:50%;transform:translateX(-50%);font-size:13px;background:var(--paper);padding:8px 13px;border-radius:8px;max-width:80%;text-align:center}#loading-status[data-complete=true]{visibility:hidden}#load-errors{position:absolute;bottom:75px;left:20px;right:20px;padding:12px;background:var(--paper);border-radius:10px;font-size:14px;z-index:6}#load-errors button{margin-left:10px;font-size:13px}#fallback{position:absolute;inset:16px 24px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:18px;background:var(--sky);z-index:2}#fallback p{max-width:480px;text-align:center}#fallback img{display:block;max-width:100%;max-height:65%;object-fit:contain;border-radius:14px}#fallback button{font-size:14px}body[data-webgl=false] .world-intro,body[data-webgl=false] #chapter-labels,body[data-webgl=false] #map-labels,body[data-webgl=false] .camera-tools,body[data-webgl=false] .gesture-hint{display:none}.back-button{z-index:3}
#help-panel{position:fixed;top:84px;right:26px;width:350px;max-width:calc(100% - 32px);z-index:10;background:var(--paper);padding:28px;border-radius:16px;box-shadow:var(--shade);max-height:calc(100svh - 115px);overflow:auto}#help-panel p{font-size:14px;margin-top:15px}#help-panel dl{font-size:14px;margin:20px 0}#help-panel dt{font-weight:600;margin-top:14px}#help-panel dd{margin:4px 0 0;line-height:1.5}#help-panel button{margin-top:20px}.skip-link{position:fixed;top:-100px;left:16px;padding:12px;background:var(--paper);z-index:50}.skip-link:focus{top:12px}.noscript{position:fixed;inset:90px 20px 120px;background:var(--paper);padding:30px;z-index:20;overflow:auto}.noscript a{display:block;margin:20px}
@media(min-width:1500px){body[data-mode=place] #world-main{grid-template-columns:minmax(0,1fr) 370px}#place-panel{padding:32px}}
@media(max-width:1100px){.world-intro{left:28px;top:12px}.world-intro h1{font-size:50px}.world-intro p{font-size:16px}.where{display:none}.gesture-hint{left:24px;transform:none;font-size:12px}body[data-mode=place] #world-main{grid-template-columns:minmax(0,1fr) 310px}.place-nav button{min-width:112px;padding:9px 14px}.camera-tools{right:16px}}
@media(max-width:700px){.masthead{height:70px;padding:12px 18px;gap:10px}.brand{font-size:20px}.brand svg{width:25px;height:25px}.quiet-button{font-size:12px}.brand-dot{display:none}#world-main{height:calc(100svh - 163px);min-height:510px}.world-intro{top:4px;left:22px}.world-intro h1{font-size:40px}.world-intro p{font-size:14px;margin-top:12px}.atlas-note{font-size:10px;margin-top:10px}#chapter-labels{font-size:21px}.milan{left:40%;top:31%}.tbilisi{right:12%;bottom:11%}.place-label{font-size:11px;padding:6px 8px;min-height:36px;gap:5px}.place-label svg{display:none}.gesture-hint{bottom:5px;left:50%;transform:translateX(-50%);font-size:10px;max-width:100%}.camera-tools{bottom:28px;right:14px;gap:3px}.camera-tools button{min-width:38px;width:38px;min-height:40px;padding:8px}.place-nav{position:fixed;bottom:12px;left:12px;right:12px;max-width:none;width:auto;margin:0;padding:5px;gap:0;border-radius:13px}.place-nav button{min-width:0!important;flex:1;justify-content:center;flex-direction:column;gap:7px;text-align:center;padding:7px 2px;font-size:11px;line-height:1.15}.place-nav small{font-size:9px;margin-top:3px}.place-nav svg{width:17px;height:17px}.nav-chip{width:10px;height:10px}.nav-overview span{margin-bottom:6px}.place-nav .nav-overview{gap:8px}body[data-mode=place] #world-main{display:block;height:auto;min-height:0;padding-bottom:106px}body[data-mode=place] #scene-shell{height:47svh;min-height:320px}body[data-mode=place] .gesture-hint{display:none}#place-panel{padding:24px;margin:0 16px;border-radius:16px;overflow:visible;box-shadow:none}.place-heading h1{font-size:43px;max-width:none}#place-intro{font-size:15px;margin-top:14px}.view-buttons{margin-top:20px}.view-buttons button{font-size:12px}.back-button{left:18px;top:8px;min-height:40px;font-size:12px;padding:8px 12px}.back-button svg{height:16px;width:16px}.about-place{margin-top:20px}#help-panel{top:68px;right:16px}.music-toggle{margin-top:20px}.room-light{margin-top:14px}#loading-status{font-size:12px;bottom:65px;width:max-content;max-width:80%}#fallback{inset:54px 20px 40px;gap:12px}#fallback p{font-size:13px}#fallback img{max-height:60%}#fallback button{font-size:12px;min-height:36px}#study-layer{margin-top:22px}}
#course-title{font-size:17px;line-height:1.3;font-weight:600;margin:12px 0 0;text-wrap:balance}
body[data-mode=place] .gesture-hint{display:none}
@media(max-width:700px){.place-label{min-height:44px}.camera-tools button{min-width:44px;width:44px;min-height:44px}.place-nav button{font-size:12px}.place-nav small{font-size:11px}.atlas-note,.gesture-hint{font-size:12px}.milan{left:24px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
