:root{color-scheme:dark;--bg:#101114;--panel:#1c1d22;--stroke:#35363d;--text:#f4f4f5;--muted:#a9abb5;--red:#ff5275}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text);font:15px/1.45 system-ui,-apple-system,Segoe UI,sans-serif}
button,input,textarea,select{font:inherit}
button{cursor:pointer}
button:disabled{opacity:.45;cursor:not-allowed}
a{color:inherit;text-decoration:none}
.topbar{height:54px;position:sticky;top:0;z-index:20;background:#131419;display:flex;align-items:center;padding:0 14px;gap:14px}
.brand{font-size:20px;font-weight:800;white-space:nowrap;letter-spacing:-.6px}
.brand:first-letter{color:var(--red)}
#search-form{display:flex;flex:1;max-width:470px;background:#26272d;height:35px;border-radius:7px;overflow:hidden}
#search-form input{background:none;border:0;flex:1;width:0;color:white;padding:0 13px;outline:none}
#search-form button{border:0;background:transparent;color:white;padding:0 13px;font-size:24px}
nav{display:flex;gap:2px;margin-left:auto}
nav button{background:transparent;color:#ddd;border:0;font-size:23px;width:39px;height:41px;border-radius:5px}
nav button:hover,button:hover{filter:brightness(1.2)}
.tagstrip{display:flex;gap:7px;overflow:auto;white-space:nowrap;padding:8px 10px;scrollbar-width:none;min-height:36px}
.tagstrip:empty{display:none}
.tagstrip button{flex-shrink:0;padding:4px 10px;background:#24252c;border:0;border-radius:30px;color:#ddd;font-size:12px}
.masonry{columns:5;column-gap:0}
.tile{position:relative;display:block;break-inside:avoid;overflow:hidden;background:#25262b;margin:0;padding:0;line-height:0}
.tile>img{display:block;width:100%;height:auto}
.tile .shade-bottom{position:absolute;inset:35% 0 0;pointer-events:none;background:linear-gradient(transparent,rgba(0,0,0,.85));opacity:0;transition:opacity .16s}
.tile:hover .shade-bottom,.tile:focus-within .shade-bottom,.tile.show-controls .shade-bottom{opacity:1}
.tile-controls{position:absolute;inset:auto 0 0;z-index:2;padding:30px 10px 9px;line-height:1.3;opacity:0;transition:opacity .16s;pointer-events:none}
.tile:hover .tile-controls,.tile:focus-within .tile-controls,.tile.show-controls .tile-controls{opacity:1;pointer-events:auto}
.tile-top{position:absolute;top:9px;right:9px;z-index:2;opacity:0;pointer-events:none}
.tile:hover .tile-top,.tile:focus-within .tile-top,.tile.show-controls .tile-top{opacity:1;pointer-events:auto}
.tile-actions{display:flex;align-items:center;gap:3px;margin-top:6px}
.tile button,.play{color:white;border:0;background:rgba(0,0,0,.4);backdrop-filter:blur(6px);padding:5px 8px;border-radius:7px;font-weight:600}
.tile button.active{color:var(--red)}
.tile .tags{display:flex;gap:5px;flex-wrap:wrap}
.tile .tags button{font-size:12px;padding:2px 4px;background:transparent;text-shadow:0 1px 5px black}
.author{background:transparent!important;padding:3px 0!important;font-size:12px}
.play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:35px;z-index:2;padding:4px 17px;background:rgba(0,0,0,.55)}
.tile .play{opacity:1;pointer-events:auto}
.feed-end{text-align:center;padding:18px;color:#bbb}
.feed-end button,.primary{padding:10px 16px;border:0;background:#ef4166;color:white;border-radius:6px;font-weight:650}
.modal[hidden]{display:none}
.modal{position:fixed;inset:0;z-index:40;display:flex;justify-content:center;align-items:center;padding:12px}
.shade{position:absolute;inset:0;background:rgba(0,0,0,.83)}
.dialog{position:relative;width:min(100%,680px);max-height:94dvh;overflow:auto;background:#1b1c21;box-shadow:0 20px 90px #000a;border-radius:9px}
.modal-head{height:55px;display:flex;align-items:center;justify-content:space-between;padding:0 18px;position:sticky;top:0;background:#1b1c21;z-index:2}
.modal-head h2{margin:0;font-size:19px}
.close{border:0;background:none;color:white;font-size:29px}
#modal-body{padding:16px}
.stack{display:grid;gap:12px}
.stack label{display:grid;gap:5px;color:#d3d3d6}
.stack input,.stack textarea,.stack select,.message-input input{width:100%;background:#2a2b31;border:1px solid #42434a;color:#fff;padding:10px;border-radius:5px}
.stack textarea{resize:vertical;min-height:75px}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.muted{color:var(--muted)}
.link-btn,.secondary{background:#33343b;color:white;border:0;border-radius:5px;padding:9px 12px}
.profile-avatar{width:90px;height:90px;object-fit:cover;border-radius:100%}
.avatar-fallback{width:90px;height:90px;background:#34343b;border-radius:50%;display:grid;place-items:center;font-size:42px}
.profile-head{display:flex;gap:14px;align-items:center}
.video{width:100%;aspect-ratio:16/9;border:0;background:#000}
.video-label{font-size:12px;color:#aaa}
.message-list{height:320px;overflow:auto;background:#131419;padding:12px;display:flex;flex-direction:column;gap:8px}
.bubble{background:#32333a;max-width:85%;padding:8px 12px;border-radius:9px;align-self:flex-start;overflow-wrap:anywhere}
.bubble.mine{align-self:flex-end;background:#553044}
.message-input{display:flex;gap:7px;margin-top:9px}
.message-input button{flex-shrink:0}
.member-line{width:100%;text-align:left;padding:11px;background:#2b2c32;color:white;border:0;border-bottom:1px solid #444}
.agenda-line{display:flex;justify-content:space-between;gap:6px;padding:9px 0;border-bottom:1px solid #35363c}
.camera-view{width:100%;max-height:380px;object-fit:contain;background:#070707}
#toast{position:fixed;z-index:100;bottom:25px;left:50%;transform:translateX(-50%);background:#34343c;padding:9px 15px;border-radius:7px;pointer-events:none;opacity:0;transition:opacity .2s}
#toast.show{opacity:1}
.empty{text-align:center;color:#a4a4b0;padding:70px 20px}
.hidden{display:none!important}
@media (max-width:1200px){
  .masonry{columns:4}
}
@media (max-width:800px){
  .masonry{columns:3}
  .brand span{display:none}
  .topbar{gap:7px;padding:0 7px}
  nav button{width:32px;font-size:19px}
}
@media (max-width:550px){
  .masonry{columns:2}
  .topbar{height:95px;flex-wrap:wrap;align-content:center}
  .brand{font-size:18px}
  #search-form{max-width:unset;flex:1}
  nav{order:3;width:100%;justify-content:space-between}
  .modal{padding:0}
  .dialog{border-radius:0;width:100%;height:100dvh;max-height:none}
  .tile-controls,.tile-top,.tile .shade-bottom{opacity:1;pointer-events:auto}
  .tile-actions{gap:0}
  .tile button{padding:4px 5px}
  .tile .tags button{font-size:11px}
}
.tiktok-video{display:block;width:100%;max-width:420px;height:min(74dvh,740px);min-height:360px;aspect-ratio:9/16;margin:0 auto;border:0;background:#000}
.tile .play{z-index:6;min-width:64px;min-height:64px;pointer-events:auto;touch-action:manipulation}
.tile-controls{pointer-events:none}
.tile-controls button{pointer-events:auto}
@media (max-width:550px){
  .tiktok-video{max-width:100%;height:min(76dvh,740px)}
}
.main-nav{align-items:center;gap:2px}
.main-nav button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;width:auto;min-width:56px;height:49px;padding:4px 6px;font-size:12px;line-height:1.1;color:#eee}
.main-nav .nav-icon{display:block;flex:none}
.main-nav .nav-label{font-size:10px;font-weight:500;white-space:nowrap}
.topbar{min-height:60px;height:auto}
@media (max-width: 1100px){
  .main-nav{flex-wrap:nowrap}
  .main-nav button{min-width:42px;padding:4px 3px}
  .main-nav .nav-label{font-size:9px}
}
@media (max-width: 800px){
  .topbar{padding:6px 8px;flex-wrap:wrap}
  .main-nav{order:3;width:100%;margin:0;justify-content:space-between}
  .main-nav button{width:12.5%;min-width:0;height:48px}
  .main-nav .nav-label{font-size:9px}
  .brand span{display:none}
}
@media (max-width: 550px){
  .topbar{height:auto;min-height:98px;align-content:center}
  .main-nav{order:3;width:100%}
  .main-nav button{width:12.5%;min-width:0;height:49px;padding:3px 0}
  .main-nav .nav-icon{width:20px;height:20px}
  .main-nav .nav-label{font-size:8.5px;letter-spacing:-.2px}
}
.profile-job{font-size:14px;font-weight:600;color:var(--muted);margin-top:3px}
.profile-hobbies{display:flex;flex-wrap:wrap;gap:4px 10px;margin-bottom:6px}
.profile-hobbies button{padding:2px 0;background:none;border:0;color:#d5d5e3;font-size:13px;font-style:italic;cursor:pointer}
.profile-hobbies button:hover,.profile-hobbies button:focus-visible{color:#fff;text-decoration:underline}
.auth-gate{min-height:calc(100dvh - 120px);display:grid;place-items:center;padding:24px 16px 48px;background:#101114}
.auth-panel{width:min(100%,420px);margin:auto;padding:24px 22px;background:#1b1c21;color:#f4f4f5;border-radius:10px;box-shadow:0 18px 55px #0005}
.auth-panel h1{margin:0 0 8px;font-size:23px}
.auth-panel p{color:#b9bbc5;margin:0 0 20px}
.auth-panel .primary{width:100%;min-height:44px}
.auth-panel .secondary{width:100%;margin-top:10px}
.auth-panel input{min-width:0}
.auth-error{min-height:1.4em;color:#ff829a;margin:8px 0!important}
@media (max-width:550px){
  .auth-gate{padding:14px 12px 32px}
  .auth-panel{padding:20px 16px}
  .brand-hero{padding:16px 12px}
}
.brand-hero{background:#11131a;text-align:center;padding:18px 12px 14px}
.brand-hero-link{display:inline-block}
.brand-wordmark{display:inline-flex;font-weight:800;font-size:24px;letter-spacing:-.6px;line-height:1}
.brand-number,.brand-text{color:#fff}
.brand-amp{color:#ff5275}
.brand-tagline{margin:12px 0 0;font-size:14px}
.brand-subtitle{margin:10px 0 0;color:#b9bbc5;font-size:13px}
[hidden]{display:none!important}
.profile-avatar{width:160px;height:160px;max-width:100%;aspect-ratio:1;object-fit:cover;object-position:center;border-radius:50%;flex-shrink:0}
@media (max-width: 550px){
  .profile-avatar{width:140px;height:140px}
}

/* Profile: rectangular photo left, all details right, buttons below */
.profile-layout{display:grid;grid-template-columns:250px minmax(0,1fr);gap:16px;align-items:start}
.profile-image-column{min-width:0}
.profile-info-column{min-width:0;overflow-wrap:anywhere}
.profile-info-column h2{margin:0 0 6px;font-size:23px}
.profile-bio{margin:18px 0 16px;line-height:1.5}
.profile-info-column .profile-job{margin-top:18px}
.profile-info-column .profile-hobbies{margin-top:14px}
.profile-button-row{grid-column:1/-1;margin-top:0}
.profile-layout .profile-avatar,.profile-layout .avatar-fallback{display:block;width:250px;height:350px;max-width:100%;aspect-ratio:auto;object-fit:cover;object-position:center;border-radius:10%;flex-shrink:0}
@media(max-width:550px){.profile-layout{grid-template-columns:minmax(110px,40%) minmax(0,1fr);gap:12px}.profile-layout .profile-avatar,.profile-layout .avatar-fallback{width:100%;height:auto;aspect-ratio:5/7}.profile-info-column h2{font-size:19px}.profile-bio{margin:12px 0}.profile-info-column .profile-job{margin-top:12px}.profile-button-row{flex-wrap:wrap}}

/* Profile refinements: keep photo proportions, place controls below hobbies */
.profile-layout .profile-avatar{object-fit:fill;border-radius:10%}
.profile-info-column .profile-button-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}
.profile-layout .profile-button-row{grid-column:auto}
@media(max-width:550px){.profile-info-column .profile-button-row{margin-top:14px;gap:7px}.profile-info-column .profile-button-row button{font-size:12px;padding:8px 10px}}

/* Footer and password recovery */
html,body{min-height:100%;min-height:100dvh}
body{display:flex;flex-direction:column}
main{flex:1 0 auto;min-height:0}
.site-footer{flex-shrink:0;width:100%;text-align:center;padding:15px 10px;background:#111218;color:#a9abb5;font-size:12px;line-height:1.5}
.auth-text-link{display:block;margin:2px auto 0;padding:9px 12px;background:none;border:0;color:#f8bfd0;text-decoration:underline;text-underline-offset:3px}
.auth-text-link:hover,.auth-text-link:focus-visible{color:#fff}
#gate-recover[hidden],#gate-reset[hidden]{display:none!important}
@media(max-width:550px){.site-footer{padding:12px 8px;font-size:11px}}
