/* Personal portfolio refresh */
.portfolio-page {
  --folio-bg: #10100f;
  --folio-panel: #181816;
  --folio-line: rgba(239, 231, 214, .13);
  --folio-text: #eee9df;
  --folio-muted: #aaa69d;
  --folio-accent: #c3d176;
  background: var(--folio-bg);
  color: var(--folio-text);
  font-family: var(--font-body, Inter, sans-serif);
}
.portfolio-page h1,.portfolio-page h2,.portfolio-page h3 { font-family: var(--font-display, 'Space Grotesk', sans-serif); letter-spacing: -.045em; }
.portfolio-shell { width: min(1120px, calc(100% - 3rem)); margin: 0 auto; }
.portfolio-nav { background: rgba(16,16,15,.91); border-bottom: 1px solid var(--folio-line); backdrop-filter: blur(16px); }
.portfolio-nav .nav-brand-name { color: var(--folio-text); }
.portfolio-nav .nav-brand-rest { color: var(--folio-accent); }
.portfolio-nav .nav-links a { color: var(--folio-muted); }
.portfolio-nav .nav-links a:hover,.portfolio-nav .nav-links a.active { color: var(--folio-text); }
.portfolio-nav .nav-cta { display: none; }
.portfolio-page .hero-scene,.portfolio-page .hero::before { display:none; }
.portfolio-hero { min-height: 610px; display:flex; align-items:center; position:relative; overflow:hidden; border-bottom:1px solid var(--folio-line); }
.hero-inner { position:relative; padding: 7rem 0 6.25rem; z-index:1; }
.eyebrow { color:var(--folio-accent); font: .72rem/1.4 var(--font-mono, monospace); letter-spacing:.12em; text-transform:uppercase; }
.portfolio-hero h1 { max-width:900px; margin:1.3rem 0 1.5rem; font-size:clamp(3.5rem,9vw,7.8rem); line-height:.97; }
.portfolio-hero h1 span { color:#99958b; }
.hero-copy { color:var(--folio-muted); max-width:560px; font-size:1.13rem; line-height:1.8; }
.hero-actions { display:flex; align-items:center; gap:1.5rem; flex-wrap:wrap; margin-top:2.2rem; }
.portfolio-button { display:inline-flex; align-items:center; gap:1.1rem; padding:.9rem 1.15rem; color:#171812; background:var(--folio-accent); border-radius:3px; font-weight:700; text-decoration:none; transition:transform .2s, background .2s; }
.portfolio-button:hover { transform:translateY(-2px); background:#d4e28a; }
.text-link { display:inline-flex; gap:.5rem; align-items:center; color:var(--folio-text); text-decoration:none; border-bottom:1px solid var(--folio-accent); padding-bottom:.25rem; }
.text-link:hover { color:var(--folio-accent); }
.hero-mark { position:absolute; right:2%; bottom:3.5rem; display:flex; gap:.75rem; align-items:center; color:#77766e; font: .66rem var(--font-mono,monospace); letter-spacing:.1em; }
.hero-mark span { color:var(--folio-accent); font-size:1.8rem; }
.hero-orbit { position:absolute; width:560px;height:560px;right:-140px;top:30px;border:1px solid rgba(195,209,118,.1);border-radius:50%; box-shadow:inset 0 0 100px rgba(195,209,118,.025),0 0 100px rgba(195,209,118,.025); }
.hero-orbit::before,.hero-orbit::after { content:'';position:absolute;inset:55px;border:1px solid rgba(195,209,118,.08);border-radius:50%; }
.hero-orbit::after { inset:120px; }
.portfolio-section { padding:6.5rem 0; }
.section-heading { max-width:640px; margin-bottom:2.4rem; }
.section-heading h2,.music-details h2 { margin:.6rem 0 0; font-size:clamp(2rem,5vw,3.5rem); line-height:1.08; }
.work-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; }
.work-card { position:relative; min-height:290px; padding:1.4rem; display:flex; flex-direction:column; background:var(--folio-panel); border:1px solid var(--folio-line); color:var(--folio-text); text-decoration:none; transition:transform .2s,border-color .2s; }
.work-card:hover { transform:translateY(-4px); border-color:rgba(195,209,118,.6); }
.work-number { color:var(--folio-muted); font: .69rem var(--font-mono,monospace); letter-spacing:.1em; }
.work-symbol { position:absolute;right:1.25rem;top:1rem;color:var(--folio-accent);font-size:1.6rem; }
.work-card h3 { margin:auto 0 .7rem; font-size:1.8rem; }
.work-card p { color:var(--folio-muted); line-height:1.7; margin:0 0 1.5rem; }
.card-link { color:var(--folio-accent); font-size:.9rem; }
.work-card-music { background:linear-gradient(145deg,#221f1b,var(--folio-panel) 70%); }
.portfolio-note { border-block:1px solid var(--folio-line); background:#151512; }
.note-inner { min-height:130px; display:flex; align-items:center; gap:1.2rem; }
.note-star { color:var(--folio-accent); font-size:1.8rem; }
.note-inner p { color:var(--folio-muted); flex:1; }
.note-inner a { color:var(--folio-text); text-decoration:none; border-bottom:1px solid var(--folio-accent); padding-bottom:.25rem; }
.page-intro { padding:7rem 0 4rem; border-bottom:1px solid var(--folio-line); }
.page-intro h1 { margin:.7rem 0 1rem; font-size:clamp(3rem,8vw,6rem); line-height:1; }
.page-intro .portfolio-shell > p:last-child { max-width:600px; color:var(--folio-muted); font-size:1.1rem; line-height:1.75; }
.project-list { padding-top:3rem; }
.project-card { display:grid;grid-template-columns:1.1fr .9fr;gap:3rem;align-items:center;padding:3rem 0;border-bottom:1px solid var(--folio-line); }
.project-card-reverse .project-image { order:2; }
.project-image { display:block;overflow:hidden;background:#1b1b18;border:1px solid var(--folio-line); }
.project-image img { display:block;width:100%;aspect-ratio:1.75;object-fit:cover;transition:transform .35s; }
.project-image:hover img { transform:scale(1.025); }
.project-image-rupture img { object-position:left center; }
.project-copy h2 { margin:.7rem 0;font-size:clamp(2rem,4vw,3rem); }
.project-copy > p:not(.eyebrow):not(.project-stack) { color:var(--folio-muted);line-height:1.8; }
.project-stack { color:#858279;font: .75rem var(--font-mono,monospace);margin:1.5rem 0; }
.project-footnote { display:flex;align-items:center;gap:1rem;padding-top:2rem;color:var(--folio-muted); }
.project-footnote span { color:var(--folio-accent);font-size:1.6rem; }
.about-layout { padding-top:4rem; }
.about-grid { display:grid;grid-template-columns:.45fr 1fr;gap:4rem; }
.about-aside { min-height:170px;border-top:1px solid var(--folio-accent);padding-top:1rem;color:var(--folio-muted);font: .75rem/1.7 var(--font-mono,monospace); }
.about-aside span { display:block;color:var(--folio-accent);font-size:2rem;margin-bottom:1rem; }
.about-copy { max-width:700px; }
.about-copy p { color:var(--folio-muted);font-size:1.04rem;line-height:1.9; }
.about-copy .lead { color:var(--folio-text);font-size:1.45rem;line-height:1.55;margin-top:0; }
.about-links { display:flex;gap:1.5rem;flex-wrap:wrap;margin-top:2rem; }
.music-page-hero { position:relative;overflow:hidden;min-height:500px;display:flex;align-items:center;border-bottom:1px solid var(--folio-line);background:radial-gradient(ellipse at 78% 55%,rgba(98,58,70,.25),transparent 42%); }
.music-page-inner { position:relative;z-index:1;padding:6.5rem 0; }
.music-page-inner h1 { margin:.7rem 0;font-size:clamp(4rem,11vw,8rem);line-height:.95; }
.music-page-inner h1 span { color:var(--folio-accent); }
.music-page-inner > p:not(.eyebrow) { max-width:540px;color:var(--folio-muted);line-height:1.8;font-size:1.1rem;margin-bottom:2rem; }
.music-page-inner .text-link { margin-left:1.25rem; }
.music-note { position:absolute;right:12%;top:20%;font-size:clamp(12rem,35vw,28rem);line-height:1;color:rgba(195,209,118,.075);transform:rotate(-12deg); }
.music-details { display:grid;grid-template-columns:1fr 1fr;gap:4rem; }
.music-details > div:last-child { align-self:center;color:var(--folio-muted);line-height:1.9; }
.music-details .text-link { margin-top:1rem;color:var(--folio-text); }
.music-listen { border-bottom:1px solid var(--folio-line);background:linear-gradient(180deg,#131311,#10100f); }
.music-section-heading { display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;margin-bottom:2rem; }
.music-section-heading h2 { margin:.55rem 0 0;font-size:clamp(2rem,5vw,3.4rem);line-height:1.08; }
.music-section-heading > p { max-width:370px;margin:0 0 .25rem;color:var(--folio-muted);line-height:1.75; }
.music-player-layout { display:grid;grid-template-columns:minmax(0,1.05fr) minmax(330px,.95fr);gap:1rem;align-items:stretch; }
.music-player-card,.music-track-list { background:var(--folio-panel);border:1px solid var(--folio-line); }
.music-player-card { padding:1.2rem; }
.music-player-topline { display:flex;align-items:center;gap:.55rem;color:var(--folio-muted);font: .68rem var(--font-mono,monospace);letter-spacing:.08em;text-transform:uppercase; }
.music-live-dot { width:7px;height:7px;border-radius:50%;background:var(--folio-accent);box-shadow:0 0 12px rgba(195,209,118,.55); }
.music-player-topline a { margin-left:auto;color:var(--folio-muted);text-decoration:none;letter-spacing:0;text-transform:none; }
.music-player-topline a:hover { color:var(--folio-accent); }
.music-player-card h3 { margin:1.7rem 0 1rem;font-size:clamp(1.45rem,3vw,2rem);letter-spacing:-.035em; }
.music-embed-wrap { overflow:hidden;border:1px solid var(--folio-line);border-radius:4px;background:#111; }
.music-embed-wrap iframe { display:block;width:100%;height:180px;border:0; }
.music-player-note { margin:.8rem 0 0;color:#817e75;font-size:.75rem; }
.music-track-list { display:flex;flex-direction:column;padding:.45rem; }
.music-track { display:flex;align-items:center;gap:1rem;width:100%;min-height:76px;padding:.8rem 1rem;text-align:left;color:var(--folio-text);background:transparent;border:0;border-bottom:1px solid var(--folio-line);cursor:pointer;transition:background .18s,color .18s; }
.music-track:last-child { border-bottom:0; }
.music-track:hover,.music-track.is-active { background:rgba(195,209,118,.07); }
.music-track:focus-visible { outline:2px solid var(--folio-accent);outline-offset:-2px; }
.music-track-number { color:#77766e;font: .7rem var(--font-mono,monospace); }
.music-track-copy { display:flex;flex:1;min-width:0;flex-direction:column;gap:.35rem; }
.music-track-copy strong { overflow:hidden;font-size:.9rem;letter-spacing:.02em;text-overflow:ellipsis;white-space:nowrap; }
.music-track-copy small { color:var(--folio-muted);font-size:.76rem; }
.music-track-play { color:#817e75;font-size:.75rem;opacity:0;transform:translateX(-4px);transition:opacity .18s,transform .18s; }
.music-track:hover .music-track-play,.music-track.is-active .music-track-play { color:var(--folio-accent);opacity:1;transform:none; }
.music-about { padding-top:5.5rem; }
.portfolio-footer { padding:3rem 0;background:#0c0c0b;border-top:1px solid var(--folio-line); }
.footer-inner { display:flex;flex-direction:column;align-items:flex-start;gap:.8rem; }
.footer-wordmark { color:var(--folio-text);font:700 1.1rem var(--font-display,sans-serif);text-decoration:none; }
.footer-wordmark span {color:var(--folio-accent);}
.footer-inner p,.footer-inner small { color:var(--folio-muted);margin:0;font-size:.85rem; }
.footer-inner nav {display:flex;gap:1.2rem;flex-wrap:wrap;margin:.4rem 0;}
.footer-inner nav a {color:var(--folio-text);font-size:.85rem;text-decoration:none;}
.privacy-copy { max-width:760px; }
.privacy-copy h2 { margin:2.5rem 0 .75rem;font-size:1.4rem; }
.privacy-copy h2:first-child { margin-top:0; }
.privacy-copy p { color:var(--folio-muted);line-height:1.85;margin:.7rem 0; }
.privacy-copy a { color:var(--folio-accent); }
@media(max-width:760px) {
 .portfolio-shell { width:min(100% - 2rem,1120px); }
 .portfolio-hero { min-height:560px; }
 .hero-inner { padding:6rem 0 5rem; }
 .hero-orbit { width:390px;height:390px;right:-235px;top:100px; }
 .hero-mark { position:static;margin-top:4rem; }
 .work-grid { grid-template-columns:1fr; }
 .work-card { min-height:230px; }
 .note-inner { padding:1.5rem 0;align-items:flex-start;flex-wrap:wrap; }
 .note-inner p { flex-basis:calc(100% - 3rem); }
 .note-inner a { margin-left:3rem; }
 .project-card,.music-details,.about-grid { grid-template-columns:1fr;gap:1.5rem; }
 .project-card-reverse .project-image { order:0; }
 .project-card { padding:2rem 0; }
 .about-aside { min-height:0; }
 .page-intro { padding:5rem 0 3rem; }
 .music-page-inner .text-link { margin:1.5rem 0 0; }
 .music-section-heading { align-items:flex-start;flex-direction:column;gap:1rem; }
 .music-player-layout { grid-template-columns:1fr; }
 .music-player-card { padding:.9rem; }
 .music-embed-wrap iframe { height:170px; }
 .music-track { min-height:68px;padding:.75rem; }
}
