:root {
    --ink: #02080d;
    --navy: #06141e;
    --panel: rgba(3, 16, 25, .9);
    --cyan: #48d9ff;
    --cyan-soft: #99eaff;
    --line: rgba(119, 213, 239, .25);
    --muted: #a8b7c0;
    --white: #f5f8fa;
}

html { scroll-behavior: smooth; }
body { margin: 0; overflow-x: hidden; background: var(--ink); color: var(--white); font-family: "Segoe UI", Arial, sans-serif; font-size: 16px; }
body::before { content: ""; position: fixed; inset: 0; pointer-events: none; z-index: 1000; opacity: .18; background-image: linear-gradient(rgba(255,255,255,.02) 1px, transparent 1px); background-size: 100% 4px; }
a { color: inherit; }
.skip-link { position: fixed; left: 1rem; top: -5rem; z-index: 9999; padding: .75rem 1rem; background: var(--cyan); color: #001018; }
.skip-link:focus { top: 1rem; }

.site-header { background: linear-gradient(180deg, rgba(1, 9, 15, .98), rgba(1, 9, 15, .84)); border-bottom: 1px solid rgba(81, 189, 220, .22); transition: background .25s, box-shadow .25s; }
.site-header.is-scrolled { background: rgba(1, 8, 13, .98); box-shadow: 0 12px 35px rgba(0,0,0,.38); }
.navbar { min-height: 76px; }
.brand-lockup { display: flex; align-items: center; gap: 10px; padding: 0; }
.planet-mark { display: block; width: 49px; height: 42px; object-fit: contain; filter: drop-shadow(0 0 10px rgba(0, 247, 253, .18)); }
.brand-wordmark { display: block; width: 184px; height: 54px; object-fit: contain; }
.nav-link { color: #d5dee3 !important; font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; padding: 1.8rem .35rem 1.5rem !important; border-bottom: 2px solid transparent; }
.nav-link:hover, .nav-link:focus, .nav-link.active { color: var(--cyan) !important; border-color: var(--cyan); text-shadow: 0 0 16px rgba(72,217,255,.55); }

.btn { border-radius: 3px; font-size: .75rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; padding: .85rem 1.6rem; }
.btn-lg { padding: 1rem 1.8rem; }
.btn-cyan { color: #001019; background: linear-gradient(135deg, #7ee8ff, #28c9f1); border-color: #52ddff; box-shadow: 0 0 26px rgba(32, 207, 248, .18); }
.btn-cyan:hover, .btn-cyan:focus { color: #001019; background: #9af0ff; border-color: #9af0ff; box-shadow: 0 0 32px rgba(42, 214, 255, .38); }
.btn-outline-cyan { color: #bdefff; border: 1px solid #37d6ff; box-shadow: inset 0 0 0 1px rgba(55,214,255,.08); }
.btn-outline-cyan:hover, .btn-outline-cyan:focus { color: #001019; background: var(--cyan); border-color: var(--cyan); }
.button-icon { margin-right: .65rem; font-size: 1rem; }

.hero { position: relative; min-height: 700px; padding: 145px 0 65px; overflow: hidden; isolation: isolate; background-image: linear-gradient(90deg, #01070c 0%, rgba(1,7,12,.95) 24%, rgba(1,7,12,.42) 54%, rgba(1,7,12,.1) 100%), linear-gradient(0deg, rgba(1,8,13,.78), transparent 35%), url("../images/icarus-hero-2.png"); background-size: cover; background-position: 62% center; border-bottom: 1px solid var(--line); }
.hero::before { content: ""; position: absolute; inset: 0; z-index: -1; background: radial-gradient(circle at 35% 35%, rgba(42,180,228,.11), transparent 26%), linear-gradient(110deg, transparent 55%, rgba(72,217,255,.09)); }
.hero-orbit { position: absolute; right: 5vw; top: 115px; width: 120px; aspect-ratio: 1; border: 1px solid rgba(126,229,255,.35); border-radius: 50%; opacity: .35; }
.hero-orbit::after { content: ""; position: absolute; inset: 48% -40%; border-top: 1px solid rgba(126,229,255,.45); transform: rotate(-13deg); }
.eyebrow { margin-bottom: 1rem; color: var(--cyan-soft); font-size: .68rem; letter-spacing: .38em; text-transform: uppercase; }
.display-title { margin: 0; font-size: clamp(3.4rem, 7vw, 6rem); font-weight: 300; letter-spacing: .25em; line-height: .95; text-transform: uppercase; text-shadow: 0 5px 30px #000; }
.display-title span { display: block; color: #fff; font-weight: 700; letter-spacing: .14em; }
.display-title:not(span), .display-title { color: #9bedff; }
.hero-tagline { margin: 1.4rem 0 1rem; font-size: .95rem; letter-spacing: .3em; text-transform: uppercase; }
.hero-copy { max-width: 620px; color: #d6dde1; font-size: 1.02rem; line-height: 1.6; text-shadow: 0 2px 8px #000; }
.hero-kicker { margin: 2rem 0 0; color: #9eb0bc; font-size: .65rem; letter-spacing: .55em; text-transform: uppercase; }
.hero-side-copy { position: absolute; top: 130px; right: 4.2vw; color: #b7c6d0; font-size: .78rem; letter-spacing: .38em; line-height: 1.7; text-align: right; text-transform: uppercase; }

.feature-strip { background: radial-gradient(circle at 50% 0, rgba(19,89,115,.16), transparent 65%), #020c12; border-bottom: 1px solid var(--line); }
.feature-item { position: relative; min-height: 190px; padding: 1.7rem 2.2rem; text-align: center; }
.feature-item:not(:last-child)::after { content: ""; position: absolute; right: 0; top: 26px; bottom: 26px; width: 1px; background: var(--line); }
.feature-icon { display: block; height: 52px; color: #69d8ff; font-size: 2.8rem; line-height: 1; }
.feature-icon img { width: 54px; height: 48px; object-fit: contain; filter: drop-shadow(0 0 9px rgba(0, 247, 253, .22)); }
.feature-item h2 { margin: .6rem 0 .55rem; font-size: .76rem; letter-spacing: .18em; text-transform: uppercase; }
.feature-item p { max-width: 240px; margin: 0 auto; color: var(--muted); font-size: .84rem; line-height: 1.5; }

.galaxy-section { position: relative; min-height: 440px; background-image: linear-gradient(90deg, rgba(1,7,11,.99) 0%, rgba(1,7,11,.92) 24%, rgba(1,7,11,.12) 63%, rgba(1,7,11,.35)), url("../images/icarus-desert.png"); background-size: cover; background-position: center 60%; border-bottom: 1px solid var(--line); }
.galaxy-panel { padding-top: 3rem; padding-bottom: 3rem; }
.section-title { position: relative; margin-bottom: 1.5rem; padding-bottom: .8rem; font-size: clamp(1.6rem, 2.5vw, 2.15rem); font-weight: 400; letter-spacing: .2em; line-height: 1.1; text-transform: uppercase; }
.section-title::after { content: ""; position: absolute; left: 0; bottom: 0; width: 125px; height: 2px; background: linear-gradient(90deg, var(--cyan), transparent); }
.galaxy-panel p:not(.eyebrow) { color: #c1cbd1; font-size: .9rem; line-height: 1.7; }
.galaxy-quote { position: absolute; right: 0; top: 2.3rem; color: #bac8d0; font-size: .75rem; letter-spacing: .38em; line-height: 1.7; text-align: right; text-transform: uppercase; }

.content-section { padding: 1.6rem 0 1.8rem; background: radial-gradient(circle at 50% -20%, rgba(27,105,132,.16), transparent 45%), #020b10; border-bottom: 1px solid var(--line); }
.section-heading { margin-bottom: 1rem; }
.section-heading .section-title { padding: 0; }
.section-heading .section-title::after { display: none; }
.section-heading > p { margin: 0 0 .45rem; color: #58cbed; font-size: .68rem; letter-spacing: .25em; text-transform: uppercase; }
.faction-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: .55rem; }
.faction-card { min-width: 0; min-height: 195px; padding: .8rem .35rem .7rem; background: linear-gradient(180deg, rgba(7,24,35,.8), rgba(1,10,15,.72)); border: 1px solid rgba(111,184,208,.3); text-align: center; transition: transform .25s, border-color .25s, background .25s; }
.faction-card:hover { transform: translateY(-6px); border-color: var(--cyan); background: rgba(9,30,42,.96); }
.faction-emblem { display: grid; place-items: center; height: 88px; }
.faction-emblem img { width: 82px; height: 82px; object-fit: contain; filter: drop-shadow(0 0 11px rgba(87, 207, 242, .18)); transition: filter .25s, transform .25s; }
.faction-card:hover .faction-emblem img { filter: drop-shadow(0 0 15px rgba(87, 207, 242, .42)); transform: scale(1.06); }
.faction-card h3, .game-card h3 { margin: .35rem 0 .55rem; font-size: .68rem; letter-spacing: .15em; text-transform: uppercase; }
.faction-card h3 { display: grid; place-items: center; min-height: 1.8rem; margin-top: .2rem; font-size: .63rem; letter-spacing: .12em; }
.faction-card p, .game-card p { margin: 0; color: #aab8c1; font-size: .76rem; line-height: 1.45; }

.game-card { height: 100%; }
.game-image { aspect-ratio: 16/8.8; margin-bottom: .8rem; border: 1px solid rgba(112,205,233,.33); background-size: cover; background-position: center; transition: border-color .25s, filter .25s, transform .25s; }
.game-card:hover .game-image { border-color: var(--cyan); filter: brightness(1.12); transform: translateY(-3px); }
.image-desert { background-image: url("../images/icarus-desert.png"); background-position: center 72%; }
.image-map { background-image: url("../images/icarus-galaxy-map.png"); }
.image-combat { background-image: url("../images/icarus-combat.png"); background-position: center 57%; }
.image-flight { background-image: url("../images/icarus-flight.png"); background-position: center 50%; }

.wishlist-banner { padding: 2.3rem 0; overflow: hidden; background-image: linear-gradient(90deg, rgba(2,9,14,.92) 0%, rgba(2,9,14,.5) 40%, rgba(2,9,14,.28) 70%, rgba(2,9,14,.8)), url("../images/icarus-hero-2.png"); background-size: cover; background-position: center 52%; border-bottom: 1px solid var(--line); }
.wishlist-logo { display: block; width: min(470px, 100%); height: 112px; object-fit: contain; object-position: left center; }
.wishlist-banner p { margin: .7rem 0 0; color: #bdcbd4; font-size: .72rem; letter-spacing: .55em; text-transform: uppercase; }
.site-footer { padding: 1.7rem 0; background: #02090e; color: #8195a2; }
.site-footer p { margin: 0; font-size: .62rem; letter-spacing: .24em; text-transform: uppercase; }
.social-links { display: flex; align-items: center; gap: 1.3rem; }
.social-links a { display: grid; place-items: center; width: 22px; height: 22px; color: #a9bbc6; font-size: 1.2rem; text-decoration: none; transition: color .2s, filter .2s, transform .2s; }
.social-links img { display: block; width: 19px; height: 19px; object-fit: contain; filter: invert(83%) sepia(12%) saturate(360%) hue-rotate(158deg) brightness(88%); }
.social-links a:hover { color: var(--cyan); transform: translateY(-2px); }
.social-links a:hover img { filter: invert(81%) sepia(84%) saturate(1524%) hue-rotate(165deg) brightness(104%); }
.trailer-modal { background: #03111a; border: 1px solid var(--cyan); border-radius: 2px; }.trailer-modal .modal-header { border-color: var(--line); }.trailer-placeholder { background: radial-gradient(circle, #123a4c, #01070c 65%); }.trailer-placeholder > div { display: grid; place-content: center; text-align: center; }.trailer-placeholder span { color: var(--cyan); font-size: 4rem; }.trailer-placeholder p { letter-spacing: .25em; text-transform: uppercase; }

.reveal { opacity: 0; transform: translateY(18px); transition: opacity .7s ease, transform .7s ease; }
.reveal.is-visible { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } .reveal { opacity: 1; transform: none; transition: none; } }

@media (max-width: 1199.98px) {
    .hero { min-height: 660px; background-position: 58% center; }
    .hero-side-copy { display: none; }
    .brand-wordmark { width: 168px; }
    .faction-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 991.98px) {
    .site-header { background: rgba(1,8,13,.98); }
    .navbar-collapse { padding: 1rem 0 1.5rem; max-height: calc(100vh - 76px); overflow-y: auto; }
    .nav-link { padding: .7rem 0 !important; }
    .hero { min-height: 720px; background-position: 64% center; }
    .hero::after { content: ""; position: absolute; inset: 0; z-index: -1; background: rgba(0,4,8,.25); }
    .feature-item:nth-child(2)::after { display: none; }.feature-item:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
    .galaxy-section { min-height: 520px; }.galaxy-panel { max-width: 430px; }.galaxy-quote { display: none; }
    .faction-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 575.98px) {
    .navbar { min-height: 66px; }.brand-lockup { gap: 5px; }.brand-lockup .planet-mark { width: 38px; height: 34px; }.brand-wordmark { width: 126px; height: 48px; }
    .hero { min-height: 710px; padding: 125px 0 55px; background-image: linear-gradient(90deg, rgba(1,7,12,.96), rgba(1,7,12,.62)), url("../images/icarus-hero-2.png"); background-position: 57% center; }
    .display-title { font-size: 3rem; letter-spacing: .13em; }.hero-tagline { font-size: .75rem; letter-spacing: .2em; }.hero-copy { font-size: .9rem; }.hero .btn { width: 100%; }
    .feature-item { min-height: 210px; padding: 1.5rem .8rem; }.feature-item::after { display: none; }.feature-item:nth-child(odd) { border-right: 1px solid var(--line); }
    .galaxy-section { background-position: 60% center; }.galaxy-panel { padding: 2.5rem 0; }.galaxy-panel::before { content: ""; position: absolute; inset: 0 -1rem; z-index: -1; background: rgba(1,7,11,.72); filter: blur(12px); }
    .section-heading > p { margin-top: .6rem; line-height: 1.6; }.faction-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .45rem; }.faction-card { min-height: 184px; }.faction-emblem { height: 82px; }.faction-emblem img { width: 76px; height: 76px; }
    .wishlist-banner { text-align: center; }.wishlist-logo { width: min(360px, 100%); height: 100px; margin: 0 auto; object-position: center; }.wishlist-banner p { margin-bottom: 1.5rem; letter-spacing: .32em; }
}
