@import"https://fonts.googleapis.com/css2?family=Outfit:wght@100..900&family=Lexend:wght@100..900&family=JetBrains+Mono:ital,wght@0,100..800;1,100..800&display=swap";:root{color-scheme:dark;--radius: .5rem;--hex-forest: #31372b;--hex-cream: #faf7ee;--n-50: #ffffff;--n-100: #faf7ee;--n-200: #f4f0e4;--n-300: #ebe6d8;--n-400: #c5d0ba;--n-500: #8c9a7d;--n-600: #5d6852;--n-700: #464f3e;--n-800: #3b4234;--n-900: #31372b;--n-950: #272c22;--n-1000: #1d211a;--bg: #31372b;--surface: #272c22;--surface-elevated: #3b4234;--surface-raised: #464f3e;--surface-pressed: #1d211a;--ink: #faf7ee;--ink-inverse: #31372b;--text-primary: #faf7ee;--text-secondary: rgba(250, 247, 238, .88);--text-muted: rgba(250, 247, 238, .64);--text-faint: rgba(250, 247, 238, .38);--text-disabled: rgba(250, 247, 238, .22);--line: rgba(250, 247, 238, .15);--line-strong: rgba(250, 247, 238, .32);--line-soft: rgba(250, 247, 238, .08);--card-border: rgba(250, 247, 238, .14);--border-subtle: rgba(250, 247, 238, .15);--border-strong: rgba(250, 247, 238, .32);--surface-hover: rgba(250, 247, 238, .08);--surface-active: rgba(250, 247, 238, .14);--disabled-bg: rgba(250, 247, 238, .04);--overlay: rgba(29, 33, 26, .94);--glow: rgba(250, 247, 238, .06);--ring: rgba(250, 247, 238, .45);--accent: #faf7ee;--accent-strong: #ffffff;--accent-soft: rgba(250, 247, 238, .16);--on-accent: #31372b;--complement: #c5d0ba;--complement-strong: #faf7ee;--complement-soft: rgba(197, 208, 186, .2);--on-complement: #31372b;--success: #7ad19d;--warning: #f5bf5d;--danger: #f48c8c;--danger-soft: rgba(244, 140, 140, .18);--shadow-accent: 0 0 0 1px var(--accent-soft), 0 6px 24px rgba(29, 33, 26, .45);--shadow-complement: 0 0 0 1px var(--complement-soft), 0 6px 20px rgba(29, 33, 26, .35);--pattern-dot: rgba(250, 247, 238, .18);--wave-pattern: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='48' viewBox='0 0 140 48'%3E%3Cpath d='M0 24 Q 35 4, 70 24 T 140 24' fill='none' stroke='rgba(250,247,238,0.095)' stroke-width='1.2' stroke-dasharray='2 6' stroke-linecap='round'/%3E%3Cpath d='M0 38 Q 35 18, 70 38 T 140 38' fill='none' stroke='rgba(250,247,238,0.055)' stroke-width='1' stroke-dasharray='1 7' stroke-linecap='round'/%3E%3C/svg%3E");--font-display: "Outfit", system-ui, sans-serif;--font-body: "Lexend", system-ui, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--text-xs: .75rem;--text-sm: .833rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.333rem;--text-2xl: 1.777rem;--text-3xl: 2.369rem;--text-4xl: 3.157rem;--text-5xl: 4.209rem;--text-6xl: 5.61rem;--text-7xl: 7.478rem;--display-lg: 7.478rem;--display-md: 5.61rem;--display-sm: 4.209rem;--heading-lg: 2.369rem;--heading-md: 1.777rem;--heading-sm: 1.333rem;--body-lg: 1.125rem;--body-md: 1rem;--body-sm: .833rem;--body-xs: .75rem;--caption: .694rem;--mono-md: .833rem;--mono-sm: .75rem;--lh-display: 1.02;--lh-heading: 1.15;--lh-body: 1.6;--lh-caption: 1.35;--tracking-display: -.03em;--tracking-heading: -.018em;--tracking-body: -.005em;--tracking-caption: .12em;--radius-xs: 3px;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--radius-xl: 24px;--radius-2xl: 32px;--radius-pill: 9999px;--shadow-1: 0 1px 3px rgba(18, 22, 16, .4), 0 4px 12px rgba(18, 22, 16, .2);--shadow-2: 0 6px 20px rgba(18, 22, 16, .45), 0 12px 36px rgba(18, 22, 16, .28);--shadow-3: 0 12px 36px rgba(18, 22, 16, .55), 0 28px 72px rgba(18, 22, 16, .35);--dur-1: .15s;--dur-2: .25s;--dur-3: .4s;--dur-4: .65s;--ease-standard: cubic-bezier(.2, 0, 0, 1);--ease-enter: cubic-bezier(0, 0, .2, 1);--ease-exit: cubic-bezier(.4, 0, 1, 1);--z-raised: 100;--z-nav: 200;--z-overlay: 300;--container: 1600px;--canvas: var(--bg);--paper: var(--surface);--muted: var(--text-muted);--soft-line: var(--line-soft)}[data-theme=light]{color-scheme:light;--bg: #faf7ee;--surface: #ffffff;--surface-elevated: #f4f0e4;--surface-raised: #ebe6d8;--surface-pressed: #dfd9c8;--ink: #31372b;--ink-inverse: #faf7ee;--text-primary: #31372b;--text-secondary: rgba(49, 55, 43, .88);--text-muted: rgba(49, 55, 43, .64);--text-faint: rgba(49, 55, 43, .38);--text-disabled: rgba(49, 55, 43, .22);--line: rgba(49, 55, 43, .13);--line-strong: rgba(49, 55, 43, .3);--line-soft: rgba(49, 55, 43, .06);--card-border: rgba(49, 55, 43, .12);--border-subtle: rgba(49, 55, 43, .13);--border-strong: rgba(49, 55, 43, .3);--surface-hover: rgba(49, 55, 43, .05);--surface-active: rgba(49, 55, 43, .09);--disabled-bg: rgba(49, 55, 43, .04);--overlay: rgba(250, 247, 238, .95);--glow: rgba(49, 55, 43, .04);--ring: rgba(49, 55, 43, .35);--accent: #31372b;--accent-strong: #1d211a;--accent-soft: rgba(49, 55, 43, .12);--on-accent: #faf7ee;--complement: #5d6852;--complement-strong: #464f3e;--complement-soft: rgba(93, 104, 82, .14);--on-complement: #faf7ee;--shadow-accent: 0 0 0 1px var(--accent-soft), 0 6px 20px rgba(49, 55, 43, .08);--shadow-complement: 0 0 0 1px var(--complement-soft), 0 6px 16px rgba(49, 55, 43, .06);--pattern-dot: rgba(49, 55, 43, .15);--wave-pattern: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='48' viewBox='0 0 140 48'%3E%3Cpath d='M0 24 Q 35 4, 70 24 T 140 24' fill='none' stroke='rgba(49,55,43,0.075)' stroke-width='1.2' stroke-dasharray='2 6' stroke-linecap='round'/%3E%3Cpath d='M0 38 Q 35 18, 70 38 T 140 38' fill='none' stroke='rgba(49,55,43,0.045)' stroke-width='1' stroke-dasharray='1 7' stroke-linecap='round'/%3E%3C/svg%3E");--shadow-1: 0 1px 3px rgba(49, 55, 43, .05), 0 3px 10px rgba(49, 55, 43, .03);--shadow-2: 0 4px 14px rgba(49, 55, 43, .07), 0 8px 24px rgba(49, 55, 43, .04);--shadow-3: 0 10px 28px rgba(49, 55, 43, .09), 0 20px 48px rgba(49, 55, 43, .05);--canvas: var(--bg);--paper: var(--surface)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-family:var(--font-body);font-size:16px;line-height:var(--lh-body);color:var(--ink);background-color:var(--canvas);scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{min-height:100vh;background-color:var(--canvas);color:var(--ink);overflow-x:hidden;font-feature-settings:"cv02","cv03","cv04","cv11"}*,h1,h2,h3,h4,h5,h6,p,span,a,em,strong,time{text-shadow:none!important}.display-font{font-family:var(--font-display);letter-spacing:var(--tracking-display)}.display-emphasis{font-style:italic;font-weight:300}.font-mono{font-family:var(--font-mono)}.pattern-surface{background-color:var(--canvas);background-image:var(--wave-pattern),radial-gradient(circle at 1px 1px,var(--pattern-dot) 1px,transparent 0);background-size:140px 48px,24px 24px;background-position:center top,0 0}.outline-action{display:inline-flex;min-height:2.75rem;align-items:center;justify-content:center;gap:.6rem;border:1px solid var(--border-subtle);border-radius:var(--radius-pill);background-color:var(--canvas);padding:.65rem 1.4rem;font-family:var(--font-body);font-size:var(--text-sm);font-weight:500;line-height:1;color:var(--ink);text-decoration:none;cursor:pointer;box-shadow:var(--shadow-1);transition:all var(--dur-2) var(--ease-standard);-webkit-user-select:none;user-select:none;white-space:nowrap}.outline-action:hover{background-color:var(--ink);color:var(--canvas);border-color:var(--ink);box-shadow:var(--shadow-2);transform:translateY(-2px)}.outline-action:active{transform:translateY(0)}.top-controls-dock{position:fixed;top:1.25rem;right:1.25rem;z-index:150;display:flex;align-items:center;gap:.5rem;padding:.35rem;border-radius:var(--radius-pill);border:1px solid var(--border-subtle);background-color:color-mix(in srgb,var(--canvas) 85%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:var(--shadow-1)}.top-control-btn{display:inline-flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;border-radius:50%;border:1px solid transparent;background:transparent;color:var(--ink);cursor:pointer;transition:all var(--dur-1) var(--ease-standard)}.top-control-btn:hover{background:var(--surface-hover);border-color:var(--card-border);transform:scale(1.05)}.top-control-btn:active{transform:scale(.95)}.booking-card{position:relative;display:flex;flex-direction:column;justify-content:space-between;width:100%;text-align:left;border:1px solid var(--card-border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-1);padding:1.35rem 1.6rem;color:var(--ink);cursor:pointer;transition:border-color var(--dur-2) var(--ease-standard),box-shadow var(--dur-2) var(--ease-standard),transform var(--dur-2) var(--ease-standard);overflow:hidden}.booking-card:hover{border-color:var(--line-strong);box-shadow:var(--shadow-2);transform:translateY(-2px)}.booking-card__head{display:flex;align-items:center;justify-content:space-between;width:100%}.booking-card__tag{display:inline-flex;align-items:center;gap:.45rem;font-family:var(--font-mono);font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted)}.booking-card__plus{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.25em;color:var(--text-faint);-webkit-user-select:none;user-select:none}.booking-card__body{display:flex;flex-direction:column;gap:.75rem;margin-top:1.15rem}@media(min-width:640px){.booking-card__body{flex-direction:row;align-items:flex-end;justify-content:space-between}}.booking-card__title{font-family:var(--font-display);font-size:clamp(1.6rem,2.5vw,2.1rem);font-weight:700;line-height:1.05;color:var(--ink);letter-spacing:-.025em}.booking-card__meta{display:flex;align-items:center;gap:.85rem}.booking-card__time{display:inline-flex;align-items:baseline;padding:.25rem .65rem;border-radius:var(--radius-pill);border:1px solid var(--card-border);background:var(--surface-elevated);font-family:var(--font-mono);font-size:.85rem;font-weight:700;color:var(--ink);white-space:nowrap}.booking-card__time em{font-style:normal;font-size:.7rem;color:var(--text-muted);margin-left:2px}.booking-card__note{font-family:var(--font-body);font-size:.8rem;line-height:1.35;color:var(--text-muted)}.booking-card__foot{display:flex;align-items:center;justify-content:space-between;margin-top:1.35rem;padding-top:1rem;border-top:1px solid var(--line-soft);width:100%}.booking-card__alive{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--font-mono);font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary)}.booking-card__dot{display:inline-block;width:7px;height:7px;border-radius:50%;background-color:var(--success);box-shadow:0 0 8px var(--success);animation:booking-pulse 2.2s ease-in-out infinite}@keyframes booking-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.85)}}.booking-card__cta{display:inline-flex;align-items:center;gap:.4rem;font-family:var(--font-body);font-size:.82rem;font-weight:600;color:var(--ink);padding:.35rem .9rem;border-radius:var(--radius-pill);border:1px solid var(--card-border);background:var(--surface-elevated);transition:all var(--dur-1) var(--ease-standard);white-space:nowrap}.booking-card:hover .booking-card__cta{background:var(--ink);color:var(--canvas);border-color:var(--ink)}.booking-card__cta-icon{transition:transform var(--dur-1) var(--ease-standard)}.booking-card:hover .booking-card__cta-icon{transform:translate(2px,-2px)}.booking-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:250;display:flex;align-items:center;justify-content:center;background:var(--overlay);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:1.25rem;animation:booking-fade .2s ease-out}.booking-modal{position:relative;width:100%;max-width:640px;border-radius:var(--radius-xl);border:1px solid var(--line-strong);background:var(--surface);box-shadow:var(--shadow-3);overflow:hidden;animation:booking-rise .25s cubic-bezier(.16,1,.3,1)}.booking-modal__head{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.35rem;border-bottom:1px solid var(--line-soft)}.booking-modal__tag{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--font-mono);font-size:.8rem;font-weight:600;color:var(--ink)}.booking-modal__close{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:50%;border:1px solid var(--card-border);background:var(--surface-elevated);color:var(--ink);cursor:pointer;transition:all var(--dur-1) var(--ease-standard)}.booking-modal__close:hover{background:var(--ink);color:var(--canvas)}.booking-modal__body{width:100%;height:65dvh;max-height:560px}.booking-modal__frame{width:100%;height:100%;border:none}.booking-modal__foot{padding:.75rem 1.25rem;border-top:1px solid var(--line-soft);font-family:var(--font-mono);font-size:.75rem;text-align:center}.booking-modal__foot a{color:var(--text-muted);text-decoration:none;transition:color .15s ease}.booking-modal__foot a:hover{color:var(--ink)}@keyframes booking-fade{0%{opacity:0}to{opacity:1}}@keyframes booking-rise{0%{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.skills-card{position:relative;border:1px solid var(--card-border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-1);padding:1.25rem 1.5rem;transition:border-color var(--dur-2) var(--ease-standard),box-shadow var(--dur-2) var(--ease-standard)}.skills-card:hover{border-color:var(--line-strong);box-shadow:var(--shadow-2)}.skill-card-compact{padding:1.15rem 1.35rem}.skill-card-compact .tech-badge{min-height:1.6rem;gap:.35rem;border-radius:999px;padding:.22rem .55rem;font-size:.68rem}.skill-card-compact .tech-badge__icon{width:.88rem;height:.88rem}.tech-badge{display:inline-flex;min-height:2rem;align-items:center;gap:.5rem;border:1px solid var(--card-border);border-radius:var(--radius-pill);background:var(--surface);padding:.38rem .72rem;color:var(--ink);font-size:var(--caption);font-weight:600;line-height:1;white-space:nowrap;transition:border-color var(--dur-1),background-color var(--dur-1)}.tech-badge__icon{width:1rem;height:1rem;object-fit:contain}.tech-badge__fallback{color:var(--text-muted)}.tech-badge--micro{min-height:1.4rem!important;padding:.18rem .5rem!important;font-size:.66rem!important;gap:.32rem!important;border-radius:999px!important;line-height:1!important}.tech-badge--micro .tech-badge__icon,.tech-badge--micro .tech-badge__fallback{width:.78rem!important;height:.78rem!important}.project-card{position:relative;overflow:hidden;border:1px solid var(--card-border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-1);text-decoration:none;color:var(--ink);transition:all var(--dur-2) var(--ease-standard)}.project-card:hover{border-color:var(--line-strong);box-shadow:var(--shadow-2);transform:translateY(-3px)}.project-stage{position:relative;width:100%;background:var(--surface-elevated)}.project-stage__inner{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;padding:1rem}.project-stage__img{max-height:100%;max-width:100%;object-fit:cover;border-radius:var(--radius-sm);transition:transform var(--dur-3) var(--ease-standard)}.project-card:hover .project-stage__img{transform:scale(1.03)}.project-stage__glow{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;opacity:.15;filter:blur(20px);transform:scale(1.1);pointer-events:none}.gh-level-0{background-color:#faf7ee14;border:1px solid rgba(250,247,238,.09)}.gh-level-1{background-color:#55624c;border:1px solid rgba(250,247,238,.12)}.gh-level-2{background-color:#7e9471;border:1px solid rgba(250,247,238,.16)}.gh-level-3{background-color:#b5caa3}.gh-level-4{background-color:#faf7ee;box-shadow:0 0 4px #faf7ee59}[data-theme=light] .gh-level-0{background-color:#e5decb;border:1px solid rgba(49,55,43,.1)}[data-theme=light] .gh-level-1{background-color:#b8c5ab}[data-theme=light] .gh-level-2{background-color:#819273}[data-theme=light] .gh-level-3{background-color:#4f5945}[data-theme=light] .gh-level-4{background-color:#31372b;box-shadow:0 0 4px #31372b40}.loading-line{width:120px;height:2px;background:linear-gradient(90deg,transparent,var(--ink),transparent);animation:loading-pulse 1.4s ease-in-out infinite}@keyframes loading-pulse{0%{transform:scaleX(.2);opacity:.2}50%{transform:scaleX(1);opacity:1}to{transform:scaleX(.2);opacity:.2}}.footer-monogram{font-family:var(--font-display);font-size:clamp(6rem,18vw,14rem);font-weight:800;line-height:.85;letter-spacing:-.04em;color:var(--ink);text-shadow:none!important}.manager-field{width:100%;border:0;border-bottom:1px solid var(--border-subtle);background:transparent;padding:.75rem 0;color:var(--ink);outline:none;font-family:var(--font-body);transition:border-color .16s ease}.manager-field:focus{border-color:var(--ink)}.manager-field::placeholder{color:var(--text-faint)}.manager-tech-chip{display:inline-flex;align-items:center;overflow:hidden;border:1px solid var(--card-border);border-radius:var(--radius-pill);background:var(--surface-elevated)}.manager-tech-chip__badge{border:0;background:transparent}.manager-tech-chip__remove{display:flex;align-items:center;justify-content:center;padding:0 .5rem 0 .2rem;color:var(--text-muted);cursor:pointer;transition:color .12s ease}.manager-tech-chip__remove:hover{color:var(--ink)}.article-content{color:var(--text-secondary);font-family:var(--font-body);font-size:clamp(1.05rem,1.2vw,1.2rem);line-height:1.85;white-space:pre-wrap;word-break:break-word}.article-content h1,.article-content h2,.article-content h3,.article-content h4{margin:3rem 0 1.25rem;color:var(--ink);font-family:var(--font-display);font-weight:700;letter-spacing:var(--tracking-heading);line-height:var(--lh-heading)}.article-content h1{font-size:clamp(2rem,3vw,2.75rem)}.article-content h2{font-size:clamp(1.6rem,2.4vw,2.2rem)}.article-content h3{font-size:clamp(1.3rem,1.8vw,1.65rem)}.article-content h4{font-size:clamp(1.1rem,1.4vw,1.35rem)}.article-content p{margin-bottom:1.85rem;color:var(--text-secondary)}.article-content ul,.article-content ol{margin:1.5rem 0 2rem;padding-left:1.75rem}.article-content li{margin-bottom:.75rem;line-height:1.8}.article-content blockquote{margin:2.5rem 0;padding:1.25rem 1.75rem;border-left:3px solid var(--accent);background:var(--surface-elevated);border-radius:0 var(--radius-md) var(--radius-md) 0;font-family:var(--font-display);font-size:1.18rem;font-style:italic;color:var(--ink)}.article-content code{font-family:var(--font-mono);font-size:.88em;background-color:var(--surface-elevated);padding:.2em .45em;border-radius:4px;border:1px solid var(--line);color:var(--ink)}.article-content pre{margin:2.5rem 0;padding:1.5rem 1.75rem;background-color:var(--surface-pressed);border:1px solid var(--card-border);border-radius:var(--radius-lg);overflow-x:auto;box-shadow:var(--shadow-1)}.article-content pre code{background-color:transparent;padding:0;border:none;font-size:.9em;line-height:1.7}.article-content a{color:var(--ink);text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:4px;transition:opacity .15s ease}.article-content a:hover{opacity:.8}.article-content img{max-width:100%;height:auto;margin:2.5rem 0;border-radius:var(--radius-lg);border:1px solid var(--card-border);box-shadow:var(--shadow-2)}.resume-page{display:flex;height:100dvh;flex-direction:column;background:var(--canvas)}.resume-toolbar{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;min-height:84px;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--bg) 94%,transparent);padding:.85rem 5.5rem .85rem 1.25rem;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.resume-toolbar__identity,.resume-toolbar__actions{display:flex;align-items:center;gap:.85rem}.resume-icon-button{display:inline-flex;height:2.5rem;width:2.5rem;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:50%;background:var(--bg);color:var(--ink);text-decoration:none;transition:background-color .18s ease,color .18s ease,border-color .18s ease}.resume-icon-button:hover{background:var(--ink);color:var(--canvas)}.resume-viewer-shell{flex:1;min-height:0;padding:84px 0 0}.resume-viewer{display:block;width:100%;height:100%;border:0;background:var(--surface)}@media(max-width:639px){.top-controls-dock{top:1rem;right:1rem}.resume-toolbar{min-height:76px;padding:.65rem 5.5rem .65rem .75rem}}
