/* The approved welcome illustration uses a fixed night theme. App controls retain shared tokens. */
html.landing-theme{--design-active-color:#3678f6;--design-active-text:#fff}
body.landing{color-scheme:dark;--bg:#071827;--text:#f3f7ff;--muted:#c0d8ed;--soft:#0d2138;--line:#73849b;--design-active-color:#3678f6;--design-active-text:#fff;background:#071827;min-height:100svh;padding:0 20px;color:var(--text);position:relative;isolation:isolate}
body.landing:before{content:'';position:fixed;inset:0;z-index:-1;background:linear-gradient(#03132255 0%,#03132222 38%,#03132266 60%,#031322f5 85%),url('/landing-airport.webp') center 48%/cover no-repeat;pointer-events:none}
.landing-symbols{position:absolute;width:0;height:0;overflow:hidden}
.landing-main{max-width:560px;margin:auto;min-height:100svh;padding:calc(20px + env(safe-area-inset-top)) 0 calc(10px + env(safe-area-inset-bottom));display:flex;flex-direction:column;justify-content:center;gap:14px}
.landing-header{text-align:center}.landing-brand{display:inline-flex;align-items:center;gap:10px;color:var(--text);text-decoration:none;font-size:1.9rem;font-weight:750}.landing-brand img{border-radius:50%;object-fit:cover}.landing-header h1{font-size:clamp(2.15rem,6vw,3rem);line-height:1.1;letter-spacing:-.03em;margin:14px 0 0;text-shadow:0 2px 5px #0008}
.landing-brief{padding:14px;border:1px solid #8dabd2;border-radius:16px;background:linear-gradient(130deg,#152943eb,#061726ed);box-shadow:inset 0 1px 10px #76b5ff22,0 10px 30px #0005}
.landing-subtitle{font-size:.85rem;font-weight:500;line-height:1.3;margin:7px auto 0;max-width:15em;color:var(--muted);text-align:center}
.landing-route{display:grid;grid-template-columns:minmax(0,1fr) 30px minmax(0,1fr);align-items:center;padding:16px 6px 12px;border:1px solid #254360;border-radius:12px;background:#091e30c9;text-align:center;gap:5px}
.landing-route p{font-size:.7rem;color:var(--muted);margin:6px 0 0}.landing-arrow{font-size:1.8rem;color:#b9def5}
.landing-code{display:flex;justify-content:center;gap:3px;font-size:clamp(1.7rem,5vw,2.4rem);font-weight:750;line-height:1.2}.landing-code>span{display:inline-block;flex:0 0 1.12em;width:1.12em;text-align:center}
.landing-code .flap{height:1.2em;position:relative;perspective:350px;background:#10273b;border-radius:3px;box-shadow:0 2px 4px #0004}
.flap-half{position:absolute;left:0;width:100%;height:50%;overflow:hidden;background:#10273b;backface-visibility:hidden}.flap-half.top{top:0;border-radius:3px 3px 0 0}.flap-half.bottom{bottom:0;border-radius:0 0 3px 3px}.flap-half>span{display:block;line-height:1.2em;height:1.2em}.flap-half.bottom>span{transform:translateY(-50%)}.flap:after{content:'';position:absolute;left:0;right:0;top:50%;height:1px;background:#030d19;z-index:5}.flap-half.fall{transform-origin:bottom;z-index:3;animation:landing-fall .11s ease-in forwards}.flap-half.rise{transform-origin:top;transform:rotateX(90deg);z-index:4;animation:landing-rise .11s .11s ease-out forwards}@keyframes landing-fall{to{transform:rotateX(-90deg)}}@keyframes landing-rise{to{transform:rotateX(0)}}
.landing-row{margin-top:7px;border:1px solid #254360;border-radius:11px;background:#081e30c9}.landing-row summary{display:grid;grid-template-columns:28px minmax(0,1fr) 16px;gap:12px;align-items:center;padding:11px 12px;cursor:pointer;list-style:none;min-height:54px}.landing-row summary::-webkit-details-marker{display:none}.landing-row summary>span{font-size:.86rem}.landing-row small{display:block;font-size:.7rem;line-height:1.4;color:var(--muted);margin-top:3px}.landing-row svg{width:26px;height:26px;fill:none;stroke:#94dcfc;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.landing-row .landing-chevron{width:14px;height:14px}.landing-row[open] .landing-chevron{transform:rotate(90deg)}.landing-row>p{font-size:.85rem;line-height:1.5;color:var(--muted);margin:0;padding:0 14px 14px}.landing-row summary:focus-visible,.landing-footer a:focus-visible,.landing-brand:focus-visible{outline:2px solid #94dcfc;outline-offset:3px;border-radius:8px}
.landing-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:0;padding:0;list-style:none}.landing-steps li{display:flex;flex-direction:column;align-items:center;gap:8px}.landing-steps li+li{border-left:1px solid #75819e80}.landing-steps li>span{font-size:1rem;font-weight:500}.landing-steps svg{width:48px;height:48px;padding:9px;border:2px solid #92dcfa;border-radius:50%;fill:none;stroke:#92dcfa;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.landing-steps b{font-size:1rem;color:#fff;font-weight:750;line-height:1}
.landing-message{text-align:center;color:#bce8fc;font-size:1rem;line-height:1.45;margin:0}.landing-actions{display:grid;grid-template-columns:1fr;gap:9px}.landing-actions .btn{display:flex;align-items:center;justify-content:center;gap:10px;min-height:46px}.landing-actions .btn span{font-size:1.45rem;line-height:1}.landing-footer{text-align:center;font-size:.72rem;color:var(--muted)}.landing-footer nav{display:flex;gap:18px;justify-content:center;align-items:center}.landing-footer a{color:inherit;text-decoration:none;padding:10px 0}.landing-footer p{margin:4px 0 0}
@media(min-width:600px){.landing-main{gap:28px;max-width:590px}.landing-brief{margin:0 28px;padding:16px}.landing-actions{grid-template-columns:1fr 1fr}.landing-header h1{margin-top:16px}.landing-route{padding:18px 8px}.landing-row summary{padding:13px 14px}.landing-message{font-size:1.15rem}.landing-brand img{width:60px;height:60px}}
@media(max-height:760px) and (max-width:599px){.landing-main{gap:14px;padding-top:calc(16px + env(safe-area-inset-top))}.landing-brand img{width:42px;height:42px}.landing-brand{font-size:1.6rem}.landing-header h1{margin-top:10px}.landing-brief{padding:10px}.landing-route{padding:10px 4px}.landing-row summary{padding:9px 10px}.landing-steps svg{width:42px;height:42px}.landing-steps li{gap:5px}.landing-message{font-size:.9rem}}
@media(max-width:599px){.landing-main{gap:12px}.landing-brand img{width:48px;height:48px}.landing-row summary{padding-top:9px;padding-bottom:9px}}
@media(prefers-reduced-motion:reduce){.flap-half.fall,.flap-half.rise{animation:none}}
