.obhub-wrap{max-width:1100px;margin:2.5rem auto}.obhub-intro{margin-bottom:1.5rem}.obhub-kicker{display:inline-block;font-size:.78rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;opacity:.72}.obhub-card{border:1px solid rgba(127,127,127,.25);border-radius:18px;padding:1.25rem;margin:1rem 0;background:rgba(127,127,127,.04)}.obhub-card h3{margin:.25rem 0 .5rem}.obhub-card-head{display:flex;gap:1rem;align-items:flex-start;justify-content:space-between}.obhub-status{display:inline-flex;align-items:center;border:1px solid currentColor;border-radius:999px;padding:.25rem .65rem;font-size:.75rem;font-weight:800;white-space:nowrap}.obhub-meta{display:flex;gap:1rem;flex-wrap:wrap;font-size:.85rem;opacity:.72;margin:.5rem 0 1rem}.obhub-section{margin:1rem 0}.obhub-section h4{margin:0 0 .25rem;font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;opacity:.68}.obhub-section p{margin:0}.obhub-link{font-weight:800;text-decoration:none}.obhub-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem}.obhub-grid .obhub-card{margin:0}.obhub-supporters{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.75rem}.obhub-supporter{border:1px solid rgba(127,127,127,.22);border-radius:14px;padding:1rem}.obhub-supporter strong,.obhub-supporter span,.obhub-supporter small{display:block}.obhub-supporter span{opacity:.7;font-size:.82rem}.obhub-supporter small{margin-top:.35rem}.obhub-fund{border:1px solid rgba(127,127,127,.25);border-radius:22px;padding:2rem}.obhub-button{display:inline-block;border-radius:999px;padding:.7rem 1rem;background:#111;color:#fff!important;text-decoration:none;font-weight:800;margin:.6rem 0 1rem}.obhub-fund small{display:block;opacity:.66}.obhub-member-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.75rem}.obhub-member-grid>div{border:1px solid rgba(127,127,127,.22);border-radius:14px;padding:1rem}.obhub-member-grid small,.obhub-member-grid strong{display:block}.obhub-notice{border:1px solid rgba(127,127,127,.3);border-radius:14px;padding:1rem}
@media(max-width:600px){.obhub-card-head{display:block}.obhub-status{margin-top:.5rem}}


.obhub-auth-links{display:flex;justify-content:space-between;gap:12px;margin-top:12px;flex-wrap:wrap}
.obhub-profile-shell{display:grid;gap:20px}
.obhub-profile-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:22px;border:1px solid rgba(127,127,127,.22);border-radius:20px}
.obhub-profile-head h2{margin:.25rem 0}.obhub-profile-head p{margin:0}
.obhub-member-state{display:inline-flex;align-items:center;gap:8px;border:1px solid rgba(127,127,127,.24);border-radius:999px;padding:.45rem .7rem;font-size:.82rem}
.obhub-member-state span{width:8px;height:8px;border-radius:50%;background:#a5a5a5}
.obhub-member-state.is-member span{background:#7dffc2;box-shadow:0 0 14px rgba(125,255,194,.55)}
.obhub-member-state.is-account span{background:#ffd66f;box-shadow:0 0 14px rgba(255,214,111,.38)}
.obhub-profile-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.obhub-profile-card{padding:16px;border:1px solid rgba(127,127,127,.22);border-radius:18px}
.obhub-profile-card small,.obhub-profile-card strong{display:block}.obhub-profile-card small{opacity:.7;margin-bottom:.35rem}
.obhub-profile-editor{padding:22px;border:1px solid rgba(127,127,127,.22);border-radius:20px}
.obhub-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.obhub-form-grid .obhub-full{grid-column:1/-1}.obhub-form-grid p{margin:0}.obhub-form-grid small{display:block;opacity:.65;margin-top:.35rem}
.obhub-member-content-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.obhub-member-content-grid article{padding:18px;border:1px solid rgba(127,127,127,.22);border-radius:18px}.obhub-member-content-grid article span{display:block;font-size:.76rem;letter-spacing:.12em;opacity:.55;margin-bottom:.6rem}
.obhub-success{border-color:rgba(125,255,194,.4)!important}
@media(max-width:800px){.obhub-profile-grid,.obhub-member-content-grid,.obhub-form-grid{grid-template-columns:1fr}.obhub-profile-head{flex-direction:column}}


/* Member profile images — v0.3.0 */
.obhub-profile-identity{display:flex;align-items:center;gap:16px}
.obhub-profile-avatar,.obhub-image-preview{flex:0 0 auto;overflow:hidden;border:1px solid rgba(127,127,127,.28);background:rgba(255,255,255,.035)}
.obhub-profile-avatar{width:82px;height:82px;border-radius:20px}
.obhub-profile-avatar img,.obhub-image-preview img{width:100%;height:100%;object-fit:cover;display:block}
.obhub-profile-avatar-empty{display:grid;place-items:center;font-weight:800;letter-spacing:.06em;opacity:.7}
.obhub-profile-image-field{padding:18px;border:1px solid rgba(127,127,127,.22);border-radius:18px;background:rgba(255,255,255,.018)}
.obhub-profile-image-field-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:14px}
.obhub-profile-image-field-head small{display:block;margin-top:.2rem;opacity:.65}
.obhub-image-review-state{flex:0 0 auto;border:1px solid rgba(127,127,127,.28);border-radius:999px;padding:.36rem .58rem;font-size:.72rem}
.obhub-image-review-state.is-pending{color:#ffd66f;border-color:rgba(255,214,111,.34)}
.obhub-image-review-state.is-approved{color:#7dffc2;border-color:rgba(125,255,194,.34)}
.obhub-image-upload-row{display:grid;grid-template-columns:112px minmax(0,1fr);gap:16px;align-items:center}
.obhub-image-preview{width:112px;height:112px;display:grid;place-items:center;border-radius:18px}
.obhub-image-preview span{font-size:.62rem;letter-spacing:.12em;opacity:.55}
.obhub-image-upload-copy input[type="file"]{width:100%;margin:.45rem 0 .4rem}
.obhub-image-upload-copy small{display:block;opacity:.65}
.obhub-remove-image{display:flex;align-items:center;gap:8px;margin-top:.8rem;font-size:.82rem}
.obhub-remove-image input{width:auto}
@media(max-width:650px){
  .obhub-profile-identity{align-items:flex-start}
  .obhub-image-upload-row{grid-template-columns:1fr}
  .obhub-profile-image-field-head{flex-direction:column}
}


/* YouTube members on Wall of Enablers — v0.3.1 */
.obhub-supporter.is-youtube-member{
  position:relative;
}

.obhub-youtube-member-badge{
  display:inline-flex;
  width:max-content;
  margin:.35rem 0 .15rem;
  padding:.22rem .48rem;
  border-radius:999px;
  border:1px solid rgba(255,80,80,.28);
  background:rgba(255,45,45,.065);
  color:#ff8d8d;
  font-style:normal;
  font-size:.62rem;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
}


/* Google + YouTube member sign-in — v0.4.0 */
.obhub-google-youtube-button{
  display:flex;
  align-items:center;
  gap:12px;
  width:min(100%,430px);
  margin:14px 0;
  padding:12px 15px;
  border:1px solid rgba(127,127,127,.28);
  border-radius:14px;
  background:rgba(255,255,255,.96);
  color:#10131a !important;
  text-decoration:none !important;
  box-shadow:0 10px 30px rgba(0,0,0,.12);
  transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease;
}

.obhub-google-youtube-button:hover{
  transform:translateY(-1px);
  border-color:rgba(80,140,255,.52);
  box-shadow:0 13px 34px rgba(0,0,0,.18);
}

.obhub-google-mark{
  display:grid;
  place-items:center;
  flex:0 0 38px;
  width:38px;
  height:38px;
  border-radius:50%;
  border:1px solid rgba(0,0,0,.09);
  font-family:Arial,sans-serif;
  font-size:1.15rem;
  font-weight:800;
  background:#fff;
}

.obhub-google-youtube-button > span:last-child{
  display:grid;
  gap:2px;
}

.obhub-google-youtube-button strong{
  font-size:.9rem;
}

.obhub-google-youtube-button small{
  color:#5f6672;
  font-size:.72rem;
}

.obhub-auth-divider{
  display:flex;
  align-items:center;
  gap:12px;
  width:min(100%,430px);
  margin:15px 0;
  color:rgba(127,127,127,.72);
  font-size:.68rem;
  text-transform:uppercase;
  letter-spacing:.08em;
}

.obhub-auth-divider::before,
.obhub-auth-divider::after{
  content:"";
  flex:1 1 auto;
  height:1px;
  background:rgba(127,127,127,.2);
}

.obhub-auth-privacy{
  max-width:520px;
  margin-top:14px;
  font-size:.72rem;
  opacity:.62;
}

.obhub-google-setup-note{
  max-width:520px;
  margin:12px 0;
  padding:10px 12px;
  border:1px dashed rgba(127,127,127,.3);
  border-radius:12px;
  font-size:.8rem;
  opacity:.8;
}

.obhub-youtube-linked,
.obhub-youtube-connect-card{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin:14px 0 18px;
  padding:14px 16px;
  border:1px solid rgba(127,127,127,.22);
  border-radius:16px;
  background:rgba(255,255,255,.025);
}

.obhub-youtube-linked{
  width:max-content;
  max-width:100%;
  justify-content:flex-start;
}

.obhub-youtube-linked > span{
  width:9px;
  height:9px;
  border-radius:50%;
  background:#75f0b1;
  box-shadow:0 0 14px rgba(117,240,177,.46);
}

.obhub-youtube-linked small,
.obhub-youtube-connect-card small{
  display:block;
  margin-top:.2rem;
  opacity:.62;
  overflow-wrap:anywhere;
}

.obhub-youtube-connect-card > div{
  min-width:0;
}

.obhub-youtube-connect-card .obhub-google-youtube-button{
  width:auto;
  min-width:260px;
  margin:0;
}

.obhub-youtube-verified-pill{
  flex:0 0 auto;
  padding:.34rem .58rem;
  border:1px solid rgba(117,240,177,.34);
  border-radius:999px;
  color:#75f0b1;
  font-size:.68rem;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}

@media(max-width:700px){
  .obhub-youtube-connect-card{
    align-items:flex-start;
    flex-direction:column;
  }

  .obhub-youtube-connect-card .obhub-google-youtube-button{
    width:100%;
    min-width:0;
  }
}


/* Wall of Enablers — YouTube membership CTA v0.4.1 */
.obhub-wall-join{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  margin-top:28px;
  padding:22px 24px;
  border:1px solid rgba(127,127,127,.22);
  border-radius:20px;
  background:
    linear-gradient(135deg,rgba(255,45,45,.055),rgba(255,255,255,.018));
  overflow:hidden;
  position:relative;
}

.obhub-wall-join::after{
  content:"";
  position:absolute;
  width:180px;
  height:180px;
  right:-70px;
  top:-80px;
  border-radius:50%;
  background:rgba(255,45,45,.06);
  filter:blur(12px);
  pointer-events:none;
}

.obhub-wall-join-copy{
  min-width:0;
  position:relative;
  z-index:1;
}

.obhub-wall-join h3{
  margin:.2rem 0 .35rem;
}

.obhub-wall-join p{
  max-width:660px;
  margin:0;
  opacity:.74;
}

.obhub-wall-join-button{
  position:relative;
  z-index:1;
  flex:0 0 auto;
  display:flex;
  align-items:center;
  gap:12px;
  min-width:215px;
  padding:12px 15px;
  border:1px solid rgba(255,88,88,.35);
  border-radius:14px;
  background:rgba(255,32,32,.10);
  color:inherit !important;
  text-decoration:none !important;
  box-shadow:0 10px 30px rgba(0,0,0,.12);
  transition:transform .16s ease,border-color .16s ease,background .16s ease;
}

.obhub-wall-join-button:hover{
  transform:translateY(-1px);
  border-color:rgba(255,100,100,.68);
  background:rgba(255,32,32,.16);
}

.obhub-youtube-play{
  display:grid;
  place-items:center;
  width:38px;
  height:30px;
  border-radius:9px;
  background:#ff2f2f;
  color:#fff;
  font-size:.78rem;
  line-height:1;
  box-shadow:0 0 18px rgba(255,47,47,.22);
}

.obhub-wall-join-button > span:last-child{
  display:grid;
  gap:1px;
}

.obhub-wall-join-button strong{
  font-size:.88rem;
}

.obhub-wall-join-button small{
  font-size:.68rem;
  opacity:.66;
}

@media(max-width:720px){
  .obhub-wall-join{
    align-items:flex-start;
    flex-direction:column;
  }

  .obhub-wall-join-button{
    width:100%;
  }
}


/* Fund the Build configured support route — v0.4.2 */
.obhub-fund .obhub-fund-button{
  display:inline-flex;
  margin:14px 0 10px;
}

.obhub-fund .obhub-fund-route-note{
  display:block;
  max-width:720px;
  margin:0 0 18px;
  opacity:.62;
  font-size:.72rem;
}


/* Branded front-end login — v0.4.3 */
.obhub-site-login-form{
  display:grid;
  gap:14px;
  width:min(100%,430px);
}

.obhub-site-login-form p{
  margin:0;
}

.obhub-site-login-form label{
  display:block;
  margin-bottom:.42rem;
}

.obhub-site-login-form input[type="text"],
.obhub-site-login-form input[type="password"]{
  width:100%;
}

.obhub-login-remember{
  display:flex !important;
  align-items:center;
  gap:9px;
  margin:0 !important;
  font-size:.82rem;
}

.obhub-login-remember input{
  width:auto !important;
}

.obhub-site-login-form .obhub-button{
  width:max-content;
  margin-top:2px;
}


/* Dedicated password recovery — v0.4.4 */
.obhub-password-panel{
  display:grid;
  gap:16px;
}

.obhub-password-panel .obhub-button{
  width:max-content;
}


/* OAuth legal disclosure — v0.4.6 */
.obhub-auth-legal{
  max-width:540px;
  margin:12px 0 0;
  font-size:.7rem;
  line-height:1.55;
  opacity:.68;
}

.obhub-auth-legal a{
  text-decoration:underline;
  text-underline-offset:2px;
}


/* STL + 3MF member vault — Hub v0.4.9 */
.obhub-download-vault{margin-top:22px;padding:22px;border:1px solid rgba(127,127,127,.24);border-radius:20px;background:rgba(127,127,127,.025)}
.obhub-download-vault-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:16px}
.obhub-download-vault-head h3{margin:.2rem 0 .35rem}
.obhub-download-vault-head p{margin:0;opacity:.72}
.obhub-download-count,.obhub-download-type{display:inline-flex;border:1px solid rgba(127,127,127,.25);border-radius:999px;padding:.35rem .6rem;font-size:.7rem;font-weight:800}
.obhub-download-list{display:grid;gap:12px}
.obhub-download-item{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 18px;border:1px solid rgba(127,127,127,.2);border-radius:16px}
.obhub-download-item h4{margin:.25rem 0}
.obhub-download-item p{margin:.2rem 0 .4rem;opacity:.76}
.obhub-download-item small{opacity:.62}
.obhub-download-button{flex:0 0 auto}
@media(max-width:680px){.obhub-download-vault-head,.obhub-download-item{display:block}.obhub-download-button{display:inline-flex;margin-top:12px}}


/* Member Drops + Monthly Packs — Hub v0.5.0 */
.obhub-member-drops{
  margin-top:22px;
  padding:22px;
  border:1px solid rgba(127,127,127,.24);
  border-radius:20px;
  background:
    radial-gradient(circle at 0 0,rgba(255,132,42,.055),transparent 36%),
    rgba(127,127,127,.02);
}
.obhub-drop-list{display:grid;gap:12px}
.obhub-drop-item{
  padding:18px;
  border:1px solid rgba(127,127,127,.21);
  border-radius:17px;
  background:rgba(127,127,127,.022);
}
.obhub-drop-item h4{margin:.55rem 0 .35rem;font-size:1.05rem}
.obhub-drop-item p{margin:.25rem 0 .8rem;opacity:.76;line-height:1.55}
.obhub-drop-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.obhub-drop-kind{
  display:inline-flex;
  align-items:center;
  min-height:24px;
  padding:.25rem .55rem;
  border:1px solid rgba(255,132,42,.32);
  border-radius:999px;
  font-size:.68rem;
  font-weight:900;
  letter-spacing:.075em;
  text-transform:uppercase;
}
.obhub-drop-foot{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
}
.obhub-drop-foot small{opacity:.62}
@media(max-width:680px){
  .obhub-drop-foot{display:block}
  .obhub-drop-foot .obhub-download-button{margin-top:12px}
}
