.ownership-layout { display: grid; grid-template-columns: .9fr 1.2fr; gap: 90px; }
.experience-areas { margin: 26px 0; }
.prose .about-proof { margin-top: 26px; padding-top: 22px; border-top: 1px solid var(--line); color: var(--ink); font-size: 16px; line-height: 1.7; }
.experience-areas > div { display: grid; grid-template-columns: 155px minmax(0, 1fr); gap: 22px; padding-block: 17px; border-top: 1px solid var(--line); }
.experience-areas > div:last-child { border-bottom: 1px solid var(--line); }
.experience-areas dt { color: var(--ink); font-size: 14px; font-weight: 500; }
.experience-areas dd { margin: 0; color: var(--muted); font-size: 14px; line-height: 1.65; }
@media (max-width: 760px) {
  .experience-areas > div { grid-template-columns: 1fr; gap: 5px; }
}
.book-closing-layout { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 85px; }
.book-closing h2 { margin-top: 17px; }
.book-closing-copy p { max-width: 48ch; color: var(--muted); }
.book-closing .text-link { margin-top: 18px; flex-wrap: wrap; }
@media (max-width: 760px) {
  .book-closing-layout { grid-template-columns: 1fr; gap: 25px; }
}
.scroll-background { position: fixed; inset: 0; z-index: 0; pointer-events: none; opacity: 0; background: #ddded2; }
.scroll-background video { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 58% center; }
@media (orientation: portrait) {
  .scroll-background video, .hero-media video { object-fit: contain; object-position: center center; }
  .scroll-background, .hero-media { background: #14251c; }
}
.scroll-background::after { content: ""; position: absolute; inset: 0; background: rgba(241, 242, 231, .2); }
body > main, body > footer { position: relative; z-index: 1; }
.page-progress { position: fixed; top: 0; left: 0; right: 0; height: 3px; z-index: 50; pointer-events: none; }
.page-progress span { display: block; width: 100%; height: 100%; background: #78a857; transform: scaleX(var(--page-progress, 0)); transform-origin: left; }
#leistungen, #ueber-mich { background: rgba(252, 252, 249, .91); }
.situation-section, .collaboration-section, .demo-section { background: rgba(255, 255, 251, .91) !important; }
.calculator-section { background: rgba(28, 57, 42, .94) !important; }
.contact-section { background: rgba(236, 241, 230, .94); }
.site-footer { background: var(--paper); }
.film-explanation { display: flex; min-height: 510px; align-items: center; padding-block: 60px; }
.film-caption { width: min(450px, 100%); padding: 32px; background: rgba(252, 252, 249, .93); border-left: 2px solid var(--green); }
.film-caption h2 { margin-top: 15px; font-size: 34px; }
.film-caption > p:not(.eyebrow) { margin-top: 20px; color: var(--muted); font-size: 16px; }
.film-caption .film-note { font-size: 11px !important; }
.cartoon-playground { --play-progress: 0; position: relative; overflow: hidden; border: 1px solid #cbd6c3; border-radius: 5px; background: #f0f3e8; cursor: ew-resize; touch-action: pan-y; user-select: none; }
.playground-labels { display: flex; justify-content: space-between; gap: 20px; padding: 23px 30px 0; font-size: 13px; color: var(--muted); }
.playground-labels > :last-child { color: var(--green-dark); }
.cartoon-scene { display: block; width: 100%; max-height: 470px; }
.cartoon-manual { opacity: calc(1 - var(--play-progress)); }
.cartoon-digital { opacity: var(--play-progress); }
.playground-bottom { display: flex; justify-content: space-between; align-items: center; gap: 25px; min-height: 75px; padding: 10px 30px 22px; }
.playground-bottom > strong { font-size: 20px; font-weight: 500; }
.playground-bottom > span { color: var(--muted); font-size: 12px; white-space: nowrap; }
.playground-pointer { padding-left: 7px; font-size: 19px; }
.playground-controls { display: none; padding: 0 30px 24px; cursor: default; }
@media (hover: none), (pointer: coarse) {
  .playground-controls { display: block; }
}
.playground-controls label { display: block; margin-bottom: 4px; color: #59655f; font-size: 12px; }
.playground-controls input[type="range"] { display: block; width: 100%; height: 48px; margin: 0; padding: 0; accent-color: #28734d; background: transparent; appearance: none; -webkit-appearance: none; cursor: ew-resize; touch-action: pan-y; }
.playground-range-labels { display: flex; justify-content: space-between; color: #405342; font-size: 12px; }
.playground-controls input[type="range"]::-webkit-slider-runnable-track { height: 6px; border-radius: 4px; background: linear-gradient(to right, #28734d calc(var(--play-progress) * 100%), #c5d3ba calc(var(--play-progress) * 100%)); }
.playground-controls input[type="range"]::-webkit-slider-thumb { width: 28px; height: 28px; margin-top: -11px; border: 2px solid #f5f8ef; border-radius: 50%; background: #28734d; appearance: none; -webkit-appearance: none; }
.playground-controls input[type="range"]::-moz-range-track { height: 6px; border-radius: 4px; background: #c5d3ba; }
.playground-controls input[type="range"]::-moz-range-progress { height: 6px; border-radius: 4px; background: #28734d; }
.playground-controls input[type="range"]::-moz-range-thumb { width: 26px; height: 26px; background: #28734d; border: 2px solid #f0f3e8; border-radius: 50%; }
.film-site { --paper: #14251c; --ink: #f3f6ee; --muted: #c7d3c5; --green: #bbdba2; --green-dark: #d0e9bb; --pale: #263e2d; --line: #526851; background: #14251c; }
.film-site .scroll-background::after { background: linear-gradient(90deg, rgba(7, 21, 13, .82), rgba(7, 21, 13, .64) 55%, rgba(7, 21, 13, .67)); }
.film-site #leistungen, .film-site #ueber-mich, .film-site .situation-section, .film-site .collaboration-section, .film-site .demo-section, .film-site .calculator-section, .film-site .contact-section { background: transparent !important; }
.film-site .film-caption { padding: 0; border: 0; background: transparent; }
.film-site main h2, .film-site main .prose { text-shadow: 0 2px 12px rgba(0, 0, 0, .3); }
.film-site .brand, .film-site .main-nav a, .film-site .footer-brand { color: #f3f6ee; }
.film-site .contact-direct { border-color: #526851; }
.film-site .contact-form input, .film-site .contact-form textarea { color: #223226; background: #fcfdf7; border-color: #91a58b; }
.film-site .contact-form .form-status { color: #f3f6ee; }
.film-site .button { color: #18331e; background: #c5dfa9; border-color: #c5dfa9; }
.film-site .button:hover { color: #142c19; background: #d9edc5; border-color: #d9edc5; }
.film-site .text-button { color: #d0e9bb; }
.film-site .cartoon-playground, .film-site .calculator-tool { color: var(--ink); background: transparent; text-shadow: none; }
.film-site .cartoon-playground { border: 0; border-radius: 0; }
.film-site .cartoon-scene { filter: drop-shadow(0 3px 3px rgba(0, 0, 0, .22)); }
.film-site .cartoon-scene > ellipse { fill: #09150d; opacity: .5; }
.film-site .cartoon-scene > path[stroke="#384b3d"] { stroke: #a8bf9c; }
.film-site .cartoon-manual > path, .film-site .cartoon-digital > path[fill="none"] { stroke: #c5dfa9; }
.film-site .playground-controls label, .film-site .playground-range-labels { color: var(--muted); }
.film-site .playground-controls input[type="range"] { accent-color: #c5dfa9; color-scheme: dark; }
.film-site .playground-controls input[type="range"]::-webkit-slider-runnable-track { background: linear-gradient(to right, #c5dfa9 calc(var(--play-progress) * 100%), #526851 calc(var(--play-progress) * 100%)); }
.film-site .playground-controls input[type="range"]::-webkit-slider-thumb { background: #c5dfa9; border-color: #233b29; }
.film-site .playground-controls input[type="range"]::-moz-range-track { background: #526851; }
.film-site .playground-controls input[type="range"]::-moz-range-progress { background: #c5dfa9; }
.film-site .playground-controls input[type="range"]::-moz-range-thumb { background: #c5dfa9; border-color: #233b29; }
.film-site .calculator-tool { padding: 0; }
.film-site .calculator-tool input { color-scheme: dark; color: var(--ink); background: rgba(7, 21, 13, .38); border-color: #82977c; }
.film-site .calculator-tool input:focus { background: #14251c; }
.film-site .calculator-tool .text-button { color: var(--green-dark); }
.film-site .calculator-tool h2 { text-shadow: none; }
@media (max-width: 760px) {
  .film-explanation { min-height: 460px; }
  .film-caption { padding: 25px; width: min(360px, 100%); }
  .film-caption h2 { font-size: 29px; }
  .playground-labels { padding: 17px 16px 5px; font-size: 10px; }
  .playground-bottom { min-height: 90px; align-items: flex-start; flex-direction: column; gap: 8px; padding: 5px 16px 20px; }
  .playground-bottom > strong { font-size: 17px; }
  .playground-bottom > span { font-size: 10px; }
  .playground-controls { padding: 0 16px 22px; }
}
.ownership-layout h2 { margin-top: 17px; }
.ownership-lead { color: var(--ink); font-size: 23px; line-height: 1.5; }
.ownership-layout .text-link { margin-top: 20px; }
.process-section { padding-bottom: 0; background: #eef0e9; }
.process-story { position: relative; display: grid; grid-template-columns: 1.1fr .9fr; align-items: start; gap: 75px; }
.process-figure { position: sticky; top: 120px; margin: 0; padding-bottom: 20px; }
.process-film { position: relative; overflow: hidden; aspect-ratio: 16 / 10; background: #dddcd2; }
.process-film video { display: block; width: 100%; height: 100%; object-fit: cover; }
.process-state { position: absolute; right: 0; bottom: 0; left: 0; padding: 50px 24px 23px; color: white; background: linear-gradient(transparent, rgba(15, 28, 21, .92)); }
.process-state span { display: block; margin-bottom: 9px; color: #d0e1c9; font-size: 11px; letter-spacing: .1em; text-transform: uppercase; }
.process-state strong { font-size: 21px; font-weight: 500; line-height: 1.35; }
.story-progress { height: 3px; margin-top: 15px; background: #ced6ca; }
.story-progress > span { display: block; width: 100%; height: 100%; background: var(--green); transform: scaleX(var(--story-progress, 0)); transform-origin: left; }
.process-figure figcaption { margin-top: 11px; color: var(--muted); font-size: 11px; }
.process-chapters article { display: flex; min-height: 58vh; flex-direction: column; justify-content: center; padding-block: 65px; }
.process-chapters article h3 { margin-top: 17px; font-size: 29px; }
.process-chapters article > p { margin-top: 20px; color: var(--muted); font-size: 17px; }
.process-keyframe { display: none; }
.demo-section { background: var(--white); }
.demo-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: 75px; align-items: start; }
.tool-form { display: grid; gap: 23px; }
.tool-form label { display: block; margin-bottom: 7px; font-size: 13px; font-weight: 500; line-height: 1.5; }
.tool-form input { display: block; width: 100%; min-width: 0; min-height: 48px; border: 1px solid #a4b1a4; border-radius: 2px; padding: 10px 12px; color: var(--ink); background: var(--paper); }
.tool-form input:focus { outline: 2px solid var(--green); outline-offset: 2px; }
.tool-form .button { justify-self: start; }
.field-pair { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 20px; }
.tool-hint { color: var(--muted); font-size: 13px; }
.demo-preview { padding: 28px 30px; background: var(--pale); border-top: 2px solid var(--green); }
.demo-flow { display: grid; gap: 0; margin: 20px 0; padding: 0; list-style: none; }
.demo-flow li { position: relative; display: grid; grid-template-columns: 29px 1fr; gap: 14px; padding-block: 15px; }
.demo-flow li + li { border-top: 1px solid #cad5c7; }
.demo-flow li > span { display: grid; place-items: center; width: 27px; height: 27px; border: 1px solid #a2b99c; border-radius: 50%; color: var(--green); font-size: 12px; }
.demo-flow strong { display: block; font-weight: 500; font-size: 16px; }
.demo-flow small { display: block; margin-top: 4px; color: var(--muted); font-size: 13px; overflow-wrap: anywhere; }
.demo-flow .is-done > span { color: white; border-color: var(--green); background: var(--green); }
.demo-flow .is-active strong { color: var(--green); }
.demo-result { min-height: 82px; padding-top: 20px; border-top: 1px solid #aabda4; color: var(--ink); font-size: 15px; }
.text-button { display: inline-flex; min-height: 44px; align-items: center; gap: 12px; margin-top: 18px; padding: 0; color: var(--green-dark); border: 0; background: transparent; font: inherit; font-size: 14px; text-align: left; text-decoration: underline; text-underline-offset: 4px; cursor: pointer; }
.text-button:hover { color: var(--green); }
.text-button:disabled { color: var(--muted); cursor: default; }
.demo-note { max-width: 85ch; margin-top: 27px; color: var(--muted); font-size: 12px; }
.calculator-section { background: #223d31; color: white; }
.calculator-layout { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 85px; }
.calculator-disclosure { border: 1px solid #82977c; border-radius: 3px; background: rgba(7, 21, 13, .2); }
.calculator-disclosure > summary { position: relative; padding: 32px 90px 30px 32px; list-style: none; cursor: pointer; }
.calculator-disclosure > summary::-webkit-details-marker { display: none; }
.calculator-disclosure > summary::after { content: "+"; position: absolute; top: 28px; right: 32px; color: var(--green); font-size: 38px; font-weight: 400; line-height: 1; }
.calculator-disclosure[open] > summary::after { content: "−"; }
.calculator-disclosure > summary:hover { background: rgba(197, 223, 169, .04); }
.calculator-disclosure > summary:focus-visible { outline: 2px solid var(--green); outline-offset: 5px; }
.calculator-disclosure > summary h2 { max-width: 27ch; font-size: clamp(27px, 3vw, 38px); }
.calculator-summary-note { display: block; max-width: 52ch; margin-top: 17px; color: var(--muted); font-size: 16px; font-weight: 400; letter-spacing: normal; line-height: 1.65; }
.calculator-open-label, .calculator-close-label { display: block; margin-top: 21px; color: var(--green-dark); font-size: 13px; font-weight: 500; line-height: 1.5; letter-spacing: normal; text-decoration: underline; text-underline-offset: 4px; }
.calculator-disclosure .calculator-close-label { display: none; }
.calculator-disclosure[open] .calculator-open-label { display: none; }
.calculator-disclosure[open] .calculator-close-label { display: block; }
.calculator-disclosure[open] > summary { border-bottom: 1px solid var(--line); }
.calculator-expanded { padding: 32px; }
.calculator-copy h3 { margin-top: 17px; font-size: clamp(25px, 2.4vw, 32px); }
@media (max-width: 760px) {
  .calculator-disclosure > summary { padding: 25px 56px 25px 20px; }
  .calculator-disclosure > summary::after { top: 25px; right: 18px; font-size: 30px; }
  .calculator-summary-note { font-size: 14px; }
  .calculator-expanded { padding: 25px 20px; }
}
.calculator-copy .eyebrow { color: #b8d1b4; }
.calculator-copy h2 { margin-top: 17px; }
.calculator-copy > p:not(.eyebrow) { max-width: 40ch; margin-top: 24px; color: #d1dcd3; }
.calculator-copy .calculator-example { padding-top: 24px; border-top: 1px solid #60786a; font-size: 16px; }
.calculator-copy .calculator-caveat { font-size: 12px; line-height: 1.75; }
.calculator-tool { padding: 30px; color: var(--ink); background: var(--paper); }
.calculator-tool input { background: white; }
.cost-details { padding-top: 17px; border-top: 1px solid var(--line); }
.cost-details summary { cursor: pointer; font-size: 13px; text-decoration: underline; text-underline-offset: 3px; }
.cost-fields { display: grid; gap: 16px; margin-top: 22px; }
.cost-details .tool-hint { margin-top: 16px; font-size: 12px; }
.calculator-results { margin-top: 28px; padding-top: 24px; border-top: 1px solid var(--green); }
.result-primary > span { display: block; color: var(--muted); font-size: 13px; }
.result-primary > strong { display: block; margin-block: 2px 20px; color: var(--green-dark); font-size: clamp(38px, 4vw, 55px); font-weight: 500; line-height: 1.2; letter-spacing: -.04em; font-variant-numeric: tabular-nums; }
.result-secondary { display: grid; gap: 12px; }
.result-secondary > div { display: flex; justify-content: space-between; align-items: baseline; gap: 18px; padding-top: 11px; border-top: 1px solid var(--line); }
.result-secondary span { color: var(--muted); font-size: 12px; }
.result-secondary strong { flex-shrink: 0; color: var(--ink); font-size: 14px; font-weight: 500; font-variant-numeric: tabular-nums; }
#calc-explanation { margin-top: 19px; color: var(--muted); font-size: 11px; }
.calculator-tool.is-invalid .result-primary strong { color: var(--muted); }
.process-story.is-static { grid-template-columns: 1fr; }
.process-story.is-static .process-figure { display: none; }
.process-story.is-static .process-chapters { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; }
.process-story.is-static article { min-height: 0; padding-top: 0; padding-bottom: 50px; }
.process-story.is-static .process-keyframe { display: block; order: -1; width: 100%; margin-bottom: 25px; aspect-ratio: 16 / 9; object-fit: cover; }
@media (max-width: 1000px) {
  .ownership-layout, .demo-layout, .calculator-layout { gap: 45px; }
  .process-story { gap: 35px; }
  .demo-preview, .calculator-tool { padding: 24px; }
  .result-secondary > div { flex-direction: column; gap: 3px; }
}
@media (max-width: 760px) {
  .ownership-layout, .demo-layout, .calculator-layout { grid-template-columns: 1fr; gap: 30px; }
  .process-story { display: block; }
  .process-figure { z-index: 5; top: 0; margin-inline: -3px; padding: 8px 3px 15px; background: #eef0e9; }
  .process-film { aspect-ratio: 16 / 9; }
  .process-state { padding: 28px 16px 14px; }
  .process-state span { margin-bottom: 5px; font-size: 9px; }
  .process-state strong { font-size: 17px; }
  .process-figure figcaption { font-size: 9px; }
  .process-chapters article { min-height: 55svh; padding-block: 35px; }
  .process-chapters article h3 { font-size: 27px; }
  .process-chapters article > p { font-size: 16px; }
  .process-story.is-static .process-chapters { grid-template-columns: 1fr; }
  .process-story.is-static .process-keyframe { max-width: 550px; }
  .demo-layout { gap: 30px; }
  .field-pair { gap: 15px; }
  .calculator-copy > p:not(.eyebrow) { max-width: 60ch; }
  .calculator-tool { padding: 24px 20px; }
  .result-secondary > div { flex-direction: row; gap: 20px; }
  .result-secondary strong { flex-shrink: 1; text-align: right; }
  .calculator-copy h2 br { display: none; }
  .demo-preview { padding: 25px 20px; }
}
@media (max-width: 360px) {
  .field-pair { grid-template-columns: 1fr; }
  .result-secondary > div { flex-direction: column; gap: 3px; }
  .result-secondary strong { text-align: left; }
  .calculator-tool { padding: 22px 16px; }
}
@media (max-height: 500px) and (orientation: landscape) and (min-width: 600px) {
  .process-story:not(.is-static) { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; }
  .process-figure { top: 8px; }
  .process-chapters article { min-height: 80svh; }
}
@media (prefers-reduced-motion: reduce) {
  .process-story { display: block; }
  .process-figure { display: none; }
  .process-chapters article { min-height: 0; padding-top: 0; }
  .process-keyframe { display: block; width: 100%; max-width: 550px; margin-bottom: 25px; aspect-ratio: 16 / 9; object-fit: cover; }
}
