/* GRIP — white ground, crimson gradient accent, editorial type.
   Layout: shared sticky header with SERVICE dropdown (drawer on mobile), section rows of label (4) + content (8). */
:root{
  --t-main:#3D9180; --t-hi:#6BC1B0; --t-lo:#296559; --t-pale:#EEF7F5; --t-light:#A1D8CD; --t-deep:#183B34; --t-kv0:#4EAB98; --t-kv1:#368273; --t-kv2:#24594F; --t-white:#FFFFFF;
  --sv-a:#DEEDEA; --sv-b:#CCDEDA; --sv-c:#D3E3E0;
  --ink:#111111; --ink-2:#3A3A37; --muted:#6A6A66; --line:#E6E0E1; --soft:#F6F4F4; --blush:#EEF7F5;
  --red:#3D9180; --red-hi:#6BC1B0; --red-lo:#296559;
  --grad:linear-gradient(120deg,var(--red-hi) 0%,var(--red) 48%,var(--red-lo) 100%);
  --f-ja:'Zen Kaku Gothic New','Hiragino Sans','Yu Gothic',sans-serif;
  --f-min:'Zen Old Mincho','Hiragino Mincho ProN','Yu Mincho',serif;
  --f-lat:'Archivo','Helvetica Neue',Arial,sans-serif;
  --f-ser:'Instrument Serif',Georgia,serif;
  --gut:clamp(16px,3vw,40px); --max:1440px;
  color-scheme:light;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:#FFFFFF;color:var(--ink);font-family:var(--f-ja);font-size:15px;line-height:1.8}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
a:hover{color:var(--red)}
:focus-visible{outline:3px solid var(--red);outline-offset:3px}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.wrap{max-width:var(--max);margin:0 auto;padding-inline:var(--gut)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.lat{font-family:var(--f-lat)}
.ser{font-family:var(--f-ser);font-style:italic;font-weight:400}
.grad-text{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}

/* ---------- header ---------- */
.hd{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;background:#FFFFFF;border-bottom:1px solid var(--line)}
html,body{overflow-x:clip}
.hd-in{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:72px}
.logo{display:inline-flex;align-items:center;min-height:44px}
.logo img{height:30px;width:auto}
.gnav>ul{display:flex;align-items:center;gap:4px;margin:0;padding:0;list-style:none}
.gnav>ul>li{position:relative}
.gnav>ul>li>a{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 12px;font-family:var(--f-lat);font-size:13px;font-weight:700;letter-spacing:.08em}
.gnav>ul>li>a[aria-current="page"]{color:var(--red)}
.gnav .caret{width:9px;height:9px}
.sub{position:absolute;top:100%;left:-12px;min-width:340px;padding:12px;margin:0;list-style:none;background:#FFFFFF;border:1px solid var(--line);border-radius:8px;box-shadow:0 24px 48px -24px rgba(17,17,17,.28);opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity .16s,transform .16s,visibility .16s}
.has-sub:hover .sub,.has-sub:focus-within .sub{opacity:1;visibility:visible;transform:none}
.sub a{display:flex;flex-direction:column;padding:10px 12px;border-radius:6px;line-height:1.4}
.sub a:hover{background:var(--soft)}
.sub a b{font-size:13px}
.sub a span{font-family:var(--f-lat);font-size:11px;letter-spacing:.12em;color:var(--muted)}
.sub .all{border-top:1px solid var(--line);margin-top:6px;padding-top:12px}
.hd-cta{display:flex;align-items:center;gap:12px}
.lang{font-family:var(--f-lat);font-size:12px;font-weight:700;letter-spacing:.06em;color:var(--muted)}
.lang a[aria-current]{color:var(--ink);text-decoration:underline;text-underline-offset:4px}
.burger{display:none;width:48px;height:48px;border:1px solid var(--line);border-radius:999px;background:#FFFFFF;align-items:center;justify-content:center;cursor:pointer}
.burger span{display:block;width:18px;height:2px;background:var(--ink);position:relative}
.burger span::before,.burger span::after{content:"";position:absolute;left:0;width:18px;height:2px;background:var(--ink);transition:transform .2s}
.burger span::before{top:-6px}.burger span::after{top:6px}
.nav-open .burger span{background:transparent}
.nav-open .burger span::before{transform:translateY(6px) rotate(45deg)}
.nav-open .burger span::after{transform:translateY(-6px) rotate(-45deg)}
.drawer{display:none}
@media (max-width:1080px){
  .gnav,.hd-cta .btn-line,.hd-cta .lang{display:none}
  .burger{display:inline-flex}
  .hd-cta .btn{min-height:44px;padding:0 16px;font-size:12px}
  .drawer{display:block;position:fixed;inset:72px 0 0 0;background:#FFFFFF;overflow-y:auto;padding:12px var(--gut) 40px;transform:translateX(100%);visibility:hidden;transition:transform .25s,visibility .25s;z-index:49}
  .nav-open .drawer{transform:none;visibility:visible}
  .nav-open{overflow:hidden}
  .drawer ul{list-style:none;margin:0;padding:0}
  .drawer>ul>li{border-bottom:1px solid var(--line)}
  .drawer>ul>li>a{display:flex;justify-content:space-between;align-items:center;min-height:60px;font-family:var(--f-lat);font-size:17px;font-weight:800;letter-spacing:.02em}
  .drawer>ul>li>a small{font-family:var(--f-ja);font-size:12px;font-weight:700;color:var(--muted)}
  .drawer .kids{padding:0 0 14px 14px;border-left:2px solid var(--red);margin:0 0 14px 4px}
  .drawer .kids a{display:flex;align-items:center;min-height:44px;font-size:14px;font-weight:700}
  .drawer .d-cta{display:grid;gap:10px;margin-top:24px}
  .drawer .lang{margin-top:20px;display:block;font-size:13px}
}
@media (max-width:460px){.hd-cta .btn{display:none}}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:50px;padding:0 26px;border-radius:999px;border:0;background:var(--grad);color:#FFFFFF;font:inherit;font-size:13px;font-weight:700;line-height:1.2;cursor:pointer;text-align:center}
.btn:hover{color:#FFFFFF;filter:brightness(1.06)}
.btn-line{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:50px;padding:0 24px;border-radius:999px;border:1.5px solid var(--ink);color:var(--ink);font-size:13px;font-weight:700;line-height:1.2;text-align:center}
.btn-dark{background:var(--ink)}
.btn-white{background:#FFFFFF;color:var(--ink)}
.btn-white:hover{color:var(--red)}
.btn-sm{min-height:42px;padding:0 18px;font-size:13px}
.arrow{width:16px;height:16px;flex:none}
.more{display:inline-flex;align-items:center;gap:8px;min-height:44px;font-size:13px;font-weight:700;border-bottom:1.5px solid currentColor}

/* ---------- section heads ---------- */
.sec{padding-block:clamp(88px,10vw,160px) 0}
.sec.last{padding-bottom:clamp(88px,10vw,160px)}
.row{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);column-gap:48px;row-gap:28px}
@media (max-width:860px){.row{grid-template-columns:minmax(0,1fr)}}
.eyebrow{display:flex;flex-direction:column;gap:8px}
.eyebrow .en{font-family:var(--f-lat);font-stretch:118%;font-weight:800;font-size:clamp(29px,3.61vw,53px);line-height:1;letter-spacing:-.03em}
.eyebrow .ja{font-size:14px;font-weight:700;color:var(--red)}
.head-split{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:36px}
.statement{margin:0;font-family:var(--f-min);font-weight:700;font-size:clamp(24px,2.92vw,43px);line-height:1.45;text-wrap:balance}
.lead{margin:0;max-width:40em;color:var(--ink-2);line-height:2}
.stack{display:flex;flex-direction:column;gap:24px;min-width:0}

/* ---------- top hero ---------- */
.kv{padding:clamp(12px,2vw,24px) var(--gut) 0}
.kv-in{position:relative;max-width:var(--max);margin:0 auto;min-height:clamp(540px,62vw,780px);border-radius:8px;background:var(--grad);color:#FFFFFF;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end}
.kv-in svg.deco{position:absolute;inset:0;width:100%;height:100%}
.kv-copy{position:relative;padding:clamp(28px,5vw,72px);display:flex;flex-direction:column;gap:20px;max-width:1000px}
.kv-def{margin:0;font-family:var(--f-lat);font-size:13px;font-weight:700;letter-spacing:.16em;color:#EBF7F5}
.kv-def .ser{font-size:1.35em;letter-spacing:0}
.kv h1{margin:0;font-family:var(--f-lat);font-stretch:112%;font-weight:800;font-size:clamp(40px,6.54vw,103px);line-height:.98;letter-spacing:-.035em}
.kv h1 .ser{letter-spacing:-.015em;font-stretch:100%}
.kv-en{margin:0;max-width:34em;font-family:var(--f-lat);font-size:clamp(15px,1.2vw,17px);font-weight:500;line-height:1.55}
.kv-ja{margin:0;max-width:36em;font-size:clamp(12px,0.95vw,13px);line-height:1.95;color:#F5FBFA}
.kv-tag{position:absolute;top:22px;right:24px;font-family:var(--f-lat);font-size:11px;font-weight:700;letter-spacing:.16em;color:#EBF7F5}

/* ---------- sub-page hero ---------- */
.ph{padding-block:clamp(36px,5vw,64px) clamp(40px,5vw,72px);border-bottom:1px solid var(--line);position:relative}
.ph::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:3px;background:var(--grad)}
.crumb{display:flex;flex-wrap:wrap;gap:6px 10px;margin:0 0 clamp(28px,4vw,48px);padding:0;list-style:none;font-size:12px;color:var(--muted)}
.crumb li{display:flex;align-items:center;gap:10px}
.crumb li+li::before{content:"/";color:#BDB6B7}
.crumb a{color:var(--muted)}.crumb a:hover{color:var(--red)}
.ph h1{margin:0;display:flex;flex-direction:column;gap:12px}
.ph h1 .en{font-family:var(--f-lat);font-stretch:118%;font-weight:800;font-size:clamp(38px,6.02vw,93px);line-height:.95;letter-spacing:-.04em}
.ph h1 .ja{font-size:15px;font-weight:700;color:var(--red)}
.ph .lead{margin-top:28px}

/* ---------- lists & cards ---------- */
.news{border-top:1.5px solid var(--ink)}
.news a{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 28px;padding:22px 0;border-bottom:1px solid var(--line)}
.news time{font-family:var(--f-lat);font-size:13px;font-variant-numeric:tabular-nums;color:var(--muted)}
.tag{padding:2px 10px;border:1px solid var(--red);border-radius:999px;font-size:12px;font-weight:700;color:var(--red);line-height:1.6}
.news .t{flex:1 1 320px;font-weight:500;line-height:1.7}
.news a:hover .t{color:var(--red)}
.svc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));border-top:1.5px solid var(--ink)}
.svc-grid a{display:flex;flex-direction:column;gap:8px;padding:28px 28px 28px 0;border-bottom:1px solid var(--line)}
.svc-grid .k{font-family:var(--f-lat);font-size:12px;font-weight:700;letter-spacing:.14em;color:var(--red)}
.svc-grid b{font-size:18px}
.svc-grid span.d{font-size:13px;line-height:1.8;color:var(--ink-2)}
.svc-grid .go{margin-top:6px;font-family:var(--f-lat);font-size:13px;font-weight:700}
.svc-rows{border-top:1.5px solid var(--ink)}
.svc-rows a{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1.4fr) auto;gap:10px 40px;align-items:baseline;padding:30px 0;border-bottom:1px solid var(--line)}
.svc-rows .k{display:block;font-family:var(--f-lat);font-size:12px;font-weight:700;letter-spacing:.14em;color:var(--red);margin-bottom:6px}
.svc-rows b{font-size:clamp(19px,2.06vw,28px);line-height:1.35}
.svc-rows .d{font-size:14px;line-height:1.85;color:var(--ink-2)}
.svc-rows .go{font-family:var(--f-lat);font-size:13px;font-weight:700;white-space:nowrap}
@media (max-width:860px){.svc-rows a{grid-template-columns:minmax(0,1fr)}}
.band{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:20px 40px;padding:clamp(28px,4vw,48px);border-radius:8px;background:var(--grad);color:#FFFFFF}
.band:hover{color:#FFFFFF}
.band .k{font-family:var(--f-lat);font-size:12px;font-weight:700;letter-spacing:.16em;color:#EBF7F5}
.band .h{font-family:var(--f-lat);font-stretch:112%;font-weight:800;font-size:clamp(22px,2.58vw,36px);line-height:1.05;letter-spacing:-.02em}
.band p{margin:0;font-size:14px;line-height:1.85;color:#F5FBFA}
.band .txt{flex:1 1 420px;min-width:0;display:flex;flex-direction:column;gap:10px}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));border-top:1.5px solid var(--ink);border-bottom:1px solid var(--line)}
.stats div{display:flex;flex-direction:column;gap:8px;padding:30px 24px 30px 0}
.stats .l{font-size:13px;font-weight:700;color:var(--ink-2)}
.stats .v{font-family:var(--f-lat);font-stretch:112%;font-weight:800;font-size:clamp(38px,3.96vw,58px);line-height:1;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.stats .v small{font-family:var(--f-ja);font-size:.32em;font-weight:700;letter-spacing:0}
.logos{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,160px),1fr));gap:12px}
.logos div{display:flex;align-items:center;justify-content:center;min-height:88px;background:var(--soft);border-radius:4px;font-family:var(--f-lat);font-size:12px;font-weight:700;letter-spacing:.12em;color:#8A8682}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:32px 24px}
.card{display:flex;flex-direction:column;gap:12px}
.card .ph-img{aspect-ratio:16/10;border-radius:6px;background:var(--soft);position:relative;overflow:hidden}
.card .ph-img.g{background:var(--grad)}
.card .ph-img.b{background:var(--blush)}
.card .ph-img span{position:absolute;left:12px;bottom:10px;font-family:var(--f-lat);font-size:11px;font-weight:700;letter-spacing:.14em;color:#8A8682}
.card .ph-img.g span{color:#EBF7F5}
.card .meta{font-family:var(--f-lat);font-size:13px;color:var(--muted)}
.card b{font-size:17px;line-height:1.6}
.card .tags{display:flex;flex-wrap:wrap;gap:6px}
.exec{display:flex;flex-wrap:wrap;gap:32px 40px;align-items:flex-start}
.portrait{flex:0 1 300px;aspect-ratio:4/5;background:var(--soft);border-radius:6px;display:flex;align-items:flex-end;padding:14px;font-family:var(--f-lat);font-size:11px;font-weight:700;letter-spacing:.14em;color:#8A8682}
.exec .bio{flex:1 1 340px;min-width:0;display:flex;flex-direction:column;gap:12px}
.exec .role{font-size:13px;font-weight:700;color:var(--ink-2)}
.exec .name{font-family:var(--f-min);font-size:29px;font-weight:700;line-height:1.3}
.exec .en-name{font-family:var(--f-ser);font-style:italic;font-size:18px;color:var(--muted)}
.exec p{margin:0;color:var(--ink-2);line-height:2}
.tbl{margin:0;display:grid;grid-template-columns:minmax(0,9em) minmax(0,1fr);border-top:1.5px solid var(--ink);font-size:14px;line-height:1.8}
.tbl dt,.tbl dd{margin:0;padding:18px 0;border-bottom:1px solid var(--line)}
.tbl dt{font-weight:700}
@media (max-width:560px){.tbl{grid-template-columns:minmax(0,1fr)}.tbl dt{padding-bottom:0;border-bottom:0}.tbl dd{padding-top:4px}}
.principles{display:flex;flex-direction:column;gap:clamp(44px,5vw,80px)}
.principles h3{margin:0 0 12px;font-family:var(--f-min);font-weight:700;font-size:clamp(22px,2.75vw,40px);line-height:1.4}
.principles p{margin:0;max-width:34em;line-height:2}
.dark{background:var(--grad);color:#FFFFFF}
.dark .eyebrow .ja{color:#E6F5F2}
.dark p{color:#EFF8F6}
.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));border-top:1.5px solid var(--ink)}
.steps li{display:flex;flex-direction:column;gap:10px;padding:28px 28px 28px 0;border-bottom:1px solid var(--line)}
.steps .n{font-family:var(--f-lat);font-stretch:125%;font-weight:800;font-size:38px;line-height:1}
.steps b{font-size:18px}
.steps p{margin:0;font-size:14px;line-height:1.8;color:var(--ink-2)}
.checks{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:12px}
.checks li{display:flex;gap:12px;align-items:flex-start;padding:18px 20px;background:var(--soft);border-radius:6px;font-weight:500;line-height:1.7}
.checks svg{flex:none;margin-top:4px;color:var(--red)}
.scope{display:flex;flex-wrap:wrap;gap:10px}
.scope span{padding:8px 16px;border:1px solid var(--line);border-radius:999px;font-size:13px;font-weight:500}
.cta2{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:16px}
.cta2 a{display:flex;flex-direction:column;gap:12px;padding:clamp(28px,4vw,48px);border-radius:8px}
.cta2 .a1{background:var(--grad);color:#FFFFFF}
.cta2 .a1:hover{color:#FFFFFF}
.cta2 .a2{border:1.5px solid var(--ink)}
.cta2 .k{font-family:var(--f-lat);font-size:12px;font-weight:700;letter-spacing:.16em}
.cta2 .a1 .k{color:#EBF7F5}.cta2 .a2 .k{color:var(--red)}
.cta2 .h{font-size:clamp(19px,2.06vw,28px);font-weight:900;line-height:1.4}
.cta2 p{margin:0;font-size:13px;line-height:1.8}
.cta2 .a1 p{color:#F5FBFA}.cta2 .a2 p{color:var(--ink-2)}
.cta2 .go{margin-top:8px;font-family:var(--f-lat);font-weight:700}
.recruit{border-radius:8px;background:var(--soft);padding:clamp(32px,6vw,88px);display:flex;flex-wrap:wrap;gap:32px 56px;align-items:flex-end}
.recruit .l{flex:1 1 420px;min-width:0;display:flex;flex-direction:column;gap:14px}
.roles{flex:1 1 320px;min-width:0;border-top:1.5px solid var(--ink)}
.roles a{display:flex;justify-content:space-between;align-items:center;min-height:62px;border-bottom:1px solid #DCD5D6;font-size:16px;font-weight:700}
.roles a span{color:var(--red)}
.note{font-size:13px;color:var(--muted);line-height:1.8}
.prose{max-width:46em}
.prose h2{font-size:18px;margin:40px 0 10px}
.prose p{margin:0 0 14px;color:var(--ink-2)}

/* ---------- form ---------- */
.form{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:26px 24px}
.f{display:flex;flex-direction:column;gap:8px;min-width:0}
.f.full,.form .full{grid-column:1/-1}
.f label{font-size:13px;font-weight:700}
.f label em{font-style:normal;color:var(--red);margin-left:4px}
.f input,.f select,.f textarea{width:100%;min-height:50px;padding:10px 2px;border:0;border-bottom:1.5px solid var(--ink);border-radius:0;background:transparent;font:inherit;font-size:16px;color:var(--ink)}
.f textarea{resize:vertical;min-height:140px}
.f input:focus,.f select:focus,.f textarea:focus{outline:none;border-bottom-color:var(--red);box-shadow:0 1.5px 0 var(--red)}
.form .foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px}

/* ---------- footer ---------- */
.ft{border-top:1px solid var(--line);margin-top:clamp(88px,10vw,160px)}
.ft-top{display:flex;flex-wrap:wrap;justify-content:space-between;gap:40px 64px;padding-block:clamp(48px,6vw,80px) 48px}
.ft-brand{flex:1 1 260px;display:flex;flex-direction:column;gap:10px}
.ft-brand img{height:44px;width:auto;align-self:flex-start}
.ft-brand b{font-size:13px}
.ft-brand span{font-size:13px;line-height:1.8;color:var(--ink-2)}
.ft-nav{flex:2 1 560px;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr));gap:28px;font-size:13px}
.ft-nav ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.ft-nav .h{font-weight:700}
.ft-bot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px 24px;padding-block:22px 32px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}
.ft-bot nav{display:flex;flex-wrap:wrap;gap:20px}
.ft-bot a{color:var(--muted)}

/* =====================================================================
   RICH LAYER — the one bold idea: the logo's diagonal slash.
   KV headline is sliced on a diagonal (solid above / outlined + shifted below),
   the slash follows the pointer. Everything else stays quiet around it.
   ===================================================================== */
:root{--ink2:#161214;--deep:#24594F}

/* ---------- KV ---------- */
.kv2{position:relative;margin:0;width:100%;height:calc(100svh - 72px);min-height:640px;max-height:1080px;border-radius:0;overflow:hidden;color:#FFFFFF;isolation:isolate;background:linear-gradient(135deg,#4EAB98,#337B6C)}
.kv2 canvas{position:absolute;inset:0;width:100%;height:100%;z-index:0}
.kv2 .kv-media{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1}
.kv2 .kv-media.sp{display:none}
.kv2 .kv-shade{position:absolute;inset:0;z-index:2;background:linear-gradient(180deg,rgba(19,47,41,.0) 40%,rgba(19,47,41,.45) 100%);pointer-events:none}
.kv2 .kv-hair{position:absolute;inset:0;z-index:2;pointer-events:none;background:repeating-linear-gradient(115deg,rgba(255,255,255,.07) 0 1px,transparent 1px 26px);mask-image:linear-gradient(90deg,transparent,#000 40%,#000 70%,transparent)}
.kv2 .kv-grain{position:absolute;inset:-50%;z-index:3;pointer-events:none;opacity:.16;mix-blend-mode:overlay;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>")}
.kv2 .kv-ui{position:relative;z-index:4;height:100%;max-width:var(--max);margin:0 auto;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:1fr auto;padding:clamp(24px,3vw,48px) var(--gut)}
.kv-top{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-family:var(--f-lat);font-size:13px;font-weight:600;letter-spacing:.02em;color:#EBF7F5}
.kv-top .ser{font-size:1.3em;color:#FFFFFF}
.kv-top .coord{font-variant-numeric:tabular-nums;text-align:right}

.slice{position:relative;align-self:center;font-family:var(--f-lat);font-stretch:118%;font-weight:900;font-size:clamp(53px,10.84vw,200px);line-height:.9;letter-spacing:-.045em;margin:0;--yl:60%;--yr:24%;--dx:.05em;--dy:.012em}
.slice .ln{display:block;white-space:nowrap}
.slice .ln2{font-family:var(--f-ser);font-style:italic;font-weight:400;font-stretch:100%;letter-spacing:-.02em;padding-left:.9em}
.slice .a{display:block;clip-path:polygon(-5% -10%,105% -10%,105% var(--yr),-5% var(--yl))}
.slice .b{position:absolute;inset:0;display:block;color:transparent;-webkit-text-stroke:max(1px,.012em) #FFFFFF;clip-path:polygon(-5% var(--yl),105% var(--yr),105% 110%,-5% 110%);transform:translate(var(--dx),var(--dy))}
.slice .b .ln2{-webkit-text-stroke:max(1px,.01em) #FFFFFF}
.slice svg.cut{position:absolute;left:-4%;top:0;width:108%;height:100%;overflow:visible;pointer-events:none}
.slice svg.cut line{stroke:#FFFFFF;stroke-width:2;vector-effect:non-scaling-stroke}
.kv-intro .slice{--dx:0em;--dy:0em}
.kv-intro .slice svg.cut line{stroke-dasharray:1 0}

.kv-bot{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:24px 40px}
.kv-say{max-width:34em;display:flex;flex-direction:column;gap:12px}
.kv-say .en{margin:0;font-family:var(--f-lat);font-size:clamp(15px,1.16vw,17px);font-weight:500;line-height:1.5}
.kv-say .ja{margin:0;font-size:13px;line-height:1.8;color:#EBF7F5;white-space:nowrap}
.kv-say .btns{display:flex;flex-wrap:wrap;gap:10px;margin-top:6px}
.reel{display:flex;flex-direction:column;gap:8px;width:clamp(220px,22vw,340px);color:#FFFFFF}
.reel:hover{color:#FFFFFF}
.reel .frame{position:relative;aspect-ratio:16/9;border-radius:8px;overflow:hidden;background:#14302A;box-shadow:0 20px 40px -20px rgba(16,39,35,.7)}
.reel .frame::before{content:"";position:absolute;inset:0;background:radial-gradient(120% 90% at 20% 10%,#6BC1B0 0,transparent 55%),radial-gradient(90% 90% at 90% 100%,#ACDDD3 0,transparent 50%),linear-gradient(135deg,#337B6C,#183B34)}
.reel .frame img,.reel .frame video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.reel .play{position:absolute;left:50%;top:50%;width:56px;height:56px;margin:-28px 0 0 -28px;border-radius:50%;background:#FFFFFF;color:var(--red);display:flex;align-items:center;justify-content:center;transition:transform .2s}
.reel:hover .play{transform:scale(1.08)}
.reel .cap{display:flex;justify-content:space-between;font-family:var(--f-lat);font-size:12px;font-weight:600;color:#EBF7F5}
.scroll-cue{position:absolute;right:clamp(20px,3vw,40px);top:50%;transform:translateY(-50%) rotate(90deg);transform-origin:right center;font-family:var(--f-lat);font-size:11px;font-weight:600;letter-spacing:.2em;color:#EBF7F5;z-index:4}
@media (max-width:860px){
  .kv2{height:auto;min-height:0;max-height:none}
  .kv2 .kv-ui{height:auto;grid-template-rows:auto auto;row-gap:clamp(36px,10vw,56px);padding:clamp(56px,16vw,88px) 20px 22px}
  .kv2 .kv-media.pc{display:none}.kv2 .kv-media.sp{display:block}
  .slice{font-size:clamp(38px,11.52vw,95px);align-self:start;margin-bottom:0}
  .slice .ln2{padding-left:.15em}
  .kv-top .coord{display:none}
  .reel{width:100%;flex-direction:row;align-items:center;gap:12px}
  .reel .frame{width:120px;flex:none}
  .reel .play{width:36px;height:36px;margin:-18px 0 0 -18px}
  .reel .cap{flex-direction:column;gap:2px}
  .scroll-cue{display:none}
}

/* ---------- marquee ---------- */
.mq{overflow:hidden;border-bottom:1px solid var(--line);padding-block:clamp(18px,2.4vw,30px);margin-top:clamp(28px,3vw,44px)}
.mq-track{display:inline-flex;align-items:center;gap:clamp(24px,3vw,48px);white-space:nowrap;animation:mq 46s linear infinite;font-family:var(--f-lat);font-stretch:118%;font-weight:800;font-size:clamp(26px,3.78vw,62px);letter-spacing:-.03em;line-height:1}
.mq-track .o{color:transparent;-webkit-text-stroke:1.2px var(--ink)}
.mq-track .s{font-family:var(--f-ser);font-style:italic;font-weight:400;font-stretch:100%;letter-spacing:-.01em}
.mq-track i{display:inline-block;width:.9em;height:2px;background:var(--red);transform:rotate(-28deg)}
@keyframes mq{to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.mq-track{animation:none}}

/* ---------- intro statement ---------- */
.intro{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:28px 48px;align-items:start}
.intro .big{margin:0;font-family:var(--f-min);font-weight:700;font-size:clamp(26px,3.61vw,57px);line-height:1.42;letter-spacing:.01em;text-wrap:balance}
.intro .big .mute{color:#C9C1C3}
.intro .side{display:flex;flex-direction:column;gap:20px;position:sticky;top:110px}
.est{font-family:var(--f-lat);font-stretch:125%;font-weight:900;font-size:clamp(55px,6.88vw,114px);line-height:.85;letter-spacing:-.05em}
.est small{display:block;font-family:var(--f-ja);font-size:13px;font-weight:700;letter-spacing:0;color:var(--muted);margin-top:12px}
@media (max-width:860px){.intro{grid-template-columns:minmax(0,1fr)}.intro .side{position:static}}

/* ---------- big service index with peek ---------- */
.svx{border-top:1.5px solid var(--ink)}
.svx a{position:relative;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr) 48px;gap:8px 40px;align-items:center;padding:clamp(22px,2.6vw,36px) 0;border-bottom:1px solid var(--line);}
.svx .en{font-family:var(--f-lat);font-stretch:118%;font-weight:800;font-size:clamp(26px,3.44vw,55px);line-height:1;letter-spacing:-.035em;transition:color .2s}
.svx .jp{display:flex;flex-direction:column;gap:4px}
.svx .jp b{font-size:16px}
.svx .jp span{font-size:13px;line-height:1.75;color:var(--ink-2)}
.svx .ic{width:48px;height:48px;border-radius:50%;border:1.5px solid var(--ink);display:flex;align-items:center;justify-content:center;transition:background .2s,color .2s,border-color .2s}
.svx a:hover .en{color:var(--red)}
.svx a:hover .ic{background:var(--red);border-color:var(--red);color:#FFFFFF}
.svx a.gtm .en{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
@media (max-width:860px){.svx a{grid-template-columns:minmax(0,1fr) 44px}.svx .jp{grid-column:1/2}.svx .ic{grid-row:1/3;grid-column:2;width:44px;height:44px}.svx a:hover{padding-left:0}}
.peek{position:fixed;left:0;top:0;width:300px;aspect-ratio:4/3;border-radius:10px;overflow:hidden;pointer-events:none;z-index:60;opacity:0;transform:translate(-50%,-50%) scale(.85) rotate(-4deg);transition:opacity .2s,transform .25s;box-shadow:0 30px 60px -30px rgba(19,47,41,.6)}
.peek.on{opacity:1;transform:translate(-50%,-50%) scale(1) rotate(-4deg)}
.peek span{position:absolute;left:14px;bottom:12px;font-family:var(--f-lat);font-weight:800;font-size:19px;letter-spacing:-.02em;color:#FFFFFF}
@media (hover:none),(pointer:coarse){.peek{display:none}}

/* ---------- generative placeholder art (until real images arrive) ---------- */
.art{position:relative;overflow:hidden;background:var(--soft)}
.art::after{content:"";position:absolute;inset:0;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");opacity:.12;mix-blend-mode:overlay;pointer-events:none}
.art-1{background:radial-gradient(70% 90% at 75% 40%,#FFFFFF 0 24%,transparent 24.4%),radial-gradient(90% 110% at 75% 40%,rgba(255,255,255,.18) 0 38%,transparent 38.4%),linear-gradient(135deg,#4EAB98,#296559)}
.art-2{background:linear-gradient(155deg,transparent 0 49.6%,#3D9180 49.8% 50.4%,transparent 50.6%),radial-gradient(40% 50% at 30% 40%,#3D9180 0 60%,transparent 61%),#EEF7F5}
.art-3{background:radial-gradient(60% 80% at 20% 100%,#6BC1B0 0,transparent 60%),repeating-linear-gradient(115deg,rgba(255,255,255,.08) 0 1px,transparent 1px 18px),#222928}
.art-4{background:conic-gradient(from 210deg at 65% 55%,#296559,#3D9180,#6BC1B0,#DEF1ED,#296559)}
.art-5{background:linear-gradient(115deg,#FFFFFF 0 50%,transparent 50%),radial-gradient(80% 80% at 80% 80%,#3D9180,#296559)}
.art-6{background:radial-gradient(35% 45% at 50% 50%,#FFFFFF 0 98%,transparent 100%),linear-gradient(90deg,#6BC1B0,#3D9180 50%,#24594F)}
.art-7{background:repeating-radial-gradient(circle at 30% 70%,#3D9180 0 2px,transparent 2px 22px),#F7FCFB}
.art .lbl{position:absolute;left:14px;bottom:12px;z-index:1;font-family:var(--f-lat);font-size:11px;font-weight:600;letter-spacing:.06em;color:rgba(255,255,255,.85)}
.art-2 .lbl,.art-7 .lbl,.art-5 .lbl{color:rgba(36,89,79,.7)}

/* ---------- works mosaic ---------- */
.mosaic{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(40px,5vw,72px) 24px}
.mosaic a{display:flex;flex-direction:column;gap:14px}
.mosaic .art{border-radius:10px;transition:transform .5s cubic-bezier(.2,.7,.2,1)}
.mosaic a:hover .art{transform:scale(.985)}
.mosaic .m1{grid-column:1/8}.mosaic .m1 .art{aspect-ratio:16/10}
.mosaic .m2{grid-column:9/13;margin-top:clamp(0px,9vw,150px)}.mosaic .m2 .art{aspect-ratio:4/5}
.mosaic .m3{grid-column:2/6}.mosaic .m3 .art{aspect-ratio:1/1}
.mosaic .m4{grid-column:7/13;margin-top:clamp(0px,6vw,110px)}.mosaic .m4 .art{aspect-ratio:5/4}
.mosaic .info{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:6px 16px}
.mosaic .info b{font-size:17px}
.mosaic .info span{font-family:var(--f-lat);font-size:13px;color:var(--muted)}
@media (max-width:860px){.mosaic{grid-template-columns:minmax(0,1fr)}.mosaic>a{grid-column:1/-1!important;margin-top:0!important}}

/* ---------- logo marquee ---------- */
.logo-mq{overflow:hidden;mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent)}
.logo-mq .t{display:inline-flex;gap:12px;animation:mq 40s linear infinite}
.logo-mq .t div{flex:none;width:200px;height:88px;display:flex;align-items:center;justify-content:center;background:var(--soft);border-radius:6px;font-family:var(--f-lat);font-size:12px;font-weight:600;color:#8A8682}
@media (prefers-reduced-motion:reduce){.logo-mq .t{animation:none;flex-wrap:wrap}}

/* ---------- approach band ---------- */
.band2{position:relative;margin:0 var(--gut);border-radius:12px;overflow:hidden;color:#FFFFFF;background:linear-gradient(135deg,#4EAB98,#3D9180 45%,#24594F)}
.band2::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(115deg,rgba(255,255,255,.06) 0 1px,transparent 1px 26px)}
.band2 .in{position:relative;padding:clamp(56px,8vw,128px) clamp(20px,5vw,80px);display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:40px 48px}
.band2 .eyebrow .ja{color:#E6F5F2}
.pgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:48px 40px}
.pgrid h3{margin:0 0 10px;font-family:var(--f-min);font-weight:700;font-size:clamp(21px,2.24vw,33px);line-height:1.4}
.pgrid p{margin:0;font-size:14px;line-height:1.95;color:#EFF8F6}
@media (max-width:860px){.band2 .in,.pgrid{grid-template-columns:minmax(0,1fr)}}

/* ---------- final CTA ---------- */
.finale{padding-block:clamp(110px,13vw,220px) 0;text-align:left}
.finale h2{margin:0;font-family:var(--f-lat);font-stretch:118%;font-weight:900;font-size:clamp(55px,11.18vw,203px);line-height:.86;letter-spacing:-.05em}
.finale h2 .ser{font-stretch:100%;letter-spacing:-.02em}
.finale .row2{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:24px;margin-top:clamp(28px,4vw,56px)}
.finale p{margin:0;max-width:30em;color:var(--ink-2);line-height:1.9}
.finale .btns{display:flex;flex-wrap:wrap;gap:12px}
.btn-xl{min-height:64px;padding:0 36px;font-size:15px}

/* ---------- sub-page hero, richer ---------- */
.ph{overflow:hidden}
.ph::before{content:"";position:absolute;right:-8vw;top:-10vw;width:46vw;height:46vw;max-width:680px;max-height:680px;border-radius:50%;background:radial-gradient(circle at 40% 40%,rgba(107,193,176,.22),rgba(61,145,128,.08) 45%,transparent 70%);pointer-events:none}
.ph .slashline{position:absolute;right:var(--gut);bottom:clamp(40px,5vw,72px);width:min(38vw,520px);height:2px;background:var(--red);transform:rotate(-24deg);transform-origin:right center;opacity:.9}
.ph .wrap{position:relative}
@media (max-width:860px){.ph .slashline{display:none}}
.cards .card .art{aspect-ratio:16/10;border-radius:8px}

/* ---------- real case imagery ---------- */
.shot{border-radius:10px;overflow:hidden;background:var(--soft);aspect-ratio:16/10}
.shot img{width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.2,.7,.2,1)}
a:hover .shot img{transform:scale(1.025)}
.card .shot{border-radius:8px}
.case-hero{border-radius:12px;overflow:hidden}
.case-hero img{width:100%}
.case-points{gap:clamp(36px,4vw,56px)}
.case-points h3{font-size:clamp(19px,2.06vw,29px)}
.case-points p{color:var(--ink-2)}
.gallery{display:flex;gap:20px;overflow-x:auto;padding:4px var(--gut) 20px;scroll-snap-type:x mandatory;scrollbar-width:thin}
.gallery figure{flex:none;margin:0;width:clamp(200px,22vw,300px);scroll-snap-align:start;display:flex;flex-direction:column;gap:10px}
.gallery img{border-radius:22px;border:8px solid #18161A;width:100%;height:auto}
.gallery figcaption{font-size:13px;font-weight:700;color:var(--ink-2)}
.phone-scroll{justify-self:start;width:min(100%,340px);padding:10px;border-radius:40px;background:#18161A;box-shadow:0 30px 60px -30px rgba(19,47,41,.45)}
.phone-scroll .scr{height:min(72vh,680px);overflow-y:auto;border-radius:30px;background:#FFFFFF;scrollbar-width:none}
.phone-scroll .scr::-webkit-scrollbar{display:none}
.phone-scroll img{width:100%;height:auto}
.results{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(0,1fr);gap:16px}
.results .r{display:flex;flex-direction:column;gap:10px;padding:clamp(24px,3vw,40px);border-radius:12px;background:var(--soft)}
.results .r.main{background:var(--grad);color:#FFFFFF}
.results .l{font-size:13px;font-weight:700}
.results .v{font-family:var(--f-lat);font-stretch:118%;font-weight:900;font-size:clamp(55px,6.88vw,114px);line-height:.9;letter-spacing:-.045em;font-variant-numeric:tabular-nums}
.results .r:not(.main) .v{font-size:clamp(41px,4.3vw,72px)}
.results .v small{font-family:var(--f-ja);font-size:.3em;font-weight:700;letter-spacing:0;margin-left:.1em}
.results .v.txt{font-family:var(--f-ja);font-stretch:100%;font-size:clamp(21px,2.06vw,29px)!important;letter-spacing:0;line-height:1.3}
.results .s{font-size:13px;line-height:1.7;opacity:.85}
@media (max-width:860px){.results{grid-template-columns:minmax(0,1fr)}}
.gallery figure.wide{width:clamp(280px,40vw,560px)}
.gallery figure.wide img{border-radius:10px;border:1px solid var(--line)}
.pages2{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:24px}
.browser-scroll{display:flex;flex-direction:column;border-radius:12px;overflow:hidden;border:1px solid var(--line);background:#FFFFFF;box-shadow:0 30px 60px -36px rgba(19,47,41,.35)}
.browser-scroll .bar{display:flex;gap:6px;padding:12px 14px;border-bottom:1px solid var(--line)}
.browser-scroll .bar i{width:10px;height:10px;border-radius:50%;background:var(--line);display:block}
.browser-scroll .scr{height:min(70vh,640px);overflow-y:auto}
.browser-scroll img{width:100%;height:auto}
.browser-scroll .cap{padding:12px 14px;border-top:1px solid var(--line);font-size:13px;font-weight:700}

/* ---------- news article ---------- */
.news-date{font-family:var(--f-lat);font-size:17px;font-weight:700;font-variant-numeric:tabular-nums}
.news-article{max-width:44em;display:flex;flex-direction:column;gap:18px}
.news-article h2{margin:0 0 8px;font-size:clamp(21px,2.24vw,31px);line-height:1.5;font-weight:900;text-wrap:balance}
.news-article p{margin:0;color:var(--ink-2);line-height:2.05}
.news-links{display:flex;flex-wrap:wrap;gap:12px;margin:16px 0 8px}
.news-article .more{align-self:flex-start}
.logos div.real,.logo-mq .t div.real{background:#FFFFFF;border:1px solid var(--line)}
.logos div.real img,.logo-mq .t div.real img{max-width:68%;max-height:60%;width:auto;height:auto;object-fit:contain}

/* ---------- CEO career ---------- */
.career{list-style:none;margin:0;padding:0;border-top:1.5px solid var(--ink)}
.career li{display:grid;grid-template-columns:7.5em minmax(0,1fr);gap:8px 32px;padding:26px 0;border-bottom:1px solid var(--line)}
.career .yr{font-family:var(--f-lat);font-size:15px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--red);padding-top:2px}
.career b{display:block;font-size:clamp(17px,1.38vw,19px);line-height:1.5;margin-bottom:6px}
.career p{margin:0;color:var(--ink-2);line-height:1.95;max-width:42em}
@media (max-width:560px){.career li{grid-template-columns:minmax(0,1fr)}}
.fields{display:flex;flex-direction:column;gap:12px}
.fields .fl{font-size:13px;font-weight:700;color:var(--ink-2)}
.portrait.has-img{padding:0;overflow:hidden;background:#C9CBCE}
.portrait.has-img img{width:100%;height:100%;object-fit:cover;object-position:50% 20%}

/* ===== SERVICE: 3 categories × tactics ===== */
.menu-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:0 40px;border-top:1.5px solid var(--ink);counter-reset:none}
.menu-list li{display:grid;grid-template-columns:44px minmax(0,1fr);gap:4px 12px;padding:22px 0;border-bottom:1px solid var(--line);scroll-margin-top:96px}
.menu-list .n{grid-row:1/3;font-family:var(--f-lat);font-stretch:118%;font-weight:800;font-size:20px;line-height:1.3;color:var(--red)}
.menu-list b{font-size:17px;line-height:1.5}
.menu-list p{margin:0;font-size:14px;line-height:1.85;color:var(--ink-2)}

/* ===== SERVICE DETAIL (GC order) ===== */
.sec.tight{padding-top:clamp(36px,4vw,56px)}
.jump{display:flex;flex-wrap:wrap;gap:10px}
.jump a{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 18px;border:1px solid var(--line);border-radius:999px;font-size:13px;font-weight:700}
.jump a:hover{border-color:var(--red);color:var(--red)}
.svc-cta .h-ja{font-size:clamp(19px,2.06vw,28px);font-weight:900;line-height:1.5}
.logos-cap{margin:0 0 20px;font-size:14px;font-weight:700;text-align:center;color:var(--ink-2)}
.solve{margin:32px 0 0;padding:22px 24px;border-left:3px solid var(--red);background:var(--soft);font-family:var(--f-min);font-weight:700;font-size:clamp(17px,1.6vw,22px);line-height:1.7}
.reasons{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:20px}
.reasons li{display:flex;flex-direction:column;gap:10px;padding:28px 26px 30px;border:1px solid var(--line);border-top:3px solid var(--red);border-radius:6px;background:#FFFFFF}
.reasons .no{font-family:var(--f-lat);font-size:11px;font-weight:700;letter-spacing:.16em;color:var(--muted)}
.reasons .v{font-family:var(--f-lat);font-stretch:112%;font-weight:800;font-size:clamp(34px,3.6vw,52px);line-height:1.1;letter-spacing:-.02em}
.reasons .v small{font-family:var(--f-ja);font-size:.42em;font-weight:900;letter-spacing:0;margin-left:2px}
.reasons b{font-size:17px;line-height:1.5}
.reasons p{margin:0;font-size:14px;line-height:1.85;color:var(--ink-2)}
.consult .bio .more{align-self:flex-start;margin-top:8px}
.faq{border-top:1.5px solid var(--ink)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;display:flex;align-items:center;gap:14px;min-height:64px;padding:14px 40px 14px 0;position:relative;cursor:pointer;font-weight:700;line-height:1.6}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:6px;top:50%;transform:translateY(-50%);font-family:var(--f-lat);font-size:22px;font-weight:500;color:var(--red)}
.faq details[open] summary::after{content:"−"}
.faq .q{flex:none;font-family:var(--f-lat);font-weight:800;font-size:18px;color:var(--red);width:20px}
.faq .a{display:flex;gap:14px;padding:0 0 20px}
.faq .a .q{color:var(--ink)}
.faq .a p{margin:0;font-size:14px;line-height:1.9;color:var(--ink-2)}

/* ===== CASE RING (orbit with depth) ===== */
.ring-stage{position:relative;display:flex;gap:24px;overflow-x:auto}
.ring-item{flex:0 0 min(560px,84%);display:block}
.ring-item .shot{border-radius:12px;overflow:hidden;box-shadow:0 40px 80px -40px rgba(17,17,17,.55)}
.ring-item .shot img{display:block;width:100%;height:auto}
.ring-item .meta,.ring-item b,.ring-item .tags{display:none}
.ring.on .ring-stage{display:block;overflow:visible;margin-inline:calc(var(--gut)*-1)}
.ring.on .ring-item{position:absolute;left:50%;top:calc(100% - var(--fh,0px));transform-origin:50% 50%;will-change:transform,opacity,filter}
.ring-foot{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:20px;margin-top:20px}
.ring-cap{display:flex;flex-direction:column;gap:10px;max-width:760px;min-height:96px}
.ring-cap .meta{font-size:13px;color:var(--muted)}
.ring-cap b{font-size:clamp(17px,1.6vw,22px);line-height:1.5}
.ring-cap .tags{display:flex;flex-wrap:wrap;gap:6px}
.ring:not(.on) .ring-cap{display:none}
.lp-ctl{display:flex;justify-content:flex-end;gap:10px}
.lp-ctl button{width:52px;height:52px;border-radius:50%;border:1.5px solid var(--ink);background:#FFFFFF;color:var(--ink);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s,color .2s,border-color .2s}
.lp-ctl button:hover{background:var(--red);border-color:var(--red);color:#FFFFFF}
.lp-prev svg{transform:scaleX(-1)}

/* ===== RING: orbit around the earth (same background as the site) ===== */
.ring.on{position:relative;isolation:isolate}
.ring.on .ring-stage{margin-inline:0}
.ring-globe{position:absolute;inset:0;width:100%;height:100%;z-index:50;pointer-events:none}
.ring-foot{position:relative;z-index:200}

/* ===== site-wide earth background ===== */
.earth-bg{position:fixed;inset:0;width:100vw;height:100vh;z-index:-1;pointer-events:none}
main,.ft{position:relative}

/* =====================================================================
   BROADCAST LAYER — tone & manner after a live business/sports show:
   one wide bold sans, sharp corners, chyron labels, dense logo board
   ===================================================================== */
/* sharp, squared geometry */
.btn,.btn-line,.btn-sm,.jump a,.tag,.scope span,.cta2 a,.band,.svc-cta,.checks li,.reasons li,.recruit,.logos div,.logos div.real,
.ring-item .shot,.card .shot,.card .art,.case-hero img,.solve,.faq,.sub,.portrait,.art{border-radius:2px!important}
.lp-ctl button,.burger{border-radius:2px}
/* one wide, heavy type voice for headings */
.eyebrow .en,.ph h1 .en{font-stretch:125%;font-weight:900;letter-spacing:-.02em;text-transform:uppercase}
.svx .en{font-stretch:125%;font-weight:900;letter-spacing:-.025em}
.gnav>ul>li>a,.lang,.btn,.btn-line{font-stretch:112%}
/* chyron labels: the Japanese line under each heading sits in a broadcast bar */
.eyebrow{gap:12px}
.eyebrow .ja,.ph h1 .ja{align-self:flex-start;display:inline-flex;align-items:center;gap:8px;padding:5px 12px 5px 0;background:var(--ink);color:#FFFFFF;font-size:12px;font-weight:700;letter-spacing:.08em;line-height:1.4}
.eyebrow .ja::before,.ph h1 .ja::before{content:"";align-self:stretch;width:6px;background:var(--red);margin:-5px 0}
.band2 .eyebrow .ja,.dark .eyebrow .ja{background:#FFFFFF;color:var(--ink)}
/* section heads ruled like a programme rundown */
.head-split{padding-top:14px;border-top:2px solid var(--ink)}
/* dense sponsor-board logo grid */
.logos{gap:0;border-top:1px solid var(--line);border-left:1px solid var(--line)}
.logos div,.logos div.real{border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#FFFFFF;min-height:96px}
/* tags read like on-air lower-third chips */
.tag{font-family:var(--f-lat);font-stretch:112%;letter-spacing:.04em}
/* buttons: squared, all-caps feel */
.btn,.btn-line{letter-spacing:.04em}

/* ===== SERVICE MAP: strategy → tactics → operation ===== */
.svc-map{--gap:28px}
.map-cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap)}
.map-col{position:relative;display:flex;flex-direction:column;gap:14px}
.map-head{position:relative;display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:14px 34px 14px 18px;color:#FFFFFF;
  clip-path:polygon(0 0,calc(100% - 18px) 0,100% 50%,calc(100% - 18px) 100%,0 100%,0 0)}
.map-col[data-ph="S"] .map-head{background:#4EAB98}
.map-col[data-ph="T"] .map-head{background:#3D9180}
.map-col[data-ph="O"] .map-head{background:#2F6F62}
.map-col:not(:first-child) .map-head{clip-path:polygon(0 0,calc(100% - 18px) 0,100% 50%,calc(100% - 18px) 100%,0 100%,18px 50%);padding-left:32px;margin-left:calc(var(--gap) * -1 - 4px)}
.map-head .en{font-family:var(--f-lat);font-stretch:125%;font-weight:900;font-size:clamp(15px,1.3vw,19px);letter-spacing:.02em}
.map-head .ja{font-size:12px;font-weight:700;opacity:.85}
.map-col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.map-item{width:100%;display:flex;align-items:center;gap:12px;min-height:54px;padding:10px 14px;border:1px solid var(--line);border-radius:2px;background:rgba(255,255,255,.92);font:inherit;font-size:14px;font-weight:700;color:var(--ink);text-align:left;cursor:pointer;transition:border-color .2s,background .2s,color .2s,transform .2s}
.map-item .n{flex:none;font-family:var(--f-lat);font-stretch:118%;font-weight:800;font-size:13px;color:var(--red)}
.map-item:hover{border-color:var(--red);transform:translateX(2px)}
.map-item[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:#FFFFFF}
.map-item[aria-pressed="true"] .n{color:#ACDDD3}
.map-item:focus-visible{outline:2px solid var(--red);outline-offset:2px}
.map-loop{position:relative;margin-top:18px;height:46px;border:1.5px dashed rgba(61,145,128,.45);border-top:0;border-radius:0 0 4px 4px;display:flex;align-items:flex-end;justify-content:center}
.map-loop::before{content:"";position:absolute;left:-6px;top:-8px;border:6px solid transparent;border-bottom:9px solid rgba(61,145,128,.7)}
.map-loop span{transform:translateY(50%);padding:0 14px;background:#FFFFFF;font-size:12px;font-weight:700;color:var(--red);letter-spacing:.04em}
.map-panels{margin-top:40px}
.map-panel{display:grid;grid-template-columns:auto minmax(0,1fr);gap:6px 20px;padding:26px 28px;border:1px solid var(--line);border-left:4px solid var(--red);background:rgba(255,255,255,.95)}
.map-panel+.map-panel{margin-top:10px}
.map-panel .pl{grid-column:1/-1;font-family:var(--f-lat);font-stretch:112%;font-size:11px;font-weight:800;letter-spacing:.14em;color:var(--muted)}
.map-panel .n{grid-row:2/4;font-family:var(--f-lat);font-stretch:125%;font-weight:900;font-size:clamp(34px,3.4vw,48px);line-height:1;color:var(--red)}
.map-panel b{font-size:clamp(17px,1.6vw,21px);line-height:1.5}
.map-panel p{margin:0;font-size:14px;line-height:1.9;color:var(--ink-2)}
.map-panel[hidden]{display:none}
@media (max-width:860px){
  .map-cols{grid-template-columns:minmax(0,1fr);gap:34px}
  .map-col:not(:first-child) .map-head{margin-left:0;padding-left:18px;clip-path:polygon(0 0,calc(100% - 18px) 0,100% 50%,calc(100% - 18px) 100%,0 100%,0 0)}
  .map-col:not(:last-child)::after{content:"";position:absolute;left:50%;bottom:-26px;transform:translateX(-50%);border:9px solid transparent;border-top:11px solid var(--red)}
  .map-loop{display:none}
}

/* ===== POLICY: fee for value, not for ad spend ===== */
.policy{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:40px 56px;align-items:start}
.pc-lead{display:flex;flex-direction:column;gap:18px}
.pc-concept{margin:0;font-family:var(--f-min);font-weight:700;font-size:clamp(24px,2.4vw,36px);line-height:1.45;letter-spacing:.01em}
.pc-sub{margin:0;align-self:flex-start;padding:6px 12px;background:var(--red);color:#FFFFFF;font-size:14px;font-weight:700;line-height:1.6}
.pc-body{margin:0;font-size:14px;line-height:2;color:var(--ink-2)}
.pc-list{list-style:none;margin:0;padding:0;border-top:2px solid var(--ink)}
.pc-list li{display:grid;grid-template-columns:56px minmax(0,1fr);gap:8px 16px;padding:24px 0;border-bottom:1px solid var(--line)}
.pc-list .n{grid-row:1/4;font-family:var(--f-lat);font-stretch:125%;font-weight:900;font-size:28px;line-height:1;color:var(--red)}
.pc-list b{font-size:clamp(17px,1.5vw,20px);line-height:1.5}
.pc-row{display:grid;grid-template-columns:132px minmax(0,1fr);gap:12px;align-items:baseline}
.pc-row .k{font-size:11px;font-weight:700;letter-spacing:.04em;padding:3px 8px;text-align:center;white-space:nowrap}
.pc-row p{margin:0;font-size:14px;line-height:1.85}
.pc-row.was .k{background:var(--soft);color:var(--muted)}
.pc-row.was p{color:var(--muted)}
.pc-row.now .k{background:var(--ink);color:#FFFFFF}
.pc-row.now p{font-weight:700;color:var(--ink)}
.pc-close{grid-column:1/-1;padding:28px 32px;border:1px solid var(--line);background:rgba(255,255,255,.92)}
.pc-close p{margin:0;font-size:15px;line-height:2}
.pc-close .note{margin-top:14px;font-size:12px;line-height:1.8;color:var(--muted)}
@media (max-width:860px){
  .policy{grid-template-columns:minmax(0,1fr)}
  .pc-lead{position:static}
  .pc-list li{grid-template-columns:minmax(0,1fr)}
  .pc-list .n{grid-row:auto}
  .pc-row{grid-template-columns:minmax(0,1fr);gap:6px}
  .pc-row .k{justify-self:start}
  .pc-close{padding:22px 20px}
}

/* ===== grouped issues ===== */
.issue-groups{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.ig{border:1px solid var(--line);border-top:3px solid var(--red);border-radius:2px;background:rgba(255,255,255,.92)}
.ig-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:18px 22px 14px;border-bottom:1px solid var(--line)}
.ig-head .en{font-family:var(--f-lat);font-stretch:125%;font-weight:900;font-size:12px;letter-spacing:.12em;color:var(--red)}
.ig-head b{font-size:17px;line-height:1.4;order:-1}
.ig ul{list-style:none;margin:0;padding:10px 22px 16px}
.ig li{display:flex;gap:10px;align-items:flex-start;padding:10px 0;font-size:14px;font-weight:500;line-height:1.6}
.ig li+li{border-top:1px dashed var(--line)}
.ig li svg{flex:none;margin-top:4px;color:var(--red)}
@media (max-width:860px){.issue-groups{grid-template-columns:minmax(0,1fr)}}

/* ===== PROCESS timeline with lead times ===== */
.steps.tl{grid-template-columns:repeat(4,minmax(0,1fr));border-top:0;position:relative;padding-top:18px}
.steps.tl::before{content:"";position:absolute;left:0;right:0;top:66px;height:2px;background:linear-gradient(90deg,#6BC1B0,#3D9180 50%,#296559)}
.steps.tl li{position:relative;padding:0 24px 28px 0;border-bottom:1px solid var(--line);gap:12px}
.steps.tl li::before{content:"";position:relative;z-index:1;order:1;width:14px;height:14px;border-radius:50%;background:#FFFFFF;border:3px solid var(--red);margin:-6px 0 6px}
.steps.tl .lead{order:0;align-self:flex-start;padding:4px 10px;background:var(--ink);color:#FFFFFF;font-size:12px;font-weight:700;letter-spacing:.04em;white-space:nowrap}
.steps.tl li:first-child .lead{background:var(--soft);color:var(--ink-2)}
.steps.tl .n{order:2}.steps.tl b{order:3}.steps.tl p{order:4}
@media (max-width:860px){
  .steps.tl{grid-template-columns:minmax(0,1fr);padding-top:0;padding-left:26px}
  .steps.tl::before{left:6px;right:auto;top:8px;bottom:8px;width:2px;height:auto;background:linear-gradient(180deg,#6BC1B0,#3D9180 50%,#296559)}
  .steps.tl li{padding:0 0 26px;border-bottom:0}
  .steps.tl li::before{position:absolute;left:-26px;top:4px;margin:0}
}
.map-item .tx{display:flex;flex-direction:column;gap:3px;min-width:0}
.map-item .t{font-size:15px;font-weight:800}
.map-item .kw{font-size:12px;font-weight:500;line-height:1.5;color:var(--muted)}
.map-item[aria-pressed="true"] .kw{color:rgba(255,255,255,.72)}
.map-item .n{align-self:flex-start;margin-top:2px}
.map-panel .chips{grid-column:2;display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.map-panel .chips span{padding:4px 10px;border:1px solid var(--line);background:#FFFFFF;font-size:12px;font-weight:700;color:var(--ink-2)}
@media (max-width:860px){.map-panel .chips{grid-column:1/-1}}
.map-cols{grid-template-columns:repeat(var(--cols,3),minmax(0,1fr))}
.map-col[data-ph="P"] .map-head{background:#479D8C}
.map-col[data-ph="E"] .map-head{background:#307567}
.map-cols[style*="--cols:4"] .map-col[data-ph="O"] .map-head{background:#296559}
.map-item .ie{font-family:var(--f-lat);font-stretch:112%;font-size:11px;font-weight:800;letter-spacing:.08em;color:var(--red);text-transform:uppercase}
.map-item[aria-pressed="true"] .ie{color:#ACDDD3}
.map-cols[style*="--cols:4"] .map-item{min-height:132px;align-items:flex-start;padding:16px}
@media (max-width:860px){.map-cols{grid-template-columns:minmax(0,1fr)}.map-cols[style*="--cols:4"] .map-item{min-height:0}}
/* 4-phase cards with concrete contents */
.map-card{flex:1;display:flex;flex-direction:column;gap:8px;padding:20px 20px 22px;border:1px solid var(--line);border-radius:2px;background:rgba(255,255,255,.94)}
.map-card .n{font-family:var(--f-lat);font-stretch:125%;font-weight:900;font-size:26px;line-height:1;color:var(--red)}
.map-card .ie{font-family:var(--f-lat);font-stretch:112%;font-size:11px;font-weight:800;letter-spacing:.08em;color:var(--muted);text-transform:uppercase}
.map-card b{font-size:18px;line-height:1.4}
.map-card p{margin:0 0 6px;font-size:13px;line-height:1.75;color:var(--ink-2)}
.map-card ul{list-style:none;margin:0;padding:12px 0 0;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:8px}
.map-card li{display:flex;gap:8px;align-items:flex-start;font-size:14px;font-weight:700;line-height:1.5}
.map-card li svg{flex:none;margin-top:3px;color:var(--red)}
/* items grouped & separated */
.mgs{display:flex;flex-direction:column;gap:14px;padding-top:14px;border-top:1px solid var(--line)}
.mg-h{display:inline-block;margin-bottom:8px;padding:2px 8px;background:var(--ink);color:#FFFFFF;font-size:11px;font-weight:700;letter-spacing:.06em}
.mg ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.mg-item{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 12px;border:1px solid var(--line);border-left:3px solid var(--red);border-radius:0;background:#FFFFFF;font:inherit;font-size:13.5px;font-weight:700;line-height:1.5;color:var(--ink);text-align:left;cursor:pointer;transition:background .2s,color .2s,border-color .2s}
.mg-item::after{content:"+";font-family:var(--f-lat);font-weight:600;color:var(--red)}
.mg-item:hover{border-color:var(--red)}
.mg-item[aria-expanded="true"]{background:var(--ink);border-color:var(--ink);border-left-color:var(--red);color:#FFFFFF}
.mg-item[aria-expanded="true"]::after{content:"—";color:#ACDDD3}
.mg-item:focus-visible{outline:2px solid var(--red);outline-offset:2px}
.mg-panel{margin-top:36px;display:grid;gap:6px;padding:24px 28px;border:1px solid var(--line);background:rgba(255,255,255,.95)}
.mg-panel .pl{font-size:12px;font-weight:700;letter-spacing:.06em;color:var(--red)}
.mg-panel b{font-size:clamp(18px,1.7vw,22px);line-height:1.4}
.mg-panel p{margin:0;font-size:14px;line-height:1.9;color:var(--ink-2)}
.mg-panel:not(.on){display:none}
.mg-d{margin:0;padding:10px 12px 12px 15px;border:1px solid var(--line);border-top:0;background:#FFFFFF;font-size:13px;line-height:1.8;color:var(--ink-2)}
.mg-d[hidden]{display:none}
.map-card .mg li{display:block}
/* lead time headline above the process */
.lead-time{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 18px;margin-bottom:36px;padding:22px 26px;border:1px solid var(--line);background:rgba(255,255,255,.94)}
.lt-k{font-family:var(--f-lat);font-stretch:125%;font-size:11px;font-weight:900;letter-spacing:.14em;color:var(--red)}
.lt-h{margin:0;font-size:clamp(18px,1.9vw,26px);font-weight:900;line-height:1.4}
.lt-h b{color:var(--red);margin:0 .15em}
.lt-n{font-family:var(--f-lat);font-stretch:125%;font-size:1.7em;line-height:1;margin:0 .05em}
.lt-note{flex-basis:100%;margin:0;font-size:12px;color:var(--muted)}

/* ===== no vertical accent bars anywhere ===== */
.drawer .kids{border-left:0;padding-left:4px;margin-left:0}
.solve{border-left:0}
.map-panel{border-left:1px solid var(--line)}
.mg-item,.mg-item[aria-expanded="true"]{border-left-width:1px;border-left-color:var(--line)}
.mg-item[aria-expanded="true"]{border-left-color:var(--ink)}
.eyebrow .ja::before,.ph h1 .ja::before{content:none}
.eyebrow .ja,.ph h1 .ja{padding:5px 12px}
.ph .lead{max-width:72em}
@media (max-width:860px){.pc-br{display:none}}
.case-solo{grid-template-columns:minmax(0,1fr);max-width:880px}

/* ===== OUR STRENGTHS ===== */
.st-lead{margin:-8px 0 32px;font-size:clamp(16px,1.5vw,20px);font-weight:700;line-height:1.8;color:var(--red)}
.strengths{list-style:none;margin:0;padding:clamp(24px,3vw,40px);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;border-radius:4px;
  background:linear-gradient(120deg,#F4FAF9 0%,#E4F1EE 50%,#D4E8E4 100%)}
.strengths>li{display:flex;flex-direction:column;gap:14px}
.strengths h3{margin:0;display:flex;align-items:baseline;gap:10px;font-size:clamp(20px,1.9vw,26px);font-weight:900;line-height:1.3}
.strengths h3 .n{font-family:var(--f-lat);font-stretch:118%;font-weight:900;color:var(--red)}
.strengths .d{margin:0;font-size:13.5px;line-height:1.9;color:var(--ink-2);min-height:7.6em}
.merit{display:flex;flex-direction:column;gap:6px;padding:16px 18px;background:#FFFFFF;border-radius:4px;min-height:118px}
.merit .k{font-size:12px;font-weight:700;letter-spacing:.06em;color:var(--red)}
.merit b{font-size:14.5px;line-height:1.7}
.sv{margin-top:auto;padding:14px;background:rgba(255,255,255,.9);border-radius:4px;box-shadow:0 12px 30px -18px rgba(41,101,89,.35);min-height:150px;font-size:11px}
.sv-top{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:12px}
.sv-k{font-family:var(--f-lat);font-stretch:112%;font-weight:800;letter-spacing:.06em}
.sv-r{color:var(--muted)}.sv-r b{color:var(--red);font-size:14px}
.sv-speed ol{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);position:relative}
.sv-speed ol::before{content:"";position:absolute;left:12%;right:12%;top:30px;height:3px;background:#DBEBE8}
.sv-speed li{display:flex;flex-direction:column;align-items:center;gap:6px;position:relative}
.sv-speed .sl{font-weight:700}
.sv-speed .dot{width:22px;height:22px;border-radius:50%;background:#D5EBE7;border:3px solid #FFFFFF;box-shadow:0 0 0 1px #C4E0DB}
.sv-speed .sd{padding:2px 6px;border:1px solid var(--line);border-radius:999px;font-size:10px;white-space:nowrap}
.sv-speed li.on .sl{color:var(--red)}.sv-speed li.on .dot{background:var(--red);box-shadow:0 0 0 4px rgba(61,145,128,.18)}
.sv-speed li.on .sd{background:var(--red);border-color:var(--red);color:#FFFFFF;font-weight:700}
.sv-mgmt .row{display:flex;align-items:center;gap:6px;padding:8px;border-radius:4px}
.sv-mgmt .row span{padding:3px 8px;border-radius:999px;background:#FFFFFF;font-weight:700;font-size:10px;white-space:nowrap}
.sv-mgmt .row .lb{background:none;padding:0 6px 0 2px;font-size:11px}
.sv-mgmt .top{background:var(--ink);color:#FFFFFF}.sv-mgmt .top span:not(.lb){color:var(--ink)}
.sv-mgmt .bot{background:#E4F1EE}
.sv-mgmt .mid{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:8px 4px;font-size:10px;font-weight:700;color:var(--red)}
.sv-mgmt .hub{width:44px;height:44px;flex:none;border-radius:50%;background:var(--red);color:#FFFFFF;display:flex;align-items:center;justify-content:center;font-family:var(--f-lat);font-weight:900;font-size:11px}
.sv-global svg{display:block;width:100%;height:auto}
.sv-cost .roi{padding:2px 8px;border-radius:999px;background:#F0F9F7;color:var(--red);font-weight:700}
.sv-cost .cl{display:block;margin:6px 0 4px;font-weight:700;color:var(--ink-2)}
.sv-cost .bar{display:flex;align-items:center;gap:4px}
.sv-cost .bar span{padding:5px 8px;font-weight:700;font-size:10px;color:#FFFFFF;white-space:nowrap}
.sv-cost .m{flex:1;background:#B5D7D0}
.sv-cost .x{background:#D2E9E5;color:var(--red)!important}
.sv-cost .f{background:var(--ink)}
.sv-cost em{font-style:normal;font-size:9.5px;color:var(--muted);white-space:nowrap}
.sv-cost em.g{color:var(--red);font-weight:700}
@media (max-width:1100px){.strengths{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.strengths{grid-template-columns:minmax(0,1fr);padding:18px}.strengths .d,.merit{min-height:0}}
@supports (grid-template-rows:subgrid){
  .strengths{row-gap:14px}
  .strengths>li{display:grid;grid-row:span 4;grid-template-rows:subgrid;gap:14px;margin-bottom:10px}
  .strengths .d,.merit{min-height:0}
  .sv{margin-top:0}
}

/* ===== brand line: Grip it, until it's yours. ===== */
.brandline{display:grid;grid-template-columns:minmax(0,220px) minmax(0,1fr);align-items:center;margin-top:12px;padding:32px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.bl-logo{display:flex;align-items:center;justify-content:center;padding-right:32px}
.bl-logo img{width:100%;max-width:170px;height:auto}
.bl-txt{padding-left:36px;border-left:1px solid var(--line)}
.bl-h{margin:0 0 14px;font-family:var(--f-lat);font-stretch:100%;font-weight:800;font-size:clamp(24px,2.4vw,34px);letter-spacing:-.01em;line-height:1.2}
.bl-h span{color:var(--red)}
.bl-b{margin:0;font-size:14px;line-height:2.1;color:var(--ink-2)}
@media (max-width:640px){
  .brandline{grid-template-columns:minmax(0,1fr);gap:20px}
  .bl-logo{justify-content:flex-start;padding:0}.bl-logo img{max-width:140px}
  .bl-txt{padding-left:0;border-left:0}
  .bl-b br{display:none}
}
.big.big-tag{font-size:clamp(24px,2.6vw,40px);line-height:1.55}
@media (max-width:640px){.big.big-tag{font-size:20px}}
/* ===== THE MODEL flow (sales) ===== */
.tmodel{margin-bottom:40px}
.tm-lead{margin:0 0 20px;font-size:15px;line-height:1.9;color:var(--ink-2);max-width:62em}
.tm-flow{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0}
.tm-flow li{position:relative;display:flex;flex-direction:column;gap:4px;padding:18px 34px 18px 22px;color:#FFFFFF;clip-path:polygon(0 0,calc(100% - 18px) 0,100% 50%,calc(100% - 18px) 100%,0 100%,18px 50%)}
.tm-flow li:first-child{clip-path:polygon(0 0,calc(100% - 18px) 0,100% 50%,calc(100% - 18px) 100%,0 100%)}
.tm-flow li:not(:first-child){padding-left:34px;margin-left:-14px}
.tm-flow li:nth-child(1){background:#4EAB98}.tm-flow li:nth-child(2){background:#479D8C}.tm-flow li:nth-child(3){background:#307567}.tm-flow li:nth-child(4){background:#296559}
.tm-flow .en{font-family:var(--f-lat);font-stretch:118%;font-size:10.5px;font-weight:800;letter-spacing:.08em;opacity:.85}
.tm-flow b{font-size:16px;line-height:1.4}
.tm-flow .role{font-size:12.5px;font-weight:700}
.tm-flow .kpi{align-self:flex-start;margin-top:4px;padding:2px 8px;background:rgba(255,255,255,.18);font-size:11px;font-weight:700}
@media (max-width:860px){
  .tm-flow{grid-template-columns:minmax(0,1fr);gap:6px}
  .tm-flow li,.tm-flow li:first-child{clip-path:polygon(0 0,100% 0,100% calc(100% - 10px),50% 100%,0 calc(100% - 10px));padding:14px 18px 22px;margin-left:0}
}
@media (max-width:860px){.tm-flow li:not(:first-child){margin-left:0;padding-left:18px}}

.finale{padding-block:clamp(72px,8vw,120px) clamp(72px,8vw,120px)}.finale .row2{margin-top:0}
html.is-loading{cursor:progress}
html.is-loading main{opacity:.6;transition:opacity .2s}

/* ===== JOURNAL ===== */
.jcard[hidden]{display:none}
.jtabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:32px}
.jt{display:inline-flex;align-items:baseline;gap:8px;min-height:44px;padding:0 16px;border:1px solid var(--line);border-radius:2px;background:#FFFFFF;font:inherit;font-size:13px;font-weight:700;color:var(--ink);cursor:pointer}
.jt span{font-family:var(--f-lat);font-stretch:112%;font-size:11px;font-weight:800;letter-spacing:.08em;color:var(--red)}
.jt[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:#FFFFFF}.jt[aria-pressed="true"] span{color:#ACDDD3}
.jempty{margin:24px 0 0;color:var(--muted)}
.jcard .shot{border-radius:2px;overflow:hidden}.jcard .shot img{display:block;width:100%;height:auto;transition:transform .6s}
.jcard:hover .shot img{transform:scale(1.03)}
.jarticle{max-width:820px;margin:0 auto;display:flex;flex-direction:column;gap:22px}
.jmeta{display:flex;align-items:center;gap:14px;font-family:var(--f-lat);font-size:14px;color:var(--muted)}
.jtitle{margin:0;font-size:clamp(24px,3vw,40px);font-weight:900;line-height:1.45;text-wrap:balance}
.jlead{margin:0;font-size:clamp(15px,1.4vw,17px);font-weight:700;line-height:2;color:var(--ink-2)}
.jcover img{display:block;width:100%;height:auto;border-radius:2px}
.jbody{display:flex;flex-direction:column;gap:18px}
.jbody h3{margin:28px 0 0;padding-top:20px;border-top:2px solid var(--ink);font-size:clamp(19px,1.9vw,24px);font-weight:900;line-height:1.5}
.jbody p{margin:0;font-size:15.5px;line-height:2.1;color:var(--ink-2)}
.jbody ul{margin:0;padding:18px 22px;list-style:none;display:flex;flex-direction:column;gap:10px;background:rgba(255,255,255,.9);border:1px solid var(--line)}
.jbody li{position:relative;padding-left:22px;font-size:15px;font-weight:700;line-height:1.8}
.jbody li::before{content:"";position:absolute;left:2px;top:.7em;width:8px;height:8px;background:var(--red)}
.jcta{margin-top:32px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px 24px;padding:26px 28px;background:var(--ink);color:#FFFFFF}
.jcta .k{flex-basis:100%;font-family:var(--f-lat);font-stretch:112%;font-size:11px;font-weight:800;letter-spacing:.14em;color:#ACDDD3}
.jcta b{font-size:clamp(17px,1.7vw,22px)}
.jcta .btns{display:flex;flex-wrap:wrap;gap:10px}
.jcta .btn-line{border-color:#FFFFFF;color:#FFFFFF}
.cta-btns{display:flex;flex-wrap:wrap;gap:10px}
.btn-line-w{border-color:#FFFFFF;color:#FFFFFF}.btn-line-w:hover{background:#FFFFFF;color:var(--red)}
.ftype{border:0;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px 28px;align-items:center}
.ftype legend{float:left;width:100%;margin-bottom:8px;font-size:13px;font-weight:700}
.ftype legend em{color:var(--red);font-style:normal;margin-left:4px}
.ftype label{display:inline-flex;align-items:center;gap:8px;min-height:44px;font-size:15px;font-weight:700;cursor:pointer}
.ftype input{width:18px;height:18px;accent-color:var(--red)}
.fmeet[hidden]{display:none}
.fmeet .note{display:block;margin-top:6px}
.f.ftype{flex-direction:row;justify-content:flex-start}
.f.ftype input[type=radio]{width:18px;height:18px;min-height:0;padding:0;margin:0;border:0;box-shadow:none;flex:none}
.f.ftype label{font-size:15px}
.f.fmeet textarea{min-height:96px}
.portrait,.portrait.has-img{border-radius:20px!important}
.sv-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.sv-one .chips{display:flex;flex-wrap:wrap;gap:5px}
.sv-one .chips span{padding:3px 9px;border-radius:999px;background:#F0F9F7;color:var(--red);font-weight:700;font-size:10px}
.sv-one .chips span:first-child{background:var(--ink);color:#FFFFFF}
.sv-one .hubbar{display:flex;align-items:center;gap:8px;margin-top:12px;padding:6px 8px;border-radius:4px;background:var(--red);color:#FFFFFF;font-weight:700;font-size:10.5px}
.sv-one .hubbar span{font-family:var(--f-lat);font-weight:900;letter-spacing:.06em;padding-right:8px;border-right:1px solid rgba(255,255,255,.5)}
.sv-model ol{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:3px}
.sv-model li{display:flex;flex-direction:column;gap:5px;padding:7px 4px 7px 9px;background:#E4F1EE;clip-path:polygon(0 0,calc(100% - 7px) 0,100% 50%,calc(100% - 7px) 100%,0 100%,7px 50%)}
.sv-model li:first-child{clip-path:polygon(0 0,calc(100% - 7px) 0,100% 50%,calc(100% - 7px) 100%,0 100%)}
.sv-model li:nth-child(2){background:#BBDED7}.sv-model li:nth-child(3){background:#69B3A4;color:#FFFFFF}.sv-model li:nth-child(4){background:var(--red);color:#FFFFFF}
.sv-model b{font-family:var(--f-lat);font-size:13px;font-weight:900;letter-spacing:.04em}
.sv-model li span{font-size:10px;font-weight:700}
.sv .kpi{margin:10px 0 0;font-size:10.5px;font-weight:700;color:var(--red)}
.sv-inhouse .lg{display:flex;align-items:center;gap:4px;font-size:9.5px;font-weight:700;color:var(--ink-2)}
.sv-inhouse .lg i{display:inline-block;width:9px;height:9px;border-radius:2px;margin-left:6px}
.sv-inhouse i.g,.sv-inhouse .bar .g{background:var(--red)}
.sv-inhouse i.c,.sv-inhouse .bar .c{background:var(--ink)}
.sv-inhouse .ihp{display:grid;grid-template-columns:52px 1fr;align-items:center;gap:8px;margin-top:7px}
.sv-inhouse .pl{font-weight:700;font-size:10px}
.sv-inhouse .bar{display:flex;height:12px;border-radius:2px;overflow:hidden}
.sv-inhouse .bar .c{flex:1}
/* ===== WORKS list (concise) ===== */
.jt em{font-style:normal;font-family:var(--f-lat);font-size:11px;font-weight:700;color:var(--muted)}
.jt[aria-pressed="true"] em{color:#FFFFFF;opacity:.7}
.wlist{list-style:none;margin:0;padding:0;border-top:1px solid var(--ink)}
.wlist li{border-bottom:1px solid var(--line)}
.wlist li[hidden]{display:none}
.wrow{display:grid;grid-template-columns:240px minmax(0,1fr) 220px;gap:32px;align-items:start;padding:28px 0;color:inherit;text-decoration:none}
.wthumb{aspect-ratio:16/10;overflow:hidden;border-radius:2px;background:var(--soft)}
.wthumb img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .6s}
a.wrow:hover .wthumb img{transform:scale(1.04)}
.wmain{display:flex;flex-direction:column;gap:8px;min-width:0}
.wcl{font-size:12px;font-weight:700;color:var(--ink-2);display:flex;flex-wrap:wrap;gap:4px 12px}
.wcl i{font-style:normal;font-weight:500;color:var(--muted)}
.wmain b{font-size:clamp(17px,1.6vw,20px);font-weight:900;line-height:1.5}
.wmain p{margin:0;font-size:13px;line-height:1.9;color:var(--ink-2)}
.wmore{align-self:flex-start;margin-top:4px;font-family:var(--f-lat);font-size:11px;font-weight:800;letter-spacing:.1em;color:var(--red);border-bottom:1px solid currentColor}
.wsvc{margin:0;font-size:11.5px;line-height:1.9;color:var(--muted)}
a.wrow:hover b{color:var(--red)}
@media (max-width:860px){
  .wrow{grid-template-columns:120px minmax(0,1fr);gap:16px;padding:20px 0}
  .wsvc{grid-column:2}
  .wmain b{font-size:15px}
  .wmain p{font-size:12.5px}
}
@media (max-width:860px){
  .wtabs{flex-wrap:nowrap;overflow-x:auto;gap:6px;margin-inline:-16px;padding-inline:16px;scrollbar-width:none}
  .wtabs::-webkit-scrollbar{display:none}
  .wtabs .jt{flex:none;padding:0 12px;min-height:40px;font-size:12px}
}
.wtabs .jt span{font-size:12px}
.jtabs{align-items:center}
.jt{align-items:center;justify-content:center;height:44px;line-height:1;padding-block:0}
.jt span,.jt em{line-height:1}
@media (max-width:860px){header.hd .logo img{height:24px}}
.kv-bot{justify-content:flex-end}
/* ===== KV illustration: voyage between islands ===== */
.kv2 svg.kv-scene{display:block}
.kvs-stars circle{animation:kvTw 6s ease-in-out infinite;opacity:.55}
@keyframes kvTw{0%,100%{opacity:.2}50%{opacity:.8}}
.kvs-ship{animation:kvBob 7s ease-in-out infinite;transform-box:fill-box}
@keyframes kvBob{0%,100%{translate:0 0;rotate:0deg}50%{translate:0 -5px;rotate:-1.2deg}}
.kvs-waves{animation:kvWave 14s linear infinite}
@keyframes kvWave{from{transform:translateX(0)}to{transform:translateX(-40px)}}
.kvs-shimmer rect{animation:kvSh 4s ease-in-out infinite;opacity:.45}
@keyframes kvSh{0%,100%{opacity:.15}50%{opacity:.65}}
.kvs-route{animation:kvRoute 3s linear infinite}
@keyframes kvRoute{to{stroke-dashoffset:-48}}
.kvs-beacon{animation:kvBeacon 2.4s ease-in-out infinite;transform-origin:601px 533px;transform-box:view-box}
@keyframes kvBeacon{0%,100%{opacity:.15;transform:scale(.6)}50%{opacity:.7;transform:scale(1.4)}}
.kv2:has(.kv-scene) .kv-hair{opacity:.35}
@media (prefers-reduced-motion:reduce){.kv-scene *{animation:none!important}}
@media (max-width:860px){
  .kv2:has(.kv-scene){min-height:520px}
  .kv2:has(.kv-scene) .kv-ui{min-height:520px;align-content:start}
}
.kv2:has(.kv-scene) .kv-ui{grid-template-rows:auto 1fr;padding-top:clamp(64px,11vh,120px)}
.kv2 .slice svg.cut{display:none}
.kv2 .slice{--dx:0em;--dy:0em;--yl:53%;--yr:53%}
.kv2 .slice .a{clip-path:none!important}
.kv2 .slice .a .ln2{color:transparent;-webkit-text-stroke:max(1px,.01em) #FFFFFF}
.kv2 .slice .b{display:none}
/* ===== KV: abstract navigation chart ===== */
.kv-chart .kvc-l{font-family:var(--f-lat);font-stretch:118%;font-weight:800;font-size:15px;letter-spacing:.14em;stroke:none;fill:#FFFFFF}
.kv-chart .kvc-c{font-family:var(--f-lat);font-weight:500;font-size:13px;letter-spacing:.08em;stroke:none;fill:#FFFFFF;fill-opacity:.55}
.kv-chart g[style*="fill"] > .kvc-l{fill:var(--gold,#C6A15B)}
.kvc-pulse path{stroke-dasharray:70 930;stroke-dashoffset:1000;animation:kvcPulse 7.8s linear infinite;opacity:.9}
@keyframes kvcPulse{to{stroke-dashoffset:0}}
.kvc-routes{animation:kvRoute 4s linear infinite}
.kvc-dial{transform-origin:1420px 250px;transform-box:view-box;animation:kvcSpin 120s linear infinite}
@keyframes kvcSpin{to{transform:rotate(360deg)}}
.kvc-ring{fill:none;stroke-opacity:.8;transform-box:fill-box;transform-origin:center;animation:kvcRing 3s ease-out infinite}
@keyframes kvcRing{0%{transform:scale(.6);stroke-opacity:.9}100%{transform:scale(2.6);stroke-opacity:0}}
@media (prefers-reduced-motion:reduce){.kv-chart *{animation:none!important}}
@media (max-width:860px){.kv-chart .kvc-rose,.kv-chart .kvc-cards{display:none}}
@media (max-width:860px){.kv-chart .kvc-map{transform:translate(520px,215px) scale(.64)}}
/* ===== KV: minimal particle ring ===== */
.kv2.kv-p{background:#0D0A0B}
.kv2.kv-p .kv-hair,.kv2.kv-p .kv-shade{display:none}
.kv2.kv-p .kv-grain{opacity:.08}
.kv2.kv-p .kv-ui{grid-template-rows:1fr auto;padding-top:clamp(24px,3vw,40px)}
.kv2.kv-p .slice{align-self:end;font-size:clamp(40px,5.6vw,96px);margin-bottom:clamp(8px,1.5vw,20px)}
.kv2.kv-p .kv-bot{justify-content:flex-end}
.kv-addr,.kv-clock{margin:0;font-family:var(--f-lat);font-size:11px;font-weight:500;line-height:1.7;letter-spacing:.06em;color:rgba(255,255,255,.72);text-align:right}
.kv-clock{position:absolute;top:clamp(20px,2.6vw,36px);right:var(--gut)}
.kv2.kv-p .scroll-cue{display:none}
@media (max-width:860px){
  .kv2.kv-p{min-height:560px}
  .kv2.kv-p .kv-ui{min-height:560px;grid-template-rows:1fr auto auto;padding:20px}
  .kv2.kv-p .slice{font-size:clamp(34px,10vw,52px)}
  .kv2.kv-p .kv-bot{justify-content:flex-start}
  .kv-addr{text-align:left;font-size:10px}
  .kv-clock{font-size:10px;top:16px;right:20px}
}
.kv-addr,.kv-clock{text-shadow:0 0 6px #0D0A0B,0 0 2px #0D0A0B}
.kv2.kv-p .kv-ui{grid-template-rows:auto 1fr}
.kv2.kv-p .slice{align-self:start;margin-top:clamp(40px,8vh,110px);font-size:clamp(44px,6.4vw,112px)}
@media (max-width:860px){.kv2.kv-p .kv-ui{grid-template-rows:auto 1fr}.kv2.kv-p .slice{margin-top:24px;font-size:clamp(36px,10.5vw,56px)}}
/* headline reveals after the globe has risen */
.kv2.kv-p .slice .ln{opacity:0;transform:translateY(.25em);filter:blur(6px);animation:kvIn 1.4s cubic-bezier(.2,.7,.2,1) 1.6s forwards}
.kv2.kv-p .slice .ln2{animation-delay:2.3s}
@keyframes kvIn{to{opacity:1;transform:none;filter:none}}
@media (prefers-reduced-motion:reduce){.kv2.kv-p .slice .ln{animation:none;opacity:1;transform:none;filter:none}}
/* centred headline, slow reveal */
.kv2.kv-p .kv-ui{grid-template-rows:1fr}
.kv2.kv-p .slice{align-self:center;justify-self:center;text-align:center;margin:0 0 6vh;font-size:clamp(44px,6.8vw,120px)}
.kv2.kv-p .slice .ln2{padding-left:0}
.kv2.kv-p .slice .ln{animation-duration:3.2s;animation-delay:2.2s;animation-timing-function:cubic-bezier(.25,.6,.2,1)}
.kv2.kv-p .slice .ln2{animation-delay:3.8s}
.kv2.kv-p .kv-bot{display:none}
@media (max-width:860px){.kv2.kv-p .kv-ui{grid-template-rows:1fr}.kv2.kv-p .slice{margin:0 0 18vh;font-size:clamp(36px,10.5vw,56px)}}
/* ===== KV: Story button + founding story dialog ===== */
.kv2.kv-p .kv-ui{display:flex;flex-direction:column;align-items:center;justify-content:center;padding-bottom:10vh}
.kv2.kv-p .slice{margin:0;align-self:center}
.kv-story-btn{position:relative;z-index:5;margin-top:clamp(28px,4vw,48px);min-height:48px;padding:0 34px;border:1px solid rgba(255,255,255,.7);border-radius:999px;background:rgba(13,10,11,.25);color:#FFFFFF;font-family:var(--f-lat);font-stretch:118%;font-size:13px;font-weight:800;letter-spacing:.24em;text-transform:uppercase;cursor:pointer;backdrop-filter:blur(4px);opacity:0;transform:translateY(10px);animation:kvIn 1.8s cubic-bezier(.25,.6,.2,1) 6.8s forwards;transition:background .3s,color .3s,border-color .3s}
.kv-story-btn:hover,.kv-story-btn:focus-visible{background:#FFFFFF;color:var(--red);border-color:#FFFFFF;outline:none}
.kv-story-btn:focus-visible{box-shadow:0 0 0 3px rgba(255,255,255,.4)}
.story{position:fixed;inset:0;z-index:200;overflow-y:auto;background:#0D0A0B;color:#FFFFFF;opacity:0;transition:opacity .5s ease}
.story.is-open{opacity:1}
.story-in{max-width:760px;margin:0 auto;padding:clamp(96px,14vh,160px) 24px clamp(80px,12vh,140px)}
.story-close{position:fixed;top:20px;right:20px;z-index:2;display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:0 18px;border:1px solid rgba(255,255,255,.35);border-radius:999px;background:transparent;color:#FFFFFF;font-family:var(--f-lat);font-size:12px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;cursor:pointer}
.story-close span{font-size:18px;line-height:1}
.story-close:hover,.story-close:focus-visible{background:#FFFFFF;color:#0D0A0B;outline:none}
.story-k{margin:0 0 20px;font-family:var(--f-lat);font-stretch:118%;font-size:12px;font-weight:800;letter-spacing:.24em;color:var(--red-hi)}
.story-h{margin:0 0 clamp(36px,5vw,56px);font-size:clamp(32px,4.6vw,56px);font-weight:900;line-height:1.35}
.story-body p{margin:0 0 1.6em;font-size:clamp(15px,1.3vw,17px);line-height:2.15;color:rgba(255,255,255,.86)}
.story-sign{display:flex;flex-direction:column;gap:10px;margin:clamp(40px,5vw,64px) 0 0;padding-top:28px;border-top:1px solid rgba(255,255,255,.18)}
.story-sign span{font-family:var(--f-ser);font-style:italic;font-size:clamp(22px,2.4vw,30px)}
.story-sign b{font-size:13px;font-weight:700;letter-spacing:.08em;color:rgba(255,255,255,.7)}
.story .story-k,.story .story-h,.story .story-body p,.story .story-sign{opacity:0;transform:translateY(16px);transition:opacity 1s ease,transform 1s ease}
.story.is-open .story-k,.story.is-open .story-h,.story.is-open .story-body p,.story.is-open .story-sign{opacity:1;transform:none}
.story.is-open .story-h{transition-delay:.15s}
.story.is-open .story-body p:nth-child(1){transition-delay:.35s}
.story.is-open .story-body p:nth-child(2){transition-delay:.55s}
.story.is-open .story-body p:nth-child(3){transition-delay:.75s}
.story.is-open .story-body p:nth-child(4){transition-delay:.95s}
.story.is-open .story-sign{transition-delay:1.15s}
@media (prefers-reduced-motion:reduce){.kv-story-btn{animation:none;opacity:1;transform:none}.story,.story *{transition:none!important}}
@media (max-width:860px){.kv2.kv-p .kv-ui{padding-bottom:22vh}}
/* letter-by-letter headline */
.kv2.kv-p .slice .ln{opacity:1!important;transform:none!important;filter:none!important;animation:none!important}
.kv2.kv-p .slice .ch{display:inline-block;opacity:0;transform:translateY(.35em);filter:blur(8px);animation:kvCh 1.1s cubic-bezier(.2,.7,.2,1) forwards}
@keyframes kvCh{to{opacity:1;transform:none;filter:none}}
/* creative STORY button: rotating text ring + compass core */
.kv-story-btn{width:132px;height:132px;min-height:0;padding:0;border:0;border-radius:50%;background:none;backdrop-filter:none;display:grid;place-items:center;letter-spacing:0;margin-top:clamp(20px,3vw,36px)}
.kv-story-btn:hover,.kv-story-btn:focus-visible{background:none;box-shadow:none}
.ksb-ring{grid-area:1/1;width:100%;height:100%;overflow:visible;animation:ksbSpin 16s linear infinite}
.ksb-ring text{font-family:var(--f-lat);font-stretch:118%;font-size:10.5px;font-weight:800;letter-spacing:.22em;fill:#FFFFFF;fill-opacity:.85}
@keyframes ksbSpin{to{transform:rotate(360deg)}}
.ksb-core{grid-area:1/1;position:relative;width:76px;height:76px;border-radius:50%;display:grid;place-items:center;background:var(--red);box-shadow:0 0 0 0 rgba(255,255,255,.5),0 10px 30px -8px var(--red);transition:transform .5s cubic-bezier(.2,.7,.2,1),background .4s;animation:ksbPulse 2.6s ease-out infinite}
@keyframes ksbPulse{0%{box-shadow:0 0 0 0 rgba(255,255,255,.45),0 10px 30px -8px var(--red)}100%{box-shadow:0 0 0 22px rgba(255,255,255,0),0 10px 30px -8px var(--red)}}
.ksb-needle{position:absolute;inset:10px;border-radius:50%;border:1px dashed rgba(255,255,255,.45);transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.ksb-needle::before{content:"";position:absolute;left:50%;top:-4px;width:6px;height:6px;margin-left:-3px;border-radius:50%;background:#FFFFFF}
.ksb-label{position:relative;font-family:var(--f-ser);font-style:italic;font-size:19px;color:#FFFFFF;letter-spacing:.01em}
.kv-story-btn:hover .ksb-core,.kv-story-btn:focus-visible .ksb-core{transform:scale(1.12);background:#FFFFFF}
.kv-story-btn:hover .ksb-label,.kv-story-btn:focus-visible .ksb-label{color:var(--red)}
.kv-story-btn:hover .ksb-needle,.kv-story-btn:focus-visible .ksb-needle{transform:rotate(225deg);border-color:rgba(61,145,128,.45)}
.kv-story-btn:hover .ksb-needle::before,.kv-story-btn:focus-visible .ksb-needle::before{background:var(--red)}
.kv-story-btn:hover .ksb-ring{animation-duration:6s}
.kv-story-btn:focus-visible{outline:2px solid #FFFFFF;outline-offset:6px}
@media (max-width:860px){.kv-story-btn{width:112px;height:112px}.ksb-core{width:64px;height:64px}.ksb-label{font-size:16px}}
@media (prefers-reduced-motion:reduce){.kv2.kv-p .slice .ch{animation:none;opacity:1;transform:none;filter:none}.ksb-ring,.ksb-core{animation:none}}
/* typewriter headline */
.kv2.kv-p .slice .ch{opacity:0;transform:none;filter:none;animation:none}
.kv2.kv-p .slice .ch.on{opacity:1}
.kv-caret{display:inline-block;width:.06em;height:.82em;margin-left:.03em;vertical-align:-.04em;background:var(--red-hi);animation:kvBlink 1s steps(1) infinite}
.slice .ln2 .kv-caret{-webkit-text-stroke:0;width:.045em}
.kv-caret.done{opacity:0;animation:none;transition:opacity .4s}
@keyframes kvBlink{50%{opacity:0}}
.kv-story-btn{animation:none!important;opacity:0;transform:translateY(10px);transition:opacity 1.4s ease,transform 1.4s cubic-bezier(.2,.7,.2,1)}
.kv-story-btn.on{opacity:1;transform:none}
/* simple ring around STORY */
.ksb-ring{display:block;width:100%;height:100%;border:1px solid rgba(255,255,255,.45);border-radius:50%;animation:none;transition:transform .6s cubic-bezier(.2,.7,.2,1),border-color .4s}
.kv-story-btn:hover .ksb-ring,.kv-story-btn:focus-visible .ksb-ring{transform:scale(.9);border-color:rgba(255,255,255,.9)}
.ksb-core{animation:none;box-shadow:0 10px 30px -10px var(--red)}
.story-body p:first-child{font-size:clamp(19px,1.9vw,24px);font-weight:700;color:#FFFFFF}
.story.is-open .story-body p:nth-child(5){transition-delay:1.15s}
.story.is-open .story-body p:nth-child(6){transition-delay:1.35s}
.story.is-open .story-sign{transition-delay:1.55s}
.story-h{text-wrap:balance}.story-h br.sp-only{display:none}@media (max-width:600px){.story-h br.sp-only{display:inline}}
/* "Grip it, until it's yours." — one typeface, one treatment everywhere */
.kv2 .slice .ln2,.kv2 .slice .a .ln2{font-family:var(--f-lat);font-style:normal;font-weight:900;font-stretch:118%;letter-spacing:-.045em;color:#FFFFFF;-webkit-text-stroke:0;padding-left:0}
.kv2.kv-p .slice .kv-caret{width:.06em}
.bl-h span{color:inherit}
.story-sign span{font-family:var(--f-lat);font-style:normal;font-weight:900;font-stretch:118%;letter-spacing:-.03em;font-size:clamp(20px,2.2vw,28px)}
.story-kv .story-ctl{top:auto;bottom:20px;right:20px}
/* ===== Story typed over the KV ===== */
.story.story-kv{position:absolute;inset:0;z-index:6;overflow:hidden;background:linear-gradient(180deg,rgba(13,10,11,.7),rgba(13,10,11,.5) 60%,rgba(13,10,11,.78));opacity:0;transition:opacity .6s ease}
.story.story-kv.is-open{opacity:1}
.story-kv .story-in{height:100%;overflow-y:auto;scrollbar-width:none;padding:clamp(56px,9vh,96px) 24px clamp(88px,12vh,120px);max-width:780px}
.story-kv .story-in::-webkit-scrollbar{display:none}
.story-kv .story-k,.story-kv .story-h,.story-kv .story-body p,.story-kv .story-sign{opacity:1!important;transform:none!important;transition:none!important}
.story-kv .story-k:not(.typed),.story-kv .story-h:not(.typed),.story-kv .story-body p:not(.typed),.story-kv .story-sign span:not(.typed),.story-kv .story-sign b:not(.typed){visibility:hidden}
.story-kv .story-ctl{position:absolute;top:auto;bottom:20px;right:20px;z-index:2;display:flex;gap:8px}
.story-kv .story-close{position:static;background:rgba(13,10,11,.4)}
.story-skip{min-height:44px;padding:0 18px;border:0;background:transparent;color:rgba(255,255,255,.75);font-family:var(--f-lat);font-size:12px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;cursor:pointer}
.story-skip:hover,.story-skip:focus-visible{color:#FFFFFF;outline:none;text-decoration:underline}
.story-kv.done .story-skip{display:none}
.story-caret{height:.9em;width:2px;margin-left:2px;vertical-align:-.1em}
.kv2 .kv-ui{transition:opacity .5s}
.kv2.story-on .kv-ui{opacity:0;pointer-events:none}
.story-kv .story-close{color:#FFFFFF}
.story-kv .story-close:hover,.story-kv .story-close:focus-visible{background:#FFFFFF;color:#0D0A0B}
.story-kv .story-sign:not(:has(.typed)){visibility:hidden}
.story-kv .story-in{-webkit-mask-image:linear-gradient(180deg,#000 85%,transparent);mask-image:linear-gradient(180deg,#000 85%,transparent)}
@media (max-width:860px){.kv2.story-on,.kv2.story-on .kv-ui{min-height:calc(100svh - 72px)}}
/* digital / terminal type for the KV headline */
@font-face{font-family:"GRIP Mono";src:url("brand/fonts/jetbrains-mono-latin-800-normal.woff2") format("woff2");font-weight:800;font-display:swap}
.kv2 .slice,.kv2 .slice .ln,.kv2 .slice .ln2,.kv2 .slice .a .ln2{font-family:"GRIP Mono",ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;font-weight:800;font-stretch:100%;font-style:normal;letter-spacing:-.02em}
.kv2.kv-p .slice{font-size:clamp(34px,5.4vw,96px);line-height:1.08}
.kv2.kv-p .slice .kv-caret{width:.55em;height:.95em;vertical-align:-.12em;margin-left:.04em;background:var(--red-hi);opacity:.9}
@media (max-width:860px){.kv2.kv-p .slice{font-size:clamp(26px,8.4vw,44px)}}
/* ===== Top page: whole page shares the KV background ===== */
body:has(.kv2.kv-p){background:#0D0A0B}
body:has(.kv2.kv-p) .earth-bg{display:none}
.kv2.kv-p{background:transparent}
.kv2.kv-p .kv-particles{position:fixed;inset:72px 0 0 0;width:100%;height:calc(100% - 72px);z-index:-1}
body:has(.kv2.kv-p) main{--ink:#F4ECE4;--ink-2:#D2C8C8;--muted:#A0959A;--line:rgba(255,255,255,.14);--soft:rgba(255,255,255,.05);--blush:rgba(255,255,255,.04);color:var(--ink);position:relative;z-index:0}
body:has(.kv2.kv-p) main > section:not(.kv2){background:rgba(13,10,11,.62);backdrop-filter:blur(2px)}
body:has(.kv2.kv-p) footer.ft{--ink:#F4ECE4;--ink-2:#D2C8C8;--muted:#A0959A;--line:rgba(255,255,255,.14);color:var(--ink);background:rgba(13,10,11,.8)}
body:has(.kv2.kv-p) footer.ft a{color:inherit}
/* headline recedes into space and becomes a star */
.kv2.kv-p .kv-ui{position:relative;perspective:900px}
.kv2.kv-p .slice{transform-origin:50% 50%;will-change:transform,opacity,filter}
.kv2.kv-p .slice.recede{animation:kvRecede 2.4s cubic-bezier(.55,.05,.7,.2) forwards}
@keyframes kvRecede{
  0%{transform:translateZ(0) scale(1);opacity:1;filter:blur(0)}
  60%{opacity:.85;filter:blur(1px)}
  100%{transform:translateZ(-600px) scale(.012);opacity:0;filter:blur(2px)}
}
.kv-star{position:absolute;width:6px;height:6px;margin:-3px 0 0 -3px;border-radius:50%;background:#FFFFFF;opacity:0;pointer-events:none;box-shadow:0 0 6px 2px rgba(255,255,255,.9),0 0 18px 6px rgba(107,193,176,.55)}
.kv-star::before,.kv-star::after{content:"";position:absolute;left:50%;top:50%;background:linear-gradient(90deg,transparent,#FFFFFF,transparent);transform:translate(-50%,-50%)}
.kv-star::before{width:46px;height:1px}
.kv-star::after{width:1px;height:46px;background:linear-gradient(180deg,transparent,#FFFFFF,transparent)}
.kv-star.on{animation:kvStarIn 1s ease-out forwards,kvStarTw 2.8s ease-in-out 1s infinite}
@keyframes kvStarIn{0%{opacity:0;transform:scale(.2)}40%{opacity:1;transform:scale(1.8)}100%{opacity:.9;transform:scale(1)}}
@keyframes kvStarTw{0%,100%{opacity:.9;transform:scale(1) rotate(0)}50%{opacity:.45;transform:scale(.7) rotate(45deg)}}
@media (prefers-reduced-motion:reduce){.kv2.kv-p .slice.recede{animation:none}.kv-star{display:none}}
/* subtler star */
.kv-star{width:3px;height:3px;margin:-1.5px 0 0 -1.5px;box-shadow:0 0 4px 1px rgba(255,255,255,.55),0 0 10px 3px rgba(107,193,176,.25)}
.kv-star::before{width:18px;opacity:.45}
.kv-star::after{height:18px;opacity:.45}
@keyframes kvStarIn{0%{opacity:0;transform:scale(.3)}50%{opacity:.75;transform:scale(1.15)}100%{opacity:.6;transform:scale(1)}}
@keyframes kvStarTw{0%,100%{opacity:.6;transform:scale(1)}50%{opacity:.3;transform:scale(.8)}}
.story-end{display:flex;justify-content:center;margin-top:clamp(48px,6vw,72px)}
.story-back{display:inline-flex;align-items:center;gap:12px;min-height:52px;padding:0 32px;border:1px solid rgba(255,255,255,.5);border-radius:999px;background:transparent;color:#FFFFFF;font:inherit;font-size:14px;font-weight:700;letter-spacing:.12em;cursor:pointer;transition:background .3s,color .3s}
.story-back span{font-size:18px;line-height:1}
.story-back:hover,.story-back:focus-visible{background:#FFFFFF;color:#0D0A0B;outline:none}
.story .story-end{opacity:0;transition:opacity 1s ease 1.4s}
.story.is-open .story-end{opacity:1}
.story-close{z-index:210}
.story{z-index:1000}
body:has(.kv2.kv-p) main{z-index:auto}
/* STORY: no outer frame — heartbeat pulses travelling outward */
.ksb-ring{position:relative;border:0!important;transform:none!important}
.ksb-ring::before,.ksb-ring::after{content:"";position:absolute;left:50%;top:50%;width:76px;height:76px;margin:-38px 0 0 -38px;border-radius:50%;border:1.5px solid var(--red-hi);opacity:0;animation:ksbWave 2.4s cubic-bezier(.2,.6,.3,1) infinite}
.ksb-ring::after{animation-delay:.28s}
@keyframes ksbWave{0%{transform:scale(1);opacity:.8}70%{opacity:.1}100%{transform:scale(2.3);opacity:0}}
.ksb-core{animation:ksbBeat 2.4s ease-in-out infinite}
@keyframes ksbBeat{0%,100%{transform:scale(1)}6%{transform:scale(1.08)}12%{transform:scale(.98)}18%{transform:scale(1.05)}30%{transform:scale(1)}}
.kv-story-btn:hover .ksb-core,.kv-story-btn:focus-visible .ksb-core{animation:none;transform:scale(1.1)}
@media (max-width:860px){.ksb-ring::before,.ksb-ring::after{width:64px;height:64px;margin:-32px 0 0 -32px}}
@media (prefers-reduced-motion:reduce){.ksb-ring::before,.ksb-ring::after,.ksb-core{animation:none}}
/* sound toggle (top page KV) */
.kv-sound{position:absolute;left:var(--gut);bottom:clamp(20px,3vw,36px);z-index:6;display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:0 14px 0 12px;border:1px solid rgba(255,255,255,.28);border-radius:999px;background:rgba(13,10,11,.35);color:rgba(255,255,255,.8);font-family:"GRIP Mono",ui-monospace,monospace;font-size:11px;font-weight:800;letter-spacing:.16em;cursor:pointer;backdrop-filter:blur(4px);transition:border-color .3s,color .3s}
.kv-sound:hover,.kv-sound:focus-visible{border-color:#FFFFFF;color:#FFFFFF;outline:none}
.ks-bars{display:inline-flex;align-items:flex-end;gap:2px;height:12px}
.ks-bars i{display:block;width:2px;height:3px;background:currentColor;border-radius:1px}
.kv-sound[aria-pressed="true"]{border-color:var(--red-hi);color:#FFFFFF}
.kv-sound[aria-pressed="true"] .ks-bars i{background:var(--red-hi);animation:ksEq .9s ease-in-out infinite}
.kv-sound[aria-pressed="true"] .ks-bars i:nth-child(2){animation-delay:-.3s}
.kv-sound[aria-pressed="true"] .ks-bars i:nth-child(3){animation-delay:-.6s}
.kv-sound[aria-pressed="true"] .ks-bars i:nth-child(4){animation-delay:-.15s}
@keyframes ksEq{0%,100%{height:3px}50%{height:12px}}
@media (max-width:860px){.kv-sound{bottom:16px;left:16px}}
.kv-tracks{position:absolute;left:calc(var(--gut) + 150px);bottom:clamp(20px,3vw,36px);z-index:6;display:flex;gap:6px}
.kv-tracks button{min-height:44px;padding:0 12px;border:1px solid rgba(255,255,255,.22);border-radius:999px;background:rgba(13,10,11,.35);color:rgba(255,255,255,.7);font-family:"GRIP Mono",ui-monospace,monospace;font-size:10.5px;font-weight:800;letter-spacing:.14em;cursor:pointer;backdrop-filter:blur(4px)}
.kv-tracks button:hover,.kv-tracks button:focus-visible{color:#FFFFFF;border-color:#FFFFFF;outline:none}
.kv-tracks button[aria-pressed="true"]{background:var(--red);border-color:var(--red);color:#FFFFFF}
@media (max-width:860px){.kv-tracks{left:16px;bottom:68px}.kv-tracks button{padding:0 10px;font-size:10px}}
.story-body p.story-last{margin-top:2.2em;font-size:clamp(19px,1.9vw,24px);font-weight:700;color:#FFFFFF;line-height:1.8}
.story.is-open .story-body p{transition-delay:.4s}
.story.is-open .story-body p:nth-child(n+4){transition-delay:.6s}
.story.is-open .story-body p:nth-child(n+8){transition-delay:.8s}
.story.is-open .story-sign{transition-delay:1s}
.kv-story-btn.at-star{position:absolute;margin:0;transform:scale(.2)}
.kv-story-btn.at-star.on{transform:scale(1);transition:opacity 1.2s ease,transform 1.2s cubic-bezier(.2,.7,.2,1)}
.kv-star.fade{animation:none;opacity:0;transition:opacity .8s ease}
.burger{border:0!important;background:transparent!important;box-shadow:none}
.burger:focus-visible{outline:2px solid var(--red);outline-offset:2px}
.burger span,.burger span::before,.burger span::after{width:22px;background-color:#111111}
.nav-open .burger span{background-color:transparent}
/* recede straight into the star's position (no perspective drift) */
.kv2.kv-p .kv-ui{perspective:none}
.kv2.kv-p .slice{transform-origin:50% 50%}
@keyframes kvRecede{
  0%{transform:scale(1);opacity:1;filter:blur(0)}
  60%{opacity:.85;filter:blur(1px)}
  100%{transform:scale(.012);opacity:0;filter:blur(2px)}
}
/* Story emerges slowly from the star */
.kv-story-btn.at-star{transform:scale(.05);opacity:0}
.kv-story-btn.at-star.on{transform:scale(1);opacity:1;transition:opacity 2.6s ease .2s,transform 3.2s cubic-bezier(.16,.7,.2,1)}
.kv-star.fade{transition:opacity 2.2s ease}
/* ===== privacy policy ===== */
.pv{display:grid;grid-template-columns:240px minmax(0,1fr);gap:clamp(32px,5vw,80px);align-items:start}
.pv-toc{position:sticky;top:100px;font-size:13px}
.pv-toc-h{margin:0 0 12px;font-family:var(--f-lat);font-size:11px;font-weight:800;letter-spacing:.2em;color:var(--red)}
.pv-toc ol{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.pv-toc li{border-bottom:1px solid var(--line)}
.pv-toc a{display:flex;gap:10px;align-items:baseline;padding:10px 0;color:var(--ink-2);text-decoration:none}
.pv-toc a span{font-family:var(--f-lat);font-size:11px;font-weight:800;color:var(--muted)}
.pv-toc a:hover{color:var(--red)}
.pv-body{max-width:46em}
.pv-sec{padding:0 0 clamp(28px,3vw,40px);margin-bottom:clamp(28px,3vw,40px);border-bottom:1px solid var(--line);scroll-margin-top:100px}
.pv-sec h2{display:flex;gap:14px;align-items:baseline;margin:0 0 16px;font-size:clamp(18px,1.7vw,22px);font-weight:800}
.pv-sec h2 span{font-family:var(--f-lat);font-size:13px;font-weight:800;color:var(--red)}
.pv-sec p{line-height:2;font-size:15px}
.pv-sec ul{margin:0 0 14px;padding:0;list-style:none}
.pv-sec li{position:relative;padding:0 0 0 1.2em;margin:0 0 10px;line-height:1.9;font-size:15px;color:var(--ink-2)}
.pv-sec li::before{content:"";position:absolute;left:0;top:.85em;width:6px;height:6px;border-radius:50%;background:var(--red)}
.pv-dl{display:grid;grid-template-columns:120px 1fr;margin:8px 0 0;border-top:1px solid var(--line)}
.pv-dl dt,.pv-dl dd{margin:0;padding:12px 0;border-bottom:1px solid var(--line);font-size:14px}
.pv-dl dt{font-weight:700}
.pv-dl a{color:var(--red)}
.pv-date{margin-top:8px;text-align:right;font-size:14px;line-height:1.9}
.pv-h-sub{margin-top:64px!important}
@media (max-width:860px){.pv{grid-template-columns:1fr}.pv-toc{position:static}.pv-dl{grid-template-columns:96px 1fr}}
.pv-tok{margin-top:clamp(40px,5vw,64px);padding-top:clamp(28px,3vw,40px);border-top:2px solid var(--ink);border-bottom:0}
.pv-dl-wide{grid-template-columns:200px 1fr}
.pv-dl-wide dd{line-height:1.9}
@media (max-width:860px){.pv-dl-wide{grid-template-columns:1fr}.pv-dl-wide dt{padding-bottom:0;border-bottom:0}}
/* page-head Japanese label: hidden visually (kept for screen readers / SEO) */
.ph h1 .ja{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.cta2{grid-template-columns:1fr!important}
.cta2 .a1.c-simple{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:44px 48px;min-height:0}
.cta2 .a1.c-simple .h{margin:0;font-family:var(--f-en,inherit);font-weight:800;font-size:clamp(28px,4vw,48px);letter-spacing:.08em;line-height:1}
.cta2 .a1.c-simple .arr{display:inline-flex;width:56px;height:56px;border-radius:50%;border:1px solid rgba(255,255,255,.6);align-items:center;justify-content:center;transition:transform .3s,background .3s}
.cta2 .a1.c-simple .arr svg{width:20px;height:20px}
.cta2 .a1.c-simple:hover .arr{transform:translateX(6px);background:rgba(255,255,255,.15)}
@media(max-width:640px){.cta2 .a1.c-simple{padding:32px 24px}.cta2 .a1.c-simple .arr{width:44px;height:44px}}
/* English edition */
html[lang=en]{--f-min:'Archivo','Helvetica Neue',Arial,sans-serif;--f-ja:'Archivo','Helvetica Neue',Arial,sans-serif}
html[lang=en] .big-tag,html[lang=en] .big{font-weight:600;letter-spacing:-.01em}
html[lang=en] .bio .en-name,html[lang=en] .svx .jp b{display:none}
.strengths>li{grid-template-columns:minmax(0,1fr)}
.strengths>li>*{min-width:0}
.en-dup{display:none!important}
html[lang=en] .sv *{white-space:normal}
html[lang=en] main [style*="white-space:nowrap"]{white-space:normal!important}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:640px){.exec .bio{max-width:760px}
/* case carousel: arrows stay put whatever the caption length */
.ring-foot{align-items:flex-start;flex-wrap:nowrap}
.ring-foot .ring-cap{flex:1 1 auto;min-width:0}
.ring-foot .lp-ctl{flex:none}
@media(max-width:760px){.ring-foot{flex-direction:column;gap:16px}.ring-foot .lp-ctl{order:-1}}
/* mobile menu: services accordion */
.drawer .d-row{display:flex;align-items:center;gap:8px}
.drawer .d-row>a{flex:1;display:flex;justify-content:space-between;align-items:center;min-height:60px;font-family:var(--f-lat);font-size:17px;font-weight:800;letter-spacing:.02em}
.drawer .d-row>a small{font-family:var(--f-ja);font-size:12px;font-weight:700;color:var(--muted)}
.drawer .d-tog{flex:none;position:relative;width:44px;height:44px;margin-right:-10px;border:0;background:none;cursor:pointer;color:var(--ink)}
.drawer .d-tog span,.drawer .d-tog span::after{position:absolute;left:50%;top:50%;width:14px;height:2px;margin:-1px 0 0 -7px;background:currentColor;border-radius:1px;transition:transform .25s}
.drawer .d-tog span::after{content:"";left:0;margin:0;top:0;transform:rotate(90deg)}
.drawer .d-tog[aria-expanded=true] span::after{transform:rotate(0)}
.drawer .kids[hidden]{display:none}
.drawer>ul>li>a small,.drawer .d-row>a small{display:none}
/* page-to-page transitions (full page loads; GA counts every view) */
@view-transition{navigation:auto}
.hd{view-transition-name:site-header}
::view-transition-old(root){animation:vtOut .22s cubic-bezier(.4,0,1,1) both}
::view-transition-new(root){animation:vtIn .45s cubic-bezier(.2,.7,.2,1) both}
@keyframes vtOut{to{opacity:0;transform:translateY(-8px)}}
@keyframes vtIn{from{opacity:0;transform:translateY(12px)}}
/* fallback for browsers without cross-document view transitions */
html.pt-fallback main,html.pt-fallback footer.ft{transition:opacity .22s ease,transform .22s ease}
html.pt-fallback.pt-enter main,html.pt-fallback.pt-enter footer.ft{opacity:0;transform:translateY(12px)}
html.pt-fallback.pt-leave main,html.pt-fallback.pt-leave footer.ft{opacity:0;transform:translateY(-8px)}
@media (prefers-reduced-motion:reduce){::view-transition-old(root),::view-transition-new(root){animation:none}html.pt-fallback main,html.pt-fallback footer.ft{transition:none}}
/* mobile menu: smooth open/close */
@media (max-width:1080px){
  .drawer{transform:translateY(-14px);opacity:0;visibility:hidden;transition:opacity .35s cubic-bezier(.2,.7,.2,1),transform .5s cubic-bezier(.2,.7,.2,1),visibility 0s linear .5s}
  .nav-open .drawer{transform:none;opacity:1;visibility:visible;transition:opacity .35s cubic-bezier(.2,.7,.2,1),transform .5s cubic-bezier(.2,.7,.2,1),visibility 0s}
  .drawer>ul>li,.drawer .d-cta,.drawer .lang{opacity:0;transform:translateY(12px);transition:opacity .3s ease,transform .3s ease}
  .nav-open .drawer>ul>li,.nav-open .drawer .d-cta,.nav-open .drawer .lang{opacity:1;transform:none;transition:opacity .5s cubic-bezier(.2,.7,.2,1),transform .6s cubic-bezier(.2,.7,.2,1)}
  .nav-open .drawer>ul>li:nth-child(1){transition-delay:.06s}
  .nav-open .drawer>ul>li:nth-child(2){transition-delay:.10s}
  .nav-open .drawer>ul>li:nth-child(3){transition-delay:.14s}
  .nav-open .drawer>ul>li:nth-child(4){transition-delay:.18s}
  .nav-open .drawer>ul>li:nth-child(5){transition-delay:.22s}
  .nav-open .drawer>ul>li:nth-child(6){transition-delay:.26s}
  .nav-open .drawer>ul>li:nth-child(7){transition-delay:.30s}
  .nav-open .drawer .d-cta{transition-delay:.34s}
  .nav-open .drawer .lang{transition-delay:.38s}
  .burger span,.burger span::before,.burger span::after{transition:transform .35s cubic-bezier(.2,.7,.2,1),background-color .2s}
  .drawer .kids:not([hidden]) li{animation:kidIn .35s cubic-bezier(.2,.7,.2,1) both}
  .drawer .kids:not([hidden]) li:nth-child(2){animation-delay:.04s}
  .drawer .kids:not([hidden]) li:nth-child(3){animation-delay:.08s}
  .drawer .kids:not([hidden]) li:nth-child(4){animation-delay:.12s}
}
@keyframes kidIn{from{opacity:0;transform:translateY(-6px)}}
@media (prefers-reduced-motion:reduce){.drawer,.drawer>ul>li,.drawer .d-cta,.drawer .lang{transition:none!important}.drawer .kids li{animation:none!important}}
/* mobile menu: slower */
@media (max-width:1080px){
  .drawer{transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .9s cubic-bezier(.2,.7,.2,1),visibility 0s linear .9s}
  .nav-open .drawer{transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .9s cubic-bezier(.2,.7,.2,1),visibility 0s}
  .drawer>ul>li,.drawer .d-cta,.drawer .lang{transition:opacity .5s ease,transform .5s ease}
  .nav-open .drawer>ul>li,.nav-open .drawer .d-cta,.nav-open .drawer .lang{transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform 1s cubic-bezier(.2,.7,.2,1)}
  .nav-open .drawer>ul>li:nth-child(1){transition-delay:.12s}
  .nav-open .drawer>ul>li:nth-child(2){transition-delay:.20s}
  .nav-open .drawer>ul>li:nth-child(3){transition-delay:.28s}
  .nav-open .drawer>ul>li:nth-child(4){transition-delay:.36s}
  .nav-open .drawer>ul>li:nth-child(5){transition-delay:.44s}
  .nav-open .drawer>ul>li:nth-child(6){transition-delay:.52s}
  .nav-open .drawer>ul>li:nth-child(7){transition-delay:.60s}
  .nav-open .drawer .d-cta{transition-delay:.68s}
  .nav-open .drawer .lang{transition-delay:.76s}
  .burger span,.burger span::before,.burger span::after{transition:transform .6s cubic-bezier(.2,.7,.2,1),background-color .3s}
  .drawer .kids:not([hidden]) li{animation-duration:.6s}
  .drawer .kids:not([hidden]) li:nth-child(2){animation-delay:.08s}
  .drawer .kids:not([hidden]) li:nth-child(3){animation-delay:.16s}
  .drawer .kids:not([hidden]) li:nth-child(4){animation-delay:.24s}
}
/* page transitions: slower, softer */
::view-transition-old(root){animation:vtOut .5s cubic-bezier(.4,0,.2,1) both}
::view-transition-new(root){animation:vtIn .9s cubic-bezier(.2,.7,.2,1) .1s both}
::view-transition-group(site-header){animation-duration:.9s}
html.pt-fallback main,html.pt-fallback footer.ft,html.pt-fallback .drawer{transition:opacity .5s ease,transform .6s cubic-bezier(.2,.7,.2,1)}
html.pt-fallback.pt-leave .drawer{opacity:0}
