/* Adam Solutions — base: fonts, tokens, reset, typography */

/* ---- Be Vietnam Pro (self-host) ---- */
@font-face{font-family:'Be Vietnam Pro';font-style:normal;font-weight:200;font-display:swap;
	src:url(../fonts/bvp-200-vietnamese.woff2) format('woff2');
	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;}
@font-face{font-family:'Be Vietnam Pro';font-style:normal;font-weight:200;font-display:swap;
	src:url(../fonts/bvp-200-latin.woff2) format('woff2');
	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;}
@font-face{font-family:'Be Vietnam Pro';font-style:normal;font-weight:300;font-display:swap;
	src:url(../fonts/bvp-300-vietnamese.woff2) format('woff2');
	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;}
@font-face{font-family:'Be Vietnam Pro';font-style:normal;font-weight:300;font-display:swap;
	src:url(../fonts/bvp-300-latin.woff2) format('woff2');
	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;}
@font-face{font-family:'Be Vietnam Pro';font-style:normal;font-weight:400;font-display:swap;
	src:url(../fonts/bvp-400-vietnamese.woff2) format('woff2');
	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;}
@font-face{font-family:'Be Vietnam Pro';font-style:normal;font-weight:400;font-display:swap;
	src:url(../fonts/bvp-400-latin.woff2) format('woff2');
	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;}
@font-face{font-family:'Be Vietnam Pro';font-style:normal;font-weight:500;font-display:swap;
	src:url(../fonts/bvp-500-vietnamese.woff2) format('woff2');
	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;}
@font-face{font-family:'Be Vietnam Pro';font-style:normal;font-weight:500;font-display:swap;
	src:url(../fonts/bvp-500-latin.woff2) format('woff2');
	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;}
@font-face{font-family:'Be Vietnam Pro';font-style:normal;font-weight:600;font-display:swap;
	src:url(../fonts/bvp-600-vietnamese.woff2) format('woff2');
	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;}
@font-face{font-family:'Be Vietnam Pro';font-style:normal;font-weight:600;font-display:swap;
	src:url(../fonts/bvp-600-latin.woff2) format('woff2');
	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;}
@font-face{font-family:'Be Vietnam Pro';font-style:normal;font-weight:700;font-display:swap;
	src:url(../fonts/bvp-700-vietnamese.woff2) format('woff2');
	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;}
@font-face{font-family:'Be Vietnam Pro';font-style:normal;font-weight:700;font-display:swap;
	src:url(../fonts/bvp-700-latin.woff2) format('woff2');
	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;}
@font-face{font-family:'Be Vietnam Pro';font-style:normal;font-weight:800;font-display:swap;
	src:url(../fonts/bvp-800-vietnamese.woff2) format('woff2');
	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;}
@font-face{font-family:'Be Vietnam Pro';font-style:normal;font-weight:800;font-display:swap;
	src:url(../fonts/bvp-800-latin.woff2) format('woff2');
	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;}

:root {
	/* Nền & bề mặt */
	--a-bg:          #0B0B0D;
	--a-bg-alt:      #101014;
	--a-surface:     #16161A;
	--a-surface-2:   #1D1D22;
	--a-border:      #26262D;
	--a-border-soft: #1C1C22;

	/* Thương hiệu */
	--a-red:         #E11D2A;
	--a-red-hover:   #FF4D5A;
	--a-red-dim:     rgba(225, 29, 42, 0.14);
	--a-red-glow:    rgba(225, 29, 42, 0.35);

	/* Chữ */
	--a-text:        #F5F6F7;
	--a-text-muted:  #9AA0A6;
	--a-text-dim:    #6B7076;
	--a-on-red:      #FFFFFF;

	/* Khoảng cách */
	--sp-1: 4px;  --sp-2: 8px;  --sp-3: 12px; --sp-4: 16px;
	--sp-5: 24px; --sp-6: 32px; --sp-7: 48px; --sp-8: 64px;
	--sp-9: 96px; --sp-10: 128px;

	/* Layout */
	--container: 1240px;
	--gutter: 20px;
	--radius: 12px;
	--radius-sm: 8px;
	--header-h: 76px;

	/* Chữ */
	--font-body: 'Be Vietnam Pro', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
	--font-head: var(--font-body);
	--font-mono: ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace;

	/* Thang chữ — nguồn của "wow" là TƯƠNG PHẢN CỠ, tỉ lệ lớn nhất : nhãn micro ≈ 40:1 */
	--fs-ghost:  clamp(120px, 26vw, 420px);   /* chữ nền khổng lồ */
	--fs-d1:     clamp(40px, 6vw, 104px);     /* tiêu đề chương */
	--fs-d2:     clamp(28px, 3.4vw, 56px);    /* tiêu đề section */
	--fs-stat:   clamp(36px, 5vw, 88px);      /* số liệu, weight 200 */
	--fs-index:  clamp(30px, 4vw, 68px);      /* chỉ số _01 */
	--fs-body:   16px;
	--fs-micro:  10.5px;                       /* nhãn siêu nhỏ, tracking 0.24em */
	--fs-hud:    10.5px;

	--tr-micro: .24em;
	--tr-hud:   .08em;

	/* Hiệu ứng */
	--shadow: 0 12px 32px rgba(0, 0, 0, 0.45);
	--ease: cubic-bezier(0.22, 1, 0.36, 1);
}

*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }

body {
	margin: 0;
	background: var(--a-bg);
	color: var(--a-text);
	font-family: var(--font-body);
	font-size: 16px;
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
}

img, video, svg { max-width: 100%; display: block; }
img { height: auto; }

a { color: var(--a-red-hover); text-decoration: none; transition: color .2s var(--ease); }
a:hover { color: var(--a-red); }

h1, h2, h3, h4, h5, h6 {
	font-family: var(--font-head);
	line-height: 1.18;
	letter-spacing: -0.01em;
	margin: 0 0 var(--sp-4);
	font-weight: 800;
	color: var(--a-text);
}
h1 { font-size: clamp(2rem, 1.3rem + 3vw, 3.5rem); }
h2 { font-size: clamp(1.6rem, 1.2rem + 1.8vw, 2.5rem); }
h3 { font-size: clamp(1.15rem, 1rem + .6vw, 1.4rem); font-weight: 700; }

p, ul, ol { margin: 0 0 var(--sp-4); }

::selection { background: var(--a-red); color: #fff; }

:focus-visible { outline: 2px solid var(--a-red-hover); outline-offset: 3px; }

/* A11y */
.screen-reader-text {
	position: absolute !important; width: 1px; height: 1px;
	overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap;
}
.skip-link:focus {
	position: fixed; top: var(--sp-3); left: var(--sp-3);
	width: auto; height: auto; clip: auto; z-index: 200;
	padding: var(--sp-2) var(--sp-4);
	background: var(--a-red); color: #fff; border-radius: var(--radius-sm);
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after {
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .01ms !important;
		scroll-behavior: auto !important;
	}
	/* Hiệu ứng trang trí phải TẮT HẲN, không chỉ nhanh lên */
	.sweep::after, .stage__beams, .page-hero::before { display: none !important; }
	.tilt { transform: none !important; }
	.reveal { opacity: 1 !important; transform: none !important; }
}
