@charset "utf-8";
/* Local, upright Black face. A separate family keeps organizer/footer typography unchanged. */
@font-face {
  font-family: "Noto Sans JP Black";
  src: url('../assets/fonts/NotoSansJP-Black.woff') format('woff');
  font-style: normal;
  font-weight: 900;
  font-display: swap;
}
html { font-size: 62.5%; scroll-behavior: smooth; }
body { margin: 0; background: #030408; color: white; font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif; font-size: 1.6rem; }
img { max-width: 100%; vertical-align: bottom; }
button, a { -webkit-tap-highlight-color: transparent; }
a:focus-visible, button:focus-visible { outline: 3px solid #ffdd00; outline-offset: 4px; }
.skip-link { position: fixed; z-index: 200; top: 0; left: 10px; padding: 10px 16px; color: #111; background: white; transform: translateY(-120%); }
.skip-link:focus { transform: translateY(0); }
.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.bttf-main { width: 100%; max-width: 1920px; margin: 0 auto; }
.hero { position: relative; overflow: hidden; background: black; }
.hero-art { display: block; position: relative; left: 50%; width: 100%; max-width: none; height: auto; transform: translateX(-50%); }
.clock-row--exam { color: #ff7704; }
.clock-row--present { color: #80c400; }
.clock-row--registration_deadline { color: #fff100; }
.clock-glyph { fill: currentColor; }
.clock-row--exam .clock-glyph, .clock-row--present .clock-glyph { filter: url(#segment-glow); }
.clock-status { position: absolute; margin: 0; left: 50%; bottom: 7px; transform: translateX(-50%); max-width: calc(100% - 32px); width: max-content; box-sizing: border-box; padding: 5px 10px; color: #f6e9c6; background: rgba(0,0,0,.9); border: 1px solid #807257; border-radius: 3px; font-size: 1.1rem; line-height: 1.5; text-align: center; }
.clock-status[hidden] { display: none; }
.noscript-note { margin: 0; padding: 12px; text-align: center; font-size: 1.3rem; }
.announcement { position: relative; overflow: hidden; container-type: inline-size; aspect-ratio: 1360/1041; background: #02030a url('../assets/delorean-background.webp') no-repeat; background-size: 101.7647059% auto; background-position: 62.5% 59.332509%; }
/* Editable copy. cqw follows this section, including its 1920px maximum width. */
.spring-announcement, .details-announcement { position: absolute; display: flex; align-items: center; justify-content: center; flex-wrap: wrap; box-sizing: border-box; margin: 0; font-family: "Noto Sans JP Black", "Noto Sans JP", sans-serif; font-weight: 900; font-style: normal; font-stretch: normal; font-synthesis: none; letter-spacing: .04em; text-align: center; }
.spring-announcement > span, .details-announcement > span { position: relative; z-index: 1; white-space: nowrap; }
/* One 115% emphasis multiplier, shared by numerals and exclamation marks. */
.announcement-number, .announcement-emphasis { font: inherit; font-size: 1.15em; line-height: 1; position: relative; top: 2px; }
.spring-announcement { width: 79.9264706%; top: 3.0739673%; left: 10.0735294%; min-height: min(8.8970588vw, 170.823529px); min-height: 8.8970588cqw; padding: .3em .8em .45em 1.7em; gap: 0 1em; color: #e8456c; font-size: min(2.9411765vw, 56.470588px); font-size: 2.9411765cqw; line-height: 1.5; isolation: isolate; }
/* The panel is decoration only: no image or duplicate text behind the heading. */
.spring-announcement::before { content: ""; position: absolute; z-index: 0; inset: 5% .55% 8%; border: 1px solid #a8f2ff; border-radius: 3px; background: linear-gradient(110deg, rgba(0, 26, 73, .86), rgba(0, 20, 57, .76) 58%, rgba(0, 32, 85, .86)); box-shadow: 0 0 2px 1px #fff, 0 0 8px 3px #007cff, 0 0 15px 4px rgba(0, 57, 255, .75), inset 0 0 7px 2px #007cff, inset 0 0 19px 4px rgba(0, 69, 255, .4); pointer-events: none; }
.spring-announcement::after { content: ""; position: absolute; z-index: 0; top: 5%; left: 15%; width: 13%; height: 11%; transform: translate(-50%, -50%); background: radial-gradient(ellipse, #fff 0 4%, #9cffff 7%, #00bfff 18%, rgba(0, 110, 255, .55) 36%, transparent 72%); pointer-events: none; }
.details-announcement { width: 88%; top: 42.074928%; left: 6%; min-height: min(7.4264706vw, 142.588235px); min-height: 7.4264706cqw; gap: .18em .6em; color: #fff; font-size: min(4.5588235vw, 87.529412px); font-size: 4.5588235cqw; line-height: 1.45; letter-spacing: normal; -webkit-text-stroke: .12em #000; paint-order: stroke fill; text-shadow: .025em .025em 0 #000, -.025em -.025em 0 #000; }
/* Space only after the two numeric runs: 2026|年 and 12|月. */
.details-announcement .announcement-number { margin-inline-end: .08em; }
.organizers { position: absolute; width: 52.9411765%; top: 75.3121998%; left: 23.3088235%; }
.organizer-credits { display: grid; gap: min(1.25vw, 24px); gap: 1.25cqw; margin: 0; font-size: min(1.2867647vw, 24.705882px); font-size: 1.2867647cqw; font-weight: 700; line-height: 1.2; text-align: center; text-shadow: 0 1px 4px #000, 0 1px 4px #000; }
.organizer-credits > div { display: flex; align-items: baseline; justify-content: center; gap: .97em; }
.organizer-credits dt { flex: 0 0 auto; color: #669a29; font-size: .9142857em; font-weight: 700; }
.organizer-credits dd { min-width: 0; margin: 0; overflow-wrap: anywhere; }
.rights { position: absolute; margin: 0; right: 4.1176471%; top: 89.6253602%; max-width: 88%; font-size: clamp(8px, 1.17647vw, 22px); line-height: 1.5; text-align: right; }
@media (min-width: 768px) and (max-width: 1023px) {
  .hero-art { width: 132.8125%; }
}
@media (max-width: 767px) {
  /* Only the shared company/site navigation is hidden; copyright and PAGE TOP remain. */
  .l-footer #common-footer .l-footer__nav { display: none; }
  /* Visible art width is 720 source px, centered at x=680.
     Logo occupies x=373…1010; clock panel fits x≈480…870. */
  .hero-art { width: 188.8888889%; }
  .clock-status { font-size: 1rem; bottom: 5px; }
  .announcement { aspect-ratio: auto; height: auto; min-height: 700px; padding: 20px 18px 25px; background-size: auto 920px; background-position: center -200px; box-sizing: border-box; }
  /* 150% of the prior SP base size. Children apply their 115% emphasis once. */
  .spring-announcement { position: relative; width: 100%; top: auto; left: auto; min-height: 44px; min-height: max(44px, 11.1315547cqw); padding: .45em .5em; gap: 0 .6em; font-size: clamp(21px, 5.25vw, 40.5px); font-size: clamp(21px, 5.5197792cqw, 40.5px); }
  /* 110% of the v4 SP detail size; the phrase boundary keeps exactly two lines. */
  .details-announcement { position: relative; width: 100%; top: auto; left: auto; min-height: 0; margin-top: 190px; flex-direction: column; gap: .25em 0; font-size: clamp(26.4px, 6.996vw, 52.8px); font-size: clamp(26.4px, 7.59cqw, 52.8px); line-height: 1.45; }
  .organizers { position: relative; width: 100%; top: auto; left: auto; margin-top: 155px; }
  .organizer-credits { gap: 10px; font-size: 1.1rem; font-weight: 700; line-height: 1.7; }
  .organizer-credits > div { display: block; }
  .organizer-credits dt { color: #8bc62a; font-size: 1em; }
  .organizer-company { display: block; }
  .rights-ending { display: block; }
  .rights { position: relative; top: auto; right: auto; max-width: 100%; margin-top: 28px; font-size: 9px; line-height: 1.6; text-align: right; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
