h1, h2, h3 {
  font-family: zen-old-mincho, sans-serif;
  font-style: normal;
  font-weight: 700;
  letter-spacing: 0.1em;
}
:root{
  --font-sans: fino-sans, "Hiragino Sans", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, Osaka, "MS PGothic", sans-serif;
  --font-serif: zen-old-mincho, "Hiragino Mincho ProN", "MS明朝", serif;
  --fs-base:19px; --fs-h1:clamp(44px,6.2vw,68px); --fs-h2:clamp(24px,2.5vw,32px); --fs-h3:22px;
  --bg:#07080b; --bg2:#0b0d12; --fg:rgba(255,255,255,.92); --muted:rgba(255,255,255,.66);
  --line:rgba(255,255,255,.14); --line2:rgba(255,255,255,.08);
  --edge:linear-gradient(120deg,rgba(255,255,255,.45),rgba(255,255,255,0) 56%);
  --edge2:linear-gradient(200deg,rgba(255,255,255,.22),rgba(255,255,255,0) 60%);
  --shadow:0 22px 70px rgba(0,0,0,.52);
  --r-lg:8px; --r-md:4px;
  --container:1200px;
  --ease:cubic-bezier(.2,.8,.2,1);
  --dur1:420ms; --dur2:820ms; --dur3:1200ms;
  --focus:0 0 0 3px rgba(255,255,255,.18);
}
*{box-sizing:border-box}
html,body{height:100%}
html{scroll-behavior:smooth}
body{margin:0;font-family:var(--font-sans);font-size:var(--fs-base);line-height:1.6;color:var(--fg);background:var(--bg);overflow-x:hidden}

/* BG */
.bg{position:fixed;inset:0;pointer-events:none;z-index:-1}
.bg__grid{position:absolute;inset:-20%;background:
  linear-gradient(var(--line2) 1px,transparent 1px),
  linear-gradient(90deg,var(--line2) 1px,transparent 1px);
  background-size:60px 60px;transform:rotate(-8deg) translate3d(0,0,0);
  opacity:.35;animation:gridMove 18s linear infinite}
@keyframes gridMove{to{transform:rotate(-8deg) translate3d(-60px,-60px,0)}}
.bg__orbs .orb{position:absolute;width:52vmax;height:52vmax;border-radius:999px;filter:blur(48px);opacity:.22;mix-blend-mode:screen}
.bg__orbs .o1{left:-18vmax;top:-22vmax;background:radial-gradient(circle at 30% 30%,rgba(255,255,255,.55),rgba(255,255,255,0) 60%);animation:orb1 13s var(--ease) infinite alternate}
.bg__orbs .o2{right:-20vmax;top:5vmax;background:radial-gradient(circle at 40% 40%,rgba(160,170,180,.55),rgba(255,255,255,0) 62%);animation:orb2 16s var(--ease) infinite alternate}
.bg__orbs .o3{left:10vmax;bottom:-26vmax;background:radial-gradient(circle at 40% 40%,rgba(255,255,255,.45),rgba(255,255,255,0) 60%);animation:orb3 14s var(--ease) infinite alternate}
@keyframes orb1{to{transform:translate3d(10vmax,7vmax,0)}}
@keyframes orb2{to{transform:translate3d(-9vmax,5vmax,0)}}
@keyframes orb3{to{transform:translate3d(7vmax,-8vmax,0)}}
.bg__scan{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(255,255,255,0),rgba(255,255,255,.06),rgba(255,255,255,0));opacity:.18;animation:scan 3.8s linear infinite}
@keyframes scan{from{transform:translateY(-120%)}to{transform:translateY(120%)}}
.bg__noise{position:absolute;inset:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)' opacity='.28'/%3E%3C/svg%3E");opacity:.07;mix-blend-mode:overlay}

