/* #region JRX RESET */
/* ============================================================
   JRX MEDIA — BASE RESET  v1.0
   ============================================================ */

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

:root {
    --font-sans:    system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    --font-serif:   Georgia, 'Times New Roman', serif;
    --font-mono:    'Cascadia Code', 'Fira Code', 'Courier New', monospace;
    --text-sm:      0.875rem;
    --text-base:    1rem;
    --text-md:      1.125rem;
    --text-lg:      1.25rem;
    --text-xl:      1.5rem;
    --text-2xl:     2rem;
    --text-3xl:     2.5rem;
    --text-4xl:     3.5rem;
    --space-xs:     0.25rem;
    --space-sm:     0.5rem;
    --space-md:     1rem;
    --space-lg:     1.5rem;
    --space-xl:     2rem;
    --space-2xl:    3rem;
    --space-3xl:    5rem;
    --max-width:    1400px;
    --gutter:       clamp(1rem, 5vw, 3rem);
    --radius-sm:    4px;
    --radius-md:    8px;
    --radius-lg:    14px;
    --radius-full:  9999px;
    --ease:         cubic-bezier(0.4, 0, 0.2, 1);
    --duration:     200ms;
    --color-bg:       #ffffff;
    --color-text:     #111111;
    --color-muted:    #6b7280;
    --color-border:   #e5e7eb;
    --color-accent:   #2563eb;
    --color-accent-h: #1d4ed8;
}

html {
    font-size: 100%;
    scroll-behavior: smooth;
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
    tab-size: 4;
    scrollbar-gutter: stable;
}

body {
    font-family: var(--font-sans);
    font-size: var(--text-base);
    line-height: 1.6;
    color: var(--color-text);
    background-color: var(--color-bg);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    min-height: 100dvh;
}

.container {
    width: 100%;
    max-width: var(--max-width);
    margin-inline: auto;
    padding-inline: var(--gutter);
}

.container-sm {
    width: 100%;
    max-width: 860px;
    margin-inline: auto;
    padding-inline: var(--gutter);
}

h1, h2, h3, h4, h5, h6 {
    line-height: 1.2;
    font-weight: 600;
    text-wrap: balance;
}

p, li, blockquote {
    max-width: 72ch;
    text-wrap: pretty;
}

a {
    color: var(--color-accent);
    text-decoration: underline;
    text-decoration-skip-ink: auto;
    transition: color var(--duration) var(--ease);
}

a:hover { color: var(--color-accent-h); }

strong, b { font-weight: 600; }
em, i     { font-style: italic; }
small     { font-size: var(--text-sm); }

code, kbd, samp, pre {
    font-family: var(--font-mono);
    font-size: 0.9em;
}

pre {
    overflow-x: auto;
    white-space: pre;
}

blockquote {
    border-left: 3px solid var(--color-border);
    padding-left: var(--space-lg);
    color: var(--color-muted);
}

ul, ol {
    padding-left: var(--space-xl);
}

li + li {
    margin-top: var(--space-xs);
}

.list-reset {
    list-style: none;
    padding-left: 0;
}

img, svg, video, canvas, audio, iframe, embed, object {
    display: block;
    max-width: 100%;
}

img, video { height: auto; }
img        { font-style: italic; }
svg        { overflow: hidden; }

input, button, textarea, select {
    font: inherit;
    color: inherit;
    background: transparent;
    border: none;
    outline: none;
}

button {
    cursor: pointer;
    display: inline-flex;
    align-items: center;
}

textarea  { resize: vertical; }
fieldset  { border: none; }

input[type="search"]::-webkit-search-decoration,
input[type="search"]::-webkit-search-cancel-button {
    -webkit-appearance: none;
}

table {
    border-collapse: collapse;
    width: 100%;
}

th, td {
    padding: var(--space-sm) var(--space-md);
    text-align: left;
}

:focus-visible {
    outline: 2px solid var(--color-accent);
    outline-offset: 3px;
}

:focus:not(:focus-visible) { outline: none; }

[role="button"],
label[for] {
    cursor: pointer;
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
}

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.flex        { display: flex; }
.grid        { display: grid; }
.block       { display: block; }
.hidden      { display: none; }
.text-center { text-align: center; }
.text-right  { text-align: right; }
.mt-auto     { margin-top: auto; }
.ml-auto     { margin-left: auto; }

.section {
    padding-block: var(--space-3xl);
}
/* #endregion */

/* #region COMPAT UTILITIES */
/* All utility classes previously provided by truebase.css, inlined to remove CDN dependency.
   Only classes that actually appear in this site's HTML markup are included. */

/* Icon Fonts */
@font-face { font-family: 'la-solid';  src: url('https://www.midobi.com/mods/fonts/line/la-solid-900.woff'); }
@font-face { font-family: 'fa-main';   src: url('https://www.midobi.com/mods/fonts/awesome/fa-regular-400.woff'); }
@font-face { font-family: 'fa-brands'; src: url('https://www.midobi.com/mods/fonts/awesome/fa-brands-400.woff'); }
@font-face { font-family: 'fa-solid';  src: url('https://www.midobi.com/mods/fonts/awesome/fa-solid-900.woff'); }

.la-solid  { font-family: 'la-solid'  !important; font-size: 1.5rem; line-height: 1; font-weight: 400; }
.fa-main   { font-family: 'fa-main'   !important; font-size: 1.5rem; line-height: 1; font-weight: 400; }
.fa-brands { font-family: 'fa-brands' !important; font-size: 1.5rem; line-height: 1; font-weight: 400; }
.fa-solid  { font-family: 'fa-solid'  !important; font-size: 1.5rem; line-height: 1; font-weight: 400; }

/* Container */
.boxbox {
    max-width: 1400px;
    width: 100%;
    margin-left: auto;
    margin-right: auto;
}
@media only screen and (max-width: 1500px) {
    .boxbox { max-width: 94vw; }
}
.fullpage { min-height: 100vh; width: 100%; }

/* Flex */
.projflex  { display: flex; }
.wrap      { flex-wrap: wrap; }
.col       { flex-direction: column; }
.selfstart { align-self: flex-start; }
.grow      { flex-grow: 1; min-width: 0; }
.nosh,
.noshrink  { flex-shrink: 0; }
.center    { align-items: center; }
.between   { justify-content: space-between; }
.around    { justify-content: space-around; }
.justcenter { justify-content: center; }

/* Gaps */
.colgap      { column-gap: 2rem; }
.colgap2     { column-gap: 4rem; }
.colgap3     { column-gap: 6rem; }
.colgapmini  { column-gap: 1rem; }
.colgapmicro { column-gap: 0.5rem; }
.rowgap      { row-gap: 2rem; }
.rowgap2     { row-gap: 4rem; }
.rowgap3     { row-gap: 6rem; }
.rowgapmini  { row-gap: 1rem; }
.rowgapmicro { row-gap: 0.5rem; }

/* Sizing — half
   At ≤1000px (single-column breakpoint) these collapse to full width.
   More specific scoped rules in the mainsheet override where different
   behaviour is needed (e.g. quartergap2 → 50% in the highlights strip). */
.half      { width: calc(100% / 2); }
.halfgap   { width: calc((100% - (2rem * 1)) / 2); }
.halfgap2  { width: calc((100% - (4rem * 1)) / 2); }
.halfgap3  { width: calc((100% - (6rem * 1)) / 2); }

@media only screen and (max-width: 1000px) {
    .half, .halfgap, .halfgap2, .halfgap3 { width: 100%; }
}

/* Sizing — third (collapses at tablet) */
.thirdgap2 { width: calc((100% - (4rem * 2)) / 3); }

@media only screen and (max-width: 768px) {
    .thirdgap2 { width: 100%; }
}

/* Sizing — quarter
   No generic collapse added — the mainsheet handles quartergap breakpoints
   per-section since they vary (e.g. highlights goes 4→2→1 columns). */
.quartergap  { width: calc((100% - (2rem * 3)) / 4); }
.quartergap2 { width: calc((100% - (4rem * 3)) / 4); }

/* Padding */
.pad       { padding: 3rem; }
.padhalf   { padding: 2rem; }
.pad2      { padding: 6rem; }
.padtop    { padding-top: 3rem;  padding-bottom: 3rem; }
.padtop2   { padding-top: 6rem;  padding-bottom: 6rem; }
.padtopmini { padding-top: 0.3rem; padding-bottom: 0.3rem; }

@media only screen and (max-width: 1000px) {
    .pad { padding: 2rem; }
}

/* Rounding */
.rounded  { border-radius: 1rem; }
.rounded2 { border-radius: 2rem; }

/* Spacer — vertical rhythm between children */
.spacerbig   > *:not(:last-child) { margin-bottom: 3rem; }
.spacer      > *:not(:last-child) { margin-bottom: 2rem; }
.spacersmall > *:not(:last-child) { margin-bottom: 1rem; }
.spacermini  > *:not(:last-child) { margin-bottom: 0.5rem; }

/* Sider — horizontal rhythm between children */
.sidermax > *:not(:last-child) { margin-right: 6rem; }
.siderbig > *:not(:last-child) { margin-right: 3rem; }

/* State */
.inactive { opacity: .25 !important; pointer-events: none !important; }
.noscroll { overflow: hidden; }
.popped   { opacity: 1 !important; pointer-events: all !important; }
.hidden   { display: none !important; }

/* Misc */
.rel        { position: relative; }
.quicktrans { transition: all 0.25s cubic-bezier(.9, 0, .1, 1); }
.trans      { transition: all 0.5s cubic-bezier(.9, 0, .1, 1); }
.slowtrans  { transition: all 1s cubic-bezier(.9, 0, .1, 1); }
.firstnameform {
    width: 0 !important; height: 0 !important; overflow: hidden !important;
    position: absolute !important; top: 0 !important; left: 0 !important;
    pointer-events: none !important; padding: 0 !important; opacity: 0.01 !important;
}

/* #endregion */

/* #region Color Scheme */
:root {
    --clr-bg:           #F9F6F0;
    --clr-surface:      #FFFFFF;
    --clr-surface-alt:  #F2EDE5;
    --clr-gold:         #C9A84C;
    --clr-gold-deep:    #8B6914;
    --clr-gold-light:   #dfc76a;
    --clr-navy:         #303632;
    --clr-navy-light:   #47504A;
    --clr-text:         #1A1714;
    --clr-text-inv:     #F5F0E8;
    --clr-muted:        #7A7470;
    --clr-muted-inv:    rgba(245, 240, 232, 0.5);
    --clr-border:       #E2D9CE;
    --clr-border-inv:   rgba(255, 255, 255, 0.12);
    --ff-display:       'Outfit', sans-serif;
    --ff-body:          'DM Sans', sans-serif;
    --ff-mono:          'DM Mono', monospace;
}

.schemebgpri  { background-color: var(--clr-surface); }
.schemebgalt  { background-color: var(--clr-surface-alt); }
.schemepri    { color: var(--clr-gold); }
/* #endregion */

/* #region GLOBALS */
* {
    font-family: var(--ff-body);
    box-sizing: border-box;
}

body {
    background-color: var(--clr-bg);
    background-image: none;
    color: var(--clr-text);
}

@font-face {
    font-family: 'Elido';
    src: url('fonts/Elido-Bold.woff') format('woff');
    font-weight: bold;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Elido';
    src: url('fonts/Elido-BoldItalic.woff') format('woff');
    font-weight: bold;
    font-style: italic;
    font-display: swap;
}

h1, h2, h3, h4, h5, h6,
h1 *, h2 *, h3 *, h4 *, h5 *, h6 * {
    font-family: var(--ff-display);
    font-weight: 500;
    color: var(--clr-text);
}

h1 {
    font-size: 6.5rem;
    font-weight: 500;
    color: var(--clr-text-inv);
    line-height: 1.05;
    letter-spacing: -0.02em;
}

h1 em {
    font-style: normal;
    font-weight: 800;
    color: var(--clr-gold);
    display: inline;
    font-size: inherit;
}

h2 {
    font-size: 3rem;
    font-weight: 600;
    color: var(--clr-text);
    line-height: 1.15;
    letter-spacing: -0.01em;
}

h3 {
    color: var(--clr-text);
    font-size: 2.25rem;
    font-weight: 600;
    line-height: 1.2;
}

h3 span {
    font-size: inherit;
    font-weight: inherit;
    color: var(--clr-gold);
    display: inline;
    font-style: italic;
}

h4 {
    color: var(--clr-muted);
    font-size: 1.0625rem;
    letter-spacing: 0.03em;
    font-weight: 400;
    font-family: var(--ff-body);
}

h5 {
    color: var(--clr-text);
    font-size: 2rem;
    font-weight: 600;
    line-height: 1.4;
}

h5 span { color: var(--clr-gold); }

p, li {
    font-size: 1.0625rem;
    color: var(--clr-text);
    line-height: 1.75;
    opacity: 0.85;
    max-width: none;
}

ul, ol { padding-left: 0; }

li + li { margin-top: 0; }

blockquote { border-left: none; padding-left: 0; color: inherit; max-width: none; }

button { display: inline-block; }

p *, li * { font-size: inherit; color: inherit; }

a { color: inherit; text-decoration: none; }

.textlink { color: var(--clr-navy); font-weight: 600; }
.textlink:hover { color: var(--clr-gold); text-decoration: underline; }

.mainlink {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    align-self: flex-start;
    padding: 0.875rem 2rem;
    border: 1.5px solid var(--clr-gold);
    color: #fff;
    background-color: var(--clr-gold);
    position: relative;
    overflow: hidden;
    font-size: 0.8125rem;
    font-family: var(--ff-body);
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    transition: all 0.3s ease;
    border-radius: 0;
}

.mainlink::before,
.mainlink:hover::before { display: none !important; width: 0 !important; }

.mainlink:hover {
    background-color: var(--clr-gold-deep);
    border-color: var(--clr-gold-deep);
    color: #fff;
    transform: none;
    box-shadow: 0 4px 20px rgba(139, 105, 20, 0.25);
}

.mainlink span { position: relative; transition: all 0.3s ease; }

.disclaimer, .disclaimer * { font-size: 0.6875rem !important; font-style: italic; opacity: 0.55; }

.altback, .secalt { background-color: var(--clr-surface-alt); }

.lucide { width: 65%; height: 65%; stroke-width: 1.5; stroke: var(--clr-gold); }

/* Bullet styling */
.mainpage ul li {
    position: relative;
    padding-left: 1.5rem;
    list-style: none;
    margin-bottom: 0.5rem;
}

.mainpage ul li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.6rem;
    width: 0.375rem;
    height: 0.375rem;
    background-color: var(--clr-gold);
    border-radius: 50%;
    background-image: none;
}

