@import "https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@500;600&family=Inter:wght@400;500;600;700&display=swap";@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap";:root{--bg:#121212;--text:#f2ede3;--muted:#b8b1a5;--accent:#d8c29a;--line:#ffffff1a;--container:min(1180px, calc(100% - 64px));--serif:"Cormorant Garamond", Georgia, serif;--sans:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:radial-gradient(circle at 1px 1px, #ffffff09 1px, transparent 0) 0 0 / 22px 22px, linear-gradient(100deg, var(--bg), #181817 58%, #111110);color:var(--text);font-family:var(--sans);margin:0;line-height:1.55}body:before{content:"";z-index:2;pointer-events:none;opacity:.3;background-image:linear-gradient(#ffffff05 1px,#0000 1px),linear-gradient(90deg,#ffffff04 1px,#0000 1px);background-size:5px 5px;position:fixed;inset:0}img{max-width:100%;display:block}a{color:inherit}button,input,textarea{font:inherit}.container,.site-nav{width:var(--container);margin-inline:auto}.site-header{z-index:20;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#121212ad;border-bottom:1px solid #ffffff0a;position:fixed;inset:0 0 auto}.site-nav{justify-content:space-between;align-items:center;gap:32px;min-height:80px;display:flex}.site-logo{color:var(--text);align-items:center;text-decoration:none;display:inline-flex}.logo-mark{filter:invert(94%)sepia(10%)saturate(357%)hue-rotate(354deg)brightness(102%)contrast(92%);width:58px;height:auto;display:block}.site-menu{align-items:center;gap:clamp(18px,3.2vw,42px);display:flex}.site-menu a{color:var(--text);font-size:.86rem;font-weight:600;text-decoration:none;transition:color .25s;position:relative}.site-menu a:after{content:"";background:var(--accent);height:1px;transition:transform .25s;position:absolute;bottom:-11px;left:0;right:0;transform:scaleX(0)}.site-menu a:hover,.site-menu a.active{color:#fffaf0}.site-menu a.active:after{transform:scaleX(1)}.menu-toggle{color:var(--text);background:0 0;border:0;display:none}.intro-screen{z-index:100;text-align:center;isolation:isolate;will-change:opacity;background:#030303;align-content:center;place-items:center;gap:22px;animation:1.6s 4.6s forwards intro-out;display:grid;position:fixed;inset:0;transform:translateZ(0)}.intro-screen .intro-logo{opacity:0;filter:invert(94%)sepia(10%)saturate(357%)hue-rotate(354deg)brightness(102%)contrast(92%);backface-visibility:hidden;transform-origin:50%;will-change:opacity, transform;width:300px;animation:1.2s ease-out forwards intro-logo-in}.intro-screen p{border-right:1px solid var(--accent);min-height:1.6em;color:var(--text);letter-spacing:.04em;white-space:nowrap;margin:0;font-size:clamp(1rem,2vw,1.25rem);animation:.75s step-end 4s infinite caret;display:inline-block}.hosting-notice{z-index:60;width:min(680px,100vw - 40px);color:var(--text);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#0f0f0ff5;border:1px solid #d8c29a52;border-radius:4px;padding:18px 22px 18px 26px;animation:5s both notice-life;position:fixed;bottom:28px;left:50%;box-shadow:0 20px 54px #0000006b}.hosting-notice:before{background:var(--accent);content:"";width:2px;position:absolute;top:14px;bottom:14px;left:0}.hosting-notice p{margin:0;font-size:.9rem;line-height:1.55}.hosting-notice p+p{color:var(--muted);border-top:1px solid #d8c29a29;margin-top:10px;padding-top:10px;font-size:.82rem}@keyframes notice-life{0%{opacity:0;transform:translate(-50%,14px)scale(.98)}8%,90%{opacity:1;transform:translate(-50%)scale(1)}to{opacity:0;transform:translate(-50%,6px)scale(.99)}}@keyframes intro-logo-in{0%{opacity:0;transform:translateY(10px)scale(.96)}to{opacity:1;transform:translate(0,0)scale(1)}}@keyframes intro-out{to{opacity:0;visibility:hidden}}.hero,.section,.site-footer{position:relative;overflow:hidden}.hero{border-bottom:1px solid var(--line);min-height:100dvh;padding:80px 0 0}.hero:before,.contact:after{content:"";filter:blur(2px);background:#d8c29a1c;border-radius:50%;width:520px;height:300px;position:absolute;transform:rotate(-18deg)}.hero:before{bottom:-90px;right:-120px}.hero:after{content:"";background:#d8c29a17;border-radius:45% 55% 65% 35%;width:360px;height:420px;position:absolute;top:-180px;left:43%;transform:rotate(28deg)}.hero-grid{z-index:1;grid-template-columns:.55fr .45fr;align-items:center;gap:34px;min-height:calc(100dvh - 80px);display:grid;position:relative}.eyebrow{color:var(--muted);letter-spacing:.25em;text-transform:uppercase;margin:0 0 18px;font-size:.72rem;font-weight:500}h1,h2,h3,h6{margin:0}.hero h1,.section h2{color:var(--text);font-family:var(--serif);letter-spacing:0;font-weight:600}.hero h1{max-width:720px;font-size:clamp(4.6rem,6.6vw,6.25rem);line-height:1}.typewriter{border-right:1px solid var(--accent);min-height:1.9rem;color:var(--accent);font-family:var(--sans);letter-spacing:.02em;white-space:nowrap;margin-top:12px;font-size:clamp(1.2rem,1.7vw,1.55rem);font-weight:500;line-height:1.2;animation:.75s step-end infinite caret;display:inline-block}@keyframes caret{50%{border-color:#0000}}.hero-text{max-width:590px;color:var(--text);margin:18px 0 0;font-size:1.08rem;line-height:1.55}.hero-actions{gap:16px;margin-top:30px;display:flex}.btn,.contact-form button{will-change:transform;border-radius:999px;justify-content:center;align-items:center;min-width:148px;min-height:44px;font-size:.9rem;font-weight:700;text-decoration:none;transition:transform .25s,border-color .25s,background .25s;display:inline-flex}.btn:hover,.contact-form button:hover{transform:translateY(-2px)}.btn-primary,.contact-form button{color:#141313;background:linear-gradient(#ead7b7,#d8c29a);border:1px solid #ead7b7}.btn-outline{color:var(--text);background:0 0;border:1px solid #f2ede3e0}.btn-outline:hover{border-color:var(--accent)}.side-note{color:var(--muted);letter-spacing:.34em;font-size:.66rem;line-height:1.75;position:absolute}.side-note-left{border-left:1px solid var(--muted);padding-left:24px;bottom:68px;left:0}.side-note-right{text-align:right;border-right:1px solid var(--muted);padding-right:24px;bottom:42px;right:0}.hero-portrait-wrap{justify-content:center;align-self:stretch;align-items:flex-end;display:flex;position:relative}.hero-portrait-wrap:before{content:"";background:radial-gradient(circle at 75% 18%,#d8c29a38,#0000 24%),linear-gradient(130deg,#d8c29a14,#ffffff05);border-radius:45% 55% 0 0;position:absolute;inset:90px -42px 12px 18px}.hero-portrait{z-index:1;object-fit:contain;object-position:center bottom;filter:saturate(.9)contrast(1.04)drop-shadow(0 0 34px #d8c29a21);width:min(504px,41.4vw);max-height:690px;position:relative}.section{border-bottom:1px solid var(--line);background:#1212127a;padding:116px 0;scroll-margin-top:80px}.section h2{font-size:clamp(3.2rem,5vw,4.6rem);line-height:.95}.about-grid{grid-template-columns:.65fr .35fr;align-items:center;gap:80px;display:grid}.about-copy{max-width:560px;color:var(--text);margin:16px 0 24px;font-size:1.05rem}.about-actions{flex-wrap:wrap;align-items:center;gap:18px;display:flex}.social-links{align-items:center;gap:16px;display:flex}.social-links a{color:var(--text);place-items:center;text-decoration:none;transition:color .25s,transform .25s;display:grid}.social-links a:hover{color:var(--accent);transform:translateY(-2px)}.social-links i{place-items:center;width:18px;height:18px;font-size:18px;line-height:1;display:grid}.traits{border-left:1px solid var(--muted);color:var(--muted);letter-spacing:.35em;gap:12px;padding-left:64px;font-size:.95rem;display:grid}.split-heading,.projects-heading,.contact-grid,.footer-grid{align-items:end;gap:40px;display:grid}.split-heading{grid-template-columns:.58fr .42fr;margin-bottom:30px}.split-heading>p{max-width:520px;color:var(--text);margin:0 0 8px}.skills-grid{grid-template-columns:repeat(4,1fr);gap:18px;display:grid}.skill-card{border:1px solid var(--line);will-change:transform;background:#ffffff05;border-radius:6px;grid-template-columns:58px 1fr;align-items:center;gap:18px;min-height:104px;padding:22px 24px;transition:transform .25s,border-color .25s,background .25s;display:grid}.skill-card:hover{background:#ffffff09;border-color:#d8c29a8c;transform:translateY(-4px)}.skill-card svg{color:#ead7b7}.skill-card h3,.project-body h3{color:var(--text);font-size:1rem;font-weight:700}.skill-card p,.project-body p,.contact p,.footer-brand span{color:var(--muted);font-size:.9rem}.skill-card p{margin:6px 0 0;line-height:1.45}.projects-heading{grid-template-columns:1fr auto;margin-bottom:28px}.projects-heading a{color:var(--text);margin-bottom:14px;font-size:.92rem;font-weight:700;text-decoration:none}.projects-grid{grid-template-columns:repeat(3,1fr);gap:30px;display:grid}.project-card{border-radius:0}.project-preview{aspect-ratio:16/10;color:inherit;background:#1c1c1b;display:block;position:relative;overflow:hidden}.project-preview:after{content:"";background:0 0;transition:background .3s;position:absolute;inset:0}.project-card:hover .project-preview:after{background:#00000040}.project-card:hover .project-preview img{transform:scale(1.035)}.project-preview img{object-fit:cover;will-change:transform;width:100%;height:100%;transition:transform .35s}.project-body{padding:16px 0 0}.project-body h3{font-family:var(--serif);font-size:1.45rem;font-weight:600}.project-body p{max-width:330px;margin:4px 0 0}.contact{padding-bottom:90px}.contact:after{bottom:-130px;right:-120px}.contact-grid{grid-template-columns:.52fr .48fr}.contact h2{max-width:560px}.contact p{max-width:470px;color:var(--text);margin:20px 0 0}.contact-form{grid-template-columns:1fr 1fr;gap:12px;display:grid}.contact-form label{display:grid}.contact-form label:nth-child(3),.contact-form button,.form-status{grid-column:1/-1}.contact-honeypot{position:absolute;left:-9999px}.contact-form label span{width:1px;height:1px;position:absolute;overflow:hidden}.contact-form input,.contact-form textarea{width:100%;color:var(--text);resize:vertical;background:0 0;border:1px solid #b8b1a573;border-radius:6px;outline:none;padding:14px 18px}.contact-form input::placeholder,.contact-form textarea::placeholder{color:#b8b1a5cc}.contact-form input:focus,.contact-form textarea:focus{border-color:var(--accent)}.contact-form button{cursor:pointer;border:1px solid #ead7b7;width:fit-content;min-width:164px}.form-status{color:var(--accent);margin:0;font-size:.9rem}.site-footer{border-top:1px solid var(--line);background:#121212;padding:32px 0}.footer-grid{grid-template-columns:minmax(0,1fr) 96px minmax(0,1fr);align-items:center;gap:32px}.footer-brand{align-items:center;gap:24px;display:flex}.footer-brand .logo-mark{width:56px}.footer-brand p{color:var(--text);margin:0;font-size:.92rem;font-weight:700}.footer-brand span{display:block}.footer-contact{text-align:right;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px 18px;display:flex}.footer-contact a,.footer-contact span{color:var(--muted);font-size:.9rem;text-decoration:none}.footer-contact a:hover{color:var(--accent)}.footer-links{justify-content:flex-end;align-items:center;gap:8px;width:100%;display:flex}.footer-qr{justify-self:center;width:96px;margin:0}.footer-qr img{aspect-ratio:1;width:100%;image-rendering:pixelated;display:block}@media (width<=980px){:root{--container:min(100% - 40px, 1180px)}.hero{min-height:100dvh;padding-bottom:0}.hero-grid,.about-grid,.split-heading,.contact-grid{grid-template-columns:1fr}.hero-grid{gap:40px;padding-top:0}.hero h1{font-size:clamp(3.2rem,12vw,4rem)}.typewriter{font-size:clamp(1rem,5vw,1.25rem)}.hero-portrait{width:min(504px,82.8vw)}.side-note-left,.side-note-right{width:fit-content;margin-top:36px;position:static}.side-note-right{margin-left:auto}.traits{border-left:0;border-top:1px solid var(--muted);padding:28px 0 0}.skills-grid{grid-template-columns:repeat(2,1fr)}.projects-grid{grid-template-columns:1fr}}@media (width<=760px){:root{--container:min(100% - 28px, 1180px)}.site-nav{min-height:72px}.hosting-notice{width:calc(100vw - 28px);bottom:16px}.intro-screen .intro-logo{width:min(260px,76vw)}.hero{padding-top:72px}.hero-grid{min-height:calc(100dvh - 72px)}.menu-toggle{place-items:center;display:grid}.site-menu{border:1px solid var(--line);background:#121212f5;padding:18px;display:none;position:absolute;top:72px;left:14px;right:14px}.site-menu.is-open{gap:18px;display:grid}.nav-cv-button{width:fit-content}.hero-copy{padding-top:20px}.hero-actions{flex-direction:column;align-items:stretch}.btn,.contact-form button{width:100%}.section{padding:82px 0}.skills-grid,.contact-form{grid-template-columns:1fr}.skill-card{grid-template-columns:52px 1fr}}@media (width<=560px){.footer-grid{grid-template-columns:72px minmax(0,1fr);gap:20px 18px}.footer-brand{grid-column:2}.footer-brand .logo-mark{display:none}.footer-qr{grid-area:1/1;width:72px}.footer-contact{border-top:1px solid var(--line);text-align:left;grid-column:1/-1;justify-content:flex-start;padding-top:20px}.footer-links{justify-content:flex-start}}@media (prefers-reduced-motion:reduce){.intro-screen,.intro-screen .intro-logo,.intro-screen p{animation-duration:.01ms}.hosting-notice{animation:none;transform:translate(-50%)}.typewriter{animation:none}}:root{--cv-paper:#fdfbf7;--cv-ink:#24282d;--cv-muted:#5f646b;--cv-gold:#8c642f;--cv-gold-line:#c4aa80;--cv-rule:#d9c9ae;--cv-sidebar:70mm;--cv-pad-y:12mm}.page-wrap{min-height:100vh;color:var(--cv-ink);background:#ece9e3;place-items:start center;padding:102px 22px 22px;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;display:grid}.cv-sheet{grid-template-columns:var(--cv-sidebar) 1fr;background:var(--cv-paper);width:210mm;height:297mm;display:grid;overflow:hidden;box-shadow:0 18px 46px #26211a38}.cv-sheet .sidebar{padding:var(--cv-pad-y) 7mm var(--cv-pad-y) 10mm}.cv-sheet .main-column{border-left:1px solid var(--cv-rule);padding:14mm 12mm 12mm 8mm}.cv-sheet .portrait{background:radial-gradient(circle at 50% 39%,#cfcac1 0 18%,#0000 19%),radial-gradient(circle at 50% 76%,#beb8ad 0 31%,#0000 32%),linear-gradient(145deg,#efede8,#dad6ce);border:1px solid #d7d1c7;border-radius:50%;width:47mm;height:47mm;margin:0 auto 9mm}.cv-sheet .cv-header{border-bottom:1px solid var(--cv-gold-line);padding:6mm 0}.cv-sheet .cv-header h1{color:#22272d;letter-spacing:.16em;text-transform:uppercase;margin:0;font-size:27pt;font-weight:800;line-height:1}.cv-sheet .cv-header p{color:var(--cv-gold);letter-spacing:.34em;text-transform:uppercase;margin:4mm 0 0;font-size:10.5pt}.cv-sheet .cv-section{margin-top:6.5mm}.cv-sheet .sidebar .cv-section{margin-top:7mm;padding-top:0}.cv-sheet .sidebar .cv-section+.cv-section,.cv-sheet .main-column .cv-section+.cv-section{border-top:1px solid var(--cv-gold-line);padding-top:6mm}.cv-section h2{color:var(--cv-gold);letter-spacing:.28em;text-transform:uppercase;margin:0 0 4.2mm;font-family:inherit;font-size:10.5pt;font-weight:800}.cv-section h3,.cv-section p,.cv-section ul{margin:0}.cv-sheet .contact-list,.cv-sheet .project ul{padding:0;list-style:none}.cv-sheet .contact-list{gap:3mm;display:grid}.cv-sheet .contact-list li{color:var(--cv-ink);overflow-wrap:anywhere;grid-template-columns:5mm 1fr;align-items:center;gap:3mm;font-size:7.6pt;line-height:1.3;display:grid}.cv-sheet .contact-list svg{color:var(--cv-ink)}.cv-sheet .skill-list{gap:4mm;display:grid}.cv-sheet .skill-list h3,.cv-sheet .education strong{color:#22272d;font-size:8.1pt;font-weight:800;line-height:1.25;display:block}.cv-sheet .skill-list p,.cv-sheet .education span{color:var(--cv-muted);font-size:8pt;line-height:1.43}.cv-sheet .skill-list p{margin-top:1.4mm}.cv-sheet .education{gap:1.5mm;display:grid}.cv-sheet .profile-text{max-width:137mm;color:var(--cv-muted);font-size:9.2pt;line-height:1.55}.cv-sheet .projects{gap:5mm;display:grid}.cv-sheet .project+.project{border-top:1px solid var(--cv-rule);padding-top:5mm}.cv-sheet .project-heading{grid-template-columns:1fr auto;align-items:start;gap:8mm;display:grid}.cv-sheet .project h3{color:#20252b;font-size:12.4pt;font-weight:800;line-height:1.15}.cv-sheet .project-heading p{color:var(--cv-gold);text-transform:uppercase;margin-top:1.5mm;font-size:8.3pt;font-weight:700}.cv-sheet .project-heading time{color:var(--cv-muted);white-space:nowrap;font-size:8.5pt;line-height:1.25}.cv-sheet .project-description{color:var(--cv-muted);margin-top:2.4mm;font-size:8.7pt;line-height:1.43}.cv-sheet .project ul{color:var(--cv-ink);gap:1.1mm;margin-top:2.4mm;font-size:8.2pt;line-height:1.36;display:grid}.cv-sheet .project li{padding-left:5mm;position:relative}.cv-sheet .project li:before{content:"";background:var(--cv-gold);border-radius:50%;width:1.1mm;height:1.1mm;position:absolute;top:.63em;left:1.2mm}.cv-sheet .tech-line,.cv-sheet .project-link{color:var(--cv-muted);margin-top:2.2mm;font-size:8.1pt;line-height:1.35}.cv-sheet .tech-line strong{color:var(--cv-ink)}.cv-sheet .project-link{color:var(--cv-gold);font-weight:700}.nav-cv-button{color:var(--text);cursor:pointer;background:0 0;border:0;padding:0;font-size:.86rem;font-weight:600;position:relative}.nav-cv-button:after{content:"";background:var(--accent);height:1px;transition:transform .25s;position:absolute;bottom:-11px;left:0;right:0;transform:scaleX(0)}.nav-cv-button:hover,.nav-cv-button.active{color:#fffaf0}.nav-cv-button.active:after{transform:scaleX(1)}@page{size:A4;margin:0}@media print{.site-header{display:none}.page-wrap{background:var(--cv-paper);min-height:0;padding:0}.cv-sheet{width:210mm;height:297mm;box-shadow:none}}@media screen and (width<=900px){.page-wrap{place-items:start;padding:92px 14px 18px;overflow-x:auto}.cv-sheet{width:min(210mm,100vw - 28px);height:auto;min-height:0;box-shadow:none;grid-template-columns:minmax(220px,33%) 1fr}}@media screen and (width<=640px){.page-wrap{padding-top:86px}.cv-sheet{display:block}.cv-sheet .sidebar,.cv-sheet .main-column{padding:28px 24px}.cv-sheet .main-column{border-left:0;border-top:1px solid var(--cv-rule)}.cv-sheet .portrait{width:136px;height:136px;margin-bottom:28px}.cv-sheet .cv-header{padding-top:0}.cv-sheet .cv-header h1{letter-spacing:.1em;font-size:clamp(1.9rem,9vw,2.8rem)}.cv-sheet .cv-header p{letter-spacing:.2em;font-size:.78rem}.cv-sheet .project-heading{grid-template-columns:1fr;gap:6px}}
