/* Reuses the reference site's typography, palette, capsules, panels and outlines. */
:root { --header-height:76px; --screen-height:calc(100dvh - var(--header-height)); }
html,body { height:100%; overflow:clip; }
body.recruitment { margin:0 auto; max-width:480px; width:100%; padding-top:var(--header-height); }
header .header_nav_wrap { width:90%; max-width:432px; top:6px; opacity:1; visibility:visible; pointer-events:auto; }
header .header_navi { padding:9px 18px!important; min-height:62px; }
header .header_navi .header_logo a { width:auto; }
.company-wordmark { display:block; font-family:'IBM Plex Sans JP',sans-serif; font-size:23px; line-height:1.2; font-weight:700; color:var(--color-blue); letter-spacing:1px; }
.company-wordmark small { display:block; font-size:9px; font-weight:500; letter-spacing:0; margin-top:4px; }
header .header_burger { width:48px!important; }
header .header_sp_menu { overflow:visible; padding:40px 8px 10px; }
header .header_sp_menu:not(.is-open) { visibility:hidden; }
header .header_sp_menu.is-open { overflow:visible; }
header .header_sp_menu li a { font-family:'IBM Plex Sans JP',sans-serif; font-size:11px; }
.swipe-container { height:var(--screen-height); overflow-y:auto; overflow-x:hidden; scroll-snap-type:y mandatory; scroll-behavior:auto; overscroll-behavior-y:contain; -webkit-overflow-scrolling:touch; scrollbar-width:none; }
.swipe-container::-webkit-scrollbar { display:none; }
.swipe-container:focus-visible { outline:2px solid var(--color-blue); outline-offset:-2px; }
.recruit-screen { position:relative; display:flex; flex-direction:column; justify-content:center; gap:16px; width:100%; height:var(--screen-height); min-height:var(--screen-height); max-height:var(--screen-height); padding:24px 0; scroll-snap-align:start; scroll-snap-stop:always; color:var(--color-blue); }
.recruit-screen > * { flex-shrink:0; }
.recruit-screen p { overflow-wrap:anywhere; }
.recruit-screen .section_title__block { margin:0; gap:0; }
.recruit-screen .section_title { padding:16px 32px 12px; }
.recruit-screen .section_title__sub { font-size:40px; }
.recruit-screen .section_title__main { font-size:12px; font-weight:500; }
.recruit-screen .section_title__actions { background-color:var(--color-lightblue); }
.recruit-headline { font-family:'IBM Plex Sans JP',sans-serif; font-size:27px; font-weight:700; line-height:1.4; text-align:center; margin:0; padding:0 16px; overflow-wrap:anywhere; }
.reading { width:88%; margin:0 auto; font-size:14px; line-height:1.8; }
.reading > p { margin-top:16px; }
.reading .recruit-headline { padding:0; margin-bottom:20px; }
.recruit-illust { width:100px; object-fit:contain; height:auto; }
.recruit-screen .artist { width:88%; margin:0 auto; padding:22px; border-radius:20px; }
.recruit-screen .artist_bio { margin:14px 0; padding:16px 18px; }
.recruit-screen .artist_bio__name { margin-bottom:8px; font-size:14px; }
.recruit-screen .artist_bio__info { font-size:14px; line-height:1.8; }
.recruit-screen .btn_link { margin:4px auto 0; padding:12px 22px; gap:16px; }
.recruit-screen .btn_link__arrow { width:42px; height:42px; }
.recruit-screen .btn_link__text { font-size:14px; }
.recruit-hero { padding:0; justify-content:space-between; gap:0; }
.recruit-hero .fv_marquee { width:100%; height:28px; background:var(--color-blue); color:white; overflow:clip; display:flex; align-items:center; }
.recruit-hero .fv_marquee__track { display:flex; width:max-content; gap:24px; white-space:nowrap; animation:recruit-marquee 24s linear infinite; font:600 13px/1 var(--ff-accent); }
.recruit-hero .fv_marquee__track span { flex-shrink:0; }
@keyframes recruit-marquee { to { transform:translateX(-50%); } }
.hero-content { position:relative; width:90%; margin:auto; text-align:center; }
.hero-eyebrow { font-size:11px; margin:0 0 12px; }
.hero-content h1 { font-size:39px; font-weight:700; line-height:1.28; letter-spacing:-1.5px; }
.hero-content h1 span { color:var(--color-white); -webkit-text-stroke:1px var(--color-blue); paint-order:stroke fill; }
.hero-illustrations { height:120px; position:relative; display:flex; justify-content:space-around; align-items:center; margin:12px 0; }
.hero-illustrations .recruit-illust { height:125px; width:145px; animation:illust-rock 5s ease-in-out infinite alternate; }
.hero-illustrations .recruit-illust:last-child { animation-delay:-2s; }
.hero-lead { max-width:360px; margin:auto; font-size:14px; line-height:1.8; }
.hero-lead p+p { margin-top:10px; }
.text-next { display:inline-block; margin-top:14px; font-size:12px; font-weight:700; }
.recruit-message { background:var(--color-blue); padding:40px 0; }
.recruit-message .statement { width:100%; padding:0; overflow:visible; }
.recruit-message .statement_block { padding:28px 16px 64px; }
.recruit-message .recruit-headline { font-size:26px; padding:0; margin-bottom:24px; }
.recruit-message .statement__text p { font-size:14px; line-height:1.7; margin-bottom:18px; }
.recruit-message .message-illustration { position:absolute; width:88px; bottom:-22px; right:0; animation:illust-rock 5s ease-in-out infinite alternate; }
.recruit-empathy .reading { text-align:center; }
.bottom-illustration { width:100px; height:100px; margin:0 auto; animation:illust-rock 5s ease-in-out infinite alternate; }
.recruit-experience .reading { padding:22px; }
.ability-list { border-top:1px dashed var(--color-blue); border-bottom:1px dashed var(--color-blue); padding:12px 0; }
.ability-list p { font-weight:700; font-size:13px; line-height:1.8; }
.recruit-philosophy { background:var(--color-blue); color:white; }
.recruit-philosophy .reading { text-align:center; }
.reason-list { margin:16px 0; padding:14px 0; border-top:1px dashed white; border-bottom:1px dashed white; }
.reason-list .reason-label { font-size:12px; margin-bottom:10px; }
.reason-list p:not(.reason-label) { font-weight:700; font-size:18px; line-height:1.8; }
.recruit-work .goods { width:88%; margin:auto; }
.recruit-work .goods_block { width:100%; }
.work-visual { position:relative; height:200px; display:flex; align-items:center; justify-content:center; gap:10px; background:var(--color-orange); }
.work-visual .work-key { font-size:34px; font-weight:700; color:white; -webkit-text-stroke:1px var(--color-blue); }
.work-visual .recruit-illust { width:115px; height:145px; }
.recruit-work .goods_info { padding:20px!important; }
.recruit-work .recruit-headline { text-align:left; padding:0; font-size:24px; }
.recruit-work .goods_info__text { font-size:14px; line-height:1.8; }
.recruit-work .goods_info__text p+p { margin-top:12px; }
.salary-board { width:88%; margin:0 auto; background:var(--color-pink); border:1px solid var(--color-blue); border-radius:20px; padding:12px 20px; }
.salary-row { display:flex; align-items:center; justify-content:space-between; gap:8px; padding:12px 0; }
.salary-row+.salary-row { border-top:1px solid var(--color-blue); }
.salary-row p { font-size:14px; font-weight:700; }
.salary-row p span { display:block; font-size:12px; font-weight:500; margin-top:8px; }
.salary-row strong { font-family:roc-grotesk-condensed,sans-serif; font-size:82px; line-height:.9; font-weight:800; white-space:nowrap; }
.salary-row strong small { font-family:'IBM Plex Sans JP',sans-serif; font-size:21px; }
.recruit-salary .reading { text-align:center; }
.recruit-salary .reading > p:first-child { margin-top:0; }
.time-figure { text-align:center; color:white; background:var(--color-purple); border-radius:20px; border:1px solid var(--color-blue); width:88%; margin:0 auto; padding:14px 0; }
.time-figure p { font-size:13px; margin-bottom:6px; }
.time-figure strong { font-family:roc-grotesk-condensed,sans-serif; font-size:110px; line-height:.9; font-weight:800; }
.time-figure strong small { font-size:76px; }
.recruit-time .reading { text-align:center; }
.recruit-time .reading > p:first-child { margin-top:0; }
.recruit-benefits .reading > p { text-align:center; }
.recruit-people .artist_bio { text-align:center; padding:14px; }
.recruit-people .artist_bio__name { display:inline-block; color:white; background:var(--color-blue); padding:4px 10px; font-weight:700; }
.recruit-people .artist_bio__info p { font-size:16px; font-weight:700; }
.ampersand { display:block; font:800 26px/1 var(--ff-accent); margin:4px 0; }
.recruit-people .reading > p { text-align:center; }
.info-list { font-size:14px; line-height:1.7; }
.info-list > div + div { border-top:1px dashed var(--color-blue); margin-top:16px; padding-top:16px; }
.info-list dt { font-weight:700; margin-bottom:6px; }
.info-list dd { margin:0; }
.info-list small { font-size:12px; }
.info-list a { text-decoration:underline; text-underline-offset:3px; }
.recruit-company .info-list { font-size:13px; }
.recruit-company .info-list > div + div { margin-top:10px; padding-top:10px; }
.recruit-closing { background:var(--color-blue); color:white; }
.closing-content { width:94%; margin:auto; text-align:center; }
.closing-en { font-family:var(--ff-accent); font-size:76px; font-weight:800; line-height:.85; margin-bottom:24px; }
.recruit-closing .recruit-headline { font-size:28px; }
.closing-illustrations { display:flex; justify-content:center; gap:30px; margin:22px 0; }
.closing-illustrations .recruit-illust { width:100px; height:110px; animation:illust-rock 5s ease-in-out infinite alternate; }
.closing-company { font-size:12px; margin-top:24px; }
.form-field { margin-bottom:18px; }
.form-field:last-child { margin-bottom:0; }
.form-field label { display:flex; align-items:center; gap:10px; font-size:13px; font-weight:700; margin-bottom:8px; }
.form-field label span { font-size:10px; font-weight:500; line-height:1; padding:4px 6px; background:var(--color-pink); color:var(--color-blue); border-radius:10px; border:1px solid var(--color-blue); }
.form-field input,.form-field textarea,.form-field select { display:block; width:100%; min-width:0; border:1px solid var(--color-blue); background:#f4fdff; color:var(--color-blue); border-radius:10px; font:400 16px/1.5 'IBM Plex Sans JP',sans-serif; padding:10px 12px; }
.form-field textarea { resize:none; height:100px; }
.form-field input::placeholder { font-size:12px; color:#456ca5; }
.form-field :is(input,textarea,select):focus-visible { outline:2px solid var(--color-blue); outline-offset:2px; }
.form-field input[aria-invalid=true] { border-width:2px; }
.form-error { font-size:12px; line-height:1.5; margin:0; }
.form-note,.form-back { width:90%; margin:0 auto; text-align:center; font-size:12px; line-height:1.6; }
.form-back { text-decoration:underline; text-underline-offset:3px; }
.recruit-review .info-list { font-size:12px; }
.recruit-review .info-list > div+div { margin-top:8px; padding-top:8px; }
.recruit-review .info-list dd { overflow-wrap:anywhere; white-space:pre-wrap; }
.recruit-review .info-list dt { margin-bottom:3px; }
#application { display:none; }
@media(max-width:359px) {
 .hero-content h1 { font-size:33px; }
 .recruit-headline { font-size:23px; }
 .recruit-screen .section_title__sub { font-size:33px; }
 .reading { font-size:13px; }
 .recruit-screen .artist { width:92%; padding:16px; }
 .salary-row strong { font-size:72px; }
 .salary-row strong small { font-size:17px; }
 .recruit-message .recruit-headline { font-size:23px; }
}
@media(max-height:700px) {
 .recruit-screen { padding:12px 0; gap:10px; }
 .recruit-screen .section_title { padding:10px 24px 8px; }
 .recruit-screen .section_title__sub { font-size:32px; }
 .recruit-screen .section_title__main { font-size:11px; }
 .recruit-headline { font-size:23px; line-height:1.35; }
 .reading { font-size:13px; line-height:1.65; }
 .reading > p { margin-top:10px; }
 .reading .recruit-headline { margin-bottom:12px; }
 .recruit-screen .artist { padding:16px 18px; }
 .recruit-screen .artist_bio { margin:10px 0; padding:12px 14px; }
 .recruit-screen .artist_bio__info { font-size:13px; line-height:1.65; }
 .recruit-screen .btn_link { padding:8px 18px; }
 .recruit-screen .btn_link__arrow { width:34px; height:34px; }
 .recruit-hero { padding:0; gap:0; }
 .hero-eyebrow { margin-bottom:8px; font-size:10px; }
 .hero-content h1 { font-size:31px; line-height:1.2; }
 .hero-illustrations { height:72px; margin:6px 0; }
 .hero-illustrations .recruit-illust { height:80px; width:94px; }
 .hero-lead { font-size:13px; line-height:1.6; }
 .hero-lead p+p { margin-top:6px; }
 .text-next { margin-top:8px; }
 .recruit-message { padding:28px 0; }
 .recruit-message .statement_block { padding:18px 12px 44px; }
 .recruit-message .recruit-headline { font-size:23px; margin-bottom:14px; }
 .recruit-message .statement__text p { font-size:13px; line-height:1.6; margin-bottom:12px; }
 .recruit-message .message-illustration { width:65px; bottom:-14px; }
 .bottom-illustration { height:70px; width:70px; }
 .ability-list { padding:8px 0; }
 .reason-list { margin:10px 0; padding:10px 0; }
 .reason-list p:not(.reason-label) { font-size:16px; line-height:1.6; }
 .work-visual { height:115px; }
 .work-visual .recruit-illust { height:100px; width:90px; }
 .work-visual .work-key { font-size:29px; }
 .recruit-work .goods_info { padding:14px!important; }
 .recruit-work .recruit-headline { font-size:21px; }
 .recruit-work .goods_info__text { font-size:13px; line-height:1.65; }
 .recruit-work .goods_info__text p+p { margin-top:8px; }
 .salary-board { padding:8px 16px; }
 .salary-row { padding:8px 0; }
 .salary-row strong { font-size:66px; }
 .salary-row strong small { font-size:17px; }
 .time-figure { padding:10px 0; }
 .time-figure strong { font-size:82px; }
 .time-figure strong small { font-size:60px; }
 .recruit-people .artist_bio { padding:8px 10px; }
 .recruit-people .artist_bio__info p { font-size:14px; }
 .ampersand { font-size:21px; margin:2px 0; }
 .info-list { font-size:13px; line-height:1.65; }
 .info-list > div+div { margin-top:12px; padding-top:12px; }
 .recruit-company .info-list { font-size:12px; line-height:1.6; }
 .recruit-company .info-list > div+div { margin-top:6px; padding-top:6px; }
 .closing-en { font-size:58px; margin-bottom:18px; }
 .recruit-closing .recruit-headline { font-size:24px; }
 .closing-illustrations { margin:14px 0; }
 .closing-illustrations .recruit-illust { width:80px; height:90px; }
 .closing-company { margin-top:18px; }
 .form-field { margin-bottom:12px; }
 .form-field label { margin-bottom:6px; }
 .form-field textarea { height:76px; }
 .form-field input,.form-field textarea,.form-field select { padding:8px 10px; }
 .recruit-form { gap:8px; }
}
@media(prefers-reduced-motion:reduce) {
 .recruitment * { animation-duration:.01ms!important; animation-iteration-count:1!important; }
}
/* Confirmation uses a stable reading width so resizing does not invalidate pagination. */
.recruit-screen.recruit-review .artist { width:88%; max-width:280px; padding:16px 18px; }

/* Fixed companions use only the gutters; central mobile layout is unchanged. */
.desktop-side { display:none; }
@media (min-width:769px) {
 html { background:var(--color-bg, #F4FDFF); }
 .desktop-side {
  --side-space:calc((100vw - 480px) / 2);
  display:flex;
  position:fixed;
  top:50%;
  width:min(360px, calc(var(--side-space) - 32px));
  transform:translate(-50%, -50%);
  z-index:20;
  align-items:center;
  justify-content:center;
 }
 .desktop-side--logo { left:calc((100vw - 480px) / 4); }
 .desktop-side--logo .company-wordmark {
  white-space:nowrap;
  font-size:clamp(14px, calc(14px + (100vw - 769px) / 35), 28px);
  letter-spacing:0;
 }
 .desktop-side--cta {
  left:calc(100vw - (100vw - 480px) / 4);
  flex-direction:column;
  gap:clamp(20px, 2vw, 36px);
 }
 .desktop-side--cta .btn_link {
  width:100%;
  min-height:clamp(56px, 6vw, 88px);
  margin:0;
  padding:16px 8px;
  background:var(--color-orange);
  border-width:3px;
 }
 .desktop-side--cta .btn_link__text {
  font-size:clamp(16px, 1.8vw, 28px);
  font-weight:700;
  white-space:nowrap;
 }
 .desktop-side--cta .btn_link:hover { background:var(--color-blue); }
 .desktop-side--cta .btn_link__arrow { display:none; }
}

/* Consolidated editorial screens keep the existing profile and information patterns. */
.recruit-audience .artist_bio { text-align:left; padding:18px; }
.recruit-audience .artist_bio__info p { font-size:14px; font-weight:400; line-height:1.7; }
.recruit-audience .artist_bio__info p+p { margin-top:10px; }
.recruit-terms .info-list > div+div { margin-top:12px; padding-top:12px; }
@media(max-height:700px) {
 .recruit-audience .artist_bio { padding:12px 14px; margin:8px 0; }
 .recruit-audience .artist_bio__name { margin-bottom:6px; }
 .recruit-audience .artist_bio__info p { font-size:13px; line-height:1.55; }
 .recruit-audience .artist_bio__info p+p { margin-top:6px; }
 .recruit-entry { gap:8px; }
 .recruit-entry .artist { padding:12px 18px; }
 .recruit-entry .form-field { margin-bottom:10px; }
 .recruit-entry .form-field label { margin-bottom:5px; }
 .recruit-entry .recruit-headline { font-size:22px; }
}
@media(max-height:700px) {
 .recruit-audience .artist_bio { padding:10px 14px; margin:6px 0; }
 .recruit-audience .artist_bio__info p+p { margin-top:4px; }
 .recruit-audience .artist_bio__name { margin-bottom:4px; }
 .recruit-entry { gap:6px; }
 .recruit-entry .section_title { padding:6px 24px; }
 .recruit-entry .section_title__sub { font-size:28px; }
 .recruit-entry .form-field input { padding:6px 10px; }
 .recruit-entry .form-field { margin-bottom:8px; }
}
@media(max-height:700px) {
 .recruit-entry .artist { padding-block:8px; }
 .recruit-entry .recruit-headline { font-size:20px; }
}

/* The next screen covers the stationary hero using native sticky positioning. */
.recruit-screen { z-index:1; }
.recruit-screen:not(.recruit-philosophy) { background:#F4FDFF; }
.recruit-hero { position:sticky; top:0; z-index:0; }
@media(prefers-reduced-motion:reduce) {
 .recruit-hero { position:relative; }
}

/* User-supplied characters; retain their original transparent PNG proportions. */
.hero-illustrations { height:150px; margin:12px 0; }
.hero-illustrations .shared-character {
 position:absolute; width:29%; height:100px; animation:none;
}
.hero-illustrations .shared-character:nth-child(1) { left:0; top:0; }
.hero-illustrations .shared-character:nth-child(2) { left:34%; top:0; }
.hero-illustrations .shared-character:nth-child(3) { right:0; top:0; }
.hero-illustrations .shared-character:nth-child(4) { left:17%; bottom:-8px; }
.hero-illustrations .shared-character:nth-child(5) { right:17%; bottom:-8px; }
.work-visual .shared-character { width:105px; height:145px; }
.work-visual .shared-character:last-child { position:absolute; width:70px; height:85px; bottom:0; right:0; }
.recruit-character-box { padding:80px 0; }
.character-message { position:relative; width:90%; margin:0 auto; }
.character-message__body { padding:48px 18px 44px; background:#F4FDFF; color:var(--color-blue); text-align:center; }
.character-message__body .recruit-headline { font-size:30px; line-height:1.35; padding:0; }
.character-message__body > p { font-size:14px; line-height:1.8; margin-top:18px; }
.character-message__body .reason-list { border-color:var(--color-blue); margin:20px 0; padding:14px 0; }
.character-message__body .reason-list p:not(.reason-label) { font-size:15px; }
.character-edge { position:absolute; left:0; width:100%; display:flex; align-items:center; justify-content:space-between; pointer-events:none; z-index:2; }
.character-edge .shared-character { width:32%; height:125px; object-fit:contain; }
.character-edge--top { top:-86px; }
.character-edge--top .shared-character:first-child { margin-left:-12px; }
.character-edge--top .shared-character:last-child { margin-right:-12px; }
.character-edge--bottom { bottom:-76px; padding:0 12px; }
.character-edge--bottom .shared-character { width:38%; height:120px; }
@media(max-height:700px) {
 .hero-illustrations { height:100px; margin:6px 0; }
 .hero-illustrations .shared-character { width:28%; height:65px; }
 .work-visual .shared-character { height:100px; width:90px; }
 .work-visual .shared-character:last-child { width:55px; height:65px; }
 .recruit-character-box { padding:62px 0; }
 .character-message__body { padding:20px 12px; }
 .character-message__body .recruit-headline { font-size:24px; }
 .character-message__body > p { font-size:13px; line-height:1.65; margin-top:12px; }
 .character-message__body .reason-list { margin:12px 0; padding:10px 0; }
 .character-message__body .reason-list p:not(.reason-label) { font-size:13px; }
 .character-message__body .reason-label { margin-bottom:6px; }
 .character-edge--top { top:-60px; }
 .character-edge .shared-character { height:86px; }
 .character-edge--bottom { bottom:-59px; }
 .character-edge--bottom .shared-character { height:90px; }
}

/* Keep the top anchor in normal scroll coordinates, outside the sticky hero. */
.swipe-container { position:relative; }
.hero-anchor { position:absolute; top:0; left:0; width:1px; height:1px; pointer-events:none; }
.recruit-hero { scroll-snap-align:none; }
.hero-anchor { scroll-snap-align:start; scroll-snap-stop:always; }

/* Original KV and concept copy share one opening composition. */
.recruit-opening { justify-content:center; padding:90px 0; }
.recruit-opening .character-message__body { padding:38px 18px; }
.recruit-opening h1 { font-size:29px; line-height:1.4; font-weight:700; margin:0 0 22px; }
.recruit-opening h1 span { color:#F4FDFF; -webkit-text-stroke:1px var(--color-blue); paint-order:stroke fill; }
.opening-copy { font-size:14px; line-height:1.8; }
.opening-copy p+p { margin-top:14px; }
.opening-copy p:last-child { font-weight:700; margin-top:20px; }
@media(max-height:700px) {
 .recruit-opening { padding:62px 0; }
 .recruit-opening .character-message__body { padding:24px 14px; }
 .recruit-opening h1 { font-size:24px; line-height:1.35; margin-bottom:14px; }
 .opening-copy { font-size:13px; line-height:1.65; }
 .opening-copy p+p { margin-top:10px; }
 .opening-copy p:last-child { margin-top:14px; }
 .recruit-terms .info-list > div+div { margin-top:8px; padding-top:8px; }
}
.recruit-opening h1 { font-size:26px; line-height:1.35; }
.recruit-opening h1 span { font-size:24px; }
.recruit-opening .character-message__body { padding-block:28px; }
.opening-copy { line-height:1.65; }
@media(max-height:700px) {
 .recruit-opening h1 { font-size:24px; }
 .recruit-opening h1 span { font-size:21px; }
 .recruit-opening .character-message__body { padding-block:24px; }
}
@media(max-height:700px) {
 .recruit-opening { padding:38px 0; }
 .recruit-opening .character-message__body { padding:12px; }
 .recruit-opening h1 { margin-bottom:10px; }
 .recruit-opening .opening-copy p+p { margin-top:4px; }
 .recruit-opening .opening-copy p:last-child { margin-top:8px; }
 .recruit-opening .character-edge--top { top:-38px; }
 .recruit-opening .character-edge--bottom { bottom:-38px; }
 .recruit-opening .character-edge .shared-character { height:58px; }
}

/* Character-led KV: the recruiting copy replaces the reference's anniversary numerals. */
.recruit-cycling { padding:0; justify-content:flex-start; gap:0; }
.recruit-cycling .fv_marquee { flex-shrink:0; height:24px; }
.opening-inner { width:90%; margin:auto; }
.hero-stage { position:relative; height:220px; margin-bottom:20px; display:flex; align-items:center; }
.recruit-cycling h1 { position:relative; z-index:1; width:64%; padding:0; margin:0; font-size:34px; line-height:1.28; letter-spacing:-1px; }
.recruit-cycling h1 span { font-size:inherit; }
.hero-cast { position:absolute; right:-10px; top:12px; width:45%; height:210px; }
.hero-cast__item { position:absolute; inset:0; visibility:hidden; opacity:0; }
.hero-cast__item[data-first-character] { visibility:visible; opacity:1; }
.hero-cast .shared-character { width:100%; height:100%; object-fit:contain; animation:none; }
.recruit-cycling .opening-copy { text-align:center; }
@media(max-height:700px) {
 .recruit-cycling { padding:0; }
 .recruit-cycling .fv_marquee { height:20px; }
 .hero-stage { height:122px; margin-bottom:8px; }
 .recruit-cycling h1 { font-size:24px; line-height:1.18; letter-spacing:-.7px; }
 .recruit-cycling h1 span { font-size:inherit; }
 .hero-cast { height:116px; top:0; right:-6px; width:43%; }
 .recruit-cycling .opening-copy p+p { margin-top:4px; }
 .recruit-cycling .opening-copy p:last-child { margin-top:8px; }
}
@media(prefers-reduced-motion:reduce) {
}
.hero-stage { container-type:inline-size; }
.recruit-cycling h1 { font-size:clamp(24px, 8.4cqw, 34px); }
.restored-message .character-message__body { padding:28px 18px; }
.restored-message .character-message__body .recruit-headline { font-size:26px; }
@media(max-height:700px) {
 .recruit-cycling h1 { font-size:24px; }
 .restored-message { padding:38px 0; }
 .restored-message .character-message__body { padding:12px; }
 .restored-message .character-message__body .recruit-headline { font-size:23px; }
 .restored-message .character-message__body > p { margin-top:8px; }
 .restored-message .character-message__body .reason-list { margin:10px 0; padding:8px 0; }
 .restored-message .character-edge--top { top:-38px; }
 .restored-message .character-edge--bottom { bottom:-38px; }
 .restored-message .character-edge .shared-character { height:58px; }
}

/* A standalone cover precedes the retained introduction. */
.recruit-introduction { position:relative; z-index:1; scroll-snap-align:start; }
.recruit-main-visual { padding:0; justify-content:space-between; gap:0; }
.main-visual-inner { width:90%; margin:auto; text-align:center; }
.main-visual-company { font-size:23px; font-weight:700; letter-spacing:1px; }
.main-visual-company small { display:block; margin-top:7px; font-size:10px; letter-spacing:0; }
.main-visual-stage { position:relative; height:300px; margin:25px 0; }
.main-visual-type { position:absolute; left:0; top:58px; font-size:130px; line-height:1; font-weight:700; letter-spacing:-12px; color:var(--color-blue); }
.main-visual-stage .hero-cast { width:64%; height:280px; top:0; right:-4px; }
.main-visual-inner .recruit-headline { font-size:26px; line-height:1.45; }
.main-visual-inner .text-next { margin-top:24px; }
@media(max-width:359px) {
 .main-visual-type { font-size:104px; }
}
@media(max-height:700px) {
 .main-visual-company { font-size:21px; }
 .main-visual-stage { height:210px; margin:10px 0; }
 .main-visual-type { top:54px; font-size:104px; letter-spacing:-10px; }
 .main-visual-stage .hero-cast { height:210px; }
 .main-visual-inner .recruit-headline { font-size:23px; }
 .main-visual-inner .text-next { margin-top:14px; }
}

/* Reference-style second page: a blue field, square message panel and edge characters. */
.reference-intro { padding:88px 0 24px; }
.reference-intro .character-message { width:92%; }
.reference-intro .character-message__body { padding:44px 18px 30px; }
.reference-intro h1 { font-size:32px; line-height:1.35; margin:0 0 24px; text-align:center; letter-spacing:-.6px; }
.reference-intro h1 span { font-size:28px; color:var(--color-blue); -webkit-text-stroke:0; }
.reference-intro .opening-copy { text-align:center; }
.reference-intro .character-edge { top:-76px; }
.reference-intro .character-edge .shared-character { width:26%; height:112px; }
.reference-intro .character-edge .shared-character:first-child { position:relative; top:24px; }
.reference-intro .character-edge .shared-character:last-child { position:relative; top:30px; }
@media(max-height:700px) {
 .reference-intro { padding:50px 0 10px; }
 .reference-intro .character-message__body { padding:28px 12px 18px; }
 .reference-intro h1 { font-size:24px; line-height:1.3; margin-bottom:10px; }
 .reference-intro h1 span { font-size:21px; }
 .reference-intro .character-edge { top:-48px; }
 .reference-intro .character-edge .shared-character { height:70px; }
 .reference-intro .character-edge .shared-character:first-child { top:12px; }
 .reference-intro .character-edge .shared-character:last-child { top:16px; }
}

/* Lower-edge characters complete the second-page message frame. */
.reference-intro { padding-bottom:76px; }
.reference-intro .character-edge--bottom { top:auto; bottom:-62px; padding:0 12px; }
.reference-intro .character-edge--bottom .shared-character { width:34%; height:100px; top:0; }

/* Reuse the reference's two photo tracks and the blue curved content surface. */
.recruit-experience-photo { padding:18px 0; gap:0; }
.recruit-experience-photo .press_marquee__block { flex-shrink:0; }
.recruit-experience-photo .press_marquee__block .press_marquee__track img { width:220px; height:132px; aspect-ratio:5/3; object-fit:cover; border-radius:12px; }
.recruit-experience-photo .ppress_content { margin-top:-22px; padding:0 0 18px; color:#F4FDFF; }
.recruit-experience-photo .ppress_content:before { height:55px; }
.experience-arc { display:block; position:relative; width:86%; height:68px; margin:-32px auto 0; overflow:visible; }
.experience-arc text { font-family:var(--ff-accent); font-weight:800; font-size:46px; fill:var(--color-blue); stroke:#F4FDFF; stroke-width:.65px; }
.experience-label { position:relative; margin:0 0 14px; text-align:center; font-size:12px; }
.experience-reading { width:88%; margin:auto; font-size:14px; line-height:1.8; }
.experience-reading .recruit-headline { padding:0; font-size:25px; margin-bottom:16px; }
.experience-reading > p+p { margin-top:12px; }
@media(max-height:700px) {
 .reference-intro { padding-bottom:44px; }
 .reference-intro .character-message__body { padding:22px 12px 12px; }
 .reference-intro .opening-copy { line-height:1.55; }
 .reference-intro .opening-copy p+p { margin-top:2px; }
 .reference-intro .opening-copy p:last-child { margin-top:6px; }
 .reference-intro .character-edge--bottom { bottom:-38px; }
 .reference-intro .character-edge--bottom .shared-character { height:58px; }
 .recruit-experience-photo { padding:10px 0; }
 .recruit-experience-photo .press_marquee__block .press_marquee__track img { width:150px; height:90px; }
 .recruit-experience-photo .ppress_content { margin-top:-16px; padding-bottom:12px; }
 .recruit-experience-photo .ppress_content:before { height:34px; }
 .experience-arc { height:43px; margin-top:-24px; }
 .experience-label { font-size:11px; margin-bottom:8px; }
 .experience-reading { font-size:13px; line-height:1.6; }
 .experience-reading .recruit-headline { font-size:22px; line-height:1.3; margin-bottom:10px; }
 .experience-reading > p+p { margin-top:8px; }
}
.reference-intro .character-edge--bottom .shared-character:first-child,
.reference-intro .character-edge--bottom .shared-character:last-child { top:0; }

/* Mobile browser chrome must not cover the bottom of the scrollport.
   Use the toolbar-expanded viewport and allow scrolling through long sections. */
@media (max-width:768px) {
 :root { --screen-height:calc(100svh - var(--header-height) - env(safe-area-inset-bottom, 0px)); }
 .swipe-container { scroll-snap-type:y mandatory; scroll-padding-bottom:0; }
 .recruit-screen, .hero-anchor { scroll-snap-stop:always; }
 .swipe-container::after { display:none; }
}
