:root{
  --signal:#DFFF00;
  --electric:#6447FF;
  --electric-deep:#3922C9;
  --aqua:#7DEBFF;
  --ice:#DDF9FF;
  --silver:#C8D1DC;
  --paper:#F7F7F4;
  --white:#FFFFFF;
  --ink:#0B0B0E;
  --ink-2:#38383F;
  --ink-3:#6F7078;
  --line:#D9DADD;
  --soft:#EEEFF0;
  --on-ink:#F8F8F5;
  --on-ink-2:#B8B9BF;
  --on-ink-line:rgba(255,255,255,.18);
  --w:1260px;
  --w-read:760px;
  --gut:34px;
}

*,*::before,*::after{box-sizing:border-box}
html{font-size:17px;scroll-behavior:smooth;scroll-padding-top:94px}
body{margin:0;background:var(--white);color:var(--ink);font-family:"Noto Sans JP",Arial,sans-serif;font-size:.95rem;line-height:1.95;font-feature-settings:"palt" 1;-webkit-font-smoothing:antialiased;overflow-x:hidden;overflow-wrap:anywhere}
body,button,a{font-family:"Noto Sans JP",Arial,sans-serif}
img,svg{display:block;max-width:100%}
a{color:inherit;text-decoration-thickness:1px;text-underline-offset:.2em}
a:hover{color:var(--electric)}
button{font:inherit}
h1,h2,h3,p,ul,ol,dl,dd{margin-top:0}
h1,h2,h3{font-weight:900}
h1{font-size:clamp(2.4rem,1.25rem + 4vw,5.5rem);letter-spacing:-.065em;line-height:1.02}
h2{font-size:clamp(2rem,1.1rem + 3.5vw,4.8rem);letter-spacing:-.06em;line-height:1.06}
h3{font-size:1.12rem;letter-spacing:-.025em;line-height:1.5}
p:last-child,ul:last-child,ol:last-child{margin-bottom:0}
::selection{background:var(--signal);color:var(--ink)}

.skip-link{position:fixed;left:16px;top:12px;z-index:1000;background:var(--white);border:2px solid var(--ink);padding:8px 14px;transform:translateY(-160%)}
.skip-link:focus{transform:translateY(0)}
.container{width:min(100% - (var(--gut) * 2),var(--w));margin-inline:auto}
.hero-in>*,.sec-head>*,.intro-grid>*,.cta-in>*,.foot-grid>*,.service-title>*,.payment-grid>*,.contact-grid>*{min-width:0}
.read{max-width:var(--w-read)}
.mono,.kicker,.eyebrow,.nav,.slabel,.spec dt,.pcard .amount,.pcard .meta dt,.hero-catalog .no,.hero-catalog .price,.strip,.toc,.site-foot .foot-label,.contact-method .label,.table-label{font-family:"IBM Plex Mono",monospace;font-variant-numeric:tabular-nums}
.muted{color:var(--ink-3)}
.brand-text{position:relative;display:inline-block;color:var(--electric);z-index:1}
.brand-text::after{content:"";position:absolute;z-index:-1;left:-.02em;right:-.03em;bottom:.02em;height:.19em;background:var(--signal);transform:rotate(-1.5deg)}
.fine{font-size:.82rem;line-height:1.75;color:var(--ink-3)}

.grain{position:fixed;inset:0;z-index:100;pointer-events:none;opacity:.028;background-image:repeating-linear-gradient(121deg,rgba(0,0,0,.55) 0 1px,transparent 1px 5px),repeating-linear-gradient(31deg,transparent 0 8px,rgba(0,0,0,.38) 8px 9px);background-size:13px 17px,19px 23px}
.page-rail{position:fixed;z-index:30;left:9px;top:50%;transform:translate(-45%,-50%) rotate(-90deg);font:500 .6rem/1 "IBM Plex Mono",monospace;letter-spacing:.18em;color:var(--ink-3);pointer-events:none}

