@font-face{font-family:Amaranth;src:url('assets/Amaranth-Bold.ttf') format('truetype');font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:'Source Sans 3';src:url('assets/SourceSans3.ttf') format('truetype');font-weight:200 900;font-style:normal;font-display:swap}
:root{--ink:#2B3827;--cream:#FFFDD7;--brown:#9A8755;--line:rgba(43,56,39,.3)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:'Source Sans 3',sans-serif;font-size:1.125rem;line-height:1.6}a{color:inherit;text-decoration:none}a:focus-visible{outline:2px solid var(--ink);outline-offset:7px}a:hover{text-decoration:underline;text-underline-offset:6px}.container{width:min(1320px,calc(100% - 112px));margin-inline:auto}h1,h2,h3,.brand{font-family:Amaranth,sans-serif;font-weight:700}h1,h2,h3,p,figure{margin:0}header{background:var(--cream)}.navigation{min-height:104px;display:flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid var(--line)}.brand{font-size:2rem;white-space:nowrap}.nav-links{display:flex;gap:42px;font-size:1.125rem;font-weight:600}.skip-link{position:absolute;left:20px;top:-100px;padding:10px;background:var(--cream);z-index:5}.skip-link:focus{top:10px}.landing{background:var(--cream)}.hero-grid{display:grid;grid-template-columns:1fr 1.08fr;align-items:center;gap:65px;padding-block:76px 60px;min-height:650px}.eyebrow{font-size:.875rem;letter-spacing:.16em;font-weight:650;margin-bottom:24px}h1{font-size:clamp(3.7rem,6.3vw,6.3rem);line-height:1.03;letter-spacing:-.035em}.intro{margin-top:28px;font-size:1.4rem;max-width:27ch}.text-link{display:inline-flex;gap:42px;align-items:center;border-bottom:1px solid var(--ink);padding-bottom:8px;margin-top:36px;font-weight:600}.text-link span{font-size:1.6rem}.hero-art img{display:block;width:100%;height:420px;object-fit:cover;border-radius:48% 48% 4px 4px}.hero-art figcaption{font-size:.875rem;text-align:right;margin-top:12px}.landing-bottom{border-top:1px solid var(--line);padding-block:24px;display:flex;justify-content:space-between;font-size:.9375rem}.landing-bottom a span{margin-left:25px}.section{padding-block:100px;scroll-margin-top:24px}.about,.contact{background:var(--brown)}.works{background:var(--cream)}.split{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}h2{font-size:clamp(2.8rem,4.3vw,4.5rem);letter-spacing:-.025em;line-height:1.08}.section-copy{max-width:490px}.large-copy{font-family:Amaranth,sans-serif;font-size:2rem;line-height:1.2;margin-bottom:20px}.placeholder{font-size:1.25rem}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:48px}.section-heading>p{max-width:25ch}.work-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}.work-image{aspect-ratio:4/5;overflow:hidden;border:1px solid var(--line)}.work-image img{display:block;width:100%;height:100%;object-fit:contain}.work-image.landscape img{object-fit:cover}.work-title{display:flex;justify-content:space-between;gap:15px;align-items:baseline;margin-top:22px}h3{font-size:1.5rem;line-height:1.25}.work-title span{font-size:.875rem}.work>p,.work>a>p{font-size:1rem;margin-top:6px}.contact{padding-bottom:0}.contact footer{border-top:1px solid var(--line);margin-top:100px;padding-block:25px;display:flex;justify-content:space-between;font-size:1rem}footer a span{margin-left:20px}@media(min-width:1500px){.hero-grid{min-height:720px}.hero-art img{height:480px}}@media(max-width:900px){.container{width:calc(100% - 56px)}.hero-grid{gap:30px;min-height:570px}.hero-art img{height:350px}.split{gap:40px}.work-grid{gap:20px}.section{padding-top:76px;padding-bottom:76px}.contact{padding-bottom:0}.section-heading{align-items:start;flex-direction:column;gap:20px}}@media(max-width:600px){.container{width:calc(100% - 40px)}.navigation{min-height:90px;gap:16px}.brand{font-size:1.5rem}.nav-links{gap:16px;font-size:.9375rem}.hero-grid{grid-template-columns:1fr;padding-block:52px 32px;gap:38px}.hero-art img{height:340px}.intro{font-size:1.25rem}.landing-bottom{gap:24px;font-size:.875rem}.landing-bottom>span{max-width:18ch}.landing-bottom a{white-space:nowrap;align-self:center}.landing-bottom a span{margin-left:8px}.split{grid-template-columns:1fr;gap:32px}.section{padding-block:64px}.eyebrow{margin-bottom:18px}.work-grid{grid-template-columns:1fr;gap:40px}.work-image{aspect-ratio:1/1}.work-image.landscape{aspect-ratio:4/3}.contact{padding-bottom:0}.contact footer{margin-top:64px}.section-heading{margin-bottom:32px}}@media(max-width:360px){.navigation{flex-wrap:wrap;padding-block:16px}.nav-links{width:100%;justify-content:space-between}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Shared page gutters */
:root{--page-gutter:24px}.container{width:calc(100% - var(--page-gutter)*2)}@media(max-width:600px){:root{--page-gutter:16px}}

/* Shared interactive link treatment */
.navigation a,.landing a,.works a,.contact a,.skip-link{position:relative;text-decoration:none;transition:font-weight .2s ease,color .2s ease}
.navigation a::after,.landing a::after,.works a::after,.contact a::after,.skip-link::after{content:"";position:absolute;left:50%;bottom:1px;width:100%;height:2px;background:currentColor;transform:translateX(-50%) scaleX(0);transform-origin:center;transition:transform .24s ease}
.navigation a:hover,.landing a:hover,.works a:hover,.contact a:hover,.skip-link:hover{font-weight:700;text-decoration:none}
.navigation a:hover::after,.landing a:hover::after,.works a:hover::after,.contact a:hover::after,.skip-link:hover::after{transform:translateX(-50%) scaleX(1)}
.text-link{border-bottom:0}

.work-title .work-button{display:inline-block}


/* Home page heading hierarchy */
.home-page .section-kicker{font-family:Amaranth,sans-serif;font-size:clamp(1.9rem,3vw,2.8rem);line-height:1.2;letter-spacing:.1em;margin:0}
.home-page .section-tagline{font-family:'Source Sans 3',sans-serif;font-size:1.25rem;font-weight:400;font-style:italic;line-height:1.45;margin-top:18px}

.home-page .contact-links{display:flex;flex-direction:column;align-items:flex-start;gap:12px;font-size:1.25rem}.home-page .contact-links a{display:inline-block;overflow-wrap:anywhere;max-width:100%}

/* Every main section occupies at least one visible screen. */
body #main section{min-height:100vh;min-height:100dvh}


/* Center short sections while allowing longer artwork sections to grow. */
body #main section.section,body #main section.landing,body #main section.ttrpg-hero{display:flex;flex-direction:column;justify-content:center}
.home-page #about>.split{grid-template-columns:1fr;gap:28px;text-align:left}
.home-page #about .section-copy{max-width:65ch}
.home-page #contact{display:flex;flex-direction:column;justify-content:flex-start;padding-top:0}
.home-page #contact>.split{flex:1;padding-block:100px}
.home-page #contact>footer{flex:none;margin-top:0}
body #main .ttrpg-hero .ttrpg-title{margin-top:64px}
@media(max-width:600px){.home-page #contact>.split{padding-block:64px}}
.home-page #contact>.split{align-content:center}
.project-page .project-hero .hero-label{margin-top:0}

.home-page .work-grid .work-image{aspect-ratio:1 / 1}.home-page .work-grid .work-image img{width:100%;height:100%;object-fit:cover}

.home-page .work-grid a.work-image{display:block}.home-page .work-grid a.work-image::after{display:none}

/* Project thumbnail zoom stays inside the square link frame. */
.home-page .work-grid a.work-image img{transform:scale(1);transition:transform .35s ease}
.home-page .work-grid a.work-image:hover img,.home-page .work-grid a.work-image:focus-visible img{transform:scale(1.06)}
@media(prefers-reduced-motion:reduce){.home-page .work-grid a.work-image img{transition:none}.home-page .work-grid a.work-image:hover img,.home-page .work-grid a.work-image:focus-visible img{transform:none}}

.home-page .about-bio{font-size:1.25rem}.home-page .about-bio p+p{margin-top:20px}

.home-page .hero-art img{height:auto;max-height:70vh;object-fit:contain;border-radius:0;background:transparent;border:0;box-shadow:none}
