:root{--tone-ff4fd866:#ff4fd866;--tone-0b0d2af2:#0b0d2af2;--tone-0b0d2a80:#0b0d2a80;--tone-9b5cff22:#9b5cff22;--tone-ff85e422:#ff85e422;--tone-3ff4ff44:#3ff4ff44;--tone-0b0d2acc:#0b0d2acc;--tone-ff4fd855:#ff4fd855;--tone-3ff4ff15:#3ff4ff15;--tone-0b0d2a44:#0b0d2a44;--tone-9b5cff66:#9b5cff66;--tone-ff85e433:#ff85e433;--tone-3ff4ff30:#3ff4ff30;--tone-3ff4ff40:#3ff4ff40;--tone-0b0d2a99:#0b0d2a99;--tone-ff85e488:#ff85e488;--tone-9b5cff18:#9b5cff18;--tone-0b0d2ab3:#0b0d2ab3;--tone-3ff4ff18:#3ff4ff18;--tone-0b0d2a66:#0b0d2a66;--tone-9b5cff55:#9b5cff55;--tone-3ff4ff66:#3ff4ff66;--bg-2:#120a2e;--accent:#9b5cff;--steel-text:#d3e2f1;--steel-heading:#b8dcff;--steel-border:#6587a5;--warm-bg:#211c17;--warm-border:#766041;--text:#edf0ff;--text-muted:#c8cde5;--warm-text:#f1e5d0;--accent-2:#ff85e4;--bg:#0b0d2a;--warm-link:#e8c88b;--section-border:#333255;--border:#514478;--link:#3ff4ff;--panel:#11152f;--focus:#ffdc85;--steel-bg:#17283b;--frame-border:#474477;--tone-0002:#0002;--tone-000:#000;--heading-font:Terminal,monospace;--body-font:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--radius:0;--glow:none;--button-bg:var(--link);--button-text:var(--bg);--frame-bg:#0b0d2a;--frame-text:#edf0ff;--frame-link:#3ff4ff;}@font-face{font-family:Terminal;src:url('/assets/fonts/3270-nerd-font-regular.woff2') format('woff2');font-display:swap}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:2rem}body{min-height:100vh;display:flex;flex-direction:column;margin:0;background:var(--bg);color:var(--text);font:17px/1.65 var(--body-font)}a{color:var(--link);text-underline-offset:5px}a:hover{color:var(--accent-2)}a:focus-visible,pre:focus-visible{outline:3px solid var(--focus);outline-offset:5px}img{max-width:100%;height:auto;display:block}h1,h2,h3,.eyebrow,.wordmark,nav,.button,.tags,code{font-family:var(--heading-font)}h1,h2,h3{line-height:1.1;font-weight:400;margin:0 0 1rem}h1{font-size:clamp(3.2rem,6.4vw,6.4rem);letter-spacing:-.045em;text-shadow:0 0 30px var(--tone-ff4fd855)}h2{font-size:clamp(2rem,3.6vw,3.3rem)}h3{font-size:1.55rem}p{margin:0 0 1.25rem}.wrap{width:min(1200px,calc(100% - 64px));margin:auto}.header{background:var(--bg);border-bottom:1px solid var(--frame-border)}.header-inner{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;min-height:90px}.wordmark{font-size:1.65rem;text-decoration:none;color:var(--text)}.wordmark span{color:var(--accent-2)}nav{display:flex;flex-wrap:wrap;gap:1.5rem;font-size:1.05rem}nav a{text-decoration:none}.skip{position:absolute;left:1rem;top:-100px;z-index:20;background:var(--bg);padding:1rem}.skip:focus{top:1rem}.hero{min-height:690px;position:relative;overflow:hidden;isolation:isolate;border-bottom:1px solid var(--accent)}.hero-art{position:absolute;inset:0;z-index:-4;background:linear-gradient(90deg,var(--tone-0b0d2af2) 0%,var(--tone-0b0d2ab3) 53%,var(--tone-0b0d2a44)),url('/assets/img/ship-1920.webp') center/cover}.hero-inner{min-height:690px;display:flex;align-items:center;justify-content:space-between;gap:3rem;padding-block:80px}.hero-copy{max-width:740px;background:var(--bg);padding:30px;border-left:2px solid var(--accent-2);box-shadow:0 0 45px var(--tone-0b0d2a80)}.eyebrow{font-size:.92rem;letter-spacing:.13em;text-transform:uppercase;color:var(--accent-2)}.hero .lead{font-size:1.15rem;max-width:620px}.avatar{width:280px;flex-shrink:0;border:2px solid var(--link);border-radius:50%;box-shadow:0 0 0 10px var(--tone-0b0d2acc),0 0 40px var(--tone-3ff4ff40)}.actions{display:flex;flex-wrap:wrap;gap:1rem;margin:2rem 0}.button{display:inline-flex;align-items:center;justify-content:center;gap:1rem;background:var(--link);color:var(--bg);text-decoration:none;padding:.7rem 1.15rem;border:1px solid var(--link);font-size:1.1rem}.button:hover{background:var(--text);color:var(--bg)}.secondary{background:var(--bg);color:var(--text);border-color:var(--accent-2)}.links{display:flex;flex-wrap:wrap;gap:.7rem 1.5rem}.links a{display:inline-block;padding-block:.25rem}:where(body.theme-synthwave) .grid-floor{position:absolute;z-index:-2;bottom:-200px;left:-50%;width:200%;height:440px;transform:perspective(300px) rotateX(55deg);transform-origin:center top;background-image:linear-gradient(var(--tone-9b5cff55) 1px,transparent 1px),linear-gradient(90deg,var(--tone-3ff4ff44) 1px,transparent 1px);background-size:70px 70px;animation:drift 30s linear infinite}@keyframes drift{to{background-position:0 140px}}.section{padding:100px 0;border-bottom:1px solid var(--section-border);background:var(--bg)}.section:nth-of-type(3){background:var(--bg-2)}.lead{max-width:850px;color:var(--text-muted);font-size:1.1rem;margin-bottom:2.5rem}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin:2.5rem 0}.card{background:var(--panel);border:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden;box-shadow:0 5px 24px var(--tone-0002)}.card>img{width:100%;aspect-ratio:16/9;object-fit:cover;border-bottom:1px solid var(--border)}.card-body{min-width:0;overflow-wrap:anywhere;padding:24px;display:flex;flex-direction:column;flex:1}.card p{color:var(--text-muted)}.card .links{margin-top:auto}.card h3{color:var(--text)}.card:hover{border-color:var(--accent)}.tags{display:flex;gap:.5rem;font-size:.85rem;color:var(--accent-2)!important}.tags span{border:1px solid var(--border);padding:.1rem .5rem}.callout{padding:30px;background:var(--panel);border-left:3px solid var(--accent-2);display:flex;align-items:center;justify-content:space-between;gap:2rem;margin:2.5rem 0}.callout p{margin:0;max-width:700px;font-size:1.2rem}.callout .button{flex-shrink:0}.note{padding-top:1rem}.themes .card:first-child{border-color:var(--link);box-shadow:0 0 24px var(--tone-3ff4ff15)}.themes .card>img,.tools .card>img{object-fit:contain}.tools{grid-template-columns:repeat(2,minmax(0,1fr))}code{overflow-wrap:anywhere;color:var(--text)}pre{padding:24px;background:var(--panel);border:1px solid var(--border);overflow:auto;white-space:pre-wrap;word-break:break-word;font-size:1rem}.coming{padding:24px 0}.coming ul{padding-left:1.3rem;color:var(--text-muted)}.lampstand{position:relative;z-index:2;padding:80px 0;background:var(--warm-bg);color:var(--warm-text);font:18px/1.7 Georgia,"Times New Roman",serif;border-block:1px solid var(--warm-border)}.lamp-inner{display:flex;align-items:center;justify-content:center;gap:3rem}.lampstand img{width:120px;height:120px;object-fit:contain}.lampstand h2{font-family:Georgia,"Times New Roman",serif;font-size:2rem;text-shadow:none}.lampstand a{color:var(--warm-link)}.lampstand a:hover{color:var(--warm-text)}.email{font-size:clamp(1rem,3vw,1.6rem);overflow-wrap:anywhere}.footer{display:flex;align-items:center;justify-content:space-between;padding-block:26px;color:var(--text-muted)}.footer p{margin:0}.footer picture{width:64px;height:64px;image-rendering:pixelated}.lost{padding-block:15vh}.lost h1{color:var(--accent-2)}.lost p{margin-bottom:2rem}@media(min-width:1800px){.hero-art{background-position:center 45%}}@media(max-width:1000px){.header-inner{flex-direction:column;align-items:flex-start;padding-block:20px;gap:12px}.hero-inner{gap:24px}.avatar{width:200px}.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.hero-copy{padding:24px}.hero-inner{min-height:650px}.hero{min-height:650px}}@media(max-width:600px){.wrap{width:calc(100% - 36px)}nav{gap:.3rem 1.1rem;font-size:1rem}nav a{padding-block:.3rem}.header-inner{gap:8px}.hero-art{background-image:linear-gradient(var(--tone-0b0d2a99),var(--tone-0b0d2acc)),url('/assets/img/ship-800.webp')}.hero-inner{flex-direction:column-reverse;align-items:flex-start;padding-block:40px;gap:28px;min-height:0}.hero-copy{padding:20px;max-width:100%}.hero .lead{font-size:1rem}.avatar{width:160px;margin-left:20px}.hero{min-height:0}.section{padding:64px 0}.cards,.tools{grid-template-columns:1fr;gap:20px}.card-body{padding:22px}.callout{flex-direction:column;align-items:flex-start;padding:24px;gap:20px}.lamp-inner{flex-direction:column;align-items:flex-start;gap:24px}.lampstand{padding-block:56px}.lampstand h2{font-size:1.75rem}.email{line-height:1.8}pre{padding:18px;font-size:.9rem}}@media(min-width:601px) and (max-width:1400px){.hero-art{background-image:linear-gradient(90deg,var(--tone-0b0d2af2),var(--tone-0b0d2a66)),url('/assets/img/ship-1280.webp')}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media(min-width:601px) and (max-width:850px){.hero-inner{flex-direction:column-reverse;align-items:flex-start;padding-block:48px;gap:30px}.hero-copy{width:100%}.hero h1{font-size:clamp(2rem,7vw,4rem)}}@media(max-width:600px){.hero h1{font-size:clamp(2rem,9vw,3.2rem)}}
html:has(:where(body.theme-synthwave)){scroll-padding-top:160px}:where(body.theme-synthwave):after{content:"";position:fixed;inset:0;z-index:5;pointer-events:none;opacity:.045;background:repeating-linear-gradient(transparent 0 3px,var(--tone-000) 3px 4px)}:where(body.theme-synthwave) .header{position:sticky;top:0;z-index:10;border:0;background:var(--bg)}:where(body.theme-synthwave) .header:after{content:"";position:absolute;bottom:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--accent-2),var(--accent),var(--link))}:where(body.theme-synthwave) nav a{min-height:40px;display:inline-flex;align-items:center}:where(body.theme-synthwave) h1,:where(body.theme-synthwave) h2{color:var(--text);text-shadow:0 0 3px var(--tone-ff85e488),0 0 18px var(--tone-ff4fd866),0 0 38px var(--tone-9b5cff66)}:where(body.theme-synthwave) h2:after{content:"";display:block;width:min(260px,100%);height:3px;margin-top:20px;background:linear-gradient(90deg,var(--accent-2),var(--accent),var(--link));box-shadow:0 0 12px var(--tone-9b5cff66)}:where(body.theme-synthwave) .section{position:relative;isolation:isolate;overflow:hidden;background:var(--bg);border-bottom:1px solid var(--tone-9b5cff66)}:where(body.theme-synthwave) .section:nth-of-type(odd){background:var(--bg-2)}:where(body.theme-synthwave) .section:before{content:"";position:absolute;inset:0;z-index:-2;background:radial-gradient(ellipse at 50% 100%,var(--tone-9b5cff22),transparent 55%)}:where(body.theme-synthwave) .section:after{content:"";position:absolute;bottom:-100px;left:-50%;width:200%;height:210px;z-index:-1;pointer-events:none;transform:perspective(320px) rotateX(60deg);transform-origin:top;background-image:linear-gradient(var(--tone-9b5cff22) 1px,transparent 1px),linear-gradient(90deg,var(--tone-3ff4ff18) 1px,transparent 1px);background-size:64px 48px}:where(body.theme-synthwave) .section>.wrap{position:relative}:where(body.theme-synthwave) .card{border-color:var(--accent);box-shadow:0 0 18px var(--tone-9b5cff18)}:where(body.theme-synthwave) .card:hover,:where(body.theme-synthwave) .card:focus-within,:where(body.theme-synthwave) .themes .card:first-child:focus-within{border-color:var(--link);box-shadow:0 0 24px var(--tone-3ff4ff30)}:where(body.theme-synthwave) .card>img{border-color:var(--accent)}:where(body.theme-synthwave) .tags{flex-wrap:wrap}:where(body.theme-synthwave) .tags span{border-color:var(--accent-2);box-shadow:0 0 8px var(--tone-ff85e422)}:where(body.theme-synthwave) .card .tags:not(:has(span)){align-self:flex-start;border:1px solid var(--accent-2);padding:.1rem .5rem}:where(body.theme-synthwave) .button{box-shadow:0 0 18px var(--tone-3ff4ff40)}:where(body.theme-synthwave) .secondary{box-shadow:0 0 18px var(--tone-ff85e433)}:where(body.theme-synthwave) .button:hover,:where(body.theme-synthwave) .button:focus-visible{box-shadow:0 0 26px var(--tone-3ff4ff66)}:where(body.theme-synthwave) .terminal-strip{position:relative;aspect-ratio:16/6;min-height:130px;padding:12px 20px;display:flex;flex-direction:column;justify-content:center;gap:8px;background:var(--bg);border-bottom:1px solid var(--accent);font-family:var(--heading-font)}:where(body.theme-synthwave) .terminal-command{font-size:1rem;color:var(--link)}:where(body.theme-synthwave) .waveform{height:30px;width:100%;background:repeating-radial-gradient(ellipse at 50% 50%,transparent 0 7px,var(--link) 8px 9px,transparent 10px 17px);mask-image:linear-gradient(90deg,transparent,var(--tone-000) 15% 85%,transparent)}:where(body.theme-synthwave) .mods .card:first-child{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr}:where(body.theme-synthwave) .mods .card:first-child>img{height:100%;object-fit:contain;background:var(--bg);border-bottom:0;border-right:1px solid var(--accent)}:where(body.theme-synthwave) .lampstand{z-index:6;isolation:isolate;background:var(--warm-bg)}:where(body.theme-synthwave) .lampstand h2{color:var(--warm-text);text-shadow:none}:where(body.theme-synthwave) .lampstand h2:after{display:none}:where(body.theme-synthwave) .lost{display:flex;align-items:center;min-height:70vh}:where(body.theme-synthwave) .lost h1{color:var(--text)}:where(body.theme-synthwave) .lost .hero-copy{max-width:740px}:where(body.theme-synthwave) .lost .grid-floor{z-index:-1}
@media(max-width:600px){:where(body.theme-synthwave) nav{gap:0 1rem}:where(body.theme-synthwave) nav a{min-height:40px;padding-block:6px}:where(body.theme-synthwave) .header-inner{padding-block:12px;gap:4px}:where(body.theme-synthwave) .mods .card:first-child{display:flex;grid-column:auto}:where(body.theme-synthwave) .mods .card:first-child>img{height:auto;border-right:0;border-bottom:1px solid var(--accent)}:where(body.theme-synthwave) .lost{padding-block:64px}html:has(:where(body.theme-synthwave)){scroll-padding-top:180px}}

