@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Space+Grotesk:wght@400;500;600;700&display=swap');
:root{color-scheme:dark;--bg:#101310;--panel:#191d18;--ink:#eef0e6;--muted:#a7aea2;--lime:#c9f27d;--line:#343b31}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--bg);color:var(--ink);font-family:'DM Sans',sans-serif;font-size:16px}a{color:inherit;text-decoration:none}button,input{font:inherit}a:focus-visible,input:focus-visible,video:focus-visible{outline:3px solid var(--lime);outline-offset:5px}header,main,footer{max-width:1440px;margin:auto}header{padding:28px 5%;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.wordmark{font:700 30px 'Space Grotesk',sans-serif}.wordmark span{color:var(--lime)}nav{display:flex;gap:32px;font-size:14px}nav a:hover,.text-link:hover{color:var(--lime)}main{padding:0 5%}.hero{display:grid;grid-template-columns:1.1fr 1fr;gap:45px;padding:76px 0 62px;align-items:center}.eyebrow{font-size:11px;letter-spacing:2px;font-weight:600;color:var(--lime)}.dot{display:inline-block;width:7px;height:7px;background:var(--lime);border-radius:50%;margin-right:8px}h1,h2,h3,h4{font-family:'Space Grotesk',sans-serif;font-weight:500}h1{font-size:clamp(43px,5vw,76px);line-height:1.06;letter-spacing:-4px;margin:25px 0}em{font-style:normal;color:var(--lime)}.intro{color:var(--muted);font-size:18px;line-height:1.7;max-width:440px}.hero-links{display:flex;align-items:center;gap:26px;margin:30px 0 45px}.button{background:var(--lime);color:#16210c;display:inline-flex;gap:32px;padding:16px 23px;border-radius:5px;font-size:14px;font-weight:700}.button:hover{background:#dafa9f}.text-link{font-size:14px}.stats{display:flex;gap:28px;color:var(--muted);font-size:11px}.stats strong{display:block;font:500 26px 'Space Grotesk',sans-serif;color:var(--ink);margin-bottom:5px}.hero-art{height:435px;position:relative;overflow:hidden;border:1px solid #4b5540;border-radius:12px;transform:rotate(2deg);background:#20291b;box-shadow:0 20px 80px #a1bc3910}.hero-art img{width:100%;height:100%;object-fit:cover;object-position:center}.art-caption{position:absolute;inset:auto 0 0;padding:70px 25px 25px;background:linear-gradient(transparent,#0b110bf5);display:flex;align-items:end;justify-content:space-between;font-size:11px}.art-caption strong{display:block;font:500 30px 'Space Grotesk',sans-serif;margin-top:8px}.ticker{display:flex;justify-content:space-between;gap:15px;padding:24px 0;border-block:1px solid var(--line);font-size:11px;letter-spacing:2px;color:#c2c8bb}.ticker span{color:var(--lime)}section[id]{padding-top:86px}.section-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:35px;gap:25px}.section-heading h2{font-size:clamp(34px,4vw,52px);line-height:1.12;letter-spacing:-2px;margin:15px 0 0}.section-heading>p{color:var(--muted);font-size:14px;line-height:1.7}.game-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px 22px}.game-card:first-child{grid-column:span 2}.game-media{height:250px;position:relative;background:#080b08;border:1px solid var(--line);border-radius:8px;overflow:hidden}.game-media video{width:100%;height:100%;object-fit:contain;display:block}.game-number{position:absolute;top:12px;left:12px;padding:6px 8px;border:1px solid #ffffff25;border-radius:4px;background:#101310bb;color:#ecf0dc;font-size:10px;pointer-events:none}.game-caption{display:flex;justify-content:space-between;align-items:center;padding-top:15px}.game-caption h3{margin:0;font-size:19px}.game-caption p{margin:6px 0 0;color:var(--muted);font-size:12px}.game-caption>a{font-size:11px;color:var(--lime);padding:10px}.feature-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.feature{border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--panel)}.feature img{width:100%;height:280px;object-fit:cover;display:block}.feature>div{padding:26px}.feature h3{font-size:25px;margin:15px 0 10px}.feature p,.mindcraft p{font-size:14px;color:var(--muted);line-height:1.6}.mindcraft{display:block;border:1px solid var(--line);padding:30px;margin-top:22px;border-radius:8px;background:linear-gradient(100deg,#26321e,#191d18)}.mindcraft h3{font-size:28px;margin:15px 0}.search-bar{display:flex;gap:20px;align-items:center;padding:20px 0;border-block:1px solid var(--line);margin-bottom:35px}.search-bar label{font-size:13px;white-space:nowrap}.search-bar input{width:100%;max-width:430px;padding:13px 16px;background:var(--panel);border:1px solid var(--line);color:var(--ink);border-radius:5px}.search-bar>span{margin-left:auto;font-size:12px;color:var(--muted);white-space:nowrap}.section-title{display:flex;align-items:center;gap:12px;margin:30px 0 17px}.section-title h3{font-size:21px;margin:0}.section-title>span{font-size:11px;color:var(--lime);border:1px solid var(--line);border-radius:20px;padding:4px 8px}.repo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.repo-card{padding:23px;border:1px solid var(--line);border-radius:6px;transition:background .2s,border-color .2s;min-width:0}.repo-card:hover{background:#222a1d;border-color:#7c9854}.repo-top{display:flex;justify-content:space-between;font-size:10px;color:var(--muted)}.language:before{content:'';display:inline-block;width:6px;height:6px;background:var(--lime);border-radius:50%;margin-right:7px}.repo-card h4{font-size:18px;overflow-wrap:anywhere;margin:22px 0 10px}.repo-card p{font-size:13px;line-height:1.6;color:var(--muted);margin:0}.about{margin:85px 0 65px;border-top:1px solid var(--line);padding-top:50px;max-width:800px}.about h2{font-size:40px;letter-spacing:-1.5px}.about>p:not(.eyebrow){color:var(--muted);line-height:1.8;max-width:620px;margin-bottom:25px}footer{border-top:1px solid var(--line);padding:25px 5%;display:flex;justify-content:space-between;align-items:center;gap:20px}footer p,footer>a:last-child{font-size:12px;color:var(--muted)}.skip{position:absolute;left:20px;top:-100px;background:var(--lime);color:#111;padding:15px;z-index:5}.skip:focus{top:10px}[hidden]{display:none!important}@media(min-width:1500px){.game-media{height:290px}}@media(max-width:900px){.hero{gap:25px}.hero-art{height:370px}h1{letter-spacing:-2.5px}.hero-links{gap:15px}.stats{gap:20px}.game-grid,.repo-grid{grid-template-columns:repeat(2,1fr)}.game-card:first-child{grid-column:auto}.game-media{height:240px}.feature img{height:220px}.ticker{font-size:9px;letter-spacing:1px}}@media(max-width:620px){header{padding:20px 5%}nav{gap:14px;font-size:11px}.wordmark{font-size:25px}.hero{grid-template-columns:1fr;padding:45px 0 35px;gap:35px}h1{font-size:50px}.intro{font-size:16px}.hero-art{height:330px;transform:rotate(0)}.hero-links{margin-bottom:30px}.ticker{flex-wrap:wrap;justify-content:center;line-height:1.8}.ticker span:last-of-type{display:none}.section-heading{align-items:start;flex-direction:column;gap:5px}.section-heading h2{font-size:40px}section[id]{padding-top:55px}.game-grid{gap:22px 12px}.game-media{height:210px}.game-caption{align-items:start}.game-caption h3{font-size:15px}.game-caption>a{padding:3px;font-size:10px}.feature-grid,.repo-grid{grid-template-columns:1fr}.feature img{height:250px}.feature h3{font-size:23px}.search-bar{flex-wrap:wrap;gap:12px}.search-bar label{width:100%}.search-bar input{max-width:none}.search-bar>span{margin-left:0}.about h2{font-size:33px}footer{flex-wrap:wrap}footer p{max-width:220px}.mindcraft h3{font-size:24px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
/* Fixed-size personal portraits; HTML dimensions also prevent oversized fallback. */
.hero-copy{min-width:0}
.hero-portrait{display:block;width:80px;height:80px;max-width:80px;object-fit:cover;border-radius:50%;border:1px solid var(--lime);padding:2px;background:var(--bg);margin-bottom:16px}
.about-portrait{width:80px;max-width:80px;height:80px;aspect-ratio:1;object-fit:cover;margin-left:20px}
@media(max-width:620px){.about-portrait{margin-left:0}}

/* Small, documentation-based scientific schematics. */
.project-diagram{display:block;width:240px;height:120px;max-width:100%;object-fit:contain;object-position:left center;margin:16px 0;background:#edf2f0;border-radius:3px}
.project-shot{display:block;width:100%;height:150px;object-fit:cover;object-position:center;margin:16px 0;border:1px solid var(--line);border-radius:3px}
.method-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.method-card,.hero-project{display:block;min-width:0;border:1px solid var(--line);border-radius:6px;padding:24px;background:var(--panel)}
.method-card h3,.hero-project h3{font-size:23px;margin:16px 0}
.method-card p,.hero-project p{font-size:14px;line-height:1.7;color:var(--muted)}
.method-card:hover,.hero-project:hover{border-color:#78b8cc}
.repo-card .project-diagram{margin:12px 0 18px}
.hero{grid-template-columns:1.3fr .7fr}
.hero-project{align-self:center}
@media(max-width:900px){.method-grid{grid-template-columns:1fr}.method-card{padding:22px}.hero{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.hero{grid-template-columns:1fr}.project-diagram{max-width:100%}}

/* Featured Creative AI cards carry real captures of the tools. The studio screenshots are ~2:1, so
   the card shows them whole; the square Concept Art capture is cropped to its middle band. */
.method-card .project-shot,.repo-card .project-shot{height:auto;aspect-ratio:2/1;object-position:top}
.method-card .shot-center,.repo-card .shot-center{object-position:center}
.repo-card .project-shot{margin:12px 0 18px}
/* Mindcraft spans the row and shows both README figures: the 16:9 demo header sets the row height
   and the tall architecture diagram fills the remaining column, cropped from the top. */
.method-card--wide{grid-column:1/-1}
.shot-pair{display:grid;grid-template-columns:2fr 1fr;gap:16px;margin:16px 0}
.shot-pair .project-shot{margin:0;aspect-ratio:16/9}
.shot-fill{position:relative;min-height:0}
.shot-fill .project-shot{position:absolute;inset:0;height:100%;aspect-ratio:auto;margin:0}
@media(max-width:900px){.method-card--wide{grid-column:auto}.shot-pair{grid-template-columns:1fr}.shot-fill{aspect-ratio:4/3}}

/* Studio showcase: the one closed-source project, so it carries its own art and copy. */
.showcase{display:grid;grid-template-columns:.62fr 1.38fr;gap:34px;align-items:center;border:1px solid var(--line);border-radius:10px;background:var(--panel);padding:28px}
.showcase-art{width:100%;height:100%;max-height:760px;object-fit:cover;object-position:top;border:1px solid var(--line);border-radius:8px;display:block}
.showcase-copy h3{font-size:clamp(28px,3vw,38px);letter-spacing:-1px;margin:14px 0 16px}
.showcase-copy p{color:var(--muted);font-size:15px;line-height:1.75;margin:0 0 16px}
.showcase-list{list-style:none;margin:22px 0;padding:0;display:grid;gap:11px}
.showcase-list li{position:relative;padding-left:20px;font-size:14px;line-height:1.65;color:var(--muted)}
.showcase-list li:before{content:'';position:absolute;left:0;top:8px;width:7px;height:7px;background:var(--lime);border-radius:2px}
.showcase-list strong{color:var(--ink);font-weight:600}
.tag-row{display:flex;flex-wrap:wrap;gap:8px;margin:22px 0 18px}
.tag-row span{font-size:10px;letter-spacing:1.5px;color:#c2c8bb;border:1px solid var(--line);border-radius:20px;padding:6px 11px}
.showcase-note{font-size:13px;color:#8d948a;border-left:2px solid var(--lime);padding-left:14px;margin:0}
.shot-row{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:20px}
.shot-row+.showcase{margin-top:64px}
.shot{margin:0;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--panel)}
.shot img{width:100%;height:auto;display:block;border-bottom:1px solid var(--line)}
.shot figcaption{padding:14px 16px;font-size:12.5px;line-height:1.6;color:var(--muted)}
@media(max-width:900px){.showcase{grid-template-columns:1fr;padding:22px}.showcase-art{max-height:420px;object-position:center 22%}.shot-row{grid-template-columns:1fr 1fr;gap:12px}.shot-row+.showcase{margin-top:44px}}
@media(max-width:620px){.shot-row{grid-template-columns:1fr}}
