/* Shared styles extracted from the original LP. */

:root{
  --paper:#FBFAF8;
  --ink:#1B1D1F;
  --ink-soft:#4A4E52;
  --muted:#626970;
  --hair:#E2E0DC;
  --accent:#4A6472;            /* グレッシュブルー：文字色にのみ使う */
  --ease-out:cubic-bezier(.23,1,.32,1);
  --maxw:760px;
}

*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}

body{
  background:var(--paper);
  color:var(--ink);
  font-family:"Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic Medium","Yu Gothic",Meiryo,system-ui,sans-serif;
  font-feature-settings:"palt" 1;
  line-height:1.9;
  letter-spacing:.04em;
  font-size:16px;
}

img{max-width:100%;height:auto;display:block}
a{color:inherit}
/* キーボード操作時にヘッダーを飛ばして本文へ移動する */
.skip-link{position:fixed;top:12px;left:12px;z-index:100;padding:10px 18px;background:var(--ink);color:var(--paper);font-size:14px;font-weight:700;text-underline-offset:4px;transform:translateY(calc(-100% - 20px))}
.skip-link:focus{transform:translateY(0);outline:2px solid var(--accent);outline-offset:3px}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}

/* ---------- タイポ階層：大きいほど詰め、小さいほど開く ---------- */
.eyebrow{font-size:12px;letter-spacing:.16em;line-height:1.7;color:var(--accent);font-weight:700}
h1{font-size:clamp(28px,6.4vw,44px);letter-spacing:-.02em;line-height:1.3;font-weight:700}
h2{font-size:clamp(20px,4.4vw,26px);letter-spacing:-.01em;line-height:1.45;font-weight:700}
h3{font-size:17px;letter-spacing:.01em;line-height:1.6;font-weight:700}
.lead{font-size:clamp(15px,3.6vw,17px);line-height:1.95;color:var(--ink-soft)}
.note{font-size:13px;letter-spacing:.1em;line-height:1.8;color:var(--muted)}
strong{font-weight:700}

section{padding:76px 0}
section + section{border-top:1px solid var(--hair)}
.stack > * + *{margin-top:18px}

/* ---------- ヘッダー ---------- */
.site-header{
  position:sticky;top:0;z-index:10;
  background:var(--paper);
  border-bottom:1px solid var(--hair);
  transition:border-color 300ms ease;
}
.site-header.at-top{border-color:transparent}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;height:60px}
.brand{display:flex;align-items:baseline;gap:10px;flex-shrink:0;white-space:nowrap;text-decoration:none}
.brand b{font-size:18px;letter-spacing:.01em;font-weight:700}
.brand span{font-size:11px;letter-spacing:.1em;color:var(--muted)}
.header-cta{
  font-size:13px;letter-spacing:.06em;text-decoration:none;
  border-bottom:1px solid var(--ink);padding-bottom:2px;
  flex-shrink:0;white-space:nowrap;
  transition:opacity 200ms ease;
}

/* ---------- ボタン ---------- */
.btn{
  display:inline-block;background:var(--ink);color:var(--paper);
  text-decoration:none;font-size:15px;letter-spacing:.06em;font-weight:700;
  padding:15px 32px;
  transition:transform 160ms var(--ease-out),background-color 200ms ease;
}
.btn:active{transform:scale(.97)}
.btn-text{
  font-size:14px;letter-spacing:.06em;text-decoration:none;
  border-bottom:1px solid var(--hair);padding-bottom:3px;
  transition:border-color 200ms ease;
}
@media (hover:hover) and (pointer:fine){
  .btn:hover{background:var(--accent)}
  .btn-text:hover{border-color:var(--ink)}
  .header-cta:hover{opacity:.6}
}
.cta-row{display:flex;flex-wrap:wrap;gap:14px 28px;align-items:center;margin-top:36px}

