:root {
  --bg:#0C0C0E;--bg2:#111115;--bg3:#16161B;--surface:#1C1C22;
  --border:#2A2A33;--border2:#333340;
  --teal:#1D9E75;--teal-d:#0F6E56;--teal-b:#24C490;
  --teal-dim:rgba(29,158,117,.12);--teal-glow:rgba(29,158,117,.25);
  --text:#F0EEE8;--text2:#9A9A9E;--text3:#5A5A62;
  --mono:'JetBrains Mono',monospace;--nav-h:64px;--r:10px;
}
[data-theme="light"] {
  --bg:#F2F2F4;--bg2:#E8E8EC;--bg3:#DEDEE4;--surface:#FFFFFF;
  --border:#D8D8E0;--border2:#C8C8D4;
  --text:#0C0C0E;--text2:#5A5A62;--text3:#9A9A9E;
  --teal-dim:rgba(29,158,117,.08);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:'Inter',system-ui,sans-serif;background:var(--bg);color:var(--text);line-height:1.6;transition:background .3s,color .3s;overflow-x:hidden}
a{color:var(--teal-b);text-decoration:none}
img{display:block;max-width:100%}
.container{max-width:1040px;margin:0 auto;padding:0 28px}
body::before{content:'';position:fixed;inset:0;z-index:0;pointer-events:none;background-image:linear-gradient(var(--border) 1px,transparent 1px),linear-gradient(90deg,var(--border) 1px,transparent 1px);background-size:48px 48px;opacity:.18}

/* NAV */
nav{position:fixed;top:0;left:0;right:0;z-index:500;height:var(--nav-h);background:color-mix(in srgb,var(--bg) 82%,transparent);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--border);transition:background .3s}
.nav-inner{max-width:1040px;margin:0 auto;padding:0 28px;height:100%;display:flex;align-items:center;justify-content:space-between}
.nav-brand{font-family:var(--mono);font-size:.88rem;font-weight:500;color:var(--text2);letter-spacing:.02em}
.nav-brand span{color:var(--teal-b)}
.nav-links{display:flex;gap:2px;list-style:none;align-items:center}
.nav-links a{font-size:.75rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text3);padding:7px 13px;border-radius:6px;transition:background .15s,color .15s}
.nav-links a:hover{background:var(--teal-dim);color:var(--teal-b)}
.theme-btn{font-family:var(--mono);font-size:.75rem;font-weight:500;background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:6px 14px;color:var(--text3);cursor:pointer;display:flex;align-items:center;gap:6px;transition:all .15s;letter-spacing:.04em}
.theme-btn:hover{border-color:var(--teal);color:var(--teal-b)}

/* DROPDOWN */
.nav-dropdown{position:relative}
.nav-dropdown>a{display:flex;align-items:center;gap:3px}
.nav-dropdown>a::after{content:'▾';font-size:.55rem;opacity:.6;transition:transform .2s}
.nav-dropdown:hover>a::after{transform:rotate(180deg)}
.nav-dropdown-menu{position:absolute;top:100%;left:0;background:color-mix(in srgb,var(--bg2) 96%,transparent);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--border);border-radius:8px;padding:4px;margin-top:6px;min-width:140px;display:none;flex-direction:column;gap:2px;box-shadow:0 8px 24px rgba(0,0,0,.35);z-index:600}
.nav-dropdown::after{content:'';position:absolute;left:0;right:0;height:10px;top:100%}
.nav-dropdown:hover .nav-dropdown-menu{display:flex}
.nav-dropdown-menu a{font-size:.75rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text3);padding:7px 13px;border-radius:6px;transition:background .15s,color .15s;display:block}
.nav-dropdown-menu a:hover{background:var(--teal-dim);color:var(--teal-b)}

/* REVEAL */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .6s ease,transform .6s ease}
.reveal.in{opacity:1;transform:none}
.d1{transition-delay:.07s}.d2{transition-delay:.14s}.d3{transition-delay:.21s}
.d4{transition-delay:.28s}.d5{transition-delay:.35s}

