:root { --ai-cyan:#ff6b21; --ai-pink:#ffc400; --ai-dark:#17130f; --tourism-orange:#ff6b21; }
body, .cyber-bg { background-color:#17130f; background-image:radial-gradient(ellipse at 80% 5%,#7c321f 0,transparent 50%),linear-gradient(160deg,#17130f,#362015); background-position:center; background-size:cover; color:#fff; }
.text-ai-cyan, [class*="text-cyan-"] { color:#ffae81 !important; }
.text-ai-pink { color:#ffd478 !important; }
[class*="border-cyan-"],.border-ai-cyan { border-color:#ff6b21 !important; }
[class*="bg-cyan-"],.primary,.glow-button { background:#ff6b21 !important; color:#25150e !important; }
.btn-cyan { color:#ffb48d; }
.glass,.glass-card,.choice,.choice-card { background:rgba(37,26,20,.92); border-color:#8b6451; }
[class*="bg-slate-900"], [class*="bg-[#0f172a]"] { background-color:rgba(37,26,20,.92) !important; }
.orbitron { font-family:'Noto Sans TC',sans-serif; }
.tourism-brand { display:flex; justify-content:center; margin:0 auto 1rem; width:fit-content; max-width:100%; background:#fff; padding:1rem 1.5rem; border-radius:1rem; }
.tourism-brand img { display:block; width:min(52vw,270px); height:auto; object-fit:contain; }
.tourism-wait { width:min(100%,650px); margin:auto; text-align:center; }
.tourism-progress-heading { display:flex; justify-content:space-between; align-items:baseline; gap:1rem; }
.tourism-progress-label { font-size:1.15rem; font-weight:700; }
.tourism-percent { font:900 clamp(2.8rem,7vw,4rem)/1.2 'Noto Sans TC',sans-serif; color:#ffae81; font-variant-numeric:tabular-nums; }
.tourism-track { height:22px; border:2px solid #ff9c65; background:#2a1b15; border-radius:99px; overflow:hidden; margin:.75rem 0 1rem; }
.tourism-fill { height:100%; width:0; background:#ff6b21; transition:width .35s ease; }
.tourism-milestones { list-style:none; padding:0; display:grid; grid-template-columns:repeat(4,1fr); gap:.4rem; font-size:.875rem; color:#c1aea4; }
.tourism-milestones li { border-top:3px solid #75584a; padding-top:.5rem; }
.tourism-milestones li.is-done { color:#fff; border-color:#ff6b21; }
.tourism-status { font-size:clamp(1rem,2.4vw,1.35rem); line-height:1.6; min-height:3.2em; margin:1.25rem 0 .2rem; }
.tourism-progress-note { font-size:.875rem; color:#cbb3a6; }
.tourism-character-stage { display:flex; justify-content:center; padding:1.5rem 0; overflow:hidden; background:radial-gradient(ellipse at center,#fff2e7 0%,#ffcfad 35%,transparent 65%); }
.tourism-character { display:block; width:clamp(170px,34vw,310px); height:auto; object-fit:contain; animation:tourism-sway 2.8s ease-in-out infinite; transform-origin:50% 90%; }
.tourism-wait-title { font-size:1.125rem; font-weight:700; color:#ffd6be; margin:0 0 1rem; }
.tourism-wait[data-phase="ready"] .tourism-character { animation:tourism-cheer .65s ease both; }
.tourism-wait[data-phase="failed"] .tourism-character { animation:none; }
.tourism-wait[data-phase="failed"] .tourism-status { color:#ffb9b9; }
@keyframes tourism-sway { 0%,100% { transform:translateY(0) rotate(-4deg); } 50% { transform:translateY(-12px) rotate(4deg); } }
@keyframes tourism-cheer { 0%,100% { transform:translateY(0); } 45% { transform:translateY(-25px) rotate(6deg); } }
@media(max-width:600px) { .tourism-language { position:static !important; order:-1; align-self:flex-end; margin-bottom:1rem; } .glow-bar { max-width:75vw; } .tourism-home-examples { gap:.65rem !important; padding:0 !important; margin-bottom:2rem !important; } .tourism-home-examples>div { min-width:0; } .tourism-home-examples img { max-width:100%; } .tourism-example-image { width:30vw !important; height:30vw !important; } }
@media(prefers-reduced-motion:reduce) { .tourism-character,.radar-spinner,.text-glow-pulse,.animate-pulse,.cyber-bg::before,.cyber-bg::after { animation:none !important; } .tourism-fill { transition:none; } }

/* Soft event edition: a calm warm canvas with saturated KV colours used as accents. */
:root {
  --ai-dark:#f2a36f;
  --ai-cyan:#211d80;
  --ai-pink:#fff128;
  --tourism-orange:#e8400f;
  --tourism-orange-soft:#ff7959;
  --tourism-cream:#f2a36f;
  --tourism-blue:#087fbd;
}
html, body, .cyber-bg {
  background-color:var(--tourism-cream);
  background-image:
    radial-gradient(circle at 8% 10%,rgba(248,228,66,.22) 0,transparent 25%),
    radial-gradient(circle at 92% 86%,rgba(255,255,255,.14) 0,transparent 30%),
    linear-gradient(145deg,#f6b47e 0%,#f2a06b 48%,#ef8f58 100%);
  background-attachment:fixed;
  color:#211d80;
}
body:not(.cyber-bg)::before { content:""; position:fixed; z-index:100; top:0; left:0; right:0; height:9px; background:linear-gradient(90deg,#046bbe 0 25%,#f8e442 25% 50%,#18a83b 50% 75%,#e8400f 75%); pointer-events:none; }
.cyber-bg::before,.cyber-bg::after { display:none; }
.text-white,.text-ai-cyan,[class*="text-cyan-"],.text-ai-pink { color:#211d80 !important; }
[class*="text-slate-"],[class*="text-white/"] { color:#47436f !important; }
[class*="drop-shadow-"] { filter:none !important; }
.text-glow-pulse,.tourism-home .animate-pulse { animation:none; text-shadow:none; }
.tourism-event-title {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:#fff;
  background:var(--tourism-orange);
  border:3px solid #130f44;
  border-radius:8px 8px 24px 8px;
  box-shadow:8px 8px 0 #130f44;
  font-size:clamp(.95rem,2.5vw,1.45rem);
  font-weight:900;
  letter-spacing:.06em;
  margin-top:2rem;
  padding:.65rem 1.65rem;
  transform:rotate(-1deg);
}
.tourism-color-ribbon { display:flex; width:144px; height:12px; margin:16px auto 8px; border-radius:20px; overflow:hidden; }
.tourism-color-ribbon span { flex:1; background:#007dbd; }
.tourism-color-ribbon span:nth-child(2) { background:#fff128; }
.tourism-color-ribbon span:nth-child(3) { background:#20ac3b; }
.tourism-color-ribbon span:nth-child(4) { background:#211d80; }
.tourism-language { background:#fff !important; border:2px solid #130f44 !important; box-shadow:4px 4px 0 #f8e442 !important; }
.lang-btn { background:#fff; border-color:transparent; color:#211d80; min-height:34px; }
.lang-btn.active { background:#211d80; color:#fff; box-shadow:none; border-color:#211d80; }
.content-container { padding-top:0; }
.tourism-home { margin-top:8px !important; }
.tourism-home>p:first-child { color:#130f44 !important; font-weight:900; font-size:clamp(1.8rem,4vw,3rem); text-shadow:3px 3px 0 #f8e442; }
.tourism-home>p:nth-child(2) { color:#fff !important; background:#046bbe; border:2px solid #130f44; box-shadow:5px 5px 0 #18a83b; border-radius:6px 18px 6px 18px; margin-bottom:26px; padding:.4rem 1rem; font-size:clamp(1rem,2.4vw,1.5rem); }
.tourism-home>p:nth-child(2) i { color:#f8e442 !important; }
.tourism-home-examples { margin-bottom:24px !important; }
.tourism-example-image { background:#fff !important; border:5px solid var(--tourism-orange) !important; box-shadow:8px 8px 0 #130f44 !important; border-radius:10px 30px 10px 30px; width:clamp(120px,22vw,200px) !important; height:clamp(120px,22vw,200px) !important; }
.tourism-home-examples>div:last-child .tourism-example-image { border-color:#046bbe !important; box-shadow:8px 8px 0 #f8e442 !important; }
.tourism-home-examples>div:first-child>span,.tourism-home-examples>div:last-child>span { color:#fff !important; border:2px solid #130f44; padding:.3rem .7rem; margin-top:.15rem; }
.tourism-home-examples>div:first-child>span { background:#e8400f; transform:rotate(-1deg); }
.tourism-home-examples>div:last-child>span { background:#046bbe; transform:rotate(1deg); }
.tourism-home-examples>div:nth-child(2) { background:#f8e442; border:2px solid #130f44; border-radius:50%; width:46px; height:46px; padding-bottom:0 !important; display:flex; align-items:center; justify-content:center; }
.btn-cyan,.primary,.glow-button,[class*="bg-cyan-"] { background:var(--tourism-orange) !important; color:#fff !important; border:3px solid #130f44; box-shadow:7px 7px 0 #f8e442,10px 10px 0 #130f44 !important; }
.btn-cyan:active:not(:disabled),.primary:active:not(:disabled),.glow-button:active { background:#d83b12 !important; color:#fff !important; transform:translateY(3px); box-shadow:0 2px 0 #211d80 !important; }
.btn-red,.secondary { background:#fff !important; color:#211d80; border:2px solid #211d80; box-shadow:none; }
.tourism-home>.btn-cyan { padding:18px 56px !important; font-size:clamp(1.3rem,3vw,2rem); border-radius:8px 28px 8px 28px !important; }
.tourism-brand { border:3px solid #130f44; border-radius:6px 22px 6px 22px; box-shadow:6px 6px 0 #f8e442; }
.tourism-home-logo { margin:30px auto 8px; padding:10px 22px; border:3px solid #130f44; border-radius:6px 24px 6px 24px; box-shadow:7px 7px 0 #046bbe; }
.tourism-home-logo img { width:clamp(180px,28vw,235px); }
.glass,.glass-card,.choice,.choice-card,[class*="bg-slate-900"],[class*="bg-[#0f172a]"],[class*="bg-black/40"] { background:#fff !important; color:#211d80; border-color:#130f44; box-shadow:6px 6px 0 #046bbe; }
.choice-card.selected,.choice.selected { background:#fff0e5 !important; border-color:var(--tourism-orange) !important; box-shadow:0 6px 0 var(--tourism-orange) !important; }
.camera-container { border-color:var(--tourism-orange); box-shadow:0 7px 0 #211d80; }
.camera-container .text-white { color:#fff !important; }
.face-guide { border-color:#fff128; box-shadow:0 0 0 9999px rgba(0,0,0,.30); }
.tourism-wait { padding:20px clamp(14px,3vw,30px); background:#fff; border-radius:28px; border:3px solid #211d80; box-shadow:7px 7px 0 #007dbd; box-sizing:border-box; }
.tourism-percent { color:#211d80; }
.tourism-track { background:#fff4e5; border-color:#211d80; }
.tourism-fill { background:var(--tourism-orange); }
.tourism-milestones { color:#65617b; }
.tourism-milestones li { border-color:#dedce9; }
.tourism-milestones li.is-done { color:#211d80; border-color:#007dbd; }
.tourism-progress-note { color:#65617b; }
.tourism-status { color:#211d80; }
.tourism-character-stage { background:radial-gradient(ellipse at center,#fff3a3 0%,#fff9dc 38%,transparent 68%); }
.tourism-wait-title { color:#211d80; }
.tourism-wait[data-phase="failed"] .tourism-status { color:#a82020; }
button:disabled { background:#e9e6ee !important; color:#6a6476 !important; border-color:#aaa2b4 !important; box-shadow:none !important; cursor:not-allowed; }
.tourism-fill { transition:width .08s linear; }
.tourism-character-fallback[hidden] { display:none; }
.tourism-sprite { display:none; width:clamp(200px,42vw,350px); aspect-ratio:1; background-size:200% 200%; background-repeat:no-repeat; flex:none; }
.tourism-sprite.is-active { display:block; animation:bear-frames 1.6s step-end infinite; }
.tourism-sprite[data-action="wave"].is-active { animation-duration:1.2s; }
.tourism-sprite[data-action="noodles"].is-active { animation-duration:2s; }
.tourism-sprite[data-action="chicken"].is-active { animation-duration:1.8s; }
.tourism-action-caption { margin:0 0 .4rem; color:#211d80; font-weight:900; font-size:1.25rem; }
.tourism-character-stage { min-height:220px; }
.tourism-wait[data-phase="ready"] .tourism-sprite.is-active { animation:bear-frames 1.6s step-end infinite, tourism-cheer .65s ease both; }
.tourism-wait[data-phase="failed"] .tourism-sprite { animation-play-state:paused; }
@keyframes bear-frames { 0%,100% { background-position:0 0; } 25% { background-position:100% 0; } 50% { background-position:0 100%; } 75% { background-position:100% 100%; } }
@media(prefers-reduced-motion:reduce) { .tourism-sprite.is-active,.tourism-wait[data-phase="ready"] .tourism-sprite.is-active { animation:none; } .tourism-fill { transition:none; } }
@media(max-width:600px) { .tourism-event-title { margin-top:0; padding:.5rem 1rem; } .tourism-home-examples { gap:12px !important; } .tourism-example-image { width:29vw !important; height:29vw !important; min-width:0; } .tourism-language { margin-bottom:10px; } .tourism-home-logo { margin-top:26px; } }
