:root{--ink:#17322d;--green:#256d5c;--orange:#f1773d;--lime:#d8f15a;--cream:#f5f3ea;--paper:#fff;--muted:#70807a;--line:#dce2dc;--shadow:0 18px 55px rgba(24,52,45,.11)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:'Noto Sans JP',sans-serif;-webkit-font-smoothing:antialiased}button,a{font:inherit;color:inherit}.site-header{position:sticky;z-index:1000;top:0;height:70px;padding:0 clamp(20px,5vw,76px);display:flex;align-items:center;gap:24px;border-bottom:1px solid rgba(220,226,220,.9);background:rgba(255,255,255,.92);backdrop-filter:blur(14px)}.brand{display:flex;align-items:center;gap:10px;text-decoration:none}.brand i{width:35px;height:35px;display:grid;place-items:center;border-radius:50%;background:var(--ink);color:var(--lime);font:800 1rem 'DM Sans';font-style:normal}.brand b{font:700 .67rem/1.05 'DM Sans';letter-spacing:.12em}.site-header>p{margin:auto;color:var(--muted);font-size:.68rem;font-weight:700;letter-spacing:.08em}.property-link{padding:10px 16px;background:var(--ink);color:#fff;text-decoration:none;font-size:.7rem;font-weight:700}.property-link span{color:var(--lime)}main{max-width:1500px;margin:auto}.builder{min-height:calc(100vh - 70px);padding:clamp(38px,6vw,82px) clamp(20px,6vw,92px) 70px;display:grid;grid-template-columns:minmax(280px,.72fr) minmax(580px,1.35fr);gap:clamp(45px,7vw,110px);align-items:start}.hero-copy{position:sticky;top:135px;padding-top:15px}.eyebrow{margin:0 0 12px;color:var(--orange);font:700 .62rem 'DM Sans';letter-spacing:.17em}.hero-copy h1{margin:0;font-size:clamp(2.7rem,5vw,4.9rem);line-height:1.17;letter-spacing:-.065em}.hero-copy h1 em{font-style:normal;color:var(--green)}.hero-copy>p:last-child{max-width:390px;margin:26px 0 0;color:var(--muted);font-size:.82rem;line-height:1.9}.steps{display:grid;gap:13px}.step{padding:20px 22px 22px;border:1px solid var(--line);border-radius:18px;background:rgba(255,255,255,.52);transition:.25s}.step.is-current{border-color:#9eb7af;background:#fff;box-shadow:var(--shadow)}.step.is-complete{background:#fff}.step>header{display:flex;align-items:center;gap:13px}.step>header>span{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:#e6eae5;color:var(--muted);font:700 .74rem 'DM Sans'}.step.is-current>header>span{background:var(--orange);color:#fff}.step.is-complete>header>span{background:var(--green);color:#fff}.step header small,.step header h2{display:block}.step header small{color:var(--muted);font-size:.54rem}.step header h2{margin:1px 0 0;font-size:.95rem}.step-check{display:none;margin-left:auto;color:var(--green)}.step.is-complete .step-check{display:block}.activity-grid,.origin-grid{margin-top:17px;display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.activity-grid button,.origin-grid button{min-height:82px;padding:11px 7px;border:1px solid var(--line);border-radius:11px;background:#fafbf8;cursor:pointer;transition:.2s}.activity-grid button:hover,.origin-grid button:hover,.place-card:hover{transform:translateY(-2px);border-color:#a5bbb4;background:#fff}.activity-grid button.is-selected,.origin-grid button.is-selected{border-color:var(--ink);background:var(--ink);color:#fff}.activity-grid i,.origin-grid i{display:block;margin-bottom:5px;font-size:1.45rem;font-style:normal}.activity-grid b,.origin-grid b{display:block;font-size:.68rem}.origin-grid small{display:block;margin-top:3px;color:var(--muted);font-size:.47rem}.origin-grid .is-selected small{color:#b9c8c3}.place-grid{margin-top:17px;display:grid;grid-template-columns:repeat(2,1fr);gap:9px}.step-placeholder{grid-column:1/-1;margin:4px 0;color:#9aa5a1;font-size:.69rem}.place-card{padding:13px;display:grid;grid-template-columns:45px 1fr;gap:11px;align-items:center;border:1px solid var(--line);border-radius:11px;background:#fafbf8;text-align:left;cursor:pointer;transition:.2s}.place-card>i{width:45px;height:45px;display:grid;place-items:center;border-radius:10px;background:#eaf0dc;font-size:1.35rem;font-style:normal}.place-card b,.place-card small{display:block}.place-card b{font-size:.68rem;line-height:1.45}.place-card small{margin-top:4px;color:var(--muted);font-size:.5rem}.place-card.is-selected{border-color:var(--green);background:#edf5e8;box-shadow:inset 0 0 0 1px var(--green)}.build-bar{position:sticky;z-index:20;bottom:14px;padding:13px 14px 13px 20px;display:flex;align-items:center;gap:20px;border:1px solid rgba(220,226,220,.95);border-radius:16px;background:rgba(255,255,255,.94);box-shadow:0 13px 45px rgba(23,50,45,.16);backdrop-filter:blur(14px)}.build-bar p{margin:0;margin-right:auto}.build-bar p b,.build-bar p span{display:block}.build-bar p b{color:var(--orange);font:700 .55rem 'DM Sans';letter-spacing:.12em}.build-bar p span{margin-top:3px;font-size:.65rem}.build-bar button{min-width:275px;padding:15px 18px;border:0;border-radius:10px;background:var(--lime);font-size:.72rem;font-weight:800;cursor:pointer}.build-bar button span{margin-left:12px}.build-bar button:disabled{background:#e6e9e3;color:#9aa39f;cursor:not-allowed}.course-view{padding:55px clamp(20px,5vw,76px) 80px}.course-view[hidden]{display:none}.course-header{display:flex;align-items:center;gap:26px;margin-bottom:22px}.course-header h2{margin:0;font-size:clamp(1.7rem,3vw,2.65rem);letter-spacing:-.04em}.condition-summary{margin-left:auto;display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.condition-summary span{padding:7px 10px;border-radius:20px;background:#e9eee7;font-size:.58rem;font-weight:700}.course-header>button{padding:9px 13px;border:1px solid var(--line);border-radius:8px;background:#fff;font-size:.6rem;font-weight:700;cursor:pointer}.course-layout{min-height:510px;display:grid;grid-template-columns:minmax(360px,.72fr) minmax(420px,1.28fr);overflow:hidden;border:1px solid var(--line);border-radius:20px;background:#fff;box-shadow:var(--shadow)}.itinerary-panel{padding:24px 28px;display:flex;flex-direction:column}.plan-overview{padding-bottom:19px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.plan-overview>span{padding:7px 10px;border-radius:7px;background:var(--orange);color:#fff;font-size:.58rem;font-weight:800}.plan-overview div{text-align:right}.plan-overview b,.plan-overview small{display:block}.plan-overview b{font-size:.78rem}.plan-overview small{color:var(--muted);font-size:.53rem}.timeline{margin:10px 0;padding:0;list-style:none}.timeline li{position:relative;padding:13px 0 13px 42px}.timeline li:not(:last-child):after{content:"";position:absolute;left:12px;top:39px;bottom:-13px;border-left:2px dotted #a9bab4}.timeline .point{position:absolute;left:3px;top:17px;width:20px;height:20px;display:grid;place-items:center;border:5px solid var(--orange);border-radius:50%;background:#fff}.timeline li:first-child .point{border-color:var(--green);background:var(--green)}.timeline time{display:block;color:var(--orange);font:700 .55rem 'DM Sans'}.timeline b{display:block;margin:2px 0;font-size:.74rem}.timeline small{color:var(--muted);font-size:.54rem}.timeline .remove-stop{position:absolute;right:0;top:20px;border:0;background:none;color:#9aa5a1;font-size:.52rem;cursor:pointer}.course-actions{margin-top:auto;display:grid;grid-template-columns:.8fr 1.2fr;gap:7px}.course-actions>*{padding:12px 8px;border:1px solid var(--line);border-radius:8px;background:#fff;text-align:center;text-decoration:none;font-size:.59rem;font-weight:800;cursor:pointer}.course-actions a{border-color:var(--lime);background:var(--lime)}.map-panel{position:relative;min-height:510px;background:#dfe6df}.map-panel #map{height:100%}.map-loading{height:100%;display:grid;place-content:center;gap:8px;text-align:center;color:var(--muted)}.map-loading span{font-size:2rem}.map-loading b{font-size:.68rem}.map-expand{position:absolute;right:14px;top:14px;padding:9px 12px;border:0;border-radius:8px;background:#fff;box-shadow:0 5px 18px #17322d26;font-size:.55rem;font-weight:800}.recommendations{padding:75px 0}.recommendations>header{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:22px}.recommendations h2,.homes h2{margin:0;font-size:clamp(1.55rem,2.6vw,2.35rem);letter-spacing:-.04em}.recommendations header p:last-child{margin:7px 0 0;color:var(--muted);font-size:.68rem}.filter-row{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.filter-row button{padding:8px 12px;border:1px solid var(--line);border-radius:20px;background:#fff;font-size:.58rem;font-weight:700;cursor:pointer}.filter-row button.is-active{border-color:var(--ink);background:var(--ink);color:#fff}.recommendation-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:11px}.spot-card{min-width:0;padding:17px;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:14px;background:#fff}.spot-card>span{width:43px;height:43px;display:grid;place-items:center;border-radius:11px;background:#edf1df;font-size:1.35rem}.spot-card small{display:block;margin-top:14px;color:var(--green);font-size:.5rem;font-weight:800}.spot-card h3{margin:4px 0;font-size:.75rem;line-height:1.55}.spot-card p{margin:3px 0 15px;color:var(--muted);font-size:.53rem;line-height:1.65}.spot-card button{width:100%;margin-top:auto;padding:9px;border:1px solid var(--green);border-radius:7px;background:#fff;color:var(--green);font-size:.58rem;font-weight:800;cursor:pointer}.spot-card button.is-added{background:var(--green);color:#fff}.homes{padding:52px;display:grid;grid-template-columns:.7fr 1.3fr;gap:55px;border-radius:22px;background:var(--ink);color:#fff}.homes-copy p:not(.eyebrow){max-width:360px;color:#b8c8c2;font-size:.7rem;line-height:1.9}.homes-copy>a{display:inline-block;margin-top:16px;padding-bottom:4px;border-bottom:1px solid var(--lime);color:var(--lime);font-size:.68rem;font-weight:700;text-decoration:none}.home-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.home-card{overflow:hidden;border-radius:12px;background:#fff;color:var(--ink)}.home-card figure{height:130px;margin:0;background:#dce3dd}.home-card img{width:100%;height:100%;object-fit:cover}.home-card div{padding:12px}.home-card small{color:var(--green);font-size:.49rem;font-weight:700}.home-card h3{margin:4px 0;font-size:.68rem}.home-card p{margin:0;font-size:.56rem}.home-card p b{font:700 1rem 'DM Sans'}.home-card a{display:inline-block;margin-top:8px;font-size:.51rem;font-weight:700}.toast{position:fixed;z-index:2000;left:50%;bottom:25px;transform:translateX(-50%);padding:11px 18px;border-radius:25px;background:var(--ink);color:#fff;box-shadow:0 8px 28px #17322d45;font-size:.65rem;font-weight:700}.toast[hidden]{display:none}
@media(max-width:900px){.builder{grid-template-columns:1fr;gap:28px}.hero-copy{position:static}.hero-copy h1 br{display:none}.course-layout{grid-template-columns:1fr}.map-panel{min-height:380px}.recommendation-grid{grid-template-columns:repeat(2,1fr)}.homes{grid-template-columns:1fr}.home-grid{max-width:700px}.course-header{flex-wrap:wrap}.condition-summary{order:3;width:100%;justify-content:flex-start}.course-header>button{margin-left:auto}}
@media(max-width:600px){.site-header{height:58px;padding:0 16px}.site-header>p{display:none}.property-link{margin-left:auto;padding:8px 10px}.builder{min-height:0;padding:30px 16px 45px}.hero-copy h1{font-size:2.35rem}.hero-copy>p:last-child{margin-top:16px;font-size:.72rem}.step{padding:16px}.activity-grid{grid-template-columns:repeat(4,1fr)}.activity-grid button{min-height:75px}.activity-grid i{font-size:1.25rem}.origin-grid,.place-grid{grid-template-columns:repeat(2,1fr)}.build-bar{bottom:8px;display:block;padding:11px}.build-bar p{display:none}.build-bar button{width:100%;min-width:0}.course-view{padding:34px 12px 55px}.course-header{padding:0 5px}.course-layout{border-radius:15px}.itinerary-panel{padding:20px}.map-panel{min-height:300px;order:-1}.map-expand{display:none}.recommendations{padding:55px 4px}.recommendations>header{display:block}.filter-row{margin-top:17px;justify-content:flex-start;overflow-x:auto;flex-wrap:nowrap}.filter-row button{white-space:nowrap}.recommendation-grid{display:flex;overflow-x:auto;scroll-snap-type:x mandatory}.spot-card{flex:0 0 78vw;scroll-snap-align:start}.homes{padding:30px 20px;gap:28px;border-radius:16px}.home-grid{display:flex;overflow-x:auto}.home-card{flex:0 0 75%}.course-actions{grid-template-columns:1fr}.activity-grid b{font-size:.58rem}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
html{scroll-padding-top:90px}
.home-card figure{height:auto}.home-card figure>img{display:block;height:130px}.house-map-buttons{position:static;padding:6px;display:flex!important;gap:3px;background:rgba(23,50,45,.9)}.house-map-buttons button,.house-map-buttons a{flex:1;padding:6px 4px;border:0;border-radius:5px;background:#fff;color:var(--ink);font-size:.72rem;font-weight:800;line-height:1.3;text-align:center;text-decoration:none;white-space:nowrap}.house-map-buttons button.is-active{background:var(--lime);color:var(--ink);opacity:1}.house-map-buttons a:hover{background:#edf5e8;color:var(--green)}.home-actions{margin-top:9px;display:grid;gap:7px}.home-actions a{margin:0}.home-actions>button{padding:8px;border:1px solid var(--lime);border-radius:6px;background:#fff;color:var(--green);font-size:.51rem;font-weight:800;cursor:pointer}.home-actions>button.is-added{border-color:var(--green);background:var(--green);color:#fff}
.route-house{display:block;width:max-content;max-width:100%;margin-top:7px;padding:6px 9px;border-radius:6px;background:#edf5e8;color:var(--green);font-size:.5rem;font-weight:700;line-height:1.5;text-decoration:none}.route-house:hover{text-decoration:underline}.route-house span{color:var(--orange)}.map-house-popup{min-width:190px;padding:3px}.map-house-popup b,.map-house-popup span,.map-house-popup small{display:block}.map-house-popup b{font-size:.7rem}.map-house-popup>span:not(.house-map-buttons){margin-top:4px;font-size:.6rem}.map-house-popup small{margin:5px 0;color:var(--muted);font-size:.54rem}.map-house-popup a{color:var(--green);font-size:.57rem;font-weight:800}
.spot-card.is-tokyo-akiya{border-color:#ed9bbd;background:#fffafd}.spot-card.is-tokyo-akiya>span{background:#fde7f0}.spot-card.is-tokyo-akiya>small{color:#c52d70}.spot-detail-link{display:inline-block;margin:0 0 10px;color:var(--green);font-size:.52rem;font-weight:700}.tokyo-akiya-popup small{color:#c52d70;font-weight:800}.tokyo-akiya-popup b{max-width:240px;margin:4px 0;line-height:1.5}
.gm-style button.gm-ui-hover-effect{width:22px!important;height:22px!important;top:3px!important;right:3px!important}.gm-style button.gm-ui-hover-effect span{width:12px!important;height:12px!important;margin:5px!important}.map-house-popup{position:relative;width:240px;padding:2px 3px 5px 0}.map-house-popup>img{display:block;width:100%;height:122px;margin-bottom:9px;border-radius:8px;object-fit:cover}.map-house-popup .house-map-buttons{margin:0 0 9px;padding:3px;border-radius:7px}
/* Keep the property image and map controls inside each card. */
.home-card figure{padding:12px 12px 0;background:#fff}
.home-card figure>img{border-radius:7px}
.home-card .house-map-buttons{margin-top:8px;border-radius:7px}
.home-card .house-map-buttons button,.home-card .house-map-buttons a{display:flex;min-width:0;min-height:38px;margin:0;padding:6px 3px;align-items:center;justify-content:center;white-space:normal}
.home-card>div{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:8px;align-items:baseline}
.home-card>div>small,.home-card .home-actions{grid-column:1/-1}
.home-card>div>h3,.home-card>div>p{white-space:nowrap}
.home-card>div>h3{min-width:0;overflow:hidden;text-overflow:ellipsis}
.home-card>div>p{justify-self:end}

@media(max-width:1280px){.homes{grid-template-columns:1fr;gap:28px}.home-grid{max-width:none;grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.home-grid{display:grid;grid-template-columns:1fr;overflow:visible}.home-card{min-width:0}}
.map-house-popup .house-map-buttons button,.map-house-popup .house-map-buttons a{padding:6px 3px;color:var(--ink);font-size:.72rem}
.share-note{margin:auto 0 8px;color:var(--muted);font-size:.5rem;line-height:1.6}
.map-house-links{display:grid;gap:6px;margin-top:8px}.map-house-links a{display:block;padding:7px 9px;border:1px solid var(--line);border-radius:6px;text-align:center;text-decoration:none}.map-house-links a:hover{text-decoration:underline}
.map-house-popup>button{width:100%;margin-top:8px;padding:8px;border:1px solid var(--green);border-radius:6px;background:#fff;color:var(--green);font-size:.72rem;font-weight:800;cursor:pointer}
.house-marker-label{white-space:pre!important;line-height:14px!important;text-align:center!important}
.timeline .point{left:1px;top:15px;width:24px;height:24px;border:2px solid #fff;background:var(--orange);color:#fff;box-shadow:0 0 0 1px var(--orange);font:800 .58rem 'DM Sans';font-style:normal}.timeline li:first-child .point{border-color:#fff;background:var(--green);box-shadow:0 0 0 1px var(--green)}
.timeline-meta{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.timeline-meta time{flex:none}.timeline-tags{display:flex;gap:4px;flex-wrap:wrap}.timeline-tags em{padding:2px 6px;border-radius:10px;background:#edf2ee;color:var(--green);font-size:.64rem;font-style:normal;font-weight:700;line-height:1.35}.timeline-site-link{display:inline-grid;width:19px;height:19px;margin-left:4px;place-items:center;border-radius:50%;background:#edf5e8;color:var(--green);font-size:.72rem;font-weight:800;line-height:1;text-decoration:none;vertical-align:middle}.timeline-site-link:hover{background:var(--green);color:#fff}
.timeline-spot-icon{display:inline-block;margin-right:6px;font-size:1rem;line-height:1;vertical-align:-.08em}
.activity-grid{grid-template-columns:repeat(3,1fr)}.activity-grid button{min-height:88px}.activity-title{display:flex;align-items:baseline;justify-content:center;gap:6px}.activity-grid .activity-title i{display:block;margin:0;font-size:1.25rem;line-height:1}.activity-grid .activity-title b{display:block;font-size:.88rem;line-height:1}.activity-grid button small{display:block;margin-top:7px;color:var(--muted);font-size:.46rem;line-height:1.45}.activity-grid button.is-selected small{color:#b9c8c3}@media(max-width:600px){.activity-grid{grid-template-columns:repeat(3,1fr)}.activity-grid button{min-height:84px;padding:9px 5px}.activity-grid .activity-title{gap:4px}.activity-grid .activity-title i{font-size:1.15rem}.activity-grid .activity-title b{font-size:.76rem}.activity-grid button small{font-size:.42rem}}
.activity-links{margin-top:16px;padding-top:14px;border-top:1px dashed var(--line)}.activity-links>p{margin:0 0 8px;color:var(--muted);font-size:.52rem;font-weight:700}.activity-links>div{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.activity-links a{min-width:0;padding:10px;display:grid;grid-template-columns:auto 1fr;gap:2px 6px;align-items:center;border:1px solid var(--line);border-radius:9px;background:#fff;text-decoration:none}.activity-links a:hover{border-color:var(--green);transform:translateY(-1px)}.activity-links a>span{grid-row:1/3;font-size:1rem}.activity-links a>b{font-size:.62rem}.activity-links a>small{overflow:hidden;color:var(--muted);font-size:.43rem;line-height:1.4;text-overflow:ellipsis;white-space:nowrap}@media(max-width:600px){.activity-links>div{grid-template-columns:1fr}.activity-links a>small{white-space:normal}}
.place-grid.is-many{max-height:440px;padding-right:5px;overflow-y:auto;overscroll-behavior:contain}.place-grid.is-seichi .place-card small{line-height:1.5}
.site-footer{max-width:1500px;margin:0 auto;padding:0 clamp(20px,5vw,76px) 48px}.site-footer .hackathon-link{padding:24px 28px;display:flex;align-items:center;gap:18px;border-radius:14px;background:var(--green);color:#fff;text-decoration:none}.site-footer .hackathon-link span{color:#dce8e3;font-size:.62rem}.site-footer .hackathon-link b{font-size:.78rem}.site-footer .hackathon-link small{margin-left:auto;color:var(--lime);font-size:.58rem;font-weight:800}.site-footer .hackathon-link:hover small{text-decoration:underline}.footer-source{margin:10px 4px 0;color:var(--muted);font-size:.52rem;text-align:right}.footer-source a{color:var(--green);font-weight:800;text-decoration:none}.footer-source a:hover{text-decoration:underline}@media(max-width:600px){.site-footer{padding:0 12px 28px}.site-footer .hackathon-link{padding:20px;display:block}.site-footer .hackathon-link span,.site-footer .hackathon-link b,.site-footer .hackathon-link small{display:block}.site-footer .hackathon-link b{margin-top:6px}.site-footer .hackathon-link small{margin-top:12px}.footer-source{text-align:left}}
:root{--muted:#566963}.recommendation-distance{width:min(420px,100%);margin-top:18px}.recommendation-distance label{display:flex;align-items:baseline;justify-content:space-between;color:var(--muted);font-size:.68rem;font-weight:700}.recommendation-distance label b{color:var(--green);font-size:.82rem}.recommendation-distance input{width:100%;margin:9px 0 2px;accent-color:var(--orange)}.recommendation-distance>span{display:flex;justify-content:space-between;color:var(--muted)}.recommendation-distance small{font-size:.56rem}.recommendation-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:270px;gap:11px;max-height:551px;overflow-x:hidden;overflow-y:auto;overscroll-behavior-y:contain;padding:2px 10px 2px 2px;scrollbar-gutter:stable}.recommendation-grid .spot-card{height:270px}.recommendation-grid .spot-card>p{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:4}.recommendation-empty{grid-column:1/-1;margin:20px 0;color:var(--muted);font-size:.7rem}.nearby-spot-popup{width:220px;padding:5px}.nearby-spot-popup b,.nearby-spot-popup small{display:block}.nearby-spot-popup b{font-size:.76rem;line-height:1.5}.nearby-spot-popup small{margin:7px 0;color:var(--muted);font-size:.6rem;line-height:1.5}.nearby-spot-popup button{width:100%;padding:8px;border:1px solid var(--green);border-radius:6px;background:var(--green);color:#fff;font-size:.6rem;font-weight:800;cursor:pointer}.hero-copy>p:last-child,.recommendations header p:last-child,.homes-copy p:not(.eyebrow){font-size:.78rem}.activity-grid button small,.origin-grid small,.place-card small{font-size:.56rem}.timeline small{font-size:.62rem}.timeline .remove-stop,.plan-overview small{font-size:.58rem}.spot-card>small{font-size:.57rem}.spot-card>p{font-size:.62rem}.spot-detail-link{font-size:.58rem}.home-card small,.home-card p{font-size:.58rem}.share-note,.footer-source{font-size:.58rem}@media(max-width:900px){.recommendation-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.recommendations>header{display:block}.recommendation-grid{grid-template-columns:1fr;grid-auto-rows:260px;max-height:531px}.recommendation-grid .spot-card{height:260px;min-width:0}.activity-grid button small{font-size:.5rem}.hero-copy>p:last-child,.recommendations header p:last-child,.homes-copy p:not(.eyebrow){font-size:.72rem}}
.nearby-spot-popup>p,.nearby-spot-group section>p{margin:7px 0 10px;color:var(--muted);font-size:.72rem;line-height:1.65}.nearby-spot-group section>p{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:3}
.route-spot-popup{width:230px;padding:5px}.route-spot-popup>small,.route-spot-popup>b{display:block}.route-spot-popup>small{margin-bottom:4px;color:var(--orange);font-size:.58rem;font-weight:800}.route-spot-popup>b{font-size:.78rem;line-height:1.5}.route-spot-popup>p{margin:7px 0;color:var(--muted);font-size:.61rem;line-height:1.6}.route-spot-popup>a{display:block;margin:8px 0;color:var(--green);font-size:.61rem;font-weight:800}.route-spot-popup>button{width:100%;margin-top:8px;padding:8px;border:1px solid var(--orange);border-radius:6px;background:#fff;color:var(--orange);font-size:.6rem;font-weight:800;cursor:pointer}
.nearby-spot-group{width:260px;max-height:330px;overflow-y:auto}.nearby-spot-group>section{padding:9px 0;border-top:1px solid var(--line)}.nearby-spot-group>section:first-of-type{margin-top:7px}.nearby-spot-group strong{display:block;font-size:.67rem;line-height:1.45}.nearby-spot-group section small{margin:4px 0;font-size:.56rem}
.tokyo-akiya-popup>button{width:100%;margin-top:9px;padding:8px;border:1px solid #e83e8c;border-radius:6px;background:#e83e8c;color:#fff;font-size:.6rem;font-weight:800;cursor:pointer}

/* Keep supporting text comfortably readable across the planner. */
.eyebrow,.step header small,.build-bar p b{font-size:.72rem}
.brand b,.site-header>p,.property-link,.activity-grid b,.origin-grid b,.step-placeholder,.place-card b,.build-bar p span,.build-bar button{font-size:.75rem}
.origin-grid small,.place-card small,.activity-grid button small,.activity-links>p,.activity-links a>small{font-size:.72rem}
.activity-links a>b{font-size:.75rem}
.condition-summary span,.course-header>button,.plan-overview>span,.plan-overview small,.timeline time,.timeline small,.timeline .remove-stop,.course-actions>*,.map-expand,.filter-row button,.spot-card>small,.spot-card>p,.spot-card button,.spot-detail-link,.home-card small,.home-card p,.home-card a,.home-actions>button,.route-house,.share-note,.site-footer .hackathon-link span,.site-footer .hackathon-link small,.footer-source,.recommendation-distance small{font-size:.72rem}
.recommendations header p:last-child,.homes-copy p:not(.eyebrow),.homes-copy>a{font-size:.78rem}
.nearby-spot-popup small,.nearby-spot-popup button,.route-spot-popup>small,.route-spot-popup>p,.route-spot-popup>a,.route-spot-popup>button,.nearby-spot-group section small,.tokyo-akiya-popup>button,.map-house-popup span,.map-house-popup small,.map-house-popup a{font-size:.72rem}
@media(max-width:600px){.activity-grid b,.activity-grid .activity-title b{font-size:.72rem}.activity-grid button small,.hero-copy>p:last-child,.recommendations header p:last-child,.homes-copy p:not(.eyebrow){font-size:.72rem}}

.data-credits{margin-top:12px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.95);color:var(--muted)}.data-credits summary{padding:14px 18px;color:var(--ink);font-size:.82rem;font-weight:800;cursor:pointer}.data-credits[open] summary{border-bottom:1px solid var(--line)}.credit-groups{padding:18px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.credit-groups h2{margin:0 0 10px;font-size:.75rem;line-height:1.6}.credit-groups ul{margin:0;padding-left:1.25em}.credit-groups li{margin:0 0 8px;font-size:.72rem;line-height:1.75}.credit-groups a{color:var(--green);font-weight:700}.credit-badge{display:inline-block;margin-right:5px;padding:2px 7px;border-radius:10px;font-size:.68rem}.credit-badge.is-open{background:#dff2e7;color:#176046}.credit-badge.is-conditional{background:#fff0d8;color:#8a5710}.credit-badge.is-reference{background:#e8e9e8;color:#56615d}.credit-note{margin:0;padding:0 18px 18px;font-size:.72rem;line-height:1.8}@media(max-width:900px){.credit-groups{grid-template-columns:1fr;gap:16px}}@media(max-width:600px){.data-credits summary{padding:13px 14px}.credit-groups{padding:14px}.credit-note{padding:0 14px 14px}}

.site-footer .activity-links{margin:0 0 24px;padding:20px 0;border-top:0}
.listing-contact{margin:20px 0 0;color:var(--muted);font-size:.78rem;line-height:1.9}.listing-contact a{color:var(--green);text-underline-offset:3px}

body[data-activity] .site-footer .hackathon-link{background:color-mix(in srgb,var(--activity-base) 65%,#112725);border:1px solid color-mix(in srgb,var(--activity-accent) 25%,transparent);box-shadow:0 12px 30px rgba(0,0,0,.12)}
body[data-activity] .site-footer .activity-links>p,body[data-activity] .listing-contact{color:rgba(255,255,255,.92)}
body[data-activity] .listing-contact a{color:#fff;font-weight:700}

/* Short interstitial after choosing an activity */
body{--activity-base:var(--cream);--activity-accent:var(--lime);transition:background-color 1.15s cubic-bezier(.2,.7,.2,1);background-color:var(--cream)}
body[data-activity]{background-color:var(--activity-base)}
body[data-activity].has-hero-content .builder{color:#fff}
body[data-activity] .hero-copy{position:sticky;top:105px;min-height:clamp(480px,51vw,620px);padding:clamp(28px,3vw,42px);display:flex;flex-direction:column;overflow:hidden;border-radius:22px;background:linear-gradient(180deg,rgba(4,28,29,.64) 0%,rgba(4,28,29,.1) 48%,rgba(4,28,29,.68) 100%),var(--hero-photo) var(--hero-position,center)/cover no-repeat;box-shadow:0 20px 50px rgba(3,35,39,.22)}
body[data-activity].has-hero-content .hero-copy .eyebrow{color:var(--activity-accent)}
body[data-activity].has-hero-content .hero-copy h1 em{color:var(--activity-accent)}
body[data-activity] .hero-copy h1.is-copy-updated{animation:hero-copy-settle .7s cubic-bezier(.2,.8,.2,1) both}
.place-intro{margin:12px 0 0;color:var(--muted);font-size:.72rem;line-height:1.6}
.place-map{height:260px;margin-top:14px;overflow:hidden;border:1px solid var(--line);border-radius:12px;background:#e6ede8}
.place-map>p{height:100%;margin:0;padding:20px;display:grid;place-items:center;color:var(--muted);font-size:.7rem;text-align:center}
.place-grid{grid-template-columns:1fr}
.place-card{min-width:0;grid-template-columns:40px minmax(0,1fr);align-items:start}
.place-card>i{width:40px;height:40px}
.place-card small{line-height:1.5}
.place-card .place-card-description{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;color:var(--ink);font-size:.68rem;line-height:1.6}
.place-grid.is-many{max-height:420px}
.place-detail{margin-top:13px;padding:15px;border:1px solid var(--line);border-radius:12px;background:#f7f9f5}
.place-detail>p{margin:0;color:var(--muted);font-size:.68rem;line-height:1.7}
.place-detail>small{color:var(--green);font-size:.58rem;font-weight:800}
.place-detail h3{margin:4px 0 8px;font-size:.85rem}
.place-detail h3+p{color:var(--ink)}
.place-detail .place-detail-access{margin-top:10px}
.place-detail>a{display:inline-block;margin-top:10px;color:var(--green);font-size:.68rem;font-weight:800}
@media(max-width:600px){.place-map{height:210px}.place-grid{grid-template-columns:1fr}.place-card .place-card-description{font-size:.68rem}}
body[data-activity] .hero-copy>p:last-child{color:rgba(255,255,255,.76)}
body[data-activity] .hero-copy>p:last-child{height:0;margin:0;overflow:hidden;opacity:0}
body[data-activity] .step{border-color:rgba(255,255,255,.24);background:rgba(255,255,255,.9);color:var(--ink);box-shadow:0 16px 45px rgba(5,24,20,.13)}
body[data-activity] .step:not(.is-current):not(.is-complete){background:rgba(255,255,255,.78)}
body[data-activity] .build-bar{color:var(--ink)}
body[data-activity] .course-view{background:var(--cream);color:var(--ink)}
.hero-copy{isolation:isolate}.hero-copy>.eyebrow,.hero-copy>h1{position:relative;z-index:1}
body[data-activity] .hero-copy h1{font-size:clamp(2.5rem,4.3vw,4rem);line-height:1.23;text-shadow:0 2px 16px rgba(0,0,0,.3)}
.hero-photo-note{display:none}
body[data-activity] .hero-photo-note{display:block;margin-top:auto;color:rgba(255,255,255,.85);font-size:.65rem;text-shadow:0 1px 6px rgba(0,0,0,.6)}
.activity-transition{position:fixed;z-index:3000;inset:0;display:grid;place-items:center;overflow:hidden;visibility:hidden;opacity:0;pointer-events:none;background:var(--activity-base);color:#fff;clip-path:circle(0 at 50% 50%)}
.activity-transition.is-active{visibility:visible;opacity:1;pointer-events:auto;animation:transition-open .65s cubic-bezier(.7,0,.2,1) both}
.activity-transition.is-leaving{animation:transition-close .48s cubic-bezier(.7,0,.2,1) both}
.activity-transition:before,.activity-transition:after{content:"";position:absolute;border-radius:50%;border:1px solid color-mix(in srgb,var(--activity-accent) 55%,transparent);opacity:.55}
.activity-transition:before{width:42vmax;height:42vmax}.activity-transition:after{width:68vmax;height:68vmax}
.activity-transition.is-active:before{animation:effect-pulse 2.2s ease-out infinite}.activity-transition.is-active:after{animation:effect-pulse 2.2s .38s ease-out infinite}
.activity-transition-effects,.activity-transition-effects i{position:absolute;inset:0}
.activity-transition-effects{opacity:.75;filter:blur(.2px)}
.activity-transition-effects i:before{content:"";position:absolute;width:42vw;height:150vh;top:-25vh;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--activity-accent) 30%,transparent),transparent);transform:rotate(24deg);animation:effect-sweep 2.4s ease-in-out infinite}
.activity-transition-effects i:nth-child(1):before{left:-28vw}.activity-transition-effects i:nth-child(2):before{left:26vw;animation-delay:.25s}.activity-transition-effects i:nth-child(3):before{left:72vw;animation-delay:.5s}
.activity-transition[data-activity="river"] .activity-transition-effects{background:repeating-radial-gradient(ellipse at 50% 115%,transparent 0 7vh,color-mix(in srgb,var(--activity-accent) 18%,transparent) 7.3vh 7.6vh,transparent 8vh 14vh)}
.activity-transition.is-active[data-activity="river"] .activity-transition-effects{animation:water-rise 2s ease-out both}
.activity-transition[data-activity="fishing"] .activity-transition-effects{background:none;opacity:.72}
.activity-transition[data-activity="fishing"] .activity-transition-effects i:before{left:110%;width:clamp(52px,7vw,104px);height:clamp(28px,4vw,58px);top:27%;background:var(--activity-accent);clip-path:polygon(0 50%,100% 0,76% 50%,100% 100%);transform:none}
.activity-transition[data-activity="fishing"] .activity-transition-effects i:nth-child(2):before{top:49%;width:clamp(35px,5vw,76px);height:clamp(20px,3vw,44px);opacity:.58}
.activity-transition[data-activity="fishing"] .activity-transition-effects i:nth-child(3):before{top:68%;width:clamp(64px,9vw,132px);height:clamp(34px,5vw,70px);opacity:.36}
.activity-transition.is-active[data-activity="fishing"] .activity-transition-effects i:before{animation:fish-swim 1.75s .12s cubic-bezier(.3,.15,.2,.95) both}
.activity-transition.is-active[data-activity="fishing"] .activity-transition-effects i:nth-child(2):before{animation-delay:.38s;animation-duration:1.6s}.activity-transition.is-active[data-activity="fishing"] .activity-transition-effects i:nth-child(3):before{animation-delay:.62s;animation-duration:1.9s}
.activity-transition[data-activity="camp"] .activity-transition-effects,.activity-transition[data-activity="food"] .activity-transition-effects{background-image:radial-gradient(circle at 18% 80%,var(--activity-accent) 0 2px,transparent 3px),radial-gradient(circle at 72% 72%,var(--activity-accent) 0 1px,transparent 3px),radial-gradient(circle at 46% 90%,var(--activity-accent) 0 2px,transparent 4px);background-size:110px 150px,150px 190px,190px 230px}
.activity-transition.is-active[data-activity="camp"] .activity-transition-effects,.activity-transition.is-active[data-activity="food"] .activity-transition-effects{animation:embers-up 2.2s linear both}
.activity-transition[data-activity="cycling"] .activity-transition-effects{background:linear-gradient(110deg,transparent 25%,color-mix(in srgb,var(--activity-accent) 22%,transparent) 26% 30%,transparent 31% 48%,color-mix(in srgb,var(--activity-accent) 16%,transparent) 49% 53%,transparent 54%)}
.activity-transition.is-active[data-activity="cycling"] .activity-transition-effects{animation:wind-pass 1.8s ease-in-out both}
.activity-transition[data-activity="hiking"] .activity-transition-effects{opacity:1;background:linear-gradient(180deg,rgba(218,248,194,.34) 0%,rgba(174,225,151,.18) 32%,transparent 67%)}
.activity-transition[data-activity="hiking"] .activity-transition-effects i:before{left:-8%;top:auto;bottom:-3%;width:116%;height:58%;background:#284f35;clip-path:polygon(0 100%,0 68%,12% 47%,20% 61%,34% 31%,44% 55%,57% 18%,67% 51%,81% 32%,100% 67%,100% 100%);transform:none;filter:none}
.activity-transition[data-activity="hiking"] .activity-transition-effects i:nth-child(2):before{bottom:-7%;height:48%;background:#356443;opacity:.96;clip-path:polygon(0 100%,0 66%,18% 42%,29% 64%,43% 35%,55% 69%,72% 38%,86% 63%,100% 49%,100% 100%)}
.activity-transition[data-activity="hiking"] .activity-transition-effects i:nth-child(3):before{bottom:-11%;height:37%;background:#47794d;opacity:.94;clip-path:polygon(0 100%,0 59%,15% 42%,32% 68%,48% 37%,62% 63%,78% 39%,100% 67%,100% 100%)}
.activity-transition.is-active[data-activity="hiking"] .activity-transition-effects{animation:mountain-sky-open 2s cubic-bezier(.2,.75,.2,1) both}
.activity-transition.is-active[data-activity="hiking"] .activity-transition-effects i:before{animation:mountain-open 1.75s cubic-bezier(.25,.75,.2,1) both}.activity-transition.is-active[data-activity="hiking"] .activity-transition-effects i:nth-child(2):before{animation-delay:.1s}.activity-transition.is-active[data-activity="hiking"] .activity-transition-effects i:nth-child(3):before{animation-delay:.2s}
.activity-transition-copy{position:relative;z-index:2;width:min(900px,86vw);text-align:center;text-shadow:0 4px 32px rgba(0,0,0,.18)}
.activity-transition-copy small{display:block;margin-bottom:22px;color:var(--activity-accent);font:700 clamp(.62rem,1vw,.78rem) 'DM Sans';letter-spacing:.26em;opacity:0}
.activity-transition-copy p{margin:0;font-size:clamp(3rem,7.5vw,7.7rem);font-weight:800;line-height:1.04;letter-spacing:-.07em;opacity:0}
.activity-transition-copy p:after{content:"";display:block;width:0;height:5px;margin:30px auto 0;background:var(--activity-accent)}
.activity-transition.is-active .activity-transition-copy small{animation:copy-rise .65s .42s ease-out forwards}.activity-transition.is-active .activity-transition-copy p{animation:copy-rise .78s .52s cubic-bezier(.2,.8,.2,1) forwards}.activity-transition.is-active .activity-transition-copy p:after{animation:line-draw .7s 1s ease-out forwards}
@keyframes transition-open{from{clip-path:circle(0 at 50% 50%)}to{clip-path:circle(75vmax at 50% 50%)}}
@keyframes transition-close{from{opacity:1;clip-path:circle(75vmax at 50% 50%)}to{opacity:0;clip-path:circle(75vmax at 50% 35%)}}
@keyframes copy-rise{from{opacity:0;transform:translateY(35px);filter:blur(8px)}to{opacity:1;transform:none;filter:none}}
@keyframes line-draw{to{width:76px}}
@keyframes effect-pulse{from{transform:scale(.68);opacity:.7}to{transform:scale(1.25);opacity:0}}
@keyframes effect-sweep{0%,100%{transform:translateX(-12vw) rotate(24deg);opacity:.25}50%{transform:translateX(10vw) rotate(24deg);opacity:.75}}
@keyframes water-rise{from{transform:translateY(18vh);opacity:0}to{transform:none;opacity:.8}}
@keyframes embers-up{from{background-position:0 22vh,0 30vh,0 18vh}to{background-position:0 -18vh,0 -8vh,0 -24vh}}
@keyframes wind-pass{from{transform:translateX(-35%);opacity:0}to{transform:translateX(20%);opacity:.85}}
@keyframes fish-swim{0%{transform:translateX(0) scaleX(.86);filter:blur(5px)}18%{transform:translateX(-20vw) translateY(7px) scaleX(1);filter:none}55%{transform:translateX(-72vw) translateY(-8px) scaleX(.92)}100%{transform:translateX(-130vw) translateY(3px) scaleX(.8);filter:blur(3px)}}
@keyframes mountain-sky-open{from{filter:brightness(.62) saturate(.82)}to{filter:brightness(1.18) saturate(1.08)}}
@keyframes mountain-open{from{transform:translateY(-12%) scale(1.08);filter:brightness(.65)}to{transform:translateY(8%) scale(1);filter:brightness(1.05)}}
@keyframes hero-copy-settle{from{opacity:0;transform:translateY(18px);filter:blur(5px)}to{opacity:1;transform:none;filter:none}}
@media(max-width:900px){body[data-activity] .hero-copy{position:static}}
@media(max-width:600px){body[data-activity] .hero-copy{min-height:440px;padding:26px;border-radius:18px}body[data-activity] .hero-copy h1{font-size:clamp(2.15rem,9vw,3.2rem)}.activity-transition-copy{width:88vw}.activity-transition-copy p{font-size:clamp(2.7rem,13vw,4.4rem)}.activity-transition-copy small{margin-bottom:17px}.activity-transition-copy p:after{height:4px;margin-top:24px}}
@media(prefers-reduced-motion:reduce){body{transition:none}.activity-transition.is-active,.activity-transition.is-leaving,.activity-transition *,.activity-transition:before,.activity-transition:after{animation-duration:.01ms!important;animation-delay:0s!important;animation-iteration-count:1!important}}
