/* Screen presentation. The existing downloadable PDF is a separate artifact. */
@font-face {
  font-family: "Shield Display"; src: url("./fonts/Oswald.ttf") format("truetype");
  font-weight: 200 700; font-display: swap;
}
@font-face {
  font-family: "Shield Text"; src: url("./fonts/Manrope.ttf") format("truetype");
  font-weight: 200 800; font-display: swap;
}
:root { --display: "Shield Display", sans-serif; --body: "Shield Text", sans-serif; }
.slide { grid-template-columns: minmax(0, 1fr); }
.slide > * { min-width: 0; }
.installation-content { grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr); }
.slide h1, .slide h2 {
  width: 100%; transform: none; letter-spacing: -0.025em; line-height: 1.08;
  font-weight: 700; text-wrap: balance; overflow-wrap: break-word;
}
.slide h1 { font-size: clamp(3rem, 5.1vw, 6rem); }
.slide h2 { font-size: clamp(2.25rem, 3.6vw, 4.6rem); }
.slide h1 span { white-space: normal; }
.slide h2 strong { font-weight: 700; line-height: 1.1; }
.slide h3 { font-weight: 700; line-height: 1.15; }
.slide-header { flex-shrink: 0; }
.slide-controls { max-width: calc(100vw - 32px); }
.slide-controls__dots { gap: 2px; }
.slide-dot { width: 20px; }
.slide-control { width: 44px; height: 44px; flex-shrink: 0; }
.slide-control[hidden] { display: none; }
.slide-control:focus-visible, .slide-dot:focus-visible { outline: 2px solid var(--cyan); outline-offset: 2px; }
.slide-controls.is-idle:not(:focus-within):not(:hover) { opacity: 0; pointer-events: none; }
.slide-controls { transition: opacity 180ms ease; }
.comparison-row--secondary { display: none; }
.comparison-table { grid-template-rows: auto repeat(4, minmax(0, 1fr)); }
.comparison-row { grid-template-columns: minmax(130px, .65fr) repeat(3, minmax(0, 1fr)); }
.comparison-row > div { font-size: clamp(14px, 1.16vw, 20px); line-height: 1.35; padding: 14px; }
.comparison-row > div:first-child small { display: none; }
.comparison-row > div:first-child strong { font-size: 13px; }
.comparison-row b { font-size: clamp(20px, 1.8vw, 30px); }
.comparison-row--strength b { font-size: clamp(26px, 2.6vw, 40px); }
.comparison-note span { font-size: 14px; }
.benefits-list { width: 70%; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; align-self: center; margin: 32px 0; }
.benefits-list li { min-height: 130px; padding: 22px; gap: 16px; }
.benefits-list small { font-size: 30px; }
.benefits-list strong { font-size: clamp(22px, 1.8vw, 30px); line-height: 1.2; }
.benefits-list span { font-size: clamp(15px, 1.15vw, 19px); line-height: 1.5; margin-top: 12px; }
.benefits-note span { font-size: 15px; line-height: 1.4; }
.workflow-steps { grid-template-columns: repeat(3, minmax(0, 1fr)); grid-template-rows: repeat(2, minmax(0, 1fr)); gap: 22px; }
.workflow-steps { background: rgba(2, 12, 20, .8); }
.workflow-steps li:nth-child(n) { grid-column: auto; grid-row: auto; padding: 24px 20px; gap: 18px; }
.workflow-steps li::before, .workflow-steps::before, .workflow-steps::after { display: none; }
.workflow-steps li:not(:last-child)::after {
  content: "→"; position: absolute; right: 12px; bottom: 8px; inset-block-start: auto;
  width: auto; height: auto; border: 0; background: none; transform: none; color: var(--cyan); font: 28px var(--body);
}
.workflow-steps li:nth-child(3)::after { content: "↙"; }
.workflow-steps small { font-size: 38px; }
.workflow-steps strong { font-size: clamp(21px, 1.7vw, 30px); line-height: 1.22; }
.workflow-steps span { font-size: clamp(15px, 1.12vw, 19px); line-height: 1.5; margin-top: 12px; }
.workflow-lead, .workflow-note span { font-size: 16px; line-height: 1.45; }
.estimate-content { grid-template-columns: minmax(0, 1fr) minmax(0, .95fr); gap: 40px; }
.estimate-pricing { align-self: center; padding: 24px; }
.estimate-pricing > p { font-size: 20px; }
.estimate-price-list > div { padding: 24px 0; }
.estimate-price-list span { font-size: clamp(34px, 3vw, 48px); line-height: 1.1; }
.estimate-price-list strong { font-size: clamp(30px, 2.5vw, 44px); line-height: 1.1; }
.estimate-price-list em { font-size: 16px; }
.estimate-disclaimer { font-size: 14px; line-height: 1.5; margin-top: 20px; }
.estimate-equation { display: flex; flex-wrap: wrap; gap: 10px; }
.estimate-equation span, .estimate-equation strong { font-size: 16px; line-height: 1.3; }
.estimate-factors dt { font-size: 17px; }
.estimate-factors dd, .estimate-note span { font-size: 15px; line-height: 1.45; }
.film200-copy h2 > strong, .film300-copy h2 > strong { font-size: clamp(28px, 2.5vw, 44px); }
.film200-title__value, .film300-title__value { line-height: 1.15; }
.film400-copy h2 > strong { font-size: clamp(28px, 2.5vw, 42px); }
.finale-copy h2 { font-size: clamp(44px, 4.9vw, 84px); }

