@charset "utf-8";

/* ==========================================================================
   PR1MEPICK — TOP (ホーム)
   ========================================================================== */

/* Decorative art bleeds past the viewport edges. `clip` (not `hidden`) keeps
   the sticky header working — `overflow:hidden` on html/body would break it. */
html,body{overflow-x:clip}

/* ----------------------------------------------------------------- hero --- */

.hero{position:relative;height:840px;overflow:hidden}

.hero__circle{
  position:absolute;right:-190px;top:70px;width:560px;height:560px;
  border:130px solid var(--c-primary);border-top-color:var(--c-secondary);
  border-radius:50%;animation:spinSlow 40s linear infinite;
}

.hero__sweep{position:absolute;inset:0;width:100%;height:100%}
.hero__sweep path{
  stroke-dasharray:900;stroke-dashoffset:900;
  animation:draw 1.4s cubic-bezier(.6,0,.2,1) 1s forwards;
}

.hero__arc{position:absolute;right:0;top:0;bottom:0;width:min(34%,460px);height:100%}
.hero__arc .is-main{
  stroke-dasharray:1600;stroke-dashoffset:1600;
  animation:draw 1.6s cubic-bezier(.6,0,.2,1) .5s forwards;
}
.hero__arc .is-highlight{
  stroke-dasharray:1600;stroke-dashoffset:1600;
  animation:draw 1.6s cubic-bezier(.6,0,.2,1) .8s forwards;
}
.hero__arc .is-orb{opacity:0;animation:fadeUp .6s ease 2s forwards}

.hero__inner{
  position:relative;z-index:2;
  max-width:var(--wrap-wide);margin:0 auto;
  padding:130px 48px 0 96px;
}

.hero h1{
  margin:0;max-width:calc(66% - 60px);
  font-weight:900;font-size:clamp(2.5rem,4.2vw,4rem);
  line-height:1.2;letter-spacing:-0.01em;
}
.hero h1 .line{display:block;overflow:hidden}
.hero h1 .line > span{display:block;transform:translateY(110%)}
.hero h1 .line:nth-of-type(1) > span{animation:riseIn .9s cubic-bezier(.2,.8,.2,1) .35s forwards}
.hero h1 .line:nth-of-type(2) > span{animation:riseIn .9s cubic-bezier(.2,.8,.2,1) .53s forwards}

.hero__mark{position:relative;display:inline-block}
.hero__mark svg{position:absolute;left:0;bottom:-4px;width:100%}
.hero__mark path{
  stroke-dasharray:210;stroke-dashoffset:210;
  animation:draw .7s cubic-bezier(.6,0,.2,1) 1.15s forwards;
}
.hero__dot{color:var(--c-secondary)}

.hero__en{
  margin:44px 0 0 4px;font-family:var(--font-en);
  font-size:15px;line-height:1.7;color:var(--c-muted);
  opacity:0;animation:fadeUp .8s ease 1.35s forwards;
}
.hero__en p{margin:0}
.hero__en p + p{margin-top:6px}

.hero__scroll{
  position:absolute;right:64px;bottom:48px;
  display:flex;flex-direction:column;align-items:center;gap:12px;
  opacity:0;animation:fadeUp .8s ease 1.7s forwards;
}
.hero__scroll span:first-child{
  font-family:var(--font-en);font-size:13px;font-weight:600;letter-spacing:.08em;
}
.hero__scroll .bar{
  width:2px;height:64px;background:var(--c-text);display:block;
  animation:scrollLine 1.8s ease-in-out 2s infinite;
}

/* -------------------------------------------------------------- marquee --- */

.marquee{background:var(--c-primary);overflow:hidden;padding:22px 0;white-space:nowrap}
.marquee__track{
  display:inline-flex;gap:64px;
  animation:marquee 22s linear infinite;
  font-family:var(--font-en);font-weight:800;font-size:28px;letter-spacing:-0.01em;
}

/* --------------------------------------------------------------- pickup --- */

.pickup{position:relative;padding:130px 0 140px;overflow:visible}

.pickup__head{position:relative;z-index:1;max-width:var(--wrap);margin:0 auto;padding:0 var(--gutter)}
.section-lede{
  display:flex;align-items:flex-end;justify-content:space-between;
  gap:32px;margin-bottom:20px;
}
.section-lede h2,
.pickup h2,
.members h2,
.news h2{
  margin:0;font-family:var(--font-en);font-weight:800;
  font-size:clamp(2.5rem,5vw,4rem);line-height:1.1;letter-spacing:-0.01em;
}
.section-lede__ja{margin:14px 0 0;font-size:14px;font-weight:500;letter-spacing:.05em}
.rule{height:1px;background:var(--c-border);margin:32px 0 48px}

/* ------------------------------------------------------------ statement --- */

