/* Readable public content. Header navigation has its own stylesheet. */
.se-public {
  --t2: #c7cbd4;
  --t3: #b8bcc6;
  --t4: #b8bcc6;
  --se-copy: #c7cbd4;
  --se-secondary: #b8bcc6;
  --se-label: #d5bd92;
  font-size: 17px;
  line-height: 1.7;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

.se-public main p {
  font-size: 17px;
  line-height: 1.75;
}

.se-public :is(.hero-sub, .section-sub, .page-meta, .se-character-summary,
  .se-character-bio > p:not(.se-eyebrow):not(.se-character-summary),
  .se-element-tactic, .se-element-status p, .se-specialization-steps p,
  .se-tree-summary p, .se-affinity-explanation p, .se-selection-empty p,
  .dl-desc, .download-note, .event-desc, .auth-sub, .tournament-intro,
  .tournament-meta, .tournament-form p) {
  font-size: 17px;
  line-height: 1.75;
  color: var(--se-copy);
}

.se-public :is(.section-title, .se-specialization .section-title,
  .se-guide-community .section-title) {
  font-size: clamp(28px, 3vw, 36px);
  line-height: 1.35;
}

.se-public .page-title {
  font-size: clamp(32px, 5vw, 54px);
  line-height: 1.2;
}

.se-public .hero-headline {
  font-size: clamp(38px, 4.8vw, 66px);
  line-height: 1.16;
}

.se-public :is(.se-character-bio h3, .se-element-heading h3) {
  font-size: clamp(30px, 3.5vw, 40px);
  line-height: 1.3;
}

.se-public :is(.se-selection-empty h3, .auth-title, .register-title,
  .register-layout .register-title, .se-tree-summary > div > strong) {
  font-size: clamp(28px, 2.5vw, 30px);
  line-height: 1.4;
}

.se-public :is(.se-eyebrow, .section-label, .se-platform-caption,
  .se-platform-heading .se-platform-caption, .se-guide-nav > .wrap > span,
  .se-guide-counter > span, .se-character-bio > .se-eyebrow,
  .se-character-elements small, .se-element-heading .se-eyebrow,
  .se-element-status .se-eyebrow, .se-element-owners > .se-eyebrow,
  .se-skill-tag, .auth-kicker) {
  font-size: 14px;
  line-height: 1.6;
  letter-spacing: .08em;
  color: var(--se-label);
}

.se-public :is(.hero-badge, .se-hero-facts span, .stat-box .lbl,
  .server-time-row, .se-platform-heading > span, .se-skills-heading > span,
  .se-skills-note, .se-tree-branches small, .footer-brand small,
  .event-when, .dl-sub, .dl-tag, .dl-size, .dl-meta-row,
  .dl-meta-row strong, .form-note, .form-note .mono, .req-item span,
  .mono-tag, .feat-text span, .feature-item span, .portal-user-sub,
  .portal-empty, .portal-rates, .portal-label, .ip-stack small,
  .ip-val, .pmi-price, .db-row-val, .side-card-title, .db-badge) {
  font-size: 14px;
  line-height: 1.65;
  color: var(--se-secondary);
}

.se-public .hero-sub { max-width: 48ch; }
.se-public .hero-badge { flex-wrap: wrap; }
.se-public .se-hero-facts { max-width: none; row-gap: 12px; }
.se-public .se-hero-facts span { letter-spacing: 0; }
.se-public .se-hero-facts strong { font-size: 28px; line-height: 1.2; }
.se-public .stat-box .val { font-size: 26px; line-height: 1.3; }

.se-public .btn,
.se-public .hero-actions .btn {
  min-height: 48px;
  font-size: 16px;
  line-height: 1.5;
  white-space: normal;
  text-align: center;
}

.se-public :is(.se-text-link, .hero-left > .se-text-link,
  .se-character-bio .se-text-link) {
  min-height: 44px;
  font-size: 16px;
  line-height: 1.5;
  white-space: normal;
  color: #ddc69f;
}

.se-public .se-guide-nav > .wrap {
  flex-wrap: wrap;
  gap: 8px 28px;
  padding-top: 14px;
  padding-bottom: 14px;
}
.se-public .se-guide-nav a,
.se-public .se-guide-nav a:last-child {
  display: flex;
  min-height: 44px;
  font-size: 16px;
  line-height: 1.5;
  color: #ded4c3;
}
.se-public .se-guide-nav a > span { color: #d5bd92; }

.se-public .se-platform-grid {
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 12px;
}
.se-public .se-platform { min-height: 136px; padding: 18px 14px; }
.se-public .se-platform strong,
.se-public .se-platform.is-unavailable strong {
  font-size: 16px;
  line-height: 1.4;
  color: #eee9df;
}
.se-public .se-platform small,
.se-public .se-platform.is-unavailable small {
  font-size: 14px;
  line-height: 1.5;
  color: var(--se-secondary);
}
.se-public .se-platform-badge {
  font-size: 14px;
  line-height: 1.45;
  letter-spacing: .03em;
  color: #e5c58b;
}
.se-public .se-platform.is-browser {
  display: flex;
  align-items: center;
  text-align: center;
  gap: 6px;
  padding: 18px 14px;
}
.se-public .se-platform.is-browser svg { margin: 0; }
.se-public .se-platform.is-browser strong,
.se-public .se-platform.is-browser small { align-self: auto; }
.se-public .se-platform.is-unavailable svg { color: #adb4c0; }

.se-public .se-class-tab { min-height: 108px; }
.se-public .se-class-tab > span { flex: 1; min-width: 0; }
.se-public .se-class-tab strong {
  font-size: 16px;
  line-height: 1.45;
  color: #eee9df;
}
.se-public .se-class-tab small,
.se-public .se-class-tab.is-selected small {
  font-size: 14px;
  line-height: 1.5;
  color: var(--se-secondary);
}
.se-public .se-class-tab.is-selected { border-width: 2px; }
.se-public .se-character-portrait > span {
  max-width: 100%;
  font-size: 14px;
  line-height: 1.5;
  text-align: center;
  color: #e5d5b8;
}
.se-public .se-character-elements > div { min-width: 0; }
.se-public .se-character-elements > div > span { min-width: 0; }
.se-public .se-character-elements strong { font-size: 20px; line-height: 1.5; }
.se-public .se-skills-heading { flex-wrap: wrap; }
.se-public .se-skills-heading h4,
.se-public .se-element-status h4 { font-size: 24px; line-height: 1.45; }
.se-public .se-skill { min-width: 0; padding: 21px 18px; }
.se-public .se-skill > div { min-width: 0; }
.se-public .se-skill h5 { font-size: 18px; line-height: 1.45; }
.se-public .se-skill p { font-size: 16px; line-height: 1.7; color: var(--se-copy); }
.se-public .se-skills-note { font-size: 14px; line-height: 1.75; }

.se-public .se-specialization-steps h3 { font-size: 19px; line-height: 1.5; }
.se-public .se-specialization-steps > li > div { min-width: 0; }
.se-public .se-tree-summary { align-items: flex-start; flex-wrap: wrap; }
.se-public .se-tree-branches { flex-wrap: wrap; flex-shrink: 1; }
.se-public .se-tree-branches strong { font-size: 16px; line-height: 1.5; }
.se-public .se-affinity-explanation strong { font-size: 18px; line-height: 1.5; }

.se-public .se-elements-layout > div { min-width: 0; }
.se-public .se-wheel-element { width: 86px; min-height: 86px; }
.se-public .se-wheel-element > span:last-child {
  font-size: 14px;
  line-height: 1.4;
  color: #dedfe4;
}
.se-public .se-wheel-element.is-selected > span:last-child { color: #fff2d6; }
.se-public .se-wheel-center { width: 142px; }
.se-public .se-wheel-center > span { font-size: 14px; letter-spacing: .08em; color: #d5bd92; }
.se-public .se-wheel-center strong { font-size: 28px; line-height: 1.2; margin: 8px 0; }
.se-public .se-wheel-center small { font-size: 14px; line-height: 1.45; color: var(--se-secondary); }
.se-public .se-element-matchups small { font-size: 14px; line-height: 1.5; letter-spacing: .02em; }
.se-public .se-match-good small { color: #c2d8b1; }
.se-public .se-match-bad small { color: #f0b4a6; }
.se-public .se-element-matchups strong { font-size: 17px; line-height: 1.5; flex-wrap: wrap; }
.se-public .se-element-owners > div { grid-template-columns: 1fr; }
.se-public .se-element-owners button { min-height: 60px; padding: 10px; }
.se-public .se-element-owners button > span:not(:last-child) { font-size: 16px; line-height: 1.5; }
.se-public .se-element-owners button small { font-size: 14px; line-height: 1.5; color: var(--se-secondary); }
.se-public .se-element-owners button > span:last-child { color: #d5bd92; }

.se-public .social-name { font-size: 16px; line-height: 1.5; }
.se-public .social-card { min-width: 0; min-height: 80px; }
.se-public .se-social-arrow { color: #d5bd92; }
.se-public .footer-brand strong { font-size: 20px; line-height: 1.5; }
.se-public .footer-links a { display: inline-flex; align-items: center; min-height: 44px; font-size: 16px; color: var(--se-copy); }
.se-public .footer-inner { flex-wrap: wrap; }
.se-public .se-preview-banner {
  position: static;
  display: table;
  transform: none;
  margin: 16px auto;
  font-size: 14px;
  line-height: 1.5;
  max-width: calc(100vw - 24px);
  white-space: normal;
  text-align: center;
}

/* Account and module controls also retain legible labels and full text. */
.se-public :is(.field label, .auth-field label, .market-form-grid label,
  .don-field label, .tournament-form label) {
  font-size: 14px;
  line-height: 1.6;
  letter-spacing: .03em;
  color: var(--se-copy);
}
.se-public :is(.portal-input, .field input, .field select, .field textarea,
  .tournament-form input, .tournament-form select, .market-range-values input) {
  min-height: 48px;
  font-size: 16px;
  line-height: 1.5;
}
.se-public .portal-input,
.se-public #rankClass,
.se-public #rankClass option {
  background: #15171c;
  color: #f1ede5;
  color-scheme: dark;
}
.se-public :is(.portal-input, .field input, .field textarea)::placeholder {
  color: var(--se-secondary);
  opacity: 1;
}
.se-public :is(.auth-tab, .rank-filter-btn, .don-tab,
  .market-board-action-btn, .copy-btn) {
  min-height: 44px;
  font-size: 16px;
  line-height: 1.5;
  white-space: normal;
}
.se-public :is(.auth-close, .market-modal-close) { width: 44px; height: 44px; }
.se-public :is(.auth-alert, .alert) { font-size: 16px; line-height: 1.7; }
.se-public .auth-head { padding-right: 64px; }
.se-public .auth-title { font-size: 28px; }
.se-public :is(.portal-block-title, .table-title, .dl-name, .dl-title) { font-size: 22px; line-height: 1.45; }
.se-public :is(.req-item strong, .feat-text strong, .feature-item strong,
  .pmi-name, .portal-user) { font-size: 16px; line-height: 1.5; }
.se-public .portal-actions .btn { font-size: 16px; }
.se-public .form-note { font-size: 14px; line-height: 1.7; }
.se-public .fields-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.se-public .field { min-width: 0; }

.se-public :is(.ranking-table th, .table th) { font-size: 14px; line-height: 1.5; color: var(--se-secondary); }
.se-public :is(.ranking-table td, .table td, .char-name, .rank-name,
  .lvl-val, .rank-num, .rank-pos) { font-size: 16px; line-height: 1.6; }
.se-public .rank-name { display: inline-flex; align-items: center; min-height: 44px; }
.se-public :is(.class-tag, .rank-tt-class, .rank-tt-status, .tt-class,
  .tt-stat, .rank-equip-head, .rank-equip-loading,
  .rank-equip-tip-title, .rank-equip-tip-line, .rank-tt-hidden,
  .market-char-card .rank-tt-class, .market-char-card .rank-tt-status,
  .market-char-card .tt-stat, .market-char-card .rank-equip-head,
  .market-char-card .rank-equip-loading,
  .market-char-card .rank-equip-tip-title,
  .market-char-card .rank-equip-tip-line) { font-size: 14px; line-height: 1.6; }
.se-public :is(.rank-tt-name, .market-char-card .rank-tt-name, .tt-name) { font-size: 20px; line-height: 1.4; }
.se-public .rank-tt-status.is-offline { color: #ffabab; }
.se-public .rank-tt-status.is-online { color: #96ecae; }
.se-public .ranking-layout.single .table-responsive { overflow-x: auto; }

.se-public :is(.market-card-meta, .market-hero-class, .market-hero-stats span,
  .seller-reputation, .market-board-tag, .market-board-options span,
  .market-reputation-guide, .market-rank-guide-grid small,
  .market-modal-kicker, .don-price, .don-bin-row,
  .don-bin-row strong, .tournament-member small,
  .tournament-team > small, .tournament-team summary small,
  .tournament-modes span, .tournament-badge, .tournament-match time,
  .cup-board header p, .cup-note) { font-size: 14px; line-height: 1.65; color: var(--se-secondary); }
.se-public :is(.market-card-item, .market-card-price, .market-cards-count,
  .market-hero-range > strong, .market-rank-guide-grid strong,
  .market-modal-header p, .market-modal-panel__text) { font-size: 16px; line-height: 1.65; }
.se-public .market-hero-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.se-public .market-hero-classbar > a.btn { min-height: 44px; }
.se-public .market-card-class { width: 44px; height: 44px; }
.se-public .market-reputation-guide summary,
.se-public .tournament-page summary { min-height: 44px; font-size: 16px; }
.se-public .market-modal-header h3 { font-size: 28px; line-height: 1.4; }

/* Legacy module controls use inline sizes and white input backgrounds. */
.se-public.se-page-market .btn,
.se-public.se-page-market .portal-input,
.se-public.se-page-donate .portal-input { font-size: 16px !important; }
.se-public.se-page-market .portal-input,
.se-public.se-page-donate .portal-input {
  background: #15171c !important;
  color: #f1ede5 !important;
}
.se-public.se-page-market :is(label, .section-label) { font-size: 14px !important; }

.se-public :is(.se-platform strong, .se-platform small, .se-platform-badge,
  .se-class-tab strong, .se-class-tab small, .se-character-portrait > span,
  .se-skill-tag, .se-skill h5, .se-skill p, .se-tree-branches strong,
  .se-tree-branches small, .se-element-owners button span, .pmi-name,
  .dl-title, .dl-sub, .dl-tag, .market-hero-class, .market-card-meta,
  .rank-tt-name, .rank-tt-class, .rank-tt-status, .class-tag) {
  white-space: normal;
  overflow: visible;
  text-overflow: clip;
  overflow-wrap: anywhere;
  max-width: 100%;
}

.se-public :is(a, button, input, select, textarea, summary):focus-visible {
  outline: 2px solid #f0d095;
  outline-offset: 4px;
}

@media (max-width: 1100px) {
  .se-public .se-skills-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .se-public .se-class-tabs { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .se-public .se-class-tab { flex-direction: column; text-align: center; }
  .se-public .se-class-tab small { justify-content: center; }
}

@media (max-width: 900px) {
  .se-public .se-platform-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .se-public .se-platform { min-height: 140px; }
  .se-public .se-class-tabs { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .se-public .se-specialization-steps { grid-template-columns: 1fr; }
  .se-public .se-specialization-steps > li { display: flex; }
  .se-public .se-specialization-steps > li > span { margin-bottom: 0; }
  .se-public .se-guide-nav a { flex: 0 1 auto; }
}

@media (max-width: 650px) {
  .se-public { font-size: 16px; }
  .se-public .hero-headline { font-size: clamp(38px, 9vw, 46px); }
  .se-public .hero-sub { max-width: 38ch; }
  .se-public .hero-actions .btn { flex: 1 1 180px; }
  .se-public .se-hero-facts { gap: 12px 0; }
  .se-public .se-hero-facts span { flex-wrap: wrap; padding: 2px 12px; }
  .se-public .se-hero-facts span:first-child { padding-left: 0; }
  .se-public .se-guide-nav > .wrap { gap: 4px 20px; }
  .se-public .se-platform-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .se-public .se-platform,
  .se-public .se-platform.is-browser,
  .se-public .se-platform.is-windows { grid-column: auto; min-height: 148px; padding: 16px 10px; }
  .se-public .se-class-tabs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .se-public .se-class-tab { flex-direction: column; align-items: center; padding: 16px 10px; gap: 10px; }
  .se-public .se-class-tab small { justify-content: center; }
  .se-public .se-skills-grid { grid-template-columns: 1fr; }
  .se-public .se-skill { padding: 18px 14px; gap: 12px; }
  .se-public .se-character-intro { padding: 26px 20px; }
  .se-public .se-tree-summary { padding: 24px 20px; }
  .se-public .se-tree-branches { justify-content: space-around; gap: 14px; width: 100%; }
  .se-public .se-tree-branches > span { min-width: 0; padding: 0; }
  .se-public .se-wheel-element { width: 76px; min-height: 76px; gap: 3px; }
  .se-public .se-wheel-center { width: 124px; }
  .se-public .se-wheel-center strong { font-size: 24px; margin: 6px 0; }
  .se-public .se-wheel-center > span { letter-spacing: .03em; }
  .se-public .se-element-matchups { grid-template-columns: 1fr; }
  .se-public .footer-links { gap: 8px 24px; }
  .se-public .fields-grid { grid-template-columns: 1fr; }
}

@media (max-width: 360px) {
  .se-public .se-wheel-element { width: 68px; }
  .se-public .socials-grid { grid-template-columns: 1fr; }
}