@media only screen and (max-width: 1600px) { h1, h1 * { font-size: 4.25rem; } }
@media only screen and (max-width: 1400px) {
    h1, h1 * { font-size: 3.5rem; }
    h2 { font-size: 2.5rem; }
    h3 { font-size: 2rem; }
    p, li { font-size: 1rem; }
}
@media only screen and (max-width: 600px) {
    h1, h1 * { font-size: 2.75rem; }
    h5 { font-size: 1.5rem; }
    .mainlink { font-size: 0.75rem; text-align: center; }
    h4 { font-size: 1rem; }
    .home .about h2 { font-size: 2.25rem; }
}
/* #endregion */

/* #region COMPONENT: HEADER */
.header {
    position: absolute;
    width: 100%;
    left: 0;
    top: 0;
    z-index: 200;
    transition: all 0.2s ease-in-out;
}

.header.scrolled {
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    background-color: var(--clr-navy);
    transform: translateY(-100%);
    box-shadow: 0 1px 0 var(--clr-border-inv);
}

.header.scrolled-delay {
    transform: translateY(0);
    position: fixed;
}

.header.scrolled .main .logo img {
    width: 150px;
    margin-top: 0.5rem;
    margin-bottom: 0.5rem;
}

/* Scrolled state nav links stay light (dark navy bg) */
.header.scrolled .main .nav .menu .item .title,
.header.scrolled .main .nav .menu .item .toplink,
.header.scrolled .main .minimenu { color: var(--clr-text-inv); }

/* Subheader bar */
.header .subheader {
    background-color: transparent;
    margin-bottom: 0;
    border-top: 5px solid var(--clr-gold);
}

.header .subheader .stock .item {
    font-size: 0.8125rem;
    color: var(--clr-gold);
    font-weight: 600;
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
    font-family: var(--ff-mono);
    letter-spacing: 0.05em;
}

.header .subheader .stock .item span {
    font-weight: 400;
    color: var(--clr-text-inv);
    margin-right: 0.375rem;
}

.header .subheader .stock .item img {
    width: auto;
    height: 1rem;
    margin-right: 0.5rem;
    border-radius: 0.1rem;
}

.header .subheader .stock-sep {
    width: 1px;
    height: 0.875rem;
    background-color: var(--clr-border-inv);
    margin: 0 0.25rem;
}

.header .subheader .metals-price .spot-val {
    color: var(--clr-gold);
    font-weight: 700;
}

.header .subheader .subscribe {
    font-size: 0.75rem;
    color: var(--clr-navy);
    background-color: var(--clr-gold);
    padding: 0.5rem 1.5rem;
    border-radius: 0 0 0.5rem 0.5rem;
    position: absolute;
    right: 0;
    top: 0;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    cursor: pointer;
    white-space: nowrap;
    transition: padding 0.2s ease;
}

.header .subheader .subscribe span { margin-left: 0.5rem; }

.header .subheader .subscribe:hover {
    padding-top: 1rem;
}

.header .subheader .socials span {
    color: var(--clr-muted-inv);
    font-weight: 400;
    margin-right: 0.75rem;
    font-size: 0.625rem;
    font-family: var(--ff-mono);
    letter-spacing: 0.2em;
    text-transform: uppercase;
}

.header .subheader .socials {
    margin-right: 16rem;
    padding-right: 1rem;
    transition: all 0.2s ease-in-out;
}

.header .subheader .socials:hover a { opacity: 0.5; }

.header .subheader .socials a {
    font-size: 1rem;
    color: var(--clr-muted-inv);
    transition: color 0.2s ease;
}

.header .subheader .socials a:not(:last-child) { margin-right: 0.5rem; }
.header .subheader .socials a:hover { opacity: 1; color: var(--clr-gold); }
.header .subheader .m800 .socials { display: none; }
.header .subheader .m500 { margin-bottom: 2.5rem; }
.header .subheader .m500 .stock { display: none; }
.header .subheader .m500 .subscribe { width: 100%; text-align: center; }

/* Main nav bar */
.header .main .logo img {
    width: 220px;
    height: auto;
    transition: all 0.2s ease-in-out;
    margin-top: 1rem;
    margin-bottom: 1rem;
}

.header .main .logo:hover { opacity: 0.7; }

.header .main .logo .placeholder {
    width: 200px;
    padding-top: 1.5rem;
    padding-bottom: 1.5rem;
    text-align: center;
    color: var(--clr-text-inv);
    border: 1.5px solid rgba(245,240,232,0.4);
    font-family: var(--ff-mono);
    font-size: 0.75rem;
    letter-spacing: 0.15em;
}

.header .main .nav ul { margin-left: 0; }
.header .main .nav ul li { margin-bottom: unset; list-style-type: none; opacity:1; }
.header .main .nav .menu .item { position: relative; }

/* Dropdown submenu */
.header .main .nav .menu .item .submenu {
    position: absolute;
    opacity: 0;
    pointer-events: none;
    transition: all 0.2s ease-in-out;
    background-color: var(--clr-surface);
    border: 1px solid var(--clr-border);
    border-top: 2px solid var(--clr-gold);
    top: calc(100%);
    left: 0;
    transform: translateY(-0.5rem);
    border-radius: 0;
    overflow: hidden;
    min-width: 11rem;
    box-shadow: 0 8px 32px rgba(28, 50, 81, 0.12);
    z-index: 9000;
}

.header .main .nav .menu .item .title {
    transition: all 0.2s ease-in-out;
    color: var(--clr-text-inv);
    font-size: 0.9375rem;
    font-weight: 600;
    font-family: var(--ff-display);
    padding: 0.875rem 1rem;
    white-space: nowrap;
    position: relative;
    z-index: 2;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    cursor: default;
}

/* Gold underline on hover */
.header .main .nav .menu .item .title::after,
.header .main .nav .menu .item .toplink::after {
    content: "";
    position: absolute;
    bottom: 3px;
    left: 1rem;
    right: 1rem;
    height: 1px;
    background-color: var(--clr-gold);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.3s ease;
}

.header .main .nav .menu .item:hover .title::after,
.header .main .nav .menu .item .toplink:hover::after { transform: scaleX(1); }

.header .main .nav .menu .item:hover .title { color: var(--clr-gold); }

.header .main .nav .menu .item .title .fa-solid {
    margin-left: 0.5rem;
    font-size: 0.65rem;
    display: block;
    transition: all 0.15s ease-in-out;
}

.header .main .nav .menu .item:hover .title .fa-solid { transform: rotate(90deg); }

.header .main .nav .menu .item .toplink {
    transition: all 0.2s ease-in-out;
    color: var(--clr-text-inv);
    font-size: 0.9375rem;
    font-weight: 600;
    font-family: var(--ff-display);
    padding: 0.875rem 1rem;
    border-radius: 0;
    white-space: nowrap;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    position: relative;
    display: block;
}

.header .main .nav .menu .item .toplink:hover { color: var(--clr-gold); }

.header .main .nav .menu .item:hover .submenu {
    opacity: 1;
    pointer-events: all;
    transform: translateY(0);
}

.header .main .nav .menu .item .submenu li {
    opacity: 1;
}

.header .main .nav .menu .item .submenu .sublink {
    opacity: 1;
    transition: color 0.2s ease, background-color 0.2s ease;
    padding: 0.625rem 1rem;
    position: relative;
    z-index: 2;
    font-size: 0.875rem;
    color: var(--clr-navy);
    display: block;
    white-space: nowrap;
    font-weight: 500;
}

.header .main .nav .menu .item .submenu li:not(:last-child) .sublink {
    border-bottom: 1px solid var(--clr-border);
}

.header .main .nav .menu .item .submenu .sublink:hover {
    color: var(--clr-gold);
    background-color: var(--clr-surface-alt);
}

.header .main .nav .menu .item .submenu .category-header {
    font-size: 0.65rem;
    padding: 0.3rem 1rem;
    font-weight: 600;
    background-color: var(--clr-surface-alt);
    display: block;
    color: var(--clr-muted);
    letter-spacing: 0.15em;
    text-transform: uppercase;
}

.header .main .minimenu {
    display: none;
    color: var(--clr-text-inv);
    font-size: 2rem;
    cursor: pointer;
}

.header .main .nav .miniclose { display: none; }

/* Mobile full-screen menu */
.header .main.m1000 .minimenu { display: block; }

.header .main.m1000 .nav {
    position: fixed;
    background-color: var(--clr-navy);
    width: 100%;
    height: 100%;
    left: 0;
    top: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.25s ease;
    overflow-y: auto;
    padding: 5rem 0 3rem;
}

.header .main.m1000 .nav.showmenu { opacity: 1; pointer-events: all; }

.header.minimenuopen {
    height: 100% !important;
    transform: unset !important;
    position: fixed !important;
}

.header .main.m1000 .nav .miniclose {
    position: absolute;
    right: 1.5rem;
    top: 1.5rem;
    font-size: 2rem;
    cursor: pointer;
    display: block;
    color: var(--clr-text-inv);
    opacity: 0.6;
    transition: opacity 0.2s ease;
}

.header .main.m1000 .nav .miniclose:hover { opacity: 1; }

.header .main.m1000 .nav .menu {
    flex-direction: column;
    align-items: flex-start;
    width: 100%;
    padding: 0 2rem;
    gap: 0;
}

.header .main.m1000 .nav .menu .item {
    width: 100%;
    border-bottom: 1px solid var(--clr-border-inv);
}

.header .main.m1000 .nav .menu .item:first-child { border-top: 1px solid var(--clr-border-inv); }

.header .main.m1000 .nav .menu .item .title,
.header .main.m1000 .nav .menu .item .toplink {
    font-size: 1.125rem;
    padding: 1rem 0;
    width: 100%;
    color: var(--clr-text-inv);
    letter-spacing: 0.05em;
}

.header .main.m1000 .nav .menu .item .title::after,
.header .main.m1000 .nav .menu .item .toplink::after { display: none; }

.header .main.m1000 .nav .menu .item:hover .title { color: var(--clr-gold); }
.header .main.m1000 .nav .menu .item .toplink:hover { color: var(--clr-gold); }

.header .main.m1000 .nav .menu .item .title .text { flex-grow: 1; }
.header .main.m1000 .nav .menu .item .title .fa-solid { font-size: 1rem; color: var(--clr-gold); }

.header .main.m1000 .nav .menu .item .submenu {
    position: relative;
    width: 100%;
    display: none;
    top: 0;
    border: none;
    border-top: 1px solid var(--clr-border-inv);
    background-color: rgba(255,255,255,0.04);
    transition: unset;
    opacity: 1;
    transform: unset;
    box-shadow: none;
}

.header .main.m1000 .nav .menu .item .submenu .sublink {
    padding: 0.75rem 1rem;
    color: rgba(245, 240, 232, 0.7);
    border-bottom: 1px solid var(--clr-border-inv);
    font-size: 0.9375rem;
}

.header .main.m1000 .nav .menu .item .submenu li:last-child .sublink { border-bottom: none; }

.header .main.m1000 .nav .menu .item .submenu .sublink:hover {
    color: var(--clr-gold);
    background-color: rgba(255,255,255,0.06);
}

.header .main.m1000 .nav .menu .item .title.titleclick {
    color: var(--clr-gold);
    background-color: transparent;
}

.header .main.m1000 .nav .menu .item .title.titleclick .fa-solid { transform: rotate(90deg); }

/* Header media queries */
@media only screen and (max-width: 1400px) {
    .header .subheader .stock .item { font-size: 0.75rem; }
    .header .subheader .socials span { font-size: 0.6rem; }
    .header .main .nav .menu .item .title,
    .header .main .nav .menu .item .toplink { font-size: 0.75rem; }
    .header .subheader .subscribe { font-size: 0.7rem; }
}

@media only screen and (max-width: 1200px) {
    .header .main .nav ul { column-gap: 1.5rem; }
}

@media only screen and (max-width: 1150px) {
    .header .subheader .metals-price { display: none; }
    .header .subheader .stock-sep { display: none; }
}

@media only screen and (max-width: 800px) {
    .header .main .logo img { width: 150px; }
    .header .subheader .subscribe { font-size: 0.7rem; padding: 0.5rem 1rem; }
}
/* #endregion */

/* #region SECTION: HERO */
.hero, .homehero {
    position: relative;
    background: var(--clr-navy);
    overflow: hidden;
}

.hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom, rgba(10,18,30,0.5) 0%, rgba(10,18,30,0.82) 100%);
    z-index: 1;
    pointer-events: none;
}

.hero-bg-video {
    position: absolute;
    top: 0; left: 0;
    width: 100%; height: 100%;
    object-fit: cover;
    z-index: 0;
    pointer-events: none;
    opacity: 0.55;
}

.hero-video-accent {
    position: absolute;
    inset: 0;
    background-color: rgba(201, 168, 76, 0.25);
    z-index: 1;
    pointer-events: none;
}

.hero-video-overlay {
    position: absolute;
    inset: 0;
    background-image: url('images/bg_hero_over.png');
    background-size: cover;
    background-position: center;
    z-index: 1;
    pointer-events: none;
    opacity:0.25;
}

.hero-grain {
    position: absolute;
    inset: 0;
    z-index: 2;
    pointer-events: none;
    opacity: 0.04;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
    background-size: 180px 180px;
    animation: grain-shift 0.6s steps(1) infinite;
}

@keyframes grain-shift {
    0%   { transform: translate(0, 0);    } 12%  { transform: translate(-2%, 1%); }
    25%  { transform: translate(1%, -2%); } 37%  { transform: translate(-1%, 2%); }
    50%  { transform: translate(2%, -1%); } 62%  { transform: translate(-2%, -1%);}
    75%  { transform: translate(1%, 2%);  } 87%  { transform: translate(-1%, -2%);}
    100% { transform: translate(2%, 0);   }
}

.homehero .under {
    background-image: url('images/2025-09/bg_hero.jpg');
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
    opacity: 0.3;
}

.pagetop .under {
    background-image: url('images/2025-09/bg_hero.jpg');
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
    width: 100%; height: 100%;
    position: absolute;
    top: 0; left: 0;
    z-index: 0;
    opacity: 0.3;
}

.hero { background-image: none; background-color: var(--clr-navy); }
.hero .logo { margin-right: 5rem; }
.hero .logo img { width: 15rem; }

@media only screen and (max-width: 1000px) { .hero .logo { margin-right: 0; } }
@media only screen and (max-width: 600px) { .hero .logo img { max-width: 220px; width: 90%; } }
/* #endregion */

/* #region PAGE: HOME HERO */
.homehero { min-height: 100vh; min-height: 100dvh; }

