:root{--paper:#fbf3e4;--paper-soft:#fff9ef;--surface:#fffdf7;--surface-warm:#f7ead8;--ink:#2c2118;--muted-ink:#7d6d5f;--faint-ink:#a89483;--accent:#cf6a3b;--line:#573d2829;--line-strong:#573d2847;--shadow:0 24px 70px #6343231f;--shadow-soft:0 14px 36px #63432317;--radius-xl:30px;--radius-lg:22px;--radius-md:16px;--sans:"PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans CJK SC", "Source Han Sans SC", system-ui, sans-serif;--mono:"SFMono-Regular", "Cascadia Code", "Liberation Mono", monospace}*{box-sizing:border-box}html{background:var(--paper);overscroll-behavior-y:none;color:var(--ink);font-family:var(--sans);-moz-text-size-adjust:100%;text-size-adjust:100%}body{overscroll-behavior-y:none;background:radial-gradient(circle at 12% -8%, #cf6a3b24, transparent 30vw), radial-gradient(circle at 92% 8%, #ffd7a55c, transparent 26vw), linear-gradient(180deg, var(--paper-soft) 0%, var(--paper) 54%, #f5eadb 100%);min-width:320px;min-height:100dvh;margin:0;overflow-x:hidden}body:before{content:"";pointer-events:none;mix-blend-mode:multiply;background-image:linear-gradient(#2c211806 1px,#0000 1px);background-size:100% 9px;position:fixed;inset:0}a{color:inherit;text-decoration:none}button,input,a{-webkit-tap-highlight-color:#cf6a3b29}button,.inline-action,.route-tile,.place-row,.city-rail a,.want-shortlist-next a,.want-list-next button,.back-link,.app-tabbar a{min-height:44px}.archive-shell{width:min(100%,1180px);min-height:100dvh;padding:clamp(14px, 3vw, 36px) clamp(14px, 4vw, 44px) calc(92px + env(safe-area-inset-bottom));margin:0 auto}.hero-grid{grid-template-columns:minmax(0,1.36fr) minmax(270px,.64fr);align-items:stretch;gap:clamp(14px,2.4vw,28px);margin-top:4px;display:grid}.system-rail{color:var(--muted-ink);flex-wrap:wrap;grid-column:1/-1;gap:8px;display:flex}.system-rail span,.kicker,.panel-label,.tile-index,.tile-detail,.panel-detail,.memory-grid span,.memory-grid data,.clue-strip span,.timeline-metrics span,.timeline-metrics data,.month-stamp span,.month-stamp data,.timeline-record span,.timeline-record data,.record-photo-empty,.place-row span,.place-row data,.city-rail span,.city-rail data,.place-visit span,.place-visit strong,.want-control-panel label span,.want-control-panel dt,.want-shortlist-next span,.want-list-next span,.form-error,.form-success{font-family:var(--mono);letter-spacing:.03em;font-size:.78rem}.system-rail span{border:1px solid var(--line);min-height:36px;box-shadow:var(--shadow-soft);background:#fffdf7ad;border-radius:999px;align-items:center;padding:7px 12px;display:inline-flex}.hero-copy,.status-panel,.empty-state,.skeleton-shell,.section-header,.route-tile,.memory-grid,.clue-strip,.timeline-metrics,.timeline-list,.place-index-layout,.place-detail-list,.want-next-grid{border:1px solid var(--line);border-radius:var(--radius-xl);box-shadow:var(--shadow);background:#fffdf7e6}.hero-copy{align-content:end;min-height:clamp(340px,52dvh,560px);padding:clamp(26px,6vw,70px);display:grid;position:relative;overflow:hidden}.hero-copy:after{content:"";aspect-ratio:1;opacity:.78;background:radial-gradient(circle at 35% 35%,#fff8ed 0 22%,#cf6a3b33 23% 44%,#cf6a3b14 45% 100%);border-radius:999px;width:clamp(74px,13vw,142px);position:absolute;top:clamp(20px,5vw,58px);right:clamp(20px,5vw,58px)}.kicker{color:var(--accent);margin:0 0 16px;font-weight:700}h1{max-width:820px;color:var(--ink);letter-spacing:-.07em;margin:0;font-size:clamp(3.1rem,8vw,7.2rem);font-weight:860;line-height:.92}.lede{max-width:58ch;color:var(--muted-ink);margin:clamp(18px,3vw,30px) 0 0;font-size:clamp(1.02rem,1.5vw,1.22rem);line-height:1.8}.status-panel{background:#f7ead8b8;gap:12px;padding:12px;display:grid}.status-panel>div,.timeline-metrics div,.month-stamp,.record-copy,.place-row,.city-rail a,.place-visit,.want-control-panel,.want-shortlist-next article,.want-list-next li{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);padding:18px}.status-panel>div{align-content:space-between;gap:18px;display:grid}.panel-label,.tile-detail,.panel-detail{color:var(--muted-ink)}.status-panel strong,.timeline-metrics strong,.month-stamp strong{color:var(--accent);letter-spacing:-.06em;font-size:clamp(2.1rem,5vw,4.8rem);line-height:.9}.link-grid{grid-template-columns:1.15fr .9fr .95fr;gap:14px;margin-top:14px;display:grid}.route-tile{align-content:space-between;min-height:166px;padding:20px;transition:transform .26s cubic-bezier(.16,1,.3,1),border-color .26s,box-shadow .26s;display:grid}.route-tile:hover,.route-tile:focus-visible{border-color:#cf6a3b61;outline:0;transform:translateY(-2px);box-shadow:0 20px 52px #cf6a3b29}.route-tile:active,.inline-action:active,.want-shortlist-next a:active,.want-list-next button:active,.back-link:active,.app-tabbar a:active{transform:scale(.98)}.tile-index{color:var(--accent);font-weight:700}.tile-label{letter-spacing:-.055em;font-size:clamp(1.7rem,4vw,3.5rem);font-weight:820;line-height:.98}.empty-state,.skeleton-shell{margin-top:14px;padding:clamp(24px,5vw,56px)}.empty-state h2,.memory-heading h2{letter-spacing:-.06em;margin:0;font-size:clamp(2rem,5vw,5rem);font-weight:820;line-height:.96}.empty-state p{max-width:64ch;color:var(--muted-ink);font-size:1.02rem;line-height:1.8}.inline-action,.want-shortlist-next a,.want-list-next button{background:var(--accent);color:#fffaf3;cursor:pointer;font-family:var(--sans);border:0;border-radius:999px;justify-content:center;align-items:center;margin-top:12px;padding:12px 16px;font-size:.95rem;font-weight:700;transition:transform .18s,opacity .18s;display:inline-flex}.memory-grid{grid-template-columns:minmax(170px,.58fr) minmax(0,1.42fr);gap:14px;margin-top:14px;padding:12px;display:grid}.memory-heading{padding:14px}.memory-grid ol{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0;padding:0;list-style:none;display:grid}.memory-grid li{border:1px solid var(--line);border-radius:var(--radius-lg);background:linear-gradient(180deg, var(--surface), #fff8ed);min-height:176px;padding:0;overflow:hidden}.memory-grid li a{border-radius:inherit;align-content:space-between;min-height:176px;padding:18px;transition:transform .22s,background .22s;display:grid}.memory-grid li a:hover,.memory-grid li a:focus-visible{background:#fff3df;outline:0}.memory-grid li a:active{transform:scale(.985)}.memory-grid strong{letter-spacing:-.055em;margin:15px 0;font-size:clamp(1.45rem,3vw,2.9rem);font-weight:820;line-height:1;display:block}.memory-grid p,.record-copy p,.place-row p,.place-visit p,.want-shortlist-next p,.want-list-next p{color:var(--muted-ink);margin:0;line-height:1.75}.clue-strip{flex-wrap:wrap;gap:10px;margin-top:14px;padding:12px;display:flex}.clue-strip span{border:1px solid var(--line);min-height:42px;color:var(--muted-ink);background:#fff6e8;border-radius:999px;align-content:center;padding:10px 14px}.utility-corner{text-align:right;margin:12px 0 0}.utility-corner a{color:var(--faint-ink);text-underline-offset:4px;font-size:.82rem;text-decoration:underline}.skeleton-line,.skeleton-grid div{border-radius:var(--radius-lg);background:linear-gradient(90deg, var(--surface-warm), var(--surface), var(--surface-warm));background-size:200% 100%;animation:1.2s ease-in-out infinite skeleton-sweep}.skeleton-line-large{height:clamp(84px,16vw,180px);margin-top:24px}.skeleton-grid{grid-template-columns:repeat(3,1fr);gap:14px;margin-top:14px;display:grid}.skeleton-grid div{height:160px}@keyframes skeleton-sweep{0%{background-position:200% 0}to{background-position:-200% 0}}.section-header{padding:clamp(24px,6vw,64px)}.back-link{border:1px solid var(--line);color:var(--accent);background:#fff7ea;border-radius:999px;align-items:center;margin-bottom:18px;padding:9px 13px;font-weight:700;display:inline-flex}.timeline-metrics{grid-template-columns:repeat(3,1fr);gap:12px;margin-top:14px;padding:12px;display:grid}.timeline-list,.place-index-layout,.place-detail-list,.want-next-grid{gap:12px;margin-top:14px;padding:12px;display:grid}.timeline-month{grid-template-columns:minmax(170px,.38fr) minmax(0,1.62fr);gap:12px;display:grid}.month-stamp{background:var(--surface-warm);color:var(--ink);align-content:start;gap:14px;display:grid}.month-records{gap:12px;display:grid}.timeline-record{grid-template-columns:minmax(0,1.12fr) minmax(220px,.88fr);gap:12px;display:grid}.record-copy h2,.place-row strong,.city-rail strong,.place-visit h2,.want-shortlist-next h2,.want-list-next strong{color:var(--ink);letter-spacing:-.055em;margin:14px 0;font-size:clamp(1.55rem,3.5vw,3.6rem);font-weight:820;line-height:1;display:block}.record-photos{grid-auto-columns:minmax(120px,1fr);grid-auto-flow:column;gap:10px;min-height:220px;display:grid;overflow:hidden}.record-photos img,.place-photo-grid img{border-radius:var(--radius-md);object-fit:cover;background:var(--surface-warm);width:100%;height:100%;min-height:220px}.record-photo-empty{border:1px dashed var(--line-strong);border-radius:var(--radius-md);min-height:220px;color:var(--muted-ink);background:#fff6e8;place-items:center;display:grid}.place-index-layout{grid-template-columns:minmax(0,1.5fr) minmax(260px,.7fr)}.place-list,.city-rail,.place-detail-list{gap:12px;display:grid}.place-row,.city-rail a{align-content:space-between;min-height:138px;transition:transform .22s,box-shadow .22s;display:grid}.place-row:hover,.city-rail a:hover{box-shadow:var(--shadow-soft);transform:translateY(-1px)}.place-visit{grid-template-columns:minmax(0,1fr) minmax(240px,.8fr);gap:16px;display:grid}.place-photo-grid{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.want-next-grid{grid-template-columns:minmax(260px,.58fr) minmax(0,1.8fr)}.want-control-panel label{gap:8px;margin-top:22px;display:grid}.want-filter-panel{grid-template-columns:minmax(0,1.4fr) minmax(140px,.8fr) minmax(140px,.8fr);gap:10px;display:grid}.want-filter-panel label{gap:7px;display:grid}.want-filter-panel span{color:var(--muted-ink);font-size:.82rem;font-weight:700}.want-control-panel input,.want-filter-panel input,.want-filter-panel select{border:1px solid var(--line-strong);background:var(--surface);width:100%;color:var(--ink);font:inherit;border-radius:14px;padding:13px 14px}.form-error,.form-success{border-radius:14px;margin-top:14px;padding:11px 12px;display:block}.form-error{color:#fffaf3;background:#8f3929}.form-success{background:var(--surface-warm)}.want-control-panel dl{grid-template-columns:1fr 1fr;gap:10px;margin-top:24px;display:grid}.want-control-panel dl div{border:1px solid var(--line);background:#fff7ea;border-radius:16px;padding:12px}.want-control-panel dd{color:var(--accent);letter-spacing:-.06em;margin:8px 0 0;font-size:2.6rem;font-weight:820;line-height:.95}.want-board,.want-shortlist-next,.want-list-next,.want-section{gap:12px;display:grid}.want-shortlist-next{grid-template-columns:repeat(3,1fr)}.want-list-next{margin:0;padding:0;list-style:none}.want-list-next li{grid-template-columns:minmax(0,1fr) auto;align-items:center}.want-list-next button:disabled{opacity:.58;cursor:wait}.want-helper{color:var(--muted-ink);margin:14px 0 0;font-size:.92rem;line-height:1.7}.want-section{border:1px solid var(--line);border-radius:var(--radius-xl);background:#fffdf7b8;padding:12px}.want-section-heading{padding:6px 6px 2px}.want-section-heading h2{letter-spacing:-.055em;margin:0;font-size:clamp(1.65rem,3.5vw,3rem);line-height:1}.want-section-heading p:last-child{color:var(--muted-ink);margin:10px 0 0;line-height:1.7}.want-archive{background:#f7ead885}.want-list-archive li{background:#fff8ed}.want-list-next button.secondary-action,.load-more-action.secondary-action{color:var(--accent);background:#fff2df;border:1px solid #cf6a3b42}.load-more-action{background:var(--ink);color:#fffaf3;cursor:pointer;border:0;border-radius:999px;min-height:48px;padding:12px 18px;font-size:.96rem;font-weight:800}.load-more-action:active{transform:scale(.98)}.want-inline-empty{box-shadow:none;margin-top:0}.app-tabbar{right:auto;bottom:calc(12px + env(safe-area-inset-bottom));z-index:20;will-change:transform;-webkit-backdrop-filter:blur(18px);contain:layout paint;background:#fffdf7e0;border:1px solid #573d282e;border-radius:999px;grid-template-columns:repeat(4,1fr);gap:6px;width:min(620px,100% - 24px);margin:0;padding:6px;display:grid;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 14px 38px #6343232e,inset 0 1px #ffffffb3}.app-tabbar a{color:var(--muted-ink);border-radius:999px;place-items:center;font-size:.9rem;font-weight:700;transition:transform .18s,background .18s,color .18s;display:inline-grid;position:relative}.app-tabbar a[data-active=true]{background:var(--accent);color:#fffaf3;box-shadow:0 10px 22px #cf6a3b38}.app-tabbar a:hover,.app-tabbar a:focus-visible{color:var(--accent);background:#fff2df;outline:0}.app-tabbar a[data-active=true]:hover,.app-tabbar a[data-active=true]:focus-visible{background:var(--accent);color:#fffaf3}h1,.empty-state h2,.memory-heading h2,.record-copy h2,.place-row strong,.city-rail strong,.place-visit h2,.want-shortlist-next h2,.want-list-next strong{word-break:keep-all;overflow-wrap:anywhere}@media (max-width:900px){.archive-shell{padding:12px 12px calc(92px + env(safe-area-inset-bottom))}.hero-grid,.link-grid,.memory-grid,.memory-grid ol,.timeline-metrics,.timeline-month,.timeline-record,.place-index-layout,.place-visit,.place-photo-grid,.want-next-grid,.want-shortlist-next,.want-list-next li,.skeleton-grid{grid-template-columns:1fr}.hero-copy{min-height:330px;padding:26px}.status-panel{scroll-snap-type:x mandatory;grid-template-columns:repeat(3,minmax(0,1fr));overflow-x:auto}.status-panel>div{scroll-snap-align:start;min-width:160px}.record-photos{scroll-snap-type:x mandatory;grid-auto-columns:minmax(74%,1fr);grid-auto-flow:column;padding-bottom:2px;overflow-x:auto}.record-photos img{scroll-snap-align:start}.want-control-panel{position:static}}@media (max-width:720px){.section-header,.empty-state,.skeleton-shell{padding:20px}h1{font-size:clamp(2.72rem,16vw,4.6rem);line-height:.95}.mobile-hero h1,.place-shell .section-header h1,.want-shell .section-header h1,.timeline-shell .section-header h1{font-size:clamp(2.2rem,13vw,4rem)}.lede,.empty-state p,.record-copy p,.place-row p,.place-visit p,.want-shortlist-next p,.want-list-next p{font-size:.99rem;line-height:1.82}.kicker,.panel-label,.panel-detail,.tile-index,.tile-detail,.timeline-metrics span,.timeline-metrics data,.month-stamp span,.month-stamp data,.timeline-record span,.timeline-record data,.place-row span,.place-row data,.city-rail span,.city-rail data,.place-visit span,.place-visit strong,.want-control-panel label span,.want-control-panel dt,.want-shortlist-next span,.want-list-next span,.back-link,.inline-action,.want-shortlist-next a,.want-list-next button{font-size:.84rem}.status-panel,.timeline-metrics{gap:10px;display:flex;overflow-x:auto}.status-panel>div,.timeline-metrics div{min-width:158px}.route-tile,.memory-grid li,.status-panel>div,.timeline-metrics div,.city-rail a,.want-shortlist-next article,.want-list-next li,.place-row,.place-visit,.timeline-record{min-height:auto;padding:16px}.tile-label,.status-panel strong,.timeline-metrics strong,.month-stamp strong,.memory-grid strong,.record-copy h2,.place-row strong,.city-rail strong,.want-shortlist-next h2,.want-list-next strong{font-size:clamp(1.52rem,8vw,2.72rem);line-height:1.02}.record-photos img,.place-photo-grid img,.record-photo-empty{min-height:230px;max-height:360px}.place-photo-grid{grid-template-columns:repeat(2,1fr)}.want-filter-panel{grid-template-columns:1fr}.want-control-panel input,.want-filter-panel input,.want-filter-panel select,.want-list-next button,.inline-action,.want-shortlist-next a,.load-more-action{width:100%;padding:13px 14px}.app-tabbar{bottom:calc(10px + env(safe-area-inset-bottom));padding:5px}.app-tabbar a{font-size:.82rem}}
