@font-face{font-family:"DM Sans";font-style:normal;font-weight:400 700;font-display:swap;src:url(/vendor/fonts/dmsans-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"DM Sans";font-style:normal;font-weight:400 700;font-display:swap;src:url(/vendor/fonts/dmsans-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

:root{
  /* ===== THEME: light is the default; html.dark switches to the original dark look ===== */
  --bg:#ffffff; --bg2:#f6f7f9; --bg3:#eef0f3; --line:#e6e8ec; --text:#111111; --text2:#3c4047; --muted:#5f6670; --dim:#8b919a;
  --bg-rgb:255,255,255;
  --accent:#00A35A; --accent2:#00A8FF; --accent-t:#047857; --gold:#0369A1;
  /* ===== RISING SUN brand, green -> sky blue (matches the app icon): one place to change it ===== */
  --sun1:#00D66E; --sun2:#00BFB7; --sun3:#00A8FF;
  --grad-icon:linear-gradient(135deg,var(--sun1) 0%,var(--sun2) 52%,var(--sun3) 100%);
  --grad:linear-gradient(135deg,#00874A 0%,#0076C0 100%); /* big CTAs: deeper green -> blue so white text passes AA (>=4.6:1 end to end) */
  --grad-h:linear-gradient(90deg,#00C866,#0096E6); /* thin active underlines */
  --glow:0 2px 8px rgba(0,110,100,.16); --tint:rgba(0,163,90,.10);
  --heart:#00C46A; --ok:#22b07d; --danger:#e5484d; --err:#d93025;
  --chrome:rgba(255,255,255,.94); --chrome-line:rgba(0,0,0,.08);
  --sheet:#ffffff; --overlay:rgba(255,255,255,.97); --ov-shadow:0 6px 22px rgba(16,24,40,.14); --scrim:rgba(0,0,0,.38);
  --press:rgba(0,0,0,.05); --tile:#eceef1; --grab:#d5d8dd; --dash:#c9cdd4;
  --inp-bg:#f4f5f7; --inp-line:#e1e4e8; --inp-focus:#aeb3bb;
  --chip-on-bg:var(--grad); --chip-on-fg:#ffffff;
  --spin-track:#dfe1e5; --spin-head:var(--accent); --toast-bg:#111111; --toast-fg:#ffffff;
  --map-bg:#e9ebee; --attr-bg:rgba(255,255,255,.8); --attr-fg:#555;
  --brand-grad:linear-gradient(92deg,#00A35A 0%,#0086D1 100%);
  /* profile pictures: ONE place to change the shape (mask image). Circle now; the old two-peak mountain is --av-mask:var(--mtn) */
  --av-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpath d='M50 0C88 0 100 12 100 50S88 100 50 100 0 88 0 50 12 0 50 0Z'/%3E%3C/svg%3E"); /* v140: Squircle (Yanky picked Nov 8, 12:58 PM) */ --av-line:rgba(0,0,0,.12);
  /* profile stat boxes: ONE place to change the look */
  --stat-border:var(--grad-icon); --stat-glow:0 1px 4px rgba(0,110,100,.08); --stat-bg:var(--bg); --stat-radius:12px; --stat-num:var(--text);
  --safe-top:env(safe-area-inset-top,0px); --safe-bottom:env(safe-area-inset-bottom,0px);
  --top-h:52px; --tab-h:54px; --maxw:600px;
  color-scheme:light;
  font-family:"DM Sans",-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
}
html.dark{
  --bg:#0a0a0b; --bg2:#121214; --bg3:#1b1b1f; --line:#26262b; --text:#f4f4f5; --text2:#e0e0e5; --muted:#9a9aa3; --dim:#6b6b73;
  --bg-rgb:10,10,11;
  --accent:#1FD87F; --accent-t:#34D399; --gold:#7DD3FC; --glow:0 2px 10px rgba(0,200,120,.20); --tint:rgba(0,214,110,.14); --ok:#3ddc97; --danger:#ff5a5f; --err:#ff8a8d;
  --chrome:rgba(10,10,11,.92); --chrome-line:rgba(255,255,255,.07);
  --sheet:#18181b; --overlay:rgba(20,20,23,.96); --ov-shadow:0 8px 24px rgba(0,0,0,.45); --scrim:rgba(0,0,0,.55);
  --press:rgba(255,255,255,.07); --tile:#151517; --grab:#444; --dash:#3a3a41;
  --inp-bg:rgba(28,28,32,.9); --inp-line:#34343a; --inp-focus:#5a5a63;
  --chip-on-bg:var(--grad); --chip-on-fg:#ffffff;
  --spin-track:#333; --spin-head:var(--accent); --toast-bg:#f4f4f5; --toast-fg:#000;
  --map-bg:#0d0f12; --attr-bg:rgba(0,0,0,.55); --attr-fg:#aaa;
  --brand-grad:linear-gradient(92deg,#34D399 0%,#38BDF8 100%); --stat-glow:0 1px 6px rgba(0,200,120,.10);
  --av-line:rgba(255,255,255,.28);
  color-scheme:dark;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;background:var(--bg);color:var(--text);font-size:15px;line-height:1.4;-webkit-font-smoothing:antialiased;overscroll-behavior-y:none}
body{min-height:100dvh}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
input,textarea{font:inherit;color:var(--text)}
img{display:block;max-width:100%}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* chrome */
.topbar{position:fixed;top:0;left:0;right:0;z-index:40;padding-top:var(--safe-top);background:var(--chrome);color:var(--text);backdrop-filter:saturate(1.6) blur(18px);-webkit-backdrop-filter:saturate(1.6) blur(18px);border-bottom:1px solid var(--chrome-line)}
.topbar-in{height:var(--top-h);max-width:var(--maxw);margin:0 auto;display:flex;align-items:center;gap:8px;padding:0 12px}
.topbar h1{font-size:17px;font-weight:650;margin:0;flex:1;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.topbar .brand{flex:1;text-align:left;font-size:24px;font-weight:700;letter-spacing:-.6px;display:flex;align-items:center;gap:8px}
.brand-word{background:var(--brand-grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.icon-btn{width:40px;height:40px;display:grid;place-items:center;border-radius:12px;flex:none}
.icon-btn:active{background:var(--press)}
.icon-btn svg,.tabbar svg{width:26px;height:26px}
.tabbar{position:fixed;bottom:0;left:0;right:0;z-index:40;background:var(--chrome);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-top:1px solid var(--chrome-line);padding-bottom:var(--safe-bottom)}
.tabbar-in{height:var(--tab-h);max-width:var(--maxw);margin:0 auto;display:flex;justify-content:space-around;align-items:center}
.tabbar a{flex:1;height:100%;display:grid;place-items:center;color:var(--muted)}
.tabbar a.on{color:var(--accent-t)}
.tabbar .post-btn span{width:44px;height:32px;border-radius:10px;display:grid;place-items:center;background:var(--grad-icon);color:#fff;box-shadow:var(--glow)}
.tabbar .post-btn svg{width:22px;height:22px}
.av.tab-avatar{width:28px;height:28px;background:var(--dim)}
.tabbar a.on .av.tab-avatar{background:var(--text)}
main{padding-top:calc(var(--top-h) + var(--safe-top));padding-bottom:calc(var(--tab-h) + var(--safe-bottom) + 8px);max-width:var(--maxw);margin:0 auto;min-height:100dvh;outline:none}
main.full{padding-bottom:0}
body.noshell .topbar,body.noshell .tabbar{display:none}
body.noshell main{padding-top:var(--safe-top);padding-bottom:var(--safe-bottom)}

/* splash/auth */
.splash{height:70dvh;display:grid;place-items:center}
.logo-mark{width:64px;height:64px;border-radius:18px;background:url(/icons/rising-192.png?v=51) center/cover;animation:pulse 1.4s ease-in-out infinite}
@keyframes pulse{50%{opacity:.5;transform:scale(.96)}}
.auth{min-height:100dvh;display:flex;flex-direction:column;position:relative}
.auth-hero{position:absolute;inset:0;background-size:cover;background-position:center;z-index:0}
.auth-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(var(--bg-rgb),.15) 0%,rgba(var(--bg-rgb),.35) 38%,rgba(var(--bg-rgb),.92) 66%,var(--bg) 100%)}
.auth-in{position:relative;z-index:1;margin-top:auto;padding:24px 22px calc(28px + var(--safe-bottom));max-width:440px;width:100%;margin-left:auto;margin-right:auto}
.auth h2{font-size:40px;line-height:1.05;letter-spacing:-1.2px;margin:0 0 8px;font-weight:750}
.auth .tag{color:var(--text2);margin:0 0 22px;font-size:16px}
.field{display:block;margin-bottom:10px}
.field input,.field textarea{width:100%;background:var(--inp-bg);border:1px solid var(--inp-line);border-radius:12px;padding:14px 14px;font-size:16px;outline:none}
.field textarea{resize:none;min-height:84px}
.field input:focus,.field textarea:focus{border-color:var(--inp-focus)}
.field .lbl{display:block;font-size:12px;color:var(--muted);margin:0 0 6px 2px;font-weight:600;letter-spacing:.2px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:46px;padding:0 18px;border-radius:12px;font-weight:650;font-size:15px;background:var(--bg3);border:1px solid var(--line)}
.btn.block{width:100%}
.btn.primary{background:var(--grad);color:#fff;border:0}
.btn.light{background:#fff;color:#000;border:0}
.btn.small{height:32px;padding:0 14px;font-size:14px;border-radius:9px}
.btn:disabled{opacity:.5}
.btn.danger{color:var(--danger)}
.auth .switch{margin-top:16px;text-align:center;color:var(--muted)}
.auth .switch button{color:var(--text);font-weight:650}
.auth .legal{margin-top:14px;text-align:center;color:var(--dim);font-size:12px}
.auth .legal a{text-decoration:underline}
.demo-hint{margin-top:12px;font-size:13px;color:var(--muted);text-align:center}
.form-err{color:var(--err);font-size:14px;min-height:20px;margin:2px 2px 8px}

/* feed */
.feed-tabs{display:flex;gap:6px;padding:10px 12px 6px}
.chip{height:34px;padding:0 14px;border-radius:999px;background:var(--bg3);color:var(--muted);font-weight:600;font-size:14px;display:inline-flex;align-items:center;gap:6px;border:1px solid transparent;white-space:nowrap}
.chip.on{background:var(--chip-on-bg);color:var(--chip-on-fg)}
.post{margin-bottom:18px}
.post-head{display:flex;align-items:center;gap:10px;padding:10px 12px}
:root{--mtn:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%20100%20100%22%3E%3Cpath%20d%3D%22M7%2093V61L35%2014l20%2027%2016-16%2022%2032v36z%22%20fill%3D%22%23fff%22%20stroke%3D%22%23fff%22%20stroke-width%3D%2212%22%20stroke-linejoin%3D%22round%22/%3E%3C/svg%3E")}
/* profile pictures: a soft two-peak mountain, the same family as the Views icon; the span is the thin outline, the photo sits inside */
.av{position:relative;display:inline-block;width:36px;height:36px;flex:none;background:var(--av-line);-webkit-mask:var(--av-mask) center/100% 100% no-repeat;mask:var(--av-mask) center/100% 100% no-repeat;vertical-align:middle}
.av>img{position:absolute;inset:1.5px;width:calc(100% - 3px);height:calc(100% - 3px);object-fit:cover;display:block;background:var(--bg3);-webkit-mask:var(--av-mask) center/100% 100% no-repeat;mask:var(--av-mask) center/100% 100% no-repeat}
.av.lg>img{inset:2.5px;width:calc(100% - 5px);height:calc(100% - 5px)}
.av.lg{width:86px;height:86px}
.av.md{width:44px;height:44px}
.av.sm{width:28px;height:28px}
.av-ring{padding:2px;border-radius:50%;background:var(--grad-icon);flex:none}
.av-ring .av{border:0}
.who{flex:1;min-width:0}
.who .u{font-weight:650;font-size:14px;display:block}
.place-tag{display:inline-flex;align-items:center;gap:4px;font-size:13px;color:var(--gold);max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.place-tag svg{width:13px;height:13px;flex:none}
.media{position:relative;background:#111;overflow:hidden;user-select:none;-webkit-user-select:none}
.media img{width:100%;height:100%;object-fit:cover}
.media .burst{position:absolute;left:50%;top:50%;width:96px;height:96px;margin:-48px 0 0 -48px;color:#fff;opacity:0;transform:scale(.3);pointer-events:none;filter:drop-shadow(0 4px 18px rgba(0,0,0,.45))}
.media .burst.go{animation:burst .9s ease-out}
@keyframes burst{15%{opacity:1;transform:scale(1.15)}30%{transform:scale(.95)}45%{transform:scale(1)}80%{opacity:1}100%{opacity:0;transform:scale(1)}}
.media .loc-pill{position:absolute;left:10px;bottom:10px;display:inline-flex;align-items:center;gap:5px;background:rgba(0,0,0,.55);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);padding:6px 10px;border-radius:999px;font-size:12.5px;font-weight:600;color:#fff;max-width:calc(100% - 20px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.media .loc-pill svg{width:13px;height:13px;flex:none;color:var(--accent)}
.actions{display:flex;align-items:center;padding:6px 6px 0}
.actions .icon-btn svg{width:27px;height:27px}
.actions .sp{flex:1}
.liked svg{color:var(--heart);fill:var(--heart)}
.pop{animation:pop .35s}
@keyframes pop{40%{transform:scale(1.25)}}
.post-body{padding:2px 14px 0}
.likes{font-weight:650;font-size:14px;margin:2px 0 4px}
.cap{font-size:14px;margin:0 0 4px;white-space:pre-wrap;word-wrap:break-word}
.cap b,.cmt b{font-weight:650;margin-right:6px}
.more-cmts{color:var(--muted);font-size:14px;display:block;margin:2px 0}
.cmt{font-size:14px;margin:2px 0;word-wrap:break-word}
.meta{color:var(--dim);font-size:12px;margin-top:4px;letter-spacing:.2px}
.credit{color:var(--dim);font-size:11px;margin-top:2px}
.credit a{text-decoration:underline}
.mini-map{height:150px;margin:10px 14px 0;border-radius:14px;overflow:hidden;border:1px solid var(--line);position:relative}
.mini-map .open{position:absolute;right:8px;bottom:8px;z-index:500}
.empty{padding:48px 28px;text-align:center;color:var(--muted)}
.empty h3{color:var(--text);margin:10px 0 6px;font-size:18px}
.empty svg{width:48px;height:48px;color:var(--dim)}
.loading{padding:30px;text-align:center;color:var(--dim)}
.spin{width:22px;height:22px;border:2.5px solid var(--spin-track);border-top-color:var(--spin-head);border-radius:50%;display:inline-block;animation:spin .8s linear infinite;vertical-align:middle}
@keyframes spin{to{transform:rotate(360deg)}}

/* suggested */
.suggest{padding:6px 0 14px;border-bottom:1px solid var(--line);margin-bottom:8px}
.suggest h4{margin:6px 14px 10px;font-size:14px;font-weight:650;display:flex;justify-content:space-between}
.suggest h4 a{color:var(--accent-t);font-weight:600}
.sug-row{display:flex;gap:10px;overflow-x:auto;padding:0 14px 4px;scroll-snap-type:x mandatory;scrollbar-width:none}
.sug-row::-webkit-scrollbar{display:none}
.sug{flex:none;width:150px;border-radius:16px;background:var(--bg2);border:1px solid var(--line);overflow:hidden;scroll-snap-align:start;text-align:center}
.sug .cover{height:70px;background-size:cover;background-position:center}
.sug .av{display:block;margin:-26px auto 0;width:52px;height:52px}
.sug .n{font-weight:650;font-size:13.5px;margin-top:6px;padding:0 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sug .s{font-size:12px;color:var(--muted);margin-bottom:10px}
.sug .btn{margin:0 10px 12px;width:calc(100% - 20px)}

/* grid */
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px}
.grid a{position:relative;aspect-ratio:1/1;background:var(--tile);overflow:hidden}
.grid a.big{grid-column:span 2;grid-row:span 2}
.grid img{width:100%;height:100%;object-fit:cover}
.grid .pin{position:absolute;top:6px;right:6px;width:18px;height:18px;color:#fff;filter:drop-shadow(0 1px 3px rgba(0,0,0,.7))}
.grid .dist{position:absolute;left:6px;bottom:6px;font-size:11px;font-weight:650;color:#fff;background:rgba(0,0,0,.6);padding:2px 7px;border-radius:999px}

/* search */
.searchbar{padding:10px 12px;position:sticky;top:calc(var(--top-h) + var(--safe-top));z-index:5;background:var(--bg)}
.searchbar .box{display:flex;align-items:center;gap:8px;background:var(--bg3);border-radius:12px;padding:0 12px;height:40px}
.searchbar svg{width:18px;height:18px;color:var(--muted);flex:none}
.searchbar input{flex:1;background:none;border:0;outline:none;font-size:16px;height:100%}
.row{display:flex;align-items:center;gap:12px;padding:10px 14px}
.row:active{background:var(--press)}
.row .t{flex:1;min-width:0}
.row .t b{display:block;font-size:14px;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.row .t span{display:block;font-size:13px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.place-ic{width:44px;height:44px;border-radius:12px;background:var(--bg3);display:grid;place-items:center;flex:none;overflow:hidden}
.place-ic img{width:100%;height:100%;object-fit:cover}
.place-ic svg{width:22px;height:22px;color:var(--accent-t)}
.section-t{font-size:13px;color:var(--muted);font-weight:650;padding:12px 14px 4px;text-transform:uppercase;letter-spacing:.6px}

/* profile */
.prof{padding:14px 16px 6px}
.prof-top{display:flex;align-items:center;gap:22px}
.stats{display:flex;flex:1;justify-content:space-around;text-align:center}
.stats b{display:block;font-size:17px;font-weight:700}
.stats span{font-size:13px;color:var(--muted)}
.prof .nm{font-weight:650;margin-top:12px;font-size:14.5px}
.prof .bio{font-size:14px;white-space:pre-wrap;margin-top:2px;color:var(--text2)}
.prof .fy{display:inline-block;font-size:11px;background:var(--bg3);color:var(--muted);padding:2px 7px;border-radius:6px;margin-top:6px}
.prof-btns{display:flex;gap:8px;margin:14px 0 6px}
.prof-btns .btn{flex:1;height:36px;font-size:14px;border-radius:10px}
.seg{display:flex;border-top:1px solid var(--line);margin-top:10px}
.seg button{flex:1;height:44px;display:grid;place-items:center;color:var(--dim);border-bottom:1.5px solid transparent}
.seg button.on{color:var(--text);border-bottom-color:var(--text)}
.seg svg{width:22px;height:22px}
.prof-map{height:62dvh}

/* map */
.map-wrap{position:fixed;left:0;right:0;top:calc(var(--top-h) + var(--safe-top));bottom:calc(var(--tab-h) + var(--safe-bottom));z-index:1}
#bigmap{position:absolute;inset:0;background:var(--map-bg)}
.leaflet-container{background:var(--map-bg);font:inherit}
.leaflet-control-attribution{background:var(--attr-bg)!important;color:var(--attr-fg)!important;font-size:10px!important}
.leaflet-control-attribution a{color:var(--attr-fg)!important}
.leaflet-bar a{background:var(--overlay)!important;color:var(--text)!important;border-color:var(--line)!important}
.photo-pin{width:46px;height:46px;border-radius:12px;border:2.5px solid #fff;background:#222 center/cover;box-shadow:0 4px 14px rgba(0,0,0,.55)}
.photo-pin::after{content:"";position:absolute;left:50%;bottom:-8px;margin-left:-6px;border:6px solid transparent;border-top-color:#fff}
.photo-cluster{width:52px;height:52px;border-radius:14px;border:2.5px solid #fff;background:#222 center/cover;box-shadow:0 4px 14px rgba(0,0,0,.55);position:relative}
.photo-cluster b{position:absolute;top:-9px;right:-9px;min-width:22px;height:22px;padding:0 5px;border-radius:11px;background:var(--accent);color:#fff;font-size:12px;font-weight:750;display:grid;place-items:center;border:2px solid #0a0a0b}
.dot-pin{width:18px;height:18px;border-radius:50%;background:var(--accent);border:3px solid #fff;box-shadow:0 2px 8px rgba(0,0,0,.6)}
.map-search{position:absolute;top:10px;left:10px;right:10px;z-index:600}
.map-search .box{background:var(--overlay);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:var(--ov-shadow)}
.map-results{margin-top:6px;background:var(--overlay);box-shadow:var(--ov-shadow);border-radius:12px;overflow:hidden;max-height:50vh;overflow-y:auto}
.map-card{position:absolute;left:10px;right:10px;bottom:12px;z-index:600;background:var(--overlay);border-radius:18px;overflow:hidden;display:flex;box-shadow:var(--ov-shadow);border:1px solid var(--line);animation:up .25s ease-out}
@keyframes up{from{transform:translateY(20px);opacity:0}}
.map-card img{width:116px;height:116px;object-fit:cover;flex:none}
.map-card .t{padding:12px;min-width:0;flex:1;display:flex;flex-direction:column}
.map-card .t b{font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.map-card .t span{font-size:13px;color:var(--muted)}
.map-card .t .c{font-size:13px;color:var(--text2);margin-top:4px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.map-card .t .go{margin-top:auto;display:flex;gap:12px;font-size:13px;font-weight:650;color:var(--accent-t)}
.map-card .x{position:absolute;top:6px;right:6px;width:28px;height:28px;border-radius:50%;background:var(--bg3);display:grid;place-items:center}
.map-card .x svg{width:16px;height:16px}
.locate-btn{position:absolute;right:10px;bottom:150px;z-index:600;width:42px;height:42px;border-radius:12px;background:var(--overlay);color:var(--text);display:grid;place-items:center;box-shadow:var(--ov-shadow)}
.locate-btn svg{width:22px;height:22px}

/* place page */
.place-hero{height:220px;position:relative}
.place-hero .pm{position:absolute;inset:0}
.place-info{padding:14px 16px 10px}
.place-info h2{margin:0;font-size:22px;letter-spacing:-.4px}
.place-info p{margin:4px 0 0;color:var(--muted);font-size:14px}
.place-info .acts{display:flex;gap:8px;margin-top:12px}
.km-sel{display:flex;gap:6px;padding:0 16px 10px;overflow-x:auto}

/* upload */
.up{padding:0 0 30px}
.pick{margin:16px;border:1.5px dashed var(--dash);border-radius:20px;min-height:46dvh;display:grid;place-items:center;text-align:center;padding:24px;color:var(--muted);position:relative}
.pick svg{width:56px;height:56px;color:var(--accent-t)}
.pick h3{color:var(--text);margin:12px 0 4px;font-size:19px}
.pick input{position:absolute;inset:0;opacity:0;cursor:pointer}
.preview{position:relative;background:#000}
.preview img{width:100%;max-height:62dvh;object-fit:contain}
.check{display:flex;gap:10px;align-items:flex-start;margin:12px 14px;padding:12px 14px;border-radius:14px;background:var(--bg2);border:1px solid var(--line);font-size:14px}
.check .ic{width:22px;height:22px;flex:none;margin-top:1px}
.check.ok{border-color:rgba(61,220,151,.35);background:rgba(61,220,151,.08)}
.check.ok .ic{color:var(--ok)}
.check.bad{border-color:rgba(255,90,95,.45);background:rgba(255,90,95,.1)}
.check.bad .ic{color:var(--danger)}
.check b{display:block;margin-bottom:2px}
.up-form{padding:0 14px}
.loc-row{display:flex;align-items:center;gap:10px;padding:13px 2px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:6px 0 14px}
.loc-row svg{width:22px;height:22px;color:var(--accent-t);flex:none}
.loc-row .t{flex:1;min-width:0}
.loc-row .t b{display:block;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.loc-row .t span{font-size:13px;color:var(--muted)}
.face-box{position:absolute;border:2.5px solid var(--danger);border-radius:8px;box-shadow:0 0 0 9999px rgba(0,0,0,.35)}

/* sheet */
.sheet-bg{position:fixed;inset:0;background:var(--scrim);z-index:90;animation:fade .2s}
@keyframes fade{from{opacity:0}}
.sheet{position:fixed;left:0;right:0;bottom:0;z-index:91;background:var(--sheet);color:var(--text);border-radius:18px 18px 0 0;padding:8px 0 calc(10px + var(--safe-bottom));max-width:var(--maxw);margin:0 auto;animation:sheetup .25s cubic-bezier(.2,.8,.2,1);max-height:92dvh;display:flex;flex-direction:column}
@keyframes sheetup{from{transform:translateY(100%)}}
.sheet .grab{width:38px;height:5px;border-radius:3px;background:var(--grab);margin:0 auto 8px;flex:none}
.sheet h3{text-align:center;margin:2px 0 10px;font-size:16px}
.sheet .opt{display:flex;align-items:center;gap:12px;width:100%;padding:15px 20px;font-size:15.5px;text-align:left}
.sheet .opt:active{background:var(--press)}
.sheet .opt svg{width:22px;height:22px}
.sheet .opt.red{color:var(--danger)}
.sheet .body{padding:0 16px;overflow-y:auto}
.sheet .loc-map{height:240px;border-radius:14px;overflow:hidden;margin:10px 0}
.full-sheet{height:92dvh}

/* comments page */
.cmts{padding:6px 0 90px}
.cmt-row{display:flex;gap:10px;padding:9px 14px;align-items:flex-start}
.cmt-row .t{flex:1;font-size:14px;word-wrap:break-word;min-width:0}
.cmt-row .t .meta{margin-top:2px}
.cmt-row .del{color:var(--dim);font-size:12px;margin-left:10px}
.cmt-input{position:fixed;left:0;right:0;bottom:calc(var(--tab-h) + var(--safe-bottom));z-index:30;background:var(--chrome);border-top:1px solid var(--line);backdrop-filter:blur(12px)}
.cmt-input form{max-width:var(--maxw);margin:0 auto;display:flex;gap:10px;align-items:center;padding:8px 12px}
.cmt-input input{flex:1;background:var(--bg3);border:1px solid var(--line);border-radius:22px;height:42px;padding:0 16px;outline:none;font-size:16px}
.cmt-input button{color:var(--accent-t);font-weight:700}
.cmt-input button:disabled{opacity:.4}

/* pages */
.doc{padding:16px 18px 40px;font-size:14.5px;color:var(--text2)}
.doc h2{color:var(--text);font-size:22px;margin:4px 0 6px}
.doc h3{color:var(--text);font-size:16px;margin:20px 0 6px}
.doc .draft{display:inline-block;background:var(--tint);color:var(--accent-t);font-weight:700;font-size:12px;padding:4px 9px;border-radius:7px;letter-spacing:.4px}
.list-row{display:flex;align-items:center;gap:12px;padding:14px 16px;border-bottom:1px solid var(--line);font-size:15px}
.list-row svg{width:22px;height:22px;color:var(--muted)}
.list-row .sp{flex:1}
.about-card{margin:16px;padding:16px;border-radius:16px;background:var(--bg2);border:1px solid var(--line);font-size:14px;color:var(--muted)}
.about-card b{color:var(--text)}

#toast{position:fixed;left:50%;bottom:calc(var(--tab-h) + var(--safe-bottom) + 18px);transform:translateX(-50%) translateY(20px);background:var(--toast-bg);color:var(--toast-fg);padding:11px 16px;border-radius:12px;font-size:14px;font-weight:600;opacity:0;transition:.25s;z-index:120;pointer-events:none;max-width:90vw;text-align:center;box-shadow:0 8px 24px rgba(0,0,0,.4)}
#toast.on{opacity:1;transform:translateX(-50%) translateY(0)}
.bgpost{position:fixed;left:50%;transform:translateX(-50%);top:calc(env(safe-area-inset-top, 0px) + 62px);z-index:119;display:flex;align-items:center;gap:10px;width:min(300px,82vw);padding:9px 14px;border-radius:999px;background:var(--toast-bg);color:var(--toast-fg);font-size:13px;font-weight:600;box-shadow:0 6px 20px rgba(0,0,0,.25)}
.bgpost[hidden]{display:none}
.bgpost .bar{flex:0 0 64px;height:5px;border-radius:3px;background:rgba(127,127,127,.35);overflow:hidden}
.bgpost .bar i{display:block;height:100%;width:0;background:#00C46A;transition:width .25s}
.bgpost span{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bgpost.bad{cursor:pointer;white-space:normal}.bgpost.bad span{white-space:normal}.bgpost.bad .bar i{background:#e5484d}
@media (min-width:700px){ .post{border:1px solid var(--line);border-radius:14px;overflow:hidden;margin:14px 12px 22px} .post-body{padding-bottom:14px} }

/* ===== immersive views (home feed + single view) ===== */
.title-l{text-align:left!important;font-size:22px!important;letter-spacing:-.4px}
.text-btn{color:var(--accent-t);font-weight:700;padding:0 8px;height:40px}
.text-btn:disabled{opacity:.35}
body.immersive .topbar{color:#fff;background:linear-gradient(180deg,rgba(0,0,0,.55),rgba(0,0,0,0));border-bottom:0;backdrop-filter:none;-webkit-backdrop-filter:none}
body.immersive main{padding-top:0;padding-bottom:0;max-width:none}
.seg-top{display:flex;gap:18px;margin-left:auto;margin-right:4px}
.seg-top a{font-weight:650;font-size:15px;color:rgba(255,255,255,.62);padding:6px 0;border-bottom:2px solid transparent;text-shadow:0 1px 6px rgba(0,0,0,.5)}
.seg-top a.on{color:#fff;border-bottom-color:#fff}
body.immersive .brand-word{text-shadow:none;background:linear-gradient(92deg,#fff 10%,#d1fae5 55%,#bae6fd 100%);-webkit-background-clip:text;background-clip:text}
.reel{height:calc(100dvh - var(--tab-h) - var(--safe-bottom));overflow-y:auto;scroll-snap-type:y mandatory;overscroll-behavior:contain;scrollbar-width:none}
.reel::-webkit-scrollbar{display:none}
.slide{position:relative;height:calc(100dvh - var(--tab-h) - var(--safe-bottom));scroll-snap-align:start;scroll-snap-stop:always;overflow:hidden;background:#000;color:#fff;user-select:none;-webkit-user-select:none}
.slide-bg{position:absolute;inset:-30px;background-size:cover;background-position:center;filter:blur(28px) brightness(.55) saturate(1.2);transform:scale(1.1)}
.slide-img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;transition:object-fit .2s}
.slide.fill .slide-img{object-fit:cover}
.slide-shade{position:absolute;left:0;right:0;bottom:0;height:46%;background:linear-gradient(0deg,rgba(0,0,0,.78) 0%,rgba(0,0,0,.35) 55%,rgba(0,0,0,0) 100%);pointer-events:none}
.slide-info{position:absolute;left:14px;right:84px;bottom:18px;z-index:2}
.loc-pill{display:inline-flex;align-items:center;gap:6px;max-width:100%;background:rgba(255,255,255,.16);backdrop-filter:blur(14px) saturate(1.4);-webkit-backdrop-filter:blur(14px) saturate(1.4);border:1px solid rgba(255,255,255,.22);padding:8px 13px 8px 10px;border-radius:999px;font-size:14px;font-weight:650;margin-bottom:10px}
.loc-pill svg{width:16px;height:16px;flex:none;color:var(--accent)}
.loc-pill span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.by{display:flex;align-items:center;gap:8px;font-size:14px}
.by-u{display:inline-flex;align-items:center;gap:8px}
.by .av{background:rgba(255,255,255,.85)}
.by .when{color:rgba(255,255,255,.6);font-size:13px}
.follow-mini{border:1px solid rgba(255,255,255,.7);border-radius:8px;padding:3px 10px;font-size:13px;font-weight:650}
.slide-cap{margin:8px 0 0;font-size:14.5px;line-height:1.4;color:#f1f1f1;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;text-shadow:0 1px 8px rgba(0,0,0,.4)}
.slide.single .slide-cap{-webkit-line-clamp:unset}
.slide .credit{margin:6px 0 0;font-size:10.5px;color:rgba(255,255,255,.5)}
.slide .credit a{text-decoration:underline}
.rail{position:absolute;right:8px;bottom:22px;z-index:2;display:flex;flex-direction:column;gap:6px;align-items:center}
.rail-btn{width:62px;display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 0;font-size:12px;font-weight:650;color:#fff;text-shadow:0 1px 6px rgba(0,0,0,.6)}
.rail-btn svg{width:30px;height:30px;filter:drop-shadow(0 2px 6px rgba(0,0,0,.5))}
.rail-btn.on{color:var(--accent)}
.rail-btn.on svg .core{fill:currentColor}
.pop svg{animation:pop .45s}
@keyframes pop{35%{transform:scale(1.3) rotate(25deg)}}
.slide .burst{position:absolute;left:50%;top:45%;width:120px;height:120px;margin:-60px 0 0 -60px;color:var(--accent);opacity:0;transform:scale(.3);pointer-events:none;filter:drop-shadow(0 4px 18px rgba(0,0,0,.35));z-index:3}
.slide .burst.go{animation:sunburst 1s ease-out}
@keyframes sunburst{15%{opacity:1;transform:scale(1.15) rotate(20deg)}35%{transform:scale(.95) rotate(35deg)}80%{opacity:1}100%{opacity:0;transform:scale(1.05) rotate(60deg)}}
.end-slide{display:grid;place-items:center;background:var(--bg)}
.reel-end{height:1px}
body.detail .slide{height:78dvh}
.detail-more{padding:4px 0 calc(var(--tab-h) + var(--safe-bottom) + 20px);max-width:var(--maxw);margin:0 auto}
.loc-card{margin:14px 14px 4px;border-radius:18px;overflow:hidden;border:1px solid var(--line);background:var(--bg2)}
.loc-card .mm{height:150px}
.lc-t{display:flex;align-items:center;gap:10px;padding:12px 14px}
.lc-t>div{flex:1;min-width:0}
.lc-t b{display:block;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lc-t span{font-size:12px;color:var(--muted)}
.likes-line{display:flex;align-items:center;gap:8px;padding:14px 16px 2px;font-weight:650;color:var(--text)}

/* comments */
.clist{padding:2px 0 8px}
.cmt-row{display:flex;gap:10px;padding:9px 16px;align-items:flex-start}
.cmt-row .t{flex:1;font-size:14px;word-wrap:break-word;min-width:0}
.cmt-row .meta{display:inline;color:var(--dim);font-size:12px}
.cmt-row .del{color:var(--dim);font-size:12px;margin-top:2px}
.none{color:var(--dim);padding:8px 16px;font-size:14px}
.cmt-form{display:flex;gap:10px;align-items:center;padding:8px 12px;border-top:1px solid var(--line);background:var(--bg)}
.cmt-form input{flex:1;background:var(--bg3);border:1px solid var(--line);border-radius:22px;height:42px;padding:0 16px;outline:none;font-size:16px;min-width:0}
.cmt-form button{color:var(--accent-t);font-weight:700}
.cmt-form button:disabled{opacity:.35}
.detail-more .cmt-form{position:sticky;bottom:calc(var(--tab-h) + var(--safe-bottom))}
.sheet.tall{height:86dvh}
.sheet .cbody{flex:1;display:flex;flex-direction:column;padding:0;overflow:hidden}
.sheet .cbody .clist{flex:1;overflow-y:auto}
.sheet .sub{text-align:center;color:var(--muted);font-size:13px;margin:-4px 20px 8px}
.sheet .opt.cancel{justify-content:center;color:var(--muted)}

/* masonry */
.ig-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2px;padding:0 0 8px}
.tile{position:relative;display:block;aspect-ratio:4/5;overflow:hidden;background:var(--tile);border-radius:0}
.tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;display:block}
.tile .play-badge{top:6px;right:6px}
.tile-loc{position:absolute;left:6px;bottom:6px;right:6px;display:flex;align-items:center;gap:4px;font-size:11.5px;font-weight:650;color:#fff;text-shadow:0 1px 4px rgba(0,0,0,.8);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tile-loc svg{color:var(--accent);flex:none}
.tile-dist{position:absolute;top:6px;right:6px;font-size:11px;font-weight:700;color:#fff;background:rgba(0,0,0,.6);backdrop-filter:blur(6px);padding:3px 8px;border-radius:999px}
.place-row{display:flex;gap:8px;overflow-x:auto;padding:0 12px 6px;scrollbar-width:none}
.place-row::-webkit-scrollbar{display:none}
.place-card{flex:none;width:132px;height:92px;border-radius:14px;background-size:cover;background-position:center;position:relative;overflow:hidden}
.place-card::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.75),rgba(0,0,0,.05) 70%)}
.place-card span{position:absolute;left:9px;bottom:7px;right:9px;z-index:1;font-size:11.5px;color:#ddd}
.place-card b{display:block;font-size:13.5px;color:#fff}
.chips{display:flex;gap:6px;padding:0 16px 12px;overflow-x:auto}
.place-ic.sm{width:36px;height:36px}
.row{width:100%;text-align:left}

/* profile */
.prof{padding:0 0 4px}
.prof-cover{height:150px;background-size:cover;background-position:center;position:relative}
.prof-cover::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(var(--bg-rgb),0) 40%,var(--bg) 100%)}
.prof-id{display:flex;align-items:flex-end;gap:14px;padding:0 16px;margin-top:-42px;position:relative;z-index:1}
.prof-id .av.lg{width:92px;height:92px;background:var(--bg)}
.prof-id .nm{font-weight:750;font-size:20px;letter-spacing:-.3px;margin:0}
.prof-id .un{color:var(--muted);font-size:14px;padding-bottom:6px}
.prof .bio{font-size:14.5px;white-space:pre-wrap;margin:10px 16px 0;color:var(--text2)}
.prof .fy{display:inline-block;font-size:11px;background:var(--bg3);color:var(--muted);padding:2px 7px;border-radius:6px;margin-left:4px}
.stats{display:flex;gap:6px;padding:14px 16px 0}
.stats a{flex:1;background:linear-gradient(var(--stat-bg),var(--stat-bg)) padding-box,var(--stat-border) border-box;border:1.5px solid transparent;box-shadow:var(--stat-glow);border-radius:var(--stat-radius);padding:6px 2px 7px;text-align:center;font-size:11.5px;line-height:1.2;color:var(--muted)}
.stats b{display:block;font-size:16px;color:var(--stat-num);font-weight:750;margin-bottom:1px}
.prof-btns{display:flex;gap:8px;margin:12px 16px 6px}
.prof-btns .btn{flex:1;height:38px;font-size:14px;border-radius:11px}
.tabs{display:flex;gap:6px;padding:10px 12px}
.tabs button{flex:1;height:38px;border-radius:11px;display:flex;align-items:center;justify-content:center;gap:6px;color:var(--muted);font-weight:650;font-size:14px;background:var(--bg2)}
.tabs button.on{background:var(--chip-on-bg);color:var(--chip-on-fg)}
.prof-map{height:60dvh;margin:0 8px;border-radius:16px;overflow:hidden}

/* misc */
.auth-brand{display:flex;align-items:center;gap:10px;margin-bottom:18px}
.auth-brand img{border-radius:11px}
.auth-brand .brand-word{font-size:26px;font-weight:750;letter-spacing:-.6px}
.auth-back{display:inline-flex;margin-bottom:14px}
.btn.ghost{background:none;border-color:transparent;color:var(--muted)}
.list-row{width:100%;text-align:left;background:none}
.list-row.red{color:var(--danger)}
.list-row.red svg{color:var(--danger)}
.file-cover{position:absolute;inset:0;opacity:0}
.inp{width:100%;background:var(--bg3);border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin-bottom:10px;font-size:16px;outline:none}
.sbox{display:flex;align-items:center;gap:8px;background:var(--bg3);border-radius:12px;padding:0 12px;height:42px}
.sbox svg{width:18px;height:18px;color:var(--muted)}
.sbox input{flex:1;background:none;border:0;outline:none;font-size:16px;height:100%;min-width:0}
.loc-acts{display:flex;gap:8px}
.loc-acts .btn{flex:1;padding:0 10px}
.fine{color:var(--dim);font-size:12px;text-align:center;margin-top:10px}
.center{display:flex;justify-content:center;padding:10px}
.spin.dark{width:18px;height:18px;border-color:rgba(255,255,255,.35);border-top-color:#fff}
.check .spin.ic{width:20px;height:20px}
.loc-row{width:100%;text-align:left}
.loc-row.set b{color:var(--gold)}
.map-search .box{display:flex;align-items:center;gap:8px;border-radius:12px;padding:0 12px;height:42px}
.map-search .box svg{width:18px;height:18px;color:var(--muted)}
.map-search input{flex:1;background:none;border:0;outline:none;font-size:16px;height:100%;min-width:0}
.map-results .row{border-bottom:1px solid var(--line)}
.preview img{max-height:56dvh;margin:0 auto}
.preview{display:flex;justify-content:center}
.preview #boxes{position:absolute;inset:0;pointer-events:none}
.preview{position:relative}
.preview{display:block;width:fit-content;max-width:100%;margin:0 auto;position:relative}
.preview img{max-width:100%;max-height:56dvh;width:auto;display:block}

/* ===== simplify pass (Nov 3) ===== */
.tabbar a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}
.tabbar a small{font-size:10.5px;font-weight:600;letter-spacing:.1px;line-height:1}
.tabbar a svg{width:24px;height:24px}
.tabbar .av.tab-avatar{width:26px;height:26px}
.tabbar .post-btn span{width:48px;height:34px;border-radius:12px}
.topbar .shuf{color:#fff;filter:drop-shadow(0 1px 4px rgba(0,0,0,.5))}
.topbar .shuf svg{width:24px;height:24px}
.loc-pill{font-weight:500;font-size:14.5px;padding:9px 14px 9px 11px}
.loc-pill b{font-weight:700}
.loc-pill span{color:rgba(255,255,255,.88)}
.meta-line{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:12.5px;color:rgba(255,255,255,.78);margin:-2px 0 8px;text-shadow:0 1px 5px rgba(0,0,0,.6)}
.real-badge{display:inline-flex;align-items:center;gap:4px;font-size:11.5px;font-weight:600;color:#cfeedd;background:rgba(61,220,151,.16);border:1px solid rgba(61,220,151,.35);border-radius:999px;padding:2px 8px 2px 6px;text-shadow:none}
.real-badge svg{color:var(--ok)}
.rail-btn.small svg{width:24px;height:24px;opacity:.9}
.sheet.auth-s .body{padding:0 20px}
.auth-sheet .why{text-align:center;color:var(--muted);margin:-2px 0 14px;font-size:14.5px}
.auth-sheet .switch{text-align:center;color:var(--muted);margin:14px 0 4px;font-size:14px}
.auth-sheet .switch button{color:var(--text);font-weight:650}
.auth-sheet .legal{text-align:center;color:var(--dim);font-size:12px;margin:8px 0 6px}
.auth-sheet .legal a{text-decoration:underline}
.first-hint{position:fixed;inset:0;z-index:80;display:grid;place-items:center;background:rgba(0,0,0,.45);animation:fade .3s;transition:opacity .3s}
.first-hint.out{opacity:0}
.fh-in{background:var(--overlay);color:var(--text);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid var(--line);border-radius:20px;padding:20px 24px 16px;text-align:center;max-width:300px}
.fh-in p{margin:6px 0;font-size:15.5px;color:var(--text2)}
.fh-in .btn{margin-top:12px}
.fh-swipe{width:44px;height:44px;margin:0 auto 6px;border-radius:50%;display:grid;place-items:center;background:var(--tint);color:var(--accent);animation:fhup 1.4s ease-in-out infinite}
@keyframes fhup{0%,100%{transform:translateY(6px)}50%{transform:translateY(-6px)}}
.me-join{padding:10px 22px 30px;text-align:center}
.me-art{height:180px;border-radius:20px;background-size:cover;background-position:center;margin:6px 0 20px}
.me-join h2{margin:0 0 8px;font-size:22px;letter-spacing:-.3px}
.me-join p{color:var(--muted);margin:0 0 18px;font-size:15px}
.me-links{margin-top:22px;font-size:13px;color:var(--dim)}
.me-links a{text-decoration:underline}
.place-info h2 b{font-weight:700}
.place-info .exact{display:flex;align-items:center;gap:5px;color:var(--gold);font-size:13px}
.place-info .exact svg{color:var(--accent-t)}
.photo-pin.exact-pin{width:58px;height:58px;border:3px solid var(--accent);box-shadow:0 0 0 6px rgba(0,214,110,.25),0 6px 18px rgba(0,0,0,.6)}
.loc-lock{display:flex;align-items:center;gap:12px;width:calc(100% - 28px);margin:14px;padding:14px;border-radius:16px;background:var(--bg2);border:1px solid var(--line);text-align:left}
.loc-lock>svg:first-child{width:24px;height:24px;color:var(--accent-t);flex:none}
.loc-lock div{flex:1;min-width:0}
.loc-lock b{display:block}
.loc-lock span{font-size:13px;color:var(--muted)}
.loc-lock>svg:last-child{width:18px;height:18px;color:var(--dim)}
.loc-block{margin:4px 0 12px}
.loc-name{display:flex;align-items:center;gap:8px;background:var(--bg3);border:1px solid var(--line);border-radius:12px;padding:4px 12px}
.loc-name svg{width:20px;height:20px;color:var(--accent-t);flex:none}
.loc-name input{flex:1;background:none;border:0;outline:none;font-size:16px;font-weight:600;padding:9px 0;color:var(--text);min-width:0}
.loc-sub{font-size:12.5px;color:var(--muted);margin:6px 2px 8px}
.up-map-wrap{position:relative;height:230px;border-radius:14px;overflow:hidden;border:1px solid var(--line)}
.up-map{position:absolute;inset:0}
.up-search{position:absolute;left:8px;right:8px;top:8px;z-index:500}
.up-search .box{background:var(--overlay);box-shadow:var(--ov-shadow);backdrop-filter:blur(8px);border-radius:10px;display:flex;align-items:center;gap:6px;padding:0 10px}
.up-search .box svg{width:16px;height:16px;color:var(--muted)}
.up-search input{flex:1;background:none;border:0;outline:none;padding:9px 0;font-size:16px;color:var(--text)}
.up-search #lres{background:var(--overlay);box-shadow:var(--ov-shadow);border-radius:10px;margin-top:4px;max-height:170px;overflow-y:auto}
.up-search #lres:empty{display:none}
.loc-acts2{display:flex;gap:8px;margin-top:8px}
.form-meta{margin:0 0 10px;text-shadow:none}
.form-meta:empty{display:none}
.text-btn.danger-t{display:block;margin:12px auto 0;color:var(--danger);font-size:14px}
.draft-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2px;padding:0}
.draft{position:relative;aspect-ratio:4/5;overflow:hidden;background:var(--bg2)}
.draft img{width:100%;height:100%;object-fit:cover;opacity:.8}
.draft span{position:absolute;left:6px;right:6px;bottom:5px;font-size:11.5px;font-weight:600;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-shadow:0 1px 4px #000}

/* like button: first, bigger, labelled */
.rail-btn.like-btn{padding:4px 0 8px;gap:1px}
.rail-btn.like-btn svg{width:40px;height:40px}
.rail-btn.like-btn .cnt{font-size:14.5px;font-weight:750;margin-top:2px}
.rail-btn.like-btn small{font-size:10.5px;font-weight:600;opacity:.85;letter-spacing:.02em}
.rail-btn.like-btn.on{color:var(--heart)}
.rail-btn.like-btn.on .cnt,.rail-btn.like-btn.on small{color:#fff}
.rail-btn svg{width:28px;height:28px}
.pop svg{animation:likepop .45s}
@keyframes likepop{35%{transform:scale(1.35)}70%{transform:scale(.95)}}
.slide .burst{color:var(--heart);filter:drop-shadow(0 4px 24px rgba(0,196,106,.55))}
.slide .burst.go{animation:heartburst .95s ease-out}
@keyframes heartburst{15%{opacity:1;transform:scale(1.2)}35%{transform:scale(.92)}50%{transform:scale(1)}80%{opacity:1}100%{opacity:0;transform:scale(1.1) translateY(-14px)}}
.likes-line svg{color:var(--heart)}

/* tap-to-change profile photo + mountain crop */
.av-edit{position:relative;display:inline-block;flex:none;padding:0;background:none;border:0;cursor:pointer}
.av-cam{position:absolute;right:-2px;bottom:2px;width:24px;height:24px;border-radius:50%;background:var(--grad-icon);color:#fff;display:grid;place-items:center;border:2px solid var(--bg)}
.av-cam svg{width:14px;height:14px}
.crop{position:relative;width:240px;height:240px;margin:6px auto 0;overflow:hidden;touch-action:none;cursor:grab;border-radius:14px;background:var(--bg3)}
.crop img{position:absolute;left:0;top:0;max-width:none;user-select:none;-webkit-user-drag:none;pointer-events:none;transform-origin:0 0}
.crop-ghost{opacity:.22}
.crop .av.crop-av{position:absolute;inset:0;width:240px;height:240px;background:rgba(255,255,255,.9)}
.crop .av.crop-av>img{inset:auto;left:0;top:0;width:auto;height:auto;-webkit-mask:none;mask:none;background:none}
.crop-hint{text-align:center;color:var(--muted);font-size:12.5px;margin:10px 0 4px}
.crop-zoom{display:block;width:100%;margin:6px 0 14px;accent-color:var(--accent)}


/* ===== light theme + settings (Nov 3) ===== */
html,body{transition:background-color .2s}
.form-meta{color:var(--muted)}
.form-meta .real-badge{color:var(--ok)}
html:not(.dark) .sheet{box-shadow:0 -8px 30px rgba(16,24,40,.12)}
html:not(.dark) .map-card,html:not(.dark) .loc-card,html:not(.dark) .sug{border-color:var(--line)}
html:not(.dark) .btn{background:#fff;border-color:#dfe2e6}
html:not(.dark) .btn.primary{background:var(--grad);color:#fff}
html:not(.dark) .btn.light{background:#111;color:#fff}
html:not(.dark) .tabbar .post-btn span{box-shadow:var(--glow)}
html:not(.dark) .tabbar a{color:#8b919a}
html:not(.dark) .tabbar a.on{color:var(--accent-t)}
html:not(.dark) .end-slide{background:#000;color:#fff}
.set-h{font-size:12.5px;color:var(--muted);font-weight:650;letter-spacing:.5px;text-transform:uppercase;padding:18px 18px 8px}
.seg3{display:flex;gap:6px;margin:0 16px;padding:4px;border-radius:14px;background:var(--bg2);border:1px solid var(--line)}
.seg3 button{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;padding:10px 4px 9px;border-radius:10px;font-size:13.5px;font-weight:650;color:var(--muted)}
.seg3 button.on{background:var(--bg);color:var(--text);box-shadow:0 1px 4px rgba(0,0,0,.12)}
html.dark .seg3 button.on{background:var(--bg3)}
.seg3 .sw{width:46px;height:30px;border-radius:8px;border:1px solid rgba(127,127,127,.35);overflow:hidden;display:flex}
.seg3 .sw i{flex:1;display:block}
.set-note{font-size:12.5px;color:var(--dim);margin:8px 18px 0}
.set-group{margin:0 16px;border-radius:14px;background:var(--bg2);border:1px solid var(--line);overflow:hidden}
.set-group .list-row{border-bottom:1px solid var(--line);padding:13px 14px}
.set-group .list-row:last-child{border-bottom:0}
.set-group .list-row:active{background:var(--press)}
.icon-btn svg.gear{width:24px;height:24px}
.seg3.units button{flex-direction:row;justify-content:center;padding:11px 4px}

/* ===== Slides (short videos) ===== */
.kind-row{display:flex;justify-content:center;padding:0 0 8px;pointer-events:none}
.kind-seg{pointer-events:auto;display:inline-flex;gap:2px;padding:3px;border-radius:999px;background:rgba(0,0,0,.28);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.18)}
.kind-seg a{display:inline-flex;align-items:center;gap:5px;padding:6px 16px;border-radius:999px;font-size:14px;font-weight:650;color:rgba(255,255,255,.78)}
.kind-seg a.on{background:#fff;color:#111}
.kind-seg a svg{width:12px;height:12px}
.slide.clip .clip-vid{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background:transparent}
.slide.clip.wide .clip-vid{object-fit:cover}
.slide.clip .slide-bg{filter:blur(28px) brightness(.7);transform:scale(1.2)}
.clip-frame{position:absolute;inset:0;container-type:size;pointer-events:none;z-index:1}
.fx-layer{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(100cqw,calc(100cqh * 9 / 16));height:min(100cqh,calc(100cqw * 16 / 9));container-type:size;pointer-events:none}
.fx-i{position:absolute;transform:translate(-50%,-50%);white-space:pre;line-height:1.15;user-select:none;-webkit-user-select:none;touch-action:none}
.fx-e{line-height:1;filter:drop-shadow(0 2px 6px rgba(0,0,0,.35))}
.fx-t{font-weight:700;text-align:center;text-shadow:0 1px 10px rgba(0,0,0,.45);padding:.08em .35em;border-radius:.3em;letter-spacing:-.01em}
.fx-t.bg{text-shadow:none}
.f-clean{font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",Roboto,Arial,sans-serif;font-weight:650}
.f-bold{font-family:"Arial Black","Helvetica Neue",Impact,-apple-system,sans-serif;font-weight:900;text-transform:uppercase;letter-spacing:.02em}
.f-serif{font-family:"New York","Iowan Old Style",Georgia,"Times New Roman",serif;font-weight:600;font-style:italic}
.f-hand{font-family:"Snell Roundhand","Segoe Script","Bradley Hand","Brush Script MT","Comic Sans MS",cursive;font-weight:700}
.f-mono{font-family:ui-monospace,"SF Mono",Menlo,Consolas,monospace;font-weight:600}
.snd-btn{position:absolute;right:12px;top:calc(var(--top-h) + var(--safe-top) + 52px);z-index:3;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:rgba(0,0,0,.38);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:#fff}
.snd-btn svg{width:20px;height:20px}
body.detail .snd-btn{top:calc(var(--top-h) + var(--safe-top) + 10px)}
.music-chip{display:inline-flex;align-items:center;gap:6px;max-width:100%;margin-top:8px;padding:5px 11px 5px 9px;border-radius:999px;background:rgba(0,0,0,.32);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:#fff;font-size:12.5px;font-weight:600}
.music-chip svg{flex:none}
.music-chip svg{width:13px!important;height:13px!important;filter:none!important}
.mc-run{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;min-width:0}
.mc-run span{display:inline}
.slide.clip.sound-on .music-chip{background:rgba(255,255,255,.22)}
.play-badge{position:absolute;top:7px;right:7px;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:rgba(0,0,0,.5);color:#fff;z-index:1}
.play-badge svg{width:13px;height:13px;margin-left:2px}
.photo-pin .play-badge{top:auto;bottom:-6px;right:-6px;width:20px;height:20px;border:2px solid #fff}
.photo-pin .play-badge svg{width:10px;height:10px}
.clip-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2px;padding:0 0 8px}
.post-opt{gap:14px}
.post-opt .po-ic{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:var(--bg3);flex:none}
.post-opt .po-ic svg{width:22px;height:22px}
.post-opt .po-ic.vid{background:var(--grad);color:#fff}
.post-opt b{display:block;font-size:16px}
.post-opt small{display:block;color:var(--muted);font-size:13px;margin-top:1px}
.sheet-h{text-align:center;padding:2px 0 6px;font-size:16px}
/* editor */
.ed-wrap{display:flex;justify-content:center;padding:10px 0 4px}
.ed-stage{position:relative;width:min(92vw,calc(60dvh * 9 / 16),420px);aspect-ratio:9/16;border-radius:18px;overflow:hidden;background:#000;box-shadow:0 8px 28px rgba(0,0,0,.18)}
.ed-stage .clip-vid{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ed-stage.wide .clip-vid{object-fit:contain}
.ed-stage .snd-btn{top:10px;right:10px}
.ed-stage.blocked .clip-vid{filter:blur(14px) grayscale(.6)}
.fx-layer.editing{pointer-events:auto}
.fx-layer.editing .fx-i{pointer-events:auto;cursor:grab}
.fx-i.sel{outline:2px dashed rgba(255,255,255,.9);outline-offset:4px}
.ed-sel{position:absolute;bottom:12px;left:50%;transform:translateX(-50%);z-index:4;display:flex;gap:2px;padding:3px;border-radius:12px;background:rgba(20,20,22,.86);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.ed-sel[hidden],.ed-sel [hidden]{display:none!important}
.ed-sel button{color:#fff;font-size:13px;font-weight:650;padding:7px 10px;border-radius:9px}
.ed-sel .danger-t{color:#ff8a8d}
.ed-tools{display:flex;gap:8px;justify-content:center;padding:10px 12px 2px}
.ed-tool{flex:1;max-width:96px;display:flex;flex-direction:column;align-items:center;gap:4px;font-size:12px;font-weight:600;color:var(--muted)}
.ed-tool b{font-weight:600;max-width:90px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ed-tool .et-ic{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;background:var(--bg2);border:1px solid var(--line);color:var(--text);font-size:19px;font-weight:800}
.ed-tool.on .et-ic{background:var(--grad);color:#fff;border-color:transparent}
.ed-tool.off .et-ic{color:var(--dim)}
.ed-hint{text-align:center;margin:6px 16px 4px}
.ed-trim{margin:8px 16px 0;padding:12px 14px;border-radius:14px;background:var(--bg2);border:1px solid var(--line)}
.ed-trim .tr-h{display:flex;justify-content:space-between;font-size:14px;margin-bottom:6px}
.ed-trim .tr-h span{color:var(--muted);font-variant-numeric:tabular-nums}
.ed-trim input{width:100%;accent-color:var(--accent)}
/* v118: video trimmer — frames strip, green frame with two handles, dimmed outside */
.ed-trim .tr-h b{font-weight:650}
.vt-strip{position:relative;height:56px;padding:0 14px;margin:2px -4px 0;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;cursor:grab}
.vt-strip.drag{cursor:grabbing}
.vt-track{position:relative;height:100%;border-radius:6px;overflow:hidden;background:var(--bg3)}
.vt-fr{position:absolute;inset:0;display:flex}
.vt-fr canvas{flex:1 1 0;min-width:0;width:0;height:100%;display:block;opacity:0;transition:opacity .2s}
.vt-fr canvas.on{opacity:1}
.vt-dim{position:absolute;top:0;bottom:0;background:rgba(0,0,0,.58);pointer-events:none}
.vt-dim.l{left:0;width:0}.vt-dim.r{right:0}
.vt-win{position:absolute;top:0;bottom:0;border-top:3px solid #00C46A;border-bottom:3px solid #00C46A;box-sizing:border-box;pointer-events:none}
.vt-h{position:absolute;top:-3px;bottom:-3px;width:14px;background:#00C46A;display:flex;align-items:center;justify-content:center}
.vt-h.l{left:-14px;border-radius:7px 0 0 7px}.vt-h.r{right:-14px;border-radius:0 7px 7px 0}
.vt-h::after{content:"";width:3px;height:18px;border-radius:2px;background:#fff}
.vt-win i{position:absolute;top:-1px;bottom:-1px;left:0;width:3px;margin-left:-1.5px;border-radius:2px;background:#fff;box-shadow:0 0 3px rgba(0,0,0,.55);opacity:0}
.vt-hint{margin:8px 0 0}
.ed-sheet{display:flex;flex-direction:column;gap:12px;padding-bottom:6px}
.ed-sheet .chips{padding:0}
.ed-text{width:100%;height:46px;border-radius:12px;border:1px solid var(--inp-line);background:var(--inp-bg);padding:0 14px;font-size:16px}
.dots{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.dot{width:30px;height:30px;border-radius:50%;border:2px solid var(--line);box-shadow:inset 0 0 0 2px var(--sheet)}
.dot.on{border-color:var(--text)}
.ed-prev{height:74px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(135deg,#5b7da8,#c99a6b);font-size:26px;overflow:hidden}
.stk-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:4px}
.stk-grid button{font-size:30px;height:52px;border-radius:12px}
.stk-grid button:active{background:var(--press)}
.stk-any{display:flex;gap:8px}
.stk-any input{flex:1;height:40px;border-radius:12px;border:1px solid var(--inp-line);background:var(--inp-bg);padding:0 12px;font-size:16px}
.mus-list{display:flex;flex-direction:column;gap:4px}
.mus{display:flex;align-items:center;gap:12px;padding:8px 10px;border-radius:12px;text-align:left;width:100%;cursor:pointer;border:1.5px solid transparent}
.mus.on{border-color:var(--accent);background:var(--tint)}
.mus b{display:block;font-size:15px}
.mus small{display:block;color:var(--muted);font-size:12.5px}
.mus-ic{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:var(--bg3);flex:none;font-size:16px;color:var(--text)}
.mus-ic svg{width:16px;height:16px}
.mus-search{display:flex;align-items:center;gap:8px;background:var(--bg3);border-radius:12px;padding:0 12px;color:var(--muted)}
.mus-search input{flex:1;min-width:0;border:0;background:transparent;font-size:16px;padding:11px 0;color:var(--text);outline:none;-webkit-appearance:none;appearance:none}
.mus-ic.art{border-radius:8px;background-size:cover;background-position:center;color:#fff}
.mus-ic.art svg{filter:drop-shadow(0 1px 2px rgba(0,0,0,.7))}
.mus-cap{font-size:13px;font-weight:600;color:var(--muted);margin:4px 4px -6px}
.mus-note{font-size:13.5px;color:var(--muted);padding:8px 10px}
.mus-hot{display:block;color:var(--accent-t);font-size:12px;font-weight:600;margin-top:1px}
.mus-list:empty{display:none}
.mus-row{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:14.5px;padding:2px 2px}
.mus-row input[type=range]{flex:1;max-width:180px;accent-color:var(--accent)}
.mus-row input[type=checkbox]{width:22px;height:22px;accent-color:var(--accent)}
.sheet.tall{max-height:88dvh}
.upprog{display:flex;align-items:center;gap:10px;margin:0 0 10px;font-size:13px;color:var(--muted)}
.upprog .bar{flex:1;height:6px;border-radius:3px;background:var(--bg3);overflow:hidden}
.upprog .bar i{display:block;height:100%;width:0;background:var(--grad-h);transition:width .2s}
.draft .play-badge{top:6px;right:6px}
.tabbar a svg{width:24px;height:24px}

/* directions: Google Maps (every device) */
.gmaps-ic{width:16px;height:22px;flex:none;filter:drop-shadow(0 1px 1px rgba(0,0,0,.18))}
.btn.gmaps,.btn.gmaps-big{display:inline-flex;align-items:center;justify-content:center;gap:8px}
.btn.gmaps-big{margin-top:10px;height:46px;font-weight:650;font-size:15px}
.lc-dir{padding:0 14px 14px}.lc-dir .btn.gmaps-big{margin-top:0}
.map-card .t .go{flex-wrap:wrap;row-gap:4px}
.map-card .dir-mini{display:inline-flex;align-items:center;gap:5px}
.map-card .dir-mini .gmaps-ic{width:11px;height:15px}

/* ===== Rising-sun green -> sky blue refresh (Nov 4): accent surfaces, flat ===== */
.btn.primary,html:not(.dark) .btn.primary{background:var(--grad);color:#fff;border:0;box-shadow:var(--glow);text-shadow:none}
.btn.primary:active{transform:scale(.98);filter:brightness(.96)}
.chip.on,.tabs button.on{background:var(--chip-on-bg);color:var(--chip-on-fg);box-shadow:none}
.kind-seg a.on{background:var(--grad);color:#fff;box-shadow:none}
.seg-top a.on{color:#fff;border-bottom-color:transparent;background:var(--grad-h) left bottom/100% 2.5px no-repeat}
.seg button.on{color:var(--accent-t);border-bottom-color:transparent;background:var(--grad-h) left bottom/100% 2px no-repeat}
.seg3 button.on{color:var(--accent-t);box-shadow:0 0 0 1.5px var(--accent)}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.field input:focus,.field textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--tint)}
input[type=checkbox],input[type=radio],input[type=range],progress{accent-color:var(--accent)}
.auth .switch button,.auth-sheet .switch button{color:var(--accent-t)}
.tabbar a.on small{font-weight:700}
.follow-mini{background:var(--grad);border-color:transparent;color:#fff}
.brand-ic{border-radius:7px;flex:none;box-shadow:0 2px 8px rgba(0,0,0,.25)}
.logo-mark{background-image:url(/icons/rising-192.png?v=51)}

/* ===== Saved spots (bookmark) ===== */
.rail-btn.save-btn{gap:2px}
.rail-btn.save-btn svg{width:30px;height:30px}
.rail-btn.save-btn small{font-size:10.5px;font-weight:600;opacity:.9;letter-spacing:.02em}
.rail-btn.save-btn.on{color:var(--accent)}
.rail-btn.save-btn.on small{color:#fff}
.btn.save-chip{display:inline-flex;align-items:center;gap:6px}
.btn.save-chip.on{color:var(--accent-t);border-color:var(--accent)}
.tabs.five{gap:4px;padding:10px 8px}
.tabs.five button{font-size:12.5px;gap:4px;padding:0 2px;min-width:0;white-space:nowrap}
.tabs.five button svg{width:16px;height:16px;flex:none}
.saved-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:4px 14px 10px}
.saved-head .fine{margin:0;text-align:left;font-size:12.5px;color:var(--muted);line-height:1.35}
.saved-head .fine b{color:var(--text);font-size:14px;font-weight:700}
.seg-mini{display:flex;background:var(--bg2);border-radius:10px;padding:3px;flex:none}
.seg-mini a{display:flex;align-items:center;gap:5px;height:30px;padding:0 11px;border-radius:8px;font-size:13px;font-weight:650;color:var(--muted)}
.seg-mini a.on{background:var(--grad);color:#fff}
.saved-list{display:flex;flex-direction:column;gap:10px;padding:2px 12px 16px}
.saved-row{display:flex;align-items:flex-start;gap:12px;padding:10px;border:1px solid var(--line);border-radius:14px;background:var(--bg)}
.sr-th{position:relative;width:92px;height:92px;border-radius:11px;overflow:hidden;flex:none;background:var(--tile)}
.sr-th img{width:100%;height:100%;object-fit:cover;display:block}
.sr-th .play-badge{top:4px;right:4px}
.sr-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:8px}
.sr-main{display:flex;flex-direction:column;min-width:0;gap:1px;color:inherit}
.sr-main b{font-size:16px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sr-c{font-size:13px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sr-m{display:flex;gap:8px;align-items:baseline;font-size:12.5px;min-width:0}
.sr-d{font-weight:700;color:var(--accent-t);white-space:nowrap}
.sr-d:empty{display:none}
.sr-by{color:var(--dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.btn.small.sr-dir{align-self:flex-start;height:32px;padding:0 11px;font-size:13px;gap:6px;white-space:nowrap}
.btn.small.sr-dir .gmaps-ic{width:12px;height:17px}
.sr-un{width:36px;height:36px;margin:-4px -4px 0 0;display:grid;place-items:center;color:var(--accent);border-radius:10px;flex:none}
.sr-un:active{background:var(--press)}
.near-btn{display:flex;align-items:center;gap:6px;margin:0 auto 18px}
.near-btn[hidden]{display:none}
.saved-map{height:60dvh}
.saved-pop{display:flex;flex-direction:column;gap:6px;min-width:140px}
.saved-pop a:first-child{display:flex;flex-direction:column;gap:5px;color:#111}
.saved-pop img{width:100%;height:84px;object-fit:cover;border-radius:8px}
.saved-pop b{font-size:13.5px}
.saved-pop .dir-mini{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;font-weight:650;color:#047857}
.saved-pop .dir-mini .gmaps-ic{width:11px;height:15px}

/* ===== v4 (Nov 4): black bottom bar, ☰ You menu, full view (clean mode), no top Views|Slides pill ===== */
/* bottom bar is black in light AND dark, so a photo flows into it instead of looking cut off */
/* bar colour follows the screen (Nov 4, v6): black only on the full-photo screens (Views / Slides feed, a post),
   the normal white bar (dark grey in dark mode) everywhere else; the colours cross-fade when you switch */
.tabbar{transition:background-color .3s ease,border-color .3s ease,opacity .25s ease}
.tabbar a,.tabbar a small{transition:color .3s ease}
body.immersive .tabbar,html:not(.dark) body.immersive .tabbar{background:#000;border-top:1px solid rgba(255,255,255,.08);backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:none}
body.immersive .tabbar a,html:not(.dark) body.immersive .tabbar a{color:rgba(255,255,255,.62)}
body.immersive .tabbar a.on,html:not(.dark) body.immersive .tabbar a.on{color:#2EE59D}
body.immersive .tabbar a.on small,html:not(.dark) body.immersive .tabbar a.on small{background:linear-gradient(90deg,#2EE59D,#38BDF8);-webkit-background-clip:text;background-clip:text;color:transparent}
.tabbar .post-btn span,html:not(.dark) .tabbar .post-btn span{background:var(--grad-icon);color:#fff;box-shadow:0 2px 10px rgba(0,200,140,.28)}
body.immersive .tabbar .av.tab-avatar{background:rgba(255,255,255,.35)}
.tabbar a.on .av.tab-avatar{background:var(--grad-icon)}
/* feed: the Views | Slides switch is only in the bottom bar now */
.kind-row{display:none}
.snd-btn{top:calc(var(--top-h) + var(--safe-top) + 10px)}
/* full view: one tap hides everything but the photo / video; another tap brings it back */
body.immersive{background:#000}
.topbar,.slide-info,.slide-shade,.rail,.snd-btn{transition:opacity .25s ease}
body.clean .topbar,body.clean .tabbar,body.clean .slide-info,body.clean .slide-shade,body.clean .rail,body.clean .snd-btn,body.clean .music-chip{opacity:0;pointer-events:none}
/* v15: full view no longer resizes the reel/slide (the photo stays exactly in place); see the v15 block at the end */
.clean-hint{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:60;pointer-events:none;background:rgba(0,0,0,.55);color:#fff;font-size:14px;font-weight:600;padding:9px 16px;border-radius:999px;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);animation:fade .35s;transition:opacity .45s}
.clean-hint.out{opacity:0}
/* You menu (☰) */
.you-menu{display:flex;flex-direction:column}

/* v5: Edit/Share live in Settings (Nov 4) */
.set-group.set-top{margin-top:14px}

/* v6 (Nov 4): content safety */
.nsfw-hide img,.nsfw-hide video,.nsfw-hide canvas,.preview.nsfw-hide img{filter:blur(28px) brightness(.55);transform:scale(1.08)}
.preview.nsfw-hide,.nsfw-hide{overflow:hidden}
.report-sheet .rr{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left}
.report-sheet .rr b{font-weight:650}
.report-sheet .rr small{font-size:12.5px;color:var(--muted);font-weight:500}
.leaflet-container{z-index:0} /* keep maps under sheets and the toast (their panes are z-index 400+) */
.report-sheet .report-reasons{overflow-y:auto;min-height:0;flex:1 1 auto}

/* v7: white bar (profile, map, settings…): the active tab keeps the brand green → blue, like on the black bar */
html:not(.dark) body:not(.immersive) .tabbar a.on{color:#059669}
html:not(.dark) body:not(.immersive) .tabbar a.on small{background:linear-gradient(90deg,#059669,#0284C7);-webkit-background-clip:text;background-clip:text;color:transparent}
html.dark body:not(.immersive) .tabbar a.on{color:#2EE59D}
html.dark body:not(.immersive) .tabbar a.on small{background:linear-gradient(90deg,#2EE59D,#38BDF8);-webkit-background-clip:text;background-clip:text;color:transparent}
.tabbar a.on .av.tab-avatar{box-shadow:0 0 0 2px var(--chrome-solid,#fff),0 0 0 3.6px #10B981}
html.dark .tabbar a.on .av.tab-avatar,body.immersive .tabbar a.on .av.tab-avatar{box-shadow:0 0 0 2px #000,0 0 0 3.6px #2EE59D}
/* v7: profile tab row is four (Views · Slides · Drafts · Pinned); the map opens from the Places stat */
.tabs.four{gap:5px;padding:10px 10px}
.tabs.four button{font-size:13px;gap:5px;padding:0 2px;min-width:0;white-space:nowrap}
.tabs.four button svg{width:17px;height:17px;flex:none}
.stats a[data-maptab]{cursor:pointer}
.stats a[data-maptab].on{background:linear-gradient(var(--stat-bg),var(--stat-bg)) padding-box,linear-gradient(90deg,#10B981,#0EA5E9) border-box;color:var(--accent-t)}
.stats a[data-maptab].on b{background:linear-gradient(90deg,#059669,#0284C7);-webkit-background-clip:text;background-clip:text;color:transparent}
html.dark .stats a[data-maptab].on b{background:linear-gradient(90deg,#2EE59D,#38BDF8);-webkit-background-clip:text;background-clip:text}
.places-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:2px 14px 10px}
.places-head .fine{margin:0;text-align:left;font-size:12.5px;color:var(--muted);line-height:1.35}
.places-head .fine b{color:var(--text);font-size:14px;font-weight:700}
.rail-btn.save-btn.on{color:#2EE59D}
.save-btn .pi-on{display:none}.save-btn.on .pi-on{display:block}.save-btn.on .pi-off{display:none}

/* v8: profile places — Map | List switch (no Done) */
.places-head .seg-mini a{height:30px}
.place-list{display:flex;flex-direction:column;padding:0 12px 16px}
.place-row{display:flex;align-items:center;gap:12px;padding:9px 4px;border-bottom:1px solid var(--line);color:inherit;min-width:0}
.place-row:last-child{border-bottom:0}
.place-row:active{background:var(--bg2)}
.pr-th{position:relative;width:56px;height:56px;border-radius:10px;overflow:hidden;flex:none;background:var(--tile)}
.pr-th img{width:100%;height:100%;object-fit:cover;display:block}
.pr-th .play-badge{top:3px;right:3px;transform:scale(.8);transform-origin:top right}
.pr-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.pr-t b{font-size:15.5px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pr-t span{font-size:13px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pr-n{flex:none;font-size:13px;font-weight:650;color:var(--muted)}
.pr-ch{flex:none;display:flex;color:var(--muted);opacity:.7}
.pr-ch svg{width:16px;height:16px}

/* v9: feed = one fixed full-width frame for every post (cover, centered); tap for full view = the whole photo, uncropped */
body.clean .slide .slide-img,body.clean .slide.clip .clip-vid{object-fit:contain}

/* v10: 3 profile stats (places · followers · following), evenly spaced and centered */
.stats.stats3{justify-content:center;max-width:420px;margin:0 auto}
.stats.stats3 a{flex:1 1 0;min-width:0}

/* v11: post counts on the profile tab row ("Views 6 · Slides 2 · Pinned 3"), small and lighter, same row */
.tabs button .tc{font-size:12px;font-weight:550;opacity:.55;margin-left:1px;font-variant-numeric:tabular-nums}
.tabs button .tc[hidden]{display:none}

/* v12: a profile's posts as a feed (back arrow + "@user / Views" title over the photo) */
.pf-h{display:flex;flex-direction:column;align-items:center;line-height:1.1;font-size:16px!important;text-shadow:0 1px 6px rgba(0,0,0,.5)}
.pf-h small{font-size:12px;font-weight:600;opacity:.8}
/* v12: the post view has no map box; one place line opens the map */
.loc-line{display:flex;align-items:center;gap:10px;margin:12px 14px 2px;padding:10px 12px;border-radius:14px;border:1px solid var(--line);background:var(--bg2)}
.ll-place{flex:1;min-width:0;display:flex;align-items:center;gap:8px;color:var(--text)}
.ll-place>svg:first-child{flex:none;color:var(--accent-t)}
.ll-place>svg:last-child{flex:none;opacity:.45}
.ll-place span{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:14px;color:var(--muted)}
.ll-place span b{color:var(--text);font-size:15px}
.loc-line .ll-dir{flex:none;margin:0}

/* v13: private accounts */
.h-lock{display:inline-flex;vertical-align:-2px;margin-right:4px}.h-lock svg{width:16px;height:16px}
.gear-btn{position:relative}
.req-badge{position:absolute;top:2px;right:0;min-width:17px;height:17px;padding:0 4px;border-radius:9px;background:#FF3B30;color:#fff;font-size:11px;font-weight:700;line-height:17px;text-align:center;box-shadow:0 0 0 2px var(--bg)}
.private-lock{margin:18px 16px 30px;padding:30px 22px;text-align:center;border-top:1px solid var(--line);color:var(--muted)}
.private-lock .pl-ic{display:inline-flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:50%;border:2px solid var(--text);color:var(--text)}
.private-lock .pl-ic svg{width:30px;height:30px}
.private-lock h3{color:var(--text);font-size:17px;margin:12px 0 4px}
.private-lock p{margin:0;font-size:14px}
.prof-cover.blank{background:var(--bg3)}
.tgl-row{cursor:pointer}
.tgl{appearance:none;-webkit-appearance:none;width:51px;height:31px;border-radius:16px;background:var(--bg3);border:1px solid var(--line);position:relative;flex:none;margin:0;transition:background .2s;cursor:pointer}
.tgl::after{content:"";position:absolute;top:2px;left:2px;width:25px;height:25px;border-radius:50%;background:#fff;box-shadow:0 2px 5px rgba(0,0,0,.25);transition:transform .2s}
.tgl:checked{background:var(--accent);border-color:var(--accent)}
.tgl:checked::after{transform:translateX(20px)}
.req-n{min-width:22px;height:22px;padding:0 7px;border-radius:11px;background:#FF3B30;color:#fff;font-size:12.5px;font-weight:700;line-height:22px;text-align:center}
.req-row .btn.small{padding:0 12px}
.req-row .btn.small+.btn.small{margin-left:-4px}

/* v14: feeds (Views, Slides, profile post feeds, single posts) show every photo WHOLE at its original shape: fit to the screen, never cropped or stretched,
   letterboxed on the dark background. Grid tiles stay the uniform 4:5 tiles. */
.slide .slide-img,.slide.fill .slide-img{object-fit:contain}
.slide.clip .clip-vid,.slide.clip.wide .clip-vid{object-fit:contain}
.slide .slide-bg{display:none}
/* v14: "Show city only" — the switch on the upload screen and the owner's chip on a post */
.city-row{margin:4px 0 12px;padding:12px 14px!important;border:1px solid var(--line)!important;border-radius:14px;background:var(--bg2)}
.city-row .sp b{display:block;font-size:15px;font-weight:650}
.city-row .sp small{display:block;font-size:12.5px;color:var(--muted);margin-top:1px}
.city-chip{display:inline-flex;align-items:center;gap:4px;font-size:11.5px;font-weight:600;color:#fff;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.3);border-radius:999px;padding:2px 8px 2px 6px;text-shadow:none}
.city-chip[hidden]{display:none}
/* v14: Activity (bell on your profile, red dot = new) */
.bell-btn{position:relative}
.dot-new{position:absolute;top:7px;right:7px;width:9px;height:9px;border-radius:50%;background:#FF3B30;box-shadow:0 0 0 2px var(--bg)}
.act-list{padding:4px 0}
.act-row{align-items:center}
.act-row.unread{background:rgba(var(--accent-rgb,255,122,69),.07)}
.act-t div{font-size:14px;line-height:1.35;color:var(--text);white-space:normal!important;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.act-t b{display:inline!important;font-size:14px}
.act-t .act-body{display:inline!important;color:var(--text2,var(--text));white-space:normal!important}
.act-t .meta{display:inline!important;color:var(--muted);font-size:12.5px}
.act-th{width:44px;height:55px;object-fit:cover;flex:none;border-radius:4px;background:var(--tile)}
/* v14: cover photo setting in Edit profile */
.cover-seg{margin:6px 0 0}
.cover-seg button{flex-direction:row;justify-content:center;padding:11px 4px}
.cover-prev .cover-img{margin-top:10px;height:110px;border-radius:12px;background-size:cover;background-position:center;border:1px solid var(--line)}
.cover-pick{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2px;max-height:56dvh;overflow-y:auto;margin:6px 0 10px}
.cover-pick .tile{padding:0;border:0}
.cover-pick .tile img{width:100%;height:100%;object-fit:cover;display:block}
.cover-pick .tile.on{outline:3px solid var(--accent);outline-offset:-3px}

/* ===== v15 (Nov 4): full view keeps the photo exactly in place =====
   Single tap only fades the overlays (top bar, bottom bar, caption, buttons, shade). The reel, each slide and the
   photo keep the same box in both states: no height change, no reflow, no scroll/snap change, no zoom. */
body.immersive .reel,body.immersive.clean .reel{height:calc(100dvh - var(--tab-h) - var(--safe-bottom))}
body.immersive .slide,body.immersive.clean .slide{height:calc(100dvh - var(--tab-h) - var(--safe-bottom))}
body.immersive.detail .slide,body.immersive.detail.clean .slide{height:78dvh}
.slide-img,.slide.clip .clip-vid{transition:none;transform:translateZ(0);backface-visibility:hidden}
.detail-more{transition:opacity .25s ease}
body.clean .detail-more{opacity:0;pointer-events:none}


/* ===== v16 (Nov 5): softer full-view fade + swipe fade between posts =====
   Full view: every overlay fades together, opacity only (no movement, no blur change). Fading out eases out
   (cubic-bezier(.22,.61,.36,1)); fading back in eases in and out. Nested pieces (music chip in the caption)
   inherit their parent's fade instead of fading twice. */
:root{--fade-ms:500ms;--fade-out:cubic-bezier(.45,0,.55,1);--fade-in:cubic-bezier(.45,0,.55,1)} /* v17: 500 ms, one symmetric gentle ease both ways; a tap mid-fade turns around from where it is */
.topbar,.slide-info,.slide-shade,.rail,.snd-btn,.detail-more{transition:opacity var(--fade-ms) var(--fade-in)}
.tabbar{transition:background-color .3s ease,border-color .3s ease,opacity var(--fade-ms) var(--fade-in)}
body.immersive .topbar,body.immersive .tabbar,.slide-info,.slide-shade,.rail,.slide .snd-btn,.detail-more{will-change:opacity}
body.clean .topbar,body.clean .tabbar,body.clean .slide-info,body.clean .slide-shade,body.clean .rail,body.clean .snd-btn,body.clean .detail-more{transition-timing-function:var(--fade-out)}
body.clean .tabbar{transition:background-color .3s ease,border-color .3s ease,opacity var(--fade-ms) var(--fade-out)}
body.clean .slide-info .music-chip{opacity:1}
/* swipe fade: one black layer over the photo, driven by how much of the post is on screen */
.slide-dim{position:absolute;inset:0;z-index:1;background:#000;opacity:0;pointer-events:none;will-change:opacity;transform:translateZ(0)}
@media (prefers-reduced-motion:reduce){
  .topbar,.tabbar,.slide-info,.slide-shade,.rail,.snd-btn,.detail-more,body.clean .tabbar{transition:none}
  .slide-dim{display:none}
}

/* ===== v17 (Nov 5): links, bio, distance slider, Near me, globe maps, smoother swipe ===== */
/* swipe: the caption and buttons follow their photo's curve; a soft feather hides the seam between two photos while moving */
.slide-edge{position:absolute;inset:0;z-index:1;pointer-events:none;opacity:var(--edge,0);background:linear-gradient(180deg,#000 0,rgba(0,0,0,.55) 40px,rgba(0,0,0,0) 96px,rgba(0,0,0,0) calc(100% - 96px),rgba(0,0,0,.55) calc(100% - 40px),#000 100%);will-change:opacity}
.slide[style*="--ui"] .slide-info,.slide[style*="--ui"] .rail{filter:opacity(var(--ui,1))}
.slide{touch-action:pan-y}
@media (prefers-reduced-motion:reduce){.slide-edge{display:none}.slide[style*="--ui"] .slide-info,.slide[style*="--ui"] .rail{filter:none}}

/* link chips */
.link-chip{display:inline-flex;align-items:center;gap:7px;max-width:100%;height:32px;padding:0 12px 0 9px;border-radius:999px;font-size:13.5px;font-weight:600;background:var(--bg3);color:var(--text);border:1px solid var(--line);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}
.link-chip .lk-t{overflow:hidden;text-overflow:ellipsis}
.lk-ic{display:inline-flex;width:17px;height:17px;flex:none}
.lk-ic svg{width:100%;height:100%}
.lk-ic.big{width:26px;height:26px}
.link-chip.lk-link .lk-ic,.link-chip.lk-web .lk-ic{color:var(--accent-t)}
.post-link{margin-top:9px}
.slide .link-chip{background:rgba(255,255,255,.16);color:#fff;border-color:rgba(255,255,255,.24);backdrop-filter:blur(14px) saturate(1.4);-webkit-backdrop-filter:blur(14px) saturate(1.4)}
.slide .link-chip.lk-link .lk-ic,.slide .link-chip.lk-web .lk-ic{color:#7CF0B4}
.slide .link-chip.lk-x .lk-ic,.slide .link-chip.lk-tiktok .lk-ic{color:#fff}
.prof-links{display:flex;flex-wrap:wrap;gap:8px;margin:10px 16px 0}
.prof-links .link-chip{max-width:calc(50% - 4px)}
.prof-links .link-chip.more{color:var(--accent-t);background:transparent;border-color:transparent;padding:0 4px;font-weight:650}
.links-sheet .list-row{border-bottom:1px solid var(--line)}
.links-sheet .sp{display:flex;flex-direction:column;min-width:0;flex:1}
.links-sheet small{color:var(--muted);font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.prof .bio{white-space:pre-line;line-height:1.4}
.cnt-l{float:right;font-weight:500;color:var(--dim)}
.links-field .add-link{margin-top:4px}
.lk-row{display:flex;align-items:center;gap:10px;padding:8px 10px;margin-bottom:8px;border:1px solid var(--inp-line);border-radius:12px;background:var(--inp-bg)}
.lk-row.bad{border-color:var(--err)}
.lk-row .lk-ic{width:22px;height:22px;color:var(--accent-t)}
.lk-in{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.lk-in input{width:100%;background:transparent;border:0;outline:none;font-size:15px;padding:4px 0;color:var(--text)}
.lk-in input[data-lt]{font-size:13.5px;color:var(--muted)}
.lk-row .icon-btn.sm{width:32px;height:32px;color:var(--muted)}
.link-field{position:relative}
.link-field .lf-ic{position:absolute;left:13px;bottom:15px;width:18px;height:18px;color:var(--accent-t);display:inline-flex;pointer-events:none}
.link-field .lf-ic svg{width:100%;height:100%}
.field.link-field input{padding-left:40px}
.link-field.bad input{border-color:var(--err)}
.edit-post{padding:4px 16px 8px}
.edit-post .btn{margin-top:6px}

/* "📍 Exact spot" — a green link that opens the pin in Google Maps */
.place-info .exact-link{color:var(--accent-t);font-weight:650;font-size:14px;text-decoration:none}
.place-info .exact-link:active{opacity:.6}
.place-info .muted-l{color:var(--muted)}

/* distance slider: 1 mi … 1,000 mi, then Anywhere */
.place-dist{padding:0 16px 12px}
.dist{--p:50%;padding:4px 2px 2px}
.dist-top{display:flex;justify-content:space-between;align-items:baseline;font-size:13px;color:var(--muted);font-weight:600;margin-bottom:6px}
.dist-val{font-size:15px;color:var(--text);font-weight:700;font-variant-numeric:tabular-nums}
.dist-range{-webkit-appearance:none;appearance:none;width:100%;height:32px;background:transparent;margin:0;touch-action:pan-y;cursor:pointer}
.dist-range:focus{outline:none}
.dist-range::-webkit-slider-runnable-track{height:6px;border-radius:999px;background:linear-gradient(90deg,var(--accent) 0,var(--accent) var(--p),var(--bg3) var(--p),var(--bg3) 100%)}
.dist-range::-moz-range-track{height:6px;border-radius:999px;background:var(--bg3)}
.dist-range::-moz-range-progress{height:6px;border-radius:999px;background:var(--accent)}
.dist-range::-webkit-slider-thumb{-webkit-appearance:none;width:28px;height:28px;margin-top:-11px;border-radius:50%;background:#fff;border:0;box-shadow:0 1px 2px rgba(0,0,0,.18),0 3px 10px rgba(0,0,0,.16),0 0 0 .5px rgba(0,0,0,.06);transition:transform .15s ease}
.dist-range::-moz-range-thumb{width:28px;height:28px;border-radius:50%;background:#fff;border:0;box-shadow:0 1px 2px rgba(0,0,0,.18),0 3px 10px rgba(0,0,0,.16)}
.dist.drag .dist-range::-webkit-slider-thumb{transform:scale(1.12)}
.dist-range:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 4px var(--tint),0 3px 10px rgba(0,0,0,.16)}
.dist-ticks{position:relative;height:16px;margin:2px 14px 0;font-size:11px;color:var(--dim);font-weight:600}
.dist-ticks span{position:absolute;transform:translateX(-50%);white-space:nowrap}
.dist-ticks span:first-child{transform:none}.dist-ticks span:last-child{transform:translateX(-100%)}
html.dark .dist-range::-webkit-slider-runnable-track{background:linear-gradient(90deg,var(--accent) 0,var(--accent) var(--p),#2a2a30 var(--p),#2a2a30 100%)}
#near.busy{opacity:.55;transition:opacity .2s}

/* Near me row on the feeds (inside the top bar, so it fades with the bars on a tap) */
.near-row{display:flex;align-items:center;justify-content:center;gap:8px;max-width:var(--maxw);margin:-6px auto 0;padding:0 12px 8px}
.seg-near{display:inline-flex;padding:3px;border-radius:999px;background:rgba(0,0,0,.28);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.16)}
.seg-near button{display:inline-flex;align-items:center;gap:5px;height:28px;padding:0 13px;border-radius:999px;font-size:13px;font-weight:650;color:rgba(255,255,255,.8);background:none;border:0}
.seg-near button.on{background:rgba(255,255,255,.94);color:#0b0b0c}
.seg-near button svg{width:13px;height:13px}
.near-chip{height:34px;padding:0 13px;border-radius:999px;font-size:13px;font-weight:650;color:#fff;background:rgba(0,0,0,.28);border:1px solid rgba(255,255,255,.22);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);font-variant-numeric:tabular-nums}
.near-chip .caret{font-size:10px;opacity:.8}
.near-body{padding:4px 18px 10px}
.near-where{display:flex;align-items:center;gap:8px;font-size:14.5px;margin-bottom:12px;color:var(--text2)}
.near-where svg{color:var(--accent-t);flex:none}
.near-where span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.near-where .text-btn{color:var(--accent-t);font-weight:650}
.near-ask{padding:2px 18px 10px}
.near-ask .fine{margin:0 0 14px;color:var(--muted);font-size:13.5px;line-height:1.45}
.or-l{display:flex;align-items:center;gap:10px;color:var(--dim);font-size:12px;margin:14px 0 10px}
.or-l::before,.or-l::after{content:"";flex:1;height:1px;background:var(--line)}
.near-search{display:flex;align-items:center;gap:8px;padding:0 12px;height:44px;border-radius:12px;background:var(--inp-bg);border:1px solid var(--inp-line)}
.near-search svg{width:18px;height:18px;color:var(--muted)}
.near-search input{flex:1;border:0;background:transparent;outline:none;font-size:16px;color:var(--text)}
.near-res{max-height:40vh;overflow:auto;margin-top:6px}
.near-res .row{display:flex;align-items:center;gap:12px;width:100%;padding:10px 4px;background:none;border:0;border-bottom:1px solid var(--line);text-align:left}
.near-res .t{display:flex;flex-direction:column}.near-res .t span{color:var(--muted);font-size:13px}
.near-empty .empty{color:#fff;padding-top:30vh}.near-empty .empty p{color:rgba(255,255,255,.7)}

/* globe maps: deep space around the Earth, readable pins on the imagery */
.gl-map,#bigmap.gl-map,.prof-map.gl-map,.pm.gl-map{background:radial-gradient(ellipse at 50% 45%,#F4FCF8 0%,#EAF8F0 60%,#DDF3E7 100%)!important;touch-action:none}
.gl-map .maplibregl-canvas{outline:none}
.gl-mk{cursor:pointer}
.gl-mk .photo-pin{position:relative}
.gl-map .maplibregl-ctrl-attrib{font-size:10px;background:rgba(0,0,0,.45);color:#ddd}
.gl-map .maplibregl-ctrl-attrib a{color:#eee}
.gl-map .maplibregl-ctrl-attrib-button{filter:invert(1)}
.gl-pop .maplibregl-popup-content{padding:8px;border-radius:14px;background:var(--sheet);color:var(--text);box-shadow:var(--ov-shadow)}
.gl-pop .maplibregl-popup-tip{border-top-color:var(--sheet)!important}
.dot-pin{background:var(--accent);border:3px solid #fff;box-shadow:0 0 0 4px rgba(0,163,90,.28),0 2px 10px rgba(0,0,0,.6)}
.leaflet-container{touch-action:none}

/* v17 K: the one "Maps" pill (white, colored Google Maps pin) — place page, single post, feeds, saved spots, map card */
.maps-pill{display:inline-flex;align-items:center;gap:6px;flex:none;height:32px;padding:0 12px 0 10px;border-radius:9px;background:#fff;color:#111;font-size:14px;font-weight:650;border:1px solid rgba(0,0,0,.09);box-shadow:0 1px 2px rgba(16,24,40,.06);white-space:nowrap;text-decoration:none}
.maps-pill .gmaps-ic{width:12px;height:17px}
.maps-pill:active{transform:scale(.97)}
.maps-pill.on-photo{height:36px;border-radius:999px;padding:0 13px 0 11px;border:0;box-shadow:0 2px 10px rgba(0,0,0,.28)}
.slide-loc{display:flex;align-items:center;gap:8px;max-width:100%}
.slide-loc .loc-pill{min-width:0;flex:0 1 auto}
.place-title{display:flex;align-items:center;justify-content:space-between;gap:12px}
.place-title h2{min-width:0}
.map-card .maps-pill,.saved-pop .maps-pill{height:28px;font-size:13px;padding:0 10px 0 8px}
.map-card .maps-pill .gmaps-ic,.saved-pop .maps-pill .gmaps-ic{width:11px;height:15px}
.saved-row .maps-pill{align-self:flex-start;height:30px;font-size:13px}
html.dark .maps-pill:not(.on-photo){border-color:transparent}
/* single post: the photo fills the screen like the feed (no white place box, no gap); comments open from the side button */
body.detail .slide,body.detail .slide.single{height:calc(100dvh - var(--tab-h) - var(--safe-bottom))}

/* ===== v18: account search ===== */
.topbar .srch svg{width:23px;height:23px}
.topbar .srch{margin-left:2px}
.s-box{flex:1;min-width:0;display:flex;align-items:center;gap:8px;height:40px;padding:0 10px 0 12px;border-radius:12px;background:var(--bg3);border:1px solid var(--line);color:var(--muted)}
.s-box:focus-within{border-color:var(--accent)}
.s-box input{flex:1;min-width:0;height:100%;border:0;background:none;outline:none;color:var(--text);font-size:16px;-webkit-appearance:none;appearance:none}
.s-box input::-webkit-search-cancel-button{display:none}
.s-clear{width:24px;height:24px;display:grid;place-items:center;border-radius:50%;background:var(--muted);color:var(--bg);flex:none;opacity:.75}
.s-clear svg{width:13px;height:13px}
.search-pg{max-width:var(--maxw);margin:0 auto;padding-bottom:24px}
.s-row{gap:10px;padding:8px 14px}
.s-hit{flex:1;min-width:0;display:flex;align-items:center;gap:12px;text-align:left;background:none;border:0;padding:0;color:inherit}
.s-row .t b{display:flex;align-items:center;gap:5px}
.s-lock{display:inline-flex;color:var(--muted)}
.s-fol{flex:none;min-width:86px}
.s-x{width:32px;height:32px;display:grid;place-items:center;color:var(--muted);flex:none;border-radius:50%}
.s-x:active{background:var(--press)}
.s-head{display:flex;align-items:center;justify-content:space-between;padding-right:14px}
.s-clearall{font-size:14px;font-weight:650;color:var(--accent-t);padding:12px 0 4px}
.s-qic svg{color:var(--muted)}
.s-results .row.s-hit{padding:8px 14px}
.s-clear[hidden]{display:none}
/* v18: two icons (search + shuffle) beside For you | Following, all on one line at 390 px */
.topbar .shuf{width:36px}
.seg-top a{white-space:nowrap}
body.immersive .seg-top{gap:16px}

/* v19: username field + live availability */
.u-wrap{position:relative}
.u-wrap .u-at{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--muted);font-size:16px;pointer-events:none}
.field .u-wrap input{padding-left:31px}
.u-status{display:flex;align-items:center;gap:4px;min-height:17px;margin:6px 2px 0;font-size:12.5px;color:var(--muted)}
.u-status:empty{min-height:0;margin:0}
.u-status svg{width:14px;height:14px;flex:none}
.u-status.ok{color:var(--accent-t);font-weight:600}
.u-status.bad{color:var(--err);font-weight:600}
.auth-sheet .u-status{margin:-2px 4px 8px}

/* ---------- v21: Instagram-style post cards ---------- */
.reel.igfeed{position:fixed;left:0;right:0;top:calc(var(--top-h) + var(--safe-top));bottom:calc(var(--tab-h) + var(--safe-bottom));height:auto!important;scroll-snap-type:none;background:var(--bg);overflow-y:auto;-webkit-overflow-scrolling:touch}
.igcard{max-width:var(--maxw);margin:0 auto 14px;background:var(--bg);color:var(--text)}
.igc-head{display:flex;align-items:center;gap:10px;padding:10px 6px 10px 12px}
.igc-av .av{width:34px;height:34px}
.igc-who{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.2}
.igc-name{font-weight:650;font-size:14px;color:var(--text);text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.igc-place{font-size:12.5px;color:var(--text2);text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.igc-follow{border:0;background:var(--bg3);color:var(--text);font-weight:650;font-size:13px;border-radius:8px;padding:6px 12px}
.igc-more{color:var(--text)}
.igc-media{position:relative;width:100%;aspect-ratio:4/5;background:var(--bg3);overflow:hidden;cursor:pointer}
.igc-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.igc-media .burst{position:absolute;left:50%;top:50%;width:96px;height:96px;margin:-48px 0 0 -48px;color:#fff;opacity:0;pointer-events:none;filter:drop-shadow(0 4px 14px rgba(0,0,0,.35))}
.igc-actions{display:flex;align-items:center;gap:14px;padding:8px 10px 2px 12px}
.igc-sp{flex:1}
.igc-btn{display:inline-flex;align-items:center;gap:5px;border:0;background:none;color:var(--text);padding:4px 0;font:inherit;font-weight:600;font-size:14px;cursor:pointer}
.igc-btn svg{width:26px;height:26px}
.igc-btn.like-btn.on{color:var(--heart)}
.igc-btn.like-btn.on .core{fill:currentColor}
.igc-btn.save-btn .pi-on{display:none}.igc-btn.save-btn.on .pi-on{display:block;color:var(--accent)}.igc-btn.save-btn.on .pi-off{display:none}
.igc-body{padding:2px 12px 4px;font-size:14px;line-height:1.4}
.igc-likes{margin:4px 0 3px;font-weight:650}
.igc-cap{margin:0 0 4px;white-space:pre-wrap;word-break:break-word}
.igc-cap a{color:var(--text);text-decoration:none}
.htag{color:var(--accent-t)!important;font-weight:600;text-decoration:none}
.igc-viewc{border:0;background:none;padding:0;margin:2px 0;color:var(--muted);font:inherit;font-size:14px;cursor:pointer}
.igc-date{display:block;margin-top:3px;font-size:11.5px;color:var(--muted);letter-spacing:.02em}
.igcard .credit{margin:2px 0;font-size:12px;color:var(--muted)}
.igcard .credit a{color:var(--muted)}
.igc-media .burst{transform:scale(.3)}.igc-media .burst.go{animation:burst .9s ease-out}
body.igmode .topbar .shuf{color:var(--text);filter:none}
body.igmode .seg-near{background:var(--bg3);border-color:var(--line);backdrop-filter:none;-webkit-backdrop-filter:none}
body.igmode .seg-near button{color:var(--muted)}
body.igmode .seg-near button.on{background:var(--bg);color:var(--text);box-shadow:0 1px 3px rgba(0,0,0,.12)}
html.dark body.igmode .seg-near button.on{background:#2a2a30;color:#fff}
body.igmode .near-row .dist-chip,body.igmode .near-row button:not([data-near]){color:var(--text)}
body.igmode .seg-top a{color:var(--muted);text-shadow:none}
body.igmode .seg-top a.on{color:var(--text)}
/* v21: Instagram-style profile header */
.igprof{padding:12px 0 4px}
.igp-top{display:flex;align-items:center;gap:18px;padding:4px 16px 0}
.igprof .prof-id{margin:0;padding:0;display:block;flex:none}
.igprof .prof-id .av.lg{width:86px;height:86px}
.igp-right{flex:1;min-width:0}
.igprof .igp-name{font-weight:700;font-size:16px;margin:0 0 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.igprof .stats{padding:0;gap:0;justify-content:space-between}
.igprof .stats a{flex:1;text-align:left;font-size:13px;color:var(--text2)}
.igprof .stats a b{display:block;font-size:16px;color:var(--text)}
.igprof .igp-un{margin:10px 16px 0;padding:0;color:var(--muted);font-size:14px}
.igprof .bio{margin:8px 16px 0}
.igprof .prof-links{margin-left:16px;margin-right:16px}
.igprof .prof-btns .btn{background:var(--bg3);color:var(--text);border:0;font-weight:650;display:flex;align-items:center;justify-content:center;text-decoration:none}
.igprof .prof-btns .btn.primary{background:var(--accent);color:#fff}
/* v21: required Terms checkbox */
.agree{display:flex;align-items:flex-start;gap:10px;margin:12px 2px 4px;font-size:14px;line-height:1.35;color:var(--text2);text-align:left;cursor:pointer}
.agree input{width:20px;height:20px;flex:none;margin:0;accent-color:var(--accent)}
.agree a{color:var(--accent-t);font-weight:600}
.terms-gate p{color:var(--text2);font-size:14.5px;line-height:1.45}
.terms-gate a{color:var(--accent-t);font-weight:600}
.doc ul{padding-left:20px;margin:6px 0 10px}.doc li{margin:3px 0;line-height:1.45}
.igprof .stats a{border:0!important;background:none!important;box-shadow:none!important;padding:0!important;border-radius:0}
.tag-count{margin:6px 16px 10px;color:var(--muted);font-size:13px;max-width:var(--maxw)}

/* v22: multi-photo carousel + grid stack icon */
.car{position:absolute;inset:0;z-index:0}
.car-track{position:absolute;inset:0;display:flex;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;touch-action:pan-x pan-y}
.car-track::-webkit-scrollbar{display:none}
.car-cell{position:relative;flex:0 0 100%;height:100%;scroll-snap-align:center;scroll-snap-stop:always}
.car-count{position:absolute;top:12px;right:12px;z-index:3;padding:3px 9px;border-radius:999px;background:rgba(0,0,0,.6);color:#fff;font-size:12px;font-weight:600;letter-spacing:.02em;pointer-events:none}
.slide .car-count{top:calc(env(safe-area-inset-top,0px) + 64px)}
.car-dots{position:absolute;left:0;right:0;bottom:10px;z-index:3;display:flex;justify-content:center;gap:5px;pointer-events:none}
.car-dots i{width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.55);box-shadow:0 0 3px rgba(0,0,0,.35);transition:transform .2s,background .2s}
.car-dots i.on{background:#fff;transform:scale(1.2)}
.igcard .car-dots{bottom:10px}
.slide .car-dots{bottom:auto;top:calc(env(safe-area-inset-top,0px) + 92px)}
.car-nav{position:absolute;top:50%;z-index:3;width:30px;height:30px;margin-top:-15px;border:0;border-radius:50%;background:rgba(255,255,255,.85);color:#111;font-size:22px;line-height:28px;display:none;cursor:pointer;box-shadow:0 1px 6px rgba(0,0,0,.25)}
.car-nav.prev{left:10px}.car-nav.next{right:10px}
@media (hover:hover) and (pointer:fine){.car-nav{display:block}.car-nav[hidden]{display:none}}
.stack-badge{position:absolute;top:6px;right:6px;z-index:1;color:#fff;filter:drop-shadow(0 0 2px rgba(0,0,0,.75)) drop-shadow(0 1px 3px rgba(0,0,0,.45));display:grid;place-items:center}
.stack-badge svg{width:20px;height:20px}
.ex-strip{display:flex;gap:8px;overflow-x:auto;padding:10px 2px 4px;scrollbar-width:none}
.ex-strip::-webkit-scrollbar{display:none}
.ex-th,.ex-add{position:relative;flex:0 0 60px;height:75px;border-radius:10px;overflow:hidden;background:var(--bg3)}
.ex-th img{width:100%;height:100%;object-fit:cover;display:block}
.ex-th.cover{outline:2px solid var(--accent,#2f9e5b);outline-offset:-2px}
.ex-th.checking img{opacity:.55}.ex-th.bad img{opacity:.35;filter:grayscale(1)}
.ex-n{position:absolute;left:4px;bottom:4px;min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:rgba(0,0,0,.6);color:#fff;font-size:10px;font-weight:700;display:grid;place-items:center}
.ex-x{position:absolute;top:3px;right:3px;width:20px;height:20px;border:0;border-radius:50%;background:rgba(0,0,0,.65);color:#fff;display:grid;place-items:center;padding:0;cursor:pointer}
.ex-spin{position:absolute;left:50%;top:50%;margin:-9px 0 0 -9px;width:18px;height:18px}
.ex-bad{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);color:#e5484d}
.ex-add{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border:1.5px dashed var(--dim);background:transparent;color:var(--muted);cursor:pointer}
.ex-add small{font-size:10px}
.ex-msg{margin:4px 2px 0;font-size:13px;color:#e5484d}.ex-msg.ok{color:var(--muted)}

/* ===== v23: solid, crisp bars everywhere; Slides fully black and fully above the bottom bar ===== */
:root{--top-real:calc(var(--top-h) + var(--safe-top));--tab-real:calc(var(--tab-h) + var(--safe-bottom));--app-h:100dvh}
.topbar,html:not(.dark) .topbar{background:var(--bg);backdrop-filter:none;-webkit-backdrop-filter:none;border-bottom:1px solid var(--line)}
.tabbar,html:not(.dark) .tabbar{background:var(--bg);backdrop-filter:none;-webkit-backdrop-filter:none}
.topbar *{text-shadow:none!important}
.topbar .shuf,body.igmode .topbar .shuf{filter:none;color:var(--text)}
body.immersive .topbar,html:not(.dark) body.immersive .topbar{background:#000;color:#fff;border-bottom:1px solid rgba(255,255,255,.08);backdrop-filter:none;-webkit-backdrop-filter:none}
body.immersive .topbar .shuf,body.immersive .topbar .srch,body.immersive .topbar a,body.immersive .topbar button{color:#fff}
body.immersive .brand-word{background:none;-webkit-background-clip:border-box;background-clip:border-box;color:#fff;-webkit-text-fill-color:#fff}
body.immersive .seg-top a{color:rgba(255,255,255,.6)}
body.immersive .seg-top a.on{color:#fff}
body.immersive,html:not(.dark) body.immersive{background:#000}
body.immersive main{padding-top:var(--top-real);padding-bottom:0}
body.immersive .reel,body.immersive.clean .reel,
body.immersive .slide,body.immersive.clean .slide,
body.detail .slide,body.detail .slide.single,body.immersive.detail .slide,body.immersive.detail.clean .slide{height:calc(var(--app-h) - var(--top-real) - var(--tab-real))}
body.immersive .slide-info{padding-bottom:14px}
body.immersive .rail{bottom:14px}
.igc-maps{margin:2px 0 6px}
.reel.igfeed{top:var(--top-real);bottom:var(--tab-real)}
body.immersive .seg-near button.on,body.immersive .topbar .seg-near button.on{color:#0b0b0c}
.av-ring{border-radius:0;-webkit-mask:var(--av-mask) center/100% 100% no-repeat;mask:var(--av-mask) center/100% 100% no-repeat}
.tabbar a.on .av.tab-avatar,html.dark .tabbar a.on .av.tab-avatar,body.immersive .tabbar a.on .av.tab-avatar{box-shadow:none}
.tabbar a.on .av.tab-avatar>img{inset:2px;width:calc(100% - 4px);height:calc(100% - 4px)}
.igp-cover{height:140px;margin:-12px 0 0;border-radius:0}
.igp-cover::after{background:none}
.igp-top.has-cover{margin-top:-46px;position:relative;z-index:1}
.igp-top.has-cover .prof-id .av{background:var(--bg)}
.igp-top.has-cover{align-items:flex-start}
.igp-top.has-cover .igp-right{margin-top:54px}
.cov-info{display:inline-grid;place-items:center;width:22px;height:22px;margin-left:6px;font-size:15px;line-height:1;color:var(--muted);border-radius:50%;vertical-align:middle;cursor:pointer}
.cov-info-txt{margin:6px 2px 16px;line-height:1.45;color:var(--text2)}
.ex-th .ex-x{display:grid!important;opacity:1!important;visibility:visible!important}
.ex-th.cover .ex-x{z-index:3}
.ex-th{cursor:pointer}
.ex-th.cover:not(.viewing){outline:none}
.ex-th.viewing{outline:2px solid var(--accent,#2f9e5b);outline-offset:-2px}
.ex-th .ex-x{width:24px;height:24px;top:2px;right:2px}
.ex-th .ex-x::before{content:"";position:absolute;inset:-8px}

/* v24: Instagram-style header. Whole cover under the top bar (16:9-ish, object-fit cover), then avatar left +
   places/followers/following right on ONE line, vertically centred, fully below the cover; name and bio under it. */
.igprof{padding:0 0 4px}
.igprof .igp-cover{height:auto;aspect-ratio:2/1;max-height:240px;margin:0;border-radius:0;overflow:hidden;background:var(--bg3);position:relative}
.igprof .igp-cover::after{display:none}
.igprof .igp-cover img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}
.igp-top,.igp-top.has-cover{display:flex;align-items:center;gap:22px;margin:0;padding:16px 16px 0;position:static}
.igprof:not(:has(.igp-cover)) .igp-top{padding-top:14px}
.igp-top.has-cover .igp-right{margin-top:0}
.igp-top .igp-right{flex:1;min-width:0;display:flex;align-items:center}
.igprof .igp-top .stats{width:100%;display:flex;justify-content:space-around;align-items:center;margin:0}
.igprof .igp-top .stats a{flex:1;text-align:center;font-size:13px;line-height:1.25}
.igprof .igp-top .stats a b{display:block;font-size:17px;font-weight:700;margin-bottom:1px}
.igprof .igp-name{font-weight:700;font-size:15px;margin:12px 16px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.igprof .igp-un{margin:2px 16px 0}
.igprof .bio{margin:6px 16px 0}
/* v25: avatar pulled in from the edge and grouped with the counts; its top quarter overlaps the cover's bottom edge,
   with a thin ring in the page colour (white in light, dark in dark) so it reads cleanly over the photo. */
.igp-top,.igp-top.has-cover{gap:14px;padding:16px 18px 0 26px}
.igp-top.has-cover{align-items:flex-end;padding-top:0;margin-top:-22px;position:relative;z-index:2}
.igp-top.has-cover .igp-right{padding-bottom:12px}
.igprof .igp-top .stats{justify-content:space-evenly}
.igprof .igp-top .stats a{flex:0 1 auto;min-width:0}
.igp-top.has-cover .prof-id .av.lg{background:var(--bg)}
.igp-top.has-cover .prof-id .av.lg>img{inset:3.5px;width:calc(100% - 7px);height:calc(100% - 7px)}
/* v25b: avatar lower (≈15% on the cover), counts centred on the part below the cover with ≥16px clear of the cover edge, a bit more gap */
.igp-top,.igp-top.has-cover{gap:22px}
.igp-top.has-cover{margin-top:-13px}
.igp-top.has-cover .igp-right{padding-bottom:17px}

/* v26: Slides sound button lives in the right rail, above Like, white like the other icons */
.slide .snd-btn:not(.rail-snd){display:none}
.rail .rail-btn.rail-snd{position:static;top:auto;right:auto;width:62px;height:auto;border-radius:0;background:none;backdrop-filter:none;-webkit-backdrop-filter:none;color:#fff;padding:6px 0;opacity:1}
.rail .rail-btn.rail-snd svg{width:28px;height:28px;filter:drop-shadow(0 2px 6px rgba(0,0,0,.5))}

/* v26: Everyone | Near me | Following in the top bar (shuffle removed) */
.topbar .seg-top3{margin:0 auto;flex:0 1 auto}
.topbar .seg-top3 button{padding:0 11px;white-space:nowrap}
.topbar .brand{flex:0 0 auto}
.topbar .srch{margin-left:0;flex:0 0 auto}
.topbar .near-row{margin-top:0}

/* v26c: clean text tabs (no pill), Instagram-neat */
.topbar .seg-top3,body.igmode .topbar .seg-top3,body.immersive .topbar .seg-top3{background:none!important;border:0!important;padding:0;gap:20px;backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:none}
.topbar .seg-top3 button,body.igmode .topbar .seg-top3 button{height:34px;padding:0;border-radius:0;background:none!important;box-shadow:none!important;font-size:15px;font-weight:600;color:var(--muted);border-bottom:2px solid transparent}
.topbar .seg-top3 button.on,body.igmode .topbar .seg-top3 button.on,html.dark body.igmode .topbar .seg-top3 button.on{color:var(--text);background:none!important;border-bottom:0;background:var(--grad-h) left bottom/100% 2.5px no-repeat!important;font-weight:700}
body.immersive .topbar .seg-top3 button{color:rgba(255,255,255,.6)}
body.immersive .topbar .seg-top3 button.on{color:#fff}
body.immersive .topbar,html:not(.dark) body.immersive .topbar{border-bottom:0}

/* v26d: tappable location under the name (opens Google Maps); full-screen photo viewer */
.igc-place-map{display:inline-flex;align-items:center;gap:3px;color:var(--accent)!important;font-weight:600;max-width:100%}
.igc-place-map svg{width:12px;height:12px;flex:0 0 auto}
.igc-place-map span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pviewer{position:fixed;inset:0;z-index:200;background:#000;opacity:0;transition:opacity .2s ease}
.pviewer.in{opacity:1}
.pv-track{position:absolute;inset:0;display:flex;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.pv-track::-webkit-scrollbar{display:none}
.pv-cell{flex:0 0 100%;height:100%;scroll-snap-align:center;display:grid;place-items:center;touch-action:pinch-zoom pan-x pan-y}
.pv-cell img{max-width:100%;max-height:100%;object-fit:contain}
.pv-x{position:absolute;top:calc(var(--safe-top) + 10px);right:12px;z-index:2;width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.14);color:#fff;font-size:18px;display:grid;place-items:center;border:0}
.pv-count{position:absolute;top:calc(var(--safe-top) + 18px);left:50%;transform:translateX(-50%);color:#fff;font-size:13px;font-weight:600;background:rgba(255,255,255,.14);padding:3px 10px;border-radius:999px}

/* v26e: Slides show the location under the name (tap = Google Maps) */
.slide-place{display:inline-flex;align-items:center;gap:4px;margin:4px 0 2px;color:#fff;font-size:13.5px;font-weight:650;text-decoration:none;max-width:100%;text-shadow:0 1px 6px rgba(0,0,0,.55)}
.slide-place svg{width:13px;height:13px;flex:0 0 auto;color:#3ddc97;filter:drop-shadow(0 1px 3px rgba(0,0,0,.5))}
.slide-place span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* v26: drag-to-close sheets */
.sheet .grab{width:42px;height:5px;margin:2px auto 10px}
.sheet{touch-action:pan-y;will-change:transform}

/* v26f: Slides fill the whole screen area (no framed/letterboxed look); tap-for-full-view still shows the whole video */
body.immersive .slide.clip .clip-vid,body.immersive .slide.clip.wide .clip-vid,body.immersive.clean .slide.clip .clip-vid,body.immersive.clean .slide.clip.wide .clip-vid{object-fit:cover}
body.immersive .slide.clip .slide-bg{display:none}

/* v26g: profile counts back in the gradient-outlined boxes (Horizonly's own look, not Instagram's) */
.igprof .igp-top .stats{gap:6px;justify-content:flex-end;align-items:stretch}
.igprof .igp-top .stats a{flex:1 1 0;min-width:0;max-width:96px;text-align:center;background:linear-gradient(var(--stat-bg),var(--stat-bg)) padding-box,linear-gradient(135deg,#00D66E,#00A8FF) border-box!important;border:1.5px solid transparent!important;border-radius:12px!important;padding:7px 2px 7px!important;font-size:11.5px;line-height:1.2;color:var(--muted)}
.igprof .igp-top .stats a b{font-size:16.5px;font-weight:750;color:var(--text);margin-bottom:1px}

/* v26i: slimmer count boxes (less bulky) */
.igprof .igp-top .stats{gap:8px;align-items:center}
.igprof .igp-top .stats a{max-width:84px;border-width:1px!important;border-radius:10px!important;padding:4px 2px 5px!important;font-size:10.5px;line-height:1.15}
.igprof .igp-top .stats a b{font-size:15px;font-weight:700;margin-bottom:0}

/* v26j: View (photo) icon matches the Slide one (gradient, white glyph) */
.post-opt .po-ic{background:var(--grad);color:#fff}

/* v26: repost button */
.rp-btn.on{color:#00B37A}
html.dark .rp-btn.on,body.immersive .rp-btn.on{color:#2EE59D}
.rp-btn.pop svg{animation:likepop .35s ease}

/* v26: clear Follow button on post headers */
.igc-follow{background:linear-gradient(135deg,#00C46A,#0098E8);color:#fff;font-weight:700;font-size:13px;border-radius:9px;padding:6px 14px;margin-right:2px}
.igc-follow:active{opacity:.85}

/* v26: Following state = white button */
.igc-follow.on{background:#fff;color:#111;border:1px solid #d5d8dd;padding:5px 13px}
html.dark .igc-follow.on{background:#fff;color:#111;border-color:#fff}
.follow-mini.on{background:#fff;color:#111;border-color:#fff}

/* v26n: count boxes centered in the space beside the avatar */
.igprof .igp-top .stats{justify-content:center}

/* ===== v26: direct messages ===== */
.dm-btn{position:relative}
.dm-btn svg{width:23px;height:23px}
.dm-list .dm-row{border-bottom:1px solid var(--line);padding:12px 14px;position:relative}
.dm-row .t{flex:1;min-width:0}
.dm-top{display:flex;align-items:baseline;gap:8px}
.dm-top b{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:15px}
.dm-when{font-size:12px;color:var(--muted);flex:none}
.dm-last{font-size:13.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:2px}
.dm-row.unread .dm-last{color:var(--text);font-weight:600}
.dm-dot{width:9px;height:9px;border-radius:50%;background:linear-gradient(135deg,#00D66E,#00A8FF);flex:none}
.dm-res{max-height:50dvh;overflow-y:auto;margin-top:8px}
.dm-res .row{background:none;border:0;border-bottom:1px solid var(--line);padding:10px 2px}
.dm-head{display:flex;align-items:center;gap:9px;flex:1;min-width:0;color:var(--text);text-decoration:none}
.dm-head span{display:flex;flex-direction:column;line-height:1.15;min-width:0}
.dm-head b{font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dm-head small{font-size:12px;color:var(--muted)}
.dm-chat{padding:12px 12px calc(84px + var(--safe-bottom))}
.dm-msgs{display:flex;flex-direction:column;gap:6px}
.dm-msg{max-width:78%;display:flex;flex-direction:column;gap:3px}
.dm-msg.me{align-self:flex-end;align-items:flex-end}
.dm-msg.them{align-self:flex-start;align-items:flex-start}
.dm-b{padding:9px 13px;border-radius:19px;font-size:15px;line-height:1.35;white-space:pre-wrap;word-break:break-word}
.dm-msg.me .dm-b{background:linear-gradient(135deg,#00C46A,#0098E8);color:#fff;border-bottom-right-radius:6px}
.dm-msg.them .dm-b{background:var(--bg3);color:var(--text);border-bottom-left-radius:6px}
.dm-msg time{font-size:10.5px;color:var(--muted);padding:0 6px}
.dm-post{display:block;width:180px;border-radius:14px;overflow:hidden;background:var(--bg3);text-decoration:none;color:var(--text)}
.dm-post img{width:100%;aspect-ratio:4/5;object-fit:cover;display:block}
.dm-post span{display:block;font-size:12px;padding:6px 9px;font-weight:600}
.dm-seen{align-self:flex-end;font-size:11px;color:var(--muted);padding:0 6px;margin-top:-2px}
.dm-empty{display:flex;flex-direction:column;align-items:center;gap:6px;padding:40px 0;color:var(--muted)}
.dm-empty b{color:var(--text);font-size:17px}
.dm-compose{position:fixed;left:0;right:0;bottom:calc(var(--tab-real, 56px));z-index:40;display:flex;align-items:flex-end;gap:8px;padding:8px 12px;background:var(--bg);border-top:1px solid var(--line);max-width:var(--maxw);margin:0 auto}
.dm-compose textarea{flex:1;resize:none;border:1px solid var(--inp-line, var(--line));background:var(--inp-bg, var(--bg3));color:var(--text);border-radius:20px;padding:9px 14px;font:inherit;font-size:16px;line-height:1.3;max-height:120px;outline:none}
.dm-send{width:40px;height:40px;border-radius:50%;border:0;display:grid;place-items:center;background:linear-gradient(135deg,#00C46A,#0098E8);color:#fff;flex:none}
.dm-send:disabled{opacity:.4}
.dm-send svg{width:19px;height:19px;margin-left:-2px}
.prof-btns .btn[data-dm]{flex:1}

/* v26: message requests + who can message you */
.set-val{color:var(--muted);font-size:14px;margin-right:4px}
.dm-opt{display:flex;align-items:center;gap:12px}
.dm-opt div{flex:1;display:flex;flex-direction:column;text-align:left}
.dm-opt small{color:var(--muted);font-size:13px;margin-top:2px}
.dm-radio{width:22px;height:22px;border-radius:50%;border:2px solid var(--line);flex:none}
.dm-opt.on .dm-radio{border:6px solid #00B37A}
.dm-reqrow{border-bottom:1px solid var(--line);padding:12px 14px}
.dm-reqrow .t{flex:1}
.dm-reqrow svg:last-child{width:18px;height:18px;color:var(--muted)}
.dm-reqic{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,#00C46A,#0098E8);color:#fff;flex:none}
.dm-reqic svg{width:22px;height:22px}
.dm-reqbar{position:fixed;left:0;right:0;bottom:calc(var(--tab-real, 56px));z-index:40;background:var(--bg);border-top:1px solid var(--line);padding:12px 16px;max-width:var(--maxw);margin:0 auto}
.dm-reqbar p{margin:0 0 10px;font-size:14px;color:var(--text2);text-align:center}
.dm-reqbtns{display:flex;gap:10px}
.dm-reqbtns .btn{flex:1}
.dm-compose[hidden]{display:none}

/* v26: Hubs */
.hub-pill{margin-left:auto;display:inline-flex;align-items:center;gap:6px;font-weight:700;font-size:14px;padding:7px 13px;border-radius:999px;background:linear-gradient(135deg,#00D66E,#00A8FF);color:#fff;text-decoration:none}
.hub-pill svg{width:18px;height:18px}
.hub-chips{display:flex;gap:8px;padding:10px 16px 6px}
.hub-chip{font-size:13.5px;font-weight:600;padding:7px 14px;border-radius:999px;background:var(--chip,#f0f1f3);color:var(--ink,#222);text-decoration:none}
.hub-chip.on{background:var(--ink,#111);color:var(--bg,#fff)}
.hub-row{display:flex;align-items:center;gap:12px;padding:11px 16px;border-bottom:1px solid var(--line,#eee);color:inherit;text-decoration:none}
.hub-th{width:58px;height:50px;border-radius:14px;object-fit:cover;flex:none;background:#ddd}
.hub-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.hub-t b{font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hub-t span{font-size:12.5px;color:var(--muted,#777)}
.hub-join,.hub-go{border:0;background:linear-gradient(135deg,#00C46A,#0098E8);color:#fff;font-weight:700;font-size:13px;border-radius:9px;padding:7px 15px;cursor:pointer;flex:none}
.hub-go.on,.hub-joined{background:transparent;border:1px solid var(--line,#ddd);color:var(--ink,#222);font-weight:600;font-size:13px;border-radius:9px;padding:6px 12px;flex:none}
.hub-cover{height:150px;background-size:cover;background-position:center;background-color:#cfd6dc}
.hub-head{padding:12px 16px 4px}
.hub-head h2{margin:0;font-size:21px;display:flex;align-items:center;gap:6px}
.hub-head p{margin:4px 0 0;color:var(--muted,#666);font-size:14px}
.hub-meta{display:flex;align-items:center;gap:8px;margin-top:10px;font-size:12.5px;color:var(--muted,#555)}
.hub-avs{display:flex}.hub-avs .hub-av{width:26px;height:26px;margin-left:-8px;border:2px solid var(--bg,#fff)}.hub-avs .hub-av:first-child{margin-left:0}
.hub-btns{display:flex;gap:8px;margin-top:12px}.hub-btns .btn{flex:1;padding:9px 10px;font-size:14px}
.hub-tabs{display:flex;gap:20px;padding:10px 16px 0;border-bottom:1px solid var(--line,#eee);margin-top:8px;overflow-x:auto}
.hub-tab{font-size:14px;color:var(--muted,#888);text-decoration:none;padding-bottom:8px;white-space:nowrap;border-bottom:2.5px solid transparent}
.hub-tab.on{color:var(--ink,#111);font-weight:700;border-image:linear-gradient(90deg,#00D66E,#00A8FF) 1}
.hub-body .ig-grid{margin-top:2px}
.hub-map{height:62vh}
.hub-note{font-size:12.5px;color:var(--muted,#777);padding:10px 16px 0;margin:0}
.hub-rank{display:flex;align-items:center;gap:12px;padding:10px 16px;color:inherit;text-decoration:none}
.hub-n{width:22px;text-align:center;font-weight:800;color:var(--muted,#999)}.hub-n.top{background:linear-gradient(135deg,#00C46A,#0098E8);-webkit-background-clip:text;background-clip:text;color:transparent}
.hub-av2{width:40px;height:40px}
.hub-meet{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--line,#eee)}
.hub-plan{margin:12px 16px 4px;width:calc(100% - 32px);display:flex;align-items:center;justify-content:center;gap:6px}.hub-plan svg{width:16px;height:16px}
.hub-form{display:flex;flex-direction:column;gap:12px;padding:4px 2px 8px}
.hub-form label{display:flex;flex-direction:column;gap:5px;font-size:13px;font-weight:600}
.hub-form input:not([type=checkbox]){font:inherit;font-size:15px;padding:11px 12px;border:1px solid var(--line,#ddd);border-radius:10px;background:var(--bg,#fff);color:inherit}
.hub-form .hub-priv{flex-direction:row;align-items:center;gap:8px;font-weight:500}

/* v26: hubs — who can join, invites */
.hub-cta{background:linear-gradient(135deg,#00C46A,#0098E8)!important;color:#fff!important;border:0!important}
.hub-who{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:600}
.hub-who small{font-weight:400;color:var(--muted,#777);font-size:12.5px}
.hub-seg{display:flex;background:var(--chip,#f0f1f3);border-radius:10px;padding:3px}
.hub-seg button{flex:1;border:0;background:transparent;font:inherit;font-size:13.5px;font-weight:600;padding:9px 6px;border-radius:8px;color:var(--muted,#666);cursor:pointer}
.hub-seg button.on{background:var(--bg,#fff);color:var(--ink,#111);box-shadow:0 1px 3px #0002}
.hub-invite{margin-top:12px;padding:12px;border-radius:12px;border:1px solid var(--line,#e5e5e5);font-size:14px;font-weight:600}
.hub-invite div{display:flex;gap:8px;margin-top:10px}.hub-invite .btn{flex:1;padding:8px}
.hub-inv-list{max-height:55vh;overflow:auto}
.hub-inv-row{display:flex;align-items:center;gap:12px;padding:9px 4px}

/* v26: hub photo */
.hub-ph-row{display:flex;align-items:center;gap:10px}.hub-ph-prev{width:54px;height:46px;border-radius:12px;object-fit:cover}
.hub-pick{display:grid;grid-template-columns:repeat(5,1fr);gap:4px;max-height:200px;overflow:auto}
.hub-pick .tile{border:0;padding:0;aspect-ratio:1;border-radius:8px;overflow:hidden;cursor:pointer;outline:2px solid transparent;outline-offset:-2px}
.hub-pick .tile img{width:100%;height:100%;object-fit:cover;display:block}.hub-pick .tile.on{outline-color:#00B37A;outline-width:3px}

/* v26: hub chat */
.hub-chat-av{width:34px;height:34px;border-radius:10px;object-fit:cover}
.hub-chat-big{width:72px;height:72px;border-radius:18px;object-fit:cover}
.hub-msg-who{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--muted,#666);text-decoration:none;margin:6px 0 3px}
.hub-msg-av{width:20px;height:20px}
.dm-msg.hub-msg{flex-direction:column}
.dm-msg.hub-msg.them{align-items:flex-start}.dm-msg.hub-msg.me{align-items:flex-end}

/* v26: hub invite search + link */
.hub-linkbtn{display:flex;align-items:center;gap:10px;font-weight:700}.hub-linkbtn small{margin-left:auto;font-weight:400;color:var(--muted,#888);font-size:12.5px}
.hub-inv-search{display:flex;align-items:center;gap:8px;background:var(--chip,#f0f1f3);border-radius:11px;padding:9px 12px;margin:10px 0 4px}
.hub-inv-search svg{width:17px;height:17px;opacity:.6}.hub-inv-search input{flex:1;border:0;background:transparent;font:inherit;font-size:15px;color:inherit;outline:none}

/* v26: hub tabs as slim outlined boxes (like profile counts) + members button */
.hub-tabs{gap:6px!important;padding:12px 12px 10px!important;border-bottom:0!important;overflow-x:auto;scrollbar-width:none}
.hub-tabs::-webkit-scrollbar{display:none}
.hub-tab{flex:1 0 auto;text-align:center;padding:6px 10px!important;font-size:13px!important;border-radius:10px;border:1px solid transparent!important;border-image:none!important;
  background:linear-gradient(var(--stat-bg,#fff),var(--stat-bg,#fff)) padding-box,linear-gradient(135deg,#00D66E,#00A8FF) border-box;color:var(--text,#222)!important;font-weight:600}
.hub-tab.on{background:linear-gradient(135deg,#00D66E,#00A8FF) border-box;color:#fff!important;font-weight:700}
.hub-memb{display:flex;align-items:center;gap:8px;border:0;background:none;padding:0;font:inherit;color:inherit;cursor:pointer}
.hub-memb b{font-weight:700;color:var(--text,#222)}
a.hub-inv-row{color:inherit;text-decoration:none}

/* v26: hub search + trip hubs */
.hub-search{margin:10px 16px 0!important}
.hub-trip{display:inline-flex;align-items:center;gap:4px;font-size:12px!important;font-weight:700;color:#00A06A!important}
.hub-trip svg{width:12px;height:12px}
.hub-trip.big{font-size:12.5px!important;padding:3px 10px;border-radius:999px;background:linear-gradient(135deg,#00D66E22,#00A8FF22);margin-bottom:6px}
.hub-dates{display:flex;align-items:center;gap:8px}.hub-dates input{flex:1;min-width:0;font:inherit;font-size:14px;padding:9px 8px;border:1px solid var(--line,#ddd);border-radius:10px;background:var(--bg,#fff);color:inherit}
.hub-dates span{font-weight:400;color:var(--muted,#888)}
.hub-memb{flex:none}.hub-memb b{white-space:nowrap}.hub-meta{flex-wrap:wrap;row-gap:4px}

/* v26: composer "Add to hubs" */
.hub-addrow{display:flex;align-items:center;gap:12px;width:100%;text-align:left;border:1px solid var(--line,#e3e3e3);background:var(--bg,#fff);color:inherit;font:inherit;border-radius:12px;padding:11px 14px;margin:4px 0 12px;cursor:pointer}
.hub-addrow>svg{width:22px;height:22px;color:#00A06A;flex:none}
.hub-addrow span{display:flex;flex-direction:column;flex:1;min-width:0}.hub-addrow b{font-size:15px}
.hub-addrow small{font-size:12.5px;color:var(--muted,#777);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hub-addrow .caret{flex:none;font-size:22px;color:var(--muted,#999)}
.hub-pick-row{display:flex;align-items:center;gap:12px;width:100%;border:0;background:none;color:inherit;font:inherit;text-align:left;padding:9px 2px;cursor:pointer}
.hub-check{width:24px;height:24px;border-radius:50%;border:1.5px solid var(--line,#ccc);display:grid;place-items:center;font-size:14px;font-weight:800;color:#fff;flex:none}
.hub-pick-row.on .hub-check{background:linear-gradient(135deg,#00D66E,#00A8FF);border-color:transparent}

/* v26: slides — slimmer, lower rail & info so more of the view shows */
.slide .rail{bottom:10px!important;gap:0!important;right:4px}
.slide .rail .rail-btn{width:52px;padding:4px 0!important;font-size:11px;gap:1px}
.slide .rail .rail-btn svg{width:25px!important;height:25px!important}
.slide .rail .rail-btn.like-btn svg{width:30px!important;height:30px!important}
.slide .rail .rail-btn.like-btn .cnt{font-size:12.5px;margin-top:0}
.slide .rail .rail-btn small{font-size:9.5px!important}
.slide .rail .rail-btn.rail-snd svg{width:23px!important;height:23px!important}
.slide .rail .rail-av,.slide .rail .rail-follow{transform:scale(.86);transform-origin:center}
.slide .slide-info{bottom:10px!important;right:66px}
body.immersive .slide .slide-info{padding-bottom:8px}
body.immersive .slide .rail{bottom:8px!important}
.slide-shade{background:linear-gradient(to top,rgba(0,0,0,.55),rgba(0,0,0,0) 26%)!important}
/* reposted = green, same as saved pins */
[data-repost].on,[data-repost].on svg{color:#2EE59D!important}

/* v26: repost count styled like likes; nice green when reposted */
.rail-btn.rp-btn [data-rcount]{display:block;font-size:12.5px;font-weight:750;margin-top:0;color:#fff}
.igc-btn.rp-btn [data-rcount]{font-size:14px;font-weight:650;margin-left:4px}
[data-repost].on,[data-repost].on svg{color:#00C46A!important}
[data-repost].on svg{filter:drop-shadow(0 0 6px rgba(0,196,106,.45))}
.rail-btn.rp-btn.on [data-rcount]{color:#fff!important}
.igc-btn.rp-btn.on [data-rcount]{color:#00C46A!important}

/* v26: likes = same green as reposts */
:root,[data-theme],body{--heart:#00C46A}
.liked svg,.rail-btn.like-btn.on svg{filter:drop-shadow(0 0 6px rgba(0,196,106,.45))}

.igc-btn.like-btn.on,.igc-btn.like-btn.on svg{color:#00C46A!important}

.hub-btns .hub-plus{flex:0 0 52px;display:grid;place-items:center;padding:7px!important}.hub-btns .hub-plus svg{width:22px;height:22px}

/* v26: map search box must stay under sheets (music etc.) */
.up-map-wrap{position:relative;isolation:isolate;z-index:0}
.map-search{z-index:60}

/* v26: full emoji keyboard */
.emo-sheet{display:flex;flex-direction:column;gap:8px}
.emo-tabs{display:flex;justify-content:space-between;gap:2px;border-bottom:1px solid var(--line);padding-bottom:4px}
.emo-tabs button{flex:1;font-size:20px;height:36px;border-radius:10px;opacity:.45;filter:grayscale(.6)}
.emo-tabs button.on{opacity:1;filter:none;background:var(--press)}
.emo-scroll{height:min(46vh,380px);overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
.emo-h{font-size:12.5px;font-weight:650;color:var(--muted);padding:8px 2px 4px}
.emo-grid{grid-template-columns:repeat(8,1fr);gap:2px}
.emo-grid button{font-size:28px;height:44px;border-radius:10px;padding:0;background:none;border:0}

/* v27: emoji stickers on photo posts (baked into the photo when you post) */
.ph-stk{position:absolute;inset:0;container-type:size;pointer-events:none;overflow:hidden;z-index:2}
.ph-stk.editing{pointer-events:auto;touch-action:none}
.ph-e{position:absolute;transform:translate(-50%,-50%);line-height:1;white-space:pre;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;touch-action:none;pointer-events:auto;cursor:grab;filter:drop-shadow(0 2px 6px rgba(0,0,0,.35))}
.ph-e.sel{outline:2px dashed rgba(255,255,255,.95);outline-offset:3px;border-radius:6px}
.ph-x{position:absolute;top:-12px;right:-12px;width:24px;height:24px;border-radius:50%;background:#fff;color:#111;display:grid;place-items:center;padding:0;box-shadow:0 1px 5px rgba(0,0,0,.35);filter:none}
.ph-x svg{width:12px;height:12px}
.ph-stk-btn{position:absolute;top:10px;right:10px;z-index:3;display:flex;align-items:center;gap:6px;height:34px;padding:0 13px 0 9px;border-radius:17px;background:rgba(20,20,22,.62);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:#fff;font-size:13px;font-weight:650;border:1px solid rgba(255,255,255,.14)}
.ph-stk-btn .pe{font-size:18px;line-height:1}
.ph-stk-btn:active{transform:scale(.96)}
.ph-stk-sel{z-index:4;top:10px;left:10px;bottom:auto;transform:none}

/* v27b: Stickers button under the photo, beside "Choose again" */
.ph-row{display:flex;justify-content:center;align-items:center;gap:10px;flex-wrap:wrap}
.ph-row .ph-stk-btn{position:static;display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 14px;border-radius:9px;background:var(--bg3);border:1px solid var(--line);color:var(--text);font-size:14px;font-weight:650;backdrop-filter:none;-webkit-backdrop-filter:none}
.ph-row .ph-stk-btn .pe{font-size:16px}

/* v27c: loading cover while the phone hands over a picked photo/video */
.pick-cover{position:fixed;inset:0;z-index:9999;background:var(--bg);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;color:var(--muted);font-size:14px;font-weight:600}
.pick-spin{width:30px;height:30px;border-radius:50%;border:3px solid var(--line);border-top-color:#00C46A;animation:spin .8s linear infinite}

/* v102: music trimmer (choose the part of the song that plays on the slide) */
.mtrim{gap:14px}
.mt-song{display:flex;align-items:center;gap:12px;padding:2px 2px}
.mt-song b{display:block;font-size:15px}
.mt-song small{display:block;color:var(--muted);font-size:12.5px}
.mt-song .mus-ic.art{width:44px;height:44px}
.mt-time{display:flex;align-items:baseline;gap:10px;padding:0 2px}
.mt-time b{font-size:28px;font-weight:750;font-variant-numeric:tabular-nums;letter-spacing:-.5px;color:var(--text)}
.mt-time span{font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums}
.mt-strip{position:relative;height:72px;border-radius:12px;background:var(--bg3);touch-action:none;cursor:grab;user-select:none;-webkit-user-select:none;overflow:hidden}
.mt-strip.drag{cursor:grabbing}
.mt-bars{position:absolute;inset:10px 0;display:flex;align-items:center;gap:2px}
.mt-bars i{flex:1;min-width:1px;border-radius:2px;background:var(--muted);opacity:.38;transition:background .12s,opacity .12s}
.mt-bars i.in{background:#00C46A;opacity:1}
.mt-win{position:absolute;top:0;bottom:0;border:3px solid #00C46A;border-radius:12px;background:rgba(0,196,106,.12);box-shadow:0 0 0 1px rgba(0,196,106,.25);pointer-events:none;min-width:14px;box-sizing:border-box}
.mt-win::before,.mt-win::after{content:"";position:absolute;top:50%;width:4px;height:22px;margin-top:-11px;border-radius:2px;background:#00C46A}
.mt-win::before{left:-4px}.mt-win::after{right:-4px}
.mt-win i{position:absolute;top:6px;bottom:6px;width:2px;margin-left:-1px;border-radius:1px;background:var(--text);opacity:0;transition:opacity .15s}
.mt-hint{margin:-4px 2px 0;text-align:center}
.mt-acts{display:flex;gap:10px}
.mt-acts .btn{flex:1}

/* v120: touch and hold pauses the slide; the overlays fade away while held, like Reels */
.slide{-webkit-touch-callout:none}
.slide .clip-vid{-webkit-touch-callout:none;pointer-events:none}
body.holding .slide-info,body.holding .slide-shade,body.holding .rail,body.holding .snd-btn,body.holding .music-chip,body.holding .topbar,body.holding .tabbar,body.holding .detail-more{opacity:0!important;transition:opacity .2s ease}

/* v123: pick cover hidden until a file is chosen (Yanky Nov 8: no blank "Opening" screen when tapping +) */
.pick-cover{opacity:0;background:transparent}
.pick-cover.show{opacity:1;background:var(--bg)}

/* v126: song card, compact row (Yanky: smaller, neater) */
.song-card{display:flex;align-items:center;gap:12px;padding:6px 18px 20px}
.song-card .sc-art{width:52px;height:52px;border-radius:9px;object-fit:cover;flex:none;background:var(--bg3)}
.song-card .sc-noart{display:flex;align-items:center;justify-content:center;color:var(--muted)}
.song-card .sc-txt{flex:1;min-width:0}
.song-card .sc-t{font-size:15.5px;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.song-card .sc-a{font-size:13px;color:var(--muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.song-card .sc-yt{flex:none;display:inline-flex;align-items:center;gap:5px;height:32px;padding:0 13px;border-radius:999px;background:#FF0033;color:#fff;font-size:13px;font-weight:700;text-decoration:none}
/* v125: only one sound button in New slide (the one by Music); the one on the video preview is gone */
#esnd{display:none!important}

/* v130: Slides always fill the whole space between the top bar and the tab bar (no black gap on iPhone when the
   measured window height is stale). The reel is pinned to the real bars and each slide is exactly the reel's height. */
body.immersive .reel:not(.igfeed){position:fixed!important;left:0;right:0;top:var(--top-real)!important;bottom:var(--tab-real)!important;height:auto!important;max-width:var(--maxw);margin:0 auto}
body.immersive .reel:not(.igfeed) > .slide{height:100%!important;min-height:0!important}

/* v131: the slide's photo shows instantly (never a black screen) while its video loads; the video fades in on its first frame */
.slide.clip .clip-poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;pointer-events:none;-webkit-user-select:none;user-select:none}
.slide.clip .clip-vid{z-index:0;opacity:0;transition:opacity .15s}
.slide.clip.playing .clip-vid{opacity:1}

/* v136: New view preview sits in one fixed-size frame, so switching between photos (tall/wide) never makes the page jump,
   and the whole photo always shows (nothing cut off at the top) */
#stage .pv-frame{height:min(52dvh,118vw);margin:8px 0 0;background:#000;display:flex;align-items:center;justify-content:center;overflow:hidden}
#stage .pv-frame .preview{width:fit-content;max-width:100%;height:auto;max-height:100%;margin:0;display:block;position:relative;background:transparent;border:0}
#stage .pv-frame .preview img{max-width:100%;max-height:min(52dvh,118vw);width:auto;height:auto;object-fit:contain;display:block;margin:0}
html:not(.dark) #stage .pv-frame{background:var(--bg2)}

/* v139 */
.credit-opt span{font-size:13px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* v141: edit comment */ .cmt-row .cedit{margin-right:12px} .cmt-form.editing{box-shadow:inset 0 2px 0 #00C46A}

/* v142: Views feed "Place first" look (Yanky picked look 7, Nov 8) + DM Sans app font */
button,input,textarea,select{font-family:inherit}
.igcard{margin-bottom:18px}
.igc-head.pf{align-items:flex-start;gap:8px;padding:14px 6px 10px 16px}
.pf-t{flex:1;min-width:0}
.pf-map{color:inherit;text-decoration:none;display:block}
.pf-place{display:block;font-size:21px;font-weight:700;letter-spacing:-.4px;line-height:1.15;overflow-wrap:anywhere;color:var(--text)}
.pf-sub{display:block;font-size:13px;color:var(--muted);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pf-sub svg{vertical-align:-1px;margin-right:3px;color:#00C46A}
.pf-u{display:flex;flex-direction:column;align-items:flex-end;gap:3px;flex:none;max-width:44%;padding-top:2px}
.pf-ur{display:flex;align-items:center;gap:7px;max-width:100%}
.pf-ur .igc-name{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;color:var(--text);text-decoration:none}
.pf-ur .av{width:30px;height:30px}
.igc-head.pf .igc-follow{padding:0!important;margin:0;border:0!important;background:none!important;color:#00C46A!important;font-size:12.5px;font-weight:700;height:auto;min-height:0;line-height:1.3}
.igc-head.pf .igc-follow.on{color:var(--muted)!important}
.igc-head.pf .igc-more{flex:none;margin-top:-2px}
.igcard .igc-media{width:auto;margin:0 16px;border-radius:20px}
.igcard .igc-actions{padding-left:10px;padding-right:10px}

/* v143: grey backdrop with white cards (like look 9) + green location chip (like look 8) */
html:not(.dark) body.igmode, html:not(.dark) body.igmode .reel.igfeed{background:#F0F2F1}
body.igmode .igcard{background:var(--bg);margin:10px 10px 14px;border-radius:24px;padding-bottom:10px;border:0;box-shadow:0 1px 3px rgba(0,0,0,.05)}
html.dark body.igmode .igcard{background:#16171a;box-shadow:none}
body.igmode .igcard .igc-media{margin:0 10px;border-radius:18px}
body.igmode .igc-head.pf{padding:14px 4px 10px 14px}
.pf-sub{display:inline-block;max-width:100%;box-sizing:border-box;margin-top:6px;padding:4px 10px;border-radius:999px;background:rgba(0,196,106,.12);color:#00A35A;font-weight:600;font-size:12.5px}
html.dark .pf-sub{background:rgba(0,196,106,.18);color:#2fe08c}
.pf-sub svg{color:currentColor}

/* v144: Follow is a real button on the pin row; the pin chip shows it opens the map */
body.igmode .igc-head.pf{align-items:stretch}
.pf-u{justify-content:space-between;gap:8px}
.igc-head.pf .igc-follow{padding:5px 14px!important;border-radius:999px;background:linear-gradient(92deg,#00D66E,#00A8FF)!important;color:#fff!important;font-size:12.5px;font-weight:700;line-height:1.2}
.igc-head.pf .igc-follow.on{background:var(--bg3,#eceeed)!important;color:var(--text)!important}
html.dark .igc-head.pf .igc-follow.on{background:#2a2b30!important}
.pf-sub{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}
.pf-subt{overflow:hidden;text-overflow:ellipsis;min-width:0;text-decoration:underline;text-decoration-color:rgba(0,163,90,.45);text-underline-offset:2px}
.pf-sub svg{margin:0;flex:none}
.pf-go{opacity:.9}
.pf-map:active .pf-sub{filter:brightness(.92)}

/* v145: swapped header — left: avatar+name+⋯, then location chip + Follow; right: place name */
body.igmode .igc-head.pf2{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:12px 14px 10px}
.pf2 .pf-l{flex:1;min-width:0;display:flex;flex-direction:column;gap:7px}
.pf2 .pf-ur{display:flex;align-items:center;gap:8px;min-width:0}
.pf2 .pf-ur .av{width:32px;height:32px}
.pf2 .pf-ur .igc-name{font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.pf2 .igc-more{margin:0 0 0 -2px;padding:2px;width:28px;height:28px;flex:none;color:var(--muted)}
.pf2 .pf-row{display:flex;align-items:center;gap:8px;min-width:0}
.pf2 .pf-sub{margin:0;min-width:0;max-width:100%;text-decoration:none}
.pf2 .pf-subt{text-decoration:none}
.pf2 .igc-follow{flex:none}
.pf2 .pf-r{flex:0 1 46%;min-width:0;text-align:right;padding-top:2px}
.pf2 .pf-place{font-size:19px;line-height:1.15}
.pf2 .pf-r{flex-basis:40%} .pf2 .pf-place{font-size:18px} .pf2 .pf-row{flex-wrap:wrap;row-gap:6px} .pf2 .pf-sub{flex:0 1 auto} .pf2 .igc-follow{padding:5px 12px!important}
.pf2 .pf-r{flex-basis:36%} .pf2 .pf-sub{font-size:12px;padding:4px 8px} .pf2 .igc-follow{padding:4px 10px!important;font-size:12px} .pf2 .pf-row{gap:6px}
.pf2 .pf-row{flex-wrap:nowrap} .pf2 .pf-sub{overflow:hidden} .pf2 .pf-subt{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* v149: layout B — left: ⋯, place name, green location; right: name+avatar, Follow under */
body.igmode .igc-head.pf3{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:8px 14px 10px}
.pf3 .pf-l{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:5px}
.pf3 .igc-more{margin:0 0 -4px -6px;padding:2px;width:30px;height:26px;color:var(--muted)}
.pf3 .pf-place{font-size:20px;line-height:1.15}
.pf3 .pf-sub{margin:2px 0 0;max-width:100%;overflow:hidden;text-decoration:none}
.pf3 .pf-subt{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-decoration:none}
.pf3 .pf-r{flex:none;max-width:42%;display:flex;flex-direction:column;align-items:flex-end;gap:7px;padding-top:6px}
.pf3 .pf-ur{display:flex;align-items:center;gap:7px;max-width:100%;min-width:0}
.pf3 .pf-ur .igc-name{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.pf3 .pf-ur .av{width:30px;height:30px}
.pf3 .igc-follow{padding:4px 12px!important;font-size:12px}

/* v150: mirrored — left: avatar+name, Follow under; right: ⋯, place name, green location */
body.igmode .igc-head.pf4{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:8px 14px 10px}
.pf4 .pf-u4{flex:none;max-width:44%;display:flex;flex-direction:column;align-items:flex-start;gap:7px;padding-top:6px}
.pf4 .pf-ur{display:flex;align-items:center;gap:7px;max-width:100%;min-width:0}
.pf4 .pf-ur .igc-name{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.pf4 .pf-ur .av{width:30px;height:30px}
.pf4 .igc-follow{padding:4px 12px!important;font-size:12px}
.pf4 .pf-p4{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-end;gap:5px;text-align:right}
.pf4 .igc-more{margin:0 -6px -4px 0;padding:2px;width:30px;height:26px;color:var(--muted)}
.pf4 .pf-place{font-size:20px;line-height:1.15}
.pf4 .pf-sub{margin:2px 0 0;max-width:100%;overflow:hidden;text-decoration:none}
.pf4 .pf-subt{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-decoration:none}

/* v151: neat left block — avatar spans both rows, name on top, Follow right under the name, same left edge */
.pf4 .pf-u4{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-rows:auto auto;column-gap:9px;row-gap:5px;align-items:center;padding-top:4px}
.pf4 .pf-ur{display:contents}
.pf4 .pf-ur .igc-av{grid-row:1 / span 2;grid-column:1}
.pf4 .pf-ur .av{width:40px;height:40px}
.pf4 .pf-ur .igc-name{grid-row:1;grid-column:2;font-size:14px;line-height:1.2;align-self:end}
.pf4 .pf-u4 .igc-follow{grid-row:2;grid-column:2;justify-self:start;align-self:start;margin:0;padding:3px 12px!important;font-size:12px;line-height:1.35}
.pf4 .pf-u4:not(:has(.igc-follow)) .igc-name{grid-row:1 / span 2;align-self:center}

/* v152: right side lined up with the left — place name level with the name, location level with Follow; ⋯ sits in the top corner */
body.igmode .igc-head.pf4{position:relative;align-items:center;padding:30px 14px 12px}
.pf4 .pf-u4{padding-top:0}
.pf4 .pf-p4{display:grid;grid-template-rows:auto auto;row-gap:5px;justify-items:end;align-content:center}
.pf4 .pf-p4 .igc-more{position:absolute;top:4px;right:8px;margin:0}
.pf4 .pf-place{font-size:17px;line-height:1.2;align-self:end}
.pf4 .pf-p4 .pf-sub{margin:0;align-self:start;padding:3px 10px;font-size:12px;line-height:1.35}

/* v153: calmer Follow (small outline), smaller avatar, name + Follow on one clean left edge */
.pf4 .pf-u4{column-gap:8px;row-gap:4px}
.pf4 .pf-ur .av{width:34px;height:34px}
.pf4 .pf-ur .igc-name{font-size:14px;line-height:18px;align-self:end;padding:0;margin:0}
.pf4 .pf-u4 .igc-follow{height:20px;min-height:0;padding:0 9px!important;margin:0;border-radius:999px;background:transparent!important;border:1px solid #00C46A!important;color:#00A35A!important;font-size:11.5px;font-weight:600;line-height:18px;box-shadow:none}
.pf4 .pf-u4 .igc-follow.on{border-color:var(--line,#d9dcdb)!important;color:var(--muted)!important;background:transparent!important}
html.dark .pf4 .pf-u4 .igc-follow{color:#2fe08c!important}
.pf4 .pf-place{line-height:18px}
.pf4 .pf-p4 .pf-sub{height:20px;box-sizing:border-box;line-height:18px;padding:1px 9px;font-size:11.5px}

/* v154: no cards — plain feed like before (white/black background, full-width photo, no boxes) */
html:not(.dark) body.igmode, html:not(.dark) body.igmode .reel.igfeed{background:var(--bg)}
body.igmode .igcard{background:transparent;margin:0 0 16px;border-radius:0;box-shadow:none;padding-bottom:4px}
html.dark body.igmode .igcard{background:transparent}
body.igmode .igcard .igc-media{margin:0;border-radius:0;width:100%}


/* v166: action buttons as light-green pills (like, comment, repost, share) */
.igc-actions{gap:8px!important;padding-left:12px!important;padding-right:12px!important}
.igc-actions .igc-btn:not(.save-btn){background:#EEF9F3;color:#0a8a4c!important;border-radius:999px;padding:6px 12px!important;gap:6px;min-height:0;height:36px;display:inline-flex;align-items:center}
.igc-actions .igc-btn:not(.save-btn) svg{width:21px!important;height:21px!important;color:#0a8a4c!important}
.igc-actions .igc-btn:not(.save-btn) span{color:#0a8a4c;font-weight:600;font-size:14px}
.igc-actions .igc-btn.like-btn.on{background:#00C46A;color:#fff!important}
.igc-actions .igc-btn.like-btn.on svg,.igc-actions .igc-btn.like-btn.on span{color:#fff!important}
.igc-actions .igc-btn.rp-btn.on{background:#00C46A}
.igc-actions .igc-btn.rp-btn.on svg,.igc-actions .igc-btn.rp-btn.on span{color:#fff!important}
html.dark .igc-actions .igc-btn:not(.save-btn){background:rgba(0,196,106,.16);color:#5fe3a1!important}
html.dark .igc-actions .igc-btn:not(.save-btn) svg,html.dark .igc-actions .igc-btn:not(.save-btn) span{color:#5fe3a1!important}
html.dark .igc-actions .igc-btn.like-btn.on,html.dark .igc-actions .igc-btn.rp-btn.on{background:#00C46A}
html.dark .igc-actions .igc-btn.like-btn.on svg,html.dark .igc-actions .igc-btn.like-btn.on span,html.dark .igc-actions .igc-btn.rp-btn.on svg,html.dark .igc-actions .igc-btn.rp-btn.on span{color:#fff!important}

/* v168: pills stay light always; a like only fills the heart green; repost only turns the arrows green */
.igc-actions .igc-btn.like-btn.on,.igc-actions .igc-btn.rp-btn.on,html.dark .igc-actions .igc-btn.like-btn.on,html.dark .igc-actions .igc-btn.rp-btn.on{background:#EEF9F3!important}
html.dark .igc-actions .igc-btn.like-btn.on,html.dark .igc-actions .igc-btn.rp-btn.on{background:rgba(0,196,106,.16)!important}
.igc-actions .igc-btn.like-btn.on svg,.igc-actions .igc-btn.rp-btn.on svg{color:#00C46A!important}
.igc-actions .igc-btn.like-btn.on span,.igc-actions .igc-btn.rp-btn.on span{color:#0a8a4c!important}
html.dark .igc-actions .igc-btn.like-btn.on span,html.dark .igc-actions .igc-btn.rp-btn.on span{color:#5fe3a1!important}
.igc-actions .igc-btn.like-btn.on .core{fill:#00C46A!important}

/* v169: pin button on the same light green pill */
.igc-actions .igc-btn.save-btn{background:#EEF9F3;color:#0a8a4c!important;border-radius:999px;padding:6px 12px!important;height:36px;min-height:0;display:inline-flex;align-items:center}
.igc-actions .igc-btn.save-btn svg{width:21px!important;height:21px!important;color:#0a8a4c!important}
.igc-actions .igc-btn.save-btn.on svg{color:#00C46A!important}
html.dark .igc-actions .igc-btn.save-btn{background:rgba(0,196,106,.16)}
html.dark .igc-actions .igc-btn.save-btn svg{color:#5fe3a1!important}

/* v170: light soft green around the globe */
.gl-map .maplibregl-ctrl-attrib{background:rgba(255,255,255,.7);color:#555}.gl-map .maplibregl-ctrl-attrib a{color:#333}.gl-map .maplibregl-ctrl-attrib-button{filter:none}

/* v173: crisp round globe edge with a soft shadow, top and bottom */
.gl-map .maplibregl-canvas{filter:drop-shadow(0 0 1px rgba(0,90,50,.35)) drop-shadow(0 8px 22px rgba(0,90,50,.22))}

/* v174: Slides bars are white like Views (light mode); the photo area stays as is */
html:not(.dark) body.immersive .topbar{background:#fff!important;color:var(--text)!important;border-bottom:1px solid var(--chrome-line)!important}
html:not(.dark) body.immersive .topbar .shuf,html:not(.dark) body.immersive .topbar .srch,html:not(.dark) body.immersive .topbar a,html:not(.dark) body.immersive .topbar button{color:var(--text)!important;filter:none}
html:not(.dark) body.immersive .topbar .seg-top3 button{color:var(--muted)!important}
html:not(.dark) body.immersive .topbar .seg-top3 button.on{color:var(--text)!important;background:var(--grad-h) left bottom/100% 2.5px no-repeat!important;font-weight:700}
html:not(.dark) body.immersive .tabbar{background:#fff!important;border-top:1px solid var(--chrome-line)!important}
html:not(.dark) body.immersive .tabbar a{color:var(--muted)!important}
html:not(.dark) body.immersive .tabbar a.on{color:#00A35A!important}
html:not(.dark) body.immersive .tabbar .av.tab-avatar{background:rgba(0,0,0,.08)}
html:not(.dark) body.immersive .tabbar a.on .av.tab-avatar{box-shadow:0 0 0 2px #fff,0 0 0 3.6px #00C46A}

/* v175: thin white border around the globe; repost button removed */
.gl-map .maplibregl-canvas{filter:drop-shadow(1.5px 0 0 #fff) drop-shadow(-1.5px 0 0 #fff) drop-shadow(0 1.5px 0 #fff) drop-shadow(0 -1.5px 0 #fff) drop-shadow(0 8px 22px rgba(0,90,50,.22))!important}
.igc-actions .rp-btn,.rail .rp-btn,[data-repost]{display:none!important}

/* v176: clearer white border — thicker white ring with a faint green edge outside it so it shows on the light green */
.gl-map .maplibregl-canvas{filter:drop-shadow(3px 0 0 #fff) drop-shadow(-3px 0 0 #fff) drop-shadow(0 3px 0 #fff) drop-shadow(0 -3px 0 #fff) drop-shadow(0 0 1px rgba(0,120,70,.55)) drop-shadow(0 8px 22px rgba(0,90,50,.25))!important}

/* v179: messages icon same size + baseline as bell and gear */
.dm-btn svg{width:27px!important;height:27px!important;display:block}
.topbar .gear-btn svg.gear{width:23px;height:23px}
.topbar .dm-btn,.topbar .bell-btn,.topbar .gear-btn{display:inline-flex;align-items:center;justify-content:center}

/* v180: hub top-bar share = curved arrow, same size as other top icons */
[data-hshare] svg{width:26px;height:26px;display:block}

/* v182: globe appears smoothly — soft fade + gentle grow instead of popping in */
.gl-map .maplibregl-canvas{transition:opacity .55s ease,transform .7s cubic-bezier(.2,.8,.2,1)}
.gl-map.gl-loading .maplibregl-canvas{opacity:0;transform:scale(.94)}
.gl-map.gl-in .maplibregl-canvas{opacity:1;transform:none}
.gl-map.gl-loading::after{content:"";position:absolute;left:50%;top:50%;width:46vmin;height:46vmin;max-width:300px;max-height:300px;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle at 35% 30%,#ffffff,#d6f1e3 60%,#c3e9d5);box-shadow:0 0 0 3px #fff,0 8px 22px rgba(0,90,50,.2);animation:glPulse 1.2s ease-in-out infinite alternate;pointer-events:none;z-index:1}
@keyframes glPulse{from{opacity:.55;transform:translate(-50%,-50%) scale(.97)}to{opacity:.9;transform:translate(-50%,-50%) scale(1)}}

/* v184: the Map tab shows the Earth instantly (a still picture), then the live globe fades in exactly on top of it */
#bigmap.bigmap-pre{background:radial-gradient(ellipse at 50% 45%,#F4FCF8 0%,#EAF8F0 60%,#DDF3E7 100%)}
#bigmap .gl-still{position:absolute;left:50%;top:50%;width:362px;height:362px;margin:-181px 0 0 -181px;border-radius:50%;z-index:3;pointer-events:none;
  filter:drop-shadow(3px 0 0 #fff) drop-shadow(-3px 0 0 #fff) drop-shadow(0 3px 0 #fff) drop-shadow(0 -3px 0 #fff) drop-shadow(0 0 1px rgba(0,120,70,.55)) drop-shadow(0 8px 22px rgba(0,90,50,.25));transition:opacity .45s ease}
#bigmap.gl-ready .gl-still{opacity:0}
#bigmap.gl-loading::after{display:none}
#bigmap.gl-loading .maplibregl-canvas{transform:none}

/* v187: like on comments — small heart on the right of each comment */
.cmt-like{display:flex;flex-direction:column;align-items:center;gap:1px;min-width:30px;padding:4px 0 0;background:none;border:0;color:var(--dim);font-size:11px;font-weight:600;cursor:pointer;-webkit-tap-highlight-color:transparent}
.cmt-like svg{fill:none;stroke:currentColor;stroke-width:1.9;stroke-linejoin:round}
.cmt-like.on{color:#00C46A}.cmt-like.on svg{fill:#00C46A;stroke:#00C46A}
.cmt-like.pop svg{animation:clPop .32s ease}
@keyframes clPop{0%{transform:scale(1)}45%{transform:scale(1.3)}100%{transform:scale(1)}}

/* v188: views count (not a button) */
.igc-views,.rail-views{cursor:default;pointer-events:none}

/* v190: pills stay on one line even with big counts; small phones get tighter pills */
.igc-actions .igc-btn{flex-shrink:0;white-space:nowrap}
.igc-actions .igc-btn span{font-variant-numeric:tabular-nums}
@media (max-width:380px){.igc-actions{gap:6px!important}.igc-actions .igc-btn:not(.save-btn){padding:6px 10px!important;gap:5px}}

/* v192: "N likes" line under the pills removed — the heart pill already shows the count */
.igc-body .igc-likes{display:none!important}

/* v194: no username before the caption (the poster is already in the header) and no "View N comments" line (the comment pill shows the count and opens them) */
.igc-body .igc-cap > a:first-child{display:none!important}
.igc-body .igc-viewc{display:none!important}

/* v197: DM reactions, edit, delete */
.dm-msg{position:relative;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
.dm-msg .dm-b{-webkit-user-select:text;user-select:text}
.dm-msg.has-rx{margin-bottom:12px}
.dm-reacts{display:inline-flex;gap:2px;margin-top:-10px;padding:2px 6px;background:var(--bg,#fff);border:1px solid var(--line,#e6e8eb);border-radius:999px;font-size:14px;line-height:1.3;box-shadow:0 1px 3px rgba(0,0,0,.08);z-index:1;cursor:pointer}
.dm-msg.me .dm-reacts{align-self:flex-end;margin-right:8px}.dm-msg.them .dm-reacts{align-self:flex-start;margin-left:8px}
.dm-reacts span{display:inline-flex;align-items:center;gap:2px}.dm-reacts small{font-size:11px;color:var(--muted);font-weight:600}
.dm-reacts span.mine{filter:none}
.dm-msg.dm-del .dm-b{background:transparent!important;color:var(--muted)!important;border:1px dashed var(--line,#d9dde1);font-style:italic}
.dm-menu{padding:6px 14px 18px;display:flex;flex-direction:column;gap:6px}
.dm-quick{display:flex;justify-content:space-between;align-items:center;background:var(--bg3,#f3f5f7);border-radius:999px;padding:6px 8px;margin-bottom:8px}
.dm-quick button{font-size:28px;width:46px;height:46px;border-radius:50%;border:0;background:none;display:flex;align-items:center;justify-content:center;transition:transform .12s}
.dm-quick button:active{transform:scale(1.25)}
.dm-quick button.on{background:rgba(0,196,106,.18)}
.dm-quick [data-plus]{font-size:22px;color:var(--text2,#555);background:var(--bg,#fff)}
.dm-mi{display:block;width:100%;text-align:left;padding:14px 8px;font:inherit;font-size:16px;font-weight:600;background:none;border:0;border-top:1px solid var(--line,#eee);color:var(--text)}
.dm-mi.red{color:#e5484d}
.emo-in{width:100%;box-sizing:border-box;padding:12px 14px;border-radius:12px;border:1px solid var(--line,#e3e6ea);background:var(--bg3,#f6f7f8);font:inherit;font-size:16px;margin-bottom:10px;color:var(--text)}
.emo-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:4px;max-height:52vh;overflow-y:auto}
.emo-grid button{font-size:26px;height:44px;border:0;background:none;border-radius:10px}
.emo-grid button:active{background:var(--bg3,#eee)}
.dm-editbar{display:flex;align-items:center;gap:8px;padding:8px 14px;font-size:13px;color:#0a8a4c;background:#EEF9F3;position:sticky;bottom:calc(var(--compose-h,64px));z-index:3}
.dm-editbar span{flex:1;font-weight:600}.dm-editbar button{background:none;border:0;color:var(--text2,#555);font:inherit;font-weight:600}
html.dark .dm-editbar{background:rgba(0,196,106,.16);color:#5fe3a1}

/* v198: comment box wraps long text and grows */ .cmt-form{align-items:flex-end} .cmt-form textarea{flex:1;min-width:0;background:var(--bg3);border:1px solid var(--line);border-radius:22px;min-height:42px;max-height:120px;padding:10px 16px;outline:none;font-size:16px;line-height:1.35;resize:none;overflow-y:auto;white-space:pre-wrap;word-break:break-word;overflow-wrap:anywhere;display:block} .cmt-form button{padding-bottom:10px} .cmt-form .av{flex:none;margin-bottom:3px}

/* v199: no tab bar inside a chat (DM and hub); the message box sits at the bottom */ body:has(.dm-compose) .tabbar,body:has(.dm-reqbar) .tabbar{display:none!important} body:has(.dm-compose) .dm-compose,body:has(.dm-reqbar) .dm-reqbar{bottom:0!important;padding-bottom:calc(8px + var(--safe-bottom))!important}

/* v204: the map's pins come in with the live globe (the still picture under it is not the same size or the same moment) */
#bigmap.gl-loading .gl-mk{visibility:hidden}

/* v208: email bits stay hidden until email is switched on (a row's display:flex must not undo [hidden]) */
[data-eon][hidden],[data-ecode][hidden],[data-fstep2][hidden],.list-row[hidden]{display:none!important}