.homehero .maintext {
    max-width: 56rem;
    margin-left: auto;
    margin-right: auto;
    text-align: center;
    position: relative;
    z-index: 3;
}

.homehero h1 {
    color: var(--clr-text-inv);
    margin-bottom: 1.5rem;
    text-shadow: 0 2px 40px rgba(0, 0, 0, 0.4);
}

.hero h1 span {
    color: var(--clr-text-inv);
}

.homehero h1 em {
    font-style: normal;
    font-weight: 700;
    display: inline;
    background-image: linear-gradient(135deg, #C9A84C 0%, #e8d080 50%, #C9A84C 100%);
    background-size: 200% 100%;
    -webkit-background-clip: text;
            background-clip: text;
    -webkit-text-fill-color: transparent;
    animation: gold-shimmer 5s linear infinite;
}

@keyframes gold-shimmer {
    0% { background-position: 200% 0; }
    50% { background-position: -200% 0; }
    100% { background-position: -200% 0; }
}

@media (prefers-reduced-motion: reduce) { .homehero h1 em { animation: none; } }

.hero-label {
    display: block;
    font-family: var(--ff-mono);
    font-size: 0.6875rem;
    letter-spacing: 0.3em;
    color: var(--clr-gold);
    text-transform: uppercase;
    margin-bottom: 1.75rem;
    position: relative;
    z-index: 3;
}

.homehero .maintext p {
    font-size: 1.0625rem;
    color: var(--clr-text-inv);
    opacity: 0.78;
    max-width: 32.5rem;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 2.5rem;
    line-height: 1.8;
}

.hero-ctas {
    display: flex;
    gap: 1rem;
    justify-content: center;
    flex-wrap: wrap;
    position: relative;
    z-index: 3;
}

.hero-cta-primary {
    display: inline-block;
    padding: 0.875rem 2.25rem;
    background-color: var(--clr-gold);
    color: #fff;
    border: 1.5px solid var(--clr-gold);
    font-family: var(--ff-body);
    font-size: 0.8125rem;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    transition: all 0.3s ease;
}

.hero-cta-primary:hover {
    background-color: var(--clr-gold-deep);
    border-color: var(--clr-gold-deep);
    color: #fff;
    box-shadow: 0 6px 32px rgba(201, 168, 76, 0.4);
    transform: translateY(-2px);
}

.hero-cta-ghost {
    display: inline-block;
    padding: 0.875rem 2.25rem;
    background-color: transparent;
    color: var(--clr-text-inv);
    border: 1.5px solid rgba(245, 240, 232, 0.45);
    font-family: var(--ff-body);
    font-size: 0.8125rem;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    transition: all 0.3s ease;
}

.hero-cta-ghost:hover {
    border-color: rgba(245, 240, 232, 0.9);
    background-color: rgba(245, 240, 232, 0.08);
    transform: translateY(-2px);
}

/* Scroll continue */
.homehero .continue {
    color: var(--clr-text-inv);
    font-weight: 400;
    text-align: center;
    width: 100%;
    transition: all 2s cubic-bezier(0.075, 0.82, 0.165, 1);
    position: relative;
    z-index: 3;
    font-family: var(--ff-mono);
    font-size: 0.625rem;
    letter-spacing: 0.25em;
    opacity: 0.5;
}

.homehero .continue span { display: block; margin-bottom: 0.75rem; }

.homehero .continue .line {
    background-color: var(--clr-gold);
    height: 3.5rem;
    width: 1px;
    margin: auto;
}

.homehero .continue .mouse {
    border: 1.5px solid rgba(245, 240, 232, 0.4);
    border-radius: 25px;
    width: 1.5rem;
    height: 2.5rem;
    position: relative;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 0.75rem;
}

.homehero .continue.continuehide { opacity: 0; transform: translateY(25%); }

.homehero .continue .mouse .wheel {
    background-color: var(--clr-gold);
    border-radius: 5px;
    height: 0.5rem;
    width: 0.25rem;
    position: absolute;
    top: 15%;
    left: 50%;
    transform: translateX(-50%);
    animation: wheeler 1.2s infinite;
    animation-timing-function: cubic-bezier(0.075, 0.82, 0.165, 1);
}

@keyframes wheeler {
    0%   { top: 15%; opacity: 1; }
    70%  { opacity: 1; }
    100% { top: 55%; opacity: 0; }
}

.homehero .mainlink {
    background-color: var(--clr-gold);
    border-color: var(--clr-gold);
    color: #fff;
}

.homehero .mainlink:hover {
    background-color: var(--clr-gold-deep);
    border-color: var(--clr-gold-deep);
    color: #fff;
}

@media only screen and (max-width: 1600px) { .homehero .maintext { max-width: 46rem; } }
@media only screen and (max-width: 1000px) {
    .homehero .maintext { width: 100%; max-width: 36rem; }
    .homehero .continue { width: 100%; }
    .homehero .continue .line { height: 2rem; }
    .homehero .continue span { font-size: 0.55rem; }
    .homehero .continue .mouse { transform: scale(0.85); }
}
@media only screen and (max-width: 768px) {
    .hero-ctas { flex-direction: column; align-items: center; }
    .hero-cta-primary, .hero-cta-ghost { width: 16rem; text-align: center; }
}
/* #endregion */

/* #region PAGE: HOME — ABOUT */
.home .about { padding-top: 6rem; padding-bottom: 5rem; }

.home .about h2 {
    font-size: 3.5rem;
    line-height: 1.1;
    margin-bottom: 1.5rem;
    color: var(--clr-text);
}

.home .about p { opacity: 0.75; line-height: 1.8; margin-bottom: 1rem; color: var(--clr-text); }

/* Discrete stock symbol strip above about */
.home .about .about-symbols {
    font-family: var(--ff-mono);
    font-size: 0.75rem;
    letter-spacing: 0.1em;
    color: var(--clr-muted);
    margin-bottom: 3rem;
    padding-bottom: 1.25rem;
    border-bottom: 1px solid var(--clr-border);
    align-items: center;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.home .about .about-sym-item { color: var(--clr-text); }
.home .about .about-sym-item .exch { color: var(--clr-gold); font-weight: 500; }
.home .about .about-sym-sep { color: var(--clr-border); font-size: 1.25rem; line-height: 1; }

.home .about .btn-group {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
    margin-top: 2rem;
}

.home .about .btn-ghost {
    display: inline-block;
    padding: 0.75rem 1.75rem;
    border: 1.5px solid var(--clr-border);
    color: var(--clr-navy);
    font-size: 0.8125rem;
    font-weight: 500;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    transition: all 0.3s ease;
    font-family: var(--ff-body);
    white-space: nowrap;
}

.home .about .btn-ghost:hover {
    border-color: var(--clr-gold);
    color: var(--clr-gold-deep);
    background-color: rgba(201, 168, 76, 0.06);
}

/* Video thumbnail */
.video-thumbnail {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9;
    cursor: pointer;
    overflow: hidden;
    border: 1px solid var(--clr-border);
}

.video-thumbnail img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.4s ease, filter 0.4s ease;
    filter: brightness(0.8) saturate(0.7);
}

.video-thumbnail:hover img {
    transform: scale(1.04);
    filter: brightness(0.7) saturate(0.7);
}

.video-thumbnail .play-btn {
    position: absolute;
    top: 50%; left: 50%;
    transform: translate(-50%, -50%);
    width: 4.5rem; height: 4.5rem;
    background: rgba(201, 168, 76, 0.92);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.3s ease;
}

.video-thumbnail:hover .play-btn {
    background: var(--clr-gold);
    transform: translate(-50%, -50%) scale(1.1);
}

.video-thumbnail .play-btn svg {
    width: 1.75rem; height: 1.75rem;
    margin-left: 0.2rem;
    fill: var(--clr-navy);
}

/* Stats strip */
.home .about .highlights {
    background: var(--clr-surface);
    border: 1px solid var(--clr-border);
    border-top: 3px solid var(--clr-navy);
    padding: 0;
    border-radius: 0;
    color: var(--clr-text);
    display: flex;
    flex-wrap: wrap;
    gap: 0;
    margin-top: 3rem;
    box-shadow: 0 2px 16px rgba(28, 50, 81, 0.06);
}

.home .about .highlights .item {
    text-align: center;
    flex: 1;
    min-width: 12rem;
    padding: 2rem 1.5rem;
    border-right: 1px solid var(--clr-border);
    transition: background 0.3s ease;
}

.home .about .highlights .item:last-child { border-right: none; }
.home .about .highlights .item:hover { background-color: rgba(28, 50, 81, 0.03); }

.home .about .highlights .icon {
    width: 2.5rem; height: 2.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 0.75rem;
    margin-left: auto;
    margin-right: auto;
}

.home .about .highlights p { font-size: 0.875rem; opacity: 0.65; line-height: 1.5; color: var(--clr-text); }

.about .maintext .flex { flex-wrap: nowrap; justify-content: flex-start; }
.about .maintext .mainlink { text-align: center; }

@media (max-width: 1000px) {
    .about > .boxbox.flex:not(.highlights) { flex-direction: column; }
    .home .about .highlights { flex-direction: row; }
    .about .maintext .flex { flex-wrap: wrap; }
    .home .about .highlights .item { flex: none; width: 50%; }
    .home .about .highlights .item:nth-child(2) { border-right: none; }
    .home .about .highlights .item:nth-child(n+3) { border-top: 1px solid var(--clr-border); }
}

@media (max-width: 600px) {
    .home .about .highlights .item { width: 100%; border-right: none; border-bottom: 1px solid var(--clr-border); }
    .home .about .highlights .item:last-child { border-bottom: none; }
}
/* #endregion */

/* #region PROJECT SECTIONS */
.proj-section {
    padding-top: 3.5rem;
    padding-bottom: 3.5rem;
    border-top: 1px solid var(--clr-border);
    background-color: var(--clr-bg);
}

.proj-section.proj-dark { background-color: var(--clr-navy); }

.proj-section.proj-dark h2,
.proj-section.proj-dark h3,
.proj-section.proj-dark h4,
.proj-section.proj-dark p,
.proj-section.proj-dark li { color: var(--clr-text-inv); }

.proj-section.proj-dark p,
.proj-section.proj-dark li { opacity: 0.8; }

.proj-section .proj-flex {
    display: flex;
    align-items: center;
    gap: 4rem;
}

.proj-section .proj-text {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.proj-section .proj-image-wrap {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1.5rem;
    background-color: var(--clr-surface);
    border: 1px solid var(--clr-border);
    border-left: 3px solid var(--clr-gold);
    box-shadow: 0 8px 40px rgba(0, 0, 0, 0.08);
    position: relative;
}

.proj-section.proj-dark .proj-image-wrap {
    background-color: rgba(255,255,255,0.04);
    border-color: var(--clr-border-inv);
    border-left-color: var(--clr-gold);
    box-shadow: 0 8px 40px rgba(0, 0, 0, 0.3);
}

.proj-section .proj-image-wrap a { display: block; }

.proj-section .proj-image-wrap img {
    width: 100%;
    height: auto;
    display: block;
    object-fit: contain;
    filter: brightness(0.95) saturate(0.85);
    transition: filter 0.4s ease, transform 0.5s ease;
    cursor: zoom-in;
}

.proj-section .proj-image-wrap:hover img {
    filter: brightness(1) saturate(1);
    transform: scale(1.01);
}

/* #region PROJECT PAGE — Two-col image sizing */
.proj-two-col .proj-image-wrap {
    width: 100%;
    aspect-ratio: 4/3;
    overflow: hidden;
    flex: unset;
    align-self: stretch;
}

.proj-two-col .proj-image-wrap img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.proj-two-col .proj-image-wrap.is-photo img {
    object-fit: cover;
    object-position: center top;
}

.proj-two-col .proj-image-wrap.is-diagram {
    background-color: #fff;
    padding: 0.75rem;
}

.proj-section.proj-dark .proj-two-col .proj-image-wrap.is-diagram {
    background-color: #fff;
}
/* #endregion */

/* Metal tags */
.proj-tag {
    font-family: var(--ff-mono);
    font-size: 0.625rem;
    letter-spacing: 0.3em;
    color: var(--clr-gold);
    text-transform: uppercase;
    display: block;
    margin-bottom: 1.25rem;
    padding-bottom: 0.875rem;
    border-bottom: 1px solid var(--clr-border);
    width: fit-content;
}

.proj-section.proj-dark .proj-tag { border-bottom-color: rgba(255,255,255,0.12); }

.proj-section h2 { font-size: 2.5rem; margin-bottom: 0.5rem; line-height: 1.1; }

.proj-section .proj-subtitle {
    font-family: var(--ff-display);
    font-size: 1.5rem;
    font-weight: 600;
    color: var(--clr-text);
    opacity: 1;
    margin-bottom: 0.5rem;
    font-style: normal;
    line-height: 1.3;
}

.proj-section.proj-dark .proj-subtitle { color: var(--clr-text-inv); }

.proj-section h4 {
    font-size: 0.9375rem;
    color: var(--clr-muted);
    font-family: var(--ff-body);
    font-weight: 400;
    letter-spacing: 0;
    text-transform: none;
    margin-bottom: 1.5rem;
}

.proj-section.proj-dark h4 { color: var(--clr-muted-inv); }
.proj-section p { opacity: 0.75; margin-bottom: 1rem; }

/* #region Stat grid */
.proj-stats {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0;
    margin-bottom: 1.75rem;
    border: 1px solid var(--clr-border);
}

.proj-stat {
    padding: 1rem 1.25rem;
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    border-right: 1px solid var(--clr-border);
    border-bottom: 1px solid var(--clr-border);
}

.proj-stat:nth-child(2n) { border-right: none; }
.proj-stat:nth-last-child(-n+2) { border-bottom: none; }

.proj-stat .stat-val {
    font-family: var(--ff-display);
    font-size: 1.25rem;
    font-weight: 600;
    color: var(--clr-gold);
    line-height: 1.2;
}

.proj-stat .stat-label {
    font-family: var(--ff-mono);
    font-size: 0.6875rem;
    letter-spacing: 0.08em;
    color: var(--clr-muted);
    text-transform: uppercase;
}

.proj-section.proj-dark .proj-stats { border-color: rgba(255,255,255,0.1); }
.proj-section.proj-dark .proj-stat { border-color: rgba(255,255,255,0.1); }
.proj-section.proj-dark .stat-label { color: var(--clr-muted-inv); }

/* ── Presentation-style two-column Silver / Gold stats ── */
.proj-stats--presentation {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.5rem;
    border: none;
    margin-bottom: 1.75rem;
}
.pstat-group {
    display: flex;
    flex-direction: column;
    gap: 0;
}
.pstat-group-label {
    font-family: var(--ff-mono);
    font-size: 0.625rem;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--clr-muted);
    margin-bottom: 0.75rem;
    display: block;
}
.pstat-item {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    padding: 0.625rem 0 0.625rem 0.875rem;
    margin-bottom: 0.625rem;
}
.pstat-item:last-child { margin-bottom: 0; }
.pstat-group--silver .pstat-item {
    border-left: 0.2rem solid var(--clr-border);
}
.pstat-group--gold .pstat-item {
    border-left: 0.2rem solid var(--clr-gold);
}
.pstat-val {
    font-family: var(--ff-display);
    font-size: 1.125rem;
    font-weight: 700;
    color: var(--clr-text);
    line-height: 1.25;
    display: block;
}
.pstat-id {
    font-family: var(--ff-mono);
    font-size: 0.625rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--clr-muted);
    display: block;
    margin-top: 0.25rem;
}
/* #endregion */

