/* ==========================================================
   ワイワイクリエイター / Y.Y. Creator
   色：黄・黒・赤（ロゴ由来）＋生成りの紙色
   ========================================================== */

:root {
  --ink: #16130d;
  --ink-2: #2b261c;
  --paper: #fff8e8;
  --paper-2: #fffdf6;
  --muted: #5c5546;
  --line: rgba(22, 19, 13, .16);
  --yellow: #ffd21a;
  --yellow-deep: #f2b600;
  --red: #e3261b;       /* 装飾・大きな文字用 */
  --red-text: #c8211a;  /* 小さな文字用（紙色の上で5.3:1） */
  --red-on-dark: #ff5a4a;
  --dim: #c9c2b0;       /* 黒地の本文（10.4:1） */

  --f-display: "Dela Gothic One", "Hiragino Sans", "Noto Sans JP", "Noto Sans CJK JP", "Yu Gothic", sans-serif;
  --f-latin: "Bricolage Grotesque", "Helvetica Neue", Arial, sans-serif;
  --f-body: "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Noto Sans JP", "Noto Sans CJK JP", "Yu Gothic", YuGothic, Meiryo, sans-serif;

  --gutter: clamp(16px, 4.4vw, 64px);
  --space: clamp(64px, 8vw, 120px);
  --header-h: 68px;
  --radius: 22px;
  --shadow: 6px 6px 0 var(--ink);
  --ease-out: cubic-bezier(.16, 1, .3, 1);
  --ease-spring: cubic-bezier(.34, 1.56, .64, 1);
  /* logo.png の外側の白を透明にして余白を詰めたもの（元画像は logo-clear.png）。配信ファイルを増やさないためCSSに埋め込み */
  --logo: url("data:image/png;base64,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");
}

/* ---------- 基本 ---------- */
*, *::before, *::after { box-sizing: border-box; }
html {
  scroll-behavior: smooth;
  scroll-padding-top: calc(var(--header-h) + 12px);
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}
body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: var(--f-body);
  font-size: 1rem;
  line-height: 1.9;
  letter-spacing: .03em;
  font-feature-settings: "palt" 0;
  overflow-wrap: anywhere;
  -webkit-font-smoothing: antialiased;
  font-kerning: normal;
}
html.menu-open { overflow: hidden; }
/* 紙の質感：ごく薄いノイズを全体に重ねる（固定レイヤーなのでスクロール中の再描画はない） */
body::after {
  content: ""; position: fixed; inset: 0; z-index: 90; pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .09 0 0 0 0 .07 0 0 0 0 .05 0 0 0 .55 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  opacity: .09;
}

img, svg { display: block; max-width: 100%; height: auto; }
.logo-art { display: block; aspect-ratio: 224 / 212; background: var(--logo) center / contain no-repeat; }
a { color: inherit; text-underline-offset: .3em; }
p, h1, h2, h3, ul, ol, dl, dd, figure { margin: 0; }
ul, ol { padding: 0; list-style: none; }
button { font: inherit; color: inherit; }
h1, h2, h3 { font-weight: 700; line-height: 1.4; letter-spacing: .02em; }
::selection { background: var(--yellow); color: var(--ink); }

:focus-visible {
  outline: 3px solid var(--ink);
  outline-offset: 4px;
  box-shadow: 0 0 0 7px var(--yellow);
  border-radius: 4px;
}
.footer :focus-visible { outline-color: var(--yellow); box-shadow: 0 0 0 7px var(--ink); }

.wrap { width: min(1320px, 100% - var(--gutter) * 2); margin-inline: auto; }
.sr-only {
  position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0;
  overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; border: 0;
}
.sp { display: none; }
.nw { display: inline-block; }
h1, h2, h3, .approach__q { word-break: auto-phrase; }
p, li { text-wrap: pretty; }
@media (max-width: 599px) { .sp { display: inline; } .pc { display: none; } }

.skip {
  position: fixed; z-index: 100; top: 12px; left: 12px;
  padding: 12px 18px; background: var(--ink); color: var(--paper);
  font-weight: 700; border-radius: 999px; text-decoration: none;
  transform: translateY(-160%); transition: transform .2s;
}
.skip:focus { transform: none; }


/* ---------- ヘッダー ---------- */
.header {
  position: sticky; top: 0; z-index: 50;
  transition: background-color .3s, box-shadow .3s, transform .45s var(--ease-out);
}
.header.is-hidden { transform: translateY(-100%); }
.header.is-scrolled, .menu-open .header {
  background: rgba(255, 248, 232, .97);
  -webkit-backdrop-filter: saturate(1.4) blur(12px);
  backdrop-filter: saturate(1.4) blur(12px);
  box-shadow: 0 1px 0 var(--line);
}
.header__inner {
  display: flex; align-items: center; justify-content: space-between; gap: 20px;
  height: var(--header-h);
  width: min(1320px, 100% - var(--gutter) * 2); margin-inline: auto;
}
.brand {
  display: inline-flex; align-items: center; gap: 10px;
  text-decoration: none; font-weight: 800; font-size: .9375rem; letter-spacing: .04em;
  min-height: 44px;
}
.brand .logo-art { width: 50px; transition: transform .5s var(--ease-spring); }
.brand:hover .logo-art { transform: rotate(-12deg) scale(1.06); }
.brand__en {
  font-family: var(--f-latin); font-weight: 700; font-size: .75rem; letter-spacing: .02em;
  padding: 2px 9px; border: 1.5px solid var(--ink); border-radius: 999px;
}
.gnav ul { display: flex; align-items: center; gap: 4px; }
.gnav a {
  position: relative; display: inline-flex; align-items: center;
  min-height: 44px; padding: 0 14px;
  font-size: .875rem; font-weight: 700; text-decoration: none; border-radius: 999px;
  transition: background-color .2s;
}
.gnav a:not(.gnav__cta):hover, .gnav a:not(.gnav__cta)[aria-current] { background: rgba(255, 210, 26, .6); }
.gnav a:not(.gnav__cta)[aria-current]::after { content: ""; position: absolute; left: 50%; bottom: 4px; width: 5px; height: 5px; margin-left: -2.5px; border-radius: 50%; background: var(--red); }
.gnav__cta[aria-current] { box-shadow: 0 0 0 3px var(--yellow); }
.gnav__cta {
  margin-left: 8px;
  background: var(--ink); color: var(--paper);
  transition: transform .25s var(--ease-spring), box-shadow .25s !important;
}
.gnav__cta:hover { transform: translate(-2px, -2px); box-shadow: 3px 3px 0 var(--yellow-deep); }
.menu-btn { display: none; }

