@font-face{font-family:Cormorant;src:url('../fonts/Cormorant-Regular.ttf') format('truetype');font-display:swap}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#eeeeee;color:#292929;font-family:-apple-system,BlinkMacSystemFont,'PingFang SC','Microsoft YaHei',sans-serif;-webkit-tap-highlight-color:transparent}button,input{font:inherit}button{cursor:pointer;border:0;background:none;color:inherit}button:focus-visible,input:focus-visible,[role=button]:focus-visible{outline:2px solid #939393;outline-offset:4px}button:disabled{opacity:.42;cursor:default}h1,h2,h3,p{margin:0}button svg{width:19px;height:19px;display:block;stroke:currentColor;fill:none;stroke-width:1.4}#gallery,#scene{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none}.edge-shade{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(18,18,18,.3),transparent 18%,transparent 71%,rgba(18,18,18,.12))}.topbar{position:absolute;top:36px;left:42px;right:42px;display:flex;justify-content:space-between;align-items:center;pointer-events:none;color:#fdfdfd}.brand{display:flex;align-items:center;gap:13px;text-shadow:0 1px 12px #30303055}.brand-mark{font:25px Cormorant,serif;border:1px solid #e3e3e38c;padding:5px 9px}.brand-name{font:27px Cormorant,Georgia,serif;letter-spacing:.4px;display:block}.brand-sub{display:block;font-size:8px;letter-spacing:2.1px;opacity:.78;margin-top:2px}.nav-pill{pointer-events:auto;display:flex;align-items:center;background:#2d2d2d4d;border:1px solid #e3e3e338;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-radius:5px;padding:4px}.nav-pill button{display:flex;align-items:center;gap:9px;padding:11px 13px;color:#fdfdfd;transition:background .2s}.nav-pill button:hover{background:#ffffff14}.nav-label{font-size:11px;letter-spacing:1px}.room-card{position:absolute;left:42px;bottom:38px;padding:19px 25px 19px 20px;min-width:230px;max-width:320px;background:#ededede8;backdrop-filter:blur(16px);border-left:2px solid #888888;box-shadow:0 8px 28px #3030300b;pointer-events:none;transition:opacity .4s}.eyebrow{font-size:9px;letter-spacing:2px;color:#777777;font-weight:500;text-transform:uppercase}.room-card h1{font-family:'Songti SC','Noto Serif SC',serif;font-size:24px;font-weight:400;letter-spacing:2px;margin:8px 0}.room-card p{font-size:10px;line-height:1.65;color:#707070;letter-spacing:1px}.corner-note{position:absolute;right:42px;bottom:41px;color:#f2f2f2;font-size:10px;letter-spacing:1.4px;text-shadow:0 1px 10px #00000088;pointer-events:none}.corner-note span{margin:0 10px;opacity:.5}.crosshair{position:absolute;left:50%;top:50%;width:4px;height:4px;transform:translate(-50%,-50%);border-radius:50%;background:#f6f6f680;box-shadow:0 0 0 1px #2a2a2a50;pointer-events:none;opacity:0;transition:opacity .25s}.exploring .crosshair{opacity:1}.crosshair.aiming{width:9px;height:9px;background:transparent;border:1px solid #ffffff99;box-shadow:none}.loading{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:17px;background:#e7e7e7;z-index:20;letter-spacing:2px;font-size:13px;transition:opacity .6s}.loading small{font-size:10px;color:#8a8a8a;letter-spacing:1.5px}.loader-line{width:90px;height:1px;background:linear-gradient(90deg,transparent,#7c7c7c,transparent);animation:breathe 1.5s infinite}@keyframes breathe{50%{opacity:.3;transform:scaleX(.5)}}.hidden{display:none!important}.loading.ready{opacity:0;pointer-events:none}.walk-in{position:absolute;left:50%;bottom:35px;transform:translateX(-50%);width:380px;max-width:calc(100vw - 40px);padding:23px 30px 17px;background:#eeeeeeed;backdrop-filter:blur(18px);box-shadow:0 10px 60px #2121211f;text-align:center;z-index:5}.walk-in h2{font-family:'Songti SC',serif;font-size:23px;font-weight:400;letter-spacing:1.5px;margin:12px 0}.walk-in p{font-size:10px;color:#747474;margin-bottom:20px;letter-spacing:.4px}.solid-button{background:#363636;color:#fdfdfd;padding:13px 18px;min-width:165px;font-size:12px;letter-spacing:1px;display:inline-flex;justify-content:space-between;align-items:center;gap:35px}.solid-button:hover{background:#202020}.quiet-button{display:block;margin:10px auto 0;padding:6px;font-size:10px;color:#828282;letter-spacing:.5px}.resume{position:absolute;left:50%;bottom:38px;transform:translateX(-50%);padding:13px 23px;background:#e9e9e9ed;color:#545454;backdrop-filter:blur(15px);font-size:11px;letter-spacing:1px;box-shadow:0 4px 20px #00000011}.resume span{margin-left:24px}.interaction{position:absolute;left:50%;top:calc(50% + 38px);transform:translateX(-50%);z-index:3}.interaction button{display:flex;gap:12px;align-items:center;padding:10px 15px;background:#ecececed;box-shadow:0 5px 28px #00000022;color:#4e4e4e;font-size:11px;backdrop-filter:blur(12px);white-space:nowrap}.interaction #interaction-key{font-size:9px;border:1px solid #7f7f7f63;padding:2px 4px;color:#7b7b7b}.interaction-arrow{margin-left:12px}.stand-button{position:absolute;bottom:38px;left:50%;transform:translateX(-50%);background:#e9e9e9eb;padding:13px 22px;font-size:12px;z-index:4}.stand-button kbd{font-size:10px;border:1px solid #84848470;padding:2px 5px;margin-left:15px}.toast{position:absolute;bottom:108px;left:50%;transform:translate(-50%,8px);opacity:0;transition:.3s;background:#313131e8;color:#fdfdfd;padding:12px 20px;font-size:11px;max-width:80%;line-height:1.7;z-index:80;pointer-events:none;text-align:center}.toast.show{opacity:1;transform:translate(-50%,0)}.joystick{display:none;position:absolute;left:max(26px,env(safe-area-inset-left));bottom:28px;width:86px;height:86px;touch-action:none;z-index:4}.joystick-ring{position:absolute;inset:0;border:1px solid #ffffff66;background:#4040401f;border-radius:50%;box-shadow:inset 0 0 0 17px #ffffff06;backdrop-filter:blur(2px)}.joystick-knob{position:absolute;left:25px;top:25px;width:36px;height:36px;border-radius:50%;background:#eeeeee79;border:1px solid #ffffff66;box-shadow:0 2px 12px #24242426;pointer-events:none}.joystick>span{position:absolute;top:94px;left:0;right:0;text-align:center;color:#ffffff99;font-size:8px;letter-spacing:2px}.teleport-veil{position:absolute;inset:0;background:#e9e9e9;opacity:0;pointer-events:none;z-index:30;transition:opacity .3s}.teleport-veil.active{opacity:1}.modal-backdrop{position:fixed;inset:0;background:#22222266;backdrop-filter:blur(9px);-webkit-backdrop-filter:blur(9px);display:flex;justify-content:center;align-items:center;z-index:50;padding:38px;animation:fade-in .2s}.modal{position:relative;background:#ececec;max-height:calc(100dvh - 76px);max-width:1100px;width:100%;box-shadow:0 20px 100px #20202033;overflow:auto}.modal-close{position:absolute;right:18px;top:17px;width:35px;height:35px;display:grid;place-items:center;z-index:5;color:#6a6a6a;background:#ecececc7}.modal-close:hover{background:#d8d8d8}.modal-close svg{width:18px;height:18px}.modal-heading{padding:33px 37px 18px}.modal-heading h2{font-family:'Songti SC',serif;font-weight:400;font-size:25px;letter-spacing:2px;margin-top:8px}.modal-heading p{font-size:11px;color:#7c7c7c;margin-top:12px;line-height:1.7}.map-layout{display:grid;grid-template-columns:1fr 264px;padding:0 34px 30px;gap:30px}.map-main{display:flex;flex-direction:column;justify-content:center;min-width:0}.map-main svg{width:100%;height:auto;min-height:260px;overflow:visible}.map-room{cursor:pointer;transition:fill .2s}.map-room:hover{fill:#c5c5c5}.map-room.selected{fill:#969696;stroke:#767676;stroke-width:.25}.map-room text{pointer-events:none}.map-legend{display:flex;gap:18px;font-size:9px;color:#858585;justify-content:center;letter-spacing:.6px}.map-legend i{display:inline-block;width:7px;height:7px;background:#d7d7d7;margin-right:6px}.map-legend i.dark{background:#a8a8a8}.map-legend i.you{background:#696969;border-radius:50%}.map-side{padding-left:25px;border-left:1px solid #d7d7d7;display:flex;flex-direction:column;gap:13px}.room-list{display:flex;flex-direction:column;gap:1px;max-height:288px;overflow:auto}.room-list button{text-align:left;display:flex;align-items:center;gap:13px;padding:11px 10px;font-size:11px;border-bottom:1px solid #dadada7a}.room-list button.active{background:#e0e0e0}.room-list button small{font:10px monospace;color:#949494;min-width:24px}.room-list button span{flex:1}.room-list button em{font-style:normal;font-size:8px;color:#8b8b8b}.map-selection{padding:8px 0;font-size:10px;color:#808080;line-height:1.8;min-height:45px}.map-side .solid-button{width:100%}.photo-modal{display:grid;grid-template-columns:minmax(0,1fr) 290px;width:min(1300px,96vw);height:min(760px,86dvh);max-width:1300px;overflow:hidden}.photo-stage{position:relative;display:flex;align-items:center;justify-content:center;padding:30px;background:#dddddd;overflow:auto;touch-action:pan-x pan-y}.photo-stage img{max-width:100%;max-height:100%;object-fit:contain;box-shadow:0 8px 25px #2d2d2d20;cursor:zoom-in}.photo-stage.zoomed{display:block}.photo-stage.zoomed img{max-width:none;max-height:none;width:auto;height:auto;cursor:zoom-out}.photo-stage small{position:absolute;bottom:10px;left:0;right:0;text-align:center;color:#7d7d7d;font-size:9px;letter-spacing:1px;pointer-events:none}.photo-info{padding:64px 28px 27px;display:flex;flex-direction:column;gap:16px;overflow:auto}.photo-info h2{font-family:'Songti SC',serif;font-size:25px;font-weight:400;line-height:1.6;letter-spacing:1px}.photo-info .photo-date{color:#8a8a8a;font-size:11px;letter-spacing:1px}.photo-info .photo-description{font-size:11px;line-height:1.9;color:#787878;white-space:pre-wrap}.photo-info .info-divider{height:1px;background:#d7d7d7;margin:5px 0}.flower-summary{margin-top:auto;padding-top:28px}.flower-summary .number{font:43px Cormorant,serif;color:#383838;line-height:1}.flower-summary .number small{font:10px -apple-system,sans-serif;margin-left:8px;letter-spacing:1px;color:#8a8a8a}.flower-stage{font-size:10px;color:#979797;margin:12px 0 18px;line-height:1.8}.flower-button{width:100%;justify-content:center;gap:10px}.flower-button svg{width:16px;height:16px}.daily-note{font-size:9px;color:#9a9a9a;line-height:1.7;margin-top:11px}.small-modal{width:460px;padding:34px 38px 35px;max-width:94vw}.small-modal h2{font-family:'Songti SC',serif;font-size:26px;font-weight:400;letter-spacing:2px;margin:8px 0 22px}.small-modal p{font-size:11px;color:#7d7d7d;line-height:1.9}.setting-row{padding:17px 0;border-bottom:1px solid #d8d8d8;display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:12px}.setting-row>div{flex:1}.setting-row small{display:block;font-size:9px;color:#989898;margin-top:7px;line-height:1.6}.toggle{width:37px;height:21px;background:#cecece;border-radius:12px;padding:3px;flex-shrink:0}.toggle:after{content:'';display:block;width:15px;height:15px;background:#f5f5f5;border-radius:50%;transition:transform .2s}.toggle[aria-pressed=true]{background:#818181}.toggle[aria-pressed=true]:after{transform:translateX(16px)}.segmented{display:flex;border:1px solid #d1d1d1;padding:3px;gap:3px}.segmented button{padding:7px 10px;font-size:10px}.segmented button.active{background:#868686;color:#fdfdfd}.setting-row input{accent-color:#828282;width:110px}.help-grid{display:grid;grid-template-columns:90px 1fr;gap:16px 12px;font-size:11px;line-height:1.7;color:#727272;margin:20px 0}.help-grid kbd{font-size:10px;color:#949494}.small-modal .solid-button{margin-top:23px;width:100%;justify-content:center}.connection-note{font-size:9px;color:#898989;margin-top:14px;line-height:1.7}.rotate-guard{display:none;position:fixed;inset:0;background:#eaeaea;z-index:100;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:30px}.rotate-guard svg{width:65px;height:65px;stroke:#8f8f8f;fill:none;stroke-width:1;margin-bottom:25px}.rotate-guard h2{font-family:'Songti SC',serif;font-size:24px;font-weight:400;letter-spacing:2px}.rotate-guard p{font-size:12px;color:#8e8e8e;line-height:2;margin-top:20px}@keyframes fade-in{from{opacity:0}to{opacity:1}}
@media (pointer:coarse){.joystick{display:block}.corner-note{display:none}.room-card{bottom:auto;top:87px;left:26px;padding:11px 15px;min-width:0;max-width:230px;background:#ebebebc7}.room-card h1{font-size:17px;margin:5px 0}.room-card p{font-size:8px}.room-card .eyebrow{font-size:7px}.topbar{top:max(17px,env(safe-area-inset-top));left:max(26px,env(safe-area-inset-left));right:max(26px,env(safe-area-inset-right))}.brand-name{font-size:23px}.brand-sub{font-size:6px;letter-spacing:1.7px}.brand-mark{font-size:19px;padding:4px 8px}.nav-pill button{padding:9px 10px}.nav-label{display:none}.nav-pill button svg{width:17px;height:17px}.interaction{left:auto;top:auto;right:max(32px,env(safe-area-inset-right));bottom:34px;transform:none}.interaction button{height:52px;max-width:135px;padding:12px 16px}.interaction #interaction-key{display:none}.interaction-arrow{margin-left:0}.walk-in{width:335px;bottom:20px;padding:18px 23px 12px}.walk-in h2{font-size:20px;margin:8px 0}.walk-in p{margin-bottom:12px;font-size:9px}.walk-in .solid-button{padding:11px 16px}.walk-in .eyebrow{font-size:8px}.quiet-button{margin-top:5px;font-size:9px}.modal-backdrop{padding:12px max(20px,env(safe-area-inset-right))}.modal{max-height:calc(100dvh - 24px)}.modal-heading{padding:19px 25px 9px}.modal-heading h2{font-size:20px;margin-top:5px}.modal-heading p{font-size:9px;margin-top:6px}.map-layout{grid-template-columns:1fr 205px;gap:16px;padding:0 23px 15px}.map-main svg{min-height:180px}.map-side{padding-left:16px;gap:4px}.room-list{max-height:155px}.room-list button{padding:7px 8px;font-size:10px}.room-list button em{font-size:7px}.map-selection{font-size:8px;min-height:33px;padding:5px 0}.map-side .solid-button{padding:10px 13px;font-size:10px}.map-legend{font-size:8px;gap:10px}.photo-modal{grid-template-columns:minmax(0,1fr) 245px;height:calc(100dvh - 24px)}.photo-stage{padding:17px}.photo-info{padding:43px 22px 18px;gap:9px}.photo-info h2{font-size:20px}.photo-info .photo-date{font-size:9px}.photo-info .photo-description{font-size:9px}.flower-summary{padding-top:6px}.flower-summary .number{font-size:27px}.flower-stage{font-size:8px;margin:7px 0 10px}.flower-button{padding:10px 12px;font-size:10px}.daily-note{font-size:8px;margin-top:6px}.small-modal{padding:23px 30px 20px;width:450px}.small-modal h2{font-size:21px;margin:6px 0 12px}.setting-row{padding:11px 0;font-size:11px}.setting-row small{font-size:8px;margin-top:4px}.small-modal p{font-size:10px}.help-grid{gap:9px 12px;font-size:10px;margin:14px 0}.small-modal .solid-button{margin-top:15px;padding:10px}.toast{bottom:105px;font-size:10px}.stand-button{bottom:25px}.stand-button kbd{display:none}.resume{bottom:25px}.seated .joystick{opacity:.3;pointer-events:none}}
@media (pointer:coarse) and (orientation:portrait){.rotate-guard{display:flex}}
@media (max-width:1050px) and (pointer:fine){.topbar{left:26px;right:26px;top:25px}.room-card{left:26px;bottom:26px;min-width:190px;max-width:240px;padding:15px 19px}.room-card h1{font-size:20px}.walk-in{bottom:25px}.corner-note{right:26px;bottom:30px}.modal-backdrop{padding:24px}.map-layout{grid-template-columns:1fr 230px;gap:20px}.photo-modal{grid-template-columns:minmax(0,1fr) 260px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
.mini-map{position:absolute;right:42px;top:102px;width:194px;background:#e9e9e9bb;border:1px solid #efefef66;backdrop-filter:blur(12px);color:#6c6c6c;box-shadow:0 3px 20px #2121210b;z-index:4}.mini-map-heading{display:flex;align-items:center;justify-content:space-between;padding:5px 8px 1px 10px;min-height:27px}.mini-map-heading>span{font-size:9px;letter-spacing:.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mini-map-heading button{width:25px;height:23px;font-size:17px;line-height:1;color:#808080}.mini-map #mini-map-open{display:block;padding:2px 10px 7px;width:100%;text-align:center}.mini-map-plan{display:block}.mini-map svg{display:block;width:100%;height:82px;stroke:none}.mini-map-hint{display:block;font-size:8px;color:#8d8d8d;letter-spacing:.8px;margin-top:3px}.mini-room.selected{fill:#a0a0a0;stroke:#7f7f7f}.mini-map.folded #mini-map-open{display:none}.mini-map.folded .mini-map-heading{padding-bottom:4px}.movement-actions{display:none}.movement-actions button{width:42px;height:47px;background:#eaeaead9;border:1px solid #ffffff66;backdrop-filter:blur(10px);padding:5px 9px 4px;color:#383838;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border-radius:4px}.movement-actions button svg{width:18px;height:18px;stroke-width:1.5}.movement-actions button small{font-size:8px;white-space:nowrap;letter-spacing:.5px}.movement-actions button[aria-pressed=true]{background:#424242dc;color:#fdfdfd}.movement-actions button:disabled{opacity:.35}.exploring .mini-map{opacity:.84}.mini-map:hover{opacity:1}.map-main svg{overflow:hidden}.map-room.selected~text{fill:#f5f5f5}.map-main{min-height:0}
@media(pointer:coarse){.mini-map{right:max(26px,env(safe-area-inset-right));top:76px;width:142px}.mini-map-heading{padding:3px 4px 0 8px;min-height:24px}.mini-map-heading>span{font-size:8px}.mini-map-heading button{width:25px;height:23px}.mini-map #mini-map-open{padding:0 7px 5px}.mini-map svg{height:58px}.mini-map-hint{font-size:7px;margin-top:1px}.movement-actions{position:absolute;right:max(26px,env(safe-area-inset-right));bottom:23px;display:flex;gap:7px;z-index:4}.movement-actions button{touch-action:manipulation}.interaction{bottom:83px;right:max(26px,env(safe-area-inset-right))}.interaction button{height:41px;max-width:140px;padding:9px 12px}.seated .movement-actions{display:none}body:not(.exploring) .movement-actions{display:none}.map-main svg{min-height:170px;max-height:210px}.help-grid{grid-template-columns:96px 1fr;gap:7px 10px}}

.seated .resume{bottom:94px}

/* A single viewer retains the visitor's seated/exploring pose while its artwork
   changes. Photograph sizing/panning uses its original ratio in app.js. */
.photo-modal{grid-template-columns:minmax(0,1fr) 272px;background:#f4f4f4}.photo-visual{position:relative;display:grid;grid-template-rows:43px minmax(0,1fr);min-width:0;min-height:0;background:#e1e1e1}.photo-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:4px 18px;background:#ecececbf;border-bottom:1px solid #d7d7d7}.photo-navigation{display:flex;align-items:center;gap:5px}.photo-navigation button{width:35px;height:33px;display:grid;place-items:center;font:25px Georgia,serif;color:#6f6f6f;border-radius:3px}.photo-navigation button:hover:not(:disabled),.photo-zoom-button:hover{background:#dadada}.photo-navigation button:disabled{opacity:.23}.photo-navigation #photo-index{min-width:58px;font-size:11px;text-align:center;letter-spacing:1px;color:#6e6e6e}.photo-zoom-button{display:flex;align-items:center;justify-content:center;gap:12px;padding:8px 10px;font-size:10px;color:#6b6b6b;border-radius:3px;white-space:nowrap}.photo-zoom-button span{font-size:15px;line-height:1}.photo-stage,.photo-stage.zoomed{display:block;padding:0;overflow:hidden;min-width:0;min-height:0;background:#e1e1e1;touch-action:none;overscroll-behavior:contain}.photo-stage #full-photo{position:absolute;left:50%;top:50%;max-width:none;max-height:none;width:auto;height:auto;object-fit:contain;user-select:none;-webkit-user-select:none;-webkit-user-drag:none;touch-action:none;cursor:zoom-in;box-shadow:0 5px 24px #2d2d2d19}.photo-stage.zoomed #full-photo{cursor:grab}.photo-stage.panning #full-photo{cursor:grabbing}.photo-view-hint{position:absolute;bottom:3px;left:12px;right:12px;margin:0;font-size:8px;line-height:1.6;letter-spacing:.5px;text-align:center;color:#767676;pointer-events:none;background:#e1e1e1b3}.photo-load-error{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;color:#7c7c7c;font-size:11px}.photo-load-error .solid-button{min-width:140px}.photo-info{padding:56px 25px 25px;gap:18px;min-height:0;overscroll-behavior:contain}.photo-meta{display:flex;flex-direction:column;gap:12px}.photo-info h2{font-size:23px;line-height:1.45;overflow-wrap:anywhere}.photo-meta-line{display:flex;flex-wrap:wrap;gap:7px 14px}.photo-info .photo-date{line-height:1.7;font-size:10px}.photo-description{margin-top:2px}.photo-info .flower-summary{padding-top:18px}.photo-info .number{font-size:35px}.photo-info .flower-stage{margin:10px 0 14px}.photo-info .daily-note{line-height:1.8}.photo-info .connection-note:empty{display:none}.exploring .room-card{padding-top:13px;padding-bottom:13px;background:#eaeaeab8;opacity:.88}.exploring .room-card h1{font-size:22px;margin:6px 0}.exploring .corner-note{opacity:.66}.exploring .brand-sub{opacity:.6}
@media(pointer:coarse){.photo-modal{grid-template-columns:minmax(0,1fr) 220px;width:100%;height:calc(100dvh - 24px)}.photo-visual{grid-template-rows:37px minmax(0,1fr)}.photo-toolbar{padding:2px 12px;gap:8px}.photo-navigation button{width:34px;height:33px;font-size:24px}.photo-navigation #photo-index{min-width:50px;font-size:10px}.photo-zoom-button{padding:7px 10px;font-size:9px;gap:8px}.photo-info{padding:43px 18px 15px;gap:12px}.photo-meta{gap:7px}.photo-info .eyebrow{font-size:7px;letter-spacing:1.3px}.photo-info h2{font-size:19px;line-height:1.4}.photo-meta-line{gap:4px 9px}.photo-info .photo-date{font-size:9px}.photo-info .photo-description{font-size:9px;line-height:1.8}.photo-info .flower-summary{padding-top:12px}.photo-info .number{font-size:27px}.photo-info .number small{font-size:8px;margin-left:6px}.photo-info .flower-stage{font-size:8px;margin:7px 0 10px}.photo-info .flower-button{font-size:10px;min-width:0;padding:10px}.photo-info .daily-note{font-size:8px;margin-top:7px}.photo-view-hint{font-size:7px;bottom:3px}.photo-modal>.modal-close{right:10px;top:10px;width:31px;height:31px}.exploring .room-card{top:80px;padding:8px 12px;max-width:190px;background:#eaeaeaaa;opacity:.8}.exploring .room-card h1{font-size:15px;margin:4px 0}.exploring .room-card p{font-size:7px;letter-spacing:.4px}.exploring .room-card .eyebrow{font-size:6px}.exploring .mini-map{opacity:.84}}
/* Keep desktop action hints below the artwork's focal area. Touch actions retain their thumb zone. */
@media(pointer:fine){.interaction{top:auto;bottom:94px}.toast{bottom:151px}}
/* Curatorial colour fields are not room boundaries. Only geometry walls get strokes. */
.map-room.curatorial-zone,.mini-room.curatorial-zone{stroke:none!important}.map-note{font-size:10px;color:#858585;line-height:1.7;margin-top:12px}.map-main{display:flex;flex-direction:column;justify-content:center}.map-main svg{width:100%;height:auto;max-height:310px}.map-main .map-note{align-self:center}
@media(pointer:coarse){.map-modal{height:calc(100dvh - 24px);display:flex;flex-direction:column;overflow:hidden}.map-modal .modal-heading{flex:none}.map-modal .map-layout{flex:1;min-height:0;overflow:hidden}.map-modal .map-main{min-height:0;overflow:hidden}.map-modal .map-main svg{flex:1 1 0;min-height:0;height:0;max-height:none;width:100%}.map-modal .map-legend{flex:none;line-height:1.4}.map-modal .map-note{flex:none;font-size:8px;line-height:1.5;margin-top:5px;text-align:center}.map-modal .map-side{min-height:0;overflow:hidden}.map-modal .room-list{flex:1;min-height:0;max-height:none;overflow:auto}.map-modal .map-selection,.map-modal .solid-button{flex:none}.map-modal .solid-button{min-height:35px}}
@media(pointer:fine) and (max-height:560px){.map-modal{height:calc(100dvh - 48px);max-height:calc(100dvh - 48px);display:flex;flex-direction:column;overflow:hidden}.map-modal .modal-heading{padding:15px 24px 10px;flex:none}.map-modal .modal-heading h2{font-size:18px;margin-top:5px}.map-modal .modal-heading p{display:none}.map-modal .map-layout{flex:1;min-height:0;grid-template-columns:minmax(0,1fr) 210px;gap:18px;padding:0 24px 16px;overflow:hidden}.map-modal .map-main{min-height:0;overflow:hidden}.map-modal .map-main svg{flex:1 1 0;min-height:0;height:0;max-height:none}.map-modal .map-legend{flex:none;font-size:8px;line-height:1.4;gap:12px}.map-modal .map-note{flex:none;font-size:8px;line-height:1.5;margin-top:5px;text-align:center}.map-modal .map-side{min-height:0;overflow:hidden;padding-left:17px;gap:7px}.map-modal .room-list{flex:1;min-height:0;max-height:none;overflow:auto}.map-modal .room-list button{padding:8px}.map-modal .map-selection{flex:none;padding:3px 0;min-height:0;font-size:9px}.map-modal .solid-button{flex:none;min-height:34px;padding:9px 12px;font-size:10px}}

/* Production navigation and phone browser safe areas. */
a:focus-visible {
  outline:2px solid #939393;
  outline-offset:4px
}
.nav-pill .home-link {
  display:flex;
  align-items:center;
  gap:8px;
  padding:11px 13px;
  color:inherit;
  text-decoration:none;
  border-right:1px solid #ffffff21
}
.nav-pill .home-link:hover {
  background:#ffffff14
}
.home-link>span:first-child {
  font-size:20px;
  line-height:19px
}
.portrait-home,.loading-home {
  font-size:12px;
  color:#656565;
  text-decoration:none;
  border-bottom:1px solid #a9a9a9;
  padding:8px 0;
  margin-top:26px;
  letter-spacing:.5px
}

@media(pointer:coarse) {
  .nav-pill .home-link {
  padding:9px 10px;
  min-width:38px;
  min-height:36px;
  justify-content:center
}
.joystick {
  bottom:calc(28px + env(safe-area-inset-bottom))
}
.movement-actions {
  bottom:calc(23px + env(safe-area-inset-bottom))
}
.movement-actions button {
  touch-action:none;
  user-select:none;
  -webkit-user-select:none
}
.interaction {
  bottom:calc(83px + env(safe-area-inset-bottom))
}
.stand-button,.resume {
  bottom:calc(25px + env(safe-area-inset-bottom))
}
.walk-in {
  bottom:calc(20px + env(safe-area-inset-bottom))
}
.toast {
  bottom:calc(105px + env(safe-area-inset-bottom))
}
.seated .resume {
  bottom:calc(94px + env(safe-area-inset-bottom))
}
.modal-backdrop {
  padding-top:max(12px,env(safe-area-inset-top));
  padding-bottom:max(12px,env(safe-area-inset-bottom));
  padding-left:max(20px,env(safe-area-inset-left));
  padding-right:max(20px,env(safe-area-inset-right))
}
.modal,.photo-modal,.map-modal {
  max-height:calc(100dvh - max(12px,env(safe-area-inset-top)) - max(12px,env(safe-area-inset-bottom)))
}
.room-card {
  left:max(26px,env(safe-area-inset-left))
}

}
.preview-notice { position:absolute; left:50%; top:24px; transform:translateX(-50%); padding:9px 16px; border:1px solid #aaa58a55; border-radius:2px; background:#22251fdd; color:#e9e4ce; font-size:12px; letter-spacing:.08em; pointer-events:none; z-index:20; }
@media (max-width:900px) { .preview-notice { top:auto; bottom:20px; font-size:10px; } }
