* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--mm-off-black); background: #fff; font: 400 14px/1.45 var(--mm-font-sans); }
a { color: inherit; text-underline-offset: 3px; }
img { display: block; max-width: 100%; height: auto; }
figure { margin: 32px 0; }
figcaption, caption { margin-bottom: 10px; font-size: 14px; font-style: italic; text-align: left; }
p { margin: 0 0 24px; }
ul { margin: 0; padding-left: 25px; }
h1, h2, h3, h4 { margin: 0; }
section[id] { scroll-margin-top: 96px; }
.hero {
    background: var(--mm-yellow);
    color: #000;
    width: 100%;
    height: 100vh;
    height: 100dvh;
    padding: 96px 0 28px;
}
.hero__inner {
    width: min(1280px, calc(100% - 128px));
    height: 100%;
    margin-inline: auto;
    display: grid;
    grid-template-rows: minmax(0, 1fr) auto auto;
    gap: 24px;
}
.hero__stage { position: relative; min-height: 0; }
.hero__art {
    position: absolute;
    left: -5%;
    top: 0;
    width: 74%;
    height: 100%;
    object-fit: contain;
    object-position: left center;
    max-width: none;
}
.hero__title { position: absolute; right: 0; top: 42%; transform: translateY(-50%); text-align: right; }
.hero h1 { font: 400 clamp(40px, 6.8vw, 96px)/1.05 var(--mm-font-brand); white-space: nowrap; }
.hero__slogan { margin: 16px 7% 0 0; font-size: 16px; font-weight: 600; }
.downloads { display: flex; align-items: center; gap: 40px; margin: 0; }
.downloads a { display: block; }
.downloads img { width: auto; height: 56px; }
.hero__footer { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 24px; }
.hero__scroll { display: flex; align-items: center; justify-content: center; gap: 12px; min-width: 44px; min-height: 100px; padding: 6px; color: inherit; text-decoration: none; }
.hero__chevrons { display: flex; flex-direction: column; gap: 9px; padding-bottom: 8px; }
.hero__chevrons i { display: block; width: 10px; height: 10px; border-right: 1px solid currentColor; border-bottom: 1px solid currentColor; transform: rotate(45deg); animation: chevron-shimmer 2.8s ease-in-out infinite; }
.hero__scroll:hover { opacity: .6; }
.hero__notice { font-size: 12px; line-height: 1.4; margin: 0; }
.manual-page { background: #fff; padding: 32px 0 64px; }
.manual-page--dark { color: var(--mm-off-white); background: #000; }
.manual-inner { max-width: 1000px; width: calc(100% - 160px); margin-inline: auto; }
.manual-header { display: grid; grid-template-columns: 1fr 30%; border-bottom: 1px solid currentColor; align-items: end; margin-bottom: 48px; font-size: 14px; font-weight: 700; }
.manual-header__label { padding: 0 20px 16px 0; text-transform: uppercase; }
.manual-header__label span { display: block; }
.manual-header__edition { border-left: 1px solid currentColor; padding: 10px 0 16px 20px; }
.manual-header__edition span { display: block; }
.manual-lead { max-width: 880px; margin: 0 0 112px; font: 400 40px/1.25 var(--mm-font-serif); white-space: pre-line; }
.prose { width: 100%; }
.manual-subsection { margin-top: 40px; }
.manual-subsection:first-child { margin-top: 0; }
.manual-subsection > h3 { width: 100%; border-top: 1px solid currentColor; padding-top: 21px; margin-bottom: 20px; font-size: 16px; line-height: 1.3; font-weight: 600; }
.footnotes { list-style: none; padding: 0; font-size: 14px; font-style: italic; margin-top: 12px; }
.footnotes li { padding-left: 14px; position: relative; }
.footnotes li::before { content: '*'; position: absolute; left: 0; }
.cover .manual-header { grid-template-columns: minmax(0, 1fr) auto 30%; column-gap: 24px; align-items: center; margin-bottom: 56px; }
.cover .manual-header__edition { align-self: stretch; display: flex; flex-direction: column; justify-content: flex-end; }
.cover-brand { align-self: end; display: flex; align-items: center; padding-bottom: 16px; }
.cover-brand__name { font: 400 54px/1.2 var(--mm-font-brand); }
.cover-brand p { margin: 2px 0 0; font-size: 12px; font-weight: 500; }
.mm-flag { align-self: end; width: 104px; height: 70px; margin-bottom: 16px; flex: 0 0 auto; border: 1px solid #000; background: linear-gradient(#000 0 33.333%,var(--mm-yellow) 33.333% 66.666%,#fff 66.666%); }
.cover .manual-lead { max-width: 880px; font-size: 44px; margin-bottom: 128px; }
.cover__imagery { max-width: 790px; margin-bottom: 56px; }
.cover__imagery img { border: 1px solid #000; width: 100%; }
.cover__imagery figcaption { margin-top: 10px; }
.contents { width: 100%; border-top: 1px solid; padding-top: 24px; }
.contents h3 { font-size: 24px; margin-bottom: 28px; }
.contents ol { list-style: none; padding: 0; margin: 0; max-width: 650px; }
.contents li + li { margin-top: 18px; }
.contents a { display: flex; align-items: baseline; text-decoration: none; width: fit-content; max-width: 100%; font-size: 14px; }
.contents a:hover .contents__title { text-decoration: underline; }
.contents__dots { flex: 1; min-width: 110px; border-bottom: 2px dotted; margin: 0 2px 4px; }
.contents__page { white-space: nowrap; }
.cover__language { margin: 56px 0 0; text-align: right; font-size: 24px; color: #737377; }
.installation__grid { display: grid; grid-template-columns: 1fr 220px; gap: 80px; }
.installation .manual-lead { margin: 0 0 56px; }
.installation__link { font-size: 16px; font-weight: 600; }
.installation__note { font-size: 12px; margin: 80px 0 0; color: #a1a1a6; }
.aside h3 { font-size: 16px; font-weight: 200; margin-bottom: 24px; }
.aside h3::after {
    content: '';
    display: block;
    height: 25px;
    margin-top: 16px;
    background:
        linear-gradient(var(--mm-sunset-yellow), var(--mm-sunset-yellow)) top,
        linear-gradient(var(--mm-sunset-orange), var(--mm-sunset-orange)) 0 33.333%,
        linear-gradient(var(--mm-sunset-red), var(--mm-sunset-red)) 0 66.666%,
        linear-gradient(var(--mm-sunset-crimson), var(--mm-sunset-crimson)) bottom;
    background-size: 100% 4px;
    background-repeat: no-repeat;
}
.aside ul { padding-left: 24px; }
.scroll-hint { display: none; font-size: 12px; font-style: italic; margin-bottom: 8px; }
.table-scroll { overflow-x: auto; overscroll-behavior-x: contain; }
table { width: 100%; border-collapse: collapse; font-size: 14px; }
th, td { border: 1px solid currentColor; text-align: left; vertical-align: top; padding: 12px; }
th { font-weight: 600; }
.protocol-table { min-width: 660px; }
.protocol-table td:first-child { width: 23%; }
.protocol-table td:nth-child(2) { padding: 0; }
.protocol-table pre { font: 12px/1.35 var(--mm-font-mono); font-variant-ligatures: none; letter-spacing: 0; width: max-content; margin: 0; padding: 2.7em 4ch; white-space: pre; }
.protocol-table td:nth-child(2) .footnotes { margin: 0; padding: 0 12px 12px; }
.protocol-table .footnotes { font-size: 12px; }
.diagram { max-width: 700px; }
.diagram-scroll { overflow-x: auto; overscroll-behavior-x: contain; }
.diagram svg { display: block; width: 100%; height: auto; border: 1px solid currentColor; color: inherit; }
.diagram svg text { fill: currentColor; font-family: var(--mm-font-mono); font-size: 12px; text-anchor: middle; }
.diagram svg .box, .diagram svg .line { fill: none; stroke: currentColor; stroke-width: 1; }
.algorithm-figure { display: grid; grid-template-columns: minmax(0, 700px) 200px; gap: 72px; align-items: start; }
.algorithm-figure .diagram { margin: 10px 0 0; }
.algorithm-figure .aside { margin-top: 42px; font-size: 14px; }
.algorithm-figure .aside h3 { font-size: 16px; }
.algorithm-figure .aside p { margin-bottom: 20px; }
.security-code { width: max-content; max-width: 100%; padding: 2.6em 4ch; border: 1px solid; font: 17px/1.3 var(--mm-font-mono); text-align: center; margin: 0; }
.privacy-table { min-width: 650px; }
.privacy-table th { width: 25%; }
.privacy-table ul { padding-left: 19px; }
.callout { position: relative; margin-top: 40px; padding: 14px 18px; font-size: 14px; }
.callout::before {
    content: '';
    position: absolute;
    width: 2px;
    top: 0;
    bottom: 0;
    left: 0;
    background:
        linear-gradient(var(--mm-sunset-yellow), var(--mm-sunset-yellow)) top,
        linear-gradient(var(--mm-sunset-orange), var(--mm-sunset-orange)) 0 33.333%,
        linear-gradient(var(--mm-sunset-red), var(--mm-sunset-red)) 0 66.666%,
        linear-gradient(var(--mm-sunset-crimson), var(--mm-sunset-crimson)) bottom;
    background-size: 100% calc((100% - 12px) / 4);
    background-repeat: no-repeat;
}
.callout h3 { font-weight: 200; font-size: 16px; margin-bottom: 22px; }
.callout p { margin-bottom: 16px; }
.callout a { font-weight: 600; }
.thesis .prose { border-top: 1px solid; padding-top: 20px; }
.thesis__part + .thesis__part { margin-top: 32px; }
.thesis__part h3 { font: 400 42px/1.2 var(--mm-font-brand); margin-bottom: 22px; }
.thesis__byline { width: 290px; margin: 64px auto 64px; }
.thesis { padding-bottom: 16px; }
@media (max-width: 1100px) {
    .manual-inner { width: calc(100% - 128px); }
    .manual-header { font-size: 14px; }
    .manual-lead { font-size: 38px; }
    .cover .manual-lead { font-size: 40px; }
    .cover-brand__name { font-size: 43px; }
    .mm-flag { width: 90px; height: 61px; }
    .installation__grid { gap: 44px; grid-template-columns: 1fr 195px; }
    .algorithm-figure { gap: 36px; grid-template-columns: minmax(0, 1fr) 165px; }
    .hero__inner { width: calc(100% - 96px); }
}
@media (max-width: 800px) {
    body { font-size: 14px; line-height: 1.45; }
    .manual-inner { width: calc(100% - 96px); }
    .manual-header { grid-template-columns: 1fr 30%; font-size: 12px; margin-bottom: 60px; }
    .manual-header__edition { padding-left: 14px; }
    .manual-lead { font-size: 34px; margin-bottom: 96px; }
    .cover .manual-header { margin-bottom: 48px; }
    .cover .manual-lead { font-size: 38px; margin-bottom: 96px; }
    .cover-brand__name { font-size: 35px; }
    .cover-brand p { font-size: 12px; }
    .mm-flag { width: 68px; height: 46px; }
    .installation__grid { gap: 36px; grid-template-columns: 1fr 170px; }
    .aside h3 { font-size: 16px; }
    .manual-subsection > h3 { font-size: 16px; }
    .cover__imagery { margin-bottom: 48px; }
    .contents a { font-size: 14px; }
}
@media (max-width: 600px) {
    .hero { padding: 88px 0 20px; }
    .hero__inner { width: calc(100% - 56px); display: flex; flex-direction: column; justify-content: space-between; gap: 16px; }
    .hero__stage { display: contents; }
    .hero__title { position: static; transform: none; order: 0; flex: 0 0 auto; text-align: center; }
    .hero h1 { font-size: clamp(32px, 10vw, 60px); }
    .hero__slogan { margin: 10px 0 0; font-size: 12px; }
    .hero__art { position: static; order: 1; flex: 0 1 auto; min-height: 0; width: 100%; height: auto; object-position: center; }
    .downloads { order: 2; flex-shrink: 0; gap: 20px; justify-content: center; }
    .hero__footer { order: 3; flex-shrink: 0; gap: 12px; }
    .hero__notice { font-size: 8px; line-height: 1.4; }
    .hero__scroll { gap: 8px; }
    .downloads a { flex: 0 0 auto; }
    .downloads img { width: auto; height: clamp(32px, 10vw, 48px); }
    .manual-page { padding: 26px 0 64px; }
    .manual-inner { width: calc(100% - 56px); }
    .manual-header { grid-template-columns: 1fr 118px; font-size: 10px; line-height: 1.4; margin-bottom: 44px; }
    .manual-header__label { padding-right: 12px; padding-bottom: 12px; }
    .manual-header__edition { padding: 6px 0 12px 12px; }
    .cover-brand { padding: 0 12px 12px 0; }
    .cover-brand__name { font-size: 24px; }
    .cover-brand p { font-size: 10px; margin-top: 4px; }
    .cover .manual-header { grid-template-columns: minmax(0, 1fr) 40px 118px; column-gap: 10px; }
    .mm-flag { width: 40px; height: 28px; margin-bottom: 12px; }
    .cover .manual-header { margin-bottom: 48px; }
    .manual-lead, .cover .manual-lead { font-size: 30px; line-height: 1.25; margin-bottom: 80px; }
    .cover__imagery { margin-bottom: 58px; }
    .footnotes, figcaption, caption { font-size: 12px; }
    .contents { padding-top: 20px; }
    .contents h3 { font-size: 24px; margin-bottom: 24px; }
    .contents a { font-size: 14px; width: 100%; }
    .contents__dots { min-width: 18px; }
    .cover__language { margin-top: 54px; font-size: 16px; }
    .installation__grid { display: block; }
    .installation__grid .aside { max-width: 290px; margin-top: 58px; }
    .installation__note { margin-top: 70px; font-size: 12px; }
    .manual-subsection { margin-top: 44px; }
    .manual-subsection > h3 { width: 100%; padding-top: 18px; margin-bottom: 18px; }
    p { margin-bottom: 18px; }
    .algorithm-figure { display: block; }
    .algorithm-figure .aside { max-width: 320px; margin: 30px 0 0; }
    .diagram svg { min-width: 540px; }
    .security-code { font-size: 14px; padding: 2.6em 4ch; }
    .callout { margin-top: 44px; }
    .callout h3 { font-size: 16px; }
    .thesis__part h3 { font-size: 36px; margin-bottom: 18px; }
    .thesis__byline { width: 230px; margin-top: 48px; margin-bottom: 48px; }
    .thesis { padding-bottom: 18px; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
.prose > .algorithm-exclusions:first-child { margin-top: 40px; }

@media (max-width: 700px) { .scroll-hint--table { display: block; } }
@media (max-width: 600px) { .scroll-hint--diagram { display: block; } }

/* Preserve the full-screen composition on short landscape displays. */
@media (min-width: 601px) and (max-height: 540px) {
    .hero { padding-top: 76px; padding-bottom: 16px; }
    .hero__inner { gap: 12px; }
    .hero h1 { font-size: clamp(32px, 5vw, 64px); }
    .hero__slogan { margin-top: 8px; font-size: 14px; }
    .downloads img { height: 40px; }
}

.hero__chevrons i:nth-child(2) { animation-delay: .18s; }
.hero__chevrons i:nth-child(3) { animation-delay: .36s; }
.hero__chevrons i:nth-child(4) { animation-delay: .54s; }
@keyframes chevron-shimmer { 0%, 65%, 100% { opacity: .25; } 30% { opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .hero__chevrons i { animation: none; opacity: 1; } }

/* Content remains visible without JavaScript and with reduced motion. */
.manual-lead { transition: opacity .7s ease, transform .7s ease; }
.manual-lead[data-reveal-pending] { opacity: 0; transform: translateY(14px); }
@media (prefers-reduced-motion: reduce) {
    .manual-lead, .manual-lead[data-reveal-pending] { opacity: 1; transform: none; transition: none; }
}

/* Reserve the complete slogan's space so typing never moves the hero layout.
   The original text stays available to assistive technology and without JS. */
.hero__typewriter { position: relative; display: inline-block; }
.hero__slogan-reserve { padding-right: .75em; }
.hero__slogan-typed { display: none; }
.hero__typewriter.is-typing .hero__slogan-reserve { opacity: 0; }
.hero__typewriter.is-typing .hero__slogan-typed { display: block; position: absolute; inset: 0; text-align: left; white-space: nowrap; }
.hero__typewriter.is-typing .hero__slogan-typed::after {
    content: '';
    display: inline-block;
    width: .55em;
    height: 1.05em;
    margin-left: .12em;
    vertical-align: -.13em;
    background: currentColor;
    animation: terminal-cursor 1s step-end infinite;
}
@keyframes terminal-cursor { 0%, 49% { opacity: 1; } 50%, 100% { opacity: 0; } }
@media (prefers-reduced-motion: reduce) {
    .hero__typewriter.is-typing .hero__slogan-typed::after { animation: none; }
}

.cover__language a { text-underline-offset: 5px; }