.progress { position: absolute; left: 0; right: 0; bottom: -3px; height: 3px; pointer-events: none; }
.progress i {
  display: block; height: 100%; background: var(--yellow-deep);
  transform-origin: left; transform: scaleX(var(--progress, 0));
}

/* ---------- スマホ用メニュー ---------- */
@media (max-width: 959px) {
  .gnav { display: none; }
  .brand__en { display: none; }
  .menu-btn {
    display: inline-flex; align-items: center; gap: 10px;
    min-height: 44px; padding: 0 8px 0 16px;
    background: var(--ink); color: var(--paper);
    border: 0; border-radius: 999px; cursor: pointer;
    font-size: .8125rem; font-weight: 700; letter-spacing: .08em;
  }
  .menu-btn__icon {
    position: relative; width: 32px; height: 32px; border-radius: 50%;
    background: var(--yellow);
  }
  .menu-btn__icon i {
    position: absolute; left: 9px; width: 14px; height: 2px; background: var(--ink);
    transition: transform .35s var(--ease-out), top .35s var(--ease-out);
  }
  .menu-btn__icon i:first-child { top: 12px; }
  .menu-btn__icon i:last-child { top: 18px; }
  .menu-btn[aria-expanded="true"] .menu-btn__icon i:first-child { top: 15px; transform: rotate(45deg); }
  .menu-btn[aria-expanded="true"] .menu-btn__icon i:last-child { top: 15px; transform: rotate(-45deg); }
}
.menu {
  position: fixed; inset: 0; z-index: 40;
  display: flex; flex-direction: column; justify-content: space-between;
  padding: calc(var(--header-h) + 24px) var(--gutter) max(28px, env(safe-area-inset-bottom));
  background: var(--yellow);
  background-image: radial-gradient(rgba(22, 19, 13, .13) 1.4px, transparent 1.6px);
  background-size: 14px 14px;
  overflow-y: auto;
  clip-path: circle(0 at calc(100% - 44px) 34px);
  transition: clip-path .5s var(--ease-out);
}
.menu.is-open { clip-path: circle(150% at calc(100% - 44px) 34px); }
.menu[hidden] { display: none; }
.menu__list li { border-bottom: 2px solid var(--ink); }
.menu__list a {
  display: flex; align-items: baseline; gap: 14px;
  padding: 14px 4px;
  font-family: var(--f-display); font-size: clamp(1.6rem, 8vw, 2.4rem); line-height: 1.3;
  text-decoration: none;
  transform: translateY(16px); opacity: 0;
  transition: transform .5s var(--ease-out), opacity .5s;
}
.menu.is-open .menu__list a { transform: none; opacity: 1; }
.menu.is-open li:nth-child(2) a { transition-delay: .04s; }
.menu.is-open li:nth-child(3) a { transition-delay: .08s; }
.menu.is-open li:nth-child(4) a { transition-delay: .12s; }
.menu.is-open li:nth-child(5) a { transition-delay: .16s; }
.menu__list a[aria-current] { color: var(--red-text); }
.menu__no { font-family: var(--f-latin); font-size: .875rem; font-weight: 700; letter-spacing: .04em; }
.menu__foot { margin-top: 32px; font-family: var(--f-display); font-size: 1rem; }

/* ---------- 共通パーツ ---------- */
.btn {
  position: relative; display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 56px; padding: 0 28px;
  border: 2px solid var(--ink); border-radius: 999px;
  font-weight: 800; font-size: .9375rem; letter-spacing: .06em; text-decoration: none;
  transition: transform .3s var(--ease-spring), box-shadow .3s var(--ease-spring), background-color .2s;
}
.btn:hover { transform: translate(-3px, -3px); box-shadow: 5px 5px 0 var(--ink); }
.btn:active { transform: translate(0, 0); box-shadow: 0 0 0 var(--ink); transition-duration: .08s; }
.btn--ink { background: var(--ink); color: var(--paper); }
.btn--ink:hover { box-shadow: 5px 5px 0 var(--yellow-deep); }
.btn--line { background: var(--paper-2); }
.btn--line:hover { background: var(--yellow); }
.btn--sm { min-height: 50px; padding: 0 22px; font-size: .875rem; }
.btn svg { width: 18px; flex: none; fill: none; stroke: currentColor; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
.btn:hover .btn__arrow { animation: nudge-down .6s var(--ease-out); }
.btn:hover .btn__ext { animation: nudge-out .6s var(--ease-out); }
@keyframes nudge-down { 40% { transform: translateY(4px); } }
@keyframes nudge-out { 40% { transform: translate(3px, -3px); } }

.section { position: relative; padding-block: var(--space); }
.sec-head {
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .62fr);
  align-items: end; gap: 20px 48px;
  margin-bottom: clamp(44px, 6vw, 88px);
}
.sec-index {
  grid-column: 1 / -1;
  display: flex; align-items: baseline; gap: 4px;
  font-family: var(--f-latin); font-weight: 800; font-size: 1rem; letter-spacing: .02em;
}
.sec-index::before {
  content: ""; width: 12px; height: 12px; margin-right: 8px; border-radius: 50%;
  background: var(--red); align-self: center;
}
.sec-index span { color: var(--muted); font-weight: 600; }
.sec-title {
  font-family: var(--f-display); font-weight: 400;
  font-size: clamp(2.4rem, 7vw, 6rem); line-height: 1.22; letter-spacing: -.01em;
}
.sec-lead { font-size: 1rem; font-weight: 700; line-height: 2; padding-bottom: .6em; }

/* 1文字ずつの見出し */
.split { display: inline; }
.ch { display: inline-block; }
.js .split .ch {
  opacity: 0; transform: translateY(.45em) rotate(8deg) scale(.9);
  transition: opacity .5s, transform .7s var(--ease-spring);
  transition-delay: calc(var(--i) * 35ms);
}
.js .is-in .split .ch { opacity: 1; transform: none; }

/* スクロール表示 */
.js [data-reveal]:not([data-split]) {
  opacity: 0; transform: translateY(36px);
  transition: opacity .8s var(--ease-out), transform 1s var(--ease-out);
}
.js [data-reveal].is-in:not([data-split]) { opacity: 1; transform: none; }

/* ---------- ヒーロー ---------- */
.hero { position: relative; overflow: hidden; padding: clamp(36px, 6vw, 88px) 0 clamp(56px, 7vw, 96px); }
.hero__inner { position: relative; }
.hero__lockup {
  position: relative;
  --fs: clamp(2.5rem, 12.4vw, 9.6rem);
  font-size: var(--fs);
}
.hero__title {
  font-family: var(--f-display); font-weight: 400;
  font-size: 1em; line-height: 1.16; letter-spacing: -.035em;
}
.line { display: block; overflow: hidden; padding: 0 .06em .04em 0; margin-bottom: -.04em; }
.line__in { display: inline-block; }
.mark { position: relative; display: inline-block; padding: 0 .08em; margin-left: -.02em; z-index: 0; }
.mark::before {
  content: ""; position: absolute; z-index: -1; inset: .1em 0 .04em;
  background: var(--yellow); border-radius: .08em;
  box-shadow: .06em .06em 0 var(--ink);
  transform-origin: left; transform: skewX(-6deg);
}

