/* Projects only: approved illustrations, editorial index and native case-study readers. */
.projects-page main .container{max-width:1280px}
.projects-page .portfolio-intro{padding:28px 0 40px;border-bottom:0;background:var(--bg)}
.projects-page .portfolio-intro .breadcrumb{margin-bottom:28px}
.projects-page .portfolio-hero-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.85fr);gap:clamp(32px,5vw,72px);align-items:end}
.projects-page .portfolio-intro .page-title{font-size:clamp(36px,3.8vw,54px);line-height:1.15;letter-spacing:-.04em;margin:0;max-width:23ch;text-wrap:balance}
.projects-page .portfolio-intro .eyebrow{margin-bottom:14px}
.projects-page .portfolio-intro .lead{font-size:16px;line-height:1.8;margin:12px 0 20px}
.portfolio-studio{font-size:13px;color:var(--brand-text-strong);font-weight:700;margin:0}
.portfolio-tags{list-style:none;display:flex;flex-wrap:wrap;gap:8px 16px;margin:20px 0;padding:0;color:var(--text-muted);font-size:12px;line-height:1.7}
.portfolio-tags li{padding-inline-start:10px;border-inline-start:2px solid var(--brand-border)}
.portfolio-intro-side>.text-link{font-size:14px}
.portfolio-feature{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,.85fr);gap:clamp(32px,4vw,56px);align-items:center;padding-block:24px 72px}
.featured-media,.portfolio-image,.projects-page .case-media{background:var(--paper);border:1px solid var(--border-subtle);border-radius:var(--image-frame-radius);overflow:hidden;aspect-ratio:3/2}
.projects-page .portfolio-link[href="#smart-umbrella"] .portfolio-image,.projects-page #smart-umbrella .case-media{background:transparent}
.featured-media{padding:18px}
.featured-media img,.portfolio-image img,.projects-page .case-media img{display:block;width:100%;height:100%;object-fit:contain}
.featured-copy{min-width:0}
.featured-copy h2{font-size:clamp(26px,2.6vw,36px);line-height:1.25;letter-spacing:-.035em;text-wrap:balance;margin:0 0 20px}
.featured-copy>p:not(.eyebrow):not(.case-badge){font-size:15px;line-height:1.85;color:var(--text-muted);margin:18px 0}
.featured-copy .case-badge{display:flex;align-items:center;gap:8px;color:var(--brand-text-strong);font-size:12px;font-weight:700;line-height:1.7;margin:0}
.featured-copy .case-badge-part{white-space:normal}
.featured-copy .btn{gap:var(--control-gap);font-size:14px;border-radius:var(--control-radius);min-height:var(--control-height)}
.portfolio-section-head{margin-bottom:36px;max-width:780px}
.portfolio-section-head .eyebrow{margin-bottom:12px}
.portfolio-section-head h2{font-size:clamp(27px,3vw,38px);line-height:1.3;letter-spacing:-.025em;margin:0;text-wrap:balance}
.portfolio-index{padding-block:48px 88px;border-top:1px solid var(--border-subtle);scroll-margin-top:16px}
.portfolio-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:48px 36px;align-items:start}
.portfolio-link{display:block;grid-column:span 7;min-width:0;color:var(--text);text-decoration:none}
.portfolio-link:nth-child(2),.portfolio-link:nth-child(3),.portfolio-link:nth-child(6){grid-column:span 5}
.portfolio-link:nth-child(2){margin-top:96px}
.portfolio-link:nth-child(4),.portfolio-link:nth-child(6){margin-top:64px}
.portfolio-image{padding:16px;transition:border-color .2s}
.portfolio-caption{display:grid;grid-template-columns:28px minmax(0,1fr) 22px;gap:14px;align-items:start;padding-top:20px}
.portfolio-number,.story-number{font:500 12px/1.8 ui-monospace,monospace;color:var(--brand-text-strong)}
.portfolio-caption h3{font-size:clamp(20px,2vw,26px);font-weight:700;line-height:1.35;letter-spacing:-.025em;margin:0;text-wrap:balance}
.portfolio-caption p{font-size:13px;line-height:1.7;color:var(--text-muted);margin:10px 0 0}
.portfolio-arrow{font-size:22px;color:var(--brand-text-strong);line-height:1.4}
.portfolio-stories{padding-block:32px 72px}
.projects-page .case-study{padding:0;border-bottom:1px solid var(--border);scroll-margin-top:16px}
.projects-page .case-study:first-of-type{border-top:1px solid var(--border)}
.project-story>summary{display:grid;grid-template-columns:40px minmax(0,1fr) 28px;gap:24px;align-items:center;list-style:none;cursor:pointer;padding:28px 0}
.project-story>summary::-webkit-details-marker{display:none}
.project-story>summary h2{font-size:clamp(22px,2.2vw,30px);font-weight:700;line-height:1.35;letter-spacing:-.025em;margin:0}
.story-toggle{width:28px;height:28px;position:relative;border:1px solid var(--border);border-radius:50%;color:var(--brand-text-strong)}
.story-toggle::before,.story-toggle::after{content:"";position:absolute;top:12px;left:7px;width:12px;height:1px;background:currentColor}
.story-toggle::after{transform:rotate(90deg)}
.project-story[open]>summary .story-toggle::after{display:none}
.project-story[open]>summary{color:var(--brand-text-strong)}
.projects-page .case-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,5vw,72px);padding-block:16px 48px;align-items:start;min-width:0}
.projects-page .case-media{padding:16px;min-width:0;width:100%;height:auto}
.projects-page .case-copy{min-width:0}
.projects-page .case-copy>.eyebrow{color:var(--text-muted);font-size:11px;margin:0 0 14px}
.projects-page .case-copy .case-badge{margin-bottom:24px;max-width:100%;font-weight:700}
.project-story-part{margin-bottom:28px}
.project-story-part h3,.story-spec-label{font-size:12px;font-weight:700;line-height:1.5;color:var(--brand-text-strong);margin:0 0 10px}
.project-story-part p{font-size:16px;line-height:1.85;margin:0;color:var(--text-muted)}
.projects-page .case-list{margin-top:0;border-top-color:var(--border);font-size:14px;line-height:1.8}
.projects-page .case-list small{font-size:11px;font-weight:700;line-height:1.6}
.portfolio-back{display:inline-block;font-size:13px;margin-top:24px}
.projects-page .project-documentation-section{background:var(--bg);border-top:1px solid var(--border-subtle);border-bottom:0;padding-block:64px}
.projects-page .documentation-intro{gap:48px}
.projects-page .documentation-intro .section-title{font-size:clamp(27px,3vw,38px)}
.projects-page .documentation-lead{font-size:16px}
.projects-page .walkthrough-card{border:0;border-radius:0;background:transparent}
.projects-page .walkthrough-media{border:1px solid var(--border-subtle);border-radius:12px}
.projects-page .walkthrough-card figcaption{padding:18px 0}
.projects-page .documentation-note{border-top:1px solid var(--border-subtle);padding-top:20px}
/* One cohesive achievement/request panel; original copy and column structure stay intact. */
.portfolio-close .feature-grid{
  grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:40px;
  padding:clamp(28px,3.5vw,44px);border:1px solid var(--brand-hover);border-radius:16px;
  color:var(--on-brand);background-color:var(--brand-hover);
  background-image:
    linear-gradient(90deg,color-mix(in srgb,var(--on-brand) 4%,transparent) 1px,transparent 1px),
    linear-gradient(0deg,color-mix(in srgb,var(--on-brand) 4%,transparent) 1px,transparent 1px);
  background-size:48px 48px;
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--on-brand) 14%,transparent);
}
.portfolio-close .feature-box{border:0;padding:0;border-radius:0;background:transparent;color:var(--on-brand)}
.portfolio-close .feature-box+.feature-box{border-inline-start:1px solid color-mix(in srgb,var(--on-brand) 24%,transparent);padding-inline-start:40px}
.portfolio-close .feature-box .eyebrow{color:var(--on-brand-muted);font-size:11px;margin:0 0 16px}
.portfolio-close .feature-box p:not(.eyebrow){color:var(--on-brand-muted);font-size:15px;line-height:1.85}
.portfolio-close .feature-box h3{color:var(--on-brand);font-size:clamp(24px,2.2vw,30px);font-weight:700;line-height:1.35;margin:0 0 16px;text-wrap:balance}
.portfolio-close .actions{margin-top:26px}
.portfolio-close .btn.primary{background:var(--on-brand);border-color:var(--on-brand);color:var(--brand-hover);font-size:14px;min-height:var(--control-height);border-radius:var(--control-radius)}
.portfolio-close .btn.primary:hover{background:var(--on-brand-muted);border-color:var(--on-brand-muted);color:var(--brand-hover)}
.projects-page .portfolio-close .btn.primary:focus-visible{outline-color:var(--on-brand)}
.projects-page main :is(a,summary):focus-visible{outline:3px solid var(--focus-ring);outline-offset:5px;border-radius:6px}
html[dir="rtl"] .projects-page :is(.page-title,.featured-copy h2,.portfolio-section-head h2,.portfolio-caption h3,.project-story>summary h2){letter-spacing:0;line-height:1.45}
html[dir="rtl"] .projects-page :is(.portfolio-arrow,.featured-copy .btn>span){transform:scaleX(-1)}
@media(min-width:1101px) and (min-height:720px){
 .projects-page .project-story[open] .case-media{position:sticky;top:120px}
}
@media(hover:hover) and (pointer:fine){
 .portfolio-link:hover .portfolio-image{border-color:var(--brand-border)}
 .portfolio-link:hover h3,.project-story>summary:hover h2{color:var(--brand-text-strong)}
}
@media(max-width:1100px){
 .projects-page .portfolio-hero-grid,.portfolio-feature,.projects-page .case-grid{grid-template-columns:minmax(0,1fr)}
 .projects-page .portfolio-intro .page-title{max-width:28ch}
 .portfolio-intro-side{max-width:780px}
 .portfolio-feature{gap:28px;padding-block:20px 56px}
 .featured-media{max-width:850px}
 .featured-copy{max-width:760px}
 .portfolio-grid{grid-template-columns:minmax(0,1fr);gap:40px}
 .portfolio-link:nth-child(n){grid-column:auto;margin-top:0}
 .portfolio-image{max-width:850px}
 .portfolio-index{padding-block:40px 56px}
 .projects-page .case-media{position:static;max-width:760px}
 .projects-page .documentation-intro{grid-template-columns:minmax(0,1fr);gap:24px}
 .portfolio-stories{padding-block:24px 48px}
}
@media(max-width:768px){
 .projects-page .case-grid{gap:28px;padding-bottom:32px}
 .projects-page .story-spec-label{display:none}
 .projects-page .case-copy .mobile-disclosure>summary{border-top:1px solid var(--border);font-size:14px}
 .projects-page .case-copy .mobile-detail-content{padding-bottom:0}
 .projects-page .case-list{border-top:0}
 .portfolio-close .feature-grid{grid-template-columns:minmax(0,1fr);gap:28px}
 .portfolio-close .feature-box+.feature-box{border-inline-start:0;border-top:1px solid color-mix(in srgb,var(--on-brand) 24%,transparent);padding:28px 0 0}
}
@media(max-width:600px){
 .portfolio-close .feature-grid{padding:24px;gap:24px}
 .portfolio-close .feature-box+.feature-box{padding-top:24px}
 .projects-page .portfolio-intro{padding:24px 0 28px}
 .projects-page .portfolio-intro .breadcrumb{margin-bottom:22px}
 .projects-page .portfolio-intro .page-title{font-size:32px;line-height:1.2}
 .projects-page .portfolio-hero-grid{gap:24px}
 .portfolio-feature{padding-bottom:44px}
 .featured-media,.portfolio-image,.projects-page .case-media{padding:8px;border-radius:10px}
 .featured-copy h2{font-size:27px}
 .portfolio-section-head{margin-bottom:28px}
 .portfolio-caption{grid-template-columns:22px minmax(0,1fr) 20px;gap:10px;padding-top:16px}
 .portfolio-caption h3{font-size:21px}
 .project-story>summary{grid-template-columns:24px minmax(0,1fr) 26px;gap:12px;padding-block:22px}
 .project-story>summary h2{font-size:20px}
 .story-toggle{width:26px;height:26px}
 .story-toggle::before,.story-toggle::after{top:11px;left:6px}
 .projects-page .project-documentation-section{padding-block:44px}
 .projects-page .walkthrough-grid{gap:24px}
}
/* Progressive enhancement: everything remains readable without JavaScript. */
.projects-page.portfolio-motion .portfolio-reveal:not(.is-revealed){opacity:0;transform:translateY(8px)}
.projects-page.portfolio-motion .portfolio-reveal.is-revealed{animation:portfolioReveal 450ms ease-out both;animation-delay:var(--portfolio-delay,0ms)}
@keyframes portfolioReveal{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){
 .projects-page .portfolio-reveal{animation:none!important;opacity:1!important;transform:none!important}
 .portfolio-image{transition:none}
 .projects-page .project-story[open] .case-media{position:static}
}
.projects-page .case-request{display:inline-flex;align-items:center;justify-content:center;margin-block-start:24px;margin-inline-end:20px;padding:11px 18px;min-height:var(--control-height);border-radius:8px;font-size:14px;font-weight:600;line-height:1.6}
