/* 既存の受付端末の意匠を保つ、計測・所見・共有の追加部品。 */
.route-session [data-stagger]>*{animation:none!important;opacity:1!important;transform:none!important}
body[data-route="session"] .atmos *,body[data-route="session"] .ticker-track,body[data-route="session"] .mon-radar *,body[data-route="session"] .brand-mark *{animation-play-state:paused!important}
body[data-route="session"] #reticle{display:none}
.sequence-board{position:relative;width:min(100%,430px);aspect-ratio:1.15;margin:12px auto}
.sequence-block{position:absolute;transform:translate(-50%,-50%);display:grid;place-items:center;width:clamp(44px,13vw,60px);height:clamp(44px,13vw,60px);border:2px solid #8aacc6;border-radius:8px;background:#ecf5fc;color:#395a75;font:500 20px var(--f-mono);transition:background .1s,color .1s;touch-action:manipulation}
.sequence-block.lit{background:#04b7ff;color:#002645;border-color:#b6f3ff;box-shadow:0 0 0 5px #00a8f530,0 0 28px #00a8f570}
.sequence-block.selected{background:#0657e8;color:white;border-color:#0657e8}
.sequence-block:disabled{opacity:1;cursor:default}
.sequence-hint,.sequence-progress{margin:12px 0;color:var(--ink-3);font-size:15px;text-align:center}
.sequence-progress{min-height:28px;font-family:var(--f-mono)}
.sequence-answer{display:flex;justify-content:center;align-items:center;gap:20px;flex-wrap:wrap;margin:16px 0;font-family:var(--f-mono);color:var(--blue);font-weight:700}
.sequence-controls{display:flex;flex-wrap:wrap;justify-content:center;gap:10px}
.sequence-controls .btn{font-size:14px;padding:12px 16px;min-height:48px}
.sequence-demo{display:grid;grid-template-columns:repeat(3,42px);gap:15px;transform:rotate(-7deg)}
.sequence-demo i{display:grid;place-items:center;height:42px;border:1px solid var(--line-2);font:16px var(--f-mono);color:var(--ink-4);border-radius:6px;background:#edf6fd}
.sequence-demo .lit{background:var(--cyan);color:white}
.profile-cards{display:grid;gap:22px;margin-top:30px}
.profile-card{border-top:1px solid var(--line);padding-top:24px}
.profile-card h3{font-size:clamp(19px,3vw,23px);line-height:1.6;color:var(--blue);margin:0 0 16px}
.profile-card p{font-size:15px;line-height:1.95;margin:0 0 16px}
.profile-cost{padding:16px 18px;background:#fff5ed;border-left:3px solid #eb9860;border-radius:0 6px 6px 0}
.profile-cost>span{font-size:12px;font-weight:700;color:#9f552a;letter-spacing:.08em}
.profile-cost p{margin:6px 0 0}
.profile-card blockquote{margin:18px 0;padding:14px 18px;border:1px solid #bbd9f6;background:#eff7ff;border-radius:6px;font-size:16px;line-height:1.9;color:#174a7a}
.profile-action b{display:block;font-size:12px;color:var(--blue);margin-bottom:3px}
.profile-card details,.reading-note{font-size:13px;color:var(--ink-3);line-height:1.9}
.profile-card details ul{padding-left:18px}.profile-card details li{margin:12px 0}.profile-card details b{display:block;font-weight:500;color:var(--blue)}
.reading-note{border-top:1px solid var(--line);margin-top:24px;padding-top:18px}.reading-note p{margin:12px 0 0}
#share-dialog{width:min(640px,calc(100vw - 24px));max-height:92dvh;padding:28px;border:1px solid #c7dceb;border-radius:12px;color:var(--ink);background:#f9fcff;box-shadow:0 30px 80px #0b274344;overflow:auto}
#share-dialog::backdrop{background:#0a223b99;backdrop-filter:blur(3px)}
.share-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.share-header h2{font-size:25px;margin:0 0 12px}.share-header .kicker{font-size:10px}.share-header button{flex-shrink:0}
.share-options{display:flex;flex-wrap:wrap;gap:8px 24px;margin:18px 0;font-size:14px}.share-options label{display:flex;align-items:center;gap:8px;min-height:44px}.share-options input{width:18px;height:18px;accent-color:var(--blue)}
.share-preview{background:#e7eff7;border:1px solid var(--line);padding:12px;border-radius:8px;min-height:130px}.share-preview img{width:100%;height:auto;max-height:48dvh;object-fit:contain}.share-preview p{font-size:14px;margin:12px;white-space:pre-wrap}
.share-buttons{display:flex;flex-wrap:wrap;gap:10px;margin:20px 0 12px}.share-buttons .btn{font-size:13px;min-height:46px;padding:12px 16px}
@media(max-width:600px){.sequence-board{margin:0 auto}.sequence-hint{font-size:13px}.sequence-block{width:48px;height:48px}.profile-card p{font-size:14px}.profile-card blockquote{font-size:14px}.profile-cost{padding:14px}.hud{backdrop-filter:none;background:#f3f8fcf5}#share-dialog{padding:20px 16px}.share-header h2{font-size:21px}.share-buttons .btn{flex:1 1 46%}.grain{display:none}}
@media(prefers-reduced-motion:reduce){.sequence-block{transition:none}}

[hidden]{display:none!important}

/* 常時の描き直しを避ける。課題の提示・カード移動には適用しない。 */
#field{will-change:auto}
.grid-drift{animation:none;will-change:auto}
.scanband,.grain{display:none}
.hud::after,.led,.dot,.eq i,.ticker-track,.slip,.scroll-cue i{animation:none}
.eq i:nth-child(1){transform:scaleY(.35)}.eq i:nth-child(2){transform:scaleY(.8)}.eq i:nth-child(3){transform:scaleY(.55)}.eq i:nth-child(4){transform:scaleY(1)}
.ticker-track{max-width:100%;min-width:0;overflow:hidden}.ticker-track span{overflow:hidden;text-overflow:ellipsis}
.rotors.far .rotor-el,.beacons i,.sky-clouds,.ship,.ship-screen span{animation:none!important;will-change:auto}
.rotors.far .rotor-el{transform:rotate(-18deg)}
.ship-screen span{padding-left:0}
.ship-track,.train-track{animation:none;will-change:auto}
.ship-track{transform:translateX(60%)}.train-track{transform:translateX(35%)}
.rotor-el,.ship-track,.train-track,.map-sweep,.map-orbit{will-change:auto}
.ab-stripes,.idc-scan,.idc-holo,.sim-file::before,.mx-cell.missing,.sh-card.ask .sh-back,.sh-card.ask::before,.rail-seg.active .rail-bar i::after{animation:none}
/* Direction onset is task information: preserve dir-in for every repeated arrow. */
#share-dialog::backdrop{backdrop-filter:none}
:is(body.booting,body.page-hidden,body.is-scrolling) :is(.sky-stage,.sky-stage *,.map-wrap *,.proc-glyph *,.pr-visual *,.aim-visual *,.pw-emblem *){animation-play-state:paused!important}
body:has(dialog[open]) :is(.sky-stage *,.map-wrap *,.proc-glyph *,.pr-visual *,.aim-visual *,.pw-emblem *){animation-play-state:paused!important}
@media(pointer:coarse){.sky-stage *,.map-wrap *,.proc-glyph *,.pr-visual *,.aim-visual *,.pw-emblem *{animation:none!important;will-change:auto!important}.ship-track{transform:translateX(65%)}}
@media(prefers-reduced-motion:reduce){.sky-stage *,.map-wrap *,.proc-glyph *,.pr-visual *,.aim-visual *,.pw-emblem *{animation:none!important}}
.boot.leave{pointer-events:none;animation-duration:.25s}
#audio-dialog{width:min(680px,calc(100vw - 24px));max-width:680px;max-height:90dvh;overflow:auto;clip-path:none;border:1px solid #c7dceb;border-radius:12px;background:#f9fcff}
.audio-section{padding-top:20px;margin-top:18px;border-top:1px solid var(--line)}
.audio-switch{display:flex;gap:12px;align-items:center;font-weight:700;font-size:17px}.audio-switch input{width:20px;height:20px;accent-color:var(--blue)}.audio-switch span{font-weight:400;font-size:12px;color:var(--ink-3)}
.audio-volume{display:grid;grid-template-columns:auto minmax(70px,1fr) 3.2em;gap:16px;align-items:center;font-size:13px;margin:20px 0}.audio-volume input{width:100%;accent-color:var(--blue);min-height:32px}.audio-volume output{font-family:var(--f-mono);text-align:right}
.audio-preview-buttons{display:flex;flex-wrap:wrap;gap:10px}.audio-preview-buttons .btn{font-size:12px;padding:10px 14px;min-height:44px}.audio-status{font-size:13px;color:var(--blue);min-height:1.8em;margin-top:16px}.audio-script p{font-size:13px;line-height:1.9;margin:12px 0}.audio-script b{display:block;color:var(--blue)}
@media(max-width:600px){#audio-dialog{padding:22px 16px}.audio-switch{flex-wrap:wrap;font-size:16px}.audio-switch span{font-size:11px}.audio-volume{grid-template-columns:1fr 3em;gap:6px 12px}.audio-volume input{grid-column:1;grid-row:2}.audio-volume output{grid-column:2;grid-row:2}.audio-preview-buttons .btn{flex:1 1 45%}}
.gauges.three-tasks{grid-template-columns:repeat(3,minmax(0,1fr))}
.measurement-count{font-size:14px;line-height:1.9;color:var(--ink-2);padding:14px 16px;background:#edf5fc;border-left:2px solid var(--blue)}
.audio-channel{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:22px 0 10px}.audio-channel label{display:flex;flex-direction:column;gap:8px;font-size:12px;font-weight:700}.audio-channel select{font:inherit;font-size:13px;color:var(--ink);background:#fff;border:1px solid #bdcfdf;border-radius:3px;min-height:44px;padding:8px;max-width:100%}.audio-channel select:disabled{opacity:.5}
.audio-date-note{padding:12px;background:#edf5fc}.audio-stop-row{margin:20px 0}#audio-sources{font-size:12px}#audio-sources details{padding:8px 0}#audio-sources a{display:block;margin:8px 0;text-decoration:underline;overflow-wrap:anywhere}
@media(max-width:600px){.audio-channel{grid-template-columns:1fr}.audio-script .audio-preview-buttons .btn{flex-basis:100%}.gauges.three-tasks{grid-template-columns:1fr}.gauges.three-tasks .gauge-card{max-width:100%}}

/* ---------- 検査開始の演出（開始案内が残っているときの待機→開始） ---------- */
.start-gate{position:fixed;inset:0;z-index:90;display:grid;place-items:center;background:rgba(236,244,251,.74);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);overflow:hidden;animation:sg-in .28s ease-out both}
.start-gate.leave{animation:sg-out .42s ease-in both}
@keyframes sg-in{from{opacity:0}}
@keyframes sg-out{to{opacity:0}}
.sg-panel{position:relative;display:grid;justify-items:center;gap:10px;min-width:min(420px,88vw);padding:34px 56px 30px;background:rgba(255,255,255,.92);clip-path:var(--chamfer);box-shadow:0 0 0 1px rgba(10,26,43,.08),0 24px 60px rgba(10,40,80,.16)}
.sg-ring{position:relative;width:120px;height:120px}
.sg-ring svg{width:100%;height:100%;transform:rotate(-90deg)}
.sg-track{fill:none;stroke:#dce8f7;stroke-width:6}
.sg-arc{fill:none;stroke:var(--cyan);stroke-width:6;stroke-linecap:round;stroke-dasharray:327;stroke-dashoffset:327;transition:stroke-dashoffset .35s ease-out,stroke .2s}
.start-gate.hold .sg-arc{animation:sg-fill var(--hold) linear forwards}
.start-gate.go .sg-arc{stroke-dashoffset:0;stroke:var(--blue)}
@keyframes sg-fill{to{stroke-dashoffset:0}}
.sg-ring i{position:absolute;inset:18px;border:1px dashed rgba(0,168,245,.55);border-radius:50%;animation:spin 6s linear infinite}
.start-gate.go .sg-ring i{border:2px solid var(--blue);animation:sg-ping .6s ease-out both}
@keyframes sg-ping{from{transform:scale(.6);opacity:1}to{transform:scale(1.9);opacity:0}}
.sg-k{margin:6px 0 0;font-family:var(--f-tech);font-size:12px;letter-spacing:.24em;color:var(--cyan)}
.sg-wait{margin:0;font-size:17px;font-weight:700;color:var(--ink-2)}
.sg-go{display:none;margin:0;padding-left:.3em;font-size:clamp(54px,9vw,88px);font-weight:900;line-height:1.1;letter-spacing:.3em;color:var(--ink)}
.start-gate.go .sg-wait{display:none}
.start-gate.go .sg-go{display:block;animation:sg-go .55s cubic-bezier(.2,.9,.2,1) both}
@keyframes sg-go{from{opacity:0;letter-spacing:1em;filter:blur(8px)}to{opacity:1;letter-spacing:.3em;filter:blur(0)}}
.sg-sweep{position:absolute;left:0;right:0;top:50%;height:2px;background:linear-gradient(90deg,transparent,var(--cyan),transparent);opacity:0;pointer-events:none}
.start-gate.hold .sg-sweep{opacity:.7;animation:sg-scan 1.4s ease-in-out infinite}
.start-gate.go .sg-sweep{animation:sg-flash .6s ease-out both}
@keyframes sg-scan{0%,100%{top:22%}50%{top:78%}}
@keyframes sg-flash{from{top:50%;height:2px;opacity:1}to{top:0;height:100%;opacity:0}}
@media (prefers-reduced-motion:reduce){.start-gate,.start-gate *{animation:none!important;transition:none!important}}
