:root{--bg:#faf7f2;--surface:#fff;--text:#2a211b;--muted:#8a7d72;--line:#ece4da;--accent:#c2410c;--accent-soft:#fdebdf;--radius:16px;--tabbar-h:64px;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}@media (prefers-color-scheme:dark){:root{--bg:#17120f;--surface:#221b16;--text:#f3ece4;--muted:#a39486;--line:#342a22;--accent:#fb923c;--accent-soft:#3a2415}}*{box-sizing:border-box}body{background:var(--bg);margin:0}h1,h2,p{margin:0}h1{font-size:1.35rem}h2{align-items:baseline;gap:8px;margin:24px 0 12px;font-size:1.05rem;display:flex}a{color:var(--accent);text-decoration:none}img{display:block}.muted{color:var(--muted)}.small{font-size:.8rem}.pad{padding:24px}.app{background:var(--bg);max-width:520px;min-height:100dvh;margin:0 auto}.screen{padding:16px 16px calc(var(--tabbar-h) + 24px + env(safe-area-inset-bottom))}.devbar{color:var(--muted);border-bottom:1px dashed var(--line);justify-content:space-between;align-items:center;gap:8px;padding:6px 16px;font-size:.75rem;display:flex}.devbar select,.devbar button{font:inherit;background:var(--surface);color:var(--text);border:1px solid var(--line);border-radius:8px;padding:2px 6px}.tabbar{width:100%;max-width:520px;height:calc(var(--tabbar-h) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:color-mix(in srgb, var(--surface) 92%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--line);grid-auto-columns:1fr;grid-auto-flow:column;display:grid;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.tab{color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:2px;font-size:.7rem;display:flex}.tab-icon{filter:grayscale();opacity:.7;font-size:1.25rem}.tab.active{color:var(--accent);font-weight:600}.tab.active .tab-icon{filter:none;opacity:1}.tab-add .tab-icon{background:var(--accent);color:#fff;filter:none;opacity:1;border-radius:12px;place-items:center;width:40px;height:32px;display:grid}.placeholder{padding-top:24px}.placeholder ul{padding-left:20px;line-height:1.8}.profile-head{align-items:center;gap:16px;margin:8px 0 12px;display:flex}.avatar{object-fit:cover;border-radius:50%;flex:none;width:36px;height:36px}.avatar-lg{object-fit:cover;border:3px solid var(--accent-soft);border-radius:50%;width:84px;height:84px}.handle{color:var(--muted)}.bio{margin-bottom:4px}.stat{flex-direction:column;align-items:center;padding:12px 4px;display:flex}.stat b{font-size:1.2rem}.stat span{color:var(--muted);font-size:.72rem}.stats{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.stat{background:var(--surface);border:1px solid var(--line);border-radius:12px}.badges{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;display:grid}.badge{border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);flex-direction:column;gap:4px;padding:12px;display:flex}.badge-icon{background:var(--accent-soft);border-radius:50%;place-items:center;width:52px;height:52px;font-size:2rem;display:grid}.badge.rarity-rare .badge-icon{background:linear-gradient(135deg,#bfdbfe,#c4b5fd)}.badge.rarity-legendary{border-color:#f59e0b}.badge.rarity-legendary .badge-icon{background:linear-gradient(135deg,#fde68a,#f59e0b)}.badge-locked{opacity:.55}.badge-locked .badge-icon{filter:grayscale()}.progress{background:var(--line);border-radius:8px;height:16px;margin-top:2px;position:relative;overflow:hidden}.progress div{background:var(--accent);height:100%}.progress span{place-items:center;font-size:.65rem;display:grid;position:absolute;inset:0}.tag{color:var(--accent);font-size:.68rem}.tag-soft{color:var(--muted);text-transform:capitalize;margin-top:auto}.hscroll{scroll-snap-type:x mandatory;gap:10px;margin:0 -16px;padding:0 16px 4px;scroll-padding:0 16px;display:flex;overflow-x:auto}.cafe-card{scroll-snap-align:start;background:var(--surface);border-radius:var(--radius);border:1px solid var(--line);flex:0 0 200px;overflow:hidden}.cafe-card img{aspect-ratio:4/3;object-fit:cover;width:100%}.cafe-card-body{flex-direction:column;gap:2px;padding:10px;font-size:.85rem;display:flex}.overlap{background:var(--accent-soft);border-radius:8px;margin-top:4px;padding:4px 6px;font-size:.75rem}.link-btn{color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:none;align-self:flex-start;padding:4px 0 0;font-size:.75rem}.visits{gap:12px;display:grid}.visit{background:var(--surface);border-radius:var(--radius);border:1px solid var(--line);overflow:hidden}.visit-photo{position:relative}.visit-photo img{aspect-ratio:4/3;object-fit:cover;width:100%}.photo-count,.photo-caption{color:#fff;background:#00000080;border-radius:999px;padding:2px 8px;font-size:.7rem;position:absolute}.photo-count{top:8px;right:8px}.photo-caption{bottom:8px;left:8px}.visit-body{flex-direction:column;gap:4px;padding:12px;display:flex}.visit-top{color:var(--accent);justify-content:space-between;display:flex}.visit-top b{color:var(--text)}.chips{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}.chip{background:var(--accent-soft);border-radius:999px;padding:3px 8px;font-size:.72rem}@media (width>=420px){.visits{grid-template-columns:1fr 1fr}}.add-visit{flex-direction:column;gap:16px;padding-top:8px;display:flex}.add-visit fieldset{border:none;flex-direction:column;gap:8px;margin:0;padding:0;display:flex}.add-visit legend{margin-bottom:8px;padding:0;font-weight:600}.req{color:var(--accent);margin-left:4px;font-size:.72rem;font-weight:400}.add-visit select,.add-visit input:not([type=checkbox]),.add-visit textarea{font:inherit;border:1px solid var(--line);background:var(--surface);width:100%;color:var(--text);border-radius:12px;padding:10px 12px;font-size:16px}.add-visit button{font:inherit;cursor:pointer}.photo-pick{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.photo-tile{flex-direction:column;gap:6px;display:flex}.photo-tile>button{background:0 0;border:3px solid #0000;border-radius:14px;padding:0;position:relative;overflow:hidden}.photo-tile>button img{aspect-ratio:1;object-fit:cover;opacity:.6;width:100%}.photo-tile.picked>button{border-color:var(--text)}.photo-tile.picked>button img{opacity:1}.photo-check{background:var(--text);width:24px;height:24px;color:var(--bg);border-radius:50%;place-items:center;font-size:.8rem;display:grid;position:absolute;top:6px;right:6px}.photo-tile select{padding:6px 8px;font-size:.8rem}.chip-btn{border:1px solid var(--line);background:var(--surface);color:var(--text);padding:6px 12px;font-size:.85rem}.chip-btn.on{background:var(--accent);border-color:var(--accent);color:#fff}.stars{gap:4px;display:flex}.stars button{color:var(--line);background:0 0;border:none;padding:0 2px;font-size:1.9rem}.stars button.on{color:#f59e0b}.check{align-items:center;gap:8px;display:flex}.errors{color:#991b1b;background:#fee2e2;border-radius:12px;margin:0;padding:12px 12px 12px 28px}.primary{background:var(--accent);color:#fff;border:none;border-radius:14px;padding:14px;font-size:1rem;font-weight:600}.cafe-results{flex-direction:column;gap:6px;max-height:280px;display:flex;overflow-y:auto}.cafe-pick{border:1px solid var(--line);background:var(--surface);color:var(--text);text-align:left;border-radius:12px;align-items:center;gap:10px;padding:6px;display:flex}.cafe-pick img{object-fit:cover;border-radius:10px;flex:none;width:44px;height:44px}.cafe-pick>span{flex-direction:column;flex:1;min-width:0;display:flex}.cafe-pick.selected{border-color:var(--text)}.cafe-pick .link-btn{color:var(--accent);padding:0 8px}.wtg{font:inherit;cursor:pointer;border:1.5px solid var(--accent);background:var(--surface);color:var(--accent);border-radius:999px;padding:8px 14px;font-size:.85rem;font-weight:600}.wtg.on{background:var(--accent);color:#fff}.wtg.compact{color:#2a211b;background:#ffffffeb;border-color:#0000;padding:5px 10px;font-size:.75rem;position:absolute;top:10px;right:10px}.wtg.compact.on{background:var(--accent);color:#fff}.social{flex-direction:column;gap:2px;margin-top:4px;font-size:.8rem;display:flex}.social span:before{content:"• ";color:var(--accent)}a.plain{color:inherit}.discover h1{margin-bottom:12px}.search{font:inherit;border:1px solid var(--line);background:var(--surface);width:100%;color:var(--text);border-radius:999px;margin-bottom:14px;padding:10px 14px;font-size:16px}.discover-list{gap:14px;display:grid}.discover-card{color:inherit;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);display:block;overflow:hidden}.discover-img{position:relative}.discover-img img{aspect-ratio:16/9;object-fit:cover;width:100%}.discover-body{flex-direction:column;gap:2px;padding:12px;display:flex}.cafe-detail{margin:-16px -16px 0}.cafe-detail>:not(.cafe-hero){margin-left:16px;margin-right:16px}.cafe-hero{position:relative}.cafe-hero img{aspect-ratio:16/10;object-fit:cover;width:100%}.back{color:#2a211b;cursor:pointer;background:#ffffffeb;border:none;border-radius:50%;width:36px;height:36px;font-size:1.1rem;position:absolute;top:12px;left:12px}.cafe-head{flex-direction:column;gap:6px;padding-top:14px;display:flex}.cafe-actions{align-items:center;gap:12px;margin-top:6px;display:flex}.cafe-detail h3{margin:18px 0 8px;font-size:.9rem}.official{border-radius:var(--radius);color:#1e1b4b;background:#eef2ff;border:1px solid #c7d2fe;flex-direction:column;gap:10px;margin-top:20px;padding:14px;display:flex}.official h2{margin:0}.official-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;display:flex}.official-tag{text-transform:uppercase;letter-spacing:.04em;color:#4338ca;font-size:.68rem;font-weight:600}.biz{grid-template-columns:auto 1fr;gap:2px 12px;margin:0;font-size:.8rem;display:grid}.biz dt{color:#6366f1}.biz dd{margin:0}.highlight{background:#fff;border-radius:12px;flex-direction:column;gap:2px;padding:10px 12px;display:flex}.highlight-type{color:#4338ca;font-size:.7rem;font-weight:600}@media (prefers-color-scheme:dark){.official{color:#e0e7ff;background:#1e1b4b;border-color:#3730a3}.official-tag,.highlight-type,.biz dt{color:#a5b4fc}.highlight{background:#312e81}}.unclaimed{border:1px dashed var(--line);border-radius:12px;margin-top:16px;padding:10px 12px}.community h2{margin-bottom:2px}.photo-strip figure{scroll-snap-align:start;flex:0 0 140px;margin:0}.photo-strip img{object-fit:cover;border-radius:12px;width:140px;height:140px}.photo-strip figcaption{color:var(--muted);margin-top:4px;font-size:.7rem}.avatars{flex-wrap:wrap;gap:6px;display:flex}.avatars img{object-fit:cover;border:2px solid var(--surface);border-radius:50%;width:40px;height:40px}.tried{margin:0;padding:0;list-style:none}.tried li{border-bottom:1px solid var(--line);justify-content:space-between;padding:8px 0;display:flex}.rec{margin:4px 0;font-size:.9rem}.shoutout{border-left:3px solid var(--accent);background:var(--surface);border-radius:0 12px 12px 0;margin:0 0 8px;padding:10px 12px}.shoutout footer{margin-top:4px}.visit-author{align-items:center;gap:6px;font-size:.85rem;font-weight:600;display:flex}.visit-author img{border-radius:50%;width:22px;height:22px}.shoutout-form{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:10px 12px}.shoutout-form summary{cursor:pointer;font-size:.9rem;font-weight:600}.shoutout-form[open]{flex-direction:column;gap:8px;display:flex}.companions{color:var(--muted)}.people-pick{flex-wrap:wrap;gap:8px;display:flex}.person{border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:999px;align-items:center;gap:6px;padding:4px 12px 4px 4px;font-size:.85rem;display:flex}.person img{object-fit:cover;border-radius:50%;width:28px;height:28px}.person.on{background:var(--accent);border-color:var(--accent);color:#fff}.tagged{flex-direction:column;gap:8px;display:flex}.tagged-row{background:var(--surface);border:1px solid var(--line);border-radius:12px;align-items:center;gap:10px;padding:8px;display:flex}.tagged-row img{object-fit:cover;border-radius:10px;width:48px;height:48px}.tagged-row>span{flex-direction:column;display:flex}.onboarding{max-width:520px;margin:0 auto;padding:24px 16px 40px}.at-input{border:1px solid var(--line);background:var(--surface);border-radius:12px;align-items:center;padding-left:12px;display:flex}.at-input span{color:var(--muted)}.add-visit .at-input input{background:0 0;border:none;padding-left:4px}.notice{background:var(--accent-soft);border-radius:12px;padding:10px 12px}.profile .notice{margin-top:12px}.primary:disabled{opacity:.6}.pick-new{background:var(--accent-soft);width:44px;height:44px;color:var(--accent);border-radius:10px;flex:none;place-items:center;font-size:.62rem;font-weight:600;display:grid}.cafe-pick:disabled{opacity:.6}.filters{gap:6px;margin:-4px 0 14px;display:flex;overflow-x:auto}.type-pill{background:var(--accent-soft);color:var(--accent);border-radius:999px;padding:1px 8px;font-size:.7rem;font-weight:600;display:inline-block}.sheet{left:50%;bottom:calc(var(--tabbar-h) + 12px);z-index:10;border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);flex-direction:column;gap:8px;width:min(488px,100% - 32px);padding:12px;display:flex;position:fixed;transform:translate(-50%);box-shadow:0 8px 30px #0000002e}.sheet a,.sheet button{text-align:center;font:inherit;background:var(--accent-soft);color:var(--accent);cursor:pointer;border:none;border-radius:12px;padding:12px;font-weight:600;display:block}.sheet button{color:var(--muted);background:0 0}.upload-btn{border:1.5px dashed var(--accent);color:var(--accent);background:var(--surface);cursor:pointer;border-radius:12px;justify-content:center;align-self:flex-start;align-items:center;gap:6px;padding:10px 16px;font-size:.9rem;font-weight:600;display:inline-flex}.avatar-row{align-items:center;gap:14px;display:flex}.avatar-preview{object-fit:cover;border:3px solid var(--accent-soft);border-radius:50%;width:72px;height:72px}.avatar-actions{flex-direction:column;gap:4px;display:flex}.photo-frame{border-radius:14px;position:relative;overflow:hidden}.photo-frame img{aspect-ratio:1;object-fit:cover;width:100%}.photo-remove{color:#fff;cursor:pointer;background:#0009;border:none;border-radius:50%;width:26px;height:26px;font-size:1rem;line-height:1;position:absolute;top:6px;right:6px}.dev-demo{border:1px dashed var(--line);border-radius:12px;padding:8px 10px}.change-photo{color:var(--accent);cursor:pointer;margin-top:4px;display:inline-block}.errors-inline{color:#b91c1c;display:block}.empty{border:1px dashed var(--line);border-radius:var(--radius);text-align:center;margin-top:12px;padding:20px 16px}.empty p{margin:4px 0}.photo-by{z-index:1;color:#fff;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);pointer-events:none;background:#00000073;border-radius:999px;padding:3px 8px;font-size:.7rem;position:absolute;bottom:8px;left:8px}.dish-suggest{flex-direction:column;gap:6px;display:flex}.dish-option{border:1px solid var(--line);background:var(--surface);min-height:48px;color:var(--text);text-align:left;border-radius:12px;justify-content:space-between;align-items:center;gap:10px;padding:10px 14px;display:flex}.dish-option:disabled{opacity:.6;cursor:default}.dish-fix{border-color:var(--accent)}.dish-new{border-style:dashed;font-weight:600}.dish-added{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.dish-row{background:var(--accent-soft);border-radius:12px;justify-content:space-between;align-items:center;gap:8px;min-height:48px;padding:4px 4px 4px 14px;animation:.18s ease-out dish-in;display:flex}.dish-remove{width:40px;height:40px;color:var(--text);background:0 0;border:none;border-radius:50%;flex:none;font-size:1.3rem;line-height:1}@keyframes dish-in{0%{opacity:0;transform:translateY(-4px)}}@media (prefers-reduced-motion:reduce){.dish-row{animation:none}}.link-btn{color:var(--muted);background:0 0;border:none;padding:6px 0 0;font-size:.8rem;text-decoration:underline}.install-card{border:1px dashed var(--line);border-radius:var(--radius);margin-top:20px;padding:14px}.install-title{margin:0 0 6px;font-size:.95rem;display:block}.install-steps{grid-template-columns:auto 1fr;align-items:baseline;gap:4px 10px;margin:10px 0 0;display:grid}.install-steps dt{color:var(--accent);font-size:.78rem;font-weight:600}.install-steps dd{color:var(--muted);margin:0;font-size:.8rem}@media (width<=360px){.install-steps{grid-template-columns:1fr;gap:2px}.install-steps dd{margin-bottom:6px}}.author{color:inherit;align-items:center;gap:10px;text-decoration:none;display:flex}.avatar-anon{background:var(--line);border-radius:50%;flex:none;place-items:center;width:36px;height:36px;font-size:1rem;display:grid}.visit-author.anon{color:var(--muted);align-items:center;gap:6px;display:flex}.visit-author.anon .avatar-anon{width:24px;height:24px;font-size:.75rem}.brewing{flex-direction:column;align-items:center;gap:10px;padding:48px 24px;display:flex}.brewing-cup{font-size:2rem;animation:1.8s ease-in-out infinite steam}.brewing p{text-align:center;margin:0}@keyframes steam{0%,to{transform:translateY(0)rotate(-4deg)}50%{transform:translateY(-5px)rotate(4deg)}}@media (prefers-reduced-motion:reduce){.brewing-cup{animation:none}}.badge-grid{grid-template-columns:repeat(4,1fr);gap:12px 6px;display:grid}@media (width<=340px){.badge-grid{grid-template-columns:repeat(3,1fr)}}.badge-ring{cursor:pointer;font:inherit;color:inherit;background:0 0;border:none;flex-direction:column;align-items:center;gap:5px;padding:0;display:flex}.badge-ring-art{place-items:center;width:60px;height:60px;display:grid;position:relative}.badge-ring-art svg{position:absolute;inset:0}.ring-track{fill:none;stroke:var(--line);stroke-width:4px}.ring-fill{fill:none;stroke:var(--accent);stroke-width:4px;stroke-linecap:round}.badge-icon-sm{font-size:1.5rem;line-height:1}.badge-level{background:var(--accent);color:#fff;border:2px solid var(--bg);border-radius:999px;place-items:center;min-width:18px;height:18px;padding:0 4px;font-size:.65rem;font-weight:700;display:grid;position:absolute;bottom:-2px;right:-2px}.badge-ring-name{text-align:center;color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.65rem;line-height:1.2;display:-webkit-box;overflow:hidden}.badge-ring.locked .badge-icon-sm{filter:grayscale();opacity:.45}.badge-ring.locked .badge-ring-name{opacity:.6}.info-btn{color:var(--muted);cursor:pointer;background:0 0;border:none;padding:0 0 0 6px;font-size:.95rem}.badge-sheet-head{justify-content:center;align-items:center;gap:6px;display:flex}.badge-sheet-icon{font-size:1.4rem}.badge-limited{color:var(--accent);font-weight:600}.sheet .progress{margin:6px 0}.visit-tiles{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.visit-tile{color:inherit;flex-direction:column;gap:5px;text-decoration:none;display:flex}.visit-tile img,.visit-tile-empty{aspect-ratio:1;object-fit:cover;background:var(--accent-soft);border-radius:12px;place-items:center;width:100%;font-size:1.5rem;display:grid}.visit-tile-name{color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.72rem;line-height:1.25;display:-webkit-box;overflow:hidden}.see-more{margin-top:10px;display:inline-block}.vd-author-row{justify-content:space-between;align-items:center;gap:10px;display:flex}.feed{flex-direction:column;gap:10px;margin-top:12px;display:flex}.feed-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);color:inherit;grid-template-columns:92px 1fr;align-items:start;gap:12px;padding:10px;text-decoration:none;display:grid}.feed-card:active{background:var(--accent-soft)}.feed-thumb{background:var(--accent-soft);border-radius:12px;place-items:center;width:92px;height:92px;display:grid;position:relative;overflow:hidden}.feed-thumb img{object-fit:cover;width:100%;height:100%}.feed-thumb-empty{font-size:1.6rem}.feed-count{color:#fff;background:#0000008c;border-radius:999px;padding:1px 6px;font-size:.65rem;position:absolute;bottom:4px;right:4px}.feed-body{flex-direction:column;gap:3px;min-width:0;display:flex}.feed-venue{font-size:.95rem;line-height:1.25}.feed-text{color:var(--text);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:.85rem;line-height:1.35;display:-webkit-box;overflow:hidden}.feed-items,.feed-meta{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:.75rem;overflow:hidden}.feed-meta{align-items:baseline;gap:8px;margin-top:1px;display:flex}.feed-rec{color:var(--accent);font-weight:600}.feed-age{margin-left:auto}.load-more{margin-top:14px}.results section{margin-top:18px}.results h2{margin:0 0 8px}.result{border-bottom:1px solid var(--line);color:inherit;grid-template-columns:auto 1fr;align-items:baseline;gap:10px;padding:9px 0;text-decoration:none;display:grid}.result-kind{text-transform:uppercase;letter-spacing:.04em;color:var(--accent);background:var(--accent-soft);border-radius:999px;padding:2px 7px;font-size:.68rem}.wanted-with{border:1px dashed var(--line);border-radius:12px;margin-bottom:10px;padding:10px}.wanted-with p{margin:0 0 8px}.result-btn{border:none;border-bottom:1px solid var(--line);width:100%;font:inherit;text-align:left;cursor:pointer;background:0 0}.result-new{background:var(--line);color:var(--muted)}.block{display:block}.wtg-people{margin-top:20px}.wtg-people h2{margin:0 0 8px}.wtg-people .search{margin:10px 0 8px}.wtg-chips{flex-direction:column;gap:8px;display:flex}.wtg-chip{border:1px solid var(--line);border-radius:999px;justify-content:space-between;align-items:center;gap:8px;padding:5px 8px 5px 5px;display:flex}.wtg-chip button{color:var(--muted);cursor:pointer;background:0 0;border:none;padding:0 6px;font-size:1.1rem;line-height:1}.visit-detail{flex-direction:column;gap:12px;display:flex}.visit-detail section{margin:0}.visit-detail h2{margin:0 0 8px}.carousel{position:relative}.carousel-strip{scroll-snap-type:x mandatory;scrollbar-width:none;border-radius:var(--radius);display:flex;overflow-x:auto}.carousel-strip::-webkit-scrollbar{display:none}.carousel-strip img{aspect-ratio:4/5;object-fit:cover;scroll-snap-align:center;flex:0 0 100%;width:100%}.carousel-single{aspect-ratio:4/5;object-fit:cover;border-radius:var(--radius);width:100%}.carousel-empty{aspect-ratio:4/5;background:var(--accent-soft);border-radius:var(--radius);place-items:center;font-size:3rem;display:grid}.carousel-count{color:#fff;background:#0000008c;border-radius:999px;padding:2px 9px;font-size:.72rem;position:absolute;top:10px;right:10px}.carousel-dots{justify-content:center;gap:5px;margin-top:8px;display:flex}.carousel-dots span{background:var(--line);border-radius:50%;width:6px;height:6px}.carousel-dots span.on{background:var(--accent)}.vd-author,.vd-venue,.vd-companion{color:inherit;align-items:center;gap:10px;text-decoration:none;display:flex}.visit-detail>.vd-venue-row:first-child{border-top:none;padding-top:0}.visit-detail>.vd-venue-row:first-child .vd-venue b{font-size:1.15rem}.vd-venue-row{border-top:1px solid var(--line);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:10px;padding:10px 0;display:flex}.vd-venue-row .vd-venue{border:none;flex:1;min-width:0;padding:0}.vd-venue{border-top:1px solid var(--line);border-bottom:1px solid var(--line);flex-direction:column;align-items:flex-start;gap:1px;padding:10px 0}.vd-text{margin:0;line-height:1.5}.vd-meta{color:var(--muted);flex-wrap:wrap;gap:12px;margin:0;font-size:.8rem;display:flex}.vd-meta:empty{display:none}.vd-companions{flex-direction:column;gap:10px;display:flex}.home{flex-direction:column;gap:12px;padding-top:24px;display:flex}.home h1{font-size:1.6rem;line-height:1.25}.home p{line-height:1.5}.home-tagline{color:var(--accent);border-left:3px solid var(--accent);padding-left:10px;font-weight:600}.home-actions{flex-direction:column;gap:10px;margin-top:8px;display:flex}.home-btn{text-align:center;text-decoration:none;display:block}.secondary{background:var(--surface);color:var(--accent);border:1.5px solid var(--accent);border-radius:14px;padding:13px;font-size:1rem;font-weight:600}.badge-coming{border-style:dashed}.badge-coming .tag-soft{text-transform:none}.visit-top-right{align-items:center;gap:6px;display:flex}.visit-menu-btn{color:var(--muted);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:1.15rem;line-height:1}.sheet .primary{background:var(--accent);color:#fff}.sheet .danger{color:#991b1b;background:#fee2e2}.sheet p{text-align:center;margin:4px 0 8px}.toast{left:50%;bottom:calc(var(--tabbar-h) + 20px);z-index:20;background:var(--text);color:var(--bg);border-radius:999px;padding:10px 18px;font-size:.85rem;position:fixed;transform:translate(-50%);box-shadow:0 6px 20px #00000040}.vd-owner-actions{flex:none;align-items:center;gap:10px;display:flex}.story-btn{color:var(--accent);background:var(--accent-soft);white-space:nowrap;border-radius:999px;padding:6px 12px;font-size:.8rem;font-weight:600}.story{flex-direction:column;gap:12px;display:flex}.story-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.story-head .link-btn{padding:0;text-decoration:none}.story-stage{background:var(--line);border-radius:var(--radius);position:relative;overflow:hidden}.story-canvas{aspect-ratio:1080/1920;touch-action:none;cursor:grab;-webkit-user-select:none;user-select:none;width:100%;height:auto;max-height:68vh;margin:0 auto;display:block}.story-canvas:active{cursor:grabbing}.story-loading{place-items:center;display:grid;position:absolute;inset:0}.story-thumbs{gap:8px;display:flex;overflow-x:auto}.story-thumb{cursor:pointer;background:0 0;border:2px solid #0000;border-radius:10px;flex:none;width:56px;height:56px;padding:0;overflow:hidden}.story-thumb.on{border-color:var(--accent)}.story-thumb img{object-fit:cover;width:100%;height:100%}.story-actions{flex-direction:column;gap:8px;display:flex}.story-actions .link-btn{align-self:center}.story-note{text-align:center}.story-tag{border-top:1px solid var(--line);margin-top:8px;padding-top:12px}.story-tag h2{margin:0 0 4px;font-size:.95rem}.story-tag-row{justify-content:space-between;align-items:center;gap:12px;margin:10px 0;display:flex}.story-tag-row .secondary{border:1px solid var(--line);background:var(--surface);color:var(--accent);cursor:pointer;border-radius:999px;flex:none;padding:8px 14px;font-size:.8rem;font-weight:600}