/* HERO */
#hero{position:relative;z-index:1;min-height:100svh;padding-top:var(--nav-h);display:flex;align-items:center}
.hero-glow{position:absolute;top:10%;right:5%;width:520px;height:520px;background:radial-gradient(circle,rgba(29,158,117,.13) 0%,transparent 65%);border-radius:50%;pointer-events:none}
.hero-layout{position:relative;z-index:2;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:80px;padding:80px 0}
.hero-photo-side{display:flex;flex-direction:column;align-items:flex-start;gap:24px}
.photo-frame{position:relative;width:100%;max-width:360px}
.photo-frame img,.photo-ph{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:var(--r);display:flex;align-items:center;justify-content:center;font-size:6rem;background:var(--surface);border:1px solid var(--border)}
.photo-frame::before,.photo-frame::after{content:'';position:absolute;width:28px;height:28px;border-color:var(--teal-b);border-style:solid}
.photo-frame::before{top:-6px;left:-6px;border-width:2px 0 0 2px;border-radius:4px 0 0 0}
.photo-frame::after{bottom:-6px;right:-6px;border-width:0 2px 2px 0;border-radius:0 0 4px 0}
.status-bar{display:flex;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:10px 16px;width:100%;max-width:360px}
.status-dot{width:8px;height:8px;border-radius:50%;background:var(--teal-b);box-shadow:0 0 8px var(--teal-glow);flex-shrink:0;animation:pulse 2.4s ease-in-out infinite}
@keyframes pulse{0%,100%{opacity:1;box-shadow:0 0 8px var(--teal-glow)}50%{opacity:.6;box-shadow:0 0 16px var(--teal-glow)}}
.status-text{font-family:var(--mono);font-size:.75rem;color:var(--text2)}
.status-text span{color:var(--teal-b)}
.hero-mono{font-family:var(--mono);font-size:.78rem;font-weight:500;color:var(--teal-b);letter-spacing:.06em;text-transform:uppercase;margin-bottom:16px}
.hero-mono::before{content:'// ';color:var(--text3)}
.hero-h1{font-family:'Syne',sans-serif;font-size:clamp(3rem,6vw,5rem);font-weight:800;line-height:.95;letter-spacing:-.04em;color:var(--text);margin-bottom:24px}
.hero-h1 .name-teal{color:var(--teal-b)}
.hero-divider{width:48px;height:2px;background:linear-gradient(90deg,var(--teal-b),transparent);margin-bottom:20px}
.hero-role{font-size:.85rem;font-weight:400;color:var(--text2);margin-bottom:28px;line-height:1.7}
.hero-role strong{color:var(--text);font-weight:600}
.hero-tagline{font-size:1rem;color:var(--text2);line-height:1.75;margin-bottom:36px;font-weight:300;padding-left:16px;border-left:2px solid var(--border2)}
.hero-tagline em{color:var(--teal-b);font-style:normal;font-weight:500}
.hero-pills{display:flex;gap:10px;flex-wrap:wrap}
.pill{display:inline-flex;align-items:center;gap:7px;padding:9px 18px;border-radius:6px;border:1px solid var(--border2);font-size:.8rem;font-weight:600;letter-spacing:.03em;color:var(--text2);background:var(--surface);transition:all .18s}
.pill:hover{border-color:var(--teal);color:var(--teal-b);background:var(--teal-dim);transform:translateY(-2px);box-shadow:0 4px 20px var(--teal-glow)}

/* SECTIONS */
.section{position:relative;z-index:1;padding:96px 0}
.s-tag{font-family:var(--mono);font-size:.72rem;font-weight:500;color:var(--teal-b);letter-spacing:.1em;text-transform:uppercase;margin-bottom:12px}
.s-tag::before{content:'// ';color:var(--text3)}
.s-h{font-family:'Syne',sans-serif;font-size:clamp(2rem,4.5vw,3rem);font-weight:800;letter-spacing:-.04em;line-height:1.05;color:var(--text);margin-bottom:48px}
.s-h span{color:var(--teal-b)}
.bg-alt{background:var(--bg2)}