.statement{position:relative;padding:140px var(--gutter) 160px;overflow:visible}
.statement__inner{position:relative;z-index:1;max-width:900px;margin:0 auto;text-align:center}
.statement__ja{margin:16px 0 40px;font-size:14px;font-weight:500;letter-spacing:.05em}
.statement h2{margin:0 0 32px;font-size:clamp(1.35rem,2vw,1.625rem);font-weight:700;line-height:2}
.statement__mark{position:relative;display:inline-block}
.statement__mark svg{position:absolute;left:0;bottom:-8px;width:100%}
.statement p.body{margin:0 0 16px;font-size:16px;line-height:1.9}
.statement p.body:last-of-type{margin-bottom:44px}

/* ------------------------------------------------------------ strengths --- */

.strengths{position:relative;padding:120px var(--gutter);overflow:visible}
.strengths__inner{position:relative;z-index:1;max-width:var(--wrap);margin:0 auto}
.strengths .sec-head{margin-bottom:48px}
.strengths .sec-head h2{font-size:clamp(2rem,3.6vw,3rem)}
.strengths__headline{
  margin:0 0 20px;max-width:860px;
  font-size:clamp(1.375rem,2.4vw,2rem);font-weight:900;
  line-height:1.5;letter-spacing:-0.02em;
}
.strengths__lede{margin:0 0 56px;max-width:860px;font-size:16px;line-height:1.9}

