:root{color-scheme:light;--paper:#f4f9ff;--paper-strong:#eaf3ff;--ink:#123d5f;--ink-soft:#426b8a;--blue:#bfe0ff;--blue-deep:#7db8e6;--blue-accent:#4c8ecb;--line:rgba(18,61,95,.18);font-family:DM Sans,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none;text-rendering:optimizeLegibility}@view-transition{navigation:auto}::view-transition-old(root){animation:page-transition-out .16s ease both}::view-transition-new(root){animation:page-transition-in .38s cubic-bezier(.2,.7,.2,1) both}@keyframes page-transition-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes page-transition-out{to{opacity:0}}@keyframes content-enter{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px}a{color:inherit}.page-contact,.page-gallery,.page-home{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}.page-gallery,body:has(.page-gallery){background:linear-gradient(180deg,#f4f9ff,#edf6ff)}.wrap{width:min(1760px,calc(100% - clamp(40px, 7vw, 128px)));margin-inline:auto}.page-gallery>main.wrap{width:calc(100% - clamp(40px, 7vw, 128px));margin-inline:auto;flex:1 1}.page-contact>main.wrap{width:min(1760px,calc(100% - clamp(40px, 7vw, 128px)));margin-inline:auto;flex:1 1}.topbar{position:-webkit-sticky;position:sticky;top:0;z-index:20;flex-shrink:0;border-bottom:1px solid var(--line);background:rgba(244,249,255,.72);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);transition:background .2s ease,box-shadow .2s ease}.topbar .wrap{width:min(1760px,calc(100% - clamp(40px, 7vw, 128px)));min-height:76px;display:flex;align-items:center;justify-content:space-between;gap:20px;transition:min-height .2s ease}.topbar.scrolled,body.scrolled .topbar{box-shadow:0 8px 22px rgba(18,61,95,.06)}.topbar.scrolled .wrap,body.scrolled .topbar .wrap{min-height:36px}.wordmark{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;line-height:0;transition:transform .18s ease,opacity .18s ease;transform-origin:center}.wordmark:hover{opacity:.88}.wordmark:active,.wordmark:focus-visible{transform:scale(.94)}.wordmark img{display:block;height:30px;width:auto}.topbar nav{display:flex;gap:clamp(14px,2.4vw,32px)}.topbar nav a{display:inline-block;font-family:DM Sans,sans-serif;font-size:13px;font-weight:500;line-height:1.2;text-decoration:none;transition:transform .18s ease,opacity .18s ease,font-size .2s ease;transform-origin:center}.email:hover,.topbar nav a:hover{text-decoration-thickness:2px;text-underline-offset:4px}.topbar nav a:active,.topbar nav a:focus-visible{transform:scale(.96)}.site-footer{width:100%;margin-top:auto;flex-shrink:0;background:var(--ink);color:var(--paper);padding:clamp(8px,.75vw,14px) 0}.site-footer-inner{width:min(1760px,calc(100% - clamp(40px, 7vw, 128px)));margin:0 auto}.footer-copy{margin:0;color:inherit;font-size:clamp(11px,.8vw,15px)}.footer-logo{display:block;width:clamp(36px,2.9vw,56px);height:clamp(20px,1.5vw,30px);object-fit:contain}.footer-content{justify-content:space-between;gap:clamp(14px,2vw,32px)}.footer-brand,.footer-content{display:flex;align-items:center}.footer-brand{gap:clamp(6px,.65vw,12px)}.footer-socials{display:flex;align-items:center;gap:clamp(8px,.75vw,14px)}.footer-socials a{display:inline-flex;width:clamp(14px,1vw,20px);height:clamp(14px,1vw,20px);align-items:center;justify-content:center;color:var(--paper);transition:color .18s ease,transform .18s ease}.footer-socials a:focus-visible,.footer-socials a:hover{color:var(--blue-accent);transform:translateY(-2px)}.footer-socials svg{display:block;width:100%;height:100%;fill:currentColor}.page-contact main#contact,.page-home main#home{flex:1 1;min-height:0;display:flex;align-items:center}.page-contact h1,.page-contact h2,.page-contact p,.page-home h1,.page-home h2,.page-home p{margin-top:0}.page-contact .hero,.page-home .hero{width:100%;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);grid-gap:clamp(28px,4.5vw,100px);gap:clamp(28px,4.5vw,100px);align-items:center;padding-block:clamp(20px,3.5dvh,56px)}.page-contact .hero>div:first-child,.page-contact .portrait,.page-home .hero>div:first-child,.page-home .portrait,.page-home .project{animation:content-enter .45s both}.page-contact .hero>div:first-child,.page-home .hero>div:first-child{min-width:0}.page-contact .portrait,.page-home .portrait{animation-delay:.06s}.page-home .project:nth-child(2){animation-delay:.18s}.page-home .project:nth-child(3){animation-delay:.24s}.page-home .project:nth-child(4){animation-delay:.3s}.page-contact .eyebrow,.page-home .eyebrow{display:flex;align-items:center;gap:10px;margin:0 0 clamp(12px,2dvh,22px);font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.page-contact .eyebrow:before,.page-home .eyebrow:before{width:22px;height:2px;background:var(--blue-accent);content:""}.page-contact h1,.page-home h1{max-width:880px;margin-bottom:clamp(12px,1.8dvh,18px);font-family:Fraunces,Georgia,serif;font-size:clamp(40px,min(calc(5.2vw + 12px),10.5dvh),120px);font-weight:500;line-height:.92}.page-contact h1 em,.page-home h1 em{color:var(--blue-accent);font-weight:500}.page-contact .intro,.page-home .intro{max-width:680px;margin:0;color:var(--ink-soft);font-size:clamp(15px,min(calc(.65vw + 8px),2.3dvh),22px);line-height:1.6}.page-contact .intro{margin-bottom:clamp(18px,2.5dvh,30px)}.page-home .contact-link{display:inline-flex;align-items:center;gap:12px;padding:13px 17px;background:var(--ink);color:var(--paper);font-size:13px;font-weight:600;text-decoration:none;transition:background .2s ease,transform .2s ease}.page-home .contact-link:hover{background:var(--blue-accent);transform:translateY(-2px)}.page-home .contact-link span{font-size:17px;line-height:1}.page-contact .portrait,.page-home .portrait{position:relative;width:min(100%,720px,calc((100dvh - 210px) * 4 / 3));aspect-ratio:4/3;margin-inline:auto;margin-bottom:18px;margin-right:18px;background:var(--blue);isolation:isolate}.page-contact .portrait{width:min(100%,460px,calc((100dvh - 210px) * 3 / 4));aspect-ratio:3/4}.page-contact .portrait:before,.page-home .portrait:before{position:absolute;z-index:-1;inset:18px -18px -18px 18px;background:var(--blue-deep);content:""}.page-contact .portrait img,.page-home .portrait img{display:block;width:100%;height:100%;object-fit:cover}.page-contact .caption,.page-home .caption{position:absolute;right:12px;bottom:12px;padding:8px 11px;background:var(--paper);font-size:11px}@media (min-width:961px) and (min-height:520px){body:has(.page-contact),body:has(.page-home),html:has(.page-contact),html:has(.page-home){height:100dvh;overflow:hidden}.page-contact,.page-home{height:100dvh}}.page-gallery a{text-decoration:none}.page-gallery img{max-width:100%;display:block}.page-gallery main{padding-block:clamp(14px,1.8vw,26px) 64px}.page-gallery .gallery-stats-wrapper{margin-bottom:clamp(16px,2vw,26px);padding-bottom:clamp(12px,1.5vw,18px);border-bottom:1px solid var(--line);animation:content-enter .45s both}.page-gallery .gallery-stats{display:flex;flex-wrap:wrap;align-items:center;gap:clamp(10px,1.4vw,20px)}.page-gallery .stat-item{display:inline-flex;align-items:center;gap:8px;padding:7px 13px;border:1px solid var(--line);background:rgba(255,255,255,.55);color:var(--ink-soft);font-family:DM Sans,sans-serif;font-size:12px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease,background .18s ease}.page-gallery .stat-interactive{cursor:pointer}.page-gallery .stat-interactive:hover{transform:translateY(-2px);box-shadow:0 8px 18px rgba(18,61,95,.07)}.page-gallery .stat-ToggleIcon{font-size:11px;margin-left:2px;opacity:.75}.page-gallery .stat-item strong{font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.page-gallery .stat-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.page-gallery .stat-pictures{border-color:rgba(37,99,235,.28);background:rgba(219,234,254,.45);color:#1e40af}.page-gallery .stat-pictures strong{color:#1e3a8a}.page-gallery .stat-pictures .stat-dot{background:#2563eb}.page-gallery .stat-airlines{border-color:rgba(217,119,6,.32);background:rgba(254,243,199,.5);color:#92400e}.page-gallery .stat-airlines strong{color:#78350f}.page-gallery .stat-airlines .stat-dot{background:#d97706}.page-gallery .stat-airlines.is-active{border-color:#d97706;background:rgba(254,243,199,.85)}.page-gallery .stat-aircrafts{border-color:rgba(5,150,105,.3);background:rgba(209,250,229,.45);color:#065f46}.page-gallery .stat-aircrafts strong{color:#064e3b}.page-gallery .stat-aircrafts .stat-dot{background:#059669}.page-gallery .stat-aircrafts.is-active{border-color:#059669;background:rgba(209,250,229,.82)}.page-gallery .rankings-panel{margin-top:16px;padding:16px 18px;border:1px solid var(--line);background:rgba(255,255,255,.65);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:content-enter .25s ease both}.page-gallery .rankings-airlines{border-color:rgba(217,119,6,.3)}.page-gallery .rankings-aircrafts{border-color:rgba(5,150,105,.3)}.page-gallery .rankings-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;padding-bottom:10px;border-bottom:1px solid var(--line)}.page-gallery .rankings-title{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ink)}.page-gallery .rankings-close{border:none;background:transparent;color:var(--ink-soft);font-family:DM Sans,sans-serif;font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;padding:2px 6px}.page-gallery .rankings-close:hover{color:var(--ink)}.page-gallery .rankings-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,230px),1fr));grid-gap:10px 14px;gap:10px 14px}.page-gallery .rank-card{padding:8px 10px;border:1px solid rgba(18,61,95,.12);background:rgba(255,255,255,.7);display:flex;flex-direction:column;gap:6px}.page-gallery .rank-card-top{display:grid;grid-template-columns:34px minmax(0,1fr) 28px;align-items:center;grid-gap:10px;gap:10px;font-size:12px;line-height:1.2}.page-gallery .rank-number{display:inline-flex;align-items:center;justify-content:center;width:34px;height:20px;background:rgba(76,142,203,.12);color:var(--blue-accent);font-size:11px;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.page-gallery .rank-name{min-width:0;font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.page-gallery .rank-count{text-align:right;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--ink);font-size:12px}.page-gallery .rank-bar-track{width:100%;height:3px;background:rgba(18,61,95,.1);overflow:hidden}.page-gallery .rank-bar-fill{height:100%;background:var(--blue-accent)}.page-gallery .rankings-airlines .rank-bar-fill{background:#d97706}.page-gallery .rankings-aircrafts .rank-bar-fill{background:#059669}.page-gallery .gallery-filters{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 18px;margin-bottom:clamp(14px,1.8vw,22px);animation:content-enter .45s both}.page-gallery .filter-controls{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px}.page-gallery .filter-group{display:inline-flex;align-items:center;gap:8px}.page-gallery .filter-label{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft)}.page-gallery .filter-select{min-width:190px;height:36px;padding:0 28px 0 11px;border:1px solid var(--line);background-color:rgba(255,255,255,.7);color:var(--ink);font-family:DM Sans,sans-serif;font-size:13px;font-weight:500;cursor:pointer;transition:border-color .16s ease,background-color .16s ease}.page-gallery .filter-select:focus-visible,.page-gallery .filter-select:hover{border-color:var(--blue-accent);background-color:rgba(255,255,255,.95);outline:none}.page-gallery .filter-meta{display:inline-flex;align-items:center;gap:12px}.page-gallery .filter-count{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.page-gallery .filter-reset{height:30px;padding:0 11px;border:1px solid var(--line);background:rgba(255,255,255,.65);color:var(--ink);font-family:DM Sans,sans-serif;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:border-color .16s ease,background .16s ease,color .16s ease}.page-gallery .filter-reset:focus-visible,.page-gallery .filter-reset:hover{border-color:var(--blue-accent);background:var(--ink);color:var(--paper)}.page-gallery .filter-empty{padding:40px 20px;border:1px solid var(--line);background:rgba(255,255,255,.45);text-align:center}.page-gallery .filter-empty p{margin:0 0 14px;color:var(--ink-soft);font-size:14px}.page-gallery .alpha-nav{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:clamp(22px,2.6vw,34px);animation:content-enter .45s both}.page-gallery .alpha-link{display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:30px;padding:0 6px;border:1px solid var(--line);background:rgba(255,255,255,.55);color:var(--ink);font-family:DM Sans,sans-serif;font-size:12px;font-weight:600;letter-spacing:.04em;transition:transform .16s ease,border-color .16s ease,background .16s ease,color .16s ease}.page-gallery a.alpha-link:focus-visible,.page-gallery a.alpha-link:hover{transform:translateY(-2px);border-color:var(--blue-accent);background:rgba(191,224,255,.45);color:var(--ink)}.page-gallery .alpha-link.is-empty{opacity:.32;background:transparent;cursor:default;-webkit-user-select:none;-moz-user-select:none;user-select:none}.page-gallery .gallery-sections{display:flex;flex-direction:column;gap:clamp(28px,3.5vw,44px)}.page-gallery .letter-section{scroll-margin-top:76px}.page-gallery .letter-heading{display:flex;align-items:baseline;justify-content:space-between;gap:14px;margin-bottom:clamp(12px,1.5vw,18px);padding-bottom:8px;border-bottom:1px solid var(--line)}.page-gallery .letter-title{margin:0;font-family:Fraunces,Georgia,serif;font-size:clamp(24px,2.4vw,34px);font-weight:500;line-height:1;color:var(--ink)}.page-gallery .letter-meta{font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft)}.page-gallery .gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));grid-gap:clamp(12px,1.4vw,18px);gap:clamp(12px,1.4vw,18px)}.page-gallery .card{overflow:hidden;border:1px solid var(--line);background:rgba(255,255,255,.35);transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.page-gallery .card:hover{transform:translateY(-3px);border-color:rgba(76,142,203,.35);box-shadow:0 18px 32px rgba(18,61,95,.09)}.page-gallery .card img{width:100%;aspect-ratio:16/9;height:auto;object-fit:cover;display:block;-webkit-backface-visibility:hidden;backface-visibility:hidden;transform:translateZ(0);animation:content-enter .45s both}.page-gallery .card-body{display:flex;flex-direction:column;min-width:0;padding:12px 14px 14px;animation:content-enter .45s both}.page-gallery .card:nth-child(2) .card-body,.page-gallery .card:nth-child(2) img{animation-delay:.06s}.page-gallery .card:nth-child(3) .card-body,.page-gallery .card:nth-child(3) img{animation-delay:.12s}.page-gallery .card:nth-child(4) .card-body,.page-gallery .card:nth-child(4) img{animation-delay:.18s}.page-gallery .card:nth-child(5) .card-body,.page-gallery .card:nth-child(5) img{animation-delay:.24s}.page-gallery .card:nth-child(6) .card-body,.page-gallery .card:nth-child(6) img{animation-delay:.3s}.page-gallery .card-tag{display:inline-block;margin-bottom:8px;font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--blue-accent)}.page-gallery .card-header{display:flex;align-items:center;justify-content:flex-start;margin-bottom:0}.page-gallery .card-header-stack{display:grid;justify-items:start;grid-gap:4px;gap:4px}.page-gallery .card-subtitle{margin:0;color:var(--ink-soft);font-size:12px;font-weight:500;line-height:1.4}.page-gallery .card h2,.page-gallery .card h3{margin:0;font-family:DM Sans,sans-serif;font-size:20px;font-weight:600;line-height:1.08;flex:0 1 auto;overflow-wrap:anywhere}.page-gallery .card h2+p,.page-gallery .card h3+p{margin-top:0}.page-gallery .card-meta{display:none}.page-gallery .card p{margin:0;color:var(--ink-soft);font-size:14px;line-height:1.7}.page-gallery .info-button{display:none}.page-contact .contact-meta{display:flex;flex-wrap:wrap;align-items:center;gap:24px}.page-contact .email-link{display:inline-flex;align-items:center;gap:12px;padding-bottom:8px;border-bottom:1px solid var(--line);color:var(--ink);font-size:18px;font-weight:500;text-decoration:none;transition:color .2s ease,border-color .2s ease}.page-contact .email-link:hover{color:var(--blue-accent);border-color:var(--blue-accent)}.page-contact .email-link span{font-size:17px}.visitor-counter{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border:1px solid var(--line);background:rgba(255,255,255,.45);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft)}.visitor-dot{width:6px;height:6px;border-radius:50%;background:var(--blue-accent)}.visitor-label{font-weight:600}.visitor-value{color:var(--ink);font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}@media (max-width:960px){.page-contact>main.wrap,.page-gallery>main.wrap,.site-footer-inner,.topbar .wrap,.wrap{width:calc(100% - clamp(32px, 6vw, 64px))}.page-contact .hero,.page-home .hero{grid-template-columns:minmax(0,1fr);gap:clamp(28px,4dvh,44px);padding-block:clamp(28px,4.5dvh,56px)}.page-contact h1,.page-home h1{font-size:clamp(42px,8vw,76px)}.page-contact .intro,.page-home .intro{font-size:clamp(16px,2.2vw,20px)}.page-home .portrait{width:min(calc(100% - 18px),640px);margin-inline:0 auto}.page-contact .portrait{width:min(calc(100% - 18px),420px);margin-inline:0 auto}}@media (max-width:700px){.page-contact>main.wrap,.page-gallery>main.wrap,.site-footer-inner,.topbar .wrap,.wrap{width:min(calc(100% - 24px),540px)}.topbar,.topbar .wrap{min-height:44px;height:44px}.topbar .wrap{gap:10px}.topbar.scrolled,.topbar.scrolled .wrap,body.scrolled .topbar,body.scrolled .topbar .wrap{min-height:28px;height:28px}.wordmark img{height:16px}.topbar nav{gap:10px}.topbar nav a{font-size:12px}.topbar.scrolled nav a,body.scrolled .topbar nav a{font-size:10px}.page-contact .hero,.page-home .hero{grid-template-columns:minmax(0,1fr);gap:32px;padding-block:clamp(24px,4dvh,48px)}.page-contact h1,.page-home h1{font-size:clamp(38px,11vw,56px)}.page-contact .intro,.page-home .intro{font-size:15px;line-height:1.6}.page-contact .portrait,.page-home .portrait{width:calc(100% - 14px);min-width:0;margin-bottom:14px;margin-right:14px}.page-contact .portrait{width:min(calc(100% - 14px),360px)}.page-contact .portrait:before,.page-home .portrait:before{inset:14px -14px -14px 14px}.page-gallery main{padding-block:clamp(12px,3.5vw,18px) 48px}.page-gallery .filter-controls,.page-gallery .gallery-filters{flex-direction:column;align-items:stretch}.page-gallery .filter-group{display:grid;grid-template-columns:72px minmax(0,1fr);align-items:center}.page-gallery .filter-select{width:100%;min-width:0;height:40px;font-size:16px}.page-gallery .filter-meta{justify-content:space-between}.page-gallery .alpha-link{min-width:26px;height:26px;font-size:11px}.page-gallery .letter-section{scroll-margin-top:52px}.page-gallery .card img{aspect-ratio:16/9}.page-contact .email-link{font-size:16px}}@media (prefers-reduced-motion:reduce){*,:after,:before{scroll-behavior:auto!important;transition-duration:.01ms!important}.page-contact .hero>div:first-child,.page-contact .portrait,.page-gallery .alpha-nav,.page-gallery .card img,.page-gallery .card-body,.page-gallery .gallery-filters,.page-gallery .gallery-stats-wrapper,.page-home .hero>div:first-child,.page-home .portrait,.page-home .project{animation:none!important}::view-transition-new(root),::view-transition-old(root){animation:none!important}}