:root{--bg-primary: #0a0a0f;--bg-secondary: #12121a;--bg-card: #1a1a28;--bg-card-hover: #222236;--text-primary: #f0f0f5;--text-secondary: #9898b0;--text-muted: #666680;--accent-1: #6c63ff;--accent-2: #ff6b9d;--accent-3: #00d4aa;--gradient-1: linear-gradient(135deg, #6c63ff, #ff6b9d);--gradient-2: linear-gradient(135deg, #6c63ff, #00d4aa);--gradient-hero: linear-gradient(180deg, rgba(10, 10, 15, 0) 0%, rgba(10, 10, 15, .6) 50%, #0a0a0f 100%);--border-color: rgba(255, 255, 255, .06);--border-glow: rgba(108, 99, 255, .3);--shadow-card: 0 4px 24px rgba(0, 0, 0, .4);--shadow-card-hover: 0 12px 48px rgba(108, 99, 255, .15);--radius-sm: 8px;--radius-md: 14px;--radius-lg: 20px;--radius-xl: 28px;--font-jp: "Noto Sans JP", "Noto Sans SC", "Noto Sans Thai", sans-serif;--font-en: "Outfit", sans-serif;--transition: .3s cubic-bezier(.4, 0, .2, 1);--region-osaka: #ff6b9d;--region-kyoto: #ffb347;--region-nagoya: #6c63ff;--region-fukuoka: #00d4aa}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:var(--font-jp);background:var(--bg-primary);color:var(--text-primary);line-height:1.7;overflow-x:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.container{max-width:1300px;margin:0 auto;padding:0 24px}.lang-switcher{position:fixed;top:20px;right:24px;z-index:1000;display:flex;gap:6px;padding:6px;border-radius:100px;background:#12121acc;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--border-color);box-shadow:0 4px 24px #0006}.lang-btn{font-family:var(--font-jp);font-size:.78rem;font-weight:500;padding:6px 14px;border-radius:100px;border:none;background:transparent;color:var(--text-muted);cursor:pointer;transition:var(--transition);white-space:nowrap;line-height:1.4}.lang-btn:hover{color:var(--text-primary);background:#ffffff0f}.lang-btn.active{background:var(--gradient-1);color:#fff;box-shadow:0 2px 12px #6c63ff59}.hero{position:relative;min-height:100vh;display:flex;align-items:center;justify-content:center;overflow:hidden;background:radial-gradient(ellipse 80% 60% at 50% 40%,rgba(108,99,255,.12) 0%,transparent 60%),radial-gradient(ellipse 60% 40% at 20% 80%,rgba(255,107,157,.08) 0%,transparent 50%),radial-gradient(ellipse 60% 40% at 80% 20%,rgba(0,212,170,.06) 0%,transparent 50%),var(--bg-primary)}.hero-overlay{position:absolute;inset:0;background:var(--gradient-hero);pointer-events:none}.hero:before{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:repeating-linear-gradient(0deg,transparent,transparent 98px,rgba(255,255,255,.015) 98px,rgba(255,255,255,.015) 100px),repeating-linear-gradient(90deg,transparent,transparent 98px,rgba(255,255,255,.015) 98px,rgba(255,255,255,.015) 100px);pointer-events:none}.hero-content{position:relative;z-index:2;text-align:center;padding:0 24px}.hero-eyebrow{font-family:var(--font-en);font-size:.85rem;font-weight:500;letter-spacing:.35em;color:var(--accent-1);margin-bottom:20px;text-transform:uppercase;opacity:0;animation:fadeInUp .8s .2s forwards}.hero-title{font-family:var(--font-en);font-size:clamp(3rem,8vw,7rem);font-weight:700;line-height:1.05;letter-spacing:-.02em;margin-bottom:24px;opacity:0;animation:fadeInUp .8s .4s forwards}.hero-title-accent{background:var(--gradient-1);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.hero-subtitle{font-size:1.15rem;color:var(--text-secondary);font-weight:300;margin-bottom:48px;max-width:500px;margin-left:auto;margin-right:auto;opacity:0;animation:fadeInUp .8s .6s forwards}.hero-stats{display:flex;gap:40px;justify-content:center;flex-wrap:wrap;opacity:0;animation:fadeInUp .8s .8s forwards}.stat-item{text-align:center}.stat-value{font-family:var(--font-en);font-size:2.5rem;font-weight:700;background:var(--gradient-2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;line-height:1.2}.stat-label{font-size:.8rem;color:var(--text-muted);letter-spacing:.1em;text-transform:uppercase;font-family:var(--font-en)}.hero-scroll-indicator{position:absolute;bottom:40px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:10px;z-index:2;opacity:0;animation:fadeInUp .8s 1.2s forwards}.hero-scroll-indicator span{font-family:var(--font-en);font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--text-muted)}.scroll-line{width:1px;height:40px;background:linear-gradient(to bottom,var(--accent-1),transparent);animation:scrollPulse 2s infinite}.filter-section{position:sticky;top:0;z-index:100;background:#0a0a0fd9;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--border-color);padding:16px 0}.filter-bar{display:flex;align-items:center;gap:20px;flex-wrap:wrap}.filter-label{display:flex;align-items:center;gap:8px;font-size:.85rem;color:var(--text-muted);white-space:nowrap;font-family:var(--font-en)}.filter-buttons{display:flex;gap:8px;flex-wrap:wrap}.filter-btn{font-family:var(--font-en);font-size:.82rem;font-weight:500;padding:8px 18px;border-radius:100px;border:1px solid var(--border-color);background:transparent;color:var(--text-secondary);cursor:pointer;transition:var(--transition);white-space:nowrap}.filter-btn:hover{border-color:var(--accent-1);color:var(--text-primary);background:#6c63ff1a}.filter-btn.active{background:var(--gradient-1);color:#fff;border-color:transparent;box-shadow:0 4px 16px #6c63ff4d}.results-info{display:flex;align-items:center;gap:12px;margin-top:12px;font-size:.85rem;color:var(--text-muted);font-family:var(--font-en)}#results-count{font-weight:600;color:var(--accent-1)}.sort-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:100px;background:#6c63ff1a;border:1px solid rgba(108,99,255,.2);color:var(--accent-1);font-size:.75rem;font-family:var(--font-jp)}.hotel-grid-section{padding:48px 0 80px;min-height:60vh}.hotel-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(380px,1fr));gap:24px}.hotel-card{background:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--border-color);overflow:hidden;transition:var(--transition);position:relative;opacity:0;transform:translateY(30px);animation:cardFadeIn .5s forwards}.hotel-card:hover{transform:translateY(-4px);border-color:var(--border-glow);box-shadow:var(--shadow-card-hover);background:var(--bg-card-hover)}.hotel-card-header{padding:24px 24px 0;display:flex;justify-content:space-between;align-items:flex-start}.hotel-rank{font-family:var(--font-en);font-size:.7rem;font-weight:600;letter-spacing:.12em;color:var(--text-muted);padding:4px 10px;border-radius:100px;background:#ffffff0a;border:1px solid var(--border-color)}.hotel-region-badge{font-family:var(--font-en);font-size:.72rem;font-weight:600;padding:4px 12px;border-radius:100px;text-transform:uppercase;letter-spacing:.08em;background:color-mix(in srgb,var(--badge-color, var(--accent-1)) 12%,transparent);color:var(--badge-color, var(--accent-1));border:1px solid color-mix(in srgb,var(--badge-color, var(--accent-1)) 20%,transparent)}.hotel-card-body{padding:20px 24px 24px}.hotel-name-jp{font-size:1.2rem;font-weight:700;line-height:1.4;margin-bottom:4px;color:var(--text-primary)}.hotel-name-link{color:var(--text-primary);text-decoration:none;transition:var(--transition)}.hotel-name-link:hover{color:var(--accent-1)}.hotel-name-en{font-family:var(--font-en);font-size:.82rem;font-weight:400;color:var(--text-muted);margin-bottom:16px;line-height:1.3}.hotel-meta{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:18px}.meta-item{display:flex;flex-direction:column;gap:2px}.meta-label{font-size:.68rem;font-weight:500;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;font-family:var(--font-en)}.meta-value{font-family:var(--font-en);font-size:1.05rem;font-weight:600;color:var(--text-primary)}.meta-value.year-highlight{background:var(--gradient-1);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;font-size:1.4rem;font-weight:700}.meta-value.unknown{color:var(--text-muted);font-size:.85rem;font-weight:400}.hotel-address{font-size:.78rem;color:var(--text-secondary);line-height:1.5;margin-bottom:18px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.hotel-card-footer{padding:0 24px 24px}.hotel-link{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-en);font-size:.82rem;font-weight:500;color:var(--accent-1);text-decoration:none;padding:10px 20px;border-radius:100px;border:1px solid rgba(108,99,255,.3);transition:var(--transition);background:transparent}.hotel-link:hover{background:#6c63ff1a;border-color:var(--accent-1);transform:translate(4px)}.hotel-link svg{transition:var(--transition)}.hotel-link:hover svg{transform:translate(3px)}.footer{background:var(--bg-secondary);border-top:1px solid var(--border-color);padding:40px 0}.footer-content{text-align:center}.footer-brand{font-family:var(--font-en);font-size:1.2rem;font-weight:600;margin-bottom:8px;background:var(--gradient-1);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.footer-note{font-size:.8rem;color:var(--text-muted)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes cardFadeIn{to{opacity:1;transform:translateY(0)}}@keyframes scrollPulse{0%,to{opacity:.3}50%{opacity:1}}.no-results{text-align:center;padding:80px 20px;grid-column:1 / -1}.no-results-icon{font-size:3rem;margin-bottom:16px}.no-results-text{font-size:1.1rem;color:var(--text-muted)}@media(max-width:860px){.hotel-grid{grid-template-columns:1fr}.hero-stats{gap:24px}.stat-value{font-size:2rem}.filter-bar{flex-direction:column;align-items:flex-start}}@media(max-width:480px){.hero-title{font-size:2.5rem}.hero-subtitle{font-size:1rem}.hotel-card-body{padding:16px 18px 18px}.hotel-card-header{padding:18px 18px 0}.hotel-card-footer{padding:0 18px 18px}.hotel-meta{grid-template-columns:1fr 1fr}}
