*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }

:root {
  --blue:#2563EB; --blue-dark:#1D4ED8; --blue-light:#3B82F6;
  --blue-soft:#EFF6FF; --blue-mid:#DBEAFE; --blue-border:#BFDBFE;
  --white:#FFFFFF; --off-white:#F8FAFF;
  --text:#0F172A; --text-mid:#334155; --text-light:#64748B;
  --amber:#F59E0B; --green:#16A34A; --red:#DC2626; --purple:#8B5CF6;
}

html { scroll-behavior:smooth; }
body { font-family:'Inter',sans-serif; background:var(--white); color:var(--text); overflow-x:hidden; }

/* Navbar + footer styles now live in public-shell.css (shared across all public pages). */

/* ══ BUTTONS ══ */
.btn-primary { background:linear-gradient(135deg,var(--blue),var(--blue-dark)); color:#fff; border:none; cursor:pointer; padding:0.9rem 2rem; border-radius:10px; font-weight:700; font-size:0.95rem; font-family:'Inter',sans-serif; text-decoration:none; display:inline-flex; align-items:center; gap:8px; box-shadow:0 6px 22px rgba(37,99,235,0.32); transition:transform 0.2s, box-shadow 0.2s; }
.btn-primary:hover { transform:translateY(-2px); box-shadow:0 10px 32px rgba(37,99,235,0.42); }
.btn-secondary { background:#fff; color:var(--blue); border:2px solid var(--blue-border); padding:0.9rem 2rem; border-radius:10px; font-weight:700; font-size:0.95rem; font-family:'Inter',sans-serif; text-decoration:none; display:inline-flex; align-items:center; gap:8px; transition:border-color 0.2s, background 0.2s, box-shadow 0.2s; }
.btn-secondary:hover { border-color:var(--blue); background:var(--blue-soft); box-shadow:0 4px 14px rgba(37,99,235,0.12); }

/* ══ PAGE HERO ══ */
.page-hero { min-height:56vh; display:flex; align-items:center; justify-content:center; position:relative; overflow:hidden; padding:9rem 6% 5rem; background:linear-gradient(160deg,#F0F7FF 0%,#FFFFFF 55%,#EEF4FF 100%); text-align:center; }
.page-hero::before { content:''; position:absolute; inset:0; z-index:0; background-image: linear-gradient(rgba(37,99,235,0.055) 1px,transparent 1px), linear-gradient(90deg,rgba(37,99,235,0.055) 1px,transparent 1px); background-size:48px 48px; }
.page-hero::after { content:''; position:absolute; inset:0; z-index:0; background: radial-gradient(ellipse 70% 60% at 50% 30%,rgba(37,99,235,0.09) 0%,transparent 70%), radial-gradient(ellipse 40% 35% at 80% 80%,rgba(96,165,250,0.08) 0%,transparent 60%); }
.particles { position:absolute; inset:0; z-index:0; pointer-events:none; overflow:hidden; }
.particle { position:absolute; border-radius:50%; background:rgba(37,99,235,0.15); animation:particleRise linear infinite; }
@keyframes particleRise { 0% { transform:translateY(100vh) scale(0); opacity:0; } 10% { opacity:1; } 90% { opacity:0.5; } 100% { transform:translateY(-80px) scale(1.1); opacity:0; } }
.hero-inner { position:relative; z-index:1; max-width:760px; margin:0 auto; }
.eyebrow { display:inline-flex; align-items:center; gap:8px; background:var(--blue-soft); border:1.5px solid var(--blue-border); padding:0.4rem 1rem; border-radius:100px; font-size:0.78rem; font-weight:700; color:var(--blue); margin-bottom:1.5rem; letter-spacing:0.02em; animation:fadeDown 0.6s ease both; }
.eyebrow::before { content:''; width:7px; height:7px; background:var(--blue); border-radius:50%; animation:pulse 2s infinite; }
.page-hero h1 { font-family:'Space Grotesk',sans-serif; font-size:clamp(2.4rem,5vw,3.8rem); font-weight:700; line-height:1.1; color:var(--text); margin-bottom:1.3rem; animation:fadeUp 0.7s 0.1s ease both; }
.page-hero h1 em { font-style:normal; background:linear-gradient(135deg,var(--blue) 0%,#60a5fa 100%); -webkit-background-clip:text; background-clip:text; color:transparent; }
.page-hero p { font-size:1.05rem; color:var(--text-light); line-height:1.75; animation:fadeUp 0.7s 0.2s ease both; max-width:580px; margin:0 auto 2rem; }
.hero-actions { display:flex; gap:1rem; justify-content:center; flex-wrap:wrap; animation:fadeUp 0.7s 0.3s ease both; }

/* ══ STATS STRIP ══ */
.stats-strip { background:var(--blue); padding:3rem 6%; }
.stats-inner { max-width:1000px; margin:0 auto; display:flex; justify-content:space-around; align-items:center; flex-wrap:wrap; gap:2rem; }
.stat-item { text-align:center; }
.stat-num { font-family:'Space Grotesk',sans-serif; font-size:2.6rem; font-weight:700; color:#fff; line-height:1; }
.stat-num span { color:#BFDBFE; }
.stat-lbl { font-size:0.82rem; color:rgba(255,255,255,0.7); margin-top:5px; }
.stat-div { width:1px; height:50px; background:rgba(255,255,255,0.2); }

/* ══ SECTIONS ══ */
section { padding:6rem 6%; }
.section-inner { max-width:1200px; margin:0 auto; }
.sec-eyebrow { font-size:0.73rem; font-weight:700; text-transform:uppercase; letter-spacing:0.15em; color:var(--blue); margin-bottom:0.8rem; }
.sec-title { font-family:'Space Grotesk',sans-serif; font-size:clamp(1.8rem,3.5vw,2.7rem); font-weight:700; line-height:1.2; color:var(--text); margin-bottom:1rem; }
.sec-desc { font-size:1rem; color:var(--text-light); line-height:1.75; max-width:540px; }

/* ══ FILTER BAR ══ */
.filter-bar { display:flex; gap:0.75rem; flex-wrap:wrap; align-items:center; margin-bottom:2.5rem; padding:1.25rem; background:var(--off-white); border:1.5px solid var(--blue-border); border-radius:14px; }
.filter-bar .fsearch { position:relative; flex:1; min-width:200px; }
.filter-bar .fsearch-icon { position:absolute; left:0.75rem; top:50%; transform:translateY(-50%); font-size:0.9rem; color:var(--text-light); }
.filter-bar input, .filter-bar select { background:#fff; border:1.5px solid #DDE6F5; border-radius:8px; padding:0.6rem 0.8rem; font-family:'Inter',sans-serif; font-size:0.84rem; color:var(--text); outline:none; transition:border-color 0.2s; }
.filter-bar input:focus, .filter-bar select:focus { border-color:var(--blue); }
.filter-bar .fsearch input { width:100%; padding-left:2rem; }
.filter-bar select { cursor:pointer; }
.filter-btn { background:var(--blue); color:#fff; border:none; border-radius:8px; padding:0.6rem 1.2rem; font-family:'Inter',sans-serif; font-size:0.84rem; font-weight:700; cursor:pointer; transition:transform 0.2s, box-shadow 0.2s; }
.filter-btn:hover { transform:translateY(-1px); box-shadow:0 4px 14px rgba(37,99,235,0.3); }
.filter-reset { background:transparent !important; color:var(--text-mid) !important; border:1.5px solid var(--blue-border) !important; }

/* ══ INSTRUCTOR CARDS ══ */
.instructors-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1.5rem; }
.inst-card {
  background:var(--off-white); border:1.5px solid #E8F0FD;
  border-radius:18px; padding:1.75rem 1.25rem; text-align:center;
  cursor:pointer; position:relative; overflow:hidden;
  transition:transform 0.3s, box-shadow 0.3s, border-color 0.3s;
}
.inst-card::before { content:''; position:absolute; top:0; left:0; right:0; height:3px; background:linear-gradient(90deg,var(--blue),#60a5fa); opacity:0; transition:opacity 0.3s; }
.inst-card:hover { transform:translateY(-6px); box-shadow:0 22px 46px rgba(37,99,235,0.12); border-color:var(--blue-border); background:#fff; }
.inst-card:hover::before { opacity:1; }
.inst-avatar {
  width:64px; height:64px; border-radius:50%; margin:0 auto 0.75rem;
  display:flex; align-items:center; justify-content:center;
  font-size:1.5rem; font-weight:800; color:#fff;
  box-shadow:0 8px 22px rgba(37,99,235,0.25);
  font-family:'Space Grotesk',sans-serif;
}
.inst-name { font-size:0.95rem; font-weight:700; color:var(--text); margin-bottom:0.2rem; }
.inst-subject { font-size:0.78rem; font-weight:600; color:var(--blue); text-transform:uppercase; letter-spacing:0.06em; margin-bottom:0.75rem; }
.inst-stats { display:flex; gap:0.5rem; justify-content:center; flex-wrap:wrap; }
.inst-stat-pill { font-size:0.72rem; font-weight:600; padding:0.2rem 0.6rem; border-radius:100px; border:1px solid; }
.inst-district { font-size:0.74rem; color:var(--text-light); margin-top:0.5rem; }
.inst-view-btn {
  display:block; margin-top:0.75rem; padding:0.5rem; border-radius:8px;
  font-size:0.78rem; font-weight:700; color:var(--blue);
  background:var(--blue-soft); border:1px solid var(--blue-border);
  transition:background 0.2s, transform 0.2s;
}
.inst-card:hover .inst-view-btn { background:var(--blue); color:#fff; transform:translateY(-1px); }

.empty-state { grid-column:1/-1; text-align:center; padding:3rem; color:var(--text-light); }
.empty-state-icon { font-size:3rem; margin-bottom:1rem; opacity:0.4; }

/* ══ PAGINATION ══ */
.pagination { display:flex; justify-content:center; gap:0.5rem; margin-top:3rem; flex-wrap:wrap; }
.pagination a, .pagination span { display:flex; align-items:center; justify-content:center; min-width:40px; height:40px; padding:0 0.75rem; border-radius:10px; border:1.5px solid var(--blue-border); font-size:0.86rem; font-weight:600; text-decoration:none; color:var(--text-mid); transition:all 0.2s; }
.pagination a:hover { border-color:var(--blue); background:var(--blue-soft); color:var(--blue); }
.pagination .active { background:linear-gradient(135deg,var(--blue),var(--blue-dark)); color:#fff; border-color:var(--blue); box-shadow:0 4px 14px rgba(37,99,235,0.3); }
.pagination .disabled { opacity:0.4; cursor:not-allowed; }

/* ══ MODAL ══ */
.modal-overlay {
  position:fixed; inset:0; z-index:1000;
  background:rgba(15,23,42,0.6); backdrop-filter:blur(4px);
  display:flex; align-items:center; justify-content:center;
  opacity:0; visibility:hidden; transition:opacity 0.3s, visibility 0.3s;
  padding:2rem;
}
.modal-overlay.open { opacity:1; visibility:visible; }
.modal-box {
  background:#fff; border-radius:24px; max-width:560px; width:100%;
  max-height:85vh; overflow-y:auto;
  box-shadow:0 30px 80px rgba(37,99,235,0.25);
  transform:translateY(30px) scale(0.97); transition:transform 0.3s ease;
  position:relative;
}
.modal-overlay.open .modal-box { transform:translateY(0) scale(1); }
.modal-close {
  position:absolute; top:1rem; right:1rem; z-index:2;
  width:36px; height:36px; border-radius:10px;
  background:var(--blue-soft); border:1px solid var(--blue-border);
  display:flex; align-items:center; justify-content:center;
  font-size:1.2rem; color:var(--text-mid); cursor:pointer;
  transition:background 0.2s, color 0.2s, transform 0.2s;
}
.modal-close:hover { background:var(--red); color:#fff; transform:rotate(90deg); }

.modal-header {
  background:linear-gradient(135deg,var(--blue),var(--blue-dark));
  padding:2.5rem 2rem 2rem; text-align:center; position:relative;
  border-radius:24px 24px 0 0;
}
.modal-header::before {
  content:''; position:absolute; inset:0; border-radius:24px 24px 0 0;
  background-image: linear-gradient(rgba(255,255,255,0.06) 1px,transparent 1px), linear-gradient(90deg,rgba(255,255,255,0.06) 1px,transparent 1px);
  background-size:30px 30px;
}
.modal-avatar {
  width:80px; height:80px; border-radius:50%; margin:0 auto 0.75rem;
  display:flex; align-items:center; justify-content:center;
  font-size:2rem; font-weight:800; color:#fff; position:relative; z-index:1;
  border:3px solid rgba(255,255,255,0.3);
  box-shadow:0 8px 28px rgba(0,0,0,0.2);
  font-family:'Space Grotesk',sans-serif;
}
.modal-name { font-family:'Space Grotesk',sans-serif; font-size:1.4rem; font-weight:700; color:#fff; position:relative; z-index:1; }
.modal-subject { font-size:0.86rem; color:rgba(255,255,255,0.75); margin-top:0.2rem; position:relative; z-index:1; }

.modal-body { padding:2rem; }
.modal-section { margin-bottom:1.5rem; }
.modal-section-title { font-size:0.72rem; font-weight:800; color:var(--blue); text-transform:uppercase; letter-spacing:0.1em; margin-bottom:0.75rem; }

.modal-stats-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:0.75rem; }
.modal-stat-card {
  background:var(--off-white); border:1.5px solid #E8F0FD;
  border-radius:12px; padding:1rem; text-align:center;
}
.modal-stat-icon { font-size:1.3rem; margin-bottom:0.3rem; }
.modal-stat-num { font-family:'Space Grotesk',sans-serif; font-size:1.4rem; font-weight:700; color:var(--blue); }
.modal-stat-lbl { font-size:0.74rem; color:var(--text-light); margin-top:2px; }

.modal-info-row { display:flex; align-items:center; gap:0.75rem; padding:0.6rem 0; border-bottom:1px solid #F0F4FF; }
.modal-info-row:last-child { border-bottom:none; }
.modal-info-icon { width:36px; height:36px; border-radius:8px; background:var(--blue-soft); border:1px solid var(--blue-border); display:flex; align-items:center; justify-content:center; font-size:0.9rem; flex-shrink:0; }
.modal-info-label { font-size:0.72rem; color:var(--text-light); font-weight:500; }
.modal-info-value { font-size:0.88rem; font-weight:700; color:var(--text); }
.modal-info-badge { display:inline-flex; align-items:center; gap:5px; padding:0.2rem 0.6rem; border-radius:100px; font-size:0.72rem; font-weight:700; }

/* ══ CTA ══ */
#cta { background:var(--off-white); padding:6rem 6%; }
.cta-box { max-width:800px; margin:0 auto; text-align:center; background:linear-gradient(135deg,var(--blue-soft) 0%,#EEF4FF 100%); border:1.5px solid var(--blue-border); border-radius:24px; padding:4rem 3rem; position:relative; overflow:hidden; }
.cta-box::before { content:''; position:absolute; top:0; left:0; right:0; height:3px; background:linear-gradient(90deg,var(--blue),#60a5fa); }
.cta-box::after { content:''; position:absolute; bottom:-60px; right:-60px; width:220px; height:220px; border-radius:50%; background:rgba(37,99,235,0.06); }
.cta-box h2 { font-family:'Space Grotesk',sans-serif; font-size:clamp(1.7rem,3.5vw,2.4rem); font-weight:700; color:var(--text); margin-bottom:0.75rem; position:relative; z-index:1; }
.cta-box p { color:var(--text-light); font-size:1.02rem; margin-bottom:2rem; position:relative; z-index:1; }
.cta-actions { display:flex; gap:1rem; justify-content:center; flex-wrap:wrap; position:relative; z-index:1; }

/* Footer styles now live in public-shell.css (shared across all public pages). */

/* ══ ANIMATIONS ══ */
@keyframes fadeUp { from{opacity:0;transform:translateY(26px)} to{opacity:1;transform:translateY(0)} }
@keyframes fadeDown { from{opacity:0;transform:translateY(-14px)} to{opacity:1;transform:translateY(0)} }
@keyframes pulse { 0%,100%{opacity:1;transform:scale(1)} 50%{opacity:0.5;transform:scale(1.4)} }
.reveal { opacity:0; transform:translateY(30px); transition:opacity 0.65s ease, transform 0.65s ease; }
.reveal.visible { opacity:1; transform:translateY(0); }

/* ══ RESPONSIVE ══ */
@media (max-width:1024px) { .instructors-grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:900px) {
  .instructors-grid { grid-template-columns:1fr 1fr; }
  .stat-div { display:none; }
}
@media (max-width:600px) {
  .instructors-grid { grid-template-columns:1fr; }
  .footer-inner { grid-template-columns:1fr; }
  .cta-box { padding:2.5rem 1.5rem; }
  .filter-bar { flex-direction:column; }
  .modal-stats-grid { grid-template-columns:1fr 1fr; }
}
@media (prefers-reduced-motion:reduce) { *,*::before,*::after{animation-duration:0.01ms !important;transition-duration:0.01ms !important} }

/* -- LIST CARDS (cover + photo) -- */
.inst-card-link { text-decoration:none; color:inherit; display:block; padding:0; overflow:hidden; }
.inst-card-cover {
  height:88px; background:linear-gradient(135deg,#1D4ED8 0%,#2563EB 50%,#60A5FA 100%);
  position:relative; overflow:hidden;
}
.inst-card-cover img { width:100%; height:100%; object-fit:cover; display:block; }
.inst-card-body { padding:0 1.15rem 1.35rem; text-align:center; margin-top:-32px; position:relative; z-index:1; }
.inst-card .inst-avatar {
  width:72px; height:72px; border-radius:50%; margin:0 auto 0.65rem;
  display:flex; align-items:center; justify-content:center;
  font-size:1.45rem; font-weight:800; color:#fff;
  box-shadow:0 8px 22px rgba(37,99,235,0.22);
  font-family:"Space Grotesk",sans-serif;
  border:3px solid #fff; overflow:hidden; background:linear-gradient(135deg,#2563EB,#1D4ED8);
}
.inst-avatar.has-photo { background:#E2E8F0; }
.inst-avatar img { width:100%; height:100%; object-fit:cover; display:block; }
.inst-about-snip {
  font-size:0.78rem; color:var(--text-light); line-height:1.45;
  margin:0 0 0.7rem; min-height:2.2em;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}

/* -- PUBLIC PROFILE PAGE -- */
/* overflow-x:hidden on body breaks position:sticky — override for this page */
body.ip-page {
  background:var(--off-white);
  overflow-x:clip;
  overflow-y:auto;
}
.ip-page { background:var(--off-white); padding-bottom:0; }
.ip-wrap {
  max-width:1100px; margin:0 auto;
  padding:5.5rem 1.25rem 1.5rem;
  overflow:visible;
}
.ip-back { margin-bottom:1rem; }
.ip-back a {
  display:inline-flex; align-items:center; gap:6px;
  font-size:0.86rem; font-weight:700; color:var(--blue); text-decoration:none;
}
.ip-back a:hover { text-decoration:underline; }

.ip-hero {
  background:#fff; border:1.5px solid #E8F0FD; border-radius:18px;
  overflow:hidden; margin-bottom:1.25rem;
  box-shadow:0 8px 28px rgba(37,99,235,0.06);
}
.ip-cover {
  position:relative; height:160px;
  background:linear-gradient(135deg,#1D4ED8 0%,#2563EB 42%,#3B82F6 72%,#60A5FA 100%);
  overflow:hidden;
}
.ip-cover.has-photo { background:linear-gradient(135deg,#1D4ED8 0%,#2563EB 50%,#3B82F6 100%); }
.ip-cover-img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; background:transparent; }
.ip-cover-fade {
  position:absolute; inset:0;
  background:linear-gradient(180deg,rgba(15,23,42,0.05) 0%,rgba(15,23,42,0.28) 100%);
  pointer-events:none;
}
.ip-hero-body {
  display:flex; align-items:flex-end; gap:1.15rem 1.35rem;
  padding:0 1.35rem 1.25rem; flex-wrap:wrap;
}
.ip-avatar {
  width:104px; height:104px; border-radius:50%; margin-top:-48px;
  background:linear-gradient(145deg,#2563EB,#1D4ED8);
  border:4px solid #fff; box-shadow:0 10px 28px rgba(37,99,235,0.2);
  display:flex; align-items:center; justify-content:center;
  font-family:"Space Grotesk",sans-serif; font-size:2.2rem; font-weight:700; color:#fff;
  overflow:hidden; flex-shrink:0; position:relative;
}
.ip-avatar.has-photo { background:#E2E8F0; }
.ip-avatar img { width:100%; height:100%; object-fit:cover; display:block; }
.ip-hero-info { flex:1; min-width:180px; padding-top:0.75rem; }
.ip-name {
  font-family:"Space Grotesk",sans-serif; font-size:1.45rem; font-weight:700;
  color:var(--text); margin:0 0 0.25rem; letter-spacing:-0.01em;
}
.ip-meta {
  display:flex; flex-wrap:wrap; align-items:center; gap:0.25rem 0.4rem;
  font-size:0.84rem; color:var(--text-light); font-weight:500; margin-bottom:0.65rem;
}
.ip-dot { opacity:0.5; }
.ip-badges { display:flex; flex-wrap:wrap; gap:0.4rem; }
.ip-badge {
  display:inline-flex; align-items:center; gap:4px;
  padding:0.28rem 0.7rem; border-radius:999px;
  font-size:0.7rem; font-weight:700;
  background:var(--blue-soft); color:var(--blue-dark);
  border:1px solid var(--blue-border);
}
.ip-badge-amber { background:#FFFBEB; color:#92400E; border-color:#FDE68A; }
.ip-badge-green { background:#ECFDF5; color:#065F46; border-color:#A7F3D0; }
.ip-badge-subject {
  background:linear-gradient(135deg,#EEF2FF,#E0E7FF);
  color:#3730A3; border-color:#C7D2FE;
}
.ip-badge-verify {
  background:linear-gradient(135deg,#ECFDF5,#D1FAE5);
  color:#047857; border-color:#6EE7B7;
}
.ip-hero-stats { display:flex; gap:0.55rem; margin-left:auto; padding-top:0.75rem; }
.ip-stat {
  min-width:84px; text-align:center; padding:0.6rem 0.85rem;
  background:linear-gradient(160deg,#EFF6FF 0%,#F8FAFF 100%);
  border:1.5px solid #DBEAFE; border-radius:12px;
}
.ip-stat-n { font-family:"Space Grotesk",sans-serif; font-size:1.25rem; font-weight:700; color:var(--blue-dark); }
.ip-stat-l { font-size:0.62rem; font-weight:700; color:var(--text-light); text-transform:uppercase; letter-spacing:0.05em; margin-top:0.15rem; }

.ip-grid {
  display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:1.15rem; align-items:start;
  /* room so sticky sidebar isn't covered by floating bot dock at bottom */
  margin-bottom:0.5rem;
  padding-bottom:0.25rem;
}
.ip-card {
  background:#fff; border:1.5px solid #E8F0FD; border-radius:16px;
  padding:1.25rem 1.3rem; margin-bottom:1.1rem;
  box-shadow:0 4px 16px rgba(37,99,235,0.04);
  overflow:hidden; max-width:100%;
  min-width:0;
}
.ip-main, .ip-side { min-width:0; max-width:100%; }
.ip-side {
  /*
   * Sticky right column:
   * - follows scroll while left content is longer
   * - unsticks and stops with the left column bottom (normal sticky end)
   * - stays above the floating bot bar (top offset + no max-height clip)
   */
  align-self:start;
  position:-webkit-sticky;
  position:sticky;
  top:88px;
  z-index:3;
  width:100%;
}
.ip-side-sticky {
  display:flex;
  flex-direction:column;
  width:100%;
}
.ip-side .ip-card { margin-bottom:1rem; }
.ip-side .ip-card:last-child { margin-bottom:0; }
.ip-card-title {
  font-family:"Space Grotesk",sans-serif; font-size:0.95rem; font-weight:700;
  color:var(--text); margin:0 0 0.9rem;
  padding-bottom:0.65rem; border-bottom:1px solid #E8F0FD;
}
.ip-about {
  font-size:0.92rem; color:var(--text-mid); line-height:1.7; margin:0;
  white-space:pre-wrap; word-break:break-word; overflow-wrap:anywhere;
  max-width:100%; overflow:hidden;
}
.ip-muted { font-size:0.86rem; color:var(--text-light); line-height:1.55; margin:0; word-break:break-word; overflow-wrap:anywhere; }

.ip-eq-block { margin-bottom:1.1rem; }
.ip-eq-block:last-child { margin-bottom:0; }
.ip-eq-h {
  font-size:0.72rem; font-weight:800; text-transform:uppercase; letter-spacing:0.08em;
  color:var(--blue); margin:0 0 0.55rem;
  display:inline-flex; padding:0.28rem 0.65rem;
  background:var(--blue-soft); border:1px solid var(--blue-border); border-radius:8px;
}
.ip-eq-rows { display:flex; flex-direction:column; gap:0.35rem; }
.ip-eq-row {
  display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap;
  padding:0.4rem 0; border-bottom:1px solid #F1F5F9;
  font-size:0.84rem;
}
.ip-eq-row:last-child { border-bottom:none; }
.ip-eq-row span { color:var(--text-light); font-weight:500; }
.ip-eq-row strong { color:var(--text); font-weight:700; text-align:right; }
.ip-pills { display:flex; flex-wrap:wrap; gap:0.4rem; margin-top:0.65rem; }
.ip-pill {
  display:inline-flex; align-items:center; gap:6px;
  padding:0.28rem 0.65rem; border-radius:999px; font-size:0.75rem; font-weight:600;
  background:var(--off-white); border:1px solid #E8F0FD; color:var(--text-mid);
}
.ip-pill em {
  font-style:normal; font-weight:800; color:var(--blue);
  background:var(--blue-soft); border-radius:6px; padding:0.05rem 0.4rem;
}

.ip-tt-year { margin-bottom:1rem; }
.ip-tt-year:last-child { margin-bottom:0; }
.ip-tt-year-hd {
  font-size:0.8rem; font-weight:800; color:var(--blue-dark);
  margin-bottom:0.45rem; padding:0.35rem 0.65rem;
  background:var(--blue-soft); border-radius:8px; display:inline-block;
}
.ip-tt-list { list-style:none; margin:0; padding:0; }
.ip-tt-list li {
  padding:0.55rem 0.65rem; border-bottom:1px solid #F1F5F9;
  font-size:0.84rem; color:var(--text-mid); line-height:1.45;
}
.ip-tt-list li:last-child { border-bottom:none; }

.ip-trs-grid {
  display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0.85rem;
}
.ip-trs-card {
  border:1.5px solid #E8F0FD; border-radius:14px; padding:1rem 0.85rem;
  text-align:center; background:linear-gradient(180deg,#fff 0%,#F8FAFF 100%);
  display:flex; flex-direction:column; align-items:center;
}
.ip-trs-photo {
  width:64px; height:64px; border-radius:50%; overflow:hidden;
  background:linear-gradient(135deg,#2563EB,#1D4ED8);
  display:flex; align-items:center; justify-content:center;
  color:#fff; font-weight:800; font-size:1.2rem; margin-bottom:0.45rem;
  box-shadow:0 6px 16px rgba(37,99,235,0.18);
}
.ip-trs-photo img { width:100%; height:100%; object-fit:cover; }
.ip-trs-year { font-size:0.68rem; font-weight:800; color:var(--blue); margin-bottom:0.2rem; }
.ip-trs-name { font-size:0.88rem; font-weight:700; color:var(--text); margin-bottom:0.2rem; }
.ip-trs-meta { font-size:0.72rem; color:var(--text-light); margin-bottom:0.45rem; line-height:1.35; }
.ip-trs-ranks { display:flex; flex-wrap:wrap; gap:0.28rem; justify-content:center; margin-bottom:0.4rem; }
.ip-trs-pill {
  font-size:0.65rem; font-weight:700; padding:0.15rem 0.45rem; border-radius:999px; border:1px solid;
}
.ip-trs-pill.island { background:#FEF3C7; color:#92400E; border-color:#FDE68A; }
.ip-trs-pill.district { background:var(--blue-soft); color:var(--blue-dark); border-color:var(--blue-border); }
.ip-trs-pill.z { background:#ECFDF5; color:#065F46; border-color:#A7F3D0; }
.ip-trs-subs { display:flex; flex-wrap:wrap; gap:0.28rem; justify-content:center; margin-top:auto; }
.ip-trs-subs span {
  font-size:0.68rem; font-weight:600; color:var(--text-mid);
  background:var(--off-white); border:1px solid #E8F0FD; border-radius:6px; padding:0.15rem 0.4rem;
}
.ip-trs-subs em { font-style:normal; font-weight:800; color:var(--blue); margin-left:3px; }

.ip-social { display:flex; flex-direction:column; gap:0.4rem; }
.ip-social-btn {
  display:flex; align-items:center; gap:8px;
  padding:0.55rem 0.75rem; border-radius:10px; text-decoration:none;
  font-size:0.82rem; font-weight:700; color:var(--text-mid);
  background:var(--off-white); border:1.5px solid #E8F0FD;
  transition:border-color 0.15s, background 0.15s, color 0.15s, transform 0.15s;
  min-width:0;
}
.ip-social-btn.is-active:hover {
  border-color:var(--blue-border); background:var(--blue-soft); color:var(--blue);
  transform:translateX(2px);
}
.ip-social-btn.is-empty {
  opacity:0.72; cursor:default; background:#F8FAFC;
}
.ip-social-ico { flex-shrink:0; font-size:1rem; line-height:1; }
.ip-social-label { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ip-social-go {
  flex-shrink:0; font-size:0.72rem; font-weight:800; color:var(--blue);
}
.ip-social-na {
  flex-shrink:0; font-size:0.68rem; font-weight:700; color:var(--text-light);
  background:#F1F5F9; border-radius:999px; padding:0.12rem 0.45rem;
}

/* Fixed bottom Telegram CTA — always visible, modern */
/* Dock — reserves space before the footer so the bar can stop here */
.ip-bot-dock {
  position:relative;
  display:flex; justify-content:center; align-items:flex-end;
  padding:0 1rem 1.15rem;
  padding-bottom:calc(1.15rem + env(safe-area-inset-bottom, 0px));
  min-height:74px;
  pointer-events:none;
}

.ip-bot-bar {
  pointer-events:auto;
  position:fixed; left:50%; bottom:1.15rem; z-index:90;
  bottom:calc(1.15rem + env(safe-area-inset-bottom, 0px));
  transform:translateX(-50%);
  width:auto; max-width:calc(100vw - 2rem);
  padding:0.5rem 0.6rem 0.5rem 0.85rem;
  border-radius:18px;
  background:linear-gradient(145deg,#111827 0%,#1E293B 60%,#0F172A 100%);
  border:1px solid rgba(255,255,255,0.1);
  box-shadow:
    0 18px 45px -12px rgba(2,6,23,0.6),
    0 2px 8px -2px rgba(2,6,23,0.4),
    0 1px 0 rgba(255,255,255,0.08) inset;
}
/* Docked — bar stops and sits inside its slot before the footer */
.ip-bot-bar.is-docked {
  position:static;
  transform:none;
  box-shadow:
    0 12px 30px -14px rgba(2,6,23,0.5),
    0 1px 0 rgba(255,255,255,0.08) inset;
}
.ip-bot-bar-inner {
  display:flex; align-items:center; justify-content:space-between; gap:0.9rem;
}
.ip-bot-identity {
  display:flex; align-items:center; gap:0.65rem; min-width:0; flex:1;
}
.ip-bot-avatar {
  position:relative;
  width:40px; height:40px; border-radius:50%; flex-shrink:0;
  background:linear-gradient(145deg,#2563EB,#1D4ED8);
  color:#fff; font-weight:800; font-size:0.95rem;
  display:flex; align-items:center; justify-content:center;
  overflow:visible;
  box-shadow:0 4px 12px rgba(0,0,0,0.35);
  border:1.5px solid rgba(255,255,255,0.14);
  font-family:"Space Grotesk",sans-serif;
}
.ip-bot-avatar.has-photo { background:#334155; }
.ip-bot-avatar img {
  width:100%; height:100%; object-fit:cover; display:block;
  border-radius:50%;
}
.ip-bot-avatar > span:not(.ip-bot-presence) {
  display:flex; align-items:center; justify-content:center;
  width:100%; height:100%; border-radius:50%;
}
.ip-bot-presence {
  position:absolute; right:0; bottom:0;
  width:10px; height:10px; border-radius:50%;
  background:#10B981;
  border:2px solid #111827;
  box-shadow:0 0 0 0 rgba(16,185,129,0.55);
  animation:ipBotPresence 2s ease-out infinite;
}
@keyframes ipBotPresence {
  0% { box-shadow:0 0 0 0 rgba(16,185,129,0.5); }
  70% { box-shadow:0 0 0 4px rgba(16,185,129,0); }
  100% { box-shadow:0 0 0 0 rgba(16,185,129,0); }
}
.ip-bot-copy { min-width:0; }
.ip-bot-kicker {
  display:inline-flex; align-items:center; gap:5px;
  font-size:0.6rem; font-weight:800; letter-spacing:0.09em;
  text-transform:uppercase; color:#34D399; margin-bottom:2px;
}
.ip-bot-bar.is-offline .ip-bot-kicker { color:#94A3B8; }
.ip-bot-dot {
  width:7px; height:7px; border-radius:50%;
  background:#10B981;
  box-shadow:0 0 0 0 rgba(16,185,129,0.55);
  animation:ipBotLive 2s ease-out infinite;
}
.ip-bot-dot-soft { background:#38BDF8; animation:none; box-shadow:none; }
.ip-bot-dot-off { background:#94A3B8; animation:none; box-shadow:none; }
@keyframes ipBotLive {
  0% { box-shadow:0 0 0 0 rgba(16,185,129,0.5); }
  70% { box-shadow:0 0 0 7px rgba(16,185,129,0); }
  100% { box-shadow:0 0 0 0 rgba(16,185,129,0); }
}
.ip-bot-title {
  font-family:"Space Grotesk",sans-serif;
  font-size:0.9rem; font-weight:700; color:#F8FAFC;
  line-height:1.2; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.ip-bot-sub {
  display:flex; align-items:center; gap:0.35rem;
  font-size:0.74rem; color:#94A3B8; font-weight:500;
  margin-top:1px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.ip-bot-handle {
  font-weight:700; color:#60A5FA;
  font-family:"Space Grotesk",sans-serif; letter-spacing:0.01em;
}
.ip-bot-sep { color:#475569; }
.ip-bot-sub-note { overflow:hidden; text-overflow:ellipsis; }
.ip-bot-cta {
  flex-shrink:0;
  display:inline-flex; align-items:center; gap:0.55rem;
  padding:0.4rem 0.6rem 0.4rem 0.45rem;
  border-radius:999px;
  background:linear-gradient(135deg,#2AABEE 0%,#229ED9 55%,#1C8CC4 100%);
  color:#fff !important; text-decoration:none;
  border:1px solid rgba(255,255,255,0.22);
  box-shadow:
    0 6px 18px -4px rgba(34,158,217,0.6),
    0 1px 0 rgba(255,255,255,0.28) inset;
  transition:transform 0.2s cubic-bezier(0.34,1.56,0.64,1), box-shadow 0.2s ease, filter 0.2s ease;
  position:relative; overflow:hidden;
}
.ip-bot-cta::after {
  content:'';
  position:absolute; inset:0;
  background:linear-gradient(120deg, transparent 30%, rgba(255,255,255,0.25) 50%, transparent 70%);
  transform:translateX(-130%);
  transition:transform 0.6s ease;
}
.ip-bot-cta:hover:not(.is-disabled) {
  transform:translateY(-2px);
  box-shadow:0 12px 28px -6px rgba(34,158,217,0.6);
  filter:brightness(1.03);
}
.ip-bot-cta:hover:not(.is-disabled)::after { transform:translateX(130%); }
.ip-bot-cta-icon {
  width:32px; height:32px; border-radius:50%;
  background:rgba(255,255,255,0.2);
  display:inline-flex; align-items:center; justify-content:center;
  flex-shrink:0;
}
.ip-bot-cta-text {
  display:flex; flex-direction:column; align-items:flex-start; gap:1px; line-height:1.2;
}
.ip-bot-cta-text em {
  font-style:normal; font-size:0.88rem; font-weight:800; letter-spacing:0.01em;
}
.ip-bot-cta-text small {
  font-size:0.68rem; font-weight:600; opacity:0.9;
}
.ip-bot-cta-arrow {
  display:inline-flex; align-items:center; justify-content:center;
  opacity:0.95; margin-right:0.25rem;
  transition:transform 0.2s ease;
}
.ip-bot-cta:hover:not(.is-disabled) .ip-bot-cta-arrow { transform:translateX(3px); }
.ip-bot-cta.is-disabled {
  background:linear-gradient(135deg,#CBD5E1,#94A3B8);
  color:#fff !important;
  box-shadow:none; cursor:not-allowed;
  border-color:transparent;
}
.ip-bot-pulse {
  animation:ipBotPulse 3s ease-in-out infinite;
}
.ip-bot-pulse:hover,
.ip-bot-pulse:focus {
  animation-play-state:paused;
}
@keyframes ipBotPulse {
  0%, 100% { box-shadow:0 6px 20px -4px rgba(34,158,217,0.5), 0 0 0 0 rgba(34,158,217,0.3); }
  50% { box-shadow:0 8px 24px -4px rgba(34,158,217,0.55), 0 0 0 8px rgba(34,158,217,0); }
}
@media (prefers-reduced-motion:reduce) {
  .ip-bot-pulse, .ip-bot-dot, .ip-bot-presence { animation:none; }
}

.ip-glance { display:flex; flex-direction:column; gap:0.15rem; }
.ip-glance-row {
  display:flex; justify-content:space-between; gap:0.75rem;
  padding:0.5rem 0; border-bottom:1px solid #F1F5F9; font-size:0.84rem;
}
.ip-glance-row:last-child { border-bottom:none; }
.ip-glance-row span { color:var(--text-light); }
.ip-glance-row strong { color:var(--text); font-weight:700; text-align:right; }
.ip-cta-card .btn-primary { box-sizing:border-box; }

@media (max-width:900px) {
  .ip-grid { grid-template-columns:1fr; }
  .ip-side {
    position:static;
    top:auto;
    max-height:none;
  }
  .ip-hero-body { flex-direction:column; align-items:center; text-align:center; }
  .ip-avatar { margin-top:-40px; }
  .ip-meta, .ip-badges { justify-content:center; }
  .ip-hero-stats { margin-left:0; width:100%; justify-content:center; }
  .ip-trs-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .ip-wrap { padding-top:5rem; padding-bottom:1rem; }
  .ip-page { padding-bottom:0; }
}
@media (max-width:560px) {
  .ip-cover { height:120px; }
  .ip-avatar { width:88px; height:88px; font-size:1.8rem; }
  .ip-name { font-size:1.2rem; }
  .ip-trs-grid { grid-template-columns:1fr; }
  .ip-stat { flex:1; min-width:0; }
  .ip-bot-dock { padding-left:0.75rem; padding-right:0.75rem; }
  .ip-bot-bar { padding:0.4rem 0.5rem 0.4rem 0.7rem; }
  .ip-bot-bar-inner { gap:0.6rem; }
  .ip-bot-sub-note, .ip-bot-sep { display:none; }
  .ip-bot-title { font-size:0.85rem; }
  .ip-bot-cta { padding:0.35rem; gap:0; }
  .ip-bot-cta-text, .ip-bot-cta-arrow { display:none; }
  .ip-bot-cta-icon { width:36px; height:36px; }
  .ip-bot-avatar { width:36px; height:36px; font-size:0.9rem; }
  .ip-bot-identity { gap:0.55rem; }
}