/* Drawer (Mobile Menu) */
.drawer {
  display: none;
  position: fixed;
  top: 60px; /* Header height */
  left: 0;
  right: 0;
  background: rgba(7, 8, 11, 0.95);
  backdrop-filter: blur(20px);
  padding: 24px;
  z-index: 999;
  border-bottom: 1px solid var(--line2);
}
.drawer.is-open {
  display: block;
  animation: drawerFade 0.3s var(--ease) forwards;
}
@keyframes drawerFade {
  from { opacity: 0; transform: translateY(-10px); }
  to { opacity: 1; transform: translateY(0); }
}
.drawer a {
  display: block;
  color: var(--fg);
  text-decoration: none;
  padding: 16px 0;
  font-family: fino-sans, sans-serif;
  font-weight: 700;
  font-size: 18px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  border-bottom: 1px solid var(--line2);
  transition: color 0.3s var(--ease);
}
.drawer a:last-child {
  border-bottom: 0;
}
.drawer a:hover {
  color: var(--muted);
}

/* Hamburger Menu Styles */
.hamb {
  background: transparent;
  border: 0;
  padding: 10px;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  gap: 6px;
  align-items: flex-end; /* Align lines to right */
  justify-content: center;
  width: 44px;
  height: 44px;
}
.hamb span {
  display: block;
  width: 24px;
  height: 2px;
  background: var(--fg);
  border-radius: 99px;
  transition: all 0.3s var(--ease);
}
.hamb span:last-child {
  width: 16px; /* Make one line shorter for a modern look */
}
/* When open (triggered via JS adding is-open to drawer or another parent) */
/* Assuming we might need to add a class to the button via JS, 
   but for now let's just make sure the base lines are correct. */

/* Header (Vertical Sidebar) */
.header {
  position: fixed;
  top: 0;
  right: 0;
  width: 80px; /* サイドバーの幅 */
  height: 100vh;
  background: var(--bg);
  border-left: 1px solid var(--line2);
  border-bottom: 0;
  z-index: 100;
  backdrop-filter: blur(20px);
}
.header__inner {
  height: 100%;
  padding: 32px 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
}
.brand {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
}
.brand__logo {
  height: auto;
  width: 40px; /* サイドバーの幅に収まるサイズに調整 */
  display: block;
  transform: rotate(90deg);
  transform-origin: center;
}
.nav {
  flex-direction: column;
  display: flex;
  align-items: center;
  gap: 32px;
  margin: auto 0;
}
.nav__a {
  font-family: fino-sans, sans-serif;
  font-weight: 700;
  font-style: normal;
  writing-mode: vertical-rl;
  padding: 4px 0;
  font-size: 14px;
  letter-spacing: 0.2em;
  color: var(--muted);
  text-decoration: none;
  transition: color var(--dur1) var(--ease);
  white-space: nowrap;
}
.nav__a:hover {
  color: var(--fg);
  background: transparent;
}
.header__cta {
  flex-direction: column;
  width: 100%;
  gap: 0;
}
.header__cta .btn {
  font-family: fino-sans, sans-serif;
  font-weight: 700;
  font-style: normal;
  width: 100%;
  border-radius: 0;
  border: 0;
  border-top: 1px solid var(--line2);
  padding: 32px 0;
  writing-mode: vertical-rl;
  font-size: 14px;
  letter-spacing: 0.1em;
}
.header__cta .btn--primary {
  background: rgba(255, 255, 255, 0.1);
  height: 160px; /* お問い合わせボタンの高さ */
}
.header__cta .btn--ghost {
  display: none; /* サイドバーでは片方のボタンを非表示にするか、調整 */
}

/* Hamburger for Sidebar */
.hamb {
  margin-bottom: 20px;
}

/* Main Content Adjustment */
body {
  padding-right: 80px; /* サイドバーの幅分、メインを左に寄せる */
}
@media (max-width: 980px) {
  .header {
    width: 60px;
  }
  body {
    padding-right: 60px;
  }
}
@media (max-width: 767px) {
  .header {
    display: block;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    width: 100%;
    height: 60px;
    border-left: 0;
    border-bottom: 1px solid var(--line2);
    background: rgba(7, 8, 11, 0.9);
    backdrop-filter: blur(12px);
    z-index: 1000;
  }
  .header__inner {
    flex-direction: row;
    padding: 0 18px;
    justify-content: space-between;
    align-items: center;
    height: 100%;
  }
  .brand {
    display: flex;
    justify-content: flex-start;
    width: auto;
  }
  .brand__logo {
    width: auto;
    height: 18px;
    transform: none;
  }
  .nav, .header__cta {
    display: none;
  }
  .hamb {
    display: flex;
    margin-bottom: 0;
    order: 2;
  }
  body {
    padding-right: 0 !important;
    overflow-x: hidden;
  }
  /* Fix broken drawer */
  .drawer {
    top: 60px;
    padding: 10px 20px;
  }
  .drawer a {
    padding: 12px 0;
    font-size: 16px;
  }
}

