body.page-catalog,body.page-catalog #app{overflow-y:auto!important;overflow-x:hidden!important;height:auto!important;min-height:100vh}body.page-catalog #app{display:block;padding:0}body.page-catalog .stage{margin:0 auto}.catalog-extras{width:min(100vw,177.777vh);margin:0 auto;background:linear-gradient(180deg,#e8d9bf,#d8c5a7);padding:36px clamp(20px,2.5vw,48px) 80px;border:1px solid rgba(180,149,99,.45);border-top:0;font-family:"Noto Serif SC",Songti SC,SimSun,serif}.catalog-extras .ce-header{text-align:center;margin-bottom:24px}.catalog-extras .ce-header h2{font-size:clamp(20px,2.4vw,30px);letter-spacing:.4em;color:#4a3722;margin:0}.catalog-extras .ce-header h2:before,.catalog-extras .ce-header h2:after{content:"—";margin:0 18px;color:#78563299}.catalog-extras .ce-header p{font-size:clamp(11px,1.05vw,14px);letter-spacing:.2em;color:#6b5538;margin:8px 0 0}.catalog-extras .ce-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(12px,1.4vw,22px)}.catalog-extras .ce-card{position:relative;aspect-ratio:4 / 3;overflow:hidden;border:1px solid rgba(120,86,50,.4);cursor:pointer;background:#d3bd96;padding:0;font-family:inherit;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;box-shadow:0 4px 14px #50361c1f}.catalog-extras .ce-card:hover{transform:translateY(-3px);border-color:#a9362899;box-shadow:0 12px 32px #50361c47}.catalog-extras .ce-card img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease}.catalog-extras .ce-card:hover img{transform:scale(1.05)}.catalog-extras .ce-card .ce-overlay{position:absolute;bottom:0;left:0;right:0;padding:10px 14px;background:linear-gradient(180deg,transparent 0%,rgba(35,24,14,.92) 70%);color:#f3e3bf;text-align:center}.catalog-extras .ce-card .ce-name{font-size:clamp(14px,1.5vw,18px);letter-spacing:.18em;font-weight:600}.catalog-extras .ce-card .ce-sub{font-size:clamp(10px,1vw,12px);letter-spacing:.12em;color:#c9b58a;margin-top:2px}.portal-search{position:absolute;z-index:12;display:flex;align-items:center;background:#fff8e8d9;border:1px solid rgba(120,86,50,.4);border-radius:999px;padding:0 14px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:0 2px 8px #50361c1a}.portal-search input{flex:1;border:0;outline:0;background:transparent;padding:8px 6px;font-family:"Noto Serif SC",Songti SC,serif;font-size:14px;color:#3b2e22;min-width:0}.portal-search input::placeholder{color:#4b342073;letter-spacing:.12em}.portal-search .ps-icon{font-size:16px;color:#4b342099;flex:0 0 auto}.portal-search-results{position:absolute;top:calc(100% + 6px);left:0;right:0;background:#fff8e8fa;border:1px solid rgba(120,86,50,.4);border-radius:8px;box-shadow:0 12px 32px #50361c40;max-height:320px;overflow-y:auto;display:none;font-family:"Noto Serif SC",Songti SC,serif}.portal-search.open .portal-search-results{display:block}.portal-search-results .psr-item{display:flex;align-items:center;gap:10px;padding:8px 12px;cursor:pointer;border-bottom:1px solid rgba(120,86,50,.15);transition:background .15s}.portal-search-results .psr-item:last-child{border-bottom:0}.portal-search-results .psr-item:hover{background:#b695632e}.portal-search-results .psr-thumb{width:40px;height:28px;object-fit:cover;border-radius:3px;flex:0 0 auto}.portal-search-results .psr-text{flex:1;min-width:0}.portal-search-results .psr-name{font-size:13px;font-weight:600;color:#3b2e22;letter-spacing:.1em}.portal-search-results .psr-sub{font-size:11px;color:#4b3420a6;letter-spacing:.08em;margin-top:1px}.portal-search-results .psr-empty{padding:16px;text-align:center;color:#4b34208c;font-size:13px;letter-spacing:.18em}.map-spot{position:absolute;z-index:10;width:18px;height:18px;border-radius:50%;background:radial-gradient(circle,#f5b94a,#b69563);border:2px solid rgba(255,255,255,.85);box-shadow:0 0 #f5b94a8c;cursor:pointer;transform:translate(-50%,-50%);animation:map-spot-pulse 2.4s ease-in-out infinite}.map-spot:hover{transform:translate(-50%,-50%) scale(1.4);z-index:11}.map-spot:after{content:attr(data-name);position:absolute;left:22px;top:50%;transform:translateY(-50%);white-space:nowrap;padding:4px 10px;background:#23180eeb;color:#f3e3bf;font-size:12px;letter-spacing:.16em;border-radius:4px;pointer-events:none;opacity:0;transition:opacity .2s}.map-spot:hover:after{opacity:1}@keyframes map-spot-pulse{0%,to{box-shadow:0 0 #f5b94a99}50%{box-shadow:0 0 0 14px #f5b94a00}}.appreciation-grid{position:absolute;inset:11.5% 2% 2%;z-index:8;pointer-events:none;display:flex;flex-direction:column}.appreciation-grid .grid-mask{position:absolute;inset:0;background:linear-gradient(180deg,#e8d9bff5,#d8c5a7eb);border:1px solid rgba(180,149,99,.45);box-shadow:inset 0 0 60px #50361c14;pointer-events:auto}.appreciation-grid .grid-header{position:relative;z-index:2;text-align:center;padding:16px 0 8px;pointer-events:none}.appreciation-grid .grid-header h2{font-family:"Noto Serif SC",Songti SC,SimSun,serif;font-size:clamp(20px,2.4vw,32px);letter-spacing:.4em;color:#4a3722;margin:0;text-shadow:0 1px 0 rgba(255,240,210,.6)}.appreciation-grid .grid-header p{font-family:"Noto Serif SC",Songti SC,SimSun,serif;font-size:clamp(11px,1.1vw,14px);letter-spacing:.18em;color:#6b5538;margin:6px 0 0}.appreciation-grid .grid-cards{position:relative;z-index:2;flex:1;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);gap:clamp(8px,1vw,16px);padding:clamp(12px,1.4vw,22px);pointer-events:auto}.appreciation-grid .bcard{position:relative;display:flex;flex-direction:column;border:1px solid rgba(120,86,50,.35);background:#fff8e8c7;border-radius:4px;overflow:hidden;cursor:pointer;padding:0;font-family:inherit;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;box-shadow:0 4px 14px #50361c1f}.appreciation-grid .bcard:hover{transform:translateY(-3px);border-color:#a936288c;box-shadow:0 10px 28px #50361c38}.appreciation-grid .bcard-img{flex:1;background-size:cover;background-position:center;background-color:#d3bd96;position:relative}.appreciation-grid .bcard-img:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 50%,rgba(35,24,14,.45) 100%)}.appreciation-grid .bcard-info{position:relative;padding:clamp(6px,.8vw,10px) clamp(8px,1vw,12px);background:#23180ee0;color:#f3e3bf;text-align:center}.appreciation-grid .bcard-title{font-size:clamp(13px,1.4vw,18px);letter-spacing:.16em;font-weight:600}.appreciation-grid .bcard-sub{font-size:clamp(9px,.9vw,11px);letter-spacing:.1em;color:#c9b58a;margin-top:3px}.appreciation-grid .bcard-keyword{display:inline-block;margin-top:4px;padding:2px 8px;font-size:clamp(9px,.85vw,11px);letter-spacing:.12em;background:#b695638c;color:#fff5dd;border-radius:999px}.portal-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:9999;background:linear-gradient(180deg,#140e0a,#1c140e),radial-gradient(circle at 50% 30%,#32261a,#140e0a);display:flex;flex-direction:column;font-family:"Noto Serif SC",Songti SC,SimSun,serif;color:#f3e3bf;opacity:0;pointer-events:none;transition:opacity .35s ease}.portal-overlay.show{opacity:1;pointer-events:auto}body.portal-overlay-active .corner-ui,body.portal-overlay-active .route-label,body.portal-overlay-active .tip{visibility:hidden!important}.portal-overlay .overlay-header{flex:0 0 auto;padding:16px 28px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid rgba(182,149,99,.25);background:#140e0a66}.portal-overlay .overlay-title{font-size:22px;letter-spacing:.3em;color:#f5e3bf}.portal-overlay .overlay-subtitle{font-size:13px;color:#c9b58a;letter-spacing:.16em;margin-left:18px}.portal-overlay .overlay-close{border:1px solid rgba(182,149,99,.5);background:#2d221899;color:#f5e3bf;border-radius:999px;padding:8px 18px;font-size:14px;letter-spacing:.18em;cursor:pointer;font-family:inherit}.portal-overlay .overlay-close:hover{background:#a9362873;border-color:#ffd782b3}.portal-overlay .overlay-body{flex:1;display:grid;grid-template-columns:1.4fr 1fr;gap:0;min-height:0}.portal-overlay .ov-3d{position:relative;background:radial-gradient(circle at 50% 50%,#2a2218,#14100a);border-right:1px solid rgba(182,149,99,.22)}.portal-overlay .ov-3d canvas{display:block;width:100%;height:100%}.portal-overlay .ov-3d-loading{position:absolute;inset:0;display:grid;place-items:center;color:#c9b58a;letter-spacing:.3em;font-size:14px;pointer-events:none}.portal-overlay .ov-3d-hint{position:absolute;left:16px;bottom:16px;padding:8px 14px;background:#140e0a99;border:1px solid rgba(182,149,99,.3);border-radius:999px;font-size:12px;letter-spacing:.16em;color:#c9b58a}.portal-overlay .ov-info{padding:28px 32px;overflow-y:auto;display:flex;flex-direction:column;gap:16px;background:linear-gradient(180deg,#231a12bf,#19120cf2)}.portal-overlay .ov-meta{display:flex;flex-wrap:wrap;gap:8px}.portal-overlay .ov-tag{padding:4px 12px;font-size:12px;letter-spacing:.14em;background:#b695632e;border:1px solid rgba(182,149,99,.35);border-radius:999px;color:#d8c5a7}.portal-overlay .ov-section h3{font-size:15px;letter-spacing:.24em;color:#f5b94a;margin:0 0 8px;padding-bottom:6px;border-bottom:1px solid rgba(182,149,99,.3)}.portal-overlay .ov-section p{font-size:14px;line-height:1.85;color:#e0d3b3;margin:0;letter-spacing:.04em}.portal-overlay .ov-thumbs{display:flex;gap:8px;flex-wrap:wrap}.portal-overlay .ov-thumbs img{width:90px;height:60px;object-fit:cover;border:1px solid rgba(182,149,99,.3);border-radius:4px;cursor:pointer;transition:border-color .15s,transform .15s}.portal-overlay .ov-thumbs img:hover{border-color:#f5b94a;transform:scale(1.06)}.portal-overlay .ov-actions{margin-top:auto;display:flex;gap:10px;padding-top:16px;border-top:1px solid rgba(182,149,99,.22)}.portal-overlay .ov-btn{flex:1;padding:12px 0;border:1px solid rgba(182,149,99,.5);background:#2d221899;color:#f5e3bf;font-family:inherit;font-size:14px;letter-spacing:.24em;cursor:pointer;border-radius:4px;transition:all .18s}.portal-overlay .ov-btn:hover:not(:disabled){background:#a9362873;border-color:#f5b94a;color:#fff}.portal-overlay .ov-btn.primary{background:linear-gradient(135deg,#a936288c,#78241cb3);border-color:#ffc86eb3}.portal-overlay .ov-btn:disabled{opacity:.4;cursor:not-allowed}.image-lightbox{position:fixed;inset:0;z-index:200;background:#000000eb;display:grid;place-items:center;opacity:0;pointer-events:none;transition:opacity .3s}.image-lightbox.show{opacity:1;pointer-events:auto}.image-lightbox img{max-width:90vw;max-height:90vh;object-fit:contain;border:1px solid rgba(182,149,99,.5);box-shadow:0 30px 80px #0009}.image-lightbox .lb-close{position:absolute;top:24px;right:28px;font-size:32px;color:#f5e3bf;cursor:pointer;-webkit-user-select:none;user-select:none}.explore-overlay .ov-3d{flex:1;position:relative}.explore-overlay .overlay-body{display:flex;flex-direction:row}.explore-overlay .explore-toolbar{position:absolute;top:16px;left:50%;transform:translate(-50%);z-index:10;display:flex;gap:8px;padding:8px;background:#140e0ab3;border:1px solid rgba(182,149,99,.3);border-radius:8px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.explore-overlay .explore-toolbar button{padding:8px 16px;background:#2d221899;border:1px solid rgba(182,149,99,.5);color:#f5e3bf;border-radius:4px;cursor:pointer;font-family:inherit;letter-spacing:.16em;font-size:13px}.explore-overlay .explore-toolbar button:hover{background:#a9362873}.explore-overlay .explore-toolbar button.active{background:linear-gradient(135deg,#f5b94a99,#b6956399);color:#1a1208;border-color:#f5b94a}.explore-overlay .part-info-card{position:absolute;right:20px;top:80px;width:320px;padding:18px 22px;background:#140e0aeb;border:1px solid rgba(245,185,74,.5);border-radius:8px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);pointer-events:none;opacity:0;transition:opacity .25s;box-shadow:0 12px 36px #00000080}.explore-overlay .part-info-card.show{opacity:1}.explore-overlay .part-info-card h4{margin:0 0 8px;font-size:18px;letter-spacing:.2em;color:#f5b94a}.explore-overlay .part-info-card p{margin:0;font-size:13px;line-height:1.7;color:#d8c5a7}.inspect-overlay .ov-3d{flex:1;position:relative;background:radial-gradient(ellipse at 50% 60%,#3c2c1cf2,#0f0a06 70%)}.inspect-overlay .insp-info{position:absolute;left:28px;bottom:28px;max-width:420px;z-index:5;pointer-events:none}.inspect-overlay .insp-info h3{font-size:28px;letter-spacing:.32em;color:#f5e3bf;margin:0 0 4px;text-shadow:0 2px 8px rgba(0,0,0,.6)}.inspect-overlay .insp-meta{font-size:13px;letter-spacing:.2em;color:#c9b58a;margin-bottom:14px}.inspect-overlay .insp-info p{font-size:13px;line-height:1.85;color:#e0d3b3;margin:0 0 12px;letter-spacing:.04em;text-shadow:0 1px 4px rgba(0,0,0,.6)}.inspect-overlay .insp-tags{display:flex;gap:8px;flex-wrap:wrap}.inspect-overlay .insp-hint{position:absolute;right:28px;bottom:28px;padding:8px 16px;background:#140e0ab3;border:1px solid rgba(182,149,99,.35);border-radius:999px;font-size:12px;letter-spacing:.18em;color:#c9b58a}.inspect-overlay .ov-3d:before{content:"";position:absolute;left:50%;bottom:22%;width:280px;height:280px;margin-left:-140px;border-radius:50%;background:radial-gradient(circle,rgba(245,185,74,.18) 0%,transparent 70%);pointer-events:none;animation:insp-pulse 4s ease-in-out infinite}@keyframes insp-pulse{0%,to{transform:scale(.95);opacity:.6}50%{transform:scale(1.15);opacity:1}}.explore-overlay .explore-status{position:absolute;bottom:20px;left:50%;transform:translate(-50%);padding:8px 18px;background:#140e0ab3;border:1px solid rgba(182,149,99,.3);border-radius:999px;font-size:12px;letter-spacing:.16em;color:#c9b58a}