.site-head{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.88);border-bottom:1px solid rgba(11,11,14,.12);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
.head-in{min-height:82px;display:flex;align-items:center;justify-content:space-between;gap:32px}
.brand{display:inline-flex;align-items:center;gap:12px;text-decoration:none;font-weight:900;letter-spacing:-.045em;line-height:1.1}
.brand svg{width:34px;height:34px;flex:0 0 auto;transition:transform .3s cubic-bezier(.2,.8,.2,1)}
.brand:hover svg{transform:rotate(-7deg) scale(1.08)}
.nav{display:flex;align-items:center;gap:clamp(18px,2.8vw,38px);font-size:.7rem;font-weight:600;letter-spacing:.09em}
.nav a{text-decoration:none;position:relative;padding:29px 0 26px}
.nav a::after{content:"";position:absolute;left:0;right:100%;bottom:21px;height:3px;background:var(--signal);transition:right .22s ease}
.nav a:hover::after,.nav a[aria-current="page"]::after{right:0}
.nav a[aria-current="page"]{color:var(--electric)}
.nav-cta{display:grid!important;place-items:center;width:66px;height:66px;padding:0!important;border:1.5px solid var(--ink);border-radius:50%;font-size:.6rem;transition:background .2s,color .2s,transform .2s}
.nav-cta::after{display:none}
.nav-cta:hover{background:var(--ink);color:var(--white);transform:rotate(-7deg)}
.mobile-nav{display:none;position:relative}
.mobile-nav summary{cursor:pointer;list-style:none;font:600 .7rem/1 "IBM Plex Mono",monospace;letter-spacing:.08em;border:1.5px solid var(--ink);border-radius:50%;width:56px;height:56px;display:grid;place-items:center}
.mobile-nav summary::-webkit-details-marker{display:none}
.mobile-panel{position:absolute;right:0;top:calc(100% + 10px);width:min(330px,calc(100vw - 44px));background:var(--ink);color:var(--white);border:1px solid var(--ink);padding:16px 22px;box-shadow:10px 10px 0 var(--signal)}
.mobile-panel a{display:block;text-decoration:none;padding:12px 0;border-bottom:1px solid var(--on-ink-line)}
.mobile-panel a:last-child{border-bottom:0}

.hero{position:relative;isolation:isolate;overflow:hidden;background:var(--white);border-bottom:1px solid var(--ink)}
.hero-word{position:absolute;z-index:-1;left:0;right:0;top:-.13em;text-align:center;font:900 clamp(5.5rem,17vw,15rem)/1 Arial,sans-serif;letter-spacing:-.085em;color:transparent;-webkit-text-stroke:2px rgba(11,11,14,.07);white-space:nowrap;pointer-events:none;user-select:none}
.hero-in{display:grid;grid-template-columns:minmax(0,.9fr) minmax(440px,1.1fr);grid-template-areas:"copy stage" "catalog catalog";gap:42px 5vw;min-height:calc(100svh - 82px);padding:clamp(86px,9vw,132px) 0 34px;align-items:center}
.hero-copy{grid-area:copy;position:relative;z-index:2}
.hero-copy::before{content:"";position:absolute;z-index:-1;left:-36px;top:13%;width:92px;height:92px;background:var(--signal);clip-path:polygon(0 0,100% 0,100% 28%,29% 28%,29% 100%,0 100%);transform:rotate(-6deg)}
.hero h1{font-size:clamp(3.4rem,2.2rem + 4.7vw,7rem);max-width:8.3em;margin:24px 0 34px}
.hero .lead{max-width:39em;margin-bottom:32px;color:var(--ink-2);font-size:.95rem;line-height:2}
.actions{display:flex;flex-wrap:wrap;gap:12px}
.btn{display:inline-flex;min-height:54px;align-items:center;justify-content:center;gap:30px;padding:10px 24px;border:1.5px solid var(--ink);border-radius:0;text-decoration:none;font-weight:800;line-height:1.4;transition:transform .2s ease,box-shadow .2s ease,background .2s,color .2s}
.btn::after{content:"↗";font-family:"IBM Plex Mono",monospace}
.btn:hover{transform:translate(-3px,-3px);box-shadow:7px 7px 0 var(--signal)}
.btn.primary{background:var(--ink);border-color:var(--ink);color:var(--white)}
.btn.primary:hover{background:var(--electric);border-color:var(--electric);color:var(--white)}
.btn.ghost{background:rgba(255,255,255,.76)}
.btn.ghost:hover{color:var(--ink)}

