
:root {
  --ink: #232722;
  --sub: #58615a;
  --teal: #00adad;
  --deep: #007878;
  --mint: #e7eeed;
  --mint2: #eef5f4;
  --white: #fff;
  --u: calc(min(100vw, 1440px) / 1440);
  --ja: "Zen Kaku Gothic New", "Hiragino Sans", sans-serif;
  --en: "Space Grotesk", "Zen Kaku Gothic New", sans-serif;
}
* { box-sizing: border-box; margin: 0; padding: 0; }
html { -webkit-text-size-adjust: 100%; }
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }
body { background: var(--mint); color: var(--ink); font-family: var(--ja); font-weight: 700; letter-spacing: .02em; overflow-x: hidden; }
a { color: inherit; text-decoration: none; }
ul { list-style: none; }
button { font: inherit; color: inherit; background: none; border: 0; cursor: pointer; }
em { font-style: normal; color: var(--teal); }
img, svg { display: block; }
.dot { position: relative; flex: none; width: 7px; height: 7px; display: inline-block; }
.dot::before { content: ""; position: absolute; right: 0; top: 50%; width: 7px; height: 7px; border-radius: 4px; background: var(--teal); translate: 0 -50%; transition: width .45s cubic-bezier(.65, 0, .35, 1), height .45s cubic-bezier(.65, 0, .35, 1); }
.dot::after { content: ""; position: absolute; right: .5px; top: 50%; width: 7px; height: 7px; border-top: 2px solid var(--teal); border-right: 2px solid var(--teal); box-sizing: border-box; translate: -6px -50%; rotate: 45deg; opacity: 0; transition: translate .45s cubic-bezier(.65, 0, .35, 1), opacity .3s ease; }
:is(a, button):hover .dot::before, :is(a, button):focus-visible .dot::before { width: 11px; height: 2px; }
:is(a, button):hover .dot::after, :is(a, button):focus-visible .dot::after { translate: 0 -50%; opacity: 1; }
@media (prefers-reduced-motion: no-preference) {
  :is(a, button):hover .dot, :is(a, button):focus-visible .dot { animation: dot-pass .7s both; }
  :is(a, button):hover .dot::before, :is(a, button):focus-visible .dot::before { animation: dot-pass-shaft .7s both; }
  :is(a, button):hover .dot::after, :is(a, button):focus-visible .dot::after { animation: dot-pass-head .7s both; }
}
@keyframes dot-pass {
  0%   { transform: translateX(0); opacity: 1; animation-timing-function: cubic-bezier(.5, 0, .9, .5); }
  38%  { transform: translateX(16px); opacity: 0; }
  39%  { transform: translateX(-16px); opacity: 0; animation-timing-function: cubic-bezier(.16, 1, .3, 1); }
  100% { transform: translateX(0); opacity: 1; }
}
@keyframes dot-pass-shaft { 0%, 38% { width: 7px; height: 7px; } 39%, 100% { width: 11px; height: 2px; } }
@keyframes dot-pass-head { 0%, 38% { opacity: 0; translate: 0 -50%; } 39%, 100% { opacity: 1; translate: 0 -50%; } }
.arrow .dot { transition: translate .45s cubic-bezier(.65, 0, .35, 1); }
a:hover .arrow .dot, a:focus-visible .arrow .dot { translate: 1px -.9px; }
:focus-visible { outline: 2px solid var(--teal); outline-offset: 3px; border-radius: 4px; }
html.is-entering body { opacity: 0; animation: navsafety 0s linear 1.5s forwards; }
html.is-entered body { transition: opacity .32s ease-out; }
html.is-leaving body { opacity: 0; transition: opacity .18s ease-in; }
@keyframes navsafety { to { opacity: 1; } }
.header { position: absolute; inset: 0 0 auto 0; height: calc(92 * var(--u)); z-index: 10; display: flex; align-items: center; padding: 0 calc(32 * var(--u)); }
.header__logo svg { width: calc(98 * var(--u)); height: calc(40 * var(--u)); fill: var(--teal); }
.header__nav { position: absolute; left: 50%; transform: translateX(-50%); display: flex; gap: calc(32 * var(--u)); font-size: calc(14 * var(--u)); }
.header__nav a { transition: color .25s ease; }
.header__nav a:hover, .header__nav a:focus-visible { color: var(--teal); }
.header__contact { margin-left: auto; height: calc(45 * var(--u)); padding: 0 calc(20 * var(--u)) 0 calc(24 * var(--u)); border-radius: 999px; background: var(--white); display: inline-flex; align-items: center; gap: calc(12 * var(--u)); font-size: calc(14 * var(--u)); }
.fv { --u: min(calc(min(100vw, 1920px) / 1440), calc(100svh / 900)); --dw: 1440; --dh: 900; position: relative; height: max(100svh, 520px); overflow: hidden; }
.fv__stage { position: absolute; inset: 0; }
.fv__item { position: absolute; left: calc(var(--x) / var(--dw) * 100%); top: calc(var(--y) / var(--dh) * 100%); width: calc(var(--w) * var(--u)); height: auto; overflow: visible; }
.fv__copy { position: absolute; left: calc(374 / 1440 * 100%); top: calc(209 / 900 * 100%); }
.fv__title { font-weight: 900; font-size: calc(64 * var(--u)); line-height: 1.5; letter-spacing: -.02em; }
.fv__en { font-family: var(--en); font-size: calc(24 * var(--u)); line-height: 1.75; margin-top: calc(28 * var(--u)); letter-spacing: 0; }
.fv__badge { position: absolute; right: calc(32 * var(--u)); bottom: calc(32 * var(--u)); width: calc(200 * var(--u)); }
.fv__badge { cursor: pointer; transition: scale .35s cubic-bezier(.3, 1.5, .5, 1); }
html:not(.intro) .fv__badge:hover, .fv.is-play .fv__badge:hover { scale: 1.05; }
.intro .fv:not(.is-play) .fv__badge { pointer-events: none; }
.fv__badge.is-open { visibility: hidden; }
.fv__badge-circle { position: relative; display: grid; place-items: center; width: calc(200 * var(--u)); height: calc(200 * var(--u)); border-radius: 50%; background: var(--white); }
.fv__badge-circle img { width: calc(150 * var(--u)); height: auto; }
.fv__badge-arc { position: absolute; left: -25%; top: -25%; width: 150%; height: 150%; overflow: visible; pointer-events: none; }
.fv__badge-arc text { font-family: var(--ja); font-weight: 700; font-size: 16px; letter-spacing: .14em; fill: var(--ink); }
.fv__badge-arc .t { fill: var(--teal); }
.fv__item { animation: fvdrift var(--dur, 14s) ease-in-out var(--dly, 0s) infinite; will-change: transform; }
@keyframes fvdrift {
  0%, 100% { transform: translate(0, 0) rotate(0deg) scale(1, 1); }
  30% { transform: translate(calc(var(--mx, 10) * var(--u)), calc(var(--my, 8) * var(--u))) rotate(calc(var(--mr, 3) * 1deg)) scale(1.035, .97); }
  65% { transform: translate(calc(var(--mx, 10) * -.7 * var(--u)), calc(var(--my, 8) * .6 * var(--u))) rotate(calc(var(--mr, 3) * -.8deg)) scale(.97, 1.03); }
}
.fv__opening { display: none; }
html.intro:not(.fv-played), html.intro:not(.fv-played) body { overflow: hidden; overscroll-behavior: none; }
.intro .fv__opening { display: block; position: absolute; inset: 0; width: 100%; height: 100%; transition: opacity .45s ease; }
.fv__opening.is-gone { opacity: 0; pointer-events: none; }
.fv__skip { display: none; }
.intro .fv__skip { display: inline-flex; position: absolute; z-index: 3; right: calc(32 * var(--u)); bottom: calc(32 * var(--u)); align-items: center; gap: 12px; height: 40px; padding: 0 18px 0 20px; border-radius: 999px; background: rgba(255, 255, 255, .7); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); font-family: var(--en); font-size: 13px; letter-spacing: .06em; transition: opacity .4s ease, background-color .3s ease; }
.intro .fv__skip:hover { background: #fff; }
.intro .fv.is-landed .fv__skip, .intro .fv.is-skipped .fv__skip { opacity: 0; pointer-events: none; }
.intro .fv:not(.is-landed) .fv__item { opacity: 0; animation: none; }
.intro .header { opacity: 0; translate: 0 -12px; }
.intro .fv__badge-circle { scale: 0; }
.intro .fv__badge-arc { opacity: 0; rotate: -24deg; }
.intro .fv__copyright { opacity: 0; }
.intro .fv__title, .intro .fv__en { visibility: hidden; }
.fv.is-split .fv__title, .fv.is-split .fv__en { visibility: visible; }
.header { transition: opacity .8s ease 1.4s, translate .9s cubic-bezier(.2, .8, .2, 1) 1.4s; }
.fv-played .header { opacity: 1; translate: 0 0; }
.fv.is-play .fv__badge-circle { scale: 1; transition: scale 1s cubic-bezier(.3, 1.5, .45, 1) 1.8s; }
.fv.is-play .fv__badge-arc { opacity: 1; rotate: 0deg; transition: opacity .8s ease 2.1s, rotate 1.4s cubic-bezier(.2, .9, .25, 1) 2.1s; }
.fv.is-play .fv__copyright { opacity: 1; transition: opacity 1s ease 2.4s; }
.fv__title { --stroke: var(--ink); }
.fv__title .ch { transition: color .18s ease; transform-origin: 50% 85%; }
.fv__en em:first-of-type { display: inline-block; transform-origin: 50% 80%; transition: color .2s ease; }
.kball { position: absolute; left: 0; top: 0; border-radius: 50%; pointer-events: none; opacity: 0; }
.fv__title em, .fv__en em { --stroke: var(--teal); }
.fv__en { --stroke: var(--ink); }
.ch { position: relative; display: inline-block; }
.ch__f { display: inline-block; }
.ch__o { position: absolute; left: 0; top: 0; color: transparent; -webkit-text-stroke: .022em var(--stroke); pointer-events: none; opacity: 0; scale: 1.08; }
.fv__en .ch__o { -webkit-text-stroke-width: .035em; }
.w { display: inline-block; white-space: nowrap; }
.ch__o { display: none; }
.fv.is-split:not(.is-play) .fv__title, .fv.is-split:not(.is-play) .fv__en { opacity: 0; }
.fv.is-play .fv__title { animation: copyin 1s ease .1s backwards; }
.fv.is-play .fv__en { animation: copyin 1s ease .45s backwards; }
@keyframes copyin { from { opacity: 0; } }
.fv__copyright { position: absolute; left: calc(32 * var(--u)); bottom: calc(32 * var(--u)); font-size: max(11px, calc(14 * var(--u))); }
.fv__copyright span, .footer__copyright span { color: var(--teal); }
.movie { position: relative; height: 230vh; background: var(--mint); }
.movie__pin { position: sticky; top: 0; height: 100vh; overflow: hidden; }
.movie__frame { position: absolute; inset: 0; background: var(--white); display: grid; place-items: center; clip-path: inset(var(--it, 110px) var(--il, 177px) var(--it, 110px) var(--il, 177px) round var(--r, 24px)); will-change: clip-path; }
.movie.is-static { height: auto; padding: calc(79 * var(--u)) 0 calc(85 * var(--u)); }
.movie.is-static .movie__pin { position: static; height: auto; overflow: visible; }
.movie.is-static .movie__frame { position: relative; inset: auto; width: calc(1086 * var(--u)); aspect-ratio: 1086 / 679; margin: 0 auto; border-radius: calc(24 * var(--u)); clip-path: none; }
.movie__frame { background: #0d0f0e; }
.movie__video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.movie.is-static .movie__video { position: absolute; }
.movie__sound { position: absolute; z-index: 2; right: calc(var(--il, 177px) + 28px); bottom: calc(var(--it, 110px) + 24px); width: 52px; height: 52px; border-radius: 50%; display: grid; place-items: center; color: #fff; background: rgba(255, 255, 255, .16); border: 1px solid rgba(255, 255, 255, .35); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); transition: background-color .3s ease; }
.movie__sound:hover { background: rgba(255, 255, 255, .28); }
.movie.is-static .movie__sound { right: 24px; bottom: 20px; }
.movie__sound svg { width: 22px; height: 22px; }
.movie__sound .on, .movie__sound[aria-pressed="true"] .off { display: none; }
.movie__sound[aria-pressed="true"] .on { display: block; }
.heading { display: flex; flex-direction: column; gap: calc(6 * var(--u)); }
.heading__en { font-family: var(--en); font-size: calc(64 * var(--u)); line-height: 1.1; }
.heading__ja { font-size: calc(14 * var(--u)); color: var(--teal); }
.swap { --swap-bg: #fff; --fg: var(--ink); --line: rgba(35, 39, 34, .22); --chip-bg: var(--mint2); --chip-fg: var(--deep); --area-bg: rgba(79, 188, 188, .2); --ai-bg: rgba(80, 157, 146, .08); background: var(--white); color: var(--fg); transition: background-color .8s ease, color .8s ease; }
.swap.is-dark { --fg: var(--white); --line: rgba(255, 255, 255, .35); --chip-bg: rgba(255, 255, 255, .1); --chip-fg: #8fe3df; --area-bg: rgba(79, 188, 188, .18); --ai-bg: rgba(255, 255, 255, .05); background: var(--ink); }
.swap .table, .swap .table > div { transition: background-color .8s ease, color .8s ease, border-color .8s ease; }
.service { position: relative; z-index: 1; overflow-x: clip; overflow-y: visible; }
.marquee { position: relative; margin-top: calc(-20 * var(--u)); white-space: nowrap; font-family: var(--en); font-size: calc(200 * var(--u)); line-height: 1.1; color: rgba(0, 173, 173, .1); z-index: 0; letter-spacing: .02em; }
.marquee span { display: inline-block; animation: marquee 40s linear infinite; }
@keyframes marquee { to { transform: translateX(-50%); } }
.s6m__inner { padding: calc(300 * var(--u)) calc(69 * var(--u)) calc(160 * var(--u)); }
.s6m__line--ai { margin-top: calc(14 * var(--u)); }
.s6m__line--ai .ai { font-family: var(--en); font-size: 1.2em; line-height: 1; letter-spacing: -.02em; background: linear-gradient(100deg, #00adad, #428fe0 55%, #8f7cf0); -webkit-background-clip: text; background-clip: text; color: transparent; padding-right: .02em; }
.s6m__line { cursor: default; }
.s6m__line .w2 { margin-left: .22em; }
.s6m__nyan { position: relative; flex: none; width: 1.06em; height: 1em; margin: 0 .1em 0 .14em; translate: 0 -.04em; overflow: visible; filter: drop-shadow(0 .06em .16em rgba(0, 0, 0, .16)); scale: 0; transform-origin: 50% 90%; transition: scale .8s cubic-bezier(.2, 1.5, .4, 1) .9s; }
.s6m.is-in .s6m__nyan { scale: 1; }
.s6m__nyan { cursor: pointer; touch-action: manipulation; }
.s6m__nyan * { pointer-events: none; }
.s6m__nyan-wrap { position: relative; display: flex; flex: none; }
.s6m__say { position: absolute; left: 50%; bottom: calc(100% + .34em); z-index: 3; display: flex; align-items: center; min-height: 34px; padding: 8px 14px; border-radius: 16px; background: #fff; color: var(--ink); filter: drop-shadow(0 5px 12px rgba(17, 20, 19, .14)) drop-shadow(0 0 1px rgba(17, 20, 19, .22)); font-size: 12.5px; font-weight: 500; letter-spacing: .04em; line-height: 1.5; white-space: nowrap; pointer-events: none; opacity: 0; translate: calc(var(--ax, .5) * -100% + var(--sx, 0px)) 6px; scale: .92; transform-origin: calc(var(--ax, .5) * 100% - var(--sx, 0px)) 100%; transition: opacity .2s ease, translate .3s cubic-bezier(.2, 1.4, .4, 1), scale .3s cubic-bezier(.2, 1.4, .4, 1); }
.s6m__say::after { content: ""; position: absolute; left: calc(var(--ax, .5) * 100% - var(--sx, 0px)); top: calc(100% - 1px); width: 14px; height: 8px; translate: -50% 0; background: inherit; clip-path: polygon(0 0, 100% 0, 50% 100%); transition: left .3s cubic-bezier(.2, 1.4, .4, 1); }
.s6m__say.is-on { opacity: 1; translate: calc(var(--ax, .5) * -100% + var(--sx, 0px)) 0; scale: 1; }
.s6m__say-dots { display: none; gap: 4px; padding: 0 2px; }
.s6m__say-dots i { width: 6px; height: 6px; border-radius: 50%; background: #9aa5a4; animation: s6dots 1s ease-in-out infinite; }
.s6m__say-dots i:nth-child(2) { animation-delay: .15s; }
.s6m__say-dots i:nth-child(3) { animation-delay: .3s; }
@keyframes s6dots { 0%, 60%, 100% { translate: 0 0; opacity: .5; } 30% { translate: 0 -3px; opacity: 1; } }
.s6m__say-msg { display: none; align-items: center; gap: 6px; }
.s6m__say.is-typing .s6m__say-dots { display: flex; }
.s6m__say.is-talking .s6m__say-msg { display: flex; }
.s6m__say-logo { width: 26px; height: auto; aspect-ratio: 98 / 40; fill: var(--teal); }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.s6m__lines { display: flex; flex-direction: column; gap: calc(10 * var(--u)); font-weight: 900; font-size: clamp(26px, calc(78 * var(--u)), 112px); line-height: 1.3; letter-spacing: -.01em; }
.s6m__line { display: flex; align-self: flex-start; align-items: center; flex-wrap: nowrap; white-space: nowrap; opacity: 0; translate: 0 .4em; transition: opacity .7s ease, translate .9s cubic-bezier(.2, .8, .2, 1); transition-delay: calc(var(--i) * .14s); }
.s6m.is-in .s6m__line { opacity: 1; translate: 0 0; }
.s6m__line .v { color: var(--teal); }
.s6m__line:not(.s6m__line--ai) { align-self: stretch; }
.s6m__win { position: relative; display: block; flex: 1 1 auto; min-width: 2.6em; height: var(--wh, .82em); translate: 0 var(--wy, 0); margin: 0 .16em 0 .18em; border-radius: 999px; overflow: hidden; background: #dfe6e5; --d: calc(.45s + var(--i, 0) * .18s);
  transform-origin: calc(var(--wh, .82em) / 2) 50%; scale: 0; clip-path: inset(0 calc(100% - var(--wh, .82em)) 0 0 round 999px); transition: scale .5s cubic-bezier(.3, 1.6, .5, 1) var(--d), clip-path 1s cubic-bezier(.7, 0, .2, 1) calc(var(--d) + .45s); }
.s6m__lines.is-measuring .s6m__line { align-self: flex-start; }
.s6m__lines.is-measuring .s6m__win { flex: none; width: 2.6em; }
.s6m.is-in .s6m__win { scale: 1; clip-path: inset(0 0 0 0 round 999px); }
.s6m__win > :first-child { clip-path: inset(0 100% 0 0); }
.s6m.is-in .s6m__win > :first-child { clip-path: inset(0 0 0 0); }
.s6m__win { cursor: pointer; }
.s6m__more { position: absolute; inset: 0; z-index: 1; display: flex; align-items: center; justify-content: center; gap: .1em; font-size: .17em; font-weight: 700; letter-spacing: .06em; color: #fff; background: rgba(17, 20, 19, .58); opacity: 0; transition: opacity .35s ease; }
.s6m__arrow { position: absolute; z-index: 2; right: calc(var(--wh, .82em) * .14); top: 50%; translate: 0 -50%; width: calc(var(--wh, .82em) * .72); height: calc(var(--wh, .82em) * .72); max-width: 52px; max-height: 52px; opacity: 0; transition: opacity .4s ease calc(var(--d) + 1.6s); }
.s6m.is-in .s6m__arrow { opacity: 1; }
.s6m__win .s6m__arrow { background: var(--teal); }
.s6m__arrow .dot::before { background: #fff; }
.s6m__arrow .dot::after { border-color: #fff; }
.s6m__win:hover .s6m__more, .s6m__win:focus-visible .s6m__more { opacity: 1; }
.s6m__win > :first-child { transition: scale .6s cubic-bezier(.2, .8, .2, 1), clip-path 1s cubic-bezier(.7, 0, .2, 1) calc(var(--d) + .85s); }
.s6m__win:hover > :first-child { scale: 1.06; }
.s6m__flow { position: absolute; inset: 0; display: flex; gap: .06em; width: max-content; animation: s6flow 60s linear infinite; }
.s6m__flow img { display: block; height: 100%; width: auto; aspect-ratio: 3 / 2; object-fit: cover; }
@keyframes s6flow { to { translate: -50% 0; } }
.s6m__video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.s6m__fade { position: absolute; inset: 0; }
.s6m__fade img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; animation: s6fade 16s linear infinite; animation-delay: calc(var(--k) * 4s - 1s); }
@keyframes s6fade { 0% { opacity: 0; scale: 1.08; } 6%, 31% { opacity: 1; } 37% { opacity: 0; scale: 1; } 100% { opacity: 0; scale: 1; } }
.company { position: relative; padding: calc(200 * var(--u)) 0 calc(220 * var(--u)); }
.company__inner { padding: 0 calc(70 * var(--u)); }
.company__body { position: relative; margin-top: calc(80 * var(--u)); }
.table { position: relative; z-index: 1; width: 100%; border-top: 1px solid var(--line); }
.table > div { display: grid; grid-template-columns: calc(120 * var(--u)) 1fr; padding: calc(24 * var(--u)) 0; border-bottom: 1px solid var(--line); }
.table dt { font-size: calc(14 * var(--u)); line-height: 1.8; }
.biz { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: calc(6 * var(--u)) calc(32 * var(--u)); max-width: 50%; }
.biz li { position: relative; padding-left: 1em; }
.biz li::before { content: ""; position: absolute; left: 0; top: .82em; width: 5px; height: 5px; border-radius: 50%; background: var(--teal); translate: 0 -50%; }
.table dd { font-family: var(--ja); font-weight: 400; font-size: calc(16 * var(--u)); line-height: 1.9; }
.company__maps { position: absolute; z-index: 2; inset: 0 0 auto auto; width: calc(700 * var(--u)); height: 100%; pointer-events: none; }
.company__maps .map { pointer-events: auto; }
.map { position: absolute; width: calc(300 * var(--u)); height: calc(529 * var(--u)); border-radius: 999px; overflow: hidden; background: #d9d9d9; will-change: transform; isolation: isolate; -webkit-mask-image: -webkit-radial-gradient(white, black); box-shadow: 0 calc(30 * var(--u)) calc(60 * var(--u)) rgba(0, 0, 0, .12); }
.map:first-child { left: calc(30 * var(--u)); top: calc(32 * var(--u)); }
.map:last-child { left: calc(366 * var(--u)); top: calc(279 * var(--u)); }
.map iframe { position: absolute; inset: -40px; width: calc(100% + 80px); height: calc(100% + 80px); border: 0; }
.map figcaption { z-index: 2;  position: absolute; left: 50%; bottom: calc(36 * var(--u)); transform: translateX(-50%); white-space: nowrap; font-size: calc(13 * var(--u)); color: var(--ink); background: rgba(255, 255, 255, .9); padding: calc(8 * var(--u)) calc(16 * var(--u)); border-radius: 999px; pointer-events: none; }
.maplink { display: none; }
.news { display: grid; grid-template-columns: calc(288 * var(--u)) calc(1013 * var(--u)); padding: calc(150 * var(--u)) 0 calc(320 * var(--u)) calc(69 * var(--u)); }
.news__side .pill { margin-top: calc(32 * var(--u)); }
.pill { display: inline-flex; align-items: center; gap: calc(30 * var(--u)); height: calc(45 * var(--u)); padding: 0 calc(20 * var(--u)); border-radius: 999px; background: var(--mint); font-family: var(--ja); font-size: calc(14 * var(--u)); }
.tabs { position: relative; display: flex; align-items: center; gap: calc(2 * var(--u)); padding-bottom: calc(32 * var(--u)); border-bottom: 1px solid #dde5e2; }
.tabs button { position: relative; z-index: 1; font-size: calc(14 * var(--u)); padding: calc(6 * var(--u)) calc(17 * var(--u)); border-radius: 999px; transition: color .3s ease; }
.tabs__ink { position: absolute; z-index: 0; border-radius: 999px; background: var(--ink); pointer-events: none; }
.tabs.has-ink button { color: #fff; mix-blend-mode: difference; }
.tabs:not(.has-ink) [aria-selected="true"] { background: var(--ink); color: var(--white); }
.news__list li { border-bottom: 1px solid #dde5e2; }
.news__list a { display: grid; grid-template-columns: calc(150 * var(--u)) calc(70 * var(--u)) 1fr auto; align-items: center; gap: calc(32 * var(--u)); padding: calc(16 * var(--u)) 0; }
.thumb { width: calc(150 * var(--u)); height: calc(84 * var(--u)); border-radius: 8px; background: var(--mint); display: grid; place-items: center; overflow: hidden; }
.thumb img { width: 100%; height: 100%; object-fit: cover; transition: scale .5s cubic-bezier(.2, .8, .2, 1); }
.thumb--badge { background: var(--white); box-shadow: inset 0 0 0 1px #dde5e2; }
.thumb--badge img { width: 78%; height: 78%; object-fit: contain; }
.thumb svg { width: 40%; aspect-ratio: 98 / 40; fill: var(--white); }
.thumb--teal { background: var(--teal); }
.thumb--ink { background: var(--ink); }
.thumb--ink svg { fill: var(--teal); }
.news__list a:hover .thumb img { scale: 1.05; }
.news__list time { font-family: var(--en); font-weight: 400; white-space: nowrap; font-variant-numeric: tabular-nums; font-size: calc(12 * var(--u)); color: var(--deep); }
.news__text { display: flex; flex-direction: column; gap: calc(6 * var(--u)); }
.news__title { font-size: calc(16 * var(--u)); }
.news__cat { font-size: calc(12 * var(--u)); color: var(--deep); }
.arrow { width: calc(31 * var(--u)); height: calc(31 * var(--u)); border-radius: 50%; overflow: hidden; background: var(--mint); display: grid; place-items: center; }
@media (min-width: 1441px) {
  :root { --gut: calc((100vw - 1302px) / 2); }
  .s6m__inner, .company__inner, .footer { padding-left: var(--gut); padding-right: var(--gut); }
  .news { padding-left: var(--gut); }
}
.contact { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); grid-template-areas: "text works"; width: min(calc(100% - 2 * 69 * var(--u)), 1240px); min-height: calc(520 * var(--u)); margin: calc(-170 * var(--u)) auto calc(120 * var(--u)); z-index: 1; border-radius: calc(36 * var(--u)); overflow: hidden; isolation: isolate; background: #151918; color: var(--white); }
.contact__text { grid-area: text; position: relative; z-index: 1; align-self: center; padding: calc(80 * var(--u)) calc(40 * var(--u)) calc(80 * var(--u)) calc(72 * var(--u)); }
.contact .heading__en { font-size: calc(56 * var(--u)); }
.contact .heading__ja { color: #8fe3df; }
.contact__lead { margin-top: calc(28 * var(--u)); font-weight: 400; font-size: calc(14 * var(--u)); line-height: 2; color: rgba(255, 255, 255, .78); }
.contact__actions { display: grid; gap: calc(12 * var(--u)); width: min(100%, calc(360 * var(--u))); margin-top: calc(40 * var(--u)); }
.contact__btn { display: flex; align-items: center; justify-content: space-between; height: calc(60 * var(--u)); padding: 0 calc(26 * var(--u)) 0 calc(28 * var(--u)); border-radius: 999px; background: rgba(255, 255, 255, .06); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .4); color: var(--white); font-size: calc(14 * var(--u)); transition: translate .3s ease, background-color .3s ease, color .3s ease; }
.contact__btn .dot::before { background: currentColor; }
.contact__btn .dot::after { border-color: currentColor; }
.contact__btn--main { background: var(--teal); box-shadow: none; }
.contact__btn--main:hover { background: #00c2c2; }
.contact__btn:not(.contact__btn--main):hover { background: var(--white); color: var(--ink); }
.contact__works { grid-area: works; position: relative; overflow: hidden; }
.contact__works::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, #151918, rgba(21, 25, 24, 0) 22%), rgba(21, 25, 24, .18); pointer-events: none; }
.contact__tilt { position: absolute; left: 2%; right: -16%; top: -45%; bottom: -45%; display: flex; gap: calc(14 * var(--u)); rotate: -14deg; }
.contact__col { flex: 1; min-width: 0; overflow: hidden; }
.contact__col:nth-child(n+4) { display: none; }
.contact__track { display: flex; flex-direction: column; gap: calc(14 * var(--u)); animation: contactcol calc(60s + var(--k) * 14s) linear infinite; }
.contact__col:nth-child(even) .contact__track { animation-direction: reverse; }
.contact__track img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: calc(8 * var(--u)); }
@keyframes contactcol { to { translate: 0 -50%; } }
.anniv { position: fixed; inset: 0; z-index: 100; }
.anniv[hidden] { display: none; }
.anniv__shade { position: absolute; inset: 0; background: rgba(17, 20, 19, .5); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); opacity: 0; transition: opacity .4s ease; }
.anniv.is-open .anniv__shade { opacity: 1; }
.anniv__card { position: absolute; left: 50%; top: 50%; translate: -50% -50%; display: flex; align-items: center; gap: calc(56 * var(--u)); width: min(calc(1080 * var(--u)), calc(100vw - 64px)); min-height: min(calc(400 * var(--u)), 70vh); padding: 0 max(calc(90 * var(--u)), 84px) 0 calc(56 * var(--u)); border-radius: 999px; background: rgba(255, 255, 255, .94); -webkit-backdrop-filter: blur(14px) saturate(1.6); backdrop-filter: blur(14px) saturate(1.6); box-shadow: inset 0 1px 1px rgba(255, 255, 255, .9), inset 0 0 0 1px rgba(255, 255, 255, .5), 0 24px 60px rgba(17, 20, 19, .28); overflow: hidden; }
.anniv__logo { flex: none; height: min(calc(328 * var(--u)), 57vh); width: auto; opacity: 0; scale: .9; transition: opacity .15s ease, scale .2s ease; }
.anniv.is-stretched .anniv__logo { opacity: 1; scale: 1; transition: opacity .4s ease, scale .7s cubic-bezier(.32, .72, 0, 1); }
.anniv__body { flex: 1; min-width: 0; padding: calc(36 * var(--u)) 0; }
.anniv__title, .anniv__text { opacity: 0; translate: 0 10px; transition: opacity .15s ease, translate .2s ease; }
.anniv.is-stretched .anniv__title, .anniv.is-stretched .anniv__text { opacity: 1; translate: 0 0; transition: opacity .4s ease .05s, translate .7s cubic-bezier(.32, .72, 0, 1) .05s; }
.anniv.is-stretched .anniv__text { transition-delay: .1s; }
.anniv__title { font-weight: 900; font-size: calc(34 * var(--u)); letter-spacing: .02em; }
.anniv__title span { color: var(--teal); white-space: nowrap; }
.anniv__text { margin-top: calc(26 * var(--u)); font-size: calc(17 * var(--u)); line-height: 2.1; }
.anniv__close { position: absolute; right: max(calc(34 * var(--u)), 20px); top: 50%; translate: 0 -50%; width: 40px; height: 40px; border-radius: 50%; background: var(--mint); opacity: 0; transition: opacity .15s ease, background-color .25s ease; }
.anniv.is-stretched .anniv__close { opacity: 1; transition: opacity .4s ease .15s, background-color .25s ease; }
.anniv__close::before, .anniv__close::after { content: ""; position: absolute; left: 50%; top: 50%; width: 14px; height: 2px; background: var(--ink); translate: -50% -50%; rotate: 45deg; }
.anniv__close::after { rotate: -45deg; }
.anniv__close:hover { background: #d6e2df; }
.footer { position: relative; padding: calc(40 * var(--u)) calc(69 * var(--u)) calc(44 * var(--u)); font-size: calc(13 * var(--u)); }
.footer > * { max-width: calc(1302 * var(--u)); margin-left: auto; margin-right: auto; }
.footer__hero { position: relative; display: flex; justify-content: space-between; min-height: calc(330 * var(--u)); padding-top: calc(150 * var(--u)); }
.footer__giant { position: absolute; top: 0; left: calc(50% - 50vw); width: 100vw; overflow: hidden; font-family: var(--en); font-size: calc(200 * var(--u)); line-height: 1.1; letter-spacing: .02em; white-space: nowrap; color: var(--white); pointer-events: none; user-select: none; }
.footer__giant span { display: inline-block; animation: giantrun 40s linear infinite; }
@keyframes giantrun { to { translate: -50% 0; } }
.footer__vision em { color: var(--teal); }
.footer__vision .ch { transition: color .18s ease; transform-origin: 50% 85%; }
.footer__vision { position: relative; font-weight: 900; font-size: calc(34 * var(--u)); line-height: 1.6; letter-spacing: .02em; }
.footer__home { position: relative; flex: none; align-self: flex-end; }
.footer__logo { display: block; width: calc(190 * var(--u)); height: calc(78 * var(--u)); fill: var(--teal); }
.footer__row { display: flex; align-items: center; justify-content: space-between; gap: calc(24 * var(--u)); margin-top: calc(70 * var(--u)); padding: calc(28 * var(--u)) 0; border-top: 1px solid var(--ink); border-bottom: 1px solid var(--ink); }
.footer__nav { display: flex; flex-wrap: wrap; gap: calc(10 * var(--u)); }
.footer__nav a { display: inline-flex; align-items: center; gap: calc(28 * var(--u)); height: calc(52 * var(--u)); padding: 0 calc(22 * var(--u)) 0 calc(26 * var(--u)); border-radius: 999px; background: var(--white); font-size: calc(15 * var(--u)); transition: background-color .25s ease, color .25s ease; }
.footer__nav a:hover { background: var(--ink); color: var(--white); }
.footer__tail { display: flex; align-items: center; padding-left: calc(28 * var(--u)); border-left: 1px solid var(--ink); }
.footer__round { flex: none; display: grid; place-items: center; width: calc(52 * var(--u)); height: calc(52 * var(--u)); border-radius: 50%; background: var(--ink); color: var(--white); transition: background-color .25s ease; }
.footer__round svg { width: 40%; height: 40%; fill: currentColor; }
.footer__round:hover { background: var(--teal); }
.footer__bottom { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin-top: calc(40 * var(--u)); }
.footer__addr { display: flex; flex-wrap: nowrap; white-space: nowrap; align-items: baseline; gap: calc(6 * var(--u)) calc(24 * var(--u)); font-weight: 400; }
.footer__addr b { font-weight: 900; font-size: calc(17 * var(--u)); }
.footer__copyright { margin-top: calc(18 * var(--u)); font-family: var(--en); font-weight: 400; font-size: calc(12 * var(--u)); }
.footer__privacy { flex: none; white-space: nowrap; font-size: calc(12 * var(--u)); transition: color .25s ease; }
.footer__privacy:hover { color: var(--teal); }
.s6m__label { display: none; }
.header__menu, .header__island, .menu, .menu-scrim { display: none; }
@media (max-width: 767px) {
  .biz { max-width: none; grid-template-columns: 1fr; gap: 4px; }
  :root { --u: calc(100vw / 390); }
  .header { height: 72px; padding: 0 16px; }
  .header__logo svg { width: 74px; height: 30px; }
  .header__nav { display: none; }
  html { scroll-padding-top: 72px; }
  .header { position: fixed; --gx: calc((100vw - 156px) / 2); }
  .header__contact { display: none; }
  .header__island { display: block; position: absolute; z-index: -1; left: 50%; top: 17px; width: calc(100% - 16px); height: 38px; translate: -50% 0; border-radius: 19px; overflow: hidden; background: linear-gradient(180deg, rgba(255, 255, 255, .78), rgba(255, 255, 255, .6)); -webkit-backdrop-filter: blur(14px) saturate(1.8) brightness(1.1); backdrop-filter: blur(14px) saturate(1.8) brightness(1.1);
    box-shadow: inset 0 1px 1px rgba(255, 255, 255, .9), inset 0 -1px 1px rgba(255, 255, 255, .35), inset 0 0 0 1px rgba(255, 255, 255, .35), inset 0 -6px 12px rgba(255, 255, 255, .16), 0 8px 22px rgba(17, 20, 19, .16), 0 0 0 .5px rgba(17, 20, 19, .08); opacity: 0; scale: 1 .6;
    transition: width .7s cubic-bezier(.32, .72, 0, 1), height .7s cubic-bezier(.32, .72, 0, 1), top .7s cubic-bezier(.32, .72, 0, 1), border-radius .7s cubic-bezier(.32, .72, 0, 1), scale .7s cubic-bezier(.32, .72, 0, 1), opacity .3s ease;
    transition: width .75s linear(0, .06 2%, .24 5%, .53 10%, .8 15%, .95 20%, 1.03 26%, 1.05 31%, 1.04 37%, 1.01 46%, .995 58%, 1), height .75s linear(0, .06 2%, .24 5%, .53 10%, .8 15%, .95 20%, 1.03 26%, 1.05 31%, 1.04 37%, 1.01 46%, .995 58%, 1), top .75s linear(0, .06 2%, .24 5%, .53 10%, .8 15%, .95 20%, 1.03 26%, 1.05 31%, 1.04 37%, 1.01 46%, .995 58%, 1), border-radius .75s linear(0, .06 2%, .24 5%, .53 10%, .8 15%, .95 20%, 1.03 26%, 1.05 31%, 1.04 37%, 1.01 46%, .995 58%, 1), scale .75s linear(0, .06 2%, .24 5%, .53 10%, .8 15%, .95 20%, 1.03 26%, 1.05 31%, 1.04 37%, 1.01 46%, .995 58%, 1), opacity .3s ease; }
  .header__logo, .header__menu { transition: translate .7s cubic-bezier(.32, .72, 0, 1), scale .7s cubic-bezier(.32, .72, 0, 1);
    transition: translate .75s linear(0, .06 2%, .24 5%, .53 10%, .8 15%, .95 20%, 1.03 26%, 1.05 31%, 1.04 37%, 1.01 46%, .995 58%, 1), scale .75s linear(0, .06 2%, .24 5%, .53 10%, .8 15%, .95 20%, 1.03 26%, 1.05 31%, 1.04 37%, 1.01 46%, .995 58%, 1); }
  .header__logo { transform-origin: 0 50%; }
  .header.is-island .header__island { width: 156px; opacity: 1; scale: 1; }
  .header.is-island .header__logo { translate: var(--gx) .6px; scale: .5; }
  .header.is-island .header__menu { translate: calc(-1 * var(--gx)) .6px; }
  .header__menu { position: relative; display: flex; align-items: center; gap: 8px; margin-left: auto; height: 44px; padding: 0 2px; font-family: var(--en); font-size: 13px; font-weight: 700; letter-spacing: .14em; color: var(--teal); }
  .header__menu:is(:hover, :focus-visible) .dot, .header__menu:is(:hover, :focus-visible) .dot::before, .header__menu:is(:hover, :focus-visible) .dot::after { animation: none; }
  .header__menu:is(:hover, :focus-visible) .dot::before { width: 7px; height: 7px; }
  .header__menu:is(:hover, :focus-visible) .dot::after { opacity: 0; }
  .header__menu-roll { display: block; height: 1.3em; line-height: 1.3; overflow: hidden; translate: 0 .5px; }
  .header__menu-roll span { display: block; text-align: right; transition: translate .5s cubic-bezier(.32, .72, 0, 1); }
  .is-menu .header .header__island { top: 8px; width: calc(100% - 16px); height: var(--mh, 420px); border-radius: 28px; opacity: 1; scale: 1; background: linear-gradient(180deg, rgba(255, 255, 255, .88), rgba(255, 255, 255, .8)); }
  .is-menu .header .header__logo { translate: 12px -2px; scale: .62; }
  .is-menu .header .header__menu { translate: -12px -2px; }
  .is-menu .header__menu-roll span { translate: 0 -100%; }
  .is-menu, .is-menu body { overflow: hidden; }
  .menu-scrim { display: block; position: fixed; inset: 0; z-index: 8; background: rgba(17, 20, 19, .28); opacity: 0; pointer-events: none; transition: opacity .4s ease; }
  .is-menu .menu-scrim { opacity: 1; pointer-events: auto; }
  .menu { position: fixed; z-index: 11; top: 8px; left: 8px; right: 8px; display: flex; flex-direction: column; padding: 64px 20px 22px; color: var(--ink); max-height: calc(100dvh - 16px); overflow-y: auto; }
  .menu[hidden] { display: none; }
  .menu { pointer-events: none; }
  .menu > * { pointer-events: auto; }
  .menu__nav { display: flex; flex-direction: column; }
  .menu__nav a { display: flex; align-items: center; justify-content: space-between; padding: 15px 4px; border-bottom: 1px solid rgba(35, 39, 34, .1); font-size: 19px; font-weight: 700; letter-spacing: .04em; }
  .menu__nav a[aria-current="page"] { color: var(--teal); }
  .menu__foot { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 20px 4px 0; }
  .menu__contact { height: 46px; padding: 0 18px 0 22px; border-radius: 999px; background: var(--teal); color: var(--white); display: inline-flex; align-items: center; gap: 12px; font-size: 14px; font-weight: 700; }
  .menu__contact .dot::before { background: var(--white); }
  .menu__contact .dot::after { border-color: var(--white); }
  .menu__privacy { font-size: 11px; color: var(--sub); }
  .menu__nav a, .menu__foot { opacity: 0; translate: 0 -8px; transition: opacity .15s ease, translate .2s ease; }
  .menu.is-open .menu__nav a, .menu.is-open .menu__foot { opacity: 1; translate: 0 0; transition: opacity .4s ease .22s, translate .7s cubic-bezier(.32, .72, 0, 1) .22s; }
  .menu.is-open .menu__nav a:nth-child(2) { transition-delay: .27s; }
  .menu.is-open .menu__nav a:nth-child(3) { transition-delay: .32s; }
  .menu.is-open .menu__foot { transition-delay: .37s; }
  .fv { --u: min(calc(100vw / 390), calc(100svh / 760)); --dw: 390; --dh: 760; }
  .fv__item { left: calc(var(--sx) / var(--dw) * 100%); top: calc(var(--sy) / var(--dh) * 100%); width: calc(var(--sw) * var(--u)); }
  .fv__copy { left: 20px; right: 20px; top: calc(250 / 760 * 100%); }
  .fv__title { font-size: calc(31 * var(--u)); }
  .fv__en { font-size: 14px; margin-top: 14px; }
  .fv__badge { right: 16px; bottom: auto; top: calc(430 / 760 * 100%); width: 128px; }
  .fv__badge-circle { width: 128px; height: 128px; }
  .fv__badge-circle img { width: 96px; }
  .anniv__card { flex-direction: column; justify-content: center; gap: 16px; width: calc(100vw - 32px); height: auto; min-height: 0; max-height: calc(100svh - 48px); padding: 32px 24px 36px; border-radius: 32px; }
  .anniv__logo { height: 140px; }
  .anniv__body { padding: 0; }
  .anniv__title { font-size: 20px; text-align: center; }
  .anniv__text { margin-top: 14px; font-size: 14px; line-height: 1.95; }
  .anniv__close { top: 16px; right: 16px; translate: none; width: 36px; height: 36px; }
  .fv__copyright { display: none; }
  .movie.is-static { padding: 24px 16px 48px; }
  .movie.is-static .movie__frame { width: min(100%, calc(78svh * 9 / 16)); aspect-ratio: 9 / 16; border-radius: 16px; }
  .movie__sound { width: 44px; height: 44px; }
  .movie__sound svg { width: 20px; height: 20px; }
  .heading__en { font-size: 40px; }
  .heading__ja { font-size: 12px; }
  .core-logo { width: 52px; height: 22px; }
  .v-web { inset: 14px 14px 64px; }
  .v-film .play { width: 52px; }
  .v-film .prog { left: 16px; right: 16px; bottom: 80px; }
  .v-ad .kpi b { font-size: 28px; }
  .v-ad .bars { top: 24px; bottom: auto; height: 46%; left: auto; width: 46%; right: 16px; }
  .v-app .dash { display: none; }
  .v-app .phone { left: 50%; right: auto; top: 14px; width: 38%; height: 52%; translate: -50% 0; }
  .s6m__inner { padding: 160px 16px 160px; }
  .s6m__lines { font-size: 26px; gap: 52px; letter-spacing: -.01em; }
  .s6m__line, .s6m__line:not(.s6m__line--ai) { flex-wrap: wrap; align-self: stretch; row-gap: 10px; }
  .s6m__head { flex: 0 0 100%; }
  .s6m__line .w2 { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  .s6m__line .s6m__win { --wh: 1.5em; --wy: 0em; flex: 1 1 0; min-width: 0; margin: 0 .14em 0 0; }
  .s6m__win::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg, rgba(17, 20, 19, .62), rgba(17, 20, 19, .18) 62%, rgba(17, 20, 19, 0)); pointer-events: none; }
  .s6m__label { display: block; position: absolute; z-index: 2; left: .48em; top: 50%; translate: 0 -50%; color: var(--white); line-height: 1; white-space: nowrap; opacity: 0; transition: opacity .5s ease calc(var(--d) + 1s); }
  .s6m.is-in .s6m__label { opacity: 1; }
  .s6m__line .s6m__arrow { right: .26em; width: .92em; height: .92em; }
  .s6m__lines.is-measuring .s6m__line { flex-wrap: nowrap; }
  .s6m__lines.is-measuring .s6m__head { flex-basis: auto; }
  .s6m__lines.is-measuring .s6m__win { flex: none; width: 5.7em; }
  .marquee { position: static; font-size: 72px; margin-top: 24px; overflow: hidden; }
  .company { padding: 96px 0 120px; }
  .company__inner { padding: 0 20px; }
  .company__body { margin-top: 32px; }
  .table > div { grid-template-columns: 1fr; gap: 4px; padding: 16px 0; }
  .table dt { font-size: 12px; }
  .table dd { font-size: 14px; }
  .company__maps { display: none; }
  .maplink { display: inline-flex; align-items: center; gap: 5px; margin-left: 10px; vertical-align: middle; font-size: 12px; line-height: 1; color: var(--teal); text-decoration: none; white-space: nowrap; }
  .maplink__pin { width: 9px; height: 12px; fill: currentColor; transition: translate .3s cubic-bezier(.32, .72, 0, 1); }
  .maplink:is(:hover, :focus-visible) .maplink__pin { translate: 0 -2px; }
  .news { grid-template-columns: minmax(0, 1fr); padding: 72px 20px 120px; gap: 24px; }
  .news__side { display: flex; align-items: flex-end; justify-content: space-between; }
  .news__side .pill { margin: 0; }
  .pill { height: 38px; font-size: 12px; gap: 16px; padding: 0 16px; }
  .tabs { overflow-x: auto; gap: 2px; padding-bottom: 16px; scrollbar-width: none; }
  .tabs button { font-size: 12px; white-space: nowrap; }
  .tabs button { padding: 5px 14px; }
  .news__list a { grid-template-columns: 96px 1fr auto; grid-template-areas: "thumb time arrow" "thumb text arrow"; gap: 4px 14px; }
  .thumb { grid-area: thumb; width: 96px; height: 54px; }
  .news__list time { grid-area: time; align-self: end; font-size: 11px; }
  .news__text { grid-area: text; align-self: start; }
  .news__title { font-size: 14px; }
  .news__cat { font-size: 11px; }
  .arrow { grid-area: arrow; width: 28px; height: 28px; }
  .contact { grid-template-columns: 1fr; grid-template-areas: "text" "works"; width: calc(100% - 32px); min-height: 0; margin: -48px auto 64px; border-radius: 24px; }
  .contact__text { padding: 44px 24px 32px; }
  .contact .heading__en { font-size: 36px; }
  .contact__lead { font-size: 13px; margin-top: 18px; }
  .contact__lead br { display: none; }
  .contact__actions { width: 100%; margin-top: 24px; gap: 10px; }
  .contact__btn { height: 52px; font-size: 14px; padding: 0 20px 0 22px; }
  .contact__works { height: 240px; }
  .contact__works::after { background: linear-gradient(180deg, #151918, rgba(21, 25, 24, 0) 24%); }
  .contact__tilt { left: -10%; right: -10%; gap: 8px; }
  .contact__track { gap: 8px; }
  .footer { padding: 8px 20px 28px; font-size: 12px; }
  .footer__hero { flex-direction: column; align-items: flex-start; gap: 28px; min-height: 0; padding-top: 60px; }
  .footer__giant { font-size: 72px; }
  .footer__home { align-self: flex-start; }
  .footer__vision { font-size: 20px; }
  .footer__logo { width: 110px; height: 45px; }
  .footer__row { flex-direction: column; align-items: flex-start; gap: 16px; margin-top: 36px; padding: 20px 0; }
  .footer__nav { gap: 8px; }
  .footer__nav a { height: 44px; gap: 18px; padding: 0 16px 0 20px; font-size: 13px; }
  .footer__tail { padding-left: 0; border-left: 0; }
  .footer__round { width: 44px; height: 44px; }
  .footer__bottom { flex-direction: column; align-items: flex-start; margin-top: 28px; }
  .footer__addr { flex-direction: column; gap: 4px; white-space: normal; }
  .footer__addr b { font-size: 15px; }
  .footer__copyright { font-size: 11px; }
}
@media (prefers-reduced-motion: reduce) {
  .header__island, .header__logo, .header__menu, .header__menu-roll span, .menu-scrim, .menu__nav a, .menu__foot { transition: none !important; }
  .contact__track, .footer__giant span { animation: none; }
  .fv__item { animation: none; }
  .marquee span { animation: none; }
  .s6m__flow { animation: none; }
  .s6m__fade img { animation: none; }
  .s6m__fade img:first-child { opacity: 1; }
}
