/* Mobile-first finish: deliberate vertical rhythm and readable, thumb-friendly controls. */
@media (max-width: 600px) {
  :root { scroll-padding-top: 76px; }
  .header-layout {height: 70px;}
  .hero-inner {min-height:705px; padding: 27px 5% 28px;}
  .hero-label {font-size: 10px; line-height:1.4; gap: 10px;}
  .hero-title-wrap {margin-top: 36px;}
  .hero-stage {top:205px; height:365px;}
  .stage-label {right:1.5%; font-size:10px; flex-direction:row-reverse; align-items:flex-start;}
  .stage-label svg {width:45px; height:45px; transform: scaleX(-1) rotate(35deg); transform-origin:center;}
  .stage-caption {bottom:0; right:9%; max-width: 63%; font-size:9px;}
  .hero-bottom-row {bottom:27px;gap:12px;align-items:center;}
  .hero-bottom-row p {font-size:13px; line-height:1.55; max-width: min(60%,235px);}
  .round-link {width:87px;height:87px;flex:0 0 87px;font-size:9px;}
  .round-arrow {font-size:21px;right:13px;top:8px;}
  .party-tape {padding:12px 0;}
  .manifesto {padding:45px 5% 38px;}
  .manifesto-layout {margin-top:22px;gap:14px;}
  .manifesto-side {gap:10px;}
  .manifesto-sticker {height:98px;width:98px;min-width:98px;font-size:13px;}
  .manifesto-sticker span {font-size:23px;margin-top:4px;}
  .manifesto-side p {font-size:10px;letter-spacing:.06em;line-height:1.55;margin:0;}
  .manifesto h2 {font-size:clamp(42px,11vw,63px);line-height:1;}
  .manifesto-bottom {margin-top:14px;font-size:16px;line-height:1.55;}
  .manifesto-link {margin-top:9px;min-height:40px;font-size:10px;gap:17px;}
  .worlds-head {padding:35px 5% 32px;}
  .worlds-head h2 {margin-top:17px;}
  .worlds-head .underlined-link {margin-top:26px;}
  .world-visual {min-height:346px;}
  .world-image {height:290px;width:76%;}
  .world-text {padding:39px 6% 48px;}
  .world-text p {line-height:1.6;}
  .ideas-section {padding-block:58px 60px;}
  .ticket-section {padding:55px 5% 65px;}
  .ticket-heading h2 {margin:22px 0 35px;}
  .cta-giant {min-height:0;padding:70px 5% 75px;}
  .cta-giant h2 {margin:28px 0 22px;}
  .cta-bubble {margin-top:23px;min-height:52px;}
  /* Internal pages: move readers to the content, rather than leaving vacant hero bands. */
  .inner-hero {min-height:0;padding:53px 5% 47px;}
  .inner-hero h1 {margin:42px 0 32px;}
  .archive {padding:51px 5% 64px;}
  .archive-filter-bar {margin-bottom:15px;}
  .archive-grid {row-gap:27px;}
  .archive-end {margin-top:57px;}
  .page-cta {min-height:0;padding:76px 5%;}
  .service-chapter {padding:52px 5% 56px;}
  .service-index {margin-bottom:30px;}
  .service-shot {height:clamp(270px,78vw,320px);width:80%;}
  .service-description {padding:29px 0 0;}
  .service-description h2 {margin:17px 0 24px;}
  .service-description p {line-height:1.64;margin-bottom:24px;}
  .process-scene {padding:62px 5% 67px;}
  .process-scene h2 {margin:23px 0 55px;}
  .faq-scene {padding:63px 5% 73px;}
  .contact-hero {min-height:0;padding:55px 5% 61px;}
  .contact-hero h1 {margin:39px 0 22px;}
  .brief-section {padding:56px 5% 61px;gap:30px;}
  .contact-bottom {padding:73px 5% 80px;}
  .footer-core {padding:47px 0 50px;gap:32px;}
  .footer-cols {gap:24px;}
  .footer-cols > div {gap:15px;}
  .footer-cols a {min-height:28px;}
  .archive-filters button, .vibe-button, .faq-question, .mobile-nav a {min-height:44px;}
  input,textarea,select {font-size:16px;}
}
@media (max-width: 359px) {
  .hero-inner {min-height:670px;}
  .hero-title-wrap {margin-top:34px;}
  .hero-stage {top:192px;height:337px;}
  .hero-bottom-row p {font-size:12px;}
  .round-link {width:79px;height:79px;flex-basis:79px;font-size:8px;}
  .stage-label {right:3%;font-size:9px; flex-direction:row-reverse; align-items:flex-start;}
  .stage-label svg {width:33px;height:33px; transform: scaleX(-1) rotate(35deg); transform-origin:center;}
  .manifesto-sticker {width:88px;height:88px;min-width:88px;font-size:12px;}
  .manifesto h2 {font-size:clamp(36px,11vw,42px);}
  .manifesto-bottom {font-size:15px;}
  .worlds-head h2 {font-size:clamp(54px,15vw,65px);}
  /* A legible project gallery matters more than fitting two tiny cards per row. */
  .archive-grid,.archive-grid.is-filtered {grid-template-columns:1fr;gap:30px;}
  .archive-item,.archive-item:nth-child(n),.archive-grid.is-filtered .archive-item {grid-column:1/-1;width:100%;margin:0;}
  .archive-item .archive-img {aspect-ratio:1.18;}
  .archive-item-meta h3 {font-size:25px;}
  .archive-item-meta>a {width:44px;height:44px;}
}
@media (min-width: 601px) and (max-width: 900px) {
  .manifesto {padding-bottom:43px;}
  .worlds-head {padding-top:38px;}
  .inner-hero {min-height:0;}
}
@media (min-width:360px) and (max-width:600px) {
  /* The unbroken EXPERIENCE headline must fit on 360px Android devices. */
  .services-hero h1 {font-size:clamp(44px,12.5vw,62px);letter-spacing:-.09em;}
}
@media (max-width:600px) {
  /* If a short-lived Instagram CDN photo expires, keep the small hero frames
     editorial and readable rather than filling them with overlapping labels. */
  .stage-photo .photo-fallback {align-items:center;justify-content:center;text-align:center;gap:0;padding:7%;}
  .stage-photo .photo-fallback-kicker,.stage-photo .photo-fallback-note {display:none;}
  .stage-photo .photo-fallback-name {font-size:clamp(12px,3vw,18px);line-height:1.08;letter-spacing:-.04em;max-width:100%;}
  .faq-items summary {min-height:54px;}
}