.hero-stage{--mx:0px;--my:0px;grid-area:stage;position:relative;justify-self:end;width:min(100%,630px);aspect-ratio:1.12/1;transform:translate(var(--mx),var(--my));transition:transform .8s cubic-bezier(.2,.8,.2,1)}
.stage-grid{position:absolute;inset:7% 5% 9% 10%;background-image:linear-gradient(var(--ink) 1px,transparent 1px),linear-gradient(90deg,var(--ink) 1px,transparent 1px);background-size:25% 25%;opacity:.11}
.stage-grid::before,.stage-grid::after{content:"";position:absolute;background:var(--ink)}
.stage-grid::before{width:24%;height:24%;left:25%;top:25%}
.stage-grid::after{width:24%;height:24%;right:0;bottom:0}
.object{position:absolute;filter:drop-shadow(0 28px 28px rgba(34,34,55,.18));will-change:transform}
.object-a{z-index:3;width:52%;height:58%;left:3%;top:18%;border-radius:46% 54% 38% 62%/57% 32% 68% 43%;background:radial-gradient(circle at 29% 27%,#fff 0 5%,var(--ice) 15%,var(--aqua) 34%,#9B86FF 59%,#3348BF 78%,#101018 100%);box-shadow:inset -22px -28px 40px rgba(15,18,55,.28),inset 18px 16px 26px rgba(255,255,255,.8);animation:object-float 7s ease-in-out infinite alternate}
.object-a::before{content:"";position:absolute;inset:18% 24%;border:3px solid rgba(255,255,255,.56);border-radius:50%;transform:rotate(-24deg);box-shadow:0 0 22px rgba(255,255,255,.62)}
.object-b{z-index:4;width:43%;aspect-ratio:1;right:3%;top:3%;border-radius:50%;background:conic-gradient(from 70deg,#16161A,#BFFAFF,#7658FF,#FFFFFF,#16161A,#BFFAFF);animation:object-spin 17s linear infinite}
.object-b::after{content:"";position:absolute;inset:27%;border-radius:50%;background:var(--white);box-shadow:inset 8px 10px 18px rgba(11,11,14,.22)}
.object-c{z-index:5;width:33%;height:43%;right:12%;bottom:1%;clip-path:polygon(50% 0,95% 24%,84% 81%,47% 100%,4% 72%,9% 19%);background:linear-gradient(135deg,rgba(255,255,255,.95),var(--aqua) 26%,#C7FFDB 46%,#9C80FF 70%,#2D2D8C);box-shadow:inset 20px 20px 30px rgba(255,255,255,.5);animation:object-float 8s 1s ease-in-out infinite alternate-reverse}
.object span{display:none}
.stage-code{position:absolute;z-index:6;left:47%;top:37%;font:900 clamp(2rem,4vw,4.5rem)/.82 Arial,sans-serif;letter-spacing:-.08em;color:var(--ink);mix-blend-mode:multiply}
.stage-jp{position:absolute;z-index:6;right:0;top:27%;writing-mode:vertical-rl;font-weight:800;letter-spacing:.14em;font-size:.83rem}

.hero-catalog{grid-area:catalog;display:grid;grid-template-columns:repeat(4,1fr);background:var(--white);border-top:1.5px solid var(--ink);border-bottom:1.5px solid var(--ink)}
.hero-catalog .caption{grid-column:1/-1;padding:8px 0;border-bottom:1px solid var(--line);font-size:.65rem;letter-spacing:.1em;color:var(--ink-3)}
.hero-catalog .row{position:relative;display:grid;grid-template-columns:36px 1fr;gap:10px;padding:15px 16px 16px 0;border-right:1px solid var(--line)}
.hero-catalog .row:last-child{border-right:0;padding-left:16px}
.hero-catalog .row:not(:first-of-type){padding-left:16px}
.hero-catalog .no{color:var(--electric);font-size:.67rem}
.hero-catalog .name{font-weight:700;line-height:1.45}
.hero-catalog .price{grid-column:2;font-size:.72rem;white-space:nowrap;color:var(--ink-3)}

.strip{overflow:hidden;background:var(--signal);color:var(--ink);border-bottom:1px solid var(--ink);font-size:.72rem;font-weight:600;letter-spacing:.09em}
.strip-track{display:flex;width:max-content;animation:marquee 28s linear infinite}
.strip-in{display:flex;align-items:center;white-space:nowrap}
.strip span{padding:13px 18px}
.strip span:nth-child(even){font-size:.55rem}

.sec{position:relative;padding:clamp(82px,9vw,144px) 0;background:var(--paper)}
.sec.white{background:var(--white)}
.sec.dark{overflow:hidden;background:var(--ink);color:var(--on-ink)}
.sec.dark::before{content:"PRICING";position:absolute;right:-.08em;top:-.28em;font:900 clamp(8rem,24vw,22rem)/1 Arial,sans-serif;color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.09);pointer-events:none}
.sec-head{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(32px,7vw,110px);align-items:end;margin-bottom:clamp(48px,6vw,82px)}
.sec-head h2{margin-bottom:0;max-width:9em}
.sec-head p{color:var(--ink-3);margin:0 0 5px;max-width:42em}
.sec.dark .sec-head p{color:var(--on-ink-2)}
.slabel{display:flex;align-items:center;gap:14px;margin-bottom:22px;text-transform:uppercase;font-size:.68rem;line-height:1.4;letter-spacing:.17em;color:var(--ink-3)}
.slabel::after{content:"";height:1px;background:var(--line);flex:1;max-width:130px}
.slabel b{display:grid;place-items:center;min-width:32px;height:32px;padding:0 7px;border:1px solid currentColor;border-radius:50%;color:var(--electric);font-weight:500}
.sec.dark .slabel{color:var(--on-ink-2)}
.sec.dark .slabel b{color:var(--signal)}
.sec.dark .slabel::after{background:var(--on-ink-line)}

.svcs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.svc{position:relative;min-height:350px;padding:clamp(30px,4vw,52px);border:1.5px solid var(--ink);background:var(--white);overflow:hidden;transition:transform .28s cubic-bezier(.2,.8,.2,1),box-shadow .28s ease}
.svc::after{content:"";position:absolute;right:-58px;bottom:-62px;width:170px;height:170px;border-radius:50%;background:var(--aqua);filter:blur(1px);transition:transform .35s ease}
.svc:nth-child(2){background:var(--ink);color:var(--white)}
.svc:nth-child(2)::after{background:var(--signal)}
.svc:nth-child(3)::after{border-radius:0;clip-path:polygon(50% 0,100% 38%,76% 100%,12% 87%,0 24%);background:linear-gradient(135deg,var(--ice),#8A72FF)}
.svc:nth-child(4){background:var(--electric);color:var(--white)}
.svc:nth-child(4)::after{background:var(--white)}
.svc:hover{z-index:2;transform:translate(-5px,-7px);box-shadow:10px 12px 0 var(--signal)}
.svc:hover::after{transform:scale(1.18) rotate(18deg)}
.svc .eyebrow{position:relative;z-index:1;font-size:.68rem;color:var(--electric);letter-spacing:.12em;margin-bottom:54px}
.svc:nth-child(2) .eyebrow,.svc:nth-child(4) .eyebrow{color:var(--signal)}
.svc h3{position:relative;z-index:1;font-size:clamp(1.45rem,1.1rem + 1vw,2.1rem);margin-bottom:14px}
.svc p{position:relative;z-index:1;color:var(--ink-2);max-width:35em}
.svc:nth-child(2) p,.svc:nth-child(4) p{color:rgba(255,255,255,.75)}
.tags{position:relative;z-index:1;display:flex;flex-wrap:wrap;gap:7px;margin-top:28px}
.tag{font:500 .65rem/1.3 "IBM Plex Mono",monospace;letter-spacing:.05em;border:1px solid currentColor;border-radius:999px;padding:6px 10px;background:rgba(255,255,255,.72)}
.svc:nth-child(2) .tag,.svc:nth-child(4) .tag{background:transparent;color:var(--white);border-color:rgba(255,255,255,.35)}
.callout{display:grid;grid-template-columns:auto minmax(0,1fr);gap:18px;margin-top:38px;padding:24px 26px;border:1px solid var(--ink);background:var(--signal)}
.callout .mark{font-family:"IBM Plex Mono",monospace;color:var(--ink);font-weight:600}
.callout strong{display:block;margin-bottom:3px}
.callout p{font-size:.85rem;color:var(--ink-2);margin:0}
.callout.darkline{background:rgba(255,255,255,.07);border-color:var(--on-ink-line)}
.callout.darkline .mark{color:var(--signal)}
.callout.darkline p{color:var(--on-ink-2)}

.flow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));counter-reset:flow}
.flow-i{position:relative;display:flex;min-height:265px;flex-direction:column;padding:30px 26px 22px;border-top:1.5px solid var(--ink);border-bottom:1.5px solid var(--ink);border-right:1px solid var(--line);counter-increment:flow}
.flow-i:first-child{border-left:1.5px solid var(--ink)}
.flow-i:last-child{border-right:1.5px solid var(--ink)}
.flow-i::before{content:"0" counter(flow);font:900 3.1rem/1 Arial,sans-serif;color:transparent;-webkit-text-stroke:1.5px var(--electric);letter-spacing:-.06em;margin-bottom:34px}
.flow-i::after{content:"→";position:absolute;top:36px;right:-14px;z-index:2;width:28px;height:28px;display:grid;place-items:center;border:1px solid var(--ink);border-radius:50%;background:var(--signal);font:600 .75rem/1 "IBM Plex Mono",monospace}
.flow-i:last-child::after{display:none}
.flow-i h3{margin-bottom:10px}
.flow-i p{font-size:.84rem;color:var(--ink-3);line-height:1.8}
.flow-i .days{margin-top:auto;padding-top:12px;border-top:1px dashed var(--line);font:500 .7rem/1.6 "IBM Plex Mono",monospace;color:var(--ink-2)}

.pricegrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.pcard{position:relative;padding:32px 27px 26px;border:1px solid var(--on-ink-line);background:rgba(255,255,255,.035);transition:transform .25s ease,background .25s ease,border-color .25s ease}
.pcard::before{content:"";position:absolute;right:18px;top:18px;width:10px;height:10px;border-radius:50%;background:var(--signal);box-shadow:0 0 18px var(--signal)}
.pcard:hover{z-index:2;background:var(--electric);border-color:var(--electric);transform:translateY(-7px)}
.pcard .eyebrow{color:var(--signal);font-size:.68rem;letter-spacing:.12em;margin-bottom:28px}
.pcard h3{min-height:3.1em;margin-bottom:18px;color:var(--white)}
.pcard .amount{font-size:clamp(1.45rem,1rem + 1.4vw,2.25rem);line-height:1.2;letter-spacing:-.045em;color:var(--white);white-space:nowrap;margin-bottom:30px}
.pcard .amount small{font-size:.72rem;color:var(--on-ink-2);font-family:"Noto Sans JP",sans-serif}
.pcard .meta{margin:0}
.pcard .meta div{display:grid;grid-template-columns:90px 1fr;gap:10px;padding:9px 0;border-top:1px solid var(--on-ink-line)}
.pcard .meta dt{font-size:.62rem;color:var(--on-ink-2);letter-spacing:.07em}
.pcard .meta dd{margin:0;font-size:.76rem;line-height:1.55;color:var(--on-ink)}

.spec{border-top:1.5px solid var(--ink);margin:34px 0 0}
.spec>div{display:grid;grid-template-columns:190px minmax(0,1fr);gap:30px;padding:20px 6px;border-bottom:1px solid var(--line)}
.spec dt{font-size:.7rem;letter-spacing:.1em;color:var(--electric)}
.spec dd{margin:0;color:var(--ink-2)}
.spec strong{color:var(--ink)}
.spec.compact>div{padding:15px 6px}
.spec.dark-spec{border-top-color:var(--on-ink)}
.spec.dark-spec>div{border-bottom-color:var(--on-ink-line)}
.spec.dark-spec dt{color:var(--signal)}
.spec.dark-spec dd,.spec.dark-spec strong{color:var(--on-ink)}
.service-block{position:relative;padding:clamp(52px,7vw,94px) 0;border-bottom:1px solid var(--line)}
.service-block:first-child{padding-top:0}
.service-block:last-child{border-bottom:0;padding-bottom:0}
.service-title{display:grid;grid-template-columns:100px minmax(0,1fr);gap:24px;align-items:start}
.service-title .num{font:900 3rem/1 Arial,sans-serif;color:transparent;-webkit-text-stroke:1.5px var(--electric);padding-top:7px}
.service-title p{max-width:46em;color:var(--ink-3)}

.table-wrap{width:100%;max-width:100%;overflow-x:auto;border-top:1.5px solid var(--ink)}
.data-table{width:100%;border-collapse:collapse;min-width:680px}
.data-table th,.data-table td{text-align:left;vertical-align:top;padding:17px 14px;border-bottom:1px solid var(--line)}
.data-table th{width:210px;font:500 .7rem/1.7 "IBM Plex Mono",monospace;letter-spacing:.08em;color:var(--electric)}
.data-table td{color:var(--ink-2)}
.data-table .num{text-align:right;white-space:nowrap;font-family:"IBM Plex Mono",monospace;font-variant-numeric:tabular-nums;color:var(--ink)}
.data-table tbody tr{transition:background .16s ease}
.data-table tbody tr:hover{background:var(--ice)}
.payment-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--ink);border:1px solid var(--ink)}
.payment-grid>div{display:grid;grid-template-columns:120px minmax(0,1fr);gap:20px;padding:24px;background:var(--white)}
.payment-grid dt{font:600 .68rem/1.6 "IBM Plex Mono",monospace;color:var(--electric);letter-spacing:.08em}
.payment-grid dd{margin:0;color:var(--ink-2)}

.linkcards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--ink);border:1px solid var(--ink)}
.linkcard{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px;align-items:center;min-height:168px;padding:30px;background:var(--white);text-decoration:none;transition:background .22s,color .22s}
.linkcard .en{font:500 .68rem/1.5 "IBM Plex Mono",monospace;letter-spacing:.1em;color:var(--electric);display:block;margin-bottom:8px}
.linkcard strong{font-size:1.05rem}
.linkcard .arrow{display:grid;place-items:center;width:54px;height:54px;border:1px solid currentColor;border-radius:50%;font-family:"IBM Plex Mono",monospace;font-size:1rem;transition:transform .22s}
.linkcard:hover{background:var(--electric);color:var(--white)}
.linkcard:hover .en{color:var(--signal)}
.linkcard:hover .arrow{color:var(--white);transform:rotate(45deg)}

