@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Manrope:wght@400;500;600;650;700;750;800&display=swap');
:root{color-scheme:dark;--paper:#0d1110;--surface:#151b18;--ink:#edf2ee;--muted:#a2ada6;--line:#2a342e;--accent:#8be0ad;--sans:'DM Sans',sans-serif;--display:'Manrope',sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:112px}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.6 var(--sans);-webkit-font-smoothing:antialiased}body.modal-open{overflow:hidden}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}a,button{-webkit-tap-highlight-color:transparent;transition:color .2s,background .2s,border-color .2s,box-shadow .2s}a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:5px}img{display:block;max-width:100%}.wrap{max-width:1440px;margin:auto;padding-inline:64px}
.site-header{max-width:none;display:flex;align-items:center;justify-content:space-between;padding:19px max(32px,calc((100vw - 1312px)/2));position:sticky;top:0;z-index:20;background:linear-gradient(180deg,#303b3290,#19221bc9 48%,#151c18eb);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border-bottom:1px solid #52685845;box-shadow:inset 0 1px 0 #ffffff0d,0 8px 30px #0002}
.brand{display:flex;align-items:center;gap:12px;font-weight:650;line-height:1.25}.brand-mark{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;font-size:25px;font-weight:700;letter-spacing:-2px;background:linear-gradient(150deg,#67997a,#2c6548 55%,#163f2c);border:1px solid #83b39466;box-shadow:inset 0 1px 0 #d3ffe16b,0 3px 9px #0003;color:#f2fff6}.brand-role{display:block;color:var(--muted);font-size:12px;font-weight:400;margin-top:4px}nav{display:flex;align-items:center;gap:32px;font-size:14px;font-weight:500}.nav-count{font-size:11px;vertical-align:super;color:var(--muted);margin-left:3px}.nav-contact{padding:9px 16px;border:1px solid #81958a40;border-radius:8px;background:linear-gradient(#ffffff0d,#ffffff02);box-shadow:inset 0 1px 0 #ffffff0b}.nav-contact span{margin-left:20px;color:var(--accent)}nav a:hover,.text-link:hover,.project-open:hover,.email-address:hover{color:var(--accent)}.nav-contact:hover{background:#304b3b;border-color:#6ea281}
.work{padding-top:32px}.section-heading{display:flex;align-items:center;margin-bottom:22px}.section-heading h1{font:550 20px/1.4 var(--display);margin:0;letter-spacing:-.5px}.section-heading h1 span{font:400 12px var(--sans);color:var(--muted);vertical-align:super;margin-left:7px}.projects{display:grid;grid-template-columns:1fr 1fr;gap:32px}.project{min-width:0}.project-visual{padding:15px;border:1px solid #354139;border-radius:13px;background:linear-gradient(150deg,#27332b,#171e1a);box-shadow:inset 0 1px 0 #ffffff06,0 8px 28px #0002;overflow:hidden}.chess-visual{background:linear-gradient(150deg,#26322d,#161c19)}.visual-topline{display:flex;justify-content:space-between;align-items:center;padding:0 3px;margin-bottom:14px;font-size:10px;letter-spacing:1.2px;font-weight:550;color:#c1d0c6}.live-label{font-size:9px;letter-spacing:.7px;padding:3px 7px;border:1px solid #42674f;border-radius:4px;color:#a4dbb7;background:#46755618}.main-shot{position:relative;display:block;width:100%;padding:0;border:0;border-radius:6px;background:#252829;overflow:hidden;aspect-ratio:1.65}.main-shot img{width:100%;height:100%;object-fit:cover;transition:transform .4s}.main-shot:hover img{transform:scale(1.025)}.expand-icon{position:absolute;right:12px;bottom:12px;width:31px;height:31px;border:1px solid #c8e2d33b;display:grid;place-items:center;border-radius:50%;background:#132219de;backdrop-filter:blur(10px);color:#c7f4d8;font-size:21px;box-shadow:0 2px 10px #0003}
.project-copy{padding-top:23px}.project-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.project-title-row h3{font:700 29px/1.3 var(--display);letter-spacing:-.8px;margin:0}.project-title-row .chess-title{font-size:clamp(20px,1.72vw,25px);letter-spacing:-.7px}.project-open{display:flex;align-items:center;gap:10px;font-size:13px;font-weight:500;white-space:nowrap;color:var(--accent)}.project-open span{font-size:19px}.project-subtitle{font-size:13px;color:var(--muted);margin:5px 0 19px}.project-description{font-size:16px;line-height:1.7;color:var(--muted);margin:0;min-height:109px}.project-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;border-block:1px solid var(--line);margin:25px 0;padding:19px 0}.project-stats strong{display:block;font:550 24px/1.3 var(--display);letter-spacing:-.6px}.project-stats span{font-size:12px;color:var(--muted)}.project-chess .project-stats>div:nth-child(2) strong{font-size:21px}.feature-tags{display:flex;flex-wrap:wrap;gap:7px;list-style:none;padding:0;margin:0;min-height:90px;align-content:start}.feature-tags li{font-size:12px;padding:4px 10px;border:1px solid #303a34;background:#151c18;border-radius:5px;color:#b8c3bc;white-space:nowrap}.feature-tags .wip-tag{background:#182a20;color:#a0d8b5;border-color:#335341}.gallery-heading{display:flex;justify-content:space-between;font-size:12px;margin:23px 0 12px;color:#d7e1da}.gallery-heading span+span{color:var(--muted)}.thumbnail-strip{display:flex;gap:9px;overflow-x:auto;padding:3px 3px 10px;scrollbar-width:thin;scrollbar-color:#435b4d transparent}.thumbnail{width:99px;min-width:99px;height:66px;border:1px solid #3d4b42;border-radius:5px;padding:0;overflow:hidden;position:relative;background:#1c2620}.thumbnail img{height:100%;width:100%;object-fit:cover;transition:filter .2s}.thumbnail:hover{border-color:var(--accent)}.thumbnail:hover img{filter:brightness(1.1)}.thumbnail:focus-visible{outline-offset:1px}
.text-link{display:inline-flex;align-items:center;gap:22px;font-weight:500;font-size:14px;background:none;border:0;padding:0}.text-link span{font-size:22px}.story-note{border-block:1px solid var(--line);padding:24px 0;margin-top:28px;display:flex;align-items:center;gap:22px}.note-mark{font-size:27px;color:var(--accent)}.story-note p{font-size:13px;color:var(--muted);max-width:760px;margin:0}.story-note strong{color:var(--ink);font-weight:500}.story-note .text-link{margin-left:auto;white-space:nowrap;font-size:12px;gap:15px;color:var(--accent)}.eyebrow{font-size:11px;letter-spacing:1.5px;font-weight:500;color:var(--muted)}.about{padding-block:72px;display:grid;grid-template-columns:1fr 1fr;gap:80px}.about h2{font:550 36px/1.25 var(--display);letter-spacing:-1.1px;margin:15px 0 0}.about-location{font-size:13px;color:var(--muted);margin-top:9px}.about-copy p{font-size:16px;color:var(--muted);margin:0 0 17px}.about-copy .opportunity-line{color:#d5e0d8;font-size:14px;margin-bottom:0}
.contact{max-width:1312px;padding:32px 38px 38px;border:1px solid #35463b;border-radius:12px;background:linear-gradient(120deg,#1b2920,#151e19);box-shadow:inset 0 1px 0 #b7ddbf0d;color:var(--ink)}.contact-top{display:flex;justify-content:space-between;color:var(--muted);font-size:10px;letter-spacing:1px}.contact-body{display:flex;align-items:center;justify-content:space-between;gap:38px;margin-top:25px}.contact h2{font:500 52px/1.13 var(--display);letter-spacing:-2px;margin:0}.contact-action{min-width:250px}.contact-action p{font-size:14px;line-height:1.7;color:var(--muted);margin:0 0 20px}.contact-button{display:flex;align-items:center;justify-content:space-between;gap:50px;padding:12px 19px;border:1px solid #a6e5bd80;border-radius:7px;background:linear-gradient(#a0e5b9,#7dcca0);color:#10281a;box-shadow:inset 0 1px 0 #e0ffe87d,0 4px 12px #0002;font-size:14px;font-weight:600}.contact-button:hover{background:#b4edc9;box-shadow:0 4px 18px #7cca9c20}.contact-button span{font-size:21px}.email-address{display:block;font-size:12px;color:var(--muted);margin-top:12px}footer{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:var(--muted);padding-block:27px!important}.footer-name{font-weight:550;color:var(--ink)}.footer-name>span{font-weight:400;margin-left:16px;color:var(--muted)}footer>a:last-child span{margin-left:15px;color:var(--accent)}.skip-link{position:fixed;top:-80px;left:20px;z-index:30;padding:10px 20px;background:#20392a}.skip-link:focus{top:10px}
 dialog{width:min(1200px,94vw);max-height:94dvh;padding:0;border:1px solid #3c5143;border-radius:12px;background:#172019;color:var(--ink);box-shadow:0 24px 90px #0008}dialog::backdrop{background:#050b08dc;backdrop-filter:blur(8px)}.dialog-bar{display:flex;justify-content:space-between;align-items:center;padding:18px 24px;border-bottom:1px solid var(--line)}.dialog-bar span{font-size:11px;letter-spacing:1px;color:var(--muted)}.dialog-bar h2{font-size:18px;font-weight:500;line-height:1.4;margin:3px 0 0}.icon-button{width:40px;height:40px;border:1px solid #4f6657;color:var(--accent);background:transparent;border-radius:50%;font-size:23px;display:grid;place-items:center;flex-shrink:0}.icon-button:hover{background:#2e4636}.dialog-image-wrap{display:flex;align-items:center;justify-content:center;min-height:180px;background:#0b100d;padding:12px}.dialog-image-wrap img{max-height:67dvh;max-width:100%;object-fit:contain}.dialog-footer{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:15px 24px}.dialog-footer p{font-size:13px;color:var(--muted);margin:0}.gallery-controls{display:flex;gap:18px;align-items:center;white-space:nowrap;font-size:13px}#gallery-crop{display:flex;justify-content:center;align-items:center;max-width:100%}#gallery-crop.has-crop{position:relative;display:block;width:min(100%,calc(67dvh * var(--crop-ratio)));aspect-ratio:var(--crop-ratio);overflow:hidden}#gallery-crop.has-crop img{position:absolute;width:100%;max-height:none;height:auto;top:var(--crop-offset);left:0}.thumbnail-crop{display:block;width:100%;height:100%;position:relative;overflow:hidden}.thumbnail-crop img{position:absolute;left:0;width:100%;max-width:none;object-fit:cover}
@media(max-width:1439px){.contact{margin-inline:64px}.project-title-row .project-open{margin-left:auto}.project-description{min-height:136px}}
@media(max-width:1100px){.wrap{padding-inline:36px}.site-header{padding:17px 36px}.contact{margin-inline:36px;padding:30px}.projects{gap:24px}.project-title-row{display:block}.project-title-row h3{font-size:25px}.project-title-row .chess-title{font-size:21px}.project-open{margin-top:8px}.project-stats strong{font-size:22px}.project-chess .project-stats>div:nth-child(2) strong{font-size:19px}.feature-tags{min-height:124px}.about{gap:50px}.contact h2{font-size:44px}.contact-action{min-width:230px}.story-note p{max-width:65%}.project-visual{padding:12px}.visual-topline{font-size:9px}}
@media(max-width:760px){html{scroll-padding-top:88px}.wrap{padding-inline:24px}.site-header{padding:14px 24px}.brand{font-size:15px;gap:10px}.brand-mark{width:37px;height:37px;font-size:22px;border-radius:10px}.brand-role{display:none}nav{gap:20px;font-size:13px}.nav-contact{padding:7px 11px}.nav-contact span{margin-left:9px}.nav-count{display:none}.work{padding-top:25px}.section-heading{margin-bottom:19px}.section-heading h1{font-size:18px}.projects{grid-template-columns:1fr;gap:37px}.project-visual{padding:12px;border-radius:11px}.visual-topline{font-size:9px;margin-bottom:11px}.project-copy{padding-top:21px}.project-title-row{display:flex;align-items:center;gap:10px}.project-title-row h3{font-size:26px}.project-title-row .chess-title{font-size:22px}.project-open{margin:0;font-size:12px;gap:7px}.project-description{min-height:0}.project-stats{margin:22px 0;padding:18px 0}.project-stats strong{font-size:24px}.project-chess .project-stats>div:nth-child(2) strong{font-size:20px}.feature-tags{min-height:0}.gallery-heading{margin-top:23px}.story-note{margin-top:26px;gap:10px;flex-wrap:wrap;align-items:flex-start}.note-mark{width:24px}.story-note p{max-width:none;flex:0 0 calc(100% - 34px)}.story-note .text-link{margin-left:34px;margin-top:5px}.about{padding-block:48px;grid-template-columns:1fr;gap:22px}.about h2{font-size:32px}.about-location{margin-bottom:0}.contact{margin-inline:24px;padding:24px}.contact-top>span:last-child{display:none}.contact-body{display:block;margin-top:22px}.contact h2{font-size:38px;letter-spacing:-1.3px}.contact-action{margin-top:24px;min-width:0}.contact-button{max-width:320px}.email-address{font-size:13px}footer{gap:16px;padding-block:25px!important}dialog{width:95vw;max-height:95dvh}.dialog-bar{padding:13px 16px}.dialog-footer{padding:14px 16px;align-items:flex-start;flex-direction:column;gap:13px}.dialog-footer p{font-size:12px}.gallery-controls{align-self:flex-end}.dialog-image-wrap{padding:4px}.dialog-image-wrap img{max-height:60dvh}#gallery-crop.has-crop{width:min(100%,calc(60dvh * var(--crop-ratio)))}}
@media(max-width:390px){.wrap{padding-inline:18px}.site-header{padding:13px 18px}nav{gap:13px;font-size:12px}.nav-contact{padding:7px 9px}.nav-contact span{margin-left:5px}.brand{font-size:14px}.brand-mark{width:33px;height:33px;font-size:20px}.project-title-row .chess-title{font-size:20px}.project-open{font-size:11px}.contact{margin-inline:18px;padding:22px}.contact h2{font-size:34px}.visual-topline{font-size:8px}.live-label{font-size:8px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* Make room for the custom-work route in the existing mobile navigation. */
@media(max-width:600px){.site-header:has(.nav-custom) nav{gap:12px}.site-header:has(.nav-custom) nav>a[href="#about"]{display:none}}@media(max-width:390px){.site-header:has(.nav-custom) .brand>span:last-child{display:none}}

/* Owner identity uses the existing project-heading scale. */
.identity-role{display:block;font-size:14px;font-weight:400;color:var(--muted);letter-spacing:0;margin-top:5px}.additional-work{margin-block:28px;color:var(--muted);font-size:16px}
