@import url(https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,450;9..144,600;9..144,700&family=Manrope:wght@400;500;600;700&display=swap);:root{--bg:#f4f0ea;--surface:#fcfaf6;--surface-strong:#f0e7db;--text:#2c2824;--text-soft:#655d54;--stroke:#d9cec1;--accent:#7f6a55;--accent-strong:#5f4f40;--focus:#8a745f;--radius-lg:30px;--radius-md:16px;--shadow:0 22px 52px #48392d1a;--max-width:1120px;--ease-out:cubic-bezier(0.2,0.64,0.26,1)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:radial-gradient(circle at 16% -10%,#fff6e8 0,#fff6e800 36%),radial-gradient(circle at 102% 28%,#e7dfd3 0,#e7dfd300 42%),#f4f0ea;background:radial-gradient(circle at 16% -10%,#fff6e8 0,#fff6e800 36%),radial-gradient(circle at 102% 28%,#e7dfd3 0,#e7dfd300 42%),var(--bg);color:#2c2824;color:var(--text);font-family:Manrope,Avenir Next,Segoe UI,sans-serif;margin:0;min-height:100vh;text-rendering:optimizeLegibility}body:before{background-image:repeating-linear-gradient(90deg,rgba(101,93,84,.022),rgba(101,93,84,.022) 1px,#0000 0,#0000 5px);content:"";inset:0;opacity:.3;pointer-events:none;position:fixed}::selection{background:#7f6a5540;color:#1e1a17}h1,h2,h3,h4{text-wrap:balance;font-family:Fraunces,Times New Roman,serif;letter-spacing:-.023em;line-height:1.06;margin:0}p{color:#655d54;color:var(--text-soft);line-height:1.78}p,ul{margin:0}ul{list-style:none;padding:0}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid #8a745f;outline:2px solid var(--focus);outline-offset:2px}.shell{margin:0 auto;width:min(1120px,calc(100% - 2rem));width:min(var(--max-width),calc(100% - 2rem))}.app-shell{overflow-x:clip}main{z-index:1}.section,main{position:relative}.section{animation:section-rise .76s cubic-bezier(.2,.64,.26,1) both;animation:section-rise .76s var(--ease-out) both;padding:clamp(4rem,9vw,8rem) 0}.section:before{background:linear-gradient(90deg,#0000,#7f6a5538,#0000);content:"";height:1px;left:0;position:absolute;right:0;top:0}.section-label{color:#7f6a55;color:var(--accent);display:inline-block;font-size:.72rem;font-weight:700;letter-spacing:.22em;margin-bottom:.95rem;text-transform:uppercase}.btn{align-items:center;border:1px solid #0000;border-radius:999px;display:inline-flex;font-size:.9rem;font-weight:700;gap:.4rem;justify-content:center;letter-spacing:.01em;padding:.82rem 1.24rem;transition:transform .22s cubic-bezier(.2,.64,.26,1),background-color .22s cubic-bezier(.2,.64,.26,1),color .2s cubic-bezier(.2,.64,.26,1),border-color .2s cubic-bezier(.2,.64,.26,1),box-shadow .22s cubic-bezier(.2,.64,.26,1);transition:transform .22s var(--ease-out),background-color .22s var(--ease-out),color .2s var(--ease-out),border-color .2s var(--ease-out),box-shadow .22s var(--ease-out)}.btn:hover{box-shadow:0 10px 18px #2f251e1f;transform:translateY(-2px)}.btn:disabled{box-shadow:none;cursor:not-allowed;opacity:.72;transform:none}.btn-primary{background:#2c2824;background:var(--text);color:#f6f2eb}.btn-primary:hover{background:#1d1a17}.btn-secondary{background:#ffffff8c;border-color:#d9cec1;border-color:var(--stroke);color:#2c2824;color:var(--text)}.btn-secondary:hover{border-color:#7f6a55;border-color:var(--accent);color:#5f4f40;color:var(--accent-strong)}.hero{padding:1.2rem 0 3.6rem}.top-nav{align-items:center;display:flex;gap:1rem;justify-content:space-between;padding:.8rem 0 1.7rem}.brand{font-family:Fraunces,serif;font-size:1.22rem;font-weight:700;line-height:1}.top-nav-links{display:flex;gap:.3rem}.top-nav-links a{border-radius:999px;color:#655d54;color:var(--text-soft);display:inline-flex;font-size:.82rem;padding:.42rem .7rem;position:relative;transition:background-color .22s cubic-bezier(.2,.64,.26,1),color .22s cubic-bezier(.2,.64,.26,1);transition:background-color .22s var(--ease-out),color .22s var(--ease-out)}.top-nav-links a:after{background:currentColor;bottom:.31rem;content:"";height:1px;left:.7rem;position:absolute;right:.7rem;transform:scaleX(0);transform-origin:left;transition:transform .24s cubic-bezier(.2,.64,.26,1);transition:transform .24s var(--ease-out)}.top-nav-links a:hover{background:#ffffffd1;color:#2c2824;color:var(--text)}.top-nav-links a:hover:after{transform:scaleX(1)}.hero-content{animation:fade-up .7s cubic-bezier(.2,.64,.26,1) both;animation:fade-up .7s var(--ease-out) both;background:linear-gradient(140deg,#fef9f2f2,#f7efe5d6);border:1px solid #ffffffb8;border-radius:30px;border-radius:var(--radius-lg);box-shadow:0 24px 52px #48392d17;padding:clamp(2.1rem,6.2vw,5rem);position:relative}.hero-content:after,.hero-content:before{border-radius:50%;content:"";pointer-events:none;position:absolute}.hero-content:before{background:#eedbc429;filter:blur(4px);height:6.4rem;left:-2.1rem;top:-2.4rem;width:6.4rem}.hero-content:after{background:#fff7ee80;bottom:-1.2rem;filter:blur(12px);height:5.4rem;right:-1.4rem;width:5.4rem}.hero-kicker{color:#7f6a55;color:var(--accent);font-size:.76rem;font-weight:700;letter-spacing:.16em;margin-bottom:1.15rem;text-transform:uppercase}.hero-content h1{color:#2c2824;color:var(--text);font-size:clamp(2.4rem,10vw,5.25rem);max-width:11.5ch;text-shadow:0 1px 0 #ffffff73}.hero-intro{font-size:clamp(1.02rem,2.7vw,1.24rem);margin-top:1.3rem;max-width:62ch}.hero-actions{display:flex;flex-wrap:wrap;gap:.72rem;margin-top:1.8rem}.social-pills{display:flex;flex-wrap:wrap;gap:.58rem;margin-top:1.5rem}.social-pills a{background:#ffffffa3;border:1px solid #d9cec1;border:1px solid var(--stroke);border-radius:999px;color:#655d54;color:var(--text-soft);display:inline-flex;font-size:.75rem;font-weight:700;letter-spacing:.08em;padding:.49rem .76rem;text-transform:uppercase;transition:border-color .22s cubic-bezier(.2,.64,.26,1),color .22s cubic-bezier(.2,.64,.26,1),transform .22s cubic-bezier(.2,.64,.26,1);transition:border-color .22s var(--ease-out),color .22s var(--ease-out),transform .22s var(--ease-out)}.social-pills a:hover{border-color:#7f6a55;border-color:var(--accent);color:#5f4f40;color:var(--accent-strong);transform:translateY(-1px)}.about-grid{grid-gap:1.35rem;display:grid;gap:1.35rem}.about-profile{display:flex;justify-content:center}.profile-photo{background:#0000;border:none;border-radius:0;box-shadow:none;filter:drop-shadow(0 14px 20px rgba(57,44,33,.12));height:auto;object-fit:contain;transition:transform .3s cubic-bezier(.2,.64,.26,1),filter .3s cubic-bezier(.2,.64,.26,1);transition:transform .3s var(--ease-out),filter .3s var(--ease-out);width:min(74vw,286px)}.profile-photo:hover{filter:drop-shadow(0 18px 24px rgba(57,44,33,.14));transform:translateY(-3px) rotate(-.5deg)}.about-copy h2{font-size:clamp(1.85rem,5.9vw,3.2rem);max-width:23ch}.about-copy>p{font-size:clamp(1rem,2.2vw,1.08rem);margin-top:1.15rem}.detail-card{background:#ffffffbd;border:1px solid #d9cec1;border:1px solid var(--stroke);border-radius:16px;border-radius:var(--radius-md);margin-top:1.7rem;padding:1.1rem;transition:border-color .22s cubic-bezier(.2,.64,.26,1),transform .22s cubic-bezier(.2,.64,.26,1);transition:border-color .22s var(--ease-out),transform .22s var(--ease-out)}.detail-card:hover{border-color:#c9baa9;transform:translateY(-1px)}.detail-label{color:#7f6a55;color:var(--accent);font-size:.72rem;font-weight:700;letter-spacing:.18em;margin:0;text-transform:uppercase}.detail-name{color:#2c2824;color:var(--text);font-weight:700;margin-top:.38rem}.detail-email{border-bottom:1px solid #0000;color:#5f4f40;color:var(--accent-strong);display:inline-block;font-weight:600;margin-top:.34rem;transition:border-color .22s cubic-bezier(.2,.64,.26,1);transition:border-color .22s var(--ease-out)}.detail-email:hover{border-color:#5f4f40;border-color:var(--accent-strong)}.section-resume{background:linear-gradient(180deg,#fbf6ef70,#faf6efeb)}.section-heading h2{font-size:clamp(1.7rem,5.2vw,2.95rem);margin-top:.22rem}.resume-layout{grid-gap:1.2rem;display:grid;gap:1.2rem;margin-top:1.65rem}.resume-block{background:#fcfaf6;background:var(--surface);border:1px solid #d9cec1;border:1px solid var(--stroke);border-radius:16px;border-radius:var(--radius-md);box-shadow:0 12px 28px #49382c0f;padding:1.2rem}.resume-block h3{font-size:1.45rem}.resume-list{grid-gap:.92rem;display:grid;gap:.92rem;margin-top:.95rem}.resume-item{background:#f0e7db;background:var(--surface-strong);border-radius:.95rem;padding:.94rem .95rem .94rem 1.08rem;position:relative;transition:transform .22s cubic-bezier(.2,.64,.26,1),box-shadow .22s cubic-bezier(.2,.64,.26,1);transition:transform .22s var(--ease-out),box-shadow .22s var(--ease-out)}.resume-item:before{background:#7f6a5557;border-radius:4px;bottom:1rem;content:"";left:.44rem;position:absolute;top:1rem;width:2px}.resume-item:hover{box-shadow:0 10px 20px #47382c14;transform:translateY(-2px)}.item-date{color:#7f6a55;color:var(--accent);font-size:.72rem;font-weight:700;letter-spacing:.11em;text-transform:uppercase}.resume-item h4{font-size:1.08rem;margin-top:.38rem}.item-company{color:#3b332d;font-weight:600;margin-top:.3rem}.item-subtitle{font-size:.92rem;margin-top:.28rem}.skills-wrap{margin-top:1.3rem}.skill-tags{display:flex;flex-wrap:wrap;gap:.56rem;margin-top:.76rem}.skill-tags li{background:#ffffffc7;border:1px solid #d9cec1;border:1px solid var(--stroke);border-radius:999px;color:#655d54;color:var(--text-soft);font-size:.76rem;font-weight:700;letter-spacing:.04em;padding:.47rem .74rem;transition:transform .22s cubic-bezier(.2,.64,.26,1),border-color .22s cubic-bezier(.2,.64,.26,1);transition:transform .22s var(--ease-out),border-color .22s var(--ease-out)}.skill-tags li:hover{border-color:#c6b5a3;transform:translateY(-2px)}.contact-panel{grid-gap:1.3rem;background:linear-gradient(130deg,#f6ece0f0,#fdf9f3ed);border:1px solid #ffffffc7;border-radius:30px;border-radius:var(--radius-lg);box-shadow:0 24px 54px #48392d14;display:grid;gap:1.3rem;padding:clamp(1.5rem,3.4vw,2.5rem)}.contact-panel h2{font-size:clamp(1.62rem,5vw,2.36rem)}.contact-copy{margin-top:.95rem;max-width:56ch}.contact-form{grid-gap:.58rem;display:grid;gap:.58rem;margin-top:1.08rem}.contact-form label{color:#7f6a55;color:var(--accent);font-size:.72rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase}.contact-form input,.contact-form textarea{background:#ffffffd6;border:1px solid #d9cec1;border:1px solid var(--stroke);border-radius:12px;color:#2c2824;color:var(--text);font:inherit;padding:.73rem .84rem;transition:border-color .22s cubic-bezier(.2,.64,.26,1),background-color .22s cubic-bezier(.2,.64,.26,1),box-shadow .22s cubic-bezier(.2,.64,.26,1);transition:border-color .22s var(--ease-out),background-color .22s var(--ease-out),box-shadow .22s var(--ease-out);width:100%}.contact-form input:focus,.contact-form textarea:focus{background:#fffdf9;border-color:#7f6a55;border-color:var(--accent);box-shadow:0 0 0 3px #7f6a552e;outline:none}.contact-form textarea{min-height:115px;resize:vertical}.contact-form-actions{display:flex;flex-wrap:wrap;gap:.65rem;margin-top:.42rem}.contact-note{color:#5f4f40;color:var(--accent-strong);font-size:.84rem;margin-top:.65rem}.contact-note-error{color:#8a473d}.thank-you{grid-gap:.58rem;background:#ffffffbf;border:1px solid #c8b9a8;border-radius:14px;display:grid;gap:.58rem;margin-top:1.1rem;padding:1rem}.thank-you-title{color:#2c2824;color:var(--text);font-weight:700}.thank-you .btn{margin-top:.3rem;width:fit-content}.contact-links{grid-gap:.7rem;align-content:start;display:grid;gap:.7rem}.contact-links a{background:#ffffffc2;border:1px solid #d9cec1;border:1px solid var(--stroke);border-radius:.9rem;color:#655d54;color:var(--text-soft);display:block;font-weight:600;padding:.9rem 1rem;position:relative;transition:border-color .22s cubic-bezier(.2,.64,.26,1),color .22s cubic-bezier(.2,.64,.26,1),transform .22s cubic-bezier(.2,.64,.26,1),box-shadow .22s cubic-bezier(.2,.64,.26,1);transition:border-color .22s var(--ease-out),color .22s var(--ease-out),transform .22s var(--ease-out),box-shadow .22s var(--ease-out)}.contact-links a:after{content:"->";opacity:0;position:absolute;right:.95rem;transform:translateX(-4px);transition:opacity .2s cubic-bezier(.2,.64,.26,1),transform .2s cubic-bezier(.2,.64,.26,1);transition:opacity .2s var(--ease-out),transform .2s var(--ease-out)}.contact-links a:hover{border-color:#7f6a55;border-color:var(--accent);box-shadow:0 12px 24px #3f312617;color:#5f4f40;color:var(--accent-strong);transform:translateY(-2px)}.contact-links a:hover:after{opacity:1;transform:translateX(0)}.site-footer{padding:2rem 0 2.8rem}.footer-inner{border-top:1px solid #d9cec1;border-top:1px solid var(--stroke);display:flex;flex-direction:column;gap:.8rem;padding-top:1rem}.footer-inner p{color:#655d54;color:var(--text-soft);font-size:.82rem;letter-spacing:.05em;text-transform:uppercase}.footer-links{display:flex;flex-wrap:wrap;gap:.42rem}.footer-links a{border:1px solid #0000;border-radius:999px;color:#655d54;color:var(--text-soft);display:inline-flex;font-size:.75rem;letter-spacing:.06em;padding:.42rem .62rem;text-transform:uppercase;transition:border-color .22s cubic-bezier(.2,.64,.26,1),color .22s cubic-bezier(.2,.64,.26,1),transform .22s cubic-bezier(.2,.64,.26,1);transition:border-color .22s var(--ease-out),color .22s var(--ease-out),transform .22s var(--ease-out)}.footer-links a:hover{border-color:#d9cec1;border-color:var(--stroke);color:#2c2824;color:var(--text);transform:translateY(-1px)}.custom-cursor{left:0;opacity:0;pointer-events:none;position:fixed;top:0;z-index:60}.custom-cursor-ring{background:#fcfaf614;border:1.2px solid #48392d80;border-radius:50%;height:28px;transition:transform 70ms linear,width .14s cubic-bezier(.2,.64,.26,1),height .14s cubic-bezier(.2,.64,.26,1),border-color .14s cubic-bezier(.2,.64,.26,1),background-color .14s cubic-bezier(.2,.64,.26,1),opacity .14s ease;transition:transform 70ms linear,width .14s var(--ease-out),height .14s var(--ease-out),border-color .14s var(--ease-out),background-color .14s var(--ease-out),opacity .14s ease;width:28px;will-change:transform}.custom-cursor-dot{background:#3d322a;border-radius:50%;height:6px;transition:transform 80ms linear,opacity .14s ease;width:6px;will-change:transform}body.cursor-ready .custom-cursor{opacity:1}body.cursor-hover .custom-cursor-ring{background:#fffbf533;border-color:#5f4f409e;height:38px;width:38px}body.cursor-hover .custom-cursor-dot{transform:scale(.7)}body.cursor-down .custom-cursor-ring{transform:translate(-50%,-50%) scale(.86)}body.cursor-down .custom-cursor-dot{transform:scale(1.22)}@keyframes fade-up{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes section-rise{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@media (pointer:fine){a,body,button,input,label,textarea{cursor:none}}@media (min-width:720px){.shell{width:min(1120px,calc(100% - 3.25rem));width:min(var(--max-width),calc(100% - 3.25rem))}.about-grid{align-items:start;gap:2rem;grid-template-columns:minmax(220px,.82fr) minmax(0,1.6fr)}.resume-layout{grid-template-columns:repeat(2,minmax(0,1fr))}.contact-panel{gap:1.45rem;grid-template-columns:minmax(0,1.52fr) minmax(0,.9fr)}.footer-inner{align-items:center;flex-direction:row;justify-content:space-between}}@media (min-width:1080px){.hero{padding-top:1.45rem}.hero-content{display:flex;flex-direction:column;justify-content:center;min-height:62vh}.about-copy>p{max-width:66ch}.contact-links{align-self:center;width:100%}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.btn,.contact-links a,.footer-links a,.hero-content,.profile-photo,.resume-item,.section,.skill-tags li,.social-pills a,.top-nav-links a{animation:none;transition:none}.section{opacity:1;transform:none}.custom-cursor{display:none}a,body,button,input,label,textarea{cursor:auto}}::-webkit-scrollbar{width:11px}::-webkit-scrollbar-track{background:#d6ccbf59}::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#8f7a65,#72604f);border:2px solid #d6ccbf4d;border-radius:999px}
/*# sourceMappingURL=main.fd18f401.css.map*/