.cta-aside{position:relative;overflow:hidden;background:var(--signal);border-top:1px solid var(--ink)}
.cta-aside::before{content:"LET'S TALK";position:absolute;left:-.04em;bottom:-.28em;font:900 clamp(7rem,20vw,18rem)/1 Arial,sans-serif;letter-spacing:-.08em;color:rgba(255,255,255,.48);white-space:nowrap}
.cta-in{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(260px,.65fr);align-items:center}
.cta-copy{padding:clamp(54px,7vw,92px) clamp(34px,5vw,70px) clamp(54px,7vw,92px) 0;border-right:1px solid rgba(11,11,14,.25)}
.cta-copy h2{font-size:clamp(2rem,1.25rem + 3vw,4rem);max-width:11em;margin-bottom:28px}
.cta-phone{padding:clamp(54px,7vw,92px) 0 clamp(54px,7vw,92px) clamp(34px,5vw,70px)}
.cta-phone .label{font-family:"IBM Plex Mono",monospace;color:var(--ink);font-size:.68rem;letter-spacing:.1em;margin-bottom:10px}
.cta-phone .number{font-family:"IBM Plex Mono",monospace;font-size:clamp(1.1rem,.9rem + .8vw,1.55rem);font-variant-numeric:tabular-nums}
.cta-phone .hours{font-size:.76rem;color:var(--ink-2)}
.cta-aside .btn.primary{background:var(--ink);border-color:var(--ink);box-shadow:none}