/* Pull quote */
.proj-pullquote {
    margin: 1.75rem 0;
    padding: 0;
    border: none;
    background: none;
}

.proj-section.proj-dark .proj-pullquote { background: none; }

.proj-pullquote p {
    font-family: var(--ff-display) !important;
    font-size: 1.375rem !important;
    font-weight: 600 !important;
    font-style: normal !important;
    line-height: 1.5;
    margin: 0;
    color: var(--clr-text);
    opacity: 1 !important;
}

.proj-section.proj-dark .proj-pullquote p { color: var(--clr-text-inv); }

/* ── Divider between project sections ── */
.proj-divider {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    padding: 0;
    background-color: var(--clr-bg);
}

.proj-divider span {
    flex: 1;
    height: 1px;
    background-color: var(--clr-border);
}

.proj-divider-diamond {
    flex: 0 !important;
    width: 0.5rem;
    height: 0.5rem;
    background-color: var(--clr-gold) !important;
    transform: rotate(45deg);
}

/* ── proj-cta: prominent button with fill-from-left hover ── */
.proj-cta {
    display: inline-flex;
    align-self: flex-start;
    align-items: center;
    gap: 0.75rem;
    padding: 0.875rem 2rem;
    border: 1.5px solid var(--clr-gold);
    color: var(--clr-gold);
    font-family: var(--ff-body);
    font-size: 0.8125rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    position: relative;
    overflow: hidden;
    margin-top: 1rem;
    transition: color 0.35s ease;
}

/* Sliding fill */
.proj-cta::before {
    content: "";
    position: absolute;
    inset: -2px;
    background-color: var(--clr-gold);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
    z-index: 0;
}

.proj-cta .cta-text,
.proj-cta .cta-arrow {
    position: relative;
    z-index: 1;
}

.proj-cta .cta-arrow {
    display: inline-block;
    transition: transform 0.35s cubic-bezier(0.34, 1.56, 0.64, 1);
    font-style: normal;
}

.proj-cta:hover { color: var(--clr-navy); }
.proj-cta:hover::before { transform: scaleX(1); }
.proj-cta:hover .cta-arrow { transform: translateX(6px); }

/* On dark navy sections */
.proj-section.proj-dark .proj-cta {
    border-color: rgba(201, 168, 76, 0.55);
    color: var(--clr-gold);
}

.proj-section.proj-dark .proj-cta:hover { color: var(--clr-navy); }

@media only screen and (max-width: 900px) {
    .proj-section .proj-flex { flex-direction: column !important; gap: 2rem; }
    .proj-section h2 { font-size: 2rem; }
}

@media only screen and (max-width: 600px) {
    .proj-section { padding-top: 3rem; padding-bottom: 3rem; }
    .proj-section h2 { font-size: 1.75rem; }
    .proj-stats { grid-template-columns: 1fr; }
    .proj-stat { border-right: none; }
    .proj-stat:nth-last-child(-n+2) { border-bottom: 1px solid var(--clr-border); }
    .proj-stat:last-child { border-bottom: none; }
    .proj-section.proj-dark .proj-stat:nth-last-child(-n+2) { border-color: rgba(255,255,255,0.1); }
    .proj-stats--presentation { grid-template-columns: 1fr 1fr; gap: 1rem; }
    .pstat-val { font-size: 1rem; }
}

/* ── Equivalent grade disclaimer (full-width under proj-flex) ── */
.proj-section .proj-eq-disclaimer {
    font-style: italic;
    font-size: 0.5rem;
    line-height: 1.5;
    opacity: 0.4;
    margin-top: 2.5rem;
    margin-bottom: 0;
    max-width: none;
}

/* #endregion */

/* #region PROJECT DETAIL PAGES */

/* ── Project page wrapper ── */
.proj-page { display: block; }

/* ── Header section: tag + title + stats + image ── */
.proj-page-header {
    padding-top: 4rem;
    padding-bottom: 4rem;
    background-color: var(--clr-bg);
    border-top: none;
}

/* ── Image placeholder (while awaiting real images) ── */
.proj-placeholder-img {
    width: 100%;
    aspect-ratio: 4/3;
    background-color: var(--clr-surface-alt);
    border: 1px dashed var(--clr-border);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    position: relative;
    overflow: hidden;
}
.proj-placeholder-img.ratio-wide { aspect-ratio: 16/9; }
.proj-placeholder-img.ratio-map  { aspect-ratio: 5/4; }
.proj-placeholder-img::before {
    content: "";
    position: absolute;
    inset: 0;
    background: repeating-linear-gradient(
        -45deg,
        transparent,
        transparent 12px,
        var(--clr-border) 12px,
        var(--clr-border) 13px
    );
    opacity: 0.4;
}
.proj-placeholder-img .ph-label {
    position: relative;
    z-index: 1;
    font-family: var(--ff-mono);
    font-size: 0.5625rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--clr-muted);
    background-color: var(--clr-surface-alt);
    padding: 0.375rem 0.875rem;
    border: 1px solid var(--clr-border);
    text-align: center;
}
.proj-section.proj-dark .proj-placeholder-img {
    background-color: rgba(255,255,255,0.03);
    border-color: rgba(255,255,255,0.15);
}
.proj-section.proj-dark .proj-placeholder-img::before {
    background: repeating-linear-gradient(
        -45deg,
        transparent,
        transparent 12px,
        rgba(255,255,255,0.07) 12px,
        rgba(255,255,255,0.07) 13px
    );
    opacity: 1;
}
.proj-section.proj-dark .proj-placeholder-img .ph-label {
    color: var(--clr-muted-inv);
    background-color: rgba(255,255,255,0.06);
    border-color: rgba(255,255,255,0.2);
}

/* ── Section title bar ── */
.proj-section-label {
    font-family: var(--ff-mono);
    font-size: 0.625rem;
    letter-spacing: 0.3em;
    text-transform: uppercase;
    color: var(--clr-gold);
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 2rem;
}
.proj-section-label::after {
    content: "";
    flex: 1;
    height: 1px;
    background-color: var(--clr-border);
}
.proj-section.proj-dark .proj-section-label { color: var(--clr-gold); }
.proj-section.proj-dark .proj-section-label::after { background-color: var(--clr-border-inv); }

/* ── Highlights list ── */
.proj-highlights-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.875rem;
}
.proj-highlights-list li {
    display: flex;
    align-items: flex-start;
    gap: 0.875rem;
    font-size: 1rem;
    line-height: 1.6;
    padding: 1rem 1.25rem;
    background-color: rgba(255,255,255,0.04);
    border-left: 2px solid var(--clr-gold);
}
.proj-highlights-list li::before {
    content: "";
    display: block;
    width: 0.375rem;
    height: 0.375rem;
    background-color: var(--clr-gold);
    border-radius: 50%;
    flex-shrink: 0;
    margin-top: 0.5rem;
}

/* ── Intercepts / data list ── */
.proj-intercepts {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}
.proj-intercept-item {
    display: flex;
    gap: 1rem;
    padding: 0.875rem 1.25rem;
    background-color: var(--clr-surface);
    border: 1px solid var(--clr-border);
    border-left: 3px solid var(--clr-gold);
    font-size: 0.9375rem;
    line-height: 1.5;
}
.proj-intercept-item .hole-id {
    font-family: var(--ff-mono);
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--clr-gold);
    white-space: nowrap;
    padding-top: 0.125rem;
    min-width: 5rem;
}

/* ── Timeline ── */
.proj-timeline {
    display: flex;
    flex-direction: column;
    position: relative;
    padding-left: 2rem;
}
.proj-timeline::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.75rem;
    bottom: 0.75rem;
    width: 1px;
    background: var(--clr-border-inv);
}
.proj-timeline-item {
    display: flex;
    gap: 1.5rem;
    position: relative;
    padding-bottom: 2rem;
}
.proj-timeline-item:last-child { padding-bottom: 0; }
.proj-timeline-year {
    font-family: var(--ff-mono);
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--clr-gold);
    white-space: nowrap;
    min-width: 3.5rem;
    padding-top: 0.125rem;
    position: relative;
}
.proj-timeline-year::before {
    content: "";
    position: absolute;
    left: -2.375rem;
    top: 0.4rem;
    width: 0.5rem;
    height: 0.5rem;
    background-color: var(--clr-gold);
    border-radius: 50%;
}
.proj-timeline-body {
    font-size: 0.9375rem;
    line-height: 1.6;
    opacity: 0.85;
    color: var(--clr-text-inv);
}

/* ── Section sub-label (within a section) ── */
.proj-section-sublabel {
    font-family: var(--ff-mono);
    font-size: 0.5625rem;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: var(--clr-gold);
    margin: 2rem 0 1rem;
    display: block;
}
.proj-section.proj-dark .proj-section-sublabel { color: var(--clr-gold); }

/* ── Intercepts 2-column grid ── */
.proj-intercepts-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.5rem;
}
@media only screen and (max-width: 700px) {
    .proj-intercepts-grid { grid-template-columns: 1fr; }
}

/* ── Disclaimer text ── */
.proj-disclaimer {
    margin-top: 2rem;
    padding: 1.25rem 1.5rem;
    border: 1px solid rgba(255,255,255,0.12);
    background-color: rgba(0,0,0,0.15);
}
.proj-disclaimer p,
.proj-disclaimer * {
    font-size: 0.75rem !important;
    line-height: 1.7;
    color: var(--clr-muted-inv);
    opacity: 0.65;
}

/* ── Two-column content layout ── */
.proj-two-col {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 3rem;
    align-items: center;
}
.proj-two-col.align-top { align-items: start; }
.proj-two-col.img-left { direction: rtl; }
.proj-two-col.img-left > * { direction: ltr; }

/* ── Parallax/bg image section ── */
.proj-section.proj-bg {
    background-size: cover;
    background-position: center;
    position: relative;
}
.proj-section.proj-bg::before {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(10, 15, 12, 0.72);
    z-index: 0;
}
.proj-section.proj-bg > .boxbox {
    position: relative;
    z-index: 1;
}

/* ── Work Programs / Phase list ── */
.proj-phases {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2rem;
}
.proj-phase {
    padding: 2rem;
    background-color: rgba(255,255,255,0.04);
    border: 1px solid var(--clr-border-inv);
    border-top: 3px solid var(--clr-gold);
}
.proj-phase h4 {
    font-family: var(--ff-mono) !important;
    font-size: 0.75rem !important;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--clr-gold) !important;
    margin-bottom: 1.25rem !important;
}
.proj-phase ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.625rem;
}
.proj-phase li {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    font-size: 0.9375rem;
    line-height: 1.5;
    color: var(--clr-text-inv);
    opacity: 0.85;
}
.proj-phase li::before {
    content: "—";
    color: var(--clr-gold);
    flex-shrink: 0;
}

/* ── Phase 1 key result cards ── */
.proj-phase1-results {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    border: 1px solid var(--clr-border);
    margin: 2rem 0;
}
.proj-phase1-result {
    padding: 1.5rem 1.25rem;
    text-align: center;
    border-right: 1px solid var(--clr-border);
}
.proj-phase1-result:last-child { border-right: none; }
.proj-phase1-result .result-val {
    font-family: var(--ff-display);
    font-size: 1.75rem;
    font-weight: 700;
    color: var(--clr-gold);
    line-height: 1.2;
    display: block;
}
.proj-phase1-result .result-label {
    font-family: var(--ff-mono);
    font-size: 0.625rem;
    letter-spacing: 0.12em;
    color: var(--clr-muted);
    text-transform: uppercase;
    margin-top: 0.25rem;
    display: block;
}

/* ── Phase 1 results — dark section variants ── */
.proj-section.proj-dark .proj-phase1-results {
    border-color: var(--clr-border-inv);
}
.proj-section.proj-dark .proj-phase1-result {
    border-right-color: var(--clr-border-inv);
}
.proj-section.proj-dark .proj-phase1-result:last-child { border-right: none; }
.proj-section.proj-dark .proj-phase1-result .result-label { color: var(--clr-muted-inv); }

/* ── Phase 1 dual-column (Silver / Gold) layout ── */
.proj-phase1-results--dual {
    display: grid;
    grid-template-columns: 1fr 1fr;
    border: 1px solid var(--clr-border);
    margin: 2rem 0;
}
.proj-phase1-result-group {
    display: flex;
    flex-direction: column;
    border-right: 1px solid var(--clr-border);
}
.proj-phase1-result-group:last-child { border-right: none; }
.proj-phase1-result-group .result-group-label {
    font-family: var(--ff-mono);
    font-size: 0.625rem;
    font-weight: 700;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--clr-muted);
    padding: 0.75rem 1.25rem 0.5rem;
    border-bottom: 1px solid var(--clr-border);
}
.proj-phase1-results--dual .proj-phase1-result {
    border-right: none;
    border-bottom: 1px solid var(--clr-border);
    text-align: left;
}
.proj-phase1-results--dual .proj-phase1-result:last-child { border-bottom: none; }
.proj-section.proj-dark .proj-phase1-results--dual {
    border-color: var(--clr-border-inv);
}
.proj-section.proj-dark .proj-phase1-result-group {
    border-right-color: var(--clr-border-inv);
}
.proj-section.proj-dark .proj-phase1-result-group .result-group-label {
    color: var(--clr-muted-inv);
    border-bottom-color: var(--clr-border-inv);
}
.proj-section.proj-dark .proj-phase1-results--dual .proj-phase1-result {
    border-bottom-color: var(--clr-border-inv);
}
.proj-section.proj-dark .proj-phase1-results--dual .proj-phase1-result:last-child { border-bottom: none; }

/* ── Phase 1 program highlights bullets ── */
.proj-phase1-highlights-wrap {
    margin-top: 2rem;
    padding-top: 2rem;
    border-top: 1px solid var(--clr-border-inv);
}
.proj-phase1-highlights {
    list-style: none;
    padding: 0;
    margin: 1.25rem 0 0;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}
