/* Bieler Konzept: shared type, space and interaction system.
   Applied from Emil Kowalski's design engineering and Impeccable's typeset/layout guidance. */
:root{
 --space-tight:4px;--space-icon:8px;--space-label:12px;--space-related:16px;--space-group:24px;--space-block:32px;--space-section:48px;--space-major:64px;--space-chapter:96px;
 --page-gutter:clamp(24px,4.5vw,72px);--page-max:1280px;
 --type-label:12px;--type-small:14px;--type-body:16px;--type-lead:18px;
 --ease-response:cubic-bezier(.23,1,.32,1);--duration-press:140ms;--duration-ui:200ms;
 --border-subtle:color-mix(in srgb,var(--navy) 16%,transparent);
}
html{scrollbar-color:#89918f var(--paper)}
body{font-size:var(--type-body);text-rendering:optimizeLegibility}
.wrap,.nav-shell,.journey-layout{width:min(var(--page-max),calc(100% - var(--page-gutter)*2));margin-inline:auto}
h1,h2,h3{letter-spacing:-.04em;text-wrap:balance}h2{line-height:1.14}h3{letter-spacing:-.025em}
p{line-height:1.7;text-wrap:pretty}
.button{min-height:48px;padding:14px 20px;gap:24px;border-radius:3px;font-size:14px;line-height:1.4;transition:transform var(--duration-press) var(--ease-response),background-color var(--duration-ui) ease,box-shadow var(--duration-ui) ease}
.button:hover{transform:none}.button.primary{box-shadow:inset 0 1px 0 #ffffff30,0 2px 4px #0e1a2409}
.button:active{transform:scale(.975)}
.text-link{font-size:14px;line-height:1.5;min-height:44px;gap:16px;padding-block:10px;transition:border-color var(--duration-ui) ease}
.text-link:hover{gap:16px}.text-link span{transition:transform var(--duration-ui) var(--ease-response)}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid currentColor;outline-offset:5px;box-shadow:0 0 0 2px var(--paper)}
.nav-shell{gap:32px}.nav-shell nav{gap:24px}.nav-shell nav a{font-size:14px;padding-block:12px}
.nav-shell nav a:after{right:0;bottom:5px;transform:scaleX(0);transform-origin:left;transition:transform 180ms var(--ease-response)}
.nav-shell nav a:hover:after,.nav-shell nav a[aria-current]:after{transform:scaleX(1)}
.nav-cta{font-size:13px;min-height:44px;padding:12px 16px;gap:20px}
.eyebrow{font-size:12px;letter-spacing:.09em;line-height:1.5;gap:0;margin-bottom:24px}.eyebrow>span{display:none}
.section{padding-block:var(--space-chapter)}.section-heading{gap:48px;margin-bottom:48px}
.section-heading>p,.problem p,.steps p,.about-copy p,.service-problems p,.method-intro p,.principle p,.biography p{font-size:16px;line-height:1.7}
.about-preview{gap:64px}.about-copy h2{font-size:clamp(32px,3.25vw,48px)}.about-copy p{max-width:60ch}
.experience-tags{gap:12px;flex-wrap:wrap;margin-block:24px}.experience-tags span{font-size:12px;padding:8px 12px}
.service-hero{padding-block:64px}.service-hero h1{max-width:20ch;margin-bottom:32px}
.service-intro{gap:48px;align-items:flex-start}.service-intro p{font-size:18px;line-height:1.65;max-width:60ch}
.service-problems,.method-intro,.biography,.contact-layout{gap:64px}
.service-problems h2,.method-intro h2,.biography h2{font-size:clamp(30px,3vw,42px)}
.booking-grid{gap:24px;align-items:stretch}.booking-card{padding:32px;border-color:var(--border-subtle);border-radius:4px;gap:16px;transition:border-color 180ms ease,background-color 180ms ease}
.booking-card h3{margin:0;font-size:30px;line-height:1.2}.booking-card p{margin:0 0 8px;font-size:16px;line-height:1.65}.booking-card .mini-label{font-size:12px;letter-spacing:.08em;margin:0}.booking-card .text-link{margin-top:auto}
.booking-help{padding:32px;gap:24px}.booking-help p{font-size:14px}.booking-help .text-link{font-size:14px}
.offer-row{transition:background-color 180ms ease}.offer-row:hover{padding-inline:0}.offer-row p{font-size:15px}.offer-row .circle-arrow{transition:background-color 180ms ease,transform 180ms var(--ease-response)}
.contact-booking{padding:32px}.contact-big{overflow-wrap:anywhere}.calendar-bar,.calendar-support{font-size:14px}.calendar-consent p{font-size:16px;max-width:60ch}
.breadcrumb{display:inline-flex;align-items:center;min-height:44px;margin-bottom:32px;font-size:14px}.cta-note{font-size:12px;line-height:1.6}
footer{padding-top:48px}.footer-top{gap:48px;padding-bottom:40px}.footer-top a:not(.footer-brand){font-size:15px;line-height:1.6}.footer-top p{font-size:14px}.footer-top .muted,.footer-brand span{font-size:12px}.footer-bottom{font-size:12px;padding-block:20px;gap:24px}.footer-bottom a,.footer-bottom button{min-height:36px;display:inline-flex;align-items:center}.footer-bottom .motion-toggle{font-size:12px}
.reveal.pending{transform:translateY(8px);transition:opacity 220ms var(--ease-response),transform 220ms var(--ease-response)}
/* The flight is the signature motion; the interface stays calm. */
.scroll-line:after{animation:none}.scroll-invitation{margin-top:32px;font-size:12px;letter-spacing:0}
.flight-chapter{padding-block:48px;padding-right:24px}.chapter-copy{max-width:520px;width:100%}
.chapter-copy h1,.chapter-copy h2{letter-spacing:-.04em}.chapter-copy h2{font-size:clamp(34px,3.2vw,48px);line-height:1.14;margin-bottom:24px}
.flight-chapter.opening h1{font-size:min(64px,11.8cqi);line-height:1.12;margin-bottom:24px}.flight-chapter.opening h1 em{font-size:.95em}
.chapter-copy .hero-context{font-size:14px;line-height:1.5;font-weight:500;letter-spacing:0;text-transform:none;color:var(--flight-ink);margin:0 0 16px}
.chapter-copy .hero-intro{font-size:18px;line-height:1.65;max-width:48ch;margin-bottom:0}
.hero-actions{gap:24px;margin-top:32px}.hero-person{gap:12px;margin-top:32px}.hero-person strong{font-size:14px;margin-bottom:4px}.hero-person span{font-size:12px;line-height:1.5}.hero-person img{width:44px;height:44px}
.chapter-index{gap:16px;margin-bottom:24px;font-size:12px;letter-spacing:.08em}.chapter-index>span:first-child{font-size:24px;font-variant-numeric:tabular-nums}.chapter-index:after{max-width:96px}
.chapter-copy .eyebrow{font-size:12px;margin-bottom:16px;letter-spacing:.08em}
.chapter-problem{font-size:18px;line-height:1.65;max-width:50ch;margin-bottom:0}
.aviation-bridge{gap:0;margin-block:24px;padding:0 0 0 16px}.bridge-mark{display:none}.aviation-bridge p{font-size:16px;line-height:1.65;max-width:48ch}
.chapter-checks{gap:8px 20px;margin-block:24px}.chapter-checks li{font-size:13px;line-height:1.6;letter-spacing:0}
.chapter-outcome{font-size:16px;line-height:1.6;margin-bottom:8px;max-width:48ch}
.scene-heading{font-size:11px;letter-spacing:.06em;gap:16px}.scene-live{font-size:10px}.scene-live i{display:none}
.scene-caption{font-size:13px;line-height:1.5;padding-block:16px 8px;align-items:center}.scene-cross{display:none}
.route-track{height:64px}.route-track>span{font-size:10px;letter-spacing:.06em}.route-track svg{height:44px}
.flight-nav{gap:4px;padding-top:8px;margin-top:12px}.flight-nav a{min-height:52px;padding:8px 4px;gap:6px;border-radius:3px;transition:background-color 180ms ease}
.flight-nav span{font-size:11px;font-variant-numeric:tabular-nums}.flight-nav b{font-size:11px;line-height:1.35}
.flight-nav a[aria-current]{background:color-mix(in srgb,var(--flight-ink) 8%,transparent)}
.journey-controls{margin-top:8px;font-size:10px;letter-spacing:.02em}.journey-controls button{font-size:12px;min-height:36px;padding:8px 0}
.journey-hud .briefing-heading{display:none}.journey-hud .briefing-analogies{padding:16px 20px;max-width:none;border:1px solid #ffffff24;border-radius:4px;box-shadow:0 8px 24px #0e1a2410}
.journey-hud .analogy-head{font-size:10px;letter-spacing:.08em;margin-bottom:8px}.journey-hud .analogy-row{font-size:12px;line-height:1.5;gap:16px;padding-block:8px;transform:none}
.journey-hud .briefing-analogies p{font-size:11px;line-height:1.5;margin-top:12px}
.journey-hud .crew-label{padding:10px 12px;border-radius:3px;max-width:47%}.journey-hud .crew-label span{font-size:10px;line-height:1.4;letter-spacing:.05em}.journey-hud .crew-label b{font-size:12px;line-height:1.5}
.journey-hud .flight-coordinate,.journey-hud .cabin-tag,.journey-hud .arrival-tag{font-size:11px;letter-spacing:.06em;line-height:1.6;border-radius:3px}
.journey-hud .altitude{padding:12px 16px;border-radius:3px}.journey-hud .altitude>span{font-size:10px;letter-spacing:.06em}.journey-hud .altitude strong{font-size:16px;letter-spacing:.04em}
.journey-hud .cockpit-status,.journey-hud .crew-signal{font-size:10px;line-height:1.5;letter-spacing:.04em}.journey-hud .passenger-row{font-size:12px;line-height:1.5}
.journey-arrival{padding-block:80px}.journey-arrival p{font-size:18px;line-height:1.7;max-width:60ch}.journey-arrival .cta-note{font-size:13px}.journey-arrival h2{font-size:clamp(36px,4.4vw,60px);max-width:24ch;letter-spacing:-.04em}
@media(hover:hover) and (pointer:fine){.button:hover{transform:translateY(-1px)}.button:active{transform:scale(.975)}.text-link:hover span{transform:translate(2px,-2px)}.flight-nav a:hover{background:color-mix(in srgb,var(--flight-ink) 6%,transparent)}}
@media(hover:none){.button:hover,.text-link:hover span{transform:none}.offer-row:hover{background:transparent}.booking-card:hover{background:transparent;border-color:var(--border-subtle)}}
@media(min-width:761px){.journey-layout{grid-template-columns:1fr 1fr;gap:48px}.journey-backdrop .scene-overlay{left:calc(50% + 24px);right:var(--page-gutter);bottom:260px}.journey-backdrop .briefing-analogies{left:0;right:0;bottom:0}.flight-chapter.opening{padding-block:48px}.scene-sticky{padding-top:24px}}
@media(max-width:1000px) and (min-width:761px){.journey-layout{gap:32px}.journey-backdrop .scene-overlay{left:calc(50% + 16px)}.flight-chapter{padding-right:0}.chapter-problem,.chapter-copy .hero-intro{font-size:16px}.flight-nav b{font-size:10px}.journey-hud .analogy-row{font-size:11px}}
@media(max-width:800px){.nav-shell{gap:12px}.nav-shell nav{gap:12px;padding:16px var(--page-gutter) 24px;box-shadow:0 16px 24px #0e1a240c;transform-origin:top right}.nav-shell nav.open{gap:8px}.nav-shell nav a{font-size:18px;min-height:44px;width:100%}.nav-shell nav a:after{display:none}.menu-toggle{width:44px;height:44px;align-items:center;flex:none}.nav-cta{font-size:12px;padding:10px 12px;gap:12px}.nav-cta span{font-size:18px}.section{padding-block:64px}.about-preview,.service-problems,.method-intro,.biography,.contact-layout{gap:32px}.footer-top{gap:32px}.service-hero{padding-block:48px}.booking-card{padding:24px}.booking-help{padding:24px;gap:16px}.booking-help .text-link{font-size:13px}}
@media(max-width:760px){
 .journey-page{--flight-panel-height:clamp(340px,46svh,400px)}
 .journey-layout{width:100%;gap:0}.flight-journey .scene-column{height:var(--flight-panel-height);min-height:0;max-height:none}
 .journey-backdrop{clip-path:inset(0 0 calc(100% - var(--flight-panel-height)) 0)}
 .scene-sticky{width:calc(100% - var(--page-gutter)*2);padding:0}.scene-heading{font-size:10px;padding-top:8px;height:32px}
 .scene-caption{bottom:84px;font-size:11px;padding:0;line-height:1.4}.flight-nav{display:grid;grid-template-columns:repeat(3,1fr);height:76px;gap:4px;bottom:0;margin:0;padding:0}
 .flight-nav a{display:flex;flex-direction:row;align-items:center;gap:6px;min-height:36px;height:36px;border:1px solid color-mix(in srgb,var(--flight-ink) 16%,transparent);padding:6px 8px}
 .flight-nav a:before{display:none}.flight-nav a span,.flight-nav a b{position:static;width:auto;height:auto;overflow:visible;clip-path:none;font-size:10px;line-height:1.3}.flight-nav a[aria-current]{border-color:var(--flight-accent)}
 .journey-controls{top:0;right:0}.journey-controls button{font-size:10px;padding:8px 0;min-height:32px;background:transparent}
 .journey-backdrop .scene-overlay{left:var(--page-gutter);right:var(--page-gutter);top:36px;height:calc(var(--flight-panel-height) - 148px);min-height:0;max-height:none}
 .journey-hud .briefing-analogies{padding:8px 10px;left:0;right:0;bottom:0}.journey-hud .analogy-head{font-size:8px;margin-bottom:3px}.journey-hud .analogy-row{font-size:10px;padding-block:4px;gap:12px}.journey-hud .briefing-analogies p{font-size:9px;margin-top:6px}
 .journey-hud .crew-label{padding:6px 8px}.journey-hud .crew-label span{font-size:8px;margin-bottom:3px}.journey-hud .crew-label b{font-size:10px}.journey-hud .cockpit-status,.journey-hud .crew-signal{font-size:8px;padding:5px 8px}
 .journey-hud .flight-coordinate,.journey-hud .cabin-tag,.journey-hud .arrival-tag{font-size:9px;padding:5px 8px}.journey-hud .passenger-row{font-size:10px}.journey-hud .altitude{padding:8px 10px}.journey-hud .altitude>span{font-size:9px}.journey-hud .altitude strong{font-size:12px}
 .flight-chapter,.flight-chapter.opening{padding:40px var(--page-gutter)}.chapter-copy h2{font-size:34px}.flight-chapter.opening h1{font-size:clamp(32px,8.7vw,48px);letter-spacing:-.04em;line-height:1.12}.chapter-copy .hero-context{font-size:13px}.chapter-copy .hero-intro,.chapter-problem{font-size:16px;line-height:1.65}
 .chapter-index{font-size:11px;gap:12px;margin-bottom:20px}.chapter-copy .eyebrow{font-size:11px}.aviation-bridge p{font-size:15px;line-height:1.65}.chapter-checks li{font-size:12px}.chapter-outcome{font-size:15px}.hero-actions{gap:16px;flex-wrap:wrap}.hero-person span{font-size:11px}.hero-person strong{font-size:13px}.scroll-invitation{margin-top:24px;font-size:11px}
 .journey-arrival{padding-block:64px}.journey-arrival p{font-size:16px}.journey-arrival h2{font-size:36px}.flight-chapter:last-child{padding-bottom:calc(40svh + 100px)}
}
@media(max-width:380px){.brand{width:105px}.nav-shell{gap:8px}.nav-cta{font-size:11px;gap:8px;padding-inline:10px}.nav-cta span{display:none}.hero-actions .button{padding-inline:16px}.flight-nav a{padding:6px;gap:4px}.flight-nav a b{font-size:9px}}
@media(prefers-reduced-motion:no-preference){@starting-style{.nav-shell nav.open{opacity:0;transform:translateY(-4px)}}.nav-shell nav.open{transition:opacity 180ms var(--ease-response),transform 180ms var(--ease-response)}}
.motion-paused .reveal,.motion-paused .button,.motion-paused .text-link span{transition:none;transform:none}.keyboard-input *{transition-duration:0ms!important;animation-duration:0ms!important}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important}.button:hover,.button:active,.text-link:hover span{transform:none}}
/* Confirmation pass: consistent drawn icons and 44px mobile phase targets. */
.ui-icon{display:inline-block;width:18px;height:18px;vertical-align:-3px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;flex:none}
.button .ui-icon,.text-link .ui-icon{width:20px;height:20px}.text-link .ui-icon{transition:transform var(--duration-ui) var(--ease-response)}
.mini-label{color:var(--muted)}
@media(hover:hover) and (pointer:fine){.text-link:hover>.ui-icon{transform:translate(2px,-2px)}}
@media(max-width:760px){.flight-nav{height:92px}.flight-nav a{min-height:44px;height:44px}.scene-caption{bottom:100px}.journey-backdrop .scene-overlay{height:calc(var(--flight-panel-height) - 164px)}}
@media(prefers-reduced-motion:reduce){.text-link:hover>.ui-icon{transform:none}}

/* Editorial portrait: quiet studio image, open caption, shared alignment. */
.about-preview{align-items:center}.portrait,.about-hero .portrait{height:auto;overflow:visible;background:transparent}.portrait>img{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;object-position:50% 50%;background:#d9d7d2}.portrait::after{display:none}.portrait-caption{position:static;color:var(--navy);padding-top:20px;gap:6px;border-top:1px solid var(--line);margin-top:16px}.portrait-caption strong{font-size:20px}.portrait-caption span{font-size:14px;color:var(--muted)}.hero-person img{object-position:50% 20%}.about-copy>p{max-width:56ch}.footer-services{display:flex;flex-wrap:wrap;gap:16px 28px;padding-block:28px;border-bottom:1px solid #ffffff20;font-size:14px;line-height:1.6}.footer-services a:hover{text-decoration:underline;text-underline-offset:5px}.breadcrumbs{display:flex;flex-wrap:wrap;gap:12px;padding-top:24px;font-size:13px;color:var(--muted)}.breadcrumbs a{text-decoration:underline;text-underline-offset:4px}.faqs summary:focus-visible{outline:2px solid var(--gold);outline-offset:5px}.faqs p{line-height:1.75}@media(max-width:800px){.portrait-caption{padding-top:16px;margin-top:12px}.about-preview{gap:36px}.footer-services{gap:16px 24px;font-size:13px}}
.about-preview{grid-template-columns:minmax(0,480px) minmax(0,1fr);gap:clamp(48px,7vw,100px)}
@media(max-width:800px){.about-preview{grid-template-columns:1fr 1fr;gap:32px}}
@media(max-width:550px){.about-preview{grid-template-columns:1fr;gap:36px}}