/* Hero Wide Adjustment */
.hero-wide__inner {
  max-width: var(--container);
  padding: 0 24px;
}
@media (max-width: 767px) {
  .hero-wide {
    min-height: 100vh;
    padding-top: 60px;
    text-align: left;
  }
  .hero-wide__bg img {
    object-fit: cover;
    object-position: 40% center; /* 車体が見える位置に調整 */
  }
  .hero-wide__overlay {
    background: linear-gradient(to bottom, rgba(7,8,11,0.3), rgba(7,8,11,0.7) 60%, rgba(7,8,11,0.9));
  }
  .hero-wide__copy {
    text-align: left !important;
    margin-left: 0 !important;
    max-width: 100%;
  }
  .hero__logo {
    justify-content: flex-start !important;
  }
  .hero__actions {
    justify-content: flex-start !important;
  }
}

/* Buttons */
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:12px 16px;border-radius:999px;text-decoration:none;color:var(--fg);
  border:1px solid var(--line);background:rgba(255,255,255,.04);backdrop-filter:blur(10px);
  transition:transform var(--dur1) var(--ease),border-color var(--dur1) var(--ease),background var(--dur1) var(--ease);will-change:transform}
.btn--lg{padding:14px 18px;font-size:18px}
.btn--primary{border-color:rgba(255,255,255,.3);
  background:linear-gradient(135deg, rgba(255,255,255,0.15) 0%, rgba(255,255,255,0.05) 100%);
  backdrop-filter:blur(20px);
  box-shadow:0 10px 40px rgba(0,0,0,0.3), inset 0 1px 1px rgba(255,255,255,0.2)}
.btn--ghost{background:rgba(255,255,255,.02); border-color: rgba(255,255,255,0.15); backdrop-filter: blur(10px);}
.btn:hover{transform:translate3d(0,-2px,0); border-color: rgba(255,255,255,0.6); background: rgba(255,255,255,0.1);}
.btn:focus-visible{outline:none;box-shadow:var(--focus)}
.btn::after{content:"";position:absolute;inset:-1px;border-radius:inherit;background:var(--edge);opacity:0;transition:opacity var(--dur2) var(--ease);pointer-events:none;mix-blend-mode:screen}
.btn:hover::after{opacity:.35}

/* Sections */
.section{padding:90px 18px}
.section--alt{background:linear-gradient(180deg,rgba(255,255,255,.02),rgba(255,255,255,0));border-top:1px solid var(--line2);border-bottom:1px solid var(--line2)}
.section__inner{max-width:var(--container);margin:0 auto}
.section__head{display:grid;gap:14px;margin-bottom:28px}
.h2{
  font-family: fino-sans, sans-serif;
  font-weight: 700;
  font-style: normal;
  font-size:var(--fs-h2);
  line-height:1.15;
  letter-spacing:0.2em;
  margin:0;
  display:flex;
  align-items:baseline;
  gap:16px;
  text-transform:uppercase;
}
.h2 span{font-size:13px;font-family:var(--font-sans);color:var(--muted);font-weight:400;letter-spacing:0.1em}
.sub{margin:0;color:var(--muted);max-width:76ch}

/* Hero Wide */
.hero-wide {
  position: relative;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  overflow: hidden;
}
@media (max-width: 767px) {
  .hero-wide {
    min-height: 100vh;
  }
  .hero-wide__bg img {
    object-fit: contain;
    object-position: center;
  }
}
.hero-wide__bg {
  position: absolute;
  inset: 0;
  z-index: -1;
}
.hero-wide__bg picture,
.hero-wide__bg img {
  width: 100%;
  height: 100%;
  display: block;
}
.hero-wide__bg img {
  object-fit: cover;
  object-position: center;
}
.hero-wide__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, rgba(7,8,11,0.4), rgba(7,8,11,0.8));
  transition: opacity 1.2s var(--ease);
  pointer-events: none;
}
.hero-wide__overlay.is-hidden {
  opacity: 0;
}
.hero-wide__inner {
  max-width: var(--container);
  margin: 0 auto;
  width: 100%;
  padding: 0 18px;
  position: relative;
  z-index: 1;
}
.hero-wide__copy {
  max-width: 650px;
  margin-left: auto;
  margin-right: 0;
  text-align: right;
}
@media (max-width: 980px) {
  .hero-wide__copy {
    margin-left: 0;
    margin-right: auto;
    text-align: left;
  }
  .hero__logo {
    justify-content: flex-start;
  }
  .hero__actions {
    justify-content: flex-start;
  }
}
.hero__logo {
  margin-bottom: 32px;
  display: flex;
  justify-content: flex-end;
  filter: drop-shadow(0 4px 15px rgba(0,0,0,0.4));
}
.hero__logo img {
  max-width: 320px;
  height: auto;
}
.hero__actions {
  justify-content: flex-end;
}

