
:root{
  --font-en:'Orbitron',"Helvetica Neue",Helvetica,Arial,sans-serif; 
  --font-jp:"Noto Sans JP",sans-serif;
  --black:#FFFFFF;
  --panel:#F3F3F3;
  --silver:#333333;
  --silver-hi:#0E0E0E;
  --silver-lo:#6A6A6A;
  --white:#FFFFFF;
  --shu:#D3352A;
  --shu-hi:#E23B2E;
  --line:rgba(0,0,0,.14);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  font-family:var(--font-jp);
  background:var(--black);color:var(--silver);
  line-height:2;font-size:15.5px;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}
a{color:inherit;text-decoration:none}
.cz{font-family:var(--font-en);font-weight:700;letter-spacing:.08em}


.brand{
  position:fixed;left:26px;top:8px;z-index:70;
  font-family:'Orbitron',sans-serif;font-weight:800;letter-spacing:.02em; 
  font-size:52.3px;line-height:.86;color:#fff;white-space:nowrap;
  mix-blend-mode:difference;
}


.menubar{
  position:fixed;left:0;right:0;top:0;z-index:50;height:60px;
  display:flex;align-items:center;justify-content:flex-end;
  padding:0 26px;mix-blend-mode:difference;
}
.menubar .inner{display:flex;align-items:center;gap:0;flex-wrap:nowrap}
.menubar a.nav{
  font-family:var(--font-en);font-weight:700;font-size:15px;letter-spacing:.08em;
  color:#fff;padding:0 22px;white-space:nowrap;transition:opacity .25s;
}
.menubar a.nav:hover{opacity:.5}
.menubar a.nav.here{text-decoration:underline;text-underline-offset:6px}
@media(max-width:720px){
  
  .menubar{padding:0 10px;top:52px;height:44px}
  .menubar a.nav{padding:0 15px;font-size:13px}
  .brand{font-size:34px;top:12px}
  
  .hbg{display:none!important}
  .drawer{display:none!important}
}


