html,body{min-height:100%}body{overflow-x:hidden}body:not(.app-ready){overflow:hidden}body:not(.app-ready) .app-shell{opacity:0;transform:translateY(10px)}body.app-ready .app-shell{opacity:1;transform:none;transition:opacity .35s ease,transform .35s ease}
.splash-screen{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at top,#14181b 0%,#101112 52%,#0b0c0d 100%);color:#f1eeea;opacity:1;visibility:visible;transition:opacity .55s ease,visibility .55s ease}
.splash-screen.is-hidden{opacity:0;visibility:hidden;pointer-events:none}.splash-inner{width:min(92vw,560px);padding:24px 18px 26px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:8px}.splash-mascot{width:68px;max-width:68px;height:auto;filter:drop-shadow(0 10px 18px rgba(0,0,0,.34));animation:mascotFloat 2.6s ease-in-out infinite}.splash-kicker{font-size:12px;font-weight:900;letter-spacing:.26em;color:#b92a2a;margin-top:1px;animation:splashFadeUp .55s ease both .08s}.splash-title{font-family:"Segoe Print","Bradley Hand","Comic Sans MS","Comic Neue",cursive;font-size:clamp(34px,7vw,54px);line-height:.95;color:#f1eeea;margin-top:-4px;animation:splashFadeUp .65s ease both .16s}.splash-tagline{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:#c8c1bc;animation:splashFadeUp .7s ease both .24s}.splash-trail{position:relative;width:min(62vw,240px);height:12px;margin-top:4px}.splash-trail::before{content:"";position:absolute;left:0;right:0;top:50%;height:1px;background:linear-gradient(90deg,rgba(132,123,118,.08) 0%, rgba(132,123,118,.75) 30%, rgba(132,123,118,.12) 100%)}.splash-trail span{position:absolute;top:50%;left:0;width:12px;height:12px;border-radius:999px;background:#3eb7c1;transform:translateY(-50%);box-shadow:0 0 0 4px rgba(62,183,193,.12);animation:trailMove 1.5s ease-in-out infinite .3s}@keyframes trailMove{0%{left:0;opacity:.45}15%{opacity:1}100%{left:calc(100% - 12px);opacity:.92}}@keyframes mascotFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}@keyframes splashFadeUp{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}
/* Hushed Trails — MichiPal v2.1 */
:root{
  --red:#780606;
  --red-bright:#9a1111;
  --ink:#e8e4df;
  --muted:#aaa19a;
  --muted-2:#7e7671;
  --page:#0b0b0b;
  --surface:#101112;
  --surface-2:#111213;
  --card:#171b1d;
  --card-2:#141718;
  --line:#373334;
  --line-soft:#2a2828;
  --cyan:#3eb7c1;
  --gold:#c79a2b;
  --danger:#bc4747;
  --safe-bottom:env(safe-area-inset-bottom,0px);
  --safe-top:env(safe-area-inset-top,0px);
  --ui-font:Aptos,"Segoe UI",Arial,sans-serif;
}
html[data-ui-font="soft"]{--ui-font:"Trebuchet MS","Segoe UI",Arial,sans-serif}
html[data-ui-font="serif"]{--ui-font:Georgia,Cambria,"Times New Roman",serif}
html[data-ui-font="typewriter"]{--ui-font:"Courier New","Liberation Mono",monospace}
*{box-sizing:border-box}
html{background:var(--page);color:var(--ink);font-family:var(--ui-font);scroll-behavior:smooth}
body{margin:0;background:var(--surface);color:var(--ink);min-width:300px}
button,input,textarea,select{font:inherit}
button{touch-action:manipulation}
a{color:inherit}
[hidden]{display:none!important}
.app-shell{min-height:100vh;background:var(--surface);padding-bottom:calc(34px + var(--safe-bottom))}
.app-header{height:calc(72px + var(--safe-top));padding:var(--safe-top) 14px 0;display:grid;grid-template-columns:42px 1fr 42px;align-items:center;position:sticky;top:0;z-index:30;background:rgba(16,17,18,.96);backdrop-filter:blur(12px);border-bottom:1px solid #282627}
.brand-block{text-align:center;line-height:1}.brand-kicker{font-size:9.5px;letter-spacing:.22em;color:#a92525;font-weight:900;margin-bottom:5px}.brand-title{font-family:"Segoe Print","Bradley Hand","Comic Sans MS","Comic Neue",cursive;font-size:29px;line-height:.86;letter-spacing:.01em;color:#f1eeea;font-weight:600}
.icon-btn{appearance:none;width:38px;height:38px;border:1px solid #3b3839;border-radius:8px;background:#151617;color:#ddd6d0;display:grid;place-items:center;cursor:pointer;font-size:22px;line-height:1;padding:0}
.icon-btn:active{transform:translateY(1px)}
.menu-btn{gap:4px;padding:9px 9px}.menu-btn span{display:block;width:18px;height:1.5px;background:#d8d1cc;border-radius:2px}.header-action{font-size:25px;font-weight:300;color:var(--cyan)}
.trip-strip{min-height:44px;display:flex;align-items:center;justify-content:center;gap:10px;border-bottom:1px solid #262425;background:#0e0f10;color:#a59d97;font-size:11px;letter-spacing:.075em;font-weight:850;position:sticky;top:calc(72px + var(--safe-top));z-index:25}.trip-dot{color:var(--red-bright);font-size:12px}.weather-status{appearance:none;border:0;background:transparent;color:#d0c9c3;padding:7px 3px;font-size:11px;letter-spacing:.035em;font-weight:800;cursor:pointer;display:inline-flex;align-items:center;gap:6px}.weather-icon{font-size:19px;line-height:1;letter-spacing:0;font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif;filter:saturate(1.18)}.weather-copy{white-space:nowrap}.weather-status.is-loading{color:#918983}.weather-status.has-error{color:#c08181}.weather-status:focus-visible{outline:1px solid #6c5555;outline-offset:2px;border-radius:3px}
.destination-strip{display:flex;align-items:center;justify-content:center;gap:8px;padding:8px 14px;border-bottom:1px solid #262425;background:#111213}.destination-field{display:flex;align-items:center;gap:6px;min-width:0}.destination-field span{font-size:7.5px;letter-spacing:.08em;text-transform:uppercase;color:#7f7772;font-weight:900}.destination-field select{appearance:none;max-width:150px;border:1px solid #3b3839;border-radius:999px;background:#171819;color:#ded8d3;padding:6px 25px 6px 10px;font-size:9.5px;font-weight:750;outline:none;background-image:linear-gradient(45deg,transparent 50%,#8f8782 50%),linear-gradient(135deg,#8f8782 50%,transparent 50%);background-position:calc(100% - 12px) 10px,calc(100% - 8px) 10px;background-size:4px 4px,4px 4px;background-repeat:no-repeat}.destination-field select:focus{border-color:#7d2424}.destination-arrow{color:#6f6863;font-size:16px;line-height:1}
.main-content{max-width:800px;margin:0 auto;padding:24px 18px 36px}
.view{display:none}.view.is-active{display:block}.view-head{margin-bottom:20px}.eyebrow{display:block;font-size:9px;font-weight:900;letter-spacing:.15em;color:#a92525;margin:0 0 7px}.view h1{font-size:27px;line-height:1.08;margin:0;color:#f1efec;letter-spacing:-.02em}.lede{font-size:12.5px;line-height:1.65;color:#c5bfba;margin:9px 0 0;max-width:650px}
.controls-panel{padding:13px 0 14px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:16px}.search-field{display:block}.search-field span,.field-label{display:block;font-size:8.5px;letter-spacing:.1em;text-transform:uppercase;color:#978f8a;font-weight:900;margin-bottom:6px}.search-field input,.field-control,.form-grid input,.form-grid textarea{width:100%;border:1px solid #454142;background:#0f1011;color:var(--ink);border-radius:6px;padding:10px 11px;outline:none;font-size:12px}.search-field input:focus,.field-control:focus,.form-grid input:focus,.form-grid textarea:focus{border-color:#922020;box-shadow:0 0 0 2px rgba(120,6,6,.22)}
.filter-scroller{display:flex;gap:6px;overflow-x:auto;padding:11px 0 2px;scrollbar-width:none}.filter-scroller::-webkit-scrollbar{display:none}.filter-btn,.mode-btn{flex:0 0 auto;appearance:none;border:1px solid #454142;background:#141414;color:#cfc8c2;border-radius:999px;padding:6px 10px;font-size:9.5px;cursor:pointer}.filter-btn.is-active,.mode-btn.is-active{background:var(--red);border-color:var(--red);color:#fff}.result-line{display:flex;justify-content:space-between;align-items:center;margin-top:8px;font-size:8.5px;color:var(--muted)}.text-btn{appearance:none;border:0;background:none;color:#bb7777;font-size:9px;padding:4px;cursor:pointer}
.card-grid{display:grid;grid-template-columns:1fr;gap:15px}.travel-card{position:relative;border:1px solid rgba(120,6,6,.42);border-left:4px solid var(--red);border-radius:9px;background:var(--card);overflow:hidden;box-shadow:0 9px 23px rgba(0,0,0,.12)}.travel-card.is-complete{opacity:.72}.travel-card.is-complete .cover-image{filter:saturate(.65)}
.card-cover{position:relative;background:#0c0d0d;min-height:170px}.cover-image{display:block;width:100%;aspect-ratio:16/9;object-fit:cover}.cover-placeholder{aspect-ratio:16/9;display:grid;place-items:center;background:radial-gradient(circle at 72% 30%,#272223 0,#151617 45%,#0d0e0e 100%);color:#706865;font-family:"Noto Serif JP","Hiragino Mincho ProN","Yu Mincho",serif;font-size:22px;letter-spacing:.08em}.cover-badge{position:absolute;left:10px;top:10px;background:rgba(14,15,16,.88);border:1px solid rgba(255,255,255,.12);border-radius:999px;padding:5px 8px;color:#d8d1cb;font-size:8px;letter-spacing:.08em;text-transform:uppercase;font-weight:800}.cover-badge.local{color:var(--cyan)}
.photo-credit{padding:5px 12px 0;font-size:7.5px;line-height:1.35;color:#77706c}.photo-credit a{color:#9e6a6a;text-decoration:none}.photo-credit a:hover{text-decoration:underline}
.card-body{padding:11px 12px 13px}.card-head{display:flex;gap:12px;justify-content:space-between;align-items:flex-start}.card-title{font-size:16px;line-height:1.2;margin:0;color:var(--cyan);font-weight:850}.card-local{font-family:"Noto Serif JP","Hiragino Mincho ProN","Yu Mincho",serif;font-size:13px;line-height:1.4;color:#d4cdc8;margin-top:3px}.rating{color:var(--gold);font-size:10px;letter-spacing:.02em;font-weight:900;white-space:nowrap}.rating small{display:block;color:#7d756f;font-size:7px;text-align:right;letter-spacing:.03em;margin-top:2px}
.tag-row{display:flex;flex-wrap:wrap;gap:5px;margin:10px 0}.tag{border:1px solid #383536;border-radius:999px;padding:4px 7px;font-size:7.5px;text-transform:uppercase;letter-spacing:.06em;color:#948c87;background:#141516}.tag.status{border-color:rgba(62,183,193,.35);color:#74cbd2}.tag.event{border-color:rgba(199,154,43,.38);color:#cfb267}
.card-rule{height:1px;background:#2e2c2d;margin:10px 0}.meta-list{display:grid;gap:8px}.meta-row{display:grid;grid-template-columns:68px minmax(0,1fr);gap:8px;align-items:start}.meta-key{font-size:8px;font-weight:900;letter-spacing:.09em;text-transform:uppercase;color:#8f8782;padding-top:1px}.meta-value{font-size:10.5px;line-height:1.5;color:#ddd7d2}.local-address{display:block;font-family:"Noto Serif JP","Hiragino Mincho ProN","Yu Mincho",serif;color:#aaa29d;margin-top:2px}.restaurant-address{color:#c9c2bc;font-size:9.5px;line-height:1.45;margin-top:5px}.card-intro{font-size:11.5px;line-height:1.6;color:#ded9d4;margin:11px 0}.alert-box{border:1px solid rgba(199,154,43,.32);background:#1b1915;border-radius:6px;padding:9px 10px;margin:10px 0}.alert-box strong{display:block;color:#d3b36b;font-size:8px;letter-spacing:.08em;text-transform:uppercase;margin-bottom:4px}.alert-box p{margin:0;font-size:10px;line-height:1.5;color:#cfc6b4}.restaurant-block{padding:9px 0 0}.restaurant-name{font-size:11px;color:#ece6e1;font-weight:750}.restaurant-local{font-family:"Noto Serif JP","Hiragino Mincho ProN","Yu Mincho",serif;color:#aaa29d;font-size:10px;margin-top:2px}.restaurant-note{font-size:9.5px;line-height:1.45;color:#9f9792;margin-top:5px}
.card-actions{display:flex;align-items:center;justify-content:space-between;gap:9px;margin-top:12px;padding-top:11px;border-top:1px solid #302e2f}.card-actions-icons-only{justify-content:flex-end}.card-icon-actions{display:flex;align-items:center;gap:7px;margin-left:auto}.route-card-btn{appearance:none;border:1px solid var(--red);background:var(--red);color:#fff;border-radius:7px;height:36px;padding:0 11px;display:inline-flex;align-items:center;gap:6px;font-size:9px;font-weight:800;cursor:pointer}.route-card-btn svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.card-icon-btn{appearance:none;width:36px;height:36px;flex:0 0 36px;border:1px solid #454142;background:#141516;color:#cfc9c4;border-radius:7px;display:grid;place-items:center;padding:0;cursor:pointer;text-decoration:none}.card-icon-btn svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.card-icon-btn.is-active{border-color:#6f3d40;background:#291719;color:#d56b72}.card-icon-btn.is-active[data-action="complete"]{border-color:#46676a;color:#7bc4ca;background:#142023}.card-icon-btn.is-active[data-action="wishlist"] svg{fill:currentColor}.card-icon-btn.is-danger{color:#bd7373}.card-icon-btn:disabled{opacity:.28;cursor:not-allowed}.card-icon-btn:active,.route-card-btn:active{transform:translateY(1px)}
.empty-state{border:1px dashed #353233;border-radius:8px;padding:28px 18px;text-align:center;color:#918a85;font-size:11px;line-height:1.6}.empty-state strong{display:block;color:#ccc5bf;margin-bottom:4px}
.drawer{position:fixed;left:0;top:0;bottom:0;width:min(86vw,340px);background:#101112;border-right:1px solid #343132;z-index:60;transform:translateX(-103%);transition:transform .22s ease;display:flex;flex-direction:column;padding:calc(18px + var(--safe-top)) 16px calc(18px + var(--safe-bottom));box-shadow:15px 0 50px rgba(0,0,0,.45)}.drawer.is-open{transform:translateX(0)}.drawer-header{display:flex;align-items:flex-start;justify-content:space-between;padding-bottom:16px;border-bottom:1px solid var(--line)}.drawer-header strong{font-size:19px;display:block;color:#f0ece9}.drawer-nav{display:grid;gap:5px;margin-top:15px}.nav-item{appearance:none;border:0;border-left:3px solid transparent;background:transparent;color:#bdb6b0;text-align:left;padding:12px 9px;font-size:12px;font-weight:750;cursor:pointer}.nav-item span{display:inline-block;width:30px;color:#68615d;font-size:8px}.nav-item.is-active{border-left-color:var(--red);background:#171819;color:var(--cyan)}.drawer-foot{margin-top:auto;padding-top:16px;border-top:1px solid var(--line);color:#827b76}.drawer-foot p{font-size:9.5px;line-height:1.5;margin:0 0 10px}.drawer-foot span{font-size:8px;letter-spacing:.06em}.drawer-scrim{position:fixed;inset:0;z-index:55;border:0;background:rgba(0,0,0,.68);backdrop-filter:blur(2px)}
.panel{border:1px solid rgba(120,6,6,.38);border-left:4px solid var(--red);border-radius:8px;background:var(--card);padding:15px 14px;margin-bottom:17px}.panel h2{font-size:13px;color:var(--cyan);margin:0 0 6px}.panel-copy{font-size:10.5px;line-height:1.55;color:#aba39d;margin:0 0 14px}.route-panel .field-label:not(:first-child){margin-top:13px}.origin-preview{font-size:10.5px;color:#ada59f;border-left:2px solid #4a4546;margin:7px 0 1px;padding:5px 8px}.mode-row{display:flex;gap:6px}.route-actions{display:grid;gap:8px;margin-top:18px}.primary-btn,.secondary-btn,.danger-btn{appearance:none;border-radius:6px;padding:10px 12px;font-size:10px;font-weight:800;cursor:pointer}.primary-btn{border:1px solid var(--red);background:var(--red);color:#fff}.secondary-btn{border:1px solid #494445;background:#151617;color:#d5cec8}.danger-btn{border:1px solid rgba(188,71,71,.55);background:#1c1415;color:#d78383}.full{width:100%;display:block;text-align:center}.microcopy{font-size:8.5px;line-height:1.5;color:#77706c;margin:10px 0 0}.section-divider{display:flex;align-items:center;gap:10px;margin:20px 0 12px;color:#8f8782;font-size:8px;letter-spacing:.12em;font-weight:900}.section-divider::before,.section-divider::after{content:"";height:1px;background:#343132;flex:1}.saved-routes{display:grid;gap:9px}.saved-route{border:1px solid #393637;border-radius:7px;background:#151718;padding:11px}.saved-route-head{display:flex;justify-content:space-between;gap:10px}.saved-route strong{font-size:11px;color:#ddd6d1}.saved-route small{font-size:8px;color:#827a75}.saved-route p{font-size:9.5px;color:#99918c;margin:6px 0 10px;line-height:1.5}.saved-route-actions{display:flex;gap:6px}.saved-route-actions button{font-size:8.5px;padding:6px 8px}
.settings-panel .field-label{margin-top:11px}.settings-panel .field-control{margin-bottom:2px}.settings-panel .full{margin-top:11px}.stack-actions{display:grid;gap:8px}.stack-actions .full{margin:0}.file-btn{position:relative;overflow:hidden}.file-btn input{position:absolute;inset:0;opacity:0;cursor:pointer}.credits-list{display:grid;gap:10px}.credit-item{padding-top:9px;border-top:1px solid #2d2b2c}.credit-item:first-child{border-top:0;padding-top:0}.credit-item strong{display:block;font-size:9.5px;color:#d7d0ca;margin-bottom:3px}.credit-item p{font-size:8.5px;line-height:1.45;color:#8e8681;margin:0}.credit-item a{color:#b76a6a;text-decoration:none}.credit-item a:hover{text-decoration:underline}.weather-credit{font-size:8.5px;line-height:1.45;color:#8e8681;margin:0}.weather-credit a{color:#b76a6a;text-decoration:none}
.entry-dialog{width:min(94vw,640px);max-height:88vh;border:1px solid #4a4243;border-radius:10px;background:#121415;color:var(--ink);padding:0;box-shadow:0 25px 80px rgba(0,0,0,.7)}.entry-dialog::backdrop{background:rgba(0,0,0,.76);backdrop-filter:blur(3px)}.entry-dialog form{padding:16px;overflow:auto;max-height:88vh}.dialog-head{display:flex;align-items:flex-start;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:14px}.dialog-head h2{font-size:18px;margin:0;color:#eee9e5}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px}.form-grid label span{display:block;font-size:8.5px;letter-spacing:.06em;text-transform:uppercase;color:#968e89;font-weight:800;margin-bottom:5px}.form-grid label small{text-transform:none;letter-spacing:0;font-weight:400;color:#6f6965}.form-grid .wide{grid-column:1/-1}.form-grid textarea{resize:vertical;min-height:92px}.conditional-fields{margin-top:12px}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;border-top:1px solid var(--line);padding-top:13px;margin-top:17px}
.toast{position:fixed;left:50%;bottom:calc(16px + var(--safe-bottom));transform:translate(-50%,20px);max-width:calc(100vw - 36px);background:#242021;color:#ded7d1;border:1px solid #504647;border-radius:7px;padding:9px 11px;font-size:9.5px;z-index:120;opacity:0;pointer-events:none;transition:.18s ease}.toast.is-visible{opacity:1;transform:translate(-50%,0)}

.drawer-brand-title{font-family:"Segoe Print","Bradley Hand","Comic Sans MS","Comic Neue",cursive!important;font-size:27px!important;line-height:1!important;font-weight:600!important;letter-spacing:.01em!important;color:#f1eeea!important}
@media(min-width:720px){
  body{background:var(--page);padding:26px}.app-shell{max-width:900px;margin:0 auto;border:1px solid #222;box-shadow:0 25px 75px rgba(0,0,0,.45)}.main-content{padding-left:32px;padding-right:32px}.card-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.travel-card{height:100%}.entry-dialog{max-height:82vh}.entry-dialog form{max-height:82vh}
}
@media(max-width:480px){.form-grid{grid-template-columns:1fr}.form-grid .wide{grid-column:auto}.card-actions{gap:6px}.card-icon-actions{gap:4px}.card-icon-btn{width:32px;height:32px;flex-basis:32px}.card-icon-btn svg{width:16px;height:16px}.route-card-btn{height:32px;padding:0 8px}.destination-strip{gap:5px;padding-left:10px;padding-right:10px}.destination-field{gap:4px}.destination-field span{font-size:7px}.destination-field select{max-width:124px;padding-left:8px;font-size:9px}.main-content{padding-left:14px;padding-right:14px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

.travel-card.is-share-target{outline:2px solid rgba(62,183,193,.72);outline-offset:3px;box-shadow:0 0 0 5px rgba(62,183,193,.08),0 9px 23px rgba(0,0,0,.12)}

.card-viewer{display:none;position:fixed;inset:0;z-index:8000}.card-viewer.is-open{display:flex;align-items:center;justify-content:center}.card-viewer-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.78);backdrop-filter:blur(8px)}.card-viewer-panel{position:relative;width:min(920px,88vw);max-height:88vh;overflow:auto;background:#151719;border:1px solid rgba(255,255,255,.12);border-left:3px solid #8f161b;border-radius:20px;padding:28px;box-shadow:0 30px 80px rgba(0,0,0,.6);animation:viewerIn .25s ease}.card-viewer-close{position:absolute;right:18px;top:14px;background:none;border:0;color:#eee;font-size:30px;cursor:pointer}.viewer-image{width:100%;max-height:380px;object-fit:cover;border-radius:14px}.viewer-title{font-size:34px;margin:18px 0 0}.viewer-local{color:#c7bdb8}.viewer-intro{font-size:17px;line-height:1.7;color:#ddd}.viewer-meta{display:grid;grid-template-columns:120px 1fr;gap:10px;margin:20px 0}.card-viewer-nav{display:flex;justify-content:space-between;margin-top:20px}.card-viewer-nav button{background:#26292b;color:#eee;border:1px solid #444;border-radius:8px;padding:10px 16px}@keyframes viewerIn{from{opacity:0;transform:translateY(20px) scale(.98)}to{opacity:1;transform:none}}@media(max-width:700px){.card-viewer{display:none!important}}
@media(min-width:701px){.travel-card{cursor:pointer}}