/* Hero */
.hero{padding:76px 18px 0}
.hero__inner{max-width:var(--container);margin:0 auto;display:grid;grid-template-columns:1.05fr .95fr;gap:30px;align-items:start}
.kicker{
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 6px 16px;
  border: 1px solid rgba(255,255,255,0.2);
  border-radius: 999px;
  background: rgba(255,255,255,0.05);
  color: var(--muted);
  font-size: 12px;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  margin-bottom: 24px;
  text-shadow: 0 2px 10px rgba(0,0,0,0.5);
}
.hero__h1{
  font-family: zen-old-mincho, sans-serif;
  font-style: normal;
  font-weight: 700;
  font-size: clamp(28px, 4vw, 40px);
  line-height: 1.2;
  margin: 0 0 12px;
  letter-spacing: 0.15em;
  text-shadow: 0 4px 20px rgba(0,0,0,0.6);
}
.hero__lead{
  margin: 0 0 32px;
  color: rgba(255,255,255,0.9);
  max-width: 60ch;
  font-size: 18px;
  letter-spacing: 0.05em;
  text-shadow: 0 2px 10px rgba(0,0,0,0.6);
}
.hero__actions{
  display: flex;
  gap: 16px;
  justify-content: flex-end;
  flex-wrap: wrap;
}
.hero__meta{display:flex;gap:12px;margin-top:26px;flex-wrap:wrap}
.metaCard{padding:14px;border-radius:var(--r-md);border:1px solid var(--line2);background:rgba(255,255,255,.03);min-width:170px;position:relative;overflow:hidden}
.metaCard::before{content:"";position:absolute;inset:0;background:var(--edge2);opacity:.22;pointer-events:none;transform:translateX(-20%)}
.metaCard__label{font-size:13px;color:var(--muted);letter-spacing:.14em;text-transform:uppercase}
.metaCard__value{font-weight:700;margin-top:6px}
.visualStack__frame{position:relative;border-radius:var(--r-lg);border:1px solid var(--line2);
  background:radial-gradient(120% 140% at 20% 10%,rgba(255,255,255,.06),rgba(255,255,255,.02) 60%,rgba(255,255,255,0));
  overflow:hidden;box-shadow:var(--shadow);transform-style:preserve-3d}
.visualStack__img{width:100%;height:auto;display:block;transform:translate3d(0,0,0) scale(1.02);filter:drop-shadow(0 28px 70px rgba(0,0,0,.55))}
.visualStack__shine{position:absolute;inset:-30%;background:linear-gradient(115deg,rgba(255,255,255,0),rgba(255,255,255,.22),rgba(255,255,255,0));
  transform:translateX(-55%) rotate(8deg);opacity:0;mix-blend-mode:screen}
.visualStack__ring{position:absolute;inset:-1px;border-radius:inherit;background:
  radial-gradient(120% 120% at 30% 20%,rgba(255,255,255,.28),rgba(255,255,255,0) 55%),
  radial-gradient(120% 120% at 70% 70%,rgba(160,170,180,.22),rgba(255,255,255,0) 55%);opacity:.22;pointer-events:none}