.js .line__in { transform: translateY(105%); }
.js .mark::before { transform: skewX(-6deg) scaleX(0); }
.js.is-ready .line__in { transform: none; transition: transform 1s var(--ease-out); }
.js.is-ready .line:nth-child(2) .line__in { transition-delay: .09s; }
.js.is-ready .line:nth-child(3) .line__in { transition-delay: .18s; }
.js.is-ready .mark::before { transform: skewX(-6deg) scaleX(1); transition: transform .7s var(--ease-out) .55s; }

/* 縦書きの添え書き（広い画面のみ） */
.hero__tate {
  position: absolute; right: 0; top: 4px;
  writing-mode: vertical-rl;
  font-family: var(--f-display); font-size: clamp(1.5rem, 2.2vw, 2.1rem); line-height: 1.2; letter-spacing: .12em;
  padding: 18px 10px; border-block: 2px solid var(--ink);
}
.hero__tate::before {
  content: ""; display: block; width: 12px; height: 12px; margin: 0 auto 14px; border-radius: 50%; background: var(--red);
}
@media (max-width: 1199px) { .hero__tate { display: none; } }
.js .hero__tate { opacity: 0; transform: translateY(-24px); }
.js.is-ready .hero__tate { opacity: 1; transform: none; transition: opacity .6s .7s, transform 1s var(--ease-out) .7s; }

