.ArticleHeader-module__bRJvDG__header{margin-bottom:var(--s8)}.ArticleHeader-module__bRJvDG__hero{aspect-ratio:21/9;width:100vw;margin-left:calc(50% - 50vw);margin-bottom:var(--s8);max-height:520px;position:relative;overflow:hidden}.ArticleHeader-module__bRJvDG__inner{max-width:var(--prose);padding-top:var(--s8);margin:0 auto}.ArticleHeader-module__bRJvDG__category{font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--accent-strong);margin-bottom:var(--s4);transition:color var(--t);font-size:11px;font-weight:500;text-decoration:none;display:inline-block}.ArticleHeader-module__bRJvDG__category:hover{color:var(--accent-strong-h)}.ArticleHeader-module__bRJvDG__title{font-family:var(--serif);font-size:clamp(1.75rem,4vw,2.75rem);font-weight:var(--serif-weight);letter-spacing:-.02em;color:var(--fg);margin-bottom:var(--s5);line-height:1.15}.ArticleHeader-module__bRJvDG__summary{color:var(--muted);margin-bottom:var(--s5);font-size:19px;line-height:1.65}.ArticleHeader-module__bRJvDG__meta{align-items:center;gap:var(--s2);color:var(--stone);padding-bottom:var(--s6);border-bottom:1px solid var(--border-lt);font-size:14px;display:flex}.ArticleHeader-module__bRJvDG__sep{opacity:.4}@media (max-width:768px){.ArticleHeader-module__bRJvDG__hero{aspect-ratio:16/9;max-height:none;margin-bottom:var(--s6)}.ArticleHeader-module__bRJvDG__inner{padding-top:var(--s6)}}
.ArticleContentSwitcher-module__pX7m1a__wrapper{margin-bottom:var(--s9)}.ArticleContentSwitcher-module__pX7m1a__switchWrap{max-width:var(--prose);margin:0 auto var(--s8);align-items:center;gap:var(--s5);padding-top:var(--s6);display:flex}.ArticleContentSwitcher-module__pX7m1a__switch{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);flex-shrink:0;gap:2px;padding:3px;display:inline-flex}.ArticleContentSwitcher-module__pX7m1a__tab{padding:var(--s2) var(--s5);font-family:var(--sans);border-radius:calc(var(--r-lg) - 3px);color:var(--muted);cursor:pointer;transition:background var(--t), color var(--t);white-space:nowrap;background:0 0;border:none;font-size:13px;font-weight:600}.ArticleContentSwitcher-module__pX7m1a__tab:hover{color:var(--fg)}.ArticleContentSwitcher-module__pX7m1a__tabActive,.ArticleContentSwitcher-module__pX7m1a__tabActive:hover{background:var(--accent-strong);color:var(--white)}.ArticleContentSwitcher-module__pX7m1a__hint{color:var(--stone);font-size:13px;font-style:italic}.ArticleContentSwitcher-module__pX7m1a__contentHidden{display:none}@media (max-width:480px){.ArticleContentSwitcher-module__pX7m1a__switchWrap{align-items:flex-start;gap:var(--s3);flex-direction:column}}
.TableOfContents-module__rHO2UG__toc{max-height:calc(100vh - 120px);padding-left:var(--s5);border-left:2px solid var(--border);overflow-y:auto}.TableOfContents-module__rHO2UG__label{letter-spacing:.1em;text-transform:uppercase;color:var(--stone);margin-bottom:var(--s3);font-size:11px;font-weight:700}.TableOfContents-module__rHO2UG__list{flex-direction:column;gap:2px;list-style:none;display:flex}.TableOfContents-module__rHO2UG__link{color:var(--muted);transition:color var(--t);border-radius:var(--r-sm);padding:4px 0;font-size:13px;line-height:1.5;text-decoration:none;display:block}.TableOfContents-module__rHO2UG__link:hover{color:var(--fg)}.TableOfContents-module__rHO2UG__linkActive{color:var(--accent-strong);font-weight:500}.TableOfContents-module__rHO2UG__itemIndented{padding-left:var(--s3)}
.CaseStudyPage-module__X0N5TW__header{background:var(--darkest);padding:var(--s8) 0 var(--s7);margin-bottom:var(--s8)}.CaseStudyPage-module__X0N5TW__headerInner{max-width:var(--prose);gap:var(--s4);flex-direction:column;display:flex}.CaseStudyPage-module__X0N5TW__headerInner.CaseStudyPage-module__X0N5TW__hasMedia{gap:var(--s7);grid-template-columns:minmax(0,1fr) minmax(0,420px);align-items:center;max-width:none;display:grid}.CaseStudyPage-module__X0N5TW__headerText{gap:var(--s4);flex-direction:column;max-width:580px;display:flex}.CaseStudyPage-module__X0N5TW__headerMedia{aspect-ratio:4/3;border-radius:var(--r-lg);background:#ffffff0a;border:1px solid #ffffff1f;position:relative;overflow:hidden}@media (max-width:800px){.CaseStudyPage-module__X0N5TW__headerInner.CaseStudyPage-module__X0N5TW__hasMedia{gap:var(--s5);grid-template-columns:1fr}.CaseStudyPage-module__X0N5TW__headerMedia{aspect-ratio:16/9;order:-1}}.CaseStudyPage-module__X0N5TW__back{color:#7a7977;transition:color var(--t);align-self:flex-start;font-size:13px;font-weight:500;text-decoration:none}.CaseStudyPage-module__X0N5TW__back:hover{color:var(--accent-lt)}.CaseStudyPage-module__X0N5TW__code{font-size:11px;font-weight:500;font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--accent-lt);border:1.5px solid #947eb066;border-radius:20px;align-self:flex-start;padding:3px 10px;display:inline-block}.CaseStudyPage-module__X0N5TW__title{font-family:var(--serif);font-size:clamp(1.75rem,4vw,2.75rem);font-weight:var(--serif-weight);letter-spacing:-.02em;color:var(--white);line-height:1.15}.CaseStudyPage-module__X0N5TW__summary{color:#b0aea5;max-width:580px;font-size:18px;line-height:1.65}.CaseStudyPage-module__X0N5TW__liveLink{color:var(--accent-lt);transition:color var(--t);align-self:flex-start;font-size:14px;font-weight:500;text-decoration:none}.CaseStudyPage-module__X0N5TW__liveLink:hover{color:var(--white)}.CaseStudyPage-module__X0N5TW__layout{grid-template-columns:1fr minmax(0, var(--prose)) 1fr;gap:var(--s6);padding-bottom:var(--s9);display:grid}.CaseStudyPage-module__X0N5TW__meta{top:calc(60px + var(--s6));padding-top:var(--s7);align-self:start;position:sticky}.CaseStudyPage-module__X0N5TW__content{min-width:0}.CaseStudyPage-module__X0N5TW__sidebar{top:calc(60px + var(--s6));min-width:0;padding-top:var(--s7);align-self:start;position:sticky}.CaseStudyPage-module__X0N5TW__metaItem{margin-bottom:var(--s5);flex-direction:column;gap:3px;display:flex}.CaseStudyPage-module__X0N5TW__metaLabel{font-size:10px;font-weight:500;font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--stone)}.CaseStudyPage-module__X0N5TW__metaValue{color:var(--fg-2);font-size:13px;line-height:1.4}.CaseStudyPage-module__X0N5TW__metaLink{color:var(--accent-strong);transition:color var(--t);font-size:13px;text-decoration:none}.CaseStudyPage-module__X0N5TW__metaLink:hover{color:var(--accent-strong)}@media (max-width:1024px){.CaseStudyPage-module__X0N5TW__layout{grid-template-columns:1fr}.CaseStudyPage-module__X0N5TW__meta,.CaseStudyPage-module__X0N5TW__sidebar{display:none}}
.ArticlePageBody-module__HaUruq__layout{grid-template-columns:1fr minmax(0, var(--prose)) 1fr;gap:var(--s6);padding-bottom:var(--s9);display:grid}.ArticlePageBody-module__HaUruq__meta{top:calc(60px + var(--s6));padding-top:var(--s6);align-self:start;position:sticky}.ArticlePageBody-module__HaUruq__content{min-width:0}.ArticlePageBody-module__HaUruq__toc{top:calc(60px + var(--s6));min-width:0;padding-top:var(--s6);align-self:start;transition:opacity .15s;position:sticky}.ArticlePageBody-module__HaUruq__tocHidden{opacity:0;pointer-events:none}@media (max-width:1024px){.ArticlePageBody-module__HaUruq__layout{grid-template-columns:1fr}.ArticlePageBody-module__HaUruq__meta,.ArticlePageBody-module__HaUruq__toc{display:none}}
