@import url("styles.css");
*{box-sizing:border-box}
html{overflow-x:hidden}
body{margin:0;background:var(--surface-page);color:var(--ink);font-family:var(--font-body,'Syne',sans-serif);-webkit-font-smoothing:antialiased;overflow-x:hidden;max-width:100%}
img{display:block;max-width:100%}
a{color:var(--link);text-decoration:none}a:hover{color:var(--link-hover)}
.wrap{max-width:720px;margin:0 auto;padding:0 24px}
@media(max-width:760px){.wrap{padding:0 22px}}
header.site .wrap{min-width:0}
header.site{background:var(--white);border-bottom:1px solid var(--border-line);position:sticky;top:0;z-index:50}
header.site .wrap{display:flex;align-items:center;justify-content:space-between;padding-top:14px;padding-bottom:14px}
.brand{display:flex;align-items:center;gap:12px;min-width:0;flex-shrink:0}
.brand img{width:38px;height:38px;flex-shrink:0}
.brand span{font-family:'Syne',sans-serif;font-weight:700;font-size:16px;letter-spacing:.06em;color:var(--ink);white-space:nowrap}
nav.main{display:flex;gap:28px;flex-shrink:0}
nav.main a{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.12em;color:var(--stone);border-bottom:2px solid transparent;padding-bottom:4px}
nav.main a.active{color:var(--ink);border-bottom-color:var(--ink)}
.intro{padding:64px 0 8px}
.intro h1{margin:0;font-family:'Syne',sans-serif;font-size:30px;font-weight:600;line-height:1.25;letter-spacing:-.01em;color:var(--ink);max-width:22ch}
.intro p{margin:20px 0 0;font-size:17px;line-height:1.6;color:var(--text-secondary);max-width:52ch}
@media(max-width:760px){.intro{padding:36px 22px 4px}.intro h1{font-size:24px}.intro p{font-size:16px;margin-top:14px}}
main.feed{padding:24px 0 0}
article.project{padding:56px 0;border-top:1px solid var(--border-line)}
@media(max-width:640px){article.project{padding:36px 0}.project .phead{flex-direction:column;align-items:flex-start;gap:8px}.project h2{font-size:19px}}
article.project:first-of-type{border-top:0}
.project .phead{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:16px}
.project h2{margin:0;font-family:'Syne',sans-serif;font-size:22px;font-weight:500;letter-spacing:-.01em;color:var(--ink)}
.tags{display:flex;gap:6px;flex-shrink:0}
.tag{font-family:'Syne Mono',monospace;font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--graphite);border:1px solid var(--border-line);border-radius:999px;padding:4px 10px;white-space:nowrap}
.gallery{display:flex;gap:8px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;margin:0 -24px;padding:0 24px 4px;-webkit-overflow-scrolling:touch;align-items:stretch;height:444px}
.gallery::-webkit-scrollbar{display:none}
.gallery{scrollbar-width:none}
.gallery>*{scroll-snap-align:start;flex:0 0 88%;max-width:88%;min-width:0;height:440px;border-radius:2px}
.gallery img{width:100%;object-fit:cover;background:var(--mist)}
@media(max-width:640px){
.gallery{height:calc(74vw + 4px);max-height:424px;min-height:264px;margin:0 -22px;padding:0 0 4px;gap:6px}
.gallery>*{flex-basis:calc(100% - 34px);max-width:calc(100% - 34px);height:74vw;max-height:420px;min-height:260px;border-radius:0}
.gallery>*:first-child{margin-left:0}
.gdots{margin-top:12px}
}
.meta{display:flex;gap:24px;flex-wrap:wrap;margin:18px 0 12px;font-family:'Syne Mono',monospace;font-size:12px;color:var(--graphite)}
.meta b{color:var(--stone);font-weight:400;text-transform:uppercase;letter-spacing:.1em;font-size:10px;margin-right:8px}
.desc{margin:0;font-size:15px;line-height:1.65;color:var(--text-secondary);max-width:60ch;text-wrap:pretty}
.services{padding:40px 0 0}
.services h1{margin:0 0 12px;font-family:'Syne',sans-serif;font-size:30px;font-weight:700;letter-spacing:-.01em}
.services .lead{margin:0 0 48px;font-size:17px;line-height:1.6;color:var(--text-secondary);max-width:56ch}
.svc{display:grid;grid-template-columns:1fr 1.4fr;gap:24px;align-items:baseline;margin-bottom:24px}
@media(max-width:640px){.svc{grid-template-columns:1fr;gap:6px}}
.svc h3{margin:0;font-family:'Syne',sans-serif;font-size:17px;font-weight:500;color:var(--ink)}
.svc p{margin:0;font-size:15px;line-height:1.65;color:var(--text-secondary)}
.bio{display:flex;align-items:center;gap:24px;margin:56px 0;flex-wrap:wrap}
@media(max-width:640px){.bio{gap:16px;margin:40px 0}.services h1{font-size:24px}.services .lead{font-size:16px;margin-bottom:32px}}
.bio img{width:72px;height:72px;border-radius:50%;object-fit:cover;object-position:50% 20%;flex-shrink:0}
.bio .name{font-family:'Syne',sans-serif;font-size:17px;font-weight:500;color:var(--ink)}
.bio .role{font-size:15px;color:var(--text-secondary)}
.btn{display:inline-block;background:var(--ink);color:var(--paper);font-family:'Syne',sans-serif;font-size:14px;font-weight:600;padding:12px 22px;border-radius:2px}
.btn:hover{background:var(--pool);color:var(--white)}
footer.site{background:var(--surface-inverse);margin-top:64px}
footer.site .wrap{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;padding-top:32px;padding-bottom:32px}
@media(max-width:640px){footer.site .wrap{flex-direction:column;align-items:flex-start;gap:8px}footer.site .fcontact{font-size:11px}}
footer.site .fname{font-family:'Syne',sans-serif;font-weight:700;font-size:14px;letter-spacing:.06em;color:var(--paper)}
footer.site .fcontact{font-family:'Syne Mono',monospace;font-size:12px;color:var(--stone)}
footer.site a{color:var(--stone)}footer.site a:hover{color:var(--paper)}
.gallery-wrap{position:relative}
.gnav{position:absolute;bottom:-7px;width:0;height:0;border:none;background:transparent;padding:0;font-size:0;cursor:pointer;z-index:2;border-top:11px solid transparent;border-bottom:11px solid transparent;filter:drop-shadow(0 1px 3px rgba(0,0,0,.35))}
.gnav.prev{right:52px;border-right:16px solid var(--pool)}
.gnav.next{right:16px;border-left:16px solid var(--pool)}
@media(max-width:640px){.gnav{bottom:-5px;border-top-width:9px;border-bottom-width:9px}.gnav.prev{right:46px;border-right-width:13px}.gnav.next{right:12px;border-left-width:13px}}
.gdots{display:flex;gap:6px;justify-content:center;margin-top:14px}
.gdot{width:6px;height:6px;border-radius:50%;border:0;padding:0;background:var(--mist);cursor:pointer;transition:width .2s,background .2s}
.gdot.active{background:var(--ink);width:16px;border-radius:3px}
.gallery .textcard{background:var(--surface-inverse);color:var(--paper);padding:28px;display:flex;flex-direction:column;justify-content:space-between;gap:16px;overflow:hidden}
.textcard .desc{overflow-y:auto;-webkit-overflow-scrolling:touch;flex:1 1 auto;min-height:0}
@media(max-width:640px){.gallery .textcard{padding:18px;gap:12px}.textcard .desc{font-size:14px;line-height:1.55}.textcard .cardmeta{font-size:11px;gap:6px}}
.textcard .desc{margin:0;font-size:15px;line-height:1.6;color:var(--fog);max-width:none}
.textcard .cardmeta{margin:0;display:flex;flex-direction:column;gap:8px;font-family:'Syne Mono',monospace;font-size:12px}
.textcard .cardmeta .row{display:flex;justify-content:space-between;border-top:1px solid rgba(245,243,239,.2);padding-top:8px}
.textcard .cardmeta dt{margin:0;color:var(--stone);text-transform:uppercase;letter-spacing:.1em;font-size:10px}
.textcard .cardmeta dd{margin:0;color:var(--paper)}
.project h2 a{color:inherit;text-decoration:none}
.project h2 a:hover{color:var(--pool)}
.burger{display:none}
.navtoggle{position:absolute;opacity:0;width:1px;height:1px;margin:0;pointer-events:none;clip-path:inset(50%)}
@media(max-width:760px){
header.site .wrap{padding-top:12px;padding-bottom:12px;position:relative}
.brand img{width:38px;height:38px}
.brand span{font-size:14px;letter-spacing:.05em}
.burger{display:flex;flex-direction:column;justify-content:center;gap:5px;width:44px;height:44px;margin-right:-10px;cursor:pointer;align-items:flex-end;flex-shrink:0;-webkit-tap-highlight-color:transparent}
.burger span{display:block;width:22px;height:2px;background:var(--ink);transition:transform .22s ease,opacity .18s ease}
.navtoggle:checked+.burger span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.navtoggle:checked+.burger span:nth-child(2){opacity:0}
.navtoggle:checked+.burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.navtoggle:focus-visible+.burger{outline:2px solid var(--pool);outline-offset:2px}
nav.main{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;gap:0;background:var(--white);border-bottom:1px solid var(--border-line);box-shadow:0 8px 24px rgba(0,0,0,.07);z-index:60}
.navtoggle:checked~nav.main{display:flex}
nav.main a{display:block;padding:16px 22px;font-size:13px;letter-spacing:.1em;border-bottom:0;border-left:3px solid transparent}
nav.main a+a{border-top:1px solid var(--border-line)}
nav.main a.active{border-bottom-color:transparent;border-left-color:var(--pool)}
}
@media(max-width:400px){.brand span{font-size:12px}}
@media(max-width:760px){
main.feed{padding:24px 22px 0}
.services{padding:40px 22px 0}
.gallery{margin-left:-22px;margin-right:-22px;padding-left:0;padding-right:0;gap:6px}
}
@media(min-width:761px){
.gallery{margin-left:0;margin-right:0;padding-left:0;padding-right:0}
}
