:root{color-scheme:light;--bg: #f5f7fb;--surface: #ffffff;--surface-2: #eef3ff;--text: #0b1220;--muted: #334155;--border: #dbe3ef;--accent: #1d4ed8;--accent-contrast: #ffffff;--accent-soft: #dbeafe;--tag-bg: #dbeafe;--tag-text: #1e3a8a;--hover-bg: #eff6ff;--hover-border: #93c5fd;--max-width: 1080px;--ease-smooth: cubic-bezier(.16, 1, .3, 1);--dur-fast: .24s;--dur-normal: .42s}html[data-theme=dark]{color-scheme:dark;--bg: #0b1020;--surface: #111827;--surface-2: #172033;--text: #f3f6ff;--muted: #b8c4d9;--border: #27344b;--accent: #8ab4ff;--accent-contrast: #0b1020;--accent-soft: #1a2336;--tag-bg: #1a2336;--tag-text: #dce8ff;--hover-bg: #1a2336;--hover-border: #3a4a66}html{scroll-behavior:smooth;height:100%}*{box-sizing:border-box}body{display:flex;flex-direction:column;min-height:100vh;margin:0;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);line-height:1.7;transition:background-color .42s var(--ease-smooth),color .32s var(--ease-smooth)}body>main{flex:1}.container{width:min(var(--max-width),calc(100% - 2rem));margin-inline:auto}.site-header{position:sticky;top:0;z-index:100;background:color-mix(in oklab,var(--surface) 92%,transparent 8%);backdrop-filter:blur(10px);border-bottom:1px solid var(--border)}.header-inner{padding:0}.header-content{display:flex;align-items:center;justify-content:space-between;min-height:4rem;gap:1.5rem}.header-nav{display:flex;flex:1}.header-actions{display:flex;align-items:center;gap:.65rem;flex-shrink:0}.header-nav-mobile{display:none;background:var(--surface);border-top:1px solid var(--border)}.header-nav-mobile.open{display:block}.nav-list-mobile{list-style:none;display:flex;flex-direction:column;gap:0;margin:0;padding:0}.nav-list-mobile li{border-bottom:1px solid var(--border)}.nav-list-mobile a{display:block;padding:1rem;text-decoration:none;color:var(--muted);font-weight:600;transition:background-color var(--dur-fast) var(--ease-smooth),color var(--dur-fast) var(--ease-smooth)}.nav-list-mobile a:hover,.nav-list-mobile a:focus-visible{background:var(--hover-bg);color:var(--text)}.brand{font-weight:700;color:var(--text);text-decoration:none;transition:color var(--dur-fast) var(--ease-smooth)}.brand:hover,.brand:focus-visible{color:var(--accent)}.nav-list{list-style:none;display:flex;gap:1rem;padding:0;margin:0}a{color:var(--accent);transition:color var(--dur-fast) var(--ease-smooth)}.nav-list a{text-decoration:none;color:var(--muted);font-weight:600;padding:.38rem .62rem;border-radius:8px;transition:color var(--dur-fast) var(--ease-smooth),background-color var(--dur-fast) var(--ease-smooth),transform var(--dur-fast) var(--ease-smooth)}.nav-list a:hover,.nav-list a:focus-visible{background:var(--hover-bg);color:var(--text);transform:translateY(-1px)}html[data-theme=dark] .nav-list a:hover,html[data-theme=dark] .nav-list a:focus-visible{color:var(--text)}.theme-toggle{position:relative;width:2.35rem;height:2.35rem;border:1px solid var(--border);background:color-mix(in oklab,var(--surface) 90%,var(--accent-soft) 10%);color:var(--text);border-radius:999px;font:inherit;font-weight:600;padding:0;cursor:pointer;overflow:hidden;transition:transform var(--dur-fast) var(--ease-smooth),border-color var(--dur-fast) var(--ease-smooth),background-color var(--dur-fast) var(--ease-smooth),box-shadow var(--dur-fast) var(--ease-smooth);flex-shrink:0}.theme-toggle:hover,.theme-toggle:focus-visible{transform:translateY(-1px) scale(1.02);border-color:var(--hover-border);background:var(--hover-bg);box-shadow:0 10px 20px #0f172a24}html[data-theme=dark] .theme-toggle:hover,html[data-theme=dark] .theme-toggle:focus-visible{border-color:var(--hover-border);background:var(--hover-bg)}html[data-theme=dark] .theme-toggle{background:color-mix(in oklab,var(--surface) 88%,var(--accent-soft) 12%)}.menu-toggle{display:none;flex-direction:column;width:2.35rem;height:2.35rem;border:1px solid var(--border);background:color-mix(in oklab,var(--surface) 90%,var(--accent-soft) 10%);color:var(--text);border-radius:8px;padding:0;cursor:pointer;gap:5px;align-items:center;justify-content:center;transition:transform var(--dur-fast) var(--ease-smooth),background-color var(--dur-fast) var(--ease-smooth);flex-shrink:0}.menu-toggle:hover,.menu-toggle:focus-visible{transform:translateY(-1px);background:var(--hover-bg)}.hamburger{display:flex;flex-direction:column;gap:5px}.line{width:1.2rem;height:2px;background:currentColor;transition:all var(--dur-fast) var(--ease-smooth);transform-origin:center}.menu-toggle[aria-expanded=true] .line-1{transform:rotate(45deg) translate(8px,8px)}.menu-toggle[aria-expanded=true] .line-2{opacity:0}.menu-toggle[aria-expanded=true] .line-3{transform:rotate(-45deg) translate(8px,-8px)}.theme-icon{position:absolute;inset:0;display:grid;place-items:center;transition:transform .42s var(--ease-smooth),opacity .42s var(--ease-smooth)}.theme-icon.sun{opacity:1;transform:scale(1) rotate(0)}.theme-icon.moon{opacity:0;transform:scale(.82) rotate(-16deg)}.theme-toggle[data-mode=dark] .theme-icon.sun{opacity:0;transform:scale(.82) rotate(16deg)}.theme-toggle[data-mode=dark] .theme-icon.moon{opacity:1;transform:scale(1) rotate(0)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}main.container{padding-block:2.5rem 4rem}.hero{margin-bottom:1.4rem;background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:clamp(1rem,4vw,2rem);box-shadow:0 6px 20px #0f172a0d;animation:fade-up .7s var(--ease-smooth) both}.hero-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:1rem;align-items:stretch}.hero-image-slot{border:1px dashed var(--hover-border);background:var(--surface-2);border-radius:12px;min-height:240px;padding:1rem;display:flex;flex-direction:column;justify-content:center;gap:.35rem;color:var(--text);animation:fade-up .78s var(--ease-smooth) both}.hero-image-slot p{margin:0;font-weight:700}.hero-image-slot small{color:#334155}.profile-placeholder{max-width:100%;max-height:280px;width:auto;height:auto;object-fit:contain;border-radius:12px;margin:auto}.hero.compact{margin-bottom:1.25rem}.kicker{display:inline-block;margin:0;padding:.25rem .6rem;border-radius:999px;background:var(--tag-bg);color:var(--tag-text);font-size:.83rem;font-weight:600;letter-spacing:.02em}h1,h2,h3{margin:0 0 .5rem;line-height:1.2}h1{font-size:clamp(2rem,5vw,3.25rem);margin-top:.85rem}.lead{color:var(--muted);max-width:70ch}.hero-note{margin:.5rem 0 0;color:var(--muted);font-weight:500;max-width:72ch}.highlights{margin-bottom:1rem}.grid{display:grid;gap:1rem}.grid.two{grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:1.1rem;box-shadow:0 4px 14px #0f172a0a;transition:transform var(--dur-normal) var(--ease-smooth),box-shadow var(--dur-normal) var(--ease-smooth),border-color var(--dur-normal) var(--ease-smooth);animation:fade-up .52s var(--ease-smooth) both;will-change:transform,box-shadow}.card:hover,.card:focus-within{transform:translateY(-2px);border-color:var(--hover-border);box-shadow:0 10px 24px #0f172a14}.accent-card{border-left:5px solid var(--accent);background:color-mix(in oklab,var(--surface) 84%,var(--accent-soft) 16%)}.accent-card.alt{border-left:5px solid var(--accent);background:color-mix(in oklab,var(--surface) 80%,var(--accent-soft) 20%)}.accent-card:hover,.accent-card:focus-within,.accent-card.alt:hover,.accent-card.alt:focus-within{transform:translateY(-3px);border-color:var(--hover-border);box-shadow:0 12px 26px #0f172a1a}.card h2,.card h3{margin-bottom:.4rem}.meta{margin:0 0 .45rem;color:var(--muted);font-size:.95rem}.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin:2rem 0 .8rem}.text-link{text-decoration:none;font-weight:500}.button{display:inline-block;text-decoration:none;font-weight:600;background:var(--accent);color:var(--accent-contrast);padding:.7rem 1rem;border-radius:10px;margin-top:.3rem;box-shadow:0 8px 16px #1d4ed833;transition:transform var(--dur-fast) var(--ease-smooth),box-shadow var(--dur-fast) var(--ease-smooth),background-color var(--dur-fast) var(--ease-smooth)}.button:hover,.button:focus-visible{transform:translateY(-1px);box-shadow:0 11px 20px #1d4ed838}.contact-section{margin-top:2rem;background:var(--surface-2);border:1px solid var(--hover-border);border-radius:14px;padding:1.2rem;box-shadow:0 6px 18px #2563eb1f}.post{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:clamp(1rem,4vw,2rem)}.post-content{margin-top:1rem}.post-content h2,.post-content h3{margin-top:1.4rem}.post-content p,.post-content li{color:var(--text)}html[data-theme=dark] .post-content p,html[data-theme=dark] .post-content li,html[data-theme=dark] .legal p,html[data-theme=dark] .hero-note,html[data-theme=dark] .hero-image-slot small{color:var(--muted)}.site-footer{border-top:1px solid var(--border);background:var(--surface)}.footer-inner{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:1.15rem 0;color:var(--muted);font-size:.98rem}.footer-links{display:flex;gap:.9rem;flex-wrap:wrap}.footer-links a{text-decoration:none;color:var(--muted);font-weight:500;transition:color var(--dur-fast) var(--ease-smooth)}.footer-links a:hover,.footer-links a:focus-visible{color:var(--accent)}.legal{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:clamp(1rem,4vw,2rem)}.project-card{border-top:4px solid var(--accent)}.project-card-link{display:block;color:inherit;text-decoration:none}.project-card-link:hover,.project-card-link:focus-visible{border-color:var(--hover-border);box-shadow:0 10px 24px #0f172a14}.home-projects-grid{align-items:stretch;grid-auto-rows:1fr}.home-projects-grid .project-card-link{height:100%;display:flex;flex-direction:column}.contact-form-panel{margin-top:1.35rem}.project-preview-faded{position:relative;min-height:0;max-height:none}.pulse-arrow{position:absolute;right:1rem;bottom:.75rem;font-size:1.35rem;font-weight:700;color:var(--accent);animation:pulse-arrow 1.4s var(--ease-smooth) infinite}.project-highlights{margin:.6rem 0 .9rem;padding-left:1.1rem}.project-card ul{margin:.6rem 0 0;padding-left:1.1rem}.project-content h2,.project-content h3{margin-top:1rem}.project-content ul{margin:.6rem 0 0;padding-left:1.1rem}.legal h2{margin-top:1.2rem}.legal p{color:var(--text)}.contact-form{display:grid;gap:.65rem;margin-top:.8rem;max-width:680px}.contact-form label{font-weight:600;color:var(--text)}.contact-form input,.contact-form textarea{width:100%;border:1px solid var(--border);border-radius:10px;padding:.68rem .8rem;font:inherit;color:var(--text);background:var(--surface)}.contact-form textarea{resize:vertical;min-height:140px}.form-status{padding:.6rem .8rem;border-radius:10px;font-weight:500}.form-status.success,.form-status.error{background:var(--surface-2);border:1px solid var(--hover-border);color:var(--text)}.admin-shell{max-width:720px;margin:0 auto}.admin-editor textarea,.admin-editor select{width:100%;border:1px solid var(--border);border-radius:10px;padding:.68rem .8rem;font:inherit;color:var(--text);background:#fff}.admin-editor textarea{min-height:420px;resize:vertical}.editor-actions{display:grid;grid-template-columns:90px 1fr auto auto;gap:.6rem;align-items:center;margin-bottom:.8rem}.editor-actions:last-child{grid-template-columns:auto 1fr;margin-top:.7rem}.button-secondary{background:#334155}.grid>.card:nth-child(2),.grid>.project-card-link:nth-child(2){animation-delay:.11s}.grid>.card:nth-child(3),.grid>.project-card-link:nth-child(3){animation-delay:.18s}.grid>.card:nth-child(4),.grid>.project-card-link:nth-child(4){animation-delay:.25s}@keyframes fade-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse-arrow{0%,to{transform:translate(0);opacity:.6}50%{transform:translate(4px);opacity:1}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition-duration:0ms!important}}@media(max-width:680px){.hero-grid{grid-template-columns:1fr}.hero-image-slot{min-height:200px}.header-content{min-height:3.5rem}.header-nav{display:none}.menu-toggle{display:flex}.header-nav-mobile{max-height:0;overflow:hidden;transition:max-height var(--dur-normal) var(--ease-smooth)}.header-nav-mobile.open{max-height:400px}.footer-inner{flex-direction:column;align-items:flex-start}.editor-actions,.editor-actions:last-child{grid-template-columns:1fr}}
