/* ==========================================================================
   gta6ratings.com · round 6 "Rating Passport"
   Travel documents of a sunny coast: warm paper with a fine guilloche
   security pattern, stamps in coral, turquoise and ink blue, embossed serif
   headings and typewriter-style mono for data. The only light site of the six.
   No real emblems, no real passport layout, no board marks.
   Prefix: ag-  (tokens --ag-*, classes .ag-*). Not shared with any other site.
   ========================================================================== *//* fraunces-vietnamese-opsz-normal */
@font-face {
  font-family: 'Fraunces Variable';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url(/_astro/fraunces-vietnamese-opsz-normal.Czevyj-6.woff2) format('woff2-variations');
  unicode-range: U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;
}

/* fraunces-latin-ext-opsz-normal */
@font-face {
  font-family: 'Fraunces Variable';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url(/_astro/fraunces-latin-ext-opsz-normal.CJcjJNj7.woff2) format('woff2-variations');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

/* fraunces-latin-opsz-normal */
@font-face {
  font-family: 'Fraunces Variable';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url(/_astro/fraunces-latin-opsz-normal.DihXLNYH.woff2) format('woff2-variations');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
/* hanken-grotesk-cyrillic-ext-wght-normal */
@font-face {
  font-family: 'Hanken Grotesk Variable';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url(data:font/woff2;base64,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) format('woff2-variations');
  unicode-range: U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;
}

/* hanken-grotesk-vietnamese-wght-normal */
@font-face {
  font-family: 'Hanken Grotesk Variable';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url(/_astro/hanken-grotesk-vietnamese-wght-normal.CHiFlh_0.woff2) format('woff2-variations');
  unicode-range: U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;
}

/* hanken-grotesk-latin-ext-wght-normal */
@font-face {
  font-family: 'Hanken Grotesk Variable';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url(/_astro/hanken-grotesk-latin-ext-wght-normal.Dg-wlmqe.woff2) format('woff2-variations');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

/* hanken-grotesk-latin-wght-normal */
@font-face {
  font-family: 'Hanken Grotesk Variable';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url(/_astro/hanken-grotesk-latin-wght-normal.CaVRRdDk.woff2) format('woff2-variations');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
/* dm-mono-latin-400-normal */
@font-face {
  font-family: 'DM Mono';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(/_astro/dm-mono-latin-400-normal.4GdczIuU.woff2) format('woff2'), url(/_astro/dm-mono-latin-400-normal.-0xN8mdc.woff) format('woff');
}
/* dm-mono-latin-500-normal */
@font-face {
  font-family: 'DM Mono';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url(/_astro/dm-mono-latin-500-normal.DRMDZjhP.woff2) format('woff2'), url(/_astro/dm-mono-latin-500-normal.CN8Miw6E.woff) format('woff');
}
@view-transition { navigation: auto; }

/* Hue of the security pattern; shifts with scrolling (shimmer). */
@property --ag-hue { syntax: '<number>'; inherits: true; initial-value: 190; }

:root {
  color-scheme: light;
  --ag-paper: #F7F2E8;
  --ag-paper-2: #EEE6D5;
  --ag-card: #FFFDF8;
  --ag-line: #DCD0B8;
  --ag-line-2: #A89A7E;
  --ag-ink: #1B2A4A;
  --ag-ink-2: #4C566E;
  --ag-blue: #2B4C9B;
  --ag-teal: #0A6E69;
  --ag-coral: #B13A26;
  --ag-sand: #E9C98F;

  --ag-serif: 'Fraunces Variable', 'Iowan Old Style', Georgia, serif;
  --ag-sans: 'Hanken Grotesk Variable', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --ag-mono: 'DM Mono', ui-monospace, 'Cascadia Mono', Consolas, monospace;

  --ag-radius: 14px;
  --ag-shadow: 0 1px 0 #fff inset, 0 1px 2px rgb(27 42 74 / .08), 0 10px 30px -12px rgb(27 42 74 / .22);
  --ag-emboss: 0 1px 0 rgb(255 255 255 / .9), 0 -1px 0 rgb(27 42 74 / .14);
  /* Moiré of two ring sets: the paper's own fine security print */
  --ag-moire:
    repeating-radial-gradient(circle at 0 100%, transparent 0 7px, rgb(10 110 105 / .055) 7px 8px),
    repeating-radial-gradient(circle at 100% 0, transparent 0 9px, rgb(177 58 38 / .045) 9px 10px);
  --ag-ease: cubic-bezier(.2, .8, .2, 1);
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: 1rem; }
body {
  margin: 0;
  background: var(--ag-paper);
  color: var(--ag-ink);
  font: 400 1.0625rem/1.6 var(--ag-sans);
  overflow-x: clip;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}
main { flex: 1; }
img, svg { max-width: 100%; }
a { color: var(--ag-blue); text-underline-offset: .18em; text-decoration-thickness: 1px; }
a:hover { text-decoration-thickness: 2px; }
:focus-visible { outline: 3px solid var(--ag-blue); outline-offset: 3px; border-radius: 6px; }
h1, h2, h3 { font-family: var(--ag-serif); font-weight: 600; line-height: 1.1; letter-spacing: -.01em; text-wrap: balance; text-shadow: var(--ag-emboss); margin: 0 0 .5em; }
h1 { font-size: clamp(2.3rem, 1.4rem + 3.6vw, 4.2rem); font-variation-settings: 'opsz' 144; }
h2 { font-size: clamp(1.6rem, 1.2rem + 1.4vw, 2.3rem); font-variation-settings: 'opsz' 96; }
h3 { font-size: 1.3rem; }
p { margin: 0 0 1em; }

.ag-wrap { width: min(100% - 2rem, 72rem); margin-inline: auto; }
.ag-mono { font-family: var(--ag-mono); font-size: .86em; letter-spacing: .02em; }
.ag-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.ag-skip { position: absolute; left: -999px; top: .5rem; z-index: 50; background: var(--ag-ink); color: var(--ag-paper); padding: .7rem 1.1rem; border-radius: 999px; font-weight: 700; }
.ag-skip:focus { left: 1rem; }

/* ---------- Security pattern ---------- */
.ag-guilloche { display: block; width: 100%; height: 100%; pointer-events: none; }
.ag-guilloche path { fill: none; stroke-width: 1; vector-effect: non-scaling-stroke; }
.ag-g1 { stroke: oklch(55% 0.09 var(--ag-hue) / .34); }
.ag-g2 { stroke: oklch(60% 0.12 calc(var(--ag-hue) - 160) / .26); }
.ag-g3 { stroke: oklch(45% 0.1 calc(var(--ag-hue) + 70) / .22); }

/* ---------- Header ---------- */
.ag-header { position: relative; z-index: 3; border-bottom: 1px solid var(--ag-line); background: var(--ag-paper); }
.ag-header::after { content: ''; position: absolute; inset: auto 0 -4px; height: 3px; background: repeating-linear-gradient(90deg, var(--ag-coral) 0 18px, transparent 18px 24px, var(--ag-teal) 24px 42px, transparent 42px 48px, var(--ag-blue) 48px 66px, transparent 66px 72px); opacity: .55; }
.ag-header__row { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 4.25rem; flex-wrap: wrap; }
.ag-wordmark { display: inline-flex; align-items: center; gap: .65rem; color: var(--ag-ink); text-decoration: none; min-height: 44px; }
.ag-wordmark__mark { width: 2.4rem; height: 2.4rem; flex: none; color: var(--ag-ink); }
.ag-wordmark b { display: block; font: 600 1.05rem/1.1 var(--ag-serif); }
.ag-wordmark small { display: block; font: 500 .74rem/1.3 var(--ag-mono); color: var(--ag-coral); text-transform: uppercase; letter-spacing: .08em; }
.ag-nav ul { display: flex; gap: .25rem; list-style: none; margin: 0; padding: 0; }
.ag-nav a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 .85rem; border-radius: 999px; color: var(--ag-ink); text-decoration: none; font-weight: 600; }
.ag-nav a:hover { background: var(--ag-paper-2); }
.ag-nav a[aria-current='page'] { background: var(--ag-ink); color: var(--ag-paper); }
@media (max-width: 40rem) {
  .ag-header__row { gap: 0; padding-block: .4rem .3rem; }
  .ag-nav { width: 100%; }
  .ag-nav ul { margin-inline: -.55rem; }
  .ag-nav a { padding: 0 .55rem; }
}

/* ---------- Buttons ---------- */
.ag-btn { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; min-height: 52px; padding: 0 1.5rem; border: 0; border-radius: 999px; background: var(--ag-ink); color: var(--ag-paper); font: 700 1.05rem/1 var(--ag-sans); text-decoration: none; cursor: pointer; box-shadow: 0 2px 0 rgb(0 0 0 / .25), 0 8px 18px -8px rgb(27 42 74 / .6); transition: transform .15s var(--ag-ease), background .15s; }
.ag-btn:hover { background: var(--ag-blue); }
.ag-btn:active { transform: translateY(2px); box-shadow: 0 0 0 rgb(0 0 0 / .25); }
.ag-btn--ghost { background: transparent; color: var(--ag-ink); box-shadow: inset 0 0 0 1.5px var(--ag-ink); min-height: 48px; font-size: 1rem; }
.ag-btn--ghost:hover { background: var(--ag-ink); color: var(--ag-paper); }
.ag-round { width: 48px; height: 48px; border-radius: 50%; border: 1.5px solid var(--ag-ink); background: var(--ag-card); color: var(--ag-ink); font: 600 1.2rem/1 var(--ag-sans); cursor: pointer; }
.ag-round:hover { background: var(--ag-ink); color: var(--ag-paper); }
.ag-round:disabled { opacity: .35; cursor: default; background: var(--ag-card); color: var(--ag-ink); }

/* ---------- Core function: the checker ---------- */
.ag-check { position: relative; isolation: isolate; overflow: clip; padding: clamp(1.5rem, 4vw, 3.5rem) 0 clamp(2rem, 5vw, 4rem); border-bottom: 1px solid var(--ag-line); background: radial-gradient(ellipse 70% 60% at 85% 10%, rgb(233 201 143 / .35), transparent 70%), var(--ag-paper); }
.ag-check__pattern { position: absolute; inset: 0; z-index: -1; height: 100%; -webkit-mask-image: radial-gradient(circle at var(--ag-mx, 70%) var(--ag-my, 35%), #000 0, rgb(0 0 0 / .55) 35%, rgb(0 0 0 / .3) 75%); mask-image: radial-gradient(circle at var(--ag-mx, 70%) var(--ag-my, 35%), #000 0, rgb(0 0 0 / .55) 35%, rgb(0 0 0 / .3) 75%); }
.ag-check__grid { display: grid; gap: clamp(1.5rem, 4vw, 3.5rem); align-items: center; }
@media (min-width: 60rem) { .ag-check__grid { grid-template-columns: 1.05fr .95fr; } }
@media (max-width: 59.99rem) { .ag-check__pattern { height: 15rem; bottom: auto; opacity: .8; } }
.ag-check h1 { margin-bottom: .25em; }
.ag-check__sub { font-size: 1.15rem; color: var(--ag-ink-2); margin-bottom: 1.5rem; }

.ag-form { display: grid; gap: 1.25rem; }
.ag-form[hidden] { display: none; }
.ag-form fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }
.ag-form legend { font: 500 .8rem/1.2 var(--ag-mono); text-transform: uppercase; letter-spacing: .12em; color: var(--ag-ink-2); margin-bottom: .6rem; padding: 0; }
.ag-form legend label { cursor: pointer; }
.ag-regions { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 10.5rem), 1fr)); gap: .5rem; }
@media (max-width: 30rem) { .ag-regions { grid-template-columns: 1fr 1fr; } }
.ag-region { position: relative; display: flex; align-items: center; gap: .55rem; min-height: 48px; padding: .55rem .9rem; border-radius: 12px; background: var(--ag-card); box-shadow: inset 0 0 0 1.5px var(--ag-line); cursor: pointer; font-weight: 600; line-height: 1.2; transition: box-shadow .15s, background .15s, color .15s; }
.ag-region input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.ag-region::before { content: ''; flex: none; width: 1rem; height: 1rem; border-radius: 50%; box-shadow: inset 0 0 0 1.5px currentColor; }
.ag-region:hover { box-shadow: inset 0 0 0 1.5px var(--ag-ink); }
.ag-region:has(input:checked) { background: var(--ag-ink); color: var(--ag-paper); box-shadow: inset 0 0 0 1.5px var(--ag-ink); }
.ag-region:has(input:checked)::before { background: var(--ag-sand); box-shadow: inset 0 0 0 3px var(--ag-ink), 0 0 0 1.5px var(--ag-sand); }
.ag-region:has(input:focus-visible) { outline: 3px solid var(--ag-blue); outline-offset: 3px; }

.ag-age { display: flex; align-items: center; gap: .5rem; }
.ag-age__btn { width: 52px; height: 52px; border-radius: 50%; border: 0; background: var(--ag-card); box-shadow: inset 0 0 0 1.5px var(--ag-ink); color: var(--ag-ink); font: 500 1.6rem/1 var(--ag-sans); cursor: pointer; flex: none; }
.ag-age__btn:hover { background: var(--ag-ink); color: var(--ag-paper); }
.ag-age input { width: 5.5rem; height: 60px; text-align: center; font: 500 2rem/1 var(--ag-mono); color: var(--ag-ink); background: var(--ag-card); border: 0; border-bottom: 2px solid var(--ag-ink); border-radius: 10px 10px 0 0; -moz-appearance: textfield; appearance: textfield; }
.ag-age input::-webkit-inner-spin-button, .ag-age input::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.ag-age__unit { font-family: var(--ag-mono); color: var(--ag-ink-2); }
.ag-form .ag-btn { justify-self: start; min-width: 12rem; }
.ag-note { padding: 1rem 1.2rem; border-radius: var(--ag-radius); background: var(--ag-card); box-shadow: inset 0 0 0 1.5px var(--ag-line); }

/* The answer: a document card that receives the stamp */
.ag-check__answer { position: relative; display: grid; gap: 1rem; justify-items: center; padding: clamp(1.25rem, 3vw, 2rem); border-radius: 18px; background: var(--ag-moire), var(--ag-card); box-shadow: var(--ag-shadow); }
.ag-check__answer::before { content: ''; position: absolute; inset: 10px; border-radius: 12px; border: 1px dashed var(--ag-line-2); opacity: .5; pointer-events: none; }
html:not(.ag-js) .ag-check__answer { display: none; }
.ag-result { display: grid; gap: 1.1rem; justify-items: center; width: 100%; }
.ag-legal { margin: 0; font: 400 .82rem/1.4 var(--ag-mono); color: var(--ag-ink-2); text-align: center; }

/* Stamp. Ink colour per outcome; slight rotation; worn ink texture. */
.ag-stamp { --ag-sc: var(--ag-blue); position: relative; display: grid; place-content: center; justify-items: center; gap: .35rem; width: min(19rem, 70vw); aspect-ratio: 1; border-radius: 50%; color: var(--ag-sc); text-align: center; transform: rotate(-8deg); }
.ag-stamp--cleared { --ag-sc: var(--ag-teal); }
.ag-stamp--not-cleared { --ag-sc: var(--ag-coral); }
.ag-stamp--parents { --ag-sc: var(--ag-blue); }
.ag-stamp__ring { position: absolute; inset: 0; border-radius: 50%; border: 5px solid currentColor; box-shadow: inset 0 0 0 6px var(--ag-card), inset 0 0 0 8px currentColor; }
.ag-stamp__ring::after { content: ''; position: absolute; inset: 24px; border-radius: 50%; border: 1.5px dashed currentColor; opacity: .7; }
.ag-stamp__word, .ag-stamp__meta, .ag-stamp__ring { -webkit-mask: var(--ag-wear) center / 260px 260px; mask: var(--ag-wear) center / 260px 260px; }
.ag-stamp { --ag-wear: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='260' height='260'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' seed='7'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1.1 0 0 0 1.45'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }
.ag-stamp__word { position: relative; font: 700 clamp(1.9rem, 1.2rem + 2.4vw, 2.6rem)/1 var(--ag-serif); text-transform: uppercase; letter-spacing: .04em; font-variation-settings: 'opsz' 144; max-width: 13rem; padding: .35rem .2rem; border-block: 3px solid currentColor; }
.ag-stamp__meta { position: relative; font: 500 .95rem/1.2 var(--ag-mono); letter-spacing: .06em; text-transform: uppercase; }
.ag-stamp__over { position: absolute; right: -6%; bottom: 10%; padding: .35rem .6rem; border: 2px dashed var(--ag-ink); border-radius: 6px; background: rgb(255 253 248 / .85); color: var(--ag-ink); font: 500 .8rem/1 var(--ag-mono); letter-spacing: .14em; text-transform: uppercase; transform: rotate(14deg); }
.ag-stamp--empty { color: var(--ag-line-2); border: 2px dashed currentColor; transform: none; font: 500 .9rem/1 var(--ag-mono); text-transform: uppercase; letter-spacing: .14em; }
.ag-stamp--empty span { color: var(--ag-ink-2); }

/* Boarding pass with the board, reason, date and source */
.ag-pass { position: relative; width: 100%; max-width: 28rem; padding: 1rem 1.25rem 1rem 1.6rem; border-radius: 12px; background: var(--ag-paper); box-shadow: inset 0 0 0 1px var(--ag-line); -webkit-mask: radial-gradient(circle 9px at 0 50%, #0000 97%, #000) left / 51% 100% no-repeat, radial-gradient(circle 9px at 100% 50%, #0000 97%, #000) right / 51% 100% no-repeat; mask: radial-gradient(circle 9px at 0 50%, #0000 97%, #000) left / 51% 100% no-repeat, radial-gradient(circle 9px at 100% 50%, #0000 97%, #000) right / 51% 100% no-repeat; }
.ag-pass::before { content: ''; position: absolute; left: .7rem; top: .8rem; bottom: .8rem; border-left: 2px dotted var(--ag-line-2); }
.ag-pass p { margin: 0; }
.ag-pass__board b { font: 500 1.05rem/1.3 var(--ag-mono); letter-spacing: .03em; }
.ag-pass__board span { display: block; font-size: .85rem; color: var(--ag-ink-2); }
.ag-pass__why { margin-block: .5rem !important; font-size: 1.02rem; line-height: 1.45; }
.ag-pass__data { font: 400 .85rem/1.4 var(--ag-mono); color: var(--ag-ink-2); }
.ag-pass__data a { display: inline-flex; align-items: center; min-height: 44px; }

/* ---------- The passport ---------- */
.ag-passport { padding-block: clamp(2.5rem, 6vw, 4.5rem) 1rem; }
.ag-passport__head { display: flex; align-items: end; justify-content: space-between; gap: 1rem; flex-wrap: wrap; margin-bottom: 1rem; }
.ag-passport__head h2 { margin: 0; }
.ag-book__nav { display: flex; align-items: center; gap: .6rem; }
.ag-book__nav[hidden] { display: none; }
.ag-book__count { min-width: 3.5rem; text-align: center; font: 500 1rem/1 var(--ag-mono); }
.ag-pages { list-style: none; margin: 0; padding: 0; display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 16rem), 1fr)); }
.ag-page { position: relative; display: flex; flex-direction: column; gap: .4rem; padding: 1.4rem 1.4rem 1.1rem; border-radius: 6px 16px 16px 6px; background: var(--ag-moire), var(--ag-card); box-shadow: var(--ag-shadow), inset 6px 0 10px -6px rgb(27 42 74 / .25); }
.ag-page::before { content: ''; position: absolute; inset: 8px; border: 1px solid var(--ag-line); border-radius: 4px 12px 12px 4px; pointer-events: none; }
.ag-page__top { display: flex; justify-content: space-between; color: var(--ag-ink-2); text-transform: uppercase; letter-spacing: .1em; }
.ag-page__board { margin: .4rem 0 0; }
.ag-page__board b { font: 600 1.35rem/1.1 var(--ag-serif); }
.ag-page__board span { display: block; font-size: .85rem; color: var(--ag-ink-2); }
.ag-page__rating { margin: .3rem 0 0; font: 700 clamp(3.4rem, 2.6rem + 3vw, 4.6rem)/1 var(--ag-serif); font-variation-settings: 'opsz' 144; color: var(--ag-blue); text-shadow: var(--ag-emboss); }
.ag-plus { font-family: var(--ag-sans); font-weight: 800; font-size: .6em; vertical-align: .55em; margin-left: .04em; }
.ag-page__label { margin: 0 0 .6rem; font-weight: 600; }
.ag-rules { list-style: none; margin: 0 0 .6rem; padding: .7rem 0 0; border-top: 1px dashed var(--ag-line-2); display: grid; gap: .5rem; }
.ag-rules li { display: flex; align-items: center; justify-content: space-between; gap: .75rem; }
.ag-mini { --ag-sc: var(--ag-blue); display: inline-block; padding: .3rem .6rem; border: 2px solid var(--ag-sc); border-radius: 6px; color: var(--ag-sc); font: 700 .8rem/1 var(--ag-sans); text-transform: uppercase; letter-spacing: .08em; transform: rotate(-3deg); background: rgb(255 253 248 / .7); }
.ag-mini--cleared { --ag-sc: var(--ag-teal); }
.ag-mini--not-cleared { --ag-sc: var(--ag-coral); }
.ag-mini--parents { --ag-sc: var(--ag-blue); }
.ag-page__foot { margin-top: auto; display: flex; flex-wrap: wrap; align-items: center; gap: .2rem .8rem; padding-top: .5rem; font-size: .9rem; }
.ag-page__foot a { display: inline-flex; align-items: center; min-height: 44px; font-weight: 600; }
.ag-chips { list-style: none; margin: 0 0 .5rem; padding: 0; display: flex; flex-wrap: wrap; gap: .35rem; }
.ag-chips li { padding: .2rem .55rem; border-radius: 999px; background: var(--ag-paper-2); font-size: .8rem; }

