:root{--bg:#FFF6EA;--surface:#FFFFFF;--surface2:#FFE6D2;--ink:#23153C;--muted:#675C7A;--line:rgba(35,21,60,0.14);--p:#FF4D6D;--a2:#FFB703;--a3:#06D6A0;--a4:#7B61FF;--deep:#23153C;--onDeep:#FFF6EA;--onDeepMuted:#CFC4E0;--at:#C8174D}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,system-ui,sans-serif;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%}
button{font:inherit;cursor:pointer;color:inherit}
a{color:var(--at)}
:focus-visible{outline:3px solid var(--a4);outline-offset:2px}
.disp{font-family:'Bricolage Grotesque',sans-serif;font-weight:800;letter-spacing:-1px}
.mono{font-family:'JetBrains Mono',monospace}
.wrap{max-width:1240px;margin:0 auto;padding-left:20px;padding-right:20px}
@media(min-width:700px){.wrap{padding-left:32px;padding-right:32px}}
section{padding-bottom:84px}
.h2row{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-bottom:22px}
.h2row h2{font-size:clamp(34px,5vw,44px);margin:0}
.sub{margin:0;color:var(--muted);font-size:15px}
.card{background:var(--surface);border:2.5px solid var(--ink);box-shadow:5px 5px 0 var(--ink);border-radius:24px}
.lift{transition:transform .2s ease,box-shadow .2s ease}
.lift:hover{transform:translate(-2px,-2px);box-shadow:7px 7px 0 var(--ink)}
.chip{display:inline-block;font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:600;letter-spacing:.5px;padding:5px 10px;border-radius:999px;border:1.5px solid var(--ink)}
.pill{border:2.5px solid var(--ink);border-radius:999px;padding:0 18px;min-height:44px;font-weight:600;background:var(--surface)}
.pill.on{background:var(--ink);color:var(--bg)}
.btn{border:2.5px solid var(--ink);border-radius:14px;padding:0 16px;min-height:44px;font-weight:600;background:var(--p);display:inline-flex;align-items:center;text-decoration:none;color:var(--ink)}
.btn.alt{background:var(--surface)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
@keyframes twinkle{0%,100%{opacity:.25}50%{opacity:1}}
@keyframes bob{0%,100%{transform:translateY(0) rotate(var(--r))}50%{transform:translateY(-6px) rotate(var(--r))}}
@keyframes rise{from{transform:translateY(18px);opacity:0}to{transform:none;opacity:1}}
@keyframes kb{from{transform:scale(1)}to{transform:scale(1.12)}}
@keyframes pop{0%{transform:scale(.6);opacity:0}100%{transform:none;opacity:1}}
.rise{animation:rise .7s ease-out both}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* gate */
#gate{position:fixed;inset:0;z-index:50;background:var(--bg);display:flex;align-items:center;justify-content:center;padding:24px}
.gatebox{width:100%;max-width:380px;display:flex;flex-direction:column;align-items:center;gap:18px;text-align:center}
.dots{display:flex;gap:14px}
.dots span{width:20px;height:20px;border-radius:50%;border:2.5px solid var(--ink);background:#fff}
.dots span.f{background:var(--p)}
.dots.bad{animation:shake .35s}
@keyframes shake{25%{transform:translateX(-8px)}75%{transform:translateX(8px)}}
.keys{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;width:100%}
.keys button{height:62px;border-radius:18px;border:2.5px solid var(--ink);box-shadow:3px 3px 0 var(--ink);background:#fff;font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:26px}
.keys button.ghost{border:0;box-shadow:none;background:transparent;font-size:15px;font-family:Inter,sans-serif;font-weight:600;color:var(--muted)}
.who{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;width:100%}
.who button{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:10px 10px 12px;border-radius:20px;border:2.5px solid var(--ink);box-shadow:3px 3px 0 var(--ink);text-align:left}
.who img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:12px;border:2px solid var(--ink)}

/* header */
header.top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding-top:20px;padding-bottom:20px}
.logo{display:flex;align-items:center;gap:10px}
nav.sec{display:flex;flex-wrap:wrap;gap:2px;font-size:14px;font-weight:500}
nav.sec a{padding:10px 10px;color:var(--ink);text-decoration:none}
.me{display:flex;align-items:center;gap:8px;background:var(--surface);border:2px solid var(--ink);border-radius:999px;padding:4px 12px 4px 4px;font-size:13px;font-weight:600}
.me img{width:32px;height:32px;border-radius:50%;object-fit:cover}
@media(max-width:820px){nav.sec{display:none}}

/* hero */
.hero{display:flex;flex-wrap:wrap;gap:44px;align-items:center;padding-top:20px}
.hero h1{font-size:clamp(54px,9vw,112px);line-height:.92;letter-spacing:-3px;margin:24px 0 0}
.hero h1 span{display:block}
.lede{font-size:19px;line-height:1.6;color:var(--muted);max-width:500px;margin:24px 0 28px}
.stickers{display:flex;flex-wrap:wrap;gap:10px;align-items:stretch}
.cdn{background:var(--ink);color:var(--bg);border-radius:20px;padding:14px 16px;display:flex;gap:6px;align-items:flex-end}
.cdn div{width:62px;text-align:center;font-variant-numeric:tabular-nums}
.cdn b{display:block;font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:42px;line-height:1}
.cdn small{font-family:'JetBrains Mono',monospace;font-size:10px;opacity:.8}
.stk{border-radius:20px;padding:14px 18px;display:flex;flex-direction:column;justify-content:center;gap:4px;border:2px solid var(--ink);min-width:150px}
.stk span{font-size:12px;font-weight:600}
.stk b{font-family:'JetBrains Mono',monospace;font-size:17px}
.stage{position:relative;height:520px;flex:1 1 420px;min-width:0}
.slides{position:absolute;inset:0 40px 60px 0;border-radius:32px;border:3px solid var(--ink);box-shadow:8px 8px 0 var(--ink);overflow:hidden;background:var(--surface2)}
.slides .s{position:absolute;inset:0;opacity:0;transition:opacity 1.4s ease}
.slides .s.on{opacity:1}
.slides img{width:100%;height:100%;object-fit:cover;animation:kb 10s ease-out infinite alternate}
.slidecap{position:absolute;left:20px;bottom:18px;display:flex;flex-direction:column;gap:10px;align-items:flex-start}
.slidecap .lab{background:#fff;color:var(--ink);font-family:'JetBrains Mono',monospace;font-size:12px;font-weight:600;padding:6px 10px;border-radius:8px}
.sdots{display:flex}
.sdots button{background:none;border:0;padding:0;width:26px;height:26px;display:flex;align-items:center;justify-content:center}
.sdots i{display:block;height:10px;width:10px;border-radius:10px;border:2px solid var(--ink);background:rgba(255,255,255,.6);transition:width .3s}
.sdots button.on i{width:22px;background:#fff}
.pola{position:absolute;width:138px;background:#fff;padding:10px 10px 6px;margin:0;border:2.5px solid var(--ink);box-shadow:5px 5px 0 var(--ink);animation:bob 4s ease-in-out infinite}
.pola img{display:block;width:100%;height:124px;object-fit:cover;border-radius:3px}
.pola figcaption{font-family:Caveat,cursive;font-size:24px;text-align:center;margin-top:4px}
@media(max-width:560px){
  .stage{height:450px;flex-basis:100%}
  .slides{inset:0 16px 120px 0}
  .pola{width:100px}.pola img{height:88px}.pola figcaption{font-size:19px}
  .pola:nth-of-type(1){top:300px!important;left:0!important}
  .pola:nth-of-type(2){top:322px!important;left:33%!important}
  .pola:nth-of-type(3){top:296px!important;left:auto!important;right:0}
  .pola:nth-of-type(4){top:12px!important;left:auto!important;right:-4px}
  .slidecap{bottom:12px;left:12px}
}

/* crew */
.grid4{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:18px}
.pass{overflow:hidden}
.pass .top{display:flex;align-items:center;gap:12px;padding:14px 16px;border-bottom:2.5px solid var(--ink)}
.pass .top img{width:64px;height:64px;border-radius:50%;border:3px solid var(--ink);object-fit:cover;background:#fff;flex:none}
.route{padding:16px 20px 6px;display:flex;align-items:center;gap:10px}
.route b{font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:30px;letter-spacing:-1px}
.meta{padding:8px 20px 14px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.meta small{display:block;font-family:'JetBrains Mono',monospace;font-size:10px;color:var(--muted)}
.meta b{font-size:14px}
.meta b a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--p);text-decoration-thickness:2px}
.ret{padding:0 20px 10px;font-size:12px;color:var(--muted)}
.ret .mono{font-size:10px;font-weight:600;background:var(--surface2);padding:2px 6px;border-radius:4px;color:var(--ink)}
.flrow{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:0 16px 12px 20px}
.stt{font-size:12px;font-weight:700;padding:4px 10px;border-radius:999px;border:1.5px solid var(--ink);background:#FFD3DC;color:#8E0F33}
.stt.ok{background:#C8F5E7;color:#0B5A44}
.link{background:none;border:0;padding:8px 4px;font-weight:600;font-size:13px;color:var(--at);text-decoration:underline;min-height:40px}
.flform{padding:14px 16px 18px;display:flex;flex-direction:column;gap:12px}
.fl{border:2px solid var(--ink);border-radius:14px;padding:10px 12px 12px;margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.fl legend{font-weight:700;font-size:13px;padding:0 6px}
.fl label{display:flex;flex-direction:column;gap:3px;font-size:11px;font-weight:600;color:var(--muted)}
.fl input{border:2px solid var(--ink);border-radius:10px;padding:6px 8px;font:inherit;font-size:14px;color:var(--ink);min-height:38px;width:100%;background:#fff}
.flnote{font-size:12px;color:var(--muted);margin:0}
.steps{border-top:2.5px dashed var(--line);padding:12px 16px 16px;display:flex;gap:4px}
.steps button{flex:1;display:flex;flex-direction:column;gap:6px;background:none;border:0;padding:4px 0;min-height:44px;text-align:left}
.steps i{display:block;height:7px;border-radius:7px;background:var(--surface2);border:1.5px solid var(--ink)}
.steps button.on i{background:var(--a3)}
.steps span{font-size:10px;font-weight:600;color:var(--muted)}
.steps button:disabled{cursor:default}
.when{font-size:11px;color:var(--muted);padding:0 16px 14px;margin-top:-6px}

/* map */
.maprow{display:flex;flex-wrap:wrap;gap:18px}
.mapbox{flex:999 1 560px;min-width:0;height:560px;border-radius:26px;overflow:hidden;border:2.5px solid var(--ink);box-shadow:5px 5px 0 var(--ink);position:relative;background:#0E3B4A}
#map{position:absolute;inset:0}
.mapctl{position:absolute;left:12px;top:12px;display:flex;gap:8px;flex-wrap:wrap;z-index:2}
.mapctl button{background:#fff;border:2px solid var(--ink);border-radius:999px;padding:0 14px;min-height:40px;font-weight:600;font-size:13px}
.mapctl button.on{background:var(--a2)}
.drives{flex:1 1 300px;min-width:0;display:flex;flex-direction:column;gap:14px}
.drive{border:2.5px solid var(--ink);border-radius:22px;padding:18px 20px}
.drive .mono{font-size:11px;font-weight:600;letter-spacing:1px}
.drive h3{font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:23px;margin:6px 0 4px}
.drive p{margin:0;font-size:14px}
.carpin{width:30px;height:30px;border-radius:50%;background:var(--a2);border:2.5px solid var(--ink);display:flex;align-items:center;justify-content:center;box-shadow:2px 2px 0 var(--ink)}
.pin{width:18px;height:18px;border-radius:50%;border:2.5px solid #fff;box-shadow:0 0 0 2px var(--ink)}
.mapboxgl-popup-content{font-family:Inter,sans-serif;border-radius:12px;border:2px solid var(--ink);padding:10px 14px;font-size:13px}

/* days */
.days{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:16px}
.day{text-align:left;padding:0;overflow:hidden;border-radius:22px;border:2.5px solid var(--ink);display:flex;flex-direction:column;min-height:330px;background:var(--surface);box-shadow:4px 4px 0 var(--ink)}
.day.sel{box-shadow:6px 6px 0 var(--ink);transform:translate(-2px,-2px)}
.day .ph{height:130px;border-bottom:2.5px solid var(--ink);overflow:hidden}
.day .ph img{width:100%;height:100%;object-fit:cover;display:block}
.day .bd{padding:16px;display:flex;flex-direction:column;gap:6px;flex:1}
.day .num{display:flex;justify-content:space-between;align-items:flex-start}
.day .num b{font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:54px;line-height:.9;letter-spacing:-2px}
.day .num span{font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:600;text-align:right;line-height:1.5}
.day h3{font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:20px;margin:8px 0 0}
.day p{font-size:13px;line-height:1.5;margin:0}
.day .ft{margin-top:auto;padding-top:10px;display:flex;justify-content:space-between;font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:600}
.panel{margin-top:18px;background:var(--deep);color:var(--onDeep);border-radius:28px;padding:28px;display:flex;flex-wrap:wrap;gap:32px}
.panel h3{font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:36px;letter-spacing:-1px;margin:14px 0 4px}
.panel .note{color:var(--onDeepMuted);margin:0 0 18px;font-size:15px}
.checks{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.ck{width:100%;display:flex;align-items:center;gap:14px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);border-radius:14px;padding:12px 14px;text-align:left;min-height:48px;color:var(--onDeep)}
.ck.done{background:rgba(6,214,160,.18)}
.box{width:26px;height:26px;flex:none;border-radius:8px;display:flex;align-items:center;justify-content:center;border:2px solid rgba(255,255,255,.5)}
.ck.done .box{background:var(--a3);border-color:var(--a3);animation:pop .25s}
.ck .t{flex:1;font-size:15px}
.ck.done .t{text-decoration:line-through;opacity:.75}
.ck .by{font-size:11px;opacity:.7;white-space:nowrap}
.opt{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);border-radius:16px;padding:14px 16px}
.opt b{font-size:15px}
.opt p{color:var(--onDeepMuted);font-size:13px;margin:3px 0 0;line-height:1.5}

/* explore */
.exrow{display:flex;flex-wrap:wrap;gap:18px;align-items:flex-start}
.exgrid{flex:999 1 560px;min-width:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:14px}
.spot{padding:0;overflow:hidden;border-radius:20px;border:2.5px solid var(--ink);background:var(--surface);box-shadow:4px 4px 0 var(--ink);text-align:left}
.spot.sel{box-shadow:6px 6px 0 var(--p)}
.spot .ph{height:150px;position:relative;display:flex;justify-content:space-between;align-items:flex-start;padding:10px;border-bottom:2.5px solid var(--ink)}
.spot .ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.spot .ph .chip,.spot .ph .dt{position:relative}
.dt{font-family:'JetBrains Mono',monospace;font-size:10px;font-weight:600;background:#fff;padding:3px 7px;border-radius:6px}
.spot .bd{padding:12px 14px 14px}
.spot b{font-family:'Bricolage Grotesque',sans-serif;font-size:15px}
.spot small{display:block;color:var(--muted);font-size:12px;margin-top:3px}
.detail{flex:1 1 330px;min-width:0;overflow:hidden;position:sticky;top:16px}
.detail .ph{height:260px;position:relative;display:flex;align-items:flex-end;padding:12px;border-bottom:2.5px solid var(--ink)}
.detail .ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.detail .ph span{position:relative;font-size:11px;background:rgba(255,255,255,.92);padding:4px 8px;border-radius:6px}
.detail .bd{padding:20px 22px 22px}
.detail h3{font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:28px;margin:12px 0 6px}
.detail p{font-size:15px;line-height:1.6;margin:12px 0 18px}

/* todo + wish */
.two{display:flex;flex-wrap:wrap;gap:18px}
.todo{flex:1 1 520px;min-width:0;padding:26px}
.bar{height:12px;background:var(--surface2);border:2px solid var(--ink);border-radius:99px;margin:16px 0 14px;overflow:hidden}
.bar i{display:block;height:100%;background:var(--p);transition:width .5s}
.tlist{list-style:none;margin:0;padding:0}
.tlist li{border-top:1.5px solid var(--line)}
.trow{width:100%;display:flex;align-items:flex-start;gap:12px;padding:12px 2px;text-align:left;min-height:44px}
.trow .box{border:2.5px solid var(--ink);background:#fff;width:30px;height:30px;margin-top:1px;padding:0}
.trow.mine .t::after{content:'You';font-family:'JetBrains Mono',monospace;font-size:10px;font-weight:600;background:var(--p);border:1.5px solid var(--ink);border-radius:999px;padding:1px 6px;margin-left:8px;vertical-align:2px}
.tbody{flex:1;min-width:0}
.tmeta{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:7px}
.tmeta .st{font-size:11px;padding:3px 9px}
.own{display:inline-flex;align-items:center;gap:5px;font-size:12px;border:1.5px solid var(--ink);border-radius:999px;padding:2px 9px 2px 3px;background:#fff}
.own img{width:20px;height:20px;border-radius:50%;object-fit:cover;border:1.5px solid var(--ink);margin-right:-9px}
.own img:last-of-type{margin-right:0}
.own.none{color:var(--muted);border-style:dashed;padding:3px 9px}
.tedit{flex:none;width:44px;height:44px;border-radius:12px;border:2px solid var(--ink);background:#fff;display:flex;align-items:center;justify-content:center;padding:0}
.tedit:hover{background:var(--surface2)}
.tfil{display:flex;gap:8px}
.tfil .pill{min-height:38px;padding:0 14px;font-size:14px}
.tlist li.editing{border-top:1.5px solid var(--line);padding:12px 0}
.tform{background:var(--surface2);border:2.5px solid var(--ink);border-radius:18px;padding:14px;display:flex;flex-direction:column;gap:12px}
.tform>label{display:flex;flex-direction:column;gap:4px;font-size:12px;font-weight:600;color:var(--muted)}
.tform input[type=text],.tform input:not([type]),.tform textarea{border:2px solid var(--ink);border-radius:12px;padding:10px 12px;font:inherit;font-size:15px;color:var(--ink);background:#fff;width:100%;box-sizing:border-box;resize:vertical}
.tform fieldset{border:0;margin:0;padding:0}
.tform legend{font-size:12px;font-weight:600;color:var(--muted);padding:0;margin-bottom:6px}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.rc{position:relative}
.rc input{position:absolute;opacity:0;inset:0;margin:0}
.rc span{display:inline-flex;align-items:center;gap:6px;min-height:38px;padding:0 12px;border:2px solid var(--ink);border-radius:999px;background:#fff;font-size:13px;font-weight:600;cursor:pointer}
.rc span img{width:24px;height:24px;border-radius:50%;object-fit:cover;border:1.5px solid var(--ink);margin-left:-6px}
.rc input:checked+span{background:var(--ink);color:#fff}
.rc input:focus-visible+span{outline:3px solid var(--a4);outline-offset:2px}
.tact{display:flex;flex-wrap:wrap;gap:8px}
.tdel{margin-left:auto;color:#8E0F33}
.tdel.sure{background:#FFD3DC}
.trow.done .box{background:var(--a3)}
.trow .t{display:block;font-weight:600;font-size:15px}
.trow.done .t{text-decoration:line-through;color:var(--muted)}
.trow small{display:block;font-size:12px;color:var(--muted);margin-top:2px}
.st{font-size:12px;font-weight:700;padding:5px 10px;border-radius:999px;white-space:nowrap;border:1.5px solid var(--ink)}
.st-todo{background:#FFD3DC;color:#8E0F33}.st-wait{background:#FFE8B0;color:#6B4A06}.st-dec{background:#E3DBFF;color:#3B2A8F}.st-done{background:#C8F5E7;color:#0B5A44}
.wish{flex:1 1 400px;min-width:0;background:var(--a3);padding:26px}
.wish form{display:flex;gap:8px;margin-bottom:16px}
.wish input{flex:1;min-width:0;background:#fff;border:2.5px solid var(--ink);border-radius:14px;padding:12px 14px;font:inherit;font-size:15px;min-height:44px}
.wlist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.wlist li{background:#fff;border:2px solid var(--ink);border-radius:16px;padding:10px 10px 10px 16px;display:flex;align-items:center;gap:12px}
.wlist .t{flex:1;min-width:0}
.wlist .t b{display:block;font-size:15px;font-weight:500}
.wlist .t small{display:block;font-size:12px;color:#5B5070;margin-top:2px}
.vote{background:#fff;border:2px solid var(--ink);border-radius:12px;min-width:64px;min-height:44px;display:flex;align-items:center;justify-content:center;gap:6px;font-weight:700}
.vote.on{background:var(--a2)}
.faces{display:flex}
.faces img{width:22px;height:22px;border-radius:50%;border:1.5px solid var(--ink);margin-left:-6px;object-fit:cover}
.faces img:first-child{margin-left:0}

/* essentials + end */
.ess{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px}
.ess > div{border:2.5px solid var(--ink);background:var(--surface);border-radius:22px;padding:20px}
.ess h3{font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:20px;margin:12px 0 0}
.ess p{color:var(--muted);font-size:14px;margin:6px 0 0;line-height:1.5}
.conv{display:flex;gap:8px;align-items:center;margin-top:10px;flex-wrap:wrap}
.conv input{width:120px;border:2px solid var(--ink);border-radius:10px;padding:8px 10px;font:inherit;min-height:40px}
.end{display:flex;flex-wrap:wrap;gap:40px;align-items:center;background:var(--deep);color:var(--onDeep);border-radius:32px;padding:32px;overflow:hidden}
.end figure{flex:1 1 380px;min-width:0;margin:0;background:#fff;padding:14px 14px 10px;border:3px solid var(--ink);transform:rotate(-2.5deg)}
.end figure img{display:block;width:100%}
.end figcaption{font-family:Caveat,cursive;font-size:28px;color:var(--ink);text-align:center;margin-top:6px}
footer{border-top:2px solid var(--line);display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;font-size:13px;color:var(--muted);padding-top:24px;padding-bottom:40px}
.toast{position:fixed;left:50%;bottom:20px;transform:translateX(-50%);background:var(--ink);color:var(--bg);padding:10px 16px;border-radius:999px;font-size:14px;font-weight:600;z-index:40;opacity:0;transition:opacity .3s;pointer-events:none}
.toast.on{opacity:1}
.live{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--muted)}
.live i{width:8px;height:8px;border-radius:50%;background:#aaa}
.live.ok i{background:var(--a3);box-shadow:0 0 0 3px rgba(6,214,160,.25)}
@media(max-width:700px){
  .days{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;padding:4px 8px 12px 2px;margin:0 -20px;padding-left:20px;gap:14px}
  .day{flex:0 0 72%;scroll-snap-align:start;min-height:300px}
  .exgrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .spot .ph{height:110px}
  .detail{position:static}
  .mapbox{height:440px}
  .panel{padding:20px}
  .todo,.wish{padding:20px}
  .hero{gap:24px}
}
