:root{
  --paper:#FBFAF7;--surface:#FFFFFF;--surface-2:#F2F0E9;
  --ink:#15232B;--ink-2:#44555F;--ink-3:#66757E;
  --line:#DDD9CF;--line-input:#7F7A6D;
  --brand:#0E5A5F;--brand-strong:#0A4448;--brand-tint:#E2EFEE;
  --link:#0E5A5F;--on-tint:#0A4448;
  --accent:#8F6118;--accent-tint:#F7EEDC;
  --focus:#B45309;
  --error:#B42318;--error-tint:#FEE4E2;
  --success:#067647;--success-tint:#DCFAE6;
  --footer-bg:#0F1F24;--footer-ink:#D9E2E4;--footer-link:#9FD3CF;--footer-muted:#9AAEB4;
  --federal:#0E5A5F;--federal-tint:#E2EFEE;
  --sarawak:#2E6B3F;--sarawak-tint:#E4F0E6;
  --sabah:#1E5A8A;--sabah-tint:#E2ECF5;
  --pvip:#5A3B6E;--pvip-tint:#EEE6F3;
  --derantau:#3D5A75;--derantau-tint:#E5EBF1;
  --family:#7A4B2A;--family-tint:#F3E8E0;
  --font-body:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --font-display:"Iowan Old Style","Palatino Linotype","Book Antiqua",Palatino,Georgia,"Times New Roman",serif;
  --font-mono:ui-monospace,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;
  --step--1:clamp(0.8125rem,0.78rem + 0.15vw,0.875rem);
  --step-0:clamp(1rem,0.95rem + 0.25vw,1.0625rem);
  --step-1:clamp(1.125rem,1.05rem + 0.4vw,1.25rem);
  --step-2:clamp(1.25rem,1.15rem + 0.6vw,1.5rem);
  --step-3:clamp(1.5rem,1.3rem + 1vw,1.875rem);
  --step-4:clamp(1.875rem,1.5rem + 1.8vw,2.5rem);
  --step-5:clamp(2.25rem,1.75rem + 2.5vw,3rem);
  --space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;
  --space-6:32px;--space-7:48px;--space-8:64px;--space-9:96px;
  --sections-nav-height:56px;
  color-scheme:light;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-body);font-size:var(--step-0);line-height:1.55;overflow-wrap:break-word}