.proj-phase1-highlights li {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    font-size: 0.9375rem;
    line-height: 1.6;
}
.proj-phase1-highlights li::before {
    content: "›";
    color: var(--clr-gold);
    font-size: 1.125rem;
    font-weight: 700;
    line-height: 1.4;
    flex-shrink: 0;
}

/* ── Row variant: 3 bullets side-by-side at ~30% each ── */
.proj-phase1-highlights--row {
    flex-direction: row;
    gap: 2rem;
}
.proj-phase1-highlights--row li {
    width: 30%;
    flex-shrink: 0;
}

/* ── CEO / Executive quote box ── */
.proj-ceo-quote {
    background-color: var(--clr-gold);
    padding: 2rem 2.25rem;
}
.proj-ceo-quote p {
    font-size: 0.9375rem;
    line-height: 1.75;
    color: var(--clr-navy) !important;
    margin: 0;
}
.proj-ceo-quote .quote-attribution {
    display: block;
    margin-top: 1rem;
    font-weight: 700;
    font-style: italic;
    font-size: 0.875rem;
    color: var(--clr-navy);
    text-align: right;
}

/* ── Next Steps 2×2 grid ── */
.proj-next-steps {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2.5rem 4rem;
    margin-top: 2.5rem;
}
.proj-next-step h4 {
    font-family: var(--ff-display) !important;
    font-size: 1.25rem !important;
    font-weight: 600 !important;
    color: var(--clr-gold) !important;
    margin-bottom: 0.5rem !important;
}
.proj-next-step p {
    font-size: 0.9375rem;
    line-height: 1.65;
    color: var(--clr-text-inv);
    opacity: 0.85;
    margin: 0;
}

/* ── Drill results table ── */
.proj-drill-table-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}
.proj-drill-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.875rem;
    min-width: 42rem;
}
.proj-drill-table thead tr {
    background-color: var(--clr-navy);
}
.proj-drill-table thead th {
    padding: 0.875rem 0.875rem;
    text-align: left;
    font-family: var(--ff-mono);
    font-size: 0.625rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    font-weight: 600;
    color: var(--clr-text-inv);
    white-space: nowrap;
    border-right: 1px solid rgba(255,255,255,0.1);
}
.proj-drill-table thead th:last-child { border-right: none; }
.proj-drill-table tbody td {
    padding: 0.75rem 0.875rem;
    border-bottom: 1px solid var(--clr-border);
    color: var(--clr-text);
}
.proj-drill-table tbody tr.main-row td {
    font-weight: 600;
    background-color: var(--clr-surface-alt);
}
.proj-drill-table tbody tr.main-row td:first-child {
    font-family: var(--ff-mono);
    font-size: 0.9375rem;
    color: var(--clr-gold);
}
.proj-drill-table tbody tr.incl-row td {
    font-style: italic;
    font-size: 0.8125rem;
    color: var(--clr-muted);
    background-color: var(--clr-surface);
}
.proj-drill-table tbody tr.incl-row td:first-child {
    padding-left: 1.75rem;
}
.proj-drill-table .td-highlight {
    color: var(--clr-navy);
    font-weight: 700;
}
.proj-drill-table-note {
    font-size: 0.6875rem;
    color: var(--clr-muted);
    line-height: 1.6;
    margin-top: 1rem;
}

/* ── Responsive ── */
@media only screen and (max-width: 900px) {
    .proj-two-col,
    .proj-phases,
    .proj-next-steps {
        grid-template-columns: 1fr;
        gap: 2rem;
    }
    .proj-two-col.img-left { direction: ltr; }
    .proj-phase1-results { grid-template-columns: 1fr; }
    .proj-phase1-result {
        border-right: none;
        border-bottom: 1px solid var(--clr-border);
    }
    .proj-phase1-result:last-child { border-bottom: none; }
    .proj-section.proj-dark .proj-phase1-result { border-bottom-color: var(--clr-border-inv); }
    .proj-section.proj-dark .proj-phase1-result:last-child { border-bottom: none; }
    .proj-phase1-results--dual { grid-template-columns: 1fr 1fr; }
    .proj-phase1-results--dual .proj-phase1-result { text-align: left; }
    .proj-phase1-highlights--row { flex-direction: column; }
    .proj-phase1-highlights--row li { width: 100%; }
    .proj-placeholder-img { aspect-ratio: 16/9; }
}
@media only screen and (max-width: 600px) {
    .proj-intercept-item { flex-direction: column; gap: 0.25rem; }
    .proj-intercept-item .hole-id { min-width: unset; }
}
/* #endregion */

/* #region SECTION: PAGETOP */
.pagetop {
    background-color: var(--clr-navy);
    position: relative;
    isolation: isolate;
    z-index: 10;
}
.pagetop::before { display: none; }
.pagetop::after {
    content: "";
    position: absolute;
    inset: 0;
    background-image: url('images/bg_content_top.jpg');
    background-size: cover;
    background-position: center;
    opacity: 0.25;
    z-index: 0;
    pointer-events: none;
}
.pagetop > .boxbox {
    position: relative;
    z-index: 1;
    padding-top: 10rem;
    padding-bottom: 2.5rem;
}
.pagetop h1 { font-size: 4rem; color: #ffffff !important; }
@media only screen and (max-width: 1000px) {
    .pagetop > .boxbox { padding-top: 8rem; padding-bottom: 2rem; }
    .pagetop h1 { font-size: 3rem; }
}
@media only screen and (max-width: 600px) {
    .pagetop > .boxbox { padding-top: 7rem; padding-bottom: 1.5rem; }
    .pagetop h1 { font-size: 2rem; }
}
/* #endregion */

/* #region COMPONENT: FOOTER */
/* #region COMPONENT: FOOTER */

.footer {
    background-color: var(--clr-navy);
}

/* ── CTA Band ── */
.footer-cta {
    border-top: 3px solid var(--clr-gold);
    border-bottom: 1px solid var(--clr-border-inv);
    padding: 3rem 0;
}

.footer-cta-inner {
    display: flex;
    align-items: center;
    gap: 3rem;
    position: relative;
}

.footer-cta-text {
    flex: 0 0 auto;
    max-width: 22rem;
}

.footer-cta-text h3 {
    color: var(--clr-text-inv);
    font-size: 1.5rem;
    font-family: var(--ff-display);
    font-weight: 600;
    margin-bottom: 0.5rem;
}

.footer-cta-text p {
    font-size: 0.9375rem;
    color: var(--clr-muted-inv);
    opacity: 1;
    margin: 0;
}

.footer-cta-form {
    flex: 1;
    display: flex;
    gap: 0.75rem;
    align-items: stretch;
}

.footer-cta-form input {
    padding: 0.875rem 1rem;
    font-size: 0.9375rem;
    background-color: rgba(255,255,255,0.07);
    border: 1px solid var(--clr-border-inv);
    color: var(--clr-text-inv);
    flex: 1;
    min-width: 0;
}

.footer-cta-form input::placeholder { color: var(--clr-muted-inv); }

.footer-submit {
    display: inline-flex;
    align-items: center;
    gap: 0.625rem;
    padding: 0.875rem 1.75rem;
    background-color: var(--clr-gold);
    color: var(--clr-navy);
    font-family: var(--ff-body);
    font-size: 0.8125rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    border: none;
    cursor: pointer;
    white-space: nowrap;
    transition: background-color 0.2s ease, color 0.2s ease;
    flex-shrink: 0;
}

.footer-submit:hover {
    background-color: var(--clr-gold-deep);
    color: #fff;
}

/* ── Main Body ── */
.footer-body {
    padding: 3.5rem 0;
}

.footer-grid {
    display: flex;
    align-items: flex-start;
    gap: 3rem;
}

.footer-nav-cols {
    flex: 1;
    display: flex;
    gap: 2.5rem;
    flex-wrap: wrap;
    justify-content: flex-end;
}

/* Col 1: Identity */
.footer-identity {
    flex: 0 0 18rem;
}

.footer-identity .footer-logo img {
    width: 180px;
    height: auto;
    filter: brightness(0) invert(1);
    opacity: 0.85;
    display: block;
    margin-bottom: 1.25rem;
}

.footer-identity .footer-logo .placeholder {
    color: var(--clr-text-inv);
    font-weight: 700;
    font-size: 1rem;
    letter-spacing: 0.1em;
    margin-bottom: 1.25rem;
    font-family: var(--ff-display);
}

.footer-desc {
    font-size: 0.9rem;
    color: var(--clr-muted-inv);
    line-height: 1.7;
    margin-bottom: 1.5rem;
}

.footer-desc p { font-size: 0.9rem; color: var(--clr-muted-inv); opacity: 1; margin: 0; }

/* Exchange symbols */
.footer-symbols {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 0.75rem;
    margin-bottom: 1.5rem;
    padding: 0.75rem 1rem;
    border: 1px solid var(--clr-border-inv);
    width: fit-content;
}

.sym-sep { color: var(--clr-border-inv); font-size: 0.75rem; }

.sym-item { display: flex; align-items: center; gap: 0.375rem; }

.sym-exch {
    font-family: var(--ff-mono);
    font-size: 0.625rem;
    letter-spacing: 0.1em;
    color: var(--clr-muted-inv);
    text-transform: uppercase;
}

.sym-tick {
    font-family: var(--ff-mono);
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--clr-gold);
    letter-spacing: 0.05em;
}

/* Socials */
.footer-socials { margin-top: 0.25rem; }

.footer-socials .socials-label {
    display: block;
    font-family: var(--ff-mono);
    font-size: 0.625rem;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: var(--clr-muted-inv);
    margin-bottom: 0.625rem;
}

.footer-socials .socials-icons a {
    color: var(--clr-muted-inv);
    font-size: 1.1rem;
    padding: 0.25rem;
    margin-right: 0.25rem;
    transition: color 0.2s ease;
}

.footer-socials .socials-icons:hover a { opacity: 0.5; }
.footer-socials .socials-icons a:hover { opacity: 1 !important; color: var(--clr-gold); }

/* Nav cols */
.footer-col-title {
    font-family: var(--ff-mono);
    font-size: 0.625rem;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: var(--clr-muted-inv);
    font-weight: 400;
    margin-bottom: 1.25rem;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid var(--clr-border-inv);
    line-height: 1;
}

.footer-nav {
    display: flex;
    flex-direction: column;
}

.footer-nav a {
    color: rgba(245, 240, 232, 0.6);
    font-size: 0.9375rem;
    font-weight: 400;
    padding: 0.375rem 0;
    transition: color 0.2s ease, transform 0.2s ease;
    display: block;
}

.footer-nav a:hover { color: var(--clr-gold); transform: translateX(4px); }

/* ── Subfooter ── */
.footer .subfooter {
    font-size: 0.8125rem;
    color: rgba(245, 240, 232, 0.38);
    border-top: 1px solid var(--clr-border-inv);
    padding: 1rem 0;
}

.footer .subfooter a { font-weight: 500; margin-left: 0.75rem; color: rgba(245,240,232,0.5); transition: color 0.2s ease; }
.footer .subfooter a:hover { color: var(--clr-gold); }

/* ── Responsive ── */
.footer.m1200 .footer-identity { flex: 0 0 15rem; }
.footer.m1200 .footer-nav-cols { gap: 1.75rem; }

.footer.m900 .footer-cta-inner { flex-direction: column; align-items: flex-start; gap: 1.5rem; }
.footer.m900 .footer-cta-text { max-width: 100%; }
.footer.m900 .footer-cta-form { width: 100%; }
.footer.m900 .footer-grid { flex-direction: column; }
.footer.m900 .footer-identity { flex: unset; width: 100%; }
.footer.m900 .footer-nav-cols { width: 100%; justify-content: flex-start; }

.footer.m600 .footer-cta-form { flex-direction: column; }
.footer.m600 .footer-submit { width: 100%; justify-content: center; }
.footer.m600 .footer-nav-cols { flex-direction: column; gap: 1.5rem; }
.footer.m600 .subfooter { font-size: 0.75rem; }
.footer.m600 .subfooter .boxbox { flex-direction: column; align-items: flex-start; gap: 0.5rem; }
.footer.m600 .subfooter .boxbox > div { flex-wrap: wrap; }
/* #endregion */

/* #region COMPONENT: SUBPOP */
.subpop {
    position: fixed;
    z-index: 9998;
    width: 100%; height: 100%;
    top: 0; left: 0;
    opacity: 0;
    pointer-events: none;
}

.subpop.show { opacity: 1; pointer-events: all; }

.subpop .under {
    position: absolute;
    bottom: 0; left: 0;
    width: 100%; height: 0;
    background: rgba(10, 15, 25, 0.88);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
}

.subpop.show .under { height: 100%; }

.subpop .item {
    background-color: var(--clr-navy);
    overflow: hidden;
    transform: translateY(3rem);
    opacity: 0;
    pointer-events: none;
    margin: 2rem;
    max-width: 1100px;
    border-top: 3px solid var(--clr-gold);
    box-shadow: 0 30px 80px rgba(0, 0, 0, 0.55);
}

.subpop .item.show { transform: translateY(0); opacity: 1; pointer-events: all; }

.subpop .item .text {
    text-align: center;
    color: var(--clr-text-inv);
    pointer-events: none;
    opacity: 0;
    transform: translateY(2rem);
    overflow-y: scroll;
    -ms-overflow-style: none;
    scrollbar-width: none;
    background-color: var(--clr-navy);
}

.subpop .item .text::-webkit-scrollbar { display: none; }
.subpop .item .text.show { pointer-events: all; opacity: 1; transform: translateY(0); }
.subpop .item .text img { height: 5rem; display: block; margin-left: auto; margin-right: auto; }

.subpop .item .text h3 {
    color: var(--clr-text-inv);
    font-family: var(--ff-display);
    font-weight: 700;
    margin-top: 1.25rem;
}
.subpop .item .text p { color: var(--clr-text-inv); opacity: 0.65; }

.subpop .item .text form input {
    background-color: rgba(255, 255, 255, 0.07);
    border: 1px solid var(--clr-border-inv);
    padding: 0.875rem 1rem;
    border-radius: 0;
    width: 100%;
    font-size: 1rem;
    color: var(--clr-text-inv);
}

.subpop .item .text form input::placeholder { color: var(--clr-muted-inv); }

.subpop .item .text form button {
    width: 100%;
    justify-content: center;
    margin-top: 0.75rem;
    background-color: var(--clr-gold) !important;
    border-color: var(--clr-gold) !important;
    color: var(--clr-navy) !important;
    font-weight: 700;
}

