@import "https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:wght@500;600;700&display=swap";:root{color:#30272b;font-synthesis:none;text-rendering:optimizelegibility;font-optical-sizing:auto;--ink:#30272b;--muted:#776b70;--rose:#b36f83;--rose-dark:#854958;--rose-pale:#f7edf0;--line:#eee3e6;background:#f2e9e6;font-family:DM Sans,sans-serif;font-weight:400}*{box-sizing:border-box}html{scroll-behavior:smooth;min-width:320px;scroll-padding-top:88px}body{background:#f2e9e6;min-width:320px;min-height:100vh;margin:0}button,a{font:inherit}a{color:inherit;text-decoration:none}button{color:inherit}::selection{color:var(--rose-dark);background:#f3dce3}:focus-visible{outline-offset:4px;outline:3px solid #c9899b}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}#root{width:100%}.app{overflow:hidden}.container{width:min(1120px,100% - 64px);margin-inline:auto}.site-header{z-index:5;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffdfcf0;border-bottom:1px solid #eee3e6bf;position:sticky;top:0}.navbar{justify-content:space-between;align-items:center;height:76px;display:flex}.logo{letter-spacing:-.8px;font-family:Playfair Display,serif;font-size:27px;font-weight:700}.logo span{color:var(--rose)}.nav-links{align-items:center;gap:34px;display:flex}.nav-links a{color:#62565b;font-size:13px;transition:color .2s}.nav-links a:hover{color:var(--rose-dark)}.menu-toggle{display:none}.hero{grid-template-columns:1.08fr .92fr;align-items:center;gap:55px;min-height:625px;padding-block:70px;display:grid}.hero-text{max-width:590px}.eyebrow,.section-label{color:var(--rose-dark);letter-spacing:1.5px;text-transform:uppercase;font-size:11px;font-weight:700}.eyebrow{align-items:center;gap:10px;margin:0 0 22px;display:flex}.eyebrow-mark{color:var(--rose);font-family:DM Mono,monospace;font-size:14px}.hero h1{letter-spacing:-2px;margin:0;font-family:Playfair Display,serif;font-size:clamp(48px,6vw,72px);font-weight:600;line-height:1.08}.hero h1 span{color:var(--rose)}.hero h2{margin:18px 0 0;font-size:20px;font-weight:500}.hero-description{max-width:460px;color:var(--muted);margin:20px 0 0;font-size:15px;line-height:1.85}.location{color:#8e7f85;margin:17px 0 0;font-size:12px}.location span{color:var(--rose);vertical-align:-2px;margin-right:3px;font-size:18px}.hero-buttons{flex-wrap:wrap;gap:12px;margin-top:30px;display:flex}.btn{border:1px solid #0000;border-radius:5px;justify-content:center;align-items:center;gap:13px;min-height:46px;padding:0 20px;font-size:12px;font-weight:600;transition:background .2s,color .2s,border-color .2s;display:inline-flex}.btn.primary{color:#fff;background:var(--rose-dark)}.btn.primary:hover{background:#6f3947}.btn.secondary{color:var(--rose-dark);background:0 0;border-color:#d9b9c2}.btn.secondary:hover{background:var(--rose-pale)}.cv-link{color:var(--muted);border-bottom:1px solid #d9b9c2;gap:8px;margin-top:18px;padding-bottom:3px;font-size:12px;display:inline-flex}.cv-link:hover{color:var(--rose-dark)}.hero-visual{place-items:center;min-height:360px;display:grid;position:relative}.code-window{background:#30272b;border:1px solid #49383e;border-radius:10px;width:min(100%,405px);position:relative;transform:rotate(1deg);box-shadow:0 24px 65px #4b2c3729}.window-bar{border-bottom:1px solid #49383e;align-items:center;gap:6px;height:44px;padding:0 16px;display:flex}.window-bar>span{background:#ad7585;border-radius:50%;width:7px;height:7px}.window-bar>span:nth-child(2){background:#c6a584}.window-bar>span:nth-child(3){background:#899d86}.window-bar small{color:#9b858d;margin-left:auto;font:10px DM Mono,monospace}.code-lines{color:#e8dce0;padding:22px 14px 25px;font:11px/2.15 DM Mono,monospace;overflow:hidden}.code-lines p{white-space:pre;margin:0}.code-lines i{color:#796a70;text-align:right;width:34px;margin-right:17px;font-style:normal;display:inline-block}.code-lines b{color:#e6a8b9;font-weight:500}.code-muted{color:#d2a2af}.code-key{color:#d8bc91}.code-string{color:#afc59f}.code-comment{color:#917d85}.visual-sparkle{color:var(--rose);position:absolute}.sparkle-one{font-size:35px;top:5px;right:25px}.sparkle-two{color:#b99476;font-size:25px;bottom:10px;left:10px}.section{padding-block:92px}.section-label{margin:0 0 16px;font-size:10px}.section-label span{color:#bea1aa;padding:0 5px}.section h2,.contact-inner h2{letter-spacing:-.5px;margin:0;font-family:Playfair Display,serif;font-size:clamp(31px,4vw,42px);font-weight:600;line-height:1.2}.section-heading{align-items:center;gap:15px;display:flex}.heading-mark{color:var(--rose);font-size:22px}.about-content{max-width:750px;color:var(--muted);margin-top:23px;font-size:14px;line-height:1.9}.about-content p{margin:0 0 12px}.section-intro{color:var(--muted);margin:13px 0 28px;font-size:13px;line-height:1.8}.skills{flex-wrap:wrap;gap:10px;display:flex}.skill{color:#5e4c53;background:#fffdfc;border:1px solid #eadde1;border-radius:4px;padding:10px 15px;font-size:12px;transition:border-color .2s,color .2s}.skill:hover{color:var(--rose-dark);border-color:#c79aa7}.projects{grid-template-columns:1fr;display:grid}.project-card{border:1px solid var(--line);background:#fff;border-radius:7px;grid-template-columns:.8fr 1.2fr;min-height:300px;display:grid;overflow:hidden}.project-art{background:#f6e9ed;place-items:center;min-height:270px;display:grid;position:relative;overflow:hidden}.project-art:before,.project-art:after{content:"";border:1px solid #b36f8338;border-radius:50%;width:180px;height:180px;position:absolute}.project-art:after{width:240px;height:240px}.recipe-symbol{z-index:1;color:var(--rose);font-size:72px}.art-code{color:#9f727f;font:11px DM Mono,monospace;position:absolute;bottom:21px;left:24px}.art-number{color:#b28793;font:11px DM Mono,monospace;position:absolute;top:18px;right:21px}.project-content{align-self:center;padding:37px 42px}.project-subtitle{color:var(--rose-dark);margin:0 0 7px;font-size:11px}.project-card h3{margin:0;font-family:Playfair Display,serif;font-size:28px;font-weight:600}.project-description{color:var(--muted);margin:13px 0 0;font-size:13px;line-height:1.8}.project-tech{flex-wrap:wrap;gap:7px;margin-top:17px;display:flex}.project-tech span{color:#77545f;background:#f8f1f3;border-radius:3px;padding:6px 9px;font-size:10px}.project-actions{gap:21px;margin-top:20px;display:flex}.project-link{color:var(--rose-dark);font-size:12px;font-weight:600}.project-link:hover{text-decoration:underline}.project-link-secondary{color:#6e6266}.contact-inner{text-align:center}.contact-intro{color:var(--muted);margin:13px auto 34px;font-size:13px;line-height:1.8}.contact-links{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.contact-item{text-align:left;background:#fffdfc;border:1px solid #eddee3;border-radius:5px;align-items:center;gap:12px;min-width:210px;padding:14px 17px;display:flex}a.contact-item:hover{border-color:#c79aa7}.contact-icon{background:var(--rose-pale);width:34px;height:34px;color:var(--rose-dark);border-radius:50%;flex:0 0 34px;place-items:center;font:12px DM Mono,monospace;display:grid}.contact-item small,.contact-item strong{display:block}.contact-item small{color:#94858a;margin-bottom:4px;font-size:10px}.contact-item strong{color:#504249;font-size:11px;font-weight:600}.contact-note{color:#92838a;margin:19px 0 0;font-size:10px}.contact-note code{color:var(--rose-dark);font:inherit}.footer{border-top:1px solid var(--line)}.footer>div{justify-content:space-between;align-items:center;gap:15px;min-height:77px;display:flex}.footer .logo{font-size:22px}.footer p{color:#84777c;font-size:11px}.footer-code{color:#a29398;font:10px DM Mono,monospace}@media (width<=760px){.container{width:min(100% - 42px,560px)}.navbar{height:68px}.menu-toggle{border:1px solid var(--line);cursor:pointer;background:0 0;border-radius:4px;flex-direction:column;justify-content:center;gap:5px;width:40px;height:40px;padding:9px;display:flex}.menu-toggle span{background:var(--rose-dark);width:100%;height:1.5px;display:block}.nav-links{border-bottom:1px solid var(--line);background:#fffdfc;flex-direction:column;align-items:stretch;gap:0;padding:8px 21px 16px;display:none;position:absolute;top:67px;left:0;right:0}.nav-links.is-open{display:flex}.nav-links a{border-bottom:1px solid #f2e9ec;padding:12px 0}.nav-links a:last-child{border-bottom:0}.hero{grid-template-columns:1fr;gap:24px;min-height:auto;padding-block:72px 55px}.hero h1{font-size:clamp(48px,12vw,64px)}.hero h2{font-size:18px}.hero-visual{min-height:285px;margin-top:5px}.code-window{max-width:390px}.section{padding-block:68px}.project-card{grid-template-columns:1fr}.project-art{min-height:190px}.project-content{padding:27px 25px 30px}.contact-links{flex-direction:column;align-items:stretch;max-width:370px;margin-inline:auto}.footer>div{flex-wrap:wrap;justify-content:space-between;min-height:85px;padding-block:15px}.footer-code{order:1;width:100%}}@media (width<=380px){.container{width:calc(100% - 34px)}.hero-buttons{flex-direction:column;align-items:stretch;max-width:240px}.btn{width:100%}.code-lines{padding-inline:8px;font-size:9px}.code-lines i{width:25px;margin-right:9px}.project-content{padding-inline:19px}}.app{background:#fffdfc;border:1px solid #f0e5e8;border-radius:12px;width:min(1160px,100% - 48px);margin:32px auto;animation:.65s ease-out both frame-arrive;overflow:hidden;box-shadow:0 18px 60px #472d3617}.site-header{background:#fffdfcf0}.hero-text{animation:.7s ease-out .12s both content-arrive}.hero-visual{animation:.7s ease-out .24s both content-arrive}.section{animation:.7s ease-out both content-arrive}.hero-visual .code-window{transition:transform .25s,box-shadow .25s}.hero-visual .code-window:hover{transform:translateY(-4px)rotate(0);box-shadow:0 28px 70px #4b2c3730}.btn{transition:background .2s,color .2s,border-color .2s,transform .2s,box-shadow .2s}.btn:hover{transform:translateY(-2px);box-shadow:0 7px 16px #5a35411f}.skill{transition:border-color .2s,color .2s,background .2s,transform .2s}.skill:hover{background:#fff;transform:translateY(-2px)}.project-card{transition:transform .25s,box-shadow .25s;display:block}.project-card:hover{transform:translateY(-3px);box-shadow:0 14px 32px #472d3614}.project-art{min-height:150px}.project-content{padding:30px 34px 34px}.screenshot-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:26px;display:grid}.screenshot{color:#92717b;background:#faf5f6;border:1px dashed #d8bcc4;border-radius:6px;flex-direction:column;align-items:stretch;min-height:130px;font-size:11px;display:flex;position:relative;overflow:hidden;box-shadow:0 4px 12px #472d360f}.screenshot img{object-fit:contain;width:100%;height:auto;transition:filter .2s;display:block;position:relative}.screenshot-title{color:#77545f;text-align:center;background:#fffdfc;border-top:1px solid #eadde1;padding:9px 10px;font-size:11px}.screenshot:hover img{filter:brightness(.98)}@keyframes frame-arrive{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes content-arrive{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (width<=760px){.app{border-radius:9px;width:calc(100% - 20px);margin:10px auto}.project-content{padding:25px 22px 28px}.screenshot-gallery{grid-template-columns:1fr;gap:10px}.screenshot{min-height:105px}}@media (width<=420px){.app{width:calc(100% - 12px);margin:6px auto}.screenshot-gallery{grid-template-columns:1fr}.screenshot{min-height:160px}}.site-header{color:#fff9f9;-webkit-backdrop-filter:none;backdrop-filter:none;background:#38252d;border-bottom-color:#523641}.site-header .logo{color:#fff9f9}.site-header .logo span{color:#d9a5b3}.nav-links a{color:#f0e2e6;transition:color .2s,transform .2s}.nav-links a:hover{color:#e6b4c0;transform:translateY(-1px)}.hero{background:#fcf8f6;position:relative}#apropos{background:#fffdfc}.section-tinted{background:#f8eff1}.contact-section{background:#f6ecef}.project-card{border-color:#eadde0;box-shadow:0 5px 20px #472d360a}.project-art{background:#f4e6e9}.menu-toggle{border-color:#654b55}.menu-toggle span{background:#f5e7ea}@media (width<=760px){.nav-links{background:#38252d;border-bottom-color:#523641}.nav-links a{color:#f0e2e6;border-bottom-color:#523641}.nav-links a:hover{color:#e6b4c0}}
