:root{--ink:#17212b;--muted:#5f6d79;--blue:#1f5f8b;--blue-dark:#163f5c;--line:#dfe6eb;--soft:#f5f7f9;--white:#fff;--max:1180px;--shadow:0 20px 55px #162d3e12;--shadow-soft:0 10px 32px #162d3e0b}*{box-sizing:border-box}html{scroll-behavior:smooth}body{color:var(--ink);background:var(--white);margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.65}a{color:inherit;text-decoration:none}.container{width:min(calc(100% - 40px),var(--max));margin:auto}.narrow{max-width:950px}.site-header{z-index:20;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffffff0;border-bottom:1px solid #dfe6ebcc;position:sticky;top:0}.header-inner{justify-content:space-between;align-items:center;height:76px;display:flex}.brand{align-items:center;gap:12px;display:flex}.brand-mark{width:40px;height:40px;color:var(--blue-dark);letter-spacing:.03em;background:#edf3f7;border:1px solid #d9e4eb;border-radius:50%;place-items:center;font-weight:850;display:grid}.brand-copy{flex-direction:column;line-height:1.15;display:flex}.brand-copy strong{font-size:.96rem}.brand-copy small{color:var(--muted);margin-top:4px;font-size:.72rem}.nav{align-items:center;gap:28px;font-size:.9rem;font-weight:650;display:flex}.nav a.router-link-active{color:var(--blue)}.nav-cta{background:#fff;border:1px solid #cad6de;border-radius:999px;padding:10px 16px}.menu-button{background:0 0;border:0;font-size:1.4rem;display:none}.hero{border-bottom:1px solid var(--line);background:radial-gradient(circle at 82% 20%,#1f5f8b13,#0000 28%),linear-gradient(#fff 0%,#f7fafc 100%);padding:104px 0 86px;position:relative;overflow:hidden}.hero:after{content:"";pointer-events:none;border:1px solid #1f5f8b14;border-radius:50%;width:520px;height:520px;position:absolute;bottom:-240px;right:-180px}.hero-grid{grid-template-columns:minmax(0,1.45fr) minmax(320px,.75fr);align-items:center;gap:72px;display:grid}.eyebrow{text-transform:uppercase;letter-spacing:.14em;color:var(--blue);margin-bottom:16px;font-size:.72rem;font-weight:800}.hero h1,.page-hero h1{letter-spacing:-.055em;text-wrap:balance;max-width:880px;margin:0;font-size:clamp(2.7rem,6vw,5.25rem);line-height:1.02}.hero-lead{max-width:720px;color:var(--muted);margin:28px 0;font-size:1.2rem}.hero-actions{flex-wrap:wrap;gap:12px;display:flex}.button{border-radius:999px;justify-content:center;align-items:center;padding:13px 19px;font-size:.9rem;font-weight:750;transition:transform .15s,box-shadow .15s,background .15s;display:inline-flex}.button:hover{transform:translateY(-1px)}.button.primary{background:var(--blue-dark);color:#fff;box-shadow:0 8px 22px #163f5c29}.button.secondary{border:1px solid var(--line);background:#fff}.wide{width:100%}.skill-strip{flex-wrap:wrap;gap:8px;margin-top:34px;display:flex}.skill-strip span,.tags span,.skill-cloud span{color:#3f5668;background:#eef3f6;border-radius:999px;padding:6px 10px;font-size:.76rem;font-weight:700}.hero-panel{box-shadow:var(--shadow);background:#ffffffeb;border:1px solid #dbe5eb;border-radius:22px;padding:34px;position:relative;overflow:hidden}.hero-panel:before{content:"";background:var(--blue);width:4px;position:absolute;top:0;bottom:0;left:0}.availability{color:#33694e;background:#eaf4ef;border-radius:999px;padding:6px 9px;font-size:.72rem;font-weight:800;display:inline-block}.hero-panel h2{margin:20px 0 12px;font-size:1.6rem;line-height:1.2}.hero-panel p{color:var(--muted)}.panel-rule{background:var(--line);height:1px;margin:24px 0}.hero-panel dl{margin:0}.hero-panel dl div{grid-template-columns:90px 1fr;gap:16px;padding:8px 0;display:grid}.hero-panel dt{color:var(--muted);font-size:.8rem}.hero-panel dd{margin:0;font-size:.85rem;font-weight:700}.section{padding:82px 0}.tinted{background:#f6f8fa;border-top:1px solid #e5ebef;border-bottom:1px solid #e5ebef}.section-heading{max-width:730px;margin-bottom:38px}.section-heading h2,.split-callout h2,.about-main h2,.contact-grid h2{letter-spacing:-.035em;margin:0 0 14px;font-size:clamp(2rem,4vw,3rem);line-height:1.1}.section-heading p,.split-callout p{color:var(--muted);font-size:1.05rem}.cards{gap:18px;display:grid}.cards.four{grid-template-columns:repeat(4,1fr)}.service-card{background:0 0;border:0;border-top:2px solid #d9e4eb;border-radius:0;padding:26px 4px 18px;position:relative}.service-card:hover{border-top-color:var(--blue)}.service-index{color:#8a9aa6;letter-spacing:.08em;margin-bottom:24px;font-size:.7rem;font-weight:800}.service-card h3{line-height:1.2}.service-card p{color:var(--muted);font-size:.92rem}.split-callout{grid-template-columns:1fr 1fr;align-items:start;gap:80px;display:grid}.text-link{color:var(--blue);font-weight:800}.teaser-grid{border-top:1px solid var(--line);display:grid}.teaser{border-bottom:1px solid var(--line);grid-template-columns:64px 1fr;align-items:center;padding:24px 0;display:grid}.teaser>span{color:var(--blue);font-size:.75rem;font-weight:800}.teaser div{justify-content:space-between;gap:30px;display:flex}.teaser strong{font-size:1.05rem}.teaser small{color:var(--muted)}.page-hero{border-bottom:1px solid var(--line);background:linear-gradient(#f8fafb 0%,#f4f7f9 100%);padding:82px 0 68px}.page-hero h1{font-size:clamp(2.6rem,5vw,4.4rem)}.page-hero p{color:var(--muted);max-width:700px;font-size:1.12rem}.timeline{position:relative}.timeline:before{content:"";background:#d9e3e9;width:1px;position:absolute;top:12px;bottom:12px;left:198px}.timeline-item{border-bottom:0;grid-template-columns:170px 1fr;gap:56px;padding:30px 0;display:grid;position:relative}.timeline-item:before{content:"";border:2px solid var(--blue);background:#fff;border-radius:50%;width:11px;height:11px;position:absolute;top:39px;left:193px;box-shadow:0 0 0 5px #fff}.timeline-item>div:last-child{border-bottom:1px solid var(--line);padding-bottom:30px}.timeline-period{color:var(--blue);text-align:right;padding-top:4px;font-size:.78rem;font-weight:800}.timeline-item h2{margin:0;font-size:1.35rem}.role{color:var(--muted);margin-top:3px;font-weight:700}.timeline-item p{color:var(--muted)}.projects-list{gap:26px;display:grid}.project-card{box-shadow:var(--shadow-soft);background:#fff;border:1px solid #dce5eb;border-radius:22px;padding:38px 40px;position:relative;overflow:hidden}.project-card:before{content:"";background:#d4e1e9;width:4px;transition:background .15s;position:absolute;top:0;bottom:0;left:0}.project-card:hover{box-shadow:0 18px 44px #162d3e12}.project-card:hover:before{background:var(--blue)}.project-type{color:var(--blue);text-transform:uppercase;letter-spacing:.12em;font-size:.72rem;font-weight:800}.project-card h3{letter-spacing:-.025em;margin:8px 0 28px;font-size:1.8rem}.project-grid{grid-template-columns:1fr 1fr;gap:36px;display:grid}.project-grid p{color:var(--muted)}.mini-label{text-transform:uppercase;letter-spacing:.1em;font-size:.72rem;font-weight:800}.tags{flex-wrap:wrap;gap:7px;margin-top:20px;display:flex}.about-grid,.contact-grid{grid-template-columns:1.25fr .75fr;align-items:start;gap:80px;display:grid}.about-main p{color:var(--muted);font-size:1.04rem}.facts-card,.contact-card{background:#f7f9fa;border:1px solid #e0e7ec;border-radius:20px;padding:30px}.facts-card div{border-bottom:1px solid var(--line);padding:15px 0}.facts-card div:last-child{border:0}.facts-card span{font-size:1.25rem;font-weight:800;display:block}.facts-card small{color:var(--muted)}.skill-cloud{flex-wrap:wrap;gap:10px;display:flex}.contact-line{border-bottom:1px solid var(--line);padding:18px 0;display:block}.contact-line small{color:var(--muted);text-transform:uppercase;letter-spacing:.1em;font-size:.68rem;font-weight:800;display:block}.contact-line strong{font-size:1.1rem}.contact-card ul{color:var(--muted);margin:20px 0 28px;padding-left:20px}.footer{border-top:1px solid var(--line);background:#f8fafb;padding:34px 0}.footer-inner{color:var(--muted);justify-content:space-between;gap:30px;font-size:.8rem;display:flex}.footer strong{color:var(--ink)}.footer-right{text-align:right}@media (width<=900px){.hero-grid,.split-callout,.about-grid,.contact-grid{grid-template-columns:1fr;gap:40px}.cards.four{grid-template-columns:repeat(2,1fr)}.hero{padding-top:68px}.hero-panel{max-width:620px}.nav{border-bottom:1px solid var(--line);background:#fff;flex-direction:column;align-items:flex-start;padding:20px;display:none;position:absolute;top:76px;left:0;right:0}.nav.open{display:flex}.menu-button{display:block}.timeline:before,.timeline-item:before{display:none}.timeline-item{grid-template-columns:1fr;gap:8px;padding:24px 0}.timeline-period{text-align:left}.timeline-item>div:last-child{padding-bottom:24px}.project-grid{grid-template-columns:1fr}.teaser div{flex-direction:column;gap:2px}}@media (width<=580px){.container{width:min(calc(100% - 28px),var(--max))}.brand-copy small{display:none}.cards.four{grid-template-columns:1fr}.hero{padding:48px 0}.section{padding:62px 0}.hero h1{font-size:2.7rem}.teaser{grid-template-columns:42px 1fr}.footer-inner{flex-direction:column}.footer-right{text-align:left}}.admin-shell{min-height:100vh;color:var(--ink);background:#f4f6f8}.admin-container{width:min(100% - 40px,1240px);margin:auto}.admin-login-wrap{background:linear-gradient(145deg,#f7f9fb,#edf2f5);place-items:center;min-height:100vh;padding:32px;display:grid}.admin-login-card{border:1px solid var(--line);width:min(100%,440px);box-shadow:var(--shadow);background:#fff;border-radius:20px;padding:38px}.admin-login-card h1{letter-spacing:-.035em;margin:4px 0 8px;font-size:2rem}.admin-login-card>p{color:var(--muted);margin:0 0 26px}.admin-logo{background:var(--ink);color:#fff;border-radius:12px;place-items:center;width:48px;height:48px;margin-bottom:22px;font-weight:850;display:grid}.admin-back-link{text-align:center;color:var(--muted);margin-top:20px;font-size:.85rem;display:block}.admin-header{z-index:30;border-bottom:1px solid var(--line);background:#fff;position:sticky;top:0}.admin-header-inner{justify-content:space-between;align-items:center;height:68px;display:flex}.admin-header-inner>div:first-child{align-items:baseline;gap:10px;display:flex}.admin-header-inner strong{font-size:1.1rem}.admin-header-inner span{color:var(--muted);font-size:.82rem}.admin-header-actions{align-items:center;gap:20px;font-size:.82rem;font-weight:700;display:flex}.admin-header-actions a{color:var(--blue)}.admin-link-button{font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:0;padding:0}.admin-layout{grid-template-columns:190px minmax(0,1fr);gap:40px;padding-top:36px;padding-bottom:72px;display:grid}.admin-sidebar{flex-direction:column;align-self:start;gap:4px;display:flex;position:sticky;top:104px}.admin-sidebar-label{text-transform:uppercase;letter-spacing:.12em;color:#87939d;padding:0 12px 9px;font-size:.66rem;font-weight:800}.admin-sidebar button{text-align:left;font:inherit;color:#5a6873;cursor:pointer;background:0 0;border:0;border-radius:8px;padding:10px 12px;font-size:.88rem;font-weight:700}.admin-sidebar button:hover{background:#e9eef2}.admin-sidebar button.active{color:var(--blue-dark);background:#fff;box-shadow:0 2px 12px #162d3e0f}.admin-main{min-width:0}.admin-section{max-width:960px}.admin-title-row{justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:24px;display:flex}.admin-title-row h1{letter-spacing:-.04em;margin:0;font-size:2.25rem;line-height:1.05}.admin-title-row p{color:var(--muted);margin:8px 0 0}.admin-title-row .eyebrow{margin-bottom:8px}.admin-actions{flex-wrap:wrap;gap:10px;display:flex}.admin-card{border:1px solid var(--line);background:#fff;border-radius:14px;padding:24px;box-shadow:0 7px 24px #162d3e09}.admin-form-grid{grid-template-columns:1fr 1fr;gap:18px 20px;display:grid}.field{flex-direction:column;gap:6px;display:flex}.field.full{grid-column:1/-1}.field>span{color:#566570;font-size:.75rem;font-weight:800}.field input:not([type=checkbox]),.field textarea,.skill-edit-row input{width:100%;color:var(--ink);font:inherit;background:#fff;border:1px solid #ccd6dd;border-radius:8px;outline:none;padding:10px 12px;font-size:.9rem;transition:border .15s,box-shadow .15s}.field input:focus,.field textarea:focus,.skill-edit-row input:focus{border-color:#6c99b7;box-shadow:0 0 0 3px #1f5f8b17}.field textarea{resize:vertical;line-height:1.55}.field small{color:var(--muted);font-size:.72rem}.checkbox-field{flex-direction:row;align-items:center;gap:9px;padding-top:5px}.checkbox-field input,.mini-check input{accent-color:var(--blue)}.check-pair{flex-direction:row;align-items:center;gap:24px;display:flex}.mini-check{color:#596772;align-items:center;gap:6px;font-size:.78rem;font-weight:700;display:flex}.admin-stack{gap:16px;display:grid}.entity-card-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:20px;margin-bottom:18px;padding-bottom:16px;display:flex}.entity-card-head strong{font-size:1rem}.entity-card-head span{color:var(--muted);font-size:.76rem}.entity-actions{border-top:1px solid var(--line);justify-content:space-between;align-items:center;margin-top:20px;padding-top:16px;display:flex}.danger-link{color:#a24848;font:inherit;cursor:pointer;background:0 0;border:0;padding:8px 0;font-size:.78rem;font-weight:750}.button:disabled{opacity:.58;cursor:not-allowed}.compact-list{gap:8px;display:grid}.skill-edit-row{grid-template-columns:34px minmax(0,1fr) 90px 64px;align-items:center;gap:10px;display:grid}.drag-number{background:var(--soft);width:28px;height:28px;color:var(--muted);border-radius:7px;place-items:center;font-size:.72rem;font-weight:800;display:grid}.admin-alert{border-radius:9px;margin-bottom:18px;padding:11px 14px;font-size:.84rem;font-weight:700}.admin-alert.error{color:#8b3939;background:#fff0f0;border:1px solid #efcaca}.admin-alert.success{color:#316248;background:#edf7f1;border:1px solid #c9e4d3}@media (width<=800px){.admin-layout{grid-template-columns:1fr;gap:22px}.admin-sidebar{flex-direction:row;padding-bottom:4px;position:static;overflow-x:auto}.admin-sidebar-label{display:none}.admin-sidebar button{white-space:nowrap}.admin-form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.admin-title-row{flex-direction:column;align-items:flex-start}.admin-title-row>.button,.admin-title-row>.admin-actions{align-self:stretch}.admin-title-row>.button{width:100%}.admin-actions .button{flex:1}.skill-edit-row{border-bottom:1px solid var(--line);grid-template-columns:28px minmax(0,1fr);padding-bottom:10px}.skill-edit-row .mini-check,.skill-edit-row .danger-link{grid-column:2}.admin-header-inner>div:first-child span{display:none}}
