.project-image-gallery-module__I8XTmq__gallery{border-radius:7px;overflow:hidden}.project-image-gallery-module__I8XTmq__viewport{aspect-ratio:16/9;position:relative;overflow:hidden}.project-image-gallery-module__I8XTmq__light{background:#f4f5f7}.project-image-gallery-module__I8XTmq__dark{background:#111316}.project-image-gallery-module__I8XTmq__imageButton{cursor:pointer;border:0;width:100%;height:100%;padding:0;display:block;position:absolute;inset:0}.project-image-gallery-module__I8XTmq__imageButton:focus-visible{outline:2px solid var(--accent);outline-offset:-3px}.project-image-gallery-module__I8XTmq__image{animation:.45s ease-out project-image-gallery-module__I8XTmq__reveal}.project-image-gallery-module__I8XTmq__cover{object-fit:cover}.project-image-gallery-module__I8XTmq__contain{object-fit:contain}.project-image-gallery-module__I8XTmq__preload{visibility:hidden;pointer-events:none}.project-image-gallery-module__I8XTmq__counter{z-index:1;-webkit-backdrop-filter:blur(14px)saturate(150%);color:#fff;font:11px var(--font-geist-mono), monospace;pointer-events:none;background:#14181e94;border:1px solid #ffffff47;border-radius:999px;align-items:center;gap:5px;padding:6px 10px;line-height:1;display:inline-flex;position:absolute;bottom:12px;left:12px;box-shadow:inset 0 1px #ffffff1f,0 2px 8px #0000001f}.project-image-gallery-module__I8XTmq__counter>span{color:#ffffff8c}@keyframes project-image-gallery-module__I8XTmq__reveal{0%{opacity:.35}to{opacity:1}}@media (prefers-reduced-motion:reduce){.project-image-gallery-module__I8XTmq__image{animation:none}}
.project-theme-module__y2xCoG__status{width:fit-content;font:600 9px/1.2 var(--font-geist-mono), monospace;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;color:#a5a6b0;background:#ffffff08;border-radius:4px;align-items:center;gap:5px;padding:4px 7px;display:inline-flex}.project-theme-module__y2xCoG__status:before{content:"";background:currentColor;border-radius:50%;width:4px;height:4px}.project-theme-module__y2xCoG__live{color:#7cd5ac;background:#6ee7b711}.project-theme-module__y2xCoG__development{color:#e4bd70;background:#e4bd7011}
.project-card-module__N-uhIG__rail{overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-color:var(--border) transparent;scrollbar-width:thin;padding-bottom:16px;position:relative;overflow-x:auto}.project-card-module__N-uhIG__rail:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:14px}.project-card-module__N-uhIG__track{gap:20px;width:max-content;display:flex}.project-card-module__N-uhIG__card{scroll-snap-align:start;border:1px solid var(--border);background:var(--surface);border-radius:14px;flex-direction:column;flex-shrink:0;width:min(84vw,22rem);transition:border-color .2s;display:flex;overflow:hidden}.project-card-module__N-uhIG__card:hover{border-color:color-mix(in srgb, var(--accent) 40%, transparent)}.project-card-module__N-uhIG__media{padding:18px 18px 0}.project-card-module__N-uhIG__staticImage{aspect-ratio:16/9;border-radius:7px;position:relative;overflow:hidden}.project-card-module__N-uhIG__body{flex-direction:column;flex:1;padding:21px 20px 19px;display:flex}.project-card-module__N-uhIG__titleRow{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.project-card-module__N-uhIG__title{letter-spacing:-.025em;font-size:18px;font-weight:600;line-height:1.35}.project-card-module__N-uhIG__title:before{content:"";background:var(--accent);border-radius:50%;width:6px;height:6px;margin-bottom:3px;margin-right:8px;display:inline-block}.project-card-module__N-uhIG__context{color:var(--muted);flex-wrap:wrap;align-items:center;gap:8px;margin:10px 0 12px;font-size:10px;display:flex}.project-card-module__N-uhIG__role{border:1px solid color-mix(in srgb, var(--accent) 24%, transparent);color:var(--accent);border-radius:4px;padding:2px 6px}.project-card-module__N-uhIG__summary{color:var(--muted);font-size:13px;line-height:1.7}.project-card-module__N-uhIG__summary strong{color:var(--foreground);font-weight:600}.project-card-module__N-uhIG__contribution{color:var(--muted);gap:8px;margin:15px 0 18px;font-size:11px;line-height:1.65;display:flex}.project-card-module__N-uhIG__contribution svg{color:var(--muted);flex-shrink:0;margin-top:3px}.project-card-module__N-uhIG__outcome{border-top:1px solid var(--border);margin-top:auto;padding-top:15px}.project-card-module__N-uhIG__outcome strong{letter-spacing:-.025em;font-size:19px;font-weight:600;line-height:1.3;display:block}.project-card-module__N-uhIG__outcome p{color:var(--muted);margin-top:5px;font-size:10px;line-height:1.6}.project-card-module__N-uhIG__tags{flex-wrap:wrap;gap:6px;margin:16px 0 15px;display:flex}.project-card-module__N-uhIG__links{border-top:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:12px;padding-top:15px;font-size:14px;display:flex}.project-card-module__N-uhIG__projectLink{color:var(--accent);align-items:center;gap:6px;font-weight:600;display:inline-flex}.project-card-module__N-uhIG__projectLink span{transition:transform .2s;display:inline-block}.project-card-module__N-uhIG__projectLink:hover span{transform:translate(3px)}.project-card-module__N-uhIG__links a:focus-visible{outline:2px solid var(--accent);outline-offset:5px;border-radius:2px}.project-card-module__N-uhIG__projectLink:hover{text-underline-offset:4px;text-decoration:underline}.project-card-module__N-uhIG__privateNote{color:var(--muted);font-size:11px}@media (min-width:640px){.project-card-module__N-uhIG__card{width:22rem}}@media (min-width:1024px){.project-card-module__N-uhIG__rail{-webkit-mask-image:linear-gradient(90deg,#0000,#000 clamp(12px,25% - 17.125rem,56px) calc(100% + -1*clamp(12px,25% - 17.125rem,56px)),#0000);mask-image:linear-gradient(90deg,#0000,#000 clamp(12px,25% - 17.125rem,56px) calc(100% + -1*clamp(12px,25% - 17.125rem,56px)),#0000)}.project-card-module__N-uhIG__track{padding-inline:max(0px,50% - 11rem)}.project-card-module__N-uhIG__card{scroll-snap-align:center}.project-card-module__N-uhIG__leadingCard{order:-1}}@media (prefers-reduced-motion:reduce){.project-card-module__N-uhIG__card,.project-card-module__N-uhIG__projectLink span{transition:none}}
.case-study-module__-PevWq__page{background:var(--background);color:var(--foreground)}.case-study-module__-PevWq__skipLink{z-index:100;background:var(--accent);color:var(--background);border-radius:8px;padding:12px 18px;position:fixed;top:12px;left:12px;transform:translateY(-150%)}.case-study-module__-PevWq__skipLink:focus{transform:translateY(0)}.case-study-module__-PevWq__header{border-bottom:1px solid var(--border)}.case-study-module__-PevWq__headerInner{justify-content:space-between;align-items:center;gap:20px;max-width:1024px;min-height:64px;margin:auto;padding:0 24px;display:flex}.case-study-module__-PevWq__brand{font-family:var(--font-geist-mono), monospace;font-size:14px}.case-study-module__-PevWq__brand span,.case-study-module__-PevWq__link,.case-study-module__-PevWq__returnLink{color:var(--accent)}.case-study-module__-PevWq__link,.case-study-module__-PevWq__returnLink{align-items:center;gap:7px;font-size:14px;font-weight:600;display:inline-flex}.case-study-module__-PevWq__link:hover,.case-study-module__-PevWq__returnLink:hover{text-underline-offset:4px;text-decoration:underline}.case-study-module__-PevWq__page a:focus-visible,.case-study-module__-PevWq__details summary:focus-visible{outline:2px solid var(--accent);outline-offset:5px;border-radius:3px}.case-study-module__-PevWq__main{max-width:1024px;margin:auto;padding:48px 24px 72px}.case-study-module__-PevWq__titleRow{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.case-study-module__-PevWq__titleRow h1{letter-spacing:-.035em;text-wrap:balance;font-size:clamp(28px,4vw,40px);font-weight:600;line-height:1.15}.case-study-module__-PevWq__introduction{color:#b6b6c0;text-wrap:pretty;max-width:720px;margin-top:16px;font-size:16px;line-height:1.65}.case-study-module__-PevWq__actions{flex-wrap:wrap;gap:24px;margin-top:20px;display:flex}.case-study-module__-PevWq__preview{margin:28px 0 40px}.case-study-module__-PevWq__imageFrame{border:1px solid var(--border);background:var(--surface);border-radius:12px;height:320px;position:relative;overflow:hidden}.case-study-module__-PevWq__image{object-fit:contain}.case-study-module__-PevWq__lightFrame{background:#fff}.case-study-module__-PevWq__screenshots{border-top:1px solid var(--border);margin-top:48px;padding-top:28px}.case-study-module__-PevWq__screenshots h2{letter-spacing:-.02em;font-size:20px;font-weight:600}.case-study-module__-PevWq__screenshots>p{color:var(--muted);margin-top:8px;font-size:13px;line-height:1.65}.case-study-module__-PevWq__screenshotGrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-top:22px;display:grid}.case-study-module__-PevWq__screenshotFrame{aspect-ratio:16/10;border:1px solid var(--border);background-color:var(--surface);border-radius:12px;display:block;position:relative;overflow:hidden}.case-study-module__-PevWq__screenshotFrame.case-study-module__-PevWq__lightFrame{background-color:#fff}.case-study-module__-PevWq__screenshotFrame:hover{border-color:var(--accent)}.case-study-module__-PevWq__screenshotGrid figcaption{color:var(--muted);margin-top:10px;font-size:12px;line-height:1.6}.case-study-module__-PevWq__preview figcaption{color:var(--muted);margin-top:10px;font-size:11px;line-height:1.6}.case-study-module__-PevWq__readingLayout{grid-template-columns:minmax(0,1fr) 270px;align-items:start;gap:64px;display:grid}.case-study-module__-PevWq__story{color:#b6b6c0;overflow-wrap:anywhere;min-width:0;font-size:14px;line-height:1.8}.case-study-module__-PevWq__section{scroll-margin-top:24px}.case-study-module__-PevWq__section+.case-study-module__-PevWq__section{margin-top:30px}.case-study-module__-PevWq__section h2,.case-study-module__-PevWq__evidence h2{color:var(--foreground);letter-spacing:-.015em;margin-bottom:12px;font-size:16px;font-weight:600}.case-study-module__-PevWq__list{gap:12px;padding-left:18px;list-style:outside;display:grid}.case-study-module__-PevWq__list li::marker{color:var(--accent)}.case-study-module__-PevWq__story strong{color:var(--foreground);font-weight:600}.case-study-module__-PevWq__evidence{border-top:1px solid var(--border);margin-top:30px;padding-top:22px;font-size:13px}.case-study-module__-PevWq__facts{border:1px solid var(--border);background:var(--surface);overflow-wrap:anywhere;border-radius:12px;padding:20px;position:sticky;top:24px}.case-study-module__-PevWq__facts dl>div+div{border-top:1px solid var(--border);margin-top:18px;padding-top:18px}.case-study-module__-PevWq__facts dt{font:10px/1.5 var(--font-geist-mono), monospace;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:8px}.case-study-module__-PevWq__facts dd{font-size:13px;line-height:1.65}.case-study-module__-PevWq__facts dd>div{margin-top:0}.case-study-module__-PevWq__outcome{font-size:17px;font-weight:600;line-height:1.3}.case-study-module__-PevWq__outcomeDetail{color:var(--muted);margin-top:6px;font-size:11px}.case-study-module__-PevWq__details{border:1px solid var(--border);border-radius:10px;margin-top:24px}.case-study-module__-PevWq__details summary{cursor:pointer;color:var(--accent);padding:15px 18px;font-weight:500}.case-study-module__-PevWq__detailContent{padding:0 18px 18px;font-size:13px}.case-study-module__-PevWq__detailContent>*+*{margin-top:14px}.case-study-module__-PevWq__detailContent h3{color:var(--foreground);font-size:14px;font-weight:600}.case-study-module__-PevWq__detailContent code{color:var(--foreground);font-size:12px;font-family:var(--font-geist-mono), monospace}.case-study-module__-PevWq__detailContent pre{background:var(--surface);border-radius:8px;padding:14px;line-height:1.6;overflow-x:auto}.case-study-module__-PevWq__detailContent a{color:var(--accent);text-underline-offset:3px;text-decoration:underline}.case-study-module__-PevWq__returnLink{margin-top:30px}@media (max-width:799px){.case-study-module__-PevWq__screenshotGrid{grid-template-columns:minmax(0,1fr)}.case-study-module__-PevWq__readingLayout{grid-template-columns:minmax(0,1fr);gap:32px}.case-study-module__-PevWq__facts{position:static}.case-study-module__-PevWq__imageFrame{aspect-ratio:16/9;height:auto}.case-study-module__-PevWq__main{padding-top:32px}}