/* A dedicated viewer strip, clear of slide branding at every intermediate width. */
@media (min-width: 1301px) and (max-width: 1500px) {
  .slide-meta > span { display: none; }
}
@media (max-width: 1300px) {
  .slide-controls { top: auto; bottom: max(10px, env(safe-area-inset-bottom)); background: rgba(2, 12, 20, .97); }
  .slide-controls__dots { display: none; }
  .slide { padding-bottom: 76px; }
}

/* Portrait and short viewports: one readable, independently scrollable slide. */
@media (max-width: 1100px), (max-height: 650px) {
  :root { --page-x: clamp(18px, 4vw, 32px); }
  .presentation { touch-action: pan-y pinch-zoom; }
  /* Off-canvas desktop decoration must not enlarge the mobile scroll area. */
  .slide > .ambient, .slide > .slide-number { display: none; }
  .slide {
    display: flex; flex-direction: column; gap: 0; overflow-y: auto; overflow-x: hidden;
    overscroll-behavior: contain; touch-action: pan-y pinch-zoom;
    padding-bottom: calc(90px + env(safe-area-inset-bottom)); scrollbar-width: thin;
  }
  .slide > header, .slide > footer { flex-shrink: 0; width: 100%; }
  .slide > div:not(.cover-image, .grid-lines, .ambient, .risk-image, .consequences-image, .slide-number, .choice-gauge) {
    flex: 1 0 auto; min-height: auto; min-width: 0; width: 100%;
  }
  .slide h1 { font-size: clamp(38px, 7.7vw, 60px); }
  .slide h2 { font-size: clamp(30px, 5.8vw, 46px); }
  .slide .eyebrow { font-size: 11px; letter-spacing: .12em; margin-bottom: 18px; line-height: 1.5; }
  .slide-header { min-height: 74px; }
  .slide footer strong { font-size: max(14px, 1em); line-height: 1.4; }
  .slide footer small { font-size: 11px; }
  .slide .brand { width: 170px; height: 57px; }
  .slide-meta > span, .slide-meta i { display: none; }
  .slide-controls { top: auto; bottom: max(10px, env(safe-area-inset-bottom)); padding: 5px; min-height: 54px; gap: 4px; }
  .slide-control { width: 44px; height: 44px; }
  .slide-controls__dots { display: none; }
  .slide-controls__status { font-size: 15px; min-width: 62px; }
  .slide-controls__status > span:last-child { font-size: 12px; }
  .slide-control--fullscreen { display: none; }
  .cover-content, .risk-content, .consequences-content { padding: 38px 0; display: flex; align-items: center; }
  .cover-copy, .risk-copy, .consequences-copy, .finale-copy { width: 100%; max-width: 100%; padding: 0; border: 0; }
  .slide .cover-lead, .slide .risk-lead, .slide .consequences-lead,
  .slide .solution-lead, .slide .objects-lead, .slide .choice-lead,
  .slide .film200-lead, .slide .film400-lead, .slide .comparison-lead,
  .slide .selection-lead, .slide .installation-lead, .slide .workflow-lead,
  .slide .finale-lead { width: 100%; max-width: 100%; font-size: 16px; line-height: 1.5; }
  .cover-description, .risk-note { font-size: 14px; line-height: 1.5; }
  .proposal-footer { grid-template-columns: 1fr 1fr; min-height: 86px; }
  .proposal-footer > div { display: grid; padding: 12px 0 12px 12px; }
  .proposal-footer strong { font-size: 15px; }
  .proposal-footer__company strong { font-size: 16px; }
  .risk-list, .consequences-chain { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .risk-footer__intro { display: none; }
  .risk-list li, .consequences-chain li { padding: 14px 10px; min-height: 70px; }
  .risk-list strong, .consequences-chain strong { font-size: 16px; }
  .risk-list span, .consequences-chain span { font-size: 13px; line-height: 1.4; }
  .consequences-chain small { font-size: 11px; }
  .solution-content, .objects-content, .film200-content, .film300-content,
  .installation-content, .estimate-content { display: flex; flex-direction: column; gap: 26px; padding: 26px 0; }
  .solution-copy, .objects-copy, .film200-copy, .film300-copy, .installation-copy { width: 100%; min-width: 0; }
  .solution-visual, .objects-visual { width: 100%; min-width: 0; }
  .solution-steps strong, .solution-footer strong, .objects-zones strong { font-size: 14px; line-height: 1.3; }
  .solution-steps span { display: block; font-size: 12px; }
  .solution-footer, .objects-footer { min-height: 90px; }
  .objects-footer strong { font-size: 15px; line-height: 1.45; }
  .objects-accent { font-size: 12px; }
  .choice-content, .comparison-content, .selection-content, .workflow-content, .benefits-content { display: flex; flex-direction: column; padding: 26px 0; gap: 24px; }
  .choice-heading, .comparison-heading, .selection-heading, .workflow-heading { display: flex; flex-direction: column; align-items: stretch; gap: 16px; }
  .choice-levels { display: flex; flex-direction: column; gap: 16px; }
  .choice-level { display: grid; grid-template-columns: 100px minmax(0, 1fr); grid-template-rows: auto auto; padding: 18px; gap: 14px; }
  .choice-level__index { display: none; }
  .choice-level__value { grid-column: 1; grid-row: 1; }
  .choice-level__value strong { font-size: 46px; }
  .choice-level__value span { font-size: 16px; }
  .choice-level__media { grid-column: 1; grid-row: 2; height: 72px; margin: 0; }
  .choice-level__copy { grid-column: 2; grid-row: 1 / 3; padding: 0; border: 0; align-self: center; }
  .choice-level__copy h3 { font-size: 22px; }
  .choice-level__copy p { font-size: 15px; line-height: 1.45; }
  .choice-footer strong { font-size: 20px; line-height: 1.3; }
  .film200-title__value, .film300-title__value, .film400-title__value { font-size: 74px; line-height: 1.1; }
  .film200-copy h2 > strong, .film300-copy h2 > strong, .film400-copy h2 > strong { font-size: 30px; }
  .film200-visual { width: 100%; min-height: 430px; }
  .film200-result, .film300-result { width: 85%; padding: 12px; }
  .film200-result strong, .film300-result strong { font-size: 26px; line-height: 1.2; }
  .film200-result span, .film300-result span { font-size: 14px; line-height: 1.4; }
  .film200-result small, .film300-result small { font-size: 11px; }
  .film200-specs dt, .film400-specs dt, .film200-classes > small, .film400-classes > small { font-size: 12px; }
  .film200-specs dd, .film400-specs dd { font-size: 28px; }
  .film200-classes span, .film300-classes span, .film400-classes span { font-size: 24px; min-height: 42px; }
  .film200-detail { width: 85%; height: 100px; }
  .film200-detail strong { font-size: 18px; line-height: 1.25; }
  .film200-detail small { font-size: 11px; }
  .film200-footer, .film300-footer, .film400-footer { grid-template-columns: 1fr; }
  .film200-footer > div { padding: 14px 0; border-left: 0; }
  .film200-footer strong { font-size: 15px; line-height: 1.4; }
  .film200-footer small { font-size: 11px; }
  .film200-footer span { font-size: 13px; }
  .film400-stage { display: flex; flex-direction: column; min-height: 720px !important; padding-bottom: 180px; }
  .film400-copy { width: 100%; padding: 22px 18px; }
  .film400-data { display: grid; grid-template-columns: 1fr 1fr; }
  .film400-result { position: relative; inset: auto; margin: 24px 18px; width: auto; }
  .film400-result strong { font-size: 26px; }
  .film400-result span { font-size: 14px; line-height: 1.4; }
  .film400-detail { width: 85%; height: 100px; bottom: 24px; }
  .film400-detail strong { font-size: 18px; }
  .comparison-table { display: none; }
  .comparison-mobile { display: grid; gap: 20px; }
  .comparison-mobile article { border-top: 3px solid var(--cyan); padding: 20px; background: #071b28; }
  .comparison-mobile article:last-child { border-color: var(--amber); }
  .comparison-mobile h3 { font: 700 36px var(--display); margin: 0 0 18px; color: var(--cyan-soft); }
  .comparison-mobile article:last-child h3 { color: var(--amber-soft); }
  .comparison-mobile dl { margin: 0; }
  .comparison-mobile dl > div { margin-top: 14px; }
  .comparison-mobile dt { font-size: 11px; letter-spacing: .06em; color: var(--muted); }
  .comparison-mobile dd { margin: 5px 0 0; font-size: 16px; line-height: 1.5; }
  .comparison-note { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; padding: 18px 0; }
  .comparison-note span { font-size: 13px; }
  .selection-ladder { display: flex; flex-direction: column; gap: 20px; }
  .selection-tier, .selection-tier:nth-child(n) { width: 100%; min-height: 220px; display: grid; grid-template-columns: 1fr; }
  .selection-tier__level, .selection-tier__copy { padding: 16px; }
  .selection-tier__level strong { font-size: 36px; }
  .selection-tier__copy h3 { font-size: 26px; }
  .selection-tier__copy p { font-size: 14px; line-height: 1.4; }
  .selection-tier__level small { font-size: 11px; }
  .selection-note, .workflow-note, .benefits-note, .estimate-note { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; padding: 18px 0; }
  .selection-note span, .workflow-note span, .benefits-note span, .estimate-note span { font-size: 14px; line-height: 1.45; }
  .benefits-list { width: 100%; display: grid; grid-template-columns: 1fr; margin: 0; gap: 16px; }
  .benefits-list li { min-height: 130px; padding: 22px 16px; }
  .benefits-list strong { font-size: 23px; }
  .benefits-list span { font-size: 16px; }
  .benefits-visual-note { display: none; }
  .installation-visual { min-height: 490px; width: 100%; }
  .installation-visual__detail { width: 92%; height: 110px; }
  .installation-visual__detail strong { font-size: 17px; }
  .installation-visual__detail small { font-size: 11px; }
  .installation-steps { grid-template-columns: 1fr 1fr; }
  .installation-steps li { min-height: 95px; padding: 12px; }
  .installation-steps strong { font-size: 17px; }
  .installation-steps span { font-size: 13px; line-height: 1.4; }
  .workflow-steps { display: flex; flex-direction: column; gap: 12px; padding: 0; }
  .workflow-steps li:nth-child(n) { min-height: 140px; padding: 20px 18px 32px; }
  .workflow-steps li:not(:last-child)::after { content: "↓"; }
  .workflow-steps strong { font-size: 24px; }
  .workflow-steps span { font-size: 16px; }
  .estimate-copy, .estimate-pricing { width: 100%; }
  .estimate-equation b { display: inline; }
  .estimate-factors dt { font-size: 17px; }
  .estimate-factors dd { font-size: 15px; }
  .estimate-pricing { padding: 20px 16px; }
  .estimate-price-list { display: block; }
  .estimate-price-list > div { display: grid; grid-template-columns: auto 1fr; gap: 6px 12px; padding: 24px 0; border-right: 0; }
  .estimate-price-list span { font-size: 34px; }
  .estimate-price-list strong { font-size: 29px; text-align: right; }
  .estimate-price-list em { grid-column: 2; font-size: 14px; text-align: right; }
  .estimate-disclaimer { font-size: 14px; }
  .finale-content { display: flex; flex-direction: column; gap: 32px; padding: 40px 0 24px; }
  .finale-copy { margin: auto 0; }
  .finale-copy h2 { font-size: clamp(36px, 7.7vw, 58px); }
  .finale-accent { font-size: 17px; line-height: 1.4; }
  .finale-results { display: grid; grid-template-columns: 1fr 1fr; }
  .finale-results > div { padding: 14px; min-height: 110px; }
  .finale-results strong { font-size: 18px; }
  .finale-results span { font-size: 13px; line-height: 1.4; }
  .finale-contact { display: flex; flex-wrap: wrap; gap: 20px; padding: 20px 0; }
  .finale-contact > div { padding: 0; border: 0; }
  .finale-contact strong, .finale-contact__action strong { font-size: 23px; line-height: 1.25; }
  .finale-contact small { font-size: 11px; }
  .cover-content::after, .finale-content::after { display: none; }
}
@media (min-width: 1101px) and (min-height: 651px) { .comparison-mobile { display: none; } }
@media (prefers-reduced-motion: reduce) {
  .slide[data-slide-position], .slide.is-active .reveal { transition: none; animation: none; }
}
