/* しろがね精工｜見本 — 器は機械図面（青図）・検査成績書・ミルシート */
:root{
  --bp:#0b2242;
  --bp-deep:#071a33;
  --bp-2:#0f2c52;
  --line:rgba(190,214,250,.42);
  --line-strong:#c9ddfb;
  --line-faint:rgba(190,214,250,.17);
  --text:#eef4ff;
  --text-dim:#b3c7e6;
  --paper:#f3f5f8;
  --paper-2:#e2e9f2;
  --ink:#0e2142;
  --ink-2:#3a4e6e;
  --rule:#9fb2cc;
  --red:#c0261e;
  --redpen:#ff8f80;
  --go:#1e7a46;
  --f-head:"Zen Kaku Gothic New","Hiragino Kaku Gothic ProN","Yu Gothic",system-ui,sans-serif;
  --f-code:"M PLUS 1 Code","Zen Kaku Gothic New",ui-monospace,monospace;
  --pad:clamp(16px,4vw,56px);
  /* 動きの決まり：出るは指数のゆるみ、押し返しはばね。長さは3段 */
  --e-out:cubic-bezier(.16,1,.3,1);
  --e-io:cubic-bezier(.65,0,.35,1);
  --e-spring:cubic-bezier(.34,1.56,.64,1);
  --d-1:180ms;--d-2:420ms;--d-3:900ms;
  /* 字の段：見出し・小見出し・本文 */
  --fs-h2:clamp(26px,2.9vw,40px);--fs-h3:20px;--fs-b:16px;--fs-s:14px;--fs-x:12px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{
  margin:0;position:relative;color:var(--text);font:500 16px/1.8 var(--f-head);letter-spacing:.02em;
  font-variant-numeric:lining-nums tabular-nums;
  background-color:var(--bp);
  background-image:
    linear-gradient(rgba(150,190,255,.075) 1px,transparent 1px),
    linear-gradient(90deg,rgba(150,190,255,.075) 1px,transparent 1px),
    linear-gradient(rgba(150,190,255,.035) 1px,transparent 1px),
    linear-gradient(90deg,rgba(150,190,255,.035) 1px,transparent 1px);
  background-size:80px 80px,80px 80px,16px 16px,16px 16px;
  overflow-x:clip;
}
h1,h2,h3,p,dl,dd,ol,ul,figure,blockquote{margin:0}
ol,ul{padding:0;list-style:none}
h1,h2,h3{text-wrap:balance;word-break:auto-phrase}
button{font:inherit;color:inherit}
a{color:inherit}
:focus-visible{outline:3px solid #ffd27a;outline-offset:3px}
svg{overflow:visible}
b,strong{font-weight:700}
i{font-style:normal}

/* 図面の枠 */
.frame{position:absolute;inset:10px;border:2px solid rgba(201,221,251,.55);pointer-events:none;z-index:6}
.frame::before{content:"";position:absolute;inset:-7px;border:1px solid rgba(201,221,251,.22)}
.frame-zones span{position:absolute;font:500 10px/1 var(--f-code);color:var(--text-dim);width:12px;text-align:center}
.frame-zones span::after{content:"";position:absolute;background:rgba(201,221,251,.45)}
.frame-zones .zl{left:-11px;transform:translateY(-50%)}
.frame-zones .zr{right:-11px;transform:translateY(-50%)}
.frame-zones .zl::after,.frame-zones .zr::after{left:0;right:0;height:1px;top:-14px}
.frame-zones .zt{top:-11px;transform:translateX(-50%)}
.frame-zones .zt::after{top:0;bottom:0;width:1px;left:-12px}

/* 見本の断り（常に出す） */
.sample-note{position:fixed;z-index:70;right:15px;bottom:28px;writing-mode:vertical-rl;font:500 11px/1 var(--f-head);letter-spacing:.08em;color:var(--text-dim);background:var(--bp-deep);padding:8px 4px;pointer-events:none}

/* ボタン：幾何公差の枠のように区画を切る */
.btn{display:inline-flex;align-items:stretch;min-height:52px;padding:0;border:1.5px solid var(--line-strong);background:rgba(7,26,51,.55);color:var(--text);font:700 16px/1.3 var(--f-head);letter-spacing:.04em;cursor:pointer;text-decoration:none;touch-action:manipulation;transition:background-color var(--d-1),color var(--d-1),transform var(--d-2) var(--e-spring)}
.btn .sym{display:grid;place-items:center;width:46px;flex:none;border-right:1.5px solid currentColor}
.btn .sym svg{width:22px;height:22px}
.btn .lbl{display:flex;flex-direction:column;justify-content:center;padding:10px 18px;text-align:left}
.btn .lbl small{font:500 12px/1.4 var(--f-code);opacity:.85;margin-top:2px}
.btn:hover{background:rgba(201,221,251,.14)}
.btn.primary{background:var(--paper);color:var(--ink);border-color:var(--paper)}
.btn.primary .sym{border-right-color:rgba(14,33,66,.35)}
.btn.primary:hover{background:#fff}
.btn:active{transform:scale(.97);transition-duration:60ms}
.cta-row{display:flex;flex-wrap:wrap;gap:12px}
.sec-cta{margin-top:32px}

/* ===== 1 最初の画面 ===== */
.hero{position:relative;min-height:100vh;min-height:100svh;overflow:hidden;background:var(--bp-deep);touch-action:pan-y;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}
.hero-gl{position:absolute;inset:0;z-index:0}
.hero-gl canvas{position:absolute;inset:0;width:100%;height:100%;display:block;opacity:0;transition:opacity 1.1s var(--e-out)}
.gl-ready canvas{opacity:1}
.vignette{position:absolute;inset:0;pointer-events:none;background:
  linear-gradient(180deg,rgba(7,26,51,.82) 0%,rgba(7,26,51,.35) 26%,rgba(7,26,51,0) 40%,rgba(7,26,51,0) 70%,rgba(7,26,51,.55) 100%),
  radial-gradient(120% 90% at 55% 58%,transparent 55%,rgba(4,14,30,.55) 100%)}
.hero-fallback{position:absolute;left:50%;top:56%;width:min(86%,760px);transform:translate(-50%,-50%);fill:none;stroke:var(--line-strong);stroke-width:1.6;transition:opacity .9s var(--e-out),transform 1.2s var(--e-out)}
.fb-center{stroke-dasharray:18 4 3 4;stroke-width:1;opacity:.7}
.fb-edge{stroke-width:1;opacity:.75}
.fb-dim{stroke-width:.9;opacity:.8}
.fb-t{fill:var(--text);stroke:none;font:500 11px var(--f-code);text-anchor:middle}
.gl-ready .hero-fallback{opacity:0;transform:translate(-50%,-50%) scale(1.04)}
.hud{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:2}
.tooltag{position:absolute;left:0;top:0;z-index:3;display:none;flex-direction:column;gap:0;padding:5px 9px 6px;background:rgba(5,18,38,.78);border-left:2px solid var(--line-strong);font:500 13px/1.35 var(--f-code);color:#e6f1ff;pointer-events:none;will-change:transform;white-space:nowrap}
.tooltag b{display:inline-block;width:1.4em;color:var(--text-dim);font-weight:500}
.tt-sf{font-size:11px;color:var(--text-dim)}
.gl-ready .tooltag{display:flex}
.is-inspect .tooltag{display:none}

.hero-inner{position:relative;z-index:4;min-height:100vh;min-height:100svh;display:grid;pointer-events:none;
  padding:40px calc(var(--pad) + 4px) 40px;
  grid-template-columns:minmax(0,1fr) auto;
  grid-template-rows:auto auto minmax(230px,1fr) auto;
  grid-template-areas:"copy copy" "proof cta" "slot slot" "panel tb";
  column-gap:28px;row-gap:14px}
.hero-inner button,.hero-inner a{pointer-events:auto}
.hero-copy{grid-area:copy}
.proof{grid-area:proof;align-self:center}
.hero-cta{grid-area:cta;align-self:center;justify-content:flex-end}
.lathe-slot{grid-area:slot}
.machine-panel{grid-area:panel;align-self:end}
.title-block{grid-area:tb;align-self:end}

.maker{display:flex;align-items:center;flex-wrap:wrap;gap:4px 12px;margin-bottom:16px}
.mark{width:30px;height:30px;color:var(--line-strong);flex:none}
.maker-name{font:900 20px/1 var(--f-head);letter-spacing:.08em}
.maker-sub{font:500 var(--fs-x)/1.3 var(--f-code);color:var(--text-dim);letter-spacing:.04em}
.hero h1{font:900 clamp(34px,4.5vw,64px)/1.22 var(--f-head);letter-spacing:.02em;text-shadow:0 2px 18px rgba(4,14,30,.8)}
.h1-l{display:block}
.br-m{display:none}
.lead{margin-top:16px;max-width:36em;color:#d6e4f8;font-size:var(--fs-b);line-height:1.8;text-shadow:0 1px 10px rgba(4,14,30,.9)}

.proof{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:14px;align-items:end;max-width:520px}
.proof-dim{grid-column:1;grid-row:2;position:relative;height:12px;border-top:1.2px solid var(--line-strong);margin-top:4px}
.proof-dim i{position:absolute;top:-7px;width:0;height:0;border-top:5px solid transparent;border-bottom:5px solid transparent}
.proof-dim i:first-child{left:0;border-right:11px solid var(--line-strong);top:-6px}
.proof-dim i:last-child{right:0;border-left:11px solid var(--line-strong);top:-6px}
.proof-dim::before,.proof-dim::after{content:"";position:absolute;top:-34px;width:1.2px;height:44px;background:var(--line-strong)}
.proof-dim::before{left:0}.proof-dim::after{right:0}
.proof-num{grid-column:1;grid-row:1;font:700 clamp(30px,3vw,42px)/1 var(--f-code);padding:0 14px;text-align:center;letter-spacing:.02em}
.proof-num small{font-size:.5em;margin-left:2px;font-family:var(--f-head)}
.proof-cap{grid-column:2;grid-row:1/3;align-self:center;font-size:var(--fs-s);color:var(--text-dim);line-height:1.5}

/* 機械の操作盤 */
.machine-panel{display:flex;flex-direction:column;gap:10px}
.panel-row{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px 22px}
.mat-rack{display:flex;gap:8px;pointer-events:auto}
.mat{display:flex;align-items:center;gap:9px;padding:7px 12px 7px 8px;min-height:48px;border:1.5px solid var(--line);background:rgba(5,18,38,.66);cursor:pointer;text-align:left;touch-action:manipulation;transition:background-color var(--d-2) var(--e-out),color var(--d-2) var(--e-out),border-color var(--d-2) var(--e-out),transform var(--d-2) var(--e-spring)}
.mat:active{transform:scale(.96);transition-duration:60ms}
.mat .end{transition:transform var(--d-3) var(--e-out)}
.mat.is-on .end{transform:rotate(180deg)}
.mat span{display:flex;flex-direction:column;font:700 13px/1.25 var(--f-head)}
.mat span b{font:500 11px/1.3 var(--f-code);color:var(--text-dim)}
.mat.is-on{border-color:var(--paper);background:var(--paper);color:var(--ink)}
.mat.is-on span b{color:var(--ink-2)}
.end{width:28px;height:28px;border-radius:50%;flex:none;box-shadow:inset 0 0 0 1.5px rgba(0,0,0,.25)}
.end-a5052{background:radial-gradient(circle at 50% 50%,#7c8794 0 9%,transparent 10%),repeating-radial-gradient(circle at 50% 50%,#dfe4ea 0 2px,#b9c1cb 2px 3px)}
.end-sus304{background:radial-gradient(circle at 50% 50%,#6f6c66 0 9%,transparent 10%),repeating-radial-gradient(circle at 50% 50%,#d6d2ca 0 2px,#aaa69e 2px 3px)}
.end-c3604{background:radial-gradient(circle at 50% 50%,#8a6524 0 9%,transparent 10%),repeating-radial-gradient(circle at 50% 50%,#e7c06a 0 2px,#b98c3c 2px 3px)}
.end-pom{background:radial-gradient(circle at 50% 50%,#c9c5bc 0 9%,transparent 10%),repeating-radial-gradient(circle at 50% 50%,#f6f4ef 0 2px,#e1ddd3 2px 3px)}
.panel-ops{display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px}
.cycle{display:inline-flex;align-items:center;gap:10px;min-height:48px;padding:0 18px 0 14px;border:1.5px solid var(--line-strong);background:rgba(5,18,38,.66);color:var(--text);font:700 15px/1 var(--f-head);letter-spacing:.04em;cursor:pointer;touch-action:manipulation;transition:background-color var(--d-1),transform var(--d-2) var(--e-spring)}
.cycle:hover{background:rgba(201,221,251,.14)}
.cycle:active{transform:scale(.97);transition-duration:60ms}
.cycle .lamp{width:12px;height:12px;border-radius:50%;background:#7fe0a8;box-shadow:0 0 0 3px rgba(127,224,168,.18),0 0 10px rgba(127,224,168,.8)}
.cycle[disabled]{opacity:.55;cursor:default}
.hint{display:flex;align-items:center;gap:10px;font-size:var(--fs-s);color:#dbe8fb;letter-spacing:.06em;text-shadow:0 1px 8px rgba(4,14,30,.9)}
.hint svg{width:52px;height:12px;fill:var(--line-strong);stroke:var(--line-strong);stroke-width:1.2;flex:none}
.hint.is-pulse svg{animation:nudge 1.6s var(--e-io) 4}
@keyframes nudge{0%,100%{transform:translateX(-5px)}50%{transform:translateX(5px)}}
.progress{font:500 13px/1.4 var(--f-code);color:var(--text-dim)}
.progress b{color:var(--text);font-weight:700}
.progress .remain{margin-left:14px}
.inspect-ops{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px}
.inspect-ops[hidden]{display:none}
.done-msg{width:100%;font-size:var(--fs-b);font-weight:700;text-shadow:0 1px 8px rgba(4,14,30,.9)}
.done-msg span{margin-left:14px;font:500 var(--fs-x)/1 var(--f-code);color:var(--text-dim)}
.is-inspect .panel-ops,.is-inspect .mat-rack{display:none}

.title-block{display:grid;grid-template-columns:repeat(3,auto);border:1.5px solid var(--line-strong);background:rgba(5,18,38,.7);font-size:13px;min-width:330px}
.title-block>div{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:4px 10px 5px}
.title-block>div:nth-child(3n){border-right:0}
.title-block>div:nth-last-child(-n+3){border-bottom:0}
.title-block dt{font:500 10px/1.3 var(--f-code);color:var(--text-dim)}
.title-block dd{font:700 14px/1.35 var(--f-code)}
.tb-proj dd{display:flex;align-items:center;gap:6px;font-size:12px}
.tb-proj svg{width:40px;height:18px;fill:none;stroke:var(--line-strong);stroke-width:1.3}

/* 寸法線（3D の上に重ねる） */
.hud .dl{stroke:#d9e8ff;stroke-width:1.2;fill:none}
.hud .ar{fill:#d9e8ff;stroke:none}
.hud .lead-l{stroke:rgba(217,232,255,.75);stroke-width:1;fill:none}
.hud text{font:500 15px var(--f-code);fill:#f2f8ff;paint-order:stroke;stroke:rgba(5,16,34,.92);stroke-width:4px;stroke-linejoin:round}
.hud text.big{font-size:19px;font-weight:700}
.hud text.sm{font-size:12px}
.hud .dims{opacity:0;transition:opacity .5s}
.hud .dims.on{opacity:1}
.hud .dims.on .dl,.hud .dims.on .lead-l{stroke-dasharray:1;stroke-dashoffset:1;animation:draw var(--d-3) var(--e-out) forwards}
.hud .dims.on g:nth-child(2) path{animation-delay:.08s}.hud .dims.on g:nth-child(3) path{animation-delay:.16s}.hud .dims.on g:nth-child(4) path{animation-delay:.24s}.hud .dims.on g:nth-child(5) path{animation-delay:.32s}.hud .dims.on g:nth-child(6) path{animation-delay:.4s}
@keyframes draw{to{stroke-dashoffset:0}}

/* ===== 図面の本体 ===== */
.sheet{position:relative;z-index:3;padding:0 calc(var(--pad) + 6px)}
.sec{position:relative;padding:clamp(56px,6vw,88px) 0 clamp(48px,5vw,64px);border-top:1px solid var(--line)}
.vh{margin-bottom:12px}
/* 書類の名は、節の線の上に置く（図面の断面記号の置き方） */
.vtag{position:absolute;right:0;top:0;transform:translateY(-50%);background:var(--bp);padding:0 0 0 14px;font:500 var(--fs-x)/1.6 var(--f-code);color:var(--text-dim);letter-spacing:.12em;white-space:nowrap}
.vtag::before{content:"";display:inline-block;width:7px;height:7px;border:1.2px solid var(--line-strong);transform:rotate(45deg);margin-right:10px;vertical-align:1px}
.vh h2{font:900 var(--fs-h2)/1.35 var(--f-head);letter-spacing:.03em}
.sec-lead{color:var(--text-dim);max-width:40em;margin-bottom:32px}
.vh+.note-list,.vh+.reasons-grid,.vh+.fax-grid,.vh+.proc,.vh+.place-grid{margin-top:32px}

/* 2 注記 */
.note-list{display:grid;grid-template-columns:1fr 1fr;border:1.5px solid var(--line);counter-reset:n;background:rgba(7,26,51,.35)}
.note-list li{counter-increment:n;position:relative;padding:20px 22px 20px 62px;border-bottom:1px solid var(--line-faint)}
.note-list li:nth-child(odd){border-right:1px solid var(--line-faint)}
.note-list li:nth-last-child(-n+2){border-bottom:0}
.note-list li::before{content:counter(n) ".";position:absolute;left:22px;top:19px;font:700 19px/1.3 var(--f-code);color:var(--text)}
.note-list .ring{position:absolute;left:8px;top:6px;width:48px;height:48px;fill:none;stroke:var(--redpen);stroke-width:2.2;stroke-linecap:round;pointer-events:none}
.js .note-list .ring path{stroke-dasharray:1;stroke-dashoffset:1}
.note-list li.checked .ring path{transition:stroke-dashoffset .6s var(--e-out);stroke-dashoffset:0}
.nq{font-size:17px;font-weight:700;line-height:1.65}
.redpen{margin-top:8px;color:var(--redpen);font:700 var(--fs-s)/1.6 var(--f-head);padding-left:24px;position:relative}
.redpen::before{content:"";position:absolute;left:2px;top:.55em;width:14px;height:8px;border-left:2px solid var(--redpen);border-bottom:2px solid var(--redpen);transform:rotate(-45deg) translateY(-3px)}
.js .redpen{clip-path:inset(0 100% 0 0)}
.checked .redpen{clip-path:inset(0 0 0 0);transition:clip-path var(--d-3) var(--e-io) .3s}

/* 紙の書類 */
.paper{position:relative;background:var(--paper);color:var(--ink);padding:22px 24px 24px}

/* 3 理由 */
.reasons-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:28px;align-items:stretch}
.gl-stage{position:relative;border:1.5px solid var(--line);background:var(--bp-deep);min-height:420px;overflow:hidden;touch-action:pan-y}
.gl-stage canvas{position:absolute;inset:0;width:100%;height:100%;display:block;opacity:0;transition:opacity .8s ease}
.gl-stage.gl-ready canvas{opacity:1}
.gl-fallback{display:none;position:absolute;inset:auto 18px 18px;color:var(--text-dim);font-size:14px}
.no-gl .gl-fallback{display:block}
.cmm-hud{position:absolute;left:10px;top:10px;display:flex;flex-direction:column;gap:1px;font:500 12px/1.45 var(--f-code);color:var(--text-dim);pointer-events:none;background:rgba(5,18,38,.78);padding:6px 10px;border-left:2px solid var(--line-strong);max-width:calc(100% - 20px)}
.cmm-hud .ch-v{color:var(--text);font-size:13px}
.cmm-hud .ch-m{color:var(--text)}
.cmm-hud .ch-m::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--redpen);margin-right:7px;vertical-align:1px}
.no-gl .cmm-hud{display:none}
.report{padding-left:24px}
.rep-head{display:grid;grid-template-columns:auto 1fr;gap:6px 22px;align-items:start;border-bottom:2px solid var(--ink);padding-bottom:12px;margin-bottom:14px}
.rep-title{font:900 var(--fs-h3)/1.3 var(--f-head);letter-spacing:.24em}
.rep-meta{display:grid;grid-template-columns:1fr 1fr;gap:2px 16px;font-size:12.5px;line-height:1.5}
.rep-meta div{display:flex;gap:8px}
.rep-meta dt{color:var(--ink-2);white-space:nowrap;font-family:var(--f-code)}
.rep-table{width:100%;border-collapse:collapse;font-size:15px;line-height:1.55}
.rep-table th,.rep-table td{border:1px solid var(--rule);padding:10px 12px;text-align:left;vertical-align:middle}
.rep-table thead th{background:var(--paper-2);font:700 12.5px/1.4 var(--f-code);color:var(--ink-2)}
.rep-table tbody th{font-weight:700;white-space:nowrap}
.rep-table td:last-child{text-align:center;width:64px}
.rep-table tbody tr{cursor:pointer;transition:background-color var(--d-2) var(--e-out)}
.rep-table tbody tr:hover{background:#e9eef5}
.rep-table tr.probing{background:var(--paper-2)}
.rep-val b{font:700 19px/1 var(--f-code);color:var(--ink)}
.rep-stamp{display:inline-grid;place-items:center;width:38px;height:38px;border:2.2px solid var(--red);border-radius:50%;color:var(--red);font:900 18px/1 var(--f-head);transform:rotate(-10deg)}
.js .rep-table tbody tr:not(.measured) .rep-val{opacity:.22}
.js .rep-table tbody tr:not(.measured) .rep-stamp{opacity:0;transform:scale(1.8) rotate(-10deg)}
.rep-table tr.measured .rep-val{transition:opacity var(--d-2) var(--e-out)}
.rep-table tr.measured .rep-stamp{transition:opacity .12s,transform .28s cubic-bezier(.3,1.6,.5,1)}
.rep-foot{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-top:16px;font:500 var(--fs-x)/1.5 var(--f-code);color:var(--ink-2)}
.cue::before{content:"";display:inline-block;width:0;height:0;border-left:6px solid currentColor;border-top:4px solid transparent;border-bottom:4px solid transparent;margin-right:8px;vertical-align:0}
.rep-seals{display:flex;gap:8px}
.seal{display:inline-grid;place-items:center;width:52px;height:52px;border:1.5px solid var(--ink);font:700 13px/1.15 var(--f-head);color:var(--red);text-align:center}
.seal i{display:block;font:500 9px/1 var(--f-code);color:var(--ink-2);margin-bottom:3px}

/* 4 部品表・ミルシート */
.service-grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:28px;align-items:start}
.bom{width:100%;border-collapse:collapse;border:1.5px solid var(--line-strong);font-size:15px;line-height:1.55}
.bom caption{text-align:left;font:500 12px/1 var(--f-code);color:var(--text-dim);padding-bottom:8px}
.bom th,.bom td{border:1px solid var(--line);padding:10px 12px;text-align:left;vertical-align:top}
.bom thead th{font:500 12px/1.3 var(--f-code);color:var(--text-dim);background:rgba(201,221,251,.06)}
.bom tbody th{font-weight:700;white-space:nowrap}
.bom td:last-child{white-space:nowrap;font-size:14px;color:var(--text-dim)}
.bal{width:52px;text-align:center!important}
.bal span{display:inline-grid;place-items:center;width:30px;height:30px;border:1.5px solid var(--line-strong);border-radius:50%;font:700 14px/1 var(--f-code)}
.mat-list,.industries{margin-top:22px;border-top:1px solid var(--line);padding-top:14px}
.ml-h{font:700 15px/1.4 var(--f-head);margin-bottom:8px;display:flex;flex-wrap:wrap;gap:4px 14px;align-items:baseline}
.ml-h span{font:500 13px/1.4 var(--f-code);color:var(--text-dim)}
.mat-list dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 18px}
.mat-list dt{font-weight:700;font-size:14px}
.mat-list dd{font:500 13px/1.5 var(--f-code);color:var(--text-dim)}
.ml-note{margin-top:10px;font-size:14px;color:var(--text-dim)}
.industries ul{display:flex;flex-wrap:wrap}
.industries ul{gap:4px 18px}
.industries li{font-size:15px;padding:2px 0}
.industries li::before{content:"";display:inline-block;width:6px;height:6px;border:1.3px solid var(--line-strong);transform:rotate(45deg);margin-right:9px;vertical-align:2px}
.millsheet{padding-left:24px;font-size:var(--fs-s);position:sticky;top:28px}
.ms-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;border-bottom:2px solid var(--ink);padding-bottom:10px;margin-bottom:10px;padding-right:44px}
.ms-title{font:900 var(--fs-h3)/1.3 var(--f-head);letter-spacing:.12em}
.ms-tabs{display:flex}
.ms-tabs button{border:1px solid var(--ink);background:transparent;color:var(--ink);font:500 var(--fs-x)/1 var(--f-code);padding:9px 10px;cursor:pointer;margin-left:-1px;min-height:38px;touch-action:manipulation;transition:background-color var(--d-2) var(--e-out),color var(--d-2) var(--e-out)}
.ms-tabs button.is-on{background:var(--ink);color:var(--paper)}
.ms-meta{display:grid;grid-template-columns:1fr 1fr;gap:2px 14px;font-size:13px;margin-bottom:10px}
.ms-meta div{display:flex;gap:8px}
.ms-meta dt{color:var(--ink-2);font-family:var(--f-code);white-space:nowrap}
.ms-cap{font:700 13px/1.4 var(--f-head);margin:10px 0 4px}
.ms-scroll{overflow-x:auto}
.ms-table{border-collapse:collapse;width:100%;font:500 12px/1.3 var(--f-code)}
.ms-table th,.ms-table td{border:1px solid var(--rule);padding:6px 3px;text-align:center;white-space:nowrap}
.ms-table thead th{background:var(--paper-2)}
.ms-table tbody th{background:var(--paper-2);font-family:var(--f-head);font-weight:700}
.ms-v{display:none}
.ms-mech{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--rule)}
.ms-mech div{padding:6px 8px;border-right:1px solid var(--rule)}
.ms-mech div:last-child{border-right:0}
.ms-mech dt{font-size:12px;color:var(--ink-2)}
.ms-mech dd{font:700 15px/1.3 var(--f-code)}
.ms-note{margin-top:12px;font-size:13px;color:var(--ink-2)}
.ms-stamp{position:absolute;right:16px;top:14px;width:36px;height:36px;display:grid;place-items:center;border:2px solid var(--red);color:var(--red);font:900 18px/1 var(--f-head);transform:rotate(6deg)}

/* 5 事例 */
.cases-grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:28px;align-items:stretch}
.parts-stage{min-height:520px}
.parts-hud{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.parts-hud .lead-l{stroke:#d9e8ff;stroke-width:1.1;fill:none}
.parts-hud .dot{fill:#d9e8ff}
.parts-hud text{font:500 14px var(--f-code);fill:#f2f8ff;paint-order:stroke;stroke:rgba(5,16,34,.92);stroke-width:4px;stroke-linejoin:round}
.case-list{display:flex;flex-direction:column}
.case-tabs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border:1.5px solid var(--line-strong)}
.case-tabs button{border:0;border-right:1px solid var(--line);background:transparent;color:var(--text);font:500 13px/1 var(--f-code);padding:14px 4px;min-height:46px;cursor:pointer;touch-action:manipulation;transition:background-color var(--d-2) var(--e-out),color var(--d-2) var(--e-out)}
.case-tabs button:last-child{border-right:0}
.case-tabs button[aria-selected="true"]{background:var(--paper);color:var(--ink);font-weight:700}
.case{border:1.5px solid var(--line-strong);border-top:0;padding:24px 24px 26px;flex:1;display:flex;flex-direction:column}
.case .c-spec{margin-top:auto}
.case[hidden]{display:none}
.case:not([hidden]){animation:case-in var(--d-2) var(--e-out)}
@keyframes case-in{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}
.case h3{font:900 var(--fs-h3)/1.55 var(--f-head);letter-spacing:.03em}
.c-place{display:block;font:700 14px/1.4 var(--f-code);color:var(--text-dim);margin-bottom:6px}
.c-spec{display:grid;grid-template-columns:repeat(3,auto);justify-content:start;gap:0;margin:24px 0 14px;border:1px solid var(--line)}
.c-spec div{padding:6px 12px;border-right:1px solid var(--line)}
.c-spec div:last-child{border-right:0}
.c-spec dt{font:500 11px/1.3 var(--f-code);color:var(--text-dim)}
.c-spec dd{font:700 14px/1.4 var(--f-code)}
.case p{color:#dbe7f8;font-size:var(--fs-b)}

/* 6 FAX */
.fax-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 28px;padding-bottom:24px}
.fax{position:relative;background:#eef0ee;color:#15191f;padding:16px 24px 24px}
.fax:nth-child(even){transform:translateY(24px)}
.fax-head{display:flex;flex-wrap:wrap;gap:2px 14px;font:500 11px/1.4 var(--f-code);color:#3d434c;border-bottom:1px dashed #6b727c;padding-bottom:7px;margin-bottom:14px}
.fax-head span:last-child{margin-left:auto}
.fax blockquote p{font:700 var(--fs-b)/1.9 var(--f-head)}
.fax figcaption{margin-top:14px;font-size:var(--fs-x);color:#3d434c;font-family:var(--f-code)}
.fax-stamp{position:absolute;right:14px;bottom:12px;width:50px;height:50px;border:2px solid var(--red);border-radius:50%;color:var(--red);display:grid;place-items:center;text-align:center;font:700 11px/1.2 var(--f-code);transform:rotate(-12deg);opacity:.9}
.fax figcaption{padding-right:60px}

/* 7 流れ */
.proc{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));border-top:1.5px solid var(--line-strong);border-bottom:1.5px solid var(--line-strong)}
.proc li{position:relative;padding:20px 16px 20px;border-right:1px solid var(--line-faint)}
.proc li:last-child{border-right:0}
.proc .ps{width:40px;height:40px;fill:none;stroke:var(--line-strong);stroke-width:2;display:block;margin-bottom:10px}
.proc li:not(:last-child)::after{content:"";position:absolute;left:62px;right:-1px;top:40px;border-top:1.2px dashed var(--line)}
.p-h{font:700 var(--fs-b)/1.4 var(--f-head);margin-bottom:6px}
.proc p:not(.p-h){font-size:var(--fs-s);color:var(--text-dim);line-height:1.7}
.proc-legend{margin-top:12px;font:500 var(--fs-x)/1.6 var(--f-code);color:var(--text-dim)}
.flow-grid{display:grid;grid-template-columns:minmax(0,8fr) minmax(0,4fr);gap:28px;margin-top:34px;align-items:start}
.qa{padding-left:24px}
.qa-title{font:900 var(--fs-h3)/1.3 var(--f-head);letter-spacing:.24em;border-bottom:2px solid var(--ink);padding-bottom:10px}
.qa-list>div{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);border-bottom:1px solid var(--rule)}
.qa-list dt{padding:14px 16px 14px 0;font-weight:700;line-height:1.65;border-right:1px solid var(--rule)}
.qa-list dt span{display:block;font:500 11px/1.4 var(--f-code);color:var(--ink-2)}
.qa-list dd{padding:14px 0 14px 16px;line-height:1.75;font-size:15px}
.warranty{position:relative;border:1.5px solid var(--line-strong);outline:1px solid var(--line);outline-offset:4px;padding:22px 22px 26px;margin:5px}
.w-h{font:900 var(--fs-h3)/1.4 var(--f-head);letter-spacing:.06em;margin-bottom:12px}
.warranty p:not(.w-h){font-size:15px;line-height:1.85}
.w-sub{margin-top:12px;color:var(--text-dim)}
.w-stamp{position:absolute;right:14px;top:-18px;background:var(--bp);width:54px;height:54px;border:2px solid var(--redpen);border-radius:50%;color:var(--redpen);display:grid;place-items:center;font:900 15px/1 var(--f-head);transform:rotate(-8deg)}

/* 8 人と場所 */
.place-grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:28px;align-items:stretch}
.factory-stage{min-height:480px}
.factory-tags{position:absolute;inset:0;pointer-events:none}
.factory-tags span{position:absolute;left:0;top:0;font:500 12px/1.3 var(--f-code);color:#eaf3ff;background:rgba(5,18,38,.82);border-left:2px solid var(--line-strong);padding:2px 6px;white-space:nowrap;will-change:transform}
.factory-tags span.on{background:var(--paper);color:var(--ink);border-left-color:var(--red);font-weight:700}
.factory-pick{position:absolute;left:12px;bottom:12px;right:12px;font-size:14px;color:var(--text);pointer-events:none;text-shadow:0 1px 8px rgba(4,14,30,.95)}
.no-gl .factory-pick,.no-gl .factory-tags{display:none}
.place-side{display:flex;flex-direction:column;gap:22px}
.words{border-left:3px solid var(--line-strong);padding:4px 0 4px 20px}
.words p{font-size:var(--fs-b);line-height:1.95}
.words p+p{margin-top:10px}
.words footer{display:flex;align-items:center;gap:12px;margin-top:14px;font-size:14px;color:var(--text-dim)}
.w-name{font-weight:700;color:var(--text);font-size:16px}
.w-seal{display:inline-grid;place-items:center;width:34px;height:34px;border:1.5px solid var(--redpen);border-radius:50%;color:var(--redpen);font:700 10px/1 var(--f-head);writing-mode:vertical-rl}
.equip{width:100%;border-collapse:collapse;border:1.5px solid var(--line-strong);font-size:15px}
.equip caption{text-align:left;font:500 12px/1 var(--f-code);color:var(--text-dim);padding-bottom:8px}
.equip th,.equip td{border:1px solid var(--line);padding:8px 12px;text-align:left}
.equip td{font-family:var(--f-code);white-space:nowrap;width:5em}
.equip tr{cursor:pointer}
.equip tr.on{background:rgba(201,221,251,.16)}
.big-tb{margin-top:30px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:2px solid var(--line-strong)}
.big-tb>div{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:8px 14px 10px}
.big-tb dt{font:500 11px/1.4 var(--f-code);color:var(--text-dim)}
.big-tb dd{font-size:15px;line-height:1.6;font-weight:700}
.bt-name{grid-column:span 2}
.bt-name dd{font:900 26px/1.3 var(--f-head);letter-spacing:.12em}
.big-tb>div:nth-last-child(2){grid-column:span 2}

/* 9 締め */
.closing{padding-bottom:60px}
.closing-grid{display:grid;gap:22px}
.cl-lead{font-size:var(--fs-b);max-width:40em;color:var(--text-dim)}
.cl-btns{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,270px),1fr));gap:14px}
.btn.big{min-height:76px;font-size:18px}
.btn.big .sym{width:62px}
.btn.big .sym svg{width:28px;height:28px}

.foot{border-top:1.5px solid var(--line-strong);padding:22px 0 64px;display:flex;flex-wrap:wrap;gap:6px 22px;align-items:center;font-size:13px;color:var(--text-dim)}
.f-name{display:flex;align-items:center;gap:8px;font:900 16px/1 var(--f-head);color:var(--text)}
.f-name .mark{width:22px;height:22px}

/* 下端の入口（スマホ） */
.dock{display:none}

/* 窓 */
.modal{border:2px solid var(--ink);background:var(--paper);color:var(--ink);padding:24px 24px 20px;max-width:min(440px,calc(100vw - 32px));font-size:16px}
.modal::backdrop{background:rgba(3,12,26,.62)}
.m-tag{display:inline-block;font:700 12px/1 var(--f-code);border:1.5px solid var(--red);color:var(--red);padding:5px 8px;margin-bottom:12px}
.m-text{font-weight:700;line-height:1.7}
.m-link{margin-top:14px;font-size:14px;color:var(--ink-2)}
.m-link a{color:var(--ink);font-weight:700}
.m-close{margin-top:18px;min-height:46px;width:100%;border:1.5px solid var(--ink);background:var(--ink);color:var(--paper);font:700 15px/1 var(--f-head);cursor:pointer}

/* ===== タブレット ===== */
@media (max-width:1099px){
  .hero-inner{grid-template-columns:minmax(0,1fr);grid-template-areas:"copy" "proof" "slot" "panel" "tb" "cta";grid-template-rows:auto auto minmax(300px,1fr) auto auto auto;padding-top:34px;padding-bottom:30px}
  .hero-cta{justify-content:flex-start}
  .title-block{justify-self:start}
  .reasons-grid,.service-grid,.cases-grid,.place-grid{grid-template-columns:minmax(0,1fr)}
  .gl-stage{min-height:400px}
  .parts-stage{min-height:440px}
  .flow-grid{grid-template-columns:minmax(0,1fr)}
  .proc{grid-template-columns:repeat(3,minmax(0,1fr))}
  .proc li:nth-child(3){border-right:0}
  .proc li:nth-child(-n+3){border-bottom:1px solid var(--line-faint)}
  .proc li:nth-child(3)::after{display:none}
  .big-tb{grid-template-columns:repeat(2,minmax(0,1fr))}
  .millsheet{position:relative;top:auto}
}

/* ===== スマホ ===== */
@media (max-width:767px){
  body{font-size:15.5px;padding-bottom:calc(76px + env(safe-area-inset-bottom))}
  .frame{inset:5px;border-width:1.5px}
  .frame::before,.frame-zones{display:none}
  .sample-note{writing-mode:horizontal-tb;left:0;right:0;bottom:calc(58px + env(safe-area-inset-bottom));text-align:center;font-size:10.5px;line-height:1.5;letter-spacing:.04em;padding:2px 6px;border-top:1px solid var(--line-faint);background:rgba(7,26,51,.96)}
  .hero{min-height:calc(100svh - 0px)}
  .hero-inner{min-height:100svh;padding:22px 18px calc(100px + env(safe-area-inset-bottom));row-gap:10px;grid-template-rows:auto auto minmax(200px,1fr) auto auto auto}
  .maker{margin-bottom:10px;gap:2px 10px}
  .mark{width:24px;height:24px}
  .maker-name{font-size:18px}
  .maker-sub{font-size:11.5px;width:100%;padding-left:34px;margin-top:-2px}
  .hero h1{font-size:min(34px,8.4vw);line-height:1.3;word-break:keep-all;overflow-wrap:anywhere}
  .br-m{display:inline}
  .lead{font-size:14px;line-height:1.75;margin-top:10px}
  .proof{max-width:none}
  .proof-num{font-size:30px}
  .proof-cap{font-size:13px}
  .panel-row{gap:10px}
  .mat-rack{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;width:100%}
  .mat{flex-direction:column;gap:4px;padding:6px 2px;min-height:64px;text-align:center}
  .mat span{align-items:center;font-size:12px}
  .mat span b{font-size:10px}
  .end{width:22px;height:22px}
  .panel-ops{width:100%;gap:8px 12px}
  .cycle{min-height:46px;font-size:14px}
  .hint{font-size:12.5px;flex:1;min-width:0}
  .hint svg{width:34px}
  .progress{width:100%;font-size:12px}
  .title-block{display:none}
  .hero-cta{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .hero-cta .btn{width:100%;min-height:50px}
  .hero-cta .btn .sym{display:none}
  .hero-cta .btn .lbl{width:100%;padding:8px 6px;align-items:center;text-align:center;font-size:14.5px;letter-spacing:.02em}
  .tooltag{font-size:11.5px;padding:3px 7px 4px}
  .tt-sf{font-size:10px}
  .done-msg{font-size:14px}
  .inspect-ops .btn{flex:1 1 100%}

  .sheet{padding:0 18px}
  .sec{padding:44px 0 36px}
  .vh{margin-bottom:12px}
  .vh h2{font-size:clamp(23px,6.4vw,28px);word-break:keep-all;overflow-wrap:anywhere}
  .vtag{font-size:11px}
  .done-msg span{display:block;margin:4px 0 0}
  .sec h3,.case h3,.w-h,.p-h{word-break:keep-all;overflow-wrap:anywhere}
  .note-list{grid-template-columns:minmax(0,1fr)}
  .note-list li{padding:16px 14px 16px 50px;border-right:0!important;border-bottom:1px solid var(--line-faint)!important}
  .note-list li:last-child{border-bottom:0!important}
  .note-list li::before{left:14px;top:15px;font-size:17px}
  .note-list .ring{left:1px;top:2px;width:44px;height:44px}
  .nq{font-size:16.5px}
  .redpen{font-size:14px}
  .gl-stage{min-height:330px}
  .parts-stage{min-height:360px}
  .factory-stage{min-height:360px}
  .paper{padding:18px 16px 20px}
  .rep-head{grid-template-columns:minmax(0,1fr)}
  .rep-title{font-size:20px}
  .rep-meta{grid-template-columns:minmax(0,1fr);font-size:12px}
  .rep-table thead{display:none}
  .rep-table,.rep-table tbody{display:block}
  .rep-table tr{display:grid;grid-template-columns:minmax(0,1fr) auto;border:1px solid var(--rule);margin-bottom:-1px}
  .rep-table th,.rep-table td{border:0;padding:6px 10px}
  .rep-table tbody th{grid-column:1;padding-top:10px}
  .rep-table td:nth-of-type(1){grid-column:1/3;grid-row:2;font-size:13.5px;color:var(--ink-2)}
  .rep-table td:nth-of-type(1)::before{content:"求め：";font-family:var(--f-code);font-size:11.5px}
  .rep-table td:nth-of-type(2){grid-column:1/3;grid-row:3;padding-bottom:12px}
  .rep-table td:last-child{grid-column:2;grid-row:1;width:auto;padding-top:8px}
  .rep-foot{flex-direction:column;align-items:flex-start}
  .bom{font-size:14px}
  .bom caption{display:block;padding:10px 12px;border-bottom:1px solid var(--line);font-size:11.5px}
  .bom thead{display:none}
  .bom,.bom tbody{display:block}
  .bom tr{display:grid;grid-template-columns:54px minmax(0,1fr);border-bottom:1px solid var(--line)}
  .bom tr:last-child{border-bottom:0}
  .bom th,.bom td{border:0;padding:6px 10px 6px 0}
  .bom .bal{grid-row:1/4;padding:12px 0 0 10px}
  .bom tbody th{padding-top:10px}
  .bom td:last-child{padding-bottom:10px}
  .mat-list dl{grid-template-columns:repeat(2,minmax(0,1fr))}
  .industries li{font-size:14px}
  .ms-head{padding-right:40px}
  .ms-tabs{width:100%}
  .ms-tabs button{flex:1;padding:9px 2px;font-size:12px}
  .ms-meta{grid-template-columns:minmax(0,1fr)}
  .ms-scroll{display:none}
  .ms-v{display:table;width:100%;border-collapse:collapse;font:500 14px/1.35 var(--f-code)}
  .ms-v th,.ms-v td{border:1px solid var(--rule);padding:7px 10px;text-align:left}
  .ms-v thead th{background:var(--paper-2);font:700 12px/1.3 var(--f-head);color:var(--ink-2)}
  .ms-v tbody th{background:var(--paper-2);width:30%;font-weight:700}
  .ms-v td:last-child{font-weight:700}
  .ms-mech dd{font-size:13.5px}
  .case-tabs button{font-size:11.5px;padding:12px 0}
  .case{padding:18px 16px 20px}
  .c-spec{grid-template-columns:minmax(0,1fr);width:100%}
  .c-spec div{border-right:0;border-bottom:1px solid var(--line);display:flex;gap:10px;align-items:baseline}
  .c-spec div:last-child{border-bottom:0}
  .fax-grid{grid-template-columns:minmax(0,1fr);gap:22px}
  .fax{padding:14px 16px 18px}
  .fax:nth-child(even){transform:none}
  .fax-grid{padding-bottom:0}
  .fax blockquote p{font-size:16px}
  .proc{grid-template-columns:minmax(0,1fr);border-bottom:0}
  .proc li{display:grid;grid-template-columns:44px minmax(0,1fr);column-gap:14px;padding:14px 0;border-right:0;border-bottom:1px solid var(--line-faint)!important}
  .proc .ps{grid-row:1/3;width:36px;height:36px;margin:0}
  .proc li::after{display:none}
  .proc li:not(:last-child)::before{content:"";position:absolute;left:18px;top:54px;bottom:-12px;border-left:1.2px dashed var(--line)}
  .qa-list>div{grid-template-columns:minmax(0,1fr)}
  .qa-list dt{border-right:0;padding:12px 0 2px}
  .qa-list dd{padding:2px 0 12px}
  .big-tb{grid-template-columns:minmax(0,1fr)}
  .bt-name,.big-tb>div:nth-last-child(2){grid-column:auto}
  .bt-name dd{font-size:24px}
  .cl-btns{grid-template-columns:minmax(0,1fr)}
  .btn.big{min-height:66px;font-size:17px}
  .foot{padding-bottom:28px}

  .dock{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));position:fixed;z-index:72;left:0;right:0;bottom:0;padding-bottom:env(safe-area-inset-bottom);background:var(--paper);border-top:2px solid var(--ink)}
  .dock button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:58px;border:0;border-right:1px solid var(--rule);background:transparent;color:var(--ink);font:700 12.5px/1.2 var(--f-head);cursor:pointer;touch-action:manipulation}
  .dock button:first-child{background:var(--ink);color:var(--paper)}
  .dock button:last-child{border-right:0}
  .dock svg{width:20px;height:20px}
}

/* ===== 開いた瞬間：図面の線が引かれ、題が下から立ち上がる（2秒以内・触れば飛ばす） ===== */
.intro .hero-fallback .fb-out,.intro .hero-fallback .fb-edge,.intro .hero-fallback .fb-dim{stroke-dasharray:1;stroke-dashoffset:1;animation:draw 1s var(--e-out) forwards}
.intro .hero-fallback .fb-edge{animation-delay:.2s}
.intro .hero-fallback .fb-dim{animation-delay:.4s}
.intro .hero-fallback .fb-center,.intro .hero-fallback .fb-t{animation:fade .6s var(--e-out) .5s both}
.intro .maker{animation:rise .6s var(--e-out) both}
.intro .h1-l{animation:rise .8s var(--e-out) .06s both}
.intro .h1-l+.h1-l{animation-delay:.16s}
.intro .lead{animation:rise .7s var(--e-out) .28s both}
.intro .proof{animation:rise .7s var(--e-out) .36s both}
.intro .proof-dim{animation:grow .9s var(--e-out) .4s both}
.intro .hero-cta,.intro .machine-panel,.intro .title-block{animation:rise .7s var(--e-out) .52s both}
.proof-dim{transform-origin:50% 0}
@keyframes rise{from{opacity:0;transform:translateY(12px)}}
@keyframes fade{from{opacity:0}}
@keyframes grow{from{transform:scaleX(0)}}

/* ===== 触った所から広がる印（図面の中心記号） ===== */
.tap{position:absolute;left:0;top:0;width:76px;height:76px;margin:-38px 0 0 -38px;pointer-events:none;z-index:5;border:1.2px solid var(--line-strong);border-radius:50%;animation:tap .62s var(--e-out) forwards}
.tap::before,.tap::after{content:"";position:absolute;left:50%;top:50%;background:var(--line-strong)}
.tap::before{width:16px;height:1.2px;margin:-.6px 0 0 -8px}
.tap::after{width:1.2px;height:16px;margin:-8px 0 0 -.6px}
@keyframes tap{from{transform:scale(.12);opacity:1}to{transform:scale(1);opacity:0}}

/* ===== 選んだ物が替わるとき：値が1つずつ書き換わる ===== */
.millsheet.swap .ms-meta dd,.millsheet.swap .ms-table tbody td,.millsheet.swap .ms-v tbody td,.millsheet.swap .ms-mech dd{animation:ink var(--d-2) var(--e-out) both}
.millsheet.swap .ms-stamp{animation:stamp var(--d-2) var(--e-spring) both}
@keyframes ink{from{opacity:0;color:var(--red)}}
@keyframes stamp{from{opacity:0;transform:rotate(6deg) scale(1.7)}}

@media (prefers-reduced-motion:reduce){
  .hint.is-pulse svg{animation-duration:4s}
}

/* 和文の行末：短い塊だけ均す（最後に置く） */
.lead,.sec-lead,.cl-lead,.proof-cap,.case p,.w-sub{text-wrap:balance}
.proof-cap{text-shadow:0 1px 10px rgba(4,14,30,.95)}