.str-grid{position:relative;display:grid;grid-template-columns:repeat(5,1fr);gap:0}
.str-grid__line{
  position:absolute;left:0;right:0;top:104px;height:1px;pointer-events:none;
  background:linear-gradient(to right, rgba(17,17,17,.18) 0 92%, rgba(17,17,17,0));
}
.str{
  position:relative;z-index:1;padding:0 26px 0 0;
  display:flex;flex-direction:column;gap:18px;
}
.str--low{padding-top:52px}
.str__no{
  position:absolute;left:-6px;top:-34px;pointer-events:none;
  font-family:var(--font-en);font-size:104px;font-weight:800;
  line-height:1;letter-spacing:-0.05em;color:var(--c-primary);opacity:.16;
}
.str--low .str__no{top:18px;color:var(--c-secondary)}
.str__dot{
  position:relative;width:15px;height:15px;border-radius:50%;
  background:var(--c-primary);
  box-shadow:0 0 0 6px #fff, 0 0 0 7.5px var(--c-primary);
  margin-top:96px;
}
.str--low .str__dot{
  background:var(--c-secondary);
  box-shadow:0 0 0 6px #fff, 0 0 0 7.5px var(--c-secondary);
  margin-top:44px;
}
.str__title{
  position:relative;margin:14px 0 0;
  font-size:16px;font-weight:900;line-height:1.55;letter-spacing:-0.01em;
}
.str__desc{position:relative;margin:0;padding-right:14px;font-size:13px;line-height:1.95;color:#555}

/* -------------------------------------------------------------- service --- */

.service{position:relative;padding:150px var(--gutter) 160px;overflow:visible}
.service__wrap{
  position:relative;z-index:1;max-width:1280px;margin:0 auto;
  display:grid;grid-template-columns:minmax(260px,0.8fr) 1.6fr;gap:80px;align-items:start;
}
.service__aside{position:sticky;top:120px}
.service__aside h2{
  margin:0;font-family:var(--font-en);font-weight:800;
  font-size:clamp(2.5rem,5vw,4rem);line-height:.95;letter-spacing:-0.03em;
}
.service__aside .ja{
  margin:18px 0 32px;padding-left:14px;border-left:3px solid var(--c-primary);
  font-size:14px;font-weight:500;letter-spacing:.05em;
}
.service__aside .lede{margin:0 0 40px;max-width:320px;font-size:15px;line-height:1.9;color:#555}
.service__mock{position:relative;z-index:2;margin-top:64px}
.service__mock img{display:block;width:473px;max-width:100%;height:auto}

.svc-list{border-top:1px solid var(--c-text)}
.svc-row{position:relative;display:block;border-bottom:1px solid #DEDCD7;overflow:hidden}
.svc-row__under{
  position:absolute;left:0;right:0;bottom:0;height:10px;background:var(--c-primary);
  transform:scaleX(0);transform-origin:left;
  transition:transform .55s cubic-bezier(.6,0,.2,1);
}
.svc-row__inner{
  position:relative;display:grid;grid-template-columns:64px 1fr 44px;
  align-items:baseline;gap:28px;padding:40px 0 42px;
  transition:transform .45s cubic-bezier(.2,.8,.2,1);
}
.svc-row__no{font-family:var(--font-en);font-size:13px;font-weight:700;letter-spacing:.16em;color:var(--c-muted)}
.svc-row__main{display:flex;flex-direction:column;gap:12px;min-width:0}
.svc-row__name{font-size:clamp(1.375rem,2.6vw,2.125rem);font-weight:900;line-height:1.3;letter-spacing:-0.03em}
.svc-row__desc{font-size:14px;line-height:1.85;color:#666;max-width:560px}
.svc-row__tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}
.svc-row__tags span{
  border:1px solid #C9C7C1;border-radius:9999px;padding:5px 14px;
  font-size:12px;color:#555;background:var(--c-surface);
}
.svc-row__arrow{
  font-family:var(--font-en);font-size:26px;line-height:1;color:var(--c-text);opacity:.25;
  transition:opacity .35s ease,transform .45s cubic-bezier(.2,.8,.2,1);
}
.svc-row:hover{color:var(--c-text)}
.svc-row:hover .svc-row__under{transform:scaleX(1)}
.svc-row:hover .svc-row__inner{transform:translateX(14px)}
.svc-row:hover .svc-row__arrow{opacity:1;transform:translateX(6px)}

/* -------------------------------------------------------------- members --- */

.members{position:relative;padding:120px var(--gutter) 130px;overflow:visible}
.members__inner{position:relative;z-index:1;max-width:var(--wrap);margin:0 auto}
.members .section-lede{margin-bottom:48px}
.members__lede{margin:0;max-width:420px;font-size:15px;line-height:1.95;color:#2C2C2C}
.members__strip img{width:100%;height:auto;display:block}
.members__cta{margin-top:48px}

/* ----------------------------------------------------------------- news --- */

.news{position:relative;padding:120px var(--gutter) 130px;overflow:visible}
.news__grid{
  position:relative;z-index:1;max-width:var(--wrap);margin:0 auto;
  display:grid;grid-template-columns:minmax(240px,1fr) 2fr;gap:64px;align-items:start;
}
.news__ja{margin:14px 0 32px;font-size:14px;font-weight:500;letter-spacing:.05em}
.news-row{
  display:grid;grid-template-columns:120px 1fr;gap:24px;align-items:center;
  padding:26px 0;border-bottom:1px solid var(--c-border);
}
.news-row__date{font-family:var(--font-en);font-size:14px;font-weight:600;color:var(--c-muted)}
.news-row__title{font-size:16px;font-weight:700;line-height:1.7}

/* -------------------------------------------------------------- recruit --- */

.recruit{position:relative;padding:0 24px 130px;overflow:hidden}
.recruit__card{
  position:relative;max-width:var(--wrap-wide);margin:0 auto;
  background:var(--c-primary);border-radius:48px;padding:120px 64px;overflow:hidden;
}
.recruit__wave{position:absolute;inset:0;width:100%;height:100%;opacity:.5}
.recruit__inner{position:relative;max-width:800px;margin:0 auto;text-align:center}
.recruit__ja{margin:16px 0 36px;font-size:14px;font-weight:500;letter-spacing:.05em;color:var(--c-text)}
.recruit h2{
  margin:0 0 32px;font-size:clamp(1.75rem,3.2vw,2.75rem);
  font-weight:900;line-height:1.6;letter-spacing:-0.01em;color:var(--c-text);
}
.recruit__lede{margin:0 0 44px;font-size:16px;line-height:1.9;color:var(--c-text)}

/* --------------------------------------------------------- responsive --- */

@media (max-width:1150px){
  .hero{height:auto;min-height:640px;padding-bottom:120px}
  .hero__circle{display:none}
  .hero__arc{display:none}
  .hero__inner{padding:110px 32px 0 32px}
  .hero h1{max-width:100%;font-size:clamp(2.25rem,7vw,3.25rem);line-height:1.3}
}

@media (max-width:1023px){
  .service__wrap{grid-template-columns:1fr;gap:56px}
  .service__aside{position:static}
  .service__mock{margin-top:48px;max-width:520px}
  .str-grid{grid-template-columns:repeat(2,1fr);gap:40px 24px}
  .str-grid__line{display:none}
  .str{padding:0 12px 0 0}
  .str--low{padding-top:0}
  .str__dot,
  .str--low .str__dot{margin-top:52px}
  .members__lede{display:none}
  .news__grid{grid-template-columns:1fr}
}

@media (max-width:767px){
  .ring{display:none}
  .str-grid{grid-template-columns:1fr}
}

@media (max-width:639px){
  .news-row{grid-template-columns:1fr;gap:10px}
  .recruit__card{padding:80px 28px;border-radius:32px}
}

@media (prefers-reduced-motion:reduce){
  .hero__circle,
  .marquee__track,
  .hero__scroll .bar{animation:none}
  .hero h1 .line > span{transform:none;animation:none}
  .hero__en,
  .hero__scroll,
  .hero__arc .is-orb{opacity:1;animation:none}
  .hero__sweep path,
  .hero__arc .is-main,
  .hero__arc .is-highlight,
  .hero__mark path{stroke-dashoffset:0;animation:none}
}
