/* Sepehra's product exhibition: cobalt night, large product windows, local Persian type. */
.projects-page{--muted:#bbc5d9;--line:#29334a;background:#070c18;color:#f1f4ff}
.projects-page .main-nav a{color:#c4cee2}.projects-page .main-nav a:hover,.projects-page .main-nav a[aria-current]{color:#fff}
.projects-page .brand-logo{filter:brightness(0) invert(1)}
.projects-page .header-inner{gap:24px}.projects-page .main-nav{gap:28px}
.projects-page .button{background:#3155e9;color:#fff}.projects-page .button:hover{background:#4268ff}
.projects-page .text-link{color:#b4c5ff}.projects-page :focus-visible{outline-color:#b2c6ff}
.catalog-hero,.project-hero{padding-block:34px 64px}
.catalog-heading{display:grid;grid-template-columns:1.3fr 1fr;gap:64px;align-items:end;margin-bottom:52px}
.catalog-heading h1,.project-hero h1{font-size:clamp(36px,4.6vw,66px);line-height:1.45;letter-spacing:-1px}
.catalog-heading p{font-size:19px;line-height:2;max-width:520px}
.collection-switch{display:flex;gap:6px;margin-top:28px;border:1px solid var(--line);padding:5px;border-radius:12px;width:fit-content}
.collection-switch a{padding:9px 18px;font-size:15px;color:#c1cbe0;border-radius:8px}
.collection-switch [aria-current]{background:#263660;color:white}
.catalog-feature{display:grid;grid-template-columns:1.45fr 1fr;align-items:center;background:#101a30;border:1px solid #33415e;overflow:hidden;border-radius:28px}
.feature-image{padding:30px;background:#17223d;min-width:0;display:grid;place-items:center;align-self:stretch}
.feature-image img{width:100%;height:auto;border-radius:12px;box-shadow:0 16px 38px #0005}
.feature-phone{background:#241e2e url('/images/space/nebula-3.webp') center/cover;height:490px;padding:32px}
.feature-phone img{height:100%;width:auto;border-radius:24px;max-width:100%;object-fit:contain}
.feature-copy{padding:40px}.feature-copy>span:first-child{color:var(--project-accent);font-size:15px}.feature-copy h2{font-size:clamp(29px,3vw,44px);margin-block:14px}.feature-copy p{font-size:17px;line-height:2}
.catalog-link{display:inline-block;color:var(--project-accent,#b4c5ff);margin-top:22px;font-size:15px}
.catalog-feature:hover,.catalog-project:hover{border-color:var(--project-accent,#8fa9ff)}
.catalog-section{padding-block:40px 80px}.catalog-section-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:32px}.catalog-section-heading h2{font-size:32px}.catalog-section-heading p{font-size:16px}
.catalog-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px}
.catalog-project{min-width:0;border:1px solid var(--line);border-radius:20px;overflow:hidden;background:#0f1729;transition:border-color .2s}
.catalog-visual{position:relative;background:#18223a;aspect-ratio:1.65;overflow:hidden;padding:22px 22px 0;display:grid;align-items:start}
.catalog-visual img{width:100%;height:auto;max-height:100%;object-fit:cover;object-position:top;border-radius:10px 10px 0 0}
.project-category{position:absolute;bottom:16px;right:20px;padding:4px 12px;color:#edf2ff;background:#0c1426;border:1px solid #53607a;border-radius:7px;font-size:12px}
.catalog-copy{padding:28px}.catalog-title{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px}.catalog-title h3{font-size:27px}.catalog-arrow{font-size:26px;color:var(--project-accent)}.catalog-copy p{font-size:16px;line-height:1.95}
.catalog-phone{place-items:center}.catalog-phone img{height:100%;width:auto;object-fit:contain}
.project-hero-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:54px;align-items:center}
.project-hero-copy{min-width:0}.project-label{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-bottom:22px;font-size:15px}.project-label bdi{color:var(--project-accent);font-weight:700}.project-label span{color:#a4b1cc}
.project-hero h1{font-size:clamp(34px,3.7vw,54px);margin-bottom:24px}.project-lead{font-size:18px;line-height:2}
.project-tags{display:flex;flex-wrap:wrap;gap:10px;list-style:none;padding:0;margin:28px 0 0}.project-tags li{font-size:13px;border:1px solid #3a465f;border-radius:6px;padding:4px 12px;color:#c8d3e9}
.project-stage{margin:0;min-width:0;border:1px solid #35415a;border-radius:22px;overflow:hidden;background:#172039;padding:20px 20px 0}
.project-stage>img{width:100%;height:auto;border-radius:10px;object-fit:contain}.project-stage figcaption{font-size:12px;padding:16px 0;color:#c0cadc;line-height:1.8}
.project-stage-phone{display:flex;flex-direction:column;align-items:center;background:#291e2b url('/images/space/nebula-3.webp') center/cover;padding:26px 20px 0}.project-stage-phone>img{height:480px;width:auto;border-radius:20px}.project-stage-phone figcaption{color:#f0dccc}
.project-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;border-block:1px solid var(--line);padding-block:26px;margin:48px 0 0}.project-facts dt{font-size:13px;color:#9caac4;margin-bottom:7px}.project-facts dd{margin:0;color:#edf2ff;font-size:16px}
.project-section{padding-block:72px}.project-section-intro{display:grid;grid-template-columns:1fr 1fr;gap:50px;margin-bottom:36px;align-items:start}.project-section-intro h2{font-size:clamp(29px,3vw,42px)}.project-section-intro p{line-height:2;max-width:520px}
.project-feature-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:0 40px}.project-feature-grid article{padding:27px 0;border-top:1px solid var(--line)}.project-feature-grid h3{font-size:23px;margin-bottom:13px;color:var(--project-accent)}.project-feature-grid p{font-size:17px;max-width:500px}
.project-story{background:#17233f;border-block:1px solid #334162}.project-story-inner{display:grid;grid-template-columns:1fr 1fr;gap:60px;padding-block:66px;align-items:center}.project-story h2{font-size:clamp(30px,3.2vw,46px)}.project-story p{font-size:19px;line-height:2;color:#d1d9e9}
.project-service-list{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}.project-service-list article{border-inline-start:2px solid var(--project-accent);padding-inline-start:22px}.project-service-list h3{font-size:22px;margin-bottom:12px}.project-service-list p{font-size:16px}
.project-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;list-style:none;padding:0;counter-reset:steps;margin:0}.project-steps li{counter-increment:steps;border-top:1px solid var(--line);padding-top:22px}.project-steps li:before{content:counter(steps,decimal-leading-zero);display:block;color:var(--project-accent);font-size:22px;margin-bottom:16px}.project-steps h3{font-size:23px;margin-bottom:12px}.project-steps p{font-size:16px}
.project-note{margin-top:32px;border-inline-start:3px solid var(--project-accent);padding:16px 24px;background:#131d30;font-size:15px}
.project-gallery-section h2{margin-bottom:30px}.project-gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr));gap:28px}.project-gallery figure{margin:0;background:#172039;padding:18px;border:1px solid var(--line);border-radius:18px}.project-gallery img{width:100%;height:auto;max-height:560px;object-fit:contain;border-radius:8px}.project-gallery figcaption{font-size:13px;margin-top:16px;color:#bac5dc}
.project-faq{display:grid;grid-template-columns:1fr 1.2fr;gap:60px}.project-faq details{border-bottom:1px solid #3a4760;padding-block:20px}.project-faq summary{font-size:19px;cursor:pointer;color:#f0f4ff}.project-faq details p{margin-top:16px;line-height:2}.project-source{margin-top:24px;font-size:15px;color:#b4c5ff}
.project-cta{display:flex;justify-content:space-between;align-items:center;gap:40px;padding-block:54px;border-top:1px solid var(--line);margin-top:16px}.project-cta h2{font-size:clamp(28px,3.3vw,44px);margin-bottom:18px}.project-cta p{font-size:16px}.project-cta .button{flex-shrink:0}
.project-cta-actions{display:flex;flex-wrap:wrap;gap:12px;flex-shrink:0}
.projects-page .editorial-site-footer{margin-top:24px}
.projects-page .fallback-nav{display:flex;flex-wrap:wrap;justify-content:center;gap:12px 24px;padding:16px;background:#101a30;color:#e0e8fa;font-size:14px}
.home-project-links{display:flex;gap:14px;flex-wrap:wrap;margin-top:22px}.home-project-links a{color:#c8d6ff;border-bottom:1px solid #697fae;padding:7px 0;font-size:15px}
@media(max-width:1100px){.catalog-heading{gap:32px}.project-hero-grid{gap:30px}.feature-copy{padding:28px}.project-stage-phone>img{height:400px}.project-hero h1{font-size:38px}.project-hero .hero-actions{gap:18px;flex-wrap:wrap}.projects-page .main-nav{gap:18px}}
@media(max-width:850px){.catalog-heading,.project-hero-grid{grid-template-columns:1fr}.catalog-heading{gap:24px}.catalog-heading h1{font-size:46px}.catalog-heading p{max-width:640px}.catalog-feature{grid-template-columns:1fr}.feature-image{order:2}.feature-phone{height:420px}.feature-copy{padding:30px}.project-stage{max-width:100%;width:100%}.project-stage-phone>img{height:440px}.project-hero h1{font-size:44px}.project-hero-copy{max-width:700px}.project-section-intro,.project-story-inner{gap:28px}.project-service-list,.project-steps{gap:24px}.project-service-list h3,.project-steps h3{font-size:20px}.project-faq{gap:30px}.projects-page .main-nav.open{background:#101a30}.projects-page .menu-toggle{background:#1a2742}.projects-page .menu-toggle span{background:#e5edff}}
@media(max-width:600px){.catalog-hero,.project-hero{padding-block:25px 40px}.projects-page .breadcrumbs{font-size:12px;gap:9px;margin-bottom:30px}.catalog-heading h1,.project-hero h1{font-size:34px;letter-spacing:0}.catalog-heading{margin-bottom:30px}.catalog-heading p,.project-lead{font-size:16px}.collection-switch a{font-size:14px;padding:8px 14px}.feature-image{padding:16px}.feature-copy{padding:24px}.feature-copy p{font-size:16px}.feature-phone{height:365px}.catalog-grid{grid-template-columns:1fr;gap:24px}.catalog-section{padding-block:24px 46px}.catalog-section-heading{align-items:start;flex-direction:column;gap:14px}.catalog-section-heading h2{font-size:27px}.catalog-copy{padding:22px}.catalog-title h3{font-size:25px}.catalog-visual{padding:16px 16px 0}.project-hero-grid{gap:32px}.project-stage{padding:12px 12px 0;border-radius:16px}.project-stage figcaption{font-size:11px}.project-stage-phone{padding-top:20px}.project-stage-phone>img{height:380px;max-width:100%}.project-facts{gap:20px;grid-template-columns:1fr;margin-top:28px;padding-block:22px}.project-facts>div{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}.project-facts dd{font-size:14px}.project-section{padding-block:44px}.project-section-intro,.project-story-inner,.project-faq{grid-template-columns:1fr;gap:22px}.project-section-intro h2{font-size:28px}.project-section-intro p{font-size:16px}.project-feature-grid{grid-template-columns:1fr}.project-feature-grid p{font-size:16px}.project-story-inner{padding-block:40px}.project-story p{font-size:17px}.project-service-list,.project-steps{grid-template-columns:1fr;gap:28px}.project-gallery-section h2,.project-faq h2{font-size:28px}.project-cta{align-items:start;flex-direction:column;gap:24px;padding-block:36px}.project-cta .button{width:100%;text-align:center}.project-hero .button{font-size:14px}.project-faq summary{font-size:17px}}
@media(prefers-reduced-motion:reduce){.catalog-project{transition:none}.projects-page{scroll-behavior:auto}}
@media(max-width:850px){.project-cta{align-items:flex-start;flex-direction:column;gap:24px}.project-cta-actions{width:100%}}
@media(max-width:600px){.project-cta-actions{width:100%;flex-direction:column}}

/* Open-source pages use a quieter galaxy treatment over the shared dark system. */
.open-source-page{position:relative;isolation:isolate;background-color:#070b17;background-image:radial-gradient(ellipse at 8% 4%,#6245aa31,transparent 32%),radial-gradient(ellipse at 93% 36%,#087caa25,transparent 30%),radial-gradient(ellipse at 40% 94%,#483d9221,transparent 38%)}
.open-source-page:before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.2;background-image:radial-gradient(1px 1px at 12% 20%,#e5eaff 99%,transparent),radial-gradient(1px 1px at 67% 13%,#e5eaff 99%,transparent),radial-gradient(1.5px 1.5px at 83% 72%,#c9d5ff 99%,transparent),radial-gradient(1px 1px at 29% 86%,#e5eaff 99%,transparent);background-size:100% 100%}
.open-source-page .catalog-hero,.open-source-page .project-hero{position:relative;isolation:isolate;overflow:clip}
.open-source-page .catalog-hero:before,.open-source-page .project-hero:before{content:"";position:absolute;z-index:-1;top:4%;inset-inline-end:-8%;width:min(58vw,720px);height:500px;pointer-events:none;filter:blur(12px);opacity:.72;background:radial-gradient(ellipse at 55% 40%,color-mix(in srgb,var(--project-accent,#8c78ff) 24%,transparent),transparent 64%),radial-gradient(ellipse at 72% 72%,#08a8d31c,transparent 42%)}
.open-source-page .catalog-heading h1,.open-source-page .project-hero h1{background:linear-gradient(112deg,#fbfaff 17%,#d7d0ff 63%,#a5e5ff);-webkit-background-clip:text;background-clip:text;color:transparent}
.open-source-page .catalog-feature{position:relative;background:linear-gradient(120deg,#151c34,#10192d 58%,#1b1a35);border-color:#9eafff45;box-shadow:0 25px 76px #02040c65,0 0 56px color-mix(in srgb,var(--project-accent,#8275ff) 9%,transparent),inset 0 1px #ffffff10;transition:transform .25s,border-color .25s,box-shadow .25s}
.open-source-page .catalog-feature:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--project-accent,#a6b6ff) 64%,white);box-shadow:0 30px 86px #02040c80,0 0 64px color-mix(in srgb,var(--project-accent,#8275ff) 16%,transparent)}
.open-source-page .feature-image,.open-source-page .catalog-visual{background-color:#11172a;background-image:radial-gradient(ellipse at 50% 0%,color-mix(in srgb,var(--project-accent,#8275ff) 27%,transparent),transparent 66%),linear-gradient(145deg,#171d35,#101727)}
.open-source-page .feature-image img,.open-source-page .catalog-visual img{box-shadow:0 18px 48px #0006}
.open-source-page .feature-copy h2,.open-source-page .catalog-title h3{color:#f4f3ff}
.open-source-page .catalog-project{background:linear-gradient(145deg,#111a2e,#0e1526);border-color:#8e9fc72c;box-shadow:0 15px 40px #03050c30;transition:transform .22s,border-color .22s,box-shadow .22s}
.open-source-page .catalog-project:hover{transform:translateY(-4px);border-color:color-mix(in srgb,var(--project-accent,#a1b1ff) 68%,white);box-shadow:0 22px 54px #02040c70,0 0 34px color-mix(in srgb,var(--project-accent,#8275ff) 12%,transparent)}
.open-source-page .project-category{background:#0b1222e8;border-color:#a0b4e352;backdrop-filter:blur(8px);border-radius:999px;padding:5px 13px}
.open-source-page .project-stage{position:relative;background:radial-gradient(ellipse at 60% 0%,color-mix(in srgb,var(--project-accent,#8275ff) 20%,transparent),transparent 62%),linear-gradient(145deg,#151d34,#101829);border-color:#9aaef33b;box-shadow:0 22px 74px #02040c60,0 0 48px color-mix(in srgb,var(--project-accent,#8275ff) 8%,transparent)}
.open-source-page .project-stage:not(.project-stage-phone)>img{box-shadow:0 14px 38px #0005}
.open-source-page .project-tags li{border-color:#98aaf145;border-radius:999px;background:linear-gradient(120deg,#151d35,#10182b);box-shadow:inset 0 1px #ffffff09}
.open-source-page .project-story{background:radial-gradient(ellipse at 12% 50%,#51429938,transparent 42%),radial-gradient(ellipse at 90% 15%,#087caa20,transparent 38%),#10182b;border-color:#879ac12d}
.open-source-page .project-cta{position:relative;margin-bottom:54px;padding:38px 42px;border:1px solid #9dacf13c;border-radius:24px;background:radial-gradient(ellipse at 9% 15%,#5843a72d,transparent 48%),linear-gradient(120deg,#111a30,#15182d);box-shadow:0 20px 60px #02040c52,inset 0 1px #ffffff0b}
.open-source-page .project-cta .button{box-shadow:0 0 30px color-mix(in srgb,var(--project-accent,#7b72ff) 23%,transparent)}
@media(max-width:850px){.open-source-page .project-cta{padding:28px;border-radius:20px}}
@media(max-width:600px){.open-source-page .project-cta{padding:24px 20px;margin-bottom:35px}.open-source-page .catalog-feature,.open-source-page .catalog-project,.open-source-page .project-stage{box-shadow:0 14px 38px #02040c50}}
@media(prefers-reduced-motion:reduce){.open-source-page .catalog-feature,.open-source-page .catalog-project{transition:none}.open-source-page .catalog-feature:hover,.open-source-page .catalog-project:hover{transform:none}}
