/* 真似元: platin.co.jp/saiyo/
   観察: 宇宙(星雲)背景 + 巨大メタリッククローム漢字キャッチ + ネオンシアン"START"ボタン
        下層ページは黒背景 + シアン枠カード + 地球画像ヒーロー
   ロード: fonts.cssと同階層 */
@import url('./fonts.css');

*,*::before,*::after{box-sizing:border-box}
html,body{margin:0;padding:0}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}

:root{
  /* 上層(TOP)= 宇宙ペールトーン */
  --p33-sky-1:#dfe7ee;
  --p33-sky-2:#cfd7e3;
  --p33-sky-3:#e8d4d8; /* 星雲ピンク */
  --p33-sky-4:#b8c4d4;
  /* 下層 = 黒地+ネオン */
  --p33-bg:#05070d;
  --p33-bg-2:#0a1020;
  --p33-bg-3:#101a2e;
  --p33-cyan:#19e6ff;
  --p33-cyan-dim:#0fb7cc;
  --p33-cyan-glow:rgba(25,230,255,.5);
  --p33-text:#e9f3fb;
  --p33-text-dim:#9bb0c2;
  --p33-line:rgba(25,230,255,.35);
  --p33-line-soft:rgba(155,176,194,.2);
}

body{
  font-family:var(--p33-font-body);
  color:var(--p33-text);
  background:var(--p33-bg);
  line-height:1.7;
  letter-spacing:.02em;
  min-height:100vh;
  overflow-x:hidden;
}

.p33-skip{
  position:absolute;left:-9999px;top:0;background:var(--p33-cyan);color:#000;padding:8px 16px;z-index:9999;
}
.p33-skip:focus{left:8px;top:8px}

