/*
Theme Name: Dylan Grabowski Portfolio
Theme URI: https://dylangrabowski.com/
Author: Dylan Grabowski
Description: Editorial personal portfolio with editable featured work, homepage details, and WordPress writing.
Version: 1.2.6
Requires at least: 6.4
Requires PHP: 7.4
Text Domain: dylan-portfolio
*/

@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&family=Vollkorn:wght@400;500;600;700&display=swap');
:root{--paper:#faf9f6;--ink:#1c1c1c;--muted:#62615e;--orange:#b65c38;--line:#dedbd5;--dark:#242522;--max:1160px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Manrope,Arial,sans-serif;font-size:15px;line-height:1.7}img{max-width:100%;height:auto}a{color:inherit}a:focus-visible,button:focus-visible{outline:3px solid var(--orange);outline-offset:4px}.container{width:min(var(--max),calc(100% - 64px));margin-inline:auto}.site-header{position:relative;z-index:5;border-bottom:1px solid var(--line);background:rgba(250,249,246,.96)}.header-inner{display:flex;align-items:center;justify-content:space-between;min-height:84px;gap:24px}.brand{font-family:Vollkorn,Georgia,serif;font-size:24px;font-weight:700;letter-spacing:-.9px;text-decoration:none}.site-nav{display:flex;align-items:center;gap:33px}.site-nav a{text-decoration:none;font-size:12px;font-weight:700;letter-spacing:.07em;text-transform:uppercase}.site-nav a:hover,.arrow-link:hover{color:var(--orange)}.header-cta{border:1px solid var(--ink);padding:10px 18px}.mobile-menu{display:none}.eyebrow{font-size:11px;font-weight:800;letter-spacing:.17em;text-transform:uppercase;color:var(--orange)}h1,h2,h3,h4{font-family:Vollkorn,Georgia,serif;font-weight:500;letter-spacing:-.045em;line-height:1.08;margin:0}h1{font-size:clamp(56px,7vw,102px)}h2{font-size:clamp(42px,4.8vw,70px)}h3{font-size:30px}.lede{font-size:17px;color:var(--muted);line-height:1.85;max-width:520px}.arrow-link{display:inline-flex;align-items:center;gap:12px;font-size:12px;font-weight:800;letter-spacing:.03em;text-decoration:none;border-bottom:1px solid var(--orange);padding-bottom:8px}.arrow-link:after{content:'↗';font-size:17px;color:var(--orange)}.button{display:inline-flex;text-decoration:none;justify-content:center;align-items:center;border:1px solid var(--ink);padding:14px 22px;font-weight:800;font-size:12px;letter-spacing:.05em;text-transform:uppercase}.button-primary{background:var(--ink);color:#fff}.button:hover{background:var(--orange);border-color:var(--orange);color:#fff}
.hero{padding:80px 0 0}.hero-layout{display:grid;grid-template-columns:1.02fr .98fr;align-items:end;gap:5%}.hero-copy{padding:35px 0 110px}.hero-copy .eyebrow{margin-bottom:28px}.hero-copy h1{max-width:650px}.hero-copy h1 em{font-weight:400;color:var(--orange)}.hero-copy .lede{margin:26px 0 31px}.hero-actions{display:flex;align-items:center;gap:24px;flex-wrap:wrap}.hero-image{position:relative;min-height:620px;align-self:stretch;overflow:hidden;background:#8064a7}.hero-image img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center top}.hero-image.fit-contain img{inset:22px 0 0;height:calc(100% - 22px);object-fit:contain;object-position:center bottom}.hero-image.no-photo{background:linear-gradient(145deg,#c8c0bb,#ded8d2 54%,#a99891)}.hero-image.no-photo:after{content:'ADD YOUR HEADSHOT IN PORTFOLIO SETTINGS';position:absolute;left:15%;right:15%;bottom:18%;text-align:center;font-size:12px;font-weight:800;letter-spacing:.1em;color:#564b44}.metric-strip{border-bottom:1px solid var(--line);background:#f0eee9}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;padding:31px 0}.metric{display:flex;align-items:baseline;gap:16px}.metric strong{font-family:Vollkorn,Georgia,serif;font-size:44px;font-weight:500;line-height:1}.metric span{font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#63615d;line-height:1.5}
.section{padding:112px 0}.section-head{display:flex;justify-content:space-between;align-items:end;gap:32px;margin-bottom:45px}.section-head .eyebrow{margin-bottom:14px}.section-intro{display:flex;align-items:end;gap:32px;max-width:470px}.section-intro p{color:var(--muted);font-size:13px;margin:0}.section-intro .arrow-link{white-space:nowrap}.work-grid,.writing-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:25px}.work-card>a.card-image,.post-card>a.card-image{display:block;aspect-ratio:1.37;background:#e9e5df;overflow:hidden;position:relative}.card-image img{width:100%;height:100%;object-fit:cover;transition:transform .35s}.card-image:hover img{transform:scale(1.04)}.work-card:nth-child(2) .card-image{background:#d4c7bb}.work-card:nth-child(3) .card-image{background:#c8d0c9}.image-placeholder{height:100%;display:flex;align-items:center;justify-content:center;padding:26px;color:#867d71;text-align:center;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.card-number{color:var(--orange);font-size:11px;font-weight:800;margin:18px 0 2px}.work-card h3,.post-card h3{font-size:27px;line-height:1.13;letter-spacing:-.025em}.work-card h3 a,.post-card h3 a{text-decoration:none}.work-card p,.post-card p{font-size:12px;color:var(--muted);line-height:1.7;margin:10px 0 18px}.work-card .arrow-link,.post-card .arrow-link{font-size:11px}
.about-band{background:#eeeae3}.about-layout{display:grid;grid-template-columns:.92fr 1.08fr;gap:8%;align-items:center}.about-photo{height:550px;background:#d4cbc0;overflow:hidden}.about-photo img{width:100%;height:100%;object-fit:cover}.about-copy .eyebrow{margin-bottom:16px}.about-copy h2{font-size:clamp(38px,4.2vw,62px);margin-bottom:25px}.about-copy p{color:#5d5953;font-size:15px;line-height:1.9;margin-bottom:26px}.manifesto{background:var(--dark);color:#f7f3eb;text-align:center;padding:67px 0}.manifesto p{font-family:Vollkorn,Georgia,serif;font-size:clamp(30px,4vw,55px);line-height:1.25;letter-spacing:-.03em;margin:0}.manifesto em{color:#d28c69}
.post-date{font-size:10px;text-transform:uppercase;letter-spacing:.12em;font-weight:800;color:var(--orange);margin:18px 0 8px}.newsletter{background:#272824;color:#fff;padding:75px 0}.newsletter-inner{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:12%}.newsletter .eyebrow{color:#d8926d}.newsletter h2{margin:12px 0 15px}.newsletter p{font-size:14px;color:#c5c4be;max-width:510px}.newsletter-form{border:1px solid #696a64;padding:30px;background:#30312d}.newsletter-form .button{background:var(--orange);border-color:var(--orange);color:#fff;width:100%;margin-top:12px}.newsletter-form p{font-size:12px;margin:0 0 14px}.newsletter-form input[type=email]{background:#f9f8f3;border:0;padding:15px 14px;width:100%;font:inherit}.newsletter-note{font-size:10px;color:#aaa9a4;margin-top:15px}.contact-section{padding:100px 0;text-align:center}.contact-section h2{margin:18px 0 24px}.site-footer{border-top:1px solid var(--line);padding:24px 0;color:var(--muted);font-size:11px}.footer-inner{display:flex;justify-content:space-between;gap:18px;align-items:center}.footer-inner a{text-decoration:none}.footer-links{display:flex;gap:20px}.standard-page{padding:90px 0 120px}.standard-page .page-head{max-width:800px;margin-bottom:45px}.standard-page .page-head h1{font-size:clamp(52px,6vw,82px)}.entry-content{max-width:800px;font-size:17px;line-height:1.85}.entry-content h2{font-size:40px;margin:38px 0 16px}.entry-content h3{font-size:30px;margin:28px 0 12px}.entry-content p{margin:0 0 20px}.entry-content a{color:var(--orange)}.entry-content img{border-radius:2px}.article-cover{max-height:540px;width:100%;object-fit:cover;margin:30px 0}.archive-grid{margin-top:35px}.pagination{margin-top:35px}.screen-reader-text{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.nav-list{list-style:none;display:flex;align-items:center;gap:33px;padding:0;margin:0}.nav-list li{list-style:none}
/* Editorial previews slightly overscan their frame to accommodate padded
   social/X banners without changing the original article's featured image. */
.post-card>a.card-image img{object-position:center center;transform:scale(1.18)}
.post-card>a.card-image:hover img{transform:scale(1.22)}
.case-brand-panel{display:flex;align-items:center;gap:34px;max-width:800px;background:#eeebe5;border:1px solid var(--line);padding:28px 34px;margin:28px 0 52px}.case-brand-logo{flex:0 0 150px;width:150px;height:150px;background:#242424;display:grid;place-items:center;overflow:hidden}.case-brand-logo .case-brand-image{width:100%;height:100%;object-fit:contain}.case-brand-copy .eyebrow{margin-bottom:10px}.case-brand-copy h2{font-size:clamp(28px,3.5vw,42px);margin:0 0 8px;line-height:1.1}.case-brand-copy p{font-size:13px;color:var(--muted);margin:0}.card-image--logo{display:grid!important;place-items:center;padding:32px;background:#e9e5df!important}.card-image--logo img{object-fit:contain;width:100%;height:100%}
/* Case studies use a centered editorial column with generous but balanced margins. */
.single-dg_work .standard-page{padding-top:76px}
.single-dg_work .standard-page .page-head{max-width:900px;margin:0 auto 32px}
.single-dg_work .standard-page .page-head h1{font-size:clamp(44px,4.5vw,64px);line-height:1.12;letter-spacing:-.038em}
.single-dg_work .standard-page .page-head h1{text-wrap:balance}
.single-dg_work .standard-page .page-head .lede{max-width:680px;margin:22px 0 0}
.single-dg_work .entry-content{max-width:800px;margin-inline:auto}
.single-dg_work .case-brand-panel{max-width:900px;margin:24px auto 48px}
.single-dg_work .article-cover{display:block;width:100%;max-width:900px;max-height:500px;object-fit:cover;margin:24px auto 48px}
.single-dg_work .standard-page>p:last-child{max-width:800px;margin:48px auto 0!important}
.contact-section p{max-width:510px;margin:-5px auto 26px;color:var(--muted);font-size:15px;line-height:1.7}
.contact-form-shell{max-width:680px;margin:40px auto 0;text-align:left}
.contact-form-shell .ff-el-group{margin-bottom:22px}
.contact-form-shell .ff-el-input--label label{font-family:Manrope,Arial,sans-serif;font-weight:700;color:var(--ink)}
.contact-form-shell .ff-el-form-control{font-family:Manrope,Arial,sans-serif;border-color:var(--line);background:#fff}
.contact-form-shell .ff-btn-submit{background:var(--orange)!important;border-color:var(--orange)!important;color:#fff!important}
.contact-form-shell .ff-btn-submit:hover{background:#944729!important;border-color:#944729!important}
/* Footer: keep the original editorial layout, make social destinations easy to find. */
.site-footer{padding:36px 0}
.footer-inner{align-items:end;gap:24px}
.footer-social{display:flex;flex-direction:column;align-items:flex-end;gap:9px}
.footer-social-label{font-size:11px;font-weight:800;letter-spacing:.15em;color:var(--orange)}
.footer-links{gap:10px 22px;justify-content:flex-end;flex-wrap:wrap}
.footer-links a{font-size:14px;font-weight:700;line-height:1.5;text-decoration:none;white-space:nowrap}
.footer-links a:hover{color:var(--orange);text-decoration:underline;text-underline-offset:5px}
/* Writing: newsletter 1200×630 covers are shown uncropped. */
.post-card>a.card-image{aspect-ratio:40/21;background:#ebe7e0;display:flex;align-items:center;justify-content:center}
.post-card .card-image img{display:block;width:100%;height:100%;object-fit:contain}
.post-card .image-placeholder{width:100%;background:linear-gradient(140deg,#ebe7e0,#ddd7ce);color:#7e7268;letter-spacing:.15em}
/* Image-free writing receives a compact, typographic treatment on both archive and homepage. */
.post-card--text-only{display:flex;flex-direction:column;align-items:flex-start;background:#f0ede7;border-top:3px solid var(--orange);padding:23px 25px 26px;min-height:275px}
.post-card--text-only .text-card-kicker{width:100%;display:flex;justify-content:space-between;gap:12px;text-transform:uppercase;letter-spacing:.13em;color:#786f66;font-size:10px;font-weight:800}
.post-card--text-only .text-card-kicker span{color:var(--orange);font-size:18px;font-weight:400;line-height:1}
.post-card--text-only .post-date{margin:30px 0 8px}
.post-card--text-only h3{margin:0;max-width:100%}
.post-card--text-only p{font-size:13px;margin:14px 0 24px}
.post-card--text-only .arrow-link{margin-top:auto}
/* About: editable Gutenberg biography, styled as a long-form editorial profile. */
.about-profile-hero{border-bottom:1px solid var(--line);background:#efebe4}
.about-profile-hero-inner{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(300px,.75fr);gap:8%;align-items:center;min-height:475px;padding-top:54px;padding-bottom:54px}
.about-profile-heading .eyebrow{margin-bottom:22px}
.about-profile-heading h1{font-size:clamp(65px,7vw,100px);line-height:.98}
.about-profile-heading>p{max-width:570px;color:#595651;font-size:19px;line-height:1.7;margin:26px 0 30px}
.about-profile-quicklinks{display:flex;gap:28px;flex-wrap:wrap}
.about-profile-portrait{height:390px;max-width:380px;width:100%;justify-self:end;background:#cec3b7;overflow:hidden}
.about-profile-portrait img{display:block;width:100%;height:100%;object-fit:contain;object-position:center bottom}
.about-profile-portrait--event{background:#151515}
.about-profile-portrait--event img{object-fit:cover;object-position:center center}
.about-profile-body{padding:90px 0 115px}
.about-profile-columns{display:grid;grid-template-columns:220px minmax(0,760px);gap:9%;align-items:start}
.about-profile-rail{position:sticky;top:35px;padding-top:10px}
.about-profile-rail p{font-family:Vollkorn,Georgia,serif;font-size:23px;line-height:1.24;letter-spacing:-.02em;margin:15px 0 22px}
.about-profile-rail-rule{width:48px;border-top:2px solid var(--orange)}
.about-profile-content{max-width:none;font-size:16px;line-height:1.9;color:#343331}
.about-profile-content>h2,.about-profile-content>.wp-block-heading:is(h2){font-size:clamp(35px,3.6vw,49px);line-height:1.14;margin:66px 0 22px;padding-top:30px;border-top:1px solid var(--line);text-wrap:balance}
.about-profile-content>h2:first-child,.about-profile-content>.wp-block-heading:is(h2):first-child{margin-top:0;border-top:0;padding-top:0}
.about-profile-content>h3,.about-profile-content>.wp-block-heading:is(h3){font-size:28px;line-height:1.2;margin:34px 0 15px}
.about-profile-content>p{margin:0 0 23px}
.about-profile-content>p:first-of-type{font-size:19px;line-height:1.85;color:#222}
.about-profile-content strong{color:var(--ink)}
.about-profile-content figure{margin:38px 0 43px}
.about-profile-content figure img{display:block;width:100%;height:auto;border-radius:0}
.about-profile-content figcaption{font-size:11px;line-height:1.6;text-align:left;color:var(--muted);margin-top:11px}
.about-profile-content .wp-block-columns{gap:22px;align-items:center;margin:42px 0}
.about-profile-content .wp-block-image{margin:36px 0}
.about-profile-content blockquote,.about-profile-content .wp-block-quote{border-left:3px solid var(--orange);padding:10px 0 10px 23px;margin:36px 0;font-family:Vollkorn,Georgia,serif;font-size:25px;line-height:1.35}
.about-profile-content ul{padding-left:22px;margin:0 0 25px}
.about-profile-content li{padding-left:4px;margin-bottom:8px}
.about-profile-content hr{border:0;border-top:1px solid var(--line);margin:45px 0}
.about-profile-content .wp-block-separator{border-top:1px solid var(--line)}
.about-profile-footer{background:var(--dark);color:#faf9f6;padding:75px 0}
.about-profile-footer-inner{display:flex;align-items:center;justify-content:space-between;gap:38px}
.about-profile-footer .eyebrow{color:#da9273;margin-bottom:14px}
.about-profile-footer h2{font-size:clamp(36px,4.3vw,58px)}
.about-profile-footer p{color:#c4c0b8;max-width:570px;font-size:15px;margin:15px 0 0}
.about-profile-footer .button-primary{flex-shrink:0;background:var(--orange);border-color:var(--orange)}
@media(max-width:900px){.about-profile-hero-inner{grid-template-columns:1fr 270px;gap:5%;min-height:0}.about-profile-portrait{height:335px}.about-profile-columns{grid-template-columns:155px minmax(0,1fr);gap:5%}.about-profile-rail p{font-size:20px}}
@media(max-width:680px){.about-profile-hero-inner{grid-template-columns:1fr;padding-top:55px;padding-bottom:50px}.about-profile-heading>p{font-size:17px}.about-profile-portrait{justify-self:start;max-width:360px;height:330px}.about-profile-body{padding:55px 0 75px}.about-profile-columns{display:block}.about-profile-rail{position:static;margin-bottom:38px}.about-profile-rail p{max-width:310px}.about-profile-content{font-size:15px}.about-profile-content>p:first-of-type{font-size:17px}.about-profile-content>h2,.about-profile-content>.wp-block-heading:is(h2){margin-top:49px;font-size:36px}.about-profile-footer-inner{display:block}.about-profile-footer .button{margin-top:28px}}
/* Single posts keep the headline, hero and body in the same editorial column. */
.single-post .standard-page .page-head{max-width:800px;margin:0 auto 30px}
.single-post .standard-page .page-head h1{font-size:clamp(43px,5vw,68px);line-height:1.13;text-wrap:balance}
.single-post .article-cover{display:block;max-width:800px;width:100%;height:auto;max-height:none;object-fit:contain;margin:28px auto 44px}
.single-post .entry-content{max-width:800px;margin-inline:auto}
.single-post .standard-page>p:last-child{max-width:800px;margin:50px auto 0!important}
.writing-filters{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin:0 0 32px}
.writing-filter{display:inline-block;text-decoration:none;font-size:12px;font-weight:800;letter-spacing:.025em;border:1px solid var(--line);padding:10px 17px;color:var(--ink);background:transparent;transition:background .2s,border-color .2s,color .2s}
.writing-filter:hover{border-color:var(--orange);color:var(--orange)}
.writing-filter.active{background:var(--ink);border-color:var(--ink);color:#fff}
.writing-filters+.writing-grid.archive-grid{margin-top:0}
@media(max-width:680px){.footer-social{align-items:flex-start;margin-top:20px}.footer-links{justify-content:flex-start;gap:12px 20px}.footer-links a{font-size:14px}.post-card>a.card-image{aspect-ratio:40/21}}
@media(max-width:680px){.case-brand-panel{padding:22px;gap:18px;margin:24px 0 36px}.case-brand-logo{flex-basis:96px;width:96px;height:96px}.case-brand-copy h2{font-size:26px}.card-image--logo{padding:24px}}
@media(max-width:680px){.single-dg_work .standard-page{padding-top:58px}.single-dg_work .standard-page .page-head h1{font-size:clamp(38px,10vw,48px)}.single-dg_work .standard-page .page-head{margin-bottom:25px}.single-dg_work .case-brand-panel{margin:20px auto 36px}.single-dg_work .article-cover{margin:20px auto 36px;max-height:380px}}
@media(max-width:900px){.hero-layout{grid-template-columns:1fr 1fr;gap:3%}.hero-copy{padding-bottom:65px}.hero-image{min-height:480px}.about-layout{gap:5%}.about-photo{height:440px}.section{padding:80px 0}.section-head{align-items:start}.section-intro{display:block}.section-intro p{margin-bottom:16px}}
@media(max-width:680px){.container{width:min(100% - 36px,var(--max))}.header-inner{min-height:68px}.brand{font-size:22px}.mobile-menu{display:block;border:1px solid var(--line);background:transparent;padding:8px 12px;font:inherit;font-size:12px;font-weight:800}.site-nav{display:none;position:absolute;left:0;right:0;top:68px;background:var(--paper);border-bottom:1px solid var(--line);padding:20px;flex-direction:column;align-items:start;gap:18px}.site-nav.open{display:flex}.nav-list{display:flex;flex-direction:column;align-items:start;gap:18px}.hero{padding-top:28px}.hero-layout{display:flex;flex-direction:column}.hero-copy{padding:24px 0 40px}.hero-copy .eyebrow{margin-bottom:14px}.hero-copy .lede{font-size:15px}.hero-image{min-height:430px;width:100%}.metrics{gap:8px;padding:20px 0}.metric{display:block}.metric strong{font-size:28px;display:block}.metric span{font-size:9px;display:block}.section{padding:70px 0}.section-head{display:block;margin-bottom:28px}.section-intro{margin-top:15px}.work-grid,.writing-grid{grid-template-columns:1fr;gap:40px}.work-card>a.card-image,.post-card>a.card-image{aspect-ratio:1.7}.about-layout,.newsletter-inner{grid-template-columns:1fr}.about-photo{height:380px}.about-copy{padding-top:12px}.manifesto{padding:52px 0}.newsletter-inner{gap:24px}.newsletter-form{padding:22px}.contact-section{padding:65px 0}.footer-inner{display:block}.footer-links{margin-top:10px}.standard-page{padding:65px 0}.entry-content{font-size:16px}}