@keyframes tglitch{
  0%{transform:translate(0)}
  25%{transform:translate(-.04em,.02em) skewX(-3deg)}
  50%{transform:translate(.03em,-.02em) skewX(2deg)}
  75%{transform:translate(-.02em,.01em)}
  100%{transform:translate(0)}
}
.tglitch{animation:tglitch .3s steps(2,end);text-shadow:.05em 0 #f2320c,-.05em 0 #00c8ff}


body.has-stalker,body.has-stalker a,body.has-stalker button{cursor:none}
.stalker{
  position:fixed;left:0;top:0;width:14px;height:14px;border-radius:50%;background:#fff;
  mix-blend-mode:difference;pointer-events:none;z-index:150;
  transform:translate(-50%,-50%);opacity:0;
  transition:opacity .3s,width .25s,height .25s;
}
.stalker.grow{width:36px;height:36px}

body.menu-open .stalker,.drawer:hover ~ .stalker,.hbg:hover ~ .stalker{mix-blend-mode:normal;background:#fff}


main,footer{transition:opacity .38s ease,transform .38s ease}
body.kome-leave main,body.kome-leave footer{opacity:0;transform:translateY(-18px)}
.el{opacity:0;transform:translateY(34px);transition:opacity .72s cubic-bezier(.22,1,.36,1),transform .72s cubic-bezier(.22,1,.36,1)}
body.kome-enter .el{opacity:1;transform:none}


.io{opacity:.5;transform:translateY(12px);transition:opacity .55s ease,transform .55s ease}
.io.on{opacity:1;transform:none}


main{position:relative;z-index:10;background:var(--black)}
.wrap{max-width:1120px;margin:0 auto;padding:0 26px}
section{padding:96px 0}
section[id]{scroll-margin-top:84px}
.eyebrow{
  font-family:var(--font-en);font-weight:700;font-size:12.5px;letter-spacing:.32em;color:var(--shu-hi);
  display:flex;align-items:center;gap:14px;margin-bottom:20px;
}
.eyebrow::before{content:"";width:34px;height:1px;background:var(--shu)}
.sec-h{font-family:'Shippori Mincho',var(--font-jp);font-weight:800;font-size:clamp(26px,3.6vw,44px);color:var(--silver-hi);line-height:1.6;letter-spacing:.04em} 
.sec-lead{color:var(--silver-lo);font-size:14.5px;margin-top:16px;max-width:44em}


.sub-hero{padding:168px 0 64px}
.sub-hero .en{
  font-family:var(--font-en);font-weight:700;color:var(--silver-hi);
  font-size:clamp(54px,8.5vw,120px);line-height:1.02;letter-spacing:.01em;
}
.sub-hero .lead{margin-top:22px;color:var(--silver-lo);font-size:14.5px;max-width:46em}


.subnav{display:flex;flex-wrap:wrap;gap:10px 26px;margin-top:34px}
.subnav a{
  font-family:var(--font-en);font-weight:700;font-size:13px;letter-spacing:.12em;
  color:var(--silver-lo);transition:color .25s;
}
.subnav a::before{content:"# ";color:var(--shu-hi)}
.subnav a:hover{color:var(--silver-hi)}


.mvv{border-top:1px solid var(--line);padding:64px 0}
.mvv .k{font-family:var(--font-en);font-weight:700;font-size:13px;letter-spacing:.3em;color:var(--shu-hi)}
.mvv h3{font-family:'Shippori Mincho',var(--font-jp);font-weight:800;font-size:clamp(24px,3.4vw,40px);color:var(--silver-hi);line-height:1.6;margin:12px 0 16px}
.mvv p{color:var(--silver);font-size:14.5px;max-width:44em}
.values{margin-top:8px;display:grid;gap:0}
.value{border-top:1px solid var(--line);padding:30px 0;display:grid;grid-template-columns:110px 1fr;gap:20px;align-items:start}
.value .no{font-family:var(--font-en);font-weight:700;font-size:26px;color:transparent;-webkit-text-stroke:1px var(--silver-lo);line-height:1.2}
.value h4{font-family:var(--font-jp);font-weight:800;font-size:19px;color:var(--silver-hi);margin-bottom:6px}
.value p{font-size:13.5px;color:var(--silver-lo);max-width:40em}
@media(max-width:640px){.value{grid-template-columns:1fr;gap:6px}}


.message-body{max-width:640px}
.message-body p{margin-bottom:1.4em;font-size:14.5px}
.signature{margin-top:34px}
.signature .role{font-size:12px;color:var(--silver-lo);letter-spacing:.1em}
.signature .name{font-family:var(--font-jp);font-weight:800;font-size:22px;color:var(--silver-hi);letter-spacing:.14em}


table.co{width:100%;border-collapse:collapse;font-size:14px}
table.co th{text-align:left;padding:16px 18px 16px 0;width:8em;vertical-align:top;color:var(--shu-hi);font-family:var(--font-jp);font-weight:700;border-bottom:1px solid var(--line);white-space:nowrap}
table.co td{padding:16px 4px;border-bottom:1px solid var(--line);color:var(--silver)}


.biz-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin-top:40px}
.biz{background:var(--black);padding:40px 38px;position:relative;transition:background .3s}
.biz:hover{background:var(--panel)}
.biz .no{font-family:var(--font-en);font-weight:700;font-size:40px;color:transparent;-webkit-text-stroke:1px var(--silver-lo);line-height:1;margin-bottom:18px}
.biz h3{font-family:var(--font-jp);font-weight:800;font-size:23px;color:var(--silver-hi);margin-bottom:8px}
.biz .en{font-family:var(--font-en);font-weight:700;font-size:11px;letter-spacing:.22em;color:var(--shu-hi);margin-bottom:16px}
.biz p{font-size:13px;color:var(--silver-lo);line-height:1.95}
@media(max-width:820px){.biz-grid{grid-template-columns:1fr}}


.group-list{margin-top:8px}
.group{border-top:1px solid var(--line);padding:28px 0;display:flex;align-items:baseline;gap:18px;flex-wrap:wrap}
.group:last-child{border-bottom:1px solid var(--line)}
.group .gname{font-family:var(--font-jp);font-weight:800;font-size:19px;color:var(--silver-hi)}
.group a.gurl{font-family:var(--font-en);font-weight:700;font-size:12.5px;letter-spacing:.06em;color:var(--shu-hi);border-bottom:1px solid var(--shu);padding-bottom:2px;transition:opacity .25s}
.group a.gurl:hover{opacity:.55}
.group .soon{font-size:11.5px;letter-spacing:.18em;color:var(--silver-lo);border:1px solid var(--line);padding:3px 12px}


.svc{border-top:1px solid var(--line);padding:56px 0}
.svc .tag{
  font-family:var(--font-en);font-weight:700;
  font-size:clamp(36px,4.8vw,68px);letter-spacing:.02em;line-height:1;
  color:transparent;-webkit-text-stroke:1.5px var(--shu-hi);
  margin-bottom:10px;
}
.svc h3{font-family:var(--font-jp);font-weight:800;font-size:clamp(23px,3vw,36px);color:var(--silver-hi);line-height:1.55;margin:10px 0 14px}
.svc p.body{max-width:44em;color:var(--silver);font-size:14px}
.feats{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin-top:26px}
.feat{background:var(--black);padding:22px 20px}
.feat h4{font-size:14.5px;font-weight:700;color:var(--silver-hi);margin-bottom:6px}
.feat p{font-size:12.5px;color:var(--silver-lo);line-height:1.9}
@media(max-width:720px){.feats{grid-template-columns:1fr}}
.flow{margin-top:24px;display:flex;flex-wrap:wrap;align-items:center;gap:10px;font-size:13px;color:var(--silver-hi);font-weight:700}
.flow .ar{color:var(--shu-hi);font-family:var(--font-en)}
.flow .goal{color:var(--shu-hi)}
.flow-note{margin-top:10px;font-size:12.5px;color:var(--silver-lo)}
.cases{margin-top:34px;display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.case{background:var(--black);padding:28px 26px}
.case .cn{font-family:var(--font-en);font-weight:700;font-size:11px;letter-spacing:.2em;color:var(--shu-hi);margin-bottom:8px}
.case h4{font-size:16.5px;font-weight:800;color:var(--silver-hi);margin-bottom:8px}
.case p{font-size:12.5px;color:var(--silver-lo);line-height:1.95}
@media(max-width:720px){.cases{grid-template-columns:1fr}}


.venn{
  position:fixed;right:3vw;top:50%;transform:translateY(-50%);
  width:min(26vw,380px);aspect-ratio:1/1;z-index:30;
  display:none;pointer-events:none;
}
@media(min-width:1240px){.venn{display:block}}
.vc{
  position:absolute;width:60%;aspect-ratio:1/1;border-radius:50%;
  border:1.5px solid rgba(14,14,14,.55);background:rgba(255,255,255,.5);
  display:flex;align-items:center;justify-content:center;
  
  transition:transform .9s cubic-bezier(.22,1,.36,1),border-color .8s ease,background .8s ease,opacity .8s ease;
}
.vc.tl{left:0;top:0}.vc.tr{right:0;top:0}.vc.bl{left:0;bottom:0}.vc.br{right:0;bottom:0}
.vc span{font-size:12px;font-weight:700;color:var(--silver-hi);letter-spacing:.04em;white-space:nowrap;transition:color .8s ease}
.vc.tl span{transform:translate(-26%,-26%)}
.vc.tr span{transform:translate(26%,-26%)}
.vc.bl span{transform:translate(-26%,26%)}
.vc.br span{transform:translate(26%,26%)}
.vc.on{
  border-color:var(--shu-hi);background:rgba(211,53,42,.07);z-index:2;
  transform:scale(1.14);
  
  animation:vFloat 3.6s ease-in-out .9s infinite;
}
.vc.on span{color:var(--shu-hi)}
@keyframes vFloat{
  0%,100%{translate:0 0}
  50%{translate:0 -8px}
}

.vflower{
  position:absolute;inset:0;opacity:0;z-index:2;
  transition:opacity .8s ease;
  pointer-events:none;
}
.vflower svg{display:block;width:100%;height:100%}
.venn.cta .vflower{opacity:1}
.vcenter{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  z-index:3;display:grid;place-items:center;
}
.vcenter > *{grid-area:1/1}
.vcenter .vw{
  font-family:'Orbitron','Anton',sans-serif;font-weight:700;font-size:15px;letter-spacing:.05em;color:var(--silver-hi);
}

@media(min-width:1240px){
  main.svc-main .wrap{
    max-width:none;margin:0;
    padding-left:max(26px,calc((100vw - 1120px)/2));
    padding-right:calc(min(26vw,380px) + 7vw);
  }
}
@media(prefers-reduced-motion:reduce){
  .vc{transition:none}
  .vc.on{animation:none;transform:scale(1.14)}
  .vcenter .vbtn{transition:background .25s}
}


.assure{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin:40px 0 8px}
.assure .a{border-top:2px solid var(--shu);padding-top:18px}
.assure h4{font-size:15.5px;font-weight:800;color:var(--silver-hi);margin-bottom:6px}
.assure p{font-size:12.5px;color:var(--silver-lo);line-height:1.9}
@media(max-width:720px){.assure{grid-template-columns:1fr}}
.form{max-width:640px;margin-top:44px}
.form .row{margin-bottom:26px}
.form label{display:block;font-size:12.5px;font-weight:700;color:var(--silver-hi);letter-spacing:.08em;margin-bottom:8px}
.form label .req{color:var(--shu-hi);font-size:10.5px;margin-left:8px}
.form input[type=text],.form input[type=email],.form select,.form textarea{
  width:100%;border:1px solid var(--line);background:#FAFAFA;padding:13px 14px;
  font-family:var(--font-jp);font-size:14px;color:var(--silver-hi);
  border-radius:0;-webkit-appearance:none;transition:border-color .25s;
}
.form input:focus,.form select:focus,.form textarea:focus{outline:none;border-color:var(--silver-hi)}
.form textarea{min-height:170px;resize:vertical}
.cta-btn{
  display:inline-block;margin-top:10px;color:var(--white);background:var(--shu);
  font-weight:700;font-size:16px;padding:18px 52px;letter-spacing:.06em;border:none;
  font-family:var(--font-jp);
  clip-path:polygon(10px 0,100% 0,calc(100% - 10px) 100%,0 100%);
  transition:background .25s,transform .2s;
}
.cta-btn:hover{background:var(--shu-hi);transform:translateY(-2px)}
.form-note{margin-top:16px;font-size:12px;color:var(--silver-lo)}


.cta-band{border-top:1px solid var(--line);text-align:center}
.cta-band .big{font-family:'Shippori Mincho',var(--font-jp);font-weight:800;font-size:clamp(22px,3vw,36px);color:var(--silver-hi);line-height:1.8}
.cta-band p{color:var(--silver-lo);font-size:13.5px;margin-top:14px}


footer{padding:40px 26px 0;position:relative;z-index:10;background:var(--black)}
.foot-in{max-width:1120px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px}
.foot-in .cr{font-size:11.5px;color:var(--silver-lo)}
.hint{font-size:10.5px;color:rgba(0,0,0,.06);letter-spacing:.1em}
.fm{overflow:hidden;margin-top:40px}
.fm-in{transform:translateY(110%);transition:transform 1s cubic-bezier(.2,.7,.2,1)}
.fm.on .fm-in{transform:none}
.fm-track{display:flex;white-space:nowrap;width:max-content;animation:fmScroll 30s linear infinite;animation-play-state:paused}
.fm.on .fm-track{animation-play-state:running}
.fm-half{
  display:block;font-family:var(--font-en);font-weight:700;
  font-size:clamp(54px,9vw,150px);line-height:1.08;letter-spacing:.01em;
  color:var(--silver-hi);padding-right:.55em;
}
@keyframes fmScroll{to{transform:translateX(-50%)}}


.sysmodal{
  position:fixed;inset:0;z-index:200;display:none;align-items:center;justify-content:center;
  background:rgba(5,5,6,.82);backdrop-filter:blur(6px);
}
.sysmodal.open{display:flex;animation:mo .3s ease}
@keyframes mo{from{opacity:0}to{opacity:1}}
.sysmodal .box{
  position:relative;width:min(640px,90vw);background:#ffffff;
  border:1px solid var(--line);box-shadow:0 30px 80px rgba(0,0,0,.4);
  padding:0;overflow:hidden;
  animation:moBox .5s cubic-bezier(.2,.7,.2,1);
}
@keyframes moBox{from{clip-path:inset(50% 0 50% 0)}to{clip-path:inset(0 0 0 0)}}
.sysmodal .bar{display:flex;align-items:center;gap:12px;padding:16px 22px;border-bottom:1px solid var(--line)}
.sysmodal .bar .dot{width:10px;height:10px;border-radius:50%;background:var(--shu)}
.sysmodal .bar h3{font-family:var(--font-jp);font-weight:700;font-size:16px;color:var(--silver-hi);letter-spacing:.06em}
.sysmodal .bar .cz{margin-left:auto;font-size:11px;letter-spacing:.2em;color:var(--silver-lo)}
.sysmodal .body{padding:24px 22px}
.sysmodal table{width:100%;border-collapse:collapse;font-size:12.5px}
.sysmodal th,.sysmodal td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line)}
.sysmodal th{color:var(--shu-hi);font-family:var(--font-en);font-weight:700;letter-spacing:.08em}
.sysmodal td{color:var(--silver)}
.sysmodal .close{position:absolute;top:12px;right:16px;font-size:22px;color:var(--silver-lo);cursor:pointer;background:none;border:none;transition:color .2s}
.sysmodal .close:hover{color:var(--white)}
.sysmodal.open,
.sysmodal.open *{cursor:url("../images/cursor-doge.png") 19 1, auto !important}


