:root{--paper:#ecefea;--card:#f8f9f6;--ink:#1b2741;--muted:#5c6576;--line:#cdd3cc;--shu:#c43d28;--on-shu:#fff;--ok:#2f7350;--todo:#96660f;--danger:#b42318;--stamp-blend:multiply;--route-ink:#1b2741;--route-muted:#5c6576;--display:var(--font-display), "Hiragino Mincho ProN", "Yu Mincho", "Noto Serif JP", Georgia, serif;--body:var(--font-body), "Hiragino Sans", "Yu Gothic", "Noto Sans JP", system-ui, sans-serif;--mono:var(--font-mono), ui-monospace, "SFMono-Regular", Menlo, monospace;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--paper:#0f151e;--card:#161e2a;--ink:#e3e6e0;--muted:#9aa3b1;--line:#2b3645;--shu:#e8604a;--on-shu:#1a0d0a;--ok:#6cc59a;--todo:#e0b25a;--danger:#f97066;--stamp-blend:normal;--route-ink:#1b2741;--route-muted:#5c6576;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--paper:#0f151e;--card:#161e2a;--ink:#e3e6e0;--muted:#9aa3b1;--line:#2b3645;--shu:#e8604a;--on-shu:#1a0d0a;--ok:#6cc59a;--todo:#e0b25a;--danger:#f97066;--stamp-blend:normal;--route-ink:#1b2741;--route-muted:#5c6576;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0}body{background:var(--paper);color:var(--ink);font-family:var(--body);-webkit-font-smoothing:antialiased;font-size:16px;line-height:1.6}a{color:inherit;text-underline-offset:3px}:focus-visible{outline:2px solid var(--shu);outline-offset:2px;border-radius:4px}img{max-width:100%;display:block}h1,h2,h3,h4{text-wrap:balance}.sr{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.skip{background:var(--ink);color:var(--paper);z-index:50;border-radius:8px;padding:8px 12px;position:absolute;top:8px;left:-9999px}.skip:focus{left:8px}.mono{font-family:var(--mono);font-size:.85em}.kanji{font-family:var(--display);color:var(--shu);font-weight:500}.wrap{max-width:1280px;margin:0 auto;padding:0 24px}.narrow{max-width:560px;margin:32px auto 64px}.narrow-wide{max-width:880px;margin:32px auto 64px}.stack-lg{flex-direction:column;gap:20px;display:flex}.stack{flex-direction:column;gap:14px;display:flex}.row{align-items:center;gap:8px;display:flex}.wrap-row{flex-wrap:wrap}.empty{color:var(--muted);padding:32px 0}.hint{color:var(--muted);margin:6px 0 0;font-size:13.5px}.prose p{max-width:65ch}.loading-shell{min-height:60vh}h1{font-family:var(--display);letter-spacing:-.01em;margin:8px 0 12px;font-size:clamp(34px,5vw,56px);font-weight:800;line-height:1.05}h2{font:700 20px/1.3 var(--display);margin:0 0 8px}.eyebrow{font:500 12px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.lede{max-width:58ch;color:var(--muted);margin:0;font-size:18px}.bar{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 16px;padding:16px 0;display:flex}.mark{font:500 14px var(--mono);text-decoration:none}.mark b{color:var(--shu);font-weight:500}.nav{flex-wrap:wrap;align-items:center;gap:6px 18px;font-size:14px;display:flex}.nav a{text-decoration:none}.nav a:hover{text-decoration:underline}.lang{font:500 12px var(--mono);border:1px solid var(--line);background:var(--card);border-radius:999px;padding:4px 10px}.demo-banner{border:1px dashed var(--todo);color:var(--todo);border-radius:10px;margin:12px 0 0;padding:10px 14px;font-size:14px}.btn{font:500 14px/1 var(--body);border:1px solid var(--ink);background:var(--ink);color:var(--paper);cursor:pointer;white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:10px 16px;text-decoration:none;display:inline-flex}.btn:disabled{opacity:.55;cursor:default}.btn.ghost{color:var(--ink);border-color:var(--line);background:0 0}.btn.ghost:hover:not(:disabled){border-color:var(--ink)}.btn.shu{background:var(--shu);border-color:var(--shu);color:var(--on-shu)}.btn.small{padding:7px 12px;font-size:13px}.btn.danger,.btn.ghost.danger{color:var(--danger);border-color:var(--danger);background:0 0}.danger-btn{background:var(--danger);border-color:var(--danger);color:#fff}.linkbtn{font:inherit;color:var(--ink);text-underline-offset:3px;cursor:pointer;background:0 0;border:0;padding:0;font-size:14px;text-decoration:underline}.linkbtn:disabled{opacity:.5;cursor:default}.small-link{color:var(--muted);margin-left:8px;font-size:12.5px}.icon-btn{border:1px solid var(--line);background:var(--card);width:32px;height:32px;color:var(--ink);cursor:pointer;border-radius:8px;font-size:15px;line-height:1}.icon-btn:disabled{opacity:.35;cursor:default}.icon-btn.danger{color:var(--danger)}input,textarea,select{font:15px var(--body);color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:10px;width:100%;min-width:0;padding:9px 12px}textarea{resize:vertical;line-height:1.5}input:focus,textarea:focus,select:focus{outline:2px solid var(--shu);outline-offset:0;border-color:#0000}label{flex-direction:column;gap:6px;font-size:13.5px;font-weight:500;display:flex}label.check{flex-direction:row;align-items:center;gap:10px;font-size:15px;font-weight:400}label.check input{width:18px;height:18px;accent-color:var(--shu)}.two,.three{gap:12px;display:grid}.two{grid-template-columns:repeat(2,minmax(0,1fr))}.three{grid-template-columns:repeat(3,minmax(0,1fr))}.panel{background:var(--card);border:1px solid var(--line);border-radius:14px}.pad{padding:18px 20px}.panel h2{font-size:18px}.hero{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:32px;padding:40px 0 36px;display:grid}.hero h1{margin:10px 0 16px;font-size:clamp(40px,6.4vw,84px);line-height:1.02}.vert{writing-mode:vertical-rl;font-family:var(--display);color:var(--shu);letter-spacing:.1em;max-height:320px;margin:0;font-size:clamp(48px,6vw,76px);font-weight:800;line-height:1;overflow:hidden}.status{flex-wrap:wrap;align-items:center;gap:10px 16px;margin-top:26px;display:flex}.pill{font:500 12.5px var(--mono);border:1px solid var(--line);background:var(--card);white-space:nowrap;border-radius:999px;align-items:center;gap:8px;padding:6px 12px;display:inline-flex}.pill.live{border-color:var(--shu);color:var(--shu)}.pill.live:before{content:"";background:var(--shu);border-radius:50%;width:8px;height:8px;animation:1.6s ease-in-out infinite blink}@keyframes blink{50%{opacity:.25}}.big-num{font:500 46px/1 var(--mono);font-variant-numeric:tabular-nums;color:var(--shu)}.status-text{font-size:16px}.traveler-actions{flex-wrap:wrap;margin-top:20px}.trip-list{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px;margin:0 0 48px;padding:0;list-style:none;display:grid}.trip-card{border:1px solid var(--line);background:var(--card);border-radius:14px;flex-direction:column;align-items:flex-start;gap:8px;height:100%;padding:22px;text-decoration:none;display:flex}.trip-card:hover{border-color:var(--ink)}.trip-card h2{margin:4px 0 0;font-size:28px}.trip-card .lede{font-size:15px}.trip-card .go{text-underline-offset:3px;margin-top:auto;font-weight:500;text-decoration:underline}.main{grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:40px;padding-bottom:64px;display:grid}.side{scrollbar-width:thin;flex-direction:column;align-self:start;gap:16px;max-height:calc(100vh - 32px);display:flex;position:sticky;top:16px;overflow:auto}.map-panel{padding:12px}.map-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;padding:2px 6px 10px;display:flex}.map-head h2{font:700 15px var(--body);margin:0}.legend{font:12px var(--mono);color:var(--muted);gap:14px;display:flex}.legend span{align-items:center;gap:6px;display:inline-flex}.sw{border-top:3px solid var(--ink);width:22px;height:0;display:inline-block}.sw-planned{border-top:3px dotted var(--muted)}.map-frame{background:#d6e0e2;border-radius:10px;position:relative;overflow:hidden}.map-canvas{aspect-ratio:4/3;width:100%;min-height:260px}.map-failed{text-align:center;color:#5c6576;place-items:center;margin:0;padding:24px;font-size:14px;display:grid;position:absolute;inset:0}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .map-canvas canvas{filter:invert()hue-rotate(180deg)brightness(.92)contrast(.9)}}:root[data-theme=dark] .map-canvas canvas{filter:invert()hue-rotate(180deg)brightness(.92)contrast(.9)}.mk{all:unset;cursor:pointer;align-items:center;gap:6px;display:flex}.mk-dot{width:22px;height:22px;font:500 11px/1 var(--mono,monospace);color:#fff;background:#1b2741;border:2px solid #fff;border-radius:50%;place-items:center;display:grid;box-shadow:0 1px 3px #0000004d}.mk-label{font:500 12.5px var(--body,sans-serif);color:#1b2741;white-space:nowrap;background:#ffffffd9;border-radius:6px;padding:1px 6px}.mk-planned .mk-dot{color:#5c6576;background:#fff;border-color:#5c6576}.mk-planned .mk-label{color:#5c6576}.mk-current .mk-dot{background:#c43d28;box-shadow:0 0 0 6px #c43d2840}.mk-current .mk-label{color:#c43d28;font-weight:700}.mk-step .mk-dot{background:#c43d28;border-width:2px;width:10px;height:10px}.mk-pin .mk-dot{cursor:grab;background:#c43d28;width:18px;height:18px;box-shadow:0 0 0 6px #c43d2840}.mk-hl .mk-dot{outline-offset:1px;outline:3px solid #c43d28}.far .mk-stop:not(.mk-current):not(.mk-hl):not(:hover):not(:focus-visible) .mk-label{display:none}.mk-stop:hover,.mk-stop:focus-visible,.mk-current,.mk-hl{z-index:2}.mk:focus-visible .mk-dot{outline-offset:2px;outline:3px solid #c43d28}.ticket{border:1px solid var(--line);background-color:var(--card);background-image:repeating-linear-gradient(135deg, color-mix(in srgb, var(--ink) 4%, transparent) 0 1px, transparent 1px 7px);border-radius:14px;padding:16px 18px}.ticket-head{font:500 11.5px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);border-bottom:1px dashed var(--line);justify-content:space-between;gap:8px;padding-bottom:10px;display:flex}.ticket-head b{color:var(--shu);font-weight:500}.stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:12px 0;display:grid}.stat b{font:500 22px/1.2 var(--mono);font-variant-numeric:tabular-nums;display:block}.stat span{color:var(--muted);font-size:12px;line-height:1.3;display:block}.days{gap:3px;display:grid}.days i{background:color-mix(in srgb, var(--ink) 10%, transparent);border-radius:2px;height:10px}.days i.past{background:var(--ink)}.days i.today{background:var(--shu)}.days-l{font:11.5px var(--mono);color:var(--muted);justify-content:space-between;margin-top:6px;display:flex}.follow h2{font:700 15px var(--body)}.follow .btn{margin-top:12px}.follow-toggle .hint{margin-bottom:0}.timeline-head{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:4px;display:flex}.timeline-head h2{font:700 28px var(--display);margin:0}.timeline-head span{font:12.5px var(--mono);color:var(--muted)}.steps{margin:0;padding:0;list-style:none}.step-li{flex-direction:column;gap:12px;padding-bottom:12px;padding-left:40px;display:flex;position:relative}.step-li:before{content:"";background:var(--ink);width:2px;position:absolute;top:0;bottom:0;left:11px}.step-li.planned:before{background:repeating-linear-gradient(to bottom, var(--muted) 0 3px, transparent 3px 9px);opacity:.7}.leg-row{min-height:36px;font:12px/1.4 var(--mono);color:var(--muted);flex-wrap:wrap;align-items:center;gap:4px 10px;padding-top:8px;display:flex}.kind{letter-spacing:.08em;text-transform:uppercase;background:var(--card);border:1px solid var(--line);color:var(--ink);border-radius:4px;padding:2px 7px;font-size:10.5px}.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:20px 22px;scroll-margin-top:16px;position:relative}.stop-card.current{border-color:var(--shu);box-shadow:0 0 0 3px color-mix(in srgb, var(--shu) 14%, transparent)}.stop-card.planned{background:0 0;border-style:dashed;padding:16px 20px}.step-card{margin-left:18px}.step-card.draft{border-style:dashed}.flash{animation:1.2s ease-out flash}@keyframes flash{0%{box-shadow:0 0 0 8px color-mix(in srgb, var(--shu) 35%, transparent)}}.node{background:var(--ink);width:12px;height:12px;box-shadow:0 0 0 4px var(--paper);border-radius:50%;position:absolute;top:26px;left:-35px}.stop-card.planned .node{background:var(--paper);border:2px solid var(--muted)}.stop-card.current .node{background:var(--shu)}.card-top{font:12px var(--mono);color:var(--muted);flex-wrap:wrap;align-items:center;gap:4px 14px;padding-right:96px;display:flex}.step-card .card-top{padding-right:0}.edit-link{color:var(--ink);margin-left:auto}.here{color:var(--shu);font-weight:500}.card h3{font:700 30px/1.15 var(--display);flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin:6px 0 2px;padding-right:96px;display:flex}.stop-card.planned h3{font-size:23px}.card h3 .kanji{font-size:19px}.card h4{font:700 22px/1.2 var(--display);flex-wrap:wrap;align-items:baseline;gap:4px 10px;margin:6px 0 2px;display:flex}.card h4 .kanji{font-size:16px}.meta{color:var(--muted);flex-wrap:wrap;gap:4px 14px;padding-right:96px;font-size:13.5px;display:flex}.story{max-width:62ch;margin:12px 0 14px}.story p{margin:0 0 10px}.story.muted,.muted{color:var(--muted)}.stamp{width:92px;height:92px;transform:rotate(var(--rot));mix-blend-mode:var(--stamp-blend);color:var(--shu);pointer-events:none;position:absolute;top:12px;right:12px}.stamp-planned{color:var(--line);width:78px;height:78px}.stamp text{font-family:var(--mono);letter-spacing:1.1px;fill:currentColor;font-size:7.6px}.stamp .kj{font-family:var(--display);letter-spacing:0;font-weight:800}.photos{aspect-ratio:16/9;border-radius:10px;gap:6px;margin:0;display:grid;overflow:hidden}.photos.n1{aspect-ratio:3/2}.photos.n3{grid-template-rows:1fr 1fr;grid-template-columns:2fr 1fr}.photos.n3 .ph:first-child{grid-row:1/3}.photos.n2{grid-template-columns:1fr 1fr}.ph{all:unset;cursor:zoom-in;background:var(--line);position:relative;overflow:hidden}.ph img{object-fit:cover;width:100%;height:100%}.ph:focus-visible{outline:3px solid var(--shu);outline-offset:-3px}.ph .more{color:#fff;font:500 18px var(--mono);background:#0c101a80;place-items:center;display:grid;position:absolute;inset:0}.card-foot{font:13px var(--mono);color:var(--muted);align-items:center;gap:14px;margin-top:14px;display:flex}.heart{border:1px solid var(--line);cursor:pointer;font:500 13px var(--mono);color:var(--ink);background:0 0;border-radius:999px;align-items:center;gap:6px;padding:6px 12px;display:inline-flex}.heart svg{fill:none;stroke:currentColor;stroke-width:2px;width:14px;height:14px}.heart[aria-pressed=true]{border-color:var(--shu);color:var(--shu)}.heart[aria-pressed=true] svg{fill:currentColor}.comments{border-top:1px solid var(--line);flex-direction:column;gap:6px;margin:12px 0 0;padding:12px 0 0;font-size:14.5px;list-style:none;display:flex}.comment b{margin-right:8px;font-weight:700}.c-form{gap:8px;margin-top:10px;display:flex}.c-form input{padding:7px 12px;font-size:14px}.plan-items{flex-wrap:wrap;gap:6px;display:flex}.tag{font:12px var(--mono);border:1px solid var(--line);color:var(--muted);border-radius:999px;padding:3px 10px}.tag.ok{border-color:var(--ok);color:var(--ok)}.tag.todo{border-color:var(--todo);color:var(--todo)}.loose{flex-direction:column;gap:12px;margin-bottom:12px;display:flex}.loose .step-card{margin-left:0}.lightbox{color:#fff;background:#080a10f0;border:0;width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;padding:16px}.lightbox::backdrop{background:#080a10e6}.lightbox figure{flex-direction:column;justify-content:center;align-items:center;gap:8px;height:calc(100% - 56px);margin:0;display:flex}.lightbox img{object-fit:contain;border-radius:6px;max-width:100%;max-height:calc(100% - 32px)}.lightbox figcaption{color:#d8dbe0;gap:16px;font-size:14px;display:flex}.lb-controls{justify-content:center;gap:8px;display:flex}.lightbox .btn.ghost{color:#fff;border-color:#555}.lightbox .btn:not(.ghost){color:#111;background:#fff;border-color:#fff}.auth{flex-direction:column;gap:16px;margin-top:20px;display:flex}.oauth{gap:8px;display:grid}.oauth-btn{padding:12px 16px;font-size:15px}.oauth-btn svg{width:18px;height:18px}.oauth-btn.apple{color:#fff;background:#000;border-color:#000}.oauth-btn.facebook{color:#fff;background:#1877f2;border-color:#1877f2}.divider{color:var(--muted);align-items:center;gap:12px;margin:0;font-size:13px;display:flex}.divider:before,.divider:after{content:"";border-top:1px solid var(--line);flex:1}.tabs{border-bottom:1px solid var(--line);gap:4px;display:flex}.tabs button{all:unset;cursor:pointer;color:var(--muted);border-bottom:2px solid #0000;margin-bottom:-1px;padding:8px 12px;font-size:14px}.tabs button[aria-selected=true]{color:var(--ink);border-color:var(--shu);font-weight:500}.danger-zone{border-color:color-mix(in srgb, var(--danger) 40%, var(--line))}.admin-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.admin-list li{border:1px solid var(--line);background:var(--card);border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;display:flex}.admin-list li>div:first-child{flex-direction:column;display:flex}.admin-list small{color:var(--muted)}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;padding:28px 0 20px;display:flex}.savebar{background:var(--card);border:1px solid var(--line);z-index:5;border-radius:14px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:16px;padding:12px 16px;display:flex;position:sticky;bottom:0;box-shadow:0 -6px 18px #0000000f}.savebar .hint{flex:1;margin:0}.editor{grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:24px;padding-bottom:48px;display:grid}.editor-map{flex-direction:column;align-self:start;gap:12px;display:flex;position:sticky;top:16px}.editor-map .map-canvas{aspect-ratio:5/4}.editor-tools{flex-direction:column;align-items:flex-start;gap:10px;display:flex}.place-search,.place-search .row{width:100%}.results{border:1px solid var(--line);background:var(--card);border-radius:12px;max-height:280px;margin:8px 0 0;padding:0;list-style:none;overflow:auto}.results li{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.results li:last-child{border-bottom:0}.results small{color:var(--muted);font-size:12.5px;display:block}.edit-stops{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.edit-stop{border:1px solid var(--line);background:var(--card);border-radius:12px}.edit-stop.open{border-color:var(--ink)}.edit-row{align-items:center;gap:10px;padding:10px 12px;display:flex}.edit-num{background:var(--ink);width:26px;height:26px;color:var(--paper);font:500 12px var(--mono);border-radius:50%;flex:none;place-items:center;display:grid}.edit-title{all:unset;cursor:pointer;flex:1;min-width:0}.edit-title small{color:var(--muted);font:12px var(--mono);display:block}.edit-title:focus-visible{outline:2px solid var(--shu);border-radius:4px}.edit-actions{gap:4px;display:flex}.edit-fields{border-top:1px dashed var(--line);flex-direction:column;gap:12px;padding:14px 14px 16px;display:flex}.warnings{border:1px solid var(--todo);color:var(--todo);border-radius:12px;margin:12px 0 0;padding:10px 14px 10px 30px;font-size:14px}.composer{flex-direction:column;gap:16px;margin-top:16px;display:flex}.composer section{flex-direction:column;gap:12px;display:flex}.composer h2{margin:0}.composer-map .map-canvas{aspect-ratio:16/9;min-height:240px}.draft-photos{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;display:grid}.draft-photo{flex-direction:column;gap:6px;margin:0;display:flex;position:relative}.draft-photo img{aspect-ratio:1;object-fit:cover;background:var(--line);border-radius:10px;width:100%}.draft-photo input{padding:6px 8px;font-size:13px}.draft-photo .icon-btn{position:absolute;top:6px;right:6px}.add-photos{aspect-ratio:1;border:2px dashed var(--line);cursor:pointer;color:var(--muted);text-align:center;border-radius:10px;place-items:center;padding:12px;font-weight:500;display:grid}.add-photos:hover,.add-photos:focus-within{border-color:var(--shu);color:var(--shu)}.add-photos input{opacity:0;width:1px;height:1px;position:absolute}.checks{gap:8px}.foot{border-top:1px solid var(--line);color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:8px 24px;padding:20px 0 40px;font-size:13px;display:flex}.foot p{max-width:70ch;margin:0}@media (max-width:960px){.main,.editor{grid-template-columns:minmax(0,1fr)}.side,.editor-map{max-height:none;position:static;overflow:visible}}@media (max-width:640px){.wrap{padding:0 16px}.hero{grid-template-columns:minmax(0,1fr);padding-top:28px}.vert{display:none}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.card{padding:16px}.card h3{font-size:25px}.stamp{width:72px;height:72px}.card-top,.card h3,.meta{padding-right:74px}.step-card{margin-left:0}.two,.three{grid-template-columns:minmax(0,1fr)}.narrow,.narrow-wide{margin-top:20px}}@media (prefers-reduced-motion:reduce){*,:before{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
