/* RG Partners — Dark Modern (production) */
@font-face{font-family:"Geist";src:url(fonts/geist.woff2) format("woff2");font-weight:100 900;font-display:swap}
@font-face{font-family:"Geist Mono";src:url(fonts/geist-mono.woff2) format("woff2");font-weight:100 900;font-display:swap}

:root{
  --bg:#0A0A0B;
  --panel:#131315;
  --line:#26262A;
  --fg:#F5F5F7;
  --grey:#A0A0A8;
  --dim:#4A4A52;
  --blue:#4D7BFF;
  --blue-ink:#0A0A0B;
  --m:clamp(20px,3.4vw,56px);
  --sans:"Geist","Hiragino Sans","Hiragino Kaku Gothic ProN","Noto Sans JP","Noto Sans CJK JP","Yu Gothic",system-ui,sans-serif;
  --mono:"Geist Mono",ui-monospace,monospace;
  --ease:cubic-bezier(.2,.7,.2,1);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:72px}
body{margin:0;background:var(--bg);color:var(--fg);font:400 17px/1.55 var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%;height:auto}
h1,h2,h3,p{margin:0;font-weight:inherit}
::selection{background:var(--blue);color:#fff}
:focus-visible{outline:2px solid var(--blue);outline-offset:3px}
.skip{position:absolute;left:-9999px;top:0;z-index:100;background:var(--blue);color:#fff;padding:10px 16px;font-weight:500}
.skip:focus{left:12px;top:12px}
.mono{font-family:var(--mono);font-size:13px;color:var(--grey);letter-spacing:0}
.wrap{max-width:1360px;margin:0 auto;padding:0 var(--m)}
.nw{display:inline-block}

/* language */
html[data-lang="en"] .ja{display:none!important}
html[data-lang="ja"] .en{display:none!important}
html[data-lang="ja"] body{line-height:1.75;line-break:strict}
html[data-lang="ja"] .hero h1{letter-spacing:-.04em;line-height:1.08;font-size:clamp(44px,7.4vw,118px)}
html[data-lang="ja"] .spec{grid-template-columns:1fr;gap:6px}
html[data-lang="ja"] .who h3{font-size:clamp(24px,2.8vw,44px)}
html[data-lang="ja"] .lit,
html[data-lang="ja"] .h2,
html[data-lang="ja"] .who h3,
html[data-lang="ja"] .tl-labels h3{letter-spacing:-.02em;line-height:1.2}

/* header */
.hd{position:fixed;inset:0 0 auto;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px var(--m);background:linear-gradient(var(--bg) 55%,transparent)}
.hd-brand{display:flex;align-items:center;gap:12px;font-weight:600;font-size:14px;letter-spacing:-.01em}
.hd-brand img{height:28px;width:auto}
.hd-right{display:flex;align-items:center;gap:28px}
.hd nav{display:flex;gap:26px;font-size:14px;color:var(--grey)}
.hd nav a:hover{color:var(--fg)}
.hd nav a.c{color:var(--fg);display:inline-flex;align-items:center}
.hd nav a.c::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--blue);margin-right:9px;flex-shrink:0}
.lang{display:flex}
.lang button{all:unset;cursor:pointer;padding:5px 9px;font-size:12px;font-weight:600;letter-spacing:.04em;border:1px solid var(--line);color:var(--grey)}
.lang button+button{border-left:0}
.lang button[aria-pressed="true"]{background:var(--fg);color:var(--bg);border-color:var(--fg)}
.lang button:hover{color:var(--fg)}
.lang button:focus-visible{outline:2px solid var(--blue);outline-offset:2px}

