@charset "utf-8";

/* =========================================================
   C2-Lab TOP / Ver.12
   Legacy → clear narrative / bright game-site inspired UI
========================================================= */
.p-top {
  --c2-ink: #15263d;
  --c2-navy: #1e385b;
  --c2-blue: #3f83c7;
  --c2-blue-2: #72aee4;
  --c2-cyan: #8ed8e7;
  --c2-ice: #edf5fb;
  --c2-surface: #f7fafc;
  --c2-white: #fff;
  --c2-muted: #63768a;
  --c2-line: rgba(30, 56, 91, .16);
  --c2-line-strong: rgba(30, 56, 91, .34);
  background: var(--c2-surface);
  color: var(--c2-ink);
  font-family: "Noto Sans JP", "Yu Gothic", "YuGothic", sans-serif;
}

.p-top *, .p-top *::before, .p-top *::after { box-sizing: border-box; }
.p-top img { display: block; height: auto; max-width: 100%; }
.p-top a { color: inherit; text-decoration: none; }
.p-top button { font: inherit; }
.is-pc { display: inline; }
.is-sp { display: none; }

/* legacy */
.p-c2legacy {
  align-items: flex-start;
  background: #d8d8d8;
  color: #111;
  display: flex;
  inset: 0;
  justify-content: center;
  min-height: 100vh;
  overflow: hidden;
  padding: 44px 18px;
  position: fixed;
  transition: opacity .4s ease, visibility .4s ease, background-color .55s ease;
  z-index: 9999;
}
.p-c2legacy__desktop {
  background: #c0c0c0;
  border: 2px outset #fff;
  box-shadow: 10px 12px 0 rgba(0,0,0,.12);
  font-family: "MS PGothic", "MS Gothic", monospace;
  max-width: 760px;
  width: 100%;
  transform: scale(var(--c2legacy-fit, 1));
  transform-origin: top center;
  will-change: transform;
}
.p-c2legacy__windowbar { align-items:center; background:linear-gradient(90deg,#000080,#1084d0); color:#fff; display:flex; font-size:13px; font-weight:700; justify-content:space-between; min-height:28px; padding:4px 7px; }
.p-c2legacy__windowbuttons { letter-spacing:.1em; }
.p-c2legacy__browserbar { align-items:center; border-bottom:2px groove #fff; display:flex; font-size:16px; gap:10px; min-height:40px; padding:5px 7px; }
.p-c2legacy__address { background:#fff; border:2px inset #fff; flex:1 1 auto; font-size:13px; min-width:0; padding:4px 7px; }
.p-c2legacy__table { background:#efefef; border-collapse:collapse; table-layout:fixed; width:100%; }
.p-c2legacy__table td { border:2px ridge #fff; padding:13px; transition:opacity .5s ease, transform .8s cubic-bezier(.16,1,.3,1), filter .5s ease; vertical-align:top; }
.p-c2legacy__head { text-align:center; }
.p-c2legacy__marquee { color:#f00; font-size:14px; font-weight:700; margin-bottom:10px; }
.p-c2legacy__logo { margin:0 auto; max-width:190px; }
.p-c2legacy__sub { color:#303030; font-size:13px; letter-spacing:.08em; margin-top:4px; }
.p-c2legacy__menu { background:#d4d4d4; width:31%; }
.p-c2legacy__menuTitle { background:#000080; color:#fff; font-size:15px; font-weight:700; margin:-4px -4px 12px; padding:5px 7px; text-align:center; }
.p-c2legacy__menu a { color:#0000ee; display:block; font-size:13px; margin:9px 0; text-decoration:underline; }
.p-c2legacy__mini { color:#505050; font-size:12px; line-height:1.6; }
.p-c2legacy__content { font-size:13px; line-height:1.7; }
.p-c2legacy__welcome { color:#d60000; font-size:18px; font-weight:700; margin-bottom:10px; text-align:center; }
.p-c2legacy__new { background:#fff; border:1px solid #888; margin:16px 0; padding:10px 12px; }
.p-c2legacy__new strong { color:#d60000; }
.p-c2legacy__new ul { margin:8px 0 0; padding-left:18px; }
.p-c2legacy__counter { margin:0; text-align:center; }
.p-c2legacy__counter span { background:#000; color:#00ff3c; display:inline-block; font-family:monospace; letter-spacing:.14em; padding:3px 7px; }
.p-c2legacy__kiriban { background:#ffffe6; border:2px dashed #ff5b5b; margin:14px auto 10px; max-width:470px; padding:10px 12px; text-align:center; }
.p-c2legacy__kiriban p { margin:4px 0; }
.p-c2legacy__kiribanGet { color:#f00; font-size:16px; font-weight:700; text-decoration:blink; }
.p-c2legacy__retroNotes { color:#800080; display:flex; flex-wrap:wrap; font-size:12px; gap:4px 12px; justify-content:center; margin:10px 0; text-align:center; }
.p-c2legacy__retroNotes span::before { content:"◆ "; }
.p-c2legacy__underconstruction { background:#fff; border:1px dotted #888; color:#333; font-size:12px; margin:10px auto; max-width:470px; padding:6px 8px; text-align:center; }
.p-c2legacy__underconstruction strong { color:#e00000; }
.p-c2legacy__enter { background:#c0c0c0; border:2px outset #fff; color:#111; cursor:pointer; display:block; font-size:13px; margin:16px auto 0; min-height:44px; padding:8px 18px; }
.p-c2legacy__hint { color:#555; font-size:12px; margin:8px 0 0; text-align:center; }
.p-c2legacy__foot { font-size:12px; text-align:center; }


@keyframes c2legacyBlink { 0%,48% { opacity:1; } 49%,100% { opacity:.3; } }
.p-c2legacy__kiribanGet { animation:c2legacyBlink .85s steps(1,end) infinite; }
.p-c2rebuild { align-items:center; background:rgba(249,252,255,.985); color:var(--c2-navy); display:flex; flex-direction:column; inset:0; justify-content:center; opacity:0; overflow:hidden; padding:30px; pointer-events:none; position:fixed; transition:opacity .18s ease,visibility .18s ease; visibility:hidden; z-index:10030; }
.p-c2rebuild__grid { background-image:linear-gradient(rgba(45,104,160,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(45,104,160,.07) 1px,transparent 1px); background-size:34px 34px; inset:0; opacity:.72; position:absolute; }
.p-c2rebuild__copy { opacity:0; position:relative; text-align:center; transform:translateY(12px); z-index:1; }
.p-c2rebuild__label { color:var(--c2-blue); display:block; font-size:11px; font-weight:800; letter-spacing:.18em; margin-bottom:14px; }
.p-c2rebuild__copy strong { display:block; font-size:clamp(30px,5vw,50px); font-weight:800; letter-spacing:.02em; line-height:1.35; }
.p-c2rebuild__dots { display:inline-flex; letter-spacing:0; margin-left:.12em; }
.p-c2rebuild__dots i { font-style:normal; opacity:.18; }
.p-c2rebuild__copy p { color:var(--c2-muted); font-size:14px; line-height:1.9; margin:14px 0 0; }
.p-c2rebuild__meter { background:rgba(45,104,160,.12); height:2px; margin-top:30px; overflow:hidden; position:relative; width:min(340px,72vw); }
.p-c2rebuild__meter span { background:var(--c2-blue); display:block; height:100%; transform:scaleX(0); transform-origin:left; width:100%; }
.is-c2-breaking .p-c2legacy__desktop { filter:saturate(.4) brightness(1.04); opacity:.13; transform:scale(calc(var(--c2legacy-fit, 1) * .994)); transition:filter .28s ease,opacity .28s ease,transform .5s cubic-bezier(.16,1,.3,1); }
.is-c2-rebuilding .p-c2legacy__desktop { opacity:0; transition:opacity .2s ease; }
.is-c2-rebuilding .p-c2rebuild { opacity:1; visibility:visible; }
.is-c2-rebuilding .p-c2rebuild__copy { animation:c2rebuildCopy .42s .02s cubic-bezier(.16,1,.3,1) forwards; }
.is-c2-rebuilding .p-c2rebuild__dots i { animation:c2rebuildDot .82s ease-in-out infinite; }
.is-c2-rebuilding .p-c2rebuild__dots i:nth-child(2) { animation-delay:.16s; }
.is-c2-rebuilding .p-c2rebuild__dots i:nth-child(3) { animation-delay:.32s; }
.is-c2-rebuilding .p-c2rebuild__meter span { animation:c2meter 1.25s .08s cubic-bezier(.22,1,.36,1) forwards; }
.is-c2-modern .p-c2legacy { pointer-events:none; }
.is-c2-modern .p-c2legacy__desktop, .p-c2legacy.is-finished .p-c2legacy__desktop { opacity:0 !important; visibility:hidden; }
.p-c2legacy.is-finished { display:none !important; opacity:0 !important; pointer-events:none; visibility:hidden !important; }
.is-c2-fragment-hidden { opacity:0 !important; }
.p-c2shards { inset:0; overflow:hidden; pointer-events:none; position:fixed; z-index:10020; }
.p-c2shard { box-sizing:border-box; overflow:hidden; position:fixed !important; transform-origin:center center; will-change:transform,opacity; }
.p-c2shard.p-c2legacy__logo { object-fit:contain; }
@keyframes c2meter { to { transform:scaleX(1); } }
@keyframes c2rebuildCopy { from { opacity:0; transform:translateY(12px); } to { opacity:1; transform:none; } }
@keyframes c2rebuildDot { 0%,100% { opacity:.18; transform:translateY(0); } 50% { opacity:1; transform:translateY(-1px); } }

/* common modern */
.p-c2top { background:var(--c2-surface); min-height:100vh; opacity:0; overflow:hidden; pointer-events:none; transition:opacity .55s ease; }

.p-c2top h1, .p-c2top h2, .p-c2top h3 { line-break:strict; text-wrap:balance; }
.p-c2top p { line-break:strict; text-wrap:pretty; }
.p-c2top.is-ready { opacity:1; pointer-events:auto; }
.p-c2top.is-assembling .p-c2top-header { animation:c2assembleHeader .72s cubic-bezier(.16,1,.3,1) both; }
.p-c2top.is-assembling .p-c2hero__copy { animation:c2assembleCopy .9s .08s cubic-bezier(.16,1,.3,1) both; opacity:1 !important; transform:none !important; }
.p-c2top.is-assembling .p-c2hero__plane--01 { animation:c2assemblePlaneA 1s .06s cubic-bezier(.16,1,.3,1) both; }
.p-c2top.is-assembling .p-c2hero__plane--02 { animation:c2assemblePlaneB 1s .12s cubic-bezier(.16,1,.3,1) both; }
.p-c2top.is-assembling .p-c2hero__line, .p-c2top.is-assembling .p-c2hero__symbol { animation:c2assembleVisual .95s .16s cubic-bezier(.16,1,.3,1) both; }
@keyframes c2assembleHeader { from { opacity:0; transform:translateY(-32px); } to { opacity:1; transform:none; } }
@keyframes c2assembleCopy { from { opacity:0; transform:translate3d(-70px,28px,0); } to { opacity:1; transform:none; } }
@keyframes c2assemblePlaneA { from { opacity:0; transform:translate3d(120px,-45px,0) skewX(-18deg) rotate(-13deg) scale(.84); } to { opacity:1; transform:skewX(-18deg) rotate(-7deg) scale(1); } }
@keyframes c2assemblePlaneB { from { opacity:0; transform:translate3d(90px,70px,0) skewX(-18deg) rotate(-1deg) scale(.82); } to { opacity:1; transform:skewX(-18deg) rotate(-7deg) scale(1); } }
@keyframes c2assembleVisual { from { opacity:0; transform:scale(.72) rotate(-7deg); } to { opacity:1; transform:none; } }
.p-c2section { margin:0 auto; max-width:1240px; padding:130px 54px; position:relative; }
.p-c2section__head { margin-bottom:52px; max-width:900px; }
.p-c2section__en { color:var(--c2-blue); font-size:12px; font-weight:800; letter-spacing:.18em; margin:0 0 14px; text-transform:uppercase; }
.p-c2section__head h2 { font-size:clamp(34px,4.2vw,62px); font-weight:800; letter-spacing:-.045em; line-height:1.28; margin:0; }
[data-c2-reveal] { opacity:0; transform:translateY(24px); transition:opacity .7s ease,transform .7s cubic-bezier(.16,1,.3,1); }
[data-c2-reveal].is-visible { opacity:1; transform:none; }

/* header */
.p-c2top-header { align-items:center; backdrop-filter:blur(14px); background:rgba(247,250,252,.9); border-bottom:1px solid var(--c2-line); display:flex; min-height:82px; padding:0 38px; position:sticky; top:0; z-index:50; }
.p-c2top-header__logo { flex:0 0 auto; width:150px; }
.p-c2top-header__nav { display:flex; gap:28px; margin-left:auto; }
.p-c2top-header__nav a { color:#334c68; font-size:14px; font-weight:700; padding:29px 0 27px; position:relative; }
.p-c2top-header__nav a::after { background:var(--c2-blue); bottom:21px; content:""; height:2px; left:0; position:absolute; transform:scaleX(0); transform-origin:left; transition:transform .25s ease; width:100%; }
.p-c2top-header__nav a:hover::after, .p-c2top-header__nav a:focus-visible::after { transform:scaleX(1); }
.p-c2top-header__contact { align-items:center; background:var(--c2-navy); color:#fff !important; display:flex; font-size:14px; font-weight:700; gap:24px; margin-left:34px; min-height:48px; padding:0 18px 0 20px; transition:background .2s ease; }
.p-c2top-header__contact:hover, .p-c2top-header__contact:focus-visible { background:var(--c2-blue); }

/* hero */
.p-c2hero { background:#f6fafc; min-height:760px; overflow:hidden; padding:150px max(54px,calc((100vw - 1240px)/2 + 54px)) 110px; position:relative; }
.p-c2hero::before { background:linear-gradient(90deg,rgba(63,131,199,.06) 1px,transparent 1px),linear-gradient(rgba(63,131,199,.06) 1px,transparent 1px); background-size:64px 64px; content:""; inset:0; mask-image:linear-gradient(to right,transparent 0,#000 40%,#000 100%); opacity:.7; position:absolute; }
.p-c2hero__copy { max-width:670px; position:relative; z-index:4; }
.p-c2hero__eyebrow { color:var(--c2-blue); font-size:13px; font-weight:800; letter-spacing:.12em; margin:0 0 25px; }
.p-c2hero h1 { font-size:clamp(58px,7vw,106px); font-weight:800; letter-spacing:-.07em; line-height:1.05; margin:0; }
.p-c2hero h1 span { display:block; }
.p-c2hero__lead { color:#40556d; font-size:18px; font-weight:500; line-height:2; margin:34px 0 0; max-width:620px; }
.p-c2hero__actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:38px; }
.p-c2hero__actions a { align-items:center; border:1px solid var(--c2-navy); display:inline-flex; font-size:14px; font-weight:700; gap:28px; justify-content:space-between; min-height:54px; min-width:195px; padding:0 18px 0 20px; transition:background .2s ease,color .2s ease; }
.p-c2hero__actions a:first-child { background:var(--c2-navy); color:#fff; }
.p-c2hero__actions a:hover, .p-c2hero__actions a:focus-visible { background:var(--c2-blue); border-color:var(--c2-blue); color:#fff; }
.p-c2hero__visual { inset:0 0 0 42%; pointer-events:none; position:absolute; }
.p-c2hero__plane { border:1px solid rgba(63,131,199,.22); position:absolute; transform:skewX(-18deg) rotate(-7deg); }
.p-c2hero__plane--01 { background:rgba(110,174,226,.10); height:62%; right:-4%; top:4%; width:66%; }
.p-c2hero__plane--02 { background:rgba(142,216,231,.15); bottom:5%; height:43%; right:10%; width:48%; }
.p-c2hero__line { border:1px solid rgba(63,131,199,.3); border-radius:50%; height:460px; position:absolute; right:7%; top:17%; width:460px; }
.p-c2hero__line::before, .p-c2hero__line::after { border:1px solid rgba(63,131,199,.16); border-radius:50%; content:""; position:absolute; }
.p-c2hero__line::before { inset:55px; }
.p-c2hero__line::after { inset:112px; }
.p-c2hero__symbol { color:rgba(38,83,128,.94); font-family:Georgia,"Times New Roman",serif; font-size:clamp(150px,18vw,320px); font-weight:700; letter-spacing:-.08em; line-height:.8; position:absolute; right:6%; top:27%; }
.p-c2hero__symbol sup { color:var(--c2-blue-2); font-size:.35em; top:-1em; }
.p-c2hero__coordinate { color:#6a839d; font-family:monospace; font-size:10px; letter-spacing:.16em; position:absolute; text-transform:uppercase; }
.p-c2hero__coordinate--01 { right:8%; top:13%; }
.p-c2hero__coordinate--02 { bottom:15%; right:23%; }
.p-c2hero__scroll { align-items:center; bottom:28px; color:#6c8195; display:flex; font-size:10px; gap:10px; letter-spacing:.16em; position:absolute; right:max(38px,calc((100vw - 1240px)/2 + 54px)); }
.p-c2hero__scroll span { background:#7b91a6; display:block; height:1px; width:44px; }

/* about */
.p-c2about { padding-top:145px; }
.p-c2about__intro { display:grid; gap:22px; margin-left:auto; max-width:880px; }
.p-c2about__intro p { color:#42586e; font-size:17px; line-height:2.15; margin:0; }
.p-c2about__intro .p-c2about__copy { color:var(--c2-ink); font-size:clamp(25px,2.7vw,38px); font-weight:700; letter-spacing:-.03em; line-height:1.7; margin-bottom:14px; }
.p-c2about__copy > span { display:block; }
.p-c2about__copy > span:nth-child(2) strong + strong { margin-left:.3em; }
.p-c2about__intro strong { color:var(--c2-blue); }
.p-c2about__formula { align-items:stretch; display:grid; grid-template-columns:1fr auto 1fr auto 1fr; margin-top:72px; }
.p-c2about__formula > div { background:#fff; border:1px solid var(--c2-line); min-height:170px; padding:28px; position:relative; }
.p-c2about__formula > div::before { background:var(--c2-blue); content:""; height:3px; left:-1px; position:absolute; top:-1px; width:42px; }
.p-c2about__formula > i { align-self:center; color:var(--c2-blue); font-size:28px; font-style:normal; padding:0 18px; }
.p-c2about__formula span { color:var(--c2-muted); display:block; font-family:monospace; font-size:11px; margin-bottom:28px; }
.p-c2about__formula strong { display:block; font-size:22px; margin-bottom:10px; }
.p-c2about__formula small { color:var(--c2-blue); font-size:11px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }

/* service */
.p-c2service { padding-top:120px; }
.p-c2service::before { background:var(--c2-ice); clip-path:polygon(0 11%,100% 0,100% 100%,0 100%); content:""; inset:30px calc(50% - 50vw) 0; position:absolute; z-index:-1; }
.p-c2service__lead { max-width:820px; }
.p-c2service__lead p { color:#40566e; font-size:17px; line-height:2.1; margin:0; }
.p-c2service__grid { border-top:1px solid var(--c2-line-strong); display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); margin-top:58px; }
.p-c2service__item { align-content:start; border-bottom:1px solid var(--c2-line); display:grid; grid-template-columns:46px minmax(0,1fr); min-height:250px; padding:34px 36px 38px 24px; position:relative; }
.p-c2service__item:nth-child(odd) { border-right:1px solid var(--c2-line); padding-left:0; }
.p-c2service__item span { align-self:start; color:var(--c2-blue); font-family:monospace; font-size:11px; grid-column:1; grid-row:1 / span 2; padding-top:7px; position:static; }
.p-c2service__item h3 { font-size:25px; grid-column:2; letter-spacing:-.02em; margin:0 0 18px; }
.p-c2service__item p { color:#53697e; font-size:15px; grid-column:2; line-height:1.9; margin:0; max-width:470px; }

/* projects */
.p-c2projects { background:var(--c2-navy); color:#fff; overflow:hidden; position:relative; }
.p-c2projects::before { background:linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px); background-size:72px 72px; content:""; inset:0; position:absolute; }
.p-c2projects::after { border:1px solid rgba(142,216,231,.2); border-radius:50%; content:""; height:620px; position:absolute; right:-170px; top:130px; width:620px; }
.p-c2projects__inner { position:relative; z-index:1; }
.p-c2section__head--light .p-c2section__en { color:#9ad8ee; }
.p-c2section__head--light h2 { color:#fff; }
.p-c2projects__lead { max-width:760px; }
.p-c2projects__lead p { color:#d6e1ec; font-size:17px; line-height:2.05; margin:0; }
.p-c2projects__showcase { align-items:stretch; display:grid; gap:46px; grid-template-columns:minmax(0,1.12fr) minmax(310px,.88fr); margin-top:62px; }
.p-c2projects__visual { align-content:end; background:linear-gradient(145deg,rgba(102,184,226,.22),rgba(255,255,255,.04)); border:1px solid rgba(255,255,255,.18); clip-path:polygon(0 0,92% 0,100% 15%,100% 100%,8% 100%,0 86%); display:grid; min-height:400px; padding:46px; position:relative; }
.p-c2projects__visual::before { border:1px solid rgba(255,255,255,.16); content:""; inset:32px; position:absolute; }
.p-c2projects__visualNo { color:#a7d9ee; font-family:monospace; font-size:12px; left:46px; letter-spacing:.16em; position:absolute; top:45px; }
.p-c2projects__visual strong { font-size:clamp(48px,6vw,82px); letter-spacing:-.06em; line-height:.9; position:relative; z-index:1; }
.p-c2projects__brandword::before { content:"\0048\006f\0062\0062\0079\004e\0061\0076\0069"; }
.p-c2projects__visual small { color:#a9cee0; font-size:11px; font-weight:700; letter-spacing:.16em; margin-top:16px; position:relative; z-index:1; }
.p-c2projects__copy { align-self:center; padding-right:20px; }
.p-c2projects__type { color:#8fd4ec; font-size:12px; font-weight:700; letter-spacing:.12em; margin:0 0 18px; }
.p-c2projects__copy h3 { font-size:42px; letter-spacing:-.04em; margin:0 0 22px; }
.p-c2projects__brandword--title { min-height:1.2em; }
.p-c2projects__copy > p:last-child { color:#d8e2ec; font-size:16px; line-height:2; margin:0; }
.p-c2projects__examples { border-top:1px solid rgba(255,255,255,.18); display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); margin-top:72px; }
.p-c2projects__examples > div { border-right:1px solid rgba(255,255,255,.13); padding:32px 30px 10px 0; }
.p-c2projects__examples > div + div { padding-left:30px; }
.p-c2projects__examples > div:last-child { border-right:0; }
.p-c2projects__examples span { color:#8fd4ec; display:block; font-size:10px; font-weight:700; letter-spacing:.15em; margin-bottom:16px; }
.p-c2projects__examples strong { display:block; font-size:20px; margin-bottom:13px; }
.p-c2projects__examples p { color:#c8d6e3; font-size:14px; line-height:1.8; margin:0; }

/* company */
.p-c2company__story { align-items:start; display:grid; gap:80px; grid-template-columns:310px minmax(0,1fr); }
.p-c2company__brand { border-top:3px solid var(--c2-blue); padding-top:26px; }
.p-c2company__brand img { width:220px; }
.p-c2company__brand p { color:var(--c2-blue); font-family:monospace; font-size:12px; font-weight:700; letter-spacing:.13em; margin:20px 0 0; text-transform:uppercase; }
.p-c2company__copy p { color:#42596f; font-size:17px; line-height:2.05; margin:0; }
.p-c2company__copy p + p { margin-top:20px; }
.p-c2company__data { border-top:1px solid var(--c2-line-strong); margin:70px 0 0; }
.p-c2company__data > div { border-bottom:1px solid var(--c2-line); display:grid; grid-template-columns:180px minmax(0,1fr); padding:20px 8px; }
.p-c2company__data dt { color:var(--c2-muted); font-size:13px; font-weight:700; }
.p-c2company__data dd { font-size:15px; line-height:1.75; margin:0; }

/* contact */
.p-c2contact { background:#e8f2fa; border-top:1px solid var(--c2-line); min-height:520px; overflow:hidden; padding:100px max(54px,calc((100vw - 1240px)/2 + 54px)); position:relative; }
.p-c2contact::before { background:#d6e9f7; clip-path:polygon(45% 0,100% 0,100% 100%,12% 100%); content:""; inset:0; left:42%; position:absolute; }
.p-c2contact__inner { max-width:780px; position:relative; z-index:2; }
.p-c2contact__en { color:var(--c2-blue); font-size:12px; font-weight:800; letter-spacing:.18em; margin:0 0 18px; }
.p-c2contact h2 { font-size:clamp(38px,5vw,68px); letter-spacing:-.05em; line-height:1.35; margin:0; }
.p-c2contact h2 > span { display:block; }
.p-c2contact__keep { white-space:nowrap; }
.p-c2contact__inner > p:not(.p-c2contact__en) { color:#465f76; font-size:16px; line-height:1.95; margin:25px 0 0; max-width:560px; }
.p-c2contact a { align-items:center; background:var(--c2-navy); color:#fff; display:inline-flex; font-size:15px; font-weight:700; gap:54px; justify-content:space-between; margin-top:34px; min-height:58px; min-width:220px; padding:0 20px 0 24px; transition:background .2s ease; }
.p-c2contact a:hover, .p-c2contact a:focus-visible { background:var(--c2-blue); }
.p-c2contact__mark { color:rgba(48,100,150,.12); font-family:Georgia,"Times New Roman",serif; font-size:330px; font-weight:700; line-height:.8; position:absolute; right:5%; top:23%; }
.p-c2contact__mark sup { font-size:.34em; }

/* footer */
.p-c2top-footer { align-items:center; background:#f8fafc; border-top:1px solid var(--c2-line); display:flex; justify-content:space-between; min-height:110px; padding:0 max(38px,calc((100vw - 1240px)/2 + 54px)); }
.p-c2top-footer img { width:145px; }
.p-c2top-footer p { color:var(--c2-muted); font-size:12px; margin:0; }

@media (min-width: 992px) {
  .p-c2legacy {
    height: 100vh;
    min-height: 0;
    padding-bottom: clamp(10px, 2.2vh, 24px);
    padding-top: clamp(10px, 2.2vh, 24px);
  }

  .p-c2about__copy > span { white-space:nowrap; }
}

@media (max-width: 991px) {
  .p-c2top-header { min-height:72px; padding:0 22px; }
  .p-c2top-header__logo { width:130px; }
  .p-c2top-header__nav { display:none; }
  .p-c2top-header__contact { margin-left:auto; min-height:44px; }
  .p-c2section { padding:100px 28px; }
  .p-c2hero { min-height:700px; padding:120px 28px 90px; }
  .p-c2hero__visual { inset:0 -12% 0 43%; opacity:.68; }
  .p-c2about__formula { grid-template-columns:1fr; gap:0; }
  .p-c2about__formula > i { padding:10px 0; text-align:center; transform:rotate(90deg); }
  .p-c2service__grid { grid-template-columns:1fr; }
  .p-c2service__item, .p-c2service__item:nth-child(odd) { border-right:0; grid-template-columns:42px minmax(0,1fr); padding:30px 20px 30px 0; }
  .p-c2projects__showcase { grid-template-columns:1fr; }
  .p-c2projects__copy { padding:0; }
  .p-c2projects__examples { grid-template-columns:1fr; }
  .p-c2projects__examples > div, .p-c2projects__examples > div + div { border-bottom:1px solid rgba(255,255,255,.13); border-right:0; padding:26px 0; }
  .p-c2company__story { gap:42px; grid-template-columns:1fr; }
  .p-c2company__brand { max-width:320px; }
  .p-c2contact { padding:85px 28px; }
  .p-c2contact__mark { font-size:250px; opacity:.7; right:-30px; top:30%; }
}

@media (max-width: 620px) {
  .is-pc { display:none; }
  .is-sp { display:inline; }
  .p-c2legacy { padding:20px 10px; }
  .p-c2legacy__browserbar { font-size:12px; gap:5px; }
  .p-c2legacy__address { font-size:11px; }
  .p-c2legacy__menu { width:35%; }
  .p-c2legacy__table td { padding:8px; }
  .p-c2legacy__menu a, .p-c2legacy__content { font-size:12px; }
  .p-c2legacy__kiriban { padding:8px; }
  .p-c2legacy__kiribanGet { font-size:14px; }
  .p-c2legacy__retroNotes { display:block; line-height:1.7; }
  .p-c2legacy__retroNotes span { display:block; }
  .p-c2top-header { padding:0 16px; }
  .p-c2top-header__logo { width:118px; }
  .p-c2top-header__contact { font-size:13px; gap:12px; padding:0 14px; }
  .p-c2section { padding:82px 18px; }
  .p-c2section__head { margin-bottom:36px; }
  .p-c2section__head h2 { font-size:34px; line-height:1.4; }
  .p-c2hero { min-height:650px; padding:95px 18px 72px; }
  .p-c2hero h1 { font-size:54px; }
  .p-c2hero__lead { font-size:16px; line-height:1.9; margin-top:26px; }
  .p-c2hero__actions { align-items:stretch; flex-direction:column; }
  .p-c2hero__actions a { min-width:0; width:100%; }
  .p-c2hero__visual { inset:5% -45% 0 28%; opacity:.38; }
  .p-c2hero__symbol { font-size:190px; right:16%; top:44%; }
  .p-c2hero__line { height:300px; right:12%; top:38%; width:300px; }
  .p-c2hero__coordinate { display:none; }
  .p-c2hero__scroll { display:none; }
  .p-c2about__intro p { font-size:15px; line-height:2; }
  .p-c2about__intro .p-c2about__copy { font-size:22px; letter-spacing:-.025em; line-height:1.72; }
  .p-c2about__copy > span { white-space:normal; }
  .p-c2about__formula { margin-top:48px; }
  .p-c2about__formula > div { min-height:140px; padding:24px; }
  .p-c2about__formula strong { font-size:20px; }
  .p-c2service__lead p, .p-c2projects__lead p, .p-c2company__copy p { font-size:15px; line-height:2; }
  .p-c2service__grid { margin-top:42px; }
  .p-c2service__item, .p-c2service__item:nth-child(odd) { grid-template-columns:34px minmax(0,1fr); min-height:0; padding:28px 0 30px; }
  .p-c2service__item h3 { font-size:22px; }
  .p-c2projects__visual { clip-path:polygon(0 0,90% 0,100% 12%,100% 100%,10% 100%,0 88%); min-height:290px; padding:28px; }
  .p-c2projects__visual::before { inset:20px; }
  .p-c2projects__visualNo { left:28px; top:28px; }
  .p-c2projects__visual strong { font-size:48px; }
  .p-c2projects__copy h3 { font-size:34px; }
  .p-c2company__data > div { gap:10px; grid-template-columns:88px minmax(0,1fr); padding:17px 0; }
  .p-c2contact { min-height:500px; padding:78px 18px; }
  .p-c2contact h2 { font-size:33px; letter-spacing:-.04em; line-height:1.42; }
  .p-c2contact__keep { white-space:normal; }
  .p-c2contact__mark { bottom:22px; font-size:170px; right:-20px; top:auto; }
  .p-c2top-footer { min-height:90px; padding:0 18px; }
  .p-c2top-footer img { width:120px; }
}

@media (prefers-reduced-motion: reduce) {
  .p-c2legacy *, .p-c2top *, .p-c2legacy *::before, .p-c2top *::before, .p-c2top *::after { animation-duration:.001ms !important; scroll-behavior:auto !important; transition-duration:.001ms !important; }
}