/* ABOUT */
.about-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:64px;align-items:start}
.bio{font-size:1.01rem;color:var(--text2);line-height:1.85;font-weight:300}
.bio p+p{margin-top:18px}
.bio strong{color:var(--text);font-weight:600}
.fact-stack{display:grid;gap:10px}
.fact{display:flex;align-items:center;gap:14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:14px 18px;transition:border-color .18s,transform .18s,box-shadow .18s}
.fact:hover{border-color:var(--teal);transform:translateX(4px);box-shadow:-3px 0 0 0 var(--teal),0 4px 20px var(--teal-dim)}
.fi{font-size:1.25rem;flex-shrink:0}
.fl{font-family:var(--mono);font-size:.67rem;font-weight:500;color:var(--text3);letter-spacing:.08em;text-transform:uppercase}
.fv{font-size:.9rem;font-weight:500;color:var(--text);margin-top:2px}

/* CAREER */
.career-stack{display:grid;gap:12px}
.cc{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:24px 28px;display:grid;grid-template-columns:1fr auto;gap:4px 24px;align-items:start;position:relative;overflow:hidden;transition:border-color .18s,transform .18s,box-shadow .18s}
.cc::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--teal-b)}
.cc:hover{border-color:var(--border2);transform:translateY(-2px);box-shadow:0 8px 32px rgba(0,0,0,.3)}
.ct{font-family:'Syne',sans-serif;font-size:1rem;font-weight:700;color:var(--text);letter-spacing:-.01em}
.cco{font-family:var(--mono);font-size:.78rem;font-weight:500;color:var(--teal-b);margin-top:4px}
.cd{font-size:.85rem;color:var(--text2);margin-top:8px;grid-column:1;line-height:1.65;font-weight:300}
.cp{font-family:var(--mono);font-size:.7rem;font-weight:500;background:var(--teal-dim);color:var(--teal-b);border:1px solid rgba(29,158,117,.2);border-radius:4px;padding:4px 10px;white-space:nowrap;align-self:start}

/* HOBBY OVERVIEW CARDS (main page) */
.hobby-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}
.hobby-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:28px;display:flex;flex-direction:column;gap:12px;position:relative;overflow:hidden;transition:border-color .18s,transform .22s,box-shadow .22s;text-decoration:none}
.hobby-card::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--teal-b) 0%,var(--teal-d) 60%,transparent 100%)}
.hobby-card:hover{border-color:var(--border2);transform:translateY(-4px);box-shadow:0 16px 48px rgba(0,0,0,.4)}
.hobby-card-icon{font-size:1.8rem}
.hobby-card-name{font-family:'Syne',sans-serif;font-size:1.15rem;font-weight:700;color:var(--text);letter-spacing:-.02em}
.hobby-card-desc{font-size:.86rem;color:var(--text2);line-height:1.65;flex:1;font-weight:300}
.hobby-card-cta{display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:.78rem;font-weight:500;color:var(--teal-b);letter-spacing:.03em;transition:gap .18s}
.hobby-card:hover .hobby-card-cta{gap:12px}

/* HOBBIES full content (shared between main & sub-pages) */
.hobby-list{display:grid;gap:48px}
.hobby-section{border:1px solid var(--border);border-radius:var(--r);background:var(--surface);overflow:hidden}
.hobby-header{display:grid;grid-template-columns:4px 1fr;align-items:stretch}
.hobby-accent{background:var(--teal-b)}
.hobby-header-inner{padding:28px 32px 24px}
.hobby-title-row{display:flex;align-items:center;gap:14px;margin-bottom:10px}
.hobby-icon{font-size:1.6rem}
.hobby-name{font-family:'Syne',sans-serif;font-size:1.3rem;font-weight:800;letter-spacing:-.02em;color:var(--text)}
.hobby-desc{font-size:.92rem;color:var(--text2);line-height:1.75;font-weight:300;max-width:680px}
.hobby-body{padding:0 32px 28px}
.hobby-divider{height:1px;background:var(--border);margin:0 32px 24px}
.content-label{font-family:var(--mono);font-size:.68rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--text3);margin-bottom:12px}
.content-label::before{content:'// ';color:var(--border2)}

