:root{--navy:#06284a;--deep:#041c34;--teal:#16b4b8;--green:#72cf45;--ink:#102335;--sub:#485a68;--paper:#f6f8f9;--line:#dce3e8}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-snap-type:y proximity}
body{margin:0;color:var(--ink);background:#fff;font-family:"Helvetica Neue","Hiragino Kaku Gothic ProN","Noto Sans JP","Yu Gothic",YuGothic,Meiryo,Arial,sans-serif;font-size:16px;line-height:1.8;letter-spacing:.045em}
a{color:inherit;text-decoration:none}
.t{color:var(--teal)}
.g{color:var(--green)}

/* header */
.site-header{height:116px;position:absolute;z-index:20;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(24px,5vw,80px);color:var(--navy);background:#fff;border-bottom:1px solid var(--line)}
.brand{display:flex;width:252px;height:78px;align-items:center;overflow:hidden}
.brand img{display:block;width:100%;height:100%;object-fit:contain}
nav{display:flex;gap:44px;font-size:.9rem;font-weight:500;letter-spacing:.1em}
nav a{position:relative}
nav a:after{content:"";position:absolute;left:0;right:100%;bottom:-6px;height:2px;background:var(--green);transition:right .25s ease}
nav a:hover:after,nav a:focus-visible:after{right:0}
a:focus-visible,button:focus-visible{outline:2px solid var(--teal);outline-offset:4px}
.menu-button,.mobile-nav{display:none}

/* hero */
.hero{min-height:720px;height:100svh;position:relative;overflow:hidden;background:var(--navy);color:#fff;display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,26%);align-items:center;gap:40px;padding:144px clamp(24px,8vw,128px) 80px;scroll-snap-align:start}
.hero:after{content:"";position:absolute;width:34vw;height:34vw;min-width:390px;min-height:390px;right:-10vw;bottom:-17vw;border:1px solid rgba(114,207,69,.16);transform:rotate(45deg)}
.hero-grid{position:absolute;inset:116px 0 0;background-image:linear-gradient(rgba(255,255,255,.026) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.026) 1px,transparent 1px);background-size:80px 80px;mask-image:linear-gradient(to right,transparent,black 56%,black)}
.hero-copy{position:relative;z-index:2}
.hero-copy:before{content:"";display:block;width:clamp(74px,8vw,130px);height:2px;margin:0 0 clamp(32px,5vh,58px);background:linear-gradient(90deg,var(--teal) 0 66%,var(--green) 66%)}
.eyebrow{font-size:.78rem;font-weight:700;letter-spacing:.22em;color:var(--teal);margin:0 0 28px}
.hero-copy h1{font-size:clamp(2.8rem,5.8vw,6.2rem);font-weight:600;line-height:1.16;letter-spacing:-.045em;margin:0}
.hero-copy h1 .outline{color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.82)}
.lead{font-size:clamp(1rem,1.4vw,1.2rem);margin:40px 0 0;color:rgba(255,255,255,.82);line-height:2}
.hero-domains{position:relative;z-index:2;justify-self:end;width:min(330px,100%);display:grid;gap:0;border-top:1px solid rgba(255,255,255,.24);border-bottom:1px solid rgba(255,255,255,.24)}
.hero-domains p{margin:0}
.hd{display:grid;grid-template-columns:3px 1fr;gap:20px;align-items:center;padding:22px 0;border-bottom:1px solid rgba(255,255,255,.14)}
.hd:last-child{border-bottom:0}
.hd i{display:block;width:3px;height:44px}
.hd i.t{background:var(--teal)}
.hd i.g{background:var(--green)}
.hd.core i{background:rgba(255,255,255,.82)}
.hd b{display:block;font-size:1.32rem;font-weight:600;letter-spacing:.1em;line-height:1.5}
.hd em{display:block;font-style:normal;font-size:.68rem;letter-spacing:.18em;color:rgba(255,255,255,.62)}
.scroll-cue{position:absolute;z-index:2;bottom:34px;left:clamp(24px,5vw,80px);font-size:.66rem;letter-spacing:.22em;display:flex;align-items:center;gap:16px;color:rgba(255,255,255,.75)}
.scroll-cue i{display:block;width:58px;height:1px;background:var(--teal);position:relative;overflow:hidden}
.scroll-cue i:after{content:"";position:absolute;inset:0;background:#fff;animation:scan 2.4s infinite}
@keyframes scan{0%{transform:translateX(-110%)}60%,100%{transform:translateX(110%)}}

/* common section */
.section{min-height:100svh;padding:clamp(64px,8vh,100px) clamp(24px,8vw,128px);position:relative;scroll-snap-align:start}
.section-index{position:absolute;left:clamp(24px,3.5vw,56px);top:clamp(48px,7vw,100px);font-size:.72rem;letter-spacing:.16em;color:var(--navy);font-weight:700;writing-mode:vertical-rl}
.section-index span{color:var(--sub);margin-top:10px;font-weight:400}
.section-index.light,.section-index.light span{color:rgba(255,255,255,.75)}
.kicker{font-size:.78rem;font-weight:700;letter-spacing:.22em;color:var(--navy);margin:0 0 30px;display:flex;align-items:center;gap:14px}
.kicker:before{content:"";width:28px;height:2px;background:var(--teal)}
h2{font-size:clamp(2rem,4.2vw,4.6rem);font-weight:600;letter-spacing:-.02em;line-height:1.3;margin:0;color:var(--navy)}

/* about */
.statement{display:flex;align-items:center;background:var(--paper);border-top:1px solid var(--line)}
.statement-body{width:min(860px,82%);margin-left:auto}
.statement-body p:not(.kicker){max-width:680px;margin:32px 0 0;color:var(--sub);font-size:1.05rem;line-height:2.15}
.statement-body h2+p{margin-top:48px}
@media(min-width:761px){
  .statement-body{width:min(1040px,88%)}
  .statement-body .statement-lines{max-width:none;white-space:nowrap}
}

/* business */
.business{background:var(--deep);color:#fff;display:flex;flex-direction:column;justify-content:center}
.business .kicker{color:#fff}
.business h2{color:#fff}
.business-heading{display:grid;grid-template-columns:1fr 2fr;align-items:start;margin-bottom:clamp(26px,4vh,46px)}
.business-heading .kicker{margin-top:16px}
.business-heading h2{font-size:clamp(2.1rem,4vw,4.4rem)}
.domains{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.domain,.foundation{padding:clamp(22px,2.5vw,38px);background:transparent;border:1px solid rgba(255,255,255,.14);border-top-width:3px}
.domain.comm{border-top-color:var(--teal)}
.domain.cycle{border-top-color:var(--green)}
.foundation{margin-top:24px;border-top-color:rgba(255,255,255,.75);display:grid;grid-template-columns:minmax(260px,.75fr) minmax(0,1.25fr);column-gap:6vw;align-items:start}
.foundation .tag{grid-column:1/-1}
.tag{font-size:.72rem;font-weight:700;letter-spacing:.2em;margin:0 0 14px;color:rgba(255,255,255,.75)}
.comm .tag{color:var(--teal)}
.cycle .tag{color:var(--green)}
.domain h3,.foundation h3{font-size:clamp(1.4rem,2.1vw,2rem);font-weight:600;margin:0 0 14px;letter-spacing:.04em;line-height:1.4}
.domain p:last-child,.foundation p:last-child{margin:0;color:rgba(255,255,255,.86);line-height:1.85}
.foundation p:last-child{max-width:760px}

/* company & contact */
.company,.contact{display:grid;grid-template-columns:1fr 1.3fr;gap:8vw;align-items:center;background:#fff}
.contact{background:var(--navy);color:#fff;border-top:1px solid rgba(255,255,255,.14)}
.contact h2,.contact .kicker{color:#fff}
.contact .kicker:before{background:var(--green)}
.contact .section-index,.contact .section-index span{color:rgba(255,255,255,.72)}
.company-table{margin:0}
.company-table div{display:grid;grid-template-columns:140px 1fr;padding:25px 0;border-bottom:1px solid var(--line)}
.company-table div:first-child{border-top:1px solid var(--line)}
.company-table dt{font-size:.85rem;color:var(--sub);font-weight:500}
.company-table dd{margin:0}
.contact-body{margin-top:32px}
.contact-body p{margin:0}
.contact-body .cf-lead{max-width:400px;line-height:2}

/* contact form panel */
.cf-panel{display:flex;flex-direction:column;gap:18px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.16);border-radius:8px;padding:clamp(24px,2.6vw,32px)}
.cf-steps{list-style:none;display:flex;align-items:center;gap:10px;margin:0 0 4px;padding:0}
.cf-step{display:flex;align-items:center;gap:6px;font-size:.72rem;font-weight:500;letter-spacing:.05em;color:rgba(255,255,255,.5)}
.cf-step:after{content:"";flex:0 0 32px;height:1px;background:rgba(255,255,255,.25);margin-left:10px}
.cf-step:last-child:after{display:none}
.cf-step-num{display:flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background:rgba(255,255,255,.12);color:rgba(255,255,255,.5);font-size:.68rem;font-weight:700}
.cf-step.is-active{color:#fff;font-weight:700}
.cf-step.is-active .cf-step-num{background:var(--teal);color:var(--navy)}
.cf-step.is-done .cf-step-num{background:var(--green);color:var(--navy)}
.cf-step.is-done{color:rgba(255,255,255,.65)}

.cf-form,.cf-confirm,.cf-thanks{display:flex;flex-direction:column;gap:18px}
.cf-panel [hidden]{display:none}
.cf-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.cf-field{display:flex;flex-direction:column;gap:6px}
.cf-field label{font-size:.72rem;letter-spacing:.05em;color:rgba(255,255,255,.6)}
.cf-req{color:var(--green)}
.cf-field input,.cf-field textarea{height:42px;padding:0 14px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.24);border-radius:4px;color:#fff;font:inherit;font-size:.85rem;letter-spacing:.02em}
.cf-field textarea{height:88px;padding:12px 14px;resize:vertical;line-height:1.7}
.cf-field input::placeholder,.cf-field textarea::placeholder{color:rgba(255,255,255,.4)}
.cf-field input:focus,.cf-field textarea:focus{outline:none;border-color:var(--teal)}
.cf-turnstile{min-height:65px}
.cf-error{margin:0;padding:10px 14px;border:1px solid rgba(255,90,90,.5);border-radius:4px;background:rgba(255,90,90,.1);color:#ffb3b3;font-size:.8rem;line-height:1.7}
.cf-notice{margin:0;padding:8px 14px;border:1px solid rgba(255,255,255,.18);border-radius:4px;background:rgba(255,255,255,.04);color:rgba(255,255,255,.6);font-size:.72rem;line-height:1.65;letter-spacing:.02em}

.cf-btn{display:inline-flex;align-items:center;justify-content:center;height:46px;padding:0 28px;border-radius:4px;border:0;font-size:.82rem;font-weight:700;letter-spacing:.05em;cursor:pointer;font:inherit}
.cf-btn-primary{background:var(--teal);color:var(--navy)}
.cf-btn-primary:disabled{opacity:.6;cursor:not-allowed}
.cf-btn-outline{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.4)}
.cf-actions{display:flex;gap:14px}
.cf-actions .cf-btn{flex:1}

.cf-summary{margin:0;display:flex;flex-direction:column}
.cf-summary>div{display:flex;justify-content:space-between;gap:20px;padding:13px 0;border-bottom:1px solid rgba(255,255,255,.14)}
.cf-summary dt{flex:0 0 120px;font-size:.72rem;color:rgba(255,255,255,.55)}
.cf-summary dd{margin:0;flex:1;text-align:right;font-size:.88rem;color:#fff}
.cf-summary-message{flex-direction:column!important;align-items:flex-start;justify-content:flex-start!important;gap:8px}
.cf-summary-message dt{flex:0 0 auto}
.cf-summary-message dd{text-align:left;line-height:1.85;white-space:pre-wrap}

.cf-thanks{align-items:center;text-align:center;padding:24px 0}
.cf-thanks-icon{width:64px;height:64px;border-radius:50%;background:var(--green);color:var(--navy);display:flex;align-items:center;justify-content:center;font-size:28px;font-weight:700}
.cf-thanks h3{margin:0;font-size:1.3rem;font-weight:600;color:#fff}
.cf-thanks p{margin:0;max-width:460px;font-size:.88rem;line-height:1.9;color:rgba(255,255,255,.75)}
.cf-thanks .cf-btn{margin-top:10px}

@media(max-width:760px){
  .cf-row{grid-template-columns:1fr}
  .cf-summary>div{flex-direction:column;gap:4px}
  .cf-summary dd{text-align:left}
}

/* footer */
footer{background:#03172b;color:#fff;padding:70px clamp(24px,5vw,80px) 28px}
.footer-top{display:flex;justify-content:flex-start;align-items:end;padding-bottom:70px}
.footer-top p{font-size:clamp(2rem,4.3vw,4.6rem);font-weight:500;line-height:1.25;letter-spacing:-.035em;text-align:left;margin:0}
.footer-bottom{border-top:1px solid rgba(255,255,255,.2);padding-top:24px;display:flex;justify-content:space-between;gap:16px;color:rgba(255,255,255,.7);font-size:.72rem;letter-spacing:.12em}

.js .reveal{opacity:0;transform:translateY(18px);transition:opacity .8s ease,transform .8s ease}
.js .reveal.visible{opacity:1;transform:none}

@media(max-width:900px){
  .domains{grid-template-columns:1fr}
  .business-heading{display:block}
  .business-heading .kicker{margin-top:0}
  .foundation{display:block}
}
@media(max-width:760px){
  html{scroll-snap-type:none}
  .site-header{height:84px;padding:0 20px}
  .brand{width:184px;height:58px}
  nav{display:none}
  .menu-button{display:flex;width:44px;height:44px;border:0;background:transparent;flex-direction:column;justify-content:center;gap:7px;padding:10px;z-index:2}
  .menu-button span{height:2px;background:var(--navy);width:100%;transition:.25s}
  .menu-button[aria-expanded="true"] span{background:#fff}
  .menu-button[aria-expanded="true"] span:first-child{transform:translateY(4.5px) rotate(45deg)}
  .menu-button[aria-expanded="true"] span:last-child{transform:translateY(-4.5px) rotate(-45deg)}
  .mobile-nav{position:absolute;display:flex;visibility:hidden;opacity:0;pointer-events:none;top:0;left:0;right:0;background:var(--deep);color:#fff;padding:100px 24px 30px;flex-direction:column;gap:20px;transition:.25s}
  .mobile-nav.open{visibility:visible;opacity:1;pointer-events:auto}
  .hero{height:auto;min-height:0;display:block;padding:130px 24px 110px}
  .hero-copy{margin-top:20px}
  .hero-copy h1{font-size:clamp(2rem,8.6vw,3.4rem)}
  .lead{margin-top:28px}
  .desktop-only{display:none}
  .hero-domains{margin-top:52px;width:100%;max-width:320px}
  .scroll-cue{left:24px;bottom:28px}
  .section{min-height:0;padding:88px 24px}
  .section-index{display:none}
  .statement-body{width:100%}
  .company,.contact{display:block}
  .company-heading{margin-bottom:44px}
  .company-table div{grid-template-columns:1fr;gap:4px}
  .domain h3,.foundation h3{font-size:1.35rem}
  .footer-top{justify-content:flex-start}
  .footer-bottom{flex-direction:column}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.js .reveal{opacity:1;transform:none;transition:none}.scroll-cue i:after{animation:none}}
