@font-face{font-family:"Montserrat";src:url("/fonts/montserrat/montserrat.regular.ttf") format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:"Montserrat";src:url("/fonts/montserrat/montserrat.italic.ttf") format("truetype");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:"Montserrat";src:url("/fonts/montserrat/montserrat.medium.ttf") format("truetype");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:"Montserrat";src:url("/fonts/montserrat/montserrat.semi-bold.ttf") format("truetype");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:"Montserrat";src:url("/fonts/montserrat/montserrat.bold.ttf") format("truetype");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:"Montserrat";src:url("/fonts/montserrat/montserrat.extra-bold.ttf") format("truetype");font-weight:800;font-style:normal;font-display:swap}@font-face{font-family:"Montserrat";src:url("/fonts/montserrat/montserrat.black.ttf") format("truetype");font-weight:900;font-style:normal;font-display:swap}@font-face{font-family:"Ubuntu Mono";src:url("/fonts/ubuntu-mono/ubuntu-mono.regular.ttf") format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:"Ubuntu Mono";src:url("/fonts/ubuntu-mono/ubuntu-mono.bold.ttf") format("truetype");font-weight:700;font-style:normal;font-display:swap}*,*::before,*::after{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{margin:0;min-width:320px;min-height:100vh;background:#fff;color:#1d1d1f;font-family:"Montserrat",-apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif;font-size:17px;line-height:1.47;font-weight:400;letter-spacing:-0.01em;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}img,svg,video{display:block;max-width:100%}svg{flex:0 0 auto}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer;border:0;background:none;padding:0}ul,ol{margin:0;padding:0;list-style:none}h1,h2,h3,h4,h5,h6,p,figure,blockquote,dl,dd{margin:0}h1,h2,h3{text-wrap:balance}[hidden]{display:none !important}::selection{background:#d2186f;color:#fff}:focus-visible{outline:2px solid #d2186f;outline-offset:4px}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important}}.page-body{display:flex;flex-direction:column;min-height:100vh;background:#fff}.page-main{flex:1 0 auto}.container{width:100%;max-width:1180px;margin-inline:auto;padding-inline:clamp(22px, 4vw, 40px)}.container_narrow{max-width:860px}.section{padding-block:clamp(52px, 7vw, 88px)}.section_tight{padding-block:clamp(40px, 5vw, 64px)}.section_tinted{background:#f5f5f7}.section-heading{display:flex;flex-direction:column;align-items:center;gap:14px;margin-bottom:clamp(34px, 4.5vw, 56px);text-align:center}.section-heading_small{margin-bottom:28px}.section-heading__main{display:grid;justify-items:center;gap:10px}.section-heading__title{font-size:clamp(2rem, 4vw, 3.5rem);font-weight:600;line-height:1.06;letter-spacing:-0.04em}.eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:0.82rem;font-weight:500;letter-spacing:0.01em;color:#d2186f}.eyebrow_light{color:rgba(255,255,255,0.62)}.eyebrow__dot{width:5px;height:5px;border-radius:50%;background:#d2186f;flex:0 0 auto}.text-accent{color:#d2186f}.link-arrow{display:inline-flex;align-items:center;gap:6px;color:#d2186f;font-size:0.93rem;font-weight:500;transition:color 280ms cubic-bezier(0.22, 1, 0.36, 1)}@media (hover: hover) and (pointer: fine){.link-arrow:hover{color:#a90f55;text-decoration:underline;text-underline-offset:3px}}.link-arrow__icon{transition:transform 280ms cubic-bezier(0.22, 1, 0.36, 1)}@media (hover: hover) and (pointer: fine){.link-arrow:hover .link-arrow__icon{transform:translateX(3px)}}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:11px 23px;border:0;border-radius:999px;background:#d2186f;color:#fff;font-size:0.94rem;font-weight:500;line-height:1.2;text-align:center;transition:background 280ms cubic-bezier(0.22, 1, 0.36, 1),color 280ms cubic-bezier(0.22, 1, 0.36, 1),transform 280ms cubic-bezier(0.22, 1, 0.36, 1)}@media (hover: hover) and (pointer: fine){.button:hover{background:#a90f55;transform:translateY(-1px)}}.button_primary{background:#d2186f;color:#fff}@media (hover: hover) and (pointer: fine){.button_primary:hover{background:#a90f55}}.button_ghost{background:#f5f5f7;color:#1d1d1f}@media (hover: hover) and (pointer: fine){.button_ghost:hover{background:#e8e8ed}}.button_inverse{background:#fff;color:#1d1d1f}@media (hover: hover) and (pointer: fine){.button_inverse:hover{background:rgba(255,255,255,0.86);color:#1d1d1f}}.button_small{min-height:36px;padding:8px 16px;font-size:0.8rem}.button__icon{transition:transform 280ms cubic-bezier(0.22, 1, 0.36, 1)}@media (hover: hover) and (pointer: fine){.button:hover .button__icon{transform:translate(2px, -2px)}}.tag,.tech-badge{display:inline-flex;align-items:center;padding:5px 10px;border-radius:999px;background:rgba(29,29,31,0.05);color:#86868b;font-size:0.7rem;font-weight:500;line-height:1.2;white-space:nowrap}.tag{background:rgba(210,24,111,0.08);color:#d2186f}.tag-list,.tech-list{display:flex;flex-wrap:wrap;gap:6px}.filter-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:center}.filter-chip{display:inline-flex;align-items:center;gap:7px;padding:8px 15px;border:0;border-radius:999px;background:#f5f5f7;color:#1d1d1f;font-size:0.82rem;font-weight:500;line-height:1.2;transition:background 280ms cubic-bezier(0.22, 1, 0.36, 1),color 280ms cubic-bezier(0.22, 1, 0.36, 1)}@media (hover: hover) and (pointer: fine){.filter-chip:hover{background:#e8e8ed}}.filter-chip_active{background:#1d1d1f;color:#fff}.filter-chip__count{color:currentColor;opacity:0.5;font-size:0.72rem}.visually-hidden{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border:0 !important}.skip-link{position:fixed;top:8px;left:8px;z-index:1000;padding:10px 16px;border-radius:999px;background:#d2186f;color:#fff;font-size:0.8rem;transform:translateY(-160%);transition:transform 280ms cubic-bezier(0.22, 1, 0.36, 1)}.skip-link:focus{transform:translateY(0)}@media (max-width: 620px){body{font-size:16px}.section-heading__title{font-size:clamp(1.9rem, 8vw, 2.6rem)}.filter-row{flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;padding-bottom:4px;scrollbar-width:none}.filter-row::-webkit-scrollbar{display:none}.filter-chip{flex:0 0 auto}.button{width:100%}}@keyframes logo-dot{0%{color:#8f0143}50%{color:#ff1a85}100%{color:#8f0143}}.site-header{position:sticky;top:0;z-index:100;background:rgba(0,0,0,0.88);backdrop-filter:saturate(180%) blur(20px);border-bottom:1px solid rgba(255,255,255,0.08);color:#fff;transition:background 280ms cubic-bezier(0.22, 1, 0.36, 1)}.site-header_scrolled{background:rgba(0,0,0,0.94)}.site-header__inner{display:flex;align-items:center;gap:clamp(20px, 3vw, 42px);min-height:52px}.site-header__actions{display:flex;align-items:center;gap:10px;margin-left:auto}.site-header__cta{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:999px;background:rgba(255,255,255,0.14);color:#fff;font-size:0.7rem;font-weight:500;white-space:nowrap;transition:background 280ms cubic-bezier(0.22, 1, 0.36, 1),color 280ms cubic-bezier(0.22, 1, 0.36, 1)}@media (hover: hover) and (pointer: fine){.site-header__cta:hover{background:#fff;color:#1d1d1f}}.site-header__cta-icon{transition:transform 280ms cubic-bezier(0.22, 1, 0.36, 1)}@media (hover: hover) and (pointer: fine){.site-header__cta:hover .site-header__cta-icon{transform:translate(2px, -2px)}}.site-logo{display:inline-flex;align-items:center;flex:0 0 auto;color:#fff}.site-logo__text{font-size:1.3rem;font-weight:600;letter-spacing:-0.045em;line-height:1}.site-logo__dot{color:#d2186f;animation:logo-dot 1.5s infinite}.site-nav{display:flex;align-items:center;gap:clamp(18px, 2.4vw, 34px)}.site-nav__link{display:inline-flex;align-items:center;min-height:52px;padding:0;color:rgba(255,255,255,0.72);font-size:0.92rem;font-weight:500;letter-spacing:0.01em;line-height:1;transition:color 280ms cubic-bezier(0.22, 1, 0.36, 1)}@media (hover: hover) and (pointer: fine){.site-nav__link:hover{color:#fff}}.site-nav__link_active{color:#fff}.burger{display:none;width:36px;height:36px;padding:10px 9px;border:1px solid rgba(255,255,255,0.26);border-radius:50%;flex-direction:column;justify-content:space-between}.burger__line{display:block;width:100%;height:1.5px;border-radius:2px;background:#fff;transition:transform 280ms cubic-bezier(0.22, 1, 0.36, 1),opacity 280ms cubic-bezier(0.22, 1, 0.36, 1)}.burger[aria-expanded="true"] .burger__line:nth-child(1){transform:translateY(6px) rotate(45deg)}.burger[aria-expanded="true"] .burger__line:nth-child(2){opacity:0}.burger[aria-expanded="true"] .burger__line:nth-child(3){transform:translateY(-6px) rotate(-45deg)}.mobile-nav{position:absolute;top:100%;left:0;right:0;z-index:95;display:flex;flex-direction:column;justify-content:space-between;gap:32px;height:calc(100vh - 52px);padding:30px clamp(22px, 4vw, 40px) 36px;background:#000;overflow-y:auto}.mobile-nav__list{display:grid}.mobile-nav__link{display:grid;grid-template-columns:30px 1fr auto;align-items:center;gap:12px;padding-block:18px;border-bottom:1px solid rgba(255,255,255,0.12);color:rgba(255,255,255,0.58);font-size:1.6rem;font-weight:500;letter-spacing:-0.035em;transition:color 280ms cubic-bezier(0.22, 1, 0.36, 1)}@media (hover: hover) and (pointer: fine){.mobile-nav__link:hover{color:#fff}}.mobile-nav__link_active{color:#fff}.mobile-nav__link_active .mobile-nav__index{color:#d2186f}.mobile-nav__index{color:rgba(255,255,255,0.35);font-size:0.64rem;font-weight:500}.mobile-nav__icon{color:rgba(255,255,255,0.45)}.mobile-nav__footer{display:grid;gap:14px;padding-top:24px;border-top:1px solid rgba(255,255,255,0.12)}.mobile-nav__mail{width:fit-content;color:#fff;font-size:1rem;font-weight:500}.mobile-nav__socials{display:flex;flex-wrap:wrap;gap:16px}.mobile-nav__social{color:rgba(255,255,255,0.5);font-size:0.76rem;transition:color 280ms cubic-bezier(0.22, 1, 0.36, 1)}@media (hover: hover) and (pointer: fine){.mobile-nav__social:hover{color:#fff}}body.nav-open{overflow:hidden}@media (max-width: 980px){.site-nav,.site-header__cta{display:none}.burger{display:flex}}@media (max-width: 620px){.site-header__inner{min-height:48px}.mobile-nav{height:calc(100vh - 48px);padding-top:20px}.mobile-nav__link{font-size:1.42rem}.site-logo__text{font-size:1.05rem}}.site-footer{margin-top:auto;padding-top:clamp(54px, 7vw, 86px);background:#000;color:#fff}.site-footer__inner{display:grid;grid-template-columns:minmax(260px, 1.7fr) repeat(3, minmax(150px, 1fr));gap:clamp(30px, 4vw, 60px);padding-bottom:52px;border-bottom:1px solid rgba(255,255,255,0.12)}.site-footer__brand{display:grid;align-content:start;gap:18px;max-width:370px}.site-footer__logo{width:fit-content;color:#fff;font-size:clamp(1.7rem, 2.8vw, 2.3rem);font-weight:600;letter-spacing:-0.055em;line-height:1}.site-footer__dot{color:#d2186f;animation:logo-dot 1.5s infinite}.site-footer__lead{color:rgba(255,255,255,0.56);font-size:0.9rem;line-height:1.55}.site-footer__mail{display:inline-flex;align-items:center;gap:8px;width:fit-content;color:#fff;font-size:0.9rem;font-weight:500;transition:color 280ms cubic-bezier(0.22, 1, 0.36, 1)}@media (hover: hover) and (pointer: fine){.site-footer__mail:hover{color:#d2186f}}.site-footer__mail-icon{color:#d2186f}.site-footer__column{display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding-top:5px}.site-footer__title{margin-bottom:6px;color:rgba(255,255,255,0.4);font-size:0.7rem;font-weight:500;letter-spacing:0}.site-footer__link{color:rgba(255,255,255,0.68);font-size:0.84rem;line-height:1.5;transition:color 280ms cubic-bezier(0.22, 1, 0.36, 1)}@media (hover: hover) and (pointer: fine){.site-footer__link:hover{color:#fff}}.site-footer__link_external{display:inline-flex;align-items:center;gap:4px}.site-footer__link-icon{opacity:0;transform:translate(-2px, 2px);transition:opacity 280ms cubic-bezier(0.22, 1, 0.36, 1),transform 280ms cubic-bezier(0.22, 1, 0.36, 1)}@media (hover: hover) and (pointer: fine){.site-footer__link_external:hover .site-footer__link-icon{opacity:1;transform:translate(0, 0)}}.site-footer__bottom{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 24px;padding-block:20px 24px;color:rgba(255,255,255,0.4);font-size:0.72rem}@media (max-width: 820px){.site-footer__inner{grid-template-columns:repeat(2, minmax(0, 1fr))}.site-footer__brand{grid-column:1 / -1;max-width:none}}@media (max-width: 620px){.site-footer__inner{grid-template-columns:1fr;gap:30px}.site-footer__bottom{flex-direction:column;align-items:flex-start}}.breadcrumbs{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:6px;margin-bottom:clamp(22px, 3vw, 34px);color:#86868b;font-size:0.75rem;font-weight:400}.breadcrumbs_light{color:rgba(255,255,255,0.5)}.breadcrumbs_light .breadcrumbs__current{color:#fff}@media (hover: hover) and (pointer: fine){.breadcrumbs_light .breadcrumbs__link:hover{color:#fff}}.breadcrumbs__link{color:#86868b;transition:color 280ms cubic-bezier(0.22, 1, 0.36, 1)}@media (hover: hover) and (pointer: fine){.breadcrumbs__link:hover{color:#1d1d1f}}.breadcrumbs__current{max-width:640px;overflow:hidden;color:#1d1d1f;text-overflow:ellipsis;white-space:nowrap}.breadcrumbs__separator{display:inline-flex;color:#a1a1a6}.breadcrumbs__icon{width:12px;height:12px}.category-hero .breadcrumbs,.article .breadcrumbs,.project-hero .breadcrumbs{justify-content:flex-start}.article-grid{display:grid;grid-template-columns:repeat(3, minmax(0, 1fr));gap:clamp(20px, 2.6vw, 30px)}.article-card{position:relative;display:flex;flex-direction:column;min-width:0;overflow:hidden;border-radius:26px;background:#fff;box-shadow:0 4px 18px rgba(0,0,0,0.06);transition:transform 280ms cubic-bezier(0.22, 1, 0.36, 1),box-shadow 280ms cubic-bezier(0.22, 1, 0.36, 1)}@media (hover: hover) and (pointer: fine){.article-card:hover{transform:translateY(-4px);box-shadow:0 14px 40px rgba(0,0,0,0.09)}.article-card:hover .article-card__image{transform:scale(1.04)}.article-card:hover .article-card__arrow{background:#d2186f;color:#fff}}.article-card__media{position:relative;aspect-ratio:16 / 10;overflow:hidden;background:#f5f5f7}.article-card__image{width:100%;height:100%;object-fit:cover;transition:transform 700ms cubic-bezier(0.22, 1, 0.36, 1)}.article-card__arrow{position:absolute;top:14px;right:14px;display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,0.92);color:#1d1d1f;box-shadow:0 2px 10px rgba(0,0,0,0.12);transition:background 280ms cubic-bezier(0.22, 1, 0.36, 1),color 280ms cubic-bezier(0.22, 1, 0.36, 1)}.article-card__body{display:flex;flex:1;flex-direction:column;gap:10px;padding:22px 24px 26px}.article-card__topline{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:0.72rem;font-weight:400}.article-card__category{overflow:hidden;color:#d2186f;font-weight:500;text-overflow:ellipsis;white-space:nowrap}.article-card__date{color:#86868b;white-space:nowrap}.article-card__title{font-size:clamp(1.14rem, 1.5vw, 1.32rem);font-weight:600;line-height:1.28;letter-spacing:-0.03em;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.article-card__excerpt{color:#86868b;font-size:0.9rem;line-height:1.5;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.article-card__meta{display:flex;gap:14px;margin-top:auto;padding-top:8px;color:#86868b;font-size:0.72rem}.article-card__meta-item{display:inline-flex;align-items:center;gap:5px}.article-card__meta-icon{color:#d2186f}.article-card_featured{box-shadow:0 14px 40px rgba(0,0,0,0.09);border-radius:36px}.article-card_featured .article-card__media{aspect-ratio:16 / 8.6}.article-card_featured .article-card__body{gap:14px;padding:clamp(24px, 3vw, 36px)}.article-card_featured .article-card__title{font-size:clamp(1.8rem, 3.1vw, 2.75rem);line-height:1.12;letter-spacing:-0.045em;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.article-card_featured .article-card__excerpt{max-width:64ch;font-size:1rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.article-card_compact{display:grid;grid-template-columns:132px minmax(0, 1fr);border-radius:18px;box-shadow:0 4px 18px rgba(0,0,0,0.06)}.article-card_compact .article-card__media{height:100%;aspect-ratio:auto}.article-card_compact .article-card__arrow{top:9px;right:9px;width:28px;height:28px}.article-card_compact .article-card__body{gap:7px;padding:15px 17px}.article-card_compact .article-card__topline{font-size:0.64rem}.article-card_compact .article-card__date,.article-card_compact .article-card__excerpt,.article-card_compact .article-card__meta{display:none}.article-card_compact .article-card__title{font-size:0.94rem;line-height:1.32;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.library-featured{display:grid;grid-template-columns:minmax(0, 1.16fr) minmax(300px, 0.84fr);gap:clamp(20px, 2.8vw, 30px);align-items:stretch}.library-featured__list{display:grid;grid-template-rows:repeat(4, minmax(0, 1fr));gap:12px}.category-grid{display:grid;grid-template-columns:repeat(3, minmax(0, 1fr));gap:clamp(18px, 2.2vw, 26px)}.category-grid_wide{grid-template-columns:repeat(3, minmax(0, 1fr))}.category-card{display:flex;flex-direction:column;min-width:0;overflow:hidden;border-radius:26px;background:#fff;box-shadow:0 4px 18px rgba(0,0,0,0.06);transition:transform 280ms cubic-bezier(0.22, 1, 0.36, 1),box-shadow 280ms cubic-bezier(0.22, 1, 0.36, 1)}@media (hover: hover) and (pointer: fine){.category-card:hover{transform:translateY(-4px);box-shadow:0 14px 40px rgba(0,0,0,0.09)}.category-card:hover .category-card__image{transform:scale(1.04)}.category-card:hover .category-card__arrow{color:#d2186f;transform:translate(2px, -2px)}}.category-card__media{position:relative;aspect-ratio:16 / 9;overflow:hidden;background:#f5f5f7}.category-card__image{width:100%;height:100%;object-fit:cover;transition:transform 700ms cubic-bezier(0.22, 1, 0.36, 1)}.category-card__index{position:absolute;top:14px;left:14px;display:grid;place-items:center;min-width:38px;height:28px;padding-inline:9px;border-radius:999px;background:rgba(0,0,0,0.72);color:#fff;font-size:0.68rem;font-weight:500;backdrop-filter:blur(8px)}.category-card__body{display:flex;flex:1;flex-direction:column;gap:8px;padding:21px 23px 24px}.category-card__head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.category-card__title{font-size:clamp(1.1rem, 1.5vw, 1.28rem);font-weight:600;line-height:1.22;letter-spacing:-0.03em}.category-card__arrow{color:#86868b;transition:color 280ms cubic-bezier(0.22, 1, 0.36, 1),transform 280ms cubic-bezier(0.22, 1, 0.36, 1)}.category-card__description{color:#86868b;font-size:0.86rem;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.category-card__count{margin-top:auto;padding-top:8px;color:#d2186f;font-size:0.75rem;font-weight:500}@media (max-width: 1180px){.article-grid,.category-grid,.category-grid_wide{grid-template-columns:repeat(2, minmax(0, 1fr))}.library-featured{grid-template-columns:1fr}.library-featured__list{grid-template-columns:repeat(2, minmax(0, 1fr));grid-template-rows:none}}@media (max-width: 620px){.article-grid,.category-grid,.category-grid_wide,.library-featured__list{grid-template-columns:1fr}.article-card{border-radius:18px}.article-card_compact{grid-template-columns:108px minmax(0, 1fr)}.article-card_compact .article-card__title{font-size:0.86rem}.article-card_featured{border-radius:26px}.article-card_featured .article-card__media{aspect-ratio:16 / 10}}.pagination{display:grid;gap:16px;margin-top:clamp(36px, 5vw, 60px)}.pagination__summary{color:#86868b;font-size:0.8rem;text-align:center}.pagination__nav{display:flex;align-items:center;justify-content:center;gap:8px}.pagination__button{display:inline-flex;align-items:center;gap:6px;min-height:38px;padding:8px 16px;border-radius:999px;background:#f5f5f7;color:#1d1d1f;font-size:0.8rem;font-weight:500;transition:background 280ms cubic-bezier(0.22, 1, 0.36, 1),color 280ms cubic-bezier(0.22, 1, 0.36, 1)}@media (hover: hover) and (pointer: fine){.pagination__button:hover{background:#e8e8ed}}.pagination__button_disabled{color:#a1a1a6;pointer-events:none}.pagination__icon{width:15px;height:15px}.pagination__pages{display:flex;align-items:center;gap:4px}.pagination__page{display:grid;place-items:center;min-width:38px;height:38px;padding-inline:6px;border-radius:50%;color:#1d1d1f;font-size:0.8rem;font-weight:500;transition:background 280ms cubic-bezier(0.22, 1, 0.36, 1),color 280ms cubic-bezier(0.22, 1, 0.36, 1)}@media (hover: hover) and (pointer: fine){.pagination__page:hover{background:#f5f5f7}}.pagination__page_active{background:#1d1d1f;color:#fff;pointer-events:none}@media (max-width: 620px){.pagination__nav{flex-wrap:wrap}.pagination__pages{order:-1;width:100%;justify-content:center}.pagination__button{flex:1;justify-content:center}}.empty-state{display:grid;justify-items:center;gap:12px;padding:clamp(44px, 7vw, 82px) 28px;border-radius:36px;background:#f5f5f7;text-align:center}.empty-state_flat{justify-items:start;padding-inline:0;background:transparent;text-align:left}.empty-state__icon{display:grid;place-items:center;width:64px;height:64px;margin-bottom:6px;border-radius:50%;background:#fff;color:#d2186f;box-shadow:0 4px 18px rgba(0,0,0,0.06)}.empty-state__svg{width:28px;height:28px}.empty-state__title{font-size:clamp(1.5rem, 2.6vw, 2.15rem);font-weight:600;letter-spacing:-0.04em;line-height:1.1}.empty-state__text{max-width:52ch;color:#86868b;font-size:0.94rem;line-height:1.55}.empty-state__action{margin-top:10px}.empty-state__actions{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:14px}.sidebar-card{display:grid;gap:14px;padding:24px;border-radius:26px;background:#f5f5f7}.sidebar-card__label{color:#86868b;font-size:0.72rem;font-weight:600}.sidebar-category{display:grid;gap:12px}.sidebar-category__image-wrap{display:block;aspect-ratio:16 / 9;overflow:hidden;border-radius:18px;background:#e8e8ed}.sidebar-category__image{width:100%;height:100%;object-fit:cover;transition:transform 280ms cubic-bezier(0.22, 1, 0.36, 1)}@media (hover: hover) and (pointer: fine){.sidebar-category:hover .sidebar-category__image{transform:scale(1.04)}.sidebar-category:hover .sidebar-category__icon{transform:translateX(3px)}}.sidebar-category__body{display:grid;gap:5px}.sidebar-category__title{font-size:1.08rem;font-weight:600;line-height:1.24;letter-spacing:-0.03em}.sidebar-category__link{display:inline-flex;align-items:center;gap:5px;color:#d2186f;font-size:0.78rem;font-weight:500}.sidebar-category__icon{transition:transform 280ms cubic-bezier(0.22, 1, 0.36, 1)}.sidebar-links{display:grid}.sidebar-link{display:grid;gap:3px;padding:11px 0;border-bottom:1px solid #e8e8ed;transition:color 280ms cubic-bezier(0.22, 1, 0.36, 1)}.sidebar-link:first-child{padding-top:0}.sidebar-link:last-child{padding-bottom:0;border-bottom:0}@media (hover: hover) and (pointer: fine){.sidebar-link:hover{color:#d2186f}}.sidebar-link__title{font-size:0.88rem;font-weight:500;line-height:1.4}.sidebar-link__meta{color:#86868b;font-size:0.7rem}.sidebar-back{display:inline-flex;align-items:center;gap:6px;width:fit-content;padding:9px 15px;border-radius:999px;background:#f5f5f7;color:#1d1d1f;font-size:0.8rem;font-weight:500;transition:background 280ms cubic-bezier(0.22, 1, 0.36, 1),color 280ms cubic-bezier(0.22, 1, 0.36, 1)}@media (hover: hover) and (pointer: fine){.sidebar-back:hover{background:#e8e8ed}}.sidebar-back__icon{color:#d2186f}.prose{color:#1d1d1f;font-size:clamp(1.02rem, 1.2vw, 1.14rem);line-height:1.68;overflow-wrap:break-word}.prose>*:first-child{margin-top:0}.prose>*:last-child{margin-bottom:0}.prose h1,.prose h2,.prose h3,.prose h4,.prose h5,.prose h6{color:#1d1d1f;font-weight:600;letter-spacing:-0.035em;line-height:1.15;scroll-margin-top:90px}.prose h1{margin:2em 0 0.65em;font-size:clamp(1.9rem, 3vw, 2.7rem)}.prose h2{margin:2.1em 0 0.65em;font-size:clamp(1.55rem, 2.4vw, 2.1rem)}.prose h3{margin:1.8em 0 0.55em;font-size:clamp(1.25rem, 1.8vw, 1.55rem)}.prose h4{margin:1.5em 0 0.5em;font-size:1.15rem}.prose h5,.prose h6{margin:1.35em 0 0.5em;font-size:1rem}.prose p{margin:0 0 1.15em}.prose a{color:#d2186f;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;transition:color 280ms cubic-bezier(0.22, 1, 0.36, 1)}@media (hover: hover) and (pointer: fine){.prose a:hover{color:#a90f55}}.prose strong,.prose b{color:#1d1d1f;font-weight:600}.prose em,.prose i{font-style:italic}.prose ul,.prose ol{margin:0 0 1.3em;padding-left:1.4em}.prose ul{list-style:disc}.prose ol{list-style:decimal}.prose li{margin-bottom:0.45em;padding-left:0.2em}.prose li::marker{color:#d2186f}.prose blockquote{margin:1.8em 0;padding:24px 26px;border-radius:18px;background:#f5f5f7;color:#1d1d1f;font-size:1.04em;line-height:1.55}.prose blockquote p:last-child{margin-bottom:0}.prose code{padding:0.16em 0.42em;border-radius:6px;background:#f5f5f7;font-family:"Ubuntu Mono","SFMono-Regular","Cascadia Code","Liberation Mono",Menlo,Consolas,monospace;font-size:0.86em;line-height:1.4;overflow-wrap:anywhere}.prose pre{margin:1.7em 0;padding:24px;border-radius:18px;background:#1d1d1f;color:#f5f5f7;overflow-x:auto;line-height:1.6;tab-size:2}.prose pre code{padding:0;background:transparent;color:inherit;font-size:0.84rem;overflow-wrap:normal;white-space:pre}.prose img,.prose video,.prose iframe{max-width:100%;height:auto;margin:1.5em 0;border-radius:18px}.prose iframe{width:100%;aspect-ratio:16 / 9;border:0}.prose figure{margin:1.8em 0}.prose figure img{margin-bottom:8px}.prose figure figcaption{color:#86868b;font-size:0.82rem;line-height:1.5}.prose hr{margin:2.4em 0;border:0;border-top:1px solid #e8e8ed}.prose table{width:100%;margin:1.8em 0;border-collapse:collapse;font-size:0.9rem;line-height:1.5}.prose table th,.prose table td{padding:11px 14px;border-bottom:1px solid #e8e8ed;text-align:left;vertical-align:top}.prose table th{background:#f5f5f7;color:#1d1d1f;font-weight:600}.prose__embed-note{padding:16px 20px;border-radius:18px;background:#f5f5f7;color:#86868b;font-size:0.92rem}.home-hero{position:relative;overflow:hidden;padding-block:clamp(58px, 8vw, 104px) clamp(38px, 5vw, 58px);background:radial-gradient(ellipse at 50% -12%, rgba(210,24,111,0.09), transparent 54%),#fff;text-align:center}.home-hero__inner{display:grid;grid-template-columns:1fr;justify-items:center;gap:clamp(38px, 5.5vw, 64px)}.home-hero__content{display:grid;justify-items:center;max-width:980px;animation:home-reveal 700ms cubic-bezier(0.22, 1, 0.36, 1) both}.home-hero__title{margin-top:0;font-size:clamp(3rem, 7.6vw, 6.5rem);font-weight:600;line-height:1.01;letter-spacing:-0.06em}.home-hero__lead{max-width:680px;margin-top:24px;color:#86868b;font-size:clamp(1.04rem, 1.6vw, 1.3rem);line-height:1.45}.home-hero__actions{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-top:30px}.home-hero__visual{position:relative;width:100%;max-width:1060px;animation:home-reveal 850ms 90ms cubic-bezier(0.22, 1, 0.36, 1) both}.home-hero__frame{position:relative;z-index:1;aspect-ratio:16 / 8.6;overflow:hidden;border-radius:36px;background:#f5f5f7;box-shadow:0 30px 80px rgba(0,0,0,0.14)}.home-hero__image{width:100%;height:100%;object-fit:cover;transition:transform 900ms cubic-bezier(0.22, 1, 0.36, 1)}.home-hero__badge{position:absolute;left:clamp(16px, 3vw, 30px);bottom:clamp(16px, 3vw, 30px);z-index:2;display:grid;gap:2px;min-width:170px;padding:16px 20px;border-radius:18px;background:rgba(255,255,255,0.9);color:#1d1d1f;box-shadow:0 14px 40px rgba(0,0,0,0.09);backdrop-filter:blur(16px);text-align:left}.home-hero__badge-value{color:#d2186f;font-size:1.8rem;font-weight:600;letter-spacing:-0.055em;line-height:1}.home-hero__badge-text{color:#86868b;font-size:0.72rem;line-height:1.3}.home-hero__accent{position:absolute;top:-14%;right:-6%;z-index:0;width:46%;height:72%;border-radius:50%;background:#d2186f;opacity:0.18;filter:blur(70px);pointer-events:none}@keyframes home-reveal{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.home-sections{display:grid;grid-template-columns:repeat(3, minmax(0, 1fr));gap:18px;margin-top:clamp(30px, 4vw, 44px)}.home-section{display:grid;grid-template-columns:30px minmax(0, 1fr) 32px;gap:14px;align-items:start;padding:clamp(24px, 3vw, 32px);border-radius:26px;background:#f5f5f7;text-align:left;transition:background 280ms cubic-bezier(0.22, 1, 0.36, 1),box-shadow 280ms cubic-bezier(0.22, 1, 0.36, 1),transform 280ms cubic-bezier(0.22, 1, 0.36, 1)}@media (hover: hover) and (pointer: fine){.home-section:hover{background:#fff;box-shadow:0 14px 40px rgba(0,0,0,0.09);transform:translateY(-3px)}.home-section:hover .home-section__arrow{background:#d2186f;color:#fff}}.home-section__index{padding-top:4px;color:#d2186f;font-size:0.72rem;font-weight:500}.home-section__body{display:grid;gap:7px}.home-section__title{font-size:clamp(1.22rem, 1.8vw, 1.48rem);font-weight:600;letter-spacing:-0.035em;line-height:1.16}.home-section__text{color:#86868b;font-size:0.88rem;line-height:1.48}.home-section__arrow{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#fff;color:#1d1d1f;box-shadow:0 4px 18px rgba(0,0,0,0.06);transition:background 280ms cubic-bezier(0.22, 1, 0.36, 1),color 280ms cubic-bezier(0.22, 1, 0.36, 1)}.home-latest{padding-top:clamp(44px, 6vw, 68px)}.home-cta{padding-bottom:clamp(56px, 8vw, 100px)}.home-cta__inner{display:grid;grid-template-columns:minmax(0, 1.15fr) minmax(280px, 0.85fr);gap:clamp(30px, 5vw, 70px);align-items:end;padding:clamp(40px, 6vw, 74px);border-radius:36px;background:#000;color:#fff}.home-cta__title{margin-top:0;font-size:clamp(2.2rem, 4.8vw, 4.4rem);font-weight:600;line-height:1.03;letter-spacing:-0.055em}.home-cta__aside{display:grid;justify-items:start;gap:22px;padding-bottom:4px}.home-cta__text{color:rgba(255,255,255,0.6);font-size:0.98rem;line-height:1.5}@media (max-width: 980px){.home-hero__frame{aspect-ratio:16 / 10}.home-sections{grid-template-columns:1fr}.home-cta__inner{grid-template-columns:1fr;align-items:start}}@media (max-width: 620px){.home-hero__title{font-size:clamp(2.65rem, 12vw, 3.8rem)}.home-hero__lead{font-size:1rem}.home-hero__frame{aspect-ratio:4 / 3.2;border-radius:26px}.home-hero__badge{left:12px;bottom:12px;min-width:145px;padding:13px 16px}.home-hero__accent{right:-20%;width:70%}.home-section{padding:22px}.home-cta__inner{padding:32px 24px;border-radius:26px}}.library-hero{padding-block:clamp(48px, 7vw, 86px) clamp(38px, 5vw, 56px);background:radial-gradient(ellipse at 50% -18%, rgba(210,24,111,0.07), transparent 56%),#fff}.library-hero__inner{display:grid}.library-hero__top{display:grid;justify-items:center;gap:20px;text-align:center}.library-hero__title-wrap{display:grid;justify-items:center;gap:12px}.library-hero__title{font-size:clamp(3.2rem, 7.4vw, 6.2rem);font-weight:600;line-height:0.98;letter-spacing:-0.06em}.library-hero__lead{max-width:680px;color:#86868b;font-size:clamp(1.04rem, 1.5vw, 1.24rem);line-height:1.46}.library-latest{padding-top:clamp(44px, 6vw, 68px)}.page-hero{padding-block:clamp(48px, 6vw, 78px) clamp(38px, 5vw, 54px);background:#fff}.page-hero_compact{padding-bottom:clamp(30px, 4vw, 44px)}.page-hero__top{display:grid;justify-items:center;gap:18px;text-align:center}.page-hero__title-wrap{display:grid;justify-items:center;gap:10px}.page-hero__title{font-size:clamp(2.8rem, 6.2vw, 5.4rem);font-weight:600;line-height:0.98;letter-spacing:-0.055em}.page-hero__title_small{font-size:clamp(2.1rem, 4.4vw, 3.6rem);line-height:1.05;overflow-wrap:anywhere}.page-hero__aside{display:grid;justify-items:center;gap:12px}.page-hero__lead{max-width:680px;color:#86868b;font-size:clamp(1.02rem, 1.4vw, 1.16rem);line-height:1.48}.page-hero__count{color:#d2186f;font-size:0.82rem;font-weight:500}.page-hero__path{font-family:"Ubuntu Mono","SFMono-Regular","Cascadia Code","Liberation Mono",Menlo,Consolas,monospace;font-variant-ligatures:none;margin-top:4px;color:#86868b;font-size:0.8rem;line-height:1.5;overflow-wrap:anywhere}.page-hero .filter-row{margin-top:clamp(24px, 4vw, 36px)}.category-hero{padding-block:clamp(24px, 4vw, 36px) 0}.category-hero__inner{display:grid;grid-template-columns:minmax(0, 1.3fr) minmax(280px, 0.7fr);align-items:center;gap:clamp(28px, 5vw, 58px);padding:clamp(28px, 5vw, 56px);border-radius:36px;background:#f5f5f7}.category-hero__content{display:grid;justify-items:start}.category-hero__title{margin-top:12px;font-size:clamp(2.4rem, 4.4vw, 4.2rem);font-weight:600;line-height:1.02;letter-spacing:-0.055em;overflow-wrap:break-word}.category-hero__lead{max-width:54ch;margin-top:18px;color:#86868b;font-size:1rem;line-height:1.5}.category-hero__meta{display:flex;flex-wrap:wrap;align-items:center;gap:14px 24px;margin-top:24px}.category-hero__count{color:#d2186f;font-size:0.82rem;font-weight:500}.category-hero__media{position:relative;aspect-ratio:16 / 11;overflow:hidden;border-radius:26px;background:#fff;box-shadow:0 14px 40px rgba(0,0,0,0.09)}.category-hero__image{width:100%;height:100%;object-fit:cover}.category-hero__badge{position:absolute;left:16px;bottom:16px;display:grid;place-items:center;min-width:48px;height:32px;padding-inline:10px;border-radius:999px;background:rgba(0,0,0,0.7);color:#fff;font-size:0.72rem;font-weight:500;backdrop-filter:blur(8px)}@media (max-width: 980px){.category-hero__inner{grid-template-columns:1fr}.category-hero__media{max-width:620px}}@media (max-width: 620px){.library-hero__title,.page-hero__title{font-size:clamp(2.6rem, 12vw, 4rem)}.category-hero__inner{padding:24px 20px;border-radius:26px}.category-hero__title{font-size:clamp(1.9rem, 8.2vw, 2.15rem);hyphens:none}}.article{padding-block:clamp(30px, 4vw, 48px) clamp(64px, 9vw, 112px)}.article__container{display:grid}.article .breadcrumbs{width:100%;max-width:1000px;margin-inline:auto}.article__header{max-width:860px;margin:clamp(10px, 2vw, 20px) auto 0}.article__topline{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;color:#86868b;font-size:0.8rem}.article__category{display:inline-flex;align-items:center;min-height:28px;padding:4px 11px;border-radius:999px;background:rgba(210,24,111,0.09);color:#d2186f;font-size:0.8rem;font-weight:500;transition:background 280ms cubic-bezier(0.22, 1, 0.36, 1),color 280ms cubic-bezier(0.22, 1, 0.36, 1)}@media (hover: hover) and (pointer: fine){.article__category:hover{background:#d2186f;color:#fff}}.article__topline-item{color:#86868b}.article__title{margin-top:18px;font-size:clamp(2.5rem, 5.2vw, 4.5rem);font-weight:600;line-height:1.04;letter-spacing:-0.055em;overflow-wrap:anywhere}.article__lead{max-width:70ch;margin-top:20px;color:#86868b;font-size:clamp(1.06rem, 1.4vw, 1.26rem);line-height:1.46}.article__byline{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px;margin-top:26px;padding-top:18px;border-top:1px solid #e8e8ed}.article__author{display:inline-flex;align-items:center;gap:6px;font-size:0.82rem;font-weight:500}.article__author-icon{color:#d2186f}.article__tags{display:flex;flex-wrap:wrap;gap:6px}.article__cover{max-width:1000px;max-height:620px;margin:clamp(30px, 4vw, 44px) auto 0;overflow:hidden;border-radius:36px;background:#f5f5f7;box-shadow:0 14px 40px rgba(0,0,0,0.09)}.article__cover-image{width:100%;max-height:620px;object-fit:cover}.article__layout{display:grid;grid-template-columns:minmax(0, 780px);justify-content:center;gap:0;margin-top:clamp(36px, 5vw, 54px)}.article__content{min-width:0}.article__sidebar{display:grid;grid-template-columns:minmax(0, 1fr);align-items:start;gap:22px;margin-top:clamp(44px, 6vw, 66px)}.article__sidebar .sidebar-back{justify-self:start}.article_document .article__header{max-width:820px}.article_document .article__layout{grid-template-columns:minmax(0, 780px)}.article-category{display:grid;grid-template-columns:minmax(0, 0.88fr) minmax(0, 1.12fr);overflow:hidden;border-radius:26px;background:#f5f5f7}.article-category__media{min-height:100%;background:#e8e8ed}.article-category__image{width:100%;height:100%;object-fit:cover}.article-category__body{display:grid;align-content:center;gap:10px;padding:clamp(24px, 3.4vw, 34px)}.article-category__label{color:#d2186f;font-size:0.78rem;font-weight:500}.article-category__title{font-size:clamp(1.5rem, 2.4vw, 2rem);font-weight:600;line-height:1.14;letter-spacing:-0.04em}.article-category__title a{transition:color 280ms cubic-bezier(0.22, 1, 0.36, 1)}@media (hover: hover) and (pointer: fine){.article-category__title a:hover{color:#d2186f}}.article-category__description{max-width:58ch;color:#86868b;font-size:0.94rem;line-height:1.55}.article-category__footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;margin-top:6px;padding-top:14px;border-top:1px solid #e8e8ed}.article-category__count{color:#d2186f;font-size:0.8rem;font-weight:500}.article-related{display:grid;gap:16px}.article-related__head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:10px 16px}.article-related__title{font-size:clamp(1.28rem, 2vw, 1.55rem);font-weight:600;letter-spacing:-0.035em;line-height:1.2}.article-related__grid{display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));gap:12px}.article-related__item{display:grid;grid-template-columns:92px minmax(0, 1fr);gap:12px;align-items:center;padding:10px;border-radius:12px;background:#f5f5f7;transition:background 280ms cubic-bezier(0.22, 1, 0.36, 1),box-shadow 280ms cubic-bezier(0.22, 1, 0.36, 1),transform 280ms cubic-bezier(0.22, 1, 0.36, 1)}@media (hover: hover) and (pointer: fine){.article-related__item:hover{background:#fff;box-shadow:0 4px 18px rgba(0,0,0,0.06);transform:translateY(-2px)}}.article-related__media{display:block;aspect-ratio:1 / 1;overflow:hidden;border-radius:9px;background:#e8e8ed}.article-related__image{width:100%;height:100%;object-fit:cover}.article-related__body{display:grid;gap:4px;min-width:0}.article-related__date{color:#86868b;font-size:0.7rem}.article-related__name{font-size:0.88rem;font-weight:500;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}@media (max-width: 620px){.article__title{font-size:clamp(2rem, 10vw, 3rem)}.article__cover{border-radius:26px}.article-category{grid-template-columns:minmax(0, 1fr)}.article-category__media{aspect-ratio:16 / 9}.article-related__grid{grid-template-columns:minmax(0, 1fr)}}.docs-list{display:grid;gap:14px}.docs-row{display:grid;grid-template-columns:52px minmax(0, 1fr) 36px;gap:clamp(12px, 2.5vw, 24px);padding:clamp(22px, 3vw, 30px);border-radius:26px;background:#f5f5f7;transition:background 280ms cubic-bezier(0.22, 1, 0.36, 1),box-shadow 280ms cubic-bezier(0.22, 1, 0.36, 1),transform 280ms cubic-bezier(0.22, 1, 0.36, 1)}@media (hover: hover) and (pointer: fine){.docs-row:hover{background:#fff;box-shadow:0 14px 40px rgba(0,0,0,0.09);transform:translateY(-2px)}.docs-row:hover .docs-row__icon{color:#d2186f;transform:translate(2px, -2px)}}.docs-row__index{padding-top:5px;color:#d2186f;font-size:0.75rem;font-weight:500}.docs-row__body{display:grid;gap:5px;min-width:0}.docs-row__title{font-size:clamp(1.25rem, 2.2vw, 1.65rem);font-weight:600;line-height:1.2;letter-spacing:-0.035em}.docs-row__excerpt{max-width:74ch;color:#86868b;font-size:0.9rem;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.docs-row__meta{color:#86868b;font-size:0.74rem}.docs-row__icon{color:#86868b;transition:color 280ms cubic-bezier(0.22, 1, 0.36, 1),transform 280ms cubic-bezier(0.22, 1, 0.36, 1)}@media (max-width: 620px){.docs-row{grid-template-columns:30px minmax(0, 1fr);border-radius:18px}.docs-row__arrow{display:none}}.code-hero .page-hero__title{font-size:clamp(3.4rem, 7vw, 6rem)}.project-search{position:relative;display:flex;align-items:center;gap:4px;width:100%;min-height:58px;margin:34px auto 0;padding:6px 6px 6px 20px;border-radius:999px;background:#f5f5f7;transition:box-shadow 280ms cubic-bezier(0.22, 1, 0.36, 1),background 280ms cubic-bezier(0.22, 1, 0.36, 1)}.project-search:focus-within{background:#fff;box-shadow:0 0 0 4px rgba(210,24,111,0.15),0 4px 18px rgba(0,0,0,0.06)}.project-search__icon{display:grid;place-items:center;color:#86868b}.project-search__input{flex:1;min-width:0;height:44px;padding:0 10px;border:0;outline:0;background:transparent;font-size:0.95rem}.project-search__input::placeholder{color:#86868b}.project-search__input::-webkit-search-cancel-button{display:none}.project-search__submit{align-self:stretch;min-height:44px;padding-inline:20px;border-radius:999px;background:#1d1d1f;color:#fff;font-size:0.8rem;font-weight:500;transition:background 280ms cubic-bezier(0.22, 1, 0.36, 1)}@media (hover: hover) and (pointer: fine){.project-search__submit:hover{background:#d2186f}}.project-search__reset{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;color:#86868b;transition:background 280ms cubic-bezier(0.22, 1, 0.36, 1),color 280ms cubic-bezier(0.22, 1, 0.36, 1)}@media (hover: hover) and (pointer: fine){.project-search__reset:hover{background:#fff;color:#1d1d1f}}.project-search__status{margin-top:12px;color:#86868b;font-size:0.78rem;text-align:center}.project-grid{display:grid;grid-template-columns:repeat(auto-fit, minmax(280px, 320px));justify-content:center;gap:clamp(18px, 2.4vw, 26px)}.project-grid__empty{margin-top:24px}.project-card{display:flex;flex-direction:column;min-width:0;overflow:hidden;border-radius:26px;background:#fff;box-shadow:0 4px 18px rgba(0,0,0,0.06);transition:transform 280ms cubic-bezier(0.22, 1, 0.36, 1),box-shadow 280ms cubic-bezier(0.22, 1, 0.36, 1)}@media (hover: hover) and (pointer: fine){.project-card:hover{transform:translateY(-4px);box-shadow:0 14px 40px rgba(0,0,0,0.09)}.project-card:hover .project-card__image{transform:scale(1.04)}.project-card:hover .project-card__arrow{background:#d2186f;color:#fff}}.project-card__media{position:relative;aspect-ratio:16 / 10;overflow:hidden;background:#f5f5f7}.project-card__image{width:100%;height:100%;object-fit:cover;transition:transform 700ms cubic-bezier(0.22, 1, 0.36, 1)}.project-card__index{position:absolute;top:12px;left:12px;display:grid;place-items:center;min-width:34px;height:26px;padding-inline:8px;border-radius:999px;background:rgba(0,0,0,0.7);color:#fff;font-size:0.64rem;font-weight:500;backdrop-filter:blur(8px)}.project-card__arrow{position:absolute;top:12px;right:12px;display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:rgba(255,255,255,0.92);color:#1d1d1f;box-shadow:0 2px 10px rgba(0,0,0,0.12);transition:background 280ms cubic-bezier(0.22, 1, 0.36, 1),color 280ms cubic-bezier(0.22, 1, 0.36, 1)}.project-card__body{display:flex;flex:1;flex-direction:column;gap:8px;padding:19px 21px 22px}.project-card__title{font-size:clamp(1.15rem, 1.5vw, 1.35rem);font-weight:600;line-height:1.2;letter-spacing:-0.03em}.project-card__description{color:#86868b;font-size:0.86rem;line-height:1.48;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.project-card__tech{display:flex;flex-wrap:wrap;gap:5px;margin-top:2px}.project-card__meta{display:flex;flex-wrap:wrap;gap:6px 12px;margin-top:auto;padding-top:8px;color:#86868b;font-size:0.7rem}.project-card__info{display:inline-flex;align-items:center;gap:4px}.project-card__info-icon{color:#d2186f}.project-hero{padding-block:clamp(40px, 5vw, 64px) clamp(28px, 4vw, 44px)}.project-hero__top{display:grid;grid-template-columns:minmax(0, 1.2fr) minmax(260px, 0.8fr);gap:clamp(28px, 5vw, 68px);align-items:start}.project-hero__content{display:grid;justify-items:start;gap:12px}.project-hero__title{font-size:clamp(2.8rem, 6vw, 5rem);font-weight:600;line-height:0.98;letter-spacing:-0.06em;overflow-wrap:anywhere}.project-hero__lead{max-width:64ch;color:#86868b;font-size:1.06rem;line-height:1.5}.project-hero__aside{display:grid;justify-items:start;gap:20px;padding-top:4px}.project-hero .tech-list{margin-top:2px}.project-facts{display:grid;width:100%;padding:6px 18px;border-radius:18px;background:#f5f5f7}.project-facts__item{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px solid #e8e8ed}.project-facts__item:last-child{border-bottom:0}.project-facts__label{color:#86868b;font-size:0.72rem}.project-facts__value{font-family:"Ubuntu Mono","SFMono-Regular","Cascadia Code","Liberation Mono",Menlo,Consolas,monospace;font-variant-ligatures:none;font-size:0.76rem;text-align:right;overflow-wrap:anywhere}.project-facts__value_link a{color:#d2186f;text-decoration:underline;text-underline-offset:2px}@media (hover: hover) and (pointer: fine){.project-facts__value_link a:hover{color:#a90f55}}.project-tabs__list{display:flex;justify-content:center;gap:4px;width:fit-content;margin:0 auto 26px;padding:4px;border-radius:999px;background:#f5f5f7}.project-tabs__button{padding:9px 20px;border-radius:999px;color:#86868b;font-size:0.88rem;font-weight:500;transition:background 280ms cubic-bezier(0.22, 1, 0.36, 1),color 280ms cubic-bezier(0.22, 1, 0.36, 1),box-shadow 280ms cubic-bezier(0.22, 1, 0.36, 1)}@media (hover: hover) and (pointer: fine){.project-tabs__button:hover{color:#1d1d1f}}.project-tabs__button_active{background:#fff;color:#1d1d1f;box-shadow:0 4px 18px rgba(0,0,0,0.06)}.project-tabs__panel{min-width:0}.project-readme{max-width:820px;margin-inline:auto}.project-back{margin-top:28px}.file-list{overflow:hidden;border-radius:18px;background:#f5f5f7}.file-list__head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 18px}.file-list__label{color:#86868b;font-size:0.72rem;font-weight:600}.file-list__count{color:#86868b;font-size:0.68rem}.file-list__row{display:grid;grid-template-columns:24px minmax(0, 1fr) auto 14px;align-items:center;gap:8px;min-height:44px;padding:9px 17px;border-top:1px solid #e8e8ed;transition:background 280ms cubic-bezier(0.22, 1, 0.36, 1)}@media (hover: hover) and (pointer: fine){.file-list__row:hover{background:#fff}.file-list__row:hover .file-list__chevron{color:#d2186f}}.file-list__row_parent{grid-template-columns:24px minmax(0, 1fr);color:#86868b;font-size:0.82rem}.file-list__row_dir .file-list__name{font-weight:600}.file-list__icon{display:inline-flex;color:#d2186f}.file-list__name{min-width:0;font-size:0.84rem;line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-list__meta{color:#86868b;font-size:0.7rem;white-space:nowrap}.file-list__chevron{color:#a1a1a6;transition:color 280ms cubic-bezier(0.22, 1, 0.36, 1)}.code-block{overflow:hidden;border-radius:26px;background:#1d1d1f;color:#f5f5f7}.code-block__head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 20px;border-bottom:1px solid rgba(255,255,255,0.1)}.code-block__name{font-family:"Ubuntu Mono","SFMono-Regular","Cascadia Code","Liberation Mono",Menlo,Consolas,monospace;font-variant-ligatures:none;color:rgba(255,255,255,0.78);font-size:0.78rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.code-block__ext{color:#d2186f;font-size:0.68rem;font-weight:500;text-transform:lowercase}.code-block__pre{margin:0;padding:clamp(18px, 3vw, 28px);overflow:auto;max-height:72vh;line-height:1.6;tab-size:2}.code-block__code{font-family:"Ubuntu Mono","SFMono-Regular","Cascadia Code","Liberation Mono",Menlo,Consolas,monospace;font-variant-ligatures:none;font-size:0.86rem;white-space:pre}.file-preview{padding:clamp(16px, 3vw, 24px);border-radius:26px;background:#f5f5f7}.file-preview__image{max-height:76vh;margin-inline:auto;border-radius:18px}@media (max-width: 980px){.project-hero__top{grid-template-columns:1fr}.project-hero__aside{max-width:420px}}@media (max-width: 620px){.project-search{padding-left:15px}.project-search__input{font-size:0.88rem}.project-search__submit{padding-inline:14px;font-size:0.74rem}.project-grid{grid-template-columns:minmax(0, 1fr)}.project-card{border-radius:18px}}.services-placeholder{display:grid;justify-items:center;gap:18px;padding:clamp(40px, 7vw, 76px) clamp(22px, 5vw, 52px);border-radius:36px;background:#f5f5f7;text-align:center}.services-placeholder__index{color:#a1a1a6;font-size:clamp(2rem, 4vw, 3.2rem);font-weight:600;letter-spacing:-0.06em;line-height:1}.services-placeholder__body{display:grid;justify-items:center;gap:14px;max-width:640px}.services-placeholder__icon{display:grid;place-items:center;width:64px;height:64px;border-radius:50%;background:#fff;color:#d2186f;box-shadow:0 4px 18px rgba(0,0,0,0.06)}.services-placeholder__title{font-size:clamp(1.9rem, 3.8vw, 3.2rem);font-weight:600;line-height:1.05;letter-spacing:-0.045em}.services-placeholder__text{max-width:58ch;color:#86868b;font-size:1rem;line-height:1.5}.services-placeholder__actions{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:10px}.services-placeholder__actions .button_ghost{background:#fff}@media (hover: hover) and (pointer: fine){.services-placeholder__actions .button_ghost:hover{background:#e8e8ed}}@media (max-width: 620px){.services-placeholder__actions{width:100%}}.error-page{display:grid;align-items:center;min-height:62vh;padding-block:clamp(64px, 10vw, 130px);text-align:center}.error-page__inner{display:grid;justify-items:center;gap:8px}.error-page__code{color:#e8e8ed;font-size:clamp(5rem, 14vw, 11rem);font-weight:600;line-height:0.85;letter-spacing:-0.08em}.error-page__content{display:grid;justify-items:center;gap:12px;margin-top:18px}.error-page__title{font-size:clamp(2rem, 4.6vw, 3.8rem);font-weight:600;line-height:1.04;letter-spacing:-0.05em}.error-page__text{max-width:52ch;color:#86868b;font-size:1rem;line-height:1.5}.error-page__actions{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:12px}@media (max-width: 620px){.error-page__code{font-size:clamp(4.5rem, 24vw, 7rem)}}