@media(prefers-reduced-motion:reduce){
  .el{opacity:1;transform:none;transition:none}
  .io{opacity:1;transform:none;transition:none}
  main,footer{transition:none}
  .fm-in{transform:none;transition:none}
  .fm-track{animation:none}
  .stalker{display:none}
  body.has-stalker,body.has-stalker a,body.has-stalker button{cursor:auto}
}


.hbg{
  position:fixed;left:18px;top:50%;z-index:120;
  width:56px;height:56px;border-radius:50%;background:#0A0A0B;border:none;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  transform:translateY(-50%) scale(0);transform-origin:left center;
  transition:transform .55s cubic-bezier(.34,1.56,.5,1);
  padding:0;
}
.hbg.show{transform:translateY(-50%) scale(1)}

.hbg .bc{display:flex;align-items:center;gap:3px;transition:opacity .25s,transform .25s}
.hbg .bc b{display:block;background:#fff;height:18px}
.hbg .bc b:nth-child(1){width:2px}
.hbg .bc b:nth-child(2){width:5px;animation:hbBlink 4.2s steps(1) infinite}
.hbg .bc b:nth-child(3){width:2px}
.hbg .bc b:nth-child(4){width:3px;animation:hbBlink 3.1s steps(1) infinite .8s}
.hbg .bc b:nth-child(5){width:6px}
.hbg .bc b:nth-child(6){width:2px;animation:hbBlink 5s steps(1) infinite 1.6s}
@keyframes hbBlink{0%,90%,100%{opacity:1}92%,96%{opacity:.15}}
.hbg::before,.hbg::after{content:"";position:absolute;left:50%;top:50%;width:22px;height:2px;background:#fff;margin:-1px 0 0 -11px;opacity:0;transform:rotate(0);transition:transform .3s ease,opacity .25s}
body.menu-open .hbg .bc{opacity:0;transform:scale(.5)}
body.menu-open .hbg::before{opacity:1;transform:rotate(45deg)}
body.menu-open .hbg::after{opacity:1;transform:rotate(-45deg)}

.drawer{
  position:fixed;top:0;right:0;bottom:0;left:max(412px,21.5vw);z-index:110;
  background:#0A0A0B;color:#fff;
  transform:translateX(103%);transition:transform .6s cubic-bezier(.22,1,.36,1);
  padding:84px 6vw 40px;overflow:auto;
}
body.menu-open .drawer{transform:translateX(0)}
body.menu-open{overflow:hidden}
.drawer a{color:#fff}
.drawer .dsec{margin-bottom:38px}
.drawer .dh{display:flex;align-items:baseline;gap:18px;flex-wrap:wrap}
.drawer .dh a,.drawer .dh .dhx{
  font-family:var(--font-en);font-weight:700;
  font-size:clamp(34px,3.4vw,48px);letter-spacing:.03em;line-height:1.15;transition:opacity .25s;
}
.drawer .dh a:hover{opacity:.5}
.drawer .dh .soon{font-size:10.5px;letter-spacing:.18em;color:rgba(255,255,255,.45);border:1px solid rgba(255,255,255,.25);padding:2px 10px}
.drawer .dhx{color:rgba(255,255,255,.55)}
.drawer .dsub{margin-top:14px}
.drawer .dsub a{
  display:block;font-family:var(--font-jp);font-size:15px;font-weight:700;
  color:rgba(255,255,255,.8);margin:11px 0;transition:color .25s;
}
.drawer .dsub a::before{content:"ー ";color:rgba(255,255,255,.4)}
.drawer .dsub a:hover{color:#fff}
@media(max-width:720px){.drawer{left:0;padding:70px 26px 30px}}

.toishi{position:absolute;right:5vw;bottom:34px;width:220px;user-select:none;touch-action:none}
.toishi svg{display:block;width:100%;height:auto}
.toishi #knText{transition:opacity .9s ease}
@media(max-height:640px),(max-width:720px){.toishi{position:static;margin-top:40px}}
