/* Shared reading and interaction styles for the three public pages. */
html:root {
  color-scheme: light;
  --page: #F6FAF4;
  --ground: #FFFFFF;
  --surface: #FBFDFA;
  --surface-2: #EFF5EE;
  --ink: #143C2D;
  --ink-2: #425F4D;
  --ink-3: #526B5B;
  --line: #DEE8DF;
  --line-strong: #BDCFBF;
  --accent: #087044;
  --accent-ink: #FFFFFF;
  --accent-soft: #E8F3EA;
  --deep: #104C34;
  --brand: #23A455;
  --up: #C23B2B;
  --down: #626C64;
  --gold: #796A3E;
  --muted-band: #EDEDED;
}
body[data-page] { background: var(--page); font-size: 16px; line-height: 1.8; }
body[data-page] .main { min-width: 0; }
body[data-page] :is(h1, h2, h3) { overflow-wrap: anywhere; }
body[data-page] .top { background: #F6FAF4; }
body[data-page] .top-in { align-items: center; }
body[data-page] .langbtn { min-width: 44px; min-height: 44px; font-size: 13px; }
body[data-page] :is(.btn, .pbtn, .chip, .addbtn, .del) { min-height: 44px; }
body[data-page] :is(a, button, input, textarea, select, summary):focus-visible {
  outline: 3px solid #087044; outline-offset: 3px;
}
/* The selected language already translates the main description. */
body[data-page] .promo-tag > .en { display: none; }
body[data-page] .promo-tag { font-size: 16px; line-height: 1.85; color: #425F4D; }
body[data-page] .promo-sub { color: #486651; }
body[data-page] .countdown span { font-size: 12px; color: #526B5B; letter-spacing: .08em; }
body[data-page] .promo-facts span { font-size: 14px; color: #526B5B; }
body[data-page] .promo-facts b { line-height: 1.5; }
body[data-page] :is(.hint, .note, .sfine, .visual-note, .entry-facts span, .details-body, .award-note) {
  font-size: 14px; line-height: 1.85; color: var(--ink-2);
}
body[data-page] .info-details > summary { font-size: 15px; min-height: 52px; }
body[data-page] :is(.f label, .agree label) { font-size: 15px; line-height: 1.75; color: var(--ink); }
body[data-page] :is(.f input:not(:where([type=checkbox], [type=radio])), .f select, .f textarea, .unlock input) {
  min-height: 48px; font-size: 16px; line-height: 1.6; border-color: #91A995;
}
body[data-page] :is(input, textarea)::placeholder { color: #5B7061; opacity: 1; }
body[data-page] :is(input[type=checkbox], input[type=radio]) { accent-color: #087044; }
body[data-page] :is(.agree .d, .rulehead span) { font-size: 14px; line-height: 1.85; }
body[data-page] :is(.foot, .foot-in) { font-size: 13px; line-height: 1.85; }

/* Landing page: keep the illustrations compact and the essentials readable. */
body[data-page=index] .promo-copy .promo-cta { justify-content: flex-start; margin-top: 24px; }
body[data-page=index] .promo-countdown { margin-top: 24px; }
body[data-page=index] .prediction-intro { scroll-margin-top: 90px; }
body[data-page=index] .prediction-intro p { font-size: 16px; color: var(--ink-2); }
body[data-page=index] .prediction-steps span { font-size: 14px; color: var(--ink-2); }
body[data-page=index] .rail-nav a { font-size: 14px; min-height: 42px; }
body[data-page=index] .rail { top: 88px; max-height: calc(100vh - 104px); }
body[data-page=index] .rail-k { font-size: 12px; }
body[data-page=index] .lbt { font-size: 15px; }
body[data-page=index] .lbt th { font-size: 13px; letter-spacing: .02em; }
body[data-page=index] .lbt .chg .ar { animation: none; }
body[data-page=index] :is(.spec dt, .stage h3 .when, .doc .p, .board-cell .unit, .board-cell .tick) { font-size: 13px; }

/* Application: room to read labels, instructions and consent text. */
body[data-page=apply] .panel > .hd { font-size: 21px; }
body[data-page=apply] .side .spec dt { font-size: 13px; letter-spacing: 0; }
body[data-page=apply] :is(.side .spec dd, .side .steps li, .ns-card p) { font-size: 15px; line-height: 1.85; }
body[data-page=apply] .ns-card .when { font-size: 14px; line-height: 1.75; }
body[data-page=apply] .ns-card .stamp { font-size: 13px; }
body[data-page=apply] .chips label { min-height: 44px; }

/* FAQ: separate announcement titles, supporting text and metadata. */
body[data-page=talk] .talk-wrap { max-width: 1040px; }
body[data-page=talk] .card + .card { margin-top: 32px; }
body[data-page=talk] .card > .hd h2 { font-size: 22px; }
body[data-page=talk] .card > .hd .sub { font-size: 14px; }
body[data-page=talk] .notice:not(.kind) { padding-block: 24px; grid-template-columns: 88px minmax(0, 1fr) auto; gap: 10px 20px; }
body[data-page=talk] .notice strong { font-size: 17px; line-height: 1.65; }
body[data-page=talk] .notice p { max-width: 46em; margin-top: 10px; font-size: 16px; line-height: 1.9; }
body[data-page=talk] .notice .date { font-size: 13px; }
body[data-page=talk] .kind.notice { display: inline-flex; grid-template-columns: none; padding: 3px 9px; border: 0; }
body[data-page=talk] .q { padding-block: 24px; }
body[data-page=talk] .q .t { font-size: 17px; }
body[data-page=talk] .q .body { font-size: 16px; line-height: 1.9; }
body[data-page=talk] .q :is(.who, .wait, .cat, .lock) { font-size: 13px; }
body[data-page=talk] .q .who { white-space: normal; overflow-wrap: anywhere; }
body[data-page=talk] .q .ans .lb { font-size: 14px; }
body[data-page=talk] .chip { font-size: 14px; padding: 9px 16px; }
body[data-page=talk] .sla { font-size: 15px; }
body[data-page=talk] .form { padding-top: 24px; }
body[data-page=talk] .f { min-width: 0; }
body[data-page=talk] .f textarea { min-height: 160px; }

@media (max-width: 900px) {
  body[data-page=index] .rail { position: static; max-height: none; }
}
@media (max-width: 820px) {
  body[data-page=index] .promo-copy .promo-cta { justify-content: center; }
}
@media (max-width: 700px) {
  body[data-page=talk] .notice:not(.kind) { grid-template-columns: minmax(0, 1fr) auto; gap: 12px; }
  body[data-page=talk] .notice > .kinds { grid-column: 1; grid-row: 1; }
  body[data-page=talk] .notice > .date { grid-column: 2; grid-row: 1; }
  body[data-page=talk] .notice > div:not(.kinds) { grid-column: 1 / -1; }
}
@media (max-width: 600px) {
  body[data-page] .top-in { gap: 10px; padding: 12px 16px; flex-wrap: nowrap; }
  body[data-page] .top-in .org { min-width: 0; font-size: 12px; line-height: 1.75; letter-spacing: 0; }
  body[data-page] .top-r { flex: none; }
  body[data-page] .top-in .langbtn { margin: 0; padding: 7px 10px; font-size: 13px; flex: none; }
  body[data-page] .promo.short h1 { font-size: clamp(28px, 7.3vw, 38px); line-height: 1.4; }
  body[data-page] .promo.short .promo-tag { font-size: 16px; }
  body[data-page] .promo.short .promo-facts b { font-size: 18px; }
  body[data-page] .promo.short .promo-facts > div { padding: 16px 8px; }
  body[data-page] .promo-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body[data-page] .tabs-in { padding-inline: 12px; }
  body[data-page] .tabs a, body[data-page] .tabs span { padding-inline: 12px; font-size: 15px; }
  body[data-page=index] .prediction-steps { grid-template-columns: minmax(0, 1fr); gap: 0; text-align: left; margin-top: 16px; }
  body[data-page=index] .prediction-steps li { padding: 14px 0; gap: 4px; border-bottom: 1px solid var(--line); }
  body[data-page=index] .prediction-steps b { font-size: 16px; }
  body[data-page=index] .prediction-intro p { font-size: 15px; }
  body[data-page=index] .infographic-translation {
    position: static; width: auto; height: auto; margin: 20px 0 0; padding: 0;
    overflow: visible; clip-path: none; white-space: normal; display: grid; gap: 0;
    text-align: left;
  }
  body[data-page=index] .infographic-translation > div { padding: 16px 0; }
  body[data-page=index] .infographic-translation b { font-size: 18px; }
  body[data-page=index] .infographic-translation p { font-size: 15px; line-height: 1.8; color: var(--ink-2); }
  body[data-page=index] .lbt th, body[data-page=index] .lbt td { padding: 12px; }
  body[data-page=apply] .form-wrap, body[data-page=talk] .talk-wrap { padding-inline: 16px; }
  body[data-page=apply] .panel > .bd { padding-inline: 18px; }
  body[data-page=apply] .agree .d { margin-left: 0; padding: 14px; }
  body[data-page=talk] .talk-wrap { padding-top: 28px; }
  body[data-page=talk] .card > .hd .sub { flex-basis: 100%; order: 3; }
  body[data-page=talk] .q .who { width: 100%; margin-left: 0; }
}

/* Award conditions stay visible under the artwork in both languages. */
body[data-page=index] #awards .award-conditions { margin-top: 28px; }
body[data-page=index] #awards .award-conditions h3 { font-size: 20px; padding: 22px 0 16px; }
body[data-page=index] #awards .details-body, body[data-page=index] #awards .award-note { font-size: 15px; line-height: 1.85; }
html[lang=en] #awards .story-visual { display: none; }

/* Compact 3D welcome icon; eligibility remains real, selectable text. */
.eligibility-intro { display: flex; align-items: center; gap: 22px; }
.eligibility-icon { display: block; width: 112px; height: 112px; object-fit: contain; flex: none; }
#eligibility .eligibility-intro .sec-note { margin: 0; }
@media(max-width:600px) { .eligibility-intro { gap: 12px; } .eligibility-icon { width: 80px; height: 80px; } #eligibility .eligibility-intro .sec-note { font-size: 16px; line-height: 1.8; } }

body[data-page] .promo .pbtn:not(.ghost) { background: #367747; border-color: #367747; }
body[data-page] .promo .pbtn:not(.ghost):hover { background: #285E37; border-color: #285E37; }
