*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--paper:#f4ecdd;--paper-deep:#ece0cc;--surface:#fbf6ec;--ink:#2c2118;--ink-soft:#6f6051;--ink-faint:#9c8c79;--rust:#bd4f23;--rust-deep:#97370f;--rust-light:#d97a4a;--sage:#4a6f5d;--line:#46321e29;--line-soft:#46321e17;--radius:4px;--font-display:"Fraunces", Georgia, serif;--font-body:"Newsreader", Georgia, serif;--font-mono:"JetBrains Mono", ui-monospace, monospace}html{font-family:var(--font-body);scroll-behavior:smooth;font-size:16px}body{background:var(--paper);color:var(--ink);font-optical-sizing:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;line-height:1.7}#app{background:0 0;flex-direction:column;min-height:100vh;display:flex}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:inherit}h1,h2,h3{font-family:var(--font-display);font-optical-sizing:auto;letter-spacing:-.015em;color:var(--ink);font-weight:400;line-height:1.12}::selection{background:var(--rust);color:var(--paper)}.container{max-width:1040px;margin:0 auto;padding:0 1.5rem}.btn{border-radius:var(--radius);font-family:var(--font-mono);letter-spacing:.01em;border:1.5px solid var(--ink);align-items:center;gap:.5rem;padding:.7rem 1.5rem;font-size:.82rem;font-weight:500;transition:transform .18s,background .18s,color .18s,box-shadow .18s;display:inline-flex}.btn-primary{background:var(--ink);color:var(--paper)}.btn-primary:hover{background:var(--rust);border-color:var(--rust);transform:translateY(-2px)rotate(-.6deg);box-shadow:4px 5px #2c211829}.btn-outline{color:var(--ink);background:0 0}.btn-outline:hover{border-color:var(--rust);color:var(--rust-deep);transform:translateY(-2px)rotate(.6deg)}.section{padding:5.5rem 0}.section-title{margin-bottom:.5rem;font-size:clamp(2.2rem,5vw,3rem);display:inline-block;position:relative}.section-title:after{content:"";background:var(--rust);opacity:.85;border-radius:40% 60% 55% 45%/100%;width:100%;height:7px;position:absolute;bottom:-.35rem;left:0;transform:rotate(-.5deg)}.section-subtitle{color:var(--ink-soft);max-width:560px;margin-bottom:3rem;font-size:1.05rem;font-style:italic}.tag{background:var(--paper-deep);border:1px solid var(--line);font-family:var(--font-mono);color:var(--ink-soft);letter-spacing:-.01em;border-radius:3px;padding:.18rem .6rem;font-size:.72rem;display:inline-block}.eyebrow{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.18em;color:var(--rust);font-size:.72rem}.pattern-bg[data-v-cb677100]{z-index:-1;pointer-events:none;width:100%;height:100%;position:fixed;inset:0}.navbar[data-v-aa8826b9]{z-index:100;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);background:#f4ecddd1;position:sticky;top:0}.nav-inner[data-v-aa8826b9]{justify-content:space-between;align-items:center;height:64px;display:flex}.nav-logo[data-v-aa8826b9]{align-items:center;gap:.6rem;display:flex}.logo-mark[data-v-aa8826b9]{background:var(--ink);width:30px;height:30px;color:var(--paper);font-family:var(--font-display);border-radius:5px;place-items:center;font-size:1.1rem;transition:transform .2s,background .2s;display:grid;transform:rotate(-4deg)}.nav-logo:hover .logo-mark[data-v-aa8826b9]{background:var(--rust);transform:rotate(4deg)}.logo-text[data-v-aa8826b9]{font-family:var(--font-display);color:var(--ink);font-size:1.15rem}.nav-links[data-v-aa8826b9]{gap:.35rem;list-style:none;display:flex}.nav-links a[data-v-aa8826b9]{font-family:var(--font-mono);color:var(--ink-soft);border-radius:4px;padding:.35rem .8rem;font-size:.82rem;transition:color .18s,background .18s}.nav-links a[data-v-aa8826b9]:hover{color:var(--ink)}.nav-links a.active[data-v-aa8826b9]{color:var(--rust-deep);background:#bd4f231a}.lang-toggle[data-v-aa8826b9]{border-left:1px solid var(--line);align-items:center;gap:.15rem;margin-left:.4rem;padding-left:.55rem;display:flex}.lang-toggle button[data-v-aa8826b9]{font-family:var(--font-mono);color:var(--ink-faint);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:.25rem .4rem;font-size:.74rem;transition:color .18s}.lang-toggle button[data-v-aa8826b9]:hover{color:var(--ink)}.lang-toggle button.active[data-v-aa8826b9]{color:var(--rust-deep)}.lang-sep[data-v-aa8826b9]{color:var(--ink-faint);font-size:.74rem}.footer[data-v-aa8826b9]{border-top:1px solid var(--line);margin-top:2rem;padding:1.75rem 0}.footer-inner[data-v-aa8826b9]{color:var(--ink-soft);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;font-size:.9rem;font-style:italic;display:flex}.footer-sign[data-v-aa8826b9]{font-family:var(--font-mono);font-size:.78rem;font-style:normal}@media (width<=560px){.logo-text[data-v-aa8826b9]{display:none}.nav-links[data-v-aa8826b9]{gap:.1rem}.nav-links a[data-v-aa8826b9]{padding:.35rem .55rem;font-size:.76rem}}.hero[data-v-0f93a447]{padding:0}.hero-inner[data-v-0f93a447]{flex-direction:column;justify-content:center;max-width:720px;min-height:calc(100vh - 64px);padding:5rem 1.5rem;display:flex}.hero-eyebrow[data-v-0f93a447]{margin-bottom:1rem;animation:.6s both rise-0f93a447}.hero-name[data-v-0f93a447]{margin-bottom:1rem;font-size:clamp(3rem,9vw,5.5rem);line-height:.98;animation:.6s 80ms both rise-0f93a447}.hero-title[data-v-0f93a447]{font-family:var(--font-display);color:var(--rust-deep);margin-bottom:2rem;font-size:clamp(1.15rem,3vw,1.6rem);font-style:italic;animation:.6s .16s both rise-0f93a447}.hero-desc[data-v-0f93a447]{max-width:540px;margin-bottom:2.5rem;animation:.6s .24s both rise-0f93a447}.hero-desc p[data-v-0f93a447]{color:var(--ink-soft);font-size:1.08rem;line-height:1.8}.hero-desc p+p[data-v-0f93a447]{margin-top:1rem}.hero-actions[data-v-0f93a447]{flex-wrap:wrap;gap:.85rem;animation:.6s .32s both rise-0f93a447;display:flex}.skills-bar[data-v-0f93a447]{border-top:1px solid var(--line);padding:2.5rem 0 3.5rem}.bar-title[data-v-0f93a447]{font-family:var(--font-mono);color:var(--ink-faint);margin-bottom:1.1rem;font-size:.78rem}.tech-grid[data-v-0f93a447]{flex-wrap:wrap;gap:.5rem;display:flex}@keyframes rise-0f93a447{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@media (width<=768px){.hero-inner[data-v-0f93a447]{min-height:auto;padding-top:4rem}}