/* hero */
.hero{height:190vh;position:relative}
.hero-in{position:sticky;top:0;height:100vh;overflow:hidden;display:flex;flex-direction:column;justify-content:center;padding:0 var(--m)}
.hero h1{font-weight:600;font-size:clamp(52px,10vw,160px);line-height:.92;letter-spacing:-.055em;transform-origin:0 50%;transform:scale(calc(1 - var(--p,0)*.42)) translateY(calc(var(--p,0)*-6vh));opacity:calc(1 - var(--p,0)*.55);will-change:transform}
.hero h1 em{font-style:normal;color:var(--blue)}
.hero-foot{position:absolute;left:var(--m);right:var(--m);bottom:clamp(28px,5vh,56px);display:flex;justify-content:space-between;align-items:flex-end;gap:30px;opacity:calc(1 - var(--p,0)*2)}
.hero-foot p{max-width:32em;color:var(--grey);font-size:18px}
.hero-foot p b{color:var(--fg);font-weight:500}
.go{display:inline-flex;align-items:center;gap:12px;font-size:17px;font-weight:500;color:var(--fg);white-space:nowrap}
.go .ar{display:inline-grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--blue);color:#fff;transition:transform .4s var(--ease)}
.go:hover .ar{transform:translateX(4px)}
.go:focus-visible{outline:2px solid var(--blue);outline-offset:4px}
.horizon{position:absolute;left:50%;bottom:-62vw;width:96vw;height:96vw;margin-left:-48vw;border-radius:50%;border-top:1px solid rgba(77,123,255,.95);box-shadow:0 -1px 0 rgba(77,123,255,.18);transform:translateY(calc(var(--p,0)*-18vh));opacity:.95;pointer-events:none}

/* marquee */
.marq{border-top:1px solid var(--line);border-bottom:1px solid var(--line);overflow:hidden;padding:44px 0;position:relative}
.marq .mono{position:absolute;left:var(--m);top:14px}
.track{display:flex;gap:96px;align-items:center;width:max-content;animation:mq 38s linear infinite;padding-top:12px}
.track img{width:auto;opacity:.9}
.b-apple{height:34px}.b-lvmh{height:32px}.b-dfs{height:36px}.b-gucci{height:22px}.b-ralph{height:13px}.b-marc{height:12px}.b-prada{height:20px}
@keyframes mq{to{transform:translateX(-50%)}}

/* sections */
.sec{padding:clamp(110px,14vw,200px) 0 0}
.lit{font-size:clamp(32px,4.4vw,72px);line-height:1.06;letter-spacing:-.04em;font-weight:600;max-width:15em}
.lit .lit-words>span{color:var(--dim);transition:color .5s}
.lit .lit-words>span.on,.shot .lit .lit-words>span{color:var(--fg)}
.lit .lit-words>span.b.on,.shot .lit .lit-words>span.b{color:var(--blue)}
.specs{display:grid;grid-template-columns:repeat(2,1fr);column-gap:clamp(40px,6vw,120px);margin-top:clamp(70px,8vw,120px)}
.spec{display:grid;grid-template-columns:minmax(140px,200px) 1fr;gap:24px;padding:26px 0;border-top:1px solid var(--line)}
.spec h3{font-size:17px;font-weight:500}
.spec p{color:var(--grey);font-size:16px}

.h2{font-size:clamp(40px,5vw,80px);font-weight:600;letter-spacing:-.05em;line-height:.98}
.h2 em{font-style:normal;color:var(--grey)}

/* timeline */
.tl{margin-top:80px;position:relative}
.bar{position:relative;height:10px;border-radius:5px;background:var(--panel);overflow:hidden}
.bar i{position:absolute;top:0;bottom:0;border-radius:5px}
.bar .d{left:0;width:34%;background:var(--blue)}
.bar .r{left:34%;width:1.4%;background:var(--fg)}
.bar .e{left:35.4%;right:0;background:repeating-linear-gradient(90deg,var(--dim) 0 14px,transparent 14px 22px)}
.tl-labels{display:grid;grid-template-columns:34% 20% 1fr;margin-top:28px}
.tl-labels div{padding-right:28px}
.tl-labels h3{font-size:clamp(24px,2.3vw,36px);font-weight:600;letter-spacing:-.03em;margin:8px 0 10px}
.tl-labels p{color:var(--grey);font-size:16px;max-width:26em}

/* who */
.who{margin-top:64px;border-top:1px solid var(--line)}
.who div{display:flex;justify-content:space-between;align-items:baseline;gap:30px;padding:30px 0;border-bottom:1px solid var(--line)}
.who h3{font-size:clamp(28px,3.4vw,54px);font-weight:500;letter-spacing:-.04em;line-height:1}
.who p{color:var(--grey);max-width:24em;text-align:right}