/* Book mode (JS): one page at a time, swipe or flip */
.ag-pages.ag-book { display: flex; gap: 1.25rem; overflow-x: auto; scroll-snap-type: x mandatory; overscroll-behavior-x: contain; position: relative; padding: .75rem max(0px, calc(50% - 12.5rem)) 1.5rem; scrollbar-width: thin; scrollbar-color: var(--ag-line-2) transparent; border-radius: 18px; background: linear-gradient(90deg, transparent calc(50% - 14px), rgb(27 42 74 / .07) 50%, transparent calc(50% + 14px)), var(--ag-paper-2); box-shadow: inset 0 0 0 1px var(--ag-line); }
.ag-pages.ag-book .ag-page { flex: 0 0 min(25rem, 86%); scroll-snap-align: center; transform-origin: center; }
@media (min-width: 60rem) {
  /* An open passport: two pages, the spine in the middle stays put while pages flip across it */
  .ag-pages.ag-book { gap: 2.5rem; padding: 1.25rem 1.25rem 1.75rem; scroll-padding-inline: 1.25rem; }
  .ag-pages.ag-book .ag-page { flex-basis: calc(50% - 1.25rem - 1.25rem); scroll-snap-align: start; }
}
.ag-pages.ag-book:focus-visible { outline-offset: 4px; }

