/* lenscubed portfolio — shared styles. Fonts are self-hosted (assets/fonts), so no fallback is needed. */
@font-face{font-family:'Fira Sans';font-style:normal;font-weight:700;font-display:swap;src:url(assets/fonts/fira-sans-latin-700-normal.woff2) format('woff2')}
@font-face{font-family:'Noto Sans';font-style:normal;font-weight:400;font-display:swap;src:url(assets/fonts/noto-sans-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'Noto Sans';font-style:normal;font-weight:600;font-display:swap;src:url(assets/fonts/noto-sans-latin-600-normal.woff2) format('woff2')}
:root{
  --bg:#101010; --surface:#1e1e1e; --line:#333333;
  --text:#E5E5E5; --muted:#A8A8A8;
  --accent:#5EFFC1;   /* Accent 1 */
  --accent2:#7EE9FF;  /* Accent 2 */
  --head:'Fira Sans',sans-serif;
  --body:'Noto Sans',sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--body);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased}
img{max-width:100%}
a{color:inherit;text-decoration:none}
a:hover{opacity:.8}
a:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}
h1,h2,h3{font-family:var(--head);font-weight:700;margin:0}
.wrap{max-width:1152px;margin:0 auto;padding:0 32px}
.skip{position:absolute;left:-9999px}
.skip:focus{left:16px;top:16px;background:var(--accent);color:var(--bg);padding:8px 14px;border-radius:6px;z-index:10}

/* nav */
.nav{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;padding:20px 0}
.nav .logo img{height:48px;width:auto;display:block}
.nav ul{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0;padding:0}
.nav ul a{display:inline-block;padding:12px 16px;font-size:15px}
.nav ul a[aria-current="page"]{color:var(--accent);font-weight:600}

/* hero */
.hero{display:flex;flex-direction:column;align-items:center;text-align:center;gap:24px;padding-block:48px 88px}
.hero .logo-hero{width:min(100%,520px);height:auto;display:block}
.hero h1{font-size:clamp(22px,3.4vw,34px);line-height:1.2}
.btn{display:inline-flex;align-items:center;min-height:48px;padding:0 28px;background:var(--accent);color:var(--bg);font-weight:600;border-radius:6px}

/* sections */
.eyebrow{font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--accent2)}
.section-head{display:flex;flex-direction:column;gap:8px;margin-bottom:32px}
.section-head h2{font-size:36px;letter-spacing:-.01em}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr));gap:24px}
.reels{padding-block:24px 96px}
.reel{display:flex;flex-direction:column;gap:14px}
.reel h3{font-size:18px}
.embed{position:relative;padding:56.25% 0 0 0;background:var(--surface);border:1px solid var(--line);border-radius:8px;overflow:hidden}
.embed iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:0}

.bio{border-top:1px solid var(--line)}
.bio .wrap > div{display:flex;flex-wrap:wrap;align-items:center;gap:56px;padding:80px 0}
.pfp{width:200px;height:200px;border-radius:50%;border:1px solid var(--line);flex:0 0 auto;object-fit:cover;display:block}
.bio-text{flex:1 1 360px;max-width:640px;display:flex;flex-direction:column;gap:16px}
.bio-text h2{font-size:28px;line-height:1.25;letter-spacing:-.01em}
.bio-text p{margin:0;font-size:17px;line-height:1.6;color:var(--muted)}
.textlink{display:inline-flex;align-items:center;gap:8px;font-weight:600;color:var(--accent)}
.textlink svg{width:16px;height:16px;flex:0 0 auto}

/* work page */
.page-title{font-size:clamp(44px,7vw,72px);line-height:1;letter-spacing:-.02em}
.page-head{padding-block:56px 48px;display:flex;flex-direction:column;gap:24px}
.chips{display:flex;flex-wrap:wrap;gap:12px}
.chip{display:inline-flex;align-items:center;min-height:44px;padding:0 20px;border:1px solid var(--line);border-radius:999px;font-size:15px}
.chip:hover{border-color:var(--accent);opacity:1}
.cat{border-top:1px solid var(--line);scroll-margin-top:8px}
.cat .wrap > div{padding:64px 0}
.cat-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px 48px;margin-bottom:32px}
.cat-head .t{display:flex;align-items:baseline;gap:16px}
.cat-head .n{font-size:14px;letter-spacing:.12em;color:var(--accent2)}
.cat-head h2{font-size:36px;letter-spacing:-.01em}
.cat-head p{margin:0;max-width:420px;color:var(--muted)}
.card{display:flex;flex-direction:column;gap:14px}
.thumb{aspect-ratio:16/9;background:var(--surface);border:1px solid var(--line);border-radius:8px;display:grid;place-items:center;font-size:12px;letter-spacing:.1em;color:var(--muted);overflow:hidden}
.thumb img{width:100%;height:100%;object-fit:cover;display:block}
.card .t{font-size:18px;font-weight:600}
.card .m{font-size:14px;color:var(--muted);margin-top:4px}

/* about page */
.about{display:flex;flex-wrap:wrap;align-items:flex-start;gap:64px;padding-block:56px 96px}
.portrait{flex:1 1 320px;min-width:0;width:100%;max-width:420px;aspect-ratio:3/4;object-fit:cover;border:1px solid var(--line);border-radius:8px;display:block;height:auto}
.about-text{flex:1 1 400px;display:flex;flex-direction:column;gap:24px;min-width:0}
.about-text .lead{margin:0;font-size:20px;line-height:1.5}
.about-text p.body{margin:0;font-size:17px;line-height:1.6;color:var(--muted)}
.about-text h2{font-size:22px}
.about-text ul.enjoy{margin:0;padding-left:22px;color:var(--muted);font-size:17px;line-height:1.6;display:flex;flex-direction:column;gap:6px}
.about-text ul.enjoy li::marker{color:var(--accent)}
.rows{border-bottom:1px solid var(--line)}
.row{display:flex;flex-wrap:wrap;gap:8px 32px;padding:20px 0;border-top:1px solid var(--line)}
.row .k{flex:0 0 200px;font-size:18px;font-weight:600}
.row .v{flex:1 1 240px;color:var(--muted)}
.contact{border-top:1px solid var(--line)}
.contact .wrap > div{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:32px;padding:80px 0}
.contact h2{font-size:40px;line-height:1.1;letter-spacing:-.01em;max-width:560px}

/* footer */
.footer{border-top:1px solid var(--line);color:var(--muted);font-size:14px}
.footer .wrap > div{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:24px;padding:40px 0 56px}
.footer ul{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0;padding:0}
.footer ul a{display:inline-block;padding:12px 14px}
