:root {
    --ink: #171717;
    --paper: #f1eee3;
    --paper-2: #faf8f0;
    --white: #ffffff;
    --red: #df4a2f;
    --red-dark: #af2f20;
    --blue: #3159c9;
    --blue-dark: #1f3f9e;
    --yellow: #e4b93d;
    --muted-dark: #646159;
    --muted-light: #bcb8ad;
    --line-dark: rgba(255,255,255,.24);
    --line-light: rgba(23,23,23,.28);
    --shell: 1440px;
    --gutter: clamp(1.2rem, 4.5vw, 4.8rem);
    --header: 92px;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--header) + 1.5rem); }
body {
    margin: 0;
    overflow-x: clip;
    color: var(--ink);
    background: var(--paper);
    font-family: Arial, Helvetica, sans-serif;
    font-size: 1rem;
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
}
body.menu-open { overflow: hidden; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, textarea, select { font: inherit; }
button { color: inherit; }
address { font-style: normal; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { text-wrap: balance; }
p { text-wrap: pretty; }
::selection { color: var(--paper); background: var(--red); }
:focus-visible { outline: 3px solid var(--red); outline-offset: 4px; }

.shell { width: min(100%, calc(var(--shell) + 2 * var(--gutter))); margin-inline: auto; padding-inline: var(--gutter); }
.section-night { color: var(--paper); background: var(--ink); }
.section-fog { color: var(--ink); background: var(--paper); }
.section-lime { color: var(--ink); background: var(--yellow); }
.section-violet { color: var(--paper); background: var(--red); }
.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; }
.skip-link { position: fixed; z-index: 1000; top: 1rem; left: 1rem; padding: .75rem 1rem; color: var(--paper); background: var(--red); transform: translateY(-180%); }
.skip-link:focus { transform: none; }
.eyebrow, .section-label, .legal-kicker {
    font: 800 .72rem/1.2 "Courier New", monospace;
    letter-spacing: .12em;
    text-transform: uppercase;
}
.lead { max-width: 760px; font-size: clamp(1.08rem, 1.75vw, 1.4rem); line-height: 1.65; }

.button {
    display: inline-flex;
    min-height: 52px;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    padding: .9rem 1.15rem;
    border: 2px solid var(--ink);
    font-size: .76rem;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
    transition: transform 160ms ease, box-shadow 160ms ease, background 160ms ease;
}
.button:hover { transform: translate(-4px,-4px); box-shadow: 7px 7px 0 var(--ink); }
.button-lime { color: var(--paper); background: var(--blue); }
.button-lime:hover { background: var(--red); }
.button-ghost { color: var(--paper); border-color: var(--paper); background: transparent; }
.text-link, .arrow-link { display: inline-flex; width: fit-content; align-items: center; gap: .8rem; padding-bottom: .2rem; border-bottom: 2px solid currentColor; }
.text-link:hover, .arrow-link:hover { color: var(--red); }
.arrow-link { margin-top: 1.3rem; font-weight: 800; }

/* Header */
.site-header {
    position: absolute;
    z-index: 50;
    top: 0;
    left: 0;
    width: 100%;
    height: var(--header);
    color: var(--ink);
    background: var(--paper);
    border-bottom: 2px solid var(--ink);
    transition: background 180ms ease, color 180ms ease;
}
.site-header.is-scrolled { position: fixed; color: var(--paper); background: rgba(23,23,23,.97); border-color: var(--paper); }
.header-inner { display: flex; height: 100%; align-items: center; justify-content: space-between; gap: 2rem; }
.brand { display: inline-flex; align-items: center; gap: .8rem; }
.brand-mark {
    display: grid;
    width: 48px;
    height: 48px;
    grid-template-columns: repeat(3,1fr);
    gap: 3px;
    padding: 6px;
    color: var(--ink);
    background: var(--paper);
    border: 2px solid var(--ink);
    transition: transform 180ms ease;
}
.brand:hover .brand-mark { transform: rotate(-4deg); }
.brand-mark i { display: block; background: var(--ink); }
.brand-mark i:nth-child(2) { background: var(--red); transform: translateY(7px); }
.brand-mark i:nth-child(3) { background: var(--blue); transform: translateY(-3px); }
.brand-copy { display: grid; line-height: 1; }
.brand-copy strong { font-size: 1.15rem; font-weight: 950; letter-spacing: .15em; }
.brand-copy small { margin-top: .4rem; color: var(--muted-dark); font-size: .57rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.site-header.is-scrolled .brand-copy small { color: var(--muted-light); }
.site-nav { display: flex; align-items: center; gap: .1rem; }
.site-nav > a { padding: .75rem .9rem; font-size: .72rem; font-weight: 850; letter-spacing: .05em; text-transform: uppercase; }
.site-nav > a:not(.nav-cta)::after { display: block; width: 0; height: 3px; margin-top: .22rem; content: ""; background: var(--red); transition: width 160ms ease; }
.site-nav > a:hover::after, .site-nav > a[aria-current="page"]::after { width: 100%; }
.site-nav .nav-cta { margin-left: .6rem; color: var(--paper); background: var(--blue); border: 2px solid var(--ink); }
.site-header.is-scrolled .site-nav .nav-cta { color: var(--ink); background: var(--yellow); border-color: var(--paper); }
.site-nav .nav-cta:hover { background: var(--red); }
.menu-toggle { display: none; width: 46px; height: 46px; padding: 12px 9px; background: transparent; border: 2px solid currentColor; cursor: pointer; }
.menu-toggle > span:not(.sr-only) { display: block; width: 100%; height: 2px; margin: 5px 0; background: currentColor; transition: transform 160ms ease; }

/* Home */
.home-hero { position: relative; min-height: 890px; padding-top: var(--header); overflow: hidden; color: var(--ink); background: var(--paper); }
.home-hero::before {
    position: absolute;
    inset: var(--header) 0 0;
    content: "";
    opacity: .24;
    background-image: linear-gradient(var(--line-light) 1px, transparent 1px), linear-gradient(90deg,var(--line-light) 1px,transparent 1px);
    background-size: 92px 92px;
}
.hero-watermark {
    position: absolute;
    right: -5vw;
    bottom: -6vw;
    color: var(--blue);
    font-size: clamp(20rem,52vw,50rem);
    font-weight: 950;
    line-height: .7;
    letter-spacing: -.16em;
    opacity: .1;
    transform: rotate(-6deg);
}
.hero-layout {
    position: relative;
    z-index: 1;
    display: grid;
    min-height: 720px;
    grid-template-columns: minmax(0,1.25fr) minmax(280px,.48fr);
    gap: clamp(3rem,7vw,8rem);
    align-items: center;
    padding-top: 5rem;
    padding-bottom: 4rem;
}
.hero-copy { max-width: 980px; }
.hero-copy .eyebrow { width: fit-content; padding: .45rem .65rem; color: var(--paper); background: var(--ink); }
.hero-copy h1 {
    margin: 1.5rem 0 1.8rem;
    font-family: Impact, "Arial Black", sans-serif;
    font-size: clamp(5.2rem,10.7vw,11.5rem);
    font-weight: 950;
    line-height: .78;
    letter-spacing: -.065em;
    text-transform: uppercase;
}
h1 em, h2 em { color: var(--red); font-family: Georgia, "Times New Roman", serif; font-weight: 400; text-transform: none; }
.hero-lead { max-width: 700px; margin-bottom: 2rem; font-size: clamp(1.05rem,1.5vw,1.27rem); line-height: 1.65; }
.hero-actions { display: flex; align-items: center; gap: 1.6rem; flex-wrap: wrap; }
.build-card {
    align-self: end;
    margin-bottom: 1rem;
    padding: 1.35rem;
    color: var(--paper);
    background: var(--red);
    border: 2px solid var(--ink);
    box-shadow: 14px 14px 0 var(--blue);
    transform: rotate(2deg);
}
.build-card-head, .build-meta { display: flex; align-items: center; justify-content: space-between; gap: 1rem; font: 800 .64rem "Courier New",monospace; letter-spacing: .1em; }
.build-card-head i { padding: .25rem .4rem; color: var(--ink); background: var(--yellow); font-style: normal; }
.build-card > strong { display: block; margin: 2.5rem 0 2rem; font-size: clamp(2.3rem,4vw,4.3rem); line-height: .82; letter-spacing: -.05em; }
.build-card > p { margin-bottom: 2.3rem; font-size: 1.2rem; font-weight: 800; line-height: 1.25; }
.build-meta { padding-top: .9rem; border-top: 1px solid rgba(255,255,255,.5); }
.hero-rail {
    position: relative;
    z-index: 1;
    display: grid;
    min-height: 78px;
    grid-template-columns: repeat(4,1fr);
    align-items: center;
    border-top: 2px solid var(--ink);
    font: 800 .68rem "Courier New",monospace;
    letter-spacing: .1em;
    text-transform: uppercase;
}
.hero-rail span:last-child { color: var(--paper); background: var(--blue); padding: .5rem .65rem; justify-self: end; }
.ticker { overflow: hidden; color: var(--paper); background: var(--ink); border-block: 2px solid var(--ink); transform: rotate(-1deg); transform-origin: center; }
.ticker div { width: max-content; padding: .68rem 0; font-size: clamp(1.25rem,2.3vw,2.2rem); font-weight: 950; letter-spacing: .06em; white-space: nowrap; animation: tickerMove 28s linear infinite; }
.ticker span { margin-inline: 1.6rem; color: var(--yellow); }
@keyframes tickerMove { to { transform: translateX(-30%); } }

.manifesto { padding-block: clamp(6rem,11vw,11rem); }
.manifesto-grid { display: grid; grid-template-columns: minmax(220px,.45fr) minmax(0,1fr); gap: clamp(3rem,9vw,10rem); }
.manifesto h2 { max-width: 1050px; margin-bottom: 2rem; font-size: clamp(3.1rem,6.3vw,7.1rem); line-height: .9; letter-spacing: -.06em; }
.manifesto h2 em { color: var(--blue); }
.signal-object {
    display: grid;
    width: min(240px,85%);
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    margin-top: 7rem;
    color: var(--paper);
    background: var(--ink);
    border: 2px solid var(--ink);
    box-shadow: 12px 12px 0 var(--red);
    transform: rotate(-5deg);
}
.signal-object b { padding: 1.5rem .6rem; font-size: 2.5rem; text-align: center; }
.signal-object i { color: var(--yellow); font-size: 1.5rem; font-style: normal; }

.capabilities { padding-block: clamp(6rem,10vw,10rem); }
.section-heading { display: grid; grid-template-columns: minmax(0,1fr) minmax(260px,.35fr); gap: 4rem; align-items: end; margin-bottom: 4rem; }
.section-heading h2 { margin: 0; font-size: clamp(3.6rem,7vw,7.6rem); line-height: .84; letter-spacing: -.065em; }
.section-heading > p { margin: 0; color: var(--muted-light); }
.capability-stack { display: grid; grid-template-columns: repeat(12,1fr); gap: 1rem; align-items: start; }
.capability-card {
    display: grid;
    min-height: 410px;
    grid-template-columns: 58px 1fr auto;
    gap: 1.2rem;
    padding: 1.5rem;
    color: var(--ink);
    border: 2px solid var(--paper);
    transition: transform 170ms ease, box-shadow 170ms ease;
}
.capability-card:hover { z-index: 2; transform: translate(-7px,-7px); box-shadow: 10px 10px 0 var(--paper); }
.card-games { grid-column: 1 / span 5; background: var(--yellow); }
.card-apps { grid-column: 6 / span 4; margin-top: 6rem; color: var(--paper); background: var(--blue); }
.card-release { grid-column: 10 / span 3; margin-top: 2rem; background: var(--paper); }
.card-number { font: 900 .73rem "Courier New",monospace; }
.capability-card > div { align-self: end; }
.capability-card > div p { margin-bottom: .7rem; font: 800 .64rem "Courier New",monospace; letter-spacing: .08em; }
.capability-card h3 { margin: 0; font-size: clamp(2rem,3.4vw,4rem); line-height: .9; letter-spacing: -.055em; }
.capability-card > i { font-size: 1.4rem; font-style: normal; }

.unity { padding-block: clamp(6rem,10vw,10rem); }
.unity-grid { display: grid; grid-template-columns: 1.18fr .82fr; gap: clamp(4rem,10vw,12rem); align-items: center; }
.unity-title h2 { margin: 1.2rem 0 0; font-size: clamp(4.5rem,9vw,10rem); line-height: .78; letter-spacing: -.075em; text-transform: uppercase; }
.unity-title h2 span { color: var(--yellow); }
.unity-code { width: fit-content; margin-bottom: 3rem; padding: .45rem .65rem; color: var(--ink); background: var(--yellow); border: 2px solid var(--ink); font: 900 .72rem "Courier New",monospace; letter-spacing: .08em; transform: rotate(1deg); }
.unity-points { display: grid; grid-template-columns: repeat(3,1fr); margin-top: 3rem; border-top: 2px solid var(--paper); }
.unity-points span { padding: 1rem .5rem 0 0; font-size: .78rem; font-weight: 850; text-transform: uppercase; }
.process { padding-block: clamp(6rem,10vw,10rem); }
.process-grid { display: grid; grid-template-columns: .76fr 1fr; gap: clamp(4rem,9vw,11rem); }
.process-grid h2 { font-size: clamp(3.2rem,5.5vw,6rem); line-height: .9; letter-spacing: -.06em; }
.process-list { margin: 0; padding: 0; list-style: none; border-top: 3px solid var(--ink); }
.process-list li { display: grid; grid-template-columns: 64px 1fr; gap: 1rem; padding: 1.6rem 0; border-bottom: 1px solid var(--line-light); }
.process-list li > span { color: var(--red); font: 900 .72rem "Courier New",monospace; }
.process-list h3 { margin-bottom: .3rem; font-size: 1.25rem; }
.process-list p { max-width: 620px; margin: 0; }

/* Inner pages */
.page-hero { position: relative; min-height: 710px; padding-top: var(--header); overflow: hidden; color: var(--ink); background: var(--paper); }
.page-hero::after { position: absolute; width: 44vw; height: 44vw; right: -10vw; bottom: -17vw; content: ""; background: var(--yellow); border: 2px solid var(--ink); transform: rotate(13deg); }
.page-hero-grid { position: relative; z-index: 2; display: grid; min-height: 618px; grid-template-columns: .34fr 1fr; gap: 3rem; align-items: end; padding-top: 5rem; padding-bottom: 5.5rem; }
.page-hero-grid h1 { margin: 0 0 2rem; font-size: clamp(4.7rem,9vw,9.6rem); line-height: .8; letter-spacing: -.075em; text-transform: uppercase; }
.page-hero-grid > div > p { max-width: 700px; margin: 0; color: var(--muted-dark); font-size: clamp(1.05rem,1.7vw,1.35rem); }
.page-signal { position: absolute; width: min(48vw,680px); aspect-ratio: 1; top: 26%; right: -9%; border: 2px solid var(--ink); transform: rotate(9deg); }
.page-signal::before { position: absolute; inset: 18%; content: ""; border: 2px solid var(--ink); }
.page-signal::after { position: absolute; width: 18%; height: 18%; top: 7%; left: 13%; content: ""; background: var(--red); border: 2px solid var(--ink); }
.page-signal span { position: absolute; display: block; background: var(--ink); }
.page-signal span:nth-child(1) { width: 2px; height: 100%; left: 50%; }
.page-signal span:nth-child(2) { width: 100%; height: 2px; top: 50%; }
.page-signal span:nth-child(3) { width: 22%; height: 22%; right: 8%; bottom: 10%; background: var(--blue); }
.page-hero-violet { color: var(--paper); background: var(--blue); }
.page-hero-violet::after { background: var(--red); border-color: var(--paper); }
.page-hero-violet .page-hero-grid > div > p { color: rgba(255,255,255,.82); }
.page-hero-violet h1 em { color: var(--yellow); }
.page-hero-violet .page-signal { border-color: var(--paper); }
.page-hero-violet .page-signal::before { border-color: var(--paper); }
.page-hero-violet .page-signal span { background: var(--paper); }
.page-hero-violet .page-signal span:nth-child(3) { background: var(--yellow); }

.service-chapters { padding-block: 1rem; }
.service-chapter { display: grid; grid-template-columns: .22fr minmax(300px,.82fr) minmax(300px,.72fr); gap: clamp(2rem,5vw,6rem); align-items: start; padding-top: clamp(5rem,9vw,9rem); padding-bottom: clamp(5rem,9vw,9rem); border-bottom: 2px solid var(--ink); }
.service-chapter:last-child { border-bottom: 0; }
.service-shift .chapter-title { transform: translateY(4rem); }
.chapter-index span { display: block; color: var(--blue); font-size: clamp(5rem,9vw,9rem); font-weight: 950; line-height: .8; letter-spacing: -.08em; }
.chapter-index p { margin: 1rem 0 0; font: 900 .65rem "Courier New",monospace; letter-spacing: .1em; }
.chapter-title h2 { margin: 0 0 2rem; font-size: clamp(2.8rem,4.7vw,5.4rem); line-height: .9; letter-spacing: -.06em; }
.service-chapter ul { margin: 0; padding: 0; list-style: none; border-top: 3px solid var(--ink); }
.service-chapter li { padding: 1rem 0; border-bottom: 1px solid var(--line-light); font-weight: 750; }
.service-chapter li::before { margin-right: .8rem; color: var(--red); content: "■"; }
.service-footer { padding-block: clamp(6rem,9vw,9rem); }
.service-footer-grid { display: grid; grid-template-columns: .35fr 1fr .56fr; gap: 3rem; align-items: end; }
.service-footer h2 { margin: 0; font-size: clamp(3rem,5.5vw,6.2rem); line-height: .9; letter-spacing: -.06em; }
.service-footer p:last-child { margin: 0; }

.identity { padding-block: clamp(6rem,11vw,11rem); }
.identity-grid { display: grid; grid-template-columns: .62fr 1fr; gap: clamp(4rem,9vw,10rem); }
.identity-grid h2 { margin-bottom: 2rem; font-size: clamp(3.4rem,6vw,7rem); line-height: .9; letter-spacing: -.06em; }
.identity-grid .lead { color: var(--muted-light); }
.identity-badge { display: grid; width: min(310px,90%); grid-template-columns: 1fr auto 1fr; align-items: center; margin-top: 6rem; color: var(--ink); background: var(--yellow); border: 2px solid var(--paper); transform: rotate(-5deg); box-shadow: 14px 14px 0 var(--red); }
.identity-badge span { padding: 1.4rem .8rem; font-size: 2rem; font-weight: 950; text-align: center; }
.identity-badge i { font-size: 1.4rem; font-style: normal; }
.principles { padding-block: clamp(6rem,10vw,10rem); }
.principles-grid { display: grid; grid-template-columns: .65fr 1fr; gap: clamp(3rem,8vw,9rem); }
.principles-grid > div:first-child h2 { font-size: clamp(3rem,5vw,5.6rem); line-height: .9; letter-spacing: -.06em; }
.principle-list { border-top: 3px solid var(--ink); }
.principle-list article { display: grid; grid-template-columns: 64px 1fr; gap: 1rem; padding: 1.55rem 0; border-bottom: 1px solid var(--line-light); }
.principle-list span { color: var(--red); font: 900 .72rem "Courier New",monospace; }
.principle-list h3 { margin-bottom: .25rem; font-size: 1.3rem; }
.principle-list p { margin: 0; }
.location { padding-block: clamp(6rem,10vw,10rem); }
.location-grid { display: grid; grid-template-columns: .32fr 1fr .35fr; gap: 3rem; align-items: end; }
.location-grid h2 { margin: 0; font-size: clamp(3.5rem,7vw,8rem); line-height: .8; letter-spacing: -.07em; text-transform: uppercase; }
.location-grid h2 em { color: var(--red-dark); font-size: .5em; }
.location-grid > p:last-child { margin: 0; }

.contact-hero { position: relative; min-height: 800px; padding-top: var(--header); overflow: hidden; }
.contact-hero::before { position: absolute; width: 520px; height: 520px; right: -100px; bottom: -150px; content: ""; background: var(--blue); border: 3px solid var(--paper); transform: rotate(15deg); }
.contact-noise { position: absolute; width: 280px; height: 280px; right: 170px; bottom: 130px; background: var(--red); border: 3px solid var(--paper); transform: rotate(-8deg); }
.contact-grid { position: relative; z-index: 1; display: grid; min-height: 708px; grid-template-columns: 1fr minmax(390px,.66fr); gap: clamp(4rem,9vw,10rem); align-items: center; padding-top: 5rem; padding-bottom: 5rem; }
.contact-grid h1 { margin: 1.1rem 0 2rem; font-size: clamp(4.6rem,9vw,9.4rem); line-height: .8; letter-spacing: -.075em; text-transform: uppercase; }
.contact-grid > div:first-child > p:last-child { max-width: 600px; color: var(--muted-light); font-size: 1.16rem; }
.contact-panel { border-top: 3px solid var(--yellow); }
.contact-panel > a, .contact-panel > address { position: relative; display: grid; gap: .4rem; padding: 1.5rem 3rem 1.5rem 0; border-bottom: 1px solid var(--line-dark); }
.contact-panel span { color: var(--muted-light); font: 800 .67rem "Courier New",monospace; letter-spacing: .1em; text-transform: uppercase; }
.contact-panel strong { font-size: 1.08rem; }
.contact-panel i { position: absolute; top: 50%; right: 0; color: var(--yellow); font-style: normal; transform: translateY(-50%); }
.contact-panel a:hover strong { color: var(--yellow); }
.contact-note { padding-block: clamp(5rem,8vw,8rem); }
.contact-note-grid { display: grid; grid-template-columns: .35fr 1fr; gap: 4rem; }
.contact-note-grid h2 { margin: 0; font-size: clamp(2.5rem,4.6vw,5.2rem); line-height: .95; letter-spacing: -.055em; }
.company-facts { padding-block: 4rem; }
.facts-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 2px; background: var(--ink); border: 2px solid var(--ink); }
.facts-grid > * { display: grid; min-height: 150px; align-content: space-between; gap: .6rem; padding: 1.3rem; background: var(--paper); }
.facts-grid span { font: 900 .67rem "Courier New",monospace; letter-spacing: .09em; text-transform: uppercase; }
.facts-grid a { color: var(--paper); background: var(--blue); }

/* Legal and error pages */
.legal-hero { padding-top: var(--header); color: var(--paper); background: var(--ink); }
.legal-hero-grid { display: grid; min-height: 510px; grid-template-columns: .34fr 1fr; gap: 3rem; align-items: end; padding-top: 6rem; padding-bottom: 5rem; }
.legal-hero h1 { margin: 0 0 1rem; font-size: clamp(4rem,8vw,8rem); line-height: .85; letter-spacing: -.065em; }
.legal-hero-grid > div > p { color: var(--muted-light); }
.legal-content { padding-block: clamp(5rem,9vw,9rem); }
.legal-grid { display: grid; grid-template-columns: minmax(190px,.32fr) minmax(0,1fr); gap: clamp(3rem,8vw,9rem); }
.legal-grid aside { position: sticky; top: calc(var(--header) + 2rem); align-self: start; display: grid; gap: .65rem; padding: 1rem; color: var(--paper); background: var(--blue); border: 2px solid var(--ink); transform: rotate(-1deg); }
.legal-grid aside p { margin-bottom: .6rem; font: 900 .67rem "Courier New",monospace; letter-spacing: .1em; }
.legal-grid aside a { width: fit-content; font-size: .9rem; }
.legal-grid aside a:hover { color: var(--yellow); }
.legal-grid article { max-width: 880px; }
.legal-grid article > section { padding-bottom: 4rem; margin-bottom: 4rem; border-bottom: 2px solid var(--line-light); }
.legal-grid article > section:last-child { margin-bottom: 0; border-bottom: 0; }
.legal-kicker { color: var(--red); }
.legal-grid h2 { margin: .7rem 0 1.3rem; font-size: clamp(2rem,3vw,3.3rem); line-height: 1; letter-spacing: -.04em; }
.legal-grid article p { font-size: 1.03rem; }
.legal-grid article a { color: var(--blue-dark); text-decoration: underline; text-underline-offset: 3px; }
.legal-grid code { padding: .15rem .35rem; color: var(--paper); background: var(--ink); }
.legal-details { margin: 0; border-top: 3px solid var(--ink); }
.legal-details div { display: grid; grid-template-columns: 180px 1fr; gap: 2rem; padding: 1.2rem 0; border-bottom: 1px solid var(--line-light); }
.legal-details dt { font-weight: 850; }
.legal-details dd { margin: 0; }

.error-section { position: relative; min-height: 100vh; padding-top: var(--header); overflow: hidden; }
.error-glitch { position: absolute; right: -2vw; bottom: -5vw; color: var(--blue); font-size: clamp(15rem,38vw,42rem); font-weight: 950; line-height: .75; letter-spacing: -.14em; opacity: .18; transform: skewY(-5deg); }
.error-inner { position: relative; z-index: 1; display: flex; min-height: calc(100vh - var(--header)); flex-direction: column; align-items: flex-start; justify-content: center; padding-top: 4rem; padding-bottom: 5rem; }
.error-inner h1 { margin: 1rem 0 1.5rem; font-size: clamp(4rem,8vw,8rem); line-height: .82; letter-spacing: -.07em; text-transform: uppercase; }
.error-inner > p:last-of-type { max-width: 560px; margin-bottom: 2rem; color: var(--muted-light); font-size: 1.1rem; }

/* Footer + cookies */
.site-footer { color: var(--paper); background: var(--ink); }
.footer-callout { padding-top: clamp(6rem,10vw,10rem); padding-bottom: clamp(5rem,8vw,8rem); border-bottom: 2px solid var(--paper); }
.footer-callout > div { display: flex; align-items: end; justify-content: space-between; gap: 3rem; }
.footer-callout h2 { margin: 1rem 0 0; font-size: clamp(3.6rem,7.5vw,8.2rem); line-height: .83; letter-spacing: -.07em; }
.footer-callout h2 em { color: var(--yellow); }
.round-link { display: grid; width: 100px; height: 100px; flex: 0 0 100px; place-items: center; color: var(--paper); background: var(--red); border: 2px solid var(--paper); font-size: 2rem; box-shadow: 9px 9px 0 var(--blue); transition: transform 170ms ease; }
.round-link:hover { transform: rotate(-7deg); }
.footer-grid { display: grid; grid-template-columns: 1.4fr .55fr .55fr 1fr; gap: 3rem; padding-top: 4rem; padding-bottom: 4rem; }
.footer-identity > p { max-width: 360px; margin-top: 1.5rem; color: var(--muted-light); }
.site-footer .brand-mark { color: var(--ink); }
.site-footer .brand-copy small { color: var(--muted-light); }
.footer-column { display: flex; flex-direction: column; align-items: flex-start; gap: .55rem; color: var(--muted-light); font-size: .88rem; }
.footer-column > p { margin-bottom: .7rem; color: var(--paper); font: 850 .67rem "Courier New",monospace; letter-spacing: .1em; text-transform: uppercase; }
.footer-column a:hover, .footer-button:hover { color: var(--yellow); }
.footer-button { padding: 0; color: var(--muted-light); background: transparent; border: 0; cursor: pointer; }
.footer-bottom { display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding-top: 1.2rem; padding-bottom: 1.2rem; color: var(--muted-light); border-top: 1px solid var(--line-dark); font: 750 .66rem "Courier New",monospace; letter-spacing: .08em; text-transform: uppercase; }
.footer-bottom p { margin: 0; }
.cookie-banner {
    position: fixed;
    z-index: 100;
    right: 1.2rem;
    bottom: 1.2rem;
    display: grid;
    width: min(660px,calc(100% - 2.4rem));
    grid-template-columns: 1fr auto;
    gap: 1.5rem;
    padding: 1.25rem;
    color: var(--ink);
    background: var(--paper);
    border: 3px solid var(--ink);
    box-shadow: 10px 10px 0 var(--blue);
}
.cookie-banner[hidden] { display: none; }
.cookie-title { margin-bottom: .2rem; font-weight: 900; }
.cookie-banner p:last-child { margin-bottom: 0; color: var(--muted-dark); font-size: .82rem; }
.cookie-banner a { color: var(--blue-dark); text-decoration: underline; }
.cookie-actions { display: flex; align-items: center; gap: .6rem; }
.cookie-actions .button { min-height: 44px; padding: .6rem .8rem; font-size: .64rem; box-shadow: none; }
.cookie-actions .button-ghost { color: var(--ink); border-color: var(--ink); }

[data-reveal] { opacity: 0; transform: translateY(28px); transition: opacity 650ms ease, transform 650ms cubic-bezier(.2,.7,.2,1); }
[data-reveal].is-visible { opacity: 1; transform: none; }

@media (max-width:1120px) {
    .hero-layout { grid-template-columns: 1fr; align-content: center; }
    .build-card { width: min(100%,390px); justify-self: end; margin: 0; }
    .section-heading, .unity-grid, .process-grid, .service-footer-grid { grid-template-columns: 1fr; }
    .capability-card { min-height: 360px; }
    .card-games { grid-column: 1 / span 6; }
    .card-apps { grid-column: 7 / span 6; margin-top: 4rem; }
    .card-release { grid-column: 4 / span 6; margin-top: 0; }
    .service-chapter { grid-template-columns: .25fr 1fr; }
    .service-chapter ul { grid-column: 2; }
    .service-shift .chapter-title { transform: none; }
    .location-grid { grid-template-columns: .3fr 1fr; }
    .location-grid > p:last-child { grid-column: 2; }
    .facts-grid { grid-template-columns: repeat(2,1fr); }
    .footer-grid { grid-template-columns: 1.2fr repeat(2,.6fr); }
    .footer-grid address { grid-column: 1 / -1; }
}

@media (max-width:840px) {
    :root { --header: 78px; }
    .menu-toggle { display: block; }
    .site-nav {
        position: fixed;
        inset: var(--header) 0 0;
        display: flex;
        flex-direction: column;
        align-items: stretch;
        gap: 0;
        padding: 2rem var(--gutter);
        color: var(--paper);
        background: var(--ink);
        transform: translateX(100%);
        visibility: hidden;
        transition: transform 220ms ease, visibility 220ms ease;
    }
    .site-nav.is-open { transform: none; visibility: visible; }
    .site-nav > a { padding: 1rem 0; border-bottom: 1px solid var(--line-dark); font-size: 1.35rem; }
    .site-nav .nav-cta { margin: 1.5rem 0 0; padding: 1rem; color: var(--paper); text-align: center; border-color: var(--paper); }
    .menu-toggle[aria-expanded="true"] span:nth-of-type(2) { transform: translateY(3.5px) rotate(45deg); }
    .menu-toggle[aria-expanded="true"] span:nth-of-type(3) { transform: translateY(-3.5px) rotate(-45deg); }
    .home-hero { min-height: auto; }
    .hero-layout { min-height: 760px; padding-top: 5rem; }
    .manifesto-grid, .page-hero-grid, .identity-grid, .principles-grid, .contact-grid, .contact-note-grid, .legal-hero-grid, .legal-grid { grid-template-columns: 1fr; }
    .signal-object, .identity-badge { margin-top: 2rem; }
    .page-hero-grid { align-content: end; }
    .service-chapter { grid-template-columns: 1fr; }
    .service-chapter ul { grid-column: auto; }
    .chapter-index span { font-size: 5rem; }
    .contact-grid { align-content: center; }
    .legal-grid aside { position: static; grid-template-columns: repeat(2,1fr); padding: 1rem; transform: none; }
    .legal-grid aside p { grid-column: 1 / -1; }
    .footer-grid { grid-template-columns: repeat(2,1fr); }
    .footer-identity, .footer-grid address { grid-column: 1 / -1; }
    .cookie-banner { grid-template-columns: 1fr; }
}

@media (max-width:580px) {
    .brand-copy small { display: none; }
    .hero-copy h1 { font-size: clamp(3.75rem,18.5vw,5.6rem); }
    .hero-layout { min-height: 690px; padding-bottom: 2rem; }
    .build-card { display: none; }
    .hero-rail { grid-template-columns: repeat(2,1fr); gap: .7rem; padding-block: 1rem; }
    .hero-rail span:last-child { justify-self: start; }
    .manifesto h2, .section-heading h2, .unity-title h2, .process-grid h2 { font-size: clamp(2.8rem,13vw,4.4rem); }
    .capability-stack { display: block; }
    .capability-card { min-height: 310px; margin: 0 0 1rem; }
    .unity-points { grid-template-columns: 1fr; }
    .unity-points span { padding: .8rem 0; border-bottom: 1px solid rgba(255,255,255,.32); }
    .page-hero { min-height: 610px; }
    .page-hero-grid { min-height: 532px; padding-bottom: 3.5rem; }
    .page-hero-grid h1, .contact-grid h1 { font-size: clamp(3.5rem,16vw,5.2rem); }
    .location-grid { grid-template-columns: 1fr; }
    .location-grid > p:last-child { grid-column: auto; }
    .facts-grid, .footer-grid { grid-template-columns: 1fr; }
    .footer-identity, .footer-grid address { grid-column: auto; }
    .footer-callout > div { align-items: flex-start; flex-direction: column; }
    .round-link { width: 76px; height: 76px; flex-basis: 76px; }
    .footer-bottom { align-items: flex-start; flex-direction: column; gap: .4rem; }
    .legal-details div { grid-template-columns: 1fr; gap: .3rem; }
    .cookie-actions { flex-direction: column; align-items: stretch; }
}

@media (prefers-reduced-motion:reduce) {
    html { scroll-behavior: auto; }
    *,*::before,*::after { animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; }
    [data-reveal] { opacity:1; transform:none; }
}
