body{margin:0}img,svg{vertical-align:middle}.container{width:100%;max-width:1140px;margin-left:auto;margin-right:auto;padding-left:12px;padding-right:12px}.row{display:flex;flex-wrap:wrap;margin-left:-12px;margin-right:-12px}.row>*{width:100%;max-width:100%;padding-left:12px;padding-right:12px}.col-6{flex:0 0 auto;width:50%}.col-sm-12{flex:0 0 auto;width:100%}.g-3{row-gap:1rem}.g-3>*{padding-left:.5rem;padding-right:.5rem}.gy-4{row-gap:1.5rem}.d-flex{display:flex}.align-items-center{align-items:center}.justify-content-between{justify-content:space-between}.justify-content-center{justify-content:center}.position-relative{position:relative}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.text-center{text-align:center}.text-muted{color:var(--color-text-muted)}.text-dark{color:var(--color-text)}.bg-light{background:var(--color-secondary-surface)}.fw-bold{font-weight:700}.shadow{box-shadow:var(--shadow-medium)}.shadow-sm{box-shadow:var(--shadow-small)}.h-100{height:100%}.lead{font-size:1.15rem;font-weight:300}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:1rem}.mt-4{margin-top:1.5rem}.mt-5{margin-top:3rem}.mb-0{margin-bottom:0}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1.5rem}.mb-5{margin-bottom:3rem}.my-5{margin-top:3rem;margin-bottom:3rem}.p-3{padding:1rem}.px-3{padding-left:1rem;padding-right:1rem}.py-5{padding-top:3rem;padding-bottom:3rem}.gap-3{gap:1rem}.me-2{margin-right:.5rem}.btn{display:inline-block;border:1px solid transparent;border-radius:.375rem;cursor:pointer;font-weight:600;line-height:1.5;padding:.5rem 1rem;text-align:center;text-decoration:none;transition:color .15s,background-color .15s,border-color .15s}.btn-sm{border-radius:.25rem;font-size:.875rem;padding:.25rem .5rem}.btn-outline-primary{border-color:var(--color-accent);color:var(--color-accent)}.btn-outline-primary:hover{background:var(--color-accent);color:var(--color-on-accent)}.btn-outline-light{border-color:var(--color-border);color:var(--color-text)}.btn-outline-light:hover{background:var(--color-surface);color:var(--color-text)}.card{background:var(--color-surface);border:1px solid var(--color-border-subtle);border-radius:.5rem;display:flex;flex-direction:column;min-width:0;overflow:hidden}.card-body{flex:1 1 auto;padding:1rem}.card-img-top{display:block;width:100%}.card-title{margin-bottom:.5rem}.card-text{color:var(--color-text-secondary)}.badge{border-radius:999px;display:inline-block;font-size:.75rem;font-weight:700;line-height:1;padding:.35rem .55rem}.breadcrumb{display:flex;flex-wrap:wrap;list-style:none;margin:0;padding:0}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item:before{content:"/";color:var(--color-border);float:left;padding-right:.5rem}.breadcrumb-item.active{color:var(--color-text-secondary)}@media (min-width:768px){.col-md-6{flex:0 0 auto;width:50%}}@media (min-width:992px){.col-lg-3{flex:0 0 auto;width:25%}.col-lg-4{flex:0 0 auto;width:33.333333%}.col-lg-8{flex:0 0 auto;width:66.666667%}}@font-face{font-display:swap;font-family:bootstrap-icons;src:url("./media/bootstrap-icons-AJUF3K7A.woff2") format("woff2")}.bi:before{display:inline-block;font-family:bootstrap-icons!important;font-style:normal;font-weight:400!important;font-variant:normal;line-height:1;text-transform:none;vertical-align:-.125em;-webkit-font-smoothing:antialiased}.bi-arrow-left:before{content:"\f12f"}.bi-arrow-repeat:before{content:"\f130"}.bi-arrow-right:before{content:"\f138"}.bi-arrow-up-right:before{content:"\f144"}.bi-bar-chart:before{content:"\f17e"}.bi-check2-circle:before{content:"\f270"}.bi-code-slash:before{content:"\f2c6"}.bi-download:before{content:"\f30a"}.bi-envelope:before{content:"\f32f"}.bi-geo-alt:before{content:"\f3e8"}.bi-list:before{content:"\f479"}.bi-lock:before{content:"\f47b"}.bi-pencil:before{content:"\f4cb"}.bi-phone:before{content:"\f4e7"}.bi-search:before{content:"\f52a"}.bi-window-sidebar:before{content:"\f61f"}.bi-x-lg:before{content:"\f659"}.bi-rocket:before{content:"\f846"}:root,[data-theme=light]{color-scheme:light;--color-page: #f8fafc;--color-surface: #ffffff;--color-surface-secondary: #f1f5f9;--color-surface-elevated: #ffffff;--color-secondary-surface: var(--color-surface-secondary);--color-text-primary: #0f172a;--color-text: var(--color-text-primary);--color-text-secondary: #475569;--color-text-muted: #5b687a;--color-border: #cbd5e1;--color-border-subtle: #e2e8f0;--color-accent: #1d4ed8;--color-accent-hover: #1e40af;--color-accent-soft: #eff6ff;--color-on-accent: #ffffff;--color-success: #15803d;--color-warning: #a16207;--color-warning-soft: #fffbeb;--color-danger: #b91c1c;--color-focus-ring: #0ea5e9;--color-focus: var(--color-focus-ring);--color-header-background: #f8fafce0;--color-contact-background: #0f172a;--color-footer-background: #080f1e;--color-footer-text: #cbd5e1;--color-footer-border: #1e293b;--color-code-background: #0f172a;--color-code-text: #e2e8f0;--color-selection-background: #bfdbfe;--color-selection-text: #0f172a;--color-logo-surface: #ffffff;--font-sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "SFMono-Regular", Consolas, "Liberation Mono", monospace;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem;--space-7: 2.5rem;--space-8: 3rem;--space-10: 4rem;--space-12: 6rem;--space-16: 7rem;--text-sm: .875rem;--text-xs: .75rem;--text-body: 1rem;--radius-sm: .5rem;--radius-md: .85rem;--radius-lg: 1.25rem;--shadow-sm: 0 8px 24px rgba(15, 23, 42, .06);--shadow-md: 0 18px 46px rgba(15, 23, 42, .1);--shadow-lg: 0 24px 64px rgba(15, 23, 42, .15);--shadow-small: var(--shadow-sm);--shadow-medium: var(--shadow-md);--shadow-large: var(--shadow-lg);--content-width: 1180px;--gutter: clamp(1rem, 4vw, 2rem);--header-height: 4.75rem;--primary: var(--color-accent);--muted: var(--color-text-muted)}[data-theme=dark]{color-scheme:dark;--color-page: #0b1220;--color-surface: #111b2e;--color-surface-secondary: #162238;--color-surface-elevated: #1b2941;--color-secondary-surface: var(--color-surface-secondary);--color-text-primary: #f1f5f9;--color-text: var(--color-text-primary);--color-text-secondary: #c4cfdd;--color-text-muted: #9cabc0;--color-border: #3b4c65;--color-border-subtle: #263750;--color-accent: #60a5fa;--color-accent-hover: #93c5fd;--color-accent-soft: rgba(96, 165, 250, .12);--color-on-accent: #07111f;--color-success: #86efac;--color-warning: #fbbf24;--color-warning-soft: rgba(251, 191, 36, .1);--color-danger: #fca5a5;--color-focus-ring: #7dd3fc;--color-focus: var(--color-focus-ring);--color-header-background: rgba(11, 18, 32, .92);--color-contact-background: #0e2038;--color-footer-background: #070d18;--color-footer-text: #cbd5e1;--color-footer-border: #23324a;--color-code-background: #07101f;--color-code-text: #dbeafe;--color-selection-background: #1d4ed8;--color-selection-text: #f8fafc;--color-logo-surface: #ffffff;--shadow-sm: 0 8px 24px rgba(0, 0, 0, .16);--shadow-md: 0 18px 46px rgba(0, 0, 0, .2);--shadow-lg: 0 24px 64px rgba(0, 0, 0, .24);--shadow-small: var(--shadow-sm);--shadow-medium: var(--shadow-md);--shadow-large: var(--shadow-lg)}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-height) + 1rem)}body{background:var(--color-page);color:var(--color-text);font-family:var(--font-sans);font-size:var(--text-body);line-height:1.6;margin:0;overflow-x:hidden;text-rendering:optimizeLegibility}body.nav-open{overflow:hidden}::selection{background:var(--color-selection-background);color:var(--color-selection-text)}img{max-width:100%}h1,h2,h3,h4,h5,h6{color:var(--color-text);font-weight:750;letter-spacing:-.025em}a{color:var(--color-accent);text-decoration:none;text-underline-offset:.2em;transition:color .18s ease}a:hover{color:var(--color-accent-hover)}a:focus-visible,button:focus-visible,[tabindex]:focus-visible{border-radius:var(--radius-sm);outline:3px solid color-mix(in srgb,var(--color-focus) 58%,transparent);outline-offset:3px}button,input,textarea,select{font:inherit}.container{margin-inline:auto;max-width:calc(var(--content-width) + (var(--gutter) * 2));padding-inline:var(--gutter);width:100%}.section{padding:var(--space-16) 0}.section--compact{padding:var(--space-12) 0}.section-header{margin-bottom:var(--space-8);max-width:780px}.section-header--row{align-items:end;display:grid;gap:var(--space-8);grid-template-columns:minmax(280px,.85fr) minmax(0,1.15fr);max-width:none}.section-header h2{font-size:clamp(2.25rem,5vw,4rem);letter-spacing:-.05em;line-height:1.04;margin:0}.section-header>p,.section-header--row>p{color:var(--color-text-secondary);font-size:1rem;line-height:1.65;margin:0}.section-eyebrow{color:var(--color-accent);font-family:var(--font-mono);font-size:var(--text-xs);font-weight:700;letter-spacing:.1em;margin:0 0 var(--space-3);text-transform:uppercase}.btn{align-items:center;border:1px solid transparent;border-radius:var(--radius-sm);display:inline-flex;font-size:.9rem;font-weight:700;gap:var(--space-2);justify-content:center;min-height:3rem;padding:.7rem 1.1rem;transition:background-color .18s ease,border-color .18s ease,color .18s ease,transform .18s ease}.btn-primary{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-on-accent)}.btn-primary:hover{background:var(--color-accent-hover);border-color:var(--color-accent-hover);color:var(--color-on-accent)}.btn-secondary{background:var(--color-surface);border-color:var(--color-border);color:var(--color-text)}.btn-secondary:hover{border-color:var(--color-accent);color:var(--color-accent)}.title-a{font-size:clamp(2rem,4vw,3.25rem);margin:0}.subtitle-a{color:var(--color-text-secondary)}.skip-link{background:var(--color-text);color:var(--color-page);left:var(--space-4);padding:var(--space-3) var(--space-4);position:fixed;top:-5rem;z-index:2000}.skip-link:focus{top:var(--space-4)}.site-header,section,article,aside,footer,nav,button,select,a{transition:background-color .2s ease,border-color .2s ease,box-shadow .2s ease,color .2s ease}.reveal{opacity:0;transform:translateY(14px);transition:opacity .45s ease,transform .45s ease}.reveal.reveal-in{opacity:1;transform:none}@media (max-width: 760px){:root{--space-16: 4.5rem;--space-12: 3.5rem;--header-height: 4.25rem}.section-header--row{align-items:start;gap:var(--space-4);grid-template-columns:1fr}}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}.reveal,.reveal.reveal-in{opacity:1!important;transform:none!important}.featured-project:hover,.card:hover{transform:none!important}}
