
  :root{
    --navy:#0c1b30;
    --navy-2:#10243f;
    --ink:#1a2433;
    --muted:#5b6a7d;
    --line:#e4e8ee;
    --bg:#ffffff;
    --bg-soft:#f6f8fb;
    --gold:#c2a064;
    --gold-soft:#d8c290;
    --maxw:1140px;
  }
  *{box-sizing:border-box;margin:0;padding:0}
  html{scroll-behavior:smooth}
  body{
    font-family:"Noto Sans JP",-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Hiragino Sans",Meiryo,sans-serif;
    color:var(--ink);
    background:var(--bg);
    line-height:1.85;
    font-weight:400;
    -webkit-font-smoothing:antialiased;
    letter-spacing:.02em;
  }
  a{color:inherit;text-decoration:none}
  img{max-width:100%;display:block}
  a:focus-visible,button:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:4px}
  .skip{position:absolute;left:8px;top:-60px;z-index:100;background:var(--gold);color:#12243d;
    padding:10px 18px;border-radius:8px;font-weight:700;font-size:.9rem;transition:top .25s ease}
  .skip:focus{top:8px}
  .wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}
  .en{font-family:"Cormorant Garamond",serif;letter-spacing:.06em}
  .eyebrow{
    font-family:"Cormorant Garamond",serif;
    font-size:.95rem;letter-spacing:.32em;text-transform:uppercase;
    color:var(--gold);font-weight:600;display:block;margin-bottom:18px;
  }
  .section{padding:108px 0}
  .section-head{max-width:680px;margin-bottom:56px}
  .section-head h2{
    font-size:clamp(1.7rem,3.4vw,2.5rem);font-weight:700;line-height:1.4;
    letter-spacing:.02em;
  }
  .section-head p{margin-top:20px;color:var(--muted);font-size:1.02rem}

  /* Header */
  header{
    position:fixed;top:0;left:0;right:0;z-index:50;
    background:rgba(12,27,48,0);transition:background .35s ease,box-shadow .35s ease,padding .35s ease;
    padding:22px 0;
  }
  header.scrolled{background:rgba(10,22,40,.92);backdrop-filter:blur(10px);box-shadow:0 1px 0 rgba(255,255,255,.06);padding:14px 0}
  .nav{display:flex;align-items:center;justify-content:space-between}
  .brand{position:relative;z-index:1;display:flex;align-items:center;flex:none;background:#fff;padding:8px 12px}
  .brand img{display:block;height:auto;object-fit:contain;flex:none}
  .brand .brand-lockup{width:360px}
  .brand .brand-symbol{display:none;width:104px}
  @media(max-width:1099px){
    .brand .brand-lockup{display:none}
    .brand .brand-symbol{display:block}
  }
  .menu{display:flex;align-items:center;gap:34px}
  .menu a{color:rgba(255,255,255,.82);font-size:.86rem;letter-spacing:.08em;transition:color .2s}
  .menu a:hover{color:#fff}
  .menu .cta{
    border:1px solid rgba(255,255,255,.35);padding:9px 20px;border-radius:999px;font-size:.82rem;
    transition:.25s;
  }
  .menu .cta:hover{background:#fff;color:var(--navy);border-color:#fff}
  .burger{display:none;flex-direction:column;gap:5px;cursor:pointer;padding:6px;background:none;border:0}
  .burger span{width:24px;height:2px;background:#fff;transition:.3s}

  /* Hero */
  .hero{
    position:relative;min-height:100vh;display:flex;align-items:center;
    background:linear-gradient(160deg,#0a1626 0%,#0e2138 55%,#132c4a 100%);
    color:#fff;overflow:hidden;
  }
  .hero .glow{position:absolute;border-radius:50%;filter:blur(90px);opacity:.5}
  .hero .glow.a{width:520px;height:520px;background:#1b4a7a;top:-120px;right:-80px}
  .hero .glow.b{width:420px;height:420px;background:#7a5f2a;bottom:-140px;left:-60px;opacity:.32}
  .hero-grid{position:absolute;inset:0;opacity:.5;pointer-events:none}
  .hero-inner{position:relative;z-index:2;padding:120px 0 80px}
  .hero h1{
    font-size:clamp(2.1rem,5.4vw,3.9rem);font-weight:700;line-height:1.5;letter-spacing:.01em;
    margin-bottom:28px;
  }
  .hero h1 .accent{color:var(--gold-soft)}
  .hero .lead{font-size:clamp(1rem,1.6vw,1.16rem);color:rgba(255,255,255,.8);max-width:620px;font-weight:300}
  .hero-actions{margin-top:44px;display:flex;gap:16px;flex-wrap:wrap}
  .btn{
    display:inline-flex;align-items:center;gap:10px;padding:15px 30px;border-radius:999px;
    font-size:.92rem;letter-spacing:.04em;transition:.28s;font-weight:500;
  }
  .btn-gold{background:var(--gold);color:#12243d}
  .btn-gold:hover{background:var(--gold-soft);transform:translateY(-2px)}
  .btn-ghost{border:1px solid rgba(255,255,255,.4);color:#fff}
  .btn-ghost:hover{background:rgba(255,255,255,.1)}
  .hero-meta{
    position:absolute;bottom:34px;left:0;right:0;z-index:2;
  }
  .hero-meta .wrap{display:flex;gap:40px;flex-wrap:wrap;color:rgba(255,255,255,.55);font-size:.8rem;letter-spacing:.1em}

  /* About */
  .about{background:var(--bg)}
  .about-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:64px;align-items:center}
  .about-lead{font-size:clamp(1.3rem,2.4vw,1.7rem);font-weight:500;line-height:1.85;letter-spacing:.02em}
  .about-lead .hl{color:var(--gold);font-weight:700}
  .about p.body{margin-top:24px;color:var(--muted);font-size:1.02rem}
  .about-visual{
    position:relative;border-radius:18px;padding:48px 40px;color:#fff;overflow:hidden;
    background:linear-gradient(150deg,#0e2138,#16365c);min-height:340px;display:flex;flex-direction:column;justify-content:center;
  }
  .about-visual .q{font-family:"Cormorant Garamond",serif;font-size:2.1rem;line-height:1.4;font-weight:500}
  .about-visual .sub{margin-top:18px;color:rgba(255,255,255,.7);font-size:.95rem}
  .about-visual .bars{position:absolute;right:30px;bottom:26px;display:flex;align-items:flex-end;gap:6px;height:70px;opacity:.55}
  .about-visual .bars i{width:6px;background:var(--gold-soft);border-radius:3px;display:block;animation:eq 1.6s ease-in-out infinite}
  @keyframes eq{0%,100%{height:18px}50%{height:62px}}

  /* Services */
  .services{background:var(--bg-soft)}
  .svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
  .svc{
    background:#fff;border:1px solid var(--line);border-radius:14px;padding:34px 30px;
    transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease;
  }
  .svc:hover{transform:translateY(-6px);box-shadow:0 18px 40px rgba(16,36,63,.1);border-color:transparent}
  .svc .no{font-family:"Cormorant Garamond",serif;font-size:1.5rem;color:var(--gold);font-weight:600}
  .svc h3{font-size:1.12rem;font-weight:700;margin:14px 0 12px;line-height:1.5}
  .svc p{color:var(--muted);font-size:.92rem;line-height:1.8}

  /* Stats / Strength band */
  .band{background:linear-gradient(150deg,#0c1b30,#13345a);color:#fff;padding:84px 0}
  .band-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;text-align:center}
  .band-grid .item h4{font-family:"Cormorant Garamond",serif;font-size:1.4rem;color:var(--gold-soft);margin-bottom:14px;font-weight:600;letter-spacing:.06em}
  .band-grid .item p{color:rgba(255,255,255,.78);font-size:.95rem}

  /* Company profile */
  .company{background:var(--bg)}
  .profile{border-top:2px solid var(--ink)}
  .profile .row{display:grid;grid-template-columns:230px 1fr;gap:20px;padding:22px 8px;border-bottom:1px solid var(--line)}
  .profile .row dt{font-weight:700;font-size:.95rem;color:var(--ink)}
  .profile .row dd{color:var(--muted);font-size:.98rem}
  .tbd{color:var(--gold);font-size:.82rem;border:1px dashed var(--gold);border-radius:6px;padding:1px 9px;margin-left:6px;white-space:nowrap}
  .biz-list{columns:2;column-gap:40px}
  .biz-list li{margin-bottom:8px;font-size:.95rem;color:var(--muted);list-style:none;padding-left:18px;position:relative}
  .biz-list li::before{content:"";position:absolute;left:0;top:11px;width:7px;height:7px;background:var(--gold);border-radius:50%}

  /* Recruit */
  .recruit{background:var(--bg-soft)}
  .recruit-card{
    background:linear-gradient(150deg,#0e2138,#1a3c63);border-radius:20px;color:#fff;
    padding:64px 56px;display:grid;grid-template-columns:1.2fr .8fr;gap:48px;align-items:center;
  }
  .recruit-card h2{font-size:clamp(1.6rem,3vw,2.3rem);font-weight:700;line-height:1.5}
  .recruit-card p{margin-top:20px;color:rgba(255,255,255,.78);font-size:1rem}
  .recruit-actions{display:flex;flex-direction:column;gap:14px}

  /* Contact */
  .contact{background:var(--bg);text-align:center}
  .contact .section-head{margin:0 auto 40px}
  .contact-box{
    max-width:560px;margin:0 auto;border:1px solid var(--line);border-radius:16px;padding:48px 40px;background:var(--bg-soft);
  }
  .contact-box .mail{display:inline-block;font-family:"Cormorant Garamond",serif;font-size:1.7rem;color:var(--navy);margin:10px 0 6px;letter-spacing:.04em;transition:color .2s,border-color .2s;border-bottom:1px solid transparent}
  .contact-box .mail:hover{color:var(--gold);border-color:var(--gold)}
  .profile .row dd a{color:var(--navy);border-bottom:1px solid var(--line);transition:color .2s,border-color .2s}
  .profile .row dd a:hover{color:var(--gold);border-color:var(--gold)}
  .contact-box .note{color:var(--muted);font-size:.9rem}

  /* Footer */
  footer{background:var(--navy);color:rgba(255,255,255,.7);padding:56px 0 30px}
  .foot-top{display:flex;justify-content:space-between;align-items:flex-start;gap:30px;flex-wrap:wrap;padding-bottom:34px;border-bottom:1px solid rgba(255,255,255,.1)}
  .footer-logo{display:block;background:#fff;padding:12px;width:424px;max-width:100%;box-sizing:border-box}
  .footer-logo img{display:block;width:100%;height:auto;object-fit:contain}
  .foot-brand{max-width:100%}
  .foot-brand p{font-size:.82rem;margin-top:10px;color:rgba(255,255,255,.55);max-width:360px}
  .foot-links{display:flex;gap:28px;flex-wrap:wrap}
  .foot-links a{font-size:.85rem;color:rgba(255,255,255,.72)}
  .foot-links a:hover{color:#fff}
  .copy{margin-top:24px;font-size:.76rem;color:rgba(255,255,255,.4);letter-spacing:.08em}

  .js .reveal{opacity:0;transform:translateY(26px);transition:opacity .8s ease,transform .8s ease}
  .js .reveal.in{opacity:1;transform:none}

  @media(max-width:880px){
    .menu{position:fixed;inset:0 0 0 auto;width:74%;max-width:320px;background:var(--navy-2);
      flex-direction:column;justify-content:center;gap:26px;transform:translateX(100%);transition:transform .35s ease;padding:40px}
    .menu.open{transform:none;height:100vh;height:100dvh}
    .burger{display:flex}
    .burger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
    .burger.open span:nth-child(2){opacity:0}
    .burger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
    .about-grid,.recruit-card{grid-template-columns:1fr;gap:36px}
    .svc-grid{grid-template-columns:1fr 1fr}
    .band-grid{grid-template-columns:1fr;gap:30px}
    .profile .row{grid-template-columns:1fr;gap:6px;padding:18px 4px}
    .biz-list{columns:1}
    .recruit-card{padding:44px 32px}
  }
  @media(max-width:560px){
    .section{padding:74px 0}
    .svc-grid{grid-template-columns:1fr}
    .hero-meta{display:none}
  }

:root{--navy:#07194A;--navy-2:#11265C;--ink:#101F42;--muted:#59647B;--line:#DCE1ED;--bg:#fff;--bg-soft:#F3F6FB;--gold:#2849CF;--gold-soft:#91A8FF;--maxw:1240px}
body{font-family:Inter,"Noto Sans JP",sans-serif;letter-spacing:.01em}html{scroll-padding-top:112px}::selection{background:#D8E1FF;color:#07194A}
.eyebrow{font-family:Inter,sans-serif;font-size:11px;letter-spacing:.15em;font-weight:600}.wrap{padding:0 48px}
header,header.scrolled{background:rgba(255,255,255,.97);padding:20px 0;box-shadow:none;border-bottom:1px solid var(--line);backdrop-filter:none}
.brand{background:transparent;padding:0;z-index:2}.brand .brand-lockup{width:320px}.brand .brand-symbol{width:90px}.menu{gap:26px}.menu a{font-size:12px;color:var(--ink);letter-spacing:0}.menu a:hover{color:var(--gold)}.menu .cta{border:1px solid var(--navy);padding:12px 20px;border-radius:3px;color:var(--navy)}.menu .cta:hover{background:var(--navy);color:#fff}.burger{z-index:3;padding:12px}.burger span{background:var(--navy)}
.hero{background:var(--bg);color:var(--ink);min-height:820px;padding-top:100px;isolation:isolate}.hero-inner{padding:100px 48px 104px;width:100%;display:grid;grid-template-columns:1.08fr .92fr;gap:20px;align-items:center}
.hero .eyebrow{color:var(--gold);margin-bottom:30px}.hero h1{font-size:clamp(36px,4.1vw,61px);line-height:1.55;letter-spacing:-.025em;font-weight:600;margin-bottom:27px;white-space:nowrap}.hero h1 .accent{color:var(--gold)}.hero .lead{font-size:15px;line-height:2.2;color:var(--muted);font-weight:400;max-width:540px}.hero-actions{gap:30px;margin-top:34px;align-items:center}.btn{border-radius:3px;padding:16px 23px;font-size:13px;min-height:52px;justify-content:space-between}.btn-gold{background:var(--navy);color:#fff;gap:36px}.btn-gold:hover{background:var(--gold);color:#fff}.hero-text-link{font-size:12px;color:var(--ink);border-bottom:1px solid var(--ink);padding:10px 0;display:flex;gap:24px}.hero-bottom{position:absolute;bottom:0;width:100%;font-size:9px;letter-spacing:.1em;color:var(--muted)}.hero-bottom .wrap{display:flex;justify-content:space-between;gap:20px;padding-top:23px;padding-bottom:23px;border-top:1px solid var(--line)}
.hero-art{height:450px;position:relative;margin-top:10px;color:var(--navy)}.art-caption{position:absolute;top:0;left:22px;font:9px Inter,sans-serif;letter-spacing:.13em;color:var(--muted)}.score-art{width:100%;height:100%}.art-labels{position:absolute;top:37px;left:54%;right:0;display:flex;flex-direction:column;gap:71px}.art-labels a{display:flex;flex-direction:column;width:max-content;gap:3px;padding:5px 9px;background:var(--art-label-bg,var(--bg));transition:transform .2s}.art-labels a:hover{transform:translateX(5px)}.art-labels small{font-size:9px;letter-spacing:.15em}.art-labels strong{font-size:20px;font-weight:500}.art-note{position:absolute;bottom:2px;left:22px;font-size:11px;letter-spacing:.1em}.flow-path{stroke-dasharray:850;stroke-dashoffset:0;animation:draw-flow 1.8s ease-out both}.path-b{animation-delay:.15s}.path-c{animation-delay:.3s}@keyframes draw-flow{from{stroke-dashoffset:850}to{stroke-dashoffset:0}}
.section{padding:110px 0}.section-head{max-width:720px;margin-bottom:48px}.section-head h2{font-size:38px;line-height:1.6;font-weight:500;letter-spacing:-.03em}.section-head p{font-size:14px;margin-top:15px;line-height:2}.services{background:var(--bg-soft);border-top:1px solid var(--line)}.service-phases{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.phase{background:var(--bg);padding:32px 26px 26px;border-right:1px solid var(--line)}.phase:first-child{border-left:1px solid var(--line)}.phase-top{display:flex;justify-content:space-between;color:var(--gold);font-size:10px;letter-spacing:.12em}.phase-arrow{font-size:23px;line-height:1}.phase h3{font-weight:500;font-size:38px;margin:25px 0 16px}.phase-desc{font-size:12px;color:var(--muted);line-height:2;min-height:50px;margin-bottom:28px}.phase-services{border-top:1px solid var(--line)}.phase details{border-bottom:1px solid var(--line)}.phase summary{font-size:12px;padding:17px 0;list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:12px;align-items:center}.phase summary::-webkit-details-marker{display:none}.phase summary span{font-size:17px;flex:none;color:var(--gold)}.phase details p{font-size:12px;color:var(--muted);line-height:2;padding:0 0 18px}.phase details[open] summary span{transform:rotate(45deg)}
.about-lead{font-size:25px;font-weight:500}.about p.body{font-size:14px;line-height:2.1}.about-visual{border-radius:0;background:var(--navy);padding:48px}.about-visual .q{font-family:Inter,sans-serif;font-size:38px;font-weight:300;letter-spacing:-.045em}.about-visual .bars{opacity:.6}.about-visual .bars i{background:#809AFF}.band{background:var(--navy);padding:70px 0}.band-grid .item h4{font-family:Inter,sans-serif;font-size:20px;color:#AFC0FF;font-weight:400;letter-spacing:0}.band-grid .item p{font-size:13px}.profile .row{padding:20px 0}.profile .row dt,.profile .row dd{font-size:14px}.biz-list li{font-size:13px}.recruit-card{border-radius:0;background:var(--navy);padding:54px 44px}.recruit-card .eyebrow{color:#B4C3FF}.recruit-card h2{font-size:28px;font-weight:500}.recruit-card p{font-size:14px}.recruit-actions .btn-gold{background:#fff;color:var(--navy)}.recruit-actions .btn-ghost{border-radius:3px}
.contact{background:var(--bg-soft)}.contact-box{border-radius:0;background:var(--bg);border:1px solid var(--line);padding:35px}.contact-box .mail{font-family:Inter,sans-serif;font-size:23px;letter-spacing:-.015em}.contact-box .note{font-size:13px}footer{background:var(--bg);color:var(--ink);border-top:1px solid var(--line);padding:64px 0 26px}.footer-logo{background:transparent;padding:0;width:370px}.foot-brand p{color:var(--muted);font-size:12px;max-width:370px;margin-top:20px}.foot-links a{color:var(--ink);font-size:12px}.foot-links a:hover{color:var(--gold)}.foot-top{border-color:var(--line);gap:32px}.copy{color:var(--muted);font-size:10px;margin-top:22px}
@media(max-width:1150px){.menu{gap:18px}.menu a{font-size:11px}.brand .brand-lockup{width:290px}.hero h1{font-size:46px}.hero-art{height:420px}.art-labels{gap:63px}.hero-actions{gap:20px}.btn-gold{gap:20px}}
@media(max-width:880px){.wrap{padding-left:28px;padding-right:28px}header,header.scrolled{padding:14px 0}.nav{gap:12px}.brand{flex:0 1 320px;min-width:0}.brand .brand-lockup{display:block;width:100%}.brand .brand-symbol{display:none}.burger{flex:none;min-width:48px;min-height:48px}.menu{background:var(--bg);width:100%;max-width:none;height:100vh;height:100dvh;gap:30px}.menu a{font-size:16px}.menu .cta{font-size:15px}.brand .brand-symbol{width:86px}.hero{display:block;padding-top:88px;min-height:0}.hero-inner{grid-template-columns:1fr;padding:68px 28px 62px;gap:48px}.hero h1{font-size:clamp(29px,6vw,48px);white-space:normal}.hero .lead{font-size:14px}.hero .eyebrow{font-size:9px;letter-spacing:.11em;margin-bottom:24px}.hero-art{height:350px;max-width:440px;width:100%;margin:0 auto}.art-labels{top:25px;gap:54px}.art-labels strong{font-size:17px}.hero-bottom{position:relative}.hero-bottom .wrap{font-size:8px;flex-wrap:wrap;padding:20px 28px}.hero-bottom .wrap span:nth-child(2){display:none}.section{padding:76px 0}.section-head h2{font-size:31px}.service-phases{grid-template-columns:1fr}.phase{border-left:1px solid var(--line);border-bottom:1px solid var(--line);padding:29px}.phase:last-child{border-bottom:none}.phase h3{margin:20px 0 10px}.phase-desc{min-height:0;margin-bottom:24px}.phase summary{font-size:13px}.about-visual{min-height:280px;padding:38px}.about-visual .q{font-size:36px}.band-grid{gap:38px}.band-grid .item{max-width:460px;margin:auto}.recruit-card{padding:34px 28px}.contact-box{padding:30px 20px}.footer-logo{max-width:100%;width:340px}.foot-top{display:block}.foot-links{margin-top:35px;gap:20px}.foot-brand p{font-size:12px}.desktop-break{display:none}}
@media(max-width:380px){.hero-actions{align-items:flex-start;flex-direction:column;gap:14px}.hero-art{height:300px}.art-labels{top:18px;gap:44px}.art-caption{font-size:8px}.contact-box .mail{font-size:19px}.section-head h2{font-size:27px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.flow-path,.bars i{animation:none!important}.reveal{opacity:1;transform:none;transition:none}}

:root{--gold:#2856DB;--gold-soft:#ADBFFF;--bg-soft:#F0F4FA}.hero{background:#07194A;color:#fff}.hero::before{content:"";position:absolute;inset:100px 0 0;background:radial-gradient(ellipse at 90% 20%,#173995 0%,transparent 58%);z-index:-1}.hero .eyebrow{color:#AFBFFF}.hero .lead{color:#CAD3EB}.hero h1 .accent{color:#A6BAFF}.hero .btn-gold{background:#fff;color:#07194A}.hero .btn-gold:hover{background:#DAE3FF}.hero-text-link{color:#E4EBFF;border-color:#8294C2}.hero-art{color:#DFE6FF;--art-label-bg:#11265C}.art-caption{color:#AABCEB}.art-labels a{background:#102357}.score-art .art-grid{opacity:.22}.hero-bottom{color:#B7C5E9}.hero-bottom .wrap{border-color:#334571}.flow-path{stroke-width:23}.about-visual{background:#EEF2FA;color:#07194A;border-left:3px solid #345EDF}.about-visual .sub{color:#59647B}.band{background:#153583}.phase{border-top:3px solid #153583}.phase h3{font-weight:600}.contact{background:#E9EFFB}


/* Final interaction and accessibility adjustments. */
a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #6684F5;outline-offset:5px}
.menu a,.foot-links a{display:inline-flex;align-items:center;min-height:44px}
.hero-text-link{min-height:44px}.hero-bottom a{padding:14px 0;margin:-14px 0}
@media(max-width:880px){.menu{overflow-y:auto;padding:100px 28px 40px}.foot-links{gap:8px 24px}.phase{scroll-margin-top:105px}}
@media(prefers-reduced-motion:reduce){.js .reveal{opacity:1;transform:none;transition:none}.menu{transition:none}}
@media(max-width:880px){.menu{visibility:hidden}.menu.open{visibility:visible}.contact-box .mail{font-size:clamp(14px,4.3vw,23px);white-space:nowrap}}
@media(min-width:881px) and (max-width:1150px){.hero h1{font-size:clamp(32px,4.1vw,46px)}}
