/* ============================================================
   HERO
   ============================================================ */
#hero {
    min-height: 100svh;
    display: flex;
    align-items: center;
    padding: clamp(100px, 14vw, 130px) var(--pad-x) clamp(60px, 8vw, 80px);
    position: relative;
    overflow: hidden;
}
#hero::before {
    content: '';
    position: absolute;
    top: -20%;
    left: 58%;
    width: 1px;
    height: 140%;
    background: linear-gradient(to bottom, transparent, rgba(232, 80, 26, .3) 30%, rgba(232, 80, 26, .12) 70%, transparent);
    transform: rotate(-14deg);
    
    transform-origin: top;
}
#hero-canvas {
    position: absolute;
    inset: 0;
    pointer-events: none;
}
.hero-wrap {
    max-width: var(--max-w);
    margin: 0 auto;
    width: 100%;
    position: relative;
    z-index: 2;
}
.hero-sup {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: clamp(20px, 3vw, 36px);
}
.hero-sup-line {
    width: 36px;
    height: 1px;
    background: var(--fire);
    flex-shrink: 0;
}
.hero-sup span {
    font-size: .6rem;
    font-weight: 700;
    letter-spacing: .3em;
    text-transform: uppercase;
    color: var(--fire);
}
.hero-h1 {
    font-size: clamp(2.2rem, 6.5vw, 5.4rem);
    font-weight: 900;
    line-height: 1.02;
    letter-spacing: -.03em;
    margin-bottom: clamp(20px, 3vw, 36px);
}
.hero-h1 .word {
    display: inline-block;
    clip-path: inset(0 100% 0 0);
    animation: revealWord .85s cubic-bezier(.16, 1, .3, 1) forwards;
    animation-play-state: paused;
}
.hero-h1 .word.go {
    animation-play-state: running;
}
.hero-h1 .fire {
    color: var(--fire);
}
.hero-h1 .br {
    display: block;
    height: 0;
    line-height: 0;
}
.hero-h1 .small {
    font-size: clamp(.78rem, 1.6vw, 1.3rem);
    font-weight: 300;
    letter-spacing: .18em;
    color: var(--ash);
    text-transform: uppercase;
    display: block;
    margin-top: clamp(10px, 1.5vw, 16px);
}
@keyframes revealWord {
    from {
        clip-path: inset(0 100% 0 0);
    }
    to {
        clip-path: inset(0 0% 0 0);
    }
}
.hero-desc {
    font-size: clamp(.78rem, .85vw, .88rem);
    color: var(--fog);
    max-width: 520px;
    line-height: 1.95;
    margin-bottom: clamp(28px, 4vw, 48px);
    opacity: 0;
    transform: translateY(12px);
    transition: opacity .7s 1s, transform .7s 1s;
}
.hero-desc.in {
    opacity: 1;
    transform: translateY(0);
}
.hero-btns {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    opacity: 0;
    transform: translateY(12px);
    transition: opacity .7s 1.2s, transform .7s 1.2s;
}
.hero-btns.in {
    opacity: 1;
    transform: translateY(0);
}
.hero-float {
    position: absolute;
    right: clamp(20px, 3vw, 48px);
    top: 50%;
    transform: translateY(-50%);
    display: flex;
    flex-direction: column;
    gap: 8px;
    opacity: 0;
    animation: fadeIn .8s ease 1.4s forwards;
}
@keyframse fadeIn {
    to {
        opacity: 1;
    }
}
.hero-float span {
    font-size: .6rem;
    font-weight: 600;
    letter-spacing: .15em;
    text-transform: uppercase;
    color: var(--ash);
    padding: 3px 0 3px 12px;
    border-left: 1.5px solid rgba(232, 80, 26, .35);
    transition: color .2s, border-color .2s;
    white-space: nowrap;
}
.hero-float span:hover {
    color: var(--paper);
    border-color: var(--fire);
}
.scroll-hint {
    position: absolute;
    bottom: clamp(20px, 3vw, 36px);
    left: var(--pad-x);
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: .58rem;
    letter-spacing: .22em;
    text-transform: uppercase;
    color: var(--ash);
    opacity: 0;
    animation: fadeIn .8s ease 1.6s forwards;
}
.scroll-mouse {
    width: 16px;
    height: 26px;
    border: 1px solid var(--ash);
    border-radius: 8px;
    display: flex;
    justify-content: center;
    padding-top: 5px;
    flex-shrink: 0;
}
.scroll-mouse::before {
    content: '';
    width: 1.5px;
    height: 5px;
    background: var(--fire);
    border-radius: 1px;
    animation: sdot 1.8s ease infinite;
}
@keyframes sdot {
    0% {
        transform: translateY(0);
        opacity: 1;
    }
    75% {
        transform: rotateY(6px);
        opacity: 0;
    }
    100% {
        transform: rotateY(0);
        opacity: 0;
    }
}
/* ============================================================
   NEWS
   ============================================================ */
#news {
    padding: clamp(64px, 8vw, 100px) 0;
    background: var(--ink2);
}
.news-more {
    text-align: right;
    margin-top: 20px;
}
/* ============================================================
   BUSINESS
   ============================================================ */
#business {
    padding: clamp(80px, 10vw, 120px) 0 0;
    background: var(--ink);
}
.pillars {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
}
