:root{--color-primary:#3498db;--color-primary-dark:#2980b9;--color-primary-soft:rgba(52,152,219,0.3);--color-bg:#ffffff;--color-surface:#f8f9fa;--color-surface-alt:#ecf0f1;--color-heading:#2c3e50;--color-text:#555555;--color-text-muted:#999999;--color-border:#ecf0f1;--color-border-strong:#dddddd;--color-code-bg:#f5f5f5;--color-code-text:#e74c3c;--color-pre-bg:#2c3e50;--color-pre-text:#ecf0f1;--color-contact-bg:#2c3e50;--color-footer-bg:#1a252f;--color-footer-text:#999999;--shadow-sm:0 2px 8px rgba(0,0,0,0.06);--shadow-md:0 5px 15px rgba(0,0,0,0.08);--shadow-lg:0 10px 30px rgba(0,0,0,0.08);--shadow-hero:0 10px 40px rgba(0,0,0,0.15);--radius-sm:4px;--radius:8px;--radius-lg:20px;--font-sans:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;--font-mono:'Monaco','Courier New',monospace;color-scheme:light}:root[data-theme="dark"]{--color-primary:#5dade2;--color-primary-dark:#3498db;--color-primary-soft:rgba(93,173,226,0.35);--color-bg:#10161d;--color-surface:#1a222c;--color-surface-alt:#232e3b;--color-heading:#e8eef4;--color-text:#b9c4cf;--color-text-muted:#7e8b99;--color-border:#243040;--color-border-strong:#324154;--color-code-bg:#1e2833;--color-code-text:#ff8b7b;--color-pre-bg:#1a222c;--color-pre-text:#dce4ec;--color-contact-bg:#1a222c;--color-footer-bg:#0b1014;--color-footer-text:#8a97a5;--shadow-sm:0 2px 8px rgba(0,0,0,0.4);--shadow-md:0 5px 15px rgba(0,0,0,0.45);--shadow-lg:0 10px 30px rgba(0,0,0,0.5);--shadow-hero:0 10px 40px rgba(0,0,0,0.6);color-scheme:dark}@media (prefers-color-scheme:dark){:root:not([data-theme]){--color-primary:#5dade2;--color-primary-dark:#3498db;--color-primary-soft:rgba(93,173,226,0.35);--color-bg:#10161d;--color-surface:#1a222c;--color-surface-alt:#232e3b;--color-heading:#e8eef4;--color-text:#b9c4cf;--color-text-muted:#7e8b99;--color-border:#243040;--color-border-strong:#324154;--color-code-bg:#1e2833;--color-code-text:#ff8b7b;--color-pre-bg:#1a222c;--color-pre-text:#dce4ec;--color-contact-bg:#1a222c;--color-footer-bg:#0b1014;--color-footer-text:#8a97a5;--shadow-sm:0 2px 8px rgba(0,0,0,0.4);--shadow-md:0 5px 15px rgba(0,0,0,0.45);--shadow-lg:0 10px 30px rgba(0,0,0,0.5);--shadow-hero:0 10px 40px rgba(0,0,0,0.6);color-scheme:dark}}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:var(--font-sans);line-height:1.6;color:var(--color-text);background:var(--color-bg);transition:background 0.3s ease,color 0.3s ease}:focus-visible{outline:2px solid var(--color-primary);outline-offset:3px;border-radius:2px}nav{background:var(--color-bg);padding:1.2rem 0;box-shadow:var(--shadow-sm);position:sticky;top:0;z-index:100;border-bottom:1px solid var(--color-border)}.nav-container{max-width:1200px;margin:0 auto;padding:0 40px;display:flex;justify-content:space-between;align-items:center;gap:20px}.logo{font-size:1.3em;font-weight:700;color:var(--color-heading);text-decoration:none;border-bottom:none;letter-spacing:-0.02em}.nav-menu{display:flex;align-items:center;gap:30px;flex:1;justify-content:flex-end}.nav-links{list-style:none;display:flex;gap:36px;margin:0}.nav-links a{color:var(--color-heading);text-decoration:none;font-weight:500;font-size:0.95em;transition:color 0.3s ease;border-bottom:none}.nav-links a:hover{color:var(--color-primary)}.nav-links a.active{color:var(--color-primary);font-weight:600}.nav-toggle{display:none;flex-direction:column;justify-content:center;gap:5px;width:42px;height:42px;padding:9px;background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer}.nav-toggle .bar{display:block;width:100%;height:2px;background:var(--color-heading);border-radius:2px;transition:transform 0.3s ease,opacity 0.3s ease}.nav-toggle[aria-expanded="true"] .bar:nth-child(1){transform:translateY(7px) rotate(45deg)}.nav-toggle[aria-expanded="true"] .bar:nth-child(2){opacity:0}.nav-toggle[aria-expanded="true"] .bar:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.theme-toggle{background:transparent;border:1px solid var(--color-border);border-radius:50%;width:42px;height:42px;font-size:1.1em;line-height:1;cursor:pointer;color:var(--color-heading);transition:background 0.3s ease,border-color 0.3s ease;flex-shrink:0}.theme-toggle:hover{background:var(--color-surface-alt);border-color:var(--color-border-strong)}.theme-toggle .icon-sun,.theme-toggle .icon-moon{display:none}.theme-toggle .icon-auto{display:inline}:root[data-theme="light"] .theme-toggle .icon-sun{display:inline}:root[data-theme="light"] .theme-toggle .icon-auto{display:none}:root[data-theme="dark"] .theme-toggle .icon-moon{display:inline}:root[data-theme="dark"] .theme-toggle .icon-auto{display:none}.lang-switcher{display:flex;gap:10px}.lang-switcher a{color:var(--color-text-muted);text-decoration:none;font-size:0.85em;padding:4px 8px;border-radius:var(--radius-sm);border-bottom:none;transition:all 0.3s ease}.lang-switcher a:hover{background:var(--color-surface-alt);color:var(--color-heading)}.lang-switcher a.active{background:var(--color-primary);color:#ffffff}main{min-height:calc(100vh - 200px)}.page-header{background:linear-gradient(135deg,var(--color-surface) 0%,var(--color-primary-soft) 130%);padding:60px 40px;border-bottom:1px solid var(--color-border)}.page-header-container{max-width:1200px;margin:0 auto}.page-header h1{font-size:clamp(1.8rem,4.5vw,2.8rem);margin-bottom:15px;color:var(--color-heading);font-weight:700;letter-spacing:-0.02em}.page-header p{font-size:1.05em;color:var(--color-text-muted)}.container{max-width:1200px;margin:0 auto;padding:0 40px}section{padding:80px 0}.page-section{padding:80px 40px}.page-section .container>p,.page-section .container>ul,.page-section .container>ol,.page-section .container>blockquote{max-width:70ch}h2{font-size:clamp(1.6rem,3.5vw,2.4rem);margin-bottom:40px;color:var(--color-heading);font-weight:700;letter-spacing:-0.02em;position:relative;padding-bottom:20px}h2::after{content:'';position:absolute;bottom:0;left:0;width:60px;height:4px;border-radius:2px;background:linear-gradient(90deg,var(--color-primary) 0%,var(--color-primary-dark) 100%)}h3{font-size:1.6em;margin:30px 0 15px 0;color:var(--color-heading);letter-spacing:-0.01em}h4{font-size:1.2em;margin:20px 0 10px 0;color:var(--color-heading)}p{margin-bottom:15px;line-height:1.8;color:var(--color-text)}ul,ol{margin-left:30px;margin-bottom:15px}li{margin-bottom:8px;line-height:1.7}a{color:var(--color-primary);text-decoration:none;border-bottom:1px solid var(--color-primary-soft);transition:border-color 0.3s ease,color 0.3s ease}a:hover{border-bottom-color:var(--color-primary)}code{background:var(--color-code-bg);padding:2px 6px;border-radius:3px;font-family:var(--font-mono);font-size:0.9em;color:var(--color-code-text)}pre{background:var(--color-pre-bg);color:var(--color-pre-text);padding:15px;border-radius:6px;overflow-x:auto;margin-bottom:20px;line-height:1.4}pre code{background:transparent;padding:0;color:inherit;font-size:1.2em}a[data-code-link]{color:inherit !important;background-color:inherit;border:none;text-decoration:underline;text-decoration-style:dotted;text-decoration-color:rgba(255,255,255,0.3);text-underline-offset:2px;cursor:pointer;transition:text-decoration-color 0.2s ease}a[data-code-link]:hover{border:none;text-decoration-color:rgba(255,255,255,0.6)}code a[data-code-link]{color:var(--color-code-text) !important;border:none;text-decoration:underline;text-decoration-style:dotted;text-decoration-color:rgba(255,255,255,0.3)}.codehilite a[data-code-link],pre a[data-code-link]{color:currentColor !important}.codehilite{background:#272822;color:#f8f8f2;padding:15px;border-radius:6px;overflow-x:auto;margin-bottom:20px;line-height:1.4;font-family:var(--font-mono);font-size:0.9em;position:relative}.codehilite pre{margin:0;padding:0;background:transparent}.codehilite code{background:transparent;color:inherit;padding:0}.codehilite .hll{background-color:#49483e}.codehilite .c{color:#959077}.codehilite .err{color:#ed007e;background-color:#1e0010}.codehilite .k{color:#66d9ef}.codehilite .l{color:#ae81ff}.codehilite .n{color:#f8f8f2}.codehilite .o{color:#ff4689}.codehilite .p{color:#f8f8f2}.codehilite .ch,.codehilite .cm,.codehilite .cp,.codehilite .cpf,.codehilite .c1,.codehilite .cs{color:#959077}.codehilite .gd{color:#ff4689}.codehilite .ge{font-style:italic}.codehilite .gi{color:#a6e22e}.codehilite .go{color:#66d9ef}.codehilite .gp{color:#ff4689;font-weight:bold}.codehilite .gs{font-weight:bold}.codehilite .gu{color:#959077}.codehilite .kc,.codehilite .kd,.codehilite .kp,.codehilite .kr,.codehilite .kt{color:#66d9ef}.codehilite .kn{color:#ff4689}.codehilite .ld,.codehilite .s,.codehilite .sa,.codehilite .sb,.codehilite .sc,.codehilite .dl,.codehilite .sd,.codehilite .s2,.codehilite .sh,.codehilite .si,.codehilite .sx,.codehilite .sr,.codehilite .s1,.codehilite .ss{color:#e6db74}.codehilite .se{color:#ae81ff}.codehilite .m,.codehilite .mb,.codehilite .mf,.codehilite .mh,.codehilite .mi,.codehilite .mo,.codehilite .il{color:#ae81ff}.codehilite .na{color:#a6e22e}.codehilite .nc,.codehilite .nd,.codehilite .ne,.codehilite .nf,.codehilite .nx,.codehilite .fm{color:#a6e22e}.codehilite .no{color:#66d9ef}.codehilite .nt{color:#ff4689}.codehilite .ow{color:#ff4689}.code-copy-btn{position:absolute;top:10px;right:10px;display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;color:#f8f8f2;background:rgba(255,255,255,0.15);border:1px solid rgba(255,255,255,0.25);border-radius:var(--radius-sm);cursor:pointer;opacity:0.6;transition:opacity 0.2s ease,background 0.2s ease,transform 0.2s ease;z-index:10}.codehilite:hover .code-copy-btn,.code-copy-btn:focus-visible{opacity:0.9;background:rgba(255,255,255,0.25)}.code-copy-btn:hover{opacity:1;background:rgba(255,255,255,0.3);transform:scale(1.1)}.code-copy-btn:active{transform:scale(0.95)}.code-copy-btn .copy-icon{width:18px;height:18px;stroke:currentColor}.code-copy-btn.copied .copy-icon{animation:checkmark 0.3s ease}@keyframes checkmark{0%{transform:scale(1)}50%{transform:scale(1.2)}100%{transform:scale(1)}}blockquote{border-left:4px solid var(--color-primary);padding-left:20px;margin-left:0;margin-bottom:20px;color:var(--color-text-muted);font-style:italic}table{width:100%;border-collapse:collapse;margin-bottom:20px}th,td{border:1px solid var(--color-border-strong);padding:12px;text-align:left}th{background:var(--color-surface);font-weight:600;color:var(--color-heading)}tr:nth-child(even){background:var(--color-surface)}.hero{background:linear-gradient(135deg,var(--color-surface) 0%,var(--color-primary-soft) 160%);padding:100px 40px;min-height:600px;display:flex;align-items:center}.hero-container{max-width:1200px;margin:0 auto;width:100%;display:grid;grid-template-columns:1fr 1.5fr;gap:60px;align-items:center}.hero-content h1{font-size:clamp(2rem,5vw,3.2rem);line-height:1.2;margin-bottom:20px;color:var(--color-heading);font-weight:700;letter-spacing:-0.02em}.hero-content .hero-subtitle{font-size:1.1em;color:var(--color-text);margin-bottom:30px;line-height:1.8}.hero-image{border-radius:var(--radius-lg);min-height:500px;display:flex;align-items:center;justify-content:center;padding:40px}.hero-image img{width:calc(100% - 20px);aspect-ratio:4 / 3;object-fit:cover;border-radius:var(--radius-lg);box-shadow:var(--shadow-hero)}.btn{display:inline-block;background:var(--color-primary);color:#ffffff;padding:14px 35px;border-radius:6px;text-decoration:none;font-weight:600;font-size:1em;border:none;border-bottom:none;cursor:pointer;transition:background 0.3s ease,transform 0.2s ease,box-shadow 0.3s ease}.btn:hover{background:var(--color-primary-dark);transform:translateY(-2px);box-shadow:var(--shadow-md);border-bottom:none}.section-light{background:var(--color-bg);padding:80px 40px}.section-alt{background:var(--color-surface);padding:80px 40px}.services-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:40px;margin-top:50px}.service-card{padding:40px;background:var(--color-surface);border-radius:var(--radius);transition:all 0.3s ease;border:1px solid var(--color-border);border-top:3px solid var(--color-primary)}.service-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-6px)}.service-card h3{font-size:1.4em;margin-bottom:15px;color:var(--color-heading);margin-top:0;transition:color 0.3s ease}.service-card:hover h3{color:var(--color-primary)}.service-card p{color:var(--color-text);line-height:1.8;margin-bottom:0}.about-content{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;margin-top:50px}.expertise-list{list-style:none;margin-top:20px;margin-left:0}.expertise-list li{color:var(--color-text);margin-bottom:12px;padding-left:30px;position:relative}.expertise-list .check{position:absolute;left:0;color:var(--color-primary);font-weight:bold;font-size:1.2em}.expertise-visual{background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-dark) 100%);border-radius:var(--radius-lg);padding:16px;display:flex;align-items:stretch;justify-content:center;box-shadow:var(--shadow-md)}.expertise-portrait{display:block;width:100%;height:auto;aspect-ratio:4 / 5;object-fit:cover;border-radius:calc(var(--radius-lg) - 10px);box-shadow:0 18px 40px rgba(0,0,0,0.25)}.skills-content{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:30px;margin-top:50px}.skill-item{background:var(--color-surface);padding:30px;border-radius:var(--radius);border-left:4px solid var(--color-primary);transition:all 0.3s ease}.skill-item:hover{box-shadow:var(--shadow-md);transform:translateX(4px)}.skill-item h3{color:var(--color-heading);margin-bottom:10px;font-size:1.1em;margin-top:0}.skill-item p{color:var(--color-text);font-size:0.95em;margin-bottom:0}.contact-section{background:var(--color-contact-bg);color:#ffffff;text-align:center;padding:80px 40px}.contact-section h2{color:#ffffff}.contact-section h2::after{left:50%;transform:translateX(-50%)}.contact-section p{font-size:1.1em;margin-bottom:30px;color:rgba(255,255,255,0.9)}.contact-links{display:flex;gap:30px;justify-content:center;flex-wrap:wrap;margin-top:40px}.contact-links .btn{padding:12px 25px}footer{background:var(--color-footer-bg);color:var(--color-footer-text);font-size:0.9em;margin-top:60px}footer a{color:var(--color-footer-text);border-bottom:none;transition:color 0.3s ease}footer a:hover{color:#ffffff}.footer-container{max-width:1200px;margin:0 auto;padding:50px 40px 30px;display:grid;grid-template-columns:2fr 1fr 1fr;gap:40px;text-align:left}.footer-brand .footer-logo{display:inline-block;font-size:1.2em;font-weight:700;color:#ffffff;margin-bottom:10px}.footer-brand p{color:var(--color-footer-text);font-size:0.95em;margin-bottom:0}.footer-col h4{color:#ffffff;font-size:0.95em;text-transform:uppercase;letter-spacing:0.06em;margin:0 0 15px 0}.footer-col ul{list-style:none;margin:0}.footer-col li{margin-bottom:8px}.footer-bottom{border-top:1px solid rgba(255,255,255,0.08);text-align:center;padding:20px 40px}.footer-bottom p{color:var(--color-footer-text);margin:0}.blog-posts-list{list-style:none;margin-bottom:40px;margin-left:0}.blog-post-item{padding:30px;margin-bottom:20px;background:var(--color-surface);border-radius:var(--radius);border-left:4px solid var(--color-primary);transition:box-shadow 0.3s ease,transform 0.3s ease}.blog-post-item:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.blog-post-meta{color:var(--color-text-muted);font-size:0.9em;margin-bottom:10px}.blog-post-item h3{margin-top:0;margin-bottom:10px}.blog-post-item h3 a{color:var(--color-heading)}.blog-post-item h3 a:hover{color:var(--color-primary)}.blog-post-excerpt{margin:15px 0;color:var(--color-text)}.post-tags,.post-categories{margin-bottom:20px}.taxonomy-term-list{list-style:none;margin-left:0}.taxonomy-term-item{padding:12px 0;border-bottom:1px solid var(--color-border)}.taxonomy-term-count{color:var(--color-text-muted);font-size:0.9em;margin-left:6px}.pagination{display:flex;justify-content:center;align-items:center;gap:10px;margin:50px 0;flex-wrap:wrap}.pagination a,.pagination span{padding:8px 12px;border-radius:var(--radius-sm);text-decoration:none;border:1px solid var(--color-border-strong);transition:all 0.3s ease}.pagination a{color:var(--color-primary);background:var(--color-surface)}.pagination a:hover{background:var(--color-primary);color:#ffffff;border-color:var(--color-primary)}.pagination span{color:var(--color-text-muted);border:1px solid var(--color-border)}.pagination span.active,.pagination a[aria-current="page"]{background:var(--color-primary);color:#ffffff;border-color:var(--color-primary)}.js-reveal{opacity:0;transform:translateY(20px);transition:opacity 0.6s ease,transform 0.6s ease}.js-reveal.is-visible{opacity:1;transform:translateY(0)}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.js-reveal{opacity:1;transform:none;transition:none}*,*::before,*::after{transition-duration:0.01ms !important;animation-duration:0.01ms !important}}@media (max-width:1024px){.hero-container{gap:40px}.services-grid{grid-template-columns:repeat(2,1fr);gap:30px}.skills-content{grid-template-columns:repeat(2,1fr)}.footer-container{grid-template-columns:1fr 1fr}}@media (max-width:768px){.nav-container{padding:0 20px;flex-wrap:wrap}.nav-toggle{display:flex;order:3}.theme-toggle{order:2;margin-left:auto}.nav-menu{display:none;flex-basis:100%;flex-direction:column;align-items:flex-start;gap:20px;padding-top:20px;order:4}.nav-menu.open{display:flex}.nav-links{flex-direction:column;gap:15px;width:100%}.lang-switcher{margin-left:0}.hero{padding:60px 20px;min-height:auto}.hero-container{grid-template-columns:1fr;gap:40px}.hero-image{min-height:auto;padding:0}.container{padding:0 30px}section{padding:50px 0}.page-section,.section-light,.section-alt,.contact-section{padding:50px 20px}.services-grid,.skills-content,.about-content{grid-template-columns:1fr}.footer-container{grid-template-columns:1fr;gap:30px;text-align:left}}.download-card{display:inline-flex;align-items:center;gap:16px;padding:16px 24px;background:var(--color-surface);border:1px solid var(--color-border);border-left:4px solid var(--color-primary);border-radius:var(--radius);text-decoration:none;color:var(--color-text);transition:all 0.3s ease;margin:8px 0;min-width:280px}.download-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px);border-color:var(--color-primary)}.download-icon{font-size:1.8em;line-height:1;flex-shrink:0}.download-info{display:flex;flex-direction:column;gap:2px}.download-label{font-weight:600;color:var(--color-heading);font-size:1em}.download-size{font-size:0.85em;color:var(--color-text-muted)}.download-description{font-size:0.9em;color:var(--color-text-muted);margin:4px 0 0 0;line-height:1.4}@media (max-width:768px){.download-card{min-width:100%}}.children-section{margin:3rem 0;padding:2rem 0;border-top:1px solid var(--color-border)}.children-section h2{margin-bottom:1.5rem;font-size:1.5rem;color:var(--color-heading)}.children-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem}.child-card{padding:1.5rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);transition:all 0.3s ease}.child-card:hover{background:var(--color-surface-alt);border-color:var(--color-primary);box-shadow:var(--shadow-sm)}.child-card h3{margin:0;font-size:1.1rem}.child-card a{color:var(--color-heading);text-decoration:none}.child-card a:hover{color:var(--color-primary)}@media (max-width:768px){.children-grid{grid-template-columns:1fr;gap:1rem}.child-card{padding:1rem}}nav.breadcrumbs{background:var(--color-surface);padding:1rem 0;margin-bottom:2rem;border-bottom:1px solid var(--color-border)}.breadcrumb-list{list-style:none;display:flex;flex-wrap:wrap;gap:0.5rem;align-items:center;margin:0;padding:0 1rem;max-width:1200px;margin:0 auto}.breadcrumb-item{display:flex;align-items:center;font-size:0.95rem}.breadcrumb-item a{color:var(--color-primary);text-decoration:none}.breadcrumb-item a:hover{color:var(--color-primary-dark);text-decoration:underline}.breadcrumb-current{color:var(--color-text);font-weight:500}.breadcrumb-item:not(:last-child)::after{content:"›";margin-left:0.5rem;color:var(--color-text-muted);font-weight:bold}@media (max-width:768px){nav.breadcrumbs{padding:0.75rem 0;margin-bottom:1.5rem}.breadcrumb-list{padding:0 0.75rem;gap:0.25rem;font-size:0.85rem}}@media print{nav,footer,.theme-toggle,.nav-toggle,.code-copy-btn{display:none}body{background:#ffffff;color:#000000}a{color:#000000;border-bottom:none}}figure.mermaid-diagram{width:fit-content;max-width:100%;margin:2rem auto;text-align:center}figure.mermaid-diagram img{display:block;margin:0 auto;max-width:100%;max-height:min(75vh,650px);width:auto;height:auto;border-radius:var(--radius);transition:filter 0.3s}[data-theme="dark"] figure.mermaid-diagram img{filter:invert(1) hue-rotate(180deg)}@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) figure.mermaid-diagram img{filter:invert(1) hue-rotate(180deg)}}