:root{
  --fuji-fill:#a9d5f7;
  --fuji-snow:#e3f1ff;
  --fuji-w:min(460px, 92vw);
  --fuji-h:calc(var(--fuji-w) * 126 / 460);
  --fuji-bar:94px;
  --bottom-nav-safe-area:0px;
  --home-scroll-space:96px;
}

.ui-icon{display:block;width:24px;height:24px;object-fit:contain;pointer-events:none;user-select:none}
.seo-discovery{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

#homeScreen{position:fixed;inset:0;z-index:5000;background:#fff;display:flex;flex-direction:column;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch}
#homeScreen::after{content:"";display:block;flex:0 0 var(--home-scroll-space);background:#fff}
#homeScreen.hidden{display:none}
.home-search-screen{position:fixed;inset:0;z-index:5100;display:none;justify-content:center;background:#f5f7fb;color:#25283a;overflow:auto}
.home-search-screen.open{display:flex}
.home-menu-screen{position:fixed;inset:0;z-index:5100;display:none;justify-content:center;background:#f5f7fb;color:#25283a;overflow:auto}
.home-menu-screen.open{display:flex}
.home-menu-app{width:min(100%,680px);min-height:100%;background:#fff;padding:0 20px max(28px,env(safe-area-inset-bottom))}
.home-menu-header{display:flex;align-items:center;gap:13px;padding:max(18px,env(safe-area-inset-top)) 0 18px;border-bottom:1px solid #e8eaf1}
.home-menu-header h1{margin:0;font-size:21px;line-height:1.3}
.home-menu-header p{margin:3px 0 0;color:#858b9f;font-size:11px}
.home-menu-list{display:grid;gap:10px;padding:22px 0}
.home-menu-item{width:100%;min-height:76px;display:grid;grid-template-columns:46px minmax(0,1fr) 22px;align-items:center;gap:13px;border:1px solid #e7e9f0;border-radius:18px;padding:12px 14px;background:#fff;color:#25283a;text-align:left;cursor:pointer;box-shadow:0 5px 16px rgba(47,52,76,.045)}
.home-menu-item:hover,.home-menu-item:focus-visible{border-color:#aaa5ff;background:#fafaff;outline:none}
.home-menu-icon{width:44px;height:44px;display:grid;place-items:center;border-radius:14px;background:#eef1ff;color:#6c63ff;font-size:23px;font-weight:800}
.home-menu-icon .ui-icon{width:26px;height:26px}
.home-menu-item>span:nth-child(2){display:grid;gap:4px}
.home-menu-item b{font-size:14px}
.home-menu-item small{color:#8b91a3;font-size:10px}
.home-menu-chevron{color:#adb2c0;font-size:28px;text-align:right}
.home-menu-chevron .ui-icon{width:20px;height:20px;margin-left:auto;opacity:.55}
.home-menu-detail{display:none;padding:20px 0}
.home-menu-detail.open{display:block}
.home-menu-list.hidden{display:none}
.home-menu-detail-back{border:0;background:transparent;color:#666d82;font-weight:800;padding:8px 2px 18px;cursor:pointer}
.home-menu-detail-card{display:grid;justify-items:center;text-align:center;border:1px solid #e7e9f0;border-radius:22px;padding:32px 24px;background:#fff}
.home-menu-detail-icon{width:58px;height:58px;display:grid;place-items:center;border-radius:18px;background:#eef1ff;color:#6c63ff;font-size:29px}
.home-menu-detail-icon .ui-icon{width:32px;height:32px}
.home-menu-detail-card h2{margin:16px 0 8px;font-size:19px}
.home-menu-detail-card p{margin:0;color:#747b8f;font-size:13px;line-height:1.8;white-space:pre-line}
.account-auth-panel{width:min(100%,360px);display:grid;justify-items:center;gap:12px;margin-top:24px;padding-top:22px;border-top:1px solid #e7e9f0}
.account-auth-panel[hidden],.account-identity[hidden],.profile-form[hidden]{display:none}
.account-identity{display:grid;justify-items:center;gap:5px;margin-bottom:3px}
.account-avatar-wrap{width:72px;height:72px;display:grid;place-items:center;margin-bottom:7px;border-radius:50%;overflow:hidden;background:#eef1ff}
.account-avatar{width:100%;height:100%;object-fit:cover}
.account-avatar-fallback{color:#6c63ff;font-size:35px;font-weight:800}
.account-avatar-fallback .ui-icon{width:38px;height:38px}
.account-identity strong{max-width:100%;font-size:17px;overflow-wrap:anywhere}
.account-identity span{max-width:100%;color:#858b9f;font-size:12px;overflow-wrap:anywhere}
.account-auth-panel .account-auth-status{min-height:20px;color:#858b9f;font-size:12px}
.google-sign-in,.anonymous-sign-in,.account-sign-out,.account-delete{width:100%;min-height:48px;border-radius:14px;font-weight:800;cursor:pointer}
.google-sign-in{display:flex;align-items:center;justify-content:center;gap:11px;border:1px solid #dfe2ea;background:#fff;color:#303446;box-shadow:0 4px 12px rgba(47,52,76,.06)}
.google-sign-in:hover,.google-sign-in:focus-visible{border-color:#aaa5ff;background:#fafaff;outline:none}
.google-mark{width:25px;height:25px;display:grid;place-items:center;border-radius:50%;color:#4285f4;font-size:18px;font-weight:900}
.anonymous-sign-in{display:flex;align-items:center;justify-content:center;gap:10px;border:1px solid #ffd1aa;background:#fff8ef;color:#934a12;box-shadow:0 4px 12px rgba(151,79,22,.06)}
.anonymous-sign-in:hover,.anonymous-sign-in:focus-visible{border-color:#ff9d50;background:#fff3e5;outline:none}
.anonymous-sign-in img{width:32px;height:32px;object-fit:contain}
.google-sign-in[hidden],.anonymous-sign-in[hidden]{display:none}
.account-sign-out{border:0;background:#f1f2f7;color:#5f6577}
.account-delete{border:1px solid #f2c8ce;background:#fff;color:#bd4e61;margin-top:10px}
.profile-form{width:100%;display:grid;gap:12px;padding:18px 0 4px;border-top:1px solid #e7e9f0;text-align:left}
.profile-form-title{font-size:14px;text-align:left}
.profile-form label{display:grid;gap:6px;color:#4d5368;font-size:11px;font-weight:850}
.profile-form input,.profile-form textarea{width:100%;border:1px solid #dde0ea;border-radius:12px;background:#f9fafd;color:#25283a;padding:11px 12px;font:inherit;outline:none}
.profile-form textarea{min-height:92px;resize:vertical;line-height:1.6}
.profile-form input:focus,.profile-form textarea:focus{border-color:#8d86ff;box-shadow:0 0 0 3px rgba(108,99,255,.12)}
.profile-form small{color:#9298aa;font-size:10px;line-height:1.5}
.profile-file-field input{padding:8px;background:#fff}
.profile-file-field input::file-selector-button{border:0;border-radius:9px;background:#eef1ff;color:#5148e5;padding:8px 10px;font-weight:800;cursor:pointer}
.language-settings{display:grid;gap:8px;margin:14px 0 4px;text-align:left}
.language-settings[hidden]{display:none}
.language-settings label{font-size:13px;font-weight:900;color:#343044}
.language-settings small{font-size:12px;line-height:1.55;color:#777184}
.language-select{width:100%;border:1px solid #ddd9e7;border-radius:12px;background:#fff;color:#282333;padding:12px;font:inherit}
.policy-chooser{width:100%;display:grid;gap:10px;margin-top:22px;padding-top:20px;border-top:1px solid #e7e9f0}
.policy-chooser[hidden],.policy-viewer[hidden]{display:none}
.policy-choice{width:100%;min-height:72px;display:grid;grid-template-columns:40px minmax(0,1fr) 20px;align-items:center;gap:11px;border:1px solid #e1e4ed;border-radius:16px;background:#fff;color:#303446;padding:11px 13px;text-align:left;cursor:pointer}
.policy-choice:hover,.policy-choice:focus-visible{border-color:#aaa5ff;background:#fafaff;outline:none}
.policy-choice>span:first-child{width:38px;height:38px;display:grid;place-items:center;border-radius:12px;background:#eef1ff;color:#6c63ff;font-size:20px;font-weight:900}
.policy-choice>span:nth-child(2){display:grid;gap:4px}
.policy-choice strong{font-size:13px}
.policy-choice small{color:#858b9f;font-size:10px;line-height:1.5}
.policy-choice>span:last-child{color:#adb2c0;font-size:25px;text-align:right}
.policy-choice>span:first-child .ui-icon{width:23px;height:23px}
.policy-choice>span:last-child .ui-icon{width:19px;height:19px;margin-left:auto;opacity:.55}
.policy-viewer{width:100%;margin-top:22px;padding-top:18px;border-top:1px solid #e7e9f0;text-align:left}
.policy-back{border:0;background:transparent;color:#625ad9;padding:7px 2px 15px;font-weight:850;cursor:pointer;display:flex;align-items:center;gap:7px}
.policy-back .ui-icon{width:19px;height:19px}
.policy-document{color:#3e4354;text-align:left}
.policy-document header{padding:20px;border-radius:16px;background:#f7f8fc}
.policy-document h3{margin:0 0 9px;color:#262a3b;font-size:21px}
.policy-meta{display:flex;flex-wrap:wrap;gap:7px 16px;color:#7d8396;font-size:10px}
.policy-language-notice{margin:12px 0 0!important;padding:9px 11px;border-radius:10px;background:#fff4d8;color:#785a16!important;font-size:11px!important;line-height:1.6!important}
.policy-load-status{padding:20px 0;color:#7d8396;text-align:center}
.policy-lead{margin:20px 0 24px!important;color:#4f566b!important;font-size:13px!important;line-height:1.9!important}
.policy-section{padding:20px 0;border-top:1px solid #eceef4}
.policy-section h4{margin:0 0 10px;color:#2d3142;font-size:15px;line-height:1.55}
.policy-section p{margin:8px 0!important;color:#5f6679!important;font-size:12px!important;line-height:1.9!important;white-space:normal!important}
.policy-section ul{display:grid;gap:8px;margin:10px 0 0;padding-left:20px;color:#5f6679;font-size:12px;line-height:1.85}
.policy-placeholder{padding:10px 12px;border-radius:10px;background:#fff4d8;color:#785a16!important;font-weight:800}
.policy-links{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.policy-links a{display:inline-flex;align-items:center;min-height:34px;padding:7px 10px;border:1px solid #dfe2ee;border-radius:10px;background:#f8f8fd;color:#5a53ce;font-size:10px;font-weight:800;text-decoration:none}
.policy-links a:hover,.policy-links a:focus-visible{border-color:#aaa5ff;background:#f1f0ff;outline:none}
.contact-form{display:grid;gap:15px;margin-top:14px}.contact-form label:not(.contact-reply-choice):not(.contact-honeypot){display:grid;gap:7px}.contact-form label>span{color:#464b5d;font-size:12px;font-weight:800}.contact-form label b{color:#c64d63;font-size:10px}.contact-form input,.contact-form select,.contact-form textarea{width:100%;border:1px solid #dfe2eb;border-radius:12px;background:#fff;color:#303446;padding:12px;font:inherit;font-size:16px}.contact-form textarea{resize:vertical;line-height:1.65}.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus{border-color:#8179ee;outline:3px solid rgba(108,99,255,.14)}.contact-form small{color:#7d8396;font-size:10px;line-height:1.6}.contact-reply-choice{display:flex;align-items:center;gap:9px;cursor:pointer}.contact-reply-choice input{width:20px;height:20px;accent-color:#6c63ff}.contact-form-note{margin:0!important;padding:11px 13px;border-radius:11px;background:#f7f8fc;color:#71778a!important;font-size:10px!important;line-height:1.7!important}.contact-submit{min-height:48px;border:0;border-radius:14px;background:#6c63ff;color:#fff;font-weight:850;cursor:pointer}.contact-submit:disabled{cursor:wait;opacity:.62}.contact-status{min-height:22px;margin:0!important;text-align:center;font-size:12px!important;font-weight:800}.contact-status.is-success{color:#24764b!important}.contact-status.is-error{color:#bd4459!important}.contact-honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.profile-save{width:100%;min-height:48px;border:0;border-radius:14px;background:#6c63ff;color:#fff;font-weight:850;cursor:pointer}
.google-sign-in:disabled,.anonymous-sign-in:disabled,.account-sign-out:disabled,.account-delete:disabled,.profile-save:disabled{cursor:wait;opacity:.6}
.home-search-app{width:min(100%,680px);min-height:100%;background:#fff;padding:0 20px max(28px,env(safe-area-inset-bottom))}
.home-search-header{display:flex;align-items:center;gap:13px;padding:max(18px,env(safe-area-inset-top)) 0 18px;border-bottom:1px solid #e8eaf1}
.home-search-header h1{margin:0;font-size:21px;line-height:1.3}
.home-search-header p{margin:3px 0 0;color:#858b9f;font-size:11px}
.home-search-back{flex:0 0 40px;width:40px;height:40px;border:0;border-radius:12px;background:#eef1f7;color:#5e657a;font-size:30px;line-height:1;cursor:pointer;display:grid;place-items:center}
.home-search-form{display:grid;gap:20px;padding:24px 0}
.home-search-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.home-search-field{display:grid;gap:7px}
.home-search-field>span{font-size:12px;font-weight:850;color:#4d5368}
.home-search-field input,.home-search-field select{width:100%;min-height:50px;border:1px solid #dde0ea;border-radius:14px;background:#f9fafd;color:#25283a;padding:0 14px;font:inherit;outline:none}
.home-search-field input:focus,.home-search-field select:focus{border-color:#8d86ff;box-shadow:0 0 0 4px rgba(108,99,255,.12)}
.home-search-field small{color:#9298aa;font-size:10px}
.home-search-actions{display:grid;grid-template-columns:minmax(120px,.7fr) minmax(160px,1.3fr);gap:10px;margin-top:8px}
.home-search-actions button{min-height:52px;border:0;border-radius:14px;font-weight:850;cursor:pointer}
.home-search-clear{background:#eef1f7;color:#656b80}
.home-search-submit{background:#6c63ff;color:#fff;box-shadow:0 8px 18px rgba(108,99,255,.22)}
.home-main{flex:0 0 calc(100vh - var(--fuji-bar));min-height:calc(100vh - var(--fuji-bar));display:flex;flex-direction:column;align-items:center;justify-content:center;gap:46px;padding:40px 24px calc(16px + var(--fuji-h))}
@supports(height:100dvh){.home-main{flex-basis:calc(100dvh - var(--fuji-bar));min-height:calc(100svh - var(--fuji-bar))}}
.home-logo-img{width:min(58vw,290px);max-height:150px;object-fit:contain;display:block}
.home-map-button{width:min(78vw,390px);aspect-ratio:1.15/1;border:0;background:#fff;border-radius:28px;display:flex;align-items:center;justify-content:center;position:relative;cursor:pointer;transition:transform .12s ease,background .12s ease}
.home-map-button:active{transform:scale(.965);background:#fafbfc}
.home-map-img{width:90%;height:90%;object-fit:contain;display:block;pointer-events:none;user-select:none}
.home-regional-weather{position:absolute;inset:5%;z-index:2;pointer-events:none}
.home-regional-weather[hidden]{display:none}
.regional-weather-icon{position:absolute;width:clamp(22px,6.5vw,30px);height:clamp(22px,6.5vw,30px);object-fit:contain;filter:drop-shadow(0 2px 3px rgba(31,72,108,.25));transform:translate(-50%,-50%);animation:regional-weather-in .18s ease-out both}
.regional-weather-west{left:25%;top:57%}
.regional-weather-central{left:48%;top:49%;animation-delay:.03s}
.regional-weather-east{left:68%;top:39%;animation-delay:.06s}
.regional-weather-izu{left:78%;top:67%;animation-delay:.09s}
@keyframes regional-weather-in{from{opacity:0;transform:translate(-50%,-50%) scale(.72)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}
.home-map-hint{position:absolute;bottom:-14px;color:#9aa1ab;font-size:13px;font-weight:700;opacity:0;transition:.15s}
.home-map-button:hover .home-map-hint,.home-map-button:focus-visible .home-map-hint{opacity:1}

.home-bottom-nav{position:relative;flex:0 0 var(--fuji-bar);min-height:var(--fuji-bar);background:var(--fuji-fill);display:grid;grid-template-columns:repeat(5,minmax(0,1fr));align-items:center;padding:4px 6px 0;overflow:visible}
.fuji-frame{position:absolute;left:50%;bottom:calc(100% - 1px);transform:translateX(-50%);width:var(--fuji-w);height:var(--fuji-h);display:block;overflow:visible;pointer-events:none}
.fuji-body{fill:var(--fuji-fill)}
.fuji-snow{fill:var(--fuji-snow)}
.fuji-weather{position:absolute;left:calc(50% + min(18vw,78px));bottom:calc(100% + var(--fuji-h) - 82px);z-index:3;width:72px;height:72px;padding:0;border:0;background:transparent;transform:translateX(-50%);cursor:pointer;-webkit-tap-highlight-color:transparent}
.fuji-weather[hidden]{display:none}
.fuji-weather:focus-visible{outline:2px solid #168cff;outline-offset:3px;border-radius:50%}
.fuji-weather:active .fuji-weather-icon{animation:none;transform:scale(.9)}
.fuji-weather-icon{width:100%;height:100%;display:block;object-fit:contain;filter:drop-shadow(0 4px 5px rgba(75,126,160,.16));animation:fuji-weather-float 4.6s ease-in-out infinite}
@keyframes fuji-weather-float{0%,100%{transform:translate3d(-2px,1px,0) scale(.97)}50%{transform:translate3d(3px,-3px,0) scale(1.03)}}
@media (prefers-reduced-motion:reduce){.fuji-weather-icon,.regional-weather-icon{animation:none}}
.home-nav-item{position:relative;z-index:1;border:0;background:transparent;color:#6b727c;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;font-weight:900;font-size:13px;cursor:pointer}
.home-nav-item:hover,.home-nav-item:focus-visible{color:#317fc5}
.home-nav-item .nav-ico{font-size:34px;line-height:1}
.home-nav-item .nav-ico .ui-icon{width:34px;height:34px}
.home-nav-go{position:relative;z-index:2;width:68px;height:68px;justify-self:center;align-self:center;transform:translateY(-12px);display:grid;place-items:center;padding:6px;border:1px solid rgba(72,124,187,.68);border-radius:50%;background:radial-gradient(circle at 38% 28%,#f8fbff 0%,#cbe2ff 22%,#79b2f3 58%,#3d82cf 100%);box-shadow:0 0 0 5px rgba(255,255,255,.9),0 0 0 7px rgba(112,157,211,.18),0 7px 18px rgba(42,88,145,.22),inset 0 2px 7px rgba(255,255,255,.72),inset 0 -6px 10px rgba(35,93,165,.22);cursor:pointer}
.home-nav-go img{width:auto;height:88%;max-width:76%;display:block;object-fit:contain;pointer-events:none;filter:drop-shadow(0 3px 3px rgba(85,50,40,.24))}
.home-nav-go:active{transform:translateY(-12px) scale(.95)}
.home-nav-go:focus-visible{outline:2px solid #168cff;outline-offset:10px}
.home-nav-go:disabled{cursor:wait;opacity:.65}

#mapBackHome.map-logo-home{
  position:fixed;left:14px;top:max(12px,env(safe-area-inset-top));z-index:31;
  width:124px;height:50px;display:none;align-items:center;justify-content:center;padding:3px 9px;
  overflow:hidden;border:1px solid rgba(223,225,235,.96);border-radius:18px;background:rgba(255,255,255,.96);
  box-shadow:0 8px 22px rgba(45,49,68,.13);cursor:pointer;-webkit-tap-highlight-color:transparent;
  transition:opacity .18s ease,transform .18s ease,box-shadow .18s ease;
}
#mapBackHome.map-logo-home img{width:100%;height:100%;display:block;object-fit:contain;pointer-events:none}
#mapBackHome.map-logo-home:hover{box-shadow:0 10px 26px rgba(45,49,68,.18);transform:translateY(-1px)}
#mapBackHome.map-logo-home:active{transform:scale(.96)}
#mapBackHome.map-logo-home:focus-visible{outline:3px solid rgba(108,99,255,.38);outline-offset:3px}
body.map-open #mapBackHome.map-logo-home{display:flex}

@media(max-width:520px){
  #mapBackHome.map-logo-home{left:10px;top:max(9px,env(safe-area-inset-top));width:112px;height:46px;border-radius:16px;padding:3px 8px}
}

@media (max-height:660px){
  .home-main{gap:18px;padding-top:20px}
  .home-logo-img{max-height:100px}
}
@media (max-width:520px){.home-search-grid{grid-template-columns:1fr}}
@media (max-width:390px){.fuji-weather{left:calc(50% + 72px);width:68px;height:68px}}