/* ロゴ（ワイワイボタン） */
.face {
  position: absolute; z-index: 2;
  left: 3.62em; top: .98em; width: 1.5em;
  --tx: 0; --ty: 0;
}
.face__tone {
  position: absolute; inset: -40%; z-index: -1; border-radius: 50%;
  background-image: radial-gradient(var(--yellow-deep) 1.6px, transparent 2px);
  background-size: 11px 11px;
  -webkit-mask-image: radial-gradient(closest-side, #000 30%, transparent 100%);
  mask-image: radial-gradient(closest-side, #000 30%, transparent 100%);
  opacity: .7;
  transform: translate(calc(var(--tx) * -14px), calc(var(--ty) * -14px));
  transition: transform .6s var(--ease-out);
}
.face__btn {
  display: block; width: 100%; padding: 0; border: 0; background: none; cursor: pointer;
  border-radius: 50%;
  perspective: 600px;
  -webkit-tap-highlight-color: transparent;
}
/* 何もしていないときも、ロゴがゆっくり浮き沈みする */
.js.is-ready .face__btn { animation: float 4.8s ease-in-out 1.6s infinite; }
@keyframes float { 0%, 100% { translate: 0 0; } 50% { translate: 0 -.045em; } }
.face__btn .logo-art {
  width: 100%;
  transform: rotateY(calc(var(--tx) * 22deg)) rotateX(calc(var(--ty) * -18deg)) translate(calc(var(--tx) * 8px), calc(var(--ty) * 8px));
  transition: transform .5s var(--ease-out);
  filter: drop-shadow(.035em .035em 0 var(--ink));
}
.face__btn:hover .logo-art { transform: rotateY(calc(var(--tx) * 22deg)) rotateX(calc(var(--ty) * -18deg)) scale(1.05); }
.face__btn:focus-visible { outline-offset: 6px; border-radius: 50%; }
.face.is-boing .face__btn .logo-art { animation: boing .8s var(--ease-out); }
@keyframes boing {
  0% { transform: scale(1); }
  18% { transform: scale(.86) rotate(-8deg); }
  45% { transform: scale(1.14) rotate(10deg); }
  70% { transform: scale(.97) rotate(-3deg); }
  100% { transform: scale(1) rotate(0); }
}
.js .face { opacity: 0; transform: translateY(-.4em) rotate(-30deg) scale(.6); }
.js.is-ready .face { opacity: 1; transform: none; transition: opacity .4s .35s, transform 1.1s var(--ease-spring) .35s; }

.face__hint {
  position: absolute; left: 88%; top: -2%;
  font-family: var(--f-display); font-size: max(.8125rem, .1em); letter-spacing: .04em; line-height: 1.3;
  white-space: nowrap;
  padding: .45em .8em; background: var(--paper-2); border: 2px solid var(--ink); border-radius: 999px;
  box-shadow: 3px 3px 0 var(--ink);
  transform: rotate(8deg);
  pointer-events: none;
}
.face__hint::before {
  content: ""; position: absolute; left: 14px; bottom: -9px; width: 12px; height: 12px;
  background: var(--paper-2); border: 2px solid var(--ink); border-top: 0; border-left: 0;
  transform: rotate(45deg) skew(10deg, 10deg);
}
.js .face__hint { opacity: 0; transform: rotate(8deg) scale(.6); }
.js.is-ready .face__hint { opacity: 1; transform: rotate(8deg); transition: opacity .3s 1.2s, transform .6s var(--ease-spring) 1.2s; }

/* はじける「ワイ」 */
.pops { position: fixed; inset: 0; z-index: 60; pointer-events: none; overflow: hidden; }
.pop {
  position: absolute;
  font-family: var(--f-display); font-size: clamp(1rem, 2.2vw, 1.75rem); line-height: 1; white-space: nowrap;
  padding: .35em .55em; border: 2px solid var(--ink); border-radius: 999px;
  box-shadow: 3px 3px 0 var(--ink);
  translate: -50% -50%;
  animation: pop 1.1s var(--ease-out) forwards;
}
.pop.is-y { background: var(--yellow); }
.pop.is-r { background: var(--red); color: #fff; }
.pop.is-k { background: var(--ink); color: var(--yellow); box-shadow: 3px 3px 0 var(--yellow-deep); }
.pop.is-w { background: var(--paper-2); }
@keyframes pop {
  0% { transform: translate(0, 0) scale(.2) rotate(0); opacity: 0; }
  18% { opacity: 1; }
  45% { transform: translate(var(--dx), var(--dy)) scale(var(--s)) rotate(var(--r)); opacity: 1; }
  100% { transform: translate(var(--dx), calc(var(--dy) + 60px)) scale(calc(var(--s) * .9)) rotate(var(--r)); opacity: 0; }
}

/* ヒーロー下部 */
.hero__foot {
  display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 28px 48px;
  margin-top: clamp(28px, 4vw, 56px);
  padding-top: clamp(24px, 3vw, 36px);
  border-top: 2px solid var(--ink);
}
.hero__summary { font-size: clamp(1.0625rem, 1.5vw, 1.25rem); font-weight: 800; line-height: 1.8; }
.hero__desc { margin-top: 10px; color: var(--muted); }
.hero__actions { display: flex; flex-wrap: wrap; gap: 12px; }
.js .hero__foot { opacity: 0; transform: translateY(20px); }
.js.is-ready .hero__foot { opacity: 1; transform: none; transition: opacity .8s .5s, transform 1s var(--ease-out) .5s; }

/* ---------- テープ ---------- */
.tapes { position: relative; z-index: 3; height: clamp(150px, 16vw, 230px); margin-block: -24px 0; overflow: hidden; pointer-events: none; }
.tape {
  position: absolute; left: -5%; width: 110%;
  border-block: 2px solid var(--ink);
  overflow: hidden;
}
.tape--ink { top: 30%; background: var(--ink); color: var(--yellow); transform: rotate(-4deg); }
.tape--yellow { top: 38%; background: var(--yellow); color: var(--ink); transform: rotate(3deg); }
.tape__track {
  display: flex; align-items: center; gap: 28px; width: max-content;
  padding-block: 12px;
  font-family: var(--f-display); font-size: clamp(1.1rem, 2.4vw, 2rem); line-height: 1.2; white-space: nowrap;
  animation: tape 38s linear infinite;
}
.tape--yellow .tape__track { animation-direction: reverse; animation-duration: 30s; font-family: var(--f-latin); font-weight: 800; letter-spacing: .01em; }
.tape--yellow .tape__track span:nth-child(4n+1) { font-family: var(--f-display); font-weight: 400; }
.tape b { font-weight: 400; font-size: .7em; color: var(--red); }
.tape--yellow b { color: var(--red); }
.tape.is-paused .tape__track { animation-play-state: paused; }
@keyframes tape { to { transform: translateX(-50%); } }

/* ---------- 01 できること ---------- */
.services { padding-top: clamp(40px, 6vw, 96px); padding-bottom: clamp(72px, 8vw, 120px); }
.svc-list { border-top: 2px solid var(--ink); }
.svc {
  position: relative; isolation: isolate;
  display: grid; grid-template-columns: 88px 120px minmax(0, 1fr) minmax(0, 1.05fr);
  align-items: center; gap: 16px 36px;
  padding: clamp(28px, 3.4vw, 48px) clamp(0px, 1.6vw, 24px);
  border-bottom: 2px solid var(--ink);
}
.svc::before {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background: var(--yellow);
  transform: scaleY(0); transform-origin: bottom;
  transition: transform .6s var(--ease-out);
}
.svc:hover::before, .svc.is-active::before { transform: scaleY(1); }
.svc__no {
  font-family: var(--f-latin); font-weight: 800; font-size: clamp(2.6rem, 4.4vw, 4rem); line-height: 1; letter-spacing: -.03em;
  color: transparent; -webkit-text-stroke: 1.5px var(--ink);
  transition: color .4s;
}
.svc:hover .svc__no, .svc.is-active .svc__no { color: var(--ink); }
.svc__title { font-family: var(--f-display); font-weight: 400; font-size: clamp(1.6rem, 2.8vw, 2.6rem); line-height: 1.3; }
.svc__body p { line-height: 2; }
/* 登場：番号は横から、絵柄は弾んで。絵柄は画面上の位置（--t）に合わせてゆっくり浮き沈みする */
.svc__pict { translate: 0 calc(var(--t, 0) * -12px); rotate: calc(var(--t, 0) * 5deg); }
.js .svc .svc__no { opacity: 0; translate: -18px 0; transition: opacity .6s .15s, translate .8s var(--ease-out) .15s, color .4s; }
.js .svc.is-in .svc__no { opacity: 1; translate: 0 0; }
.js .svc .svc__pict { opacity: 0; scale: .5; transition: opacity .5s .3s, scale .9s var(--ease-spring) .3s; }
.js .svc.is-in .svc__pict { opacity: 1; scale: 1; }
.svc__note { margin-top: 10px; font-size: .875rem; color: var(--muted); padding-left: 1.2em; position: relative; }
.svc__note::before { content: "※"; position: absolute; left: 0; }

/* ピクトグラム */
.svc__pict { width: 100%; overflow: visible; }
.svc__pict .p-fill { fill: var(--yellow); stroke: var(--ink); stroke-width: 3; stroke-linejoin: round; }
.svc:hover .p-fill, .svc.is-active .p-fill { fill: var(--paper-2); }
.svc__pict .p-red { fill: var(--red); stroke: var(--ink); stroke-width: 2.5; stroke-linejoin: round; }
.svc__pict .p-ink { fill: var(--ink); }
.svc__pict .p-paper { fill: var(--ink); opacity: .9; }
.svc__pict .p-line { stroke: var(--ink); stroke-width: 3; fill: none; }
.svc__pict .p-stripe { stroke: var(--ink); stroke-width: 5; fill: none; }
.svc__pict .p-cursor { fill: var(--paper-2); stroke: var(--ink); stroke-width: 2.5; stroke-linejoin: round; }
.svc__pict * { transition: transform .6s var(--ease-spring), fill .3s; transform-box: fill-box; }

.pict-video .clap { transform-origin: 0% 100%; }
.svc:hover .pict-video .clap, .svc.is-active .pict-video .clap { animation: clap 1.4s var(--ease-out) infinite; }
@keyframes clap { 0%, 100% { transform: rotate(0); } 20% { transform: rotate(-16deg); } 34% { transform: rotate(0); } }
.pict-video .play { transform-origin: center; }
.svc:hover .pict-video .play, .svc.is-active .pict-video .play { transform: scale(1.2); }

.pict-web .blk { transform-origin: left center; }
.svc:hover .pict-web .blk-1, .svc.is-active .pict-web .blk-1 { transform: scaleX(1.4); fill: var(--red); }
.svc:hover .pict-web .blk-2, .svc.is-active .pict-web .blk-2 { transform: scaleX(.6); }
.svc:hover .pict-web .blk-3, .svc.is-active .pict-web .blk-3 { transform: scaleX(1.25); }
.svc:hover .pict-web .cursor, .svc.is-active .pict-web .cursor { transform: translate(-30px, -6px); }

.pict-ai .star { transform-origin: center; }
.svc:hover .pict-ai .star-1, .svc.is-active .pict-ai .star-1 { transform: rotate(90deg) scale(1.06); }
.svc:hover .pict-ai .star-2, .svc.is-active .pict-ai .star-2 { animation: twinkle 1.2s ease-in-out infinite; }
.svc:hover .pict-ai .star-3, .svc.is-active .pict-ai .star-3 { animation: twinkle 1.2s ease-in-out .4s infinite; }
@keyframes twinkle { 50% { transform: scale(.4) rotate(45deg); } }

.approach {
  position: relative;
  display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); align-items: center; gap: 16px 40px;
  margin-top: clamp(48px, 6vw, 80px);
  padding: clamp(24px, 3vw, 36px) clamp(24px, 3.4vw, 48px);
  background: var(--paper-2); border: 2px solid var(--ink); border-radius: var(--radius);
  box-shadow: var(--shadow);
}
.approach::after {
  content: ""; position: absolute; left: 56px; top: -13px; width: 22px; height: 22px;
  background: var(--paper-2); border: 2px solid var(--ink); border-right: 0; border-bottom: 0;
  transform: rotate(45deg);
}
.js .approach.is-in { animation: wobble 1s var(--ease-out) .5s; }
@keyframes wobble { 0% { rotate: -1.6deg; } 35% { rotate: 1deg; } 65% { rotate: -.4deg; } 100% { rotate: 0deg; } }
.approach__q { font-family: var(--f-display); font-size: clamp(1.25rem, 2.2vw, 1.75rem); line-height: 1.5; }
.approach__a { color: var(--muted); }

/* ---------- 02 自主制作・運営 ---------- */
.projects { background: var(--paper-2); border-block: 2px solid var(--ink); overflow-x: clip; }
.proj-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(32px, 4vw, 64px); align-items: start; }
.proj { position: relative; }
.proj:nth-child(2) { margin-top: clamp(0px, 9vw, 140px); }
.media {
  position: relative; overflow: hidden;
  display: flex; flex-direction: column;
  border: 2px solid var(--ink); border-radius: var(--radius);
  background: var(--paper);
  box-shadow: var(--shadow);
  transition: transform .5s var(--ease-spring), box-shadow .5s var(--ease-spring);
}
.proj:hover .media, .proj:focus-within .media { transform: translate(-4px, -4px) rotate(-.6deg); box-shadow: 10px 10px 0 var(--ink); }
/* ブラウザ画面風の上のバー：信号の3つの丸と、サイトのアドレス */
.media__bar {
  display: flex; align-items: center; gap: 7px;
  padding: 10px 16px; border-bottom: 2px solid var(--ink);
  background: var(--paper-2);
}
.media__bar i { width: 11px; height: 11px; flex: none; border-radius: 50%; border: 1.5px solid var(--ink); }
.media__bar i:nth-child(1) { background: var(--red); }
.media__bar i:nth-child(2) { background: var(--yellow); }
.media__bar i:nth-child(3) { background: var(--paper); }
.media__url {
  flex: 1; min-width: 0; margin-left: 10px; padding: 3px 14px;
  font-family: var(--f-latin); font-size: .75rem; font-weight: 600; letter-spacing: .02em; line-height: 1.4;
  color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  background: var(--paper); border: 1.5px solid var(--line); border-radius: 999px;
}
.media__screen { position: relative; aspect-ratio: 16 / 10; overflow: hidden; }
.media__screen > img, .media__screen > video { display: block; width: 100%; height: 100%; object-fit: cover; object-position: top; }
.media__placeholder {
  position: absolute; inset: 0;
  background:
    radial-gradient(rgba(22, 19, 13, .14) 1.3px, transparent 1.6px) 0 0 / 12px 12px,
    linear-gradient(135deg, var(--paper) 0%, #ffefc2 100%);
}
/* 読み込み中のページのような骨組み（見出し・本文の線） */
.media__skel { position: absolute; left: 7%; right: 7%; top: 16%; display: grid; gap: 10px; }
.media__skel i {
  display: block; height: 10px; border-radius: 99px;
  background: linear-gradient(90deg, rgba(22, 19, 13, .1) 30%, rgba(22, 19, 13, .2) 50%, rgba(22, 19, 13, .1) 70%) 0 0 / 300% 100%;
  animation: skel 2.4s ease-in-out infinite;
}
.media__skel i:nth-child(1) { width: 46%; height: 16px; }
.media__skel i:nth-child(2) { width: 78%; }
.media__skel i:nth-child(3) { width: 62%; }
@keyframes skel { from { background-position: 100% 0; } to { background-position: 0 0; } }
.media__placeholder > * { z-index: 1; }
.media__placeholder::after {
  /* カーソルに合わせて動く黄色い光 */
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(circle at var(--mx, 72%) var(--my, 28%), rgba(255, 210, 26, .55), transparent 58%);
  opacity: 0; transition: opacity .4s;
}
.proj:hover .media__placeholder::after, .proj:focus-within .media__placeholder::after { opacity: 1; }
.media__cover {
  position: absolute; left: 34px; bottom: 26px;
  font-family: var(--f-display); font-size: clamp(1.6rem, 3.4vw, 3.2rem); line-height: 1.12;
  color: transparent; -webkit-text-stroke: 1.5px rgba(22, 19, 13, .55);
  translate: calc(var(--px, 0) * 12px) calc(var(--py, 0) * 8px);
  transition: color .5s, translate .6s var(--ease-out);
}
.media__cover--latin { font-family: var(--f-latin); font-weight: 800; letter-spacing: -.03em; line-height: .98; }
.proj:hover .media__cover, .proj:focus-within .media__cover { color: var(--yellow); -webkit-text-stroke-color: var(--ink); }
.media__label {
  /* 右上の判子（.hanko）と重ならないよう、右下に置く */
  position: absolute; right: 18px; bottom: 18px;
  font-size: .75rem; font-weight: 800; letter-spacing: .12em; line-height: 1.4; white-space: nowrap;
  padding: 8px 16px; background: var(--paper-2); border: 2px solid var(--ink); border-radius: 999px;
}
.hanko {
  position: absolute; z-index: 2; top: -26px; right: -14px;
  display: grid; place-content: center;
  width: 92px; height: 92px; border-radius: 50%;
  border: 3px solid var(--red);
  box-shadow: inset 0 0 0 4px var(--paper-2), inset 0 0 0 6px var(--red);
  background: rgba(255, 253, 246, .9);
  color: var(--red);
  font-family: var(--f-display); font-size: 1.125rem; line-height: 1.1; text-align: center; letter-spacing: .1em;
  transform: rotate(-14deg);
  transition: transform .6s var(--ease-spring);
}
.hanko span { display: block; }
.proj:hover .hanko, .proj:focus-within .hanko { transform: rotate(4deg) scale(1.08); }
.js .proj .hanko { opacity: 0; transform: rotate(-30deg) scale(2); }
.js .proj.is-in .hanko { opacity: 1; transform: rotate(-14deg); transition: opacity .2s .5s, transform .5s var(--ease-spring) .5s; }
.js .proj.is-in:hover .hanko, .js .proj.is-in:focus-within .hanko { transform: rotate(4deg) scale(1.08); transition-delay: 0s; }
/* 押す・フォーカスすると判子を押し直す（JSが .is-stamp を付ける）。最後のコマは省いて、いまの状態に着地させる */
.hanko::after { content: ""; position: absolute; inset: -3px; border: 3px solid var(--red); border-radius: 50%; opacity: 0; pointer-events: none; }
.proj.is-stamp .hanko { animation: stamp .7s var(--ease-out); }
.proj.is-stamp .hanko::after { animation: stamp-ring .7s var(--ease-out); }
@keyframes stamp {
  0% { transform: rotate(-32deg) scale(2); opacity: 0; }
  45% { transform: rotate(-12deg) scale(.86); opacity: 1; }
  72% { transform: rotate(-16deg) scale(1.07); }
}
@keyframes stamp-ring { 0% { transform: scale(1); opacity: .7; } 100% { transform: scale(1.8); opacity: 0; } }

.proj__body { padding: clamp(24px, 3vw, 36px) 4px 0; }
.proj__meta { display: flex; align-items: center; gap: 14px; margin-bottom: 12px; }
.proj__no { font-family: var(--f-latin); font-weight: 800; font-size: 1rem; }
.proj__tag { font-size: .75rem; font-weight: 800; letter-spacing: .1em; padding: 3px 12px; border: 1.5px solid var(--ink); border-radius: 999px; }
.proj__title {
  font-family: var(--f-latin); font-weight: 800; font-size: clamp(1.9rem, 3.6vw, 3.25rem); line-height: 1.15; letter-spacing: -.02em;
  margin-bottom: 16px;
}
.proj:nth-child(2) .proj__title { font-family: var(--f-display); font-weight: 400; letter-spacing: 0; line-height: 1.3; }
.proj__text { line-height: 2; margin-bottom: 24px; max-width: 34em; }
.proj__newtab { margin-top: 10px; font-size: .75rem; color: var(--muted); }
.caption {
  display: flex; gap: 10px; align-items: flex-start;
  margin-top: clamp(48px, 6vw, 80px); padding-top: 22px;
  border-top: 2px solid var(--ink);
  font-size: .875rem; font-weight: 700;
}
.caption::before { content: "※"; }

/* ---------- 03 進め方 ---------- */
.flow__track { position: relative; --p: 0; }
.flow__rail {
  position: absolute; left: 28px; right: calc(25% - 28px); top: 28px; height: 4px;
  background: repeating-linear-gradient(90deg, var(--ink) 0 10px, transparent 10px 18px);
  opacity: .9;
}
.flow__fill { position: absolute; inset: -1px 0; background: var(--yellow-deep); transform-origin: left; transform: scaleX(var(--p)); }
.flow__runner {
  position: absolute; top: 50%; left: calc(var(--p) * 100%);
  width: 64px; translate: -50% -50%;
  transform: rotate(calc(var(--p) * 720deg));
  filter: drop-shadow(2px 2px 0 var(--ink));
  z-index: 2;
}
.flow__list { position: relative; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(20px, 2.6vw, 40px); }
.step__no {
  position: relative; z-index: 1;
  display: grid; place-items: center; width: 58px; height: 58px; margin-bottom: 28px;
  font-family: var(--f-latin); font-weight: 800; font-size: 1.125rem;
  background: var(--paper-2); border: 2px solid var(--ink); border-radius: 50%;
  box-shadow: 3px 3px 0 var(--ink);
  transition: background-color .3s;
}
.step h3 {
  font-family: var(--f-display); font-weight: 400; font-size: clamp(1.25rem, 1.8vw, 1.6rem); line-height: 1.4; margin-bottom: 12px;
  /* ロゴが通りすぎると、黄色い下線が引かれる */
  width: fit-content; max-width: 100%;
  background: linear-gradient(var(--yellow), var(--yellow)) 0 94% / 0 .34em no-repeat;
  transition: background-size .7s var(--ease-out) .1s;
}
.step.is-hit h3 { background-size: 100% .34em; }
.step.is-hit .step__no { background: var(--yellow); animation: step-pop .7s var(--ease-spring); }
@keyframes step-pop { 35% { transform: scale(1.3) rotate(-8deg); } }
.step p { color: var(--muted); font-size: .9375rem; }
.price-note {
  display: flex; gap: 10px;
  margin-top: clamp(48px, 6vw, 72px); padding: 18px 22px;
  border: 2px dashed var(--ink); border-radius: 14px;
  font-size: .9375rem; font-weight: 700;
}
.price-note::before { content: "※"; }

/* ---------- 04 相談の前に ---------- */
.contact {
  background: var(--yellow);
  background-image: radial-gradient(rgba(22, 19, 13, .1) 1.4px, transparent 1.7px);
  background-size: 14px 14px;
  border-top: 2px solid var(--ink);
}
.contact__grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: 56px clamp(40px, 6vw, 96px); align-items: start; }
.contact .sec-index::before { background: var(--ink); }
.contact .sec-index span { color: var(--ink-2); }
.contact__title { margin-top: 28px; font-family: var(--f-display); font-weight: 400; line-height: 1.3; }
.bubble {
  position: relative; display: inline-block;
  font-size: clamp(1.6rem, 3.5vw, 3.25rem);
  padding: .3em .6em .34em .32em;
  background: var(--paper-2); border: 2px solid var(--ink); border-radius: 1.2em;
  box-shadow: var(--shadow);
  transform: rotate(-2deg);
}
.bubble::after {
  content: ""; position: absolute; left: 1.4em; bottom: -.36em; width: .6em; height: .6em;
  background: var(--paper-2); border: 2px solid var(--ink); border-top: 0; border-left: 0;
  transform: rotate(45deg) skew(12deg, 12deg);
}
.contact__title-rest { display: block; margin-top: .55em; font-size: clamp(2rem, 4.4vw, 4rem); line-height: 1.25; }
.contact__lead { margin-top: 32px; font-weight: 700; line-height: 2.1; color: var(--ink-2); }

.notice { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 24px; }
.sign {
  position: relative; margin-top: 46px;
  display: grid; justify-items: center; gap: 2px;
  padding: 14px 18px 16px;
  background: var(--paper-2); border: 3px solid var(--ink); border-radius: 10px;
  box-shadow: 4px 4px 0 var(--ink);
  transform-origin: 50% -46px;
  animation: swing 4.5s ease-in-out infinite;
}
.sign::before {
  /* 吊るしひもと釘 */
  content: ""; position: absolute; left: 50%; top: -46px; width: 64px; height: 46px;
  translate: -50% 0;
  background:
    radial-gradient(circle at 50% 4px, var(--ink) 4px, transparent 4.5px),
    linear-gradient(to bottom right, transparent calc(50% - 1.5px), var(--ink) calc(50% - 1px), var(--ink) calc(50% + 1px), transparent calc(50% + 1.5px)) left / 50% 100% no-repeat,
    linear-gradient(to bottom left, transparent calc(50% - 1.5px), var(--ink) calc(50% - 1px), var(--ink) calc(50% + 1px), transparent calc(50% + 1.5px)) right / 50% 100% no-repeat;
}
.sign__small { font-size: .75rem; font-weight: 800; letter-spacing: .3em; }
.sign__big { font-family: var(--f-display); font-size: 2rem; line-height: 1.1; color: var(--red); letter-spacing: .08em; }
.notice:hover .sign, .sign.is-tap { animation: swing-big 1.4s ease-in-out; }
/* 看板：見えたら上からぶら下がる／スクロールの勢い（--wind）で揺れる */
.sign { rotate: calc(var(--wind, 0) * 1deg); transition: rotate .9s var(--ease-spring), translate 1s var(--ease-spring) .35s; }
.js .notice:not(.is-in) .sign { translate: 0 -36px; }
@keyframes swing { 0%, 100% { transform: rotate(-3deg); } 50% { transform: rotate(3deg); } }
@keyframes swing-big { 0% { transform: rotate(-3deg); } 25% { transform: rotate(14deg); } 50% { transform: rotate(-9deg); } 75% { transform: rotate(4deg); } 100% { transform: rotate(-3deg); } }
.notice__title { font-weight: 800; font-size: 1.0625rem; margin-bottom: 6px; }
.notice__text p:not(.notice__title) { font-size: .875rem; line-height: 1.9; color: var(--ink-2); }

.asks {
  margin-top: 40px; padding: 28px clamp(22px, 3vw, 32px);
  background: var(--paper-2); border: 2px solid var(--ink); border-radius: var(--radius);
  box-shadow: var(--shadow);
}
.asks h3 { font-size: 1.0625rem; font-weight: 800; margin-bottom: 10px; }
.asks li {
  position: relative; padding: 12px 0 12px 36px; border-top: 1.5px solid var(--line); font-weight: 700;
}
.asks li:first-child { border-top: 0; }
.asks li:nth-child(2) { --k: 1; }
.asks li:nth-child(3) { --k: 2; }
.asks li::before {
  content: ""; position: absolute; left: 0; top: 17px; width: 20px; height: 20px;
  border: 2px solid var(--ink); border-radius: 6px; background: var(--yellow);
}
.asks li::after {
  content: ""; position: absolute; left: 6px; top: 20px; width: 6px; height: 11px;
  border: solid var(--ink); border-width: 0 2.5px 2.5px 0; transform: rotate(45deg);
}
/* 表示されると、チェックが順番に入る */
.js .asks li::after { scale: 0; transition: scale .5s var(--ease-spring) calc(.5s + var(--k, 0) * .2s); }
.js .asks.is-in li::after { scale: 1; }

/* ---------- フッター ---------- */
.footer { background: var(--ink); color: var(--paper); padding: clamp(32px, 4vw, 48px) 0 calc(28px + env(safe-area-inset-bottom)); overflow: hidden; }
.closing {
  display: flex; align-items: center; gap: clamp(18px, 3vw, 40px);
  padding-block: 4px clamp(24px, 3vw, 36px);
  border-bottom: 1.5px solid rgba(255, 248, 232, .22);
}
.closing__logo {
  flex: none; width: clamp(72px, 9vw, 104px); padding: 0; border: 0; background: none; cursor: pointer;
  border-radius: 50%; -webkit-tap-highlight-color: transparent;
}
.closing__logo .logo-art { width: 100%; filter: drop-shadow(3px 3px 0 var(--yellow-deep)); transition: transform .5s var(--ease-spring); }
.closing__logo:hover .logo-art { transform: rotate(-10deg) scale(1.06); }
.closing.is-spin .closing__logo .logo-art { animation: roll .9s var(--ease-out); }
@keyframes roll { 0% { transform: rotate(0) scale(1); } 28% { transform: rotate(-24deg) scale(.88); } 100% { transform: rotate(360deg) scale(1); } }
.js .closing .logo-art { rotate: -200deg; scale: .4; transition: transform .5s var(--ease-spring), rotate 1.1s var(--ease-spring) .2s, scale 1s var(--ease-spring) .2s; }
.js .closing.is-in .logo-art { rotate: 0deg; scale: 1; }
.closing__catch {
  font-family: var(--f-display); font-size: clamp(1.5rem, 3.6vw, 2.75rem); line-height: 1.35; letter-spacing: .01em;
  word-break: auto-phrase;
}
.closing__mark { position: relative; display: inline-block; padding: 0 .1em; margin-inline: -.02em .02em; color: var(--ink); z-index: 0; }
.closing__mark::before {
  content: ""; position: absolute; z-index: -1; inset: .08em 0 .02em;
  background: var(--yellow); border-radius: .1em; box-shadow: .05em .05em 0 var(--red);
  transform-origin: left; transform: skewX(-6deg);
}
.js .closing__mark { color: var(--paper); transition: color .3s .75s; }
.js .closing__mark::before { transform: skewX(-6deg) scaleX(0); }
.js .closing.is-in .closing__mark { color: var(--ink); }
.js .closing.is-in .closing__mark::before { transform: skewX(-6deg) scaleX(1); transition: transform .7s var(--ease-out) .5s; }
.closing__sub { margin-top: 10px; font-size: .9375rem; color: var(--dim); }
.closing + .footer__row { padding-top: 20px; }
.footer__row {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 20px 32px;
  padding-block: 8px 24px; border-bottom: 1.5px solid rgba(255, 248, 232, .22);
}
.brand--footer .logo-art { width: 44px; }
.footer__nav ul { display: flex; flex-wrap: wrap; gap: 4px 6px; }
.footer__nav a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 10px; font-size: .875rem; font-weight: 700; text-decoration: none; color: var(--dim); border-radius: 999px; }
.footer__nav a:hover { color: var(--ink); background: var(--yellow); }
.totop {
  display: inline-flex; align-items: center; gap: 8px; min-height: 48px; padding: 0 20px;
  border: 2px solid var(--paper); border-radius: 999px; text-decoration: none; font-weight: 800; font-size: .875rem;
  transition: background-color .2s, color .2s;
}
.totop svg { width: 16px; fill: none; stroke: currentColor; stroke-width: 2.6; stroke-linecap: round; stroke-linejoin: round; }
.totop:hover { background: var(--yellow); color: var(--ink); border-color: var(--yellow); }
.totop:hover svg { animation: nudge-up .6s var(--ease-out); }
@keyframes nudge-up { 40% { transform: translateY(-4px); } }
.footer__legal { display: flex; justify-content: space-between; gap: 16px; padding-top: 20px; font-size: .8125rem; color: var(--dim); }
.footer__legal small { font-size: inherit; font-family: var(--f-latin); font-weight: 600; letter-spacing: .04em; }

