@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=Noto+Sans+JP:wght@400;500;600;700;800&display=swap");:root{--color-primary:#00B894;--color-primary-light:#55EFC4;--color-primary-dark:#00896B;--color-primary-bg:rgba(0,184,148,0.08);--color-secondary:#FF6B6B;--color-secondary-light:#FF8E8E;--color-secondary-dark:#E85555;--color-secondary-bg:rgba(255,107,107,0.08);--color-accent:#FDCB6E;--color-accent-dark:#E17055;--color-bg:#F4FBF9;--color-bg-card:#FFFFFF;--color-bg-overlay:rgba(255,249,240,0.95);--color-text:#2D3436;--color-text-secondary:#636E72;--color-text-light:#B2BEC3;--color-text-inverse:#FFFFFF;--color-border:#F0E6D8;--color-border-light:#F5EDE3;--color-success:#00B894;--color-warning:#FDCB6E;--color-danger:#E17055;--color-info:#74B9FF;--fatigue-1:#E17055;--fatigue-2:#FDCB6E;--fatigue-3:#FFE66D;--fatigue-4:#55EFC4;--fatigue-5:#00B894;--font-primary:"Noto Sans JP","Inter",-apple-system,BlinkMacSystemFont,sans-serif;--font-accent:"Inter","Noto Sans JP",sans-serif;--text-xs:0.75rem;--text-sm:0.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:1.875rem;--text-4xl:2.25rem;--font-normal:400;--font-medium:500;--font-semibold:600;--font-bold:700;--font-extrabold:800;--leading-tight:1.25;--leading-normal:1.6;--leading-relaxed:1.75;--space-xs:0.25rem;--space-sm:0.5rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2rem;--space-2xl:3rem;--space-3xl:4rem;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:24px;--radius-full:9999px;--shadow-sm:0 1px 3px rgba(45,52,54,0.06);--shadow-md:0 4px 12px rgba(45,52,54,0.08);--shadow-lg:0 8px 30px rgba(45,52,54,0.12);--shadow-xl:0 16px 50px rgba(45,52,54,0.15);--shadow-glow:0 0 20px rgba(255,107,107,0.3);--transition-fast:150ms ease;--transition-base:250ms ease;--transition-slow:400ms cubic-bezier(0.4,0,0.2,1);--transition-bounce:500ms cubic-bezier(0.34,1.56,0.64,1);--max-width:1200px;--header-height:64px}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{font-family:var(--font-primary);background-color:var(--color-bg);color:var(--color-text);line-height:var(--leading-normal);min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img{max-width:100%;height:auto;display:block}a{color:var(--color-primary);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-primary-dark)}button{cursor:pointer;border:none;background:none;font-family:inherit;font-size:inherit}.container{max-width:var(--max-width);margin:0 auto;padding:0 var(--space-md)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes shimmer{0%{background-position:-200px 0}to{background-position:calc(200px + 100%) 0}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes bounceIn{0%{transform:scale(.8);opacity:0}60%{transform:scale(1.05);opacity:1}to{transform:scale(1)}}.header{position:sticky;top:0;z-index:100;background:var(--color-bg-overlay);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--color-border-light);height:var(--header-height)}.header__inner{max-width:var(--max-width);margin:0 auto;padding:0 var(--space-md);justify-content:space-between;height:100%}.header__inner,.header__logo{display:flex;align-items:center}.header__logo{gap:var(--space-sm);font-size:var(--text-xl);font-weight:var(--font-extrabold);color:var(--color-text);text-decoration:none;flex-shrink:0}.header__logo-icon{font-size:var(--text-2xl);animation:float 3s ease-in-out infinite}.header__logo-text{background:linear-gradient(135deg,var(--color-primary),var(--color-secondary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.header__nav{display:flex;gap:var(--space-xs);overflow-x:auto;white-space:nowrap;-webkit-overflow-scrolling:touch;scrollbar-width:none}.header__nav::-webkit-scrollbar{display:none}.header__nav-btn{display:flex;align-items:center;flex-shrink:0;gap:var(--space-xs);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text-secondary);transition:all var(--transition-base)}.header__nav-btn:hover{background:var(--color-primary-bg);color:var(--color-primary)}.header__nav-btn--active{background:var(--color-primary);color:var(--color-text-inverse)}.header__nav-btn--active:hover{background:var(--color-primary-dark);color:var(--color-text-inverse)}.hero{padding:var(--space-2xl) var(--space-md) var(--space-xl);text-align:center;position:relative;overflow:hidden}.hero:before{content:"";position:absolute;top:-50%;left:-20%;width:140%;height:200%;background:radial-gradient(ellipse at 30% 50%,rgba(255,107,107,.06) 0,transparent 60%),radial-gradient(ellipse at 70% 50%,rgba(78,205,196,.06) 0,transparent 60%);pointer-events:none}.hero__title{font-size:var(--text-3xl);font-weight:var(--font-extrabold);line-height:var(--leading-tight);margin-bottom:var(--space-sm);animation:fadeInUp .6s ease}.hero__title-emoji{display:inline-block;animation:float 2.5s ease-in-out infinite;font-size:var(--text-4xl)}.hero__subtitle{font-size:var(--text-base);color:var(--color-text-secondary);max-width:480px;margin:0 auto;animation:fadeInUp .6s ease .1s both}.hero__area-badge{display:inline-flex;align-items:center;gap:var(--space-xs);margin-top:var(--space-md);padding:var(--space-xs) var(--space-md);background:var(--color-secondary-bg);border:1px solid rgba(78,205,196,.2);border-radius:var(--radius-full);font-size:var(--text-sm);color:var(--color-secondary-dark);font-weight:var(--font-medium);animation:fadeInUp .6s ease .2s both}.filter-section{padding:0 var(--space-md) var(--space-lg);animation:fadeInUp .6s ease .3s both}.filter-bar{max-width:var(--max-width);margin:0 auto;padding:var(--space-lg);background:var(--color-bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);border:1px solid var(--color-border-light)}.filter-bar__label{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text-secondary);margin-bottom:var(--space-sm);display:flex;align-items:center;gap:var(--space-xs)}.filter-bar__chips{display:flex;flex-wrap:wrap;gap:var(--space-sm)}.filter-chip{display:inline-flex;align-items:center;gap:var(--space-xs);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:var(--font-medium);background:var(--color-bg);border:1.5px solid var(--color-border);color:var(--color-text-secondary);transition:all var(--transition-base);-webkit-user-select:none;user-select:none;white-space:nowrap}.filter-chip:hover{border-color:var(--color-primary-light);background:var(--color-primary-bg);color:var(--color-primary);transform:translateY(-1px)}.filter-chip--active{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-text-inverse);box-shadow:0 2px 8px rgba(255,107,107,.3)}.filter-chip--active:hover{background:var(--color-primary-dark);border-color:var(--color-primary-dark);color:var(--color-text-inverse)}.filter-bar__age-section{margin-top:var(--space-md);padding-top:var(--space-md);border-top:1px solid var(--color-border-light)}.filter-bar__age-chips{display:flex;flex-wrap:wrap;gap:var(--space-sm)}.filter-bar__result-count{margin-top:var(--space-md);padding-top:var(--space-md);border-top:1px solid var(--color-border-light);text-align:center;font-size:var(--text-sm);color:var(--color-text-secondary)}.filter-bar__result-count strong{color:var(--color-primary);font-weight:var(--font-bold);font-size:var(--text-lg)}.view-toggle{max-width:var(--max-width);margin:0 auto;padding:var(--space-md);display:flex;justify-content:space-between;align-items:center}.view-toggle__tabs{display:flex;background:var(--color-bg-card);border-radius:var(--radius-full);padding:3px;box-shadow:var(--shadow-sm);border:1px solid var(--color-border-light)}.view-toggle__tab{padding:var(--space-sm) var(--space-md);border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text-secondary);transition:all var(--transition-base);display:flex;align-items:center;gap:var(--space-xs)}.view-toggle__tab--active{background:var(--color-primary);color:var(--color-text-inverse);box-shadow:var(--shadow-sm)}.view-toggle__sort{font-size:var(--text-sm);color:var(--color-text-secondary)}.spots-grid{max-width:var(--max-width);margin:0 auto;padding:0 var(--space-md) var(--space-2xl);display:grid;grid-template-columns:1fr;gap:var(--space-md)}@media (min-width:640px){.spots-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width:960px){.spots-grid{grid-template-columns:repeat(3,1fr)}}.spot-card{background:var(--color-bg-card);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm);border:1px solid var(--color-border-light);transition:all var(--transition-slow);animation:fadeInUp .5s ease both;text-decoration:none;color:inherit;display:block}.spot-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:var(--color-primary-light)}.spot-card__image-wrapper{position:relative;aspect-ratio:16/10;overflow:hidden;background:linear-gradient(135deg,var(--color-primary-bg),var(--color-secondary-bg))}.spot-card__image{width:100%;height:100%;object-fit:cover;transition:transform var(--transition-slow)}.spot-card:hover .spot-card__image{transform:scale(1.05)}.spot-card__image-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:3rem;background:linear-gradient(135deg,rgba(255,107,107,.1),rgba(78,205,196,.1))}.spot-card__rain-badge{position:absolute;top:var(--space-sm);left:var(--space-sm);padding:2px var(--space-sm);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--font-bold);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.spot-card__rain-badge--ok{background:rgba(0,184,148,.85);color:white}.spot-card__rain-badge--partial{background:rgba(253,203,110,.9);color:#2D3436}.spot-card__rain-badge--no{background:rgba(225,112,85,.85);color:white}.spot-card__area-badge{position:absolute;bottom:var(--space-sm);right:var(--space-sm);padding:2px var(--space-sm);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--font-semibold);background:rgba(255,255,255,.9);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:var(--color-text-secondary)}.spot-card__body{padding:var(--space-md)}.spot-card__name{font-size:var(--text-lg);font-weight:var(--font-bold);margin-bottom:var(--space-xs);line-height:var(--leading-tight)}.spot-card__tags{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:var(--space-sm)}.spot-card__tag{padding:2px var(--space-sm);border-radius:var(--radius-full);font-size:.7rem;font-weight:var(--font-medium);background:var(--color-bg);color:var(--color-text-secondary);border:1px solid var(--color-border)}.spot-card__meta{display:flex;align-items:center;gap:var(--space-md);margin-bottom:var(--space-sm);flex-wrap:wrap}.spot-card__meta-item{display:flex;align-items:center;gap:3px;font-size:var(--text-xs);color:var(--color-text-secondary)}.spot-card__summary{font-size:var(--text-sm);color:var(--color-text-secondary);line-height:var(--leading-relaxed);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.fatigue-gauge{display:flex;align-items:center;gap:var(--space-xs)}.fatigue-gauge__label{font-size:var(--text-xs);color:var(--color-text-secondary);white-space:nowrap;font-weight:var(--font-medium)}.fatigue-gauge__bar{display:flex;gap:3px;align-items:center}.fatigue-gauge__segment{width:16px;height:8px;border-radius:4px;background:var(--color-border);transition:all var(--transition-base)}.fatigue-gauge__segment--filled{box-shadow:0 0 4px rgba(0,0,0,.1)}.fatigue-gauge__text{font-size:var(--text-xs);font-weight:var(--font-bold);margin-left:2px}.spot-detail{max-width:800px;margin:0 auto;padding:var(--space-md)}.spot-detail__back{display:inline-flex;align-items:center;gap:var(--space-xs);padding:var(--space-sm) var(--space-md);margin-bottom:var(--space-lg);border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text-secondary);background:var(--color-bg-card);border:1px solid var(--color-border);transition:all var(--transition-base);text-decoration:none}.spot-detail__back:hover{background:var(--color-primary-bg);border-color:var(--color-primary-light);color:var(--color-primary)}.spot-detail__hero-image{width:100%;aspect-ratio:16/9;border-radius:var(--radius-lg);overflow:hidden;margin-bottom:var(--space-lg);background:linear-gradient(135deg,var(--color-primary-bg),var(--color-secondary-bg))}.spot-detail__hero-image img{width:100%;height:100%;object-fit:cover}.spot-detail__hero-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:5rem}.spot-detail__header{margin-bottom:var(--space-xl)}.spot-detail__area{display:inline-flex;align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-md);border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:var(--font-semibold);background:var(--color-secondary-bg);color:var(--color-secondary-dark);margin-bottom:var(--space-sm)}.spot-detail__title{font-size:var(--text-3xl);font-weight:var(--font-extrabold);line-height:var(--leading-tight);margin-bottom:var(--space-sm)}.spot-detail__badges{display:flex;flex-wrap:wrap;gap:var(--space-sm);margin-bottom:var(--space-md)}.detail-badge{display:inline-flex;align-items:center;gap:4px;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:var(--font-semibold)}.detail-badge--positive{background:rgba(0,184,148,.1);color:var(--color-success)}.detail-badge--negative{background:rgba(225,112,85,.1);color:var(--color-danger)}.detail-badge--neutral{background:var(--color-bg);color:var(--color-text-secondary)}.detail-section{margin-bottom:var(--space-xl)}.detail-section__title{font-size:var(--text-lg);font-weight:var(--font-bold);margin-bottom:var(--space-md);display:flex;align-items:center;gap:var(--space-sm)}.detail-section__card{background:var(--color-bg-card);border-radius:var(--radius-md);padding:var(--space-lg);box-shadow:var(--shadow-sm);border:1px solid var(--color-border-light)}.ai-summary{font-size:var(--text-base);line-height:var(--leading-relaxed);color:var(--color-text)}.ai-tips-list{list-style:none;flex-direction:column}.ai-tips-list,.ai-tips-list li{display:flex;gap:var(--space-sm)}.ai-tips-list li{align-items:flex-start;padding:var(--space-sm) var(--space-md);background:var(--color-accent);background:rgba(255,230,109,.15);border-radius:var(--radius-sm);font-size:var(--text-sm);line-height:var(--leading-normal)}.ai-tips-list li:before{content:"💡";flex-shrink:0}.info-grid{display:grid;grid-template-columns:1fr;gap:var(--space-sm)}@media (min-width:480px){.info-grid{grid-template-columns:repeat(2,1fr)}}.info-item{display:flex;flex-direction:column;gap:2px;padding:var(--space-sm) var(--space-md);background:var(--color-bg);border-radius:var(--radius-sm)}.info-item__label{font-size:var(--text-xs);color:var(--color-text-light);font-weight:var(--font-semibold)}.info-item__value{font-size:var(--text-sm);color:var(--color-text);font-weight:var(--font-medium)}.map-container{border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--color-border-light)}.map-wrapper{height:300px;width:100%}.map-wrapper--full{height:500px}.map-page-container{max-width:var(--max-width);margin:0 auto;padding:var(--space-md)}.footer{background:var(--color-text);color:var(--color-text-light);padding:var(--space-2xl) var(--space-md);margin-top:var(--space-3xl)}.footer__inner{max-width:var(--max-width);margin:0 auto;text-align:center}.footer__logo{font-size:var(--text-xl);font-weight:var(--font-extrabold);color:var(--color-text-inverse);margin-bottom:var(--space-sm)}.footer__description{font-size:var(--text-sm);margin-bottom:var(--space-lg);max-width:400px;margin-left:auto;margin-right:auto;line-height:var(--leading-relaxed)}.footer__disclaimer{font-size:var(--text-xs);color:var(--color-text-light);opacity:.6;margin-top:var(--space-lg);padding-top:var(--space-lg);border-top:1px solid rgba(255,255,255,.1)}.empty-state{text-align:center;padding:var(--space-3xl) var(--space-md);grid-column:1/-1}.empty-state__emoji{font-size:4rem;margin-bottom:var(--space-md);animation:float 3s ease-in-out infinite}.empty-state__title{font-size:var(--text-xl);font-weight:var(--font-bold);margin-bottom:var(--space-sm)}.empty-state__text{font-size:var(--text-sm);color:var(--color-text-secondary)}@media (min-width:768px){.hero__title{font-size:var(--text-4xl)}.hero__subtitle{font-size:var(--text-lg)}.spot-detail__title{font-size:var(--text-4xl)}}.leaflet-popup-content-wrapper{border-radius:var(--radius-md)!important;box-shadow:var(--shadow-lg)!important;padding:0!important}.leaflet-popup-content{margin:0!important;min-width:200px}.map-popup{padding:var(--space-md)}.map-popup__name{font-family:var(--font-primary);font-size:var(--text-sm);font-weight:var(--font-bold);margin-bottom:4px}.map-popup__area{color:var(--color-text-secondary);margin-bottom:var(--space-sm)}.map-popup__area,.map-popup__link{font-family:var(--font-primary);font-size:var(--text-xs)}.map-popup__link{display:inline-flex;align-items:center;gap:4px;font-weight:var(--font-semibold);color:var(--color-primary)}.affiliate-box{background:linear-gradient(135deg,#FFF5F5,#FFE3E3);border:2px dashed var(--color-primary);border-radius:var(--radius-lg);padding:1.5rem;margin:2rem 0;text-align:center}.affiliate-box__title{color:var(--color-primary);font-weight:800;margin-bottom:1rem;font-size:1.1rem}.affiliate-btn{display:inline-flex;justify-content:center;background:var(--color-primary);padding:1rem 2rem;border-radius:50px;font-weight:700;font-size:1.1rem;box-shadow:0 4px 15px rgba(255,107,107,.4);animation:pulse-soft 2s infinite}.affiliate-btn:hover{box-shadow:0 6px 20px rgba(255,107,107,.6)}@keyframes pulse-soft{0%{transform:scale(1)}50%{transform:scale(1.03)}to{transform:scale(1)}}.ad-placeholder{background:#f1f3f5;color:#adb5bd;border-radius:var(--radius-md);padding:2rem;text-align:center;margin:2rem 0;font-size:.9rem;border:1px solid #e9ecef}.like-section{display:flex;justify-content:center;margin:3rem 0}.like-btn{display:inline-flex;align-items:center;gap:.8rem;background:white;border:2px solid var(--color-primary);color:var(--color-primary);padding:1rem 2rem;border-radius:50px;font-size:1.2rem;font-weight:700;cursor:pointer;transition:all .3s cubic-bezier(.175,.885,.32,1.275);box-shadow:0 4px 10px rgba(0,0,0,.05)}.like-btn:hover:not(:disabled){transform:translateY(-3px) scale(1.05);box-shadow:0 6px 15px rgba(255,107,107,.3);background:var(--color-primary-light)}.like-btn:active:not(:disabled){transform:translateY(0) scale(.95)}.like-btn--liked{background:var(--color-primary);color:white;border-color:var(--color-primary);cursor:default;animation:pop-in .5s cubic-bezier(.175,.885,.32,1.275)}.like-count{background:rgba(255,255,255,.2);padding:.2rem .8rem;border-radius:20px;font-size:1.1rem}.like-btn:not(.like-btn--liked) .like-count{background:var(--color-primary-light)}@keyframes pop-in{0%{transform:scale(.8)}50%{transform:scale(1.1)}to{transform:scale(1)}}.favorite-btn{background:white;border:1px solid #dee2e6;border-radius:50px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:all .2s ease;color:#adb5bd;font-size:1.2rem;z-index:10}.favorite-btn:hover{transform:scale(1.1)}.favorite-btn--active{border-color:#ffc107;color:#ffc107;box-shadow:0 4px 10px rgba(255,193,7,.2)}.favorite-btn--card{position:absolute;top:10px;right:10px;width:40px;height:40px;box-shadow:0 4px 10px rgba(0,0,0,.1)}.favorite-btn--detail{padding:.5rem 1rem;gap:.5rem;font-weight:700;font-size:1rem}.favorite-btn__text{font-size:.9rem;color:var(--color-text)}.favorite-btn--active .favorite-btn__text{color:#ffc107}.ai-search-bar{background:white;border-radius:var(--radius-lg);padding:1rem;margin:-1.5rem 1rem 2rem;position:relative;box-shadow:0 10px 25px rgba(0,0,0,.08);border:2px solid var(--color-primary-light);display:flex;flex-direction:column;gap:.8rem;z-index:10}.ai-search-bar__header{display:flex;align-items:center;gap:.5rem;font-weight:800;color:var(--color-primary);font-size:1rem}.ai-search-bar__form{display:flex;gap:.5rem}.ai-search-bar__input{flex:1 1;border:1px solid #dee2e6;border-radius:50px;padding:.8rem 1.2rem;font-size:.95rem;outline:none;transition:border-color .2s}.ai-search-bar__input:focus{border-color:var(--color-primary)}.ai-search-bar__btn{background:var(--color-primary);color:white;border:none;border-radius:50px;padding:0 1.5rem;font-weight:700;cursor:pointer;white-space:nowrap;transition:transform .2s}.ai-search-bar__btn:hover:not(:disabled){transform:scale(1.05)}.ai-search-bar__btn:disabled{opacity:.7;cursor:not-allowed}.ai-results{max-width:800px;margin:0 auto 2rem;padding:0 1rem}.ai-message{background:#f8f9fa;border-left:4px solid var(--color-primary);padding:1.5rem;border-radius:0 var(--radius-md) var(--radius-md) 0;margin-bottom:2rem;font-size:1rem;line-height:1.6;color:#343a40}.ai-loading{display:flex;align-items:center;gap:.5rem;color:var(--color-primary);font-weight:700;padding:1rem}.spinner{width:20px;height:20px;border:3px solid var(--color-primary-light);border-top-color:var(--color-primary);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.share-buttons{display:flex;flex-direction:column;gap:1rem;background:rgba(0,184,148,.05);border:1px dashed rgba(0,184,148,.3);padding:1.5rem;border-radius:var(--radius-md)}.share-buttons__label{font-weight:700;color:var(--color-text);font-size:1rem;text-align:center}.share-buttons__actions{display:flex;gap:1rem;justify-content:center}.share-btn{display:inline-flex;align-items:center;justify-content:center;padding:.8rem 1.5rem;border-radius:50px;font-weight:700;font-size:.95rem;cursor:pointer;border:none;transition:transform .2s,box-shadow .2s;color:white}.share-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,.15)}.share-btn:active{transform:translateY(0)}.share-btn--native{background:#06c755}.share-btn--twitter{background:#0f1419}.static-page{background:var(--color-bg);min-height:calc(100vh - 200px);padding:3rem 1rem}.static-page__container{max-width:800px;margin:0 auto;background:white;padding:2.5rem;border-radius:var(--radius-lg);box-shadow:0 4px 12px rgba(0,0,0,.05)}.static-page__title{font-size:1.8rem;color:var(--color-text);margin-bottom:2rem;border-bottom:2px solid var(--color-primary-light);padding-bottom:.5rem}.static-page__section{margin-bottom:2.5rem}.static-page__section h2{font-size:1.2rem;color:var(--color-primary);margin-bottom:1rem}.static-page__section p{line-height:1.8;color:var(--color-text-secondary);margin-bottom:1rem}.static-page__section a{color:var(--color-primary);text-decoration:underline}.footer__links{margin-bottom:1rem;display:flex;justify-content:center;gap:1rem;flex-wrap:wrap}.footer__link{color:var(--color-text-secondary);text-decoration:none;font-size:.9rem}.footer__link:hover{color:var(--color-primary);text-decoration:underline}.footer__divider{color:#dee2e6}.pwa-prompt{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);width:90%;max-width:400px;background:white;border-radius:var(--radius-lg);box-shadow:0 10px 30px rgba(0,0,0,.2);padding:1rem;display:flex;align-items:flex-start;gap:1rem;z-index:1000;border:2px solid var(--color-primary-light);animation:slideUp .5s ease-out}.pwa-prompt__icon{font-size:2rem}.pwa-prompt__text{flex:1 1}.pwa-prompt__text strong{display:block;color:var(--color-primary);margin-bottom:.2rem;font-size:1rem}.pwa-prompt__text p{font-size:.85rem;color:var(--color-text);margin:0 0 .4rem}.pwa-prompt__text small{font-size:.7rem;color:var(--color-text-secondary);display:block}.pwa-prompt__close{background:none;border:none;font-size:1.2rem;color:var(--color-text-secondary);cursor:pointer;padding:0;line-height:1}.affiliate-btn{display:flex;align-items:center;background:linear-gradient(135deg,#FF6B6B,#ff8e8e);color:white;text-decoration:none;padding:1rem;border-radius:var(--radius-md);box-shadow:0 4px 15px rgba(255,107,107,.3);transition:transform .2s,box-shadow .2s;margin-bottom:1rem}.affiliate-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(255,107,107,.4)}.affiliate-btn__icon{font-size:2rem;margin-right:1rem}.affiliate-btn__text{flex:1 1;font-size:.9rem;line-height:1.4}.affiliate-btn__text strong{font-size:1.1rem;display:inline-block;margin-bottom:.2rem}.affiliate-btn__arrow{font-size:1.5rem;font-weight:700}.share-modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;animation:fadeIn .3s ease}.share-modal{background:white;border-radius:20px;padding:2rem 1.5rem;max-width:380px;width:100%;text-align:center;position:relative;animation:slideUp .4s ease;box-shadow:0 20px 60px rgba(0,0,0,.2)}.share-modal__close{position:absolute;top:.8rem;right:1rem;background:none;border:none;font-size:1.2rem;color:var(--color-text-light);cursor:pointer;padding:.3rem}.share-modal__emoji{font-size:3rem;margin-bottom:.5rem;animation:bounce .6s ease}.share-modal__title{font-size:1.3rem;font-weight:var(--font-bold);color:var(--color-text);margin:0 0 .3rem}.share-modal__subtitle{font-size:.9rem;color:var(--color-text-secondary);margin:0 0 1.5rem;line-height:1.5}.share-modal__buttons{display:flex;flex-direction:column;gap:.6rem}.share-modal__btn{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.85rem 1rem;border:none;border-radius:12px;font-size:.95rem;font-weight:var(--font-semibold);cursor:pointer;transition:transform .15s,box-shadow .15s}.share-modal__btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(0,0,0,.1)}.share-modal__btn:active{transform:scale(.98)}.share-modal__btn--x{background:#000;color:white}.share-modal__btn--line{background:#06C755;color:white}.share-modal__btn--copy{background:#f1f3f5;color:var(--color-text)}.share-modal__btn-icon{font-size:1.1rem}.share-modal__skip{margin-top:1rem;background:none;border:none;color:var(--color-text-light);font-size:.85rem;cursor:pointer;text-decoration:underline}.invite-banner{position:fixed;bottom:0;left:0;right:0;z-index:90;background:linear-gradient(135deg,var(--color-primary),var(--color-primary-dark));color:white;padding:.8rem 1rem;box-shadow:0 -4px 20px rgba(0,0,0,.15);animation:slideUpBanner .5s ease forwards}.invite-banner__close{position:absolute;top:.5rem;right:.8rem;background:rgba(255,255,255,.2);border:none;color:white;cursor:pointer;font-size:.85rem;width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center}.invite-banner__content{max-width:var(--max-width);margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.invite-banner__text{display:flex;align-items:center;gap:.5rem;font-size:.85rem;flex:1 1;min-width:200px}.invite-banner__emoji{font-size:1.4rem;flex-shrink:0}.invite-banner__actions{display:flex;gap:.5rem;flex-shrink:0}.invite-banner__btn{padding:.45rem .9rem;border:none;border-radius:50px;font-size:.8rem;font-weight:var(--font-bold);cursor:pointer;transition:transform .15s;white-space:nowrap}.invite-banner__btn:hover{transform:scale(1.05)}.invite-banner__btn--x{background:rgba(255,255,255,.95);color:#000}.invite-banner__btn--line{background:#06C755;color:white}.stamp-share-section{background:linear-gradient(135deg,var(--color-bg-overlay),#fff3cd);border:2px solid var(--color-success);border-radius:16px;padding:1.2rem;text-align:center;margin-bottom:1rem}.stamp-share-section__label{font-size:.95rem;font-weight:var(--font-bold);color:var(--color-success);margin:0 0 .8rem}.stamp-share-section__buttons{display:flex;gap:.5rem;justify-content:center;flex-wrap:wrap}.stamp-share-btn{padding:.55rem 1rem;border:none;border-radius:50px;font-size:.85rem;font-weight:var(--font-bold);cursor:pointer;transition:transform .15s,box-shadow .15s}.stamp-share-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(0,0,0,.1)}.stamp-share-btn--x{background:#000;color:white}.stamp-share-btn--line{background:#06C755;color:white}.stamp-share-btn--copy{background:white;color:var(--color-text);border:1px solid var(--color-border)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(30px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes slideUpBanner{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes bounce{0%,to{transform:scale(1)}50%{transform:scale(1.2)}}.spot-card--sponsored{border:2px solid #ffd700;background:linear-gradient(180deg,#fffdf0,#ffffff);box-shadow:0 4px 15px rgba(255,215,0,.3);overflow:visible}.spot-card__sponsor-badge{position:absolute;top:-12px;left:50%;transform:translateX(-50%);background:linear-gradient(135deg,#ffd700,#ffaa00);color:white;padding:4px 16px;border-radius:20px;font-size:.85rem;font-weight:700;z-index:10;box-shadow:0 2px 8px rgba(255,170,0,.4);white-space:nowrap}.review-list__empty{text-align:center;padding:2.5rem 1rem;background:rgba(0,184,148,.05);border:1px dashed rgba(0,184,148,.3);border-radius:var(--radius-lg);color:var(--color-text);font-size:var(--text-base);font-weight:var(--font-medium);line-height:1.6}.review-list{display:flex;flex-direction:column;gap:1rem}.review-item{background:var(--color-bg-card);padding:1.25rem;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--color-border-light)}.review-item__header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.5rem}.review-item__author{font-weight:var(--font-bold);color:var(--color-text);font-size:var(--text-base)}.review-item__date{font-size:var(--text-xs);color:var(--color-text-light)}.review-item__content{font-size:var(--text-sm);color:var(--color-text-secondary);line-height:1.6;white-space:pre-wrap}.review-form{margin-top:2rem;background:var(--color-bg-card);padding:1.5rem;border-radius:var(--radius-lg);border:1px solid var(--color-border-light);box-shadow:var(--shadow-sm)}.review-form--success{text-align:center;padding:2rem;background:var(--color-primary-bg);border:1px solid var(--color-primary-light);color:var(--color-primary-dark);font-weight:var(--font-medium)}.review-form__title{font-size:var(--text-lg);font-weight:var(--font-bold);margin-bottom:1.5rem;color:var(--color-text)}.review-form__error{color:var(--color-danger);font-size:var(--text-sm);margin-bottom:1rem;padding:.5rem;background:rgba(225,112,85,.1);border-radius:var(--radius-sm)}.review-form__group{margin-bottom:1.25rem}.review-form__group label{display:block;font-size:var(--text-sm);font-weight:var(--font-bold);margin-bottom:.5rem;color:var(--color-text-secondary)}.review-form__group input,.review-form__group textarea{width:100%;padding:.75rem;border:1px solid var(--color-border);border-radius:var(--radius-md);font-family:inherit;font-size:var(--text-base);transition:border-color var(--transition-fast)}.review-form__group input:focus,.review-form__group textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-bg)}.review-form__submit-btn{width:100%;padding:1rem;background:var(--color-primary);color:var(--color-text-inverse);border-radius:var(--radius-full);font-weight:var(--font-bold);font-size:var(--text-base);transition:all var(--transition-base)}.review-form__submit-btn:hover:not(:disabled){background:var(--color-primary-dark);transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,184,148,.3)}.review-form__submit-btn:disabled{background:var(--color-text-light);cursor:not-allowed;transform:none;box-shadow:none}.contextual-affiliate{background:var(--color-bg-card);padding:1.5rem;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--color-border-light)}.contextual-affiliate__title{font-size:var(--text-lg);font-weight:var(--font-bold);margin-bottom:1.25rem;color:var(--color-text);display:flex;align-items:center;gap:.5rem}.contextual-affiliate__grid{display:grid;grid-template-columns:1fr;gap:1rem}@media (min-width:640px){.contextual-affiliate__grid{grid-template-columns:1fr 1fr}}.contextual-affiliate__card{display:flex;align-items:flex-start;gap:1rem;padding:1rem;background:var(--color-bg);border-radius:var(--radius-md);border:1px solid var(--color-border)}.contextual-affiliate__emoji{font-size:2rem;line-height:1;flex-shrink:0;background:var(--color-bg-card);width:3.5rem;height:3.5rem;display:flex;align-items:center;justify-content:center;border-radius:50%;box-shadow:var(--shadow-sm)}.contextual-affiliate__content{flex:1 1}.contextual-affiliate__name{font-weight:var(--font-bold);font-size:var(--text-sm);margin-bottom:.25rem;color:var(--color-text)}.contextual-affiliate__copy{font-size:.75rem;color:var(--color-text-secondary);line-height:1.4;margin-bottom:.5rem}.contextual-affiliate__links{display:flex;gap:1rem;margin-top:.5rem;flex-wrap:wrap}.contextual-affiliate__link{font-size:.8rem;font-weight:var(--font-bold);text-decoration:none;padding:.4rem .8rem;border-radius:var(--radius-sm);transition:all var(--transition-fast)}.contextual-affiliate__link--amazon{color:#c77a00;background:rgba(255,153,0,.1)}.contextual-affiliate__link--amazon:hover{background:rgba(255,153,0,.2)}.contextual-affiliate__link--rakuten{color:#bf0000;background:rgba(191,0,0,.1)}.contextual-affiliate__link--rakuten:hover{background:rgba(191,0,0,.2)}.contextual-affiliate__disclaimer{margin-top:1rem;font-size:.7rem;color:var(--color-text-light);text-align:right}.stamp-section{background:linear-gradient(135deg,rgba(255,107,107,.05),rgba(253,203,110,.05));border:1px dashed var(--color-secondary-light);padding:1.5rem;border-radius:var(--radius-lg);text-align:center}.stamp-section__header{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-bottom:.5rem}.stamp-section__emoji{font-size:1.5rem}.stamp-section__title{font-size:1.1rem;font-weight:var(--font-bold);color:var(--color-secondary-dark)}.stamp-section__desc{font-size:.85rem;color:var(--color-text-secondary);margin-bottom:1.5rem;line-height:1.5}.stamp-btn{width:100%;max-width:300px;margin:0 auto;padding:1rem;border-radius:var(--radius-full);font-weight:var(--font-bold);font-size:1rem;background:var(--color-secondary);color:white;transition:all var(--transition-bounce);box-shadow:0 4px 15px rgba(255,107,107,.3)}.stamp-btn:hover:not(:disabled){transform:scale(1.05);background:var(--color-secondary-dark)}.stamp-btn:disabled{opacity:.7;cursor:wait}.stamp-btn--success{background:var(--color-success);box-shadow:none;cursor:default}.stamp-btn--success:hover{transform:none;background:var(--color-success)}.stamp-message{margin-top:1rem;font-size:.85rem;font-weight:var(--font-medium)}.stamp-message--success{color:var(--color-success)}.stamp-message--error{color:var(--color-danger)}.realtime-congestion{background:rgba(255,255,255,.8);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:1.5rem;border-radius:var(--radius-lg);border:1px solid rgba(0,184,148,.2);box-shadow:var(--shadow-sm)}.realtime-congestion__title{font-size:1.1rem;color:var(--color-text);margin-bottom:1rem;font-weight:var(--font-bold)}.realtime-congestion__status-display{margin-bottom:1.5rem}.current-status{background:var(--color-bg);padding:1rem;border-radius:var(--radius-md);display:flex;align-items:center;gap:.75rem}.current-status--none{border-left:4px solid var(--color-border);color:var(--color-text-secondary);font-size:.9rem}.current-status__emoji{font-size:1.8rem}.current-status__text{font-size:.95rem;line-height:1.4}.current-status__text strong{font-size:1.1rem;color:var(--color-text)}.current-status__count{display:block;font-size:.75rem;color:var(--color-text-light);margin-top:.2rem}.realtime-congestion__actions{background:var(--color-bg);padding:1rem;border-radius:var(--radius-md);text-align:center}.actions-label{font-size:.9rem;font-weight:var(--font-bold);margin-bottom:1rem;color:var(--color-text)}.actions-buttons{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}.checkin-btn{display:flex;flex-direction:column;align-items:center;gap:.25rem;padding:.75rem .25rem;border-radius:var(--radius-md);background:var(--btn-color);color:white;font-weight:var(--font-bold);font-size:.85rem;transition:transform .1s,opacity .2s;box-shadow:0 2px 4px rgba(0,0,0,.1)}.checkin-btn:hover:not(:disabled){transform:scale(1.05)}.checkin-btn:disabled{opacity:.5;cursor:not-allowed}.realtime-congestion__thanks{text-align:center;padding:1rem;background:var(--color-primary-bg);border-radius:var(--radius-md);color:var(--color-primary-dark);font-weight:var(--font-bold);font-size:.9rem;line-height:1.5}.route-form{background:var(--color-bg-card);padding:2rem;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--color-border-light)}.route-form__group{margin-bottom:1.5rem}.route-form__group label{display:block;font-weight:var(--font-bold);margin-bottom:.5rem;color:var(--color-text)}.route-form__group .required{background:var(--color-danger);color:white;font-size:.7rem;padding:.1rem .4rem;border-radius:var(--radius-sm);margin-left:.5rem;vertical-align:middle}.route-form__group input,.route-form__group textarea{width:100%;padding:.8rem;border:1px solid var(--color-border);border-radius:var(--radius-md);font-family:inherit;transition:all var(--transition-fast)}.route-form__group input:focus,.route-form__group textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-bg)}.route-form__spot-selector{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.8rem;max-height:400px;overflow-y:auto;padding:.5rem;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg)}.route-spot-option{background:var(--color-bg-card);border:2px solid transparent;padding:.8rem;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);display:flex;flex-direction:column;position:relative;box-shadow:var(--shadow-sm)}.route-spot-option:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.route-spot-option--selected{border-color:var(--color-primary);background:var(--color-primary-bg)}.route-spot-option__badge{position:absolute;top:-10px;right:-10px;background:var(--color-primary);color:white;width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.8rem;box-shadow:var(--shadow-sm)}.route-spot-option__name{font-weight:var(--font-bold);font-size:.9rem;margin-bottom:.2rem}.route-spot-option__area{font-size:.75rem;color:var(--color-text-secondary)}.route-form__submit-btn{width:100%;padding:1rem;background:var(--color-primary);color:white;border:none;border-radius:var(--radius-full);font-size:1.1rem;font-weight:var(--font-bold);cursor:pointer;transition:all var(--transition-base);box-shadow:0 4px 15px rgba(0,184,148,.3)}.route-form__submit-btn:hover:not(:disabled){transform:translateY(-2px);background:var(--color-primary-dark)}.route-form__submit-btn:disabled{background:var(--color-text-light);cursor:not-allowed;box-shadow:none}.route-detail{max-width:800px;margin:0 auto;padding:2rem 1rem}.route-detail__header{margin-bottom:3rem;text-align:center}.route-detail__meta{display:flex;justify-content:center;gap:1rem;margin-bottom:1rem;font-size:.9rem;color:var(--color-text-secondary)}.route-detail__area{background:var(--color-secondary-bg);color:var(--color-secondary-dark);padding:.2rem .8rem;border-radius:var(--radius-full);font-weight:var(--font-bold)}.route-detail__title{font-size:2rem;font-weight:var(--font-extrabold);margin-bottom:.5rem;color:var(--color-text)}.route-detail__author{font-size:1rem;color:var(--color-text-secondary);margin-bottom:1.5rem}.route-detail__desc-box{background:var(--color-bg-card);padding:1.5rem;border-radius:var(--radius-lg);border-left:4px solid var(--color-primary);box-shadow:var(--shadow-sm);text-align:left;line-height:1.6;color:var(--color-text-secondary)}.route-timeline{position:relative;padding-left:2rem}.route-timeline:before{content:"";position:absolute;top:0;bottom:0;left:31px;width:4px;background:var(--color-border);border-radius:2px}.route-timeline__item{position:relative;margin-bottom:2.5rem}.route-timeline__number{position:absolute;left:-2rem;top:0;width:32px;height:32px;background:var(--color-primary);color:white;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;z-index:1;box-shadow:0 0 0 4px var(--color-bg-card)}.route-timeline__content{padding-left:1.5rem}.route-timeline__card{display:flex;align-items:center;gap:1.5rem;background:var(--color-bg-card);padding:1rem;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--color-border-light);text-decoration:none;color:inherit;transition:all var(--transition-base)}.route-timeline__card:hover{transform:translateX(10px);border-color:var(--color-primary-light);box-shadow:var(--shadow-md)}.route-timeline__image{width:100px;height:100px;object-fit:cover;border-radius:var(--radius-md)}.route-timeline__name{font-size:1.2rem;font-weight:var(--font-bold);color:var(--color-text)}@media (max-width:600px){.route-timeline__card{flex-direction:column;align-items:flex-start}.route-timeline__image{width:100%;height:150px}}