:root{--ink:#10243e;--muted:#627287;--blue:#0b64d8;--sky:#eef6ff;--line:#dce6f2;--green:#14875b;--amber:#9a6200;--white:#fff;--max:1180px}*{box-sizing:border-box}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:#f8fbff;line-height:1.58}a{color:inherit}.wrap{width:min(var(--max),calc(100% - 32px));margin:auto}.topbar{background:#071b33;color:#dce9f8;font-size:.86rem;padding:8px 0}.header{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}.headrow{display:flex;align-items:center;justify-content:space-between;min-height:70px;gap:22px}.brand{text-decoration:none;font-weight:900;font-size:1.35rem;letter-spacing:-.04em}.brand span{color:var(--blue)}nav{display:flex;gap:18px;font-size:.94rem}nav a{text-decoration:none;color:#31465f}.hero{padding:56px 0 40px;background:linear-gradient(180deg,#fff 0%,#eef6ff 100%)}.eyebrow{font-size:.8rem;text-transform:uppercase;letter-spacing:.12em;font-weight:800;color:var(--blue)}h1{font-size:clamp(2.35rem,6vw,5.1rem);line-height:.97;letter-spacing:-.055em;margin:10px 0 18px;max-width:900px}h2{font-size:clamp(1.65rem,3vw,2.45rem);letter-spacing:-.04em;margin:0 0 14px}h3{margin:0 0 8px}.lede{font-size:1.14rem;color:#42566e;max-width:790px}.hero-grid{display:grid;grid-template-columns:1.35fr .65fr;gap:28px;align-items:end}.code-card{background:#0b64d8;color:#fff;border-radius:24px;padding:28px;box-shadow:0 20px 50px rgba(11,100,216,.18)}.code{font-size:4.5rem;font-weight:950;line-height:1;letter-spacing:-.08em}.mini{font-size:.88rem;opacity:.85}.search{display:flex;gap:8px;background:#fff;border:1px solid var(--line);padding:8px;border-radius:16px;margin-top:28px;max-width:720px}.search input{flex:1;border:0;padding:10px 12px;font-size:1rem;outline:none}.search button,.button{background:var(--blue);color:#fff;border:0;border-radius:10px;padding:11px 16px;font-weight:800;text-decoration:none;display:inline-block}.button.secondary{background:#fff;color:var(--blue);border:1px solid var(--line)}.section{padding:48px 0}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:22px;text-decoration:none;box-shadow:0 8px 28px rgba(30,60,90,.05)}.card:hover{transform:translateY(-2px);transition:.2s}.icon{font-size:1.65rem;margin-bottom:14px}.card p,.muted{color:var(--muted);margin-bottom:0}.split{display:grid;grid-template-columns:1fr 1fr;gap:24px}.panel{background:#fff;border:1px solid var(--line);border-radius:20px;padding:26px}.facts{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.fact{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px}.fact strong{font-size:1.35rem;display:block}.breadcrumb{font-size:.88rem;color:var(--muted);margin:24px 0}.article{max-width:850px}.article h1{font-size:clamp(2.25rem,5vw,4rem)}.article h2{margin-top:36px}.article p,.article li{font-size:1.03rem;color:#31465f}.article li{margin-bottom:7px}.notice{background:#fff8e8;border:1px solid #f0d9a4;padding:14px 16px;border-radius:12px;color:#735117;margin:18px 0}.tip{background:#eef8f4;border:1px solid #cbe8dc;padding:14px 16px;border-radius:12px;color:#285b48;margin:18px 0}.toc{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px 20px;margin:24px 0}.toc a{color:var(--blue)}.table-wrap{overflow:auto}.data-table{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden}.data-table th,.data-table td{text-align:left;padding:12px;border-bottom:1px solid var(--line);vertical-align:top}.data-table th{font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.status{font-weight:800}.on{color:var(--green)}.soon{color:var(--amber)}.badge{display:inline-block;background:var(--sky);color:var(--blue);font-weight:800;font-size:.82rem;padding:7px 10px;border-radius:999px}.source{font-size:.82rem;color:var(--muted);margin-top:20px}.footer{background:#071b33;color:#c8d7e8;padding:42px 0;margin-top:50px}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:30px}.footer a{color:#c8d7e8}.updated{font-size:.84rem;color:var(--muted)}@media(max-width:800px){nav{display:none}.hero-grid,.split,.footer-grid{grid-template-columns:1fr}.grid{grid-template-columns:1fr 1fr}.facts{grid-template-columns:1fr 1fr}.code-card{margin-top:10px}}@media(max-width:520px){.grid{grid-template-columns:1fr}.facts{grid-template-columns:1fr}h1{font-size:3rem}}.article{padding-top:42px;padding-bottom:64px;max-width:980px}.article .lede{font-size:1.2rem;max-width:760px}.article section{margin:38px 0}.fact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px}.fact{padding:18px;border:1px solid #dce5ef;border-radius:14px}.fact span{display:block;font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;opacity:.65}.fact strong{font-size:1.25rem}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px}.card{display:block;padding:18px;border:1px solid #dce5ef;border-radius:14px;text-decoration:none;color:inherit}.card:hover{border-color:#7396bb}.button{display:inline-block;padding:10px 15px;border-radius:9px;text-decoration:none;margin:4px 4px 4px 0}.secondary{background:transparent;border:1px solid currentColor}details{padding:14px 0;border-bottom:1px solid #dce5ef}summary{font-weight:700;cursor:pointer}

/* v0.4 quality pass */
.site-header{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}.site-header .nav{display:flex;align-items:center;justify-content:space-between;min-height:70px;gap:22px}.site-header .brand span{color:var(--blue)}footer:not(.footer){background:#071b33;color:#c8d7e8;padding:42px 0;margin-top:50px}footer:not(.footer) a{color:#c8d7e8}.article a:not(.button){color:#075abf;text-underline-offset:2px}.card h3{font-size:1.08rem}.breadcrumb a{color:#526c88}.source-note{border-left:3px solid var(--blue);padding-left:14px;color:var(--muted);font-size:.92rem}.updated-pill{display:inline-flex;align-items:center;gap:7px;background:#eef8f4;color:#285b48;border:1px solid #cbe8dc;border-radius:999px;padding:6px 10px;font-size:.8rem;font-weight:700}@media(max-width:800px){.site-header nav{display:none}.headrow{min-height:62px}.hero{padding-top:40px}.section{padding:36px 0}}

.source-box{margin-top:36px;padding:18px 20px;border:1px solid #d6e1ec;border-radius:14px;background:#f7fafc}.source-box p{margin:6px 0 8px}.source-box ul{margin:0;padding-left:20px}.source-box a{text-decoration:underline}.updated{display:inline-block;padding:6px 10px;border-radius:999px;background:#edf4f8;color:#3c566d;font-size:.82rem;font-weight:700}


/* v0.6 launch/search & monetisation layer */
.utility-strip{background:#eef6ff;border-bottom:1px solid var(--line);font-size:.84rem}.utility-strip .wrap{display:flex;gap:16px;align-items:center;justify-content:space-between;padding:8px 0}.utility-strip a{color:#075abf;text-decoration:none}.commercial-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:22px;box-shadow:0 8px 28px rgba(30,60,90,.05)}.commercial-card .kicker{font-size:.76rem;text-transform:uppercase;letter-spacing:.09em;color:var(--muted);font-weight:800}.commercial-card .price{font-size:1.35rem;font-weight:900}.affiliate-note{font-size:.8rem;color:var(--muted);margin-top:9px}.compare-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.route-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:22px 0}.route-meta div{padding:14px;border:1px solid var(--line);border-radius:13px;background:#fff}.route-meta span{display:block;font-size:.76rem;text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}.route-meta strong{display:block;margin-top:4px}.faq-block{margin:34px 0}.faq-block details{background:#fff;padding:14px 16px;margin:8px 0;border:1px solid var(--line);border-radius:12px}.trust-row{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0}.trust-pill{font-size:.8rem;font-weight:700;background:#f1f6fb;border:1px solid var(--line);padding:7px 10px;border-radius:999px}.cta-band{background:#071b33;color:#fff;border-radius:22px;padding:26px;margin:32px 0}.cta-band p{color:#d6e2ef}.cta-band .button.secondary{background:#fff;color:#0b64d8}.disclosure{font-size:.82rem;color:#617389;border-top:1px solid var(--line);padding-top:12px;margin-top:18px}.keyword-chip{display:inline-block;border:1px solid var(--line);border-radius:999px;padding:5px 9px;margin:3px;font-size:.78rem;background:#fff}.live-dot{width:8px;height:8px;background:#14875b;border-radius:50%;display:inline-block;margin-right:6px}.flight-board-shell{background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden}.flight-board-head{padding:16px 18px;background:#f4f8fc;display:flex;justify-content:space-between;gap:16px;align-items:center}.flight-board-body{padding:0 18px}.monetise-placeholder{border:1px dashed #aabed1;border-radius:14px;padding:18px;background:#fbfdff}.legal{max-width:850px}.legal h2{margin-top:32px}.route-guide h2{margin-top:34px}.route-guide h3{margin-top:24px}.route-guide p{max-width:820px}.source-list{font-size:.9rem}.source-list li{margin-bottom:8px}.small-table{font-size:.93rem}.ad-slot{display:none}
@media(max-width:800px){.compare-grid,.route-meta{grid-template-columns:1fr}.utility-strip .wrap{align-items:flex-start;flex-direction:column;gap:2px}.commercial-card{padding:18px}}

/* v0.7 weather + aviation enthusiast layer */
.weather-shell{background:#071b33;color:#fff;border-radius:22px;padding:24px;margin:26px 0}.weather-current{display:flex;justify-content:space-between;gap:24px;align-items:center}.weather-current>div:first-child{display:grid;gap:4px}.weather-temp{font-size:3.2rem;line-height:1}.weather-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:8px 20px;color:#d8e5f3}.weather-days{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;margin-top:22px}.weather-day{background:rgba(255,255,255,.08);border-radius:12px;padding:12px;display:grid;gap:4px}.weather-day span,.weather-day small{color:#d8e5f3}.weather-day b{font-size:1.05rem}.avgeek-band{background:#071b33;color:#fff;border-radius:22px;padding:26px}.avgeek-band p{color:#d6e2ef}.avgeek-band .card{color:var(--ink)}@media(max-width:900px){.weather-days{grid-template-columns:repeat(4,1fr)}}@media(max-width:600px){.weather-current{align-items:flex-start;flex-direction:column}.weather-days{grid-template-columns:1fr 1fr}.weather-stats{grid-template-columns:1fr}}
