:root{color-scheme:dark;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:#171610;color:#f7f7f4;scroll-behavior:smooth}
*{box-sizing:border-box}
body{margin:0}
button,a{-webkit-tap-highlight-color:transparent}
button{font:inherit}
.site-shell{width:100%;background:#171610;min-height:100vh;overflow:hidden}
.site-header{height:63px;padding:0 max(27px,calc((100vw - 1200px)/2));display:flex;align-items:center;justify-content:space-between;background:#171610;border-bottom:1px solid #28271f}
.brand{color:#f8f8f6;text-decoration:none;font-weight:750;font-size:16px;letter-spacing:.01em}
.site-header nav{display:flex;gap:24px}
.site-header nav a{color:#a9a9a6;text-decoration:none;font-size:13px;transition:color .2s}
.site-header nav a:hover,.site-header nav a:focus-visible{color:#fff}
.hero{min-height:470px;background:radial-gradient(ellipse at 50% 40%,#13140b 0%,#10110b 64%,#10110d 100%);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:65px 32px;text-align:center}
.eyebrow{margin:0 0 17px;padding:6px 11px;border-radius:99px;background:#222a11;color:#b4e052;text-transform:uppercase;font-size:10px;font-weight:800;letter-spacing:.055em}
h1{font-size:clamp(38px,4.2vw,64px);letter-spacing:-.045em;line-height:1.08;margin:0;font-weight:800;max-width:850px}
.intro{max-width:555px;margin:20px auto 27px;color:#c2c2bf;font-size:14px;line-height:1.6}
.socials{display:flex;gap:10px;justify-content:center}
.content{width:min(100%,1200px);margin-inline:auto;padding:36px 27px 0}
.section-heading{font-size:17px;line-height:1.3;color:#a3a19e;text-transform:uppercase;letter-spacing:.025em;font-weight:800;margin:0 0 25px}
.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:31px 32px}
.project{min-width:0}
.project-art,.mini-art{position:relative;display:block;width:100%;overflow:hidden;border:1px dashed #44413a;background:#302e2a;color:#c4c3c0;cursor:pointer;text-align:center}
.project-art{aspect-ratio:1.6;border-radius:8px}
.project-art:hover,.project-art:focus-visible,.project-art[aria-expanded="true"],.mini-art:hover,.mini-art:focus-visible,.mini-art[aria-expanded="true"]{border-color:#a4cf4b;outline:none}
.art-placeholder,.art-reveal,.mini-reveal{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
.art-placeholder{gap:5px;font-size:12px}
.art-placeholder svg{width:20px;height:20px;color:#8d8d86}
.art-placeholder small{font-size:10px;color:#a3a3a0}
.art-reveal,.mini-reveal{padding:15px;background:linear-gradient(180deg,rgba(15,17,9,.89),rgba(12,14,8,.97));color:#fff;opacity:0;transform:translateY(7px);transition:opacity .2s ease,transform .2s ease;pointer-events:none;gap:7px}
.art-reveal strong{font-size:21px;line-height:1.2}
.art-reveal span{color:#b8df68;font-size:13px}
.project-art:hover .art-reveal,.project-art:focus-visible .art-reveal,.project-art[aria-expanded="true"] .art-reveal,.mini-art:hover .mini-reveal,.mini-art:focus-visible .mini-reveal,.mini-art[aria-expanded="true"] .mini-reveal{opacity:1;transform:translateY(0)}
.project-info h3{font-size:17px;letter-spacing:.003em;margin:13px 0 5px;line-height:1.3}
.project-info p{font-size:13px;line-height:1.6;color:#aaa9a6;margin:0 0 8px}
.tags{list-style:none;display:flex;gap:6px;margin:0;padding:0}
.tags li{padding:4px 9px;border-radius:20px;background:#292f16;color:#b4de58;font-size:10px;font-weight:750}
.more{margin-top:64px}
.more-heading{display:flex;align-items:flex-start;justify-content:space-between}
.more-heading .section-heading{margin-bottom:19px}
.scroll-controls{display:flex;gap:7px}
.scroll-button{display:grid;place-items:center;width:26px;height:26px;padding:0;border:1px solid #48463d;border-radius:50%;background:#28271f;color:#d7d7cf;font-size:21px;line-height:1;cursor:pointer}
.scroll-button:hover,.scroll-button:focus-visible{border-color:#b4e052;color:#b4e052;outline:none}
.project-strip{display:grid;grid-auto-flow:column;grid-auto-columns:clamp(145px,17vw,200px);gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:15px;scrollbar-color:#827e75 #25241d;scrollbar-width:thin}
.mini-project{scroll-snap-align:start}
.mini-art{height:clamp(108px,12vw,145px);border-radius:6px}
.mini-placeholder{font-size:11px}
.mini-placeholder::before{content:"▧";display:block;color:#8d8d86;font-size:27px;line-height:1.2;margin-bottom:6px}
.mini-reveal strong{font-size:14px}.mini-reveal span{color:#b8df68;font-size:11px}
.mini-project h3{margin:7px 0 0;font-size:11px;font-weight:600;color:#e8e7e3}
.site-footer{min-height:252px;padding:90px 20px 45px;display:flex;flex-direction:column;align-items:center;gap:21px;border-top:1px solid #29271f}
.site-footer p{color:#8f8e8a;font-size:11px;margin:0}
@media(max-width:600px){.site-header{padding:0 19px}.site-header nav{gap:17px}.hero{min-height:365px;padding:49px 22px}.hero h1{font-size:clamp(32px,8vw,42px)}.hero h1 br{display:none}.intro{font-size:14px}.content{padding:23px 19px 0}.project-grid{gap:27px 18px}.project-art{aspect-ratio:1.25}.art-reveal strong{font-size:17px}.project-info h3{font-size:15px}.project-info p{font-size:12px}.more{margin-top:54px}}
@media(max-width:420px){.site-header nav a{font-size:12px}.project-grid{grid-template-columns:1fr}.project-art{aspect-ratio:1.55}.project-info p{font-size:13px}.project-grid{gap:34px}.hero{min-height:390px}.eyebrow{font-size:9px}}
@media(prefers-reduced-motion:reduce){:root{scroll-behavior:auto}.art-reveal,.mini-reveal,.site-header nav a{transition:none}}

/* Shared navigation and clickable brand logos */
.site-header nav a[aria-current="page"]{color:#f7f7f4}
.site-header nav a:focus-visible,.brand:focus-visible,.back-link:focus-visible,.project-bottom-nav a:focus-visible{outline:2px solid #b4e052;outline-offset:4px}
.socials .social-link{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#302e2b;color:#f7f7f7;text-decoration:none;transition:background .2s,color .2s,transform .2s}
.socials .social-link:hover,.socials .social-link:focus-visible{background:#a7db48;color:#171610;transform:translateY(-3px);outline:none}
.socials .social-icon{display:block;width:17px;height:17px;object-fit:contain;filter:invert(1)}
.socials .social-link:hover .social-icon,.socials .social-link:focus-visible .social-icon{filter:none}

/* Image placeholders are ready to replace with local game artwork. */
.media-placeholder{position:relative;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;background:#302e2a;border:1px dashed #48453f;border-radius:8px;color:#c4c3c0;text-align:center;font-size:13px}
.media-placeholder small{font-size:11px;color:#a4a29e}
.placeholder-mark{color:#93918b;font-size:25px;line-height:1}
.project-art>.media-placeholder,.mini-art>.media-placeholder{position:absolute;inset:0;border:0;background:transparent}
.project-art,.mini-art{text-decoration:none}
.project-art:hover,.project-art:focus-visible,.mini-art:hover,.mini-art:focus-visible{border-color:#a4cf4b}
.project-art:hover .art-reveal,.project-art:focus-visible .art-reveal,.mini-art:hover .mini-reveal,.mini-art:focus-visible .mini-reveal{opacity:1;transform:translateY(0)}
.art-reveal small{font-size:11px;color:#deded7;margin-top:4px}
.project-info h3 a,.mini-project h3 a{color:inherit;text-decoration:none}
.project-info h3 a:hover,.project-info h3 a:focus-visible,.mini-project h3 a:hover,.mini-project h3 a:focus-visible{color:#b4e052;text-decoration:underline;text-underline-offset:3px}
.mini-art>.media-placeholder{font-size:12px}
.mini-art>.media-placeholder .placeholder-mark{font-size:22px}
.mini-art>.media-placeholder small{display:none}
.scroll-button:disabled{opacity:.35;cursor:default;border-color:#48463d;color:#d7d7cf}
.project-strip{cursor:grab;overscroll-behavior-inline:contain}
.project-strip:active{cursor:grabbing}

/* Inner pages */
.inner-page{width:min(100%,1200px);margin-inline:auto;padding:70px 27px 90px}
.page-heading{text-align:center;margin:20px auto 72px}
.page-heading h1{max-width:none;font-size:clamp(48px,5vw,68px)}
.page-heading p{color:#a6a49e;font-size:20px;margin:19px 0 0}
.about-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:50px;align-items:start}
.portrait-placeholder{width:260px;aspect-ratio:1;border-radius:50%}
.about-copy{color:#e3e2df;font-size:clamp(17px,1.55vw,21px);line-height:1.75}
.about-copy p{margin:0 0 30px}
.about-lower{display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:30px}
.about-photos{display:grid;gap:15px}
.photo-placeholder{height:195px}
.contact-page{max-width:920px}
.contact-page .page-heading{margin-bottom:70px}
.contact-socials{margin-bottom:52px;gap:14px}
.contact-socials .social-link{width:56px;height:56px}
.contact-socials .social-icon{width:23px;height:23px}
.contact-form label{display:flex;flex-direction:column;gap:10px;color:#b5b2ad;font-size:15px;font-weight:650}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:23px;margin-bottom:28px}
.contact-form input,.contact-form textarea{width:100%;border:1px solid #46423b;border-radius:10px;background:#292621;color:#f7f7f4;padding:16px 18px;font:inherit;font-size:17px;font-weight:400;outline:none}
.contact-form textarea{min-height:190px;resize:vertical}
.contact-form input::placeholder,.contact-form textarea::placeholder{color:#8b8781}
.contact-form input:focus,.contact-form textarea:focus{border-color:#b4e052;box-shadow:0 0 0 3px rgba(180,224,82,.13)}
.send-button{width:100%;margin-top:27px;padding:18px;border:0;border-radius:999px;background:#a7db48;color:#15170d;font-size:18px;font-weight:800;cursor:pointer;transition:background .2s,transform .2s}
.send-button:hover,.send-button:focus-visible{background:#c1f16c;transform:translateY(-2px);outline:none}
.form-note{text-align:center;color:#a6a49e;font-size:13px;margin:14px 0 0}
.direct-email{text-align:center;color:#9c9992;font-size:17px;margin:48px 0}
.direct-email a,.direct-email span{color:#b4e052;text-decoration:none}.direct-email a:hover{text-decoration:underline}
.resume-card{display:flex;align-items:center;gap:28px;background:#292621;border:1px solid #403c35;border-radius:16px;padding:28px 32px}
.resume-cover{width:120px;height:150px;flex:none}.resume-copy{flex:1}.resume-copy h2{font-size:22px;margin:0 0 5px}.resume-copy p{margin:0;color:#a6a49e}
.resume-action{background:#45483a;color:#c7c9bf;border-radius:99px;padding:13px 20px;font-weight:750;white-space:nowrap}
.project-page{max-width:1050px;padding-top:55px}
.back-link{display:inline-block;color:#aaa8a3;font-size:14px;text-decoration:none;margin-bottom:24px}.back-link:hover{color:#b4e052}
.project-page h1{font-size:clamp(38px,4.5vw,58px);margin:0 0 13px;max-width:none}
.project-intro{color:#adaaa5;font-size:17px;line-height:1.6;max-width:750px;margin:0 0 18px}
.project-page .tags{margin-bottom:28px}.project-page .tags li{font-size:12px;padding:5px 10px}
.project-cover>.media-placeholder{min-height:380px}
.project-facts{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin:35px 0 43px;padding:0 0 38px;border-bottom:1px solid #3b3832}
.project-facts dt{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#96948f;margin-bottom:10px}.project-facts dd{margin:0;color:#e5e4e0;font-size:14px;line-height:1.5}
.project-story section{margin-bottom:40px}.project-story h2{font-size:20px;margin:0 0 14px}.project-story p{color:#bab8b2;font-size:16px;line-height:1.7;max-width:800px;margin:0}
.project-gallery{margin-top:54px}.project-gallery .section-heading{margin-bottom:20px}
.gallery-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.gallery-grid .media-placeholder{min-height:230px}
.project-bottom-nav{display:flex;justify-content:space-between;gap:20px;border-top:1px solid #3b3832;margin-top:55px;padding-top:30px}.project-bottom-nav a{color:#b4e052;text-decoration:none;font-size:15px;font-weight:700}.project-bottom-nav a:hover{text-decoration:underline}
@media(max-width:850px){.about-layout{grid-template-columns:180px minmax(0,1fr);gap:28px}.portrait-placeholder{width:180px}.about-lower{grid-template-columns:minmax(0,1fr) 170px}.photo-placeholder{height:150px}}
@media(max-width:650px){.inner-page{padding:45px 19px 65px}.page-heading{margin:10px auto 48px}.page-heading p{font-size:17px}.about-layout{display:block}.portrait-placeholder{width:180px;margin:0 auto 35px}.about-copy{font-size:17px}.about-lower{grid-template-columns:1fr}.about-photos{grid-template-columns:repeat(2,1fr)}.photo-placeholder{height:150px}.form-row{grid-template-columns:1fr;gap:22px}.contact-socials{margin-bottom:42px}.contact-socials .social-link{width:46px;height:46px}.resume-card{gap:16px;padding:18px}.resume-cover{width:82px;height:110px}.resume-action{padding:10px 12px;font-size:12px}.project-cover>.media-placeholder{min-height:250px}.project-facts{grid-template-columns:repeat(2,1fr)}.gallery-grid .media-placeholder{min-height:160px}}
@media(max-width:420px){.resume-card{flex-wrap:wrap}.resume-copy{min-width:130px}.resume-action{margin-left:auto}.gallery-grid{grid-template-columns:1fr}.socials .social-link{width:36px;height:36px}}
@media(prefers-reduced-motion:reduce){.socials .social-link,.send-button{transition:none}}

.media-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:inherit}
.resume-action{text-decoration:none}.resume-action:hover,.resume-action:focus-visible{background:#a4cf4b;color:#171610;outline:none}
.media-video{object-fit:contain;background:#000}
iframe.media-video{border:0}
.media-fill{object-fit:cover;filter:blur(22px) brightness(.55);transform:scale(1.15)}
