:root{--ink:#17211f;--muted:#63706d;--paper:#f7f5ef;--white:#fff;--green:#183f37;--green2:#285f52;--gold:#c79c58;--line:#d9ddd7;--shadow:0 20px 60px rgba(19,39,34,.12)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:"Noto Sans JP",sans-serif;line-height:1.7}.topbar{height:72px;padding:0 clamp(20px,5vw,72px);display:flex;align-items:center;justify-content:space-between;background:rgba(247,245,239,.94);position:absolute;z-index:5;width:100%;color:#fff;background:linear-gradient(to bottom,rgba(8,20,17,.55),transparent)}.brand{display:flex;gap:10px;align-items:center;color:inherit;text-decoration:none;font-family:"Noto Serif JP",serif;font-size:19px;letter-spacing:.04em}.brand-mark{color:#e1bd78}.prototype{font-size:12px;letter-spacing:.18em;border:1px solid rgba(255,255,255,.45);padding:5px 10px;border-radius:100px}.hero{min-height:650px;height:82vh;position:relative;display:flex;align-items:flex-end;background:#234139 url("assets/kyoto-hero.png") center/cover no-repeat}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(9,22,19,.84) 0%,rgba(9,22,19,.48) 52%,rgba(9,22,19,.12) 100%),linear-gradient(0deg,rgba(9,22,19,.65),transparent 45%)}.hero-copy{position:relative;z-index:1;color:#fff;padding:0 clamp(24px,8vw,120px) clamp(64px,9vh,100px);max-width:850px}.eyebrow,.step-label{font-size:12px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--gold)}.hero h1{font-family:"Noto Serif JP",serif;font-weight:500;font-size:clamp(42px,6.5vw,80px);line-height:1.35;letter-spacing:.06em;margin:15px 0 24px}.hero-lead{max-width:640px;font-size:17px;color:rgba(255,255,255,.83);margin:0}.planner{max-width:1100px;margin:0 auto;padding:100px 28px 120px;display:grid;grid-template-columns:300px 1fr;gap:80px}.planner-intro{position:sticky;top:40px;align-self:start}.planner-intro h2,.result h2{font-family:"Noto Serif JP",serif;font-size:34px;line-height:1.45;margin:10px 0 16px}.planner-intro>p:last-child{color:var(--muted)}.planner-form{background:var(--white);padding:42px;border-radius:4px;box-shadow:var(--shadow)}fieldset{border:0;padding:0 0 38px;margin:0 0 38px;border-bottom:1px solid var(--line)}legend{font-family:"Noto Serif JP",serif;font-size:19px;font-weight:600;margin-bottom:18px}legend span{display:inline-grid;place-items:center;width:28px;height:28px;margin-right:9px;border-radius:50%;background:var(--green);color:#fff;font:600 13px "Noto Sans JP"}.choice-grid{display:grid;gap:10px}.choice-grid.four{grid-template-columns:repeat(4,1fr)}.choice-grid.three{grid-template-columns:repeat(3,1fr)}.choice-grid label{cursor:pointer}.choice-grid input{position:absolute;opacity:0}.choice-grid label>span{min-height:82px;border:1px solid var(--line);border-radius:3px;display:flex;flex-direction:column;justify-content:center;align-items:center;font-weight:600;transition:.18s}.choice-grid small{font-size:12px;color:var(--muted);font-weight:400;margin-top:3px}.choice-grid input:checked+span{background:var(--green);border-color:var(--green);color:#fff;box-shadow:0 8px 24px rgba(24,63,55,.2)}.choice-grid input:checked+span small{color:rgba(255,255,255,.7)}.choice-grid input:focus-visible+span{outline:3px solid rgba(199,156,88,.5);outline-offset:2px}.range-wrap{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:18px;color:var(--muted);font-size:13px}.range-wrap input{width:100%;accent-color:var(--green)}.range-value{text-align:center;color:var(--green);font-weight:600;margin:8px 0 0}.generate-button,.primary-button,.secondary-button{border:0;font:600 15px inherit;cursor:pointer;border-radius:2px}.generate-button{width:100%;padding:18px 24px;background:var(--gold);color:#17211f;display:flex;justify-content:space-between;transition:.2s}.generate-button:hover,.primary-button:hover{filter:brightness(1.06);transform:translateY(-1px)}.result{background:#e9eee9;padding:100px max(28px,calc((100vw - 1044px)/2))}.result-head{display:flex;justify-content:space-between;gap:30px;border-bottom:1px solid #bdc9c3;padding-bottom:36px}.result-head>div:first-child{max-width:680px}.result-head p:last-child{color:var(--muted)}.result-stats{display:flex;gap:28px;align-items:center}.result-stats div{display:flex;flex-direction:column;text-align:center}.result-stats strong{font:500 36px "Noto Serif JP",serif;color:var(--green)}.result-stats span{font-size:12px;color:var(--muted)}.timeline{position:relative;margin:56px 0 45px}.timeline:before{content:"";position:absolute;left:90px;top:26px;bottom:26px;width:1px;background:#afc0b8}.stop{display:grid;grid-template-columns:70px 1fr;gap:40px;position:relative;margin:0 0 22px}.stop-time{font:600 16px "Noto Serif JP",serif;text-align:right;padding-top:24px}.stop-card{background:#fff;padding:22px 26px;border-radius:3px;box-shadow:0 8px 28px rgba(22,52,44,.07);position:relative}.stop-card:before{content:"";position:absolute;left:-26px;top:30px;width:9px;height:9px;border-radius:50%;background:var(--gold);border:5px solid #e9eee9}.stop-card h3{font:600 20px "Noto Serif JP",serif;margin:0 0 5px}.stop-card p{margin:0;color:var(--muted);font-size:14px}.stop-card .tag{font-size:11px;letter-spacing:.08em;color:var(--green2);font-weight:700}.course-note{background:var(--green);color:#fff;display:flex;gap:18px;padding:25px 28px;border-radius:3px}.course-note>span{color:var(--gold);font-size:20px}.course-note strong{font-family:"Noto Serif JP",serif}.course-note p{margin:5px 0 0;color:rgba(255,255,255,.75);font-size:14px}.result-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:26px}.primary-button,.secondary-button{padding:14px 24px}.primary-button{background:var(--gold);color:var(--ink)}.secondary-button{background:transparent;border:1px solid #9aaca4;color:var(--green)}.trial-note{text-align:right;font-size:12px;color:#71807a;margin-top:22px}footer{background:#132b26;color:#fff;padding:48px clamp(24px,8vw,120px);display:flex;justify-content:space-between;align-items:center}footer span{font:500 19px "Noto Serif JP",serif}footer p{font-size:13px;color:rgba(255,255,255,.6)}
@media(max-width:800px){.hero{min-height:620px;height:78vh}.hero-shade{background:linear-gradient(0deg,rgba(9,22,19,.86),rgba(9,22,19,.12) 80%)}.hero-copy{padding-bottom:56px}.hero h1{font-size:43px}.hero-lead{font-size:15px}.planner{display:block;padding:72px 20px}.planner-intro{position:static;margin-bottom:30px}.planner-form{padding:28px 20px}.choice-grid.four,.choice-grid.three{grid-template-columns:repeat(2,1fr)}.result{padding:72px 20px}.result-head{display:block}.result-stats{justify-content:flex-start;margin-top:22px}.timeline:before{left:67px}.stop{grid-template-columns:50px 1fr;gap:34px}.stop-time{font-size:14px}.result-actions{display:grid;grid-template-columns:1fr 1fr}.trial-note{text-align:left}footer{display:block}footer p{margin:8px 0 0}}
@media(max-width:430px){.topbar{height:62px}.prototype{font-size:9px}.hero h1{font-size:36px}.planner-intro h2,.result h2{font-size:28px}.choice-grid.four,.choice-grid.three{grid-template-columns:1fr 1fr}.choice-grid label>span{min-height:76px;font-size:14px}.planner-form{padding:25px 16px}.range-wrap{gap:9px}.stop-card{padding:19px}.result-actions{grid-template-columns:1fr}.result-actions button{width:100%}}
.choice-grid.companions{grid-template-columns:repeat(5,1fr)}
.choice-grid.food-choices{grid-template-columns:repeat(3,1fr)}
.choice-grid.preference-grid{grid-template-columns:repeat(4,1fr)}
.choice-grid.preference-grid label>span{min-height:54px}
.choice-grid label>span{text-align:center}
.result-head .time-rounding-note{margin-top:8px;font-size:12px;color:var(--muted)}
.timeline{position:static;margin:48px 0 45px}
.timeline:before{content:none}
.day-group{margin-bottom:56px}
.day-heading{display:flex;align-items:baseline;gap:14px;margin:0 0 24px;padding-bottom:12px;border-bottom:1px solid #bdc9c3}
.day-heading strong{font:600 24px "Noto Serif JP",serif;color:var(--green)}
.day-heading span{font-size:13px;color:var(--muted)}
.day-stops{position:relative}
.day-stops:before{content:"";position:absolute;left:90px;top:26px;bottom:26px;width:1px;background:#afc0b8}
.stop-card.meal-card{border-left:4px solid var(--gold);background:#fffcf5}
.stop-card.meal-card:before{background:var(--green)}
.stop-card.meal-card .tag{color:#9a6c27}
.stop-card.must-card{border-left:4px solid var(--green)}
.stop-card.must-card .tag{color:var(--green)}
.map-link{display:inline-flex;align-items:center;gap:5px;margin-top:12px;color:var(--green2);font-size:13px;font-weight:600;text-decoration:none;border-bottom:1px solid rgba(40,95,82,.35)}
.map-link:hover{color:var(--green);border-color:var(--green)}
@media(max-width:800px){.choice-grid.companions,.choice-grid.food-choices,.choice-grid.preference-grid{grid-template-columns:repeat(2,1fr)}.day-stops:before{left:67px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