.visualStack__floating{position:absolute;right:16px;bottom:16px;display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.chip{padding:9px 12px;border-radius:999px;border:1px solid rgba(255,255,255,.16);background:rgba(0,0,0,.30);backdrop-filter:blur(10px);font-size:14px;letter-spacing:.10em}
.chip--line{border-color:var(--line);background:rgba(255,255,255,.03)}
.marquee{margin-top:34px;border-top:1px solid var(--line2);border-bottom:1px solid var(--line2);overflow:hidden}
.marquee__track{display:flex;gap:54px;padding:18px 0;white-space:nowrap;animation:marquee 18s linear infinite}
.marquee__track span{font-size:34px;letter-spacing:.12em;color:rgba(255,255,255,.12);text-transform:uppercase}
@keyframes marquee{to{transform:translateX(-50%)}}

/* Cards */
.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.card{position:relative;padding:18px;border-radius:var(--r-lg);border:1px solid var(--line2);
  background:radial-gradient(120% 180% at 15% 10%,rgba(255,255,255,.10),rgba(255,255,255,.03) 60%,rgba(255,255,255,0)),rgba(255,255,255,.02);overflow:hidden}
.card__top{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.card__no{font-weight:700;letter-spacing:.12em;color:rgba(255,255,255,.55)}
.card__line{height:1px;flex:1;background:linear-gradient(90deg,rgba(255,255,255,.22),rgba(255,255,255,0))}
.h3{margin:0 0 10px;font-size:var(--fs-h3)}
.card p{margin:0;color:var(--muted)}
.card__glow{position:absolute;inset:-30%;background:radial-gradient(circle at 30% 20%,rgba(255,255,255,.18),rgba(255,255,255,0) 55%);opacity:0;transition:opacity var(--dur2) var(--ease);pointer-events:none}
.card:hover .card__glow{opacity:1}

/* About Unit (Unified Layout) */
.about-unit {
  display: grid;
  grid-template-columns: 1.2fr 0.8fr;
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid var(--line2);
  border-radius: var(--r-lg);
  overflow: hidden;
  align-items: stretch;
}
.about-unit__text {
  padding: 48px;
}
.about-unit__p {
  font-size: 16px;
  line-height: 1.8;
}
.about-unit__visual {
  position: relative;
  overflow: hidden;
}
.about-unit__visual img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.about-unit__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(7,8,11,0.2), transparent);
}

@media (max-width: 980px) {
  .about-unit {
    grid-template-columns: 1fr;
  }
  .about-unit__text {
    padding: 32px 20px;
  }
  .about-unit__visual {
    height: auto;
    aspect-ratio: 4 / 3;
  }
}

/* Split */
.split{margin-top:26px;display:grid;grid-template-columns:1fr 1fr;gap:18px}
.panel{border-radius:var(--r-lg);border:1px solid var(--line2);background:rgba(255,255,255,.02);padding:22px;position:relative;overflow:hidden}
.panel::before{content:"";position:absolute;inset:-1px;background:radial-gradient(100% 120% at 20% 20%,rgba(255,255,255,.12),rgba(255,255,255,0) 55%);opacity:.55;pointer-events:none}
.panel__k{font-size:13px;letter-spacing:.18em;color:var(--muted);text-transform:uppercase}
.panel__t{font-size:26px;font-weight:700;margin-top:10px}
.panel__p{color:var(--muted);margin:12px 0 18px}
.shot{border-radius:var(--r-lg);border:1px solid var(--line2);background:rgba(255,255,255,.02);overflow:hidden;position:relative;box-shadow:var(--shadow)}
.shot img{display:block;width:100%;height:auto;transform:scale(1.05)}
.shot__edge{position:absolute;inset:-1px;background:var(--edge);opacity:.22;mix-blend-mode:screen;pointer-events:none}

/* Spec Table */
.specTable {
  border: 1px solid var(--line2);
  border-radius: var(--r-lg);
  background: rgba(255, 255, 255, 0.02);
  overflow: hidden;
  margin-bottom: 32px;
}
.specTable__row {
  display: grid;
  grid-template-columns: 240px 1fr;
  border-bottom: 1px solid var(--line2);
  position: relative;
}
.specTable__row:last-child {
  border-bottom: 0;
}
.specTable__cell {
  padding: 16px 20px;
  font-size: 15px;
}
.specTable__cell--label {
  color: var(--muted);
  background: rgba(255, 255, 255, 0.01);
  border-right: 1px solid var(--line2);
  font-family: var(--font-sans);
  font-weight: 500;
}
.specTable__cell--value {
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.specTable__note {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.4);
  margin-top: 4px;
}