/* ==========================================================
   レスポンシブ
   ========================================================== */
@media (max-width: 1100px) {
  .svc { grid-template-columns: 64px 96px minmax(0, 1fr); }
  .svc__body { grid-column: 3; }
  .svc__no, .svc__pict { grid-row: span 2; align-self: start; }
}

@media (max-width: 959px) {
  .hero__foot { grid-template-columns: minmax(0, 1fr); }
  .sec-head { grid-template-columns: minmax(0, 1fr); }
  .sec-lead { padding-bottom: 0; }
  .approach { grid-template-columns: minmax(0, 1fr); }
  .contact__grid { grid-template-columns: minmax(0, 1fr); }
  .proj-grid { grid-template-columns: minmax(0, 1fr); gap: 72px; }
  .proj:nth-child(2) { margin-top: 0; }

  /* 進め方：縦のタイムライン */
  .flow__rail {
    left: 28px; right: auto; top: 28px; bottom: 28px; width: 4px; height: auto;
    background: repeating-linear-gradient(180deg, var(--ink) 0 10px, transparent 10px 18px);
  }
  .flow__fill { inset: 0 -1px; transform-origin: top; transform: scaleY(var(--p)); }
  .flow__runner { left: 50%; top: calc(var(--p) * 100%); width: 52px; }
  .flow__list { grid-template-columns: minmax(0, 1fr); gap: 36px; }
  .step { display: grid; grid-template-columns: 58px minmax(0, 1fr); column-gap: 22px; }
  .step__no { grid-row: span 2; margin-bottom: 0; }
  .step h3 { margin: 10px 0 8px; }
}

