/* EVER YOURS v68 — bilingual editorial polish + mobile typography rescue
   Principle: English for visual identity / metadata; Korean for readable story content. */

:root {
  --serif:'Cormorant Garamond','Hahmlet','Noto Serif KR',Georgia,serif;
  --sans:'Manrope','Pretendard Variable','Pretendard','Noto Sans KR','Apple SD Gothic Neo','Malgun Gothic',sans-serif;
  --mono:'IBM Plex Mono','Pretendard Variable','Pretendard','Noto Sans KR',monospace;
  --ko-sans:'Pretendard Variable','Pretendard','Noto Sans KR','Apple SD Gothic Neo','Malgun Gothic',sans-serif;
  --ko-serif:'Hahmlet','Noto Serif KR','Batang',serif;
  --v18-serif:'Cormorant Garamond','Hahmlet','Noto Serif KR',serif;
  --v18-sans:'Manrope','Pretendard Variable','Pretendard','Noto Sans KR',sans-serif;
  --v18-mono:'IBM Plex Mono','Pretendard Variable','Pretendard','Noto Sans KR',monospace;
}

html,body,button,input { font-synthesis:none; }
body {
  font-family:var(--sans);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

/* Korean prose must never inherit the cold fallback/system look on mobile. */
.legacy-copy > p,
.residence-copy > p,
.location-copy > p,
.academy-life-copy p,
.calendar-intro,
.calendar-card p,
.partner p,
.v21-directory-copy > p,
.v31-circles-head > p,
.v31-public-copy,
.v31-campus-note p,
.v31-unofficial-head p,
.v31-caste-grid p,
.v21-card-role,
.v21-student-card blockquote,
.v21-profile-heading blockquote,
.v21-profile-summary-grid p,
.v21-profile-preferences p,
.v18-connection-grid .connection p,
.v21-private-note p,
.archive-header p,
.call-title p,
.v25-limbo-copy p,
.v18-archive-foot p,
.story-preview-intro > p,
.story-scene-copy p,
.story-reader-empty p,
.story-log-prose p,
.story-log-dialogue blockquote,
.story-choice-copy,
.story-selected-choice,
.story-reader-actions small,
.poster-copy > p:not(.section-label),
.interaction-guide strong,
.interaction-guide p {
  font-family:var(--ko-sans)!important;
  word-break:keep-all;
}
.interaction-guide strong { font-family:var(--ko-serif)!important; }

/* English identity labels stay crisp and deliberately editorial. */
.main-nav a,
.brand small,
.v18-kicker,
.section-label,
.record-code,
.social-kicker,
.terminal-status,
.archive-toolbar button,
.v21-filter,
.campus-node span,
.map-label-card strong,
.ever-next-copy p[lang='it'] {
  font-family:var(--v18-sans)!important;
  text-transform:uppercase;
}

/* ---------- Header / navigation ---------- */
.brand small {
  font-size:10.5px!important;
  letter-spacing:.105em!important;
  color:#aaa398!important;
}
.main-nav a {
  font-size:12.5px!important;
  font-weight:600!important;
  letter-spacing:.145em!important;
  color:#aaa49a!important;
}
.main-nav a::after { bottom:18px!important; }
.music-launcher-copy small { letter-spacing:.12em!important; }

/* ---------- Intro video: visible over bright AND dark footage ---------- */
.intro-video-vignette {
  background:
    linear-gradient(180deg,rgba(0,0,0,.20) 0%,rgba(0,0,0,.03) 26%,rgba(0,0,0,.05) 63%,rgba(0,0,0,.62) 100%)!important,
    radial-gradient(ellipse at 50% 60%,transparent 0 31%,rgba(0,0,0,.18) 65%,rgba(0,0,0,.42) 100%)!important;
}
.intro-welcome {
  background:
    radial-gradient(ellipse 55% 21% at 50% 60%,rgba(0,0,0,.50),rgba(0,0,0,.22) 42%,transparent 74%)!important;
}
.intro-welcome-card {
  width:min(94vw,1180px)!important;
  padding:32px 28px!important;
  isolation:isolate;
}
.intro-welcome-card::before {
  content:'';
  position:absolute;
  z-index:-1;
  inset:4% 5%;
  background:radial-gradient(ellipse at center,rgba(0,0,0,.56) 0%,rgba(0,0,0,.24) 45%,transparent 74%);
  filter:blur(12px);
  pointer-events:none;
}
.intro-welcome-card::after {
  content:'';
  display:block;
  width:min(260px,30vw);
  height:1px;
  margin:18px auto 0;
  background:linear-gradient(90deg,transparent,rgba(218,193,134,.78),transparent);
  box-shadow:0 0 14px rgba(218,193,134,.18);
}
.intro-welcome-card strong {
  color:#fffaf0!important;
  font:600 clamp(30px,4.25vw,64px)/1.02 var(--v18-serif)!important;
  letter-spacing:.105em!important;
  text-indent:.105em!important;
  -webkit-text-stroke:.35px rgba(0,0,0,.72);
  text-shadow:
    0 2px 2px rgba(0,0,0,.95),
    0 5px 16px rgba(0,0,0,.92),
    0 14px 42px rgba(0,0,0,.72)!important;
}
.intro-welcome-card span {
  margin-top:16px!important;
  color:#ead39d!important;
  font:600 clamp(13px,1.15vw,17px)/1.35 var(--v18-sans)!important;
  letter-spacing:.235em!important;
  text-indent:.235em!important;
  text-shadow:0 2px 3px rgba(0,0,0,1),0 5px 18px rgba(0,0,0,.98)!important;
}
.intro-welcome-secondary strong {
  font-size:clamp(24px,3vw,43px)!important;
  letter-spacing:.16em!important;
  text-indent:.16em!important;
}
.intro-welcome-secondary::after { width:min(180px,22vw); }
.intro-skip {
  min-height:48px!important;
  padding-inline:18px!important;
  border-color:rgba(236,221,187,.58)!important;
  background:rgba(5,6,5,.62)!important;
  color:#fffaf1!important;
  font-family:var(--v18-mono)!important;
  font-size:11.5px!important;
  letter-spacing:.13em!important;
  box-shadow:0 10px 34px rgba(0,0,0,.34),inset 0 1px rgba(255,255,255,.06)!important;
}

/* ---------- Small editorial labels ---------- */
.v18-kicker,.section-label,.record-code,.social-kicker {
  font-size:11.5px!important;
  line-height:1.35!important;
  letter-spacing:.135em!important;
}
.home-cover-official,.academy-official-name {
  font-family:var(--v18-sans)!important;
  font-weight:600!important;
  letter-spacing:.12em!important;
  text-transform:uppercase;
}

/* ---------- Coming up next ---------- */
.ever-next-copy h2 {
  text-shadow:0 2px 12px rgba(0,0,0,.58),0 8px 30px rgba(0,0,0,.42)!important;
}
.ever-next-copy p[lang='it'] {
  max-width:250px;
  white-space:normal!important;
  color:#d6b56f!important;
  font-family:var(--v18-serif)!important;
  font-size:clamp(13px,1vw,18px)!important;
  font-style:italic;
  font-weight:500!important;
  line-height:1.35!important;
  letter-spacing:.025em!important;
  text-transform:none;
  text-shadow:0 2px 14px rgba(0,0,0,.62)!important;
}

/* ---------- Korean readability floor ---------- */
@media (max-width:760px) {
  body { font-size:16px; }
  .brand small { font-size:9.5px!important; letter-spacing:.08em!important; }
  .main-nav {
    padding:28px 22px 30px!important;
    gap:0!important;
    border-top:1px solid rgba(255,255,255,.07);
    box-shadow:0 24px 50px rgba(0,0,0,.46);
  }
  .main-nav a {
    padding:15px 2px!important;
    font-size:14.5px!important;
    letter-spacing:.14em!important;
  }
  .main-nav a::after { bottom:8px!important; }

  .intro-video-vignette {
    background:
      linear-gradient(180deg,rgba(0,0,0,.42),rgba(0,0,0,.08) 29%,rgba(0,0,0,.10) 64%,rgba(0,0,0,.70))!important,
      radial-gradient(ellipse at 50% 58%,transparent 20%,rgba(0,0,0,.38) 100%)!important;
  }
  .intro-welcome {
    background:radial-gradient(ellipse 78% 20% at 50% 58%,rgba(0,0,0,.62),rgba(0,0,0,.30) 47%,transparent 78%)!important;
  }
  .intro-welcome-card {
    top:56%!important;
    width:100vw!important;
    padding:26px 14px!important;
  }
  .intro-welcome-card strong {
    font-size:clamp(28px,8.7vw,42px)!important;
    line-height:1.06!important;
    letter-spacing:.07em!important;
    text-indent:.07em!important;
  }
  .intro-welcome-card span {
    margin-top:14px!important;
    font-size:clamp(12.5px,3.5vw,15px)!important;
    line-height:1.35!important;
    letter-spacing:.15em!important;
    text-indent:.15em!important;
  }
  .intro-welcome-secondary strong {
    font-size:clamp(22px,6.4vw,31px)!important;
    letter-spacing:.10em!important;
    text-indent:.10em!important;
  }
  .intro-welcome-card::after { margin-top:15px; width:150px; }
  .intro-skip {
    right:14px!important;
    bottom:calc(16px + env(safe-area-inset-bottom))!important;
    min-height:46px!important;
    font-size:11px!important;
  }

  .v18-kicker,.section-label,.record-code,.social-kicker {
    font-size:11px!important;
    letter-spacing:.105em!important;
  }

  .legacy-copy > p,
  .residence-copy > p,
  .location-copy > p,
  .academy-life-copy p,
  .calendar-card p,
  .partner p,
  .v21-directory-copy > p,
  .v31-circles-head > p,
  .v31-public-copy,
  .v31-campus-note p,
  .v31-unofficial-head p,
  .v31-caste-grid p,
  .v21-card-role,
  .v21-student-card blockquote,
  .v21-profile-summary-grid p,
  .v21-profile-preferences p,
  .v18-connection-grid .connection p,
  .v21-private-note p,
  .archive-header p,
  .call-title p,
  .v25-limbo-copy p,
  .v18-archive-foot p,
  .story-preview-intro > p,
  .story-scene-copy p,
  .story-reader-empty p,
  .story-log-prose p,
  .story-log-dialogue blockquote,
  .poster-copy > p:not(.section-label) {
    font-size:14.5px!important;
    line-height:1.72!important;
    letter-spacing:-.01em!important;
  }

  .interaction-guide strong { font-size:19px!important; line-height:1.55!important; }
  .interaction-guide p { font-size:14px!important; line-height:1.72!important; }

  .ever-next-copy p[lang='it'] {
    max-width:190px;
    font-size:clamp(12px,3.6vw,14px)!important;
    line-height:1.35!important;
  }
}

@media (max-width:430px) {
  .intro-welcome-card strong { font-size:clamp(26px,8.2vw,36px)!important; }
  .intro-welcome-card span { font-size:12px!important; letter-spacing:.12em!important; text-indent:.12em!important; }
  .intro-welcome-secondary strong { font-size:clamp(20px,6vw,27px)!important; }
  .main-nav a { font-size:14px!important; }
}
