@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,400;0,500;1,400;1,500&display=swap');
:root{--bg:#121211;--panel:#1b1b19;--line:#34332f;--gold:#e9d0a1;--white:#f5f3ef;--muted:#a5a39f;--mono:'DM Mono',monospace;--serif:'Playfair Display',Georgia,serif;--sans:'DM Sans',Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--white);font-family:var(--sans)}a{color:inherit;text-decoration:none}button{font:inherit}.skip{position:absolute;top:-60px;left:12px;background:var(--gold);color:#111;padding:12px;z-index:20}.skip:focus{top:12px}.site-header{height:81px;display:flex;align-items:center;justify-content:space-between;padding:0 6%;border-bottom:1px solid var(--line);gap:24px}.brand{font:28px var(--serif);white-space:nowrap}.brand span,.gold-text{color:var(--gold)}nav{display:flex;gap:36px}nav a,.header-cv,.eyebrow,.hero-tag,.button,.scroll-cue,.social,.section-label,.tags,.project-body>a,.project-status,.visual-footer,.photo-top,.side-note,footer>a:last-child{font-family:var(--mono);letter-spacing:.08em}nav a{font-size:12px;color:#bcbab7}nav a:hover,.social a:hover{color:var(--gold)}.button{display:inline-flex;justify-content:center;align-items:center;gap:28px;padding:20px 29px;font-size:12px;border:1px solid var(--gold);transition:background .2s,color .2s}.button:hover{transform:translateY(-2px)}.gold{background:var(--gold);color:#171511}.gold:hover{background:#ffe3b2}.outline{color:var(--gold)}.outline:hover{background:#e9d0a113}.header-cv{padding:18px 25px}.menu-toggle{display:none}.hero{display:grid;grid-template-columns:1fr 1.05fr;min-height:800px;border-bottom:1px solid var(--line)}.hero-copy{padding:78px 7% 40px 12%;display:flex;flex-direction:column;align-items:flex-start}.eyebrow{font-size:11px;color:var(--muted);white-space:nowrap;display:flex;align-items:center;gap:15px}.dash{width:35px;height:1px;background:var(--gold)}h1,h2,h3,p{margin-top:0}h1{font:clamp(75px,8vw,140px)/.99 var(--serif);letter-spacing:-.055em;margin:50px 0 30px}h1 em,h2 em{color:var(--gold);font-weight:400}.hero-tag{font-size:clamp(15px,1.5vw,22px);line-height:1.65;letter-spacing:.19em;color:#c8c5c4}.hero-desc{max-width:540px;font-size:17px;line-height:1.85;color:#c5c3c0;margin:24px 0 36px}.actions{display:flex;gap:16px;flex-wrap:wrap}.scroll-cue{font-size:11px;color:var(--muted);margin-top:auto;padding-top:55px}.social{display:flex;gap:24px;margin-top:50px;font-size:11px;color:#bbb}.hero-visual{min-width:0;display:flex;flex-direction:column;border-left:1px solid var(--line);background:#181817}.photo{height:48%;min-height:350px;background:linear-gradient(180deg,#161615 0%,transparent 40%),url('../assets/images/hero-workspace.webp') center 62%/cover no-repeat;border-bottom:1px solid var(--line)}.photo-top{display:flex;justify-content:space-between;padding:45px 7%;color:#c6c3c0;font-size:12px;line-height:1.6}.code-area{flex:1;min-height:325px;display:grid;grid-template-columns:1fr 62px;align-items:center;gap:20px;padding:25px 3% 25px 6%;background-image:linear-gradient(to right,transparent 49.9%,#ffffff0a 50%,transparent 50.1%)}.code-window{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#141413;min-width:0}.code-head{display:flex;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--line);color:var(--muted);font:11px var(--mono)}.dots{display:flex;gap:8px}.dots i{height:11px;width:11px;border-radius:50%;background:#ff7875}.dots i:nth-child(2){background:#ffdb68}.dots i:nth-child(3){background:#4cc66a}pre{overflow:auto;padding:15px 20px 25px;margin:0;font:clamp(10px,.9vw,13px)/1.9 var(--mono);color:#d4d0cc}.muted{color:#777}.orange{color:#edb68d}.purple{color:#d9b0ef}.green{color:#8ac8a7}.side-note{font:11px/2 var(--mono);color:#bdb9b4}.side-note span{color:var(--gold)}.visual-footer{border-top:1px solid var(--line);display:flex;justify-content:space-around;gap:15px;padding:23px;font-size:10px;color:var(--muted)}.visual-footer em{font:italic 14px var(--serif);color:#d5d0c9}.section{padding:110px 8%;border-bottom:1px solid var(--line);scroll-margin-top:20px}.section-label{font-size:11px;color:var(--gold);margin-bottom:32px}.about,.skills,.education,.contact{display:grid;grid-template-columns:30% 1fr;gap:40px}.section h2{font:clamp(43px,5vw,76px)/1.16 var(--serif);letter-spacing:-.035em;margin-bottom:36px}.section p{color:#b9b6b1;font-size:17px;line-height:1.85;max-width:740px}.section-intro{display:flex;justify-content:space-between;align-items:end;gap:25px;margin-bottom:42px}.section-intro h2{margin:0}.section-intro p{font-size:14px}.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.project-card{border:1px solid var(--line);background:#191918;overflow:hidden;transition:border-color .2s,transform .2s}.project-card:hover{border-color:#9d835e;transform:translateY(-4px)}.project-art{height:250px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;border-bottom:1px solid var(--line);font:60px/1 var(--serif);text-align:center}.project-art small{font:11px var(--mono);letter-spacing:.22em}.art-rivet{background:radial-gradient(circle at 50% 20%,#4a4436,#171716 70%);color:var(--gold)}.art-notes{background:radial-gradient(circle at 50% 30%,#304139,#151b18 70%)}.art-study{background:radial-gradient(circle at 50% 30%,#33374c,#171820 70%)}.art-speed{background:radial-gradient(circle at 50% 30%,#513b32,#1d1816 70%);font-style:italic}.project-body{padding:28px}.project-top{display:flex;justify-content:space-between;gap:15px}.project-top h3{font:27px var(--serif)}.project-top>span{color:var(--gold);font:12px var(--mono)}.project-body p{font-size:14px;line-height:1.75;min-height:70px}.tags{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0 28px}.tags span{border:1px solid #47443d;padding:7px 10px;color:#c6c2bb;font-size:10px}.project-body>a,.project-status{font-size:11px;color:var(--gold)}.skill-list>div,.education-item{border-top:1px solid var(--line);padding:25px 0;display:flex;justify-content:space-between;gap:25px}.skill-list h3,.education-item h3{font:24px var(--serif);margin:0}.skill-list p,.education-item p{font-size:14px;margin:0}.education-item>span{color:var(--gold);font:11px var(--mono);min-width:90px}.education-item>div{flex:1}.education-item p{margin-top:8px}.cv{display:flex;justify-content:space-between;align-items:center;gap:30px}.disabled-cv{opacity:.65;cursor:not-allowed;white-space:nowrap}.contact .button{margin-top:25px}footer{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:35px 6%;color:var(--muted);font-size:12px}footer .brand{font-size:22px;color:var(--white)}footer>a:last-child{font-size:10px}@media(max-width:1150px){.site-header{padding:0 4%}nav{gap:16px}.hero-copy{padding-left:7%}h1{font-size:clamp(65px,7.7vw,110px)}.eyebrow{white-space:normal}.photo{min-height:310px}}@media(max-width:800px){.site-header{height:72px;position:relative;padding:0 5%}.brand{font-size:23px}.menu-toggle{display:block;margin-left:auto;background:none;border:1px solid var(--line);color:var(--white);padding:8px 12px;cursor:pointer}.site-header nav{display:none;position:absolute;top:71px;left:0;right:0;background:#171716;z-index:10;flex-direction:column;padding:25px 6%;border-bottom:1px solid var(--line)}.site-header nav.open{display:flex}.header-cv{display:none}.hero{grid-template-columns:1fr}.hero-copy{min-height:680px;padding:65px 7% 35px}.hero-visual{border-left:0;border-top:1px solid var(--line)}.photo{height:350px}.code-area{min-height:320px}.section{padding:75px 7%}.about,.skills,.education,.contact{grid-template-columns:1fr;gap:0}.project-grid{grid-template-columns:1fr}.section-intro{display:block}.section-intro p{margin-top:20px}.cv{align-items:flex-start;flex-direction:column}footer{flex-wrap:wrap}}@media(max-width:450px){h1{font-size:clamp(65px,16vw,85px)}.hero-copy{min-height:650px}.hero-tag{font-size:13px}.hero-desc{font-size:15px}.button{padding:16px 19px;gap:14px}.photo{min-height:250px;height:260px}.photo-top{padding:25px 5%;font-size:9px}.code-area{grid-template-columns:minmax(0,1fr);padding:20px 5%}.side-note{display:none}pre{font-size:10px;padding:12px}.visual-footer{flex-direction:column}.project-art{height:190px}.skill-list>div{display:block}.skill-list p{margin-top:12px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}

/* Featured projects: genuine application screenshots and brand assets */
.project-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}.project-card{display:flex;flex-direction:column;min-width:0}.project-media{height:280px;overflow:hidden;background:#242321;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:center}.project-shot{display:block;width:100%;height:100%;object-fit:contain;object-position:center;transition:transform .35s ease}.project-card:hover .project-shot{transform:scale(1.025)}.project-body{display:flex;flex:1;flex-direction:column}.project-heading{display:flex;align-items:center;gap:16px;margin-bottom:18px}.project-logo{width:66px;height:66px;object-fit:contain;background:#fff;border-radius:12px;flex-shrink:0}.project-heading h3{margin:8px 0 0;font:27px var(--serif)}.project-body .tags{margin-top:auto;padding-top:8px}.project-footnote{margin-top:30px;font-size:13px!important;color:var(--muted)!important}@media(max-width:800px){.project-grid{grid-template-columns:1fr}.project-media{height:clamp(180px,47vw,310px)}}@media(max-width:450px){.project-heading h3{font-size:23px}.project-logo{width:55px;height:55px}}

/* RIVET administrative companion: text-only, no private screenshots or login link */
.manager-note{margin-top:2rem;padding:clamp(1.5rem,4vw,3rem);border:1px solid rgba(220,191,143,.35);background:linear-gradient(110deg,#1b1a18,#111110);display:flex;align-items:center;justify-content:space-between;gap:2rem}
.manager-note h3{font-family:Georgia,serif;font-size:clamp(1.5rem,3vw,2.2rem);font-weight:400;margin:.65rem 0}
.manager-note p{color:#b9b6b0;max-width:66ch;line-height:1.7;margin:0}
.manager-symbol{font-family:monospace;font-size:clamp(2rem,6vw,4rem);color:#d9bd8b;white-space:nowrap}
@media(max-width:600px){.manager-note{align-items:flex-start}.manager-symbol{display:none}}

.certificate-link{display:inline-block;margin-top:12px;color:#e9c98e;text-decoration:underline;text-underline-offset:5px}.certificate-link:hover,.certificate-link:focus-visible{color:#fff}

/* Public contact links */
.project-links{display:flex;flex-wrap:wrap;gap:16px 24px}.project-links a{font:11px var(--mono);letter-spacing:.08em;color:var(--gold)}.project-links a:hover{color:var(--white)}.project-links a:focus-visible{outline:2px solid var(--gold);outline-offset:5px}
.contact-links{display:flex;flex-direction:column;align-items:flex-start;gap:14px;margin:22px 0 5px}.contact-links a{color:var(--gold);overflow-wrap:anywhere;text-decoration:underline;text-underline-offset:5px}.contact-links a:hover{color:var(--white)}
