/* Base — Reset, typography, layout */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body { font-family: var(--font-sans); font-size: 16px; line-height: 1.65; color: var(--text); background: var(--bg); -webkit-font-smoothing: antialiased; overflow-x: hidden; }
a { color: var(--accent); text-decoration: none; transition: color .2s; }
a:hover { color: var(--accent-hover); }
strong, b { color: var(--heading); font-weight: 600; }
h1, h2, h3, h4 { font-family: var(--font-serif); color: var(--heading); font-weight: 400; line-height: 1.15; }
h1 { font-size: clamp(2.2rem, 5vw, 3.6rem); }
h2 { font-size: clamp(1.8rem, 3.5vw, 2.6rem); }
h3 { font-size: clamp(1.2rem, 2vw, 1.4rem); }
p { line-height: 1.8; }
img { max-width: 100%; height: auto; display: block; }
.gml-w { max-width: var(--max-width); margin: 0 auto; padding: 0 40px; width: 100%; }
.gml-section { padding: var(--space-section) 0; }
.gml-section--alt { background: var(--bg-alt); }
.gml-section--bordered { border-bottom: 1px solid var(--border); }
.gml-label { font-size: .75rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--warm); margin-bottom: 12px; font-family: var(--font-sans); }
.gml-prose { font-size: 1.05rem; color: var(--text-muted); line-height: 1.8; max-width: 58ch; }
.gml-prose p + p { margin-top: 12px; }
.gml-btn { display: inline-flex; align-items: center; gap: 8px; padding: 14px 30px; font-size: .95rem; font-weight: 600; font-family: var(--font-sans); border-radius: 10px; cursor: pointer; border: none; transition: all .2s; text-decoration: none; }
.gml-btn--primary { background: var(--accent); color: #fff; }
.gml-btn--primary:hover { background: var(--accent-hover); color: #fff; transform: translateY(-1px); box-shadow: var(--shadow-hover); }
.gml-btn--secondary { background: var(--surface); color: var(--text); border: 1px solid var(--border); }
.gml-btn--secondary:hover { border-color: var(--accent); color: var(--accent); }
.gml-btn__arrow { transition: transform .2s; }
.gml-btn:hover .gml-btn__arrow { transform: translateX(3px); }
.gml-tag { display: inline-block; font-size: .78rem; font-weight: 500; padding: 5px 14px; border-radius: var(--radius-pill); background: var(--accent-subtle); color: var(--accent); border: 1px solid var(--accent-border); }
.gml-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; transition: all .25s; position: relative; }
.gml-card::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: linear-gradient(90deg, var(--accent), var(--warm)); opacity: 0; transition: opacity .25s; }
.gml-card:hover { border-color: var(--border-hover); transform: translateY(-4px); box-shadow: var(--shadow); }
.gml-card:hover::before { opacity: 1; }
@media (max-width: 640px) { .gml-w { padding: 0 24px; } .gml-section { padding: 56px 0; } }