/* ---------- Travel advice ---------- */
.ag-advice { padding-block: clamp(2rem, 5vw, 3.5rem); }
.ag-cards { list-style: none; margin: 0; padding: 0; display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); }
.ag-card { position: relative; display: grid; gap: .5rem; align-content: start; min-height: 9rem; height: 100%; padding: 1.3rem 1.3rem 1.2rem 1.5rem; border-radius: 14px; background: var(--ag-card); box-shadow: var(--ag-shadow); color: var(--ag-ink); text-decoration: none; transition: transform .2s var(--ag-ease), box-shadow .2s; }
.ag-card::before { content: ''; position: absolute; left: 0; top: 14px; bottom: 14px; width: 5px; border-radius: 0 4px 4px 0; background: var(--ag-coral); }
.ag-cards li:nth-child(2) .ag-card::before { background: var(--ag-teal); }
.ag-cards li:nth-child(3) .ag-card::before { background: var(--ag-blue); }
.ag-card b { font: 600 1.3rem/1.2 var(--ag-serif); }
.ag-card .ag-mono:last-child { color: var(--ag-blue); margin-top: auto; }
.ag-card__n { color: var(--ag-ink-2); }
.ag-card:hover { transform: translateY(-3px) rotate(-.4deg); box-shadow: var(--ag-shadow), 0 16px 30px -18px rgb(27 42 74 / .5); }
.ag-aside { padding-bottom: 2.5rem; }
.ag-aside a { display: inline-flex; align-items: center; min-height: 44px; font-weight: 600; }

