@import url('https://fonts.googleapis.com/css2?family=Be+Vietnam+Pro:wght@400;500;600&family=Playfair+Display:wght@400;500&display=swap');
:root{--ink:#263d36;--muted:#708078;--cream:#fffdf5;--green:#426754;--line:#d8dfd3}*{box-sizing:border-box}body{margin:0;overflow:hidden;color:var(--ink);font:13px 'Be Vietnam Pro',sans-serif;background:#cbdccc}button,input,select{font:inherit}button,select{cursor:pointer}button{border:1px solid var(--line);background:#fffdf3;color:var(--ink);padding:10px 14px;border-radius:12px;transition:background .2s,transform .2s}button:hover{background:#e5eddd}button:active{transform:scale(.97)}button:disabled{opacity:.5;cursor:default}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #c99a4a;outline-offset:2px}select,input:not([type=checkbox]):not([type=range]){border:1px solid var(--line);border-radius:10px;background:#fffdf5;color:var(--ink);padding:10px;min-width:0}.primary{background:var(--green);color:white;border-color:var(--green)}.primary:hover{background:#315340}.glass{background:#fffdf2ed;border:1px solid #ffffffa6;box-shadow:0 6px 32px #23372c12;backdrop-filter:blur(14px);border-radius:20px}#scene{position:fixed;inset:0;width:100%;height:100%;touch-action:none;outline:none}header{position:fixed;top:22px;left:30px;right:30px;display:flex;align-items:center;justify-content:space-between;pointer-events:none;z-index:6}.brand{font:36px 'Playfair Display',serif;letter-spacing:7px;text-decoration:none;color:var(--ink);pointer-events:auto;text-shadow:0 1px 10px white}.brand span{display:block;font:8px 'Be Vietnam Pro',sans-serif;letter-spacing:2.4px;margin-top:5px}.toolbar{display:flex;align-items:center;gap:8px;pointer-events:auto}.toolbar select,.toolbar button,.badge{background:#fffdf2ee;border:1px solid #fff8}.badge{padding:11px;border-radius:12px;font-size:11px}.place{position:fixed;top:112px;left:28px;width:270px;padding:22px;pointer-events:none}.eyebrow{font-size:9px;letter-spacing:2.6px;color:var(--muted)}h1,h2,h3{font-family:'Playfair Display',serif;font-weight:400}h1{font-size:29px;margin:9px 0 8px}p{line-height:1.75;color:var(--muted)}.place p{font-size:11px;margin:0}#coordinates{display:block;font-size:9px;color:#8c9b8a;margin-top:12px;letter-spacing:1px}#map{position:fixed;right:26px;top:111px;width:226px;padding:18px;max-height:calc(100dvh - 260px);overflow:auto}.section-title{display:flex;justify-content:space-between;align-items:center;font-weight:600;margin-bottom:12px}.tiny{font-size:10px;color:var(--muted);line-height:1.6}#destinations{display:flex;flex-direction:column;gap:3px}#destinations button{border:0;background:transparent;text-align:left;padding:10px 9px;font-size:11px}#destinations button.active{background:#e4ebdd;font-weight:600}#destinations .number{display:inline-block;color:#9aa58e;width:26px;font-size:9px}.map-footer{display:flex;gap:7px;border-top:1px solid var(--line);padding-top:12px;margin-top:10px}.map-footer button{font-size:10px;flex:1;padding:8px}#music{position:fixed;bottom:26px;left:28px;padding:12px;display:flex;align-items:center;gap:8px;max-width:430px}.record{display:grid;place-items:center;background:#2b4237;border:7px double #59705c;color:#ecdcaa;width:43px;height:43px;border-radius:50%;font-size:20px}.track-copy{display:flex;flex-direction:column;min-width:0}.track-copy small{font-size:8px;letter-spacing:1.5px;color:var(--muted)}#track{border:0;background:transparent;padding:5px 0;font-size:10px;width:198px}#music button{padding:8px 10px}#volume{width:50px;accent-color:var(--green)}#audio-status{font-size:8px;color:var(--muted)}.bottom{position:fixed;bottom:27px;left:50%;transform:translateX(-25%);padding:7px;display:flex;gap:3px}.bottom button{background:transparent;border:0;font-size:11px}.movement{position:fixed;bottom:108px;left:28px;padding:7px 10px;font-size:9px;display:flex;align-items:center;gap:12px}.movement button{font-size:9px;padding:6px 9px}#interaction{position:fixed;bottom:120px;left:50%;transform:translateX(-50%);padding:10px 12px;display:flex;gap:12px;align-items:center;font-size:12px}#interaction[hidden], [hidden]{display:none!important}#drawer,#chat-panel{position:fixed;right:26px;top:111px;width:340px;padding:24px;z-index:8;max-height:calc(100dvh - 220px);overflow:auto}.close{float:right;padding:5px 9px}#drawer h2{font-size:27px;margin-top:0}#drawer h3{font-size:20px;margin-bottom:8px}.table-row{border-bottom:1px solid var(--line);padding:10px 0}.table-row strong{font-size:11px}.seat-buttons{display:flex;gap:6px;margin-top:8px}.seat-buttons button{font-size:10px;padding:8px 10px}.activity-buttons{display:flex;flex-wrap:wrap;gap:7px}.activity-buttons button{font-size:11px}#messages{height:260px;overflow:auto;overflow-wrap:anywhere;margin:12px 0}.chatline{padding:9px 10px;background:#eaf0e4;border-radius:12px;margin-bottom:7px;font-size:11px;line-height:1.7}.chatline strong{display:block;font-size:10px;color:#6e7c65}#chat-form{display:flex;gap:6px}#message{width:100%}#toast{position:fixed;left:50%;top:88px;transform:translateX(-50%);padding:12px 20px;border-radius:16px;background:#243e34ec;color:white;z-index:30;opacity:0;pointer-events:none;transition:opacity .2s;font-size:12px;max-width:90vw}dialog{border:1px solid #fff;border-radius:26px;background:#fffcf2f5;color:var(--ink);width:440px;max-width:94vw;padding:34px;box-shadow:0 30px 100px #132a3450;max-height:92dvh;overflow:auto}dialog::backdrop{background:#203c3533;backdrop-filter:blur(4px)}dialog h2{font-size:36px;margin:14px 0;line-height:1.2}dialog p{font-size:12px}label{display:flex;flex-direction:column;gap:7px;font-size:11px;margin:14px 0}.form-row{display:grid;grid-template-columns:1fr 1.5fr;gap:12px}.check{flex-direction:row;align-items:center}.check input{accent-color:var(--green)}.enter{width:100%;padding:14px;font-weight:500}#welcome-lang{border:0;background:none;font-size:10px;padding:0;text-decoration:underline}#join-error{color:#b45338}#labels{position:fixed;inset:0;pointer-events:none}.name-label{position:absolute;transform:translate(-50%,-100%);background:#fffbeded;border:1px solid #d5decf;padding:4px 8px;border-radius:9px;font-size:10px;white-space:nowrap;max-width:130px;overflow:hidden;text-overflow:ellipsis}.zone-label{background:#365342dc;color:#fffce9;font-size:10px;border:0;letter-spacing:.4px}#touch-pad{display:none}#load-error{position:fixed;inset:35% 20%;z-index:50;padding:30px;font-size:15px}audio{width:100%}.timer{font:46px 'Playfair Display',serif;text-align:center;padding:20px}.quote{border-left:2px solid #afba93;padding:12px 18px;font-family:serif;font-size:19px;color:#4d6253}.online-person{display:flex;justify-content:space-between;align-items:center;padding:8px 0}.online-person button{font-size:9px;padding:5px}#music.playing .record{animation:record 12s linear infinite}@keyframes record{to{transform:rotate(360deg)}}@media(max-width:1150px){#music{bottom:87px}.movement{bottom:167px}.bottom{left:50%;transform:translateX(-50%);white-space:nowrap}#map{max-height:calc(100dvh - 220px)}}@media(max-width:700px){header{top:14px;left:16px;right:16px}.brand{font-size:27px}.brand span{font-size:6px;letter-spacing:1px}.toolbar{gap:4px}.toolbar button,.toolbar select{font-size:9px;padding:8px}.badge{position:fixed;right:16px;top:64px;padding:7px;font-size:9px}.place{top:80px;left:16px;width:205px;padding:14px}.place h1{font-size:23px}.place p{display:none}.place #coordinates{margin-top:5px}#map{top:151px;right:12px;width:205px;max-height:calc(100dvh - 340px);padding:12px}#music{left:12px;bottom:82px;padding:8px;max-width:calc(100vw - 24px);gap:5px}.record{width:32px;height:32px;border-width:5px}#track{width:170px}#volume{width:40px}#music button{padding:7px}.bottom{bottom:18px;padding:4px;width:calc(100vw - 24px);justify-content:space-around}.bottom button{font-size:10px;padding:12px 6px}.movement{display:none}#touch-pad{display:grid;grid-template-columns:repeat(3,40px);grid-template-rows:repeat(2,40px);gap:4px;position:fixed;left:18px;bottom:168px;z-index:5}#touch-pad button{padding:0;font-size:21px;background:#fffdebd9;touch-action:none}#touch-pad button:first-child{grid-column:2}#touch-pad button:nth-child(2){grid-column:1;grid-row:2}#touch-pad button:nth-child(3){grid-column:2;grid-row:2}#touch-pad button:nth-child(4){grid-column:3;grid-row:2}#interaction{bottom:173px;left:auto;right:12px;transform:none;max-width:52vw;font-size:10px}#drawer,#chat-panel{right:12px;top:151px;width:calc(100vw - 24px);max-height:calc(100dvh - 300px);padding:19px}#messages{height:170px}#load-error{inset:25% 5%}dialog{padding:26px}dialog h2{font-size:31px}}

#view-controls{position:fixed;top:24px;left:50%;transform:translateX(-50%);display:flex;gap:3px;padding:5px;z-index:7}#view-controls button{border:0;background:transparent;padding:9px 10px;font-size:10px}#auto-view[aria-pressed=true]{background:#426754;color:#fff}#drawer-content>button{display:block;width:100%;text-align:left;margin:7px 0}.cinema header,.cinema .place,.cinema #map,.cinema #music,.cinema .bottom,.cinema .movement,.cinema #touch-pad,.cinema #labels,.cinema #interaction,.cinema #drawer,.cinema #chat-panel{display:none!important}.cinema #view-controls{top:auto;bottom:22px;opacity:.75}.cinema #view-controls:hover{opacity:1}
@media(max-width:1350px){#view-controls{top:80px}}@media(max-width:850px){#view-controls{top:auto;bottom:146px;left:auto;right:12px;transform:none;flex-wrap:wrap;max-width:220px;justify-content:flex-end}#view-controls button{font-size:9px;padding:7px}#interaction{bottom:230px}.cinema #view-controls{top:auto;bottom:20px;left:50%;right:auto;transform:translateX(-50%);width:220px}}

#route-map{display:block;width:100%;height:133px;background:#e8ecdc;border-radius:12px;margin-bottom:9px}#route-map circle[role=button]{cursor:pointer}#route-map circle[role=button]:focus{stroke:#fff;stroke-width:2}

.journey{padding:14px;background:#f1efdf;border:1px solid #d9dbc8;border-radius:13px;margin:10px 0}.journey h3{margin:0 0 4px}.journey p{margin:7px 0;color:#425546}.journey small{color:#556958}.journey button{margin:3px;font-size:11px}.journey summary{font-weight:600;cursor:pointer}.journey a{color:#395c45}

/* Keep the centre of a phone viewport available for looking and walking. */
#mobile-activities { display: none; }
@media (max-width:700px), (pointer:coarse) and (orientation:landscape) and (max-height:600px) {
  :root {
    --phone-right: max(10px, env(safe-area-inset-right));
    --phone-bottom: max(12px, env(safe-area-inset-bottom));
  }
  .bottom #activities { display: none; }
  .bottom {
    left: max(10px, env(safe-area-inset-left));
    right: calc(var(--phone-right) + 54px);
    bottom: var(--phone-bottom);
    width: auto;
    transform: none;
    justify-content: space-around;
  }
  #mobile-activities {
    position: fixed; z-index: 10; display: grid; place-items: center;
    right: var(--phone-right); bottom: var(--phone-bottom);
    width: 46px; height: 46px; padding: 0; border-radius: 50%;
    background: #365443; color: #fff7db; border: 1px solid #e4d3a8;
    font-size: 25px; box-shadow: 0 2px 8px #213a3229;
  }
  #mobile-activities[aria-expanded=true] { background: #604d35; }
  #drawer:is([data-mode=activities],[data-mode=drinks],[data-mode=basket]) {
    top: auto; left: auto; right: var(--phone-right);
    bottom: calc(var(--phone-bottom) + 54px);
    width: min(46vw, 270px); max-height: min(60dvh, 410px);
    padding: 9px; overflow: auto; overscroll-behavior: contain;
    border-radius: 14px; overflow-wrap: anywhere;
  }
  #drawer:is([data-mode=activities],[data-mode=drinks],[data-mode=basket]) .close {
    position: sticky; top: 0; z-index: 1; min-width: 40px; min-height: 40px;
    background: #fffdf5; line-height: 1;
  }
  #drawer:is([data-mode=activities],[data-mode=drinks],[data-mode=basket]) h2 { font-size: 18px; margin: 0 0 6px; }
  #drawer:is([data-mode=activities],[data-mode=drinks],[data-mode=basket]) h3 { font-size: 15px; }
  #drawer:is([data-mode=activities],[data-mode=drinks],[data-mode=basket]) p { font-size: 11px; line-height: 1.45; }
  #drawer:is([data-mode=activities],[data-mode=drinks],[data-mode=basket]) .journey { padding: 7px; margin: 7px 0; }
  #drawer:is([data-mode=activities],[data-mode=drinks],[data-mode=basket]) button { white-space: normal; max-width: 100%; }
  #drawer:is([data-mode=activities],[data-mode=drinks],[data-mode=basket]) input { width: 100%; }
  .cinema #mobile-activities { display: none; }
}