.site-foot{background:var(--ink);color:var(--on-ink);padding:clamp(68px,8vw,108px) 0 28px}
.foot-grid{display:grid;grid-template-columns:1.45fr repeat(3,.7fr) 1.35fr;gap:clamp(24px,4vw,58px)}
.site-foot .brand{margin-bottom:22px;color:var(--white)}
.site-foot .brand:hover{color:var(--signal)}
.site-foot p{color:var(--on-ink-2);font-size:.76rem;line-height:1.85}
.site-foot .foot-label{font-size:.65rem;letter-spacing:.11em;color:var(--signal);margin-bottom:16px}
.foot-links{display:grid;gap:7px}
.foot-links a{font-size:.78rem;text-decoration:none;color:var(--on-ink)}
.foot-links a:hover{color:var(--signal)}
.foot-entity{padding-left:26px;border-left:1px solid var(--on-ink-line)}
.foot-entity address{font-style:normal;color:var(--on-ink-2);font-size:.74rem;line-height:1.9}
.foot-note{margin-top:48px;padding-top:22px;border-top:1px solid var(--on-ink-line);display:flex;justify-content:space-between;gap:30px;color:var(--on-ink-2);font-size:.68rem}
.foot-note p{max-width:760px;font-size:.68rem;margin:0}