/* YouTube cards */
.yt-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;margin-bottom:24px}
.yt-card{background:var(--bg3);border:1px solid var(--border);border-radius:8px;overflow:hidden;transition:transform .2s,box-shadow .2s,border-color .2s;display:block;cursor:pointer;position:relative}
.yt-card:hover{box-shadow:0 8px 28px rgba(0,0,0,.4);border-color:var(--teal)}
.yt-card:not(.yt-open):hover{transform:translateY(-3px)}
.yt-card.yt-open{grid-column:1/-1;border-color:var(--teal);box-shadow:0 12px 40px rgba(0,0,0,.5)}
.yt-grid.has-open .yt-card:not(.yt-open){display:none}
.yt-thumb{width:100%;aspect-ratio:16/9;background:var(--border);display:flex;align-items:center;justify-content:center;font-size:2rem;color:var(--text3);position:relative;overflow:hidden}
.yt-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .3s}
.yt-card:not(.yt-open):hover .yt-thumb img{transform:scale(1.04)}
.yt-play-btn{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.35);opacity:0;transition:opacity .2s;pointer-events:none}
.yt-play-icon{font-size:2.5rem;filter:drop-shadow(0 2px 8px rgba(0,0,0,.6))}
.yt-card:hover .yt-play-btn{opacity:1}
.yt-card.yt-open .yt-play-btn{display:none}
.yt-embed-wrap{display:none;width:100%;aspect-ratio:16/9;background:#000}
.yt-embed-wrap iframe{width:100%;height:100%;border:none;display:block}
.yt-card.yt-open .yt-thumb{display:none}
.yt-card.yt-open .yt-embed-wrap{display:block}
.yt-info{padding:12px 14px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.yt-title{font-size:.85rem;font-weight:600;color:var(--text);line-height:1.4;margin-bottom:4px}
.yt-meta{font-family:var(--mono);font-size:.68rem;color:var(--text3);letter-spacing:.03em}
.yt-close-btn{display:none;font-family:var(--mono);font-size:.68rem;color:var(--text3);background:var(--surface);border:1px solid var(--border);border-radius:4px;padding:4px 10px;cursor:pointer;letter-spacing:.04em;transition:all .15s;white-space:nowrap;flex-shrink:0}
.yt-close-btn:hover{border-color:var(--teal);color:var(--teal-b)}
.yt-card.yt-open .yt-close-btn{display:block}

/* Blog posts */
.blog-list{display:grid;gap:10px;margin-bottom:24px}
.blog-item{background:var(--bg3);border:1px solid var(--border);border-radius:8px;padding:16px 20px;display:flex;align-items:center;justify-content:space-between;gap:16px;transition:border-color .18s,transform .18s;text-decoration:none}
.blog-item:hover{border-color:var(--teal);transform:translateX(4px)}
.blog-item-title{font-size:.92rem;font-weight:600;color:var(--text);margin-bottom:3px}
.blog-item-date{font-family:var(--mono);font-size:.68rem;color:var(--text3);letter-spacing:.04em}
.blog-item-arrow{font-family:var(--mono);font-size:.8rem;color:var(--teal-b);flex-shrink:0;transition:transform .18s}
.blog-item:hover .blog-item-arrow{transform:translateX(4px)}

/* Links */
.links-row{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:8px}
.ext-link{display:inline-flex;align-items:center;gap:7px;padding:8px 16px;background:var(--bg3);border:1px solid var(--border);border-radius:6px;font-size:.82rem;font-weight:600;color:var(--text2);transition:all .18s;text-decoration:none;letter-spacing:.02em}
.ext-link:hover{border-color:var(--teal);color:var(--teal-b);background:var(--teal-dim);transform:translateY(-2px);box-shadow:0 4px 16px var(--teal-glow)}
.coming-soon{display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:.7rem;font-weight:500;color:var(--text3);background:var(--bg3);border:1px dashed var(--border2);border-radius:4px;padding:5px 12px;letter-spacing:.06em}

/* PROJECTS */
.pg{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}
.pc{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:28px;display:flex;flex-direction:column;gap:12px;position:relative;overflow:hidden;transition:border-color .18s,transform .22s,box-shadow .22s}
.pc::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--teal-b) 0%,var(--teal-d) 60%,transparent 100%)}
.pc:hover{border-color:var(--border2);transform:translateY(-4px);box-shadow:0 16px 48px rgba(0,0,0,.4)}
.pi{font-size:1.8rem}
.pt{font-family:'Syne',sans-serif;font-size:1.15rem;font-weight:700;color:var(--text);letter-spacing:-.02em}
.pd{font-size:.86rem;color:var(--text2);line-height:1.65;flex:1;font-weight:300}
.pcta{display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:.78rem;font-weight:500;color:var(--teal-b);background:none;border:none;cursor:pointer;letter-spacing:.03em;transition:gap .18s,color .18s;text-decoration:none}
.pcta:hover{gap:12px;color:var(--text)}
.arr{display:inline-block;transition:transform .18s}
.pcta:hover .arr{transform:translateX(4px)}

