:root{--ink:#171717;--paper:#f2efe9;--muted:#77746e;--lime:#c7f36b;--line:#d4d0c8;--orange:#ff744d}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Manrope,Arial,sans-serif;overflow-x:hidden}.grain{position:fixed;inset:0;opacity:.035;pointer-events:none;z-index:10;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}.site-header{height:88px;display:flex;align-items:center;justify-content:space-between;padding:0 5vw;border-bottom:1px solid var(--line);position:relative;z-index:2}.brand{display:flex;align-items:center;gap:12px;color:var(--ink);text-decoration:none;font-weight:700}.brand span{display:grid;place-items:center;width:34px;height:34px;background:var(--ink);color:var(--lime);font:500 12px 'DM Mono';border-radius:50%}.brand em{font-style:normal;font-size:13px}.nav{display:flex;gap:36px;margin-left:15%}.nav a,.header-cta,footer a{color:var(--ink);text-decoration:none;font-size:12px}.nav a:hover,footer a:hover{color:#777}.header-cta{font-weight:700;border-bottom:1px solid var(--ink);padding-bottom:5px}.header-cta span,.button span{margin-left:18px}.menu-toggle{display:none;border:0;background:none;font-size:24px}.section-wrap{max-width:1280px;margin:auto;padding-left:5vw;padding-right:5vw}.hero{min-height:690px;display:grid;grid-template-columns:1fr 1fr;align-items:center;padding-top:65px;padding-bottom:85px}.eyebrow,.kicker,.project-type,.section-label,.skill-groups p,.muted,small{font:500 10px 'DM Mono';letter-spacing:.12em;text-transform:uppercase}.eyebrow{display:flex;align-items:center;gap:10px}.pulse{width:7px;height:7px;background:#82b527;border-radius:50%;box-shadow:0 0 0 4px #dceab9}.hero h1{font-size:clamp(58px,8vw,112px);line-height:.96;letter-spacing:-.08em;margin:26px 0 28px;font-weight:700}.hero h1 i,.section-heading i,.contact h2 i,h2 i{font-family:Georgia,serif;font-weight:400;color:#777;letter-spacing:-.06em}.hero-text{max-width:470px;line-height:1.8;color:#68655f;font-size:14px}.hero-actions{display:flex;gap:12px;margin:38px 0}.button{padding:16px 21px;text-decoration:none;font-size:12px;font-weight:700}.button-primary{background:var(--ink);color:var(--paper)}.button-quiet{color:var(--ink);border:1px solid var(--line)}.button:hover{transform:translateY(-3px)}.socials{display:flex;gap:25px}.socials a{color:var(--ink);font:500 10px 'DM Mono';text-transform:uppercase;text-decoration:none;border-bottom:1px solid var(--line);padding-bottom:5px}.hero-visual{height:530px;position:relative;display:grid;place-items:center}.portrait-frame{width:min(390px,70%);height:480px;overflow:hidden;position:relative;background:#dfddd7;transform:rotate(3deg);box-shadow:28px 28px 0 var(--lime)}.portrait-frame img{width:100%;height:100%;object-fit:cover;filter:grayscale(1);mix-blend-mode:multiply}.portrait-tag{position:absolute;bottom:15px;left:15px;background:var(--paper);padding:7px;font:500 10px 'DM Mono'}.vertical-note{position:absolute;right:0;top:25%;writing-mode:vertical-rl;font:500 9px 'DM Mono';letter-spacing:.15em;color:var(--muted)}.stat-card{position:absolute;bottom:40px;left:2%;background:var(--ink);color:var(--paper);padding:17px 20px;display:flex;align-items:end;gap:12px}.stat-card strong{color:var(--lime);font-size:25px}.stat-card span{font:10px 'DM Mono';line-height:1.4}.orb{position:absolute;border-radius:50%;filter:blur(1px)}.orb-one{width:180px;height:180px;background:var(--orange);top:7%;right:8%}.orb-two{width:45px;height:45px;background:var(--lime);bottom:16%;right:3%}.ticker{background:var(--lime);overflow:hidden;padding:16px 0;white-space:nowrap;font:500 11px 'DM Mono';letter-spacing:.1em}.ticker div{animation:scroll 28s linear infinite}.ticker b{padding:0 22px;font-size:14px}.section{padding-top:130px;padding-bottom:130px}.section-label{color:var(--muted);padding-bottom:20px;border-bottom:1px solid var(--line)}.about-grid,.skills-grid,.credential-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:14%;padding-top:60px}.about-title h2,.skills-grid h2,.credential-grid h2{font-size:clamp(36px,5vw,68px);line-height:1.03;letter-spacing:-.07em;margin:0}.about-body{max-width:530px}.about-body>p{line-height:1.9;color:#68655f;font-size:14px}.about-values{display:flex;gap:50px;border-top:1px solid var(--line);margin-top:38px;padding-top:20px}.about-values div{display:flex;gap:12px}.about-values b{font:10px 'DM Mono';color:#999}.about-values span{font-size:12px;font-weight:700}.timeline-card{margin-top:52px;display:grid;grid-template-columns:1fr 3fr 1fr;gap:30px;border-top:1px solid var(--ink);padding:28px 0}.timeline-date{font:11px 'DM Mono'}.timeline-card h3{margin:0 0 10px;font-size:21px}.timeline-card p{max-width:540px;color:var(--muted);font-size:13px;line-height:1.7}.grade{font-size:30px;text-align:right}.grade span{font-size:13px;color:var(--muted)}.grade small{display:block;margin-top:5px}.section-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:55px}.section-heading h2{font-size:clamp(38px,5vw,68px);line-height:.98;letter-spacing:-.07em;margin:0}.section-heading>p{color:var(--muted);font-size:13px;max-width:200px;line-height:1.6}.project-list{display:grid;gap:10px}.project-card{display:grid;grid-template-columns:120px 1fr 160px;min-height:245px;border-top:1px solid var(--line);padding:26px 0;transition:.3s}.project-card:hover{padding-left:15px;background:rgba(255,255,255,.18)}.featured{background:var(--ink);color:var(--paper);padding:32px 25px;border:0}.featured:hover{padding-left:40px}.project-index{font:10px 'DM Mono';color:#999}.project-type{color:#999;margin:0 0 20px}.project-card h3{font-size:36px;line-height:1.04;letter-spacing:-.06em;margin:0 0 16px}.project-card>div:nth-child(2)>p:not(.project-type){color:#a8a5a0;line-height:1.7;font-size:13px;max-width:460px}.tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:21px}.tags span{font:10px 'DM Mono';border:1px solid #3d3d3d;padding:7px 9px}.project-card:not(.featured) .tags span{border-color:var(--line)}.project-result{display:flex;flex-direction:column;align-items:end;justify-content:space-between}.project-result strong{font-size:31px;color:var(--lime)}.project-result span{font:10px 'DM Mono';color:#999;text-align:right}.project-result a,.arrow-link{color:inherit;font:10px 'DM Mono';text-decoration:none}.arrow-link{text-align:right;font-size:25px}.skills-section{background:#e8e5dd;max-width:none;padding-left:calc((100% - 1180px)/2);padding-right:calc((100% - 1180px)/2)}.skill-groups>div{border-top:1px solid var(--line);padding:20px 0;display:flex;flex-wrap:wrap;gap:8px}.skill-groups p{width:100%;margin:0 0 5px;color:var(--muted)}.skill-groups span{font-size:12px;background:var(--paper);padding:8px 11px}.credentials{background:var(--ink);color:var(--paper);max-width:none;padding-left:calc((100% - 1180px)/2);padding-right:calc((100% - 1180px)/2)}.credentials .section-label{color:#888;border-color:#333}.cert-list>div{display:grid;grid-template-columns:40px 1fr;align-items:center;border-bottom:1px solid #333;padding:17px 0}.cert-list span{font:10px 'DM Mono';color:var(--lime)}.cert-list p{margin:0;font-size:15px}.cert-list small{grid-column:2;color:#777;margin-top:6px}.contact{max-width:none;text-align:center;background:var(--lime);padding-top:150px;padding-bottom:120px}.contact h2{font-size:clamp(55px,9vw,120px);letter-spacing:-.09em;line-height:.9;margin:35px 0 45px}.email-link{font-size:clamp(17px,3vw,28px);color:var(--ink);text-decoration:none;border-bottom:2px solid var(--ink);padding-bottom:8px}.email-link span{margin-left:20px}.contact-meta{max-width:500px;margin:100px auto 0;display:flex;justify-content:space-between;font:10px 'DM Mono'}.contact-meta span{opacity:.7}footer{padding:28px 5vw;background:var(--paper);display:flex;justify-content:space-between}footer div{display:flex;gap:25px}.reveal{opacity:0;transform:translateY(25px);transition:opacity .8s ease,transform .8s ease}.reveal.visible{opacity:1;transform:none}@keyframes scroll{to{transform:translateX(-50%)}}@media(max-width:760px){.site-header{height:72px}.nav{display:none;position:absolute;top:72px;left:0;right:0;background:var(--paper);padding:25px 5vw;flex-direction:column;gap:20px;border-bottom:1px solid var(--line);margin:0}.nav.open{display:flex}.header-cta{display:none}.menu-toggle{display:block}.hero{grid-template-columns:1fr;padding-top:75px}.hero-visual{height:430px;margin-top:40px}.portrait-frame{height:390px}.hero h1{font-size:17vw}.section{padding-top:85px;padding-bottom:85px}.about-grid,.skills-grid,.credential-grid{grid-template-columns:1fr;gap:45px;padding-top:35px}.timeline-card{grid-template-columns:1fr;gap:13px}.grade{text-align:left}.section-heading{display:block}.section-heading>p{margin-top:25px}.project-card{grid-template-columns:45px 1fr;min-height:auto;padding:22px 0}.project-card .project-result,.arrow-link{grid-column:2;align-items:start;margin-top:25px}.project-card h3{font-size:29px}.featured{padding:24px 15px}.featured:hover{padding-left:20px}.skills-section,.credentials{padding-left:5vw;padding-right:5vw}.contact-meta{margin-top:70px;gap:12px;flex-direction:column}.about-values{gap:20px}.vertical-note{display:none}footer{gap:20px;flex-direction:column}footer div{gap:15px}}

/* Advanced interaction layer */
:root{
  --panel: rgba(242,239,233,.72);
  --panel-dark: rgba(23,23,23,.88);
  --shadow: 0 18px 60px rgba(0,0,0,.12);
}
body.dark{
  --paper:#101114;
  --ink:#f5f2ea;
  --muted:#b8b3aa;
  --line:#2a2d33;
  --panel: rgba(16,17,20,.72);
  background: radial-gradient(circle at top, #161922 0%, #101114 56%);
}
body.dark .skills-section{background:#151821}
body.dark .credentials{background:#0d0f13}
body.dark .contact{background:#b9da41}

.scroll-progress{position:fixed;left:0;top:0;height:3px;width:0;background:linear-gradient(90deg,var(--lime),var(--orange));z-index:30}
.cursor-dot,.cursor-ring{position:fixed;top:0;left:0;pointer-events:none;z-index:40;border-radius:50%;transform:translate(-50%,-50%);opacity:0;transition:opacity .25s ease,transform .18s ease}
.cursor-dot{width:8px;height:8px;background:var(--ink)}
.cursor-ring{width:34px;height:34px;border:1px solid rgba(23,23,23,.3)}
body:hover .cursor-dot,body:hover .cursor-ring{opacity:1}
.theme-toggle{border:1px solid var(--line);background:var(--panel);backdrop-filter:blur(14px);width:40px;height:40px;border-radius:999px;margin-left:12px}
.resume-link{display:inline-flex;align-items:center;gap:10px;padding:16px 21px;border:1px solid var(--line);text-decoration:none;color:var(--ink);font-size:12px;font-weight:700}
.project-filters{display:flex;gap:10px;flex-wrap:wrap;margin:-8px 0 30px}
.project-filters button{border:1px solid var(--line);background:transparent;color:var(--ink);padding:10px 14px;font:500 10px 'DM Mono';letter-spacing:.1em;text-transform:uppercase}
.project-filters button.active{background:var(--ink);color:var(--paper)}
.project-card.is-hidden{display:none}
.modal{position:fixed;inset:0;background:rgba(0,0,0,.42);backdrop-filter:blur(10px);display:none;align-items:center;justify-content:center;padding:24px;z-index:60}
.modal.open{display:flex}
.modal-card{width:min(760px,100%);background:var(--paper);color:var(--ink);padding:28px;border:1px solid var(--line);box-shadow:var(--shadow);position:relative}
.modal-close{position:absolute;right:18px;top:14px;border:0;background:none;font-size:34px;color:var(--muted)}
.modal-card h2{font-size:clamp(30px,5vw,54px);line-height:1;letter-spacing:-.07em;margin:8px 0 15px}
.modal-description{color:var(--muted);line-height:1.8}
.modal-stack{display:flex;gap:8px;flex-wrap:wrap;margin:20px 0 26px}
.modal-stack span{font:10px 'DM Mono';border:1px solid var(--line);padding:8px 10px}
.modal-card .button{display:inline-flex}
.nav a.active{font-weight:800}
