/* Shared typography and controls */
:root{--width:1248px}
.eyebrow{font-size:.8125rem;letter-spacing:.06em}
.button-link,.quiet-button,.inline-link{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:12px 21px;border-radius:9px;font-size:.875rem;font-weight:500;line-height:1.4;text-decoration:none;white-space:normal;gap:8px;transition:background .2s,border-color .2s,color .2s,transform .2s}
.button-link{background:#eee;color:#171717;border:1px solid #eee}
.quiet-button,.inline-link{background:#ffffff06;border:1px solid #ffffff29;color:#e4e4e4}
.quiet-button:hover,.inline-link:hover{background:#ffffff10;border-color:#ffffff55;color:white;text-decoration:none}
.button-link:hover{background:white;transform:translateY(-1px)}
.hero{display:block;padding:64px 0 58px;max-width:780px}
.hero-top{display:block;margin-bottom:18px}
.hero h1{font-size:clamp(2.8rem,5vw,4.5rem);margin:0 0 20px;line-height:1.05;letter-spacing:-.05em}
.hero-bottom{display:block;max-width:540px}
.hero-bottom p{max-width:none;font-size:1.0625rem;line-height:1.65;margin:0;color:#aaa}
.section-label{border-top:0;padding-top:0;margin-bottom:24px}
.section-label h2{font-size:1rem;color:#ddd}
.section-label span{font-size:.8125rem;color:#777}
.card-caption h3{font-size:1.4rem}.card-caption p{font-size:.875rem}.card-number{display:none}
.about{grid-template-columns:.8fr 1.2fr;gap:90px;align-items:start;padding:100px 0 64px}
.about-image{width:100%;max-width:360px;border-radius:12px}.about-image-wrap>.eyebrow{display:block;margin-bottom:20px}
.about h2{font-size:2.4rem;margin:0 0 26px}.about p{font-size:1rem;line-height:1.8}.about .button-link{margin-top:10px}
.footer{margin-top:70px;padding:38px 0;border-top:1px solid #ffffff0e}
.footer-name{font-size:1.4rem;letter-spacing:-.03em}.footer-links{gap:8px;flex-wrap:wrap}.footer-links a{padding:9px 12px;border-radius:7px}.footer-links a:hover{background:#ffffff0a}
.footer-bottom{margin-top:26px;font-size:.8125rem;line-height:1.6}
/* A moving cover, with a single readable title layer */
.cinema{position:relative;isolation:isolate;overflow:hidden;border-radius:14px;background:#1b1b1b;height:clamp(420px,44vw,610px)}
.cinema-poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-3}
.cinema>.loop-media{position:absolute;inset:0;z-index:-2}
.cinema .film{position:absolute;inset:0;width:100%;height:100%;margin:0;aspect-ratio:auto;border-radius:0;background:transparent;container-type:size}
.cinema .film iframe{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:max(100cqw,177.778cqh)!important;height:max(100cqh,56.25cqw)!important;max-width:none;pointer-events:none}
.cinema .loop-toolbar{position:absolute;top:22px;right:24px;margin:0;z-index:5}
.cinema>.loop-media{z-index:0}.cinema .film{z-index:-1}.cinema .loop-toolbar>span{display:none}
.cinema .loop-toggle{min-width:76px;min-height:40px;padding:9px 16px;color:#fff;background:#12121280;border:1px solid #ffffff40;backdrop-filter:blur(12px);border-radius:8px;font-size:.8125rem}
.cinema .loop-toggle:hover{background:#121212d0}
.cinema-shade{position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(180deg,#0001 15%,#0002 35%,#000b 100%)}
.cinema-copy{position:absolute;z-index:2;bottom:44px;left:44px;right:44px;pointer-events:none;text-shadow:0 2px 24px #0008}
.cinema-copy h1{font-size:clamp(2.6rem,5vw,4.6rem);line-height:1.06;max-width:900px;color:white;letter-spacing:-.045em}
.cinema-copy h2{font-size:clamp(2.6rem,5vw,4.4rem);line-height:1.05;color:white;margin-top:14px}
.cinema-copy .eyebrow{color:#dedede}.cinema-copy .description{max-width:650px;font-size:1.0625rem;line-height:1.6;color:#e0e0e0;margin:20px 0 0}
.cinema .video-fallback{inset:auto;top:24px;left:24px;z-index:5;padding:10px 15px;border-radius:8px;display:none}
.cinema [data-video-state=error] .video-fallback{display:block;background:#111d;color:white}
.home-cinema{height:clamp(360px,42vw,540px)}
.project-return{padding:24px 0 20px}.project-return .quiet-button{min-height:38px;padding:8px 14px;font-size:.8125rem;background:none}
.project-nav{margin-top:14px;padding:14px 0}.overview{padding-top:62px}.breakdown{border:0;padding-left:0}
.overview,.project-section,.reflection,#level-design{scroll-margin-top:70px}
.build-name{max-width:440px;color:#858585}.mechanic .eyebrow{font-size:.8125rem}
/* The whole next-project cover is one link */
.next-project{display:block;position:relative;isolation:isolate;border:0;padding:0;margin-top:70px;border-radius:12px;overflow:hidden;height:300px;background:#1b1b1b}
.next-project-image{position:absolute;inset:0;z-index:-2}.next-project img{width:100%;height:100%;aspect-ratio:auto;object-fit:cover;border-radius:0;transition:transform .7s ease,filter .4s}
.next-project:after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#000c,#0004)}
.next-project-copy{padding:42px;display:flex;height:100%;flex-direction:column;justify-content:end}
.next-project .eyebrow{color:#ccc}.next-project h2{font-size:clamp(1.9rem,3.5vw,3rem);max-width:700px;margin:14px 0 0;color:white}
.next-project:hover img{transform:scale(1.025);filter:brightness(1.08)}
/* Resume: real type, not a scaled screenshot */
.document-page{max-width:1100px}.document-heading{display:flex;justify-content:space-between;align-items:center;gap:30px;padding:68px 0 54px;border-bottom:1px solid #ffffff15}
.document-heading h1{font-size:clamp(2.5rem,4vw,3.5rem);margin:14px 0 18px;line-height:1.1}
.document-heading p{font-size:1rem;margin:0;color:#a4a4a4}.document-actions{display:flex;gap:10px;flex-wrap:wrap}
.cv-layout{display:grid;grid-template-columns:280px 1fr;gap:76px;padding-top:48px}.cv-layout h2{font-size:.8125rem;text-transform:uppercase;letter-spacing:.07em;color:#909090;margin:0 0 22px;line-height:1.5}
.cv-layout h3{font-size:1.15rem;letter-spacing:-.015em;margin:0 0 14px;color:#eaeaea}.cv-layout p,.cv-layout li{font-size:1rem;line-height:1.75;color:#b5b5b5}.cv-layout ul{list-style:none;padding:0;margin:0}
.cv-sidebar>section,.cv-main>section{margin-bottom:42px}.cv-sidebar p{font-size:.9375rem}.cv-sidebar a{display:block;font-size:.9375rem;line-height:1.6;margin-bottom:10px;overflow-wrap:anywhere;color:#cfcfcf}.cv-sidebar a:hover{color:white}
.cv-main>section>p{font-size:1.0625rem;line-height:1.85}.cv-skills{display:grid;grid-template-columns:1fr 1fr;gap:32px}.cv-skills>section:first-child{grid-column:1/-1}.cv-skills>section:first-child ul{columns:2;column-gap:28px}.cv-skills li{break-inside:avoid;padding:3px 0}
.original-resume{margin-top:45px;border:1px solid #ffffff20;border-radius:9px;overflow:hidden}.original-resume summary{padding:17px 20px;cursor:pointer;font-size:.875rem;color:#bbb}.resume-sheet{background:transparent;max-width:750px;margin:0 auto;padding:16px}.resume-sheet figure>a{background:transparent}.resume-sheet img{max-height:none;border-radius:4px}.resume-sheet figcaption{display:none}
/* Contact: clear actions on a quiet grid */
.contact-page{max-width:1100px;display:grid;grid-template-columns:1fr 1.1fr;gap:72px;padding-top:88px;padding-bottom:60px;min-height:65vh;align-items:start}
.contact-intro h1{font-size:clamp(2.2rem,3.4vw,3.15rem);line-height:1.13;letter-spacing:-.035em;margin:20px 0 26px;max-width:420px}
.contact-intro>p{font-size:1.0625rem;color:#d4d4d4;max-width:370px}.contact-intro .contact-note{font-size:.9375rem;color:#909090;line-height:1.7;margin-top:24px}
.contact-options{display:grid;gap:14px}.contact-card{display:flex;flex-direction:column;align-items:start;padding:26px 28px;border:1px solid #ffffff15;background:#1a1a1a;border-radius:12px;transition:background .25s,border-color .25s}
.contact-card:hover{background:#222;border-color:#ffffff38}.contact-card>span:first-child{font-size:.8125rem;color:#929292}.contact-card strong{font-size:clamp(1.1rem,1.65vw,1.45rem);font-weight:400;letter-spacing:-.025em;margin:15px 0 22px;overflow-wrap:anywhere;max-width:100%;line-height:1.4}.contact-action{font-size:.8125rem;background:#ffffff0d;padding:8px 12px;border-radius:6px;color:#c4c4c4}.contact-socials{display:flex;gap:9px;flex-wrap:wrap;margin-top:12px}.contact-socials .quiet-button{font-size:.8125rem;padding:11px 15px}
@media(max-width:900px){.cv-layout{grid-template-columns:240px 1fr;gap:40px}.document-heading{align-items:start;flex-direction:column}.contact-page{gap:36px}.about{gap:45px}}
@media(max-width:680px){.hero{padding:40px 0}.hero h1{font-size:3rem;margin-bottom:18px}.hero-bottom p{font-size:1rem;max-width:340px}.hero-top{margin-bottom:16px}.hero-top .eyebrow:last-child{display:inline}.section-label{margin-bottom:20px}.card-caption h3{font-size:1.35rem}.about{grid-template-columns:1fr;gap:32px;padding:64px 0 20px}.about-image{width:65%}.about h2{font-size:2rem}.cinema{height:470px;border-radius:10px}.home-cinema{height:380px}.cinema-copy{left:24px;right:24px;bottom:28px}.cinema-copy h1{font-size:2.6rem}.cinema-copy h2{font-size:2.6rem}.cinema-copy .description{font-size:1rem;line-height:1.55;margin-top:16px}.cinema .loop-toolbar{top:16px;right:16px}.project-return{padding:18px 0}.project-nav{margin-top:6px}.overview{padding-top:40px}.next-project{height:240px;margin-top:40px}.next-project-copy{padding:26px}.next-project h2{font-size:1.9rem;line-height:1.15}.document-heading{padding:42px 0 32px;gap:25px}.document-heading h1{font-size:2.7rem}.document-actions{width:100%}.cv-layout{grid-template-columns:1fr;gap:10px;padding-top:32px}.cv-main{grid-row:1}.cv-skills{grid-template-columns:1fr;gap:25px}.cv-skills>section:first-child ul{columns:1}.cv-sidebar{border-top:1px solid #ffffff15;padding-top:35px}.original-resume{margin:30px 0}.contact-page{grid-template-columns:1fr;gap:28px;padding-top:42px;padding-bottom:10px}.contact-intro h1{font-size:2.5rem;max-width:360px}.contact-intro .contact-note{margin-top:14px}.contact-card{padding:23px}.contact-card strong{font-size:1.2rem}.footer-main{gap:20px}.footer-links a{padding-left:0;padding-right:16px}.footer-bottom{margin-top:24px}}
