@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600&family=Noto+Sans+JP:wght@300;400;500;600&display=swap";
:root{--bg:#fafaf8;--text:#1a1a1a;--text-secondary:#6b6b6b;--accent:#8b7355;--card-bg:#fff;--border:#eaeaea;--shadow:0 2px 20px #0000000f;--radius:16px;--font-sans:"Inter","Noto Sans JP",-apple-system,sans-serif}*{box-sizing:border-box;margin:0;padding:0}html,body{font-family:var(--font-sans);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;min-height:100dvh;overflow-x:hidden}.scene-card{background:var(--card-bg);flex-direction:column;width:100%;max-width:430px;min-height:100dvh;margin:0 auto;display:flex}.scene-image-wrapper{background:linear-gradient(135deg,#e8ddd3,#d4c8b8);width:100%;height:52dvh;position:relative;overflow:hidden}.scene-image-wrapper img{object-fit:cover;opacity:0;width:100%;height:100%;transition:opacity .8s}.scene-image-wrapper img.loaded{opacity:1}.scene-image-gradient{pointer-events:none;background:linear-gradient(#0000,#ffffffe6);height:40%;position:absolute;bottom:0;left:0;right:0}.scene-content{flex-direction:column;flex:1;gap:12px;padding:20px 24px 100px;display:flex}.scene-location{letter-spacing:.02em;align-items:flex-start;gap:6px;font-size:20px;font-weight:500;line-height:1.4;display:flex}.scene-location .pin{margin-top:3px;font-size:16px}.scene-meta{color:var(--text-secondary);letter-spacing:.03em;align-items:center;gap:12px;font-size:13px;display:flex}.scene-description{color:var(--text);letter-spacing:.02em;padding-top:4px;font-size:15px;font-weight:300;line-height:2}.scene-actions{max-width:430px;padding:16px 24px;padding-bottom:max(16px,env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--border);z-index:100;background:#ffffffeb;gap:8px;margin:0 auto;display:flex;position:fixed;bottom:0;left:0;right:0}.btn{font-family:var(--font-sans);cursor:pointer;border:none;border-radius:12px;flex:1;justify-content:center;align-items:center;gap:6px;padding:14px 12px;font-size:14px;font-weight:500;transition:all .2s;display:flex}.btn:active{transform:scale(.96)}.btn-primary{background:var(--text);color:#fff}.btn-secondary,.btn-favorite{color:var(--text);background:#f5f5f3}.btn-favorite.active{color:#e74c3c;background:#fff0f0}.btn-detail{color:var(--text);background:#f5f5f3}.detail-overlay{z-index:200;opacity:0;pointer-events:none;background:#0000004d;transition:opacity .3s;position:fixed;inset:0}.detail-overlay.open{opacity:1;pointer-events:auto}.detail-panel{z-index:201;background:#fff;border-radius:20px 20px 0 0;max-width:430px;max-height:70dvh;margin:0 auto;padding:24px 24px 40px;transition:transform .4s cubic-bezier(.32,.72,0,1);position:fixed;bottom:0;left:0;right:0;overflow-y:auto;transform:translateY(100%)}.detail-panel.open{transform:translateY(0)}.detail-handle{background:#ddd;border-radius:2px;width:36px;height:4px;margin:0 auto 20px}.detail-section{margin-bottom:20px}.detail-section h3{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.08em;margin-bottom:8px;font-size:13px;font-weight:600}.detail-section p{color:var(--text);font-size:14px;font-weight:300;line-height:1.8}.detail-links{border-top:1px solid var(--border);gap:10px;margin-top:8px;padding-top:16px;display:flex}.detail-link-btn{color:var(--text);font-family:var(--font-sans);letter-spacing:.01em;background:#f5f5f3;border-radius:12px;flex:1;justify-content:center;align-items:center;gap:6px;padding:12px 14px;font-size:13px;font-weight:500;text-decoration:none;transition:all .2s;display:flex}.detail-link-btn:hover{background:#edecea}.detail-link-btn:active{transform:scale(.96)}.nav-header{max-width:430px;padding:12px 20px;padding-top:max(12px,env(safe-area-inset-top));z-index:50;-webkit-backdrop-filter:blur(12px);background:#ffffffd9;justify-content:space-between;align-items:center;margin:0 auto;display:flex;position:fixed;top:0;left:0;right:0}.nav-title{letter-spacing:.05em;font-size:15px;font-weight:500}.nav-icons{gap:4px;display:flex}.nav-brand{flex-direction:column;display:flex}.nav-tagline{color:var(--text-secondary);letter-spacing:.05em;margin-top:-2px;font-size:10px;font-weight:400}.loading-content{flex-direction:column;align-items:center;gap:8px;display:flex}.loading-title{letter-spacing:.1em;color:var(--text);font-size:16px;font-weight:600}.loading-tagline{color:var(--text-secondary);letter-spacing:.05em;font-size:11px;font-weight:400}.nav-icon-btn{cursor:pointer;opacity:.6;background:0 0;border:none;border-radius:8px;padding:8px;font-size:18px;transition:opacity .2s}.nav-icon-btn:hover,.nav-icon-btn.active{opacity:1;background:#f5f5f3}.list-view{background:var(--card-bg);max-width:430px;min-height:100dvh;margin:0 auto;padding:80px 20px 40px}.list-view h2{margin-bottom:20px;font-size:22px;font-weight:500}.list-item{border-bottom:1px solid var(--border);cursor:pointer;gap:14px;padding:14px 0;transition:opacity .2s;display:flex}.list-item:hover{opacity:.7}.list-item-img{object-fit:cover;background:#f0ece6;border-radius:10px;width:64px;height:64px}.list-item-info{flex-direction:column;flex:1;justify-content:center;gap:4px;display:flex}.list-item-location{font-size:14px;font-weight:500}.list-item-meta{color:var(--text-secondary);font-size:12px}.list-empty{text-align:center;color:var(--text-secondary);padding:60px 20px;font-size:14px;line-height:1.8}.loading-screen{background:var(--card-bg);justify-content:center;align-items:center;max-width:430px;min-height:100dvh;margin:0 auto;display:flex}@media (max-width:800px),(display-mode:standalone){.scene-card,.scene-actions,.detail-panel,.nav-header,.list-view,.loading-screen{border-radius:0;margin:0;max-width:100%!important}.scene-card{min-height:100dvh}.scene-location{font-size:26px}.scene-description{font-size:18px;line-height:1.9}.btn{padding:16px;font-size:17px}.nav-title{font-size:18px}.detail-section h3{font-size:15px}.detail-section p{font-size:17px}}@keyframes pulse{0%,to{opacity:.4}50%{opacity:1}}@keyframes fadeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:.6s ease-out forwards fadeIn}.fade-in-delay{opacity:0;animation:.6s ease-out .15s forwards fadeIn}.fade-in-delay-2{opacity:0;animation:.6s ease-out .3s forwards fadeIn}