@media (max-width: 767px) {
  .specTable__row {
    grid-template-columns: 100px 1fr;
  }
  .specTable__cell {
    padding: 12px 8px;
    font-size: 13px;
  }
  .specTable__cell--label {
    white-space: nowrap;
  }
}

/* Spec */
.spec{display:grid;gap:10px}
.specRow{display:grid;grid-template-columns:160px 1fr 1fr;gap:12px;padding:18px;border-radius:var(--r-lg);border:1px solid var(--line2);background:rgba(255,255,255,.02);position:relative;overflow:hidden}
.specRow::before{content:"";position:absolute;inset:-1px;background:linear-gradient(90deg,rgba(255,255,255,.10),rgba(255,255,255,0) 60%);opacity:.25;pointer-events:none}
.specRow__l{color:var(--muted)} .specRow__v{font-weight:800} .specRow__n{color:rgba(255,255,255,.55)}
.ctaStrip{margin-top:18px;padding:20px;border-radius:var(--r-lg);border:1px solid rgba(255,255,255,.16);
  background:radial-gradient(120% 180% at 20% 10%,rgba(255,255,255,.12),rgba(255,255,255,.04) 60%,rgba(255,255,255,.02));
  display:flex;align-items:center;justify-content:space-between;gap:16px}
.ctaStrip__k{font-size:13px;letter-spacing:.18em;color:var(--muted);text-transform:uppercase}
.ctaStrip__t{font-size:24px;font-weight:700;margin-top:6px}

/* Section Full Visual */
.section-full {
  position: relative;
  height: 60vh;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  text-align: center;
}
.section-full__bg {
  position: absolute;
  inset: 0;
  z-index: -1;
}
.section-full__bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.section-full__overlay {
  position: absolute;
  inset: 0;
  background: rgba(7, 8, 11, 0.4);
}
.section-full__inner {
  position: relative;
  z-index: 1;
  padding: 0 18px;
}
.h2-large {
  font-family: var(--font-serif);
  font-size: clamp(32px, 5vw, 56px);
  font-weight: 700;
  letter-spacing: 0.15em;
  margin-top: 16px;
  text-shadow: 0 4px 30px rgba(0,0,0,0.8);
}

/* Gallery */
.gallery{display:grid;grid-template-columns:repeat(12,1fr);gap:14px}
.gItem{grid-column:span 4;border-radius:var(--r-lg);border:1px solid var(--line2);background:rgba(255,255,255,.02);overflow:hidden;position:relative;box-shadow:var(--shadow)}
.gItem:nth-child(1){grid-column:span 7} .gItem:nth-child(2){grid-column:span 5}
.gItem:nth-child(3){grid-column:span 5} .gItem:nth-child(4){grid-column:span 7}
.gItem img{display:block;width:100%;height:auto;transform:scale(1.06)}
.gItem__shine{position:absolute;inset:-30%;background:linear-gradient(110deg,rgba(255,255,255,0),rgba(255,255,255,.22),rgba(255,255,255,0));
  transform:translateX(-60%) rotate(10deg);opacity:0;transition:opacity var(--dur2) var(--ease),transform var(--dur3) var(--ease);mix-blend-mode:screen;pointer-events:none}
.gItem:hover .gItem__shine{opacity:.28;transform:translateX(30%) rotate(10deg)}
.gItem figcaption{position:absolute;left:12px;bottom:12px;padding:8px 10px;border-radius:999px;border:1px solid rgba(255,255,255,.16);
  background:rgba(0,0,0,.36);backdrop-filter:blur(10px);font-size:14px;color:rgba(255,255,255,.82)}

/* Contact */
.contact{display:grid;grid-template-columns:1.1fr .9fr;gap:16px;align-items:start}
.form{border-radius:var(--r-lg);border:1px solid var(--line2);background:rgba(255,255,255,.02);padding:22px;display:grid;grid-template-columns:1fr 1fr;gap:14px}
.form label{display:flex;flex-direction:column;gap:8px}
.form span{color:var(--muted);font-size:14px;letter-spacing:.06em}
.form input,.form textarea{width:100%;border-radius:var(--r-md);border:1px solid rgba(255,255,255,0.14);background:rgba(0,0,0,0.28);color:var(--fg);
  padding:12px;font-size:18px;outline:none;transition:border-color var(--dur1) var(--ease)}