.page-head{position:relative;isolation:isolate;overflow:hidden;background:var(--white);color:var(--ink);padding:clamp(82px,10vw,148px) 0;border-bottom:1px solid var(--ink)}
.page-head::before{content:"";position:absolute;z-index:-1;right:5%;top:8%;width:330px;height:330px;border-radius:52% 48% 67% 33%/43% 58% 42% 57%;background:radial-gradient(circle at 28% 22%,#fff,var(--aqua) 28%,#9C84FF 65%,#272766);box-shadow:inset 20px 18px 34px rgba(255,255,255,.7);animation:object-float 8s ease-in-out infinite alternate}
.page-head::after{content:"";position:absolute;z-index:-1;right:1%;bottom:-60px;width:210px;height:210px;background:var(--ink);clip-path:polygon(0 0,100% 0,100% 100%,65% 100%,65% 35%,0 35%)}
.page-head .kicker{color:var(--electric);font-size:.7rem;letter-spacing:.16em;margin-bottom:24px}
.page-head h1{max-width:850px;margin-bottom:26px;font-size:clamp(3rem,1.7rem + 5vw,7.1rem)}
.page-head .lead{max-width:47em;color:var(--ink-2);margin-bottom:0}
.crumbs{font:500 .68rem/1.5 "IBM Plex Mono",monospace;color:var(--ink-3);margin-bottom:40px}
.crumbs a{color:var(--ink);text-decoration:none}
.crumbs span{padding:0 8px;color:var(--electric)}

.intro-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(36px,7vw,105px);align-items:start}
.intro-grid .summary{font-size:clamp(1.35rem,1.05rem + 1.2vw,2.1rem);font-weight:800;line-height:1.65;letter-spacing:-.035em}
.note-box{position:relative;background:var(--ink);color:var(--white);border:0;padding:30px 32px;box-shadow:14px 14px 0 var(--aqua)}
.note-box::before{content:"";position:absolute;right:18px;top:18px;width:12px;height:12px;background:var(--signal)}
.note-box h3{margin-bottom:8px}
.note-box p{font-size:.84rem;color:var(--on-ink-2)}

.legal-layout{display:grid;grid-template-columns:250px minmax(0,1fr);gap:clamp(42px,8vw,110px);align-items:start}
.toc{position:sticky;top:112px;border:1px solid var(--ink);background:rgba(255,255,255,.84);padding:12px 20px;backdrop-filter:blur(12px);font-size:.7rem}
.toc .toc-title{padding:12px 0;color:var(--electric);letter-spacing:.1em;border-bottom:1px solid var(--line)}
.toc a{display:block;text-decoration:none;padding:9px 0;border-bottom:1px solid var(--line);color:var(--ink-3)}
.toc a:hover{color:var(--electric)}
.legal-body{max-width:44em}
.legal-body section{padding:0 0 54px;margin-bottom:54px;border-bottom:1px solid var(--line)}
.legal-body section:last-child{border-bottom:0;margin-bottom:0;padding-bottom:0}
.legal-body h2{font-size:clamp(1.5rem,1.15rem + 1vw,2.1rem);margin-bottom:20px;scroll-margin-top:116px}
.legal-body h3{margin-top:28px;margin-bottom:10px}
.legal-body li{margin-bottom:6px}
.legal-body p,.legal-body li{color:var(--ink-2)}
.legal-body .article-no{font:500 .7rem/1.5 "IBM Plex Mono",monospace;color:var(--electric);letter-spacing:.1em;margin-bottom:8px}

.contact-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--ink);border:1px solid var(--ink)}
.contact-method{position:relative;padding:clamp(32px,4vw,52px);background:var(--white)}
.contact-method::after{content:"";position:absolute;right:24px;top:24px;width:15px;height:15px;border-radius:50%;background:var(--signal);border:1px solid var(--ink)}
.contact-method .label{color:var(--electric);font-size:.68rem;letter-spacing:.1em;margin-bottom:28px}
.contact-method h2{font-size:1.35rem;margin-bottom:12px}
.contact-method .value{font-family:"IBM Plex Mono",monospace;font-size:clamp(1rem,.8rem + 1vw,1.45rem);overflow-wrap:anywhere;margin-bottom:10px}
.contact-method p{font-size:.82rem;color:var(--ink-3)}
.contact-method .btn{margin-top:18px}
.checklist{list-style:none;margin:0;padding:0;border-top:1.5px solid var(--ink)}
.checklist li{display:grid;grid-template-columns:38px minmax(0,1fr);gap:12px;padding:14px 0;border-bottom:1px solid var(--line)}
.checklist li::before{content:"✓";font-family:"IBM Plex Mono",monospace;color:var(--electric);text-align:center}

