/* WS-003 | CEO Production iPhone layout FAIL | 2026-10-16
   Last-loaded mobile-only visual stylesheet. No API, Worker or SEO changes. */
@media (max-width:720px) {
  :root { --mobile-reading-gutter:18px; }
  /* Equal outer gutters, without stacked inner padding swallowing copy width. */
  .world-section,.profile-world,.logs-world {
    padding-inline:var(--mobile-reading-gutter);
  }
  .social-pickup,.activity-media {
    box-sizing:border-box;
    width:calc(100% - 2 * var(--mobile-reading-gutter));
    margin-inline:auto;
  }
  .home-contact-teaser {
    box-sizing:border-box;
    width:calc(100% - 2 * var(--mobile-reading-gutter));
    padding:32px 0 42px;
    margin-inline:auto;
  }
  .home-contact-teaser > p:not(.area-label) {width:100%;max-width:none;}
  /* Release the otherwise-invisible max-width inside mobile text columns. */
  .social-pickup .section-heading,
  .social-pickup .social-pickup-grid,
  .social-pickup .social-pickup-copy,
  .business-world .world-copy,
  .individual-world .b2c-stage,
  .individual-world .world-copy,
  .profile-world .status-screen,
  .profile-world .profile-story,
  .logs-world .section-heading,
  .logs-world .log-console,
  .logs-world .log-content,
  .activity-media .section-heading {
    box-sizing:border-box;width:100%;min-width:0;max-width:none;
  }
  .business-world .world-copy > .cv-world-lead,
  .business-world .world-copy > .cv-cta-note,
  .individual-world .world-copy > .cv-line-guidance,
  .individual-world .world-copy > h1 + p,
  .social-pickup .section-heading > p,
  .social-pickup-copy > p,
  .profile-world .profile-story > p,
  .logs-world .log-content > p,
  .home-contact-teaser > p:not(.area-label),
  .field-system article > p,
  .line-product-copy > p,
  .exp-copy > p {
    box-sizing:border-box;width:100%;min-width:0;max-width:none;
  }
  /* Natural Japanese breaks. pretty avoids a one-character last line.
     anywhere/break-word stays off body copy so compounds are not split early. */
  main :is(h1,h2,h3,h4,p,li,dd,blockquote) {
    word-break:keep-all;overflow-wrap:break-word;line-break:strict;hyphens:none;
  }
  /* iPhone Safari CEO FAIL: pretty reflows Japanese earlier than necessary. */
  main :is(p,li,dd,blockquote,.hero-subtitle,.hero-lead) {
    text-wrap:wrap;
  }
  main :is(.business-world .world-copy h1,.world-copy h2,.section-heading h1,.section-heading h2,.home-contact-teaser h2,
    .log-content :is(h2,h3),.field-system h3,.profile-world h1,.profile-world h2,#privacy-heading,.contact-copy h1,.contact-copy h2) {
    text-wrap:wrap;overflow-wrap:break-word;word-break:keep-all;line-break:strict;
  }
  main .log-content,
  main .log-content > *,
  main .activity-media .section-heading,
  main .activity-media .section-heading > p,
  main .note-gate .section-heading h2,
  main .note-link,
  main .note-copy,
  main .log-content > p,
  main .profile-story > p,
  main .quest-node p,
  main .hero-lead,
  main .hero-subtitle,
  main .social-pickup .section-heading h2,
  main .route-select .section-heading h2,
  main .hero .hero-copy h1 {
    overflow-wrap:break-word;word-break:keep-all;
  }
  main .note-copy,
  main .log-content > p,
  main .profile-story > p,
  main .quest-node p,
  main .hero-lead,
  main .hero-subtitle,
  main .world-copy > p,
  main .cv-world-lead,
  main .consultation-scope,
  main .contact-copy > p {
    word-break:keep-all;line-break:strict;overflow-wrap:break-word;
  }
  #b2b-proof-title,#b2b-proof-title em {white-space:normal;width:auto;max-width:100%;}
  .line-product-showcase,.line-product-grid,.line-product-copy,.line-product-visual {
    width:100%;min-width:0;max-width:100%;
  }
  .line-product-visual img {width:100%;max-width:100%;height:auto;}
  .line-product-copy :is(.area-label,h2,h3,p,strong) {max-width:100%;overflow-wrap:break-word;}
  main .mobile-keep-term {display:inline;white-space:nowrap;}
  .profile-world .status-screen {padding:22px 16px 24px;}
  /* LOGS: let the copy use the whole inset area instead of reserving
     excessive inner gutters. The console itself is already full width. */
  .logs-world .log-content {padding:24px 10px 28px;}
  /* CEO iPhone LOG 04 FAIL: keep-all caused premature wrapping well before
     the right edge. Natural Japanese line breaks should use all available
     width; break-word only protects truly unbreakable Latin/URL runs. */
  main .logs-world .log-content > p {
    box-sizing:border-box;
    width:100%;
    max-width:none;
    min-width:0;
    text-align:left;
    white-space:normal;
    text-wrap:wrap;
    word-break:normal;
    overflow-wrap:break-word;
    line-break:strict;
  }
  .logs-world .note-gate,.note-gate {padding-inline:var(--mobile-reading-gutter);}
  .field-system article {padding-inline:16px;}
  /* Quest text was stuck beside the number orb, so lines ended near 240px. */
  .quest-map {padding-inline:0;}
  .quest-node {grid-template-columns:minmax(0,1fr);gap:10px;padding-inline:14px;}
  .quest-node > div {min-width:0;width:100%;}
  /* Consultation copy was pinned beside a 100px image and a two-column prompt. */
  #consultation-entry .consultation-body {grid-template-columns:minmax(0,1fr);align-items:start;}
  #consultation-entry .consultation-brief {display:block;}
  #consultation-entry .consultation-scene,
  #consultation-entry .consultation-scope,
  #consultation-entry h3,
  #consultation-entry .consultation-prompts,
  #consultation-entry .consultation-hint {grid-column:auto;grid-row:auto;}
  #consultation-entry .consultation-scope {margin:0 0 12px;padding-bottom:10px;border-bottom:1px solid #aac8ce33;}
  #consultation-entry .consultation-prompts {grid-template-columns:minmax(0,1fr);}
  #consultation-entry .consultation-scene img {max-width:min(100%,240px);}
  .info-page .privacy,
  .info-page #contact.contact-world {
    box-sizing:border-box;width:100%;max-width:none;
    padding-inline:var(--mobile-reading-gutter);
  }
  .social-pickup-copy > p,
  .home-contact-teaser > p:not(.area-label),
  .business-world .world-copy > .cv-world-lead,
  .individual-world .world-copy > .cv-line-guidance,
  .profile-world .profile-story > p,
  .logs-world .log-content > p,
  .field-system article > p {
    line-height:1.8;letter-spacing:normal;
  }
  /* Long URLs are the only permitted exceptional word breaks here. */
  main a:not(.button):not(.header-cta):not(.note-link) {
    overflow-wrap:break-word;
  }
}
/* iPhone Safari CEO FAIL batch 2026-10-16.
   Review gate: this is a source candidate, not iPhone visual PASS. */