.subpop .item .text form button:hover {
    background-color: var(--clr-gold-deep) !important;
    color: #fff !important;
}

.subpop .item .text a {
    font-weight: 500;
    color: var(--clr-muted-inv);
    font-size: 0.875rem;
}
.subpop .item .text a:hover { color: var(--clr-gold); text-decoration: underline; }

.subpop .item .image {
    background-color: var(--clr-navy);
    width: 25vw;
    background-size: cover;
    background-position: center;
    position: relative;
}

#subpop .item .image { background-image: url('images/bg_content_top.jpg'); }

.subpop .item .image::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(
        135deg,
        rgba(48, 54, 50, 0.65) 0%,
        rgba(10, 12, 10, 0.50) 100%
    );
}

.subpop .item .image::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(to right, rgba(48, 54, 50, 0.55) 0%, transparent 40%);
    z-index: 1;
    pointer-events: none;
}

.subpop .close {
    color: var(--clr-text-inv);
    font-size: 1.75rem;
    position: absolute;
    top: 1rem; right: 1rem;
    opacity: 0.5;
    z-index: 10;
}

.subpop .close:hover { opacity: 1; cursor: pointer; }

@media only screen and (max-width: 1400px) { .subpop .item .text { padding: 2rem; } }
@media only screen and (max-width: 1000px) { .subpop .item .text { padding: 1.5rem; } }
@media only screen and (max-width: 800px)  { .subpop .item .text img { height: 4.25rem; } }

@media only screen and (orientation: portrait) {
    .subpop .item { flex-direction: column-reverse; }
    .subpop .item .image { width: 100%; aspect-ratio: 16/9; }
    .subpop .item .text .padtop { padding: 0; }
}
/* #endregion */

/* #region COMPONENT: FORM LOADER (glass overlay) */
.mc-loader {
    position: absolute;
    inset: 0;
    z-index: 30;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    padding: 1.5rem;
    text-align: center;
    background: rgba(18, 20, 18, 0.4);
    -webkit-backdrop-filter: blur(0.625rem) saturate(120%);
    backdrop-filter: blur(0.625rem) saturate(120%);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.25s ease;
}

.mc-loader.show { opacity: 1; pointer-events: all; }

.mc-loader__spinner {
    width: 2.75rem;
    height: 2.75rem;
    border-radius: 50%;
    border: 0.1875rem solid rgba(255, 255, 255, 0.18);
    border-top-color: var(--clr-gold);
    animation: mc-spin 0.8s linear infinite;
}

@keyframes mc-spin { to { transform: rotate(360deg); } }

.mc-loader__text {
    color: #fff;
    font-family: var(--ff-body);
    font-size: 0.9375rem;
    font-weight: 600;
    letter-spacing: 0.02em;
}

.mc-loader__text::after {
    content: '';
    display: inline-block;
    width: 1.25rem;
    text-align: left;
    animation: mc-dots 1.4s steps(4, end) infinite;
}

@keyframes mc-dots {
    0%   { content: ''; }
    25%  { content: '.'; }
    50%  { content: '..'; }
    75%  { content: '...'; }
    100% { content: ''; }
}
/* #endregion */

/* #region COMPONENT: SUBRESPONSE */
.subresponse {
    position: fixed;
    z-index: 9999;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.35s ease;
}

.subresponse.show { opacity: 1; pointer-events: all; }

.subresponse .sr-under {
    position: absolute;
    inset: 0;
    background: rgba(22, 163, 74, 0.88);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    transition: background 0.35s ease;
}

.subresponse.suberror .sr-under { background: rgba(185, 28, 28, 0.88); }

.subresponse .sr-card {
    position: relative;
    background: var(--clr-surface);
    border-radius: 0;
    border-top: 3px solid var(--clr-gold);
    padding: 3rem 2.5rem 2.5rem;
    max-width: 26rem;
    width: 100%;
    text-align: center;
    box-shadow: 0 30px 80px rgba(0, 0, 0, 0.25);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.75rem;
    transform: scale(0.88) translateY(1.25rem);
    opacity: 0;
    transition: transform 0.45s cubic-bezier(0.34, 1.56, 0.64, 1), opacity 0.3s ease;
}

.subresponse.show .sr-card { transform: scale(1) translateY(0); opacity: 1; transition-delay: 0.05s; }

.sr-check-wrap { width: 5rem; height: 5rem; margin-bottom: 0.5rem; }
.sr-check-wrap svg { width: 100%; height: 100%; overflow: visible; }

.sr-check-circle {
    fill: none;
    stroke: #16a34a;
    stroke-width: 2.5;
    stroke-dasharray: 166;
    stroke-dashoffset: 166;
    stroke-linecap: round;
    transition: stroke-dashoffset 0.55s cubic-bezier(0.65, 0, 0.45, 1);
}

.subresponse.show .sr-check-circle { stroke-dashoffset: 0; transition-delay: 0.15s; }

.sr-check-tick {
    fill: none;
    stroke: #16a34a;
    stroke-width: 2.5;
    stroke-dasharray: 48;
    stroke-dashoffset: 48;
    stroke-linecap: round;
    stroke-linejoin: round;
    transition: stroke-dashoffset 0.35s cubic-bezier(0.65, 0, 0.45, 1);
}

.subresponse.show .sr-check-tick { stroke-dashoffset: 0; transition-delay: 0.65s; }