.ph{background:#FFF0B8;border-bottom:1.5px solid #997900;color:#4B3D00;padding:1px 5px;font-weight:700;white-space:nowrap}
.sec.dark .ph,.site-foot .ph{background:rgba(223,255,0,.15);border-bottom-color:var(--signal);color:#F4FFB5}

.has-js .reveal{opacity:.01;transform:translateY(28px)}
.has-js .reveal.is-visible{opacity:1;transform:none;transition:opacity .72s ease,transform .72s cubic-bezier(.2,.8,.2,1)}
.has-js .is-visible .svc,.has-js .is-visible .pcard,.has-js .is-visible .flow-i,.has-js .is-visible .linkcard{animation:card-in .58s both;animation-delay:var(--delay,0ms)}
@keyframes object-float{to{transform:translateY(-15px) rotate(7deg) scale(1.025)}}
@keyframes object-spin{to{transform:rotate(360deg)}}
@keyframes marquee{to{transform:translateX(-50%)}}
@keyframes card-in{from{opacity:.01;transform:translateY(20px)}to{opacity:1;transform:none}}

@media (max-width:1100px){
  .hero-in{grid-template-columns:minmax(0,1fr) minmax(390px,.9fr)}
  .hero-stage{width:100%}
  .foot-grid{grid-template-columns:1.2fr repeat(3,.7fr)}
  .foot-entity{grid-column:1/-1;padding:24px 0 0;border-left:0;border-top:1px solid var(--on-ink-line)}
  .pricegrid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media (max-width:860px){
  :root{--gut:23px}
  .page-rail{display:none}
  .desktop-nav{display:none}
  .mobile-nav{display:block}
  .hero-in{grid-template-columns:1fr;grid-template-areas:"copy" "stage" "catalog";min-height:auto;padding:74px 0 28px}
  .hero-copy{max-width:650px}
  .hero-stage{justify-self:center;max-width:650px}
  .hero-catalog{grid-template-columns:repeat(2,1fr)}
  .hero-catalog .row:nth-child(3){border-right:0}
  .hero-catalog .row:nth-last-child(-n+2){border-top:1px solid var(--line)}
  .sec-head,.intro-grid{grid-template-columns:1fr}
  .flow{grid-template-columns:repeat(2,minmax(0,1fr))}
  .flow-i:nth-child(2){border-right:1.5px solid var(--ink)}
  .flow-i:nth-child(n+3){border-top:0}
  .flow-i:nth-child(3){border-left:1.5px solid var(--ink)}
  .flow-i::after{display:none}
  .payment-grid{grid-template-columns:1fr}
  .linkcards{grid-template-columns:1fr}
  .cta-in{grid-template-columns:1fr}
  .cta-copy{padding-right:0;border-right:0;border-bottom:1px solid rgba(11,11,14,.25)}
  .cta-phone{padding-left:0}
  .legal-layout{grid-template-columns:1fr}
  .toc{position:relative;top:auto;columns:2;column-gap:26px}
  .toc .toc-title{column-span:all}
  .page-head::before{right:-110px;opacity:.58}
}

@media (max-width:620px){
  html{font-size:16.5px}
  .head-in{min-height:70px}
  .brand{font-size:.9rem}
  .brand svg{width:30px;height:30px}
  .mobile-nav summary{width:50px;height:50px;font-size:.63rem}
  .hero-word{top:.05em}
  .hero h1{font-size:clamp(3rem,16vw,4.7rem)}
  .hero-copy::before{left:-22px;width:68px;height:68px}
  .hero-stage{aspect-ratio:1/1}
  .stage-jp{font-size:.7rem}
  .stage-code{font-size:clamp(1.65rem,10vw,3.2rem)}
  .hero-catalog{grid-template-columns:1fr}
  .hero-catalog .row,.hero-catalog .row:last-child,.hero-catalog .row:not(:first-of-type){padding:14px 4px;border-right:0;border-top:1px solid var(--line)}
  .hero-catalog .row:first-of-type{border-top:0}
  .hero-catalog .caption{padding-inline:4px}
  .sec{padding:74px 0}
  .sec-head h2{font-size:clamp(2.25rem,12vw,3.3rem)}
  .svcs,.flow,.pricegrid,.contact-grid{grid-template-columns:1fr}
  .svc{min-height:auto;padding:32px 26px}
  .svc .eyebrow{margin-bottom:38px}
  .flow-i,.flow-i:first-child,.flow-i:nth-child(2),.flow-i:nth-child(3),.flow-i:last-child{min-height:auto;padding:28px 4px 32px;border-left:0;border-right:0;border-top:1px solid var(--ink);border-bottom:0}
  .flow-i:last-child{border-bottom:1px solid var(--ink)}
  .pcard{padding:30px 24px}
  .pcard h3{min-height:auto}
  .spec>div{grid-template-columns:1fr;gap:6px;padding:16px 0}
  .service-title{grid-template-columns:1fr;gap:8px}
  .service-title .num{padding-top:0}
  .linkcard{min-height:130px;padding:24px 20px}
  .linkcard .arrow{width:46px;height:46px}
  .foot-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .foot-about,.foot-entity{grid-column:1/-1}
  .foot-note{display:grid}
  .toc{columns:1}
  .contact-method{padding:30px 22px}
  .actions{display:grid}
  .btn{width:100%}
  .ph{white-space:normal}
  .page-head::before{width:210px;height:210px;right:-90px;top:18%}
  .page-head::after{width:120px;height:120px}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}
  .has-js .reveal{opacity:1;transform:none}
}

@media print{
  .site-head,.cta-aside,.mobile-nav,.page-rail,.grain{display:none!important}
  .site-foot{background:var(--white);color:var(--ink);border-top:1px solid var(--ink)}
  .page-head,.sec.dark{background:var(--white);color:var(--ink)}
  .page-head h1,.sec.dark h2,.pcard h3,.pcard .amount{color:var(--ink)}
  .toc{position:relative;top:auto}
  a{text-decoration:none}
}
