/* Atelier vivant — the studio, from an idea to a world. */
.studio-story { --atelier-width: min(100% - 7vw,1440px); --motion-ease: cubic-bezier(.16,1,.3,1); }
.studio-story main { overflow: visible; }
.studio-icon-defs { position: absolute; width: 0; height: 0; overflow: hidden; }
.studio-icon { display: inline-block; width: 1em; height: 1em; flex-shrink: 0; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; vertical-align: -.12em; }
.collab-social-trigger { position: absolute; top: calc(100% - 100svh); width: 1px; height: 1px; pointer-events: none; }
.collab-story { position: relative; height: 100svh; }
.collab-enabled .collab-story { height: 360svh; }
.collab-stage { position: sticky; top: 0; height: 100svh; overflow: clip; isolation: isolate; background: #f8f7f3; }
.collab-grid { position: absolute; inset: 0; z-index: -1; background-image: radial-gradient(#b8b3aa 1px,transparent 1px); background-size: 23px 23px; opacity: .38; mask-image: radial-gradient(ellipse at center,#000 15%,transparent 72%); }
.collab-topline { position: absolute; top: 108px; left: 3.5%; right: 3.5%; display: flex; justify-content: space-between; gap: 20px; font-size: 10px; letter-spacing: .06em; text-transform: uppercase; color: #77736d; z-index: 7; }
.collab-topline > span:first-child { display: flex; align-items: center; gap: 8px; }
.collab-topline i { width: 6px; height: 6px; border-radius: 50%; background: var(--primary); box-shadow: 0 0 0 4px #0212ee0b; }
.collab-canvas { position: absolute; inset: 148px 0 124px; container-type: size; touch-action: pan-y; }
.collab-scene { position: absolute; inset: 0; transform-origin: 50% 50%; }
.collab-scene { contain: layout style; }
.collab-scene--make,.collab-scene--world { opacity: 0; visibility: hidden; }
.collab-idea-heading { position: absolute; left: 21%; top: 27%; width: 64%; }
.collab-object-label { display: block; color: var(--primary); font: 9px ui-monospace,monospace; letter-spacing: .08em; margin: 0 0 25px 7px; }
.studio-story .collab-idea-heading h1 { margin: 0; font-size: clamp(95px,12.8vw,205px); letter-spacing: 0; font-weight: 400; line-height: 1.04; text-wrap: nowrap; }
.collab-selected { position: relative; display: inline-block; padding-inline: .055em; margin-left: .03em; color: var(--primary); border: 1.5px solid var(--primary); transform: rotate(-3deg); transform-origin: bottom left; }
.collab-elastic { display: inline-block; transform-origin: left center; animation: collab-idea-stretch 8s cubic-bezier(.45,0,.25,1) infinite paused; }
@keyframes collab-idea-stretch {
  0%,16%,100% { transform: scale(1,1); }
  39% { transform: scale(1.11,.965); }
  58% { transform: scale(.975,1.025); }
  77% { transform: scale(1,1); }
}
.collab-selected > i,.collab-selection > i { position: absolute; width: 8px; height: 8px; border: 1.5px solid var(--primary); background: #fff; }
.collab-selected > i:nth-of-type(1),.collab-selection > i:nth-of-type(1) { left: -5px; top: -5px; }
.collab-selected > i:nth-of-type(2),.collab-selection > i:nth-of-type(2) { right: -5px; top: -5px; }
.collab-selected > i:nth-of-type(3),.collab-selection > i:nth-of-type(3) { left: -5px; bottom: -5px; }
.collab-selected > i:nth-of-type(4),.collab-selection > i:nth-of-type(4) { right: -5px; bottom: -5px; }
.collab-idea-heading p { margin: 28px 0 0 7px; font-size: clamp(17px,1.5vw,23px); letter-spacing: -.025em; }
.collab-scribble { position: absolute; top: 9%; left: 41%; color: var(--primary); font: clamp(20px,2vw,32px) var(--hand); transform: rotate(-7deg); }
.collab-scribble svg { position: absolute; left: 100%; top: 15px; width: 95px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; }
.collab-circle { position: absolute; width: 32px; height: 32px; border-radius: 50%; background: var(--interaction); right: 19%; bottom: 6%; }
.collab-typeboard { position: absolute; width: 35%; height: 91%; left: 32.5%; top: 0; padding: 22px 25px; background: var(--primary); color: var(--paper); transform: rotate(-6deg); box-shadow: 0 18px 38px #201d281c; }
.collab-board-label { display: flex; justify-content: space-between; font: 8px ui-monospace,monospace; letter-spacing: .08em; }
.collab-board-label span:last-child { font-size: 16px; }
.collab-typeboard strong { display: block; font-size: clamp(44px,min(6.5vw,9.5vh),100px); line-height: .94; letter-spacing: -.065em; font-weight: 650; padding-top: clamp(20px,3vw,55px); }
.collab-typeboard strong span { display: block; }
.collab-typeboard strong,.collab-board-label,.collab-board-mark,.collab-typeboard-foot { position: relative; z-index: 1; }
.collab-board-grid { position: absolute; inset: 0; background-image: linear-gradient(#ffffff18 1px,transparent 1px),linear-gradient(90deg,#ffffff18 1px,transparent 1px); background-size: 25% 25%; opacity: 0; }
.collab-board-mark { position: absolute; right: 7%; bottom: 12%; width: 27%; height: 18%; object-fit: contain; transform: rotate(-7deg); }
.collab-typeboard em { color: var(--interaction); }
.collab-typeboard-foot { position: absolute; left: 25px; right: 25px; bottom: 22px; display: flex; justify-content: space-between; font: 8px ui-monospace,monospace; }
.collab-research { position: absolute; left: 7%; top: 8%; width: 22%; padding: 18px; background: #eeebe4; transform: rotate(-9deg); border: 1px solid #e0dbd1; box-shadow: 0 12px 25px #2419160a; }
.collab-research-label { display: flex; justify-content: space-between; font: 8px ui-monospace,monospace; letter-spacing: .06em; }
.collab-sign-grid { position: relative; width: 100%; aspect-ratio: 4/3; margin: 13px 0; background-image: linear-gradient(#0212ee12 1px,transparent 1px),linear-gradient(90deg,#0212ee12 1px,transparent 1px); background-size: 20% 25%; }
.collab-sign-grid svg { width: 100%; height: 100%; fill: none; stroke: var(--primary); stroke-width: .6; opacity: .65; }
.collab-sign-grid svg path,.collab-sign-grid svg circle { stroke-dasharray: 1; stroke-dashoffset: var(--sign-draw,0); }
.collab-sign-grid img { position: absolute; left: 18%; top: 18%; width: 64%; height: 64%; object-fit: contain; }
.collab-sign-grid i { position: absolute; width: 5px; height: 5px; border: 1px solid var(--primary); background: #fff; }
.collab-sign-grid i:nth-of-type(1) { left: 10%; top: 13%; }
.collab-sign-grid i:nth-of-type(2) { right: 10%; top: 13%; }
.collab-sign-grid i:nth-of-type(3) { left: 10%; bottom: 13%; }
.collab-sign-grid i:nth-of-type(4) { right: 10%; bottom: 13%; }
.collab-research > strong { display: block; font-size: clamp(22px,2.8vw,43px); font-weight: 600; letter-spacing: -.065em; line-height: 1; }
.collab-research > small { display: block; font-size: 10px; line-height: 1.5; margin-top: 14px; color: var(--muted); }
.collab-palette > span { font: 8px ui-monospace,monospace; letter-spacing: .06em; }
.collab-palette { position: absolute; width: 20%; right: 7%; top: 48%; display: grid; grid-template-columns: repeat(3,1fr); padding: 18px; gap: 9px; background: #fff; border: 1px solid #e0ddd5; transform: rotate(9deg); box-shadow: 0 13px 26px #2419160a; }
.collab-palette > span { grid-column: 1/-1; margin-bottom: 8px; }
.collab-palette i { aspect-ratio: .75; background: var(--primary); }
.collab-palette i:nth-of-type(2) { background: var(--interaction); }
.collab-palette i:nth-of-type(3) { background: var(--ink); }
.collab-palette small { grid-column: 1/-1; font: 7px ui-monospace,monospace; margin-top: 6px; }
.collab-star { position: absolute; z-index: -1; left: 26%; top: 70%; font-size: clamp(90px,12vw,170px); font-weight: 400; line-height: 1; color: var(--interaction); -webkit-text-stroke: 1px #c0d939; transform: rotate(14deg); }
.collab-selection { position: absolute; left: 31.7%; top: -1.5%; width: 36.6%; height: 94%; border: 1px solid var(--primary); transform: rotate(-6deg); }
.collab-selection > span { position: absolute; top: -27px; left: -1px; padding: 5px 8px; color: #fff; background: var(--primary); font: 9px var(--sans); white-space: nowrap; }
.collab-world-title { position: absolute; z-index: 2; top: 50%; left: 50%; display: flex; align-items: baseline; gap: .16em; width: max-content; font-size: clamp(68px,min(11.7vw,31cqh),188px); letter-spacing: -.075em; font-weight: 650; line-height: .95; text-align: left; transform: translate(-50%,-50%); }
.collab-world-title > span:first-child { font-size: .42em; line-height: 1.1; letter-spacing: -.055em; white-space: nowrap; }
.collab-world-title > br { display: none; }
.collab-world-title em { display: block; color: var(--primary); }
.collab-world-asterisk { position: absolute; right: .3em; top: -.4em; font-size: .3em; font-weight: 400; color: var(--interaction); -webkit-text-stroke: 1px #becf63; }
.collab-world-card { position: absolute; padding: 6px 6px 0; border: 1px solid #ddd8ce; background: #fff; box-shadow: 0 10px 25px #24191614; }
.collab-world-card img { display: block; width: 100%; height: auto; object-fit: cover; }
.collab-world-card > span { display: flex; justify-content: space-between; gap: 4px; padding: 10px 3px; font: 7px ui-monospace,monospace; letter-spacing: .015em; }
.collab-world-card > span b { font-weight: 400; color: var(--muted); }
.collab-world-card--a { left: 7%; top: 2%; width: min(24%,40cqh); transform: rotate(-8deg); }
.collab-world-card--b { right: 6%; top: 4%; width: min(19%,34cqh); transform: rotate(7deg); }
.collab-world-card--c { left: auto; right: 14%; width: min(27%,44cqh); bottom: -1%; transform: rotate(4deg); }
.collab-world-note { position: absolute; bottom: 7%; left: 9%; width: 24%; color: #77736d; }
.collab-world-note > span { font: 7px ui-monospace,monospace; letter-spacing: .055em; }
.collab-world-note p { margin: 10px 0 0; font-size: clamp(11px,.95vw,14px); line-height: 1.55; letter-spacing: -.015em; }
/* At most two compositor-only accents per scene; no idle JavaScript loop. */
.collab-board-mark { animation: collab-mark-float 7s ease-in-out infinite paused; }
.collab-typeboard strong { animation: collab-type-breathe 9s ease-in-out infinite paused; transform-origin: left center; }
.collab-world-card--a { animation: collab-card-float 10s ease-in-out infinite paused; }
.collab-world-card--c { animation: collab-card-drift 12s ease-in-out infinite paused; }
.collab-stage[data-live-scene="0"] .collab-elastic,
.collab-stage[data-live-scene="1"] .collab-board-mark,
.collab-stage[data-live-scene="1"] .collab-typeboard strong,
.collab-stage[data-live-scene="2"] .collab-world-card--a,
.collab-stage[data-live-scene="2"] .collab-world-card--c { animation-play-state: running; }
@keyframes collab-mark-float { 0%,100% { translate: 0 0; } 50% { translate: 0 -4px; } }
@keyframes collab-type-breathe { 0%,22%,100% { transform: scaleX(1); } 56% { transform: scaleX(1.022); } }
@keyframes collab-card-float { 0%,100% { translate: 0 0; } 50% { translate: 0 -5px; } }
@keyframes collab-card-drift { 0%,100% { translate: 0 0; } 50% { translate: 3px -3px; } }
.collab-cursor { position: absolute; z-index: 9; left: 0; top: 0; pointer-events: none; width: 32px; height: 38px; transform-origin: 4px 3px; }
.collab-cursor svg { width: 30px; height: 36px; fill: var(--cursor-color); stroke: #fff; stroke-width: 2; stroke-linejoin: round; filter: drop-shadow(0 2px 2px #24191630); }
.collab-cursor b { position: absolute; top: 29px; left: 25px; padding: 4px 10px; border: 1px solid #ffffff66; border-radius: 1px 5px 5px 5px; font-size: 12px; font-weight: 500; white-space: nowrap; background: var(--cursor-color); color: var(--cursor-ink,#fff); box-shadow: 0 2px 6px #24191614; }
.collab-cursor--design { --cursor-color: #0212ee; }
.collab-cursor--dev { --cursor-color: #d7ff3f; --cursor-ink: #241916; }
.collab-cursor--you { --cursor-color: #241916; opacity: 0; transition: opacity 160ms; }
.collab-cursor--you svg { width: 23px; height: 29px; }
.collab-cursor--you b { left: 20px; top: 22px; font-size: 9px; padding: 3px 7px; box-shadow: none; }
.collab-stage.is-departing .collab-canvas { cursor: auto; }
.collab-stage.is-departing .collab-cursor--you { visibility: hidden; }
.collab-comment { position: absolute; left: 27px; top: -41px; padding: 9px 13px; border: 1px solid #dedad3; border-radius: 9px 9px 9px 0; background: #fff; font-size: 11px; white-space: nowrap; box-shadow: 0 7px 20px #2419160b; }
.collab-cursor.is-flipped .collab-comment { left: auto; right: -5px; border-radius: 9px 9px 0 9px; }
.collab-click-ring { position: absolute; width: 60px; height: 60px; top: -29px; left: -27px; border-radius: 50%; border: 1px solid var(--cursor-color); background: color-mix(in srgb,var(--cursor-color) 12%,transparent); transform: scale(.2); opacity: 0; }
.collab-cursor.is-clicking .collab-click-ring { animation: collab-click 1.2s ease-out; }
@keyframes collab-click { 0% { opacity: .8; transform: scale(.2); } 100% { opacity: 0; transform: scale(1.7); } }
.collab-user-marks { position: absolute; inset: 0; pointer-events: none; z-index: 8; }
.collab-user-marks > span { position: absolute; color: var(--primary); font: 65px/1 var(--sans); transform: translate(-50%,-50%) rotate(var(--angle)); animation: collab-stamp 1.6s var(--motion-ease) both; }
@keyframes collab-stamp { 0% { opacity: 0; transform: translate(-50%,-50%) rotate(var(--angle)) scale(2); } 15%,65% { opacity: 1; transform: translate(-50%,-50%) rotate(var(--angle)) scale(1); } 100% { opacity: 0; transform: translate(-50%,-80%) rotate(var(--angle)) scale(.85); } }
.collab-bottomline { position: absolute; z-index: 12; bottom: 59px; left: 3.5%; right: 3.5%; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 30px; }
.collab-chapter > span { font: 9px ui-monospace,monospace; letter-spacing: .1em; color: var(--primary); }
.collab-chapter p { margin: 8px 0 0; font-size: 12px; }
.collab-toolbar { display: flex; align-items: center; gap: 2px; }
.collab-toolbar button { position: relative; display: grid; place-items: center; width: 32px; height: 36px; border: 0; padding: 0; background: transparent; color: #817c74; border-radius: 4px; font: 9px ui-monospace,monospace; touch-action: manipulation; transition: color 180ms,transform 200ms var(--motion-ease); }
.collab-toolbar button::after { content: ''; position: absolute; width: 3px; height: 3px; border-radius: 50%; background: currentColor; bottom: 1px; opacity: 0; }
.collab-toolbar button svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 1.4; stroke-linecap: round; stroke-linejoin: round; }
.collab-toolbar button.is-active { color: var(--primary); }
.collab-toolbar button.is-active::after { opacity: 1; }
.collab-toolbar button:active { transform: scale(.92); }
.collab-toolbar i { height: 12px; width: 1px; background: #ddd8cf; margin-inline: 5px; }
.collab-toolbar button:focus-visible,.collab-scroll:focus-visible { outline: 2px solid var(--primary); outline-offset: 4px; }
.collab-scroll { justify-self: end; display: flex; align-items: center; gap: 15px; font-size: 11px; }
.collab-scroll b,.studio-bridge-link b { font-weight: inherit; }
.collab-scroll span { display: grid; place-items: center; width: 39px; height: 39px; border: 1px solid #d3cfc6; border-radius: 50%; font-size: 22px; }
.collab-hint { position: absolute; bottom: 21px; left: 50%; transform: translateX(-50%); font-size: 9px; color: #77736d; white-space: nowrap; }
.collab-progress { position: absolute; height: 2px; inset: auto 0 0; background: #e6e2da; }
.collab-progress i { display: block; height: 100%; background: var(--primary); transform-origin: left; transform: scaleX(0); }
.studio-story .social-dock { display: flex; opacity: 0; visibility: hidden; pointer-events: none; transition: opacity 220ms ease,visibility 220ms; }
.studio-story.studio-socials-visible:not(:has(.menu-toggle[aria-expanded="true"])) .social-dock { opacity: 1; visibility: visible; pointer-events: auto; }
.studio-story .studio-specialty-intro { position: relative; z-index: 15; display: block; width: 100%; min-height: 0; margin: 0; padding: 36px 10% 38px; background: var(--primary); color: var(--paper); border: 0; border-radius: 18px 18px 3px 3px; overflow: clip; box-shadow: 0 2px 0 #d9d5cd,0 5px 0 #eeece6,0 11px 15px -10px #24191640; }
.studio-story.collab-enabled .studio-specialty-intro { margin-top: -45svh; }
.studio-bridge-heading { display: flex; width: 100%; justify-content: space-between; align-items: center; margin-bottom: 30px; font: 10px ui-monospace,monospace; letter-spacing: .08em; }
.studio-bridge-link { position: relative; display: flex; width: min(100%,420px); align-items: center; justify-content: space-between; border-top: 1px solid #ffffff40; padding: 14px 0 0; margin-top: 26px; font-size: 12px; color: var(--paper); }
.studio-bridge-link span { font-size: 24px; color: var(--interaction); }
.studio-bridge-link:focus-visible { outline: 2px solid var(--interaction); outline-offset: 5px; }
.studio-story .studio-specialty-intro::before { content: none; }
/* A static, thin paper edge adds depth without another scroll animation. */
.studio-story .studio-specialty-intro::after { content: ''; position: absolute; inset: auto 0 0; height: 18px; background: linear-gradient(transparent,#05093826); pointer-events: none; }
.studio-story .studio-specialty-intro .studio-specialty-copy { position: relative; z-index: 1; inset: auto !important; width: 100%; max-width: 23ch !important; margin-inline: 0 !important; font-size: clamp(34px,5.8vw,92px) !important; font-weight: 550; line-height: 1.06 !important; letter-spacing: -.06em !important; text-align: left; }
.studio-story .studio-specialty-copy > span { color: var(--paper); }
.studio-story .studio-specialty-copy > span:nth-child(2) { color: var(--interaction); }
.studio-story .studio-specialty-copy .studio-reveal-word { color: inherit; transition: none; }
.studio-story .studio-specialty-copy.is-scroll-colored .studio-reveal-word { color: #777cf3; }
.studio-story .studio-information { width: var(--atelier-width); margin: 0 auto; padding: 64px 0 100px; scroll-margin-top: 90px; }
.studio-story .studio-information + .studio-about { width: var(--atelier-width); margin: 0 auto; padding: 85px 0 120px; border-top: 1px solid var(--line); background: transparent; }
.studio-story .studio-information + .studio-about .studio-about-tabs { gap: 24px; }
.studio-story .studio-info-columns .expertise-menu li[data-expertise] { padding-block: 12px; }
.studio-story .studio-about-heading .eyebrow { grid-column: 1 / 3; }
.studio-story .studio-information + .studio-about .studio-about-heading h2 {
  grid-column: 3 / -1;
  min-width: 0;
  max-width: none;
  font-size: clamp(2rem,4.8vw,5.75rem);
  line-height: 1.08;
}
.studio-story .studio-voices-nav h2 { min-width: 0; max-width: none; }
.studio-story .studio-voices { width: var(--atelier-width); margin: 0 auto; padding-inline: 0; }
.studio-story .studio-motion-note { margin-top: 0; }
.studio-story .studio-motion-track { animation-play-state: paused; }
.studio-story .studio-motion-note.is-motion-active .studio-motion-track { animation-play-state: running; }
@media (hover:hover) and (pointer:fine) {
  .collab-enabled .collab-canvas { cursor: none; }
  .collab-toolbar button:not(.is-active):hover { color: var(--primary); transform: translateY(-1px); }
  .collab-scroll:hover span { background: var(--interaction); border-color: var(--interaction); }
}
@media (min-width: 1600px) { .collab-canvas { inset-block: 170px 150px; } .collab-typeboard { width: 31%; left: 34.5%; } .collab-selection { width: 32.6%; left: 33.7%; } }
@media (max-width: 900px) and (min-width: 681px) {
  .studio-story .collab-idea-heading h1 { font-size: 12vw; }
  .collab-canvas { inset: 160px 0 150px; }
  .collab-typeboard { width: 42%; left: 29%; height: 90%; }
  .collab-selection { width: 44%; left: 28%; }
  .collab-research { left: 4%; width: 24%; }
  .collab-palette { right: 3%; width: 24%; }
  .collab-chapter p { max-width: 19ch; }
}
@media (max-width: 680px) {
  .collab-enabled .collab-story { height: 350svh; }
  /* Fill Safari's changing visual viewport while keeping the artboard stable. */
  .collab-stage { height: 100svh; height: 100dvh; }
  .collab-topline { top: 99px; left: 20px; right: 20px; font-size: 8px; letter-spacing: .025em; }
  .collab-topline > span:last-child { display: none; }
  .collab-canvas { inset: 137px 0 auto; height: calc(100svh - 294px - env(safe-area-inset-bottom,0px)); }
  .collab-idea-heading { left: 12%; top: 32%; width: 80%; }
  .studio-story .collab-idea-heading h1 { font-size: 14.8vw; line-height: 1.05; }
  .collab-object-label { margin-bottom: 15px; font-size: 7px; margin-left: 2px; }
  .collab-idea-heading p { margin: 22px 0 0 3px; font-size: 16px; }
  .collab-scribble { top: 13%; left: 26%; font-size: 23px; }
  .collab-scribble svg { width: 58px; top: 10px; left: 89%; }
  .collab-circle { width: 22px; height: 22px; bottom: 5%; right: 16%; }
  .collab-cursor svg { width: 23px; height: 29px; }
  .collab-cursor b { left: 17px; top: 23px; font-size: 10px; padding: 3px 7px; }
  .collab-comment { left: 17px; top: -31px; padding: 6px 8px; font-size: 9px; }
  .collab-stage[data-chapter="1"] .collab-comment { display: none; }
  .collab-cursor--you { display: none; }
  .collab-typeboard { top: 30%; left: 15%; width: 70%; height: 66%; padding: 20px; }
  .collab-board-mark { left: 8%; right: auto; bottom: 15%; width: 29%; height: 22%; }
  .collab-typeboard strong { padding-top: 22px; font-size: clamp(29px,min(12vw,12cqh),70px); line-height: 1.01; }
  .collab-board-label { font-size: 6px; }
  .collab-typeboard-foot { left: 16px; right: 16px; bottom: 16px; font-size: 6px; }
  .collab-selection { display: none; }
  .collab-selection > span { font-size: 8px; top: -24px; left: auto; right: -1px; }
  .collab-research { width: 82%; height: 24%; top: 0; left: 9%; padding: 12px 16px; display: grid; grid-template-columns: 34% 1fr; grid-template-rows: auto 1fr; column-gap: 16px; align-items: center; }
  .collab-research-label { grid-column: 2; grid-row: 1; }
  .collab-research-label { font-size: 6px; }
  .collab-sign-grid { grid-column: 1; grid-row: 1 / 3; margin: 0; height: 100%; max-height: 100px; aspect-ratio: auto; }
  .collab-research > strong { grid-column: 2; grid-row: 2; font-size: clamp(15px,5.2vw,22px); line-height: 1.12; white-space: normal; }
  .collab-research > small { display: none; }
  .collab-palette { display: none; }
  .collab-palette span { font-size: 5px; }
  .collab-palette i { aspect-ratio: 1.5; }
  .collab-palette small { font-size: 4px; }
  .collab-star { display: none; }
  .collab-world-title { top: 50%; left: 50%; display: block; font-size: min(22vw,22cqh); }
  .collab-world-title > span:first-child { display: block; margin: 0 0 .09em .04em; font-size: .48em; }
  .collab-world-asterisk { top: .08em; right: -1.25em; }
  .collab-world-card--a { left: 7%; top: 2%; width: min(42%,31cqh); }
  .collab-world-card--b { right: 7%; top: auto; bottom: 0; width: min(34%,26cqh); }
  .collab-world-card--c { right: auto; left: 7%; bottom: -1%; width: min(46%,36cqh); }
  .collab-world-card { padding: 4px 4px 0; }
  .collab-world-card > span { padding: 7px 2px; font-size: 5px; flex-wrap: wrap; }
  .collab-world-note { top: 7%; left: 55%; width: 39%; bottom: auto; }
  .collab-world-note > span { font-size: 7px; }
  .collab-world-note p { font-size: 12px; line-height: 1.55; margin: 10px 0; }
  .collab-bottomline { left: 20px; right: 20px; bottom: calc(48px + env(safe-area-inset-bottom,0px)); grid-template-columns: auto 1fr; gap: 16px 10px; }
  .collab-chapter { grid-column: 1/-1; display: flex; align-items: center; gap: 12px; }
  .collab-chapter span { font-size: 8px; white-space: nowrap; }
  .collab-chapter p { margin: 0; font-size: 10px; }
  .collab-toolbar { justify-self: start; gap: 0; }
  .collab-toolbar button { width: 36px; height: 44px; font-size: 8px; }
  .collab-toolbar button::after { bottom: 8px; }
  .collab-toolbar i { margin-inline: 2px; }
  .collab-scroll { font-size: 9px; gap: 7px; min-height: 44px; max-width: 100px; line-height: 1.3; }
  .collab-scroll span { width: 27px; height: 27px; flex-shrink: 0; font-size: 17px; }
  .collab-hint { display: none; }
  .studio-story .studio-specialty-intro { padding: 26px 24px 30px; border-radius: 14px 14px 3px 3px; }
  .studio-bridge-heading { margin-bottom: 24px; font-size: 8px; }
  .studio-bridge-link { margin-top: 22px; font-size: 11px; }
  .studio-story .studio-specialty-intro .studio-specialty-copy { font-size: clamp(35px,9.5vw,57px) !important; line-height: 1.08 !important; }
  .studio-story .studio-information { width: calc(100% - 48px); padding-block: 56px 86px; }
  .studio-story .studio-information + .studio-about { padding-block: 62px 88px; }
  .studio-story .studio-info-columns { row-gap: 42px; }
  .studio-story .studio-information + .studio-about .studio-about-tabs { gap: 18px; }
  .studio-story .studio-info-columns .expertise-menu ul { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px 20px; }
  .studio-story .studio-info-columns .expertise-menu li[data-expertise] { min-height: 48px; padding: 12px 0 12px 14px !important; }
  .studio-story .studio-info-columns .expertise-menu li[data-expertise] > span { font-size: 15px !important; line-height: 1.4 !important; transform: none !important; max-width: 100%; }
  .studio-story .studio-info-columns .expertise-menu li[data-expertise]::before { left: 0; width: 5px; height: 5px; box-shadow: none; }
  .studio-story .studio-info-columns h3 { margin-bottom: 20px; line-height: 1.2; }
  .studio-story .studio-info-visual { width: calc(100% - 12px); margin-inline: auto; }
  .studio-story .studio-information + .studio-about .studio-about-heading { display: block; }
  .studio-story .studio-information + .studio-about .studio-about-heading h2 { font-size: clamp(2rem,8.8vw,3.25rem); }
  .studio-story .studio-voices-nav h2 { font-size: clamp(2rem,8.8vw,3rem); }
  .studio-story .studio-about-stories p { line-height: 1.65; }
  .studio-story .social-dock { padding: 0; bottom: max(12px,env(safe-area-inset-bottom)); border: 0; box-shadow: 0 2px 10px #2419160d; backdrop-filter: none; background: var(--paper); }
  .studio-story .social-dock a { width: 40px; height: 40px; font-size: 18px; }
  .studio-story .social-dock--linkedin { left: 10px; }
  .studio-story .social-dock:not(.social-dock--linkedin) { right: 10px; }
}
@media (max-height: 700px) and (min-width: 681px) {
  .collab-topline { top: 88px; }
  .collab-canvas { inset-block: 126px 119px; }
  .collab-typeboard strong { padding-top: 15px; font-size: 4.8vw; }
}
@media (max-height: 700px) and (max-width: 680px) {
  .collab-canvas { top: 125px; height: calc(100svh - 282px - env(safe-area-inset-bottom,0px)); }
  .collab-typeboard strong { padding-top: 12px; }
  .collab-research { padding: 10px 14px; }
  .collab-board-mark { width: 23%; height: 20%; bottom: 13%; }
  .collab-world-note p { font-size: 10px; }
}
@media (max-height: 520px) and (orientation: landscape) {
  .collab-topline { top: 80px; }
  .collab-canvas { inset-block: 105px 100px; }
  .collab-bottomline { bottom: 34px; }
  .collab-hint { display: none; }
  .collab-typeboard strong { font-size: 17cqh; padding-top: 10px; }
  .collab-comment,.collab-star { display: none; }
  .collab-typeboard { padding: 10px 16px; }
  .collab-typeboard-foot { left: 16px; right: 16px; bottom: 10px; }
  .collab-research { width: 19%; top: -2%; padding: 10px; }
  .collab-research > small { display: none; }
  .collab-sign-grid { height: 18cqh; margin: 5px 0; }
  .collab-research > strong { font-size: 18px; }
  .collab-palette { top: 62%; width: 18%; padding: 8px; }
  .collab-palette i { aspect-ratio: 3; }
  .collab-world-title { font-size: min(9vw,30cqh); }
  .collab-world-note p { margin-block: 6px; font-size: 9px; }
  .collab-idea-heading { top: 18%; }
  .studio-story .collab-idea-heading h1 { font-size: 10vw; }
  .collab-idea-heading p { font-size: 13px; margin-top: 12px; }
  .collab-object-label { margin-bottom: 14px; }
  .collab-scribble { top: -15%; font-size: 20px; }
}
@media (max-height: 620px) and (max-width: 680px) {
  .collab-world-title { font-size: min(22vw,20cqh); }
  .collab-world-card--a { width: min(42%,29cqh); }
  .collab-world-card--b { width: min(34%,25cqh); }
  .collab-world-card--c { width: min(46%,35cqh); }
  .collab-idea-heading { top: 24%; }
  .collab-scribble { top: 8%; left: 16%; font-size: 21px; }
  .collab-comment { display: none; }
  .collab-typeboard { top: 30%; height: 67%; padding: 14px 18px; }
  .collab-typeboard strong { font-size: 10.6cqh; padding-top: 10px; }
  .collab-typeboard-foot { bottom: 12px; left: 12px; right: 12px; }
  .collab-selection { top: 38%; height: 60%; }
  .collab-selection > span { top: -20px; font-size: 7px; }
  .collab-board-mark { display: none; }
  .collab-palette { top: 86%; padding: 8px; }
  .collab-palette i { aspect-ratio: 2; }
  .collab-palette small { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .collab-enabled .collab-story { height: auto; }
  .studio-story.collab-enabled .studio-specialty-intro { margin-top: 0; }
  .collab-stage { position: relative; }
  .collab-stage *,.collab-stage *::before,.collab-stage *::after { animation: none !important; transition: none !important; }
  .collab-enabled .collab-canvas { cursor: auto; }
  .collab-cursor--you,.collab-user-marks { display: none; }
}
/* like every other page: no floating social buttons on phones (they are in the menu) */
@media (max-width: 620px) { .studio-story .social-dock { display: none; } }

/* "Un peu plus près" : the three tabs become one pill switch; a blue thumb slides under the
   chosen tab (same family as the grid/list switch of the projects page) */
.studio-story .studio-information + .studio-about .studio-about-tabs {
  --tabs-i: 0;
  position: relative; isolation: isolate;
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0;
  width: min(100%, 760px);
  padding: 5px;
  border: 1px solid var(--line); border-radius: 99px;
  background: #fff;
  box-shadow: 0 1px 0 rgb(36 25 22 / 4%), 0 18px 34px -28px rgb(36 25 22 / 50%);
}
.studio-story .studio-information + .studio-about .studio-about-tabs:has([data-studio-about-tab="1"][aria-selected="true"]) { --tabs-i: 1; }
.studio-story .studio-information + .studio-about .studio-about-tabs:has([data-studio-about-tab="2"][aria-selected="true"]) { --tabs-i: 2; }
.studio-story .studio-information + .studio-about .studio-about-tabs::before {
  top: 5px; bottom: 5px; left: 5px; right: auto; z-index: -1;
  width: calc((100% - 10px) / 3); height: auto;
  border-radius: 99px;
  background: var(--primary);
  box-shadow: 0 10px 22px -12px rgb(2 18 238 / 70%);
  translate: calc(var(--tabs-i) * 100%) 0;
  transition: translate 560ms cubic-bezier(.34, 1.36, .64, 1);
}
.studio-story .studio-information + .studio-about .studio-about-tabs button,
.studio-story .studio-information + .studio-about .studio-about-tabs button:last-child {
  display: flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 52px; padding: 0 14px;
  border: 0; border-radius: 99px;
  background: transparent;
  color: rgb(36 25 22 / 62%);
  text-align: center;
  transition: color 240ms ease;
}
.studio-story .studio-information + .studio-about .studio-about-tabs button span,
.studio-story .studio-information + .studio-about .studio-about-tabs button:hover span,
.studio-story .studio-information + .studio-about .studio-about-tabs button:focus-visible span,
.studio-story .studio-information + .studio-about .studio-about-tabs button[aria-selected="true"] span {
  display: inline; width: auto; aspect-ratio: auto;
  border: 0; border-radius: 0; background: none; box-shadow: none; transform: none;
  color: var(--primary);
  font: 600 .62rem/1 ui-monospace, SFMono-Regular, Menlo, monospace;
  letter-spacing: .04em;
  transition: color 240ms ease;
}
.studio-story .studio-information + .studio-about .studio-about-tabs button b {
  color: inherit;
  font-size: clamp(.78rem, 1.05vw, .9rem); font-weight: 650; line-height: 1.15;
}
.studio-story .studio-information + .studio-about .studio-about-tabs button:hover { color: var(--ink); }
.studio-story .studio-information + .studio-about .studio-about-tabs button[aria-selected="true"],
.studio-story .studio-information + .studio-about .studio-about-tabs button[aria-selected="true"] b { color: #fff; }
.studio-story .studio-information + .studio-about .studio-about-tabs button[aria-selected="true"] span { color: var(--interaction); }
.studio-story .studio-information + .studio-about .studio-about-tabs button:focus-visible { outline: 2px solid var(--primary); outline-offset: 3px; }
@media (max-width: 620px) {
  .studio-story .studio-information + .studio-about .studio-about-tabs { gap: 0; padding: 4px; margin-bottom: 26px; }
  .studio-story .studio-information + .studio-about .studio-about-tabs::before { top: 4px; bottom: 4px; left: 4px; width: calc((100% - 8px) / 3); }
  .studio-story .studio-information + .studio-about .studio-about-tabs button,
  .studio-story .studio-information + .studio-about .studio-about-tabs button:last-child { flex-direction: column; gap: 3px; min-height: 52px; padding: 6px 8px; }
  .studio-story .studio-information + .studio-about .studio-about-tabs button span { font-size: .55rem; }
  .studio-story .studio-information + .studio-about .studio-about-tabs button b { font-size: .7rem; }
}
@media (prefers-reduced-motion: reduce) {
  .studio-story .studio-information + .studio-about .studio-about-tabs::before { transition: none; }
}

/* "Ce qu'on façonne" : one lemon dot travels to the chosen service (script.js .xp-dot);
   only the chosen service is highlighted (a row iOS leaves in :hover stays at rest) */
.studio-story .studio-info-columns .expertise-menu ul { position: relative; }
.studio-story .studio-info-columns .expertise-menu li[data-expertise]::before { display: none !important; }
.studio-story .studio-info-columns .expertise-menu .xp-dot {
  position: absolute; z-index: 2; top: 0; left: 0;
  width: 9px; height: 9px; margin: -4.5px 0 0 -4.5px;
  border-radius: 50%;
  background: var(--interaction);
  box-shadow: 0 0 0 3px rgb(215 255 63 / 22%);
  pointer-events: none;
  will-change: transform;
}
.studio-story .studio-info-columns .expertise-menu li[data-expertise]:not(.is-active),
.studio-story .studio-info-columns .expertise-menu li[data-expertise]:not(.is-active):hover { color: var(--muted); }
.studio-story .studio-info-columns .expertise-menu li[data-expertise]:not(.is-active) > span,
.studio-story .studio-info-columns .expertise-menu li[data-expertise]:not(.is-active):hover > span { color: var(--muted); transform: none; }
.studio-story .studio-info-columns .expertise-menu li[data-expertise].is-active > span {
  color: var(--primary);
  transform: translate3d(16px, -1px, 0) rotate(-1deg) scale(1.02);
  transition: color 220ms ease, transform 560ms cubic-bezier(.34, 1.56, .64, 1);
}
@media (hover: hover) and (pointer: fine) {
  /* a service under the pointer leans in a little before it is chosen */
  .studio-story .studio-info-columns .expertise-menu li[data-expertise]:not(.is-active):hover > span { color: var(--ink); transform: translate3d(4px, 0, 0); }
}
@media (max-width: 620px) {
  .studio-story .studio-info-columns .expertise-menu li[data-expertise].is-active > span { transform: translate3d(4px, -1px, 0) scale(1.02); }
}
