/* トップページ（試作から移植） */

:root{--ink:#0B0B0C;--paper:#F4F5F5;--orange:#E87D2A;--navy:#1B2A4A;--font:'Zen Kaku Gothic New','Hiragino Kaku Gothic ProN','Yu Gothic',sans-serif}
*{box-sizing:border-box}
html,body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
:focus-visible{outline:2px solid var(--orange);outline-offset:3px}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

#pin{position:relative}
#fv{position:sticky;top:0;height:100vh;height:100svh;min-height:560px;overflow:hidden;background:var(--paper)}
#stage{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none}
#fv .logo{position:absolute;left:80px;top:30px;z-index:3;display:flex;align-items:center;gap:10px;font-weight:700;font-size:18px;letter-spacing:.02em;color:var(--navy)}
#fv .logo img{height:26px;width:auto;display:block}
.zc{position:absolute;right:80px;top:38px;z-index:3;font-size:15px;letter-spacing:.2em;color:#0B0B0C}
.nav{position:absolute;top:24px;left:50%;transform:translateX(-50%);z-index:3;height:52px;display:flex;align-items:center;gap:30px;padding:0 6px 0 28px;border-radius:999px;background:rgba(255,255,255,.92);border:1px solid #D6D8DA;font-size:15px;white-space:nowrap}
.nav .cta{height:40px;display:inline-flex;align-items:center;padding:0 20px;border-radius:999px;background:var(--ink);color:#fff;transition:background-color .2s ease,color .2s ease}
.nav .cta:hover,.nav .cta:focus-visible{background:var(--orange);color:var(--ink)}
.nav .menu{width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;margin-left:-14px}
.nav .menu:hover path{stroke:var(--orange)}
.nav .links{display:contents}
.scroll{position:absolute;left:80px;bottom:32px;z-index:3;font-size:13px;letter-spacing:.3em;color:#55585B}
.fx{opacity:0;transition:opacity .8s ease}
.fx.on{opacity:1}
/* 動きを減らす設定のときの文字 */
#still{position:absolute;z-index:2;margin:0;font-weight:700;color:var(--ink);letter-spacing:.02em;display:none}
.reduced #still{display:block}


/* 僕がこの会社を作った理由 */
#reason{position:relative;background:#FFFFFF;padding:140px 80px 120px;overflow:hidden}
.rs-head{display:flex;align-items:center;gap:40px}
.rs-head h2{margin:0;font-weight:700;font-size:44px;letter-spacing:.04em;color:var(--ink);word-break:auto-phrase}
.rs-line{width:160px;border-top:1px solid #8C8C8C}
.rs-lead{margin-top:48px;max-width:720px}
.rs-lead p{margin:0 0 1em;font-size:18px;line-height:2.1;color:#222;word-break:auto-phrase}
.rs-lead .rs-sig{margin-top:28px;font-size:15px;letter-spacing:.08em;color:#55585B}
.rs-stage{position:relative;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:64px;margin-top:72px}
.rs-card{position:relative;transition:opacity .7s ease,transform .9s cubic-bezier(.3,1.4,.5,1)}
.rs-card.out{opacity:0;transform:translateY(-14px) rotate(-1.5deg)}
.rs-card.in{opacity:0;transform:translateY(22px) rotate(2deg)}
.rs-bubble{position:relative;width:min(100%,460px);margin-left:6%}
.rs-bubble svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.rs-bubble .t{position:relative;padding:32px 44px 48px;word-break:auto-phrase;text-align:center;font-size:18px;line-height:1.95;color:var(--ink);font-weight:400}
.rs-aside{position:relative;z-index:2;margin:-6px 4% 0 auto;max-width:240px;font-size:15px;line-height:1.8;color:#55585B;transform:rotate(-4deg);text-align:left}
.rs-art{display:block;width:100%;height:auto;aspect-ratio:600/420;margin-top:-24px}
.rs-ctrl{display:flex;justify-content:flex-end;gap:8px;margin-top:40px}
.rs-ctrl button{min-width:44px;height:44px;padding:0 14px;border:1px solid #CFCBC2;background:#fff;color:var(--ink);font-family:inherit;font-size:15px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;transition:background-color .2s ease,border-color .2s ease}
.rs-ctrl button:hover,.rs-ctrl button:focus-visible{background:var(--orange);border-color:var(--orange)}
#next{position:relative;background:#F5F4F0;color:var(--ink);min-height:50vh;padding:120px 80px}
#next .lbl{font-size:14px;letter-spacing:.3em;color:#6E6E6E}
#next p{margin:24px 0 0;font-size:18px}
@media (max-width:767px){
  #reason{padding:96px 20px 80px}
  .rs-head{gap:16px;flex-wrap:wrap}
  .rs-head h2{font-size:26px}
  .rs-line{width:48px}
  .rs-lead{margin-top:28px}
  .rs-lead p{font-size:16px;line-height:2}
  .rs-stage{grid-template-columns:1fr;gap:48px;margin-top:48px}
  .rs-bubble{margin-left:0;width:92%}
  .rs-bubble .t{padding:26px 26px 38px;font-size:16px}
  .rs-aside{margin:-2px 0 0 auto;max-width:72%;font-size:14px}
  .rs-art{margin-top:-10px}
  #next{padding:80px 20px}
}
@media (prefers-reduced-motion:reduce){.rs-card{transition:none}}


/* 何をしている会社なの？ */
#what{background:#F5F4F0;padding:120px 80px}
.wh-lead{margin:24px 0 0;font-size:17px;line-height:2;color:#222}
.wh-block{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:64px;align-items:center;margin-top:72px;padding-top:56px;border-top:1px solid #CFCBC2}
.wh-block.rev{grid-template-columns:minmax(0,7fr) minmax(0,5fr)}
.wh-block.rev .wh-art{order:2}
.wh-art{display:block;width:100%;height:auto;aspect-ratio:600/420;background:#fff;border:1.5px solid #2A2D4E;transform:rotate(-0.8deg)}
.wh-block.rev .wh-art{transform:rotate(0.8deg)}
.wh-h{margin:0;font-weight:700;font-size:28px;line-height:1.6;letter-spacing:.04em;color:var(--ink)}
.wh-list{list-style:none;margin:20px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:10px}
.wh-list li{font-size:16px;line-height:1.6;padding:8px 18px;background:#fff;border:1.5px solid #2A2D4E;border-radius:22px;transform:rotate(-0.8deg)}
.wh-list li:nth-child(2n){transform:rotate(0.9deg)}
.wh-list li::before{content:'「'}.wh-list li::after{content:'」'}
.wh-p{margin:22px 0 0;font-size:17px;line-height:2.1;color:#222;max-width:640px;word-break:auto-phrase}
.wh-btns{display:flex;flex-wrap:wrap;align-items:center;gap:16px 28px;margin-top:8px}
.wh-sub{display:inline-flex;align-items:center;gap:10px;height:56px;padding:0 28px;margin-top:20px;border:1.5px solid var(--ink);color:var(--ink);font-size:16px;border-radius:2px;transition:background-color .2s ease,border-color .2s ease}
.wh-sub:hover,.wh-sub:focus-visible{background:var(--orange);border-color:var(--orange)}
.wh-note{margin:10px 0 0;font-size:14px;color:#6E6E6E}
.wh-link{color:#B5561A;border-bottom:1px solid #B5561A;padding:6px 0 1px}
.wh-link:hover{color:var(--ink);border-color:var(--ink)}
/* みんなの研究室 */
#lab{background:#FFFFFF;padding:120px 80px}
.lab-list{list-style:none;margin:40px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}
.lab-list a{display:block;color:var(--ink)}
.lab-ph{display:flex;align-items:flex-end;aspect-ratio:3/2;background:#ECEAE3;color:#6E6E6E;font-size:13px;padding:10px;box-sizing:border-box;border:1.5px solid #2A2D4E}
.lab-meta{display:flex;gap:14px;margin-top:14px;font-size:14px;letter-spacing:.08em;color:#6E6E6E}
.lab-cat{color:#B5561A}
.lab-t{display:block;margin-top:6px;font-weight:700;font-size:18px;line-height:1.6}
.lab-list a:hover .lab-t{color:#B5561A}
/* フッター */
#foot{background:var(--ink);color:#fff;padding:64px 80px 40px}
.ft-row{display:flex;justify-content:space-between;align-items:flex-start;gap:32px;flex-wrap:wrap}
.ft-logo{display:flex;align-items:center;gap:10px;font-weight:700;font-size:18px}.ft-logo img{height:24px}
#foot nav{display:flex;flex-wrap:wrap;gap:12px 28px;font-size:15px;max-width:880px;justify-content:flex-end}
#foot nav a{color:#fff}#foot nav a:hover{color:var(--orange)}
.ft-c{display:flex;justify-content:space-between;margin-top:56px;padding-top:24px;border-top:1px solid #333;font-size:14px;color:#A3A3A3}
@media (max-width:767px){
  #what,#lab{padding:80px 20px}
  .wh-lead{font-size:16px}
  .wh-block,.wh-block.rev{grid-template-columns:1fr;gap:28px;margin-top:48px;padding-top:40px}
  .wh-block.rev .wh-art{order:0}
  .wh-h{font-size:22px}
  .wh-list li{font-size:15px;padding:6px 14px}
  .wh-p{font-size:16px;line-height:2}
  .wh-btns .jn-btn,.wh-sub{width:100%;justify-content:center;box-sizing:border-box}
  .lab-list{grid-template-columns:1fr;gap:28px}
  #foot{padding:56px 20px 32px}
  #foot nav{justify-content:flex-start}
  .ft-c{flex-direction:column;gap:8px}
}

/* 募集 */
#join{background:#F5F4F0;padding:120px 80px}
.jn-grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:64px;align-items:center}
.jn-title{margin:0;font-weight:700;font-size:36px;line-height:1.6;letter-spacing:.04em;color:var(--ink);word-break:auto-phrase}
.jn-p{margin:24px 0 0;font-size:17px;line-height:2.1;color:#222;max-width:640px;word-break:auto-phrase}
.jn-tags{list-style:none;margin:28px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:10px}
.jn-tags li{font-size:16px;padding:6px 16px;border:1.5px solid #2A2D4E;border-radius:999px;background:#fff;transform:rotate(-1deg)}
.jn-tags li:nth-child(2n){transform:rotate(1.2deg)}
.jn-btn{display:inline-flex;align-items:center;gap:14px;height:56px;padding:0 32px;margin-top:20px;background:var(--ink);color:#fff;font-size:16px;letter-spacing:.06em;border-radius:2px;transition:background-color .2s ease,color .2s ease}
.jn-btn:hover,.jn-btn:focus-visible{background:var(--orange);color:var(--ink)}
.jn-art{display:block;width:100%;height:auto;aspect-ratio:600/420}

.pf-co{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:72px;align-items:start;margin:80px 80px 0;padding-top:64px;border-top:1px solid #D9D9D9}
.pf-photo{margin:0}
.pf-photo img{display:block;width:100%;height:auto;background:#EEF1F5}
.pf-photo figcaption{margin-top:16px;display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 14px}
.pf-role{font-size:15px;color:#55585B;letter-spacing:.08em}
.pf-name{font-weight:700;font-size:26px;letter-spacing:.1em;color:var(--ink)}
.pf-en{font-size:15px;color:#6E6E6E;letter-spacing:.06em}
.pf-ov h3{margin:0;font-weight:700;font-size:28px;letter-spacing:.06em;color:var(--ink)}
.pf-ov table{width:100%;border-collapse:collapse;margin-top:28px;border-top:1px solid var(--ink)}
.pf-ov th{text-align:left;vertical-align:top;font-weight:400;font-size:15px;color:#55585B;letter-spacing:.08em;padding:22px 24px 22px 0;width:160px;border-bottom:1px solid #D9D9D9}
.pf-ov td{font-size:17px;line-height:1.9;color:#222;padding:20px 0;border-bottom:1px solid #D9D9D9}
@media (max-width:767px){
  .pf-co{grid-template-columns:1fr;gap:40px;margin:56px 20px 0;padding-top:48px}
  .pf-photo img{max-width:320px}
  .pf-ov h3{font-size:22px}
  .pf-ov th{width:96px;font-size:14px;padding:18px 12px 18px 0}
  .pf-ov td{font-size:16px;padding:16px 0}
}
/* プロフィール（絵日記） */
#profile{background:#FFFFFF;padding:120px 0 110px;overflow:hidden}
#profile .rs-head{padding:0 80px}
.pf-lead{margin:28px 80px 0;font-size:17px;line-height:2;color:#222}
.pf-viewport{margin-top:56px;overflow:hidden}
.pf-track{list-style:none;margin:0;padding:12px 0 18px;display:flex;gap:36px;width:max-content;animation:pf-flow 90s linear infinite}
.pf-viewport:hover .pf-track,.pf-viewport:focus-within .pf-track,.pf-paused .pf-track{animation-play-state:paused}
@keyframes pf-flow{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.pf-page{flex:0 0 330px;background:#fff;border:1.5px solid #2A2D4E;padding:14px 14px 18px;transform:rotate(-0.8deg)}
.pf-page:nth-child(2n){transform:rotate(0.9deg) translateY(10px)}
.pf-date{font-weight:700;font-size:15px;letter-spacing:.06em;color:var(--ink);display:flex;justify-content:space-between;align-items:baseline}
.pf-date small{font-weight:400;font-size:13px;color:#8C8C8C;letter-spacing:.1em}
.pf-pic{display:block;width:100%;height:auto;aspect-ratio:600/420;margin-top:8px;border:1px solid #CFCBC2}
.pf-txt{margin:12px 0 0;font-size:16px;line-height:32px;min-height:160px;color:#222;background-image:repeating-linear-gradient(to bottom,transparent 0,transparent 31px,#D9D4CA 31px,#D9D4CA 32px)}
.pf-ctrl{display:flex;justify-content:flex-end;align-items:center;gap:20px;margin:28px 80px 0}
.pf-ctrl button{min-width:44px;height:44px;padding:0 16px;border:1px solid #CFCBC2;background:#fff;font-family:inherit;font-size:15px;border-radius:999px;cursor:pointer;color:var(--ink)}
.pf-ctrl button:hover,.pf-ctrl button:focus-visible{background:var(--orange);border-color:var(--orange)}
.pf-more{font-size:16px;color:var(--ink);border-bottom:1px solid var(--ink);padding:10px 0 2px;display:inline-flex;gap:8px}
.pf-more:hover{color:#B5561A;border-color:#B5561A}
@media (max-width:767px){
  #join{padding:80px 20px}
  .jn-grid{grid-template-columns:1fr;gap:32px}
  .jn-title{font-size:23px}
  .jn-p{font-size:16px;line-height:2}
  .jn-tags li{font-size:15px;padding:5px 12px}
  .jn-btn{width:100%;justify-content:center;box-sizing:border-box}
  #profile{padding:80px 0}
  #profile .rs-head{padding:0 20px}
  .pf-lead{margin:20px 20px 0;font-size:16px}
  .pf-viewport{margin-top:36px}
  .pf-track{gap:22px;animation-duration:70s}
  .pf-page{flex-basis:272px}
  .pf-ctrl{margin:20px 20px 0;justify-content:space-between}
}
@media (prefers-reduced-motion:reduce){
  .pf-track{animation:none;padding-left:80px;padding-right:80px}
  .pf-viewport{overflow-x:auto;scroll-snap-type:x mandatory}
  .pf-page{scroll-snap-align:center}
}



@media (max-width:767px){
  #fv .logo{left:20px;top:22px;font-size:15px;gap:8px}
  #fv .logo img{height:20px}
  .zc{display:none}
  .nav{left:auto;transform:none;right:12px;top:14px;height:auto;padding:0;border:0;background:none}
  .nav .links,.nav .cta{display:none}
  .nav .menu{width:44px;height:44px;margin:0}
  .scroll{left:20px;bottom:22px}
  }

/* 創業の理由とプロフィール：背景をオレンジに。文字は墨黒で読みやすさを保つ */
#reason,#profile{background:var(--orange);color:var(--ink)}
#reason .rs-head h2,#profile .rs-head h2{color:var(--ink)}
#reason .rs-line,#profile .rs-line{border-top-color:var(--ink)}
#reason .rs-lead p,#profile .pf-lead,#profile .pf-ov td{color:var(--ink)}
#reason .rs-lead .rs-sig,#reason .rs-aside,#profile .pf-role,#profile .pf-en,#profile .pf-ov th{color:var(--ink)}
#reason .rs-bubble{z-index:1}
#reason .rs-art{background:#fff;border:1.5px solid #2A2D4E;margin-top:10px}
#reason .rs-ctrl button,#profile .pf-ctrl button{background:#fff;border-color:var(--ink)}
#reason .rs-ctrl button:hover,#reason .rs-ctrl button:focus-visible,#profile .pf-ctrl button:hover,#profile .pf-ctrl button:focus-visible{background:var(--ink);border-color:var(--ink);color:#fff}
#reason :focus-visible,#profile :focus-visible{outline-color:var(--ink)}
#profile .pf-co{border-top-color:rgba(11,11,12,.35)}
#profile .pf-ov table{border-top-color:var(--ink)}
#profile .pf-ov th,#profile .pf-ov td{border-bottom-color:rgba(11,11,12,.35)}
#profile .pf-photo img{background:#fff}
/* オレンジ背景の文字は少し大きく（吹き出しと挿絵の中は除く） */
#reason .rs-lead p{font-size:20px}
#reason .rs-lead .rs-sig{font-size:17px}
#reason .rs-aside{font-size:17px}
#reason .rs-ctrl button,#profile .pf-ctrl button{font-size:16px}
#profile .pf-lead{font-size:19px}
#profile .pf-role,#profile .pf-en{font-size:17px}
#profile .pf-name{font-size:28px}
#profile .pf-ov th{font-size:17px}
#profile .pf-ov td{font-size:19px}
@media (max-width:767px){
  #reason .rs-lead p{font-size:17px}
  #reason .rs-lead .rs-sig{font-size:15px}
  #reason .rs-aside{font-size:16px}
  #profile .pf-lead{font-size:17px}
  #profile .pf-role,#profile .pf-en{font-size:15px}
  #profile .pf-ov th{font-size:15px}
  #profile .pf-ov td{font-size:17px}
}

.nav .menu{border:0;background:none;padding:0;cursor:pointer}
@media (min-width:768px) and (max-width:1360px){#fv .zc{display:none}#fv .nav{left:auto;right:32px;transform:none}}
@media (min-width:768px) and (max-width:1120px){#fv .nav .links{display:none}#fv .logo{left:32px}}