nav{gap:.2rem 1rem}nav a{min-height:40px;display:inline-flex;align-items:center}nav a[aria-current]{color:var(--text);text-decoration:underline;text-decoration-color:var(--accent-2)}.header{position:relative;z-index:10}.header-inner{flex-wrap:wrap;padding-block:14px}.project-list,.mod-list{display:grid;gap:36px;margin-block:3rem}.project-list .card,.mod-list .card{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,3fr);scroll-margin-top:2rem}.project-list .card>img,.mod-list .card>img{aspect-ratio:auto;height:auto;align-self:start;object-fit:contain}.project-list .card>.terminal-strip{width:100%;min-width:0;min-height:0;height:auto;aspect-ratio:16/9;align-self:start;overflow-wrap:anywhere}.card h2{font-size:2rem}.card h3{font-size:1.35rem;margin-top:1rem}.card ul{padding-left:1.2rem;margin-top:0;color:var(--text-muted)}.jump{border-block:1px solid var(--border);padding-block:16px;gap:.5rem 1.5rem}.previews{display:grid;gap:24px;margin-block:2rem}.previews img{width:100%;border:1px solid var(--border)}.steel{background:var(--steel-bg);border-color:var(--steel-border)}.steel p,.steel ul{color:var(--steel-text)}.steel .tags,.steel h2,.steel h3{color:var(--steel-heading)!important}.corner-sprite{position:fixed;left:12px;bottom:12px;width:72px;height:72px;pointer-events:none;z-index:7;image-rendering:pixelated;animation:idle 1.6s steps(2,end) infinite}.corner-sprite img{width:100%;height:100%;object-fit:contain;image-rendering:pixelated}@keyframes idle{50%{transform:translateY(-1px)}}.overview .lampstand{padding:0;box-shadow:none;border-color:var(--warm-border)}.overview .lampstand h3,.overview .lampstand p,.overview .lampstand a{font-family:Georgia,serif;color:var(--warm-text);text-shadow:none}.overview .lampstand a{color:var(--warm-link)}.overview .lampstand h3:after{display:none}.ministry{max-width:850px}.ministry>img{width:160px;height:160px;margin-bottom:32px}.ministry h1{font:clamp(2.2rem,6vw,3.6rem)/1.2 Georgia,serif;letter-spacing:0;text-shadow:none;color:var(--warm-text)}.ministry h1:after{display:none}.ministry p{font-size:1.25rem}.ministry .links a{padding:12px 22px;border:1px solid var(--warm-border);min-height:48px}@media(max-width:600px){.project-list .card,.mod-list .card{display:flex}.corner-sprite{width:48px;height:48px;opacity:.8}.has-sprite .footer{padding-bottom:76px}.ministry .links{gap:12px}.ministry .links a{flex:1;text-align:center}}@media(prefers-reduced-motion:reduce){.corner-sprite{animation:none}}
.overview .ministry-mark{width:80px;height:80px;margin-bottom:20px}.overview .lampstand:hover,.overview .lampstand:focus-within{box-shadow:none;border-color:var(--warm-link)}
.footage-grid{margin-block:2rem}.footage-card video{display:block;width:100%;height:auto;aspect-ratio:auto;background:var(--bg)}.footage-card{overflow:hidden}.footage-card .card-body{min-width:0}.footage-card[id]{scroll-margin-top:2rem}

