@font-face{font-family:WenKai;src:url('../assets/fonts/wenkai-regular-sub.woff2?v=f959c749') format('woff2');font-display:swap;font-weight:400}
:root{--ink:#2d3c35;--muted:#627066;--olive:#405949;--paper:#f6f5eb;--line:#41554228;--serif:Georgia,'Times New Roman',WenKai,serif;--sans:-apple-system,BlinkMacSystemFont,'Segoe UI','PingFang TC','Microsoft JhengHei',sans-serif}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}body{font-family:var(--sans);color:var(--ink);background:#cbd6cf;font-size:14px}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:wait}button,a{touch-action:manipulation}button:focus-visible,a:focus-visible,canvas:focus-visible{outline:2px solid #ae7d37;outline-offset:5px}a{color:inherit;text-decoration:none}button{border:0}button[hidden],[hidden]{display:none!important}.icon-library{position:absolute;width:0;height:0;overflow:hidden}.icon{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.explorer,.world-scene{position:absolute;inset:0}.world-scene canvas{display:block;touch-action:none}.scene-wash{position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,#dce2d6e8 0%,#dce2d689 20%,transparent 43%),linear-gradient(0deg,#c9d3cbbb,transparent 26%)}.world-header{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:26px 36px;gap:20px;pointer-events:none}.world-header>*{pointer-events:auto}.brand{display:flex;align-items:center;gap:13px;font-family:WenKai,serif;font-size:19px;white-space:nowrap}.monogram{font:italic 37px var(--serif);line-height:1;border-right:1px solid #58655144;padding-right:17px}.brand small{display:block;font:8px var(--sans);letter-spacing:2.2px;margin-top:6px}.city-nav{display:flex;align-items:center;padding:5px;border:1px solid #f4f5e5bb;border-radius:30px;background:#f7f8ed9e;backdrop-filter:blur(16px);box-shadow:0 4px 25px #32453807;gap:2px}.city-nav button{background:transparent;border-radius:23px;padding:10px 17px;font-size:12px;display:flex;align-items:center;gap:7px;transition:background .2s,color .2s}.city-nav button .icon{width:15px;height:15px}.city-nav button[aria-pressed=true]{color:#f4f3e6;background:var(--olive);box-shadow:0 3px 9px #31493220}.book-link{font-size:12px;display:flex;gap:9px;align-items:center}.place-panel{position:absolute;left:45px;top:24%;width:280px}.eyebrow{font-size:9px;letter-spacing:2.1px;display:flex;gap:12px;align-items:center;color:var(--muted)}.tiny-line{width:24px;height:1px;background:var(--muted)}h1{font:400 clamp(45px,4.3vw,70px)/.99 var(--serif);letter-spacing:-2.4px;margin:22px 0 18px}h1 span{color:#988650}h1.title-small{font-size:48px;line-height:1.08}.place-subtitle{font:19px/1.6 WenKai,serif;margin:0 0 16px}.place-description{font-size:12px;line-height:1.95;color:#56685d;margin:0 0 21px;max-width:253px}.place-detail{display:flex;align-items:center;gap:7px;font-size:10px;color:#657267;letter-spacing:.3px;margin-bottom:25px}.detail-dot{width:4px;height:4px;background:#879970;border-radius:50%}.primary-button{width:100%;min-height:48px;background:var(--olive);color:#f9f7e9;padding:13px 15px;display:flex;align-items:center;gap:11px;border-radius:5px;box-shadow:0 7px 18px #263c3620;font-size:12px}.primary-button>span{flex:1;text-align:left}.primary-button:hover{background:#304638}.primary-button .icon{width:17px;height:17px}.text-button{background:transparent;display:flex;gap:8px;align-items:center;font-size:11px;padding:17px 0 3px}.text-button .icon{width:15px;height:15px}.model-note{font-size:9px;line-height:1.8;color:#748176;max-width:265px;margin-top:21px}.scene-caption{position:absolute;top:112px;left:50%;display:flex;align-items:center;gap:14px;font-size:8px;letter-spacing:1.8px;color:#5d7367}.scene-caption>span:first-child{font-size:9px}.caption-line{height:1px;width:40px;background:#6e827655}.view-controls{position:absolute;right:33px;top:134px;display:flex;align-items:flex-end;flex-direction:column;gap:15px}.light-switch{display:flex;align-items:center;gap:8px;border:1px solid #faf9edb5;background:#f5f6ec9c;backdrop-filter:blur(15px);border-radius:22px;padding:10px 15px;font-size:10px;letter-spacing:.3px}.light-switch .icon{width:16px;height:16px}.camera-controls{display:flex;align-items:center;flex-direction:column;background:#f6f7ecbc;backdrop-filter:blur(15px);border-radius:26px;padding:6px;border:1px solid #fdfbedbd;box-shadow:0 5px 20px #304b3310}.camera-controls button{display:grid;place-items:center;width:38px;height:40px;background:transparent;font-size:24px;border-radius:50%}.camera-controls button:hover{background:#dce3d3}.camera-controls .icon{width:19px;height:19px}.camera-controls>span{width:20px;height:1px;background:var(--line);margin:3px 0}.bottom-world{position:absolute;bottom:0;left:36px;right:36px;pointer-events:none}.bottom-world>*{pointer-events:auto}.walk-bar{display:flex;align-items:center;gap:16px;width:360px;margin:0 auto 18px;padding:10px 17px;border:1px solid #f8f7e798;background:#f7f7eab5;backdrop-filter:blur(18px);border-radius:50px;box-shadow:0 6px 20px #34523c12}.walk-button{background:transparent;display:flex;align-items:center;gap:9px;white-space:nowrap;font-size:11px;padding:1px}.walk-button .icon{width:13px;height:16px}.walk-progress{height:2px;background:#56664326;flex:1;min-width:35px}.walk-progress>span{display:block;width:0;height:100%;background:#79915b;transition:width .25s linear}.walk-note{font:12px WenKai,serif;color:#6e7b6e;white-space:nowrap}.place-dock{display:grid;grid-template-columns:repeat(6,1fr);padding:10px;background:#f7f6eada;border:1px solid #fffcee;box-shadow:0 10px 35px #25473213;border-radius:9px;backdrop-filter:blur(20px);gap:5px}.place-dock button{display:flex;align-items:center;gap:11px;position:relative;text-align:left;background:transparent;min-height:78px;padding:14px 12px;border-radius:5px;font:12px var(--serif);transition:background .2s}.place-dock button+button:before{content:'';position:absolute;height:36px;width:1px;left:-3px;background:var(--line)}.place-dock button[aria-pressed=true]{background:#dbe3cf}.place-dock button:hover{background:#e1e7d7}.dock-number{position:absolute;left:9px;top:5px;font:7px var(--sans);color:#839079;letter-spacing:1px}.building-icon{width:36px;height:36px;fill:none;stroke:currentColor;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;color:#6f8067;flex-shrink:0}.place-dock small{display:block;font:9px var(--sans);margin-top:7px;letter-spacing:.5px;color:#6c7869}.world-footer{height:42px;display:flex;align-items:center;justify-content:space-between;font-size:8px;letter-spacing:1.25px;color:#5d7364;gap:15px}.world-footer i{font-style:normal;margin:0 7px;color:#87977d}.world-footer button{padding:8px 0;background:transparent;font-size:9px;color:inherit;letter-spacing:.8px}.world-markers{position:absolute;inset:0;pointer-events:none}.world-marker{position:absolute;left:0;top:0;pointer-events:auto;white-space:nowrap;background:#f6f6e6f0;color:#43533e;border:1px solid #fffdea;border-radius:20px;padding:9px 13px;box-shadow:0 6px 18px #152e2926;font-size:10px;will-change:transform;backdrop-filter:blur(6px)}.world-marker:after{content:'';position:absolute;left:50%;bottom:-7px;height:7px;border-left:1px solid #dce3c9}.world-marker:before{content:'';display:inline-block;width:5px;height:5px;margin-right:7px;border-radius:50%;background:#a4ad74}.world-marker:hover{background:white}.object-marker{font-size:9px;padding:7px 10px;background:#fff8e9e8}.object-marker:before{background:#ba9154}.memory-card{position:absolute;right:104px;bottom:220px;width:268px;background:#f9f6eadf;backdrop-filter:blur(22px);border:1px solid #fffbee;border-radius:8px;box-shadow:0 15px 45px #23433126;overflow:hidden;z-index:5;animation:reveal .25s ease}.close-memory{position:absolute;right:7px;top:7px;width:29px;height:29px;display:grid;place-items:center;background:#f9f7ecd9;border-radius:50%;z-index:1}.close-memory .icon{width:15px;height:15px}.memory-photo{display:block;width:100%;padding:0;background:#dedccf;position:relative}.memory-photo img{display:block;width:100%;height:175px;object-fit:cover}.memory-photo span{position:absolute;bottom:8px;right:8px;background:#fdfbf0e6;padding:5px 8px;border-radius:3px;font-size:9px}.memory-copy{padding:21px}.memory-copy .eyebrow{font-size:7px;letter-spacing:1.8px}.memory-copy h2{font:22px/1.5 WenKai,serif;margin:12px 0}.memory-copy p{font-size:11px;line-height:1.9;color:#63715f;margin:0 0 18px}.chapter-link{font-size:10px;display:flex;align-items:center;gap:9px}.chapter-link .icon{width:15px;height:15px}.world-loading{position:absolute;inset:0;background:#e0e5d9;z-index:30;display:flex;flex-direction:column;align-items:center;justify-content:center;transition:opacity .7s,visibility .7s}.world-loading.loaded{opacity:0;visibility:hidden;pointer-events:none}.loading-mark{font:italic 78px var(--serif);color:#617351}.world-loading p{font:19px WenKai,serif;margin:24px 0 12px}.world-loading>span{font:italic 14px var(--serif);color:#76846b}.loading-track{width:100px;height:1px;background:#647b4230;overflow:hidden;margin-top:35px}.loading-track:after{content:'';display:block;height:1px;width:35%;background:#6e8255;animation:loading 1.5s ease-in-out infinite}.world-loading button{background:#486145;color:#f4f1df;padding:12px 24px;border-radius:4px;margin-top:24px}.world-loading>a{padding:15px;font-size:12px}.world-loading.error .loading-track{display:none}.no-script{position:absolute;inset:0;z-index:40;background:var(--paper);display:grid;place-content:center;padding:30px}.no-script a{margin-top:20px}dialog{color:var(--ink);border:0;padding:0}dialog::backdrop{background:#1c2e29c9;backdrop-filter:blur(9px)}.photo-dialog{background:transparent;max-width:min(94vw,1200px);max-height:95dvh;overflow:visible;text-align:center}.photo-dialog>button{position:absolute;right:0;top:-44px;background:#f6f4e5;width:35px;height:35px;border-radius:50%;display:grid;place-items:center}.photo-dialog img{display:block;max-width:90vw;max-height:76dvh;object-fit:contain;border-radius:3px}.photo-dialog p{font:14px WenKai,serif;color:#eeeedd;margin:16px auto 0;max-width:650px}.about-dialog{width:500px;max-width:90vw;max-height:85dvh;border-radius:8px;padding:38px;background:#f5f3e8;overflow:auto}.about-dialog>button{position:absolute;right:15px;top:15px;background:transparent}.about-dialog h2{font:29px/1.45 WenKai,serif;margin:20px 0}.about-dialog p{font-size:12px;line-height:2;color:#66705e}.about-controls{border-block:1px solid #6c735e26;padding:15px 0;margin:22px 0;display:grid;gap:12px;font-size:11px}.about-controls span{display:flex;justify-content:space-between}.about-controls b{font-weight:400;color:#404f39}.about-dialog .credits{font-size:10px}.credits a{text-decoration:underline;text-underline-offset:3px}.explorer[data-mode=interior] .scene-wash{background:linear-gradient(90deg,#dfe2d4f0,transparent 46%)}.explorer[data-night=true] .scene-wash{background:linear-gradient(90deg,#d3d8cadb,transparent 47%),linear-gradient(0deg,#cad5c3c4,transparent 33%)}.explorer[data-mode=overview] .place-panel{top:25%}.explorer[data-mode=overview] .walk-bar{visibility:hidden}@keyframes loading{0%{transform:translateX(-100%)}100%{transform:translateX(400%)}}@keyframes reveal{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:1500px){.place-panel{left:65px;width:302px;top:26%}.world-header{padding:32px 48px}.bottom-world{left:48px;right:48px}.place-description{font-size:13px;max-width:280px}.place-dock button{min-height:87px;gap:18px;padding-inline:20px}.building-icon{width:45px;height:45px}}
@media(max-height:800px) and (min-width:781px){.place-panel{top:20%;width:260px}h1{font-size:50px;margin:15px 0}.place-subtitle{font-size:17px;margin-bottom:10px}.place-description{font-size:11px;margin-bottom:15px}.place-detail{margin-bottom:18px}.model-note{margin-top:12px}.place-dock button{min-height:64px}.walk-bar{margin-bottom:12px}.world-footer{height:31px}.scene-caption{top:104px}.memory-card{bottom:185px}}
@media(max-width:1050px) and (min-width:781px){.world-header{padding-inline:25px}.brand{font-size:16px}.brand small{letter-spacing:1px}.city-nav button{padding:9px 12px;font-size:11px}.book-link span{display:none}.place-panel{left:30px;width:240px}.place-dock button{gap:7px;padding-inline:8px;font-size:10px}.building-icon{width:28px;height:28px}.bottom-world{left:24px;right:24px}.interaction-hint{display:none}}
/* The scene resizes independently of the controls and story panel. */
.scene-stage{position:absolute;inset:0;z-index:0}
.world-header{z-index:3}.place-panel{z-index:2}.bottom-world{z-index:3}
.mobile-place-heading,.mobile-place-switch,.mobile-overview,.touch-hint,.room-actions,.place-details-toggle{display:none}
.place-chapter{display:flex;align-items:center;gap:8px;font-size:12px;margin-top:18px}
.place-chapter .icon{width:16px;height:16px}
.reading-mode{font-size:11px;letter-spacing:0;text-decoration:underline;text-underline-offset:3px}
.reader-preview{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:140px 12% 190px 36%;gap:15px}
.reader-preview img{max-width:100%;max-height:100%;object-fit:contain;border-radius:6px}
.reader-preview p{font-size:14px;line-height:1.6;margin:0;color:#475a4a}
#readerOverview{text-align:center}#readerOverview .icon{width:70px;height:70px;margin:20px}
.render-notice{font-size:14px;line-height:1.7;background:#f5f0de;border-left:3px solid #8d9562;padding:12px}
.explorer[data-reading=true] .view-controls,.explorer[data-reading=true] .touch-hint,.explorer[data-reading=true] .scene-caption,.explorer[data-reading=true] .walk-bar{display:none}
.explorer[data-reading=true] .scene-wash{display:none}
.places-dialog{width:540px;max-width:calc(100vw - 24px);max-height:85dvh;background:#f6f5ec;border-radius:18px;padding:24px;overflow:auto;overscroll-behavior:contain}
.places-dialog header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:20px}
.places-dialog h2{font:24px/1.3 WenKai,serif;margin:0 0 8px}.places-dialog header p{font-size:14px;color:#536650;margin:0;line-height:1.5}
.places-dialog header>button{background:transparent;width:44px;height:44px;flex:0 0 44px;display:grid;place-items:center;border-radius:50%}
.place-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.place-options button{position:relative;text-align:left;display:flex;align-items:center;gap:12px;background:#e7ecdf;padding:18px 12px;min-height:94px;border-radius:8px;font-size:14px;line-height:1.4}
.place-options button[aria-pressed=true]{background:#405949;color:#fff}.place-options button[aria-pressed=true] .building-icon,.place-options button[aria-pressed=true] .dock-number{color:#dbe5d3}
.place-options small{display:block;font-size:12px;margin-top:5px}.place-options .building-icon{width:30px;height:30px;flex:0 0 30px}.place-options .dock-number{top:5px;left:9px;font-size:10px}
.explorer[data-night=true] .book-link,.explorer[data-night=true] .scene-caption{color:#dfe7d8}
@media(max-width:780px),(max-height:500px),(max-width:1100px) and (orientation:portrait){
  html,body{height:100%;min-height:0;overflow:hidden}
  body{background:#e2e7dc;font-size:16px}
  .explorer{position:relative;inset:auto;height:100%;min-height:0;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(120px,1fr) auto auto auto;grid-template-areas:"header" "scene" "panel" "bottom" "nav";overflow:hidden}
  .world-header{position:relative;inset:auto;grid-area:header;min-height:54px;padding:max(5px,env(safe-area-inset-top,0px)) max(16px,env(safe-area-inset-right,0px)) 5px max(16px,env(safe-area-inset-left,0px));gap:8px;background:#e2e7dc}
  .brand{font-size:17px;gap:10px;margin-right:auto}.monogram{font-size:32px;padding-right:12px}.brand small{font-size:7px;letter-spacing:1.1px}
  .city-nav{display:none}.book-link,.mobile-overview{display:grid;place-items:center;width:44px;height:44px;background:transparent;border-radius:50%;flex-shrink:0;padding:0}
  .book-link span{display:none}.explorer[data-night=true] .book-link{color:var(--ink)}
  .scene-stage{position:relative;inset:auto;grid-area:scene;width:100%;height:100%;min-height:0;isolation:isolate;overflow:hidden}
  .world-scene{position:absolute;inset:0}.scene-wash,.explorer[data-mode=interior] .scene-wash,.explorer[data-night=true] .scene-wash{background:linear-gradient(0deg,#e2e7dc88,transparent 20%);pointer-events:none}
  .scene-caption{display:none}.view-controls{top:12px;right:max(12px,env(safe-area-inset-right,0px));gap:8px;z-index:3;flex-direction:row;align-items:center}
  .light-switch{width:44px;height:44px;display:grid;place-items:center;padding:0;background:#f5f6ed;border:1px solid #d7decf;backdrop-filter:none}.light-switch span{display:none}.light-switch .icon{width:20px;height:20px}
  .camera-controls{flex-direction:row;padding:3px;border-radius:25px;background:#f5f6ed;backdrop-filter:none;box-shadow:none}.camera-controls button{width:44px;height:44px;font-size:26px}.camera-controls .icon{width:21px;height:21px}.camera-controls>span{margin:0 1px;width:1px;height:20px}
  .touch-hint{display:block;position:absolute;bottom:9px;left:16px;font-size:12px;letter-spacing:.2px;color:#344c3b;background:#edf1e4e8;padding:7px 10px;border-radius:4px;pointer-events:none}
  .place-panel{position:relative;grid-area:panel;left:auto;right:auto;top:auto!important;bottom:auto;width:auto;min-height:0;max-height:min(42dvh,300px);margin:0;padding:6px max(16px,env(safe-area-inset-right,0px)) 8px max(16px,env(safe-area-inset-left,0px));display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 10px;align-items:center;overflow:auto;overscroll-behavior:contain;pointer-events:auto}
  .mobile-place-heading{display:block;position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
  #placeTitle,.place-panel .eyebrow{display:none}
  .place-subtitle{grid-column:1;font:16px/1.5 WenKai,serif;margin:0}
  .place-details-toggle{display:flex;align-items:center;justify-content:center;gap:6px;min-height:44px;background:transparent;padding:6px 0 6px 8px;font-size:13px;color:#405949;white-space:nowrap}
  .place-details-toggle span{font-size:18px}.place-details-toggle[aria-expanded=true] span{transform:rotate(180deg)}
  .primary-button{grid-column:1/-1;grid-row:2;width:100%;min-height:44px;padding:10px 14px;font-size:14px;gap:12px}.primary-button .icon{width:20px;height:20px}
  .place-description,.place-detail,.place-chapter,.model-note,.render-notice{grid-column:1/-1}
  .place-description{font-size:15px;line-height:1.8;max-width:none;margin:8px 0 0;color:#455b49}
  .place-detail{font-size:12px;margin:4px 0}.place-chapter{min-height:44px;margin:0;font-size:14px;justify-content:center}.model-note{font-size:12px;line-height:1.7;max-width:none;color:#56694f;margin:0 0 6px}
  .place-panel:not(.details-open) :is(.place-description,.place-detail,.place-chapter,.model-note){display:none}
  .text-button{display:none}.render-notice{grid-row:1;margin:0}
  .bottom-world{position:relative;grid-area:bottom;left:auto;right:auto;bottom:auto;margin:0;padding:0 max(16px,env(safe-area-inset-right,0px)) 8px max(16px,env(safe-area-inset-left,0px));pointer-events:auto}
  .walk-bar{width:100%;padding:0 14px 0 0;margin:0;border:1px solid #bfcab6;background:#eef1e6;backdrop-filter:none;box-shadow:none;border-radius:6px;gap:12px}.walk-button{padding:10px 14px;min-height:44px;font-size:14px;gap:10px}.walk-button .icon{width:16px;height:18px}.walk-note{display:none}.walk-progress{min-width:25px;height:3px}
  .explorer[data-mode=overview] .walk-bar{display:none}.place-dock{display:none}
  .world-footer{display:none}.place-panel.details-open~.bottom-world .world-footer{height:auto;display:flex;justify-content:space-between;gap:0 16px;font-size:12px;letter-spacing:0}.world-footer>span{display:none}.world-footer>a,.world-footer>button{display:inline-flex;align-items:center;min-height:44px;font-size:12px;padding:8px 0;letter-spacing:0}
  .mobile-place-switch{position:relative;grid-area:nav;z-index:12;inset:auto;display:grid;grid-template-columns:48px minmax(0,1fr) 48px;gap:8px;padding:9px max(12px,env(safe-area-inset-right,0px)) calc(9px + env(safe-area-inset-bottom,0px)) max(12px,env(safe-area-inset-left,0px));background:#f5f6ed;border-top:1px solid #c5cebc;box-shadow:0 -4px 18px #374b3510}
  .mobile-place-switch>button{min-height:54px;background:transparent;border-radius:8px;display:grid;place-items:center}.mobile-place-switch>button:disabled{opacity:.3;cursor:default}.mobile-place-switch>button:focus-visible{outline-offset:0}
  #choosePlace{position:relative;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:4px;text-align:left;padding:6px 34px 6px 10px;background:#e2e9d9;min-width:0}
  #choosePlace>span{font-size:11px;color:#53664b}#choosePlace>strong{font-size:14px;font-weight:500;line-height:1.3;overflow-wrap:anywhere}#choosePlace>.icon{position:absolute;right:10px;top:50%;transform:translateY(-50%);width:18px}
  .explorer[data-mode=overview] .world-markers,.world-markers .object-marker{display:none}
  .room-actions{grid-column:1/-1;grid-row:3;display:flex;gap:8px;margin:0;overflow-x:auto;overscroll-behavior-x:contain;padding-bottom:2px}.room-actions button{flex:0 0 auto;background:#f5f6ed;color:#3d573e;border:1px solid #bcc9b1;border-radius:5px;min-height:44px;padding:9px 12px;text-align:left;font-size:14px;line-height:1.5}.room-actions button:after{content:"查看";float:right;font-size:13px;color:#59734f;margin-left:12px}
  .world-markers .world-marker{font-size:12px;min-height:44px;padding:10px 13px;backdrop-filter:none;background:#f6f6e8;border:1px solid #c8d3bc;box-shadow:0 3px 10px #34502b20;max-width:calc(100% - 20px)}.world-markers .object-marker{font-size:12px}
  .memory-card{position:absolute;inset:auto 12px calc(var(--place-nav-height,73px) + 8px);width:auto;max-height:calc(100% - var(--place-nav-height,73px) - 70px);overflow:auto;overscroll-behavior:contain;display:block;margin:0;z-index:13;background:#f5f4e9;backdrop-filter:none;border-radius:8px;box-shadow:none;animation:none}
  .memory-photo{padding:0;width:100%;height:auto}.memory-photo img{height:clamp(140px,26dvh,220px);width:100%;object-fit:contain;background:#d8dfd0}.memory-photo span{font-size:12px;bottom:10px;right:10px;padding:8px}
  .close-memory{position:sticky;float:right;margin:8px 8px -52px 0;width:44px;height:44px;top:8px;right:8px;z-index:2;background:#faf9f0}.close-memory .icon{width:20px;height:20px}.memory-copy{padding:18px}.memory-copy .eyebrow{display:none}.memory-copy h2{font-size:25px;line-height:1.4;margin:0 30px 12px 0}.memory-copy p{font-size:16px;line-height:1.85;margin:0 0 12px;color:#455b49}.chapter-link{min-height:44px;font-size:14px;justify-content:space-between}
  .places-dialog{position:fixed;inset:auto 0 0;margin:0;width:100%;max-width:100%;max-height:90dvh;border-radius:18px 18px 0 0;padding:22px 16px calc(22px + env(safe-area-inset-bottom,0px))}
  .place-options button{gap:8px;padding:18px 10px;min-height:100px;font-size:14px}.place-options small{font-size:12px}.place-options .building-icon{width:26px;flex-basis:26px}
  .about-dialog{padding:55px 24px 28px;max-height:90dvh}.about-dialog h2{font-size:27px}.about-dialog p{font-size:15px;line-height:1.85}.about-dialog .credits{font-size:13px}.about-controls{font-size:14px}.about-dialog>button{width:44px;height:44px;top:8px;right:8px;display:grid;place-items:center}
  .photo-dialog{background:#23372b;padding:55px 10px 15px;max-height:94dvh;max-width:96vw;width:96vw;overflow:auto;border-radius:7px}.photo-dialog>button{width:44px;height:44px;top:7px;right:7px}.photo-dialog img{max-width:100%;max-height:calc(85dvh - 100px);margin:auto}.photo-dialog p{font-size:15px;line-height:1.6}.photo-dialog::backdrop,.about-dialog::backdrop,.places-dialog::backdrop{backdrop-filter:none}
  .reader-preview{padding:16px 20px;gap:10px}.reader-preview img{min-height:0;max-height:calc(100% - 42px);width:100%;object-fit:contain}.reader-preview p{font-size:13px;text-align:center}
  .world-loading{position:fixed}.world-loading p{font-size:21px}.world-loading>span{font-size:16px}.render-notice{margin-top:0}
}
@media(max-height:500px) and (orientation:landscape){
  .explorer{grid-template-columns:minmax(0,1fr) minmax(270px,38%);grid-template-rows:auto minmax(0,1fr) auto auto;grid-template-areas:"header header" "scene panel" "scene bottom" "nav nav"}
  .world-header{min-height:48px;padding-block:2px}.brand small{display:none}
  .place-panel{max-height:100%;align-content:start}
  .scene-stage{min-height:0}.view-controls{top:8px;right:8px}.touch-hint{bottom:6px;font-size:11px}
  .mobile-place-switch{grid-template-columns:44px minmax(0,1fr) 44px;padding-top:5px;padding-bottom:calc(5px + env(safe-area-inset-bottom,0px))}.mobile-place-switch>button{min-height:48px}
  .places-dialog{max-height:96dvh}.place-options{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-height:600px) and (orientation:portrait){
  .place-panel.details-open{max-height:32dvh}
  .mobile-place-switch{padding-top:5px;padding-bottom:calc(5px + env(safe-area-inset-bottom,0px))}.mobile-place-switch>button{min-height:48px}
}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
