:root{--paper:#fbf8f2;--card:#fffdf8;--ink:#29251f;--muted:#655f55;--line:#ded7cb;--green:#31594e;--orange:#a94708;--water:#cfe5df;--shadow:0 10px 28px #29251f18;font:16px/1.5 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--paper)}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink)}button,input,select{font:inherit}button{cursor:pointer;border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:8px;min-height:42px;padding:8px 12px}button:hover,button[aria-pressed=true]{border-color:var(--green);background:#e9f1ed}button.primary{background:var(--orange);border-color:var(--orange);color:#fff}a{color:inherit;text-underline-offset:3px}img{display:block;max-width:100%}:focus-visible{outline:3px solid var(--orange);outline-offset:3px}.shell{width:min(1600px,100%);margin:auto;padding-inline:clamp(16px,3vw,40px)}.skip{position:absolute;left:-999px}.skip:focus{left:10px;top:10px;z-index:9;background:#fff;padding:12px}.mast{min-height:72px;display:flex;align-items:center;gap:clamp(14px,3vw,36px);border-bottom:1px solid var(--line)}.brand{text-decoration:none;font:400 clamp(25px,3vw,36px)/1 Georgia,serif;white-space:nowrap}.brand i{color:var(--orange)}nav{display:flex;gap:16px;flex:1}nav a{text-decoration:none;padding:12px 4px;border-bottom:3px solid transparent}nav a.active{border-color:var(--orange)}nav b{display:inline-grid;place-items:center;min-width:21px;height:21px;border-radius:100%;font-size:12px;background:var(--green);color:#fff}.locale{display:flex;gap:4px}.locale button{min-height:36px;padding:5px 9px;font-size:13px}.locale button[aria-pressed=true]{background:var(--green);color:#fff}.intro{padding:22px 0 16px;display:grid;grid-template-columns:1fr auto;gap:16px;align-items:end}.intro h1{font:400 clamp(28px,3.2vw,44px)/1.08 Georgia,serif;margin:0}.intro p{color:var(--muted);margin:8px 0 0}.searchbar{display:flex;gap:8px;align-items:center;border-block:1px solid var(--line);padding:12px 0}.searchbar input{min-width:220px;flex:1;border:1px solid var(--line);border-radius:8px;padding:11px;background:#fff}.filters{display:flex;flex-wrap:wrap;gap:7px;padding:14px 0}.filters button{min-height:36px;padding:5px 11px;font-size:14px}.workspace{display:grid;grid-template-columns:minmax(510px,1.08fr) minmax(420px,1fr);gap:22px;align-items:start}.results-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.results-head h2{font:400 25px Georgia,serif;margin:0}.results-head p{margin:0;color:var(--muted);font-size:14px}.cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:14px}.card{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--card);box-shadow:0 2px 8px #29251f09;display:flex;flex-direction:column;min-width:0}.card.selected{outline:3px solid var(--green);outline-offset:2px}.photo{aspect-ratio:4/3;background:#e9e4da;position:relative;overflow:hidden}.photo img{width:100%;height:100%;object-fit:cover}.photo.contain img{object-fit:contain}.photo .missing{height:100%;display:grid;place-items:center;color:var(--muted);padding:18px;text-align:center;background:linear-gradient(135deg,#efebe1,#ddd5c7)}.attribution{font-size:11px;color:var(--muted);padding:5px 12px;border-bottom:1px solid var(--line);overflow-wrap:anywhere}.card-main{padding:13px;display:grid;gap:8px;align-content:start;flex:1}.eyebrow{margin:0;color:var(--green);font-size:12px;font-weight:700;letter-spacing:.04em}.card h3{font:400 21px/1.15 Georgia,serif;margin:0}.meta{font-size:13px;color:var(--muted);margin:0}.summary{font-size:14px;margin:0}.card-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:auto}.card-actions button{min-height:38px;font-size:13px;padding:5px 8px}.more{display:flex;gap:8px;justify-content:center;margin:20px 0}.board-wrap{position:sticky;top:12px;border:1px solid var(--line);background:#f0f4ee;border-radius:13px;overflow:hidden;box-shadow:var(--shadow)}.board-head{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;background:var(--card);border-bottom:1px solid var(--line);gap:6px}.board-head h2{font-size:13px;letter-spacing:.08em;margin:0}.board-actions{display:flex;gap:5px}.board-actions button{min-height:32px;padding:3px 7px;font-size:12px}.city-board{height:clamp(480px,65vh,720px);position:relative;overflow:hidden;touch-action:none}.city-board svg{width:100%;height:100%;display:block}.city-board .ground{fill:#dfe8df;stroke:#b9cbbb;stroke-width:1}.city-board .river{fill:none;stroke:#aad3d4;stroke-width:19;stroke-linecap:round;opacity:.88}.city-board .river-outline{fill:none;stroke:#8fb8bb;stroke-width:21;stroke-linecap:round;opacity:.25}.city-board .marker{cursor:pointer}.city-board .marker rect{stroke:#193e35;stroke-width:1.3}.city-board .marker.selected rect{stroke:var(--orange);stroke-width:3}.city-board .marker text{font-size:11px;paint-order:stroke;stroke:#f7f5ee;stroke-width:3px;stroke-linejoin:round}.city-board .order-line{fill:none;stroke:var(--orange);stroke-width:2.5;stroke-dasharray:7 5}.map-note{position:absolute;bottom:10px;left:10px;background:#fffdfaee;border:1px solid var(--line);padding:8px;border-radius:7px;font-size:11px;max-width:220px}.map-preview{border-top:1px solid var(--line);padding:10px 14px;background:#fffdfa}.map-preview b{font-size:14px}.detail{position:fixed;inset:0 0 0 auto;width:min(520px,100%);background:var(--card);z-index:20;overflow:auto;box-shadow:-12px 0 35px #29251f36;padding:18px}.detail .close{float:right}.detail h2{font:400 32px/1.1 Georgia,serif;margin:12px 0}.detail .photo{margin:12px 0}.detail .actions{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0}.detail dl{display:grid;grid-template-columns:120px 1fr;gap:8px;font-size:14px}.detail dt{color:var(--muted)}.day{padding:25px 0}.day h1{font:400 clamp(30px,4vw,45px)/1.1 Georgia,serif;margin:0}.day-lead{color:var(--muted)}.day-layout{display:grid;grid-template-columns:minmax(280px,.8fr) minmax(420px,1.2fr);gap:22px}.stops{padding:0;margin:0;list-style:none}.stop{border:1px solid var(--line);background:var(--card);border-radius:10px;padding:10px;display:grid;grid-template-columns:48px 1fr auto;gap:10px;align-items:center;margin-bottom:10px}.stop img{width:48px;height:48px;object-fit:cover;border-radius:6px}.stop h3{font:400 18px Georgia;margin:0}.stop p{font-size:13px;color:var(--muted);margin:2px 0}.stop-actions{display:flex;gap:3px}.stop-actions button{min-height:34px;padding:3px 6px}.distance{font-size:13px;margin:-2px 8px 8px;color:var(--green)}.ideas{margin-top:14px;padding:12px;border:1px dashed var(--line);border-radius:9px}.empty{padding:28px;border:1px dashed var(--line);border-radius:10px;color:var(--muted)}.loading{padding:50px;text-align:center}.error{padding:18px;border:1px solid #bd5531;background:#fff0e9}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}#toast{position:fixed;left:50%;bottom:20px;transform:translateX(-50%);background:#29251f;color:#fff;padding:10px 14px;border-radius:8px;opacity:0;pointer-events:none;transition:opacity .15s;z-index:30}#toast.show{opacity:1}
@media(max-width:820px){.mast{min-height:58px;gap:12px}.brand{font-size:24px}.workspace,.day-layout{grid-template-columns:1fr}.board-wrap{position:relative;top:auto;order:-1}.city-board{height:min(60vh,560px)}.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.intro{padding:16px 0 10px}.intro p{font-size:14px}.map-on-mobile{display:block}.desktop-only{display:none}}
@media(max-width:430px){.mast{flex-wrap:wrap;padding-block:10px}.mast nav{order:3;flex-basis:100%;justify-content:space-around}.locale{margin-left:auto}.cards{grid-template-columns:1fr}.searchbar{align-items:stretch;flex-direction:column}.searchbar input{min-width:0}.city-board{height:60vh}.board-actions button{font-size:11px}.detail{padding:14px}.stop{grid-template-columns:42px 1fr}.stop img{width:42px;height:42px}.stop-actions{grid-column:2}.intro h1{font-size:30px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important}}
/* VC-1 Astra: compact photo-led entry, geographic board, accessible day editing. */
button{min-height:44px}input,select,textarea{max-width:100%;min-height:44px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--ink);padding:8px}textarea{width:100%;resize:vertical}.intro{display:block;padding:16px 0 12px}.intro h1{font-size:36px}.intro p{margin:5px 0;font-size:16px}.searchbar{padding:8px 0}.filters{padding:10px 0;align-items:center}.filters button{min-height:44px;font-size:13px}.filters label{font-size:13px}.filters input{width:150px}.filters select{max-width:155px}.workspace{grid-template-columns:minmax(510px,1.02fr) minmax(420px,1fr)}.card-main{gap:10px;padding:15px}.summary{font-size:16px}.eyebrow{font-size:13px}.card-actions button{min-height:44px;font-size:13px}.attribution{font-size:13px;padding:7px 12px}.attribution summary{cursor:pointer;min-height:24px}.board-head{flex-wrap:wrap;padding:10px 12px}.board-actions button{min-height:44px;padding:8px 10px;font-size:14px}.city-board{height:clamp(365px,45vh,510px)}.city-board svg{overflow:hidden}.city-board .river{stroke:#8bbac9;stroke-width:13;opacity:1}.city-board .marker text,.city-board .cluster text{font-size:14px;stroke:none;fill:#fff;font-weight:700}.city-board .marker .place-label{font-size:18px;fill:#29251f;paint-order:stroke;stroke:#fffdf8;stroke-width:5px}.city-board .area-label{font-size:16px;fill:#596a53;font-weight:600;paint-order:stroke;stroke:#e6ebe0;stroke-width:4px}.city-board .marker.selected{filter:drop-shadow(0 0 3px #a94708)}.city-board .map-cue{font-size:17px;fill:#29251f}.city-board .order-line{stroke-width:3}.map-tools{display:flex;flex-wrap:wrap;gap:5px;padding:8px 10px;background:var(--card)}.map-tools button{font-size:13px;min-height:44px;padding:7px 9px}.pan-tools{display:flex;gap:3px}.map-note{position:static;max-width:none;border:0;border-radius:0;display:flex;flex-wrap:wrap;justify-content:space-between;gap:5px;padding:9px 12px;font-size:12px}.location-control{padding:8px 12px;font-size:13px;background:var(--card)}.location-control summary{cursor:pointer;min-height:32px}.day-shelf{position:sticky;bottom:0;z-index:4;background:#fffdf8f7;backdrop-filter:blur(8px);border:1px solid var(--line);border-radius:12px;padding:10px 14px;display:flex;align-items:center;gap:10px;margin:16px 0}.day-shelf>div{display:flex;overflow:auto;gap:5px;flex:1}.day-shelf>div button{font-size:13px;white-space:nowrap}.day-shelf>a{white-space:nowrap}.mobile-switch{display:none}.detail-backdrop{position:fixed;inset:0;background:#29251f55;z-index:20}.detail{position:absolute;inset:0 0 0 auto}.detail>button{display:block;margin-left:auto}.detail .actions a{display:inline-flex;align-items:center;min-height:44px}.detail .photo{margin-top:15px}.day-layout{grid-template-columns:minmax(330px,.9fr) minmax(420px,1.2fr)}.stop{grid-template-columns:70px 1fr;gap:10px}.stop>.stop-actions{grid-column:1/-1;justify-content:flex-end}.stop .attribution{display:none}.stop .photo{width:70px;height:66px;aspect-ratio:auto;border-radius:6px}.stop .photo img{width:100%;height:100%;border-radius:0}.stop .photo.contain img{object-fit:contain}.stop h3 button{font:inherit;text-align:left;padding:3px;border:0;background:transparent}.stop .missing{padding:2px;font-size:10px}.stop-actions button{min-height:44px;min-width:44px}.history{display:flex;gap:7px;align-items:center;flex-wrap:wrap;margin:10px 0}.history a{margin-left:auto}.item-editor,#context-form{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:12px;border:1px solid var(--line);margin:8px 0;border-radius:8px;background:var(--card)}.item-editor label,#context-form label{font-size:13px;display:flex;flex-direction:column;gap:5px;min-width:0}.item-editor label:has(textarea){grid-column:1/-1}.time-review,.account{margin-top:16px;border:1px solid var(--line);padding:12px;border-radius:10px;background:var(--card)}.time-review>summary{font-weight:650;min-height:44px;cursor:pointer}.leg-editor{margin:10px 0;border-bottom:1px solid var(--line);padding-bottom:10px;display:flex;gap:8px;flex-wrap:wrap;align-items:end}.leg-editor p{width:100%;margin:0}.leg-editor label{font-size:13px;display:flex;flex-direction:column;flex:1}.leg-editor input{width:100%}.leg-editor>span{font-size:13px}.account{display:flex;gap:8px;flex-wrap:wrap}.account p{width:100%}.calculation pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px}.review{padding:10px;border:1px solid var(--orange);border-radius:8px}footer{padding-block:24px;font-size:13px}.board-wrap{min-width:0}.more{flex-wrap:wrap}.detail dd{margin:0;overflow-wrap:anywhere}
@media(max-width:1050px){.workspace,.day-layout{grid-template-columns:1fr 1fr}.board-actions{flex-wrap:wrap}.cards{grid-template-columns:1fr}.intro h1{font-size:32px}}
@media(max-width:820px){.intro h1{font-size:28px;line-height:1.15}.intro p{font-size:14px}.workspace,.day-layout{grid-template-columns:1fr}.mobile-switch{display:flex;gap:8px;margin-bottom:10px}.mobile-switch button{flex:1}.mobile-list>.board-wrap{order:-1;position:relative}.mobile-list>.board-wrap .city-board{height:135px}.mobile-list>.board-wrap .map-tools,.mobile-list>.board-wrap .map-note,.mobile-list>.board-wrap .map-preview,.mobile-list>.board-wrap .location-control,.mobile-list>.board-wrap .board-head{display:none}.mobile-city>.list-panel{display:none}.mobile-city>.board-wrap{position:relative;top:0}.mobile-city>.board-wrap .city-board{height:42vh;min-height:300px}.board-wrap{position:relative;top:auto}.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.day-shelf>div{display:none}.day-shelf{padding-bottom:max(10px,env(safe-area-inset-bottom))}.day-shelf a{margin-left:auto}.detail{width:100%;inset:12% 0 0;border-radius:18px 18px 0 0}.detail .photo{max-height:260px}.city-board .area-label{font-size:18px}}
@media(max-width:430px){.shell{padding-inline:14px}.mast{gap:8px;padding-block:8px}.brand{font-size:22px}.mast nav{order:initial;flex-basis:auto;gap:10px;flex:1;justify-content:flex-end}.mast nav a{font-size:13px;padding:10px 1px}.locale{width:100%;justify-content:flex-end;margin-top:-2px}.locale button{min-height:44px;padding:6px 12px}.intro{padding-top:12px}.intro h1{font-size:26px}.searchbar{flex-direction:row}.searchbar input{width:0;flex:1;font-size:14px}.searchbar button{font-size:12px;padding:6px}.filters{gap:5px}.filters button{padding:5px 9px;font-size:13px}.filters label{font-size:12px}.filters select{max-width:140px}.filters input{width:140px}.cards{grid-template-columns:1fr}.results-head h2{font-size:23px}.summary{font-size:16px}.day-layout{grid-template-columns:1fr}.item-editor,#context-form{grid-template-columns:1fr}.item-editor label:has(textarea){grid-column:auto}.detail dl{grid-template-columns:85px 1fr}.day-shelf{font-size:13px}.day-shelf button{font-size:13px}}
.day-layout{align-items:start}.interest-chips,.filter-fields{display:flex;gap:7px;align-items:center}.filters{flex-wrap:wrap}.map-note{line-height:1.35}.day .board-wrap{align-self:start}.card{scroll-margin-top:12px}
@media(max-width:820px){.interest-chips{width:100%;overflow-x:auto;flex-wrap:nowrap;padding-bottom:4px}.interest-chips button{flex-shrink:0}.filter-fields{width:100%;justify-content:space-between}.filter-fields label:last-child{display:flex;align-items:center;gap:5px;flex-wrap:wrap;justify-content:flex-end}.mobile-list>.board-wrap .city-board{height:105px}.filters{padding:6px 0}.intro h1{font-size:26px}}
@media(max-width:430px){.mast{display:grid;grid-template-columns:1fr auto;gap:2px 6px}.mast .brand{font-size:20px}.mast nav{grid-row:2;grid-column:1/-1;justify-content:space-between;gap:14px}.mast nav a{font-size:14px;white-space:nowrap}.locale{grid-row:1;grid-column:2;width:auto;gap:2px}.locale button{font-size:12px;padding:5px 7px}.intro p{font-size:13px}.filter-fields{gap:4px}.filter-fields select{width:116px}.filter-fields label:last-child{font-size:11px;gap:2px}.filter-fields input{width:134px}.intro{padding:10px 0 6px}.searchbar{padding:6px 0}.mobile-switch{margin-bottom:7px}.mobile-list>.board-wrap .city-board{height:95px}}
main{min-height:calc(100vh - 72px)}body.booting #app,body.booting footer{visibility:hidden}body.booting::after{content:'Finding places · 場所を読み込み中…';position:absolute;top:130px;left:5%;color:var(--muted);font-size:16px}

/* My day: a single geographic preview next to its editable itinerary. */
.day-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:24px 0}.day-heading h1{font:400 42px/1.1 Georgia,serif;margin:4px 0 10px}.day-heading .eyebrow{font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--muted);margin:0}.day-heading p{font-size:14px;color:var(--muted)}.day-heading>a{font-size:13px;white-space:nowrap;padding:12px 18px;border:1px solid var(--line);border-radius:30px}
.day-layout.journey-layout{grid-template-columns:minmax(0,1.85fr) minmax(300px,1fr);gap:24px}.journey-layout>.board-wrap{position:sticky;top:16px}.day-itinerary{background:#fffdf7;border:1px solid var(--line);border-radius:16px;padding:20px;min-width:0}.itinerary-heading{display:flex;justify-content:space-between;gap:12px;align-items:center}.itinerary-heading h2{font:400 24px Georgia,serif;margin:0}.itinerary-heading>span{font-size:11px;background:#ebefdf;border-radius:20px;padding:7px 10px;white-space:nowrap}.day-itinerary>.source-note{line-height:1.6;margin:10px 0 18px}
.day-itinerary .stops{padding:0}.day-itinerary .stop{display:grid;grid-template-columns:30px minmax(0,1fr);gap:10px;padding:12px 0;background:transparent;border:0;border-radius:0}.day-itinerary .stop h3{margin:0;font:400 19px/1.2 Georgia,serif}.day-itinerary .stop h3 button{text-align:left;font:inherit;min-height:0;padding:0;border:0;background:none}.day-itinerary .stop p{font-size:11px;line-height:1.5;margin:8px 0;color:var(--muted)}.stop-handle{border:0;background:#edf0e4;display:flex;align-items:center;justify-content:center;padding:0;width:28px;min-height:36px;border-radius:8px;cursor:grab;font-size:12px;user-select:none}.stop-handle span{font-size:14px;color:#7b9279}.stop-handle.dragging{cursor:grabbing;opacity:.5}.stops>li.drop-target{outline:2px dashed #527757;outline-offset:5px;border-radius:12px}
.day-itinerary .stop-actions{grid-column:2;display:flex;flex-direction:row;gap:5px;justify-content:flex-start}.day-itinerary .stop-actions button{font-size:11px;min-height:32px;padding:4px 10px}.day-itinerary .distance{margin:0 0 0 10px;border-left:1px dashed #c0cbb5;padding:8px 0 8px 28px;font-size:10px;color:#7a8170}.stop-duration{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.stop-duration button{min-height:30px;font-size:11px;padding:4px 9px;border-radius:20px;background:#faf9f0}.stop-duration button[aria-pressed=true]{background:#31594e;border-color:#31594e;color:white}.stop-duration>span{font-size:10px;color:var(--muted);margin-left:2px}.day-itinerary .history{border-top:1px solid var(--line);padding-top:12px;margin-top:16px}.day-itinerary .time-review{margin-top:18px}.day-itinerary .time-review summary{font-size:14px}.day-itinerary #context-form,.day-itinerary .item-editor{grid-template-columns:1fr}.day-itinerary .account{display:flex;flex-wrap:wrap;gap:5px}.day-itinerary .account button{font-size:11px;min-height:36px;padding:6px 9px}.day-itinerary .print-actions{margin-top:12px}.day-itinerary .print-actions button{font-size:12px}
@media(max-width:1050px){.day-layout.journey-layout{grid-template-columns:minmax(0,1.5fr) minmax(290px,1fr);gap:16px}.day-itinerary{padding:16px}}
@media(max-width:820px){.day-layout.journey-layout{grid-template-columns:1fr;gap:22px}.journey-layout>.board-wrap{position:relative;top:auto}.day-heading{margin:20px 0;align-items:flex-start;flex-wrap:wrap;gap:10px}.day-heading h1{font-size:32px}.day-heading p{font-size:13px;margin-bottom:0}.day-heading>a{font-size:12px;padding:9px 14px}.day-itinerary .stop{grid-template-columns:32px minmax(0,1fr)}.stop-duration button,.day-itinerary .stop-actions button{min-height:40px;padding-inline:14px}}
@media print{.day-heading>a,.stop-duration,.stop-handle{display:none!important}.day-itinerary{border:0;padding:0}.day-heading h1{font-size:28px}.day-itinerary .stop{display:block}}

.card h3 a{color:inherit;text-decoration:none}.card h3 a:hover{text-decoration:underline;text-underline-offset:4px}.full-detail-link{display:inline-flex;align-items:center;padding:12px 16px;border-radius:10px;background:var(--celadon-d,#315b4f);color:#fff;text-decoration:none;font-weight:600}.full-detail-link:focus-visible{outline:3px solid #b7500a;outline-offset:3px}
