/* The existing type systems remain the authority for each brand. */
body[data-brand=vibe]{font-family:var(--serif)}
body[data-brand=vibe] :is(.primary,.text-link,.skip-entry,.header-note,.input-tabs,.input-hint,.lesson-controls,.reading-top,.score-direction,.scale-labels,.profile-heading,.emotion-bars,.reading-bottom,.unit-switch,.metric-links,.fine-copy,.evidence-tabs,.example-fact,.record-buttons,.history-heading,.intent-options,.journey-footer,.gallery-footer,.mosaic-caption){font-family:var(--label)}
body[data-brand=vibe] :is(.lede,.supporting,.input-description){font-size:17px;line-height:1.8}
body[data-brand=vibe] :is(.scale-explainer p,.emotion-focus-copy,.evidence-explainer p,.intent-reading){font-size:15px;line-height:1.8}
body[data-brand=vibe] .hero .lede{font-size:17px}
.experience-controls{display:flex;align-items:center;gap:20px;flex-shrink:0}
.sound-control{display:flex;align-items:center;gap:9px;min-height:44px;color:var(--muted);font:10px var(--label);padding:5px 0}
.sound-control svg{width:19px;height:19px;stroke:currentColor;stroke-width:1.35;stroke-linecap:round;stroke-linejoin:round}
.sound-control[aria-pressed=true]{color:var(--ink)}
.sound-control .sound-waves{opacity:0}.sound-control .sound-slash{opacity:.7}
.sound-control[aria-pressed=true] .sound-waves{opacity:1}.sound-control[aria-pressed=true] .sound-slash{opacity:0}
.brand-gallery{grid-column:1/-1;width:100%;margin-top:55px;padding-top:68px;border-top:1px solid var(--line);perspective:1600px}
.gallery-invitation{display:block;width:fit-content;margin-top:24px;padding:10px 0;color:var(--muted);font:10px var(--label);border-bottom:1px solid var(--line);min-height:36px}
.gallery-invitation:hover{color:var(--ink)}.brand-gallery{scroll-margin-top:105px}
.gallery-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:60px;margin-bottom:38px}
.gallery-title{font:400 clamp(40px,4.6vw,74px)/1.1 var(--serif);letter-spacing:-.045em;margin:0}
.gallery-title span{display:block}
.gallery-description{max-width:32ch;font:15px/1.85 Inter,system-ui,sans-serif;color:var(--muted);margin:0 0 7px}
body[data-brand=vibe] .gallery-description{font:18px/1.65 var(--serif)}
.mosaic-grid{display:grid;grid-template-columns:1.32fr 1fr;grid-template-rows:230px 230px;gap:17px;transform-style:preserve-3d}
.mosaic-tile{position:relative;min-width:0;overflow:hidden;margin:0;background:var(--surface);border:1px solid var(--line);isolation:isolate;opacity:0;transform:translateY(28px) rotateX(5deg);transform-origin:50% 100%;transition:transform 1.65s var(--ease),opacity 1.6s var(--ease);transition-delay:calc(var(--tile-index)*140ms)}
.mosaic-tile-1{grid-row:1/3}
.brand-gallery.has-entered .mosaic-tile{opacity:1;transform:translateY(0) rotateX(0)}
.mosaic-image-plane{position:absolute;inset:0;overflow:hidden}
.mosaic-image,.mosaic-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.018);transition:opacity 1.9s var(--ease),transform 9s linear}
.mosaic-image.is-current{opacity:1}.mosaic-video.is-ready{opacity:1}
.brand-gallery[data-playing=true] .mosaic-image.is-current{transform:scale(1.065)}
.mosaic-tile:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#031107c4,transparent 54%),linear-gradient(120deg,#03110712,transparent);pointer-events:none}
body[data-brand=world] .mosaic-tile:after{background:linear-gradient(0deg,#05060ae0,transparent 58%)}
.mosaic-caption{position:absolute;bottom:24px;left:26px;right:26px;z-index:2;display:flex;gap:22px;align-items:center;color:var(--ink);font:11px var(--label)}
.mosaic-caption-index{opacity:.58;font-size:9px}
.gallery-footer{display:flex;align-items:center;justify-content:space-between;gap:35px;margin-top:20px;color:var(--muted);font:10px/1.8 var(--label)}
.gallery-footer p{margin:0;max-width:66ch}.gallery-pause{white-space:nowrap;padding:11px 0;min-height:44px;border-bottom:1px solid var(--line);font:10px var(--label);color:var(--muted)}
.gallery-pause:hover{color:var(--ink)}
body[data-motion=reduce] .mosaic-tile{opacity:1;transform:none!important}
body[data-motion=reduce] .mosaic-image{transform:none!important}
body[data-motion=reduce] .mosaic-video{opacity:0}
@media(min-width:761px) and (max-height:850px){.brand-gallery{margin-top:25px;padding-top:60px}.mosaic-grid{grid-template-rows:210px 210px}.gallery-title{font-size:54px}.gallery-description{font-size:14px}.experience-controls{gap:16px}.journey-footer{gap:20px}.journey-footer nav{gap:16px}}
@media(max-width:1150px){.sound-control span,.motion-control span{display:none}.experience-controls{gap:19px}.gallery-heading{gap:40px}.mosaic-grid{grid-template-rows:190px 190px}.gallery-title{font-size:48px}.gallery-description{font-size:13px;max-width:30ch}}
@media(max-width:760px){
 .brand-gallery{margin-top:10px;padding-top:48px}.gallery-heading{display:block;margin-bottom:28px}.gallery-title{font-size:42px;line-height:1.14}.gallery-description,body[data-brand=vibe] .gallery-description{margin-top:20px;font-size:16px;max-width:34ch}
 .mosaic-grid{grid-template-columns:1fr 1fr;grid-template-rows:290px 180px;gap:10px}.mosaic-tile-1{grid-row:1;grid-column:1/3}.mosaic-caption{bottom:17px;left:15px;right:15px;display:block;font-size:10px;line-height:1.6}.mosaic-caption-index{display:block;margin-bottom:8px;font-size:8px}.mosaic-tile-1 .mosaic-caption{display:flex;gap:16px}.mosaic-tile-1 .mosaic-caption-index{margin:0}
 .gallery-footer{gap:20px;align-items:flex-start;margin-top:17px;font-size:9px}.gallery-footer p{max-width:26ch}.gallery-pause{font-size:9px;padding-top:0;min-height:38px}
 .experience-controls{gap:11px}.sound-control{min-width:24px}.journey-footer .motion-control{min-width:24px}.journey-footer{gap:12px;padding:0 17px}.journey-footer nav{gap:1px;min-width:0}.journey-footer nav a{width:23px;min-width:20px}.journey-position{min-width:40px;gap:5px}.position-rule{width:11px}
 body[data-brand=vibe] :is(.lede,.supporting,.input-description),body[data-brand=vibe] .hero .lede{font-size:17px}.gallery-title{letter-spacing:-.035em}
}
@media(max-width:370px){.journey-footer{padding:0 14px;gap:10px}.journey-position{min-width:17px}.journey-position .position-rule,.journey-position>span:last-child{display:none}.journey-footer nav a{width:22px}.experience-controls{gap:10px}.gallery-title{font-size:37px}.mosaic-grid{grid-template-rows:245px 165px}.mosaic-caption{font-size:9px}.gallery-footer{gap:12px}}
@media(prefers-reduced-motion:reduce){.mosaic-tile{opacity:1;transform:none!important}.mosaic-image{transform:none!important}.mosaic-video{opacity:0}}
@media(min-width:761px){
 .brand-gallery{display:grid;grid-template-columns:.72fr 1.28fr;gap:0 54px;padding-top:48px}.gallery-heading{display:block;margin:0}.gallery-title{font-size:clamp(42px,4.1vw,66px)}.gallery-description,body[data-brand=vibe] .gallery-description{margin-top:25px;max-width:30ch}.mosaic-grid{grid-template-rows:210px 210px}.gallery-footer{grid-column:2;gap:25px;margin-top:13px;font-size:9px}.gallery-footer p{max-width:48ch}.mosaic-caption{left:21px;right:21px;gap:15px}
}
@media(min-width:761px) and (max-height:850px){.brand-gallery{padding-top:40px}.mosaic-grid{grid-template-rows:185px 185px}.gallery-title{font-size:51px}.gallery-description{font-size:14px}.mosaic-caption{font-size:10px;bottom:21px}.gallery-footer{font-size:9px}}
.gallery-title:focus{outline:none}
@keyframes mosaic-drift{from{transform:scale(1.018)}to{transform:scale(1.065)}}
.mosaic-image{transition:opacity 1.9s var(--ease);animation:mosaic-drift 18s ease-in-out infinite alternate;animation-play-state:paused}
.brand-gallery[data-playing=true] .mosaic-image{animation-play-state:running}
body[data-motion=reduce] .mosaic-image{animation:none}
@media(prefers-reduced-motion:reduce){.mosaic-image{animation:none}}
.engine-context{border-top:1px solid var(--line);margin-top:28px;padding-top:4px}
.engine-context summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:20px;font:11px/1.7 var(--label);padding:14px 0;min-height:44px}
.engine-context summary::-webkit-details-marker{display:none}.engine-context summary:focus-visible{outline:2px solid var(--accent);outline-offset:5px}
.engine-context p{color:var(--muted);font:16px/1.8 var(--serif);max-width:46ch}
.engine-context a{display:block;font:10px/1.8 var(--label);padding:10px 0;min-height:44px;text-decoration:underline;text-underline-offset:5px}
.vibe-engine-note{display:inline-block;margin-top:10px;font-size:10px}
