﻿:root{--bg-primary: #ffffff;--bg-secondary: #f5f5f5;--bg-tertiary: #eeeeee;--text-primary: #000000;--text-secondary: #333333;--text-muted: #666666;--color-keyword: #0000ff;--color-string: #008000;--color-comment: #808080;--color-number: #1750eb;--color-type: #267f99;--color-method: #795e26;--color-property: #0451a5;--color-variable: #001080;--color-accent: #0078d4;--color-success: #107c10;--color-warning: #ff8c00;--color-error: #d13438;--color-accent-rgb: 0, 120, 212;--color-success-rgb: 16, 124, 16;--color-warning-rgb: 255, 140, 0;--color-error-rgb: 209, 52, 56;--border-color: #d1d1d1;--border-light: #e5e5e5;--shadow-color: rgba(0, 0, 0, 0.1);--hover-bg: #f0f0f0;--active-bg: #e0e0e0;--focus-outline: #005fb8}[data-theme="dark"]{--bg-primary: #2b2b2b;--bg-secondary: #3c3c3c;--bg-tertiary: #4a4a4a;--text-primary: #a9b7c6;--text-secondary: #bbbbbb;--text-muted: #888888;--color-keyword: #cc7832;--color-string: #6a8759;--color-comment: #808080;--color-number: #6897bb;--color-type: #ffc66d;--color-method: #ffc66d;--color-property: #9876aa;--color-variable: #a9b7c6;--color-accent: #4a9eff;--color-success: #6a8759;--color-warning: #cc7832;--color-error: #bc3f3c;--color-accent-rgb: 74, 158, 255;--color-success-rgb: 106, 135, 89;--color-warning-rgb: 204, 120, 50;--color-error-rgb: 188, 63, 60;--border-color: #555555;--border-light: #444444;--shadow-color: rgba(0, 0, 0, 0.3);--hover-bg: #3a3a3a;--active-bg: #4a4a4a;--focus-outline: #4a9eff}@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--bg-primary: #2b2b2b;--bg-secondary: #3c3c3c;--bg-tertiary: #4a4a4a;--text-primary: #a9b7c6;--text-secondary: #bbbbbb;--text-muted: #888888;--color-keyword: #cc7832;--color-string: #6a8759;--color-comment: #808080;--color-number: #6897bb;--color-type: #ffc66d;--color-method: #ffc66d;--color-property: #9876aa;--color-variable: #a9b7c6;--color-accent: #4a9eff;--color-success: #6a8759;--color-warning: #cc7832;--color-error: #bc3f3c;--color-accent-rgb: 74, 158, 255;--color-success-rgb: 106, 135, 89;--color-warning-rgb: 204, 120, 50;--color-error-rgb: 188, 63, 60;--border-color: #555555;--border-light: #444444;--shadow-color: rgba(0, 0, 0, 0.3);--hover-bg: #3a3a3a;--active-bg: #4a4a4a;--focus-outline: #4a9eff}}.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}.skip-nav{position:absolute;top:-40px;left:6px;background:var(--bg-primary);color:var(--text-primary);padding:.5rem 1rem;text-decoration:none;border:2px solid var(--color-accent);border-radius:.25rem;z-index:1050;font-family:"JetBrains Mono","Fira Code","Consolas","Monaco",monospace;font-size:.875rem;font-weight:500;transition:top 150ms cubic-bezier(0, 0, 0.2, 1)}.skip-nav:focus{top:6px;outline:none}.skip-nav:hover{background:var(--color-accent);color:white}*:focus{outline:2px solid var(--focus-outline);outline-offset:2px;border-radius:.125rem}button:focus,a:focus,input:focus,textarea:focus,select:focus,[tabindex]:focus{outline:3px solid var(--focus-outline);outline-offset:2px;box-shadow:0 0 0 5px rgba(var(--color-accent-rgb), 0.2)}button,a,input[type="button"],input[type="submit"],input[type="reset"],.btn,.nav-link,.mobile-nav-link,.theme-toggle{min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center}.mobile-navigation[aria-hidden="false"] .mobile-nav-link:first-child:focus{background-color:var(--active-bg)}:root{--text-primary: #000000;--text-secondary: #2d2d2d;--text-muted: #5a5a5a;--color-accent: #0056b3;--color-keyword: #0000cc;--color-string: #006600;--color-error: #cc0000;--color-success: #006600;--focus-outline: #0056b3}[data-theme="dark"]{--text-primary: #ffffff;--text-secondary: #e0e0e0;--text-muted: #b0b0b0;--color-accent: #66b3ff;--color-keyword: #ff9966;--color-string: #99cc99;--color-error: #ff6666;--color-success: #99cc99;--focus-outline: #66b3ff}@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--text-primary: #ffffff;--text-secondary: #e0e0e0;--text-muted: #b0b0b0;--color-accent: #66b3ff;--color-keyword: #ff9966;--color-string: #99cc99;--color-error: #ff6666;--color-success: #99cc99;--focus-outline: #66b3ff}}@media (prefers-contrast: high){:root{--text-primary: #000000;--text-secondary: #000000;--bg-primary: #ffffff;--bg-secondary: #ffffff;--border-color: #000000;--color-accent: #0000ff;--focus-outline: #ff0000}[data-theme="dark"]{--text-primary: #ffffff;--text-secondary: #ffffff;--bg-primary: #000000;--bg-secondary: #000000;--border-color: #ffffff;--color-accent: #00ffff;--focus-outline: #ffff00}}@media (prefers-reduced-motion: reduce){*,*::before,*::after{animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important;scroll-behavior:auto !important}.hero-cursor{animation:none !important;opacity:1}.execution-output[data-typing-text]::after{animation:none !important}}.form-group{position:relative}.form-group .form-label[data-required="true"]::after{content:" *";color:var(--color-error);font-weight:700;margin-left:.25rem}.form-group .form-input:invalid:not(:placeholder-shown){border-color:var(--color-error);background-color:rgba(var(--color-error-rgb), 0.05)}.form-group .form-input:invalid:not(:placeholder-shown):focus{box-shadow:0 0 0 3px rgba(var(--color-error-rgb), 0.2)}.form-group .form-input:valid:not(:placeholder-shown){border-color:var(--color-success)}.form-group .form-input:valid:not(:placeholder-shown):focus{box-shadow:0 0 0 3px rgba(var(--color-success-rgb), 0.2)}.error-message{font-size:.875rem;margin-top:.5rem;display:none}.error-message[aria-live]{position:relative}.error-message.show{display:block}.form-status[role="status"]{position:relative}.main-navigation[role="navigation"] .nav-list::before{content:"";position:absolute;top:-1px;left:-1px;right:-1px;height:1px;background:transparent}.mobile-navigation[aria-hidden="false"] .mobile-nav-list .mobile-nav-link:first-child:focus{background-color:var(--active-bg)}.mobile-navigation[aria-hidden="false"] .mobile-nav-list .mobile-nav-link:last-child:focus{background-color:var(--active-bg)}.theme-toggle[aria-pressed="true"]{background-color:var(--color-accent);border-color:var(--color-accent)}.theme-toggle[aria-pressed="true"]::before{background-color:white}.theme-toggle[aria-pressed="false"]{background-color:var(--bg-secondary);border-color:var(--border-color)}.project-card:focus-within{outline:2px solid var(--focus-outline);outline-offset:2px;border-radius:.5rem}.project-card .project-method-link:focus{background-color:var(--active-bg);border-radius:.25rem}h1{font-size:2.5rem}@media (max-width: 767px){h1{font-size:2rem}}h2{font-size:2rem}@media (max-width: 767px){h2{font-size:1.5rem}}h3{font-size:1.5rem}@media (max-width: 767px){h3{font-size:1.25rem}}.loading[aria-live="polite"]{position:relative}.loading::before{content:"Loading...";position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}@media print{*{background:white !important;color:black !important;box-shadow:none !important}.theme-toggle,.mobile-nav-toggle,.mobile-navigation,button:not([type="submit"]){display:none !important}a{text-decoration:underline !important}a[href^="http"]::after{content:" (" attr(href) ")";font-size:smaller}h1,h2,h3,h4,h5,h6{page-break-after:avoid;font-weight:bold !important}}@media (prefers-reduced-motion: no-preference){.hero-cursor{animation:blink 1s infinite}@keyframes blink{0%,50%{opacity:1}51%,100%{opacity:0}}}[dir="rtl"] .site-header .header-content{direction:rtl}[dir="rtl"] .main-navigation .nav-list{direction:rtl}[dir="rtl"] .mobile-navigation{direction:rtl}[data-voice-command]{position:relative}[data-voice-command]::before{content:attr(data-voice-command);position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.keyboard-user *:focus{outline:3px solid var(--focus-outline) !important;outline-offset:2px !important}.keyboard-user.mouse-user *:focus{outline:none}@media (hover: none) and (pointer: coarse){button,a,input,textarea,select{min-width:48px;min-height:48px}*:hover{background-color:initial;color:initial;transform:initial}*:focus{outline:3px solid var(--focus-outline);outline-offset:3px;background-color:var(--active-bg)}}@media screen and (max-width: 0){.sr-only{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto;white-space:normal}}.btn,.mobile-nav-toggle,.theme-toggle{display:inline-flex;align-items:center;justify-content:center;padding:.5rem 1rem;border:1px solid transparent;border-radius:.25rem;font-family:"JetBrains Mono","Fira Code","Consolas","Monaco",monospace;font-size:.875rem;font-weight:500;text-decoration:none;cursor:pointer;transition:all 150ms cubic-bezier(0.4, 0, 0.2, 1)}.btn:focus,.mobile-nav-toggle:focus,.theme-toggle:focus{outline:2px solid var(--focus-outline);outline-offset:2px}.btn:disabled,.mobile-nav-toggle:disabled,.theme-toggle:disabled{opacity:0.6;cursor:not-allowed}.card{background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:.5rem;padding:1.5rem;box-shadow:0 1px 2px 0 var(--shadow-color);transition:all 300ms cubic-bezier(0.4, 0, 0.2, 1)}.card:hover{box-shadow:0 4px 6px -1px var(--shadow-color),0 2px 4px -1px var(--shadow-color);transform:translateY(-2px)}pre,.single-page .page-content pre{background-color:var(--bg-tertiary);border:1px solid var(--border-light);border-radius:.25rem;padding:1rem;font-family:"JetBrains Mono","Fira Code","Consolas","Monaco",monospace;font-size:.875rem;line-height:1.5;overflow-x:auto}pre .keyword,.single-page .page-content pre .keyword{color:var(--color-keyword)}pre .string,.single-page .page-content pre .string{color:var(--color-string)}pre .comment,.single-page .page-content pre .comment{color:var(--color-comment)}pre .number,.single-page .page-content pre .number{color:var(--color-number)}pre .type,.single-page .page-content pre .type{color:var(--color-type)}pre .method,.single-page .page-content pre .method{color:var(--color-method)}pre .property,.single-page .page-content pre .property{color:var(--color-property)}pre .variable,.single-page .page-content pre .variable{color:var(--color-variable)}.nav{display:flex;align-items:center;gap:1.5rem}.nav a{font-family:"JetBrains Mono","Fira Code","Consolas","Monaco",monospace;font-size:1rem;color:var(--text-primary);text-decoration:none;padding:.5rem .75rem;border-radius:.25rem;transition:all 150ms cubic-bezier(0.4, 0, 0.2, 1)}.nav a::before{content:"Portfolio.";color:var(--color-type);font-weight:500}.nav a:hover{background-color:var(--hover-bg);color:var(--color-accent)}.nav a:focus{outline:2px solid var(--focus-outline);outline-offset:2px}.nav a.active{background-color:var(--active-bg);color:var(--color-accent);font-weight:600}form .form-group{margin-bottom:1rem}form label{display:block;font-family:"JetBrains Mono","Fira Code","Consolas","Monaco",monospace;font-size:.875rem;font-weight:500;color:var(--text-secondary);margin-bottom:.5rem}form label::after{content:" { get; set; }";color:var(--color-keyword);font-weight:400}form input,form textarea,form select{width:100%;padding:.75rem;border:1px solid var(--border-color);border-radius:.25rem;background-color:var(--bg-primary);color:var(--text-primary);font-family:"JetBrains Mono","Fira Code","Consolas","Monaco",monospace;font-size:.875rem;transition:all 150ms cubic-bezier(0.4, 0, 0.2, 1)}form input:focus,form textarea:focus,form select:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px rgba(var(--color-accent), 0.1)}form input::placeholder,form textarea::placeholder,form select::placeholder{color:var(--text-muted);font-style:italic}form .error-message{color:var(--color-error);font-family:"JetBrains Mono","Fira Code","Consolas","Monaco",monospace;font-size:.75rem;margin-top:.25rem}form .error-message::before{content:"CS0001: ";font-weight:700}form .success-message{color:var(--color-success);font-family:"JetBrains Mono","Fira Code","Consolas","Monaco",monospace;font-size:.75rem;margin-top:.25rem}.contact{padding:6rem 0;background-color:var(--bg-secondary)}@media (max-width: 767px){.contact{padding:4rem 0}}.contact .contact-content{max-width:1200px;margin:0 auto}.contact .contact-title{text-align:center;margin-bottom:4rem}@media (max-width: 767px){.contact .contact-title{margin-bottom:3rem}}.contact .contact-layout{display:grid;grid-template-columns:1.5fr 1fr;gap:4rem;align-items:start}@media (max-width: 767px){.contact .contact-layout{grid-template-columns:1fr;gap:3rem}}@media (min-width: 768px){.contact .contact-layout{gap:5rem}}.contact-form-container{background-color:var(--bg-primary);border:2px solid var(--border-color);border-radius:.5rem;overflow:hidden;box-shadow:0 4px 6px -1px var(--shadow-color),0 2px 4px -1px var(--shadow-color);font-family:"JetBrains Mono","Fira Code","Consolas","Monaco",monospace}.contact-form-container .contact-form-header{background-color:var(--bg-tertiary);padding:1rem 1.5rem;border-bottom:1px solid var(--border-light)}@media (max-width: 767px){.contact-form-container .contact-form-header{padding:.75rem 1rem}}.contact-form-container .contact-form-header .form-class-definition{font-size:1rem;line-height:1.5}@media (max-width: 767px){.contact-form-container .contact-form-header .form-class-definition{font-size:.875rem}}.contact-form-container .contact-form-header .form-class-definition .code-keyword{color:var(--color-keyword);font-weight:500;margin-right:.5rem}.contact-form-container .contact-form-header .form-class-definition .code-type{color:var(--color-type);font-weight:600}.contact-form-container .contact-form-header .form-class-definition .code-brace{color:var(--color-keyword);margin-left:.5rem}.contact-form-container .contact-form-footer{background-color:var(--bg-tertiary);padding:1rem 1.5rem;border-top:1px solid var(--border-light)}@media (max-width: 767px){.contact-form-container .contact-form-footer{padding:.75rem 1rem}}.contact-form-container .contact-form-footer .form-class-closing{font-size:1rem}@media (max-width: 767px){.contact-form-container .contact-form-footer .form-class-closing{font-size:.875rem}}.contact-form-container .contact-form-footer .form-class-closing .code-brace{color:var(--color-keyword)}.contact-form{padding:2rem 1.5rem}@media (max-width: 767px){.contact-form{padding:1.5rem 1rem}}.contact-form .form-group{margin-bottom:1.5rem}@media (max-width: 767px){.contact-form .form-group{margin-bottom:1.25rem}}.contact-form .form-group:last-of-type{margin-bottom:2rem}@media (max-width: 767px){.contact-form .form-group:last-of-type{margin-bottom:1.5rem}}.contact-form .form-label{display:block;font-family:"JetBrains Mono","Fira Code","Consolas","Monaco",monospace;font-size:.875rem;margin-bottom:.75rem;line-height:1.5}@media (max-width: 767px){.contact-form .form-label{font-size:.75rem}}.contact-form .form-label::after{content:" { get; set; }";color:var(--color-keyword);font-weight:400}.contact-form .form-label .code-keyword{color:var(--color-keyword);font-weight:500;margin-right:.25rem}.contact-form .form-label .code-type{color:var(--color-type);font-weight:500;margin-right:.25rem}.contact-form .form-label .code-property{color:var(--color-property);font-weight:600}.contact-form .form-input{width:100%;padding:.75rem 1rem;border:2px solid var(--border-color);border-radius:.25rem;background-color:var(--bg-primary);color:var(--text-primary);font-family:"JetBrains Mono","Fira Code","Consolas","Monaco",monospace;font-size:.875rem;line-height:1.5;transition:all 150ms cubic-bezier(0.4, 0, 0.2, 1)}@media (max-width: 767px){.contact-form .form-input{padding:.75rem;font-size:.75rem}}.contact-form .form-input:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px rgba(var(--color-accent-rgb), 0.1);background-color:var(--bg-secondary)}.contact-form .form-input:hover{border-color:var(--color-keyword)}.contact-form .form-input::placeholder{color:var(--text-muted);font-style:italic}.contact-form .form-input.form-textarea{resize:vertical;min-height:120px;font-family:"JetBrains Mono","Fira Code","Consolas","Monaco",monospace}.contact-form .form-input:invalid:not(:placeholder-shown){border-color:var(--color-error)}.contact-form .form-input:valid:not(:placeholder-shown){border-color:var(--color-success)}.contact-form .error-message{color:var(--color-error);font-family:"JetBrains Mono","Fira Code","Consolas","Monaco",monospace;font-size:.75rem;margin-top:.5rem;padding:.5rem .75rem;background-color:rgba(var(--color-error-rgb), 0.1);border:1px solid rgba(var(--color-error-rgb), 0.3);border-radius:.25rem;display:none}.contact-form .error-message.show{display:block}.contact-form .error-message::before{content:"CS0001: ";font-weight:700}.contact-form .error-message.email-error::before{content:"CS0029: "}.contact-form .error-message.required-error::before{content:"CS0165: "}.contact-form .error-message.length-error::before{content:"CS1503: "}.contact-form .form-actions{display:flex;gap:1rem;justify-content:flex-start;margin-top:2rem}@media (max-width: 767px){.contact-form .form-actions{flex-direction:column;gap:.75rem;margin-top:1.5rem}}.contact-form .form-actions .btn{font-family:"JetBrains Mono","Fira Code","Consolas","Monaco",monospace;font-size:.875rem;padding:.75rem 1.5rem;border-radius:.25rem;display:inline-flex;align-items:center;gap:.5rem;transition:all 300ms cubic-bezier(0.4, 0, 0.2, 1);min-width:160px;justify-content:center}@media (max-width: 767px){.contact-form .form-actions .btn{font-size:.75rem;padding:.75rem 1rem;min-width:140px}}.contact-form .form-actions .btn .btn-return-type{color:var(--color-keyword);font-weight:500}.contact-form .form-actions .btn .btn-method{font-weight:700}.contact-form .form-actions .btn .btn-params{color:var(--color-keyword)}.contact-form .form-actions .btn:hover{transform:translateY(-2px);box-shadow:0 4px 6px -1px var(--shadow-color),0 2px 4px -1px var(--shadow-color)}.contact-form .form-actions .btn:active{transform:translateY(0)}.contact-form .form-actions .btn:disabled{opacity:0.6;cursor:not-allowed;transform:none;box-shadow:none}.contact-form .form-actions .btn.contact-submit-btn{background-color:var(--color-accent);color:white;border:2px solid var(--color-accent)}.contact-form .form-actions .btn.contact-submit-btn .btn-return-type,.contact-form .form-actions .btn.contact-submit-btn .btn-params{color:rgba(255,255,255,0.9)}.contact-form .form-actions .btn.contact-submit-btn:hover:not(:disabled){background-color:var(--color-keyword);border-color:var(--color-keyword)}.contact-form .form-actions .btn.contact-submit-btn:disabled{background-color:var(--text-muted);border-color:var(--text-muted)}.contact-form .form-actions .btn.contact-reset-btn{background-color:transparent;color:var(--text-secondary);border:2px solid var(--border-color)}.contact-form .form-actions .btn.contact-reset-btn .btn-return-type,.contact-form .form-actions .btn.contact-reset-btn .btn-params{color:var(--color-keyword)}.contact-form .form-actions .btn.contact-reset-btn .btn-method{color:var(--text-secondary)}.contact-form .form-actions .btn.contact-reset-btn:hover:not(:disabled){background-color:var(--hover-bg);border-color:var(--color-accent);color:var(--color-accent)}.contact-form .form-actions .btn.contact-reset-btn:hover:not(:disabled) .btn-method{color:var(--color-accent)}.contact-form .form-status{margin-top:1.5rem;padding:1rem;border-radius:.25rem;font-family:"JetBrains Mono","Fira Code","Consolas","Monaco",monospace;font-size:.875rem;display:none}@media (max-width: 767px){.contact-form .form-status{font-size:.75rem;padding:.75rem}}.contact-form .form-status.show{display:block}.contact-form .form-status.success{background-color:rgba(var(--color-success-rgb), 0.1);border:1px solid rgba(var(--color-success-rgb), 0.3);color:var(--color-success)}.contact-form .form-status.success::before{content:"✓ Success: ";font-weight:700}.contact-form .form-status.error{background-color:rgba(var(--color-error-rgb), 0.1);border:1px solid rgba(var(--color-error-rgb), 0.3);color:var(--color-error)}.contact-form .form-status.error::before{content:"✗ Error: ";font-weight:700}.contact-form .form-status.loading{background-color:rgba(var(--color-accent-rgb), 0.1);border:1px solid rgba(var(--color-accent-rgb), 0.3);color:var(--color-accent)}.contact-form .form-status.loading::before{content:"⟳ Processing: ";font-weight:700;animation:spin 1s linear infinite}.contact-info .contact-info-header{margin-bottom:2rem}@media (max-width: 767px){.contact-info .contact-info-header{margin-bottom:1.5rem}}.contact-info .contact-info-header .contact-info-title{margin-bottom:1rem}@media (max-width: 767px){.contact-info .contact-info-header .contact-info-title{margin-bottom:.75rem}}.contact-info .contact-info-header .contact-info-subtitle{font-size:1rem;color:var(--color-comment);font-family:"JetBrains Mono","Fira Code","Consolas","Monaco",monospace}@media (max-width: 767px){.contact-info .contact-info-header .contact-info-subtitle{font-size:.875rem}}.contact-info .contact-methods{margin-bottom:3rem}@media (max-width: 767px){.contact-info .contact-methods{margin-bottom:2rem}}.contact-info .contact-method{margin-bottom:1.5rem;font-family:"JetBrains Mono","Fira Code","Consolas","Monaco",monospace;font-size:.875rem;line-height:1.75}@media (max-width: 767px){.contact-info .contact-method{font-size:.75rem;margin-bottom:1rem}}.contact-info .contact-method:last-child{margin-bottom:0}.contact-info .contact-method .contact-method-code{color:var(--text-primary);margin-bottom:.25rem}.contact-info .contact-method .contact-method-code .code-keyword{color:var(--color-keyword);font-weight:500}.contact-info .contact-method .contact-method-code .code-type{color:var(--color-type);font-weight:500}.contact-info .contact-method .contact-method-code .code-method{color:var(--color-method);font-weight:600}.contact-info .contact-method .contact-method-code .code-variable{color:var(--color-variable)}.contact-info .contact-method .contact-method-code .code-operator{color:var(--color-keyword);margin:0 .25rem}.contact-info .contact-method .contact-method-code .code-dot,.contact-info .contact-method .contact-method-code .code-parentheses{color:var(--text-primary)}.contact-info .contact-method .contact-method-content{margin-left:1.5rem;margin-bottom:.25rem}@media (max-width: 767px){.contact-info .contact-method .contact-method-content{margin-left:1rem}}.contact-info .contact-method .contact-method-content .contact-link{text-decoration:none;transition:all 150ms cubic-bezier(0.4, 0, 0.2, 1)}.contact-info .contact-method .contact-method-content .contact-link .code-string{color:var(--color-string);position:relative}.contact-info .contact-method .contact-method-content .contact-link .code-string::before,.contact-info .contact-method .contact-method-content .contact-link .code-string::after{content:'"';color:var(--color-string)}.contact-info .contact-method .contact-method-content .contact-link:hover .code-string{color:var(--color-accent);text-decoration:underline}.contact-info .contact-method .contact-method-content .contact-link:hover .code-string::before,.contact-info .contact-method .contact-method-content .contact-link:hover .code-string::after{color:var(--color-accent)}.contact-info .contact-method .contact-method-content .contact-link:focus{outline:2px solid var(--focus-outline);outline-offset:2px;border-radius:.125rem}.contact-info .contact-method .contact-method-closing{color:var(--text-primary)}.contact-info .contact-method .contact-method-closing .code-parentheses,.contact-info .contact-method .contact-method-closing .code-semicolon{color:var(--color-keyword)}.contact-info .contact-availability{background-color:var(--bg-primary);border:2px solid var(--border-color);border-radius:.5rem;padding:1.5rem;font-family:"JetBrains Mono","Fira Code","Consolas","Monaco",monospace}@media (max-width: 767px){.contact-info .contact-availability{padding:1rem}}.contact-info .contact-availability .availability-code{font-size:.875rem;margin-bottom:1rem;line-height:1.5}@media (max-width: 767px){.contact-info .contact-availability .availability-code{font-size:.75rem;margin-bottom:.75rem}}.contact-info .contact-availability .availability-code .code-keyword{color:var(--color-keyword);font-weight:500;margin-right:.25rem}.contact-info .contact-availability .availability-code .code-type{color:var(--color-type);font-weight:500;margin-right:.25rem}.contact-info .contact-availability .availability-code .code-property{color:var(--color-property);font-weight:600}.contact-info .contact-availability .availability-code .code-operator{color:var(--color-keyword);margin:0 .25rem}.contact-info .contact-availability .availability-code .code-value{color:var(--color-keyword);font-weight:700}.contact-info .contact-availability .availability-code .code-semicolon{color:var(--color-keyword)}.contact-info .contact-availability .availability-description p{margin:0;font-size:.875rem;color:var(--color-comment)}@media (max-width: 767px){.contact-info .contact-availability .availability-description p{font-size:.75rem}}@keyframes spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}h4,h5,h6,h3,.single-page .about-additional .about-skills-extended .skills-title,.single-page .page-content h3,.about .about-skills .skills-title,.contact-info .contact-info-header .contact-info-title,h2,.projects .projects-title,.single-page .page-content h2,.about .about-title,.contact .contact-title,h1,.projects-list .projects-list-header .projects-list-title,.single-page .page-content h1,.single-page .page-header .page-title{font-family:"JetBrains Mono","Fira Code","Consolas","Monaco",monospace;font-weight:700;line-height:1.25;color:var(--text-primary);margin-top:0;margin-bottom:1.5rem;letter-spacing:-0.025em}h4::before,h5::before,h6::before,h3::before,.single-page .about-additional .about-skills-extended .skills-title::before,.single-page .page-content h3::before,.about .about-skills .skills-title::before,.contact-info .contact-info-header .contact-info-title::before,h2::before,.projects .projects-title::before,.single-page .page-content h2::before,.about .about-title::before,.contact .contact-title::before,h1::before,.projects-list .projects-list-header .projects-list-title::before,.single-page .page-content h1::before,.single-page .page-header .page-title::before{color:var(--color-keyword);font-weight:400}@media (max-width: 767px){h4,h5,h6,h3,.single-page .about-additional .about-skills-extended .skills-title,.single-page .page-content h3,.about .about-skills .skills-title,.contact-info .contact-info-header .contact-info-title,h2,.projects .projects-title,.single-page .page-content h2,.about .about-title,.contact .contact-title,h1,.projects-list .projects-list-header .projects-list-title,.single-page .page-content h1,.single-page .page-header .page-title{margin-bottom:1rem}}h1,.projects-list .projects-list-header .projects-list-title,.single-page .page-content h1,.single-page .page-header .page-title{font-size:2rem;line-height:1.1;margin-bottom:2rem}@media (min-width: 768px){h1,.projects-list .projects-list-header .projects-list-title,.single-page .page-content h1,.single-page .page-header .page-title{font-size:2.25rem}}@media (min-width: 1024px){h1,.projects-list .projects-list-header .projects-list-title,.single-page .page-content h1,.single-page .page-header .page-title{font-size:2.5rem}}h1::before,.projects-list .projects-list-header .projects-list-title::before,.single-page .page-content h1::before,.single-page .page-header .page-title::before{content:"public string ";color:var(--color-keyword);font-weight:400}h1::after,.projects-list .projects-list-header .projects-list-title::after,.single-page .page-content h1::after,.single-page .page-header .page-title::after{content:"()";color:var(--color-method);font-weight:400}@media (max-width: 767px){h1,.projects-list .projects-list-header .projects-list-title,.single-page .page-content h1,.single-page .page-header .page-title{margin-bottom:1.5rem}h1::before,.projects-list .projects-list-header .projects-list-title::before,.single-page .page-content h1::before,.single-page .page-header .page-title::before{content:"string "}}h2,.projects .projects-title,.single-page .page-content h2,.about .about-title,.contact .contact-title{font-size:1.5rem;line-height:1.2;margin-top:3rem;margin-bottom:1.5rem}@media (min-width: 768px){h2,.projects .projects-title,.single-page .page-content h2,.about .about-title,.contact .contact-title{font-size:1.75rem}}@media (min-width: 1024px){h2,.projects .projects-title,.single-page .page-content h2,.about .about-title,.contact .contact-title{font-size:2rem}}h2::before,.projects .projects-title::before,.single-page .page-content h2::before,.about .about-title::before,.contact .contact-title::before{content:"class ";color:var(--color-keyword)}@media (max-width: 767px){h2,.projects .projects-title,.single-page .page-content h2,.about .about-title,.contact .contact-title{margin-top:2rem;margin-bottom:1rem}}h3,.single-page .about-additional .about-skills-extended .skills-title,.single-page .page-content h3,.about .about-skills .skills-title,.contact-info .contact-info-header .contact-info-title{font-size:1.25rem;line-height:1.3;margin-top:2rem;margin-bottom:1rem}@media (min-width: 768px){h3,.single-page .about-additional .about-skills-extended .skills-title,.single-page .page-content h3,.about .about-skills .skills-title,.contact-info .contact-info-header .contact-info-title{font-size:1.375rem}}@media (min-width: 1024px){h3,.single-page .about-additional .about-skills-extended .skills-title,.single-page .page-content h3,.about .about-skills .skills-title,.contact-info .contact-info-header .contact-info-title{font-size:1.5rem}}h3::before,.single-page .about-additional .about-skills-extended .skills-title::before,.single-page .page-content h3::before,.about .about-skills .skills-title::before,.contact-info .contact-info-header .contact-info-title::before{content:"public ";color:var(--color-keyword)}h3::after,.single-page .about-additional .about-skills-extended .skills-title::after,.single-page .page-content h3::after,.about .about-skills .skills-title::after,.contact-info .contact-info-header .contact-info-title::after{content:" { get; set; }";color:var(--color-method);font-weight:400;font-size:0.8em}@media (max-width: 767px){h3,.single-page .about-additional .about-skills-extended .skills-title,.single-page .page-content h3,.about .about-skills .skills-title,.contact-info .contact-info-header .contact-info-title{margin-top:1.5rem}h3::after,.single-page .about-additional .about-skills-extended .skills-title::after,.single-page .page-content h3::after,.about .about-skills .skills-title::after,.contact-info .contact-info-header .contact-info-title::after{display:none}}.text-code,code,code:not(.highlight code),.single-page .page-content code{font-family:"JetBrains Mono","Fira Code","Consolas","Monaco",monospace;background-color:var(--bg-tertiary);padding:.25rem .5rem;border-radius:.125rem;font-size:0.9em;color:var(--color-string);border:1px solid var(--border-light)}.text-comment{font-family:"JetBrains Mono","Fira Code","Consolas","Monaco",monospace;color:var(--color-comment);font-style:italic}.text-comment::before{content:"// "}.text-xml-comment{font-family:"JetBrains Mono","Fira Code","Consolas","Monaco",monospace;color:var(--color-comment)}.text-xml-comment::before{content:"/// "}.text-mono{font-family:"JetBrains Mono","Fira Code","Consolas","Monaco",monospace}.text-sans{font-family:"Segoe UI","Roboto",-apple-system,BlinkMacSystemFont,sans-serif}.text-keyword{color:var(--color-keyword);font-family:"JetBrains Mono","Fira Code","Consolas","Monaco",monospace;font-weight:600}.text-string{color:var(--color-string);font-family:"JetBrains Mono","Fira Code","Consolas","Monaco",monospace}.text-string::before,.text-string::after{content:'"';color:var(--color-string)}.text-method{color:var(--color-method);font-family:"JetBrains Mono","Fira Code","Consolas","Monaco",monospace}.text-method::after{content:"()";color:var(--color-method)}.text-type{color:var(--color-type);font-family:"JetBrains Mono","Fira Code","Consolas","Monaco",monospace;font-weight:500}.text-property{color:var(--color-property);font-family:"JetBrains Mono","Fira Code","Consolas","Monaco",monospace}.text-property::after{content:" { get; set; }";color:var(--color-keyword);font-size:0.8em;font-weight:400}.text-responsive{font-size:.875rem}@media (min-width: 768px){.text-responsive{font-size:1rem}}@media (min-width: 1024px){.text-responsive{font-size:1rem}}.text-xs{font-size:.75rem}.text-sm{font-size:.875rem}.text-base{font-size:1rem}.text-lg{font-size:1.125rem}.text-xl{font-size:1.25rem}.text-2xl{font-size:1.5rem}.text-3xl{font-size:2rem}.text-4xl{font-size:2.5rem}.leading-tight{line-height:1.25}.leading-normal{line-height:1.5}.leading-relaxed{line-height:1.75}.font-light{font-weight:300}.font-normal{font-weight:400}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}.theme-toggle{position:relative;background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:.75rem;padding:.25rem;width:60px;height:32px;cursor:pointer;transition:all 300ms cubic-bezier(0.4, 0, 0.2, 1);appearance:none;-webkit-appearance:none}.theme-toggle:hover{border-color:var(--color-accent);box-shadow:0 1px 2px 0 var(--shadow-color)}.theme-toggle:focus{outline:2px solid var(--focus-outline);outline-offset:2px}.theme-toggle::before{content:"";position:absolute;top:2px;left:2px;width:26px;height:26px;background-color:var(--text-primary);border-radius:50%;transition:all 300ms cubic-bezier(0.4, 0, 0.2, 1);box-shadow:0 1px 2px 0 var(--shadow-color)}.theme-toggle::after{content:"true";position:absolute;top:50%;right:6px;transform:translateY(-50%);font-family:"JetBrains Mono","Fira Code","Consolas","Monaco",monospace;font-size:10px;font-weight:700;color:var(--color-keyword);opacity:0;transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1)}.theme-toggle.theme-toggle--dark{background-color:var(--color-accent);border-color:var(--color-accent)}.theme-toggle.theme-toggle--dark::before{transform:translateX(28px);background-color:white}.theme-toggle.theme-toggle--dark::after{content:"false";left:6px;right:auto;color:white;opacity:1}.theme-toggle.theme-toggle--light::after{opacity:1}.theme-toggle:hover.theme-toggle--dark{background-color:var(--color-keyword);border-color:var(--color-keyword)}.theme-toggle:hover.theme-toggle--light{background-color:var(--hover-bg)}.theme-toggle:disabled{opacity:0.5;cursor:not-allowed}.theme-toggle:disabled:hover{border-color:var(--border-color);box-shadow:none}.theme-toggle.theme-toggle--icon{width:40px;height:40px;border-radius:.25rem}.theme-toggle.theme-toggle--icon::before{display:none}.theme-toggle.theme-toggle--icon::after{content:"☀️";position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);font-size:18px;opacity:1}.theme-toggle.theme-toggle--icon.theme-toggle--dark::after{content:"🌙"}@media (max-width: 767px){.theme-toggle{width:50px;height:28px}.theme-toggle::before{width:22px;height:22px}.theme-toggle.theme-toggle--dark::before{transform:translateX(22px)}.theme-toggle::after{font-size:8px}}.theme-toggle-wrapper{display:flex;align-items:center;gap:.75rem}.theme-toggle-wrapper .theme-toggle-label{font-family:"JetBrains Mono","Fira Code","Consolas","Monaco",monospace;font-size:.875rem;color:var(--text-secondary);user-select:none}.theme-toggle-wrapper .theme-toggle-label::before{content:"// ";color:var(--color-comment)}@media (max-width: 767px){.theme-toggle-wrapper{gap:.5rem}.theme-toggle-wrapper .theme-toggle-label{font-size:.75rem}}.theme-transition *{transition:background-color 300ms cubic-bezier(0.4, 0, 0.2, 1),color 300ms cubic-bezier(0.4, 0, 0.2, 1),border-color 300ms cubic-bezier(0.4, 0, 0.2, 1),box-shadow 300ms cubic-bezier(0.4, 0, 0.2, 1) !important}.site-header{background-color:var(--bg-primary);border-bottom:1px solid var(--border-color);padding:1rem 0;position:sticky;top:0;z-index:1020;backdrop-filter:blur(8px);transition:all 300ms cubic-bezier(0.4, 0, 0.2, 1);-webkit-overflow-scrolling:touch}.site-header .header-content{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;min-height:60px}@media (max-width: 767px){.site-header .header-content{gap:.75rem;min-height:56px}}@media (min-width: 320px){.site-header .header-content{gap:1rem}}.site-header .header-actions{display:flex;align-items:center;gap:1rem}@media (max-width: 767px){.site-header .header-actions{gap:.5rem}}@media (min-width: 375px){.site-header .header-actions{gap:.75rem}}@media (max-width: 767px){.site-header{padding:.75rem 0;position:-webkit-sticky;position:sticky}}@media (min-width: 320px){.site-header{padding:.75rem 0}}@media (min-width: 375px){.site-header{padding:1rem 0}}@media (orientation: landscape) and (max-width: 767px){.site-header{padding:.5rem 0;min-height:48px}.site-header .header-content{min-height:48px}}.site-brand{flex-shrink:0}.site-brand .brand-link{font-family:"JetBrains Mono","Fira Code","Consolas","Monaco",monospace;font-size:1.125rem;font-weight:600;text-decoration:none;color:var(--text-primary);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1);display:inline-block;padding:.5rem;margin:-.5rem;border-radius:.25rem}.site-brand .brand-link:hover{color:var(--color-accent)}.site-brand .brand-link:focus{outline:2px solid var(--focus-outline);outline-offset:2px}@media (hover: none) and (pointer: coarse){.site-brand .brand-link{min-width:44px;min-height:44px;display:flex;align-items:center}}.site-brand .brand-namespace{color:var(--color-type)}.site-brand .brand-separator{color:var(--color-keyword)}.site-brand .brand-class{color:var(--color-method)}@media (max-width: 767px){.site-brand .brand-link{font-size:1rem}}@media (min-width: 320px){.site-brand .brand-link{font-size:.875rem}}@media (min-width: 375px){.site-brand .brand-link{font-size:1rem}}@media (orientation: landscape) and (max-width: 767px){.site-brand .brand-link{font-size:.875rem}}@media (min-width: 768px){.main-navigation{display:block}}@media (max-width: 767px){.main-navigation{display:none}}.main-navigation .nav-list{display:flex;align-items:center;gap:1.5rem;list-style:none;margin:0;padding:0}@media (min-width: 1024px){.main-navigation .nav-list{gap:2rem}}.main-navigation .nav-item{margin:0}.main-navigation .nav-link{font-family:"JetBrains Mono","Fira Code","Consolas","Monaco",monospace;font-size:.875rem;color:var(--text-primary);text-decoration:none;padding:.5rem .75rem;border-radius:.25rem;transition:all 150ms cubic-bezier(0.4, 0, 0.2, 1);position:relative}.main-navigation .nav-link::before{content:"Portfolio.";color:var(--color-type);font-weight:500;opacity:0;transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1)}.main-navigation .nav-link .nav-method{color:var(--color-method);font-weight:500}.main-navigation .nav-link .nav-parentheses{color:var(--color-keyword)}.main-navigation .nav-link:hover{background-color:var(--hover-bg);color:var(--color-accent)}.main-navigation .nav-link:hover::before{opacity:1}.main-navigation .nav-link:hover .nav-method{color:var(--color-accent)}.main-navigation .nav-link:focus{outline:2px solid var(--focus-outline);outline-offset:2px}.main-navigation .nav-link.active{background-color:var(--active-bg);color:var(--color-accent);font-weight:600}.main-navigation .nav-link.active::before{opacity:1}.main-navigation .nav-link.active .nav-method{color:var(--color-accent)}.mobile-nav-toggle{display:none;flex-direction:column;justify-content:center;align-items:center;width:44px;height:44px;padding:.5rem;background-color:transparent;border:1px solid var(--border-color);border-radius:.25rem;cursor:pointer;transition:all 150ms cubic-bezier(0.4, 0, 0.2, 1);min-width:44px;min-height:44px}@media (max-width: 767px){.mobile-nav-toggle{display:flex}}@media (hover: none) and (pointer: coarse){.mobile-nav-toggle{width:48px;height:48px;min-width:48px;min-height:48px}.mobile-nav-toggle:hover{background-color:transparent;border-color:var(--border-color)}.mobile-nav-toggle:hover .hamburger-line{background-color:var(--text-primary)}.mobile-nav-toggle:active{background-color:var(--active-bg);border-color:var(--color-accent);transform:scale(0.95)}.mobile-nav-toggle:active .hamburger-line{background-color:var(--color-accent)}}.mobile-nav-toggle .hamburger-line{width:22px;height:2px;background-color:var(--text-primary);margin:3px 0;transition:all 300ms cubic-bezier(0.4, 0, 0.2, 1);border-radius:1px;transform-origin:center}.mobile-nav-toggle:hover{background-color:var(--hover-bg);border-color:var(--color-accent)}.mobile-nav-toggle:hover .hamburger-line{background-color:var(--color-accent)}.mobile-nav-toggle:focus{outline:2px solid var(--focus-outline);outline-offset:2px}.mobile-nav-toggle[aria-expanded="true"]{background-color:var(--active-bg);border-color:var(--color-accent)}.mobile-nav-toggle[aria-expanded="true"] .hamburger-line{background-color:var(--color-accent)}.mobile-nav-toggle[aria-expanded="true"] .hamburger-line:nth-child(1){transform:rotate(45deg) translate(6px, 6px)}.mobile-nav-toggle[aria-expanded="true"] .hamburger-line:nth-child(2){opacity:0;transform:scale(0)}.mobile-nav-toggle[aria-expanded="true"] .hamburger-line:nth-child(3){transform:rotate(-45deg) translate(6px, -6px)}@media (min-width: 320px){.mobile-nav-toggle{width:40px;height:40px;min-width:40px;min-height:40px}.mobile-nav-toggle .hamburger-line{width:20px}}@media (max-width: 767px){.mobile-navigation{display:block;position:absolute;top:100%;left:0;right:0;background-color:var(--bg-primary);border-bottom:1px solid var(--border-color);box-shadow:0 10px 15px -3px var(--shadow-color), 0 4px 6px -2px var(--shadow-color);transform:translateY(-100%);opacity:0;visibility:hidden;transition:all 300ms cubic-bezier(0.4, 0, 0.2, 1);z-index:1000;max-height:calc(100vh - 80px);overflow-y:auto;-webkit-overflow-scrolling:touch}.mobile-navigation[aria-hidden="false"]{transform:translateY(0);opacity:1;visibility:visible}}@media (min-width: 768px){.mobile-navigation{display:none}}.mobile-navigation .mobile-nav{padding:1.5rem 0}@media (min-width: 320px){.mobile-navigation .mobile-nav{padding:1rem 0}}.mobile-navigation .mobile-nav-list{list-style:none;margin:0;padding:0}.mobile-navigation .mobile-nav-item{margin:0}.mobile-navigation .mobile-nav-link{display:block;font-family:"JetBrains Mono","Fira Code","Consolas","Monaco",monospace;font-size:1.125rem;color:var(--text-primary);text-decoration:none;padding:1rem 1rem;transition:all 150ms cubic-bezier(0.4, 0, 0.2, 1);border-left:4px solid transparent;position:relative;min-height:48px;display:flex;align-items:center}@media (min-width: 320px){.mobile-navigation .mobile-nav-link{font-size:1rem;padding:.75rem 1rem;min-height:44px}}@media (hover: none) and (pointer: coarse){.mobile-navigation .mobile-nav-link:hover{background-color:transparent;border-left-color:transparent}.mobile-navigation .mobile-nav-link:hover .nav-method{color:var(--color-method)}.mobile-navigation .mobile-nav-link:active{background-color:var(--active-bg);border-left-color:var(--color-accent);transform:scale(0.98)}.mobile-navigation .mobile-nav-link:active .nav-method{color:var(--color-accent)}}.mobile-navigation .mobile-nav-link .nav-namespace{color:var(--color-type);font-weight:500}.mobile-navigation .mobile-nav-link .nav-method{color:var(--color-method);font-weight:500}.mobile-navigation .mobile-nav-link .nav-parentheses{color:var(--color-keyword)}.mobile-navigation .mobile-nav-link:hover{background-color:var(--hover-bg);border-left-color:var(--color-accent)}.mobile-navigation .mobile-nav-link:hover .nav-method{color:var(--color-accent)}.mobile-navigation .mobile-nav-link:focus{outline:2px solid var(--focus-outline);outline-offset:-2px;background-color:var(--hover-bg)}.mobile-navigation .mobile-nav-link.active{background-color:var(--active-bg);border-left-color:var(--color-accent);font-weight:600}.mobile-navigation .mobile-nav-link.active .nav-method{color:var(--color-accent)}.mobile-navigation .mobile-nav-link.active::after{content:"";position:absolute;right:1rem;top:50%;transform:translateY(-50%);width:6px;height:6px;background-color:var(--color-accent);border-radius:50%}.mobile-navigation .mobile-nav-link::before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(circle, var(--color-accent) 0%, transparent 70%);opacity:0;transform:scale(0);transition:all 150ms cubic-bezier(0, 0, 0.2, 1);pointer-events:none}@media (hover: none) and (pointer: coarse){.mobile-navigation .mobile-nav-link:active::before{opacity:0.1;transform:scale(1)}}.container{width:100%;max-width:1280px;margin:0 auto;padding:0 1rem}@media (max-width: 767px){.container{padding:0 .75rem}}@media (min-width: 1024px){.container{padding:0 1.5rem}}.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}.skip-link{position:absolute;top:-40px;left:6px;background:var(--color-accent);color:white;padding:8px;text-decoration:none;border-radius:.25rem;z-index:1000;font-family:"JetBrains Mono","Fira Code","Consolas","Monaco",monospace;font-size:.875rem}.skip-link:focus{top:6px}.hero{text-align:center;padding:6rem 0;min-height:80vh;display:flex;align-items:center}@media (max-width: 767px){.hero{padding:4rem 0;min-height:60vh}}@media (min-width: 375px){.hero{padding:4.5rem 0;min-height:65vh}}@media (min-width: 768px){.hero{padding:5rem 0;min-height:70vh}}@media (orientation: landscape) and (max-width: 767px){.hero{padding:3rem 0;min-height:50vh}}.hero .hero-content{max-width:900px;margin:0 auto;width:100%}.hero .hero-code-block{font-family:"JetBrains Mono","Fira Code","Consolas","Monaco",monospace;background-color:var(--bg-secondary);border:2px solid var(--border-color);border-radius:.5rem;padding:1.5rem;margin-bottom:2rem;text-align:left;max-width:600px;margin-left:auto;margin-right:auto;box-shadow:0 4px 6px -1px var(--shadow-color),0 2px 4px -1px var(--shadow-color);position:relative}@media (max-width: 767px){.hero .hero-code-block{padding:.75rem;margin-bottom:1.25rem;font-size:.75rem;max-width:none;margin-left:0;margin-right:0}}@media (min-width: 375px){.hero .hero-code-block{padding:1rem;margin-bottom:1.5rem;font-size:.875rem}}@media (hover: none) and (pointer: coarse){.hero .hero-code-block{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}}.hero .hero-code-block .hero-method{font-size:1.25rem;line-height:1.5;margin-bottom:.5rem}@media (min-width: 768px){.hero .hero-code-block .hero-method{font-size:1.5rem}}@media (max-width: 767px){.hero .hero-code-block .hero-method{font-size:1.125rem}}.hero .hero-code-block .hero-method-body{font-size:1.125rem;line-height:1.75;margin-bottom:1rem}@media (max-width: 767px){.hero .hero-code-block .hero-method-body{font-size:1rem}}.hero .hero-code-block .hero-method-body .hero-method-content{margin-left:1.5rem;margin-top:.5rem;margin-bottom:.5rem}@media (max-width: 767px){.hero .hero-code-block .hero-method-body .hero-method-content{margin-left:1rem}}.hero .hero-code-block .hero-execution{border-top:1px solid var(--border-light);padding-top:1rem;margin-top:1rem;opacity:0;transform:translateY(10px);transition:all 300ms cubic-bezier(0, 0, 0.2, 1)}.hero .hero-code-block .hero-execution.show{opacity:1;transform:translateY(0)}.hero .hero-code-block .hero-execution .execution-comment{color:var(--color-comment);font-style:italic;margin-bottom:.5rem;font-size:.875rem}.hero .hero-code-block .hero-execution .execution-comment::before{content:"// "}.hero .hero-code-block .console-output{background-color:#1a1a1a;border:1px solid #333333;border-radius:.25rem;padding:.75rem;margin-top:.75rem;font-family:"JetBrains Mono","Fira Code","Consolas","Monaco",monospace}.hero .hero-code-block .console-output .console-header{color:#888888;font-size:.75rem;text-transform:uppercase;letter-spacing:0.5px;margin-bottom:.5rem;padding-bottom:.25rem;border-bottom:1px solid #333333}.hero .hero-code-block .console-output .execution-output{color:#00ff00;font-size:1rem;font-weight:400;padding:0;background-color:transparent;border:none;border-radius:0;display:inline-block;vertical-align:baseline;line-height:inherit}@media (max-width: 767px){.hero .hero-code-block .console-output .execution-output{font-size:.875rem}}.hero .hero-code-block .console-output .execution-output::before{display:none}.hero .hero-code-block .code-keyword{color:var(--color-keyword);font-weight:500}.hero .hero-code-block .code-type{color:var(--color-type);font-weight:500}.hero .hero-code-block .code-method{color:var(--color-method);font-weight:700}.hero .hero-code-block .code-parentheses,.hero .hero-code-block .code-brace,.hero .hero-code-block .code-semicolon{color:var(--color-keyword)}.hero .hero-code-block .code-dot{color:var(--text-primary)}.hero .hero-code-block .code-string{color:var(--color-string)}.hero .hero-code-block .code-string::before,.hero .hero-code-block .code-string::after{content:'"'}.hero .hero-code-block .hero-cursor{color:var(--color-accent);animation:blink 1s infinite;font-weight:400;margin-left:2px;display:inline-block;opacity:0;transition:opacity 0.3s ease-in-out;vertical-align:baseline;line-height:inherit}.hero .hero-code-block .hero-cursor.visible{opacity:1}@keyframes blink{0%,50%{opacity:1}51%,100%{opacity:0}}@keyframes typing{from{width:0}to{width:100%}}.hero .hero-subtitle{font-family:"JetBrains Mono","Fira Code","Consolas","Monaco",monospace;font-size:1.25rem;color:var(--color-comment);margin-bottom:3rem;max-width:700px;margin-left:auto;margin-right:auto}@media (min-width: 768px){.hero .hero-subtitle{font-size:1.5rem}}@media (max-width: 767px){.hero .hero-subtitle{font-size:1.125rem;margin-bottom:2rem}}.hero .hero-subtitle::before{content:"/// ";color:var(--color-comment)}.hero .hero-actions{display:flex;gap:1.5rem;justify-content:center;flex-wrap:wrap}@media (max-width: 767px){.hero .hero-actions{gap:.75rem;flex-direction:column;align-items:center;width:100%}}@media (min-width: 375px){.hero .hero-actions{gap:1rem}}@media (min-width: 414px){.hero .hero-actions{flex-direction:row;justify-content:center}}.hero .hero-btn{font-family:"JetBrains Mono","Fira Code","Consolas","Monaco",monospace;font-size:1.125rem;padding:1rem 2rem;border-radius:.5rem;text-decoration:none;display:inline-flex;align-items:center;gap:.5rem;transition:all 300ms cubic-bezier(0.4, 0, 0.2, 1);box-shadow:0 4px 6px -1px var(--shadow-color),0 2px 4px -1px var(--shadow-color);min-width:200px;justify-content:center}@media (max-width: 767px){.hero .hero-btn{font-size:.875rem;padding:1rem 1.5rem;min-width:200px;min-height:48px;width:100%;max-width:280px}}@media (min-width: 375px){.hero .hero-btn{font-size:1rem;min-width:180px;width:auto}}@media (hover: none) and (pointer: coarse){.hero .hero-btn:hover{transform:none;box-shadow:0 4px 6px -1px var(--shadow-color), 0 2px 4px -1px var(--shadow-color)}.hero .hero-btn:active{transform:scale(0.98);box-shadow:0 1px 3px 0 var(--shadow-color), 0 1px 2px 0 var(--shadow-color)}}.hero .hero-btn .btn-return-type{color:var(--color-keyword);font-weight:500}.hero .hero-btn .btn-method{font-weight:700}.hero .hero-btn .btn-params{color:var(--color-keyword)}.hero .hero-btn:hover{transform:translateY(-2px);box-shadow:0 10px 15px -3px var(--shadow-color),0 4px 6px -2px var(--shadow-color)}.hero .hero-btn:focus{outline:3px solid var(--focus-outline);outline-offset:2px}.hero .hero-btn:active{transform:translateY(0);box-shadow:0 1px 3px 0 var(--shadow-color),0 1px 2px 0 var(--shadow-color)}.hero .hero-btn.btn-primary{background-color:var(--color-accent);color:white;border:2px solid var(--color-accent)}.hero .hero-btn.btn-primary .btn-return-type,.hero .hero-btn.btn-primary .btn-params{color:rgba(255,255,255,0.9)}.hero .hero-btn.btn-primary .btn-method{color:white}.hero .hero-btn.btn-primary:hover{background-color:var(--color-keyword);border-color:var(--color-keyword)}.hero .hero-btn.btn-secondary{background-color:transparent;color:var(--color-accent);border:2px solid var(--color-accent)}.hero .hero-btn.btn-secondary .btn-return-type,.hero .hero-btn.btn-secondary .btn-params{color:var(--color-keyword)}.hero .hero-btn.btn-secondary .btn-method{color:var(--color-accent)}.hero .hero-btn.btn-secondary:hover{background-color:var(--color-accent);color:white}.hero .hero-btn.btn-secondary:hover .btn-return-type,.hero .hero-btn.btn-secondary:hover .btn-params,.hero .hero-btn.btn-secondary:hover .btn-method{color:white}.about{padding:6rem 0;background-color:var(--bg-primary)}@media (max-width: 767px){.about{padding:4rem 0}}.about .about-content{max-width:1200px;margin:0 auto}.about .about-title{text-align:center;margin-bottom:4rem}@media (max-width: 767px){.about .about-title{margin-bottom:3rem}}.about .about-layout{display:grid;grid-template-columns:2fr 1fr;gap:3rem;align-items:start}@media (max-width: 767px){.about .about-layout{grid-template-columns:1fr;gap:2rem}}@media (min-width: 768px){.about .about-layout{gap:4rem}}.about .about-text .about-description{margin-bottom:3rem}@media (max-width: 767px){.about .about-text .about-description{margin-bottom:2rem}}.about .about-text .about-description p{font-size:1.125rem;line-height:1.75;margin-bottom:1.5rem;color:var(--text-primary)}@media (max-width: 767px){.about .about-text .about-description p{font-size:1rem}}.about .about-text .about-description p.text-comment{font-family:"JetBrains Mono","Fira Code","Consolas","Monaco",monospace;color:var(--color-comment);font-style:italic;margin-bottom:1rem}.about .about-text .about-description p.text-comment::before{content:"// "}.about .about-text .about-description .code-block-example{margin:2rem 0;background-color:var(--bg-secondary);border:2px solid var(--border-color);border-radius:.5rem;overflow:hidden;box-shadow:0 4px 6px -1px var(--shadow-color),0 2px 4px -1px var(--shadow-color)}.about .about-text .about-description .code-block-example pre{margin:0;padding:1.5rem;background-color:transparent;overflow-x:auto;font-family:"JetBrains Mono","Fira Code","Consolas","Monaco",monospace;font-size:.875rem;line-height:1.75}@media (max-width: 767px){.about .about-text .about-description .code-block-example pre{padding:1rem;font-size:.75rem}}.about .about-text .about-description .code-block-example pre code{background-color:transparent;padding:0;border:none;border-radius:0;color:var(--text-primary)}.about .about-text .about-description .code-block-example pre code .keyword{color:var(--color-keyword);font-weight:500}.about .about-text .about-description .code-block-example pre code .type{color:var(--color-type);font-weight:500}.about .about-text .about-description .code-block-example pre code .string{color:var(--color-string)}.about .about-text .about-description .code-block-example pre code .comment{color:var(--color-comment);font-style:italic}.about .about-text .about-description .code-block-example pre code .method{color:var(--color-method)}.about .about-text .about-description .code-block-example pre code .property{color:var(--color-property)}.about .about-skills .skills-title{margin-bottom:2rem}@media (max-width: 767px){.about .about-skills .skills-title{margin-bottom:1.5rem}}.about .about-skills .skills-container{background-color:var(--bg-secondary);border:2px solid var(--border-color);border-radius:.5rem;padding:1.5rem;font-family:"JetBrains Mono","Fira Code","Consolas","Monaco",monospace;box-shadow:0 1px 2px 0 var(--shadow-color)}@media (max-width: 767px){.about .about-skills .skills-container{padding:1rem}}.about .about-skills .skills-container .skill-item{display:flex;align-items:center;margin-bottom:.75rem;font-size:1rem;line-height:1.5}@media (max-width: 767px){.about .about-skills .skills-container .skill-item{font-size:.875rem}}.about .about-skills .skills-container .skill-item:last-child{margin-bottom:0}.about .about-skills .skills-container .skill-item .skill-using{color:var(--color-keyword);font-weight:500;margin-right:.5rem}.about .about-skills .skills-container .skill-item .skill-namespace{color:var(--color-type);font-weight:500}.about .about-skills .skills-container .skill-item .skill-dot{color:var(--text-primary);margin:0 1px}.about .about-skills .skills-container .skill-item .skill-name{color:var(--color-method);font-weight:600}.about .about-skills .skills-container .skill-item .skill-semicolon{color:var(--color-keyword);margin-left:1px}.about .about-skills .skills-container .skill-item:hover .skill-name{color:var(--color-accent)}.about .about-profile{display:flex;flex-direction:column;gap:2rem}@media (max-width: 767px){.about .about-profile{order:-1;gap:1.5rem}}.about .about-profile .profile-image-container{position:relative;align-self:center;width:280px;height:280px}@media (max-width: 767px){.about .about-profile .profile-image-container{width:200px;height:200px}}.about .about-profile .profile-image-container .profile-image{width:100%;height:100%;object-fit:cover;border-radius:.5rem;border:3px solid var(--border-color);box-shadow:0 4px 6px -1px var(--shadow-color),0 2px 4px -1px var(--shadow-color);transition:all 300ms cubic-bezier(0.4, 0, 0.2, 1)}.about .about-profile .profile-image-container .profile-image::before{content:"";position:absolute;top:-6px;left:-6px;right:-6px;bottom:-6px;border:2px dashed var(--color-accent);border-radius:.5rem;opacity:0;transition:opacity 300ms cubic-bezier(0.4, 0, 0.2, 1)}.about .about-profile .profile-image-container .profile-image:hover{transform:translateY(-4px);box-shadow:0 10px 15px -3px var(--shadow-color),0 4px 6px -2px var(--shadow-color);border-color:var(--color-accent)}.about .about-profile .profile-image-container .profile-image:hover::before{opacity:1}.about .about-profile .profile-image-container .profile-placeholder{width:100%;height:100%;background-color:var(--bg-secondary);border:3px solid var(--border-color);border-radius:.5rem;display:flex;align-items:center;justify-content:center;position:relative;box-shadow:0 4px 6px -1px var(--shadow-color),0 2px 4px -1px var(--shadow-color);transition:all 300ms cubic-bezier(0.4, 0, 0.2, 1)}.about .about-profile .profile-image-container .profile-placeholder::before{content:"";position:absolute;top:-6px;left:-6px;right:-6px;bottom:-6px;border:2px dashed var(--color-comment);border-radius:.5rem;opacity:0.5}.about .about-profile .profile-image-container .profile-placeholder .placeholder-code{font-family:"JetBrains Mono","Fira Code","Consolas","Monaco",monospace;font-size:.875rem;text-align:center;line-height:1.75;color:var(--text-secondary);padding:1rem}@media (max-width: 767px){.about .about-profile .profile-image-container .profile-placeholder .placeholder-code{font-size:.75rem;padding:.5rem}}.about .about-profile .profile-image-container .profile-placeholder .placeholder-code .code-comment{color:var(--color-comment)}.about .about-profile .profile-image-container .profile-placeholder .placeholder-code .code-keyword{color:var(--color-keyword);font-weight:500}.about .about-profile .profile-image-container .profile-placeholder .placeholder-code .code-variable{color:var(--color-variable)}.about .about-profile .profile-image-container .profile-placeholder .placeholder-code .code-operator{color:var(--text-primary)}.about .about-profile .profile-image-container .profile-placeholder .placeholder-code .code-type{color:var(--color-type);font-weight:500}.about .about-profile .profile-image-container .profile-placeholder .placeholder-code .code-parentheses,.about .about-profile .profile-image-container .profile-placeholder .placeholder-code .code-semicolon{color:var(--color-keyword)}.about .about-profile .profile-image-container .profile-placeholder .placeholder-code .code-dot{color:var(--text-primary)}.about .about-profile .profile-image-container .profile-placeholder .placeholder-code .code-method{color:var(--color-method)}.about .about-profile .profile-image-container .profile-placeholder:hover{border-color:var(--color-accent);transform:translateY(-2px);box-shadow:0 10px 15px -3px var(--shadow-color),0 4px 6px -2px var(--shadow-color)}.about .about-profile .profile-image-container .profile-placeholder:hover::before{border-color:var(--color-accent);opacity:1}.about .about-profile .profile-stats{background-color:var(--bg-secondary);border:2px solid var(--border-color);border-radius:.5rem;padding:1.5rem;font-family:"JetBrains Mono","Fira Code","Consolas","Monaco",monospace;box-shadow:0 1px 2px 0 var(--shadow-color)}@media (max-width: 767px){.about .about-profile .profile-stats{padding:1rem}}.about .about-profile .profile-stats .stat-item{display:flex;align-items:center;flex-wrap:wrap;margin-bottom:1rem;font-size:.875rem;line-height:1.5}@media (max-width: 767px){.about .about-profile .profile-stats .stat-item{font-size:.75rem}}.about .about-profile .profile-stats .stat-item:last-child{margin-bottom:0}.about .about-profile .profile-stats .stat-item .stat-keyword{color:var(--color-keyword);font-weight:500;margin-right:.25rem}.about .about-profile .profile-stats .stat-item .stat-type{color:var(--color-type);font-weight:500;margin-right:.25rem}.about .about-profile .profile-stats .stat-item .stat-property{color:var(--color-property);font-weight:600;margin-right:.25rem}.about .about-profile .profile-stats .stat-item .stat-operator{color:var(--text-primary);margin:0 .25rem}.about .about-profile .profile-stats .stat-item .stat-value{color:var(--color-string);font-weight:700;margin-right:1px}.about .about-profile .profile-stats .stat-item .stat-value[data-type="bool"]{color:var(--color-keyword)}.about .about-profile .profile-stats .stat-item .stat-semicolon{color:var(--color-keyword)}.about .about-profile .profile-stats .stat-item:hover .stat-property{color:var(--color-accent)}@media (max-width: 767px){.about .about-layout .about-profile .profile-image-container{align-self:center}}.single-page{max-width:900px;margin:0 auto;padding:4rem 0}@media (max-width: 767px){.single-page{padding:3rem 0}}.single-page .page-header{text-align:center;margin-bottom:4rem;padding-bottom:2rem;border-bottom:2px solid var(--border-color)}@media (max-width: 767px){.single-page .page-header{margin-bottom:3rem;padding-bottom:1.5rem}}.single-page .page-header .page-title{margin-bottom:1.5rem}@media (max-width: 767px){.single-page .page-header .page-title{margin-bottom:1rem}}.single-page .page-header .page-description{font-size:1.25rem;color:var(--color-comment);font-family:"JetBrains Mono","Fira Code","Consolas","Monaco",monospace;font-style:italic;margin-bottom:1rem}@media (max-width: 767px){.single-page .page-header .page-description{font-size:1.125rem}}.single-page .page-header .page-description::before{content:"/// "}.single-page .page-header .page-meta .page-date{font-family:"JetBrains Mono","Fira Code","Consolas","Monaco",monospace;font-size:.875rem;color:var(--text-secondary)}.single-page .page-header .page-meta .page-date .meta-comment{color:var(--color-comment);font-style:italic}.single-page .page-content{font-size:1.125rem;line-height:1.75;color:var(--text-primary)}@media (max-width: 767px){.single-page .page-content{font-size:1rem}}.single-page .page-content h1,.single-page .page-content h2,.single-page .page-content h3,.single-page .page-content h4,.single-page .page-content h5,.single-page .page-content h6{font-family:"JetBrains Mono","Fira Code","Consolas","Monaco",monospace;color:var(--text-primary);margin-top:3rem;margin-bottom:1.5rem;line-height:1.25}@media (max-width: 767px){.single-page .page-content h1,.single-page .page-content h2,.single-page .page-content h3,.single-page .page-content h4,.single-page .page-content h5,.single-page .page-content h6{margin-top:2rem;margin-bottom:1rem}}.single-page .page-content h1:first-child,.single-page .page-content h2:first-child,.single-page .page-content h3:first-child,.single-page .page-content h4:first-child,.single-page .page-content h5:first-child,.single-page .page-content h6:first-child{margin-top:0}.single-page .page-content h4{font-size:1.25rem;color:var(--color-property)}.single-page .page-content h4::before{content:"public ";color:var(--color-keyword)}.single-page .page-content h5{font-size:1.125rem;color:var(--color-method)}.single-page .page-content h5::after{content:"()";color:var(--color-keyword)}.single-page .page-content h6{font-size:1rem;color:var(--color-variable);text-transform:uppercase;letter-spacing:0.5px}.single-page .page-content p{margin-bottom:1.5rem}.single-page .page-content p:last-child{margin-bottom:0}.single-page .page-content ul,.single-page .page-content ol{margin-bottom:1.5rem;padding-left:1.5rem}@media (max-width: 767px){.single-page .page-content ul,.single-page .page-content ol{padding-left:1rem}}.single-page .page-content ul li,.single-page .page-content ol li{margin-bottom:.5rem;line-height:1.75}.single-page .page-content ul li::marker,.single-page .page-content ol li::marker{color:var(--color-accent)}.single-page .page-content ul ul,.single-page .page-content ul ol,.single-page .page-content ol ul,.single-page .page-content ol ol{margin-top:.5rem;margin-bottom:.5rem}.single-page .page-content code{font-size:0.9em}.single-page .page-content pre{margin:2rem 0;position:relative}@media (max-width: 767px){.single-page .page-content pre{margin:1.5rem 0}}.single-page .page-content pre code{background-color:transparent;padding:0;border:none;border-radius:0;font-size:.875rem;line-height:1.75}@media (max-width: 767px){.single-page .page-content pre code{font-size:.75rem}}.single-page .page-content pre[data-lang]::before{content:"// " attr(data-lang);position:absolute;top:.5rem;right:1rem;font-family:"JetBrains Mono","Fira Code","Consolas","Monaco",monospace;font-size:.75rem;color:var(--color-comment);font-style:italic}.single-page .page-content blockquote{border-left:4px solid var(--color-accent);padding:1rem 1.5rem;margin:2rem 0;background-color:var(--bg-secondary);border-radius:0 .25rem .25rem 0;font-style:italic;position:relative}@media (max-width: 767px){.single-page .page-content blockquote{padding:.75rem 1rem;margin:1.5rem 0}}.single-page .page-content blockquote::before{content:"/* ";position:absolute;top:.5rem;left:1rem;font-family:"JetBrains Mono","Fira Code","Consolas","Monaco",monospace;font-size:.75rem;color:var(--color-comment)}.single-page .page-content blockquote::after{content:" */";position:absolute;bottom:.5rem;right:1rem;font-family:"JetBrains Mono","Fira Code","Consolas","Monaco",monospace;font-size:.75rem;color:var(--color-comment)}.single-page .page-content blockquote p{margin-bottom:.75rem}.single-page .page-content blockquote p:last-child{margin-bottom:0}.single-page .page-content table{width:100%;border-collapse:collapse;margin:2rem 0;background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:.5rem;overflow:hidden;box-shadow:0 1px 2px 0 var(--shadow-color)}@media (max-width: 767px){.single-page .page-content table{margin:1.5rem 0;font-size:.875rem}}.single-page .page-content table th,.single-page .page-content table td{padding:.75rem 1rem;text-align:left;border-bottom:1px solid var(--border-light)}@media (max-width: 767px){.single-page .page-content table th,.single-page .page-content table td{padding:.5rem .75rem}}.single-page .page-content table th{background-color:var(--bg-tertiary);font-family:"JetBrains Mono","Fira Code","Consolas","Monaco",monospace;font-weight:600;color:var(--color-keyword);font-size:.875rem}.single-page .page-content table th::before{content:"public ";color:var(--color-keyword);font-weight:400}.single-page .page-content table tr:last-child th,.single-page .page-content table tr:last-child td{border-bottom:none}.single-page .page-content table tr:hover{background-color:var(--hover-bg)}.single-page .page-content a{color:var(--color-accent);text-decoration:underline;text-decoration-color:transparent;transition:all 150ms cubic-bezier(0.4, 0, 0.2, 1)}.single-page .page-content a:hover{color:var(--color-keyword);text-decoration-color:var(--color-keyword)}.single-page .page-content a:focus{outline:2px solid var(--focus-outline);outline-offset:2px;border-radius:.125rem}.single-page .page-content a[href^="http"]::after{content:"()";color:var(--color-method);font-family:"JetBrains Mono","Fira Code","Consolas","Monaco",monospace;font-size:0.9em;margin-left:2px}.single-page .page-content hr{border:none;height:2px;background:linear-gradient(to right, transparent, var(--border-color), transparent);margin:3rem 0;position:relative}.single-page .page-content hr::before{content:"// ────────────────────────────────────────";position:absolute;top:-10px;left:50%;transform:translateX(-50%);background-color:var(--bg-primary);padding:0 1rem;font-family:"JetBrains Mono","Fira Code","Consolas","Monaco",monospace;font-size:.75rem;color:var(--color-comment)}.single-page .page-content img{max-width:100%;height:auto;border-radius:.25rem;box-shadow:0 1px 2px 0 var(--shadow-color);margin:1.5rem 0}.single-page .page-content img:hover{box-shadow:0 4px 6px -1px var(--shadow-color),0 2px 4px -1px var(--shadow-color);transform:translateY(-2px);transition:all 300ms cubic-bezier(0.4, 0, 0.2, 1)}.single-page .about-additional{margin-top:4rem;padding-top:3rem;border-top:2px solid var(--border-color)}@media (max-width: 767px){.single-page .about-additional{margin-top:3rem;padding-top:2rem}}.single-page .about-additional .about-skills-extended .skills-title{text-align:center;margin-bottom:3rem}@media (max-width: 767px){.single-page .about-additional .about-skills-extended .skills-title{margin-bottom:2rem}}.single-page .about-additional .about-skills-extended .skills-grid{display:grid;grid-template-columns:repeat(auto-fit, minmax(300px, 1fr));gap:2rem}@media (max-width: 767px){.single-page .about-additional .about-skills-extended .skills-grid{grid-template-columns:1fr;gap:1.5rem}}.single-page .about-additional .about-skills-extended .skills-grid .skill-category{background-color:var(--bg-secondary);border:2px solid var(--border-color);border-radius:.5rem;padding:1.5rem;box-shadow:0 1px 2px 0 var(--shadow-color)}@media (max-width: 767px){.single-page .about-additional .about-skills-extended .skills-grid .skill-category{padding:1rem}}.single-page .about-additional .about-skills-extended .skills-grid .skill-category .category-title{font-family:"JetBrains Mono","Fira Code","Consolas","Monaco",monospace;font-size:1.125rem;color:var(--color-type);margin-bottom:1rem;padding-bottom:.5rem;border-bottom:1px solid var(--border-light)}.single-page .about-additional .about-skills-extended .skills-grid .skill-category .category-title::before{content:"namespace ";color:var(--color-keyword);font-weight:400}.single-page .about-additional .about-skills-extended .skills-grid .skill-category .category-title::after{content:" {";color:var(--color-keyword)}.single-page .about-additional .about-skills-extended .skills-grid .skill-category .category-skills .skill-tag{display:flex;align-items:center;margin-bottom:.5rem;font-family:"JetBrains Mono","Fira Code","Consolas","Monaco",monospace;font-size:.875rem;padding-left:1rem}@media (max-width: 767px){.single-page .about-additional .about-skills-extended .skills-grid .skill-category .category-skills .skill-tag{font-size:.75rem;padding-left:.5rem}}.single-page .about-additional .about-skills-extended .skills-grid .skill-category .category-skills .skill-tag:last-child{margin-bottom:0}.single-page .about-additional .about-skills-extended .skills-grid .skill-category .category-skills .skill-tag .skill-using{color:var(--color-keyword);font-weight:500;margin-right:.5rem}.single-page .about-additional .about-skills-extended .skills-grid .skill-category .category-skills .skill-tag .skill-namespace{color:var(--color-type);font-weight:500}.single-page .about-additional .about-skills-extended .skills-grid .skill-category .category-skills .skill-tag .skill-dot{color:var(--text-primary);margin:0 1px}.single-page .about-additional .about-skills-extended .skills-grid .skill-category .category-skills .skill-tag .skill-name{color:var(--color-method);font-weight:600}.single-page .about-additional .about-skills-extended .skills-grid .skill-category .category-skills .skill-tag .skill-semicolon{color:var(--color-keyword);margin-left:1px}.single-page .about-additional .about-skills-extended .skills-grid .skill-category .category-skills .skill-tag:hover .skill-name{color:var(--color-accent)}.single-page .about-additional .about-skills-extended .skills-grid .skill-category .category-skills::after{content:"}";display:block;font-family:"JetBrains Mono","Fira Code","Consolas","Monaco",monospace;color:var(--color-keyword);margin-top:.5rem;font-size:1rem}.projects{padding:6rem 0;background-color:var(--bg-secondary)}@media (max-width: 767px){.projects{padding:3rem 0}}@media (min-width: 375px){.projects{padding:3.5rem 0}}@media (min-width: 768px){.projects{padding:4rem 0}}.projects .projects-content{max-width:1400px;margin:0 auto}.projects .projects-title{text-align:center;margin-bottom:4rem}@media (max-width: 767px){.projects .projects-title{margin-bottom:3rem}}.projects .projects-grid{display:grid;grid-template-columns:repeat(auto-fit, minmax(400px, 1fr));gap:2rem;margin-bottom:3rem}@media (max-width: 767px){.projects .projects-grid{grid-template-columns:1fr;gap:1rem}}@media (min-width: 375px){.projects .projects-grid{grid-template-columns:1fr;gap:1.25rem}}@media (min-width: 414px){.projects .projects-grid{grid-template-columns:repeat(auto-fit, minmax(320px, 1fr))}}@media (min-width: 768px){.projects .projects-grid{grid-template-columns:repeat(auto-fit, minmax(380px, 1fr))}}@media (max-width: 767px){.projects .projects-grid{grid-template-columns:1fr;gap:1.5rem;margin-bottom:2rem}}@media (min-width: 768px){.projects .projects-grid{grid-template-columns:repeat(auto-fit, minmax(450px, 1fr));gap:2.5rem}}@media (min-width: 1024px){.projects .projects-grid{grid-template-columns:repeat(auto-fit, minmax(500px, 1fr));gap:3rem}}.projects .projects-more{grid-column:1 / -1;display:flex;justify-content:center;margin-top:2rem}.projects .projects-more .projects-more-btn{font-size:1.125rem;padding:1rem 2rem}@media (max-width: 767px){.projects .projects-more .projects-more-btn{font-size:1rem;padding:.75rem 1.5rem}}.project-card{background-color:var(--bg-primary);border:2px solid var(--border-color);border-radius:.5rem;font-family:"JetBrains Mono","Fira Code","Consolas","Monaco",monospace;font-size:.875rem;line-height:1.5;box-shadow:0 4px 6px -1px var(--shadow-color),0 2px 4px -1px var(--shadow-color);transition:all 300ms cubic-bezier(0.4, 0, 0.2, 1);overflow:hidden;position:relative}@media (max-width: 767px){.project-card{font-size:.75rem}}.project-card:hover{border-color:var(--color-accent);box-shadow:0 10px 15px -3px var(--shadow-color),0 4px 6px -2px var(--shadow-color);transform:translateY(-4px)}.project-card:hover .project-title{color:var(--color-accent)}.project-card:hover .project-method-link:not(:hover){opacity:0.8}.project-card .project-header{padding:1rem 1.5rem;background-color:var(--bg-secondary);border-bottom:1px solid var(--border-light)}@media (max-width: 767px){.project-card .project-header{padding:.75rem 1rem}}.project-card .project-header .project-class-definition{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-bottom:.5rem}@media (max-width: 767px){.project-card .project-header .project-class-definition{gap:.25rem;margin-bottom:.25rem}}.project-card .project-header .project-keyword{color:var(--color-keyword);font-weight:500}.project-card .project-header .project-title{color:var(--color-type);font-weight:700;font-size:1.125rem;margin:0;transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1)}@media (max-width: 767px){.project-card .project-header .project-title{font-size:1rem}}.project-card .project-header .project-inheritance{color:var(--color-keyword);font-weight:400}.project-card .project-header .project-brace{color:var(--color-keyword);font-size:1.125rem;font-weight:700}@media (max-width: 767px){.project-card .project-header .project-brace{font-size:1rem}}.project-card .project-body{padding:1.5rem}@media (max-width: 767px){.project-card .project-body{padding:1rem}}.project-card .project-description{margin-bottom:1.5rem;line-height:1.75}@media (max-width: 767px){.project-card .project-description{margin-bottom:1rem}}.project-card .project-description .project-xml-comment{display:block;color:var(--color-comment);font-style:italic;margin-bottom:.25rem}.project-card .project-description .project-xml-comment:first-child,.project-card .project-description .project-xml-comment:last-child{margin-bottom:.5rem}.project-card .project-description .project-xml-comment:nth-child(2){padding-left:.75rem;font-style:normal;color:var(--text-secondary);font-size:1rem}@media (max-width: 767px){.project-card .project-description .project-xml-comment:nth-child(2){font-size:.875rem}}.project-card .project-attributes{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem}@media (max-width: 767px){.project-card .project-attributes{gap:.25rem;margin-bottom:1rem}}.project-card .project-attributes .project-attribute{display:inline-flex;align-items:center;background-color:var(--bg-tertiary);border:1px solid var(--border-light);border-radius:.25rem;padding:.25rem .5rem;font-size:.75rem;transition:all 150ms cubic-bezier(0.4, 0, 0.2, 1)}.project-card .project-attributes .project-attribute:hover{background-color:var(--hover-bg);border-color:var(--color-accent)}.project-card .project-attributes .project-attribute:hover .attribute-name{color:var(--color-accent)}.project-card .project-attributes .project-attribute .attribute-bracket{color:var(--color-keyword);font-weight:700}.project-card .project-attributes .project-attribute .attribute-name{color:var(--color-type);font-weight:500;margin:0 2px;transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1)}.project-card .project-properties{margin-bottom:1.5rem}@media (max-width: 767px){.project-card .project-properties{margin-bottom:1rem}}.project-card .project-properties .project-property{display:flex;align-items:center;gap:.25rem;margin-bottom:.75rem;flex-wrap:wrap}@media (max-width: 767px){.project-card .project-properties .project-property{margin-bottom:.5rem}}.project-card .project-properties .project-property:last-child{margin-bottom:0}.project-card .project-properties .project-property .property-keyword{color:var(--color-keyword);font-weight:500}.project-card .project-properties .project-property .property-type{color:var(--color-type);font-weight:500}.project-card .project-properties .project-property .property-name{color:var(--color-property);font-weight:600}.project-card .project-properties .project-property .property-operator{color:var(--color-keyword);margin:0 .25rem}.project-card .project-properties .project-property .property-value{color:var(--color-variable);text-decoration:none;transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1)}.project-card .project-properties .project-property .property-value:hover{color:var(--color-accent)}.project-card .project-properties .project-property .property-value .property-string{color:var(--color-string)}.project-card .project-properties .project-property .property-value .property-string::before,.project-card .project-properties .project-property .property-value .property-string::after{content:'"';color:var(--color-string)}.project-card .project-properties .project-property .property-semicolon{color:var(--color-keyword)}.project-card .project-methods{display:flex;flex-direction:column;gap:.75rem}@media (max-width: 767px){.project-card .project-methods{gap:.5rem}}.project-card .project-methods .project-method-link{display:flex;align-items:center;gap:.25rem;padding:.5rem .75rem;background-color:var(--bg-secondary);border:1px solid var(--border-light);border-radius:.25rem;text-decoration:none;transition:all 150ms cubic-bezier(0.4, 0, 0.2, 1);flex-wrap:wrap}@media (max-width: 767px){.project-card .project-methods .project-method-link{padding:.25rem .5rem}}.project-card .project-methods .project-method-link:hover{background-color:var(--hover-bg);border-color:var(--color-accent);transform:translateX(4px)}.project-card .project-methods .project-method-link:hover .method-name{color:var(--color-accent)}.project-card .project-methods .project-method-link:focus{outline:2px solid var(--focus-outline);outline-offset:2px}.project-card .project-methods .project-method-link .method-keyword{color:var(--color-keyword);font-weight:500}.project-card .project-methods .project-method-link .method-return-type{color:var(--color-type);font-weight:500}.project-card .project-methods .project-method-link .method-name{color:var(--color-method);font-weight:700;transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1)}.project-card .project-methods .project-method-link .method-params{color:var(--color-keyword)}.project-card .project-footer{padding:.75rem 1.5rem;background-color:var(--bg-secondary);border-top:1px solid var(--border-light)}@media (max-width: 767px){.project-card .project-footer{padding:.5rem 1rem}}.project-card .project-footer .project-brace{color:var(--color-keyword);font-size:1.125rem;font-weight:700}@media (max-width: 767px){.project-card .project-footer .project-brace{font-size:1rem}}.project-card.project-featured{border-color:var(--color-accent);position:relative}.project-card.project-featured::before{content:"// Featured Project";position:absolute;top:-1px;right:1rem;background-color:var(--color-accent);color:white;padding:.25rem .75rem;font-size:.75rem;border-radius:0 0 .25rem .25rem;font-family:"JetBrains Mono","Fira Code","Consolas","Monaco",monospace}.project-card.project-featured .project-header{background:linear-gradient(135deg, var(--bg-secondary) 0%, var(--bg-tertiary) 100%)}.project-card.project-loading .project-body{opacity:0.6;pointer-events:none}.project-card.project-loading .project-title::after{content:"...";animation:loading-dots 1.5s infinite}.project-card.project-error{border-color:var(--color-error)}.project-card.project-error .project-header{background-color:rgba(var(--color-error), 0.1)}.project-card.project-error .project-title{color:var(--color-error)}.project-card.project-error .project-description::before{content:"// Error loading project data";color:var(--color-error);display:block;margin-bottom:.5rem}@keyframes loading-dots{0%,20%{opacity:0}50%{opacity:1}80%,100%{opacity:0}}@media (max-width: 767px){.projects-grid{grid-template-columns:1fr !important;gap:1rem !important}.project-card{margin-bottom:1rem;padding:1rem !important}.project-card .project-class-definition{flex-direction:column;align-items:flex-start;gap:.25rem}.project-card .project-methods .project-method-link{font-size:.75rem;justify-content:flex-start;min-height:44px;padding:.5rem .75rem}.project-card .project-header{padding:.75rem !important}.project-card .project-content{padding:.75rem !important}.project-card .project-footer{padding:.75rem !important}}@media (max-width: 320px){.projects-grid{gap:.75rem !important}.project-card{padding:.75rem !important;margin-bottom:.75rem}.project-card .project-methods .project-method-link{font-size:.75rem;padding:.5rem}}@media print{.project-card{break-inside:avoid;box-shadow:none;border:1px solid #000}.project-card .project-methods{display:none}}.projects-list{padding:4rem 0;background-color:var(--bg-primary)}@media (max-width: 767px){.projects-list{padding:3rem 0}}.projects-list .projects-list-content{max-width:1400px;margin:0 auto}.projects-list .projects-list-header{text-align:center;margin-bottom:4rem}@media (max-width: 767px){.projects-list .projects-list-header{margin-bottom:3rem}}.projects-list .projects-list-header .projects-list-title{margin-bottom:1rem}.projects-list .projects-list-header .projects-list-meta .projects-count{font-family:"JetBrains Mono","Fira Code","Consolas","Monaco",monospace;color:var(--color-comment);font-style:italic}.projects-list .projects-empty{text-align:center;padding:4rem 0}.projects-list .projects-empty .empty-state{max-width:600px;margin:0 auto}.projects-list .projects-empty .empty-state .empty-code-block{font-family:"JetBrains Mono","Fira Code","Consolas","Monaco",monospace;background-color:var(--bg-secondary);border:2px solid var(--border-color);border-radius:.5rem;padding:1.5rem;margin-bottom:2rem;text-align:left;font-size:1rem;line-height:1.75}@media (max-width: 767px){.projects-list .projects-empty .empty-state .empty-code-block{padding:1rem;font-size:.875rem}}.projects-list .projects-empty .empty-state .empty-code-block .code-keyword{color:var(--color-keyword);font-weight:500}.projects-list .projects-empty .empty-state .empty-code-block .code-parentheses,.projects-list .projects-empty .empty-state .empty-code-block .code-brace,.projects-list .projects-empty .empty-state .empty-code-block .code-semicolon{color:var(--color-keyword)}.projects-list .projects-empty .empty-state .empty-code-block .code-variable{color:var(--color-variable)}.projects-list .projects-empty .empty-state .empty-code-block .code-dot{color:var(--text-primary)}.projects-list .projects-empty .empty-state .empty-code-block .code-property{color:var(--color-property)}.projects-list .projects-empty .empty-state .empty-code-block .code-operator{color:var(--color-keyword)}.projects-list .projects-empty .empty-state .empty-code-block .code-number{color:var(--color-number)}.projects-list .projects-empty .empty-state .empty-code-block .code-type{color:var(--color-type)}.projects-list .projects-empty .empty-state .empty-code-block .code-method{color:var(--color-method)}.projects-list .projects-empty .empty-state .empty-code-block .code-string{color:var(--color-string)}.projects-list .projects-empty .empty-state .empty-code-block .code-string::before,.projects-list .projects-empty .empty-state .empty-code-block .code-string::after{content:'"'}.projects-list .projects-empty .empty-state .empty-description{font-size:1.125rem;color:var(--text-secondary);margin:0}@media (max-width: 767px){.projects-list .projects-empty .empty-state .empty-description{font-size:1rem}}.project-single{padding:4rem 0;background-color:var(--bg-primary)}@media (max-width: 767px){.project-single{padding:3rem 0}}.project-single .project-single-content{max-width:1000px;margin:0 auto}.project-single .project-breadcrumb{display:flex;align-items:center;gap:.5rem;margin-bottom:2rem;font-family:"JetBrains Mono","Fira Code","Consolas","Monaco",monospace;font-size:.875rem;flex-wrap:wrap}@media (max-width: 767px){.project-single .project-breadcrumb{margin-bottom:1.5rem;font-size:.75rem}}.project-single .project-breadcrumb .breadcrumb-link{color:var(--color-accent);text-decoration:none;transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1)}.project-single .project-breadcrumb .breadcrumb-link:hover{color:var(--color-keyword)}.project-single .project-breadcrumb .breadcrumb-link .breadcrumb-namespace{color:var(--color-type)}.project-single .project-breadcrumb .breadcrumb-link .breadcrumb-dot{color:var(--text-primary)}.project-single .project-breadcrumb .breadcrumb-link .breadcrumb-method{color:var(--color-method)}.project-single .project-breadcrumb .breadcrumb-link .breadcrumb-params{color:var(--color-keyword)}.project-single .project-breadcrumb .breadcrumb-separator{color:var(--text-muted);margin:0 .25rem}.project-single .project-breadcrumb .breadcrumb-current{color:var(--text-primary);font-weight:600}.project-single .project-single-header{background-color:var(--bg-secondary);border:2px solid var(--border-color);border-radius:.5rem;padding:2rem;margin-bottom:3rem;font-family:"JetBrains Mono","Fira Code","Consolas","Monaco",monospace}@media (max-width: 767px){.project-single .project-single-header{padding:1.5rem;margin-bottom:2rem}}.project-single .project-single-header .project-class-header{margin-bottom:2rem}@media (max-width: 767px){.project-single .project-single-header .project-class-header{margin-bottom:1.5rem}}.project-single .project-single-header .project-class-header .project-class-definition{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-bottom:.5rem}@media (max-width: 767px){.project-single .project-single-header .project-class-header .project-class-definition{flex-direction:column;align-items:flex-start;gap:.25rem}}.project-single .project-single-header .project-class-header .project-class-definition .project-keyword{color:var(--color-keyword);font-weight:500}.project-single .project-single-header .project-class-header .project-class-definition .project-title{color:var(--color-type);font-weight:700;font-size:2rem;margin:0}@media (max-width: 767px){.project-single .project-single-header .project-class-header .project-class-definition .project-title{font-size:1.5rem}}.project-single .project-single-header .project-class-header .project-class-definition .project-inheritance{color:var(--color-keyword);font-weight:400}.project-single .project-single-header .project-class-header .project-brace{color:var(--color-keyword);font-size:1.5rem;font-weight:700}@media (max-width: 767px){.project-single .project-single-header .project-class-header .project-brace{font-size:1.25rem}}.project-single .project-single-header .project-meta{margin-bottom:2rem}@media (max-width: 767px){.project-single .project-single-header .project-meta{margin-bottom:1.5rem}}.project-single .project-single-header .project-meta .project-xml-comment{margin-bottom:1.5rem;line-height:1.75}@media (max-width: 767px){.project-single .project-single-header .project-meta .project-xml-comment{margin-bottom:1rem}}.project-single .project-single-header .project-meta .project-xml-comment span{display:block;color:var(--color-comment);font-style:italic;margin-bottom:.25rem}.project-single .project-single-header .project-meta .project-xml-comment span:nth-child(2){padding-left:.75rem;font-style:normal;color:var(--text-primary);font-size:1.125rem;font-weight:500}@media (max-width: 767px){.project-single .project-single-header .project-meta .project-xml-comment span:nth-child(2){font-size:1rem}}.project-single .project-single-header .project-meta .project-attributes{display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:1.5rem}@media (max-width: 767px){.project-single .project-single-header .project-meta .project-attributes{gap:.5rem;margin-bottom:1rem}}.project-single .project-single-header .project-meta .project-attributes .project-attribute{background-color:var(--bg-tertiary);border:1px solid var(--border-light);border-radius:.25rem;padding:.5rem .75rem;font-size:.875rem}@media (max-width: 767px){.project-single .project-single-header .project-meta .project-attributes .project-attribute{padding:.25rem .5rem;font-size:.75rem}}.project-single .project-single-header .project-meta .project-attributes .project-attribute .attribute-bracket{color:var(--color-keyword);font-weight:700}.project-single .project-single-header .project-meta .project-attributes .project-attribute .attribute-name{color:var(--color-type);font-weight:500;margin:0 2px}.project-single .project-single-header .project-meta .project-properties .project-property{display:flex;align-items:center;gap:.25rem;margin-bottom:.75rem;flex-wrap:wrap}@media (max-width: 767px){.project-single .project-single-header .project-meta .project-properties .project-property{margin-bottom:.5rem}}.project-single .project-single-header .project-meta .project-properties .project-property:last-child{margin-bottom:0}.project-single .project-single-header .project-meta .project-properties .project-property .property-keyword{color:var(--color-keyword);font-weight:500}.project-single .project-single-header .project-meta .project-properties .project-property .property-type{color:var(--color-type);font-weight:500}.project-single .project-single-header .project-meta .project-properties .project-property .property-name{color:var(--color-property);font-weight:600}.project-single .project-single-header .project-meta .project-properties .project-property .property-operator{color:var(--color-keyword);margin:0 .25rem}.project-single .project-single-header .project-meta .project-properties .project-property .property-value{color:var(--color-variable);text-decoration:none;transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1)}.project-single .project-single-header .project-meta .project-properties .project-property .property-value:hover{color:var(--color-accent)}.project-single .project-single-header .project-meta .project-properties .project-property .property-value .property-string{color:var(--color-string)}.project-single .project-single-header .project-meta .project-properties .project-property .property-value .property-string::before,.project-single .project-single-header .project-meta .project-properties .project-property .property-value .property-string::after{content:'"';color:var(--color-string)}.project-single .project-single-header .project-meta .project-properties .project-property .property-semicolon{color:var(--color-keyword)}.project-single .project-single-header .project-actions{display:flex;gap:1rem;flex-wrap:wrap}@media (max-width: 767px){.project-single .project-single-header .project-actions{gap:.75rem;flex-direction:column}}.project-single .project-single-header .project-actions .project-action-btn{font-size:1.125rem;padding:1rem 1.5rem}@media (max-width: 767px){.project-single .project-single-header .project-actions .project-action-btn{font-size:1rem;padding:.75rem 1rem;justify-content:center}}.project-single .project-content{margin-bottom:3rem}@media (max-width: 767px){.project-single .project-content{margin-bottom:2rem}}.project-single .project-content .project-image{margin-bottom:2rem;text-align:center}@media (max-width: 767px){.project-single .project-content .project-image{margin-bottom:1.5rem}}.project-single .project-content .project-image .project-screenshot{max-width:100%;height:auto;border-radius:.5rem;border:2px solid var(--border-color);box-shadow:0 10px 15px -3px var(--shadow-color),0 4px 6px -2px var(--shadow-color);transition:all 300ms cubic-bezier(0.4, 0, 0.2, 1)}.project-single .project-content .project-image .project-screenshot:hover{transform:scale(1.02);box-shadow:0 20px 25px -5px var(--shadow-color),0 10px 10px -5px var(--shadow-color);border-color:var(--color-accent)}.project-single .project-content .project-body{font-size:1.125rem;line-height:1.75;color:var(--text-primary)}@media (max-width: 767px){.project-single .project-content .project-body{font-size:1rem}}.project-single .project-content .project-body h2,.project-single .project-content .project-body h3,.project-single .project-content .project-body h4{margin-top:3rem;margin-bottom:1.5rem}@media (max-width: 767px){.project-single .project-content .project-body h2,.project-single .project-content .project-body h3,.project-single .project-content .project-body h4{margin-top:2rem;margin-bottom:1rem}}.project-single .project-content .project-body p{margin-bottom:1.5rem;max-width:none}@media (max-width: 767px){.project-single .project-content .project-body p{margin-bottom:1rem}}.project-single .project-content .project-body ul,.project-single .project-content .project-body ol{margin-bottom:1.5rem}@media (max-width: 767px){.project-single .project-content .project-body ul,.project-single .project-content .project-body ol{margin-bottom:1rem}}.project-single .project-content .project-body ul li,.project-single .project-content .project-body ol li{margin-bottom:.75rem}@media (max-width: 767px){.project-single .project-content .project-body ul li,.project-single .project-content .project-body ol li{margin-bottom:.5rem}}.project-single .project-content .project-body pre{margin:2rem 0;background-color:var(--bg-secondary);border:2px solid var(--border-color);border-radius:.5rem;padding:1.5rem;overflow-x:auto}@media (max-width: 767px){.project-single .project-content .project-body pre{margin:1.5rem 0;padding:1rem}}.project-single .project-content .project-body pre code{font-family:"JetBrains Mono","Fira Code","Consolas","Monaco",monospace;font-size:.875rem;line-height:1.75;color:var(--text-primary)}@media (max-width: 767px){.project-single .project-content .project-body pre code{font-size:.75rem}}.project-single .project-content .project-body code{background-color:var(--bg-tertiary);padding:.25rem .5rem;border-radius:.125rem;font-family:"JetBrains Mono","Fira Code","Consolas","Monaco",monospace;font-size:0.9em;color:var(--color-string);border:1px solid var(--border-light)}.project-single .project-single-footer{background-color:var(--bg-secondary);border:2px solid var(--border-color);border-radius:.5rem;padding:2rem;font-family:"JetBrains Mono","Fira Code","Consolas","Monaco",monospace}@media (max-width: 767px){.project-single .project-single-footer{padding:1.5rem}}.project-single .project-single-footer .project-brace{color:var(--color-keyword);font-size:1.5rem;font-weight:700;margin-bottom:2rem}@media (max-width: 767px){.project-single .project-single-footer .project-brace{font-size:1.25rem;margin-bottom:1.5rem}}.project-single .project-single-footer .project-navigation{display:flex;justify-content:space-between;gap:1rem;margin-bottom:2rem}@media (max-width: 767px){.project-single .project-single-footer .project-navigation{flex-direction:column;gap:.75rem;margin-bottom:1.5rem}}.project-single .project-single-footer .project-navigation .project-nav-link{display:flex;flex-direction:column;padding:1rem;background-color:var(--bg-primary);border:1px solid var(--border-light);border-radius:.25rem;text-decoration:none;transition:all 150ms cubic-bezier(0.4, 0, 0.2, 1);flex:1;max-width:45%}@media (max-width: 767px){.project-single .project-single-footer .project-navigation .project-nav-link{max-width:100%;padding:.75rem}}.project-single .project-single-footer .project-navigation .project-nav-link:hover{background-color:var(--hover-bg);border-color:var(--color-accent);transform:translateY(-2px)}.project-single .project-single-footer .project-navigation .project-nav-link.project-nav-prev{text-align:left}.project-single .project-single-footer .project-navigation .project-nav-link.project-nav-next{text-align:right}.project-single .project-single-footer .project-navigation .project-nav-link .nav-direction{font-size:.875rem;color:var(--color-comment);margin-bottom:.25rem}@media (max-width: 767px){.project-single .project-single-footer .project-navigation .project-nav-link .nav-direction{font-size:.75rem}}.project-single .project-single-footer .project-navigation .project-nav-link .nav-title{font-size:1rem;color:var(--color-accent);font-weight:600}@media (max-width: 767px){.project-single .project-single-footer .project-navigation .project-nav-link .nav-title{font-size:.875rem}}.project-single .project-single-footer .back-to-projects{text-align:center}.project-single .project-single-footer .back-to-projects .btn{font-size:1.125rem;padding:1rem 1.5rem}@media (max-width: 767px){.project-single .project-single-footer .back-to-projects .btn{font-size:1rem;padding:.75rem 1rem}}@media (max-width: 480px){.project-single .project-single-header .project-class-definition{gap:.25rem}.project-single .project-single-header .project-actions .project-action-btn{width:100%;justify-content:center}.project-single .project-navigation .project-nav-link.project-nav-prev,.project-single .project-navigation .project-nav-link.project-nav-next{text-align:center}}.site-footer{background-color:var(--bg-secondary);border-top:1px solid var(--border-color);padding:4rem 0 2rem;margin-top:auto}@media (max-width: 767px){.site-footer{padding:3rem 0 1.5rem}}.site-footer .footer-content{display:grid;grid-template-columns:2fr 1fr;gap:3rem;align-items:start}@media (max-width: 767px){.site-footer .footer-content{grid-template-columns:1fr;gap:2rem}}@media (min-width: 768px){.site-footer .footer-content{gap:4rem}}.footer-contact .footer-section-title{font-family:"JetBrains Mono","Fira Code","Consolas","Monaco",monospace;font-size:1.125rem;font-weight:600;margin-bottom:1.5rem;line-height:1.5}@media (max-width: 767px){.footer-contact .footer-section-title{font-size:1rem;margin-bottom:1rem}}.footer-contact .footer-section-title .code-keyword{color:var(--color-keyword);font-weight:500}.footer-contact .footer-section-title .code-type{color:var(--color-type);font-weight:600}.footer-contact .footer-section-title .code-method{color:var(--color-method);font-weight:700}.footer-contact .footer-section-title .code-parentheses{color:var(--color-keyword)}.footer-contact .footer-contact-methods{display:flex;flex-direction:column;gap:1rem}@media (max-width: 767px){.footer-contact .footer-contact-methods{gap:.75rem}}.footer-contact-method{font-family:"JetBrains Mono","Fira Code","Consolas","Monaco",monospace;font-size:.875rem;line-height:1.5}@media (max-width: 767px){.footer-contact-method{font-size:.75rem}}.footer-contact-method .contact-method-code{color:var(--text-primary);margin-bottom:.25rem}.footer-contact-method .contact-method-code .code-keyword{color:var(--color-keyword);font-weight:500}.footer-contact-method .contact-method-code .code-variable{color:var(--color-variable)}.footer-contact-method .contact-method-code .code-operator{color:var(--color-keyword);margin:0 .25rem}.footer-contact-method .contact-method-code .code-method{color:var(--color-method);font-weight:600}.footer-contact-method .contact-method-code .code-dot{color:var(--text-primary)}.footer-contact-method .contact-method-code .code-parentheses{color:var(--color-keyword)}.footer-contact-method .contact-method-content{margin-left:1.5rem;margin-bottom:.25rem}@media (max-width: 767px){.footer-contact-method .contact-method-content{margin-left:1rem}}.footer-contact-method .contact-method-content .contact-link{text-decoration:none;transition:all 150ms cubic-bezier(0.4, 0, 0.2, 1)}.footer-contact-method .contact-method-content .contact-link .code-string{color:var(--color-string);position:relative}.footer-contact-method .contact-method-content .contact-link .code-string::before,.footer-contact-method .contact-method-content .contact-link .code-string::after{content:'"';color:var(--color-string)}.footer-contact-method .contact-method-content .contact-link:hover .code-string{color:var(--color-accent);text-decoration:underline}.footer-contact-method .contact-method-content .contact-link:hover .code-string::before,.footer-contact-method .contact-method-content .contact-link:hover .code-string::after{color:var(--color-accent)}.footer-contact-method .contact-method-content .contact-link:focus{outline:2px solid var(--focus-outline);outline-offset:2px;border-radius:.125rem}.footer-contact-method .contact-method-closing{margin-left:1.5rem;color:var(--text-primary)}@media (max-width: 767px){.footer-contact-method .contact-method-closing{margin-left:1rem}}.footer-contact-method .contact-method-closing .code-parentheses,.footer-contact-method .contact-method-closing .code-semicolon{color:var(--color-keyword)}.footer-copyright{display:flex;flex-direction:column;gap:.5rem;justify-content:flex-end}@media (max-width: 767px){.footer-copyright{justify-content:flex-start;gap:.25rem}}.footer-copyright .copyright-comment{font-family:"JetBrains Mono","Fira Code","Consolas","Monaco",monospace;font-size:.875rem;line-height:1.5;color:var(--color-comment);font-style:italic}@media (max-width: 767px){.footer-copyright .copyright-comment{font-size:.75rem}}.footer-copyright .copyright-comment .comment-prefix{color:var(--color-comment);font-weight:500}.footer-copyright .copyright-comment .comment-text{color:var(--color-comment)}.footer-copyright .copyright-comment:hover .comment-text{color:var(--text-secondary)}@media (max-width: 767px){.site-footer .footer-contact .footer-section-title{text-align:center}.site-footer .footer-contact .footer-contact-methods{align-items:center}.site-footer .footer-copyright{text-align:center}}#app{display:flex;flex-direction:column;min-height:100vh}#app #main{flex:1}@media (prefers-color-scheme: dark){.site-footer{background-color:var(--bg-secondary);border-top-color:var(--border-color)}}@media (prefers-contrast: high){.site-footer{border-top-width:2px}.site-footer .footer-contact-method .contact-link:focus{outline-width:3px}}@media (prefers-reduced-motion: reduce){.footer-contact-method .contact-link{transition:none}.copyright-comment{transition:none}}.highlight{position:relative;background-color:var(--bg-tertiary);border:1px solid var(--border-light);border-radius:.5rem;margin:1.5rem 0;overflow:hidden;box-shadow:0 1px 2px 0 var(--shadow-color)}@media (max-width: 767px){.highlight{margin:1rem 0;border-radius:.25rem}}.highlight pre{margin:0;padding:1rem 1.5rem;background:transparent;overflow-x:auto;font-family:"JetBrains Mono","Fira Code","Consolas","Monaco",monospace;font-size:.875rem;line-height:1.75;color:var(--text-primary)}@media (max-width: 767px){.highlight pre{padding:.75rem 1rem;font-size:.75rem}}.highlight pre::-webkit-scrollbar{height:8px}.highlight pre::-webkit-scrollbar-track{background:var(--bg-secondary)}.highlight pre::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:.25rem}.highlight pre::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.highlight code{background:none;padding:0;border:none;border-radius:0;font-size:inherit;color:inherit}.highlight .lnt{color:var(--text-muted);user-select:none;margin-right:1rem;padding-right:.5rem;border-right:1px solid var(--border-light)}@media (max-width: 767px){.highlight .lnt{margin-right:.5rem;padding-right:.25rem}}.highlight .lntable{border-spacing:0;padding:0;margin:0;border:0;width:auto;overflow:initial;background:transparent}.highlight .lntable td{padding:0;margin:0;border:0;vertical-align:top}.highlight .lntable .lntd:first-child{width:10px;min-width:10px}.highlight .lntable .lntd:first-child pre{margin:0;padding:1rem .5rem 1rem 1.5rem}@media (max-width: 767px){.highlight .lntable .lntd:first-child pre{padding:.75rem .25rem .75rem 1rem}}.highlight .lntable .lntd:last-child{width:100%}.highlight .lntable .lntd:last-child pre{margin:0;padding:1rem 1.5rem 1rem 0}@media (max-width: 767px){.highlight .lntable .lntd:last-child pre{padding:.75rem 1rem .75rem 0}}code:not(.highlight code){font-size:0.9em;padding:.25rem .5rem;background-color:var(--bg-tertiary);border:1px solid var(--border-light);border-radius:.125rem;color:var(--color-string);font-family:"JetBrains Mono","Fira Code","Consolas","Monaco",monospace;white-space:nowrap}:root .chroma .err{color:var(--color-error);background-color:rgba(var(--color-error-rgb), 0.1)}:root .chroma .lnt,:root .chroma .ln{color:var(--text-muted)}:root .chroma .k,:root .chroma .kc,:root .chroma .kd,:root .chroma .kn,:root .chroma .kp,:root .chroma .kr,:root .chroma .kt{color:var(--color-keyword);font-weight:500}:root .chroma .n,:root .chroma .na,:root .chroma .nb,:root .chroma .bp,:root .chroma .nc,:root .chroma .no,:root .chroma .nd,:root .chroma .ni,:root .chroma .ne,:root .chroma .nf,:root .chroma .fm,:root .chroma .nl,:root .chroma .nn,:root .chroma .nx,:root .chroma .py,:root .chroma .nt,:root .chroma .nv,:root .chroma .vc,:root .chroma .vg,:root .chroma .vi,:root .chroma .vm{color:var(--text-primary)}:root .chroma .nc,:root .chroma .nt{color:var(--color-type);font-weight:500}:root .chroma .nf,:root .chroma .fm{color:var(--color-method);font-weight:500}:root .chroma .na{color:var(--color-property)}:root .chroma .nv,:root .chroma .vc,:root .chroma .vg,:root .chroma .vi,:root .chroma .vm{color:var(--color-variable)}:root .chroma .l,:root .chroma .ld,:root .chroma .m,:root .chroma .mb,:root .chroma .mf,:root .chroma .mh,:root .chroma .mi,:root .chroma .il,:root .chroma .mo{color:var(--color-number)}:root .chroma .s,:root .chroma .sa,:root .chroma .sb,:root .chroma .sc,:root .chroma .dl,:root .chroma .sd,:root .chroma .s2,:root .chroma .se,:root .chroma .sh,:root .chroma .si,:root .chroma .sx,:root .chroma .sr,:root .chroma .s1,:root .chroma .ss{color:var(--color-string)}:root .chroma .c,:root .chroma .ch,:root .chroma .cm,:root .chroma .c1,:root .chroma .cs,:root .chroma .cp,:root .chroma .cpf{color:var(--color-comment);font-style:italic}:root .chroma .o,:root .chroma .ow{color:var(--color-keyword)}:root .chroma .p{color:var(--text-primary)}:root .chroma .g,:root .chroma .gd,:root .chroma .ge,:root .chroma .gr,:root .chroma .gh,:root .chroma .gi,:root .chroma .go,:root .chroma .gp,:root .chroma .gs,:root .chroma .gu,:root .chroma .gt{color:var(--text-secondary)}:root .chroma .gi{color:var(--color-success);background-color:rgba(var(--color-success-rgb), 0.1)}:root .chroma .gd{color:var(--color-error);background-color:rgba(var(--color-error-rgb), 0.1)}:root .chroma .hl{background-color:rgba(var(--color-warning-rgb), 0.1);display:block;width:100%}.highlight.language-csharp .chroma .k+.nn,.highlight.language-cs .chroma .k+.nn{color:var(--color-type)}.highlight.language-csharp .chroma .k:first-child,.highlight.language-cs .chroma .k:first-child{color:var(--color-keyword)}.highlight.language-csharp .chroma .na,.highlight.language-cs .chroma .na{color:var(--color-property)}.highlight.language-csharp .chroma .nt,.highlight.language-cs .chroma .nt{color:var(--color-type)}.highlight.language-javascript .chroma .kd+.nx,.highlight.language-js .chroma .kd+.nx,.highlight.language-typescript .chroma .kd+.nx,.highlight.language-ts .chroma .kd+.nx{color:var(--color-method)}.highlight.language-javascript .chroma .nx+.o+.nx,.highlight.language-js .chroma .nx+.o+.nx,.highlight.language-typescript .chroma .nx+.o+.nx,.highlight.language-ts .chroma .nx+.o+.nx{color:var(--color-property)}.highlight.language-html .chroma .nt{color:var(--color-keyword)}.highlight.language-html .chroma .na{color:var(--color-property)}.highlight.language-html .chroma .s{color:var(--color-string)}.highlight.language-css .chroma .nt,.highlight.language-css .chroma .nc,.highlight.language-css .chroma .nd,.highlight.language-scss .chroma .nt,.highlight.language-scss .chroma .nc,.highlight.language-scss .chroma .nd{color:var(--color-type)}.highlight.language-css .chroma .k,.highlight.language-scss .chroma .k{color:var(--color-property)}.highlight.language-css .chroma .s,.highlight.language-css .chroma .m,.highlight.language-scss .chroma .s,.highlight.language-scss .chroma .m{color:var(--color-string)}.highlight.language-json .chroma .nt{color:var(--color-property)}.highlight.language-json .chroma .s2{color:var(--color-string)}.highlight.language-json .chroma .m{color:var(--color-number)}.highlight.language-json .chroma .kc{color:var(--color-keyword)}.highlight.language-sql .chroma .k{color:var(--color-keyword);text-transform:uppercase}.highlight.language-sql .chroma .n{color:var(--color-type)}.highlight.language-sql .chroma .s{color:var(--color-string)}.highlight.language-bash .chroma .nb,.highlight.language-shell .chroma .nb{color:var(--color-method)}.highlight.language-bash .chroma .nv,.highlight.language-shell .chroma .nv{color:var(--color-variable)}.highlight.language-bash .chroma .s2,.highlight.language-shell .chroma .s2{color:var(--color-string)}.code-block-with-title{margin:1.5rem 0}@media (max-width: 767px){.code-block-with-title{margin:1rem 0}}.code-block-with-title .code-title{background-color:var(--bg-secondary);border:1px solid var(--border-light);border-bottom:none;border-radius:.5rem .5rem 0 0;padding:.75rem 1.5rem;font-family:"JetBrains Mono","Fira Code","Consolas","Monaco",monospace;font-size:.875rem;color:var(--text-secondary);margin:0}@media (max-width: 767px){.code-block-with-title .code-title{padding:.5rem 1rem;font-size:.75rem;border-radius:.25rem .25rem 0 0}}.code-block-with-title .code-title::before{content:"// ";color:var(--color-comment)}.code-block-with-title .highlight{margin:0;border-radius:0 0 .5rem .5rem}@media (max-width: 767px){.code-block-with-title .highlight{border-radius:0 0 .25rem .25rem}}.code-copy-button{position:absolute;top:.75rem;right:.75rem;background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:.25rem;padding:.5rem;font-family:"JetBrains Mono","Fira Code","Consolas","Monaco",monospace;font-size:.75rem;color:var(--text-secondary);cursor:pointer;opacity:0;transition:all 150ms cubic-bezier(0.4, 0, 0.2, 1)}.code-copy-button:hover{background-color:var(--hover-bg);color:var(--color-accent);border-color:var(--color-accent)}.code-copy-button:focus{outline:2px solid var(--focus-outline);outline-offset:2px}.code-copy-button.copied{color:var(--color-success);border-color:var(--color-success)}.highlight:hover .code-copy-button{opacity:1}@media (max-width: 767px){.code-copy-button{opacity:1;position:static;margin-top:.5rem;width:100%;text-align:center}}@media (max-width: 767px){.highlight pre{padding:.75rem}.highlight code{font-size:.75rem}.highlight .lnt{margin-right:.5rem}}@media print{.highlight{border:1px solid #000;box-shadow:none}.highlight pre{overflow:visible;white-space:pre-wrap}.highlight .code-copy-button{display:none}}*,*::before,*::after{box-sizing:border-box}html{font-size:16px;scroll-behavior:smooth}body{margin:0;padding:0;font-family:"Segoe UI","Roboto",-apple-system,BlinkMacSystemFont,sans-serif;font-size:.875rem;line-height:1.5;color:var(--text-primary);background-color:var(--bg-primary);transition:background-color 300ms cubic-bezier(0.4, 0, 0.2, 1),color 300ms cubic-bezier(0.4, 0, 0.2, 1);overflow-x:hidden}@media (min-width: 768px){body{font-size:1rem;line-height:1.75}}@media (min-width: 1024px){body{font-size:1rem}}h4,h5,h6{font-size:1.125rem;margin-top:1.5rem;margin-bottom:.75rem}@media (max-width: 767px){h4,h5,h6{font-size:1rem;margin-top:1rem;margin-bottom:.5rem;line-height:1.5}}@media (min-width: 320px){h4,h5,h6{font-size:.875rem;margin-top:.75rem;margin-bottom:.5rem}}@media (min-width: 375px){h4,h5,h6{font-size:1rem}}h4::before,h5::before,h6::before{content:"var ";color:var(--color-keyword)}@media (max-width: 767px){h4::before,h5::before,h6::before{content:""}}h4::after,h5::after,h6::after{content:";";color:var(--text-primary)}@media (max-width: 767px){h4::after,h5::after,h6::after{content:""}}p{margin-top:0;margin-bottom:1rem;color:var(--text-secondary);line-height:1.75;max-width:65ch}@media (max-width: 767px){p{margin-bottom:.75rem;line-height:1.5;max-width:none;font-size:.875rem}}@media (min-width: 375px){p{margin-bottom:1rem;line-height:1.75}}@media (min-width: 768px){p{margin-bottom:1.25rem}}p.code-comment{font-family:"JetBrains Mono","Fira Code","Consolas","Monaco",monospace;font-size:.875rem;color:var(--color-comment);font-style:italic}@media (max-width: 767px){p.code-comment{font-size:.75rem}}p.code-comment::before{content:"// ";color:var(--color-comment)}p.xml-comment{font-family:"JetBrains Mono","Fira Code","Consolas","Monaco",monospace;font-size:.875rem;color:var(--color-comment)}@media (max-width: 767px){p.xml-comment{font-size:.75rem}}p.xml-comment::before{content:"/// ";color:var(--color-comment)}a{color:var(--color-accent);text-decoration:underline;transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1)}a:hover{color:var(--color-keyword)}a:focus{outline:2px solid var(--focus-outline);outline-offset:2px}pre{margin:1rem 0}pre code{background:none;padding:0;border-radius:0}ul,ol{margin-top:0;margin-bottom:1rem;padding-left:1.5rem;line-height:1.75}@media (min-width: 768px){ul,ol{margin-bottom:1.25rem}}ul li,ol li{margin-bottom:.5rem;color:var(--text-secondary);max-width:60ch}@media (min-width: 768px){ul li,ol li{margin-bottom:.75rem}}ul li ul,ul li ol,ol li ul,ol li ol{margin-top:.5rem;margin-bottom:.5rem}ul.code-list,ol.code-list{font-family:"JetBrains Mono","Fira Code","Consolas","Monaco",monospace;font-size:.875rem;list-style:none;padding-left:1rem}ul.code-list li,ol.code-list li{color:var(--color-string)}ul.code-list li::before,ol.code-list li::before{content:"• ";color:var(--color-keyword);font-weight:700}blockquote{margin:1.5rem 0;padding:1rem 1.5rem;border-left:4px solid var(--color-accent);background-color:var(--bg-secondary);font-style:italic}blockquote p:last-child{margin-bottom:0}img{max-width:100%;height:auto;border-radius:.25rem}table{width:100%;border-collapse:collapse;margin:1.5rem 0;font-family:"JetBrains Mono","Fira Code","Consolas","Monaco",monospace;font-size:.875rem}table th,table td{padding:.75rem;text-align:left;border-bottom:1px solid var(--border-color)}table th{background-color:var(--bg-secondary);font-weight:600;color:var(--color-keyword)}table tr:hover{background-color:var(--hover-bg)}.btn.btn-primary{background-color:var(--color-accent);color:white;border-color:var(--color-accent)}.btn.btn-primary:hover{background-color:var(--color-keyword);border-color:var(--color-keyword)}.btn.btn-secondary{background-color:transparent;color:var(--color-accent);border-color:var(--color-accent)}.btn.btn-secondary:hover{background-color:var(--color-accent);color:white}.btn.btn-outline{background-color:transparent;color:var(--text-primary);border-color:var(--border-color)}.btn.btn-outline:hover{background-color:var(--hover-bg);border-color:var(--color-accent)}.container{width:100%;max-width:1280px;margin:0 auto;padding:0 1rem}@media (max-width: 767px){.container{padding:0 .75rem}}@media (min-width: 375px){.container{padding:0 1rem}}@media (min-width: 768px){.container{padding:0 1.5rem}}@media (min-width: 1024px){.container{padding:0 2rem}}.container.container-sm{max-width:640px}.container.container-md{max-width:768px}.container.container-lg{max-width:1024px}.section{padding:4rem 0}@media (max-width: 767px){.section{padding:2rem 0}}@media (min-width: 375px){.section{padding:2.5rem 0}}@media (min-width: 768px){.section{padding:3rem 0}}@media (min-width: 1024px){.section{padding:4rem 0}}.section.section-sm{padding:2rem 0}@media (max-width: 767px){.section.section-sm{padding:1.5rem 0}}.section.section-lg{padding:6rem 0}@media (max-width: 767px){.section.section-lg{padding:3rem 0}}@media (min-width: 768px){.section.section-lg{padding:5rem 0}}.grid{display:grid;gap:1.5rem}@media (max-width: 767px){.grid{gap:1rem}}@media (min-width: 375px){.grid{gap:1.25rem}}.grid.grid-2{grid-template-columns:1fr}@media (min-width: 414px){.grid.grid-2{grid-template-columns:repeat(auto-fit, minmax(280px, 1fr))}}@media (min-width: 768px){.grid.grid-2{grid-template-columns:repeat(auto-fit, minmax(300px, 1fr))}}.grid.grid-3{grid-template-columns:1fr}@media (min-width: 414px){.grid.grid-3{grid-template-columns:repeat(auto-fit, minmax(240px, 1fr))}}@media (min-width: 768px){.grid.grid-3{grid-template-columns:repeat(auto-fit, minmax(250px, 1fr))}}.grid.grid-4{grid-template-columns:1fr}@media (min-width: 414px){.grid.grid-4{grid-template-columns:repeat(2, 1fr)}}@media (min-width: 768px){.grid.grid-4{grid-template-columns:repeat(auto-fit, minmax(200px, 1fr))}}@media (max-width: 767px){.grid.grid-mobile-2{grid-template-columns:repeat(2, 1fr);gap:.75rem}}@media (max-width: 767px){.grid.grid-mobile-stack{grid-template-columns:1fr;gap:.75rem}}.flex{display:flex}.flex.flex-col{flex-direction:column}.flex.flex-row{flex-direction:row}@media (max-width: 767px){.flex.flex-col-mobile{flex-direction:column}}@media (max-width: 767px){.flex.flex-row-mobile{flex-direction:row}}.flex.items-center{align-items:center}.flex.items-start{align-items:flex-start}.flex.items-end{align-items:flex-end}.flex.items-stretch{align-items:stretch}.flex.justify-center{justify-content:center}.flex.justify-start{justify-content:flex-start}.flex.justify-end{justify-content:flex-end}.flex.justify-between{justify-content:space-between}.flex.justify-around{justify-content:space-around}.flex.justify-evenly{justify-content:space-evenly}.flex.flex-wrap{flex-wrap:wrap}.flex.flex-nowrap{flex-wrap:nowrap}.flex.gap-2{gap:.5rem}.flex.gap-3{gap:.75rem}.flex.gap-4{gap:1rem}@media (max-width: 767px){.flex.gap-4{gap:.75rem}}.flex.gap-6{gap:1.5rem}@media (max-width: 767px){.flex.gap-6{gap:1rem}}.flex.gap-8{gap:2rem}@media (max-width: 767px){.flex.gap-8{gap:1.25rem}}@media (max-width: 767px){.flex.gap-mobile-2{gap:.5rem}}@media (max-width: 767px){.flex.gap-mobile-3{gap:.75rem}}.mt-4{margin-top:1rem}.mb-4{margin-bottom:1rem}.ml-4{margin-left:1rem}.mr-4{margin-right:1rem}.mx-4{margin-left:1rem;margin-right:1rem}.my-4{margin-top:1rem;margin-bottom:1rem}.pt-4{padding-top:1rem}.pb-4{padding-bottom:1rem}.pl-4{padding-left:1rem}.pr-4{padding-right:1rem}.px-4{padding-left:1rem;padding-right:1rem}.py-4{padding-top:1rem;padding-bottom:1rem}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.text-primary{color:var(--text-primary)}.text-secondary{color:var(--text-secondary)}.text-muted{color:var(--text-muted)}.text-accent{color:var(--color-accent)}.hidden{display:none}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.grid{display:grid}@media (min-width: 768px){.mobile-only{display:none !important}}@media (min-width: 375px){.mobile-small-only{display:none !important}}@media (max-width: 374px){.mobile-medium-up{display:none !important}}@media (max-width: 413px){.mobile-large-up{display:none !important}}@media (max-width: 767px){.tablet-only{display:none !important}}@media (min-width: 1024px){.tablet-only{display:none !important}}@media (max-width: 767px){.tablet-up{display:none !important}}@media (min-width: 768px) and (max-width: 1023px){.desktop-up{display:none !important}}@media (max-width: 767px){.desktop-up{display:none !important}}@media (max-width: 767px){.text-center-mobile{text-align:center}}@media (max-width: 767px){.text-left-mobile{text-align:left}}@media (max-width: 767px){.text-right-mobile{text-align:right}}@media (max-width: 767px){.mt-mobile-2{margin-top:.5rem}}@media (max-width: 767px){.mt-mobile-4{margin-top:1rem}}@media (max-width: 767px){.mb-mobile-2{margin-bottom:.5rem}}@media (max-width: 767px){.mb-mobile-4{margin-bottom:1rem}}@media (max-width: 767px){.px-mobile-2{padding-left:.5rem;padding-right:.5rem}}@media (max-width: 767px){.px-mobile-3{padding-left:.75rem;padding-right:.75rem}}@media (max-width: 767px){.py-mobile-2{padding-top:.5rem;padding-bottom:.5rem}}@media (max-width: 767px){.py-mobile-4{padding-top:1rem;padding-bottom:1rem}}*{transition:background-color 300ms cubic-bezier(0.4, 0, 0.2, 1),color 300ms cubic-bezier(0.4, 0, 0.2, 1),border-color 300ms cubic-bezier(0.4, 0, 0.2, 1)}body.mobile-nav-open{position:fixed;width:100%;top:0;left:0}body.mobile-nav-open.scroll-locked{overflow:hidden}.mobile-nav-link.touch-active{background-color:var(--active-bg);border-left-color:var(--color-accent);transform:scale(0.98)}.mobile-nav-link.touch-active .nav-method{color:var(--color-accent)}@media (hover: none) and (pointer: coarse){.mobile-nav-link{min-height:48px;padding:1rem}.mobile-nav-link:hover{background-color:transparent;border-left-color:transparent}.mobile-nav-link:hover .nav-method{color:var(--color-method)}.mobile-nav-toggle{min-width:48px;min-height:48px}}.mobile-navigation{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}@media (max-width: 767px){html{-webkit-overflow-scrolling:touch;scroll-behavior:smooth;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}*{-webkit-tap-highlight-color:rgba(var(--color-accent-rgb), 0.2);-webkit-touch-callout:none}button,a,input,textarea,select{min-height:44px;min-width:44px}input,textarea,select{font-size:16px;-webkit-appearance:none;-moz-appearance:none;appearance:none}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}}@media (hover: none) and (pointer: coarse){*:hover{-webkit-tap-highlight-color:transparent}*{-webkit-overflow-scrolling:touch}*{will-change:auto}}@media (-webkit-min-device-pixel-ratio: 2),(min-resolution: 192dpi){*{-webkit-backface-visibility:hidden;backface-visibility:hidden}}@media (orientation: landscape) and (max-width: 767px){.section{padding:1.5rem 0}.site-header{padding:.5rem 0}h1{font-size:1.8rem}h2{font-size:1.35rem}}@media (max-width: 767px){.mobile-navigation,.mobile-nav-toggle,.theme-toggle{will-change:transform, opacity}}@media (max-width: 767px) and (prefers-reduced-motion: reduce){*,*::before,*::after{animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important;scroll-behavior:auto !important}}@media (max-width: 767px){@supports (font-display: swap){*{font-display:swap}}}@media print{.mobile-nav-toggle,.mobile-navigation,.theme-toggle{display:none !important}.site-header{position:static;box-shadow:none;border-bottom:1px solid #000}body{font-size:12pt;line-height:1.4;color:#000;background:#fff}}@media (max-width: 767px){*:focus{outline:2px solid var(--focus-outline);outline-offset:2px}}@media (max-width: 767px) and (prefers-contrast: high){:root{--text-primary: #000000;--text-secondary: #333333;--bg-primary: #ffffff;--border-color: #000000}}@media (max-width: 767px) and (prefers-color-scheme: dark){:root{--bg-primary: #1a1a1a;--text-primary: #ffffff;--text-secondary: #cccccc}}