.subresponse.suberror .sr-check-circle { stroke: #b91c1c; }
.subresponse.suberror .sr-check-tick   { stroke: #b91c1c; }

.sr-card h3 {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--clr-navy);
    font-family: var(--ff-display);
    margin: 0;
    line-height: 1.25;
}

.sr-card p { font-size: 1rem; color: var(--clr-muted); margin: 0; line-height: 1.6; }

.sr-close-btn {
    margin-top: 0.75rem;
    padding: 0.75rem 2.5rem;
    background: var(--clr-gold);
    color: var(--clr-navy);
    border: none;
    border-radius: 0;
    font-weight: 700;
    font-size: 0.875rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    cursor: pointer;
    text-decoration: none;
    display: inline-block;
    transition: background 0.2s ease, transform 0.15s ease;
}

.sr-close-btn:hover { background: var(--clr-gold-deep); transform: translateY(-0.125rem); color: #fff; }

.subresponse.suberror .sr-close-btn       { background: #b91c1c; color: #fff; }
.subresponse.suberror .sr-close-btn:hover { background: #991b1b; color: #fff; }
/* #endregion */

/* #region CUSTOM: PROJECT PAGES */
.project { background-color: var(--clr-bg); }
.project .secalt .boxbox { background-color: transparent; }
.project .block-half  { width: 50%;  flex-shrink: 0; }
.project .block-third { width: 33%;  flex-shrink: 0; }
.project .block-half img, .project .block-third img { max-width: 100%; }

.project .sandstone { background-color: var(--clr-surface-alt); background-image: none; padding-top: 0; padding-bottom: 0; }
.project .sandstone .boxbox { background-color: unset; overflow: visible; }
.project .sandstone .boxbox .featblock { margin-top: -3rem; position: relative; align-self: flex-end; }

.project .proposed { padding: 3rem; background-color: var(--clr-surface); border: 1px solid var(--clr-border); }
.project .section.figure img { border-radius: 0; box-shadow: 0 0 2rem rgba(28,50,81,0.12); }

@media only screen and (max-width: 1400px) { .project .section .maintext { padding: 3rem; } }
@media only screen and (max-width: 1000px) {
    .project .featblock { margin-bottom: 0 !important; }
    .project .half { width: 100%; }
    .project .featblock img { max-height: 50vh; }
    .project .projflex { flex-direction: column; }
    .project .block-half { width: 100%; }
}
@media only screen and (max-width: 600px) {
    .project .section .maintext { padding: 1.5rem; }
    .project .sandstone .boxbox { padding-top: 2rem; }
    .project .proposed { padding: 1.5rem; }
    .project .proposed .flex { display: block; }
    .project .proposed .flex .half:first-of-type { margin-bottom: 1rem; }
}
/* #endregion */

/* #region CUSTOM: MANAGEMENT */
#management .item, #advisors .item { padding: 4rem; background-color: var(--clr-surface); border: 1px solid var(--clr-border); border-radius: 0; }
@media only screen and (max-width: 1400px) { #management .item, #advisors .item { padding: 2.5rem; } }
@media only screen and (max-width: 600px)  { #management .item, #advisors .item { padding: 1.5rem; } }
/* #endregion */

/* #region CUSTOM: CORPORATE */
#corporate .item { border-radius: 0; overflow: hidden; background-color: var(--clr-surface); border: 1px solid var(--clr-border); }
#corporate .item .info { padding: 2.5rem; background-color: var(--clr-surface); border: 0; }
/* #endregion */

/* #region CUSTOM: STOCK */
#stock .structure .item { background-color: var(--clr-surface); border: 1px solid var(--clr-border); border-radius: 0; }
#stock .schedule .item table thead th { background-color: var(--clr-navy); color: #fff; }
/* #endregion */

/* #region CUSTOM: ARCHIVE */
#archive .newschive .item { background-color: var(--clr-surface); border: 1px solid var(--clr-border); border-radius: 0; }
#archive .newschive .item:hover { background-color: rgba(28, 50, 81, 0.04); border-color: var(--clr-navy); }
#archive .newschive .pdflink:hover { color: var(--clr-navy); border-color: var(--clr-navy); }
/* #endregion */

/* #region CUSTOM: CONTACT */
.content { background-color: var(--clr-bg); background-image: none; }
/* #endregion */

/* #region MISC */
.jrxdark { z-index: 9; padding-right: 1rem; }
@media only screen and (max-width: 1300px) {
    .jrxdark       { color: var(--clr-navy) !important; }
    .jrxdark span  { color: var(--clr-navy) !important; }
    .jrxdark span span { color: var(--clr-gold) !important; }
}

#release .newsbody { padding: 3rem; background-color: var(--clr-surface); border: 1px solid var(--clr-border); border-radius: 0; }

.checkbox-popup {
    position: absolute; top: -50px; left: 50%;
    transform: translateX(-50%);
    background: #d63031; color: white;
    padding: 8px 12px; border-radius: 4px; font-size: 12px;
    white-space: nowrap; opacity: 0; visibility: hidden;
    transition: all 0.3s ease; z-index: 1000;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
}
.checkbox-popup::after {
    content: ''; position: absolute; top: 100%; left: 50%;
    transform: translateX(-50%);
    border: 5px solid transparent; border-top-color: #d63031;
}
.checkbox-popup.show { opacity: 1; visibility: visible; top: -45px; }

/* Video modal */
.video-modal-overlay {
    position: fixed; inset: 0;
    background: rgba(10, 15, 25, 0.95);
    z-index: 9999; display: none;
    align-items: center; justify-content: center;
    opacity: 0; transition: opacity 0.3s ease;
}
.video-modal-overlay.active { display: flex; opacity: 1; }
.video-modal-content { position: relative; width: 95%; max-width: 90rem; aspect-ratio: 16 / 9; }
.video-modal-content iframe { width: 100%; height: 100%; border: none; }
.video-modal-close {
    position: absolute; top: -3rem; right: 0;
    width: 2.5rem; height: 2.5rem;
    background: transparent; border: none; cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    transition: transform 0.2s ease;
}
.video-modal-close:hover { transform: scale(1.15); }
.video-modal-close svg { width: 2rem; height: 2rem; stroke: #fff; }
/* #endregion */

/* #region Project Pages */
.project .section img {
    margin-left: auto;
    margin-right: auto;
    display: block;
    transition: all .2s;
    max-width: 100%;
}
.project .featblock span {
    text-align: center;
    font-weight: bold;
    margin-top: 0.5rem;
    display: block;
}
.project img:hover { cursor: pointer; }
.content .project .section iframe {
    width: 100%;
    aspect-ratio: 16/9;
}
.project .gallery .galleryinner { border: 2px solid; }
.project .gallery h3 {
    text-align: center;
    transform: translateY(-50%);
    background-color: #fff;
    display: table;
    margin: auto;
    padding: 1rem;
    margin-bottom: -1rem !important;
}
.project .gallery img {
    height: 25vh;
    cursor: pointer;
    transition: all .3s;
}
.project .gallery img:hover { transform: scale(1.05); }
.project .gallery .categories .item {
    padding: 0.5rem 1rem;
    background-color: #ccc;
    color: #111;
    border-radius: 0.5rem;
    font-weight: 600;
    font-size: 1.2rem;
    cursor: pointer;
    border: 2px solid #ccc;
    transition: all .2s;
}
.project .gallery .categories .item:hover {
    background-color: unset;
    border-color: #111;
}
.project .gallery .categories .active {
    background-color: #111 !important;
    border-color: #111 !important;
    color: #fff !important;
    cursor: default;
}
.project .gallery .category { border: 2px solid #ccc; }
.project .gallery .pics {
    padding: 1rem;
    position: relative;
    overflow: hidden;
    transition: all 0.3s;
}
.project .gallery .pics .overlay {
    position: absolute;
    width: 100%;
    top: 0;
    left: 0;
    height: 100%;
    backdrop-filter: blur(0);
    background-color: rgba(255, 255, 255, 0.75);
    opacity: 0;
    z-index: 2;
    pointer-events: none;
    transition: all 0.3s;
}
.project .gallery .loading .overlay {
    opacity: 1;
    backdrop-filter: blur(10px);
}
.project .disclaimer p,
.project .disclaimer p *,
.project .disclaimer ul * { font-size: 1rem; }
@media only screen and (max-width: 1000px) {
    .project .section .flex {
        flex-direction: column;
        row-gap: 1rem;
    }
    .project .featblock.half { width: 100%; }
    .project .gallery img { height: 15vh; }
}
@media only screen and (max-width: 600px) {
    .project .gallery img { height: 10vh; }
}
/* #endregion */

/* #region Contact Page */

.content .contact { padding-bottom: 4rem; }

/* ── Info sidebar ── */
.contact .info {
    display: flex;
    flex-direction: column;
    gap: 0;
}
.contact .info .item {
    padding-bottom: 2rem;
    margin-bottom: 2rem;
    border-bottom: 1px solid var(--clr-border);
}
.contact .info .item:last-child {
    border-bottom: none;
    padding-bottom: 0;
    margin-bottom: 0;
}
.contact .info .icon {
    font-size: 1rem;
    color: var(--clr-gold);
    align-self: flex-start;
    border: none;
    border-radius: 0;
    padding: 0;
    margin-bottom: 0.75rem;
}
.contact .info h4 {
    font-family: var(--ff-mono);
    font-size: 0.625rem;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: var(--clr-gold);
    margin: 0 0 0.5rem;
    font-weight: 500;
}
.contact .info p {
    font-size: 0.9375rem;
    line-height: 1.65;
    color: var(--clr-text);
    opacity: 0.75;
    margin: 0;
}
.contact .info .clinks {
    display: flex;
    flex-direction: column;
    gap: 0.375rem;
    margin-top: 0.625rem;
}
.contact .info a {
    font-size: 0.9375rem;
    color: var(--clr-text);
    font-weight: 500;
    transition: color 0.2s ease;
    display: flex;
    align-items: center;
    gap: 0.625rem;
}
.contact .info a span {
    font-size: 0.875rem;
    width: 1.125rem;
    text-align: center;
    color: var(--clr-gold);
    flex-shrink: 0;
    margin-right: 0;
}
.contact .info .clinks:hover a { opacity: 0.35; }
.contact .info .clinks a:hover { opacity: 1 !important; color: var(--clr-navy); }

/* ── Form panel ── */
.contact .formcont {
    background-color: var(--clr-surface);
    border: 1px solid var(--clr-border);
    border-top: 3px solid var(--clr-gold);
    padding: 2.5rem !important;
}
.contact .formcont > h3 {
    font-family: var(--ff-display);
    font-size: 1.375rem;
    font-weight: 700;
    color: var(--clr-navy);
    margin-top: 0;
    margin-bottom: 1.5rem;
}

/* ── Form fields ── */
.contact form input,
.contact form textarea {
    background-color: var(--clr-bg);
    border: 1px solid var(--clr-border);
    border-bottom-width: 1px;
    padding: 0.875rem 1rem;
    font-size: 0.9375rem;
    font-family: inherit;
    color: var(--clr-text);
    width: 100%;
    transition: border-color 0.2s ease;
    border-radius: 0;
    display: block;
    margin-bottom: 0.625rem;
}
.contact form input:focus,
.contact form textarea:focus {
    outline: none;
    border-color: var(--clr-gold);
}
.contact form input::placeholder,
.contact form textarea::placeholder { color: var(--clr-muted); }
.contact form .full { width: 100%; }
.contact form textarea { resize: vertical; margin-bottom: 0; }
.contact form .flex.colgap { gap: 0.625rem; }
.contact form .halfgap { flex: 1; min-width: 0; margin-bottom: 0; }

/* ── US person checkbox ── */
.contact .checkbox {
    border: 2px solid var(--clr-border);
    border-radius: 0.125rem;
    width: 1.375rem;
    height: 1.375rem;
    min-width: 1.375rem;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: border-color 0.2s ease, background-color 0.2s ease;
    position: relative;
    flex-shrink: 0;
}
.contact .checkbox:hover { border-color: var(--clr-gold); }
.contact .checkbox.checked {
    border-color: var(--clr-gold);
    background-color: var(--clr-gold);
}
.contact .checkbox svg {
    opacity: 0;
    position: absolute;
    width: 0.875rem;
    height: 0.875rem;
    color: var(--clr-navy);
    stroke-width: 3;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) scale(1.1);
    transition: opacity 0.2s ease, transform 0.2s ease;
}
.contact .checkbox:hover svg { opacity: 0.25; }
.contact .checkbox.checked svg {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
    color: var(--clr-navy);
}
.contact form .checktext {
    font-size: 0.875rem;
    font-weight: 400;
    color: var(--clr-text);
    opacity: 0.8;
}

/* ── Tooltip ── */
.contact form .tooltip-wrapper { position: relative; }
.contact form .tooltip-wrapper .tooltip-message {
    visibility: hidden;
    opacity: 0;
    background-color: var(--error-red, #c0392b);
    color: #fff;
    font-size: 0.75rem;
    text-align: center;
    padding: 0.375rem 0.75rem;
    position: absolute;
    z-index: 1;
    bottom: calc(100% + 0.5rem);
    left: 50%;
    transform: translateX(-50%);
    white-space: nowrap;
    transition: opacity 0.2s ease;
}
.contact form .tooltip-wrapper .tooltip-message::after {
    content: "";
    position: absolute;
    top: 100%;
    left: 50%;
    margin-left: -5px;
    border-width: 5px;
    border-style: solid;
    border-color: var(--error-red, #c0392b) transparent transparent transparent;
}
.contact form .tooltip-wrapper.show-tooltip .tooltip-message {
    visibility: visible;
    opacity: 1;
}

/* ── Subscribe checkbox (native) ── */
.contact .checkbox-label {
    font-size: 0.875rem;
    color: var(--clr-text);
    opacity: 0.7;
    cursor: pointer;
    gap: 0.5rem;
}
.contact input[type="checkbox"] { display: none; }
.contact .custom-checkbox {
    width: 1.125rem;
    height: 1.125rem;
    min-width: 1.125rem;
    border: 1px solid var(--clr-border);
    display: inline-block;
    position: relative;
    flex-shrink: 0;
    transition: border-color 0.2s ease, background-color 0.2s ease;
}
.contact input[type="checkbox"]:checked + .custom-checkbox {
    background-color: var(--clr-gold);
    border-color: var(--clr-gold);
}
.contact input[type="checkbox"]:checked + .custom-checkbox::after {
    content: "";
    position: absolute;
    left: 0.25rem;
    top: 0.0625rem;
    width: 0.3125rem;
    height: 0.5625rem;
    border: 2px solid var(--clr-navy);
    border-top: none;
    border-left: none;
    transform: rotate(45deg);
}

/* ── Button row ── */
.contact form .buttonflex { gap: 0.875rem; margin-top: 1rem; }
.contact .formcont .buttonflex { margin-top: 0.875rem; }

/* ── Form success fade ── */
.contact .formsuccess {
    opacity: 0.15;
    pointer-events: none;
}

/* ── Success overlay ── */
.contact .sysmsg {
    position: fixed;
    top: 0; left: 0;
    width: 100%; height: 100%;
    z-index: 9999;
    padding: 1.5rem;
}
.contact .sysmsg .under {
    position: absolute;
    bottom: 0; left: 0;
    width: 100%; height: 100%;
    background-color: var(--clr-navy);
    opacity: 0.96;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
}
.contact .sysmsg .maintext {
    text-align: center;
    position: relative;
    border: 1px solid var(--clr-border-inv);
    background-color: rgba(255, 255, 255, 0.04);
    color: var(--clr-text-inv);
}
.contact .sysmsg .maintext .icon {
    font-size: 2.5rem;
    color: var(--clr-gold);
    display: block;
    margin-bottom: 0.5rem;
}
.contact .sysmsg .maintext h3 { color: var(--clr-text-inv) !important; margin-bottom: 0.5rem; }
.contact .sysmsg .maintext p  { color: var(--clr-text-inv) !important; opacity: 0.7; }
.contact .sysmsg .maintext .closelink {
    cursor: pointer;
    font-size: 0.875rem;
    font-weight: 700;
    color: var(--clr-navy);
    background-color: var(--clr-gold);
    border: none;
    border-radius: 0;
    padding: 0.75rem 2.5rem;
    display: inline-block;
    transition: background-color 0.2s ease, color 0.2s ease;
    margin-top: 0.75rem;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    font-family: var(--ff-mono);
    font-size: 0.75rem;
}
.contact .sysmsg .maintext .closelink:hover {
    background-color: var(--clr-gold-deep);
    color: #fff;
}
.contact .sysmsg .formhide {
    opacity: 0;
    transform: translateY(2rem);
    pointer-events: none;
}
.contact .sysmsg .underhide { height: 0; pointer-events: none; }
.contact .sysmsg.bighide    { opacity: 0; pointer-events: none; }

/* ── Responsive ── */
.contact.m1200 .buttonflex { flex-wrap: wrap; }
.contact.m900 {
    flex-direction: column;
    align-items: flex-start;
    row-gap: 2rem;
}
.contact.m900 .info {
    width: 100%;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 1.5rem;
}
.contact.m900 .info .item {
    width: calc(50% - 0.75rem);
    padding-bottom: 0;
    border-bottom: none;
    margin-bottom: 0;
}
.contact.m600 .info { flex-direction: column; }
.contact.m600 .info .item { width: 100%; }
.contact.m600 .formcont { padding: 1.5rem !important; }
.contact.m600 form input { width: 100%; }
.contact.m600 .buttonflex { flex-direction: column; align-items: stretch; }
.contact.m600 .buttonflex .mainlink { width: 100%; text-align: center; }
.contact.m450 form .flex.colgap { flex-direction: column; }
.contact.m450 form .halfgap { width: 100%; margin-bottom: 0.625rem; }
/* #endregion */

/* #region News Page */
.news .item {
    width: calc(32% - 1rem);
    font-size: 1.25rem;
    background-color: #fff;
    box-shadow: 0 0 3rem rgba(0, 0, 0, 0.1);
}
.news .item:hover {
    transform: scale(1.05);
    z-index: 2;
    box-shadow: 0 0 1rem rgba(0, 0, 0, 0.25);
    border-color: transparent;
}
.news .item .ogimage {
    aspect-ratio: 16/9;
    overflow: hidden;
}
.news .item .ogimage .under {
    background-size: cover;
    background-position: center;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.25);
    transition: all 0.3s ease-in-out;
    opacity: 0.25;
}
.news .item:hover .ogimage .under {
    transform: scale(1.1);
    opacity: 0.75;
}
.news .item .date {
    background-color: #222;
    position: absolute;
    left: -0.5rem;
    top: 1rem;
    color: #fff;
    padding: 0.5rem;
    font-size: 1rem;
    font-weight: 600;
}
.news .item .title {
    color: #222;
    font-weight: 600;
    font-size: 1.5rem;
    padding: 2rem;
}
.news .yearlist a {
    border: 2px solid rgba(0, 0, 0, 0.25);
    color: rgba(0, 0, 0, 0.25);
    padding: 0.5rem;
    font-weight: 600;
}
.news .yearlist a.activeyear {
    background-color: #222;
    color: #fff;
    pointer-events: none;
}
.news .yearlist a:hover {
    border-color: rgba(0, 0, 0, 0.5);
    color: rgba(0, 0, 0, 0.5);
}
.news.m1000 .item { width: calc(50% - 1rem); }
.news.m700 .item { width: 100%; }
/* #endregion */

/* #region Presentations Page */
.presentations .item .preview img {
    width: 20rem;
    background-size: contain;
    background-position: center;
    border-radius: 1rem;
    cursor: pointer;
}
.presentations .item { background-color: #fff; }
@media only screen and (max-width: 1000px) {
    .presentations .item .linkflex {
        flex-direction: column;
        align-items: flex-start;
    }
}
@media only screen and (max-width: 800px) {
    .presentations .item .linkflex { flex-direction: row; }
    .presentations .item { flex-direction: column; }
    .presentations .item .preview img { width: 100%; }
}
@media only screen and (max-width: 600px) {
    .presentations .item .linkflex { flex-direction: column; }
    .presentations .item .mainlink { width: 100%; }
}
.presentations .emptystate {
    text-align: center;
    padding: 2rem;
    border: 0.1rem dashed #ddd;
    color: #777;
}
/* #endregion */

/* #region Release Page */
.release .newsbody {
    max-width: 800px;
    margin: 0 auto;
}
.release .newsbody .table-wrap {
    position: relative;
    margin: 1rem 0;
    border: 0.06rem solid rgba(0,0,0,0.08);
    border-radius: 0.5rem;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    background: #fff;
}
.release .newsbody .table-wrap:after {
    content: "";
    position: sticky;
    right: 0;
    top: 0;
    width: 2rem;
    height: 100%;
    pointer-events: none;
    background: linear-gradient(90deg, rgba(255,255,255,0) 0%, rgba(255,255,255,1) 100%);
}
.release .newsbody table.data-table {
    border-collapse: separate;
    border-spacing: 0;
    width: max-content;
    min-width: 100%;
    font-size: 0.95rem;
    line-height: 1.45;
}
.release .newsbody table.data-table th,
.release .newsbody table.data-table td {
    padding: 0.6rem 0.8rem;
    vertical-align: top;
    border-bottom: 0.06rem solid rgba(0,0,0,0.06);
    background: #fff;
    background-clip: padding-box;
    white-space: nowrap;
}
.release .newsbody table.data-table td p { margin: 0; }
.release .newsbody table.data-table thead th {
    position: sticky;
    top: 0;
    z-index: 3;
    background: #fff;
    text-align: left;
    box-shadow: 0 0.06rem 0 rgba(0,0,0,0.06);
}
.release .newsbody table.data-table.zebra tbody tr:nth-child(odd) td { background: #fafafa; }
.release .newsbody table.data-table.sticky-first-col th:first-child,
.release .newsbody table.data-table.sticky-first-col td:first-child {
    position: sticky;
    left: 0;
    z-index: 5;
    background: #fff;
    background-clip: padding-box;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    transform: translateZ(0);
    box-shadow: 0.06rem 0 0 rgba(0,0,0,0.06);
}
.release .newsbody table.data-table.sticky-first-col thead th:first-child { z-index: 10; background: #fff; }
.release .newsbody table.data-table.sticky-first-col.zebra tbody tr:nth-child(odd) td:first-child { background: #fafafa; }
.release .newsbody table.data-table .num { text-align: right; }
@media (max-width: 48rem) {
    .release .newsbody table.data-table { font-size: 0.9rem; }
    .release .newsbody table.data-table th,
    .release .newsbody table.data-table td { padding: 0.5rem 0.6rem; }
    .release .newsbody .table-wrap { border-radius: 0.4rem; }
}
.release img {
    max-width: 100%;
    height: auto;
}
/* #endregion */

/* #region Stock Page */
.stock .stock-symbols-section h3 { margin-bottom: 1rem; }
.stock .exchange-btns {
    display: flex;
    gap: 1rem;
}
.stock .exchange-btn {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.25rem;
    padding: 1rem 1.25rem;
    background-color: var(--clr-navy);
    border-radius: 0.75rem;
    cursor: default;
    transition: background-color 0.2s ease;
}
.stock .exchange-btn:hover { background-color: var(--clr-navy-light); }
.stock .exchange-btn.active {
    background-color: var(--clr-gold);
    cursor: default;
}
.stock .exchange-btn.active:hover { background-color: var(--clr-gold-deep); }
.stock .exchange-btn.active .exch-name { color: var(--clr-navy); }
.stock .exchange-btn.active .exch-symbol { color: var(--clr-navy); }
.stock .exchange-btn .exch-name {
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--clr-gold);
}
.stock .exchange-btn .exch-symbol {
    font-size: 1.5rem;
    font-weight: 700;
    color: #fff;
    line-height: 1;
    letter-spacing: 0.05em;
}
.stock .shares {
    background-color: #fff;
    box-shadow: 0 0 2rem rgba(0,0,0,0.1);
    border-radius: 1rem;
}
.stock .snapshot { aspect-ratio: 16/9; }
.stock .structure-solo {
    display: flex;
    align-items: center;
    gap: 2rem;
}
.stock .structure-label {
    flex: 1;
}
.stock .structure-label h3 { margin-bottom: 0; }
.stock .structure-stat {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 2.5rem 1rem;
}
.stock .structure-stat span { display: block; }
.stock .structure-stat .amount {
    line-height: 1;
    font-size: 3.5rem;
    font-weight: 500;
    margin-bottom: 0.5rem;
}
.stock .structure-stat .type {
    font-size: 1rem;
    font-weight: bold;
}
.stock .schedule .item h4 { text-align: center; }
.stock .schedule .item table {
    width: 100%;
    text-align: center;
}
.stock .schedule .item table thead th { font-weight: bold; }
.stock .schedule .item table thead th:first-child {
    border-top-left-radius: 0.5rem;
    border-bottom-left-radius: 0.5rem;
}
.stock .schedule .item table thead th:last-child {
    border-top-right-radius: 0.5rem;
    border-bottom-right-radius: 0.5rem;
}
.stock .schedule .item table th,
.stock .schedule .item table td { padding: 0.5rem; }
.stock .schedule .item table tbody tr:nth-child(even) td { background-color: rgba(0, 0, 0, 0.1); }
.stock .schedule .item table tbody tr:nth-child(even) td:first-child {
    border-top-left-radius: 0.5rem;
    border-bottom-left-radius: 0.5rem;
}
.stock .schedule .item table tbody tr:nth-child(even) td:last-child {
    border-top-right-radius: 0.5rem;
    border-bottom-right-radius: 0.5rem;
}
.stock.m800 .structure-solo {
    flex-direction: column;
    text-align: center;
}
.stock.m800 .structure-label h3 { margin-bottom: 0.5rem; }
.stock.m800 .structure-stat { padding: 1.5rem 0; }
.stock.m800 .schedule { display: block; }
.stock.m800 .schedule .item:first-of-type { margin-bottom: 2rem; }
/* #endregion */

/* #region Team Page */
.team .maintext {
    max-width: 1000px;
    margin-right: auto;
    margin-left: auto;
    text-align: center;
}
.team .item { border: 2px solid #eee; }
.team .item .portrait {
    background: linear-gradient(45deg, #888, #444);
    aspect-ratio: 16/9;
    flex-shrink: 0;
    position: relative;
}
.team .item .portrait .inner {
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center bottom;
    width: 100%;
    height: 100%;
    position: absolute;
    bottom: 0;
    left: 0;
}
.team .item .text { padding: 2rem; }
.team.m1200 .item .portrait { width: 35%; }
.team.m800 .item { flex-direction: column; }
.team.m800 .item .portrait {
    width: 100%;
    aspect-ratio: 16/9;
}
.team.m800 .item .portrait .inner {
    left: 50%;
    transform: translateX(-50%);
}
/* #endregion */

/* #region Subscribe Page */
.subscribe .icon {
    font-size: 5rem;
    line-height: 5rem;
    margin-right: 30px;
}
.subscribe .form-group {
    margin-bottom: 20px;
    text-align: left;
}
.subscribe .form-group label {
    display: block;
    font-weight: bold;
    color: #333;
}
.subscribe .form-group input[type="text"],
.subscribe .form-group input[type="tel"] {
    width: 100%;
    padding: 10px;
    border: 1px solid #ddd;
    border-radius: 4px;
    font-size: 16px;
    box-sizing: border-box;
}
.subscribe .form-group input[type="text"]:focus,
.subscribe .form-group input[type="tel"]:focus {
    outline: none;
    border-color: #007cba;
    box-shadow: 0 0 5px rgba(0, 124, 186, 0.3);
}
.subscribe.m500 {
    display: block;
    text-align: center;
}
.subscribe.m500 .icon { margin-right: 0; }
.subscribe.m500 .iconflex {
    flex-direction: column;
    align-items: center;
}
.popup-notification {
    position: fixed;
    top: 20px;
    right: 20px;
    padding: 15px 20px;
    border-radius: 5px;
    color: white;
    font-weight: bold;
    z-index: 10000;
    max-width: 300px;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
    opacity: 0;
    transform: translateX(100%);
    transition: all 0.3s ease;
}
.popup-notification.show {
    opacity: 1;
    transform: translateX(0);
}
.popup-notification.success {
    background-color: #4CAF50;
    border-left: 5px solid #45a049;
}
.popup-notification.error {
    background-color: #f44336;
    border-left: 5px solid #da190b;
}
.popup-notification .close-btn {
    float: right;
    margin-left: 15px;
    color: white;
    font-weight: bold;
    font-size: 18px;
    cursor: pointer;
    line-height: 1;
}
.popup-notification .close-btn:hover { opacity: 0.8; }
.form-loading {
    opacity: 0.6;
    pointer-events: none;
}
.form-loading button { position: relative; }
.form-loading button::after {
    content: '';
    position: absolute;
    width: 16px;
    height: 16px;
    margin: auto;
    border: 2px solid transparent;
    border-top-color: #ffffff;
    border-radius: 50%;
    animation: spin 1s linear infinite;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}
@keyframes spin {
    0% { transform: translate(-50%, -50%) rotate(0deg); }
    100% { transform: translate(-50%, -50%) rotate(360deg); }
}
.checkbox-group {
    margin-top: 10px;
    display: flex;
    align-items: center;
}
.checkbox-label {
    display: flex !important;
    align-items: center;
    cursor: pointer;
    font-weight: normal;
}
.checkbox-label input[type="checkbox"] { display: none; }
.custom-checkbox {
    display: block;
    width: 2rem;
    height: 2rem;
    border: 2px solid #4CAF50;
    border-radius: 4px;
    margin-right: 10px;
    background: #fff;
    position: relative;
    transition: border-color 0.2s;
    flex-shrink: 0;
}
.checkbox-label input[type="checkbox"]:checked + .custom-checkbox {
    background: #4CAF50;
    border-color: #388e3c;
}
.custom-checkbox:after {
    content: '';
    position: absolute;
    left: 0.6rem;
    top: 0.1rem;
    width: 0.5rem;
    height: 1rem;
    border: solid white;
    border-width: 0 3px 3px 0;
    opacity: 0;
    transform: rotate(45deg);
    transition: opacity 0.2s;
}
.checkbox-label input[type="checkbox"]:checked + .custom-checkbox:after { opacity: 1; }
.subscribe form {
    box-shadow: 0 0 2rem rgba(0,0,0,0.1);
    border-radius: 1rem;
    background-color: #fff;
}
.popup-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.5);
    z-index: 10001;
    display: flex;
    justify-content: center;
    align-items: center;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
}
.popup-overlay.show {
    opacity: 1;
    visibility: visible;
}
.popup-content {
    background: white;
    padding: 30px;
    border-radius: 10px;
    max-width: 600px;
    width: 90%;
    text-align: center;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
    transform: scale(0.8) translateY(20px);
    opacity: 0;
    transition: transform 0.3s ease, opacity 0.3s ease;
}
.popup-overlay.show .popup-content {
    transform: scale(1) translateY(0);
    opacity: 1;
}
.popup-buttons {
    display: flex;
    gap: 15px;
    justify-content: center;
}
.popup-buttons button {
    padding: 12px 25px;
    border: none;
    border-radius: 0.5rem;
    cursor: pointer;
    font-weight: bold;
    transition: background-color 0.3s ease;
    min-width: 100px;
}
.btn-cancel {
    background-color: #6c757d;
    color: white;
}
.btn-cancel:hover { background-color: #5a6268; }
.btn-confirm {
    background-color: #dc3545;
    color: white;
}
.btn-confirm:hover { background-color: #c82333; }
.btn-unsubscribe {
    background-color: #dc3545;
    border-color: #dc3545;
    color: white;
}
.btn-unsubscribe:hover {
    background-color: transparent;
    color: #dc3545;
}
/* #endregion */

/* #region 404 Page */
.four0four .img404 {
    background-image: url('https://www.midobi.com/mods/pages/404/images/404_A.png');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
}
/* #endregion */

/* #region PRELOADER */

/* Page content fade — driven by AJAX nav script */
#page-content {
    transition: opacity 0.25s ease;
}

/* ─── Preloader ─── */
/*
 * Starts with the same S_COVERED clip-path as the transition bar so the
 * wipe-out is identical — the parallelogram sweeps off to the right.
 */
#preloader {
    position: fixed;
    inset: 0;
    background: var(--clr-navy);
    z-index: 10000;
    display: flex;
    align-items: center;
    justify-content: center;
    clip-path: polygon(0 0, calc(100% + 100vh) 0, 100% 100%, -100vh 100%);
    will-change: clip-path;
}

/* Wipe off to the right — same S_EXITED polygon as the transition bar */
#preloader.preloader-wipe {
    clip-path: polygon(calc(100% + 100vh) 0, calc(100% + 100vh) 0, 100% 100%, 100% 100%);
    transition: clip-path 0.5s cubic-bezier(0.4, 0, 0.2, 1);
    pointer-events: none;
}

#preloader.hidden {
    visibility: hidden;
    pointer-events: none;
}

.preloader-chevron {
    width: 3rem;
    height: auto;
    color: var(--clr-gold);
    animation: chevronFloat 1.1s ease-in-out infinite;
}

@keyframes chevronFloat {
    0%, 100% { transform: translateY(0);       opacity: 1;   }
    50%       { transform: translateY(-0.625rem); opacity: 0.5; }
}

#preloader.preloader-exit .preloader-chevron {
    animation: chevronExit 0.38s ease-in forwards;
}

@keyframes chevronExit {
    0%   { transform: translateY(0);        opacity: 1;   }
    55%  { transform: translateY(-1.25rem); opacity: 0.6; }
    100% { transform: translateY(-3rem);    opacity: 0;   }
}

/* ─── Page Transition Bar ─── */
#page-transition {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: var(--clr-navy);
    z-index: 9999;
    pointer-events: none;
    clip-path: polygon(0 0, 0 0, 0 100%, 0 100%);
    will-change: clip-path;
}

/* ─── Hero & Header entrance animations ───────────────────────────────────
 * Triggered by body.preloader-done, which is added the moment the wipe
 * starts. Elements animate in while the parallelogram wipe sweeps across —
 * the wipe "uncovers" already-animating content for a layered reveal.
 * animation-fill-mode: both keeps elements in their "from" state during
 * any delay, so nothing flashes before its cue.
 * ─────────────────────────────────────────────────────────────────────── */

/* Keyframes */
@keyframes entrFadeDown {
    from { opacity: 0; transform: translateY(-0.625rem); }
    to   { opacity: 1; transform: translateY(0); }
}
@keyframes entrFadeLeft {
    from { opacity: 0; transform: translateX(-0.75rem); }
    to   { opacity: 1; transform: translateX(0); }
}
@keyframes entrFadeUp {
    from { opacity: 0; transform: translateY(1.25rem); }
    to   { opacity: 1; transform: translateY(0); }
}
@keyframes entrFade {
    from { opacity: 0; }
    to   { opacity: 1; }
}

/* Header */
body.preloader-done .header .subheader {
    animation: entrFadeDown 0.45s 0s ease both;
}
body.preloader-done .header .main .logo {
    animation: entrFadeLeft 0.45s 0.05s ease both;
}
body.preloader-done .header .main .nav .menu .item:nth-child(1) {
    animation: entrFadeUp 0.4s 0.12s ease both;
}
body.preloader-done .header .main .nav .menu .item:nth-child(2) {
    animation: entrFadeUp 0.4s 0.2s ease both;
}
body.preloader-done .header .main .nav .menu .item:nth-child(3) {
    animation: entrFadeUp 0.4s 0.28s ease both;
}
body.preloader-done .header .main .nav .menu .item:nth-child(4) {
    animation: entrFadeUp 0.4s 0.36s ease both;
}
body.preloader-done .header .main .minimenu {
    animation: entrFade 0.4s 0.2s ease both;
}

/* Home hero */
body.preloader-done .homehero h1 {
    animation: entrFadeUp 0.65s 0.08s ease both;
}
body.preloader-done .homehero .maintext p {
    animation: entrFadeUp 0.55s 0.25s ease both;
}
body.preloader-done .homehero .hero-ctas {
    animation: entrFadeUp 0.5s 0.4s ease both;
}
body.preloader-done .homehero .continue {
    animation: entrFade 0.5s 0.65s ease both;
}

/* Sub-page hero title */
body.preloader-done .pagetop > .boxbox h1 {
    animation: entrFadeUp 0.6s 0.15s ease both;
}

/* Reduced motion: skip everything */
@media (prefers-reduced-motion: reduce) {
    .preloader-chevron { animation: none; }
    #preloader.preloader-wipe { transition: none; }
    #page-transition  { transition: none !important; }

    body.preloader-done .header .subheader,
    body.preloader-done .header .main .logo,
    body.preloader-done .header .main .nav .menu .item,
    body.preloader-done .header .main .minimenu,
    body.preloader-done .homehero h1,
    body.preloader-done .homehero .maintext p,
    body.preloader-done .homehero .hero-ctas,
    body.preloader-done .homehero .continue,
    body.preloader-done .pagetop > .boxbox h1 {
        animation: none;
    }
}

/* #endregion */

/* #region SCROLL ANIMATIONS */

/* Base invisible state — only applied when JS has run (body.js-ready) */
body.js-ready [data-reveal] {
    opacity: 0;
    will-change: opacity, transform;
    transition: opacity 0.75s cubic-bezier(0.4, 0, 0.2, 1),
                transform 0.75s cubic-bezier(0.4, 0, 0.2, 1);
}

body.js-ready [data-reveal="up"]    { transform: translateY(1.75rem); }
body.js-ready [data-reveal="left"]  { transform: translateX(-2rem); }
body.js-ready [data-reveal="right"] { transform: translateX(2rem); }
body.js-ready [data-reveal="fade"]  { transform: none; }

body.js-ready [data-reveal].active  { opacity: 1; transform: none; }

/* Stagger delays */
[data-delay="1"] { transition-delay: 0.1s; }
[data-delay="2"] { transition-delay: 0.2s; }
[data-delay="3"] { transition-delay: 0.3s; }
[data-delay="4"] { transition-delay: 0.4s; }
[data-delay="5"] { transition-delay: 0.5s; }
[data-delay="6"] { transition-delay: 0.6s; }

@media (prefers-reduced-motion: reduce) {
    body.js-ready [data-reveal] {
        opacity: 1;
        transform: none;
        transition: none;
    }
}

/* #endregion */
