/* Shared phone/tablet ergonomics for all event detail pages. */
.mobile-event { -webkit-text-size-adjust:100%; text-size-adjust:100%; }
.mobile-event :is(button,a,input,select,textarea,summary) { touch-action:manipulation; }
.mobile-event :is(#idea-workshop,#poster-guide,.nova-studio,.battle-stadium,.pw-arena) { scroll-margin-top:100px; }
@media(max-width:900px) {
    .mobile-event .cinematic-hero-inner { grid-template-columns:minmax(0,1fr); gap:30px; }
    .mobile-event :is(.pt-copy,.nova-copy,.battle-copy,.pw-copy,.cx-copy) { min-width:0; }
    .mobile-event :is(.pt-signal,.nova-studio,.battle-stadium,.pw-arena,.cx-visual) { max-width:100%; box-sizing:border-box; }
    /* 16px inputs keep iOS from zooming the layout when the keyboard opens. */
    .mobile-event :is(input,select,textarea) { font-size:16px!important; line-height:1.5; max-width:100%; }
    .mobile-event :is(.pt-form,.nova-controls) label { font-size:13px; line-height:1.6; }
    .mobile-event :is(.pt-step legend,.pt-pitch-text) { overflow-wrap:anywhere; }
    .mobile-event :is(.nova-reset,.nova-motion,.battle-warmup-tools button,.pw-copy-prompt,.pt-edit,.pt-reset,.pt-example,.pt-back) { min-height:44px; min-width:44px; font-size:12px; }
    .mobile-event :is(.pt-local-note,.pt-status,.pw-status,.pw-demo-note,.pw-output-note,.nova-palette-status,.cx-caption,.cx-guide-note) { font-size:12px; line-height:1.7; }
    .mobile-event :is(.pt-form-heading,.pt-preview-top,.nova-control-heading,.pw-output-heading) { flex-wrap:wrap; }
    .mobile-event :is(.cx-explanation p,.cx-steps p,.cx-pitch p,.cx-faq p,.pt-stage-tip,.pw-brief,.battle-shot-result) { font-size:14px; line-height:1.75; }
    .mobile-event :is(.pt-step-actions,.pw-lab-actions,.pt-preview-actions,.nova-palette-row) { flex-wrap:wrap; }
    .mobile-event .cx-faq summary { min-height:52px; font-size:15px; }
    .mobile-event .nova-studio { transform:none; }
    .mobile-event.nova-ready .nova-studio { transform:none!important; }
    .mobile-event .nova-controls input { min-height:48px; }
    .mobile-event .rulebook-dialog { max-height:100dvh; }
    .mobile-event .rulebook-dialog-main { overscroll-behavior:contain; -webkit-overflow-scrolling:touch; }
    .mobile-event .rulebook-close-btn { min-width:44px; min-height:44px; }
}
@media(max-width:768px) {
    .mobile-event .hud-navbar { padding-top:max(12px,env(safe-area-inset-top)); }
    .mobile-event .nav-links { height:100vh; height:100dvh; padding:90px 24px max(24px,env(safe-area-inset-bottom)); overflow-y:auto; overscroll-behavior:contain; justify-content:flex-start; gap:0; }
    .mobile-event .nav-links .nav-item { min-height:48px; height:auto; padding:13px 10px; font-size:14px; line-height:1.6; white-space:normal; text-align:center; }
    .mobile-event .nav-links .nav-search-btn { min-height:44px; min-width:44px; margin-top:8px; }
    .mobile-event .cinematic-breadcrumb { flex-wrap:wrap; font-size:11px; line-height:1.7; padding-inline:16px; }
    .mobile-event .cinematic-hero-section { padding-block:24px 42px; }
    .mobile-event .cinematic-hero-inner { padding-inline:16px; }
    .mobile-event #home .parent-festival-badge { font-size:10px; line-height:1.7; letter-spacing:.08em; }
    .mobile-event .hero-cinematic-actions { flex-direction:column; align-items:stretch; width:100%; gap:10px; }
    .mobile-event .hero-cinematic-actions :is(.btn,.btn>span) { white-space:normal; }
    .mobile-event .hero-cinematic-actions .btn { width:100%; min-height:50px; padding:14px 12px; font-size:13px; line-height:1.6; letter-spacing:.02em; justify-content:center; }
    .mobile-event .hero-cinematic-actions>span { width:100%; }
    .mobile-event .hero-stats { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px 12px; }
    .mobile-event .stat-divider { display:none; }
    .mobile-event .stat-item { min-width:0; }
    .mobile-event .stat-val { font-size:1.1rem; overflow-wrap:anywhere; }
    .mobile-event .stat-label { font-size:11px; line-height:1.6; letter-spacing:.08em; }
    .mobile-event .hero-cinematic-desc { font-size:14px; line-height:1.8; }
    .mobile-event .hero-prize-callout { max-width:100%; flex-wrap:wrap; gap:8px 12px; }
    .mobile-event .prize-callout-label { font-size:11px; letter-spacing:.1em; }
    .mobile-event .section-label { font-size:11px; letter-spacing:.12em; line-height:1.7; }
    .mobile-event .cinematic-spec-card { min-width:0; padding:20px; }
    .mobile-event .card-value-display { overflow-wrap:anywhere; font-size:1.05rem; }
    .mobile-event .card-subtext { font-size:13px; line-height:1.65; }
    .mobile-event .cinematic-brief-panel { padding:24px 20px; }
    .mobile-event .brief-body { font-size:15px; line-height:1.8; }
    .mobile-event :is(.prize-tier-row,.prize-pyramid) { width:100%; gap:22px; }
    .mobile-event .prize-tier { max-width:100%; }
    .mobile-event .podium-card { min-width:0; width:min(100%,320px); max-width:100%; padding:28px 22px; }
    .mobile-event .podium-card span { overflow-wrap:anywhere; font-size:11px; letter-spacing:.1em; }
    .mobile-event .contact-section { padding-bottom:max(28px,env(safe-area-inset-bottom)); }
    .mobile-event .contact-section a { overflow-wrap:anywhere; }
    .mobile-event :is(.pt-quick-facts,.pw-facts) { gap:8px; }
    .mobile-event :is(.pt-quick-facts,.pw-facts)>span { font-size:11px; line-height:1.5; padding:8px 10px; }
    .mobile-event :is(.pt-intro p,.pw-intro>p,.cx-intro p) { font-size:15px; line-height:1.75; }
    .mobile-event .pt-intro a { min-height:44px; font-size:14px; gap:12px; }
    .mobile-event .pt-signal-top { font-size:10px; flex-wrap:wrap; line-height:1.6; }
    .mobile-event .pt-node { font-size:10px; max-width:47%; text-align:center; }
    .mobile-event .pt-signal-bottom { font-size:11px; }
    .mobile-event .pt-intro h2 { font-size:clamp(3.4rem,15vw,4.5rem); }
    .mobile-event .pt-builder { max-width:calc(100% - 20px); }
    .mobile-event :is(.pt-form,.pt-preview) { padding:22px 18px; }
    .mobile-event .pt-step { min-height:290px; }
    .mobile-event .pt-preview-top { font-size:11px; gap:10px; }
    .mobile-event .pt-preview-actions { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
    .mobile-event .pt-copy-pitch { grid-column:1/-1; min-height:48px; font-size:14px; }
    .mobile-event .pt-preview-actions .pt-reset { margin:0; }
    .mobile-event .pt-next { min-height:48px; font-size:14px; }
    .mobile-event .pt-exercise>summary { font-size:14px; min-height:56px; }
    .mobile-event .pw-intro h2 { font-size:clamp(2.2rem,10.2vw,3.8rem); }
    .mobile-event .pw-missions { gap:4px; }
    .mobile-event .pw-missions button { font-size:12px; padding:10px 3px; }
    .mobile-event .pw-upgrades { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:6px; }
    .mobile-event .pw-upgrades button { min-width:0; min-height:46px; padding:10px 3px; font-size:11px; }
    .mobile-event .pw-control-label { font-size:12px; }
    .mobile-event .pw-prompt-text { font-size:14px; line-height:1.8; }
    .mobile-event .pw-code-label { font-size:11px; }
    .mobile-event .pw-code-label+.pw-prompt-text { line-height:1.8; }
    .mobile-event .pw-run { font-size:14px; min-height:48px; }
    .mobile-event .pw-reset { font-size:12px; }
    .mobile-event .pw-output-heading { font-size:11px; }
    .mobile-event .pw-output-content { font-size:14px; }
    .mobile-event .pw-output-content table { font-size:12px; table-layout:fixed; }
    .mobile-event .pw-output-content :is(td,th) { overflow-wrap:anywhere; padding:8px; }
    .mobile-event .pw-output-content th { width:30%; }
    .mobile-event .pw-output-content caption { font-size:12px; }
    .mobile-event .pw-terminal-bar { font-size:10px; letter-spacing:.06em; }
    .mobile-event .pw-ribbon span { font-size:13px; }
    .mobile-event .cx-visual-top { font-size:10px; letter-spacing:.06em; }
    .mobile-event .cx-paper-header>span { font-size:10px; line-height:1.6; }
    .mobile-event .cx-paper-header p { font-size:11px; }
    .mobile-event .cx-part { padding:12px; min-height:145px; }
    .mobile-event .cx-part strong { font-size:14px; line-height:1.5; }
    .mobile-event .cx-part>span:last-of-type { font-size:12px; line-height:1.6; }
    .mobile-event .cx-part-num { font-size:10px; }
    .mobile-event .cx-part-sources { min-height:100px; }
    .mobile-event .cx-evidence { display:none; }
    .mobile-event .cx-explanation { min-height:360px; }
    .mobile-event .cx-explanation h3 { font-size:18px; }
    .mobile-event .cx-eyebrow { font-size:11px; }
    .mobile-event .cx-pitch { flex-wrap:wrap; gap:20px; }
    .mobile-event .cx-pitch-time { display:flex; align-items:center; gap:12px; font-size:2.7rem; }
    .mobile-event .cx-pitch-time>span { margin:0; font-size:11px; }
    .mobile-event .nova-studio-top { font-size:10px; }
    .mobile-event .nova-control-heading>span { font-size:10px; }
    .mobile-event .nova-controls label { font-size:13px; }
    .mobile-event .nova-palette-row { gap:10px; }
    .mobile-event .nova-poster-meta { font-size:10px; }
    .mobile-event .nova-poster-foot { font-size:9px; }
    .mobile-event .battle-art-header { font-size:10px; letter-spacing:.06em; }
    .mobile-event .battle-art-footer { font-size:11px; }
    .mobile-event .battle-score { font-size:12px; }
    .mobile-event .battle-shot-controls button { min-height:50px; font-size:12px; }
    .mobile-event .battle-warmup-tools { font-size:12px; }
    .mobile-event :is(.event-intro-skip,.battle-skip,.nova-skip) { bottom:calc(18px + env(safe-area-inset-bottom)); right:calc(18px + env(safe-area-inset-right)); font-size:12px; }
}
@media(max-width:360px) {
    .mobile-event :is(.nova-studio,.cx-visual,.pw-lab-body) { padding:14px; }
    .mobile-event .cx-paper { padding:12px; }
    .mobile-event .cx-paper-grid { gap:6px; }
    .mobile-event .cx-part { padding:10px; min-height:155px; }
    .mobile-event .cx-part-sources { min-height:110px; }
    .mobile-event .cx-flow { gap:4px; }
    .mobile-event .pt-orbit-ring:nth-child(2) { width:240px; height:240px; }
    .mobile-event .pt-orbit-ring:first-child { width:210px; height:210px; }
    .mobile-event .pt-core { width:130px; height:130px; }
    .mobile-event .pt-node-b { right:-7px; }
    .mobile-event .nova-poster { padding:16px; }
    .mobile-event .nova-poster-title { font-size:2rem; }
    .mobile-event .nova-poster-shapes span:nth-child(4) { width:215px; }
}
@media(max-height:500px) and (orientation:landscape) {
    .mobile-event .event-intro-scene { width:min(620px,calc(100vw - 120px)); }
    .mobile-event .event-intro-skip { top:8px; bottom:auto; right:12px; }
    .mobile-event .event-intro h2 { font-size:2.3rem; margin:12px 0; }
    .mobile-event .intro-spark { width:70px; height:70px; margin-bottom:12px; }
    .mobile-event .intro-spark-core { width:48px; height:48px; font-size:1.8rem; border-radius:12px; }
    .mobile-event .intro-terminal-content { padding:18px 24px; }
    .mobile-event .intro-boot-lines { min-height:60px; }
    .mobile-event .intro-load-track { margin-top:12px; }
    .mobile-event .battle-intro-copy h2 { font-size:2.5rem; }
    .mobile-event .nova-intro-title h2 { font-size:2.5rem; margin:12px 0; }
}
@media(pointer:coarse) {
    .mobile-event .battle-warmup-tools>span { display:none; }
    .mobile-event .nova-studio { animation:none; transform:none; }
    .mobile-event .pt-orbit-ring:nth-child(2) { animation:none; }
}