.form input:focus,.form textarea:focus{border-color:rgba(255,255,255,.30);box-shadow:var(--focus)}
.form label.full{grid-column:1/-1}
.form__actions{grid-column:1/-1;display:flex;gap:12px;flex-wrap:wrap}
.side{display:grid;gap:14px}
.side__card{border-radius:var(--r-lg);border:1px solid var(--line2);background:rgba(255,255,255,.02);padding:20px}
.side__card--accent{border-color:rgba(255,255,255,.18);background:radial-gradient(120% 180% at 20% 10%,rgba(255,255,255,.10),rgba(255,255,255,.04) 60%,rgba(255,255,255,.02))}
.side__k{font-size:13px;letter-spacing:.18em;color:var(--muted);text-transform:uppercase}
.side__t{font-size:24px;font-weight:800;margin-top:8px}
.side__p{color:var(--muted);margin-top:10px}

/* Footer */
.footer{padding:40px 18px 60px;border-top:1px solid var(--line2)}
.footer__inner{max-width:var(--container);margin:0 auto;display:flex;justify-content:space-between;align-items:center;gap:16px}
.footer__brand{display:flex;align-items:center;gap:12px}
.footer__logo{height:20px;width:auto;display:block}
.footer__title{font-weight:800;letter-spacing:.04em}
.footer__small{font-size:14px;color:var(--muted);margin-top:4px}
.toTop{width:46px;height:46px;display:grid;place-items:center;border-radius:999px;border:1px solid var(--line);background:rgba(255,255,255,.04);color:var(--fg);text-decoration:none}

/* Reveal */
.js-reveal{opacity:0;transform:translate3d(0,16px,0);filter:blur(8px)}
.is-in{opacity:1;transform:translate3d(0,0,0);filter:blur(0);
  transition:opacity var(--dur2) var(--ease),transform var(--dur2) var(--ease),filter var(--dur2) var(--ease);
  transition-delay:var(--d,0ms)}
[data-reveal="clip"]{clip-path:inset(0 100% 0 0 round var(--r-lg))}
[data-reveal="clip"].is-in{clip-path:inset(0 0 0 0 round var(--r-lg));transition:clip-path var(--dur3) var(--ease),opacity var(--dur2) var(--ease),transform var(--dur2) var(--ease),filter var(--dur2) var(--ease)}
[data-reveal="zoom"]{transform:translate3d(0,10px,0) scale(.96)}
[data-reveal="zoom"].is-in{transform:translate3d(0,0,0) scale(1)}
[data-reveal="line"]{transform:translate3d(-14px,0,0)}
[data-reveal="rise"]{transform:translate3d(0,22px,0)}
[data-reveal="fade"]{transform:none;filter:blur(10px)}
[data-reveal="fade"].is-in{filter:blur(0);transition:opacity var(--dur2) var(--ease),filter var(--dur2) var(--ease)}
.splitText span{display:inline-block;opacity:0;transform:translate3d(0,14px,0);filter:blur(10px)}
.splitText.is-in span{opacity:1;transform:translate3d(0,0,0);filter:blur(0);transition:opacity 700ms var(--ease),transform 700ms var(--ease),filter 700ms var(--ease)}

/* Tilt + shine */
.js-tilt{transform-style:preserve-3d}
.js-tilt:hover{border-color:rgba(255,255,255,.20)}
.visualStack__frame:hover .visualStack__shine{opacity:.22;animation:shineSweep 1.6s var(--ease) 1}
@keyframes shineSweep{from{transform:translateX(-65%) rotate(8deg)}to{transform:translateX(55%) rotate(8deg)}}

/* Responsive */
@media (max-width:980px){
  .nav,.header__cta{display:none}
  .hamb{display:block}
  .hero__inner{grid-template-columns:1fr;gap:18px}
  .cards{grid-template-columns:1fr 1fr}
  .split{grid-template-columns:1fr}
  .gallery{grid-template-columns:repeat(6,1fr)}
  .gItem{grid-column:span 6}
  .contact{grid-template-columns:1fr}
}
@media (max-width:560px){
  .cards{grid-template-columns:1fr}
  .form{grid-template-columns:1fr}
}
