/* Additional projects use the archive's type, palette and open editorial layout. */
.case-hedgehog .case-visual { background:#39464e; }
.case-hedgehog .case-visual > span { font-size:clamp(3.25rem,6.4vw,7rem); max-width:8ch; }
.case-kruti .case-visual { background:#e84426; }
.case-kruti .case-visual::after { content:""; background:linear-gradient(0deg,rgba(24,12,6,.78),rgba(24,12,6,.2) 35%,transparent 65%); pointer-events:none; }
.case-kruti .case-visual img { width:100%; height:100%; object-fit:cover; object-position:50% 50%; }
.case-kicker .real-project { color:#38551d; }

.project-page { background:var(--paper); color:var(--ink); }
.project-page .site-header { border-bottom:1px solid #c8c5bb; }
.project-page .wordmark-dot { color:var(--orange); }
.project-page .project-back { display:inline-flex; align-items:center; gap:.65rem; margin-left:auto; min-height:44px; font-size:.875rem; font-weight:700; }
.project-back span { display:inline-block; transition:transform 200ms var(--ease-out,cubic-bezier(.23,1,.32,1)); }
.project-wrap { width:100%; padding-inline:clamp(1.25rem,7vw,10rem); }
.project-intro { padding-block:clamp(4rem,8vw,8rem) clamp(3rem,5vw,5rem); display:grid; grid-template-columns:1.2fr .8fr; align-items:end; gap:2rem; }
.project-intro .section-index { grid-column:1/-1; margin-bottom:0; }
.project-intro h1 { font:600 clamp(4.5rem,10vw,11rem)/.98 var(--display); letter-spacing:-.045em; margin:0; }
.project-intro h1 em { color:var(--orange); font-style:normal; }
.project-intro-copy { max-width:29rem; padding-bottom:.45rem; }
.project-intro-copy > p { font-size:clamp(1.06rem,1.55vw,1.375rem); line-height:1.55; margin:0 0 1.5rem; }
.project-tags { display:flex; gap:.55rem 1.1rem; flex-wrap:wrap; font-size:.76rem; font-weight:700; }
.project-tags span { padding-block:.4rem; border-bottom:1px solid #bcbab0; }
.project-feature { margin:0; position:relative; overflow:hidden; }
.hedgehog-feature { aspect-ratio:16/9; background:#334352; color:white; }
.hedgehog-feature > img { width:100%; height:100%; object-fit:cover; display:block; }
.hedgehog-feature::after { content:''; position:absolute; inset:0; background:linear-gradient(0deg,rgba(11,26,40,.7),transparent 75%); pointer-events:none; }
.hedgehog-feature figcaption { position:absolute; inset:auto clamp(1.5rem,5vw,5rem) clamp(1.5rem,4vw,4rem); z-index:1; }
.hedgehog-feature figcaption > p { font-size:clamp(.8rem,1.1vw,1rem); font-weight:600; margin:0 0 1.25rem; }
.hedgehog-feature h2 { font-family:Arial,'Malgun Gothic',sans-serif; font-size:clamp(2.2rem,5vw,5.5rem); line-height:1.25; letter-spacing:-.06em; max-width:12ch; }
.feature-bottom { display:flex; justify-content:space-between; align-items:end; gap:2rem; margin-top:2rem; }
.feature-bottom p { font-size:1rem; line-height:1.5; margin:0; }
.feature-bottom a { display:inline-flex; gap:1.75rem; align-items:center; background:var(--paper); color:var(--ink); font-weight:700; padding:1rem 1.25rem; min-height:52px; white-space:nowrap; }
.feature-bottom a span { font-size:1.4rem; }
.project-facts { display:grid; grid-template-columns:repeat(3,1fr); padding-block:1.8rem; gap:2rem; border-bottom:1px solid #c8c5bb; }
.project-facts dt { font-size:.7rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; margin-bottom:.7rem; }
.project-facts dd { font-size:.95rem; line-height:1.5; margin:0; }
.project-story { display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,7vw,8rem); padding-block:clamp(4.5rem,8vw,8rem); }
.project-story h2 { font-size:clamp(3rem,5vw,5.75rem); line-height:1.06; }
.project-prose p { font-size:clamp(1.05rem,1.3vw,1.2rem); line-height:1.65; margin:0 0 1.25rem; }
.project-prose p:last-child { margin-bottom:0; }
.project-prose strong { font-weight:800; }
.project-gallery { display:grid; grid-template-columns:1.35fr 1fr; gap:clamp(1.25rem,3vw,3rem); align-items:start; }
.project-gallery figure { margin:0; }
.project-gallery figure:nth-child(2) { padding-top:5rem; }
.project-gallery img { width:100%; height:auto; aspect-ratio:4/3; object-fit:cover; display:block; }
.project-gallery figcaption { margin-top:1rem; font-size:.88rem; line-height:1.6; color:#54544e; max-width:32rem; }
.project-note { font-size:.85rem!important; color:#5d5d54; }
.project-external { display:inline-flex; gap:1.5rem; align-items:center; min-height:48px; border-bottom:2px solid var(--ink); font-size:1rem; font-weight:800; padding:.65rem 0; margin-top:.5rem; }
.project-external span { display:inline-block; font-size:1.35rem; transition:transform 200ms var(--ease-out,cubic-bezier(.23,1,.32,1)); }
.project-end { background:var(--ink); color:var(--paper); margin-top:clamp(2rem,5vw,5rem); padding-block:clamp(4rem,8vw,8rem); display:grid; grid-template-columns:1.15fr .85fr; gap:clamp(2rem,5vw,6rem); align-items:end; border-top:.6rem solid var(--orange); }
.project-end h2 { font-size:clamp(3rem,5.5vw,6rem); line-height:1.07; }
.project-end h2 em { color:var(--acid); font-style:normal; }
.project-end p { max-width:28rem; color:#d7d5ca; font-size:1.05rem; line-height:1.6; margin:0 0 1.5rem; }
.project-page footer { flex-wrap:wrap; }
.project-page footer > a:not(.wordmark) { min-height:44px; display:inline-flex; align-items:center; }
.project-skip { position:fixed; top:1rem; left:1rem; z-index:1000; background:var(--acid); color:var(--ink); padding:1rem; transform:translateY(-200%); }
.project-skip:focus { transform:none; }

.kruti-feature { position:relative; isolation:isolate; min-height:clamp(31rem,55vw,50rem); background:#e84426; color:#ffeaa9; padding:clamp(1.5rem,4vw,4rem); }
.kruti-feature h2 { position:relative; z-index:0; font:700 clamp(5rem,12vw,13.5rem)/.9 var(--display); letter-spacing:-.025em; margin:0; }
.kruti-feature .kruti-hero-food { position:absolute; z-index:1; width:49%; height:96%; right:4%; top:0; object-fit:contain; transform:rotate(-11deg); }
.kruti-feature .kruti-sticker { position:absolute; right:3%; bottom:10%; z-index:2; padding:1rem; transform:rotate(7deg); background:#ffeaa9; color:#9e260f; font:600 clamp(1.3rem,2.2vw,2.25rem)/1.1 var(--display); }
.kruti-feature .kruti-caption { position:absolute; left:clamp(1.5rem,4vw,4rem); bottom:clamp(1.5rem,4vw,4rem); z-index:2; font-size:.8rem; font-weight:800; letter-spacing:.05em; text-transform:uppercase; max-width:40%; }
.flavor-demo { background:#eadfc7; color:var(--ink); display:grid; grid-template-columns:1fr 1fr; min-height:38rem; }
.flavor-stage { position:relative; min-height:38rem; overflow:hidden; }
.flavor-image { display:block; position:absolute; width:90%; height:91%; object-fit:contain; left:5%; top:3%; opacity:0; transform:translateY(3%) rotate(-9deg); transition:opacity 200ms ease,transform 250ms var(--ease-out,cubic-bezier(.23,1,.32,1)); }
.flavor-image.is-current { opacity:1; transform:translateY(0) rotate(-9deg); }
.flavor-copy { align-self:center; padding:clamp(1.5rem,4vw,4rem) clamp(1.5rem,4vw,4rem) clamp(1.5rem,4vw,4rem) 1.5rem; }
.flavor-copy h2 { font-size:clamp(3rem,5vw,5.5rem); line-height:1.08; margin-bottom:1.5rem; }
.flavor-copy > p { line-height:1.65; font-size:1.05rem; max-width:29rem; }
.flavor-picker { display:flex; gap:.55rem; flex-wrap:wrap; margin-top:1.5rem; }
.flavor-picker[hidden] { display:none; }
.flavor-picker button { font:700 .9rem var(--sans); padding:.85rem 1rem; min-height:48px; background:transparent; border:1px solid #918876; color:var(--ink); cursor:pointer; transition:background 150ms ease, color 150ms ease, transform 120ms var(--ease-out,cubic-bezier(.23,1,.32,1)); }
.flavor-picker button[aria-pressed="true"] { background:var(--ink); color:var(--paper); border-color:var(--ink); }
.flavor-picker button:active { transform:scale(.97); }
.flavor-description { min-height:4rem; margin-top:1.5rem; font-size:.95rem!important; }
.flavor-description strong { display:block; margin-bottom:.35rem; }
.flavor-demo[data-instant] .flavor-image { transition:none; }
@media (hover:hover) and (pointer:fine) {
  .project-back:hover span { transform:translateX(-4px); }
  .project-external:hover span { transform:translate(3px,-3px); }
  .flavor-picker button:hover { background:#d5c7a9; color:var(--ink); }
  .flavor-picker button[aria-pressed="true"]:hover { background:#32332d; color:var(--paper); }
}
@media(max-width:760px) {
  .project-intro { grid-template-columns:1fr; padding-top:3.5rem; gap:1.8rem; }
  .project-intro h1 { font-size:clamp(4rem,17vw,6rem); }
  .project-intro-copy { max-width:32rem; }
  .project-page .project-back { font-size:.78rem; gap:.35rem; }
  .project-page .site-header { gap:.75rem; }
  .hedgehog-feature { aspect-ratio:auto; min-height:36rem; }
  .hedgehog-feature > img { position:absolute; inset:0; object-position:61% center; }
  .hedgehog-feature figcaption { inset:auto 1.5rem 1.5rem; }
  .hedgehog-feature h2 { font-size:clamp(2rem,8.6vw,3rem); }
  .feature-bottom { display:block; margin-top:1.25rem; }
  .feature-bottom a { margin-top:1.5rem; font-size:.9rem; }
  .feature-bottom p { font-size:.9rem; }
  .project-facts { grid-template-columns:1fr; gap:1.35rem; padding-block:1.75rem; }
  .project-facts > div { display:grid; grid-template-columns:5.5rem 1fr; gap:1rem; }
  .project-facts dt { margin:0; padding-top:.2rem; }
  .project-story { grid-template-columns:1fr; padding-block:4rem; gap:2rem; }
  .project-story h2 { font-size:clamp(2.8rem,10.5vw,4rem); }
  .project-gallery { grid-template-columns:1fr; gap:2rem; }
  .project-gallery figure:nth-child(2) { padding-top:0; }
  .project-end { grid-template-columns:1fr; gap:2rem; }
  .project-end .button { font-size:.88rem; gap:.7rem; }
  .kruti-feature { min-height:37rem; }
  .kruti-feature h2 { font-size:clamp(3rem,17vw,8rem); position:relative; z-index:2; }
  .kruti-feature .kruti-hero-food { width:89%; height:72%; top:21%; right:-2%; }
  .kruti-feature .kruti-sticker { bottom:4%; right:5%; font-size:1.3rem; }
  .kruti-feature .kruti-caption { bottom:3%; max-width:47%; font-size:.65rem; }
  .flavor-demo { grid-template-columns:1fr; }
  .flavor-stage { min-height:25rem; }
  .flavor-image { width:80%; left:10%; }
  .flavor-copy { padding:0 1.5rem 2rem; }
  .flavor-copy h2 { font-size:2.8rem; }
  .flavor-picker { gap:.45rem; }
  .flavor-picker button { padding:.8rem .7rem; font-size:.82rem; }
  .case-hedgehog .case-visual > span { font-size:3.5rem; }
}
@media(prefers-reduced-motion:reduce) {
  .flavor-image { transition:none; }
  .project-back span,.project-external span,.flavor-picker button { transition:none; }
  .project-back:hover span,.project-external:hover span,.flavor-picker button:active { transform:none; }
}

/* Recompose the portfolio contact area around a clear invitation and action. */
.works-page .works-contact { grid-template-columns:minmax(0,1.3fr) minmax(0,.85fr); gap:clamp(2.5rem,6vw,7rem); align-items:center; padding-block:clamp(3.5rem,6vw,6.5rem); border-top:6px solid var(--acid); }
.works-contact-heading .section-index { margin-bottom:1.6rem; color:var(--paper); opacity:.7; }
.works-contact-heading h2 { font-size:clamp(3.2rem,6.2vw,7rem); max-width:15ch; margin:0; line-height:1.1; }
.works-contact-action { max-width:30rem; min-width:0; }
.works-contact-names { font:600 clamp(1.8rem,2.5vw,2.75rem)/1.2 var(--display); margin:0 0 1rem; }
.works-contact-intro { font-size:clamp(1.05rem,1.3vw,1.25rem); line-height:1.65; color:#d7d5cc; margin:0 0 1.8rem; }
.works-contact-action .button { width:100%; justify-content:space-between; gap:1rem; padding:1.15rem 1.35rem; }
.works-contact-email { display:inline-flex; align-items:center; min-height:44px; margin-top:1.25rem; font-size:1rem; text-decoration:underline; text-underline-offset:5px; overflow-wrap:anywhere; }
.works-contact .works-contact-action .privacy-note { font-size:.82rem; line-height:1.65; margin-top:1.1rem; color:#b9b8ae; }
.works-contact-action a:focus-visible { outline-color:var(--acid); }
@media(max-width:760px) {
  .works-page .works-contact { grid-template-columns:1fr; gap:2rem; padding-block:3.5rem; }
  .works-contact-heading h2 { font-size:clamp(3rem,11vw,4.4rem); max-width:15ch; }
  .works-contact-action { max-width:none; }
  .works-contact-heading .section-index { margin-bottom:1.2rem; }
  .case-kruti .case-visual { height:auto; aspect-ratio:3/2; }
}