/* ---------- Sub-page header ---------- */
.ag-head { position: relative; isolation: isolate; overflow: clip; padding: clamp(1.5rem, 4vw, 3rem) 0 clamp(1.75rem, 4vw, 3rem); border-bottom: 1px solid var(--ag-line); }
.ag-head__pattern { position: absolute; inset: 0; z-index: -1; height: 100%; opacity: .8; }
.ag-head__inner { display: grid; gap: .5rem; justify-items: start; }
.ag-head__kicker { color: var(--ag-coral); text-transform: uppercase; letter-spacing: .12em; margin: 0; }
.ag-head h1 { margin: .2em 0 0; max-width: 20ch; }
.ag-answer { font: 500 clamp(1.2rem, 1rem + .8vw, 1.55rem)/1.35 var(--ag-serif); max-width: 40ch; margin: .25rem 0 .25rem; }
.ag-meta { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1rem; color: var(--ag-ink-2); margin: 0 0 .5rem; }
.ag-crumbs ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; font: 400 .85rem/1 var(--ag-mono); }
.ag-crumbs li + li::before { content: '/'; margin: 0 .5rem; color: var(--ag-line-2); }
.ag-crumbs a { display: inline-flex; align-items: center; min-height: 44px; color: var(--ag-ink-2); }
.ag-crumbs [aria-current] { display: inline-flex; align-items: center; min-height: 44px; }

