/* Source-game palettes and responsive motion surfaces. */
body[data-project=loofasoup]{--loofa-green:#2d6b4b;--loofa-yellow:#e6e7a3}
body[data-project=loofasoup] .case-section{border-color:#92a474}
body[data-project=loofasoup] #characters .section-visuals.character-row{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));gap:36px 28px;width:100%;max-width:none;overflow:visible}
body[data-project=loofasoup] #characters .loofa-character{min-width:0;width:100%;max-width:none;margin:0;padding:0}
.loofa-character-trigger{border:0;color:inherit;cursor:pointer;display:block;background:none;width:100%;padding:0;position:relative;height:220px}
body[data-project=loofasoup] #characters .loofa-character-trigger img{height:220px!important;width:100%;max-width:190px!important;max-height:220px!important;object-fit:contain;transition:transform .45s cubic-bezier(.2,.8,.2,1),filter .3s;filter:drop-shadow(0 8px 0 rgba(48,80,38,.07))}
.loofa-character-trigger:focus-visible{outline:2px solid var(--loofa-green);outline-offset:8px}.loofa-character.is-active .loofa-character-trigger img{animation:loofa-float 2.8s ease-in-out infinite;filter:drop-shadow(0 13px 5px rgba(48,80,38,.12))}
body[data-project=loofasoup] #characters .loofa-character .figure-media{width:100%;padding:0;height:232px;overflow:visible}
body[data-project=loofasoup] #characters .loofa-character figcaption{display:block;font-size:17px;line-height:1.55;padding-top:14px;text-align:left;max-width:none}
body[data-project=loofasoup] #characters .loofa-character figcaption>span{display:none}body[data-project=loofasoup] #characters .loofa-character .figure-caption-title{font-size:22px;margin-bottom:7px}
.loofa-menu{grid-column:1/-1;width:100%;min-width:0;padding:22px 0 16px;border-block:1px solid #94a775;margin:0 0 28px;background:linear-gradient(100deg,rgba(206,218,143,.35),rgba(242,229,153,.4))}
.loofa-menu-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;font-size:18px;padding:0 24px 18px;color:#2d6348}.loofa-menu-heading button{background:transparent;border:1px solid #719566;border-radius:30px;padding:9px 14px;font:inherit;font-size:14px;color:inherit;cursor:pointer}
.loofa-menu-viewport{width:100%;overflow-x:auto;scrollbar-width:thin;scrollbar-color:#89a467 transparent}.loofa-menu-track{display:flex;align-items:center;width:max-content;gap:14px;position:relative;padding:8px 0}.loofa-menu-loop{display:flex;align-items:center;gap:14px}
body[data-project=loofasoup] #production .loofa-menu .project-figure{flex:0 0 104px!important;width:104px!important;max-width:104px!important;margin:0!important;min-width:104px;display:block;grid-column:auto!important;padding:0!important}
body[data-project=loofasoup] #production .loofa-menu .figure-media{padding:0!important;min-height:0!important;background:none}.loofa-menu .project-figure img{height:96px!important;width:104px!important;max-height:96px!important;object-fit:contain}.loofa-menu figcaption{display:none!important}
body[data-project=loofasoup] #production .dish-grid{grid-template-columns:1fr!important}.loofa-recording{margin:30px 0 32px;width:100%;max-width:960px}.loofa-recording video{display:block;width:100%;aspect-ratio:16/9;object-fit:contain;background:#e6e7aa;border:1px solid #799653}.loofa-recording figcaption{display:flex;gap:20px;justify-content:space-between;align-items:start;padding-top:14px;font-size:17px;line-height:1.5}.loofa-recording figcaption span{color:var(--accent);white-space:nowrap;font-size:13px;text-transform:uppercase;letter-spacing:.07em}
.game-map-line,.game-map-label{will-change:clip-path,opacity;transition:opacity .15s linear,transform .15s linear;transform-box:fill-box;transform-origin:center}
body[data-project=hersound] #wish .project-figure{max-width:400px!important}body[data-project=hersound] #wish .figure-media{padding:0}body[data-project=hersound] #wish img{max-height:530px!important;width:100%;object-fit:contain}
body[data-project=ourworld] .case-section{border-color:#a2b29a}body[data-project=ourworld] #timeline .section-experience{margin-top:0}body[data-project=ourworld] .project-role{border-color:#ad7188}
@keyframes loofa-float{0%,100%{transform:translateY(-4px) rotate(-1deg)}50%{transform:translateY(-12px) rotate(1deg)}}
@media(max-width:900px){body[data-project=loofasoup] #characters .section-visuals.character-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}.loofa-recording figcaption{display:block}.loofa-recording figcaption span{display:block;margin-bottom:6px}}
@media(max-width:600px){body[data-project=loofasoup] #characters .loofa-character-trigger,body[data-project=loofasoup] #characters .loofa-character-trigger img{height:180px!important;max-height:180px!important}body[data-project=loofasoup] #characters .loofa-character .figure-media{height:190px}.loofa-menu-heading{font-size:16px;padding-inline:15px}.loofa-menu-heading button{font-size:13px}.loofa-recording{margin-block:24px}body[data-project=loofasoup] #characters .section-visuals.character-row{gap:24px 20px}}
@media(prefers-reduced-motion:reduce){.loofa-character img,.game-map-line,.game-map-label{animation:none!important;transition:none!important}.game-map-line{clip-path:none!important}.game-map-label{opacity:1!important;transform:none!important}}
body[data-project=loofasoup] #gameplay>.loofa-recording{grid-column:1/-1;justify-self:center}.loofa-recording figcaption p{font-size:17px!important;line-height:1.5!important;margin:0;max-width:570px}.loofa-recording figcaption a{text-underline-offset:4px;white-space:nowrap}
body:is([data-project=ambulance],[data-project=loofasoup],[data-project=hersound],[data-project=ourworld]) .layout-editorial>.section-body{position:static!important;top:auto!important}
/* Keep the original closing illustration beside the wish, at a readable scale. */
body[data-project=hersound] #wish{grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:7%;row-gap:20px;align-content:center;align-items:start}
body[data-project=hersound] #wish>.section-heading{grid-column:1;grid-row:1;align-self:end}
body[data-project=hersound] #wish>.section-body{grid-column:1;grid-row:2;align-self:start}
body[data-project=hersound] #wish>.section-visuals{grid-column:2;grid-row:1/3;align-self:center;margin:0}
body[data-project=hersound] #wish .project-figure{width:100%!important;max-width:530px!important;margin:auto}
body[data-project=hersound] #wish img{max-height:660px!important;width:100%;height:660px;object-fit:contain}
body:is([data-project=loofasoup],[data-project=hersound],[data-project=ourworld]) #abstract .section-visuals{max-width:600px;justify-self:center;align-items:end}
body:is([data-project=loofasoup],[data-project=hersound],[data-project=ourworld]) #abstract .figure-media{padding:0;background:none}
body:is([data-project=loofasoup],[data-project=hersound],[data-project=ourworld]) #abstract img{max-height:280px!important;object-fit:contain}
body[data-project=ourworld] #portraits img{max-height:330px!important;object-fit:contain}
body[data-project=loofasoup] #characters .loofa-character figcaption p{text-wrap:balance;hyphens:none}
@media(max-width:760px){body[data-project=hersound] #wish{grid-template-columns:1fr;gap:25px}body[data-project=hersound] #wish>.section-heading,body[data-project=hersound] #wish>.section-body,body[data-project=hersound] #wish>.section-visuals{grid-column:1;grid-row:auto}body[data-project=hersound] #wish img{height:520px;max-height:520px!important}body[data-project=ambulance] #city h2{text-wrap:balance;max-width:100%;font-size:clamp(30px,8.2vw,38px)!important}body[data-project=loofasoup] #characters .section-visuals.character-row{gap:28px 18px}}
@media(max-width:600px){body[data-project=loofasoup] #characters .section-visuals.character-row{display:flex!important;flex-direction:row!important;align-items:start;gap:24px;width:100%;max-width:100%;overflow-x:auto!important;padding:10px 8px 22px;scroll-snap-type:x proximity;scrollbar-width:thin;scrollbar-color:#89a467 transparent}body[data-project=loofasoup] #characters .loofa-character{flex:0 0 235px;width:235px;scroll-snap-align:start}body[data-project=loofasoup] #characters .loofa-character figcaption p{font-size:17px!important}}
body[data-project=hersound] #abstract .section-visuals{display:flex!important;flex-direction:row!important;justify-content:center;gap:25px;width:100%;max-width:530px}
body[data-project=hersound] #abstract .project-figure{flex:1 1 0;min-width:0;width:auto!important;max-width:225px}
body[data-project=hersound] #abstract figcaption{display:block;text-align:center}body[data-project=hersound] #abstract figcaption>span{display:none}
@media(min-width:761px){body:is([data-project=loofasoup],[data-project=hersound],[data-project=ourworld]) #abstract,body[data-project=ourworld] #portraits{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:7%;row-gap:25px;align-items:start}body:is([data-project=loofasoup],[data-project=hersound],[data-project=ourworld]) #abstract>.section-heading,body[data-project=ourworld] #portraits>.section-heading{grid-column:1!important;grid-row:1!important}body:is([data-project=loofasoup],[data-project=hersound],[data-project=ourworld]) #abstract>.section-body,body[data-project=ourworld] #portraits>.section-body{grid-column:2!important;grid-row:1/3!important;align-self:center}body:is([data-project=loofasoup],[data-project=hersound],[data-project=ourworld]) #abstract>.section-visuals,body[data-project=ourworld] #portraits>.section-visuals{grid-column:1!important;grid-row:2!important;margin:0!important;justify-self:center}}
@media(max-width:760px){body[data-project=hersound] #abstract img{width:100%;height:210px;max-height:210px!important}body[data-project=hersound] #abstract .section-visuals{gap:18px}}
/* Compact narrative close and short archive introduction. */
body[data-project=hersound] #wish .project-figure{max-width:340px!important}
@media(min-width:761px){
 body[data-project=hersound] #wish>.section-body{grid-column:2!important;grid-row:1/3!important;align-self:center!important}
 body[data-project=hersound] #wish>.section-heading{grid-column:1!important;grid-row:1!important;align-self:end!important}
 body[data-project=hersound] #wish>.section-visuals{grid-column:1!important;grid-row:2!important;align-self:start!important}
 body[data-project=ourworld] #abstract{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr) 220px!important;column-gap:45px!important;align-items:center!important}
 body[data-project=ourworld] #abstract>.section-heading{grid-column:1!important;grid-row:1!important;align-self:center!important}
 body[data-project=ourworld] #abstract>.section-heading h2{font-size:clamp(30px,2.7vw,39px)!important;line-height:1.2!important}
 body[data-project=ourworld] #abstract>.section-body{grid-column:2!important;grid-row:1!important;align-self:center!important}
 body[data-project=ourworld] #abstract>.section-visuals{grid-column:3!important;grid-row:1!important;align-self:center!important}
}
@media(max-width:760px){body[data-project=hersound] #wish .project-figure{max-width:270px!important}}
