@import"https://cdn.jsdelivr.net/npm/bulma@0.9.4/css/bulma.min.css";@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";:root{--font-family: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial;--font-size-base: 16px;--line-height-base: 1.45;--measure: 66ch}.hero{padding:.6rem}.section{padding-top:1rem;padding-bottom:1rem}.tag-list{margin-top:.5rem}.contact-item{margin-bottom:.25rem}.job{margin-bottom:1rem}.social-link{color:var(--accent);text-decoration:none;display:inline-flex;align-items:center;margin-right:8px;font-weight:600;background:none;padding:0;border:none;transition:color .12s ease}.social-link:hover{color:var(--link-hover);text-decoration:none;background:none;transform:none}.social-icon{width:18px;height:18px;margin-right:8px;display:block;flex-shrink:0}.social-link svg{fill:currentColor;color:inherit}.social-link:hover,.social-link:focus{color:var(--link-hover);text-decoration:underline;cursor:pointer;outline:none}.header-contacts .social-link:hover,.header-contacts .social-link:focus{color:var(--link-hover);text-decoration:underline;cursor:pointer}:root{--bg: #ffffff;--muted: #6b7280;--accent: #3273dc;--card: #f5f7fb;--tag-bg: #eef6ff;--tag-color: #0b3d91;--box-border: rgba(50,115,220,.12);--link-hover: #1f6fd8;--accent-2: #10b981;--accent-3: #8b5cf6;--accent-4: #f59e0b;--muted-2: #9ca3af;--success: #16a34a;--danger: #ef4444}body{background:var(--bg);color:#0f1720;font-family:var(--font-family);font-size:var(--font-size-base);line-height:var(--line-height-base);font-weight:500;-webkit-font-smoothing:antialiased}.container{max-width:980px;margin-left:auto;margin-right:auto}h1,.title.is-1{font-size:2.125rem;line-height:1.15;letter-spacing:-.02em;font-weight:700;margin-top:0;margin-bottom:.4rem}h2,.title.is-2,.title.header-name{font-size:1.5rem;line-height:1.18;font-weight:600;margin:0 0 .35rem}h3,.title.is-3,.subtitle.header-title{font-size:1.125rem;font-weight:600;color:var(--muted);margin:0 0 .6rem}p,li,.contact-item{font-size:1rem;color:#111827;margin-bottom:.6rem}.has-text-centered.is-size-7{font-weight:500;color:var(--muted)}@media (prefers-reduced-motion: reduce){.app-content,.experience-card,.skill-badge{transition:none!important}}.header-hero{display:grid;grid-template-columns:1fr 420px;gap:18px;align-items:stretch;background:var(--card);padding:18px 12px;border-radius:12px;box-shadow:0 4px 10px #0206170a}.hero .hero-body{padding:.6rem 0}.hero.is-light{background:transparent}.header-left{display:flex;align-items:stretch;gap:18px}.header-left{padding-left:8px;padding-right:8px}.header-text{display:flex;flex-direction:column;gap:10px;justify-content:center}.header-text .title{margin:0;line-height:1.08}.header-text .subtitle{margin:0;color:var(--muted)}.header-name{display:block;margin:0 0 6px}.header-title{margin:0;color:var(--muted)}.title.header-name{margin-bottom:6px!important;display:block!important}.subtitle.header-title{margin-top:0!important;margin-bottom:0!important;display:block!important;color:var(--muted)!important}.header-avatar{border-radius:8px;overflow:hidden;box-shadow:0 4px 10px #0206170f;height:100%;width:auto;max-width:280px;align-self:stretch}.header-avatar img{width:auto;height:100%;object-fit:cover;display:block}.header-right{align-self:stretch;padding-left:6px;padding-right:6px}.header-right .box{height:100%;display:flex;flex-direction:column;justify-content:flex-start;padding:6px}.header-right .box>strong{display:block;margin-bottom:3px}.header-right .box>hr{margin:6px 0}.header-right .box .stack-list{margin-top:4px}.header-right .box>strong+div{margin-top:4px}.lang-toggle{border:1px solid rgba(15,23,36,.06);background:transparent;color:var(--accent);font-weight:600;padding:0 10px;border-radius:8px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;height:36px;min-width:44px}.lang-toggle:hover{background:rgba(50,115,220,.04)}.lang-toggle-wrap{margin-bottom:6px;display:flex;gap:8px;align-items:center}@media (max-width: 768px){.lang-toggle-wrap{display:flex;justify-content:center;width:100%}}@media print{@page{size:A4;margin:15mm}:root{color-scheme:light}body{background:#fff!important;color:#000!important;margin:0!important}.container{max-width:100%!important;margin-left:0!important;margin-right:0!important;padding-left:12mm!important;padding-right:12mm!important;box-sizing:border-box!important}.lang-toggle,.print-btn,.share-btn{display:none!important}.header-hero{background:var(--card)!important;box-shadow:none!important;border-radius:6px!important;padding:6px 6px 8px!important;width:auto!important}.header-right .box,.box{background:var(--card)!important;box-shadow:none!important;padding:6px!important}.header-avatar{width:120px!important;height:120px!important;max-width:120px!important;float:none!important;display:inline-block!important;margin-right:8px!important;border-radius:6px!important;vertical-align:top!important}.header-avatar img{width:140px!important;height:140px!important;object-fit:cover!important}a{color:#000!important;text-decoration:none!important}.company-name{background:none!important;color:#000!important}.skill-badge,.skill-badge--small{display:inline-block!important;background:#f3f6fb!important;border:1px solid rgba(15,23,36,.08)!important;box-shadow:none!important;color:#000!important;padding:2px 6px!important;margin-right:6px!important;font-weight:600!important;border-radius:4px!important}.stack-list{display:inline-block!important}.social-link{display:inline!important;color:#000!important;text-decoration:none!important;font-weight:600!important;margin-right:6px!important}.experience-card{background:transparent!important;box-shadow:none!important;padding:.15rem 0!important;margin-bottom:.9rem!important}.header-hero,.header-right .box,.box{padding:6px 8px!important;margin-bottom:.9rem!important}.experience-card,.box{page-break-inside:avoid!important;break-inside:avoid!important;-webkit-column-break-inside:avoid!important}.experience-card *{page-break-inside:avoid!important;break-inside:avoid!important}.section{margin:0!important;padding:.15rem 0!important}.section+.section{margin-top:.15rem!important}.title,.subtitle,.company-name{page-break-after:avoid!important}.job-bullets>li{page-break-inside:avoid!important;break-inside:avoid!important}.company-name,.job-role,.job-period{margin-top:0!important;margin-bottom:2px!important}.job-bullets>li:before{content:"▸";color:var(--accent)!important;left:0!important;top:.12rem!important;font-size:.95rem!important}.job-bullets{padding-left:0!important}.job-bullets>li{padding-left:0!important;margin-left:0!important}.job-bullets>li:before{display:none!important}.company-name{padding-left:6px!important}.company-name:before{display:none!important}.header-left,.header-text,.header-right,.columns,.column{padding-left:0!important;padding-right:0!important}hr{display:none!important}.title{color:#000!important}.subtitle{color:#222!important}.columns{display:block!important}.column{width:100%!important;display:block!important}body,.container,.header-hero,.header-text,.header-right .box,.box,.experience-card,.stack-list,.job-bullets,.sub-bullets,.has-text-centered{margin-left:0!important;margin-right:0!important;text-align:left!important}}.print-btn{border:1px solid rgba(15,23,36,.06);background:transparent;color:var(--accent);font-weight:600;padding:6px;border-radius:8px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px}.print-btn:hover{background:rgba(15,23,36,.04)}.print-btn .print-icon{width:16px;height:16px;display:block}.share-btn{border:1px solid rgba(15,23,36,.06);background:transparent;color:var(--accent);font-weight:600;padding:6px;border-radius:8px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px}.share-btn:hover{background:rgba(15,23,36,.04)}.share-btn svg{width:16px;height:16px;display:block}.lang-toggle,.print-btn,.share-btn{width:44px;height:36px;padding:6px;min-width:0;display:inline-flex;align-items:center;justify-content:center}.share-btn svg path,.share-btn svg rect,.share-btn svg line{stroke-width:2.5}@media (max-width: 768px){.header-hero{grid-template-columns:1fr;padding:12px;border-radius:10px}.header-left{flex-direction:column;align-items:center;text-align:center}.header-avatar{width:128px;height:128px;max-width:128px;margin-bottom:12px;align-self:center;display:block;margin-left:auto;margin-right:auto}.header-avatar img{width:100%;height:100%}.header-text{align-items:center}.header-left,.header-right .box{padding-left:6px;padding-right:6px}}.social-link{color:var(--accent);text-decoration:none;transition:color .12s ease}.social-link:hover{color:var(--link-hover);text-decoration:none}a{color:var(--accent);font-weight:600}a:hover{text-decoration:underline;color:var(--link-hover)}.title.is-2{color:var(--accent)}.subtitle.is-5{color:var(--muted)}.box{background:var(--card)}.tag-list .tag{background:var(--tag-bg);color:var(--tag-color);border:none}.tag-list .tag:nth-child(3n+1){background:#eef6ff;color:#0b3d91}.tag-list .tag:nth-child(3n+2){background:#f0fdf4;color:#0f5132}.tag-list .tag:nth-child(3n+3){background:#f8f9ff;color:#372b6c}.skill-badge{background:#f3f6fb;border-radius:8px;padding:6px 10px;margin-right:6px;display:inline-block;color:#0f1720;font-weight:600;border:1px solid rgba(15,23,36,.06);box-shadow:0 1px 2px #02061708;transition:transform .12s ease,background .12s ease}.skill-badge:hover{transform:translateY(-1px);background:#e6eef8}.skill-badge--small{padding:4px 8px;margin-right:4px;border-radius:6px;font-size:.85rem;font-weight:600;box-shadow:0 1px 2px #02061705}.section-accent{background:linear-gradient(180deg,rgba(50,115,220,.03),rgba(139,92,246,.02));border-radius:8px;padding:12px}.company-name{position:relative;display:inline-block;padding:6px 10px 6px 18px;font-weight:600;color:#0f1720;background:transparent;border-radius:6px}.company-name:before{content:"";position:absolute;left:6px;top:6px;bottom:6px;width:4px;background:rgba(50,115,220,.691);border-radius:2px}.contact-item strong{color:#111827;margin-right:6px}.contact-item{color:var(--muted)}.contact-item{position:relative}.copy-wrap{display:inline-flex;align-items:center;gap:8px;margin-left:8px}.copy-value{display:inline-block}.copy-btn{opacity:0;background:transparent;border:1px solid rgba(15,23,36,.06);color:var(--muted);width:1em;height:1em;display:inline-flex;align-items:center;justify-content:center;padding:0;border-radius:4px;cursor:pointer;font-size:.95em;line-height:1;transition:opacity .12s ease,transform .12s ease,background .12s ease,border-color .12s ease}.contact-item:hover .copy-btn,.copy-btn:focus{opacity:1;transform:translateY(-1px)}.copy-btn[title=Скопировано]{background:rgba(16,185,129,.08);border-color:#10b9812e;color:#047857}.copy-btn svg{display:block;width:.9em;height:.9em}.experience-card{padding:1rem;margin-bottom:1rem!important;border-radius:8px;transition:box-shadow .18s ease,transform .12s ease}.experience-card:hover{box-shadow:0 6px 14px #0206170d;transform:translateY(-2px)}.job-period{color:var(--muted-2);font-size:.9rem;margin-top:6px}.job-role{font-weight:600;color:var(--muted);margin-top:6px}.job-location{color:var(--muted-2);font-size:.95rem;margin-top:6px}.job-bullets{margin-top:12px;padding-left:0}.job-bullets>li{list-style:none;margin-bottom:.45rem;color:#111827;padding:0 0 0 1.6rem;position:relative;border-radius:0;background:none}.job-bullets>li:before{content:"";position:absolute;left:.4rem;top:.6rem;width:8px;height:8px;background:var(--accent);border-radius:50%;transform:translateY(-50%);box-shadow:0 1px #02061705}.sub-bullets{margin-top:6px;margin-bottom:6px;padding-left:1.1rem}.sub-bullets li{list-style:disc;margin-bottom:.35rem;color:var(--muted);font-size:.95rem}.bullet-title{font-weight:600;color:#0f1720}.bullet-desc{color:var(--muted);margin-top:4px;font-size:.95rem}.stack-list{margin-top:10px;display:flex;flex-wrap:wrap;gap:8px}.stack-list .skill-badge{padding:6px 10px;font-size:.85rem}.education-card .job-role{color:var(--muted-2);font-weight:600;font-size:.98rem}@media (max-width: 768px){.experience-card .column.is-3{flex-basis:100%}}.app-content{transition:opacity .32s ease,transform .32s ease;opacity:1;transform:translateY(0)}.app-content.fade-out{opacity:0;transform:translateY(8px);pointer-events:none}.app-content.fade-in{opacity:1;transform:translateY(0)}