/* ---------- Sections and prose ---------- */
.ag-sec { padding-block: clamp(1.5rem, 4vw, 2.5rem); }
.ag-sec__title { display: flex; align-items: baseline; justify-content: space-between; flex-wrap: wrap; gap: .5rem 1rem; margin-bottom: 1rem; }
.ag-sec__title h2 { margin: 0; }
.ag-sec__title a { display: inline-flex; align-items: center; min-height: 44px; font-weight: 600; }
.ag-article { display: grid; gap: 2rem; align-items: start; }
@media (min-width: 62rem) { .ag-article { grid-template-columns: minmax(0, 1fr) 17rem; } .ag-article aside { position: sticky; top: 1.25rem; } }
.ag-panel { padding: clamp(1.25rem, 3.5vw, 2.5rem); border-radius: 18px; background: var(--ag-card); box-shadow: var(--ag-shadow); }
.ag-prose { max-width: 70ch; }
.ag-prose > :first-child { margin-top: 0; }
.ag-prose h2 { margin-top: 1.8em; font-size: clamp(1.45rem, 1.2rem + 1vw, 1.9rem); }
.ag-prose h3 { margin-top: 1.5em; }
.ag-prose ul, .ag-prose ol { padding-left: 1.3rem; }
.ag-prose li { margin-bottom: .35em; }
.ag-prose table { width: 100%; border-collapse: collapse; margin: 1.2rem 0; font-size: .95rem; display: block; overflow-x: auto; }
.ag-prose th, .ag-prose td { text-align: left; padding: .55rem .7rem; border-bottom: 1px solid var(--ag-line); vertical-align: top; }
.ag-prose th { font: 500 .8rem/1.3 var(--ag-mono); text-transform: uppercase; letter-spacing: .06em; color: var(--ag-ink-2); }
.ag-prose blockquote { margin: 1.2rem 0; padding: .8rem 1.2rem; border-left: 4px solid var(--ag-teal); background: var(--ag-paper); border-radius: 0 12px 12px 0; }
.ag-notice { background: rgb(233 201 143 / .3); box-shadow: inset 0 0 0 1.5px var(--ag-sand); padding: 1rem 1.2rem; margin: 1.2rem 0; border-radius: 12px; }
.ag-placeholder { background: var(--ag-sand); color: var(--ag-ink); padding: 0 .35em; border-radius: 4px; font-family: var(--ag-mono); font-size: .92em; }

