/* Shared layout and colors. Edit these values to restyle every page. */
:root { --header:#2d2d2d; --ink:#151515; --accent:#31a9d1; --hero:#0a151b; --page-width:980px; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:90px; }
body { margin:0; color:var(--ink); background:#fff; font-family:Arial,Helvetica,sans-serif; }
a { color:inherit; text-underline-offset:4px; }
a:hover { color:#2187aa; }
img,video { display:block; max-width:100%; }
button { font:inherit; cursor:pointer; }
:focus-visible { outline:3px solid var(--accent); outline-offset:5px; }
.skip-link { position:fixed; top:8px; left:12px; z-index:100; padding:12px; background:#fff; transform:translateY(-200%); }
.skip-link:focus { transform:translateY(0); }
.site-header { height:70px; position:sticky; top:0; z-index:20; background:var(--header); color:white; border-bottom:5px solid #8a8a8a; display:flex; align-items:center; justify-content:space-between; gap:32px; padding:0 20px; }
.brand { font-size:30px; font-weight:700; text-decoration:none; white-space:nowrap; }
.site-header nav { display:flex; align-items:center; justify-content:space-around; flex:1; max-width:800px; gap:24px; }
.site-header nav a { font-size:14px; font-weight:700; text-decoration:none; padding:20px 8px; }
.site-header a:hover,.site-header a[aria-current="page"] { color:#b6b6b6; }
.menu-toggle { display:none; color:white; background:transparent; border:1px solid #999; padding:8px 12px; }
.section { width:min(var(--page-width),calc(100% - 48px)); margin-inline:auto; }
.hero { padding:55px 6% 0; background:var(--hero); }
.hero-frame { height:min(850px,75vw); min-height:440px; position:relative; overflow:hidden; isolation:isolate; }
.hero-video { width:100%; height:100%; object-fit:cover; position:absolute; z-index:-2; }
.hero-frame::after { content:""; position:absolute; inset:0; z-index:-1; background:rgba(0,0,0,.22); pointer-events:none; }
.hero-text { height:100%; display:flex; align-items:center; justify-content:center; flex-direction:column; color:white; text-align:center; padding:24px; }
.hero h1 { font-size:clamp(40px,7.1vw,96px); margin:0 0 28px; line-height:1.12; }
.hero-text p { font-size:18px; letter-spacing:5px; margin:0; }
.motion-toggle { position:absolute; bottom:16px; right:16px; background:#141414b8; border:1px solid #ffffff70; border-radius:2px; color:white; padding:8px 12px; font-size:12px; }
.about { padding-top:125px; padding-bottom:75px; }
.section-title { font-size:40px; line-height:1.25; text-align:center; width:80%; margin:0 auto 30px; padding-bottom:8px; border-bottom:5px solid var(--accent); }
.about-layout { display:grid; grid-template-columns:325px 1fr; gap:50px; align-items:center; }
.headshot { width:325px; height:325px; object-fit:cover; }
.about-copy { font-size:17px; font-weight:400; line-height:1.95; color:#505050; }
.about-copy p { margin:0 0 30px; }
.about-copy p:last-child { margin:0; }
.projects { padding-bottom:95px; }
.project-grid { display:flex; flex-wrap:wrap; gap:34px; justify-content:center; padding-top:25px; }
.project-poster { flex:0 1 267px; }
.project-poster img { width:267px; height:auto; aspect-ratio:267/397; object-fit:cover; }
.project-poster a { display:block; transition:transform .2s; }
.project-poster a:hover { transform:translateY(-4px); }
.reel-page { background:#000; color:#fff; }
.reels { padding-top:40px; padding-bottom:70px; }
.reels>h1 { text-align:center; margin:0 0 34px; font-size:46px; font-weight:900; }
.reel-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:50px 34px; }
.reel-card { margin:0; min-width:0; }
.reel-card h2 { font-size:20px; margin:0 0 12px; }
.reel-video { width:100%; aspect-ratio:16/9; background:#111; object-fit:contain; }
.reel-card figcaption { color:#bbb; text-align:center; font-size:16px; line-height:1.4; margin-top:14px; }
.breakdown { padding-top:65px; padding-bottom:80px; color:#ddd; line-height:1.8; }
.breakdown h2 { text-align:center; font-size:36px; color:white; margin:0 0 40px; }
.breakdown p { margin:0 0 24px; }
.breakdown a { color:#68c9ed; overflow-wrap:anywhere; }
.reel-links { display:flex; flex-wrap:wrap; gap:24px; margin-top:45px; }
.single-reel { padding-block:65px; }
.single-reel h1 { text-align:center; font-size:36px; }
.single-reel a { color:#68c9ed; }
.blog-page { background:#f5f5f5; }
.blog { padding-top:55px; padding-bottom:80px; }
.blog>h1 { font-size:17px; font-weight:400; margin:0 0 32px; }
.blog-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px; }
.blog-card { background:#fff; border:1px solid #ddd; overflow:hidden; }
.blog-cover { display:block; }
.blog-cover img { width:100%; aspect-ratio:4/3; object-fit:cover; }
.blog-card-copy { padding:24px; }
.blog-card h2 { font-size:26px; line-height:1.3; margin:0 0 12px; }
.blog-card h2 a { text-decoration:none; }
.excerpt { line-height:1.6; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.byline { font-size:13px; line-height:1.8; color:#666; }
.post { max-width:980px; background:white; padding:45px 70px 80px; margin-top:45px; margin-bottom:60px; border:1px solid #ddd; }
.back-link { display:inline-block; font-size:14px; margin-bottom:32px; }
.post-header h1 { font-size:40px; line-height:1.2; margin:18px 0 36px; }
.post-content { font-size:18px; line-height:1.7; overflow-wrap:anywhere; }
.post-content p { margin:22px 0; white-space:pre-line; }
.post-content h2 { font-size:28px; line-height:1.3; margin:40px 0 20px; }
.post-content img { height:auto; max-height:850px; object-fit:contain; margin:28px auto; }
.post-content figure { margin:28px 0; }
.post-content figcaption { font-size:14px; text-align:center; color:#666; }
.post-content a { color:#14769a; }
.post-content video,.youtube-video { width:100%; aspect-ratio:16/9; background:#111; border:0; }
.not-found { padding-block:80px; }
@media(max-width:800px) {
 .site-header { padding-inline:16px; gap:20px; }
 .brand { font-size:24px; }
 .site-header nav { gap:4px; }
 .site-header nav a { font-size:13px; }
 .hero { padding:30px 5% 0; }
 .hero-frame { height:65vw; min-height:340px; }
 .hero-text p { font-size:14px; letter-spacing:3px; }
 .about { padding-top:70px; }
 .about-layout { grid-template-columns:230px 1fr; gap:30px; }
 .headshot { width:230px; height:230px; }
 .about-copy { font-size:16px; }
 .section-title { font-size:32px; width:100%; }
 .post { padding:35px; }
}
@media(max-width:600px) {
 html { scroll-padding-top:82px; }
 .site-header { height:70px; }
 .brand { font-size:22px; }
 .menu-toggle { display:block; }
 .site-header nav { display:none; position:absolute; top:65px; left:0; right:0; max-width:none; background:var(--header); padding:8px 20px 20px; border-bottom:3px solid #888; }
 .site-header nav.is-open { display:flex; flex-direction:column; align-items:stretch; gap:0; }
 .site-header nav a { padding:14px 8px; font-size:16px; }
 .section { width:calc(100% - 36px); }
 .hero-frame { height:68vh; min-height:380px; max-height:620px; }
 .hero h1 { font-size:clamp(38px,11vw,62px); }
 .hero-text p { line-height:1.8; font-size:13px; letter-spacing:2px; }
 .about { padding:55px 0; }
 .about-layout { grid-template-columns:1fr; gap:28px; }
 .headshot { margin:auto; width:min(100%,325px); height:auto; }
 .about-copy p { margin-bottom:22px; }
 .section-title { font-size:29px; }
 .project-grid { gap:16px; }
 .project-poster { flex-basis:calc(50% - 8px); }
 .project-poster img { width:100%; }
 .reels { padding-top:32px; }
 .reels>h1 { font-size:36px; }
 .reel-grid,.blog-grid { grid-template-columns:1fr; }
 .breakdown { padding-top:30px; }
 .breakdown h2 { font-size:29px; }
 .post { margin-top:20px; padding:24px; }
 .post-header h1 { font-size:30px; }
 .post-content { font-size:17px; }
}
@media(prefers-reduced-motion:reduce) {
 html { scroll-behavior:auto; }
 .project-poster a { transition:none; }
}
