:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#111827;background:#fff;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--bg:#fff;--surface:#f8f9fb;--text:#111827;--muted:#6b7280;--border:#e5e7eb;--blue:#3b82f6;--shadow:0 10px 30px #18233b08;color-scheme:light}:root.dark{--bg:#111827;--surface:#172033;--text:#f3f4f6;--muted:#a6afbe;--border:#303c50;color:var(--text);background:var(--bg);color-scheme:dark}*{box-sizing:border-box}body{margin:0}button,a,input{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}button:disabled{opacity:.55;cursor:default}button,a{touch-action:manipulation}button:focus-visible,a:focus-visible{outline:3px solid #a855f7;outline-offset:5px}html{scroll-behavior:smooth;scroll-padding-top:95px}h1,h2,h3,h4,h5,p{margin-top:0}h1{font-size:clamp(2.25rem,4vw,3rem);line-height:1.12;letter-spacing:-.035em}h2{font-size:1.9rem;letter-spacing:-.025em;line-height:1.25}h3{font-size:1.35rem;line-height:1.35}h4{font-size:1.05rem}h5{font-size:1rem;margin-bottom:.75rem}p{line-height:1.75;color:var(--muted)}svg{flex-shrink:0}img{max-width:100%;display:block;object-fit:cover}.container{max-width:1280px;margin:auto;padding-left:32px;padding-right:32px}.page{padding-top:140px;padding-bottom:80px;min-height:100vh}.gradient-text{background:linear-gradient(110deg,#3b82f6 12%,#8b5cf6 90%);background-clip:text;-webkit-background-clip:text;color:transparent}.center{text-align:center}.blue{color:var(--blue)}.site-header{position:fixed;top:0;left:0;right:0;height:72px;z-index:40;border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--bg) 92%,transparent);-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px)}.nav-shell{max-width:1280px;padding:0 32px;margin:auto;height:100%;display:flex;align-items:center;justify-content:space-between}.logo{font-size:1.55rem;font-weight:800;letter-spacing:-1px}.navigation{display:flex;align-items:center;gap:32px}.navigation a{font-size:.9rem;font-weight:500;color:var(--muted)}.navigation a.active,.navigation a:hover{color:var(--blue)}.icon-button{padding:10px;display:inline-flex;align-items:center;justify-content:center;border:0;background:transparent;color:var(--text);border-radius:8px}.icon-button:hover{background:var(--surface)}.menu-toggle{display:none}.skip-link{position:fixed;top:-80px;left:20px;padding:12px;background:var(--bg);z-index:99}.skip-link:focus{top:12px}.button{border:1px solid transparent;background:var(--blue);color:#fff;display:inline-flex;gap:9px;align-items:center;justify-content:center;border-radius:6px;padding:12px 22px;font-size:.9rem;font-weight:600;line-height:1.35;transition:background .2s,transform .2s;min-height:44px}.button:hover{background:#2563eb;transform:translateY(-1px)}.button.secondary{background:var(--bg);border-color:var(--border);color:var(--text)}.button.secondary:hover{background:var(--surface)}.actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:24px}.text-link{color:var(--blue);font-weight:600;font-size:.9rem}.back-link{display:inline-flex;gap:9px;align-items:center;font-size:.9rem;margin-bottom:32px;color:var(--muted)}.back-link:hover{color:var(--blue)}.hero{min-height:100vh;padding:160px 24px 90px;background:radial-gradient(ellipse at 15% 85%,#ede4fa99,transparent 48%),radial-gradient(ellipse at 90% 20%,#e3eeff99,transparent 45%),#f8f9fb;display:flex;align-items:center;justify-content:center;text-align:center}.dark .hero{background:radial-gradient(ellipse at 15% 85%,#492c5833,transparent 48%),radial-gradient(ellipse at 90% 20%,#213f6433,transparent 45%),#111827}.hero-content{max-width:920px}.hero h1{font-size:clamp(3rem,6vw,4.6rem);line-height:1.05;font-weight:800;color:var(--text);letter-spacing:-.035em;margin-bottom:26px}.hero p{font-size:1.25rem;line-height:1.6;max-width:790px;margin:0 auto 32px}.hero-actions{display:flex;gap:16px;justify-content:center}.hero-actions .button{font-size:1.05rem;padding:15px 30px}.tech-stack{display:flex;justify-content:center;gap:50px;margin-top:64px}.tech-stack>div{display:flex;flex-direction:column;align-items:center;gap:12px}.tech-stack span{font-size:.875rem;color:var(--muted)}.contact-section{padding-top:85px;padding-bottom:90px;text-align:center}.subtitle{font-size:1.2rem;line-height:1.65}.contact-card{max-width:740px;margin:44px auto 0;padding:40px;background:var(--surface);border:1px solid var(--border);border-radius:14px}.contact-card>svg{margin-bottom:22px}.contact-card h3{font-size:1.6rem}.contact-card p{max-width:550px;margin:0 auto 28px}.contact-card small{display:block;margin-top:24px;color:var(--muted);line-height:1.7}.page-title{text-align:center;max-width:820px;margin:0 auto 64px}.page-title h1{margin-bottom:18px}.page-title p{font-size:1.25rem}.about-intro{display:grid;grid-template-columns:1.15fr 1fr;gap:80px;align-items:center;margin:20px 0 100px}.about-intro p{margin-bottom:22px}.portrait{width:100%;max-width:450px;aspect-ratio:1;border-radius:18px;box-shadow:0 20px 50px #11182720;margin:auto}.image-placeholder{background:linear-gradient(135deg,#dbeafe,#ede9fe);display:flex;align-items:center;justify-content:center;min-height:180px;color:#7184bc}.image-placeholder span{font-size:4rem;font-weight:700}.dark .image-placeholder{background:linear-gradient(135deg,#1e3a5f,#35254d)}.stats{display:flex;gap:60px;margin-top:32px}.stats>div{display:flex;flex-direction:column;gap:7px}.stats strong{font-size:2rem}.stats span{color:var(--muted);font-size:.9rem}.journey>h2,.journey>.subtitle,.skills>h2,.skills>.subtitle{text-align:center}.tabs{display:flex;background:var(--surface);padding:5px;max-width:390px;margin:30px auto 45px;border:1px solid var(--border);border-radius:8px}.tabs button{display:flex;align-items:center;justify-content:center;gap:8px;border:0;background:none;border-radius:5px;width:50%;padding:12px;color:var(--muted)}.tabs button[aria-selected=true]{color:var(--text);background:var(--bg);box-shadow:0 2px 5px #00000012}.timeline{max-width:950px;margin:auto;padding-left:28px;border-left:2px solid #dbeafe}.timeline-card{position:relative;border:1px solid var(--border);background:var(--bg);border-radius:12px;padding:30px;margin-bottom:28px;box-shadow:var(--shadow)}.timeline-card:before{content:"";position:absolute;left:-37px;top:30px;width:14px;height:14px;background:var(--blue);border:3px solid var(--bg);border-radius:50%}.timeline-card h3{margin-bottom:8px}.timeline-card h4{color:var(--blue);margin-bottom:16px}.timeline-card ul{padding-left:20px;color:var(--muted);line-height:1.8;margin-bottom:24px}.meta{display:flex;align-items:center;gap:18px;flex-wrap:wrap;color:var(--muted);font-size:.8rem;line-height:1.7;margin-bottom:20px}.meta span{display:inline-flex;align-items:center;gap:6px}.skills{margin-top:85px}.skill-card{padding:25px}.skill{margin-top:22px}.skill>div:first-child{display:flex;justify-content:space-between;gap:10px;font-size:.9rem}.skill small{color:var(--muted)}.skill-bar{height:7px;background:var(--surface);border-radius:10px;margin-top:10px;overflow:hidden}.skill-bar span{display:block;height:100%;background:linear-gradient(90deg,#3b82f6,#a855f7);border-radius:10px}.tags{display:flex;flex-wrap:wrap;gap:8px}.tags span{border:1px solid var(--border);border-radius:20px;padding:4px 11px;font-size:.75rem;font-weight:500;background:var(--surface);line-height:1.3}.card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}.card{border:1px solid var(--border);border-radius:12px;background:var(--bg);box-shadow:var(--shadow);overflow:hidden}.card-body{padding:25px}.card p{font-size:.95rem}.featured-list{display:grid;gap:32px;margin-top:32px}.featured-card{border:2px solid #bfdbfe;border-radius:12px;overflow:hidden;background:linear-gradient(130deg,#eff6ff,var(--bg),#faf5ff)}.dark .featured-card{background:linear-gradient(130deg,#172033,var(--bg),#231a35);border-color:#1e40af}.featured-banner{padding:32px;display:flex;gap:22px;align-items:center;background:linear-gradient(100deg,#2563eb,#9333ea,#0891b2);color:#fff}.featured-banner>svg{color:#facc15}.featured-banner h3{font-size:1.85rem;margin-bottom:8px}.featured-banner p{color:#dbeafe;margin:0;font-size:1.05rem}.category{background:#facc15;color:#172033;padding:8px 12px;border-radius:20px;font-size:.75rem;font-weight:700;white-space:nowrap;margin-left:auto}.featured-body{padding:32px}.featured-body>p{font-size:1.05rem}.other-projects{margin-top:80px}.other-projects>h2{margin-bottom:32px}.project-card>a>img,.project-card>a>.image-placeholder,.blog-card>img,.blog-card>.image-placeholder{width:100%;height:200px}.project-card h3 a:hover{color:var(--blue)}.project-card .actions{gap:10px}.project-detail{display:grid;grid-template-columns:1fr 1fr;gap:48px}.project-detail img,.project-detail .image-placeholder{width:100%;border-radius:12px;min-height:280px;max-height:520px}.project-detail h2{font-size:1.4rem;margin-top:30px}.pre-line{white-space:pre-line}.category-label{margin-top:25px}.blog-card{display:block;transition:transform .2s,box-shadow .2s}.blog-card:hover{transform:translateY(-4px);box-shadow:0 14px 35px #18233b13}.blog-card h2{font-size:1.35rem}.blog-card .text-link{display:block;margin-top:24px}.article-container{max-width:960px;padding-left:32px;padding-right:32px;margin:auto}.article-cover{width:100%;height:380px;border-radius:12px;margin-bottom:30px}.article-meta{display:flex;align-items:center;justify-content:space-between;gap:20px}.article-meta .meta{margin:0}.prose{font-size:1.05rem;line-height:1.85;border-top:1px solid var(--border);margin:40px 0;padding-top:36px;overflow-wrap:anywhere}.prose h1{font-size:2rem}.prose h2{font-size:1.6rem;margin-top:36px}.prose h3{margin-top:26px}.prose ul,.prose ol{color:var(--muted);padding-left:24px}.prose a{color:var(--blue);text-decoration:underline}.prose pre{padding:22px;background:var(--surface);border:1px solid var(--border);border-radius:8px;overflow:auto;font-size:.9rem}.prose code{font-family:ui-monospace,monospace;background:var(--surface);padding:2px 4px;border-radius:4px}.prose pre code{padding:0}.prose blockquote{border-left:4px solid var(--blue);padding-left:22px;margin-left:0}.prose table{display:block;overflow:auto;border-collapse:collapse}.prose td,.prose th{border:1px solid var(--border);padding:10px}.preview{margin:40px 0;border:1px solid var(--border);border-radius:12px;overflow:hidden;background:var(--bg)}.preview-toolbar{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:20px;background:var(--surface)}.preview-toolbar h2{font-size:1.2rem;margin:0}.preview-toolbar .actions{margin:0}.live-dot{font-size:.7rem;color:#16a34a;font-weight:500;margin-left:8px}.live-dot:before{content:"● ";font-size:.8rem}.preview iframe{display:block;width:100%;height:75vh;border:0;background:#fff}.preview.expanded{position:fixed;top:0;right:0;bottom:0;left:0;z-index:70;margin:0;border-radius:0;display:flex;flex-direction:column}.preview.expanded iframe{flex:1;min-height:0}.preview-note{font-size:.8rem;margin:10px 20px}.empty{text-align:center;padding:50px 20px}.diagnostics{margin:28px 0}.diagnostics section{padding:22px 0;border-top:1px solid var(--border)}.diagnostics h2{font-size:1.2rem}.error-text{overflow-wrap:anywhere;color:#b45309;font-size:.9rem}.not-found{min-height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:110px 24px;text-align:center}.not-found>strong{font-size:6rem}.not-found h1{font-size:2rem}@media(min-width:1100px){.hero h1 br{display:none}.hero-content{max-width:1050px}}@media(max-width:1000px){.card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.about-intro{gap:40px}.featured-banner{flex-wrap:wrap}.category{margin-left:0}.project-detail{gap:30px}.navigation{gap:24px}}@media(max-width:640px){.container,.article-container{padding-left:20px;padding-right:20px}.page{padding-top:116px;padding-bottom:55px}.site-header{height:68px}.nav-shell{padding:0 16px}.menu-toggle{display:inline-flex}.navigation{display:none;position:absolute;top:67px;left:0;right:0;background:var(--bg);padding:20px;border-bottom:1px solid var(--border);align-items:stretch;gap:6px;box-shadow:0 8px 16px #00000008}.navigation.open{display:flex;flex-direction:column}.navigation a{padding:12px}.navigation .icon-button{align-self:flex-start}.hero{padding:135px 16px 55px;min-height:100vh}.hero h1{font-size:2.9rem;letter-spacing:-.035em}.hero p{font-size:1.2rem;line-height:1.45;margin-bottom:32px}.hero-actions{flex-direction:column;align-items:center;gap:15px}.hero-actions .button.secondary{width:100%}.hero-actions .button{min-height:48px;padding:13px 29px}.tech-stack{gap:28px;margin-top:65px}.tech-stack span{font-size:.8rem}.tech-stack svg{width:33px;height:33px}.contact-section{padding-top:60px;padding-bottom:60px}.contact-card{padding:28px 20px}.contact-card .button{font-size:.85rem}.page-title{margin-bottom:44px}.page-title p{font-size:1.1rem}.card-grid{grid-template-columns:1fr;gap:24px}.about-intro{grid-template-columns:1fr;gap:35px;margin:0 0 65px}.portrait{max-width:360px}.stats{gap:36px}.timeline{padding-left:19px}.timeline-card{padding:22px}.timeline-card:before{left:-28px}.timeline-card h3{font-size:1.25rem}.meta{gap:10px}.featured-banner{padding:24px;gap:15px}.featured-banner>svg{width:32px}.featured-banner h3{font-size:1.5rem}.featured-banner>div{flex:1;min-width:180px}.featured-banner p{font-size:.95rem}.featured-body{padding:24px}.featured-body .actions .button{width:100%}.other-projects{margin-top:55px}.project-detail{grid-template-columns:1fr;gap:35px}.article-cover{height:240px}.article-meta{align-items:flex-start}.article-meta .meta{flex-direction:column;align-items:flex-start;gap:3px}.article-container h1{font-size:2.1rem}.preview-toolbar{flex-wrap:wrap;padding:15px}.preview-toolbar .button{font-size:.75rem;padding:9px 12px}.preview-toolbar .actions{gap:8px}.preview iframe{height:65vh}.preview.expanded .preview-note{display:none}.subtitle{font-size:1.1rem}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}.site-footer{border-top:1px solid var(--border);padding:28px 0;color:var(--muted);font-size:.875rem}.site-footer>.container{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}.site-footer nav{display:flex;gap:24px;flex-wrap:wrap}.site-footer a:hover{color:var(--blue)}.legal-page{max-width:850px;margin:auto;padding-left:28px;padding-right:28px}.legal-heading{margin-bottom:32px}.legal-eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:.75rem;color:var(--blue);font-weight:700;display:block;margin-bottom:20px}.legal-date{font-size:.875rem}.legal-draft{padding:20px 24px;border:1px solid #d6ab57;border-radius:10px;background:color-mix(in srgb,#f9ce73 12%,var(--bg));margin-bottom:28px}.legal-draft p{margin:8px 0 0;font-size:.95rem}.legal-index{display:flex;flex-wrap:wrap;gap:12px 22px;padding:20px 0;border-bottom:1px solid var(--border)}.legal-page a{color:var(--blue);text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}.legal-page a.button{color:#fff;text-decoration:none}.legal-page section{margin:42px 0}.legal-page h2{font-size:1.6rem}.legal-page h3{font-size:1.1rem;margin-top:28px}.legal-page p{line-height:1.85}.legal-pending{border-left:3px solid #d6ab57;padding-left:14px}.legal-contact{font-style:normal;display:flex;flex-direction:column;gap:10px;padding:24px;background:var(--surface);border:1px solid var(--border);border-radius:10px;line-height:1.6}.legal-contact a{display:flex;align-items:center;gap:8px}.legal-objection{padding:24px;border:1px solid var(--blue);border-radius:10px;background:color-mix(in srgb,var(--blue) 6%,var(--bg))}.legal-objection h3{margin-top:0}.legal-related{border-top:1px solid var(--border);padding-top:24px;display:flex;gap:24px;flex-wrap:wrap}.legal-page p a svg{vertical-align:middle}@media(max-width:640px){.legal-page{padding-left:20px;padding-right:20px}.legal-page h1{font-size:2.25rem}.legal-contact,.legal-objection,.legal-draft{padding:20px}.site-footer>.container{flex-direction:column}}