/* Status chips */
.ag-chip { display: inline-flex; align-items: center; gap: .35rem; padding: .25rem .65rem; border-radius: 999px; font: 500 .78rem/1.2 var(--ag-mono); letter-spacing: .03em; white-space: nowrap; box-shadow: inset 0 0 0 1.5px currentColor; background: var(--ag-card); }
.ag-chip::before { content: ''; width: .5rem; height: .5rem; border-radius: 50%; background: currentColor; }
.ag-chip--official { color: var(--ag-teal); }
.ag-chip--reviews { color: var(--ag-blue); }
.ag-chip--community { color: #6A4A8C; }
.ag-chip--unverified { color: var(--ag-coral); }
.ag-chip--unverified::before { background: transparent; box-shadow: inset 0 0 0 1.5px currentColor; }

/* Contents box */
.ag-toc { padding: 1rem 1.2rem; border-radius: 14px; background: var(--ag-card); box-shadow: var(--ag-shadow); }
.ag-toc summary { font: 500 .8rem/1 var(--ag-mono); text-transform: uppercase; letter-spacing: .1em; cursor: pointer; min-height: 44px; display: flex; align-items: center; }
.ag-toc ol { margin: .4rem 0 0; padding-left: 1.2rem; font-size: .95rem; }
.ag-toc li { margin-bottom: .2rem; }
.ag-toc a { display: inline-block; padding: .3rem 0; }
.ag-toc__bar { height: 3px; border-radius: 3px; background: var(--ag-paper-2); overflow: hidden; }
.ag-toc__bar span { display: block; height: 100%; background: var(--ag-teal); transform-origin: left; transform: scaleX(0); }

/* FAQ, more, sources */
.ag-faq { display: grid; gap: 1.5rem; }
.ag-faq h2 { font-size: clamp(1.4rem, 1.2rem + .8vw, 1.8rem); }
.ag-faq details { border-bottom: 1px solid var(--ag-line); }
.ag-faq summary { cursor: pointer; padding: .9rem 0; min-height: 44px; font-weight: 600; font-size: 1.05rem; }
.ag-faq details p { margin: 0 0 1rem; max-width: 70ch; }
.ag-more { border-radius: 14px; background: var(--ag-card); box-shadow: var(--ag-shadow); }
.ag-more > summary { cursor: pointer; display: flex; align-items: center; min-height: 52px; padding: 0 1.2rem; font-weight: 700; list-style: none; }
.ag-more > summary::-webkit-details-marker { display: none; }
.ag-more > summary::after { content: '+'; margin-left: auto; font: 500 1.3rem/1 var(--ag-mono); }
.ag-more[open] > summary::after { content: '–'; }
.ag-more > div { padding: 0 1.2rem 1.2rem; }
.ag-sources table { width: 100%; border-collapse: collapse; font-size: .92rem; }
.ag-sources th, .ag-sources td { text-align: left; padding: .55rem .5rem; border-bottom: 1px solid var(--ag-line); vertical-align: top; }
.ag-sources th { font: 500 .78rem/1.2 var(--ag-mono); text-transform: uppercase; color: var(--ag-ink-2); }
.ag-sources small { display: block; color: var(--ag-ink-2); font-family: var(--ag-mono); font-size: .75rem; word-break: break-all; }

/* Ink scale */
.ag-ink { display: grid; gap: .5rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 21rem), 1fr)); align-items: start; }
.ag-ink details { border-radius: 12px; background: var(--ag-card); box-shadow: inset 0 0 0 1.5px var(--ag-line); }
.ag-ink summary { display: grid; grid-template-columns: 1fr auto; gap: .2rem .8rem; align-items: center; min-height: 52px; padding: .7rem 1rem; cursor: pointer; list-style: none; }
.ag-ink summary::-webkit-details-marker { display: none; }
.ag-ink__level { display: inline-flex; gap: 3px; }
.ag-ink__level i { width: 14px; height: 14px; border-radius: 50%; box-shadow: inset 0 0 0 1.5px var(--ag-line-2); }
.ag-ink__level i.ag-on { background: var(--ag-coral); box-shadow: none; }
.ag-ink__level i.ag-on:nth-child(1) { opacity: .35; }
.ag-ink__level i.ag-on:nth-child(2) { opacity: .5; }
.ag-ink__level i.ag-on:nth-child(3) { opacity: .68; }
.ag-ink__level i.ag-on:nth-child(4) { opacity: .84; }
.ag-ink__word { grid-column: 1 / -1; color: var(--ag-ink-2); }
.ag-ink details > div { padding: 0 1rem 1rem; font-size: .95rem; }
.ag-ink details > div p { margin: 0 0 .5rem; }