/* ---------- ヒーロー ---------- */
.hero{padding:84px 0 0;position:relative;isolation:isolate}
.hero > .wrap{position:relative;z-index:1}
.hero-wave{position:absolute;top:0;right:0;width:min(80vw,1100px);height:510px;z-index:0;pointer-events:none;overflow:hidden;opacity:.7;-webkit-mask-image:linear-gradient(to right,transparent 0%,#000 48%);mask-image:linear-gradient(to right,transparent 0%,#000 48%);}
.hero-wave canvas{width:100%;height:100%;display:block}
.wave-toggle{position:absolute;right:24px;top:14px;z-index:2;border:0;border-bottom:1px solid var(--hair);background:var(--paper);color:var(--ink-soft);font:inherit;font-size:12px;letter-spacing:.04em;padding:5px 2px;cursor:pointer}
.wave-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
@media(max-width:760px){.hero-wave{width:100%;height:420px;opacity:.38}.wave-toggle{font-size:11px;top:10px}}
@media(prefers-reduced-motion:reduce){.hero-wave{opacity:.3}}

.hero h1{margin-bottom:28px}
.hero .lead{max-width:34em}

/* 実績バー */
.proof{
  display:flex;flex-wrap:wrap;gap:0;
  margin-top:56px;border-top:1px solid var(--hair);
}
.proof div{
  flex:1 1 33%;min-width:150px;
  padding:20px 0 22px;border-bottom:1px solid var(--hair);
}
.proof dt{font-size:11px;letter-spacing:.16em;color:var(--muted);line-height:1.7}
.proof dd{font-size:19px;font-weight:700;letter-spacing:-.01em;line-height:1.5;margin-top:2px}
.proof dd small{font-size:13px;font-weight:400;letter-spacing:.04em;color:var(--ink-soft)}

/* ---------- 写真 ---------- */
.shot{margin-top:0}
.shot img{width:100%;object-fit:cover}
.shot figcaption{margin-top:10px;font-size:12px;letter-spacing:.1em;color:var(--muted);line-height:1.7}

/* ---------- 症状リスト ---------- */
.symptoms{margin-top:32px}
.symptoms li{
  list-style:none;padding:18px 0 18px 30px;
  border-top:1px solid var(--hair);position:relative;line-height:1.85;
}
.symptoms li:last-child{border-bottom:1px solid var(--hair)}
.symptoms li::before{content:"";position:absolute;left:4px;top:31px;width:12px;height:1px;background:var(--muted)}

/* ---------- 事例（課題タイプ別） ---------- */
.case{padding:36px 0;border-top:1px solid var(--hair)}
.case-label{font-size:11px;letter-spacing:.18em;color:var(--accent);font-weight:700;display:block;margin-bottom:10px}
.case h3{font-size:19px;letter-spacing:-.005em;line-height:1.55;margin-bottom:14px}
.case ul{margin-top:14px}
.case li{list-style:none;font-size:15px;line-height:1.85;padding-left:18px;position:relative;color:var(--ink-soft)}
.case li + li{margin-top:6px}
.case li::before{content:"";position:absolute;left:0;top:14px;width:7px;height:1px;background:var(--muted)}
.figure{font-weight:700;color:var(--ink)}
.case .where{margin-top:14px;font-size:12px;letter-spacing:.1em;color:var(--muted)}

/* ---------- 声 ---------- */
.voice{margin-top:28px;padding-left:22px;border-left:1px solid var(--hair)}
.voice p{font-size:clamp(17px,4vw,20px);line-height:1.75;letter-spacing:-.005em;font-weight:700}
.voice cite{display:block;margin-top:12px;font-size:12px;letter-spacing:.12em;color:var(--muted);font-style:normal}
.voice-list{margin-top:32px}
.voice-list li{list-style:none;font-size:15px;line-height:1.85;color:var(--ink-soft);padding-left:18px;position:relative}
.voice-list li + li{margin-top:6px}
.voice-list li::before{content:"";position:absolute;left:0;top:14px;width:7px;height:1px;background:var(--muted)}

/* ---------- 料金 ---------- */
.plan{padding:34px 0;border-top:1px solid var(--hair)}
.plan-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 16px;margin-bottom:8px}
.price{font-size:26px;font-weight:700;letter-spacing:-.015em;white-space:nowrap}
.price small{font-size:13px;font-weight:400;letter-spacing:.06em;color:var(--muted)}
.tag{
  display:inline-block;font-size:11px;letter-spacing:.14em;
  color:var(--accent);font-weight:700;
}
.plan dl{margin-top:14px}
.plan dt{font-size:12px;letter-spacing:.14em;color:var(--muted);margin-top:12px}
.plan dd{font-size:15px;line-height:1.8;color:var(--ink-soft)}

/* ---------- 進め方 ---------- */
.steps{counter-reset:step;margin-top:28px}
.steps li{
  list-style:none;counter-increment:step;
  padding:26px 0 26px 44px;border-top:1px solid var(--hair);position:relative;
}
.steps li:last-child{border-bottom:1px solid var(--hair)}
.steps li::before{
  content:counter(step);position:absolute;left:0;top:26px;
  font-size:13px;letter-spacing:.1em;color:var(--accent);font-weight:700;
}
.steps h3{margin-bottom:6px}
.steps p{font-size:15px;line-height:1.85;color:var(--ink-soft)}

.pledge{margin-top:48px;padding-top:34px;border-top:1px solid var(--hair)}
.pledge p{font-size:clamp(18px,4vw,21px);line-height:1.75;letter-spacing:-.01em;font-weight:700}
.pledge .lead{margin-top:18px;font-size:15px;font-weight:400}

/* ---------- FAQ ---------- */
.faq{margin-top:28px}
.faq div{padding:26px 0;border-top:1px solid var(--hair)}
.faq div:last-child{border-bottom:1px solid var(--hair)}
.faq dt{font-size:16px;font-weight:700;letter-spacing:.01em;line-height:1.7}
.faq dd{margin-top:10px;font-size:15px;line-height:1.85;color:var(--ink-soft)}

/* ---------- 私について ---------- */
.profile{display:flex;gap:28px;align-items:center;margin-bottom:34px}
.profile figure{flex-shrink:0;width:120px}
.profile img{width:120px;height:120px;object-fit:cover;background:#EFEDE9}
.profile .name{font-size:19px;font-weight:700;letter-spacing:.01em;line-height:1.5}
.profile .role{font-size:13px;letter-spacing:.1em;color:var(--muted);margin-top:6px}

.facts{margin-top:32px;border-top:1px solid var(--hair)}
.facts div{display:flex;gap:20px;padding:14px 0;border-bottom:1px solid var(--hair);font-size:14px;line-height:1.8}
.facts dt{flex:0 0 6.5em;font-size:12px;letter-spacing:.14em;color:var(--muted);padding-top:3px}
.facts dd{color:var(--ink-soft)}

.contact{padding:84px 0}
.contact h2{margin-bottom:20px}

.site-footer{border-top:1px solid var(--hair);padding:32px 0 48px}
.site-footer .wrap{display:flex;flex-wrap:wrap;gap:8px 24px;justify-content:space-between;align-items:baseline}

/* ================= モーション =================
   方針：
   ・ヒーローはCSSアニメーションのみ（JSに依存しない＝本文が消えない）
   ・スクロール表示は本文を隠さず、画面内に入った時だけ一度動かす
   ・動かすのは opacity と transform だけ
   ============================================ */
@keyframes rise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.hero .eyebrow{animation:rise 660ms var(--ease-out) 40ms both}
.hero h1{animation:rise 700ms var(--ease-out) 80ms both}
.hero .lead{animation:rise 700ms var(--ease-out) 160ms both}
.hero .cta-row{animation:rise 700ms var(--ease-out) 240ms both}
.hero .proof{animation:rise 700ms var(--ease-out) 340ms both}

/* 本文は常に表示可能。表示時だけWeb Animations APIで動かす。 */
.shot{overflow:hidden}
.btn-arrow{display:inline-block;margin-left:10px;transition:transform 180ms var(--ease-out)}
@media(hover:hover) and (pointer:fine){
  .btn:hover{transform:translateY(-2px)}
  .btn:hover .btn-arrow{transform:translateX(4px)}
  .btn:active{transform:translateY(0) scale(.97)}
}
@media(prefers-reduced-motion:reduce){
  .btn,.btn-arrow{transition:none!important;transform:none!important}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .hero .eyebrow,.hero h1,.hero .lead,.hero .cta-row,.hero .proof{animation:none}
  html[data-reveal] .reveal{opacity:1;transform:none}
  html[data-reveal] .reveal.is-in{transition:none}
  .btn:active{transform:none}
}

/* ---------- モバイル ---------- */
@media (max-width:480px){
  body{line-height:1.85}
  section{padding:56px 0}
  .hero{padding:60px 0 0}
  .wrap{padding:0 20px}
  .brand span{display:none}
  .profile{flex-direction:column;gap:20px;align-items:flex-start}
  .facts div{flex-direction:column;gap:2px}
  .facts dt{flex:none}
  .btn{width:100%;text-align:center}
  .plan-head{flex-direction:column;align-items:flex-start}
  .proof div{flex:1 1 100%}
}
.mob-only{display:none}
@media (max-width:480px){.mob-only{display:inline}}

/* ミニ業務改善プランと実績デモ */
section[id], main[id]{scroll-margin-top:80px}
.header-nav{display:flex;align-items:center;gap:24px;flex-shrink:0}
.headline-unit{white-space:nowrap}
.hero-plan{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 18px;margin-top:24px;padding:16px 0;border-top:1px solid var(--hair);text-decoration:none;font-size:13px;color:var(--ink-soft)}
.hero-plan strong{font-size:18px;color:var(--ink)}
.hero-plan:hover{text-decoration:underline;text-underline-offset:4px}
.plan-featured{margin-top:28px;padding:34px 0;border-top:2px solid var(--ink)}
.plan-featured .price{font-size:34px}
.plan-terms{font-size:13px;line-height:1.85;color:var(--ink-soft);margin-top:24px}
.before-after{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:24px}
.before-after>div{padding:16px 0 0;border-top:1px solid var(--hair);font-size:15px}
.before-after p{line-height:1.8}
.demo-shot{margin:24px auto 0;max-width:440px}
.demo-shot iframe{display:block;width:100%;height:625px;border:1px solid var(--hair);background:#f1f5f9}
.demo-shot figcaption{margin-top:10px;font-size:12px;line-height:1.8;color:var(--ink-soft)}
a:focus-visible{outline:2px solid var(--accent);outline-offset:5px}
@media(max-width:600px){.brand span{display:none}.header-nav{gap:18px}}
@media(max-width:480px){.plan-featured{padding:26px 0}.before-after{grid-template-columns:1fr}.hero-plan{gap:4px 12px}.hero-plan>span:last-child{flex-basis:100%}.plan-featured .btn{padding:15px 10px;font-size:14px}}
@media(max-width:360px){h1{font-size:24px}.header-nav{gap:12px}}

/* 見積明細作成サンプル */
.builder-intro{margin-top:20px;font-size:16px;color:var(--ink-soft)}
.builder-demo{margin-top:32px;border-top:2px solid var(--ink);padding-top:24px}
.builder-demo h3{font-size:20px}
.builder-demo label{display:block;font-size:14px;color:var(--ink-soft)}
.builder-demo input{font:inherit;color:var(--ink);background:#fff;border:1px solid #B9BDBD;border-radius:0;padding:10px;width:100%;min-width:0;line-height:1.5}
.builder-demo input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.builder-project{margin:18px 0;max-width:440px}
.builder-project input{margin-top:6px}
.builder-inputs{margin-top:20px}
.builder-row{display:grid;grid-template-columns:1.3fr 1fr 1.2fr;gap:16px;align-items:end;padding:18px 0;border-top:1px solid var(--hair)}
.builder-row p{font-size:16px;align-self:center}
.builder-row input{margin-top:6px}
.builder-actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px 22px;margin-top:22px}
.builder-actions button{font-family:inherit;cursor:pointer;border:0;line-height:1.7}
.builder-actions .builder-reset{background:none;color:var(--ink-soft);padding:10px 0;text-decoration:underline;text-underline-offset:4px;font-size:14px}
.builder-status{margin-top:14px;font-size:14px;line-height:1.8;color:var(--ink-soft)}
.builder-result{margin-top:26px;padding:24px;background:#fff;border:1px solid var(--hair)}
.builder-result .result-heading{display:flex;justify-content:space-between;gap:12px;align-items:baseline;padding-bottom:12px;border-bottom:2px solid var(--ink)}
.builder-result .result-heading span{font-size:12px;color:var(--accent)}
.builder-result h4{font-size:20px;font-weight:700}
.builder-result .project-name{margin:16px 0;font-size:15px;overflow-wrap:anywhere}
.builder-result table{width:100%;border-collapse:collapse;font-size:14px;font-variant-numeric:tabular-nums}
.builder-result th,.builder-result td{padding:12px 5px;border-bottom:1px solid var(--hair);text-align:right}
.builder-result th:first-child,.builder-result td:first-child{text-align:left}
.builder-result th{font-size:12px;font-weight:400;color:var(--ink-soft)}
.builder-result .builder-total{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-top:20px;font-size:14px}
.builder-total strong{font-size:28px;white-space:nowrap;letter-spacing:-.02em}
.builder-note{font-size:13px;color:var(--ink-soft);line-height:1.8;margin-top:14px}
.builder-tail{margin-top:28px;font-size:15px;color:var(--ink-soft)}
@media(max-width:480px){.builder-row{grid-template-columns:1fr 1fr;gap:10px 16px}.builder-row p{grid-column:1/-1}.builder-result{padding:18px 12px}.builder-result table{font-size:12px}.builder-result th,.builder-result td{padding:12px 2px}.builder-total strong{font-size:24px}.builder-actions .btn{font-size:14px;padding:15px 16px}}

.other-work{margin-top:40px;border-top:1px solid var(--hair);padding-top:22px}
.other-work summary{cursor:pointer;font-size:16px;font-weight:700;padding:10px 0}
.other-work summary:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
.other-work .case{margin-top:22px}

/* 意味のまとまりを保ち、短い語尾だけが次行に残るのを防ぐ */
.phrase{display:inline-block;max-width:100%;vertical-align:baseline;text-wrap:pretty}
.title-line{display:block}
h1,h2,h3{line-break:strict;overflow-wrap:normal;text-wrap:balance}
p,li,dd,dt,figcaption{line-break:strict;text-wrap:pretty}
@supports(word-break:auto-phrase){p,li,dd,dt,figcaption{word-break:auto-phrase}}
.name-reading{display:inline-block;font-size:12px;font-weight:400;letter-spacing:0;color:var(--ink-soft);white-space:nowrap}
.step-detail{display:inline-block;font-size:14px;font-weight:400}
@media(max-width:600px){
  .hero h1{font-size:clamp(24px,6.4vw,34px);line-height:1.45;letter-spacing:-.025em;text-wrap:wrap}
  h2{font-size:clamp(20px,4.8vw,26px);line-height:1.6;text-wrap:wrap}
  .case h3,.builder-demo h3{font-size:18px;line-height:1.7;text-wrap:wrap}
  .lead{font-size:16px;line-height:1.95;letter-spacing:.02em}
  .mobile-sentence{display:block}
  .mobile-sentence+.mobile-sentence{margin-top:.45em}
  .cta-row{gap:16px 20px}
  .hero .cta-row .btn-text{font-size:13px;letter-spacing:.02em}
  .step-detail{display:block;margin-top:4px}
}


/* 講座写真：余白を保ち、追加写真はコンパクトにまとめる */
.about-story{display:block}
.lecture-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:20px}
.lecture-gallery img{width:100%;aspect-ratio:4/3;object-fit:cover;object-position:65% 54%}
.lecture-gallery figure:last-child img{object-position:50% 56%}
@media(max-width:600px){
  .lecture-gallery{gap:12px}
  .lecture-gallery img{aspect-ratio:1/1;object-position:70% 54%}
}


/* Scroll-driven stories: normal document flow remains the fallback. */
.work-slide{padding:32px 0}.work-slide h3{font-size:30px;margin:24px 0}.work-slide .note{margin:24px 0}.work-slide .btn-text{display:inline-block}
.work-detail{border-top:1px solid var(--hair);padding:20px 0}.work-detail summary{cursor:pointer;font-size:15px}.work-detail .case{margin-top:20px}.work-detail{scroll-margin-top:90px}
/* 事例詳細・その他の実績：<details>の開閉に、他の演出と揃えたイージングでアニメーションを付ける（対応ブラウザのみ、非対応環境は既存のネイティブ挙動にフォールバック） */
@supports (interpolate-size: allow-keywords) {
  .work-detail,.other-work{interpolate-size:allow-keywords}
  .work-detail::details-content,.other-work::details-content{
    height:0;overflow:hidden;
    transition:height 320ms var(--ease-out),content-visibility 320ms allow-discrete;
  }
  .work-detail[open]::details-content,.other-work[open]::details-content{height:auto}
}
@media(prefers-reduced-motion:reduce){
  .work-detail::details-content,.other-work::details-content{transition:none!important}
}
.scroll-hint,.work-progress{display:none}
.scroll-motion .work-scroll{height:290vh;position:relative}
.scroll-motion .work-sticky{position:sticky;top:85px;padding:12px 0 28px;background:var(--paper)}
.scroll-motion .work-window{overflow:hidden}
.scroll-motion .work-track{display:flex;will-change:transform}
.scroll-motion .work-slide{flex:0 0 100%;min-width:0;box-sizing:border-box;padding:24px 12px 28px 0}
.scroll-motion .scroll-hint{display:block;font-size:12px;color:var(--muted);letter-spacing:.08em}
.scroll-motion .work-progress{display:block;height:2px;background:var(--hair);margin-top:20px}
.work-progress span{display:block;width:100%;height:100%;background:var(--accent);transform-origin:left;transform:scaleX(.3333)}
.scroll-motion .process-story{display:grid;grid-template-columns:150px minmax(0,1fr);gap:30px;align-items:start}
.scroll-motion .process-story h2{position:sticky;top:110px}
.scroll-motion .steps{margin:0}.scroll-motion .steps li{min-height:0;padding:28px 0 28px 44px;box-sizing:border-box}.scroll-motion .steps li::before{top:28px}
@media(max-width:600px){.work-slide h3{font-size:26px}.scroll-motion .work-sticky{top:74px}.scroll-motion .work-slide{padding-right:2px}.scroll-motion .process-story{display:block}.scroll-motion .process-story h2{top:65px;background:var(--paper);padding:16px 0;z-index:2}.scroll-motion .steps li{min-height:32vh}}
@media(prefers-reduced-motion:reduce){.scroll-motion .work-scroll{height:auto}.scroll-motion .work-sticky{position:static}.scroll-motion .work-track{display:block;transform:none!important}.scroll-motion .process-story h2{position:static}.scroll-motion .steps li{min-height:0}}

/* Readable interface previews, with scroll-linked depth. */
.demo-visual{margin:14px 8px 14px;perspective:1100px}
.demo-visual a{display:block;transform-origin:center;transform:rotateX(0deg) rotateY(0deg);text-decoration:none}
.demo-visual img{display:block;width:100%;height:auto;border:1px solid #dbe3e7;border-radius:8px;box-shadow:0 8px 18px rgba(35,58,72,.10)}
.demo-visual figcaption{font-size:11px;color:var(--muted);margin-top:8px}
.work-slide h3{margin:14px 0}.work-slide .note{margin:10px 0}
.scroll-motion .work-slide{padding-top:12px;padding-bottom:12px}
.scroll-motion .work-progress{margin-top:10px}
.work-slide .demo-visual{max-width:520px}
.scroll-motion .work-sticky{padding-bottom:12px}
@media(max-width:600px){.work-slide h3{font-size:23px}.work-slide .lead{font-size:15px;line-height:1.8}.work-slide .note{font-size:12px}.demo-visual{margin:12px 4px}.demo-visual figcaption{font-size:10px}}
@media(prefers-reduced-motion:reduce){.demo-visual a{transform:none!important}}

.lecture-depth-photo{transform-origin:center center;backface-visibility:hidden}
.lecture-depth-photo img{display:block}
.lecture-main-photo img{display:block;transform-origin:center center;backface-visibility:hidden}
#teaching{overflow:clip}
.lecture-gallery{padding-bottom:12px;overflow:clip}
@media(prefers-reduced-motion:reduce){.lecture-depth-photo,.lecture-main-photo img{transform:none!important}}
.work-nav{display:flex;gap:8px;margin:12px 0;flex-wrap:wrap}
.work-nav a{font:inherit;font-size:13px;padding:8px 12px;border:1px solid var(--hair);border-radius:5px;text-decoration:none;min-height:44px;display:flex;align-items:center;box-sizing:border-box;transition:background-color 200ms ease,color 200ms ease,border-color 200ms ease}
.work-nav a[aria-current="true"]{background:var(--accent);color:var(--paper);border-color:var(--accent)}
.work-nav a:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.result-time{font-size:20px;color:var(--ink);letter-spacing:0}
.shift-feedback{margin:30px 0 36px;padding:24px 0;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair)}
.shift-feedback h3{font-size:clamp(22px,4vw,27px);margin:12px 0}
.shift-feedback>p:not(.case-label):not(.note){font-size:16px;line-height:1.9}
.shift-feedback .note{margin-top:12px}
.work-slide{scroll-margin-top:100px}
@media(min-width:601px){.scroll-motion .work-slide .demo-visual{max-width:420px}.scroll-motion .work-slide h3{margin:10px 0}.scroll-motion .work-slide .lead{font-size:17px;line-height:1.7}.scroll-motion .work-slide .note{line-height:1.6}.scroll-motion .scroll-hint{margin:4px 0}}