@media (max-width:720px) {
  /* Body descriptions read from the true available width.
     The centered section heading label/title can remain centered. */
  main :is(
    .route-select .section-heading.centered > p:last-child,
    .social-pickup .section-heading.centered > p:last-child,
    .social-pickup-copy > p,
    .home-contact-teaser > p:not(.area-label),
    .business-world .world-copy > p,
    .individual-world .world-copy > p,
    .profile-world .profile-story > p,
    .contact-copy > p,
    #consultation-entry .consultation-hint,
    .quest-node > div > p,
    .social-pickup-footnote
  ) {
    box-sizing:border-box;
    width:100%;
    max-width:none;
    min-width:0;
    text-align:left;
    word-break:keep-all;
    overflow-wrap:break-word;
    line-break:strict;
    text-wrap:wrap;
    hyphens:none;
  }
  /* Keep explicit meaningful short phrases intact; allow whole phrase to
     wrap to the next line instead of splitting a word into fragments. */
  main .mobile-keep-term {
    display:inline;
    white-space:nowrap;
    overflow-wrap:normal;
    word-break:keep-all;
  }
  .route-select .section-heading.centered > p:last-child {
    margin-inline:0;
  }
  .social-pickup-copy > p {
    margin:14px 0 40px;
    padding-bottom:2px;
  }
  /* Heading phrases were still overflow-wrap:anywhere, so 見る became 見 / る. */
  main :is(
    .social-pickup .section-heading h2 .phrase,
    .activity-media .section-heading h2 .phrase,
    .logs-world .section-heading h2 .phrase,
    .route-select .section-heading h2 .phrase,
    .cv-field-hint
  ) {
    overflow-wrap:break-word;
    word-break:keep-all;
    white-space:normal;
    line-break:strict;
  }
  .social-pickup-footnote {
    margin:28px 0 0;
    padding:14px 0 0;
    border-top:1px solid rgba(169,228,247,.18);
    color:#b7cbd7;
    font-size:.9rem;
    line-height:1.75;
  }
  /* Two full-width B2B prompts, no narrow text column beside artwork. */
  #consultation-entry .consultation-body,
  #consultation-entry .consultation-brief,
  #consultation-entry .consultation-prompts,
  #consultation-entry .consultation-prompts > div,
  #consultation-entry .consultation-hint {
    min-width:0;
    width:100%;
    max-width:none;
  }
  #consultation-entry .consultation-prompts > div {
    display:block;
  }
  #consultation-entry .consultation-hint {
    margin-top:18px;
  }
  /* The 45-degree number diamonds and offset quest cards looked like
     unintended slanted lines in iPhone review. Make them upright. */
  .quest-map .quest-orb,
  .quest-map .quest-orb span {
    transform:none;
  }
  .quest-map .quest-orb {
    border-radius:8px;
  }
  .quest-map .quest-path {
    display:none;
  }
  .quest-map .quest-node,
  .quest-map .quest-node-2,
  .quest-map .quest-node-4 {
    transform:none;
  }
  /* Prevent a floating TOP control from covering the last readable lines.
     Mobile Safari has native scroll-to-top via the status bar. */
  a.back-to-top {
    display:none!important;
  }
}

@media (max-width:1024px) {
  /* At 768 the fixed control still covered privacy body text. */
  a.back-to-top {display:none!important;}
}

@media (max-width:360px) {
  :root {--mobile-reading-gutter:16px;}
  .profile-world .status-screen,.field-system article {
    padding-inline:14px;
  }
  /* Preserve the LOGS text width at the narrowest supported iPhone size. */
  .logs-world .log-content {padding-inline:10px;}
}

/* Short phrases stay whole at every width. They are shorter than a column. */
.mobile-keep-term{display:inline;white-space:nowrap;word-break:keep-all;}
@media (max-width:720px){
  /* B2C hero: do not split before 「。」 「、」 or the fullwidth bar. */
  .individual-world .world-copy > h1.b2c-hero-heading,
  .individual-world .world-copy > h1 + p{
    word-break:keep-all;
    line-break:strict;
    overflow-wrap:normal!important;
    text-wrap:wrap;
  }
}