@media (max-width: 599px) {
  :root { --header-h: 62px; --radius: 18px; --shadow: 4px 4px 0 var(--ink); }
  body { line-height: 1.85; }
  .brand { font-size: .875rem; gap: 8px; }
  .brand .logo-art { width: 44px; }

  .hero__lockup { --fs: clamp(2.45rem, 13.4vw, 4.6rem); }
  .face { left: 3.5em; top: 1.02em; width: 1.42em; }
  .face__hint { left: 112%; top: 6%; width: 4.6em; padding: .6em .2em; border-radius: 50%; aspect-ratio: 1; display: grid; place-items: center; text-align: center; white-space: normal; font-size: .75rem; line-height: 1.25; }
  .face__hint::before { left: -7px; top: 50%; bottom: auto; margin-top: -6px; transform: rotate(135deg) skew(10deg, 10deg); }
  .hero__foot { margin-top: 64px; }
  .hero__actions { flex-direction: column; }
  .hero__actions .btn { width: 100%; }

  .tapes { height: 128px; margin-top: -12px; }
  .tape__track { gap: 18px; padding-block: 9px; }

  .sec-title { font-size: clamp(2.1rem, 10.4vw, 3.2rem); }
  .svc { grid-template-columns: minmax(0, 1fr) 72px; gap: 8px 16px; padding: 28px 12px; }
  .svc__no { grid-row: 1; grid-column: 1; font-size: 2.4rem; }
  .svc__pict { grid-row: 1 / span 2; grid-column: 2; }
  .svc__title { grid-column: 1; font-size: 1.6rem; }
  .svc__body { grid-column: 1 / -1; margin-top: 6px; }
  .approach::after { left: 36px; }

  .hanko { width: 76px; height: 76px; font-size: .9375rem; top: -22px; right: -6px; }
  .media__label { right: 12px; bottom: 12px; padding: 6px 12px; letter-spacing: .06em; }
  .media__bar { padding: 8px 12px; }
  .media__skel { gap: 8px; }
  .proj .btn { width: 100%; }


  .notice { grid-template-columns: minmax(0, 1fr); justify-items: start; gap: 20px; }
  .sign { margin-left: 24px; }
  .footer__row { flex-direction: column; align-items: flex-start; }
  .closing__catch { font-size: clamp(1.3rem, 6vw, 1.75rem); }
}

