/* The tutorial uses the game's existing case tools and short, contextual tips. */
#screen-landing .cover-tutorial,.setup-case-cover.cover-tutorial { background-image:url('/images/tutorial/lucy-teen-captive.png'); background-size:200% auto; background-position:left 10%; }
#screen-landing .story-select { grid-template-columns:repeat(4,minmax(0,1fr)); }
#screen-landing .story-option-title { font-size:25px; }
#screen-landing .story-cover { height:200px; }
#screen-landing .story-cta { margin-top:auto; }
.tutorial-bubble { --bubble-fill:color-mix(in srgb,var(--bg-panel) 88%,var(--amber) 12%); position:fixed; z-index:410; box-sizing:border-box; width:min(310px,calc(100vw - 24px)); margin:0; padding:15px 38px 17px 17px; border:1px solid var(--amber); border-radius:15px; background:var(--bubble-fill); box-shadow:0 5px 22px #0002; color:var(--paper); font:14px/1.5 var(--font-sans); text-align:left; }
.tutorial-bubble[hidden] { display:none !important; }
.tutorial-bubble::before,.tutorial-bubble::after { content:''; position:absolute; pointer-events:none; width:18px; height:10px; left:calc(var(--bubble-pointer,30px) - 9px); top:-10px; background:var(--amber); clip-path:polygon(50% 0,0 100%,100% 100%); }
.tutorial-bubble::after { width:16px; height:9px; left:calc(var(--bubble-pointer,30px) - 8px); top:-8px; background:var(--bubble-fill); }
.tutorial-bubble-label { display:block; margin:0 0 6px; color:var(--amber-bright); font:700 11px/1.3 var(--font-sans); letter-spacing:.6px; text-transform:uppercase; }
.tutorial-bubble strong { display:block; color:var(--paper); font:700 16px/1.3 var(--font-sans); }
.tutorial-bubble p { margin:7px 0 0; color:var(--paper); font:inherit; }
.tutorial-bubble .tutorial-bubble-close { position:absolute; right:7px; top:7px; width:30px; height:30px; padding:0; border:0; border-radius:50%; background:transparent; color:var(--paper-dim); font:22px/1 var(--font-sans); }
.tutorial-bubble .tutorial-bubble-close:hover { background:var(--accent-soft); color:var(--paper); }
.tutorial-bubble button:focus-visible { outline:2px solid var(--paper); outline-offset:3px; }
.tutorial-highlight { position:fixed; z-index:409; box-sizing:border-box; pointer-events:none; border:2px solid var(--amber); border-radius:12px; }
.tutorial-highlight[hidden] { display:none !important; }
#document-materials-toggle.tutorial-target { border-color:var(--amber); color:var(--amber-bright); background:var(--accent-soft); }
#document-case-panel .manual-note { margin:6px 6px 8px; padding:10px 12px; border-radius:8px; }
#document-case-panel .manual-note.tutorial-target { border-left-color:transparent; }
.tutorial-bubble-floating { position:fixed; z-index:410; width:min(310px,calc(100vw - 24px)); margin:0; }
.tutorial-bubble-floating.is-map-overview::before,.tutorial-bubble-floating.is-map-overview::after { display:none; }
.tutorial-bubble-floating.is-above::before,.tutorial-bubble-floating.is-above::after { top:auto; bottom:-10px; clip-path:polygon(0 0,100% 0,50% 100%); }
.tutorial-bubble-floating.is-above::after { bottom:-8px; }
.tutorial-bubble-floating.is-side::before,.tutorial-bubble-floating.is-side::after { left:-10px; top:calc(var(--bubble-pointer-y,30px) - 9px); bottom:auto; width:10px; height:18px; clip-path:polygon(0 50%,100% 0,100% 100%); }
.tutorial-bubble-floating.is-side::after { left:-8px; top:calc(var(--bubble-pointer-y,30px) - 8px); width:9px; height:16px; }
.tutorial-bubble-floating.is-side-left::before,.tutorial-bubble-floating.is-side-left::after { left:auto; right:-10px; clip-path:polygon(0 0,100% 50%,0 100%); }
.tutorial-bubble-floating.is-side-left::after { left:auto; right:-8px; }
#pdf-modal .tutorial-bubble { margin:0; }
#pdf-modal .tutorial-bubble.tutorial-bubble-floating { margin:0; }
.leaflet-popup .tutorial-bubble { margin:12px 0 18px; padding:12px 28px 14px 12px; font-size:12px; }
.leaflet-popup .tutorial-bubble strong { font-size:14px; }
.leaflet-popup .tutorial-bubble p { margin:5px 0 0; }
#tutorial-complete { padding:20px; }
.tutorial-complete-card { box-sizing:border-box; width:min(580px,100%); max-height:calc(100dvh - 40px); overflow-y:auto; margin:auto; border:1px solid var(--border-dim); border-radius:16px; padding:28px; background:var(--bg-panel); box-shadow:var(--shadow); color:var(--paper); font:15px/1.6 var(--font-sans); }
.tutorial-complete-photo { display:block; width:100%; aspect-ratio:2.2; object-fit:cover; object-position:center top; margin:0 0 20px; border-radius:8px; }
.tutorial-complete-eyebrow { margin:0 0 8px; color:var(--amber); font:600 11px/1.4 var(--font-sans); }
.tutorial-complete-card h2 { margin:0; font-size:30px; line-height:1.2; }
#tutorial-complete-message { margin:12px 0 0; }
#tutorial-complete-description { margin:10px 0 0; color:var(--paper-dim); }
.tutorial-complete-actions { display:flex; align-items:center; justify-content:flex-end; flex-wrap:wrap; gap:9px; margin-top:20px; }
#tutorial-complete .tutorial-complete-actions .btn { flex:0 0 auto; width:auto; max-width:100%; min-width:0; min-height:42px; height:auto; margin:0; padding:10px 14px; font:600 13px/1.4 var(--font-sans); }
html[data-case="tutorial"] #tab-answers .design-page-heading > p:last-child { max-width:560px; }
html[data-case="tutorial"] .city-district-label { font-size:13px; }
@media (max-width:1100px) {
  #screen-landing .story-select { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:640px) {
  #screen-landing .story-select { grid-template-columns:1fr; }
  .tutorial-bubble { padding:12px 32px 14px 13px; font-size:13px; }
  .tutorial-bubble strong { font-size:15px; }
  #pdf-modal .tutorial-bubble { margin:0; }
  #tutorial-complete { padding:12px; }
  .tutorial-complete-card { max-height:calc(100dvh - 24px); padding:20px; }
  .tutorial-complete-card h2 { font-size:28px; }
  .tutorial-complete-photo { margin-bottom:16px; }
}
