/* Loaded only through the mobile media query; desktop styles remain untouched. */
@media (max-width:900px) {
 :root { --pad:clamp(22px,6vw,40px); --mobile-section-space:clamp(64px,10vw,92px); }
 html { overflow-x:hidden; overscroll-behavior-x:none; scroll-behavior:auto; scroll-padding-top:20px; -webkit-text-size-adjust:100%; }
 body { min-width:0; max-width:100%; overflow-x:clip; overscroll-behavior-x:none; }
 main,footer { max-width:100%; }
 h1,h2,h3,p,summary,label { overflow-wrap:break-word; }
 h2 { font-size:clamp(32px,7.6vw,48px); }
 .eyebrow { font-size:9px; letter-spacing:.22em; }
 section:not(.hero) { padding:var(--mobile-section-space) var(--pad); }
 .reveal,.reveal.visible { opacity:1; filter:none; transform:none; transition:none; }
 .media-nav-shine,.architecture-hero .hero-glass-shine { animation:none; }
 .architecture-hero .hero-glass-shine { color:#c9a6e5; background:none; text-shadow:none; -webkit-text-fill-color:currentColor; }
 header { height:80px; gap:8px; padding-inline:var(--pad); }
 header .wordmark { font-size:clamp(16px,3.7vw,22px); letter-spacing:.13em; min-width:0; }
 .print-page header .wordmark span { display:none; }
 header > .button { padding:10px 13px; min-height:42px; font-size:11px; gap:5px; white-space:nowrap; }
 header .menu { min-width:42px; min-height:44px; }
 header .service-nav { z-index:10; max-height:calc(100dvh - 104px); overflow-y:auto; overscroll-behavior:contain; inset:calc(100% - 2px) var(--pad) auto; border:1px solid #fff; box-shadow:0 12px 30px #261b3112; padding:8px 18px; }
 header .service-nav :is(a,button) { display:flex; align-items:center; min-height:46px; font-size:13px; }
 .button { min-height:44px; font-size:14px; padding:12px 20px; }
 .link,.text-link { min-height:36px; }
 :is(button,a,summary,input,select,textarea):focus-visible { outline:2px solid var(--purple); outline-offset:3px; }
 .heading { display:flex; flex-direction:column; align-items:flex-start; gap:14px; }
 .heading p { font-size:15px; line-height:1.55; }
 /* Keep the copy and artwork in separate rows at every mobile width. */
 body:has(.desktop-pavilion) > header {
   padding-inline:max(var(--pad), calc((100% - 620px) / 2 + var(--pad)));
   color:#f5f0ed;
 }
 body:has(.desktop-pavilion) > header .wordmark { letter-spacing:.23em; }
 body:has(.desktop-pavilion) > header > .button { display:none; }
 body:has(.desktop-pavilion) > header .service-nav {
   color:#f5f0ed; background:#1a1520f2; border-color:#f5e5f233;
 }
 body:has(.desktop-pavilion) > header .service-nav > a { color:inherit; }
 body:has(.desktop-pavilion) > header .menu { position:relative; font-size:0; }
 body:has(.desktop-pavilion) > header .menu::before,
 body:has(.desktop-pavilion) > header .menu::after {
   content:""; position:absolute; left:50%; top:50%; width:24px; height:2px;
   background:currentColor; transform:translate(-50%,-5px);
 }
 body:has(.desktop-pavilion) > header .menu::after { transform:translate(-50%,4px); }
 body:has(.desktop-pavilion) > header.open .menu::before { transform:translate(-50%,-50%) rotate(45deg); }
 body:has(.desktop-pavilion) > header.open .menu::after { transform:translate(-50%,-50%) rotate(-45deg); }

 .architecture-hero {
   display:flex; flex-direction:column; height:auto; min-height:0; max-height:none; padding:0;
   --hero-night:#101014;
   background:var(--hero-night); color:#f5f0ed;
 }
 .architecture-hero .hero-copy { order:0; width:min(100%,620px); margin-inline:auto; padding:clamp(99px,25vw,125px) var(--pad) 12px; }
 .architecture-hero h1 { font-size:clamp(34px,10.8vw,54px); line-height:1.06; letter-spacing:-.055em; }
 .architecture-hero h1 span { white-space:normal; }
 .architecture-hero .intro { font-size:clamp(14px,4.1vw,19px); margin-top:22px; line-height:1.55; color:#e1d7e1; }
 .architecture-hero .actions { margin-top:29px; flex-wrap:wrap; gap:8px clamp(15px,5vw,26px); }
 .architecture-hero .actions .link { font-size:14px; min-height:44px; display:inline-flex; align-items:center; border-color:#c9a6e577; color:inherit; }
 .architecture-hero .hero-copy .button {
   gap:12px; color:#fff; border:1px solid #ffffff69;
   background:linear-gradient(145deg,#f5e5f24a,#e7cce513 42%,#f5e5f22d);
   box-shadow:inset 0 1px 2px #fff7,inset 0 -4px 12px #fff2,0 6px 14px #0005;
 }
 .architecture-hero .hero-photograph { order:1; position:relative; inset:auto; z-index:0; width:100%; height:auto; overflow:hidden; }
 .architecture-hero .hero-building { position:relative; inset:auto; width:145%; margin-left:-45%; overflow:hidden; animation:none; transform:none; }
 .architecture-hero .hero-photograph .hero-building img { position:static; display:block; width:100%; height:auto; object-fit:contain; }
 /* Crop unused sky on the left while keeping the whole pavilion visible. */
 .architecture-hero .hero-building picture:first-child img { margin-top:-4%; }
 .architecture-hero .hero-photograph::before { display:none; }
 .architecture-hero .hero-photograph::after {
   display:block; inset:0 0 auto; height:clamp(34px,9vw,75px); z-index:1; pointer-events:none;
   background:linear-gradient(to bottom,var(--hero-night),transparent);
 }
 .architecture-hero :is(.point-grid,.reach-card,.hero-wireframe) { display:none; }
 .marquee { padding-block:15px; scrollbar-width:none; }
 .marquee .track a { padding-inline:16px; font-size:10px; letter-spacing:.13em; }

 /* Pin the shared story on phones, with the diagram under the copy. */
 #materials.wp-story-ready { padding:0; }
 #materials.wp-story-ready .wp-story-stage { min-height:0; height:100svh; }
 #materials.wp-story-ready::after { height:260svh; }
 #materials.wp-story-ready .wp-story-graph { left:4%; right:4%; top:49%; bottom:7%; }
 #materials.wp-story-ready .wp-specialist { gap:6px; width:145px; }
 #materials.wp-story-ready .wp-specialist-icon { flex-basis:35px; width:35px; height:35px; border-radius:11px; }
 #materials.wp-story-ready .wp-service-label > span { font-size:11px; }
 #materials.wp-story-ready .wp-service-tasks { font-size:8px; }
 #materials.wp-story-ready .wp-partner { padding:11px 9px; border-radius:12px; }
 #materials.wp-story-ready .wp-partner > span { font-size:9px; }
 #materials.wp-story-ready .wp-business { font-size:10px; padding:3px; }
 #materials.wp-story-ready .wp-story-copy { min-width:0; }
 #materials.wp-story-ready .wp-story-copy h2 { grid-template-columns:minmax(0,1fr); }
 #materials.wp-story-ready .wp-thought > span { max-width:100%; }
 #materials.wp-story-ready .wp-opening-suppliers { white-space:normal; font-size:.66em; }
 #materials.wp-story-ready:is([data-story-phase="opening"],[data-story-phase="specialists"]) .wp-thought > span {
   text-align:center;
 }
 #materials.wp-story-ready .wp-story-support { width:100%; }
 #materials.mobile-story-ready .wp-story-stage { display:none; }
 .mobile-story { max-width:620px; margin-inline:auto; text-align:center; }
 .mobile-story h2 { margin:14px 0 16px; font-size:clamp(40px,10vw,58px); line-height:1.08; letter-spacing:-.045em; }
 .mobile-story h2 > span { display:block; }
 .mobile-story h2 > span + span { margin-top:5px; font-size:clamp(25px,6.7vw,37px); line-height:1.16; }
 .mobile-story > p { margin-inline:auto; }
 .mobile-story-specialties { text-align:left; }
 .mobile-story > p:not(.eyebrow),.mobile-story-partner p { max-width:38ch; color:#48414d; font-size:16px; line-height:1.6; }
 .mobile-story-specialties { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 14px; padding:0; margin:22px 0; list-style:none; border-top:1px solid #dcd3df; }
 .mobile-story-specialties li { display:flex; align-items:center; gap:9px; min-height:49px; padding-block:7px; border-bottom:1px solid #dcd3df; font-size:13px; font-weight:400; }
 .mobile-story-specialties svg { flex:0 0 24px; width:24px; height:24px; color:var(--purple); }
 .mobile-story .mobile-story-effort { margin:-8px auto 18px; color:var(--purple); font-size:13px; }
 .mobile-story-partner { padding:20px; border-radius:18px; border:1px solid #fff; background:linear-gradient(135deg,#fff9,#eae1ed70); box-shadow:0 7px 24px #67537010; }
 .mobile-story-partner strong { display:block; margin:6px 0 8px; font-size:17px; font-weight:500; letter-spacing:.16em; }
 .mobile-story-partner p,.mobile-story .mobile-story-note { margin:0 auto; font-size:15px; }
 .mobile-story .mobile-story-note { margin-top:14px; }
 /* Each capability has its own image and link in normal scroll order. */
 #capabilities.mobile-capabilities-ready .service-layout { display:none; }
 .mobile-capabilities { display:grid; gap:44px; margin:34px 0 0; padding:0; list-style:none; }
 .mobile-capabilities li { min-width:0; padding-top:27px; border-top:1px solid #dcd3df; }
 .mobile-capabilities h3 { margin:6px 0 7px; font-size:clamp(26px,6.5vw,38px); line-height:1.12; letter-spacing:-.04em; }
 .mobile-capabilities p:not(.eyebrow) { margin:0 0 19px; font-size:16px; line-height:1.6; color:#48414d; }
 .mobile-capabilities img { display:block; width:100%; height:auto; aspect-ratio:auto; object-fit:contain; border-radius:18px; }
 .mobile-capabilities .mobile-capability-link { display:inline-flex; align-items:center; gap:8px; min-height:44px; margin-top:5px; color:var(--purple); font-size:14px; font-weight:500; }
 .catalogue-links { flex-wrap:wrap; gap:16px; }
 #numbers .stats-grid { grid-template-columns:repeat(2,minmax(0,1fr)); border-radius:20px; padding:8px 0; }
 #numbers .stat { border:0; margin:0; padding:18px 16px; gap:8px; }
 #numbers .stat:nth-child(even) { border-left:1px solid #28231e18; }
 #numbers .stat:nth-child(n+3) { border-top:1px solid #28231e18; }
 #numbers .stat strong { font-size:clamp(32px,8vw,46px); }
 #numbers .stat > span { font-size:12px; }
 .work-grid .work-project { flex-basis:100%; }
 #work,#numbers { padding-block:var(--mobile-section-space); }
 #numbers .heading { flex-direction:column; }
 .work-photo { aspect-ratio:4/3; border-radius:15px; background:#ece6e1; }
 .work-photo img { object-fit:contain; transition:none; }
 .work-project:hover img { transform:none; }
 .work-controls { gap:10px; margin-top:18px; }
 .work-controls > div { gap:10px; }
 .work-nav { width:44px; height:44px; }
 .work-controls .text-link { font-size:12px; }
 #clients { grid-template-columns:minmax(0,1fr); gap:56px; }
 #clients .clients-experience { min-width:0; }
 .clients-orbit { width:100%; min-width:0; min-height:0; aspect-ratio:auto; background:none; }
 .clients-orbit > :is(svg,.clients-wordmark) { display:none; }
 .clients-orbit.has-client-strip #client-orbit-logos { display:none; }
 .mobile-client-strip:not([hidden]) {
   display:block; width:100%; overflow:hidden;
   -webkit-mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);
   mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);
 }
 .mobile-client-track,.mobile-client-set { display:flex; width:max-content; }
 .mobile-client-strip .client-orbit-logo {
   position:static; display:block; flex:0 0 108px; width:108px; height:58px; max-height:none;
   padding:10px 19px; transform:none; opacity:.7; mix-blend-mode:normal; will-change:auto;
 }
 #clients .clients-controls { display:none; }
 #work-pause { min-height:44px; }
 .work-viewport { touch-action:pan-y; }
 .clients-intro h2 { font-size:clamp(32px,8vw,46px); }
 .clients-controls { flex-wrap:wrap; }
 #process .process-intro { grid-template-columns:1fr; gap:30px; }
 #process .process-photo { height:auto; aspect-ratio:auto; object-fit:contain; }
 #process .process-steps { grid-template-columns:1fr; gap:0; margin-top:25px; }
 .process-steps li { display:grid; grid-template-columns:2.5ch minmax(0,1fr); column-gap:14px; padding:16px 0; }
 .process-steps li::before { display:none; }
 .process-step-number { align-self:center; }
 .process-steps li h3 { margin:0; }
 .process-steps li p { grid-column:2; margin:4px 0 0; }
 .process-steps h3 { font-size:28px; }
 .process-steps p { font-size:14px; line-height:1.5; }
 .faq { grid-template-columns:1fr; gap:25px; }
 .faq summary { padding-block:18px; font-size:20px; }
 .closing { grid-template-columns:1fr; gap:28px; }
 .closing-card { padding:25px; border-radius:22px; }
 .closing-card h3 { font-size:clamp(32px,8vw,45px); }
 .footer-grid { grid-template-columns:1fr 1fr; gap:28px 20px; }
 .footer-grid > div:first-child { grid-column:1/-1; }
 .footer-grid .wordmark { white-space:normal; font-size:24px; }
 .footer-grid a { display:inline-block; padding-block:6px; }
 .signoff { flex-wrap:wrap; gap:10px 20px; line-height:1.5; }
 /* Every catalogue page shares these compact layouts and comfortable product targets. */
 .print-page .print-intro { grid-template-columns:1fr; padding-block:42px 52px; gap:30px; }
 .print-heading h1 { font-size:clamp(40px,9vw,64px); line-height:1.04; }
 .print-lede { font-size:16px; max-width:45ch; line-height:1.55; }
 .print-hero-photo { width:100%; max-width:620px; justify-self:center; }
 .print-hero-photo img { height:auto; object-fit:contain; }
 .print-hero-photo figcaption { font-size:11px; padding:7px 11px; }
 .print-page section:not(.hero) { padding-block:clamp(48px,8vw,72px); }
 .print-page h2 { font-size:clamp(32px,7.4vw,46px); }
 .print-categories,.print-finish-grid { grid-template-columns:1fr; gap:0; margin-top:24px; }
 .print-categories summary { min-height:64px; font-size:20px; gap:10px; grid-template-columns:2.3ch minmax(0,1fr) auto; }
 .print-categories li button { min-height:44px; padding:10px 14px; font-size:14px; line-height:1.4; }
 .print-finish-grid { gap:24px; }
 .print-custom { flex-direction:column; align-items:flex-start; gap:22px; }
 .print-custom p { font-size:15px; line-height:1.6; }
 .print-custom .button { max-width:100%; white-space:normal; }
 .service-photo-strip { grid-template-columns:1fr; gap:28px; padding-bottom:42px; }
 .service-photo-strip img { height:auto; border-radius:13px; }
 /* Media: one clear reading column and portrait previews that swipe. */
 .media-page section { padding-block:var(--mobile-section-space); }
 .media-page .media-intro { padding-top:118px; padding-bottom:46px; }
 .media-intro h1 { font-size:clamp(37px,8.5vw,62px); line-height:1.05; margin-block:18px; }
 .media-page h2 { font-size:clamp(32px,7vw,46px); }
 .media-lede,.media-case-head p { font-size:16px; line-height:1.6; }
 .media-services { grid-template-columns:1fr; gap:25px; }
 .media-services article+article { border-left:0; border-top:1px solid #d9d0d8; padding:25px 0 0; }
 .media-cinema img,.media-edit-scene>img { height:auto; object-fit:contain; }
 .media-edit-copy { position:static; display:grid; grid-template-columns:1fr; gap:12px; padding:22px var(--pad) 0; background:none; }
 .media-edit-copy>div:first-child { position:static; padding:0; background:none; }
 .media-edit-copy h2 { margin:8px 0 0; }
 .media-process-note { justify-self:stretch; margin:0; padding:16px; font-size:14px; }
 .media-timeline ol { grid-template-columns:1fr; gap:18px; margin:0; padding:0 0 0 29px; }
 .media-timeline li { border-top:1px solid #dcc6e54d; padding-top:14px; }
 .media-timeline-line { display:block; left:calc(var(--pad) + 7px); right:auto; top:31px; bottom:38px; border-top:0; border-left:1px solid #dcc6e568; }
 .media-rocket { display:block; left:-12px; top:0; transform:rotate(133deg); transition:top 1.65s cubic-bezier(.25,.7,.22,1); }
 .media-timeline.is-visible .media-rocket { left:-12px; top:calc(100% - 25px); }
 .media-video-row { scroll-padding-inline:0; }
 .media-result-glass { grid-template-columns:1fr; padding:26px; gap:18px; border-radius:22px; }
 .media-big-number { font-size:clamp(72px,19vw,118px); }
 .media-result-glass h2 { font-size:27px; }
 .media-video-row { display:grid; grid-auto-flow:column; grid-auto-columns:min(76%,260px); grid-template-columns:none; gap:14px; overflow-x:auto; scroll-snap-type:x mandatory; scroll-padding-inline:0; overscroll-behavior-x:contain; scrollbar-width:thin; }
 .media-video-row video { aspect-ratio:9/16; object-fit:contain; scroll-snap-align:start; border-radius:14px; }
 .media-preview-controls .media-prev,.media-preview-controls .media-next { display:block; }
 .media-preview-controls button { min-width:44px; min-height:44px; font-size:13px; }
 .media-stat-row { grid-template-columns:1fr; gap:0; }
 .media-stat,.media-stat:first-child { padding:19px 0; gap:8px; }
 .media-stat+.media-stat { border-left:0; border-top:1px solid #cfc1d160; }
 .media-stat strong { font-size:44px; }
 .media-stat span,.media-stat small { font-size:14px; }
 .media-case-stats { padding:8px 24px; margin-top:18px; border-radius:22px; }
 .media-case-stats h4 { padding-top:20px; }
 .media-case-credit { align-items:flex-start; flex-direction:column; gap:14px; }
 .media-creators { grid-template-columns:1fr; }
 .media-creator { padding:20px; border-radius:20px; }
 .media-creator img { aspect-ratio:auto; object-fit:contain; border-radius:10px; }
 .media-creator h3 { font-size:25px; }
 /* The existing inquiry flow is retained, with iOS-safe input sizes. */
 dialog { width:calc(100% - 24px); max-width:620px; max-height:calc(100dvh - 24px); padding:52px 22px 26px; border-radius:22px; overflow:auto; overscroll-behavior:contain; }
 dialog .close { position:absolute; top:10px; right:10px; width:44px; height:44px; }
 dialog h2 { font-size:clamp(31px,8vw,44px); }
 dialog .intro { font-size:16px; }
 dialog .gallery { grid-template-columns:1fr; gap:16px; }
 dialog .gallery img { width:100%; height:auto; max-height:70dvh; object-fit:contain; }
 dialog :is(input,select,textarea) { font-size:16px; width:100%; min-height:46px; min-width:0; }
 dialog input[type=file] { font-size:13px; }
 dialog textarea { min-height:130px; }
 dialog label { font-size:14px; line-height:1.5; }
 dialog .actions { flex-wrap:wrap; gap:14px; margin-top:24px; }
 dialog #continue { flex:1; min-width:155px; }
 #review { overflow-wrap:anywhere; }
}
@media (max-width:359px) {
 header .wordmark { font-size:15px; }
 header > .button { font-size:10px; padding-inline:10px; }
 header { gap:4px; }
 .architecture-hero h1 { font-size:34px; }
 .footer-grid { grid-template-columns:1fr; }
}
@media(max-width:900px) {
 body:has(dialog[open]) { overflow:hidden; }
}

@media (min-width:601px) and (max-width:900px) {
 .architecture-hero .hero-building { width:118%; margin-left:-18%; }
}

@media (max-width:900px) and (prefers-reduced-motion:no-preference) {
 .architecture-hero .hero-copy :is(h1,.intro,.actions) {
   animation:mobile-hero-arrive 700ms cubic-bezier(.2,.7,.3,1) both;
 }
 .architecture-hero .hero-copy .intro { animation-delay:80ms; }
 .architecture-hero .hero-copy .actions { animation-delay:150ms; }
 .architecture-hero .hero-copy :is(h1,.intro,.actions):focus-within { animation:none; }
 .reveal.visible { animation:mobile-hero-arrive 550ms cubic-bezier(.2,.7,.3,1) both; }
}

@media (max-width:900px) and (prefers-reduced-motion:no-preference) and (forced-colors:none) {
 .architecture-hero .pavilion-build-ready picture:first-child img {
   animation:mobile-pavilion-fill 850ms 1.16s ease-in-out backwards;
 }
 .architecture-hero .pavilion-build-ready .pavilion-construction {
   display:block; position:absolute; inset:auto 0 0; width:100%; height:auto;
   pointer-events:none; fill:none; stroke:#cbb0eb; stroke-width:1.65;
   animation:mobile-pavilion-clear 760ms 1.28s ease-in-out both;
 }
 .architecture-hero .pavilion-build-ready .pavilion-construction path {
   stroke-dasharray:1;
   animation:mobile-pavilion-stroke 260ms var(--draw-delay) ease-out both;
 }
 .architecture-hero .pavilion-construction .pavilion-floor { opacity:.35; }
 @supports (background-clip:text) or (-webkit-background-clip:text) {
   .architecture-hero .hero-glass-shine {
     background:linear-gradient(105deg,#c9a6e5 27%,#a981c9 34%,#ca83fa 42%,#fff6ff 50%,#e6b5ff 56%,#a981c9 65%,#c9a6e5 74%) 100% 0 / 440% 100%;
     -webkit-background-clip:text;
     background-clip:text;
     color:transparent;
     -webkit-text-fill-color:transparent;
     animation:mobile-purple-sheen 6.9s linear infinite;
   }
 }
}

@keyframes mobile-hero-arrive {
 from { opacity:.45; transform:translateY(8px); }
 to { opacity:1; transform:none; }
}

@keyframes mobile-purple-sheen {
 0%,12% { background-position:100% 0; }
 78%,100% { background-position:0 0; }
}

@keyframes mobile-pavilion-stroke {
 from { stroke-dashoffset:1; opacity:0; }
 to { stroke-dashoffset:0; opacity:.9; }
}
@keyframes mobile-pavilion-fill {
 from { opacity:0; }
 to { opacity:1; }
}
@keyframes mobile-pavilion-clear {
 from { opacity:1; }
 to { opacity:0; visibility:hidden; }
}

@media (max-width:900px) {
 .mobile-story-motion { display:block; }
 .mobile-story-specialist .mobile-story-motion { display:flex; align-items:center; gap:9px; }
}
@media (max-width:900px) and (prefers-reduced-motion:no-preference) {
 .mobile-story-motion {
   opacity:calc(.24 + .76 * var(--mobile-story-progress,1));
   transform:translateY(calc(16px * (1 - var(--mobile-story-progress,1))));
 }
 .mobile-story-partner {
   opacity:calc(.28 + .72 * var(--mobile-story-progress,1));
 }
 .mobile-story-partner .mobile-story-motion { opacity:1; }
}

@media (max-width:900px) {
 header .service-nav {
   border-radius:22px;
   background:linear-gradient(148deg,#fff9,#f7f0f47a);
   border-color:#ffffffc9;
   box-shadow:inset 0 1px 1px #fffb,inset 0 -1px 1px #fff4,0 16px 32px #28183024;
   -webkit-backdrop-filter:blur(22px) saturate(145%);
   backdrop-filter:blur(22px) saturate(145%);
 }
 body:has(.desktop-pavilion) > header .service-nav {
   background:linear-gradient(145deg,#55505b91,#1b17228c 62%,#40324787);
   border-color:#f9e9ff55;
   box-shadow:inset 0 1px 1px #fff5,inset 0 -1px 1px #fff2,0 16px 32px #0006;
 }
 header .service-nav > a + a { border-top:1px solid currentColor; border-top-color:color-mix(in srgb,currentColor 12%,transparent); }
}

@media (max-width:900px) and (prefers-reduced-motion:no-preference) {
 header.open .service-nav { animation:mobile-glass-open 320ms cubic-bezier(.2,.75,.3,1) both; }
 .mobile-section-arrive { animation:mobile-section-in 650ms cubic-bezier(.2,.7,.3,1) both; }
 .mobile-section-arrive:focus-within { animation:none; }
 .media-timeline li.mobile-section-arrive {
   background:linear-gradient(90deg,#d8b9e2a0,#d8b9e21a) left top / 100% 1px no-repeat;
   animation:mobile-section-in 650ms cubic-bezier(.2,.7,.3,1) both, mobile-timeline-draw 900ms ease-out both;
 }
}
@keyframes mobile-glass-open {
 from { opacity:0; transform:translateY(-6px) scale(.98); }
 to { opacity:1; transform:none; }
}
@keyframes mobile-section-in {
 from { opacity:.38; transform:translateY(14px); }
 to { opacity:1; transform:none; }
}
@keyframes mobile-timeline-draw {
 from { background-size:0 1px; }
 to { background-size:100% 1px; }
}

@media (max-width:900px) and (prefers-reduced-motion:reduce) {
 .marquee .track [aria-hidden="true"] { display:none !important; }
}

@media (max-width:900px) and (prefers-reduced-motion:no-preference) {
 .mobile-client-track { animation:mobile-client-loop var(--client-loop-duration) linear infinite paused; }
 .mobile-client-strip.is-rolling .mobile-client-track { animation-play-state:running; }
}
@media (max-width:900px) and (prefers-reduced-motion:reduce) {
 .mobile-client-strip:not([hidden]) { overflow-x:auto; }
 .mobile-client-set[aria-hidden="true"] { display:none; }
}
@keyframes mobile-client-loop {
 to { transform:translateX(-50%); }
}