@media (max-width: 359px) {
  .hero__lockup { --fs: 2.5rem; }
  .brand__name { font-size: .8125rem; }
  .menu-btn__label { display: none; }
  .menu-btn { padding-left: 6px; }
}

/* ==========================================================
   動きを減らす設定
   ========================================================== */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
    transition-delay: 0s !important;
  }
  .tape__track { animation: none !important; }
  .sign { animation: none !important; transform: rotate(-3deg); }
  .media__skel i { animation: none !important; }
  .face__btn { animation: none !important; }
  .header.is-hidden { transform: none; }
  /* 下のセクションの動きも止めて、完成した状態で静止させる */
  .js [data-reveal]:not([data-split]) { opacity: 1 !important; transform: none !important; }
  .js .split .ch { opacity: 1 !important; transform: none !important; }
  .svc__pict { translate: none !important; rotate: none !important; }
  .js .svc .svc__no, .js .svc .svc__pict { opacity: 1 !important; translate: none !important; scale: 1 !important; }
  .js .approach.is-in { animation: none !important; }
  .media__cover { translate: none !important; }
  .media__placeholder::after { display: none; }
  .hanko::after { display: none; }
  .step.is-hit .step__no { animation: none !important; }
  .sign { rotate: none !important; translate: none !important; }
  .js .asks li::after { scale: 1 !important; }
  .js .closing .logo-art { rotate: none !important; scale: 1 !important; }
  .closing.is-spin .closing__logo .logo-art { animation: none !important; }
  .js .closing__mark { color: var(--ink) !important; }
  .js .closing__mark::before { transform: skewX(-6deg) !important; }
  .pop { animation: pop-still 1.2s linear forwards !important; animation-duration: 1.2s !important; }
  @keyframes pop-still {
    0% { transform: translate(var(--dx), var(--dy)); opacity: 0; }
    10%, 70% { opacity: 1; transform: translate(var(--dx), var(--dy)); }
    100% { opacity: 0; transform: translate(var(--dx), var(--dy)); }
  }
}

@media print {
  body::after,
  .header, .menu, .tapes, .pops, .face__hint { display: none !important; }
  .js [data-reveal], .js .split .ch, .js .line__in, .js .face, .js .hero__foot { opacity: 1 !important; transform: none !important; }
  .js .closing__mark { color: var(--ink) !important; }
}
