@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Inter:wght@400;500;600;700&family=Noto+Sans+JP:wght@400;500;600;700;800&display=swap');

:root { --ink:#071923; --ink-soft:#14313b; --paper:#f2f0eb; --paper-2:#e7e6df; --mist:#c8d3d0; --vermillion:#e85843; --sun:#f2aa44; --white:#fffefa; --line:rgba(7,25,35,.16); --muted:#6c7a7a; --serif:Georgia,'Times New Roman',serif; --sans:Inter,'Noto Sans JP',Arial,sans-serif; --mono:'DM Mono',monospace; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:var(--sans); -webkit-font-smoothing:antialiased; }
a { color:inherit; text-decoration:none; }
button,input,textarea { font:inherit; }
.site-shell { overflow:hidden; }
.section-pad { padding:clamp(5rem,9vw,9.5rem) clamp(1.25rem,6vw,7.5rem); }
.site-header { height:84px; padding:0 clamp(1.25rem,6vw,7.5rem); display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid rgba(7,25,35,.1); position:absolute; z-index:10; width:100%; top:0; color:var(--white); }
.brand { display:flex; gap:12px; align-items:center; letter-spacing:.02em; }
.brand-mark { width:38px; height:38px; display:grid; place-items:center; }
.brand-mark svg { width:100%; height:100%; }
.brand-copy { display:flex; flex-direction:column; gap:2px; }
.brand-copy strong { font-size:15px; font-weight:600; letter-spacing:.13em; }
.brand-copy small { font:10px var(--mono); letter-spacing:.15em; opacity:.68; }
.main-nav { display:flex; align-items:center; gap:clamp(1rem,2.5vw,2.6rem); font:11px var(--mono); letter-spacing:.1em; text-transform:uppercase; }
.main-nav a { opacity:.76; transition:opacity .25s,color .25s; }
.main-nav a:hover { color:var(--sun); opacity:1; }
.main-nav .nav-cta { border:1px solid rgba(255,254,250,.55); padding:11px 14px; opacity:1; }
.nav-cta span, .button span { font-size:16px; line-height:0; margin-left:10px; }
.menu-toggle { display:none; background:none; border:0; color:var(--white); padding:8px 0; }
.menu-toggle span { display:block; width:26px; height:1px; background:currentColor; margin:6px; transition:.25s; }
.hero { min-height:720px; background:var(--ink); color:var(--white); position:relative; display:flex; flex-direction:column; justify-content:center; padding-top:170px; padding-bottom:70px; }
.hero-noise { position:absolute; inset:0; opacity:.09; background-image:radial-gradient(rgba(255,255,255,.8) .5px,transparent .6px); background-size:7px 7px; pointer-events:none; }
.hero-grid { max-width:1400px; width:100%; margin:0 auto; display:grid; grid-template-columns:minmax(0,1.06fr) minmax(390px,.94fr); gap:5vw; align-items:center; position:relative; z-index:1; }
.eyebrow,.overline,.section-index { font:10px var(--mono); letter-spacing:.17em; text-transform:uppercase; }
.eyebrow { color:var(--mist); display:flex; align-items:center; gap:10px; }
.eyebrow-dot { width:7px; height:7px; border-radius:50%; background:var(--vermillion); box-shadow:0 0 0 5px rgba(232,88,67,.12); }
.hero-kicker { margin:3.4rem 0 1.2rem; color:var(--sun); font:500 clamp(.82rem,1.15vw,1.05rem) var(--sans); letter-spacing:.08em; }
h1,h2,h3,p { margin-top:0; }
h1 { font-size:clamp(3.5rem,6.2vw,7rem); line-height:1.08; letter-spacing:-.065em; font-weight:500; margin-bottom:1.8rem; }
h1 em,h2 em { font-family:var(--serif); font-weight:400; letter-spacing:-.08em; color:var(--vermillion); }
.hero-en { color:#a9b9b7; font:14px/1.8 var(--mono); letter-spacing:.035em; }
.hero-actions { display:flex; align-items:center; gap:2rem; margin-top:3.2rem; }
.button { display:inline-flex; align-items:center; justify-content:center; padding:15px 19px; border:1px solid transparent; font:11px var(--mono); letter-spacing:.06em; transition:transform .25s,background .25s,color .25s; cursor:pointer; }
.button:hover { transform:translateY(-3px); }
.button-primary { background:var(--vermillion); color:var(--white); }
.button-primary:hover { background:#f16b55; }
.button-light { color:var(--ink); background:var(--sun); }
.text-link,.arrow-link { font:11px var(--mono); letter-spacing:.06em; border-bottom:1px solid currentColor; padding-bottom:7px; transition:color .2s; }
.text-link:hover,.arrow-link:hover { color:var(--vermillion); }
.text-link span,.arrow-link span { font-size:15px; margin-left:9px; }
.hero-visual { min-height:470px; position:relative; display:grid; place-items:center; }
.hero-visual:before { content:''; position:absolute; width:min(37vw,440px); aspect-ratio:1; border-radius:50%; background:radial-gradient(circle at 37% 35%,rgba(242,170,68,.18),transparent 50%),linear-gradient(135deg,rgba(43,98,105,.55),rgba(9,30,40,.2)); filter:blur(2px); }
.orbit { position:absolute; border:1px solid rgba(200,211,208,.27); border-radius:50%; transform:rotate(-25deg); }
.orbit-one { width:min(39vw,480px); height:min(24vw,300px); }
.orbit-two { width:min(32vw,390px); height:min(18vw,215px); transform:rotate(38deg); border-color:rgba(232,88,67,.43); }
.hero-sun { position:absolute; top:12%; right:17%; width:72px; height:72px; background:var(--vermillion); border-radius:50%; display:grid; place-items:center; color:var(--white); font:500 23px var(--sans); box-shadow:0 0 0 12px rgba(232,88,67,.1); }
.hero-core { width:225px; height:225px; border-radius:50%; border:1px solid rgba(255,254,250,.48); background:rgba(7,25,35,.7); display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; z-index:1; box-shadow:0 0 0 22px rgba(7,25,35,.23), inset 0 0 50px rgba(255,254,250,.04); }
.core-label { font:10px var(--mono); letter-spacing:.25em; color:var(--sun); }
.hero-core strong { font-size:22px; font-weight:500; letter-spacing:.08em; margin:12px 0; }
.hero-core strong span { color:var(--vermillion); padding:0 5px; }
.hero-core small { font:8px var(--mono); color:#9aacaa; letter-spacing:.14em; }
.route { position:absolute; height:1px; background:linear-gradient(90deg,transparent,var(--mist)); transform-origin:left center; color:var(--mist); font:9px var(--mono); letter-spacing:.15em; }
.route span { position:absolute; top:9px; white-space:nowrap; }
.route-a { width:170px; top:27%; left:7%; transform:rotate(21deg); }
.route-a span { left:26%; }
.route-b { width:190px; bottom:25%; left:12%; transform:rotate(-24deg); background:linear-gradient(90deg,var(--vermillion),transparent); }
.route-b span { left:14%; color:var(--vermillion); }
.route-c { width:155px; top:42%; right:0; transform:rotate(54deg); background:linear-gradient(90deg,var(--sun),transparent); }
.route-c span { left:46%; color:var(--sun); }
.visual-tag { position:absolute; font:10px/1.5 var(--mono); letter-spacing:.18em; color:#a9b9b7; }
.visual-tag b { font-weight:500; color:var(--white); }
.tag-top { top:31%; right:3%; text-align:right; }
.tag-bottom { bottom:17%; left:0; }
.visual-coordinates { position:absolute; bottom:2%; right:8%; color:#69807e; font:9px/1.5 var(--mono); letter-spacing:.13em; }
.hero-foot { max-width:1400px; width:100%; margin:4.5rem auto 0; display:flex; align-items:center; gap:18px; color:#738685; font:9px var(--mono); letter-spacing:.18em; position:relative; z-index:1; }
.scroll-line { height:1px; width:70px; background:var(--vermillion); }
.hero-foot > :last-child { margin-left:auto; color:var(--sun); }
.ticker { background:var(--vermillion); color:var(--white); overflow:hidden; white-space:nowrap; }
.ticker-track { display:flex; align-items:center; gap:28px; min-width:max-content; padding:16px 0; font:10px var(--mono); letter-spacing:.18em; animation:marquee 34s linear infinite; }
.ticker i { color:var(--sun); font-style:normal; font-size:15px; }
@keyframes marquee { to { transform:translateX(-30%); } }
.about { background:var(--paper); }
.section-intro { max-width:1400px; margin:0 auto; display:flex; align-items:flex-start; justify-content:space-between; }
.section-index { color:var(--vermillion); }
.section-index span { color:var(--muted); margin-left:8px; }
.section-intro h2,.section-heading h2 { font-size:clamp(2.9rem,5vw,5.8rem); line-height:1.05; letter-spacing:-.07em; font-weight:500; margin:0; }
.about-content { max-width:1050px; margin:7rem 0 7rem auto; display:grid; grid-template-columns:1.15fr .85fr; gap:10vw; }
.about-lead .lead-ja { font-size:clamp(1.5rem,2.2vw,2.2rem); line-height:1.65; letter-spacing:-.04em; font-weight:500; }
.lead-en { color:var(--vermillion); font:13px/1.8 var(--mono); }
.about-detail { border-left:1px solid var(--vermillion); padding:10px 0 0 30px; color:#506162; font-size:14px; line-height:2; }
.about-detail p { margin-bottom:1.5rem; }
.arrow-link { display:inline-block; color:var(--ink); margin-top:1.1rem; }
.about-note { border-top:1px solid var(--line); border-bottom:1px solid var(--line); display:flex; align-items:center; gap:clamp(2rem,8vw,10rem); padding:25px 0; }
.about-note span { font:10px var(--mono); color:var(--vermillion); letter-spacing:.16em; }
.about-note strong { font-size:clamp(1rem,1.6vw,1.45rem); font-weight:500; letter-spacing:.03em; }
.business { background:var(--paper-2); }
.section-heading { max-width:1400px; margin:0 auto 5rem; display:grid; grid-template-columns:1fr 2fr 1fr; gap:2vw; align-items:start; }
.overline { color:var(--vermillion); margin:0 0 1.3rem; }
.heading-aside { color:var(--muted); font-size:13px; line-height:1.9; padding-top:3.1rem; }
.business-list { max-width:1400px; margin:0 auto; display:grid; grid-template-columns:repeat(2,1fr); gap:2px; background:var(--ink); }
.business-card { min-height:410px; position:relative; overflow:hidden; background:var(--paper-2); padding:30px 32px 26px; display:flex; flex-direction:column; }
.business-card.featured { background:var(--ink); color:var(--white); grid-row:span 2; min-height:822px; }
.business-card.wide { grid-column:span 2; min-height:280px; }
.card-top { display:flex; justify-content:space-between; gap:20px; font:10px var(--mono); letter-spacing:.13em; color:var(--vermillion); }
.featured .card-top { color:var(--sun); }
.business-card h3 { font-size:clamp(1.4rem,2.2vw,2.2rem); line-height:1.27; letter-spacing:-.05em; font-weight:500; margin:4rem 0 1.4rem; }
.business-card p { color:var(--muted); font-size:13px; line-height:1.9; max-width:430px; }
.featured p { color:#a9b9b7; }
.card-tags { display:flex; flex-wrap:wrap; gap:8px; margin-top:auto; }
.card-tags span { border:1px solid var(--line); padding:7px 9px; font:9px var(--mono); color:var(--muted); letter-spacing:.1em; }
.featured .card-tags span { border-color:rgba(255,255,255,.2); color:#a9b9b7; }
.card-number { position:absolute; right:-17px; bottom:-48px; color:rgba(7,25,35,.06); font:170px/1 var(--serif); }
.featured .card-number { color:rgba(255,254,250,.04); }
.wide-card-inner { display:grid; grid-template-columns:1fr 1fr; gap:3rem; align-items:end; margin-top:3.5rem; }
.business-card.wide h3 { margin:0; }
.business-card.wide p { margin:0; }
.approach { background:var(--paper); }
.process-line { max-width:1400px; margin:0 auto; border-top:1px solid var(--ink); display:grid; grid-template-columns:repeat(5,1fr); }
.process-item { border-right:1px solid var(--line); padding:25px 22px 0 0; margin-right:22px; min-height:250px; }
.process-item:last-child { border-right:0; margin-right:0; }
.process-dot { display:grid; place-items:center; width:42px; height:42px; border:1px solid var(--vermillion); border-radius:50%; color:var(--vermillion); font:11px var(--mono); margin-bottom:3rem; }
.process-label { font:9px var(--mono); color:var(--vermillion); letter-spacing:.1em; line-height:1.5; }
.process-item h3 { font-size:17px; font-weight:600; margin:12px 0; letter-spacing:-.04em; }
.process-item p { color:var(--muted); font-size:12px; line-height:1.8; }
.strengths { background:#d8dfdc; }
.strength-grid { max-width:1400px; margin:0 auto; display:grid; grid-template-columns:repeat(3,1fr); gap:2px; background:var(--ink); }
.strength { min-height:360px; background:#d8dfdc; padding:28px 30px; position:relative; }
.strength > span { font:11px var(--mono); color:var(--vermillion); }
.strength-icon { position:absolute; right:28px; top:15px; font:86px var(--serif); color:rgba(232,88,67,.55); }
.strength h3 { font-size:clamp(1.7rem,2.7vw,3rem); line-height:1.05; letter-spacing:-.08em; margin:4rem 0 1.6rem; font-weight:500; }
.strength h4 { color:var(--vermillion); font-size:13px; margin:0 0 1rem; font-weight:600; }
.strength p { max-width:320px; color:#536464; font-size:13px; line-height:1.85; }
.vision { background:var(--ink); color:var(--white); position:relative; overflow:hidden; }
.vision:before,.vision:after { content:''; position:absolute; border:1px solid rgba(200,211,208,.14); border-radius:50%; pointer-events:none; }
.vision:before { width:75vw; height:75vw; right:-30vw; top:-15vw; }
.vision:after { width:45vw; height:45vw; right:-13vw; top:2vw; border-color:rgba(232,88,67,.35); }
.vision-inner { position:relative; z-index:1; min-height:690px; display:flex; flex-direction:column; justify-content:center; }
.vision .section-index { margin-bottom:7rem; }
.vision .overline { color:var(--sun); }
.vision h2 { font-size:clamp(3.3rem,7vw,8rem); line-height:.96; letter-spacing:-.08em; font-weight:500; margin:0 0 3rem; }
.vision h2 em { color:var(--vermillion); }
.vision-copy { max-width:460px; color:#a9b9b7; font-size:14px; line-height:2; }
.vision-signature { font:10px var(--mono); color:#68807d; letter-spacing:.2em; margin-top:6rem; }
.company { background:var(--paper); }
.company-grid { max-width:1400px; margin:0 auto; display:grid; grid-template-columns:1.5fr .5fr; gap:9vw; }
.company-table { border-top:1px solid var(--ink); }
.table-row { display:grid; grid-template-columns:160px 1fr; gap:20px; padding:23px 0; border-bottom:1px solid var(--line); font-size:13px; line-height:1.8; }
.table-row > span { color:var(--vermillion); font:10px var(--mono); letter-spacing:.1em; padding-top:5px; }
.table-row strong { font-weight:500; }
.table-row small { color:var(--muted); font:10px var(--mono); letter-spacing:.1em; }
.company-aside { align-self:end; border-left:1px solid var(--vermillion); min-height:240px; padding:24px 0 24px 28px; display:flex; flex-direction:column; justify-content:space-between; }
.mini-mark { color:var(--ink); width:52px; }
.mini-mark svg { width:100%; }
.company-aside p { font-family:var(--serif); font-size:1.5rem; line-height:1.35; letter-spacing:-.04em; margin:3rem 0 0; }
.company-aside span { color:var(--muted); font:10px var(--mono); letter-spacing:.08em; }
.contact { background:var(--vermillion); color:var(--white); }
.contact-grid { max-width:1400px; margin:0 auto; display:grid; grid-template-columns:1fr 1fr; gap:12vw; }
.contact .section-index { color:var(--sun); }
.contact .section-index span { color:rgba(255,254,250,.62); }
.contact .overline { color:var(--sun); margin-top:7rem; }
.contact h2 { font-size:clamp(3.5rem,7vw,8rem); letter-spacing:-.09em; line-height:.92; font-weight:500; margin-bottom:2.5rem; }
.contact h2 em { color:var(--sun); }
.contact-copy > p:not(.overline) { max-width:420px; color:#ffe6dc; font-size:14px; line-height:1.9; }
.contact-address { margin-top:3.6rem; padding-top:18px; border-top:1px solid rgba(255,254,250,.35); color:#ffe6dc; font:11px/1.8 var(--mono); letter-spacing:.04em; }
.contact-form { padding-top:7rem; }
.contact-form label { display:block; margin-bottom:1.4rem; }
.contact-form label span { display:block; color:#ffe6dc; font:10px var(--mono); letter-spacing:.1em; margin-bottom:8px; }
.contact-form input,.contact-form textarea { width:100%; border:0; border-bottom:1px solid rgba(255,254,250,.5); background:transparent; color:var(--white); outline:none; padding:10px 0; border-radius:0; resize:vertical; }
.contact-form input::placeholder,.contact-form textarea::placeholder { color:rgba(255,254,250,.48); }
.contact-form input:focus,.contact-form textarea:focus { border-color:var(--sun); }
.contact-form .button { border:0; margin-top:1.5rem; }
.form-status { font-size:12px; color:var(--sun); min-height:18px; margin-top:1.5rem; }
.site-footer { min-height:150px; background:var(--ink); color:var(--white); padding:35px clamp(1.25rem,6vw,7.5rem); display:grid; grid-template-columns:1fr 1fr 1fr; align-items:end; gap:2rem; }
.footer-brand { align-self:center; }
.footer-slogan { color:#9fb0ad; font:12px/1.8 var(--mono); }
.footer-meta { display:flex; justify-content:flex-end; gap:25px; color:#6e8581; font:10px var(--mono); }
.footer-meta a:hover { color:var(--sun); }
.reveal { opacity:1; transform:none; transition:opacity .8s ease,transform .8s ease; }
.reveal.is-pending { opacity:0; transform:translateY(22px); }
.reveal.is-visible { opacity:1; transform:translateY(0); }
.reveal-delay { transition-delay:.18s; }.reveal-delay-1{transition-delay:.08s}.reveal-delay-2{transition-delay:.16s}.reveal-delay-3{transition-delay:.24s}.reveal-delay-4{transition-delay:.32s}
@media (max-width: 900px) { .main-nav { gap:1.1rem; }.hero-grid { grid-template-columns:1fr; }.hero-visual { min-height:400px; margin-top:1rem; }.hero-visual:before { width:75vw; }.orbit-one{width:85vw;height:55vw}.orbit-two{width:70vw;height:43vw}.about-content{gap:5vw}.section-heading{grid-template-columns:1fr 2fr}.heading-aside{grid-column:2;padding-top:0}.business-card.featured{min-height:600px}.process-line{grid-template-columns:repeat(3,1fr);row-gap:25px}.process-item:nth-child(3){border-right:0}.process-item:nth-child(4),.process-item:nth-child(5){border-top:1px solid var(--line);padding-top:25px}.contact-grid{gap:5vw}.contact-form{padding-top:5rem} }
@media (max-width: 640px) { .section-pad{padding:5rem 1.25rem}.site-header{height:72px;padding:0 1.25rem}.main-nav{position:absolute; top:72px; right:0; left:0; background:var(--ink); padding:1.3rem 1.25rem 1.7rem; flex-direction:column; align-items:stretch; gap:1.2rem; transform:translateY(-130%); opacity:0; transition:.3s; border-top:1px solid rgba(255,255,255,.1)}.main-nav.is-open{transform:translateY(0);opacity:1}.main-nav .nav-cta{padding:11px 12px}.menu-toggle{display:block}.menu-toggle.is-open span:first-child{transform:translateY(3px) rotate(45deg)}.menu-toggle.is-open span:last-child{transform:translateY(-4px) rotate(-45deg)}.hero{min-height:740px;padding-top:120px}.hero-kicker{margin-top:2.5rem}.hero-actions{align-items:flex-start; flex-direction:column; gap:1.5rem; margin-top:2.5rem}.hero-visual{min-height:310px;margin-top:0}.hero-core{width:170px;height:170px}.hero-core strong{font-size:17px}.hero-sun{width:52px;height:52px;font-size:17px}.route-a{left:0;top:18%;width:125px}.route-b{left:4%;bottom:19%;width:120px}.route-c{right:-4%;top:42%;width:110px}.tag-top{right:-2%;top:23%}.tag-bottom{left:-3%;bottom:10%}.visual-coordinates{right:0}.hero-foot{margin-top:2rem}.about-content{margin:4rem 0;grid-template-columns:1fr;gap:3rem}.about-note{align-items:flex-start;flex-direction:column;gap:1.2rem}.section-intro{display:block}.section-intro h2{margin-top:3rem}.section-heading{display:block;margin-bottom:3.5rem}.section-heading .section-index{margin-bottom:3.2rem}.heading-aside{margin-top:2rem}.business-list{display:block}.business-card,.business-card.featured,.business-card.wide{min-height:390px;grid-row:auto;grid-column:auto;margin-bottom:2px}.business-card.featured{min-height:480px}.wide-card-inner{display:block;margin-top:2.4rem}.wide-card-inner p{margin-top:1.5rem}.process-line{display:block}.process-item,.process-item:nth-child(3),.process-item:nth-child(4),.process-item:nth-child(5){border-right:0;border-top:0;border-bottom:1px solid var(--line);margin:0;padding:24px 0;display:grid;grid-template-columns:52px 1fr;gap:15px;min-height:0}.process-item:last-child{border-bottom:0}.process-dot{margin:0}.strength-grid{display:block}.strength{min-height:325px;margin-bottom:2px}.vision-inner{min-height:650px}.vision .section-index{margin-bottom:5rem}.company-grid{display:block}.company-aside{margin-top:4rem}.table-row{grid-template-columns:105px 1fr;gap:12px}.contact-grid{display:block}.contact .overline{margin-top:5rem}.contact-form{padding-top:4.5rem}.site-footer{grid-template-columns:1fr;align-items:start;gap:1.7rem}.footer-meta{justify-content:space-between}.brand-copy strong{font-size:13px} }
@media (prefers-reduced-motion: reduce) { *,*:before,*:after { animation-duration:.01ms!important; transition-duration:.01ms!important; scroll-behavior:auto!important; } .reveal{opacity:1;transform:none} }

/* Accessible controls and contact details. */
a:focus-visible, button:focus-visible { outline:2px solid currentColor; outline-offset:5px; }
.contact-email { display:inline-block; margin-top:12px; text-decoration:underline; text-underline-offset:4px; overflow-wrap:anywhere; }
.form-help { color:#fffefa; font-size:12px; line-height:1.9; margin-bottom:2rem; }
@media (max-width:640px) {
  .main-nav { visibility:hidden; pointer-events:none; }
  .main-nav.is-open { visibility:visible; pointer-events:auto; }
}
@media (prefers-reduced-motion:reduce) { .reveal.is-pending { opacity:1; transform:none; } }