/* Signature mobile inquiry ticket: a concise editorial invitation, not an empty double pill. */
@media (max-width: 600px) {
  .mobile-booking-bar {
    background:#fff5e9;
    border:2px solid #302038;
    border-radius:23px;
    padding:11px 10px 11px 14px;
    gap:8px;
    min-height:77px;
    box-shadow:0 5px 0 #30203850,0 10px 26px #30203822;
  }
  .booking-bar-message {display:flex;flex:1 1 auto;min-width:0;flex-direction:column;gap:3px;justify-content:center;}
  .booking-eyebrow {display:flex;align-items:center;gap:5px;font-family:var(--sans);font-size:8px;font-weight:800;letter-spacing:.075em;line-height:1.2;white-space:nowrap;}
  .booking-mini-star {color:#db526c;font-size:17px;line-height:1;flex:0 0 auto;}
  .booking-bar-message strong {display:block;font:800 clamp(15px,4.1vw,19px)/1.08 var(--display);letter-spacing:-.045em;white-space:nowrap;}
  .booking-bar-message em {font:700 1.35em/.65 var(--script);color:#b62d4e;letter-spacing:-.035em;white-space:nowrap;}
  .mobile-booking-bar>a {flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:53px;padding:0 9px 0 12px;background:#302038;border-radius:15px;color:#fff8f0;box-shadow:0 3px 0 #30203829;font-size:10px;letter-spacing:.025em;}
  .mobile-booking-bar>a:hover {background:#56344c;}
  .mobile-booking-bar>a .booking-button-text {white-space:nowrap;font-size:10px;line-height:1.2;}
  .mobile-booking-bar>a .booking-button-icon {display:grid;place-items:center;flex:0 0 28px;width:28px;height:28px;border-radius:50%;background:#ffbfd0;color:#302038;font-size:19px;line-height:1;font-weight:800;}
  .mobile-booking-bar:focus-within {outline-offset:3px;}
}
@media (max-width: 359px) {
  .mobile-booking-bar {padding:9px 8px 9px 10px;min-height:71px;gap:5px;border-radius:19px;}
  .booking-eyebrow {font-size:7px;letter-spacing:.025em;gap:2px;}
  .booking-mini-star {font-size:14px;}
  .booking-bar-message strong {font-size:14px;white-space:normal;line-height:1.02;}
  .mobile-booking-bar>a .booking-button-text {font-size:9px;}
  .mobile-booking-bar>a {padding:0 6px 0 9px;min-height:48px;gap:6px;font-size:9px;border-radius:13px;}
  .mobile-booking-bar>a .booking-button-icon {flex-basis:24px;width:24px;height:24px;font-size:16px;}
}
