:root{--c-base: oklch(.965 .014 84);--c-surface: oklch(.945 .016 80);--c-elevated: oklch(.925 .02 78);--c-border: oklch(.86 .012 80);--c-border-sub: oklch(.89 .01 80);--c-void: oklch(.9 .014 82);--c-raised: oklch(.945 .016 80);--c-text-100: oklch(.255 .018 55);--c-text-200: oklch(.42 .02 55);--c-text-300: oklch(.46 .02 58);--c-text-400: oklch(.62 .02 60);--c-text-500: oklch(.74 .014 70);--c-accent: oklch(.55 .17 33);--c-accent-dim: oklch(.5 .17 33);--c-accent-deep: oklch(.45 .16 33);--c-accent-glow: oklch(.55 .17 33 / .12);--c-accent-bg: oklch(.55 .17 33 / .08);--c-warm: oklch(.5 .07 60);--c-warm-dim: oklch(.44 .07 60);--c-warm-glow: oklch(.5 .07 60 / .12);--c-success: oklch(.52 .1 150);--c-error: oklch(.52 .17 28);--ff-signature: "Parisienne", cursive;--ff-display: "EB Garamond", Georgia, serif;--ff-heading: "EB Garamond", Georgia, serif;--ff-body: "EB Garamond", Georgia, serif;--ff-mono: "JetBrains Mono", "Courier New", monospace;--fs-xs: .75rem;--fs-sm: .875rem;--fs-base: 1.0625rem;--fs-md: 1.1875rem;--fs-lg: 1.4rem;--fs-xl: 1.75rem;--fs-2xl: 2.2rem;--fs-3xl: clamp(2.6rem, 4vw, 3.4rem);--fs-4xl: clamp(3.2rem, 6vw, 4.6rem);--lh-tight: 1.15;--lh-snug: 1.3;--lh-normal: 1.5;--lh-relaxed: 1.7;--fw-regular: 400;--fw-medium: 500;--fw-semibold: 600;--fw-bold: 700;--sp-1: .25rem;--sp-2: .5rem;--sp-3: .75rem;--sp-4: 1rem;--sp-5: 1.25rem;--sp-6: 1.5rem;--sp-8: 2rem;--sp-10: 2.5rem;--sp-12: 3rem;--sp-16: 4rem;--sp-20: 5rem;--sp-24: 6rem;--sp-32: 8rem;--r: .25rem;--r-full: 9999px;--shadow-sm: 0 1px 2px oklch(.4 .02 60 / .1);--shadow-md: 0 4px 14px oklch(.4 .02 60 / .1);--shadow-lg: 0 10px 30px oklch(.4 .02 60 / .12);--shadow-xl: 0 18px 50px oklch(.4 .02 60 / .14);--shadow-glow: var(--shadow-md);--shadow-glow-warm: var(--shadow-md);--ease-out: cubic-bezier(0, 0, .2, 1);--ease-in: cubic-bezier(.4, 0, 1, 1);--ease-spring: cubic-bezier(.22, 1, .36, 1);--dur-fast: .15s;--dur-base: .2s;--dur-slow: .3s;--dur-enter: .4s;--z-base: 0;--z-raised: 10;--z-sticky: 40;--z-overlay: 60;--z-modal: 80;--max-w: 1200px;--max-w-text: 680px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{font-family:var(--ff-body);font-weight:var(--fw-regular);font-size:var(--fs-base);line-height:1.6;color:var(--c-text-100);background-color:var(--c-base);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img,svg,video,canvas{display:block;max-width:100%}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer;border:none;background:none}input,textarea,select{font:inherit}ul,ol{list-style:none}.page{min-height:100vh;position:relative;isolation:isolate}.page:before{content:"";position:fixed;inset:0;background-image:radial-gradient(ellipse at 50% -10%,oklch(.99 .01 90 / .6),transparent 60%);pointer-events:none;z-index:-2}.page:after{content:""}.container{max-width:var(--max-w);margin:0 auto;padding:0 var(--sp-6)}.section{padding:var(--sp-20) 0;border-bottom:1px solid var(--c-border-sub)}.section:last-child{border-bottom:none}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);font-family:var(--ff-mono);font-weight:var(--fw-medium);font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase;line-height:1;padding:var(--sp-3) var(--sp-5);border-radius:var(--r-full);transition:all var(--dur-base) var(--ease-out);position:relative;overflow:hidden;white-space:nowrap;cursor:pointer;outline:none}.btn:focus-visible{outline:2px solid var(--c-accent-deep);outline-offset:2px}.btn svg{width:16px;height:16px;flex-shrink:0}.btn-primary{background:var(--c-accent-deep);color:var(--c-base)}.btn-primary:hover{background:oklch(.4 .16 33);transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-secondary{background:transparent;color:var(--c-text-100);border:1px solid var(--c-border)}.btn-secondary:hover{background:var(--c-surface);border-color:var(--c-text-300);transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-warm{background:var(--c-warm);color:var(--c-base)}.btn-warm:hover{background:var(--c-warm-dim);transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-lg{font-size:var(--fs-sm);padding:var(--sp-4) var(--sp-8)}.card{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r);overflow:hidden;transition:transform var(--dur-slow) var(--ease-spring),border-color var(--dur-base) var(--ease-out),box-shadow var(--dur-slow) var(--ease-out)}.card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md)}.card-body{padding:var(--sp-5) var(--sp-6)}.card-tag{font-family:var(--ff-mono);font-size:var(--fs-xs);color:var(--c-accent);text-transform:uppercase;letter-spacing:.08em;margin-bottom:var(--sp-2)}.card-title{font-family:var(--ff-heading);font-size:var(--fs-lg);font-weight:var(--fw-bold);color:var(--c-text-100);line-height:var(--lh-snug);margin-bottom:var(--sp-2)}.card-text{font-size:var(--fs-sm);color:var(--c-text-200);line-height:var(--lh-relaxed)}.badge{display:inline-flex;align-items:center;gap:var(--sp-1);font-family:var(--ff-mono);font-size:var(--fs-xs);font-weight:var(--fw-medium);padding:var(--sp-1) var(--sp-2);border-radius:var(--r-full)}.badge-accent{background:var(--c-accent-bg);color:var(--c-accent);border:1px solid var(--c-accent-glow)}.badge-warm{background:#8159391a;color:var(--c-warm);border:1px solid oklch(.5 .07 60 / .15)}.badge-neutral{background:var(--c-surface);color:var(--c-text-200);border:1px solid var(--c-border)}.badge-social{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border-radius:50%;transition:transform var(--dur-base) var(--ease-spring),box-shadow var(--dur-base) var(--ease-out),background var(--dur-fast) var(--ease-out);cursor:pointer}.badge-social:hover{transform:translateY(-2px)}.badge-social svg{width:16px;height:16px;flex-shrink:0}.badge-instagram{background:linear-gradient(135deg,#e4405f1f,#b546d11f);color:#e1306c;border:1px solid rgba(225,48,108,.2)}.badge-instagram:hover{background:linear-gradient(135deg,#e4405f33,#b546d133);box-shadow:0 4px 14px #e1306c33}.badge-linkedin{background:#0a66c21a;color:#0a66c2;border:1px solid rgba(10,102,194,.2)}.badge-linkedin:hover{background:#0a66c22e;box-shadow:0 4px 14px #0a66c233}.badge-github{background:var(--c-surface);color:var(--c-text-100);border:1px solid var(--c-border)}.badge-github:hover{background:var(--c-elevated);box-shadow:var(--shadow-sm)}.badge-x{background:var(--c-surface);color:var(--c-text-100);border:1px solid var(--c-border)}.badge-x:hover{background:var(--c-elevated);box-shadow:var(--shadow-sm)}.link{color:var(--c-accent-deep);font-weight:var(--fw-medium);position:relative;transition:color var(--dur-fast) var(--ease-out)}.link:after{content:"";position:absolute;bottom:-1px;left:0;width:0;height:1px;background:var(--c-accent-deep);transition:width var(--dur-base) var(--ease-spring)}.link:hover:after{width:100%}@keyframes fadeUp{to{opacity:1;transform:translateY(0)}}.fade-up{opacity:0;transform:translateY(24px);transition:opacity .6s var(--ease-spring),transform .6s var(--ease-spring)}.fade-up.visible{opacity:1;transform:translateY(0)}@media(max-width:768px){.nav-links{display:none}.section{padding:var(--sp-12) 0}}@media(max-width:480px){.container{padding:0 var(--sp-4)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}:focus-visible{outline:2px solid var(--c-accent-deep);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}