/* Rating matrix */
.ag-matrix-scroll { overflow-x: auto; }
.ag-matrix { width: 100%; border-collapse: collapse; font-size: .92rem; }
.ag-matrix caption { text-align: left; color: var(--ag-ink-2); padding-bottom: .6rem; font-size: .9rem; }
.ag-matrix th, .ag-matrix td { text-align: left; vertical-align: top; padding: .6rem .5rem; border-bottom: 1px solid var(--ag-line); }
.ag-matrix thead th { font: 500 .75rem/1.2 var(--ag-mono); text-transform: uppercase; color: var(--ag-ink-2); }
.ag-matrix .ag-num { font: 700 1.5rem/1 var(--ag-serif); color: var(--ag-blue); white-space: nowrap; }
@media (max-width: 48rem) {
  .ag-matrix thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  .ag-matrix tr { display: block; padding: .6rem 0; border-bottom: 2px solid var(--ag-line); }
  .ag-matrix th, .ag-matrix td { display: grid; grid-template-columns: 8rem 1fr; gap: .5rem; border: 0; padding: .3rem 0; }
  .ag-matrix th::before, .ag-matrix td::before { content: attr(data-label); font: 500 .75rem/1.4 var(--ag-mono); text-transform: uppercase; color: var(--ag-ink-2); }
}

/* Change log */
.ag-changelog { list-style: none; padding: 0; margin: 1rem 0; display: grid; gap: .8rem; }
.ag-changelog li { display: grid; gap: .2rem; padding-left: 1rem; border-left: 3px solid var(--ag-line); }
.ag-changelog time { font: 500 .8rem/1.3 var(--ag-mono); color: var(--ag-ink-2); }

/* Related */
.ag-related { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .6rem; }
.ag-related a { display: inline-flex; align-items: center; gap: .4rem; min-height: 48px; padding: 0 1.2rem; border-radius: 999px; background: var(--ag-card); box-shadow: inset 0 0 0 1.5px var(--ag-ink); color: var(--ag-ink); text-decoration: none; font-weight: 600; }
.ag-related a:hover { background: var(--ag-ink); color: var(--ag-paper); }