/* SPINNING WIDGET */
.spinning-widget{display:flex;align-items:center;gap:14px;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:10px 16px;width:100%;max-width:360px}
.album-art{flex-shrink:0;width:56px;height:56px;border-radius:6px;object-fit:cover;background:#333}
.spinning-info{min-width:0}
.spinning-label{font-family:var(--mono);font-size:.65rem;font-weight:500;color:var(--teal-b);letter-spacing:.08em;text-transform:uppercase;margin-bottom:3px}
.spinning-label::before{content:'// ';color:var(--text3)}
.spinning-title{font-size:.85rem;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.spinning-artist{font-family:var(--mono);font-size:.7rem;color:var(--text3);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* (soundcloud cards use .career-stack and .cc classes directly) */

/* GEAR GRID */
.gear-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px}

/* GALLERY */
#photography{background:var(--bg2)}
.gallery-intro{font-size:1rem;color:var(--text2);line-height:1.8;font-weight:300;max-width:680px;margin-bottom:20px}
.gallery-count{font-family:var(--mono);font-size:.72rem;color:var(--text3);margin-bottom:24px;letter-spacing:.04em}
.gallery-count em{color:var(--teal-b);font-style:normal}
.gallery-filter{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:32px}
.filter-btn{font-family:var(--mono);font-size:.7rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase;padding:6px 14px;border-radius:5px;border:1px solid var(--border);background:var(--surface);color:var(--text3);cursor:pointer;transition:all .15s}
.filter-btn:hover,.filter-btn.active{border-color:var(--teal);color:var(--teal-b);background:var(--teal-dim)}
.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.gallery-item{position:relative;overflow:hidden;border-radius:var(--r);border:1px solid var(--border);cursor:pointer;aspect-ratio:4/3;background:var(--surface);transition:transform .22s,box-shadow .22s,border-color .22s}
.gallery-item:hover{transform:translateY(-3px);box-shadow:0 12px 36px rgba(0,0,0,.5);border-color:var(--teal)}
.gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease}
.gallery-item:hover img{transform:scale(1.04)}
.g-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.75) 0%,transparent 55%);opacity:0;transition:opacity .22s;display:flex;align-items:flex-end;padding:16px}
.gallery-item:hover .g-overlay{opacity:1}
.g-location{font-family:var(--mono);font-size:.68rem;color:var(--teal-b);display:block;margin-bottom:2px;letter-spacing:.04em}
.g-caption{font-size:.8rem;color:#fff;line-height:1.4}
.gallery-placeholder{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--text3);font-size:2rem}
.gallery-placeholder span{font-family:var(--mono);font-size:.7rem;letter-spacing:.04em;color:var(--text3)}
.gallery-empty{grid-column:1/-1;text-align:center;font-family:var(--mono);font-size:.8rem;color:var(--text3);padding:48px 0;letter-spacing:.04em}

