/* Series theme (shared with FLIP): porcelain ground, ink type, navy for measured data, signal red for the one hot moment. */
:root{color-scheme:light;--ink:#16202e;--dim:#66707d;--blue:#1f3b5c;--line:#d3d7dd;--ground:#eceef1;--navy:#1f3b5c;--signal:#e5322d}
html,body{background:#e2e5e9!important}
body{color:var(--ink);font-family:"Zen Kaku Gothic New",system-ui,sans-serif}
.app{background:var(--ground)!important;max-width:500px}
.noise{opacity:.5;background-image:linear-gradient(#16202e08 1px,transparent 1px),linear-gradient(90deg,#16202e06 1px,transparent 1px)}
header{color:var(--dim);font-family:"Zen Kaku Gothic New",sans-serif;letter-spacing:.04em}
header b{color:var(--ink);font-weight:900;font-size:20px;letter-spacing:.06em}
.eyebrow{color:var(--dim);font-family:"Zen Kaku Gothic New",sans-serif;letter-spacing:.06em;font-weight:700}
.home .title{font:900 clamp(64px,22vw,88px)/1 "Zen Kaku Gothic New",sans-serif;letter-spacing:.12em;color:var(--ink)}
.home p{color:var(--dim)}
.shake{background:var(--ink)!important;color:#fff;border:0;box-shadow:0 18px 40px #16202e2e!important;font:700 17px "Zen Kaku Gothic New",sans-serif;letter-spacing:.2em}
.shake:before{border-color:#16202e26!important}.shake:after{border-color:#16202e1a!important}
.capture .shake{background:var(--signal)!important;box-shadow:0 0 0 10px #e5322d22,0 18px 40px #e5322d44!important}
.hint{color:var(--dim)}.hint button{color:var(--ink);font-weight:700}
.notes{color:var(--dim)!important}.notes summary{color:var(--ink)!important;font-weight:700}
.speed{font:800 clamp(96px,30vw,136px)/.9 "Big Shoulders Display",sans-serif!important;letter-spacing:.01em!important;color:var(--navy);font-variant-numeric:tabular-nums}
.unit{color:var(--dim)!important;font-family:"Zen Kaku Gothic New",sans-serif;letter-spacing:.04em!important;font-weight:700}
.trace{background:#fff!important;border:1px solid var(--line);border-radius:18px}
.trace path:first-child,#rx{stroke:var(--navy)!important}
.trace path:nth-child(2),#ry{stroke:var(--signal)!important;opacity:.8}
.trace path:nth-child(3),#rz{stroke:#8a929c!important;opacity:.8}
.detail,.what{background:var(--ink)!important;color:#fff!important;border:0!important;border-radius:16px!important;font:700 14px "Zen Kaku Gothic New",sans-serif;letter-spacing:.06em}
.back,.result>.back{color:var(--ink)!important;font-weight:700}
.data .lead,.explain h1{font-family:"Zen Kaku Gothic New",sans-serif!important;font-weight:900;color:var(--ink)}
.data-stream{background:#fff!important;color:var(--navy)!important;border:1px solid var(--line)!important;border-radius:14px}
.data.overdrive .data-stream span:nth-child(3n){color:var(--signal)}.data.overdrive .data-stream span:nth-child(4n){color:#66707d}
.data.overdrive .eyebrow{color:var(--ink);text-shadow:none}
.analysis-field::before{background:repeating-linear-gradient(0deg,transparent 0 16px,#1f3b5c0d 17px 18px),linear-gradient(100deg,transparent 42%,#e5322d1f 50%,transparent 58%)}
.overdrive .analysis-field{background:none!important}
.beam{background:linear-gradient(90deg,transparent,#e5322d99,transparent);box-shadow:none}
.callout{color:var(--ink)}.arrow{color:var(--signal)}
.at-peak .callout{color:var(--signal)}
.replay-panel{background:#fff!important;border-color:var(--line);border-radius:18px}
.replay-caption,.rotation-readout{color:var(--dim)}.rotation-readout output{color:var(--ink)}
.replay-panel svg{background:repeating-linear-gradient(0deg,transparent 0 29px,#16202e0d 30px)}
#playhead{stroke:var(--ink)}#peakMark{stroke:var(--signal)}
.axis-key span:nth-child(1){color:var(--navy)}.axis-key span:nth-child(2){color:var(--signal)}.axis-key span:nth-child(3){color:#8a929c}
#scrub{accent-color:var(--signal)}
.at-peak .replay-panel{border-color:#e5322d88;box-shadow:0 0 0 3px #e5322d1a}
.report-speed{border-color:var(--line)}
.report-speed strong,.explain .report-speed strong{font:800 72px/1 "Big Shoulders Display",sans-serif!important;color:var(--navy);letter-spacing:.01em}
.report-speed span{color:var(--dim)!important}
.explain dl,.explain div{border-color:var(--line)}
dt{color:var(--dim);letter-spacing:.04em}
.demo-label{color:var(--signal)}
button:focus-visible{outline:3px solid var(--signal)!important;outline-offset:4px}
.replay-controls button{background:transparent!important;color:var(--ink)!important;border:1.5px solid var(--ink)!important;border-radius:14px!important;font:700 12px "Zen Kaku Gothic New",sans-serif}
/* Links between the four apps: a bar fixed to the bottom of every screen */
:root{--series-h:58px}body{padding-bottom:calc(var(--series-h) + env(safe-area-inset-bottom))!important}.series{position:fixed;left:0;right:0;bottom:0;z-index:15;display:grid;grid-template-columns:repeat(4,1fr);gap:6px;padding:8px max(12px,env(safe-area-inset-left)) calc(8px + env(safe-area-inset-bottom));margin:0;background:#fffffff0;border-top:1px solid #d3d7dd;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);font:700 13px/1 "Zen Kaku Gothic New",system-ui,sans-serif}.series span{display:none}.series a{display:flex;align-items:center;justify-content:center;min-height:42px;border-radius:12px;color:#16202e;text-decoration:none;letter-spacing:.04em}.series a[aria-current]{background:#16202e;color:#fff;pointer-events:none}.series a:focus-visible{outline:3px solid #e5322d;outline-offset:2px}@media(min-width:700px){.series{left:50%;right:auto;transform:translateX(-50%);width:min(520px,100%);border:1px solid #d3d7dd;border-bottom:0;border-radius:16px 16px 0 0}}
.app{min-height:calc(100svh - var(--series-h) - env(safe-area-inset-bottom))!important}.screen{min-height:calc(100svh - 70px - var(--series-h) - env(safe-area-inset-bottom))!important}