/* ventures */
.ven{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:64px}
.v{background:var(--panel);border-radius:22px;min-height:440px;padding:40px;display:flex;flex-direction:column;justify-content:space-between;border:1px solid transparent;transition:border-color .4s var(--ease)}
.v:hover,.v:focus-visible{border-color:var(--blue)}
.v:focus-visible{outline:none}
.v img{height:62px;width:auto;align-self:flex-start}
.v-foot{display:flex;justify-content:space-between;align-items:flex-end;gap:20px}
.v-foot p{font-size:24px;font-weight:500;letter-spacing:-.02em;max-width:12em;line-height:1.2}
.v-foot .mono{color:var(--fg)}

/* about */
.about{display:grid;grid-template-columns:7fr 5fr;gap:clamp(40px,6vw,120px);align-items:end}
.about p.big{font-size:clamp(26px,2.6vw,40px);line-height:1.2;letter-spacing:-.03em;font-weight:500}
.about p.big em{font-style:normal;color:var(--grey)}
.about .side p{color:var(--grey);margin-bottom:16px}
.about .side img{height:72px;width:auto;margin-bottom:30px}

/* contact */
.contact{padding-bottom:clamp(90px,10vw,160px)}
.contact .h2{font-size:clamp(64px,12vw,200px);letter-spacing:-.065em;line-height:.88}
.contact .mail{display:inline-block;margin-top:40px;font-size:clamp(22px,2.6vw,40px);color:var(--blue);font-weight:500;letter-spacing:-.02em;border-bottom:2px solid transparent;transition:border-color .3s;overflow-wrap:anywhere}
.contact .mail:hover{border-color:var(--blue)}
.contact .row{display:flex;gap:36px;margin-top:26px;color:var(--grey);font-size:15px;flex-wrap:wrap}
.contact .row a:hover{color:var(--fg)}
footer{border-top:1px solid var(--line);padding:26px var(--m);display:flex;justify-content:space-between;font-size:13px;color:var(--grey);flex-wrap:wrap;gap:12px}

/* screenshot flatten */
.shot .hero{height:100vh}
.shot .hero h1{transform:none!important;opacity:1!important}
.shot .hero-foot{opacity:1!important}
.shot .horizon{transform:none!important}

@media (max-width:860px){
  .hd-brand span{display:none}
  .hd nav a:not(.c){display:none}
  .hd-right{gap:16px}
  .hero{height:160vh}
  .hero h1{font-size:10.6vw}
  .hero-foot{flex-direction:column;align-items:flex-start}
  .hero-foot p{font-size:16px}
  .horizon{bottom:-80vw;width:150vw;height:150vw;margin-left:-75vw}
  .specs{grid-template-columns:1fr}
  .spec{grid-template-columns:1fr;gap:6px}
  .tl-labels{grid-template-columns:1fr;gap:26px}
  .who div{flex-direction:column;gap:10px}
  .who p{text-align:left}
  .ven,.about{grid-template-columns:1fr}
  .v{min-height:300px;padding:28px}
  .track{gap:60px}
  .contact .h2{font-size:18vw}
  html[data-lang="ja"] .hero h1{font-size:9.2vw}
  html[data-lang="ja"] .lit{font-size:clamp(28px,7vw,40px)}
  html[data-lang="ja"] .h2{font-size:clamp(34px,8vw,52px)}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .track{animation:none}
  .hero h1,.horizon{transform:none!important;opacity:1!important}
  .hero-foot{opacity:1!important}
  .go .ar,.v{transition:none}
  .lit span{transition:none}
}

/* floortok feature */
.ft{display:grid;grid-template-columns:auto 1fr;gap:clamp(32px,5vw,88px);align-items:center;background:var(--panel);border-radius:22px;padding:clamp(32px,5vw,80px);border:1px solid var(--line)}
.ft-mark{width:clamp(110px,13vw,190px);height:auto}
.ft-body .mono{margin-bottom:18px}
.ft-h{font-size:clamp(26px,2.9vw,46px);line-height:1.14;letter-spacing:-.035em;font-weight:500;max-width:22em;margin-bottom:36px}
.ft-h b{font-weight:600}
.ft-h em{font-style:normal;color:var(--grey)}
html[data-lang="ja"] .ft-h{letter-spacing:-.01em;line-height:1.5}