img,svg{max-width:100%}
h1,h2,h3{font-family:var(--font-display);font-weight:600;line-height:1.15;text-wrap:balance}
h1{font-size:var(--step-4);letter-spacing:-0.01em;margin:0}
h2{font-size:var(--step-3);margin:0 0 var(--space-4)}
h3{font-size:var(--step-2);line-height:1.25;margin:0 0 var(--space-3)}
p{margin:0 0 var(--space-4)}
a{color:var(--link)}
:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
.wrap{max-width:1200px;margin:0 auto;padding:0 20px}
.prose{max-width:65ch}
.num,td,.stamp,dd,.src,.checked{font-variant-numeric:tabular-nums}
.icon{width:1.1em;height:1.1em;flex:0 0 auto}
.skip{position:absolute;left:16px;top:0;transform:translateY(-120%);background:var(--surface);color:var(--ink);padding:8px 12px;z-index:20}
.skip:focus{transform:none}
.vh{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
[hidden]{display:none !important}

header.site{background:var(--surface);border-bottom:1px solid var(--line)}
.header-inner{padding-top:12px;padding-bottom:4px}
.brand{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 16px}
.wordmark{font-family:var(--font-display);font-size:var(--step-2);color:var(--ink);text-decoration:none;letter-spacing:-0.01em}
.descriptor{margin:0;color:var(--ink-2);font-size:var(--step--1)}
nav.primary{display:flex;gap:8px;overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:none;padding:8px 0 12px}
nav.primary::-webkit-scrollbar{display:none}
nav.primary a{flex:0 0 auto;scroll-snap-align:start;color:var(--ink-2);text-decoration:none;padding:8px 14px;border-radius:999px;font-size:var(--step--1);min-height:44px;display:inline-flex;align-items:center}
nav.primary a[aria-current="page"]{background:var(--brand-tint);color:var(--on-tint);font-weight:600}

.hero{padding:var(--space-6) 0 var(--space-4)}
.rule{width:48px;height:3px;background:var(--accent);margin:12px 0 16px}
.lead{font-size:var(--step-1)}
.stamp{display:flex;gap:8px;align-items:flex-start;background:var(--accent-tint);color:var(--accent);font-family:var(--font-mono);font-size:var(--step--1);line-height:1.2;border-radius:6px;padding:8px 12px;max-width:70rem}
.notice{display:flex;gap:12px;align-items:flex-start;background:var(--surface-2);border-left:4px solid var(--brand);padding:16px 20px;border-radius:10px;color:var(--ink)}
.notice p{margin:0;max-width:65ch}
.notice .icon{color:var(--brand);margin-top:0.2em}

.layout{margin-bottom:var(--space-5);min-width:0}
.content{min-width:0}
.calc-panel,.signup-grid,.calc-panel>*,.signup-grid>*,form,fieldset,.field,.adorn,.choice,.choice-body{min-width:0}
nav.sections{position:sticky;top:0;z-index:5;background:var(--paper);display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding:8px 0;box-shadow:0 1px 0 var(--line)}
nav.sections::-webkit-scrollbar{display:none}
nav.sections a{flex:0 0 auto;color:var(--ink-2);text-decoration:none;padding:8px 14px;border-radius:999px;font-size:var(--step--1);min-height:44px;display:inline-flex;align-items:center}
nav.sections a:hover,nav.sections a:focus-visible{background:var(--surface-2);color:var(--ink)}
.block{margin-top:var(--space-7)}
.route{display:inline-flex;align-items:center;border-radius:999px;padding:2px 10px;font-size:var(--step--1);font-weight:600;line-height:1.4;font-family:var(--font-body)}
.route-federal{color:var(--federal);background:var(--federal-tint)}
.route-sarawak{color:var(--sarawak);background:var(--sarawak-tint)}
.route-sabah{color:var(--sabah);background:var(--sabah-tint)}
.route-pvip{color:var(--pvip);background:var(--pvip-tint)}
.route-derantau{color:var(--derantau);background:var(--derantau-tint)}
.route-family{color:var(--family);background:var(--family-tint)}
.kicker{margin:0 0 8px}
.tier-name{font-weight:600}

.entry{display:grid;gap:16px}
.entry article{border:1px solid var(--line);border-left:4px solid var(--line-input);border-radius:10px;background:var(--surface);padding:16px 20px}
.pill{display:inline-flex;align-items:center;min-height:44px;padding:8px 14px;border-radius:999px;background:var(--brand-tint);color:var(--on-tint);text-decoration:none;font-weight:600;font-size:var(--step--1);margin:4px 8px 0 0}

.swipe{font-size:var(--step--1);color:var(--ink-2);margin:0 0 8px}
.filters{border:0;padding:0;margin:0 0 12px;display:flex;flex-wrap:wrap;gap:4px 16px;min-width:0}
.filters legend{width:100%;font-weight:600;padding:0}
.filters label{display:inline-flex;align-items:center;gap:8px;min-height:44px}
.matrix-wrap{overflow-x:auto;max-width:100%;position:relative}
.matrix{border-collapse:separate;border-spacing:0;background:var(--surface)}
.matrix th,.matrix td{padding:12px 14px;border:1px solid var(--line);vertical-align:top;text-align:left}
.matrix td{min-width:240px;max-width:320px;background:var(--surface)}
.matrix th[scope="row"],.matrix thead th:first-child{position:sticky;left:0;background:var(--surface-2);min-width:140px;max-width:180px;z-index:1}
.matrix thead th{z-index:2}
.matrix thead th:first-child{z-index:3}
.col-federal{background:var(--federal-tint);box-shadow:inset 0 3px 0 var(--federal)}
.col-sarawak{background:var(--sarawak-tint);box-shadow:inset 0 3px 0 var(--sarawak)}
.col-sabah{background:var(--sabah-tint);box-shadow:inset 0 3px 0 var(--sabah)}
.col-pvip{background:var(--pvip-tint);box-shadow:inset 0 3px 0 var(--pvip)}
.col-derantau{background:var(--derantau-tint);box-shadow:inset 0 3px 0 var(--derantau)}
.col-family{background:var(--family-tint);box-shadow:inset 0 3px 0 var(--family)}
.colhead{font-weight:600}
.colnote{margin:8px 0 4px;font-weight:400;font-size:var(--step--1);color:var(--ink)}
.colhead .checked{color:var(--ink-2)}
.is-gap{background:var(--surface-2)}
.gap{margin:0}
.gap a{color:var(--ink-2)}
.plain{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:12px}
.plain li p{margin:0 0 4px}
.matrix-wrap::after{content:"";position:sticky;right:0;float:right;width:24px;height:100%;margin-left:-24px;pointer-events:none;background-image:linear-gradient(to right,transparent,var(--paper))}

dl.claims{margin:0;display:grid;gap:16px}
dl.claims dt,dl.claims dd{margin:0}
dl.claims dt{max-width:70ch}
a.src{display:inline-flex;flex-wrap:wrap;align-items:center;gap:6px;font-family:var(--font-mono);font-size:var(--step--1);line-height:1.3;background:var(--surface-2);color:var(--ink-2);border:1px solid var(--line);border-radius:999px;padding:4px 10px;text-decoration:none;min-height:32px}
a.src::before{content:"";display:inline-block;width:.85em;height:.85em;background:currentColor;-webkit-mask:url("icon-doc.svg?v=a48f2fc8") center/contain no-repeat;mask:url("icon-doc.svg?v=a48f2fc8") center/contain no-repeat}
.checked{color:var(--ink-3);font-family:var(--font-mono);font-size:var(--step--1)}

.tiers{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:8px}
.tier{flex:0 0 85%;scroll-snap-align:start;border:1px solid var(--line);border-radius:10px;background:var(--surface);padding:16px 20px}
.tier-head{display:flex;flex-direction:column;align-items:flex-start;gap:8px}
.route-cards{display:grid;gap:16px}
.route-card{border:1px solid var(--line);border-radius:10px;background:var(--surface);padding:16px 20px}
.card-foot{color:var(--ink-2);font-size:var(--step--1)}

.cta-band{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;background:var(--brand-tint);border-radius:10px;padding:16px 20px;margin-top:var(--space-5)}
.cta-band p{margin:0;max-width:65ch}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:12px 20px;background:var(--brand);color:#fff;border:1px solid var(--brand);border-radius:6px;font:inherit;font-weight:600;cursor:pointer;text-decoration:none}
.btn:hover{background:var(--brand-strong);border-color:var(--brand-strong);color:#fff}
.btn-secondary{background:transparent;color:var(--brand)}
.btn-secondary:hover{background:var(--brand-tint);color:var(--on-tint)}
.btn:disabled{opacity:.6;cursor:not-allowed}

.calc-panel{display:grid;gap:24px}
.choices,.pay,.filters{min-width:0}
.choices{border:0;padding:0;margin:0 0 16px;display:flex;flex-direction:column;gap:8px}
.choices legend,.pay legend,.field label{display:block;font-weight:600;margin-bottom:6px}
.group-label{margin:8px 0 0;font-size:var(--step--1);font-weight:600;color:var(--ink-2)}
.choice{display:flex;gap:12px;align-items:flex-start;border:1px solid var(--line-input);border-radius:10px;padding:10px 12px;background:var(--surface);min-height:44px}
.choice input{width:20px;height:20px;margin-top:4px;flex:0 0 auto}
.choice-quiet{background:var(--surface-2)}
.choice:has(input:checked){background:var(--brand-tint);border-color:var(--brand)}
.choice-name{font-weight:600}
.choice-note{display:block;color:var(--ink-2);font-size:var(--step--1);margin-top:4px}
.field{margin:0 0 16px}
.help{margin:6px 0 0;color:var(--ink-2);font-size:var(--step--1)}
.error{color:var(--error);font-size:var(--step--1);margin:0}
.error:not(:empty){margin-top:6px}
.error:not(:empty)::before{content:"\26A0\FE0E  "}
input,select,textarea{font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--line-input);border-radius:6px;padding:10px 12px;width:100%;max-width:100%;min-width:0;min-height:44px}
textarea{min-height:8rem;resize:vertical}
.adorn{display:flex;align-items:center;gap:8px;max-width:32rem;width:100%}
.adorn span{color:var(--ink-2)}
.adorn input{flex:1 1 auto;min-width:0;width:auto;max-width:none}
.pay{border:0;padding:0;margin:0 0 16px}
.pay label{display:flex;align-items:center;gap:12px;min-height:44px;font-weight:400}
.pay input{width:20px;height:20px;max-width:none}
.results{border:1px solid var(--line);border-radius:10px;padding:16px 20px;background:var(--surface)}
.results.is-empty{background:var(--surface-2);color:var(--ink-2)}
.results.is-empty p{margin:0}
.results-head{background:var(--brand-tint);margin:-16px -20px 16px;padding:12px 20px;border-radius:10px 10px 0 0;display:flex;gap:8px;align-items:center}
.figures{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 16px;margin:0 0 12px;min-width:0}
.figures dt{color:var(--ink-2);margin:0}
.figures dd{margin:0;text-align:right}
.figures .gross{border-top:1px solid var(--line);padding-top:12px;margin-top:4px}
dd.gross{font-family:var(--font-display);font-size:var(--step-5);line-height:1.1;color:var(--ink)}
dt.gross{font-size:var(--step-1);color:var(--ink);align-self:end}
.caveat{color:var(--ink-2);font-size:var(--step--1);max-width:65ch}
.gap-title{font-size:var(--step-2);font-family:var(--font-display);margin:0 0 8px}

.signup{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:20px}
.pitch ul{padding-left:1.2em}
.privacy{display:flex;gap:8px;align-items:flex-start;color:var(--ink-2);font-size:var(--step--1);margin:16px 0 0}
.privacy small{font-size:inherit}
.success{background:var(--success-tint);border-radius:10px;padding:16px 20px}
.success .icon{color:var(--success)}

footer.site{background:var(--footer-bg);color:var(--footer-ink);padding:var(--space-7) 0;margin-top:var(--space-8);font-size:var(--step--1)}
footer.site h2{color:var(--footer-ink);font-size:var(--step-2)}
footer.site a{color:var(--footer-link)}
footer.site .smallprint{color:var(--footer-muted)}
.sources{list-style:none;padding:0;margin:0}
.sources li{padding:8px 0;border-top:1px solid #234048;overflow-wrap:anywhere}

@media (max-width:24.99em){
  .descriptor{display:none}
}
@media (max-width:29.99em){
  .tiers{flex-direction:column;overflow:visible}
  .tier{flex:1 1 auto}
}
@media (min-width:40em){
  .wrap{padding-left:32px;padding-right:32px}
}
@media (min-width:48em){
  .entry{grid-template-columns:repeat(3,1fr)}
  .route-cards{grid-template-columns:1fr 1fr}
  dl.claims{grid-template-columns:minmax(0,1fr) auto;column-gap:24px;row-gap:14px;align-items:baseline}
  dl.claims dd{text-align:right}
}
@media (min-width:56.25em){
  .tiers{display:grid;grid-template-columns:repeat(3,1fr);overflow:visible}
  .tier{flex:none}
  .calc-panel,.signup-grid{grid-template-columns:5fr 7fr;gap:32px;align-items:start}
  .calc-panel{display:grid}
  .signup-grid{display:grid}
  .results{position:sticky;top:88px}
}
@media (min-width:64em){
  :root{--sections-nav-height:0px}
  .wrap{padding-left:40px;padding-right:40px}
  .header-inner{display:flex;align-items:center;gap:24px;min-height:72px;padding-top:0;padding-bottom:0}
  .brand{margin-right:auto}
  nav.primary{flex-wrap:wrap;overflow:visible;justify-content:flex-end;padding:8px 0}
  .block{margin-top:var(--space-8)}
  .layout{display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:32px;align-items:start}
  nav.sections{grid-column:2;grid-row:1;position:sticky;top:24px;flex-direction:column;overflow:visible;box-shadow:none;padding:0;background:transparent}
  .content{grid-column:1;grid-row:1}
  .swipe,.matrix-wrap::after{display:none}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{transition:none !important;scroll-behavior:auto !important}
}
a,button,input,select,textarea,.choice,.btn{transition:background-color .15s,border-color .15s}
@media (prefers-color-scheme:dark){
  :root{
    --paper:#101A1F;--surface:#172328;--surface-2:#223038;
    --ink:#E6EBED;--ink-2:#C5D0D4;--ink-3:#A9B8BE;
    --line:#314148;--line-input:#8AA0A6;
    --brand-tint:#16383C;--link:#8FDED8;--on-tint:#D7F4F2;
    --accent:#E4C48A;--accent-tint:#3A301C;--focus:#F5B15A;
    --error:#FFB4AB;--error-tint:#4A2320;
    --success:#6CE9A6;--success-tint:#12382A;
    --federal:#B7E4E1;--federal-tint:#12383B;
    --sarawak:#A9DDB6;--sarawak-tint:#16351F;
    --sabah:#A9CFF0;--sabah-tint:#14324A;
    --pvip:#D4C0E4;--pvip-tint:#2E2140;
    --derantau:#C5D4E4;--derantau-tint:#1C2C3C;
    --family:#E4C8B4;--family-tint:#3A2A1E;
    color-scheme:dark;
  }
  .btn{color:#fff}
  .btn-secondary{color:var(--link);border-color:var(--link)}
  a.src{color:var(--link)}
}
@media print{
  nav,.signup,.skip,.filters,.swipe,header.site{display:none !important}
  body{background:#fff;color:#000}
  a[href^="https://"]::after{content:" (" attr(href) ")"}
  .results{position:static}
}