@media(max-width:900px){.project-list .card,.mod-list .card{display:grid;grid-template-columns:minmax(0,1fr)}.project-list .card>.terminal-strip{aspect-ratio:16/6}}

body:not(.theme-synthwave) h1,body:not(.theme-synthwave) h2,body:not(.theme-synthwave) h3{text-shadow:none;letter-spacing:normal}
body:not(.theme-synthwave) .section,body:not(.theme-synthwave) .section:nth-of-type(n){background:var(--bg);border-color:var(--border)}
body:not(.theme-synthwave) .card,body:not(.theme-synthwave) .themes .card:first-child{background:var(--panel);border-color:var(--border);border-radius:var(--radius);box-shadow:var(--glow)}
body:not(.theme-synthwave) .card:hover,body:not(.theme-synthwave) .card:focus-within{border-color:var(--accent);box-shadow:var(--glow)}
body:not(.theme-synthwave) .card p,body:not(.theme-synthwave) .card ul{color:var(--text-muted)}
body:not(.theme-synthwave) .steel h2,body:not(.theme-synthwave) .steel h3{color:var(--text)!important}
body:not(.theme-synthwave) .button{background:var(--button-bg);color:var(--button-text);border-color:var(--accent);box-shadow:var(--glow)}
body:not(.theme-synthwave) .button:hover{background:var(--text);color:var(--bg)}
body:not(.theme-synthwave) .terminal-strip{background:var(--bg-2);border-color:var(--accent);font-family:var(--body-font)}
body:not(.theme-synthwave) .waveform{background:repeating-radial-gradient(ellipse at 50% 50%,transparent 0 7px,var(--accent) 8px 9px,transparent 10px 17px)}
body:not(.theme-synthwave) .tags span{box-shadow:none}
.card{border-radius:var(--radius)}
.header{background:var(--frame-bg);box-shadow:none}body:not(.theme-synthwave) .header{border-bottom:2px solid var(--accent)}
body:not(.theme-synthwave) .header:after{display:none}
.header .wordmark,.header nav,.footer{font-family:Terminal,monospace}
.header .wordmark,.header .wordmark span,.footer{color:var(--frame-text)}
.header nav a{color:var(--frame-link)}
.header nav a:hover{color:var(--frame-text)}
.header nav a[aria-current]{color:var(--frame-text);text-decoration-color:var(--accent)}
.wordmark{display:inline-flex;align-items:center;gap:8px}
.frame-mark{width:28px;height:28px;flex-shrink:0}
main{flex:1}body>.header,body>.footer{flex-shrink:0}
:where(body.theme-synthwave) .header{background:#0b0d2a}
:where(body.theme-synthwave) .header .wordmark span{color:var(--accent-2)}
:where(body.theme-synthwave) .header nav a[aria-current]{text-decoration-color:var(--accent-2)}
.footer{position:relative;background:var(--frame-bg);width:100%;margin:0;padding-inline:max(18px,calc((100% - 1136px)/2));gap:16px;flex-wrap:wrap}
.footer p{display:flex;align-items:center;gap:12px}
.skip{color:var(--frame-text);background:var(--frame-bg)}
:focus-visible{outline:3px solid var(--focus);outline-offset:5px}
.header :focus-visible{outline-color:var(--frame-text)}
@media(max-width:600px){.footer .corner-sprite{position:static;animation:none;transform:none;width:40px;height:40px;opacity:1;flex-basis:40px;margin-right:calc(100% - 40px)}.footer .knight{width:32px;height:32px;flex-basis:32px}.has-sprite .footer{padding-bottom:26px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

body:not(.theme-synthwave){--steel-bg:var(--panel);--steel-border:var(--border);--steel-text:var(--text-muted);--steel-heading:var(--text)}
body.theme-blackshield code{font-family:Inter,sans-serif}
body.theme-mods .eyebrow{color:var(--link)}

@media(min-width:601px){.footer .corner-sprite{width:72px;height:72px}}

/* Intrinsic media geometry and stable text space while section fonts load. */
body:not(.theme-synthwave) .card>img{height:auto}
body:not(.theme-synthwave) .card-body{min-height:18rem}
body.theme-mods .mod-list .card-body{min-height:36rem}
body:not(.theme-synthwave) .card h2{line-height:1.25;min-height:2.5em}

body:not(.theme-synthwave) img[width="1000"][height="563"]{aspect-ratio:1000/563}
body:not(.theme-synthwave) img[width="1000"][height="625"]{aspect-ratio:1000/625}
body:not(.theme-synthwave) img[width="1200"][height="675"]{aspect-ratio:1200/675}
body:not(.theme-synthwave) img[width="160"][height="160"]{aspect-ratio:160/160}
body:not(.theme-synthwave) img[width="320"][height="320"]{aspect-ratio:320/320}
body:not(.theme-synthwave) img[width="640"][height="360"]{aspect-ratio:640/360}
