*,::after,::before{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body,ul{padding:0;margin:0}body{font-family:"Manrope","Inter",system-ui,-apple-system,sans-serif;background:#000;color:#cfcfcf;font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}img{max-width:100%;display:block}a,button{color:inherit}a{text-decoration:none;transition:color .2s ease}button{font:inherit;cursor:pointer;background:0 0;border:0}ul{list-style:none}h1,h2,h3,h4{color:#fff;font-weight:800;line-height:1.15;margin:0;letter-spacing:-.02em}:root{--bg:#000000;--card:#161616;--card-2:#1d1d1d;--card-hover:#222;--text-primary:#ffffff;--text-secondary:#c8c8c8;--text-muted:#7a7a7a;--border:rgba(255,255,255,0.08);--border-strong:rgba(255,255,255,0.18);--grid-line:rgba(255,255,255,0.04);--accent-gold:#f0a040;--radius:14px;--radius-sm:10px;--shadow:0 2px 30px rgba(0,0,0,.4);--mono:'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, monospace}body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;background-image:linear-gradient(to right,var(--grid-line) 1px,transparent 1px);background-size:12.5% 100%}.shell{position:relative;z-index:1;max-width:1320px;margin:0 auto;padding:36px 40px 80px}.topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:36px;flex-wrap:wrap}.brand{font-family:"Manrope",system-ui,sans-serif;font-size:clamp(48px,7vw,88px);font-weight:800;letter-spacing:-.03em;line-height:1;color:#fff;display:inline-flex;gap:.35em}.brand .brand-outline{color:transparent;-webkit-text-stroke:1.5px #fff;font-weight:800}.topbar-right{display:flex;align-items:center;gap:14px;font-family:var(--mono);font-size:13px;letter-spacing:.12em;color:#fff;padding-top:12px}.sidebar-nav a,.topbar-right a{align-items:center;text-transform:uppercase}.topbar-right a{display:inline-flex;justify-content:center;gap:7px;min-height:44px;min-width:44px;padding:0 6px;color:#fff}.topbar-right a svg{width:14px;height:14px;flex:none}.topbar-right a:hover{opacity:.65}.theme-dot{width:30px;height:30px;border-radius:50%;background:#fff;display:inline-block;cursor:pointer;flex-shrink:0}.main-grid{display:grid;grid-template-columns:280px 1fr;gap:24px;align-items:start}.sidebar{position:sticky;top:28px;background:var(--card);border-radius:var(--radius);padding:28px 24px;box-shadow:var(--shadow)}.content-cards,.sidebar-nav{display:flex;flex-direction:column;gap:4px}.sidebar-nav a{display:flex;font-family:var(--mono);font-size:13px;letter-spacing:.14em;color:var(--text-muted);position:relative;justify-content:flex-start;gap:12px;padding:11px 14px;border-radius:0 8px 8px 0;transition:background .18s ease,color .18s ease,transform .18s ease}.sidebar-nav a:hover{color:#fff;transform:translateX(2px)}.sidebar-nav a .dot,.sidebar-nav a.active::after{display:none}.sidebar-nav a.active{color:#fff}.sidebar-nav a .nico{width:18px;height:18px;flex-shrink:0;color:var(--ico, var(--text-muted));display:inline-flex;align-items:center;justify-content:center;transition:color .18s ease,transform .18s ease}.sidebar-nav a .nico svg{width:100%;height:100%;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.sidebar-nav a:hover .nico{transform:scale(1.1)}.sidebar-nav a[data-nav-section=about],.sidebar-nav a[data-nav-section=home]{--ico:#f0a040}.sidebar-nav a[data-nav-section=experience]{--ico:#ff7a5a}.sidebar-nav a[data-nav-section=services]{--ico:#ec5fa2}.sidebar-nav a[data-nav-section=blog]{--ico:#56ccf2}.sidebar-nav a[data-nav-section=contact]{--ico:#4ecdc4}.sidebar-nav a[data-nav-section=tutorials]{--ico:#ec5fa2}.sidebar-nav a[data-nav-section=books]{--ico:#ff7a5a}.sidebar-nav a[data-nav-section=uses]{--ico:#4ecdc4}.sidebar-nav a.active{background:linear-gradient(90deg,rgba(240,160,64,.22)0,rgba(240,160,64,0) 90%);border-left:3px solid #f0a040;padding-left:11px}@media (max-width:720px){.sidebar-nav a{padding:8px 10px;gap:8px;border-radius:8px}.sidebar-nav a:hover{transform:none}.sidebar-nav a.active{background:rgba(240,160,64,.18);border-left:0;padding-left:10px}.sidebar-nav a .nico{width:16px;height:16px}}.content-cards{gap:24px}.card{background:var(--card);border-radius:var(--radius);padding:56px 56px 64px;position:relative;box-shadow:var(--shadow)}.section-head{position:relative;margin-bottom:36px}.section-head .ghost{position:absolute;top:-22px;left:0;font-family:"Manrope",sans-serif;font-size:clamp(48px,5.5vw,76px);font-weight:800;letter-spacing:-.02em;color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.08);text-transform:uppercase;line-height:1;pointer-events:none;user-select:none;white-space:nowrap}.section-head .label{position:relative;z-index:1;font-family:var(--mono);font-size:13px;letter-spacing:.14em;color:#fff;text-transform:uppercase}.section-head .label::before{content:"// ";color:#fff}.section-head h2{margin-top:22px;font-size:clamp(32px,4vw,52px);font-weight:800;letter-spacing:-.02em}.section-intro{margin:18px 0 0;color:var(--text-secondary);font-size:17px;max-width:640px}.about-grid{display:grid;grid-template-columns:280px 1fr;gap:48px;align-items:center}.about-photo-wrap{position:relative}.about-photo{width:280px;height:280px;border-radius:50%;object-fit:cover;display:block}.about-photo-tag,.skill-pills .pill{font-family:var(--mono);font-size:12px;letter-spacing:.1em;border-radius:999px}.about-photo-tag{bottom:18px;left:50%;transform:translateX(-50%);background:var(--card-2);padding:8px 18px;text-transform:uppercase;white-space:nowrap}.about-title{font-size:clamp(28px,3.4vw,44px);font-weight:800;letter-spacing:-.02em;margin-bottom:18px}.skill-pills{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0 22px}.skill-pills .pill{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;color:var(--text-secondary);border:1px dashed var(--border-strong);border-style:solid;background:rgba(255,255,255,.02)}.skill-pills .pill svg{width:14px;height:14px;opacity:.8}.about-text{color:var(--text-secondary);font-size:16px;line-height:1.7;margin:0}.stats{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;margin-top:56px}.stat{display:flex;align-items:flex-start;gap:14px}.stat-num{font-family:"Manrope",sans-serif;font-size:clamp(44px,5vw,72px);font-weight:800;color:transparent;-webkit-text-stroke:1.5px #fff;letter-spacing:-.02em;line-height:1}.stat-suffix{font-family:var(--mono);font-size:28px;color:#fff;margin-top:6px}.stat-meta{display:flex;flex-direction:column;padding-top:8px}.stat-label{font-family:var(--mono);font-size:11px;letter-spacing:.14em;color:var(--text-secondary);text-transform:uppercase;margin-top:30px}.about-photo-wrap{width:fit-content;margin:0 auto}.about-photo-wrap::before{content:"";position:absolute;inset:-6px;border-radius:50%;background:conic-gradient(from 215deg,#f0a040,#ec5fa2,#56ccf2,#4ecdc4,#f0a040);z-index:0}.about-photo,.about-photo-tag{position:relative;z-index:1}.about-photo-tag{background:#f0a040;color:#000;border:2px solid #000}.about-title{background:linear-gradient(95deg,#f0a040 0,#ff7a5a 45%,#ec5fa2 100%);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}.skill-pills .pill:nth-child(1){border-color:rgba(240,160,64,.55);color:#f0a040}.skill-pills .pill:nth-child(2){border-color:rgba(86,204,242,.55);color:#56ccf2}.skill-pills .pill:nth-child(3){border-color:rgba(78,205,196,.55);color:#4ecdc4}.about-text{color:#ff7a5a}.stats .stat:nth-child(1) .stat-num{color:#f0a040;-webkit-text-stroke:0}#contact .contact-form .field:nth-child(1) label,.stats .stat:nth-child(1) .stat-suffix{color:#f0a040}.stats .stat:nth-child(2) .stat-num{color:#56ccf2;-webkit-text-stroke:0}.stats .stat:nth-child(2) .stat-suffix{color:#56ccf2}.stats .stat:nth-child(3) .stat-num{color:#4ecdc4;-webkit-text-stroke:0}.stats .stat:nth-child(3) .stat-suffix{color:#4ecdc4}.services-list{display:flex;flex-direction:column}.service-item{--col:#ffffff;position:relative;display:grid;grid-template-columns:90px auto 1fr;gap:32px;padding:28px 0 28px 18px;border-bottom:1px dashed var(--border);align-items:center}.service-item::before{content:"";position:absolute;left:0;top:28px;bottom:28px;width:3px;background:var(--col);opacity:.55;border-radius:2px}.service-item:last-child{border-bottom:0}.service-item[data-i="0"]{--col:#4a9eff}.service-item[data-i="1"]{--col:#a78bfa}.service-item[data-i="2"]{--col:#52c97a}.service-item[data-i="3"]{--col:#f0a040}.service-num{font-family:"Manrope",sans-serif;font-size:64px;font-weight:800;color:transparent;-webkit-text-stroke:1.5px var(--col);letter-spacing:-.02em;line-height:1}.service-meta{display:flex;flex-direction:column;align-items:flex-start;gap:14px;min-width:220px}.service-icon{width:36px;height:36px;display:flex;align-items:center;justify-content:center;color:var(--col)}.exp-col-icon svg,.service-icon svg{width:100%;height:100%}.service-title{font-family:var(--mono);font-size:13px;letter-spacing:.14em;font-weight:600;color:#fff;text-transform:uppercase}.service-desc{color:color-mix(in srgb,var(--text-secondary) 60%,var(--col));font-size:16px;line-height:1.65;margin:0}.exp-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px}.exp-col-icon{display:flex;align-items:center;justify-content:center;width:44px;height:44px;color:var(--accent-gold);margin-bottom:18px}.exp-list{position:relative;padding-left:24px}.exp-list::before{content:"";position:absolute;left:4px;top:8px;bottom:8px;width:2px;background:linear-gradient(180deg,#a78bfa,#f0a040,#4a9eff,#52c97a);opacity:.5;border-radius:2px}.exp-item{--col:#ffffff;--col-soft:rgba(255,255,255,.14);position:relative;padding-bottom:32px}.exp-item:last-child{padding-bottom:0}.exp-item::before{content:"";position:absolute;left:-24px;top:8px;width:10px;height:10px;background:var(--col);border-radius:50%;box-shadow:0 0 0 4px var(--col-soft)}.exp-item[data-i="0"]{--col:#a78bfa;--col-soft:rgba(167,139,250,.14)}.exp-item[data-i="1"]{--col:#f0a040;--col-soft:rgba(240,160,64,.14)}.exp-item[data-i="2"]{--col:#4a9eff;--col-soft:rgba(74,158,255,.14)}.exp-item[data-i="3"]{--col:#52c97a;--col-soft:rgba(82,201,122,.14)}.exp-years{display:inline-block;font-family:var(--mono);font-size:12px;letter-spacing:.14em;color:#000;background:var(--col);padding:6px 14px;border:1px solid var(--col);border-radius:999px;margin-bottom:12px}.exp-title{font-size:20px;font-weight:700;margin:0 0 4px;color:#fff}.exp-org{color:var(--col);opacity:.85;font-size:15px;margin:0}.blog-list,.blog-row{display:flex;flex-direction:column}.blog-list{gap:28px}.blog-row{padding:24px 0;border-bottom:1px dashed var(--border);transition:transform .15s}.blog-row:last-child{border-bottom:0}.blog-row .cat,.blog-row .meta{font-family:var(--mono);color:var(--text-secondary);text-transform:uppercase}.blog-row .cat{display:inline-flex;align-items:center;align-self:flex-start;background:var(--card-2);font-size:11px;letter-spacing:.14em;padding:6px 14px;border-radius:999px;margin-bottom:14px}.blog-row .meta{font-size:12px;letter-spacing:.12em;margin:0 0 14px}.blog-row .title{font-size:clamp(22px,2.4vw,32px);font-weight:800;letter-spacing:-.01em;color:#fff;margin:0 0 14px;line-height:1.2}.blog-row .desc{color:var(--text-secondary);font-size:15.5px;line-height:1.65;margin:0 0 22px;max-width:720px;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.blog-row .title{transition:filter .2s ease}.blog-row a:hover .title,.blog-row:hover .title{filter:brightness(1.15)}.blog-row:hover{transform:translateX(5px)}.blog-row[data-category=backend] .cat{background:rgba(74,158,255,.12);color:#4a9eff;border:1px solid rgba(74,158,255,.25)}.blog-row[data-category=practices] .cat{background:rgba(82,201,122,.12);color:#52c97a;border:1px solid rgba(82,201,122,.25)}.blog-row[data-category=thinking] .cat{background:rgba(167,139,250,.12);color:#a78bfa;border:1px solid rgba(167,139,250,.25)}.blog-row[data-category=tools] .cat{background:rgba(240,160,64,.12);color:var(--accent-gold);border:1px solid rgba(240,160,64,.25)}.blog-row[data-category=mobile] .cat{background:rgba(56,189,248,.12);color:#38bdf8;border:1px solid rgba(56,189,248,.25)}.blog-row[data-category=devops] .cat{background:rgba(248,113,113,.12);color:#f87171;border:1px solid rgba(248,113,113,.25)}.blog-row[data-category=database] .cat{background:rgba(45,212,191,.12);color:#2dd4bf;border:1px solid rgba(45,212,191,.25)}.blog-row[data-category=frontend] .cat{background:rgba(244,114,182,.12);color:#f472b6;border:1px solid rgba(244,114,182,.25)}.blog-row[data-category=algorithms] .cat{background:rgba(251,191,36,.12);color:#fbbf24;border:1px solid rgba(251,191,36,.25)}.blog-row[data-category=backend] .title{color:#4a9eff}.blog-row[data-category=practices] .title{color:#52c97a}.blog-row[data-category=thinking] .title{color:#a78bfa}.blog-row[data-category=tools] .title{color:var(--accent-gold)}.blog-row[data-category=mobile] .title{color:#38bdf8}.blog-row[data-category=devops] .title{color:#f87171}.blog-row[data-category=database] .title{color:#2dd4bf}.blog-row[data-category=frontend] .title{color:#f472b6}.blog-row[data-category=algorithms] .title{color:#fbbf24}.blog-cards{display:flex;flex-direction:column;gap:14px}.blog-card{--cat-color:#4a9eff;--cat-glow:rgba(74,158,255,.10);position:relative;display:grid;grid-template-columns:124px 1fr;gap:30px;padding:24px 26px;background:0 0;border:1px solid transparent;border-radius:16px;text-decoration:none;transition:background .25s ease,border-color .25s ease,transform .2s ease;overflow:hidden}.blog-card::before{content:"";position:absolute;left:0;top:16px;bottom:16px;width:2px;background:var(--cat-color);opacity:.35;border-radius:2px;transition:opacity .25s ease,top .25s ease,bottom .25s ease}.blog-card:hover{background:linear-gradient(90deg,var(--cat-glow),transparent 60%);border-color:var(--border);transform:translateY(-1px)}.blog-card:hover::before{opacity:1;top:8px;bottom:8px}.blog-card[data-category=practices]{--cat-color:#52c97a;--cat-glow:rgba(82,201,122,.10)}.blog-card[data-category=thinking]{--cat-color:#a78bfa;--cat-glow:rgba(167,139,250,.10)}.blog-card[data-category=tools]{--cat-color:#f0a040;--cat-glow:rgba(240,160,64,.10)}.blog-card[data-category=mobile]{--cat-color:#38bdf8;--cat-glow:rgba(56,189,248,.10)}.blog-card[data-category=devops]{--cat-color:#f87171;--cat-glow:rgba(248,113,113,.10)}.blog-card[data-category=database]{--cat-color:#2dd4bf;--cat-glow:rgba(45,212,191,.10)}.blog-card[data-category=frontend]{--cat-color:#f472b6;--cat-glow:rgba(244,114,182,.10)}.blog-card[data-category=algorithms]{--cat-color:#fbbf24;--cat-glow:rgba(251,191,36,.10)}.blog-card[data-category=architecture]{--cat-color:#a78bfa;--cat-glow:rgba(167,139,250,.10)}.blog-card[data-category=java]{--cat-color:#f0a040;--cat-glow:rgba(240,160,64,.10)}.blog-card[data-category=spring-boot]{--cat-color:#52c97a;--cat-glow:rgba(82,201,122,.10)}.blog-card[data-category=security]{--cat-color:#f87171;--cat-glow:rgba(248,113,113,.10)}.blog-card[data-category=thinking]{--cat-color:#38bdf8;--cat-glow:rgba(56,189,248,.10)}.blog-card-rail{display:flex;flex-direction:column;align-items:flex-start;padding-left:14px}.blog-card-month{font-family:var(--mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--cat-color);opacity:.9;margin:0 0 2px}.blog-card-day{font-family:var(--mono);font-size:38px;font-weight:600;line-height:1;color:#fff;margin:0;letter-spacing:-.02em}.blog-card-cat,.blog-card-year{font-family:var(--mono);letter-spacing:.18em}.blog-card-year{font-size:11px;color:var(--text-muted);margin:4px 0 14px}.blog-card-cat{display:inline-flex;align-items:center;font-size:10px;text-transform:uppercase;padding:5px 11px;border-radius:999px;background:color-mix(in srgb,var(--cat-color) 12%,transparent);color:var(--cat-color);border:1px solid color-mix(in srgb,var(--cat-color) 30%,transparent)}.blog-card-body{min-width:0;padding-top:4px}.blog-card-title{font-size:21px;font-weight:700;line-height:1.3;color:var(--cat-color);margin:0 0 10px;letter-spacing:-.005em;transition:filter .2s ease}.blog-card:hover .blog-card-title{filter:brightness(1.15)}.blog-card-desc{color:var(--text-secondary);font-size:14.5px;line-height:1.6;margin:0;max-width:640px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}@media (max-width:640px){.blog-card{grid-template-columns:1fr;gap:14px;padding:20px 22px}.blog-card-rail{flex-direction:row;align-items:baseline;gap:12px;padding-left:8px}.blog-card-day{font-size:22px}.blog-card-year{margin:0}}#reading-progress{position:fixed;top:0;left:0;width:0%;height:3px;background:var(--accent-gold);z-index:1000;transition:width .08s linear;pointer-events:none}.btn-pill{display:inline-flex;align-items:center;gap:10px;padding:10px 22px;border:1px dashed var(--border-strong);border-radius:999px;font-family:var(--mono);font-size:12px;letter-spacing:.14em;color:#fff;text-transform:uppercase;transition:all .2s ease;cursor:pointer}.btn-pill:hover{border-color:#fff;background:rgba(255,255,255,.04)}.view-all-row{margin-top:20px;text-align:center}.contact-grid{display:flex;flex-direction:column;gap:28px}.contact-pills{display:flex;gap:12px;flex-wrap:wrap;margin:8px 0 20px}.contact-form label,.contact-pills a{font-family:var(--mono);color:var(--text-secondary)}.contact-pills a{display:inline-flex;align-items:center;padding:10px 18px;border:1px dashed var(--border-strong);border-radius:999px;font-size:13px;letter-spacing:.04em;transition:all .2s ease}.contact-pills a:hover,.post-tags a.tag:hover{color:#fff;border-color:#fff}.contact-form{display:grid;grid-template-columns:1fr 1fr;gap:28px 32px;margin-top:12px}.contact-form .field{display:flex;flex-direction:column}.contact-form .field.full{grid-column:1/-1}.contact-form label{font-size:12px;letter-spacing:.12em;text-transform:uppercase;margin-bottom:8px}.contact-form input,.contact-form textarea{background:0 0;border:0;border-bottom:1px dashed var(--border-strong);color:#fff;font-family:inherit;font-size:15px;padding:10px 0;outline:0;resize:vertical}.contact-form textarea{min-height:110px}.contact-form input:focus,.contact-form textarea:focus{border-bottom-color:#fff}.btn-send{align-self:start;margin-top:8px;padding:14px 32px;border-radius:999px;background:var(--card-2);color:#fff;font-family:var(--mono);font-size:13px;letter-spacing:.14em;text-transform:uppercase;transition:background .2s ease;border:0}.btn-send:hover{background:#2a2a2a}#contact h2{background:linear-gradient(95deg,#f0a040 0,#ec5fa2 50%,#56ccf2 100%);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;display:inline-block}#contact .contact-pills a:nth-child(1){border-color:rgba(240,160,64,.5);color:#f0a040}#contact .contact-pills a:nth-child(2){border-color:rgba(86,204,242,.5);color:#56ccf2}#contact .contact-pills a:nth-child(3){border-color:rgba(78,205,196,.5);color:#4ecdc4}#contact .contact-form .field:nth-child(1) input{border-bottom-color:rgba(240,160,64,.4)}#contact .contact-form .field:nth-child(2) input{border-bottom-color:rgba(255,122,90,.4)}#contact .contact-form .field:nth-child(3) input{border-bottom-color:rgba(236,95,162,.4)}#contact .contact-form .field:nth-child(4) textarea{border-bottom-color:rgba(86,204,242,.4)}#contact .contact-form .field:nth-child(2) label{color:#ff7a5a}#contact .contact-form .field:nth-child(3) label{color:#ec5fa2}#contact .contact-form .field:nth-child(4) label{color:#56ccf2}#contact .contact-form input:focus,#contact .contact-form textarea:focus{border-bottom-color:#fff;border-bottom-style:solid}#contact .btn-send{background:rgba(240,160,64,.15);color:#f0a040;border:1px solid rgba(240,160,64,.6);transition:background .18s ease,color .18s ease,box-shadow .18s ease}#contact .btn-send:hover{background:#f0a040;color:#000;box-shadow:0 6px 18px rgba(240,160,64,.35)}.footer,.post-meta-grid .item .key{font-family:var(--mono);font-size:12px;color:var(--text-muted)}.footer{margin-top:32px;padding:24px 0 0;text-align:center;letter-spacing:.12em}.fade-in{opacity:0;transform:translateY(20px);transition:opacity .6s ease,transform .6s ease}.fade-in.visible{opacity:1;transform:translateY(0)}.post-card{padding:56px 56px 64px}.post-meta-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;padding-bottom:36px;border-bottom:1px solid var(--border);margin-bottom:36px}.post-meta-grid .item .key{display:block;letter-spacing:.14em;text-transform:uppercase;margin-bottom:10px}.post-meta-grid .item .key::before{content:""}.post-meta-grid .item .val{display:block;color:#fff;font-size:16px;font-weight:600}.post-title{font-size:clamp(32px,4.5vw,56px);font-weight:800;letter-spacing:-.02em;line-height:1.1;margin:0 0 24px}.post-lead{color:var(--text-secondary);font-size:17px;line-height:1.7;margin:0 0 32px}.post-image{display:none}.post-byline{margin:-8px 0 28px;padding-bottom:24px;border-bottom:1px dashed var(--border);font-family:var(--mono);font-size:13px;letter-spacing:.04em}.post-byline a{color:#fff;border-bottom:1px dashed currentColor}.post-byline a:hover{color:var(--accent-gold)}.post-body blockquote,.post-byline,.post-byline time,.post-toc-list a{color:var(--text-secondary)}.post-body pre,.post-toc{border-radius:var(--radius-sm)}.post-toc{margin:0 0 36px;padding:22px 26px;background:var(--card-2);border:1px dashed var(--border-strong)}.post-toc-title{margin:0 0 12px;font-family:var(--mono);font-size:12px;letter-spacing:.14em;color:#fff;text-transform:uppercase}.post-body,.post-toc-list{color:var(--text-secondary)}.post-toc-list{list-style:decimal;padding-left:22px;margin:0;font-family:var(--mono);font-size:13px}.post-toc-list li{margin:6px 0}.copy-btn:hover,.post-toc-list a:hover{color:#fff}.post-body{font-size:17px;line-height:1.8}.post-body p{margin:0 0 22px}.post-body h2,.post-body h3{font-family:"Manrope",sans-serif}.post-body h2{margin:48px 0 18px;font-size:clamp(24px,2.6vw,32px);font-weight:800;letter-spacing:-.01em;color:#fff;padding-left:16px;border-left:4px solid var(--h2c, #f0a040);color:var(--h2c, #fff)}.post-body h3{margin:32px 0 14px;font-size:22px}.post-body ol,.post-body ul{margin:0 0 22px;padding-left:28px;list-style-position:outside}.post-body ol li,.post-body ul li{margin-bottom:10px}.post-body ul{list-style-type:disc}.post-body ol{list-style-type:decimal}.post-body h3,.post-body strong{color:#fff;font-weight:700}.post-body em{color:#e5e5e5}.copy-btn,.post-body code{border-radius:4px;font-family:var(--mono)}.post-body code{color:var(--accent-gold);font-size:.92em;background:rgba(255,255,255,.02);padding:1px 5px;color:#f0a040;background:rgba(240,160,64,.1)}.post-body pre{background:#0e0e0e;border:1px solid var(--border);padding:22px 24px;margin:28px 0;overflow-x:auto;touch-action:pan-x;font-family:var(--mono);font-size:15px;line-height:1.55;position:relative}.copy-btn{position:absolute;bottom:10px;right:10px;background:rgba(255,255,255,.06);border:1px solid var(--border-strong);color:var(--text-muted);font-size:10px;letter-spacing:.1em;padding:4px 10px;cursor:pointer;opacity:0;transition:opacity .15s,color .15s,border-color .15s}.post-body pre:hover .copy-btn{opacity:1}.copy-btn.copied{color:#52c97a;border-color:rgba(82,201,122,.4)}.post-body pre code{color:#d8d8d8;background:0 0;padding:0}.post-body a{color:var(--accent-gold);border-bottom:1px dashed currentColor;color:#ec5fa2}.post-body blockquote{margin:28px 0;padding:18px 24px;border-left:3px solid var(--accent-gold);background:rgba(255,255,255,.02);font-style:italic;border-radius:0 var(--radius-sm) var(--radius-sm)0}.post-body table{width:100%;border-collapse:collapse;margin:24px 0}.post-body td,.post-body th{padding:12px 16px;border:1px solid var(--border);text-align:left}.post-body th{color:#fff;font-weight:700;background:var(--card-2)}.post-tags{display:flex;flex-wrap:wrap;gap:10px;margin-top:40px;padding-top:32px;border-top:1px solid var(--border)}.post-tags .tag{display:inline-flex;align-items:center;padding:8px 16px;border:1px dashed var(--border-strong);border-radius:999px;font-family:var(--mono);font-size:12px;letter-spacing:.08em;color:var(--text-secondary)}.post-tags .tag::before{content:"#";margin-right:4px;opacity:.6}.post-tags a.tag{transition:color .2s ease,border-color .2s ease}.tag-unlinked{cursor:default;opacity:.65}.tag-unlinked:hover{opacity:.65}.back-to-blog{display:inline-flex;align-items:center;gap:10px;font-family:var(--mono);font-size:12px;letter-spacing:.14em;color:var(--text-muted);text-transform:uppercase;margin-bottom:28px}.back-to-blog:hover{color:#fff}.post-title{background:linear-gradient(95deg,#f0a040 0,#ec5fa2 50%,#56ccf2 100%);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}.post-body h2:nth-of-type(5n+1){--h2c:#f0a040}.post-body h2:nth-of-type(5n+2){--h2c:#ff7a5a}.post-body h2:nth-of-type(5n+3){--h2c:#ec5fa2}.post-body h2:nth-of-type(5n+4){--h2c:#56ccf2}.post-body h2:nth-of-type(5n+5){--h2c:#4ecdc4}.post-body a:hover{color:#fff;border-bottom-color:#fff}.post-tags .tag:nth-child(4n+1){border-color:rgba(240,160,64,.5);color:#f0a040}.post-tags .tag:nth-child(4n+2){border-color:rgba(86,204,242,.5);color:#56ccf2}.post-tags .tag:nth-child(4n+3){border-color:rgba(78,205,196,.5);color:#4ecdc4}.post-tags .tag:nth-child(4n+4){border-color:rgba(236,95,162,.5);color:#ec5fa2}.post-share{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin:28px 0 0;padding-top:28px;border-top:1px dashed var(--border)}.post-share-label{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-secondary)}.post-share-links{display:flex;gap:10px;flex-wrap:wrap}.post-share-link{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:999px;border:1px solid var(--border-strong);background:rgba(255,255,255,.02);color:var(--text-secondary);font-family:var(--mono);font-size:12px;letter-spacing:.04em;text-decoration:none;cursor:pointer;transition:transform .18s ease,color .18s ease,border-color .18s ease,background .18s ease}.post-share-link svg{width:14px;height:14px;flex-shrink:0}.post-share-link:hover{transform:translateY(-2px)}.post-share-link[data-platform=x]:hover{color:#fff;border-color:#fff;background:rgba(255,255,255,.06)}.post-share-link[data-platform=linkedin]:hover{color:#56ccf2;border-color:#56ccf2;background:rgba(86,204,242,.08)}.post-share-link[data-platform=hn]:hover{color:#f0a040;border-color:#f0a040;background:rgba(240,160,64,.08)}.post-share-copy:hover{color:#4ecdc4;border-color:#4ecdc4;background:rgba(78,205,196,.08)}.post-share-copy.copied{color:#4ecdc4;border-color:#4ecdc4;background:rgba(78,205,196,.15)}.featured-card{display:block;margin-bottom:24px;padding:26px 30px;border-radius:var(--radius);border:1px solid rgba(240,160,64,.35);background:linear-gradient(135deg,rgba(240,160,64,.08)0,rgba(236,95,162,.04) 60%,rgba(86,204,242,.02) 100%);text-decoration:none;position:relative;transition:border-color .18s ease,transform .18s ease,box-shadow .18s ease}.featured-card:hover{border-color:rgba(240,160,64,.7);transform:translateY(-2px);box-shadow:0 10px 30px rgba(240,160,64,.12)}.featured-card-badge{display:inline-block;padding:5px 11px;border-radius:999px;background:#f0a040;color:#000;font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;margin-bottom:16px}.featured-card-title{font-size:clamp(20px,2.4vw,26px);font-weight:800;margin:0 0 10px;line-height:1.2;background:linear-gradient(95deg,#f0a040 0,#ec5fa2 100%);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}.featured-card-desc{font-size:15px;color:var(--text-secondary);margin:0 0 14px;line-height:1.55}.featured-card-cta{display:inline-block;font-family:var(--mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:#f0a040}.post-series{margin:32px 0 0;padding:22px 24px;background:var(--card-2);border:1px dashed var(--border-strong);border-radius:var(--radius-sm)}.post-series-label{display:block;font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent-gold);margin-bottom:14px}.post-series-nav{display:grid;grid-template-columns:1fr 1fr;gap:14px}.post-series-link{display:flex;flex-direction:column;gap:6px;padding:14px 16px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--card);color:var(--text-secondary);text-decoration:none;transition:border-color .18s ease,transform .18s ease,color .18s ease}.post-series-link:hover{border-color:var(--accent-gold);color:#fff;transform:translateY(-2px)}.post-series-prev{grid-column:1;text-align:left}.post-series-next{grid-column:2;text-align:right}.post-series-direction{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted)}.post-series-title{font-size:14px;font-weight:600;line-height:1.4;color:#fff}@media (max-width:720px){.post-series-nav{grid-template-columns:1fr}.post-series-next,.post-series-prev{grid-column:1;text-align:left}}.post-toc-title{position:relative;padding-bottom:14px}.post-toc-title::after{content:"";position:absolute;left:0;bottom:0;width:80px;height:2px;border-radius:1px;background:linear-gradient(90deg,#f0a040,#ec5fa2,#56ccf2,#4ecdc4)}.post-toc-list li:nth-of-type(5n+1){--tc:#f0a040}.post-toc-list li:nth-of-type(5n+2){--tc:#ff7a5a}.post-toc-list li:nth-of-type(5n+3){--tc:#ec5fa2}.post-toc-list li:nth-of-type(5n+4){--tc:#56ccf2}.post-toc-list li:nth-of-type(5n+5){--tc:#4ecdc4}.post-toc-list li::marker{color:var(--tc, var(--accent-gold));font-weight:700}.post-toc-list li a{color:var(--tc, var(--text-secondary));transition:filter .15s ease}.post-toc-list li a:hover{filter:brightness(1.2);color:var(--tc)}.author-bio{display:flex;gap:18px;align-items:flex-start;margin-top:48px;padding-top:36px;border-top:1px solid var(--border)}.author-bio-avatar{width:44px;height:44px;border-radius:50%;background:var(--card-2);border:1px dashed var(--border-strong);display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:12px;font-weight:600;color:var(--accent-gold);flex-shrink:0}.author-bio-body{min-width:0}.author-bio-name{font-size:15px;font-weight:700;color:#fff;margin:0 0 2px}.author-bio-links a,.author-bio-role{font-family:var(--mono);font-size:10px}.author-bio-role{letter-spacing:.13em;color:var(--accent-gold);text-transform:uppercase;margin:0 0 10px}.author-bio-text{color:var(--text-secondary);font-size:14.5px;line-height:1.65;margin:0 0 14px;max-width:640px}.author-bio-links{display:flex;gap:8px;flex-wrap:wrap}.author-bio-links a{letter-spacing:.1em;color:var(--text-muted);text-decoration:none;border:1px dashed var(--border-strong);border-radius:999px;padding:4px 12px;transition:color .15s,border-color .15s}.author-bio-links a:hover{color:var(--accent-gold);border-color:rgba(240,160,64,.5)}.related-posts{margin-top:56px;padding-top:36px;border-top:1px solid var(--border)}.related-posts-title{font-family:"Manrope",sans-serif;font-size:22px;font-weight:800;color:#fff;margin:0 0 20px;letter-spacing:-.01em}.related-posts-grid{display:flex;flex-direction:column;gap:12px}.related-post-card{display:flex;justify-content:space-between;align-items:center;padding:18px 20px;background:var(--card-2);border:1px solid var(--border);border-radius:var(--radius-sm);transition:all .2s ease}.related-post-card:hover{background:var(--card-hover);border-color:var(--border-strong)}.related-post-title{color:var(--text-secondary);font-size:15px;font-weight:600}.related-post-card:hover .related-post-title{color:#fff}.related-post-meta{color:var(--text-muted);font-size:12px;font-family:var(--mono);letter-spacing:.1em;white-space:nowrap;margin-left:16px}.blog-interaction-section{margin-top:56px;padding-top:36px;border-top:1px solid var(--border)}.reaction-buttons{display:flex;gap:12px;margin-bottom:32px}.reaction-btn{display:inline-flex;align-items:center;gap:10px;padding:10px 20px;background:var(--card-2);border:1px dashed var(--border-strong);border-radius:999px;color:var(--text-secondary);font-family:var(--mono);font-size:13px;letter-spacing:.08em;cursor:pointer;transition:all .2s ease}.reaction-btn:hover{color:#fff;border-color:#fff}.reaction-btn.active{color:var(--accent-gold);border-color:var(--accent-gold)}.comments-section{margin-top:32px}.comments-title{font-family:"Manrope",sans-serif;font-size:20px;font-weight:800;color:#fff;margin-bottom:22px;display:flex;align-items:center;gap:10px;letter-spacing:-.01em}.comment-input-container{display:flex;flex-direction:column;gap:14px;margin-bottom:28px}.comment-fields{display:flex;flex-direction:column;gap:12px}.comment-identity-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.comment-input{font-size:15px}.comment-input,.comment-textarea{background:0 0;border:0;border-bottom:1px dashed var(--border-strong);padding:12px 0;color:#fff;font-family:inherit;outline:0}.comment-input:focus,.comment-textarea:focus{border-bottom-color:#fff}.comment-textarea{resize:vertical;min-height:90px;font-family:var(--mono);font-size:14px}.post-comment-btn{align-self:flex-start;padding:12px 28px;border-radius:999px;background:var(--card-2);color:#fff;font-family:var(--mono);font-size:13px;letter-spacing:.14em;text-transform:uppercase;border:0}.post-comment-btn:hover{background:#2a2a2a}.comments-list{display:flex;flex-direction:column;gap:14px;margin-top:24px}.comment-item,.search-row input{background:var(--card-2);border:1px solid var(--border)}.comment-item{padding:18px 20px;border-radius:var(--radius-sm)}.comment-author{color:#fff;font-weight:700;font-size:14px}.comment-date{color:var(--text-muted);font-family:var(--mono);font-size:12px;margin-left:8px;letter-spacing:.08em}.comment-text{color:var(--text-secondary);margin-top:8px;font-size:14px;line-height:1.65}.listing-controls{display:flex;flex-direction:column;gap:16px;margin-bottom:32px}.search-row{display:flex;gap:10px}.search-row input{flex:1;border-radius:999px;padding:12px 20px;color:#fff;font-family:inherit;font-size:14px;outline:0}.search-row input:focus{border-color:var(--border-strong)}.search-row .btn-pill{background:var(--card-2)}.filter-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.filter-label,.filter-pill{font-family:var(--mono);text-transform:uppercase}.filter-label{font-size:11px;letter-spacing:.14em;color:var(--text-secondary);margin-right:8px}.filter-pill{--pill-color:#ffffff;display:inline-flex;align-items:center;padding:7px 16px;border:1px dashed color-mix(in srgb,var(--pill-color) 40%,transparent);border-radius:999px;font-size:12px;letter-spacing:.08em;color:var(--pill-color);background:0 0;cursor:pointer;transition:background .2s ease,border-color .2s ease,filter .2s ease}.filter-pill[data-category=backend]{--pill-color:#4a9eff}.filter-pill[data-category=practices]{--pill-color:#52c97a}.filter-pill[data-category=thinking]{--pill-color:#a78bfa}.filter-pill[data-category=tools]{--pill-color:#f0a040}.filter-pill[data-category=mobile]{--pill-color:#38bdf8}.filter-pill[data-category=devops]{--pill-color:#f87171}.filter-pill[data-category=database]{--pill-color:#2dd4bf}.filter-pill[data-category=frontend]{--pill-color:#f472b6}.filter-pill[data-category=algorithms]{--pill-color:#fbbf24}.filter-pill:hover{background:color-mix(in srgb,var(--pill-color) 10%,transparent);border-color:var(--pill-color)}.filter-pill.active{background:var(--pill-color);color:#000;border-color:var(--pill-color);border-style:solid}.blog-pagination{display:flex;gap:8px;flex-wrap:wrap;align-items:center;justify-content:center;margin-top:36px;padding-top:28px;border-top:1px solid var(--border)}.page-btn{min-width:40px;height:40px;padding:0 14px;border:1px dashed var(--border-strong);border-radius:999px;background:0 0;color:var(--text-secondary);font-family:var(--mono);font-size:13px;letter-spacing:.04em;cursor:pointer;transition:all .2s ease}.page-btn:hover:not(.disabled){color:#fff;border-color:#fff}.page-btn.active{background:#fff;color:#000;border-style:solid;border-color:#fff}.page-btn.disabled{opacity:.35;cursor:not-allowed}.blog-empty{padding:40px;text-align:center;color:var(--text-secondary);font-family:var(--mono);font-size:14px;letter-spacing:.08em}.tutorial-difficulty{display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;margin-left:8px}.difficulty-beginner{background:rgba(120,200,120,.12);color:#79c879;border:1px solid rgba(120,200,120,.3)}.difficulty-intermediate{background:rgba(240,160,64,.12);color:var(--accent-gold);border:1px solid rgba(240,160,64,.3)}.difficulty-advanced{background:rgba(220,90,90,.12);color:#dc5a5a;border:1px solid rgba(220,90,90,.3)}@media (max-width:1024px){.main-grid{grid-template-columns:1fr}.sidebar{position:relative;top:0;padding:16px 18px}.sidebar-nav{flex-direction:row;flex-wrap:wrap;gap:14px}.sidebar-nav a{padding:8px 4px;font-size:12px}.sidebar-nav a .dot,.sidebar-nav a.active::after{display:none}.card,.post-card{padding:36px 28px}.about-grid{grid-template-columns:1fr;gap:32px}.about-photo{width:220px;height:220px;margin:0 auto}.stats{grid-template-columns:1fr;gap:18px;margin-top:32px}.service-item{grid-template-columns:64px 1fr;gap:20px}.service-meta{grid-row:2;grid-column:2;flex-direction:row;align-items:center;min-width:0}.exp-grid{gap:32px}.blog-row,.contact-form,.exp-grid{grid-template-columns:1fr}.post-meta-grid{gap:16px}.comment-identity-fields,.post-meta-grid{grid-template-columns:1fr}}@media (max-width:600px){.shell{padding:24px 18px 60px}.topbar{gap:14px}.brand{font-size:44px}.topbar-right{gap:14px;padding-top:8px;font-size:11px}.card,.post-card{padding:28px 22px;border-radius:12px}.section-head .ghost{font-size:36px;top:-14px}.stat-num{font-size:56px}.service-num{font-size:48px}.post-title{font-size:30px}}:focus-visible{outline:2px solid var(--accent-gold);outline-offset:2px;border-radius:2px}:focus:not(:focus-visible){outline:0}.skip-link{position:absolute;top:-100px;left:12px;z-index:1001;background:var(--accent-gold);color:#0a0a0a;font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:10px 18px;border-radius:999px;text-decoration:none;transition:top .15s ease}.skip-link:focus{top:12px}@media (prefers-reduced-motion:reduce){*,::after,::before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.alert{padding:10px 14px;border-radius:6px;margin-bottom:10px;font-size:13px;font-family:"Manrope",sans-serif;line-height:1.45;display:flex;align-items:center;gap:8px}.alert-error{background:rgba(226,93,93,.12);border:1px solid rgba(226,93,93,.35);color:#ffb4b4}.alert-error::before{content:"⚠";color:#e25d5d;font-weight:700}.alert-warning{background:rgba(240,160,64,.08);border-left:3px solid var(--accent-gold);color:#fff;border-radius:0 6px 6px 0}.alert-success{background:rgba(82,201,122,.1);border:1px solid rgba(82,201,122,.35);color:#b3f0c2}.alert-success::before{content:"✓";color:#52c97a;font-weight:700}@media (max-width:500px){.blog-card{grid-template-columns:1fr;padding:16px 18px;gap:8px}.blog-card-rail{flex-direction:row;align-items:center;gap:10px;padding:0;border:0;flex-wrap:wrap}.blog-card-day,.blog-card-month,.blog-card-year{font-family:var(--mono);font-size:11px;letter-spacing:.12em;color:var(--text-secondary);margin:0;text-transform:uppercase;font-weight:400}.blog-card-cat{margin:0 0 0 auto;font-size:10px}.blog-card-title{font-size:17px;margin:4px 0 6px}.blog-card-desc{font-size:13.5px}}@media (max-width:400px){.sidebar-nav a{padding:9px 10px;font-size:11.5px;gap:10px}.sidebar-nav a .nico{width:16px;height:16px}}