/* Shared type system. Load last so member/admin screens use the same fonts.
   Raster logos and promotional artwork deliberately retain their original text. */
:root {
  --font-body: 'LINE Seed KR', 'Malgun Gothic', sans-serif;
  --font-display: 'Cafe24 Ssurround', 'LINE Seed KR', 'Malgun Gothic', sans-serif;
}
body { font-family: var(--font-body); font-size: 1.125rem; line-height: 1.6; }
button, input, select, textarea { font-family: var(--font-body); }
button, .btn, .tab, label, th, strong, b { font-weight: 700; }
input, select, textarea { font-size: max(1rem, 1em); line-height: 1.5; }
input:not([type=checkbox]):not([type=radio]):not([type=file]), select { min-height: 48px; }
button, .btn { line-height: 1.4; }
small { font-size: .875rem; }
h1, h2, h3, h4, .brand, .site-footer strong,
.section-head h2, .admin-side h2, .visual-body h3,
.support-hero h1, .support-panel h2, .support-history h2,
.support-login-prompt h3, .support-empty h3,
.charge-heading h1, .charge-section-title h2, .charge-notice h2,
.fair-card h2, .draw-copy h2 {
  font-family: var(--font-display);
  /* Ssurround has a single intentionally heavy master; do not fake a bold face. */
  font-weight: 400;
  line-height: 1.4;
  word-break: keep-all;
  overflow-wrap: anywhere;
}
.visual-stats b, .gold-meter > strong, .charge-amount strong, .stat b {
  font-family: var(--font-display);
  font-weight: 400;
  line-height: 1.4;
  font-variant-numeric: tabular-nums;
}
.site-header { min-height: 96px; height: auto; }
.site-header .brand { flex-basis: 200px; }
.main-nav { gap: 4px; }
.main-nav a { flex-basis: auto; min-width: 0; padding: 13px 10px; font-size: 1rem; }
.header-actions { gap: 8px; }
.header-actions .btn, .point-pill { font-size: 1rem; }
.profile-dropdown button, .profile-dropdown a { font-weight: 700; }
.section-head, .page-title, .modal-head { gap: 16px; }
.section-head { flex-wrap: wrap; }
.section-head > :last-child { line-height: 1.6; }
.section-head > span, .section-head > p { font-size: 1rem; }
.field label, .support-field label { font-size: 1rem; }
.field input, .field select, .field textarea,
.support-field input, .support-field select, .support-field textarea,
.support-search input, .live-admin-search input { font-size: 1rem; }
.field, .form-grid > *, .stat-grid > *, .charge-info > *, .charge-steps > * { min-width: 0; }
.form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.btn, .tab, .mini { min-height: 44px; }
.modal-head { align-items: flex-start; }
.modal-head h2 { min-width: 0; margin-bottom: 20px; }
.modal-head button { width: 40px; height: 40px; flex: 0 0 40px; }
.modal { padding: 28px; }
.modal .note { font-size: .9375rem; }
.visual-body h3 { font-size: 1.75rem; }
.regular-events h3 { font-size: 1.5rem; }
.visual-stats b { white-space: normal; overflow-wrap: anywhere; }
.visual-stats span { line-height: 1.55; }
.visual-cta { font-size: 1.3125rem; line-height: 1.5; }
.regular-events .visual-cta { font-size: 1rem; }
.participant-panel { line-height: 1.5; }
.participant-panel > b { flex-wrap: wrap; }
.participant-panel > div { max-height: calc(100% - 48px); }
.visual-benefits { flex-wrap: wrap; gap: 16px 24px; font-size: 1rem; }
.fair-buttons { grid-template-columns: repeat(auto-fit, minmax(min(100%, 190px), 1fr)); }
.fair-platform[data-platform='SOOP TV'] { width: 46px; font-size: .875rem; }
.charge-heading, .charge-summary { flex-wrap: wrap; }
.charge-heading > div, .charge-heading p { min-width: 0; }
.charge-heading > div { flex-shrink: 1; }
.charge-info { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.charge-info > div { flex-wrap: wrap; }
.charge-custom { flex-wrap: wrap; }
.charge-custom input { flex: 1 1 180px; }
.charge-notice ul { font-size: 1rem; }
.support-panel-heading, .support-history-heading { flex-wrap: wrap; }
.support-quick-links strong { font-size: 1rem; }
.support-faq-item summary, .support-faq-answer, .support-inquiry-content p { font-size: 1rem; }
.support-faq-filters button, .support-history-filters button { min-height: 40px; font-size: .9375rem; }
.support-field select { height: auto; min-height: 50px; }
.support-submit { font-size: 1rem !important; font-weight: 700 !important; min-height: 52px; }
.support-inquiry-summary > strong { font-size: 1.0625rem; }
.support-inquiry > summary { flex-wrap: wrap; }
.support-inquiry-summary { min-width: 0; flex: 1 1 180px; }
.support-form-help { line-height: 1.6; }
.support-panel h2, .support-history h2 { letter-spacing: 0; }
.live-admin-page .admin-side button { font-size: 1rem; }
.live-admin-page .admin-head h2 { font-size: 1.625rem; }
.live-admin-table td { font-size: 1rem; }
.live-admin-table th { font-size: .9375rem; }
.live-admin-table td small, .live-admin-page details p { font-size: .875rem; }
.live-admin-private, .draw-record-details { grid-template-columns: minmax(90px, max-content) minmax(0, 1fr); }
.live-admin-private dt, .draw-record-details dt { overflow-wrap: anywhere; }
.home-popup-footer { flex-wrap: wrap; font-size: .9375rem; gap: 10px; }
.home-popup-footer label { white-space: normal; }
.home-popup-footer input { flex: 0 0 18px; }
.home-popup-x { font-size: 1.8125rem; line-height: 1; }
.site-footer div:nth-child(2) { flex-wrap: wrap; }

@media (max-width: 1280px) {
  .site-header { min-height: 84px; padding: 8px 18px; gap: 8px 12px; }
  .main-nav { display: none; position: absolute; top: 100%; left: 0; right: 0; padding: 12px; background: white; box-shadow: var(--shadow); flex-direction: row; flex-wrap: wrap; justify-content: flex-start; }
  .main-nav.open { display: flex; }
  .main-nav a { flex: 0 0 auto; padding: 12px 16px; }
  .menu-toggle { display: block; }
}
@media (max-width: 950px) {
  .support-layout { grid-template-columns: minmax(0, 1fr); }
  .support-panel { padding: 26px; }
  .regular-events { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .draw-timeline::before, .draw-node { left: 10px; }
  .draw-row { display: block; padding-left: 34px; }
  .draw-row + .draw-row { margin-top: 22px; }
  .draw-card:after, .draw-right .draw-card:after { left: -24px; right: auto; width: 23px; }
}
@media (max-width: 640px) {
  body { font-size: 1rem; }
  .site-header { min-height: 76px; height: auto; padding: 8px 12px; flex-wrap: wrap; }
  .site-header .brand { flex: 1 1 120px; min-width: 105px; max-width: 155px; }
  .brand > .artwork { height: auto; }
  .header-actions { gap: 5px; }
  .header-actions .btn { padding: 10px; font-size: .9375rem; }
  .form-grid { grid-template-columns: minmax(0, 1fr); }
  .main-events { grid-template-columns: minmax(0, 1fr); gap: 18px; }
  .main-events .visual-top { aspect-ratio: 1.2; }
  .main-events .participant-panel { width: 38%; max-width: 43%; padding: 10px 8px; font-size: .875rem; }
  .main-events .participant-panel b, .main-events .participant-panel p, .main-events .participant-panel small { font-size: .875rem; }
  .main-events .participant-panel i { font-size: .8125rem; }
  .main-events .visual-body { padding: 14px; }
  .main-events .visual-body h3 { font-size: 1.5rem; }
  .main-events .visual-stats > span { padding: 10px; font-size: .875rem; }
  .main-events .visual-stats b { font-size: 1.125rem; white-space: normal; }
  .main-events .gold-meter > strong { font-size: 1.5rem; }
  .main-events .visual-cta { font-size: 1.125rem; padding: 12px; }
  .main-events .event-time { font-size: .9375rem; }
  .regular-events { gap: 10px; }
  .regular-events .visual-body { padding: 10px; }
  .regular-events .visual-stats { grid-template-columns: minmax(0, 1fr); }
  .regular-events h3 { font-size: 1.25rem; }
  .regular-events .visual-cta { font-size: .9375rem; padding: 11px 7px; }
  .support-panel { padding: 22px 18px; }
  .support-hero h1 { max-width: none; font-size: 2rem; }
  .support-hero-copy { min-width: 0; }
  .support-hero-copy > p { font-size: 1rem; }
  .support-private-note { font-size: .875rem; }
  .support-quick-links > a { align-items: flex-start; }
  .support-quick-links > a > span:not(.support-quick-icon) { min-width: 0; }
  .support-hero-art { opacity: .25; pointer-events: none; }
  .charge-info { grid-template-columns: minmax(0, 1fr); }
  .charge-info > div { display: flex; gap: 12px; padding: 14px; flex-wrap: nowrap; }
  .charge-info p { font-size: .9375rem; }
  .charge-info span { margin: 0; }
  .charge-notice { align-items: flex-start; }
  .charge-notice > svg { display: none; }
  .live-admin-page .btn { font-size: .9375rem; }
  .live-admin-page .stat { padding: 14px 10px; }
  .live-admin-page .popup-admin-item { grid-template-columns: 90px minmax(0, 1fr); }
  .popup-admin-item .row-actions { flex-wrap: wrap; }
  .modal { padding: 22px 18px; }
  .modal-backdrop { padding: 12px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}