/* Slots and embeds (unchanged behaviour) */
.ag-slot { display: none; }
.ag-slots-on .ag-slot { display: block; min-block-size: 280px; margin: 2rem 0; border-radius: 14px; background: var(--ag-paper-2); }
.ag-c2l { background: var(--ag-paper-2); border-radius: 14px; aspect-ratio: 16 / 9; display: grid; place-items: center; text-align: center; padding: 1.2rem; margin: 1.6rem 0; }
.ag-c2l button { font: 700 1rem/1 var(--ag-sans); min-height: 48px; padding: 0 1.4rem; background: var(--ag-ink); color: var(--ag-paper); border: 0; border-radius: 999px; cursor: pointer; }
.ag-c2l iframe { width: 100%; height: 100%; border: 0; border-radius: 14px; }

/* ---------- Footer ---------- */
.ag-footer { position: relative; isolation: isolate; overflow: clip; margin-top: 2rem; background: var(--ag-paper-2); border-top: 1px solid var(--ag-line); }
.ag-footer__pattern { position: absolute; inset: 0; z-index: -1; height: 100%; opacity: .7; }
.ag-footer__body { padding: 2rem 0 2.5rem; }
.ag-footer__row { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .5rem 1.5rem; }
.ag-footer__links { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0 1.2rem; }
.ag-footer a { display: inline-flex; align-items: center; min-height: 44px; color: var(--ag-ink); }
.ag-footer__legend { display: flex; flex-wrap: wrap; gap: .4rem; margin: 1rem 0; }
.ag-footer__small { font: 400 .85rem/1.5 var(--ag-mono); color: var(--ag-ink-2); margin: 0 0 .4rem; }
.ag-footer__disclaimer { font-size: .85rem; color: var(--ag-ink-2); max-width: 70ch; margin: 0; }

/* ==========================================================================
   Motion. All of it switches off with prefers-reduced-motion.
   ========================================================================== */
@media (prefers-reduced-motion: no-preference) {
  /* 1. The stamp drops and leaves an impression */
  .ag-stamp.ag-new { animation: ag-drop .55s cubic-bezier(.3, 1.35, .45, 1) both; }
  .ag-stamp.ag-new::after { content: ''; position: absolute; inset: -12%; border-radius: 50%; background: radial-gradient(closest-side, color-mix(in oklab, var(--ag-sc) 20%, transparent), transparent); animation: ag-press .8s .28s ease-out both; pointer-events: none; }
  .ag-check__answer:has(.ag-stamp.ag-new) { animation: ag-thud .32s .3s ease-out; }
  .ag-stamp__over { animation: ag-drop-small .45s .55s cubic-bezier(.3, 1.4, .45, 1) both; }
  /* 2. The boarding pass slides out from under the stamp */
  .ag-pass.ag-new { animation: ag-slide .6s .4s var(--ag-ease) both; }
  /* 3. Passport pages flip while they scroll through the book */
  .ag-pages.ag-book .ag-page { animation: ag-flip linear both; animation-timeline: view(inline); animation-range: cover 0% cover 100%; }
  /* 4. The security pattern shimmers with scrolling (and follows the pointer in the checker) */
  .ag-guilloche { animation: ag-hue linear both; animation-timeline: scroll(root); }
  .ag-toc__bar span { animation: ag-grow linear both; animation-timeline: scroll(root); }
  .ag-check h1, .ag-check__sub, .ag-form { animation: ag-rise .6s var(--ag-ease) both; }
  .ag-check__sub { animation-delay: .06s; }
  .ag-form { animation-delay: .12s; }
}
@keyframes ag-drop {
  0% { opacity: 0; transform: translateY(-24px) scale(1.55) rotate(-18deg); filter: blur(3px); }
  55% { opacity: 1; transform: scale(.94) rotate(-7deg); filter: none; }
  75% { transform: scale(1.02) rotate(-8.5deg); }
  100% { opacity: 1; transform: scale(1) rotate(-8deg); }
}
@keyframes ag-drop-small { 0% { opacity: 0; transform: scale(1.6) rotate(24deg); } 100% { opacity: 1; transform: scale(1) rotate(14deg); } }
@keyframes ag-press { 0% { opacity: 0; transform: scale(.7); } 30% { opacity: 1; } 100% { opacity: 0; transform: scale(1.15); } }
@keyframes ag-thud { 0%, 100% { transform: none; } 40% { transform: translateY(3px) scale(.995); } }
@keyframes ag-slide { 0% { opacity: 0; transform: translateY(-38%) scaleY(.85); clip-path: inset(0 0 100% 0); } 100% { opacity: 1; transform: none; clip-path: inset(0 0 -20% 0); } }
@keyframes ag-flip {
  0% { transform: perspective(1400px) rotateY(-32deg) scale(.92); opacity: .55; }
  30%, 70% { transform: none; opacity: 1; }
  100% { transform: perspective(1400px) rotateY(32deg) scale(.92); opacity: .55; }
}
@keyframes ag-hue { from { --ag-hue: 190; } to { --ag-hue: 300; } }
@keyframes ag-grow { to { transform: scaleX(1); } }
@keyframes ag-rise { from { opacity: 0; transform: translateY(14px); } }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

@media print {
  .ag-header::after, .ag-guilloche, .ag-book__nav, .ag-slot { display: none !important; }
  .ag-pages.ag-book { display: grid; overflow: visible; }
}