/* inquiry form */
.contact-grid{margin-top:clamp(40px,5vw,72px);display:grid;grid-template-columns:5fr 6fr;gap:clamp(40px,6vw,120px);align-items:start}
.contact-lede{margin-top:6px;color:var(--grey);font-size:18px;max-width:26em}
.contact .row{margin-top:32px}
.form{display:grid;gap:6px;padding-top:12px}
.f-row{display:flex;flex-direction:column;gap:8px;padding:14px 0}
.f-row label{font-family:var(--mono);font-size:13px;color:var(--grey)}
html[data-lang="ja"] .f-row label{font-family:var(--sans)}
.f-row input,.f-row textarea{all:unset;box-sizing:border-box;width:100%;font:400 19px/1.45 var(--sans);color:var(--fg);padding:10px 0 12px;border-bottom:1px solid var(--line);transition:border-color .3s}
.f-row textarea{resize:vertical;min-height:140px;white-space:pre-wrap}
.f-row input:hover,.f-row textarea:hover{border-color:#3A3A40}
.f-row input:focus,.f-row textarea:focus{border-color:var(--blue)}
.f-row input:focus-visible,.f-row textarea:focus-visible{outline:none;box-shadow:0 1px 0 0 var(--blue)}
.f-row.err input,.f-row.err textarea{border-color:#FF6B6B}
.hp{position:absolute!important;left:-10000px!important;width:1px;height:1px;overflow:hidden}
.f-foot{display:flex;align-items:center;gap:28px;flex-wrap:wrap;margin-top:22px}
button.go{all:unset;cursor:pointer;display:inline-flex;align-items:center;gap:12px;font-size:17px;font-weight:500;color:var(--fg);white-space:nowrap}
button.go .ar{display:inline-grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--blue);color:#fff;transition:transform .4s var(--ease)}
button.go:hover .ar{transform:translateX(4px)}
button.go:focus-visible{outline:2px solid var(--blue);outline-offset:4px}
button.go[disabled]{opacity:.55;cursor:progress}
.f-status{font-size:15px;color:var(--grey);min-height:1.5em}
.f-status.ok{color:var(--fg)}
.f-status.ok::before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--blue);margin-right:10px;vertical-align:1px}
.f-status.bad{color:#FF8A8A}
.form.done .f-row,.form.done .f-foot .send{opacity:.4;pointer-events:none}

@media (max-width:860px){
  .ft{grid-template-columns:1fr;gap:28px;padding:28px}
  .ft-mark{width:96px}
  .contact-grid{grid-template-columns:1fr}
  .f-row input,.f-row textarea{font-size:17px}
}

/* AI pillar */
.ai-kick{margin-bottom:28px;color:var(--blue)}
.ai-h{font-size:clamp(48px,7vw,116px);letter-spacing:-.055em;line-height:.94;max-width:12em}
html[data-lang="ja"] .ai-h{font-size:clamp(40px,5.6vw,92px);line-height:1.12;letter-spacing:-.02em}
.ai-cred{display:grid;grid-template-columns:7fr 4fr;gap:clamp(40px,6vw,120px);margin-top:clamp(56px,7vw,100px);align-items:end}
.ai-cred-lead{font-size:clamp(22px,2.2vw,32px);line-height:1.3;letter-spacing:-.025em;font-weight:500;color:var(--fg)}
html[data-lang="ja"] .ai-cred-lead{line-height:1.6;letter-spacing:0}
.ai-cred-lead a{color:var(--fg);text-decoration:none;border-bottom:1px solid var(--blue);transition:color .3s}
.ai-cred-lead a:hover{color:var(--blue)}
.ai-cred-side{color:var(--grey);font-size:17px;border-left:1px solid var(--blue);padding-left:22px}
.ai-list{list-style:none;margin:clamp(70px,8vw,120px) 0 0;padding:0;border-top:1px solid var(--line)}
.ai-list li{display:grid;grid-template-columns:72px minmax(0,5fr) minmax(0,6fr);gap:clamp(20px,3vw,48px);align-items:baseline;padding:clamp(28px,3vw,44px) 0;border-bottom:1px solid var(--line);position:relative}
.ai-list li::before{content:"";position:absolute;left:0;top:-1px;height:1px;width:0;background:var(--blue);transition:width 1.1s var(--ease)}
.ai-list li.on::before,.shot .ai-list li::before{width:100%}
.ai-list h3{font-size:clamp(26px,3vw,48px);font-weight:500;letter-spacing:-.04em;line-height:1.02;color:var(--dim);transition:color .6s}
.ai-list li.on h3,.shot .ai-list h3{color:var(--fg)}
.ai-n{color:var(--blue)}
.ai-d p:first-child{color:var(--grey);font-size:17px;max-width:32em}
.ai-d .mono{margin-top:16px;color:#7A7A84}
html[data-lang="ja"] .ai-list h3{letter-spacing:-.01em;font-size:clamp(24px,2.6vw,40px)}
html[data-lang="ja"] .ai-d .mono{font-family:var(--sans);font-size:13px}
.ai-go{margin-top:clamp(48px,5vw,72px)}
@media (max-width:860px){
  .ai-cred{grid-template-columns:1fr;gap:28px}
  .ai-list li{grid-template-columns:1fr;gap:10px}
  .ai-list h3{color:var(--fg)}
}
@media (prefers-reduced-motion:reduce){.ai-list h3{color:var(--fg)}.ai-list li::before{width:100%}}
html[data-lang="ja"] .ai-kick{font-family:var(--sans)}

/* v6: positioning */
.hero-kick{margin-bottom:clamp(22px,3vh,36px);color:var(--blue);opacity:calc(1 - var(--p,0)*1.6)}
html[data-lang="ja"] .hero-kick{font-family:var(--sans)}
.shot .hero-kick{opacity:1}
.tenets{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(28px,4vw,72px);margin-top:clamp(70px,8vw,120px)}
.tenets div{border-top:1px solid var(--blue);padding-top:22px}
.tenets h3{font-size:clamp(26px,2.6vw,40px);font-weight:600;letter-spacing:-.04em;line-height:1;margin-bottom:14px}
.tenets p{color:var(--grey);font-size:16px;max-width:22em}
/* four-step timeline */
.tl4 .bar i{top:0;bottom:0}
.tl4 .bar .s1{left:0;width:24.4%;background:var(--blue)}
.tl4 .bar .s2{left:25%;width:24.4%;background:var(--blue);opacity:.55}
.tl4 .bar .s3{left:50%;width:24.4%;background:var(--fg)}
.tl4 .bar .s4{left:75%;right:0;background:repeating-linear-gradient(90deg,var(--dim) 0 14px,transparent 14px 22px)}
.tl4 .tl-labels{grid-template-columns:repeat(4,1fr);list-style:none;padding:0;margin:28px 0 0}
.tl4 .tl-labels li{padding-right:28px}
/* background */
.bg-head{display:grid;grid-template-columns:8fr 4fr;gap:clamp(40px,6vw,120px);align-items:end}
.bg-head .h2{max-width:14em}
.bg-side img{height:72px;width:auto;margin-bottom:26px}
.bg-side p{color:var(--grey);margin-bottom:12px}
.bg-names{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 22px;margin-top:clamp(64px,7vw,110px);padding:30px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:clamp(24px,2.7vw,42px);font-weight:500;letter-spacing:-.04em;line-height:1.2}
.bg-names i{font-style:normal;color:var(--blue);font-weight:400}
.bg-roles{margin:0}
.bg-roles>div{display:grid;grid-template-columns:minmax(120px,200px) 1fr;gap:24px;padding:22px 0;border-bottom:1px solid var(--line);align-items:baseline}
.bg-roles dt{color:var(--grey)}
.bg-roles dd{margin:0;font-size:clamp(17px,1.5vw,21px);color:var(--fg);max-width:46em}
.bg-roles dd a{color:var(--fg);text-decoration:none;border-bottom:1px solid var(--blue)}
.bg-roles dd a:hover{color:var(--blue)}
html[data-lang="ja"] .bg-roles dt,html[data-lang="ja"] .tl4 .tl-labels .mono{font-family:var(--sans)}
@media (max-width:860px){
  .tenets{grid-template-columns:1fr;gap:30px}
  .tl4 .tl-labels{grid-template-columns:1fr;gap:26px}
  .bg-head{grid-template-columns:1fr;gap:36px}
  .bg-roles>div{grid-template-columns:1fr;gap:6px}
}
.tl4 .tl-labels h3{line-height:1.08}
