.CaseStudy-module__i-_Aca__caseStudy{width:100%;min-width:0;padding-top:var(--space-2);cursor:default}.CaseStudy-module__i-_Aca__sections{min-width:0}.CaseStudy-module__i-_Aca__sections>section{gap:var(--space-5);min-width:0;padding:var(--space-7) 0;border-top:1px solid var(--line-faint);grid-template-columns:minmax(0,7rem) minmax(0,1fr);display:grid}.CaseStudy-module__i-_Aca__sections>section>div{min-width:0}.CaseStudy-module__i-_Aca__sectionIndex{color:var(--accent);font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:0}.CaseStudy-module__i-_Aca__sections h3{font-size:var(--fs-h3);line-height:1.3}.CaseStudy-module__i-_Aca__sections section>div>p,.CaseStudy-module__i-_Aca__sections li{color:var(--muted);overflow-wrap:anywhere;line-height:1.8}.CaseStudy-module__i-_Aca__sections section>div>p,.CaseStudy-module__i-_Aca__sections section>div>ul,.CaseStudy-module__i-_Aca__sections section>div>p+p{margin-top:var(--space-3)}.CaseStudy-module__i-_Aca__sections section>div>ul:not(.CaseStudy-module__i-_Aca__architectureModules),.CaseStudy-module__i-_Aca__stackGroups dd ul{gap:var(--space-3);display:grid}.CaseStudy-module__i-_Aca__sections section>div>ul:not(.CaseStudy-module__i-_Aca__architectureModules)>li{padding-left:var(--space-4);position:relative}.CaseStudy-module__i-_Aca__sections section>div>ul:not(.CaseStudy-module__i-_Aca__architectureModules)>li:before{top:var(--space-3);width:var(--space-1);height:var(--space-1);background:var(--status-amber);content:"";position:absolute;left:0}.CaseStudy-module__i-_Aca__architectureFlow{padding:var(--space-4);border-left:1px solid var(--accent);background:var(--accent-dim);font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--ink)!important}.CaseStudy-module__i-_Aca__architectureModules{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(8rem,1fr));display:grid}.CaseStudy-module__i-_Aca__architectureModules li{min-width:0;padding:var(--space-3);border-top:1px solid var(--line-strong);color:var(--ink);font-family:var(--font-mono);font-size:var(--fs-xs)}.CaseStudy-module__i-_Aca__futureDirection{padding-left:var(--space-4);border-left:1px solid var(--status-amber-line);margin-top:var(--space-5)!important}.CaseStudy-module__i-_Aca__futureDirection span{margin-bottom:var(--space-2);color:var(--status-amber);font-family:var(--font-mono);font-size:var(--fs-xs);display:block}.CaseStudy-module__i-_Aca__stackGroups{gap:var(--space-5) var(--space-6);min-width:0;margin:var(--space-4) 0 0;grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.CaseStudy-module__i-_Aca__stackGroups>div{min-width:0;padding-top:var(--space-3);border-top:1px solid var(--line-faint)}.CaseStudy-module__i-_Aca__stackGroups dt{color:var(--accent);font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:0}.CaseStudy-module__i-_Aca__stackGroups dd{min-width:0;margin:var(--space-3) 0 0}.CaseStudy-module__i-_Aca__stackGroups dd ul{gap:var(--space-2);flex-wrap:wrap;display:flex}.CaseStudy-module__i-_Aca__stackGroups dd li{padding:var(--space-2) var(--space-3);border:1px solid var(--line-faint);border-radius:var(--radius-sm);color:var(--ink);font-family:var(--font-mono);font-size:var(--fs-xs);line-height:1.4}.CaseStudy-module__i-_Aca__actions{gap:var(--space-3);padding:var(--space-5) 0 var(--space-2) 7rem;border-top:1px solid var(--line-faint);flex-wrap:wrap;display:flex}.CaseStudy-module__i-_Aca__action{min-height:44px;padding:0 var(--space-4);border:1px solid var(--line-strong);border-radius:var(--radius-sm);color:var(--accent);cursor:pointer;transition:background-color var(--dur-card) var(--ease), border-color var(--dur-card) var(--ease), color var(--dur-card) var(--ease);background:0 0;justify-content:center;align-items:center;display:inline-flex}.CaseStudy-module__i-_Aca__action:hover{border-color:var(--accent);background:var(--accent-dim);color:var(--ink)}.CaseStudy-module__i-_Aca__action:focus-visible{border-color:var(--accent)}@media (max-width:640px){.CaseStudy-module__i-_Aca__sections>section{gap:var(--space-3);padding:var(--space-6) 0;grid-template-columns:minmax(0,1fr)}.CaseStudy-module__i-_Aca__stackGroups{gap:var(--space-4);grid-template-columns:minmax(0,1fr)}.CaseStudy-module__i-_Aca__architectureModules{grid-template-columns:repeat(2,minmax(0,1fr))}.CaseStudy-module__i-_Aca__actions{padding-left:0}}@media (prefers-reduced-motion:reduce){.CaseStudy-module__i-_Aca__action{transition:none}}
.ProjectCard-module__0p7ePa__card{align-content:start;gap:var(--space-6);min-width:0;padding:var(--space-6) 0;border-top:1px solid var(--line-faint);cursor:pointer;scroll-margin-top:calc(var(--topbar-h) + var(--space-4));transition:border-color var(--dur-card) var(--ease);grid-template-columns:minmax(16rem,22rem) minmax(0,1fr);display:grid}.ProjectCard-module__0p7ePa__card:hover,.ProjectCard-module__0p7ePa__card[data-expanded=true]{border-top-color:var(--line-strong)}.ProjectCard-module__0p7ePa__card[data-expanded=true]{grid-column:1/-1}.ProjectCard-module__0p7ePa__mediaColumn,.ProjectCard-module__0p7ePa__content{min-width:0}.ProjectCard-module__0p7ePa__media{aspect-ratio:4/3;border-radius:var(--radius-sm);background:var(--surface);min-width:0;transition:box-shadow var(--dur-card) var(--ease);position:relative;overflow:hidden}.ProjectCard-module__0p7ePa__card:hover .ProjectCard-module__0p7ePa__media,.ProjectCard-module__0p7ePa__card[data-expanded=true] .ProjectCard-module__0p7ePa__media{box-shadow:var(--shadow-card)}.ProjectCard-module__0p7ePa__image{object-fit:cover;object-position:top;width:100%;height:100%;display:block}.ProjectCard-module__0p7ePa__card[data-project-slug=digital-morse] .ProjectCard-module__0p7ePa__media{aspect-ratio:1381/770;background:var(--surface)}.ProjectCard-module__0p7ePa__card[data-project-slug=digital-morse] .ProjectCard-module__0p7ePa__image{object-fit:contain;object-position:center}.ProjectCard-module__0p7ePa__mediaPlaceholder{border:1px solid var(--line-faint);width:100%;height:100%;color:var(--faint);font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:0;place-items:center;display:grid}.ProjectCard-module__0p7ePa__mediaBadge{bottom:var(--space-3);left:var(--space-3);max-width:calc(100% - 2 * var(--space-3));padding:var(--space-2) var(--space-3);border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface-glass);color:var(--ink);font-family:var(--font-mono);font-size:var(--fs-2xs);overflow-wrap:anywhere;line-height:1.4;position:absolute}.ProjectCard-module__0p7ePa__card[data-project-slug=digital-morse] .ProjectCard-module__0p7ePa__mediaBadge{top:var(--space-3);right:var(--space-3);bottom:auto;left:auto}.ProjectCard-module__0p7ePa__content{min-height:100%;padding-right:calc(44px + var(--space-4));flex-direction:column;display:flex;position:relative}.ProjectCard-module__0p7ePa__content h2{font-size:var(--fs-h3);overflow-wrap:anywhere;line-height:1.3}.ProjectCard-module__0p7ePa__summary{max-width:48rem;margin-top:var(--space-3);color:var(--muted);overflow-wrap:anywhere;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.7;display:-webkit-box;overflow:hidden}.ProjectCard-module__0p7ePa__capabilities{gap:var(--space-2);margin-top:var(--space-4);flex-wrap:wrap;display:flex}.ProjectCard-module__0p7ePa__capabilities li{min-width:0;padding:var(--space-2) var(--space-3);border:1px solid var(--line-faint);border-radius:var(--radius-sm);background:var(--accent-dim);color:var(--ink);font-family:var(--font-mono);font-size:var(--fs-xs);overflow-wrap:anywhere;line-height:1.4}.ProjectCard-module__0p7ePa__status{padding-top:var(--space-4);color:var(--status-amber);font-family:var(--font-mono);font-size:var(--fs-xs);overflow-wrap:anywhere;margin-top:auto;line-height:1.5}.ProjectCard-module__0p7ePa__toggle{border:1px solid var(--line-strong);border-radius:var(--radius-sm);width:44px;height:44px;color:var(--accent);cursor:pointer;transition:background-color var(--dur-card) var(--ease), border-color var(--dur-card) var(--ease), color var(--dur-card) var(--ease);background:0 0;place-items:center;padding:0;display:grid;position:absolute;bottom:0;right:0}.ProjectCard-module__0p7ePa__toggle:hover,.ProjectCard-module__0p7ePa__toggle[aria-expanded=true]{border-color:var(--accent);background:var(--accent-dim);color:var(--ink)}.ProjectCard-module__0p7ePa__toggle:focus-visible{border-color:var(--accent)}.ProjectCard-module__0p7ePa__toggleIcon{width:var(--space-3);height:var(--space-3);transition:transform var(--dur-card) var(--ease);border-bottom:1px solid;border-right:1px solid;transform:translateY(-25%)rotate(45deg)}.ProjectCard-module__0p7ePa__toggle[aria-expanded=true] .ProjectCard-module__0p7ePa__toggleIcon{transform:translateY(25%)rotate(-135deg)}.ProjectCard-module__0p7ePa__details{opacity:0;min-width:0;transform:translateY(var(--space-3));transition:grid-template-rows var(--dur-detail) var(--ease), opacity var(--dur-detail) var(--ease), transform var(--dur-detail) var(--ease);grid-column:1/-1;grid-template-rows:0fr;display:grid}.ProjectCard-module__0p7ePa__details[data-open=true]{opacity:1;grid-template-rows:1fr;transform:translateY(0)}.ProjectCard-module__0p7ePa__detailsInner{min-height:0;overflow:hidden}@media (max-width:640px){.ProjectCard-module__0p7ePa__card{gap:var(--space-4);padding:var(--space-5) 0;grid-template-columns:minmax(0,1fr)}.ProjectCard-module__0p7ePa__media{aspect-ratio:16/10;width:100%}.ProjectCard-module__0p7ePa__content{min-height:0;padding-right:0;padding-bottom:calc(44px + var(--space-4))}.ProjectCard-module__0p7ePa__content h2{font-size:var(--fs-body)}.ProjectCard-module__0p7ePa__summary{font-size:var(--fs-sm);line-height:1.65}.ProjectCard-module__0p7ePa__status{margin-top:var(--space-4);padding-top:0}}@media (prefers-reduced-motion:reduce){.ProjectCard-module__0p7ePa__card,.ProjectCard-module__0p7ePa__media,.ProjectCard-module__0p7ePa__details,.ProjectCard-module__0p7ePa__toggle,.ProjectCard-module__0p7ePa__toggleIcon{transition:none}}
.ProjectGallery-module__8yE5PG__gallery{grid-template-columns:minmax(0,1fr);align-items:start;min-width:0;display:grid}@media (max-width:640px){.ProjectGallery-module__8yE5PG__gallery{overflow-wrap:anywhere;width:100%;min-width:0}}
.page-module__MjXdyq__main{width:min(100%, var(--container));min-width:0;padding:var(--space-8) var(--space-4) var(--space-9);margin:0 auto}.page-module__MjXdyq__header{min-width:0;padding-bottom:var(--space-6);text-align:center;justify-content:center;display:flex}.page-module__MjXdyq__header h1{max-width:100%;font-size:var(--fs-h2);overflow-wrap:anywhere;line-height:1.2}@media (max-width:640px){.page-module__MjXdyq__main{padding-top:var(--space-7)}.page-module__MjXdyq__header{padding-bottom:var(--space-5)}}