/* LIGHTBOX */
.lightbox{position:fixed;inset:0;z-index:900;background:rgba(0,0,0,.92);display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .25s;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.lightbox.open{opacity:1;pointer-events:all}
.lb-inner{position:relative;display:flex;flex-direction:column;align-items:center;gap:16px;max-width:90vw}
.lb-img{max-width:88vw;max-height:76vh;object-fit:contain;border-radius:var(--r);border:1px solid var(--border);display:block}
.lb-caption-text{font-size:.9rem;color:var(--text2);text-align:center}
.lb-loc{font-family:var(--mono);font-size:.72rem;color:var(--teal-b);margin-top:4px;letter-spacing:.04em;display:block;text-align:center}
.lb-counter{font-family:var(--mono);font-size:.68rem;color:var(--text3);margin-top:6px;letter-spacing:.04em;text-align:center}
.lb-close{position:absolute;top:-48px;right:0;font-family:var(--mono);font-size:.72rem;color:var(--text3);background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:5px 12px;cursor:pointer;transition:all .15s;letter-spacing:.04em}
.lb-close:hover{border-color:var(--teal);color:var(--teal-b)}
.lb-nav{position:absolute;top:40%;transform:translateY(-50%);font-family:var(--mono);font-size:.8rem;background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:10px 14px;cursor:pointer;color:var(--text2);transition:all .15s}
.lb-nav:hover{border-color:var(--teal);color:var(--teal-b)}
.lb-prev{left:-60px}.lb-next{right:-60px}

/* CONTACT */
#contact{position:relative;z-index:1;background:var(--bg3);padding:100px 0;border-top:1px solid var(--border);overflow:hidden}
#contact::before{content:'';position:absolute;bottom:-180px;left:50%;transform:translateX(-50%);width:600px;height:400px;background:radial-gradient(ellipse,rgba(29,158,117,.1) 0%,transparent 65%);pointer-events:none}
.contact-wrap{position:relative;z-index:1;text-align:center}
.c-mono{font-family:var(--mono);font-size:.72rem;font-weight:500;color:var(--teal-b);letter-spacing:.1em;text-transform:uppercase;margin-bottom:16px}
.c-mono::before{content:'// ';color:var(--text3)}
.c-h{font-family:'Syne',sans-serif;font-size:clamp(2.4rem,6vw,4rem);font-weight:800;letter-spacing:-.04em;color:var(--text);margin-bottom:14px}
.c-h span{color:var(--teal-b)}
.c-sub{font-size:.95rem;color:var(--text2);margin-bottom:40px;font-weight:300}
.c-btn{display:inline-flex;align-items:center;gap:10px;padding:14px 32px;border-radius:8px;background:var(--teal);color:#fff;font-family:'Inter',sans-serif;font-size:.88rem;font-weight:600;letter-spacing:.03em;border:1px solid var(--teal);text-decoration:none;transition:all .2s}
.c-btn:hover{background:var(--teal-b);border-color:var(--teal-b);transform:translateY(-2px);box-shadow:0 8px 28px var(--teal-glow);color:#fff}

/* PAGE HERO (hobby sub-pages) */
.page-hero{position:relative;z-index:1;padding:calc(var(--nav-h) + 72px) 0 64px}
.page-glow{position:absolute;top:0;right:5%;width:400px;height:400px;background:radial-gradient(circle,rgba(29,158,117,.11) 0%,transparent 65%);border-radius:50%;pointer-events:none}
.page-breadcrumb{font-family:var(--mono);font-size:.72rem;color:var(--text3);margin-bottom:32px;letter-spacing:.04em}
.page-breadcrumb a{color:var(--text3);text-decoration:none;transition:color .15s}
.page-breadcrumb a:hover{color:var(--teal-b)}
.page-breadcrumb .sep{margin:0 8px;opacity:.5}
.page-icon{font-size:2.8rem;margin-bottom:16px}
.page-h1{font-family:'Syne',sans-serif;font-size:clamp(2.8rem,6vw,4.5rem);font-weight:800;letter-spacing:-.04em;color:var(--text);margin-bottom:16px;line-height:1}
.page-h1 span{color:var(--teal-b)}
.page-desc{font-size:1rem;color:var(--text2);line-height:1.85;font-weight:300;max-width:640px;margin-bottom:28px}
.page-links-row{display:flex;flex-wrap:wrap;gap:10px}

/* PAGE HERO — background image variant */
.page-hero.has-bg{background-image:var(--hero-img);background-size:cover;background-position:center;background-repeat:no-repeat}
.page-hero.has-bg::after{content:'';position:absolute;inset:0;background:rgba(0,0,0,var(--hero-overlay,.55));z-index:0;pointer-events:none}
.page-hero.has-bg .page-glow{display:none}
.page-hero.has-bg .container{position:relative;z-index:1}
/* Force legible text over image regardless of theme */
.page-hero.has-bg .page-breadcrumb,
.page-hero.has-bg .page-breadcrumb a{color:rgba(255,255,255,.55)}
.page-hero.has-bg .page-breadcrumb a:hover{color:var(--teal-b)}
.page-hero.has-bg .page-h1{color:#fff}
.page-hero.has-bg .page-h1 span{color:var(--teal-b)}
.page-hero.has-bg .page-desc{color:rgba(255,255,255,.75)}

footer{position:relative;z-index:1;background:var(--bg);border-top:1px solid var(--border);padding:22px 28px;text-align:center;font-family:var(--mono);font-size:.72rem;color:var(--text3)}

/* BLOG — card grid */
.blog-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:24px;margin-top:32px}
.blog-card{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);border-radius:var(--r);overflow:hidden;text-decoration:none;color:var(--text);transition:transform .2s,box-shadow .2s,border-color .2s}
.blog-card:hover{transform:translateY(-4px);box-shadow:0 8px 32px rgba(0,0,0,.25);border-color:var(--border2)}
.blog-card-img{height:180px;overflow:hidden;background:var(--bg3)}
.blog-card-img img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.blog-card:hover .blog-card-img img{transform:scale(1.04)}
.blog-card-img--placeholder{background:linear-gradient(135deg,var(--bg2) 0%,var(--bg3) 100%)}
.blog-card-body{padding:20px;display:flex;flex-direction:column;gap:8px;flex:1}
.blog-card-tag{font-family:var(--mono);font-size:.68rem;color:var(--teal-b);text-transform:uppercase;letter-spacing:.05em}
.blog-card-title{font-family:'Syne',sans-serif;font-size:1.15rem;font-weight:700;line-height:1.3;color:var(--text)}
.blog-card-date{font-size:.75rem;color:var(--text3);font-family:var(--mono)}
.blog-card-summary{font-size:.875rem;color:var(--text2);line-height:1.65;flex:1}
.blog-card-read{font-size:.8rem;color:var(--teal-b);margin-top:8px}

/* BLOG — single post */
.post-wrap{max-width:720px}
.post-back{font-family:var(--mono);font-size:.75rem;color:var(--text3);text-decoration:none;display:inline-block;margin-bottom:24px;transition:color .15s}
.post-back:hover{color:var(--teal-b)}
.post-meta{display:flex;align-items:center;gap:12px;margin-bottom:20px;flex-wrap:wrap}
.post-date{font-family:var(--mono);font-size:.75rem;color:var(--text3)}
.post-title{font-family:'Syne',sans-serif;font-size:clamp(2rem,5vw,3rem);font-weight:800;letter-spacing:-.04em;line-height:1.1;color:var(--text);margin-bottom:40px}
.post-loading{font-family:var(--mono);font-size:.85rem;color:var(--text3);padding:40px 0}
.post-not-found{text-align:center;padding:80px 0;font-family:var(--mono);color:var(--text3)}
.post-content{color:var(--text);line-height:1.85;font-size:1rem}
.post-content h2,.post-content h3,.post-content h4{font-family:'Syne',sans-serif;font-weight:700;margin:2em 0 .6em;color:var(--text)}
.post-content h2{font-size:1.6rem;border-bottom:1px solid var(--border);padding-bottom:.4em}
.post-content h3{font-size:1.25rem}
.post-content h4{font-size:.95rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text2)}
.post-content p{margin:0 0 1.4em}
.post-content img{max-width:100%;border-radius:var(--r);margin:1.5em 0;border:1px solid var(--border)}
.post-content blockquote{border-left:3px solid var(--teal-b);margin:1.5em 0;padding:.6em 1.25em;color:var(--text2);font-style:italic;background:var(--teal-dim);border-radius:0 6px 6px 0}
.post-content code{font-family:var(--mono);font-size:.85em;background:var(--bg3);padding:.15em .4em;border-radius:4px;color:var(--teal-b)}
.post-content pre{background:var(--bg3);border:1px solid var(--border);border-radius:var(--r);padding:1.25em;overflow-x:auto;margin:1.5em 0}
.post-content pre code{background:none;padding:0;color:var(--text)}
.post-content ul,.post-content ol{padding-left:1.5em;margin:0 0 1.4em}
.post-content li{margin-bottom:.5em}
.post-content a{color:var(--teal-b);text-decoration:underline;text-underline-offset:3px}
.post-content hr{border:none;border-top:1px solid var(--border);margin:2.5em 0}
.post-content strong{color:var(--text);font-weight:600}

/* NAV MOBILE TOGGLE */
.nav-mobile-btn{display:none;flex-direction:column;justify-content:center;gap:5px;background:none;border:none;cursor:pointer;padding:8px;margin-left:8px;flex-shrink:0}
.nav-mobile-btn span{display:block;width:22px;height:2px;background:var(--text2);border-radius:2px;transition:transform .25s,opacity .25s}
.nav-mobile-btn.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-mobile-btn.open span:nth-child(2){opacity:0}
.nav-mobile-btn.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* RESPONSIVE */
@media(max-width:820px){
  .hero-layout{grid-template-columns:1fr;gap:40px;padding:48px 0 64px}
  .photo-frame,.status-bar{max-width:100%}
  .about-grid{grid-template-columns:1fr}
  .lb-prev{left:-40px}.lb-next{right:-40px}
  .nav-mobile-btn{display:flex}
  .nav-links{display:none;position:fixed;top:var(--nav-h);left:0;right:0;background:var(--bg);border-bottom:1px solid var(--border);flex-direction:column;padding:12px 16px 20px;gap:2px;z-index:499;box-shadow:0 8px 24px rgba(0,0,0,.2)}
  .nav-links.open{display:flex}
  .nav-links>li>a{padding:10px 13px;display:block}
  .nav-links .nav-dropdown-menu{position:static;display:flex;flex-direction:column;background:none;border:none;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;padding:0 0 4px 12px;margin-top:0;min-width:unset}
  .nav-links .nav-dropdown::after,.nav-links .nav-dropdown>a::after{display:none}
}
@media(max-width:520px){
  .section{padding:72px 0}
  .cc{grid-template-columns:1fr}
  .gallery-grid{grid-template-columns:repeat(2,1fr)}
  .lb-prev{left:-32px}.lb-next{right:-32px}
  .hobby-header-inner,.hobby-body{padding-left:20px;padding-right:20px}
  .hobby-divider{margin-left:20px;margin-right:20px}
}