/* ===== HEADER ===== */
.p33-header{
  position:fixed;top:0;left:0;right:0;z-index:80;
  display:flex;align-items:center;justify-content:space-between;
  padding:18px 28px;
  background:linear-gradient(180deg,rgba(5,7,13,.85),rgba(5,7,13,0));
  backdrop-filter:blur(6px);
}
.p33-header__brand{
  display:flex;flex-direction:column;line-height:1.1;
}
.p33-header__brand small{
  font-family:var(--p33-font-display);font-size:10px;letter-spacing:.3em;color:var(--p33-cyan);
}
.p33-header__brand strong{
  font-family:var(--p33-font-jp);font-weight:900;font-size:14px;color:#fff;margin-top:4px;
}
.p33-header__nav{
  display:flex;gap:24px;font-family:var(--p33-font-display);font-size:11px;letter-spacing:.25em;
}
.p33-header__nav a{
  color:#cfe2ee;opacity:.85;padding:6px 0;border-bottom:1px solid transparent;transition:.25s;
}
.p33-header__nav a:hover{color:var(--p33-cyan);border-bottom-color:var(--p33-cyan);opacity:1}
.p33-header__entry{
  font-family:var(--p33-font-display);font-size:12px;letter-spacing:.3em;
  padding:10px 22px;border:1px solid var(--p33-cyan);color:var(--p33-cyan);
  box-shadow:0 0 12px var(--p33-cyan-glow),inset 0 0 12px rgba(25,230,255,.15);
  transition:.3s;
}
.p33-header__entry:hover{background:var(--p33-cyan);color:#000}

/* ===== HERO (TOP) ===== */
.p33-hero{
  position:relative;
  min-height:100vh;
  display:flex;align-items:center;justify-content:center;
  background:
    radial-gradient(ellipse at 20% 30%, rgba(232,212,216,.6) 0%, transparent 50%),
    radial-gradient(ellipse at 80% 70%, rgba(180,200,220,.5) 0%, transparent 55%),
    radial-gradient(ellipse at 50% 50%, rgba(220,228,238,.4) 0%, transparent 70%),
    linear-gradient(180deg, #dfe7ee 0%, #c8d4e2 50%, #d8c9d2 100%);
  overflow:hidden;
}
/* 星雲フレア光線 */
.p33-hero::before{
  content:'';position:absolute;inset:0;
  background:
    linear-gradient(45deg, transparent 40%, rgba(255,255,255,.4) 49%, rgba(255,255,255,.7) 50%, rgba(255,255,255,.4) 51%, transparent 60%),
    linear-gradient(-30deg, transparent 60%, rgba(255,255,255,.3) 70%, transparent 80%);
  opacity:.55;
  pointer-events:none;
}
/* 星屑 */
.p33-hero::after{
  content:'';position:absolute;inset:0;
  background-image:
    radial-gradient(1px 1px at 12% 20%, #fff 50%, transparent),
    radial-gradient(1px 1px at 25% 60%, #fff 50%, transparent),
    radial-gradient(1.5px 1.5px at 47% 15%, #fff 50%, transparent),
    radial-gradient(1px 1px at 65% 80%, #fff 50%, transparent),
    radial-gradient(1px 1px at 80% 25%, #fff 50%, transparent),
    radial-gradient(2px 2px at 35% 45%, rgba(255,255,255,.8) 50%, transparent),
    radial-gradient(1px 1px at 90% 55%, #fff 50%, transparent),
    radial-gradient(1px 1px at 55% 90%, #fff 50%, transparent);
  pointer-events:none;
  opacity:.9;
}
.p33-hero__inner{
  position:relative;z-index:2;
  text-align:center;
  padding:0 24px;
}
.p33-hero__copy{
  font-family:var(--p33-font-jp);
  font-weight:900;
  font-size:clamp(48px, 11vw, 160px);
  letter-spacing:.05em;
  margin:0;
  /* メタリッククローム */
  background:linear-gradient(180deg,
    #ffffff 0%,
    #ffffff 35%,
    #c4d4e2 50%,
    #ffffff 65%,
    #ffffff 100%);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
  text-shadow:
    0 0 30px rgba(255,255,255,.8),
    0 2px 0 rgba(200,210,220,.5),
    0 4px 8px rgba(100,120,140,.3);
  filter:drop-shadow(0 6px 18px rgba(120,140,160,.35));
  line-height:1;
}
.p33-hero__sub{
  font-family:var(--p33-font-display);
  font-weight:700;
  font-size:clamp(22px, 3vw, 38px);
  letter-spacing:.18em;
  margin:24px 0 0;
  color:transparent;
  background:linear-gradient(180deg,#ffffff,#b8cbd9);
  -webkit-background-clip:text;background-clip:text;
  text-shadow:0 0 20px rgba(255,255,255,.6);
}
.p33-hero__start{
  display:inline-block;margin-top:48px;
  font-family:var(--p33-font-display);font-weight:700;
  font-size:18px;letter-spacing:.4em;padding:18px 80px;
  color:var(--p33-cyan);
  background:rgba(255,255,255,.15);
  border:2px solid var(--p33-cyan);
  box-shadow:
    0 0 24px rgba(25,230,255,.6),
    inset 0 0 24px rgba(25,230,255,.15);
  position:relative;
  transition:.3s;
}
.p33-hero__start::before,.p33-hero__start::after{
  content:'';position:absolute;width:14px;height:14px;border:2px solid var(--p33-cyan);
}
.p33-hero__start::before{top:-6px;left:-6px;border-right:0;border-bottom:0}
.p33-hero__start::after{bottom:-6px;right:-6px;border-left:0;border-top:0}
.p33-hero__start:hover{background:var(--p33-cyan);color:#000;text-shadow:0 0 8px #fff}

.p33-hero__scroll{
  position:absolute;bottom:24px;left:50%;transform:translateX(-50%);
  font-family:var(--p33-font-display);font-size:10px;letter-spacing:.4em;color:#fff;
  text-shadow:0 0 10px rgba(255,255,255,.8);
  writing-mode:vertical-rl;
  z-index:3;
}

/* ===== TOP セクション(スクロール後・下層風) ===== */
.p33-section{
  position:relative;
  background:var(--p33-bg);
  padding:120px 0;
  overflow:hidden;
}
.p33-section--space{
  background:
    radial-gradient(ellipse at 30% 20%, rgba(25,90,160,.3) 0%, transparent 50%),
    radial-gradient(ellipse at 70% 80%, rgba(120,40,90,.25) 0%, transparent 50%),
    linear-gradient(180deg, #05070d 0%, #0a1020 50%, #05070d 100%);
}
.p33-section--space::before{
  content:'';position:absolute;inset:0;
  background-image:
    radial-gradient(1px 1px at 15% 25%, rgba(255,255,255,.9), transparent),
    radial-gradient(1px 1px at 32% 70%, rgba(255,255,255,.7), transparent),
    radial-gradient(1.5px 1.5px at 55% 40%, rgba(255,255,255,.8), transparent),
    radial-gradient(1px 1px at 78% 15%, rgba(255,255,255,.6), transparent),
    radial-gradient(1px 1px at 88% 65%, rgba(255,255,255,.7), transparent),
    radial-gradient(1px 1px at 45% 85%, rgba(255,255,255,.5), transparent);
  pointer-events:none;
}
.p33-section__inner{position:relative;max-width:1180px;margin:0 auto;padding:0 28px;z-index:2}

.p33-sec__head{text-align:center;margin-bottom:64px}
.p33-sec__num{
  font-family:var(--p33-font-display);font-weight:900;
  font-size:14px;letter-spacing:.4em;color:var(--p33-cyan);
  text-shadow:0 0 12px var(--p33-cyan-glow);
  display:block;
}
.p33-sec__title{
  font-family:var(--p33-font-display);font-weight:900;
  font-size:clamp(40px,6vw,72px);letter-spacing:.15em;
  margin:8px 0 0;color:#fff;
  text-shadow:0 0 22px rgba(255,255,255,.4);
}
.p33-sec__sub{
  font-family:var(--p33-font-jp);font-weight:700;
  font-size:16px;color:var(--p33-cyan);margin-top:12px;letter-spacing:.2em;
}

/* ===== 募集要項エントリー (sub-1風カードグリッド) ===== */
.p33-entrygrid{
  display:grid;grid-template-columns:repeat(2,1fr);gap:24px;
}
.p33-entrycard{
  border:1px solid var(--p33-line);
  background:linear-gradient(180deg,rgba(15,25,45,.7),rgba(8,14,28,.85));
  padding:28px;
  position:relative;
  transition:.3s;
}
.p33-entrycard:hover{
  border-color:var(--p33-cyan);
  box-shadow:0 0 24px rgba(25,230,255,.3),inset 0 0 24px rgba(25,230,255,.06);
  transform:translateY(-2px);
}
.p33-entrycard__title{
  font-family:var(--p33-font-jp);font-weight:900;font-size:18px;color:#fff;
  border-bottom:1px solid var(--p33-line);padding-bottom:14px;margin:0 0 14px;
  letter-spacing:.06em;
}
.p33-entrycard__title small{font-family:var(--p33-font-display);font-size:10px;letter-spacing:.3em;color:var(--p33-cyan);display:block;margin-bottom:6px}
.p33-entrycard__body{font-size:13px;color:var(--p33-text-dim);line-height:1.7;min-height:80px}
.p33-entrycard__btn{
  display:inline-block;margin-top:16px;
  font-family:var(--p33-font-display);font-size:11px;letter-spacing:.3em;
  padding:10px 22px;border:1px solid var(--p33-cyan);color:var(--p33-cyan);
  box-shadow:0 0 12px var(--p33-cyan-glow);
}
.p33-entrycard__btn:hover{background:var(--p33-cyan);color:#000}
.p33-entrycard--locked{opacity:.55}
.p33-entrycard--locked .p33-entrycard__btn{
  border-color:var(--p33-text-dim);color:var(--p33-text-dim);box-shadow:none;pointer-events:none;
}

/* ===== ニュース / 数字 ===== */
.p33-numgrid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:80px;
}
.p33-numcard{
  border:1px solid var(--p33-line);padding:28px 20px;text-align:center;
  background:rgba(10,16,32,.5);
}
.p33-numcard__val{
  font-family:var(--p33-font-display);font-weight:900;font-size:48px;color:var(--p33-cyan);
  text-shadow:0 0 16px var(--p33-cyan-glow);line-height:1;
}
.p33-numcard__val small{font-size:18px;margin-left:4px;color:#fff}
.p33-numcard__label{font-family:var(--p33-font-jp);font-weight:700;font-size:13px;margin-top:10px;color:#fff}
.p33-numcard__note{font-size:10px;color:var(--p33-text-dim);margin-top:4px}

/* ===== TOP→各ページの誘導(MENU TILE) ===== */
.p33-menu{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:60px}
.p33-menu__item{
  border:1px solid var(--p33-line);background:rgba(10,16,32,.6);
  padding:32px 20px;text-align:center;transition:.3s;
}
.p33-menu__item:hover{border-color:var(--p33-cyan);box-shadow:0 0 20px rgba(25,230,255,.3)}
.p33-menu__en{font-family:var(--p33-font-display);font-weight:900;font-size:22px;color:var(--p33-cyan);letter-spacing:.2em}
.p33-menu__jp{font-family:var(--p33-font-jp);font-weight:700;font-size:12px;margin-top:6px;color:#fff}

/* ===== 共通ページ(下層) ===== */
.p33-page{
  background:
    radial-gradient(ellipse at 20% 10%, rgba(25,90,160,.25) 0%, transparent 50%),
    radial-gradient(ellipse at 80% 90%, rgba(120,40,90,.2) 0%, transparent 50%),
    linear-gradient(180deg, #05070d 0%, #0a1020 100%);
  min-height:100vh;
  padding:120px 0 80px;
  position:relative;
  overflow:hidden;
}
.p33-page::before{
  content:'';position:absolute;inset:0;
  background-image:
    radial-gradient(1px 1px at 12% 15%, rgba(255,255,255,.8), transparent),
    radial-gradient(1px 1px at 28% 65%, rgba(255,255,255,.6), transparent),
    radial-gradient(1.5px 1.5px at 50% 30%, rgba(255,255,255,.7), transparent),
    radial-gradient(1px 1px at 72% 75%, rgba(255,255,255,.5), transparent),
    radial-gradient(1px 1px at 85% 20%, rgba(255,255,255,.7), transparent);
  pointer-events:none;
}
.p33-page__inner{position:relative;max-width:1100px;margin:0 auto;padding:0 28px;z-index:2}

.p33-page__hero{position:relative;z-index:2;text-align:center;padding:40px 24px 60px}
.p33-page__hero__earth{
  width:min(80%,720px);aspect-ratio:1/1;margin:0 auto 24px;
  background:radial-gradient(circle at 35% 35%,#1a3a6c 0%,#0c1f44 40%,#040b1c 80%,transparent 100%);
  border-radius:50%;
  box-shadow:
    0 0 80px rgba(80,180,255,.5),
    0 0 160px rgba(25,90,160,.4),
    inset -20px -30px 60px rgba(0,0,0,.7),
    inset 20px 20px 80px rgba(120,180,255,.2);
  position:relative;
}
.p33-page__hero__earth::after{
  content:'';position:absolute;inset:10%;border-radius:50%;
  background:
    radial-gradient(ellipse at 60% 30%, rgba(80,140,80,.4) 0%, transparent 40%),
    radial-gradient(ellipse at 30% 70%, rgba(60,120,60,.3) 0%, transparent 35%);
}
.p33-page__hero__title{
  font-family:var(--p33-font-display);font-weight:900;
  font-size:clamp(48px,7vw,84px);letter-spacing:.18em;
  color:#fff;margin:0;
  text-shadow:0 0 24px rgba(255,255,255,.4),0 0 48px rgba(25,230,255,.3);
}
.p33-page__hero__sub{
  font-family:var(--p33-font-jp);font-weight:700;font-size:16px;color:var(--p33-cyan);
  margin:12px 0 0;letter-spacing:.2em;
}
.p33-page__crumb{
  font-family:var(--p33-font-display);font-size:10px;letter-spacing:.3em;color:var(--p33-text-dim);
  margin:0 0 40px;
}
.p33-page__crumb a{color:var(--p33-cyan)}
.p33-page__lead{
  font-size:14px;color:var(--p33-text-dim);max-width:780px;margin:0 auto 60px;
  text-align:center;line-height:2;
}

/* ===== JOBS INDEX ===== */
.p33-jobs__grid{
  display:grid;grid-template-columns:repeat(2,1fr);gap:24px;
}
.p33-jobcard{
  border:1px solid var(--p33-line);background:linear-gradient(180deg,rgba(15,25,45,.7),rgba(8,14,28,.85));
  padding:0;overflow:hidden;transition:.3s;display:block;
}
.p33-jobcard:hover{
  border-color:var(--p33-cyan);
  box-shadow:0 0 28px rgba(25,230,255,.35);
  transform:translateY(-3px);
}
.p33-jobcard__plate{position:relative;aspect-ratio:16/9;overflow:hidden}
.p33-jobcard__plate img{width:100%;height:100%;object-fit:cover;filter:brightness(.7) saturate(1.1)}
.p33-jobcard__plate::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(180deg,transparent 50%,rgba(5,7,13,.9) 100%);
}
.p33-jobcard__code{
  position:absolute;top:14px;left:14px;
  font-family:var(--p33-font-display);font-size:11px;letter-spacing:.3em;
  color:var(--p33-cyan);background:rgba(5,7,13,.75);padding:4px 12px;border:1px solid var(--p33-cyan);
  z-index:2;
}
.p33-jobcard__body{padding:22px 24px 26px}
.p33-jobcard__title{
  font-family:var(--p33-font-jp);font-weight:900;font-size:20px;color:#fff;margin:0 0 6px;
  letter-spacing:.04em;
}
.p33-jobcard__sub{font-size:12px;color:var(--p33-cyan);margin:0 0 14px;letter-spacing:.1em}
.p33-jobcard__meta{display:flex;gap:18px;font-size:11px;color:var(--p33-text-dim);flex-wrap:wrap}
.p33-jobcard__meta b{color:#fff;margin-right:6px;font-weight:700}

/* ===== JOB DETAIL ===== */
.p33-job__hero{
  position:relative;border:1px solid var(--p33-line);
  background:linear-gradient(180deg,rgba(15,25,45,.6),rgba(5,10,20,.85));
  padding:0;overflow:hidden;margin-bottom:60px;
}
.p33-job__hero__img{position:relative;aspect-ratio:21/9;overflow:hidden}
.p33-job__hero__img img{width:100%;height:100%;object-fit:cover;filter:brightness(.65) saturate(1.1)}
.p33-job__hero__img::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(180deg,transparent 30%,rgba(5,7,13,.95) 100%);
}
.p33-job__hero__num{
  position:absolute;top:20px;left:24px;
  font-family:var(--p33-font-display);font-size:12px;letter-spacing:.3em;color:var(--p33-cyan);
  border:1px solid var(--p33-cyan);padding:6px 14px;background:rgba(5,7,13,.75);z-index:2;
}
.p33-job__hero__body{padding:30px 36px 36px}
.p33-job__hero__title{
  font-family:var(--p33-font-jp);font-weight:900;font-size:34px;color:#fff;margin:0 0 6px;
  letter-spacing:.05em;
}
.p33-job__hero__sub{font-family:var(--p33-font-display);font-size:13px;color:var(--p33-cyan);letter-spacing:.2em;margin:0 0 18px}
.p33-job__hero__lead{font-size:14px;color:var(--p33-text-dim);margin:0 0 24px;line-height:2}
.p33-job__hero__meta{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:0;padding:0}
.p33-job__hero__meta>div{border-top:1px solid var(--p33-line);padding-top:10px}
.p33-job__hero__meta dt{font-family:var(--p33-font-display);font-size:10px;letter-spacing:.25em;color:var(--p33-cyan);margin:0 0 4px}
.p33-job__hero__meta dd{margin:0;font-size:13px;color:#fff;font-weight:700}

.p33-job__sec{margin-bottom:48px}
.p33-job__sec__bar{
  display:flex;align-items:center;gap:16px;margin-bottom:24px;
  padding-bottom:12px;border-bottom:1px solid var(--p33-line);
}
.p33-job__sec__bar__tag{
  font-family:var(--p33-font-jp);font-weight:900;font-size:18px;color:#fff;letter-spacing:.04em;
}
.p33-job__sec__bar__title{
  font-family:var(--p33-font-display);font-weight:700;font-size:11px;letter-spacing:.3em;color:var(--p33-cyan);
  margin-left:auto;
  text-shadow:0 0 10px var(--p33-cyan-glow);
}
.p33-job__sec p{font-size:14px;color:var(--p33-text-dim);line-height:2}
.p33-job__sec ul{padding-left:0;list-style:none}
.p33-job__sec ul li{
  position:relative;padding:10px 0 10px 28px;border-bottom:1px solid var(--p33-line-soft);
  font-size:13px;color:#cfe2ee;
}
.p33-job__sec ul li::before{
  content:'';position:absolute;left:0;top:18px;width:14px;height:1px;background:var(--p33-cyan);
  box-shadow:0 0 6px var(--p33-cyan-glow);
}

/* ===== 1日の流れ ===== */
.p33-day{display:grid;gap:0}
.p33-day__row{
  display:grid;grid-template-columns:120px 1fr;gap:24px;
  padding:18px 0;border-bottom:1px solid var(--p33-line-soft);position:relative;
}
.p33-day__time{
  font-family:var(--p33-font-display);font-weight:900;font-size:22px;color:var(--p33-cyan);
  letter-spacing:.08em;text-shadow:0 0 10px var(--p33-cyan-glow);
}
.p33-day__body h4{font-family:var(--p33-font-jp);font-weight:700;font-size:15px;color:#fff;margin:0 0 4px}
.p33-day__body p{font-size:12px;color:var(--p33-text-dim);margin:0;line-height:1.7}

/* ===== REQUIREMENTS テーブル ===== */
.p33-reqtable{
  width:100%;border-collapse:collapse;
  border:1px solid var(--p33-line);
}
.p33-reqtable th,.p33-reqtable td{
  padding:18px 24px;text-align:left;border-bottom:1px solid var(--p33-line-soft);
  font-size:14px;
}
.p33-reqtable th{
  font-family:var(--p33-font-jp);font-weight:700;color:var(--p33-cyan);
  width:200px;background:rgba(15,25,45,.4);
  letter-spacing:.06em;
}
.p33-reqtable td{color:#cfe2ee}
.p33-reqtable tr:last-child th,.p33-reqtable tr:last-child td{border-bottom:0}

/* ===== FAQ ===== */
.p33-faqlist{display:grid;gap:14px}
.p33-faqitem{
  border:1px solid var(--p33-line);
  background:rgba(10,16,32,.6);
  padding:0;
}
.p33-faqitem summary{
  list-style:none;cursor:pointer;
  padding:18px 60px 18px 24px;position:relative;
  font-family:var(--p33-font-jp);font-weight:700;color:#fff;font-size:14px;
  letter-spacing:.04em;
}
.p33-faqitem summary::-webkit-details-marker{display:none}
.p33-faqitem summary::before{
  content:'Q';position:absolute;left:24px;color:var(--p33-cyan);font-family:var(--p33-font-display);
  font-weight:900;font-size:14px;letter-spacing:.2em;
  text-shadow:0 0 8px var(--p33-cyan-glow);
}
.p33-faqitem summary{padding-left:60px}
.p33-faqitem summary::after{
  content:'+';position:absolute;right:24px;top:50%;transform:translateY(-50%);
  color:var(--p33-cyan);font-size:24px;line-height:1;transition:.3s;
}
.p33-faqitem[open] summary::after{transform:translateY(-50%) rotate(45deg)}
.p33-faqitem>div{
  padding:0 24px 22px 60px;color:var(--p33-text-dim);font-size:13px;line-height:2;
  position:relative;
}
.p33-faqitem>div::before{
  content:'A';position:absolute;left:24px;top:0;color:#ff7eb6;font-family:var(--p33-font-display);
  font-weight:900;font-size:14px;letter-spacing:.2em;
}

/* ===== FORM ===== */
.p33-form{display:grid;gap:20px;max-width:780px;margin:0 auto}
.p33-form>div{display:grid;gap:8px}
.p33-form label{
  font-family:var(--p33-font-jp);font-weight:700;font-size:12px;color:var(--p33-cyan);letter-spacing:.1em;
}
.p33-form label small{
  display:inline-block;font-size:10px;background:#ff7eb6;color:#000;padding:2px 6px;margin-left:8px;
  letter-spacing:.1em;font-weight:700;vertical-align:middle;
}
.p33-form input,.p33-form select,.p33-form textarea{
  width:100%;padding:12px 16px;background:rgba(5,10,20,.7);
  border:1px solid var(--p33-line);color:#fff;
  font-family:var(--p33-font-body);font-size:14px;
  transition:.25s;
}
.p33-form input:focus,.p33-form select:focus,.p33-form textarea:focus{
  outline:none;border-color:var(--p33-cyan);
  box-shadow:0 0 12px var(--p33-cyan-glow),inset 0 0 12px rgba(25,230,255,.08);
}
.p33-form button{
  margin-top:12px;padding:18px 60px;justify-self:center;
  font-family:var(--p33-font-display);font-weight:700;font-size:14px;letter-spacing:.3em;
  background:transparent;color:var(--p33-cyan);
  border:2px solid var(--p33-cyan);
  box-shadow:0 0 20px rgba(25,230,255,.5),inset 0 0 20px rgba(25,230,255,.15);
  cursor:pointer;position:relative;transition:.3s;
}
.p33-form button:hover{background:var(--p33-cyan);color:#000}
.p33-form__note{
  font-size:12px;color:var(--p33-text-dim);text-align:center;margin-bottom:28px;
}

/* ===== HISTORY ===== */
.p33-history{
  position:relative;
  padding:20px 0;
}
.p33-history::before{
  content:'';position:absolute;left:120px;top:0;bottom:0;width:1px;background:var(--p33-line);
}
.p33-history__row{
  display:grid;grid-template-columns:120px 1fr;gap:40px;
  padding:18px 0;position:relative;
}
.p33-history__row::before{
  content:'';position:absolute;left:115px;top:26px;width:11px;height:11px;
  background:var(--p33-cyan);border-radius:50%;
  box-shadow:0 0 12px var(--p33-cyan-glow);
}
.p33-history__year{
  font-family:var(--p33-font-display);font-weight:900;font-size:22px;color:var(--p33-cyan);
  text-shadow:0 0 10px var(--p33-cyan-glow);
}
.p33-history__event{font-size:14px;color:#cfe2ee;line-height:1.9}

/* ===== MESSAGE ===== */
.p33-message{
  position:relative;
  border:1px solid var(--p33-line);
  background:linear-gradient(180deg,rgba(15,25,45,.7),rgba(8,14,28,.9));
  padding:48px;overflow:hidden;
}
.p33-message::before{
  content:'';position:absolute;inset:0;
  background:radial-gradient(ellipse at 100% 0%, rgba(25,230,255,.18) 0%, transparent 50%);
  pointer-events:none;
}
.p33-message__head{
  display:flex;align-items:center;gap:28px;margin-bottom:32px;position:relative;
}
.p33-message__photo{
  width:140px;height:140px;border-radius:50%;overflow:hidden;
  border:2px solid var(--p33-cyan);
  box-shadow:0 0 28px rgba(25,230,255,.4);flex-shrink:0;
}
.p33-message__photo img{width:100%;height:100%;object-fit:cover}
.p33-message__role{font-family:var(--p33-font-display);font-size:11px;letter-spacing:.3em;color:var(--p33-cyan);margin:0 0 6px}
.p33-message__name{font-family:var(--p33-font-jp);font-weight:900;font-size:24px;color:#fff;margin:0}
.p33-message__title{
  font-family:var(--p33-font-jp);font-weight:900;font-size:22px;color:#fff;margin:0 0 24px;
  letter-spacing:.04em;position:relative;
}
.p33-message__body{font-size:14px;color:#cfe2ee;line-height:2;white-space:pre-line;position:relative}

/* ===== FOOTER ===== */
.p33-foot{
  background:#020409;border-top:1px solid var(--p33-line);
  padding:60px 28px 30px;
  position:relative;
}
.p33-foot__inner{max-width:1180px;margin:0 auto}
.p33-foot__top{
  display:grid;grid-template-columns:1fr 2fr;gap:48px;margin-bottom:40px;
}
.p33-foot__brand strong{
  font-family:var(--p33-font-display);font-weight:900;font-size:18px;color:var(--p33-cyan);letter-spacing:.25em;
  text-shadow:0 0 14px var(--p33-cyan-glow);display:block;margin-bottom:8px;
}
.p33-foot__brand small{font-size:11px;color:var(--p33-text-dim);line-height:1.8}
.p33-foot__nav{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;font-size:12px}
.p33-foot__nav h4{font-family:var(--p33-font-display);font-size:11px;letter-spacing:.3em;color:var(--p33-cyan);margin:0 0 12px;font-weight:700}
.p33-foot__nav ul{list-style:none;padding:0;margin:0}
.p33-foot__nav li{margin:8px 0;color:var(--p33-text-dim)}
.p33-foot__nav a:hover{color:var(--p33-cyan)}
.p33-foot__copy{
  border-top:1px solid var(--p33-line-soft);padding-top:24px;
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;
  font-size:11px;color:var(--p33-text-dim);
}
.p33-foot__copy em{font-style:normal;color:var(--p33-cyan)}

/* ===== モーション ===== */
.p33-reveal{opacity:0;transform:translateY(20px);transition:opacity .8s ease,transform .8s ease;transition-delay:var(--p33-delay,0ms)}
.p33-reveal.p33-in{opacity:1;transform:none}

/* ===== レスポンシブ ===== */
@media (max-width:880px){
  .p33-header{padding:14px 18px}
  .p33-header__nav{display:none}
  .p33-header__entry{font-size:10px;padding:8px 14px}
  .p33-entrygrid,.p33-jobs__grid{grid-template-columns:1fr}
  .p33-numgrid,.p33-menu{grid-template-columns:repeat(2,1fr)}
  .p33-job__hero__meta{grid-template-columns:repeat(2,1fr)}
  .p33-job__hero__body{padding:24px}
  .p33-day__row,.p33-history__row{grid-template-columns:90px 1fr;gap:16px}
  .p33-history::before{left:90px}
  .p33-history__row::before{left:85px}
  .p33-foot__top{grid-template-columns:1fr;gap:32px}
  .p33-foot__nav{grid-template-columns:repeat(2,1fr)}
  .p33-message{padding:28px 20px}
  .p33-message__head{flex-direction:column;text-align:center;gap:16px}
  .p33-reqtable th{width:120px;padding:14px}
  .p33-reqtable td{padding:14px}
  .p33-hero__start{padding:14px 40px;font-size:14px;letter-spacing:.3em}
}
@media (max-width:560px){
  .p33-numgrid{grid-template-columns:1fr 1fr}
  .p33-menu{grid-template-columns:1fr 1fr}
  .p33-page{padding:90px 0 60px}
  .p33-section{padding:80px 0}
}
