/* Website projects: Modern palette and Outfit typography. */
.crysta{--web-accent:#ff9d88}
:root[data-theme=light] .crysta{--web-accent:#9b301c}
.crysta .web-text-link{display:inline-flex;align-items:center;gap:24px;padding:12px 0;border-bottom:1px solid var(--soft);font-size:16px;line-height:1.4}
.web-text-link>span{font-size:24px;line-height:1}
.crysta .website-work{margin:0 32px 96px;scroll-margin-top:32px}
.website-work-heading{display:flex;justify-content:space-between;align-items:end;gap:32px;padding:0 0 32px}
.crysta .website-work-heading h2{font-size:clamp(32px,3.6vw,52px);line-height:1.12;letter-spacing:-.035em}
.website-work-heading p{color:var(--soft);max-width:32ch}
.website-projects{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.website-project{min-width:0}
.website-project-screen{position:relative;overflow:hidden;border-radius:16px;background:var(--glass)}
.website-project-screen>a{display:block;aspect-ratio:16/10}
.crysta .website-loop{width:100%;height:100%;object-fit:cover}
.project-card:focus-visible .roll>span:first-child{transform:none}
.website-project-screen>a:hover .website-loop{filter:brightness(1.05)}
.website-project-screen:focus-within{outline:2px solid var(--ink);outline-offset:5px}
.website-project-screen>a:focus-visible{outline:0}
.website-project-caption{display:flex;justify-content:space-between;gap:16px;align-items:start;padding:20px 0}
.crysta .website-project-caption h3{font-size:26px;font-weight:500;letter-spacing:-.025em}
.website-project-caption p{margin-top:5px!important;color:var(--soft);font-size:14px}
.website-project-caption>span{font-size:28px}
.web-existing-heading{margin:0 32px 32px;display:flex;justify-content:space-between;align-items:end;gap:16px}
.crysta .web-existing-heading h2{font-size:28px;letter-spacing:-.025em}
.web-existing-heading p{color:var(--soft);font-size:14px}
.crysta .service-index{position:relative;inset:auto;z-index:auto;width:auto;height:auto;max-width:none;background:transparent;backdrop-filter:none;grid-column:1/-1;display:grid;grid-template-columns:1fr 1.75fr;gap:64px;border-block:1px solid var(--edge);padding:40px 0 32px}
.service-index::before,.service-index::after,.website-next::before,.website-next::after{display:none!important}
.crysta .service-index h2{font-size:28px;line-height:1.2;letter-spacing:-.025em}
.service-index-heading p{color:var(--soft);margin-top:12px!important}
.service-index-links{display:grid;grid-template-columns:1fr 1fr;gap:0 40px}
.service-index-links>a{display:grid;grid-template-columns:28px 1fr 20px;gap:16px;align-items:center;padding:16px 0;border-bottom:1px solid var(--edge)}
.service-index-links svg{width:25px;height:25px;fill:none;stroke:var(--web-accent);stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}
.service-index-links strong{font-weight:500;font-size:20px;display:block}
.service-index-links small{display:block;color:var(--soft);font-size:13px;margin-top:3px}
.service-index-links>a>span:last-child{font-size:22px}
.service-index-links>a:hover strong{color:var(--web-accent)}
.crysta .web-service-feature{padding:64px 32px 88px;display:grid;grid-template-columns:1fr 1.15fr;align-items:center;gap:clamp(32px,6vw,96px);scroll-margin-top:32px;border-bottom:1px solid var(--edge)}
.crysta .web-service-statement h2{font-size:clamp(40px,5.2vw,72px);line-height:1.08;letter-spacing:-.035em}
.web-service-statement em{font-style:normal;color:var(--web-accent)}
.web-service-statement .web-text-link{margin-top:32px}
.web-service-statement .web-service-details{margin-top:32px;max-width:44ch}
.crysta .web-service-statement .web-service-details h3{font-size:22px}
.web-service-statement .web-service-details p{margin:12px 0 0!important;font-size:16px}
.web-service-statement .web-service-details .web-text-link{margin-top:16px}
.web-service-project{display:block;width:100%}
.crysta .web-service-project .project-label h3{min-width:0;font-size:20px;font-weight:600;line-height:1.35;overflow-wrap:anywhere}
.crysta .web-service-details h3{font-size:26px;line-height:1.3;letter-spacing:-.025em}
.web-service-details p{margin:20px 0 24px!important;color:var(--soft);max-width:46ch;line-height:1.65}
.web-service-details ul,.website-case-story ul{padding:0;margin:0 0 20px;list-style:none}
.web-service-details li,.website-case-story li{padding:12px 0;border-bottom:1px solid var(--edge)}
.crysta .web-band-title{font-size:36px;line-height:1.2;letter-spacing:-.03em;margin-bottom:40px!important}
.web-band-title span{scroll-margin-top:36px}
.website-case-intro{padding:80px 32px 48px}
.web-case-type{color:var(--soft);font-size:15px;margin-bottom:20px!important}
.crysta .website-case-intro h1{font-size:clamp(52px,8vw,112px);line-height:1.05;letter-spacing:-.04em}
.web-case-summary{display:flex;align-items:end;justify-content:space-between;gap:32px;margin-top:32px}
.web-case-summary p{max-width:42ch;color:var(--soft);font-size:20px;line-height:1.5}
.website-case-film{margin:0 32px}
.website-case-film video{width:100%;aspect-ratio:16/10;background:var(--glass);border-radius:16px;object-fit:contain}
.website-case-film--wide video{aspect-ratio:1440/738}
.website-case-film p{color:var(--soft);font-size:13px;margin-top:14px!important}
.website-case-story{display:grid;grid-template-columns:1fr 1fr;gap:64px;padding:88px 32px}
.crysta .website-case-story h2{font-size:36px;line-height:1.2;letter-spacing:-.03em}
.website-case-story p{max-width:55ch;margin-bottom:24px!important;color:var(--soft);font-size:18px}
.website-case-screens{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:64px;padding:64px 8vw;background:var(--glass)}
.crysta .website-case-screens h2{font-size:clamp(32px,4vw,56px);line-height:1.1;letter-spacing:-.03em}
.website-case-screens p{color:var(--soft);margin:24px 0!important}
.website-case-screens figure{width:100%;max-width:330px;justify-self:center;border-radius:24px;overflow:hidden;box-shadow:0 24px 55px #0003}
.website-case-screens img{width:100%;height:auto}
.crysta .website-case-screens video{display:block;width:100%;height:auto;aspect-ratio:412/914;object-fit:cover}
.website-next{position:relative;inset:auto;z-index:auto;width:auto;height:auto;background:transparent;backdrop-filter:none;display:flex;justify-content:space-between;padding:64px 32px;gap:24px;font-size:18px}
@media(max-width:900px){
 .crysta .service-index{grid-template-columns:1fr;gap:20px}
 .website-work-heading{align-items:start;flex-direction:column;gap:16px}
 .crysta .web-service-feature{grid-template-columns:1fr 1fr;gap:32px}
}
@media(max-width:700px){
 .crysta .website-work{margin:0 16px 56px}
 .website-work-heading{padding-bottom:24px}
 .website-projects{grid-template-columns:1fr;gap:24px}
 .website-project-screen>a{aspect-ratio:16/10}
 .website-project-caption{padding:14px 0 0}
 .crysta .web-service-project .project-label h3{font-size:16px}
 .crysta .website-project-caption h3{font-size:23px}
 .web-existing-heading{margin:0 16px 24px;display:block}
 .web-existing-heading p{margin-top:8px!important}
 .crysta .web-existing-heading h2{font-size:25px}
 .crysta .service-index{padding:32px 0 16px;gap:16px}
 .service-index-links{gap:0 24px}
 .service-index-links>a{grid-template-columns:1fr 20px;gap:8px;position:relative;padding-top:50px}
 .service-index-links svg{position:absolute;top:16px;left:0}
 .service-index-links strong{font-size:19px}
 .service-index-links small{font-size:12px}
 .crysta .web-service-feature{grid-template-columns:1fr;gap:32px;padding:32px 16px 48px}
 .crysta .web-service-statement h2{font-size:44px}
 .web-service-statement .web-text-link{margin-top:20px}
 .crysta .web-service-details h3{font-size:24px}
 .crysta .web-band-title{font-size:28px;margin-bottom:24px!important}
 .website-case-intro{padding:56px 16px 32px}
 .web-case-summary{display:block;margin-top:24px}
 .web-case-summary p{font-size:18px;margin-bottom:20px!important}
 .website-case-film{margin:0 16px}
 .website-case-story{grid-template-columns:1fr;gap:24px;padding:48px 16px}
 .crysta .website-case-story h2{font-size:28px}
 .website-case-screens{grid-template-columns:1fr;gap:32px;padding:48px 24px}
 .website-case-screens figure{max-width:270px}
 .website-next{padding:40px 16px;font-size:16px}
}
@media(prefers-reduced-motion:reduce){.website-loop{transition:none}}