.drink-list{display:grid;gap:6px}.drink-list button{text-align:left;min-height:40px}.drink-list button:disabled{background:#e5ecdb;color:#345643;opacity:1} @media(max-width:700px){#interaction:has(#order-drink:not([hidden])){flex-wrap:wrap;justify-content:flex-end}#interaction:has(#order-drink:not([hidden])) #interaction-text{display:none}}

/* Small corner identity for handheld views, above the landscape. */
@media (max-width:700px), (pointer:coarse) and (orientation:landscape) and (max-height:600px) {
  header {
    top: max(8px, env(safe-area-inset-top));
    left: max(10px, env(safe-area-inset-left));
    align-items: flex-start;
  }
  .brand {
    font-size: 17px;
    line-height: 22px;
    letter-spacing: 2px;
  }
  .brand span, .place .eyebrow, .place p, .place #coordinates { display: none; }
  .place {
    top: calc(max(8px, env(safe-area-inset-top)) + 26px);
    left: max(10px, env(safe-area-inset-left));
    width: max-content;
    max-width: min(60vw, 230px);
    padding: 3px 8px;
    border-radius: 9px;
    box-shadow: none;
    background: #fffdf1e8;
  }
  .place h1 {
    margin: 0;
    font: 500 12px/16px 'Be Vietnam Pro', sans-serif;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
}

.map-footer{flex-wrap:wrap}.map-footer select{flex:1 1 40%;min-width:0;font:inherit;font-size:11px;padding:6px 3px}
.eye-view #mobile-activities{display:grid;position:fixed;place-items:center;z-index:10;right:max(10px,env(safe-area-inset-right));bottom:max(12px,env(safe-area-inset-bottom));width:46px;height:46px;border-radius:50%;padding:0;color:#fff7db;background:#365443;font-size:25px}
.eye-view .bottom #activities{display:none}
.cinema.eye-view #drawer[data-mode=activities]:not([hidden]),.cinema.eye-view #drawer[data-mode=seats]:not([hidden]),.cinema.eye-view #drawer[data-mode=floors]:not([hidden]),.cinema.eye-view #drawer[data-mode=drinks]:not([hidden]){display:block!important}

.brand span{font-size:10px;line-height:1.2;letter-spacing:.4px}
#music.folded{width:auto;max-width:none;padding:3px}#music.folded>:not(#music-fold){display:none}#music.folded #music-fold{min-width:40px;min-height:40px;font-size:18px}
#guide-strip{position:fixed;z-index:7;left:12px;top:83px;padding:5px 7px;font-size:11px;max-width:94vw}
#guide-strip button{font-size:10px;padding:5px;margin-left:3px}
.cinema.eye-view #drawer[data-mode=basket]:not([hidden]){display:block!important}
@media(max-width:700px),(pointer:coarse) and (orientation:landscape) and (max-height:600px){
 .brand span{display:block;font-size:9px;letter-spacing:0;margin:0;white-space:nowrap}
 .place{top:calc(max(8px,env(safe-area-inset-top)) + 38px)}
 #music:not(.folded){width:calc(100vw - 24px)}#music .track-copy{flex:1}#track{width:100%;max-width:170px}
 #guide-strip{top:calc(max(8px,env(safe-area-inset-top)) + 70px);font-size:10px}
}
@media(min-width:701px){#guide-strip{left:50%;transform:translateX(-50%);top:116px}}
#control-dock{display:contents}
#scope{width:min(94vw,560px);text-align:center;background:#10192b;color:#f2ead6}#scope h2{font-size:22px;margin:6px}#scope p{color:#c3cde0}.scope-close{float:right}.scope-tools{display:flex;flex-wrap:wrap;gap:6px;align-items:center;justify-content:center}.scope-tools label{margin:0}#lens{position:relative;width:min(64dvh,100%);aspect-ratio:1;margin:12px auto;overflow:hidden;border-radius:50%;border:6px solid #6c726e;background:#060b18;touch-action:none}#lens canvas,#lens img{width:100%;height:100%;display:block;object-fit:cover;pointer-events:none}
@media(max-width:700px),(pointer:coarse) and (orientation:landscape) and (max-height:600px){
 #control-dock{display:flex;align-items:center;justify-content:flex-end;gap:3px;position:fixed;right:var(--phone-right);left:max(8px,env(safe-area-inset-left));bottom:calc(var(--phone-bottom) + 49px);z-index:7;pointer-events:none}
 #control-dock #view-controls,#control-dock #interaction,#control-dock #interaction:has(#order-drink:not([hidden])){position:static;inset:auto;transform:none;width:max-content;max-width:none;display:flex;flex-wrap:nowrap;align-items:center;gap:1px;padding:2px;border-radius:12px;pointer-events:auto}
 #control-dock #view-controls button{font-size:0;min-width:32px;min-height:34px;padding:2px}
 #control-dock #view-controls button::before{content:attr(data-icon);font:19px/1 sans-serif}
 #control-dock #interaction-text{display:none}#control-dock #interaction button{font-size:10px;min-height:34px;padding:3px 6px}
 #music{bottom:calc(var(--phone-bottom) + 92px)}#touch-pad{bottom:calc(var(--phone-bottom) + 160px)}
 .cinema #control-dock{bottom:var(--phone-bottom);right:calc(var(--phone-right) + 51px)}
}

.speech-bubble{max-width:220px;white-space:normal!important;text-align:center;padding:8px 12px!important;border-radius:14px 14px 14px 3px!important;background:#fff9e9!important;color:#263d36;box-shadow:0 3px 16px #192c3330;font-size:13px;line-height:1.4;overflow-wrap:anywhere;pointer-events:none}#drawer-content input[type=file]{max-width:100%;font-size:12px}#breathing-guide{min-height:64px;text-align:center;padding:18px;font-size:17px} @media(max-width:700px){.speech-bubble{max-width:160px;font-size:11px}}

/* Compact analog movement and close-up orbit camera. */
#touch-pad{display:block;position:fixed;left:max(14px,env(safe-area-inset-left));bottom:170px;width:116px;height:116px;padding:0;border:1px solid #fff9;border-radius:50%;background:radial-gradient(circle,#fdf4d832,#fffde815);box-shadow:inset 0 0 0 12px #fff8,0 3px 16px #213b3020;touch-action:none;user-select:none;z-index:6;backdrop-filter:blur(3px)}
#touch-pad #stick-knob{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:46px;height:46px;min-height:0;padding:0;margin:0;border-radius:50%;border:2px solid #fff9;background:#f8f1ddeb;box-shadow:0 4px 10px #213b3040;touch-action:none;transition:none;}
.stick-arrow{position:absolute;color:#fffbe6;font-size:16px;pointer-events:none;line-height:1}.stick-arrow.up{top:7px;left:50%;transform:translateX(-50%)}.stick-arrow.down{bottom:7px;left:50%;transform:translateX(-50%)}.stick-arrow.left{left:7px;top:50%;transform:translateY(-50%)}.stick-arrow.right{right:7px;top:50%;transform:translateY(-50%)}
#zoom-controls{position:fixed;right:max(14px,env(safe-area-inset-right));bottom:170px;z-index:7;display:flex;flex-direction:column;padding:3px;border-radius:24px;gap:2px}
#zoom-controls button{width:42px;height:42px;border-radius:50%;padding:0;font-size:22px;background:transparent;border:0;touch-action:manipulation}
#chat-mic{flex:0 0 42px;display:grid;place-items:center;padding:8px;border-radius:50%;height:42px}#chat-mic.listening{background:#9c493b;color:#fff;box-shadow:0 0 0 4px #9c493b22}#dictation-status{min-height:18px;color:#426754;margin:7px 0}#message[readonly]{background:#f1eee1}#chat-form{align-items:center}#chat-form input{flex:1;width:0;min-width:50px}
.cinema #zoom-controls{display:none!important}
@media(max-width:700px),(pointer:coarse) and (orientation:landscape) and (max-height:600px){
 #touch-pad{width:106px;height:106px;bottom:calc(var(--phone-bottom) + 145px)}
 #zoom-controls{bottom:calc(var(--phone-bottom) + 145px)}
 #zoom-controls button{width:38px;height:38px}
 #chat-panel{max-height:calc(100dvh - 180px)}#messages{height:min(26dvh,170px)}
}
@media(max-height:500px) and (orientation:landscape){#touch-pad{bottom:105px;width:94px;height:94px}#zoom-controls{bottom:105px}#chat-panel{top:65px;max-height:calc(100dvh - 130px);width:min(360px,60vw)}}
.gallery-card{display:flex!important;align-items:center;gap:12px;width:100%;margin:8px 0;text-align:left}.gallery-card img{width:72px;height:80px;object-fit:contain;background:#e9e4d5;border-radius:6px}.company-link{display:block;margin:14px 0;color:#315944;font-weight:600;line-height:1.6}#gallery-view{width:min(900px,95vw);padding:18px}#gallery-view h2{font-size:22px;margin:5px 36px 12px 0}#gallery-image{display:block;max-height:70dvh;max-width:100%;width:auto;margin:auto;object-fit:contain}
@media(max-width:700px),(pointer:coarse) and (orientation:landscape) and (max-height:600px){#touch-pad{bottom:calc(var(--phone-bottom) + 160px)}}
@media(max-height:500px) and (orientation:landscape){#touch-pad{bottom:166px}}

.office-service{pointer-events:auto!important;cursor:pointer;background:#f7f1dc!important;color:#224e66!important;border:2px solid #c9a45b;padding:8px 14px;font-weight:700;font-size:13px;max-width:240px;white-space:normal;text-align:center}.office-service:focus-visible{outline:3px solid #326fa8}
/* Compact recording control remains reachable while the interface is hidden. */
#record-toggle{position:fixed;right:max(68px,calc(env(safe-area-inset-right) + 68px));bottom:170px;z-index:12;min-width:44px;height:44px;padding:6px 10px;border-radius:24px;background:#fff9e9;color:#456552;box-shadow:0 3px 14px #0002;font-size:20px}
#record-toggle.recording{background:#873f34;color:white;font-size:13px;font-variant-numeric:tabular-nums}
#record-dialog{width:min(520px,92vw);max-height:85dvh;overflow:auto;padding:24px;border:0;border-radius:24px;background:#fff9ec;color:#29483c}
#record-dialog::backdrop{background:#10241e99}#record-dialog h2{padding-right:30px;font-size:24px}#record-dialog p{line-height:1.5;font-size:14px}#record-dialog video{width:100%;max-height:45dvh;border-radius:12px;background:#182920}#record-dialog .record-close{position:absolute;right:12px;top:12px}.record-options,.record-result{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0}.record-result[hidden],.record-options[hidden]{display:none}#record-dialog button{min-height:44px}#record-dialog button:disabled{opacity:.45}
@media(max-width:700px){#record-toggle{bottom:calc(var(--phone-bottom,90px) + 145px)}}
@media(max-height:500px){#record-toggle{bottom:105px}}
#record-dialog .record-result{align-items:center}#record-dialog .record-download{background:#355d4c;color:#fff}#record-dialog .record-open{color:#355d4c;padding:12px 4px;text-decoration:underline;font-size:14px}

/* Small drink names follow each served cup without covering the garden. */
.name-label.drink-label{font-size:10px;font-weight:600;max-width:185px;padding:3px 7px;border-radius:7px;background:#fffbedf2;color:#294638;border:1px solid #aabda4;box-shadow:0 2px 7px #263d361f;pointer-events:none}
@media(max-width:700px){.name-label.drink-label{font-size:10px;max-width:155px;padding:3px 6px}}

#camera-tools{display:contents}
.drink-menu-tabs{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 12px;padding:4px;background:#ecefdf;border-radius:13px}.drink-menu-tabs button{flex:1;min-width:0;padding:9px 8px;font-size:11px;white-space:normal;border-radius:10px}.drink-menu-tabs button[aria-current=page]{background:#426754;color:#fff}.drink-menu-tabs button[aria-haspopup=dialog]{background:#f6e5bb;border-color:#e1cd9a}
@media(max-width:700px),(pointer:coarse) and (orientation:landscape) and (max-height:600px){
 #camera-tools{position:fixed;right:max(14px,env(safe-area-inset-right));bottom:calc(var(--phone-bottom,90px) + 85px);display:flex;flex-direction:column;align-items:center;gap:8px;z-index:12;pointer-events:none}
 #camera-tools #zoom-controls,#camera-tools #record-toggle{position:static;inset:auto;pointer-events:auto}
 #camera-tools #record-toggle{min-width:44px;height:44px;padding:6px 8px}
}
@media(max-height:500px) and (orientation:landscape){#camera-tools{bottom:105px}}

#graphics-controls{position:fixed;left:max(10px,env(safe-area-inset-left));top:calc(max(8px,env(safe-area-inset-top)) + 102px);z-index:14;background:#fffbedf5;border:1px solid #d3ddc7;border-radius:12px;box-shadow:0 4px 14px #263d361a;max-width:230px}#graphics-controls summary{cursor:pointer;list-style:none;padding:8px 10px;font-size:10px;white-space:nowrap}#graphics-controls summary::-webkit-details-marker{display:none}#graphics-controls>label{padding:0 10px 10px;margin:0}#graphics-controls select{width:100%;max-width:210px;font-size:11px}#graphics-controls summary:focus-visible{outline:3px solid #c99a4a;outline-offset:2px}.cinema #graphics-controls{display:none!important}
.name-label.activity-action{max-width:190px;width:max-content;white-space:normal;text-align:center;background:#f8edcded;color:#35513d;border:1px solid #c8b483;padding:6px 9px;border-radius:12px;font-size:11px;line-height:1.5;pointer-events:none;overflow-wrap:anywhere}.name-label.activity-action.own-action{pointer-events:auto;cursor:pointer}.name-label.activity-action.own-action:focus-visible{outline:3px solid #c99a4a}
@media(max-width:700px),(pointer:coarse) and (orientation:landscape) and (max-height:600px){body:has(#graphics-controls) #guide-strip{top:calc(max(8px,env(safe-area-inset-top)) + 145px)}.name-label.activity-action{max-width:160px;font-size:10px}}

.name-label.activity-action.own-action{z-index:11;min-height:40px;min-width:115px;max-width:min(220px,72vw);padding:9px 12px;background:#fff3cf;color:#294b36;box-shadow:0 4px 16px #1e392d33;border:2px solid #c5ac6c;font-weight:600;touch-action:manipulation}
.name-label.activity-action.eye-action{position:fixed!important;top:auto!important;bottom:150px!important;left:50%!important;transform:translateX(-50%)!important;max-width:min(260px,74vw);z-index:15}
@media(max-width:700px){.name-label.activity-action.eye-action{bottom:calc(var(--phone-bottom,12px) + 98px)!important}}

@media(min-width:701px) and (min-height:601px){#graphics-controls{left:190px;top:max(24px,env(safe-area-inset-top));max-width:210px}}

.rest-menu{pointer-events:auto!important;display:grid;gap:2px;width:158px;padding:7px;background:#294c40f5;color:#fff5dc;border:5px solid #97714a;border-radius:3px;box-shadow:0 3px 8px #23180f55;z-index:8;white-space:normal}.rest-menu strong{font-size:10px;text-align:center;padding:3px 0 5px;border-bottom:1px solid #ffffff55}.rest-menu button{font-size:10px;min-height:28px;padding:5px 3px;text-align:left;border:0;border-bottom:1px solid #fff3;border-radius:0;background:transparent;color:#fff5dc}.rest-menu button:hover{background:#ffffff20}.rest-menu button:last-child{margin-top:3px;border:1px solid #dbc69b;border-radius:4px;text-align:center}.rest-menu[hidden]{display:none!important}

.tavern-menu{width:208px;max-height:65vh;overflow-y:auto}.tavern-menu-row{display:grid;grid-template-columns:1fr 25px;gap:2px}.tavern-menu small{display:block;font-size:10px;padding:5px 0}.tavern-menu button:disabled{opacity:.5}

/* Counter menus are rendered on their 3D sign, never as a screen overlay. */
.rest-menu.world-menu-source{display:none!important}

/* Keep the longer guide label readable without widening the mobile toolbar. */
.bottom #activities{white-space:normal;max-width:175px;line-height:1.3}#stored-supplies{padding:10px;background:#e8edda;border-radius:10px;line-height:1.5}
@media(max-width:700px){.bottom #activities{max-width:130px;font-size:10px}}

.nearby-suggestions{display:flex;flex-direction:column;gap:5px;max-width:270px;white-space:normal}.nearby-suggestions button{font:inherit;white-space:normal;cursor:pointer;min-height:32px}.nearby-suggestions[hidden]{display:none!important}@media(max-width:700px){.nearby-suggestions{max-width:210px;font-size:11px}}

@media(max-width:700px),(pointer:coarse) and (orientation:landscape) and (max-height:600px){
 .name-label.activity-action.own-action.nearby-suggestions{flex-direction:row;align-items:center;gap:3px;width:max-content;min-width:0;max-width:min(210px,64vw);min-height:0;padding:3px 4px;border-width:1px;border-radius:12px;font-size:10px;line-height:1.25;box-shadow:0 2px 6px #1e392d22}
 .name-label.activity-action.own-action.nearby-suggestions button{margin:0;padding:5px 7px;min-width:0;min-height:34px;max-width:165px;border-radius:8px;font-size:10px;line-height:1.25;white-space:normal;overflow-wrap:normal}
 .name-label.activity-action.own-action.nearby-suggestions .nearby-next{flex:0 0 30px;width:30px;min-height:34px;padding:0;font-size:22px}
}

.name-label.activity-action.own-action:not(.nearby-suggestions){font-size:13px;min-height:46px;min-width:130px;padding:11px 15px}
.name-label.activity-action.own-action:not(.nearby-suggestions) button{font-size:13px;min-height:44px;padding:9px 12px}

@media(max-width:700px),(pointer:coarse) and (max-height:600px){.name-label.office-service{font-size:10px!important;line-height:1.2;max-width:126px;padding:4px 6px;border-width:1px;border-radius:9px}.name-label.office-staff{max-width:105px;font-size:10px!important}}

.name-label.architect-entry{pointer-events:auto;cursor:pointer;background:#fff3ca;border:1px solid #c3a35a;color:#294d3e;padding:9px 12px;border-radius:12px;font-size:12px;font-weight:700;max-width:210px;white-space:normal;text-align:center}.architect-entry:focus-visible{outline:3px solid #446c59}@media(max-width:700px){.name-label.architect-entry{font-size:11px;padding:7px 9px;max-width:170px}}

.name-label.gallery-caption{pointer-events:auto;cursor:pointer;white-space:normal;text-align:center;width:170px;max-width:19vw;padding:6px 8px;background:#fff6df;color:#304c3e;border:1px solid #bb9b61;border-radius:7px;font-size:11px;line-height:1.3;box-shadow:0 2px 5px #0002;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.name-label.gallery-caption[hidden]{display:none}.gallery-caption:focus-visible{outline:3px solid #517a60}@media(max-width:700px){.name-label.gallery-caption{font-size:10px;max-width:24vw;width:120px;padding:5px; -webkit-line-clamp:2}#gallery-view h2{font-size:16px;line-height:1.4}}

/* Compact exhibition and office pins; details appear on demand. */
.name-label.gallery-caption{display:flex;align-items:center;justify-content:center;width:auto;min-width:36px;min-height:32px;max-width:none;padding:3px 6px;white-space:nowrap;font-size:12px;line-height:1;border-radius:16px;overflow:visible}
.name-label.office-service.office-pin{font-size:11px;line-height:1.2;max-width:135px;min-height:32px;padding:4px 7px;border-width:1px;border-radius:14px;white-space:nowrap}
.name-label.office-staff{min-height:32px;cursor:pointer}
.office-info{width:min(340px,calc(100vw - 28px));max-height:55dvh;overflow:auto;box-sizing:border-box;padding:18px;border:1px solid #c6b78f;border-radius:18px;background:#fffbed;color:#304c3e;box-shadow:0 8px 30px #0003}
.office-info::backdrop{background:#0002}.office-info h2{font-size:19px;padding-right:30px;margin:0 0 12px}.office-info p{font-size:14px;line-height:1.55}.office-info p.tiny{font-size:11px}.office-info-close{position:absolute;right:8px;top:8px;width:32px;height:32px;padding:0;font-size:22px}.office-info-service{display:block;margin:7px 0;padding:11px 12px;border:1px solid #c9d2bd;border-radius:12px;color:#304c3e;background:#f2f4e7;text-decoration:none;font-size:14px}.office-info-service.selected{border-color:#947337;background:#fff0c9}
@media(max-width:700px){.name-label.gallery-caption{width:auto;max-width:none;min-width:32px;min-height:32px;padding:3px 5px;font-size:11px}.name-label.office-service.office-pin{font-size:10px!important;max-width:120px;padding:3px 6px;min-height:30px}.office-info{max-height:48dvh;padding:14px}.office-info h2{font-size:17px}}

#scope{width:min(94vw,520px);max-height:85dvh;overflow:auto;padding:14px}#scope #lens{width:100%;height:auto;max-height:36dvh;aspect-ratio:3/2;border-radius:14px;border-width:2px;margin:8px auto}#scope #lens img{object-fit:contain}#scope #lens [hidden]{display:none!important}#scope-caption{font-size:14px;line-height:1.45;margin:8px 0}#scope #scope-credit,#scope #scope-note{font-size:10px;line-height:1.4;margin:6px 0}#scope-source{color:#f2d591;font-size:11px}#scope-topics{margin:10px 0;gap:5px}#scope-topics button{padding:7px 9px;min-height:36px;font-size:12px}#scope-topics button[aria-pressed=true]{background:#dfc788;color:#182c30}#scope-read{font-size:12px;padding:8px} @media(max-width:700px){#scope{width:94vw;max-height:78dvh;padding:11px}#scope h2{font-size:18px}#scope #lens{max-height:26dvh}#scope-caption{font-size:12px}#scope-topics button{font-size:11px;min-height:34px}}

/* Three room choices before entering the village. */
#room-choice{border:0;padding:0;margin:20px 0 8px;min-width:0}#room-choice legend{font-size:12px;font-weight:600;margin-bottom:10px}#room-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.entry-room{position:relative;margin:0;cursor:pointer}.entry-room input{position:absolute;opacity:0;width:1px;height:1px}.entry-room-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-height:108px;padding:10px 4px;border:2px solid transparent;border-radius:16px;background:#edf1df;color:#263d36;text-align:center}.entry-room.sunset .entry-room-card{background:#f6e0c3}.entry-room.night .entry-room-card{background:#26384e;color:#f5e8c7}.entry-room-icon{font-size:25px}.entry-room-card small{font-size:10px}.entry-room-card strong{font-size:12px}.entry-room input:checked+.entry-room-card{border-color:#b88d3b;box-shadow:0 0 0 2px #b88d3b30}.entry-room input:focus-visible+.entry-room-card{outline:3px solid #b88d3b;outline-offset:3px}#room-choice-note{font-size:10px;margin:9px 0;color:var(--muted)}#room-custom{font-size:10px;align-self:center}#room-custom summary{cursor:pointer;padding:8px 0}#room-custom input{width:100%}
body.night-ui{--ink:#e9efea;--muted:#b5c2bc;--line:#53665e;--green:#426754;--cream:#24352e}body.night-ui .glass,body.night-ui dialog{background:#1e302eeF;border-color:#52675e;color:var(--ink)}body.night-ui button,body.night-ui select,body.night-ui input:not([type=radio]):not([type=checkbox]):not([type=range]){background:#2c423b;color:var(--ink);border-color:var(--line)}body.night-ui button:hover{background:#3a5549}body.night-ui .primary{background:#426754;color:white}body.night-ui .brand{text-shadow:0 1px 10px #101c19}body.night-ui .name-label:not(.zone-label):not(.activity-action){background:#263c35;color:#f3f3e7}body.night-ui #destinations button.active,body.night-ui .chatline{background:#344c40}body.night-ui #scope{background:#10192b}body.night-ui #club{background:#24352e}body.night-ui #club p,body.night-ui #club h2,body.night-ui #club h3{color:inherit}
@media(max-width:700px){#welcome{padding:20px;max-height:90dvh}#welcome h2{font-size:26px;margin:10px 0}#room-choice{margin-top:14px}.entry-room-card{min-height:94px}.entry-room-card strong{font-size:11px}}

body.night-ui .club-nav,body.night-ui .club-card{background:#293e35;color:#e9efea}body.night-ui .club-game{background:linear-gradient(145deg,#304638,#3c4030);color:#f2efdf}body.night-ui .club-balance{color:#b8d5ad}body.night-ui .club-tag{background:#535137;color:#fff4c8}

/* Compact, explicit character selection before entering the village. */
.character-choice{border:0;padding:0;margin:12px 0;display:flex;gap:12px}.character-choice legend{margin-bottom:8px;font-size:13px}.character-choice button{flex:1;display:flex;align-items:center;justify-content:center;gap:12px;min-height:76px;padding:8px 14px;border:2px solid #d5ddce;border-radius:16px;background:#faf8ed;color:#284b3f}.character-choice button[aria-pressed="true"]{border-color:#3f6955;background:#e5eddc;box-shadow:0 0 0 2px #3f69551a}.character-choice svg{width:50px;height:58px}.character-choice button span{font-size:16px;font-weight:600}@media(max-width:600px){.character-choice{gap:8px;margin:8px 0}.character-choice button{min-height:66px;padding:6px 10px}.character-choice svg{width:42px;height:50px}}

/* A compact top-bar drone control; viewing never moves the guest. */
#flycam{white-space:nowrap;font-size:11px;padding:8px 10px;min-height:36px;min-width:76px;touch-action:manipulation}#flycam[aria-pressed=true]{background:#365b49;color:#fff6d7;border-color:#d5bf7e;font-variant-numeric:tabular-nums}
body.flycam-active header{display:flex!important}body.flycam-active .toolbar>:not(#flycam){visibility:hidden;pointer-events:none}body.flycam-active #flycam{visibility:visible;pointer-events:auto}
body.flycam-active #labels,body.flycam-active #club,body.flycam-active .place,body.flycam-active #map,body.flycam-active #drawer,body.flycam-active #guide-strip,body.flycam-active #control-dock,body.flycam-active #view-controls,body.flycam-active #interaction,body.flycam-active .movement,body.flycam-active #touch-pad,body.flycam-active .bottom,body.flycam-active #mobile-activities,body.flycam-active #zoom-controls,body.flycam-active #chat-panel{visibility:hidden!important;pointer-events:none!important}body.flycam-active #scene{pointer-events:none}
@media(max-width:700px){header .toolbar #flycam{font-size:10px;padding:5px 7px;min-width:68px;min-height:32px;border-radius:10px}}


#wardrobe{display:grid;grid-template-columns:130px 1fr;gap:10px;align-items:center;margin:12px 0}.wardrobe-preview{width:130px;height:180px;background:radial-gradient(ellipse,#f7f1de,#e3eadc);border-radius:18px}.wardrobe-choices{display:grid;grid-template-columns:1fr;gap:5px;max-height:205px;overflow:auto;padding:3px}.wardrobe-option{display:flex;align-items:center;gap:7px;text-align:left;font-size:11px;padding:8px;min-height:36px;border-radius:10px}.wardrobe-option[aria-pressed=true]{background:#e0ead6;border-color:#426754;box-shadow:inset 0 0 0 1px #426754}.wardrobe-swatch{display:inline-block;flex:none;width:22px;height:26px;border-radius:6px}.counter-sign{font-size:13px!important;padding:8px 12px!important;max-width:240px!important;white-space:normal!important;line-height:1.35!important}@media(max-width:600px){#wardrobe{grid-template-columns:104px 1fr}.wardrobe-preview{width:104px;height:150px}.wardrobe-choices{max-height:170px}.counter-sign{font-size:11px!important;padding:6px 9px!important;max-width:180px!important}}

/* Compact, accessible order controls for the physical counter menus. */
.counter-order{position:fixed;inset:auto auto 100px 50%;transform:translateX(-50%);margin:0;width:min(280px,calc(100vw - 32px));max-height:38dvh;overflow:auto;padding:14px;border:1px solid #b6bda8;border-radius:18px;background:#faf7e9;color:#294c40;z-index:90;box-shadow:0 5px 22px #183d3433;}
.counter-order>strong{display:block;padding-right:32px;margin-bottom:10px;font-size:13px;}
.counter-order>button:not(.counter-order-close){display:block;width:100%;min-height:44px;margin-top:7px;padding:9px;font-size:13px;}
.counter-order-close{position:absolute;right:7px;top:5px;width:34px;height:34px;padding:0;font-size:24px;}
@media(max-width:700px){.counter-order{bottom:155px;width:230px;max-height:32dvh;padding:12px;}}
