*{box-sizing:border-box}body{margin:0;background:#f7eedf;color:#183943;font-family:system-ui,sans-serif}button{font:inherit;cursor:pointer;border:1px solid #18394330;border-radius:12px;background:#fffcf5;color:#183943;padding:11px 17px;min-height:44px}button:focus-visible,#viewport:focus-visible{outline:3px solid #d76a54;outline-offset:3px}header{display:flex;align-items:center;gap:18px;padding:15px 4%;border-bottom:1px solid #18394320}header img{width:64px;height:64px;object-fit:contain}header h1{font-family:Georgia,serif;font-size:27px;margin:3px 0}header small,.intro small{letter-spacing:2px;font-size:11px}header #journey{margin-left:auto}main{padding:24px 4%}.intro{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:22px}.intro h2{font:36px Georgia,serif;margin:9px 0}.intro p{max-width:760px;line-height:1.6;margin:0;font-size:14px}.stamp{font-size:11px;letter-spacing:2px;border:1px solid #cf8069;padding:18px;color:#aa5a46;transform:rotate(-4deg)}.play{display:grid;grid-template-columns:minmax(0,1fr) 295px;gap:22px}#viewport{height:min(65vw,690px);max-height:72vh;background:#132d36;position:relative;overflow:hidden;border-radius:18px;touch-action:none;user-select:none}#world{position:absolute;transform-origin:0 0}#scene{display:block;width:100%;height:100%;pointer-events:none}.zoom{display:flex;gap:6px;flex-wrap:wrap}.zoom button{background:#fff8e6ee}aside{padding:18px;background:#fff9ed;border-radius:18px}.trayhead{display:flex;align-items:center;justify-content:space-between}h3{margin:0;font:24px Georgia,serif}aside p{font-size:13px;line-height:1.5}#targets{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:16px 0}#targets button{padding:5px;font-size:11px;text-align:left;border-radius:10px;overflow:hidden}#targets .thumb{display:block;width:100%;height:52px;background-repeat:no-repeat;border-radius:7px;margin-bottom:5px}#targets button.found{opacity:.5;background:#d5e7dd}#targets button.selected{outline:2px solid #d47a62}.primary{background:#1e686a;color:#fff;border:0;width:100%}#replay{width:100%;font-size:13px}dialog{border:0;border-radius:22px;padding:35px;max-width:600px;width:90%;background:#fff8eb;color:#183943}dialog::backdrop{background:#102d40ad}.close{float:right}dialog h2{font:30px Georgia,serif}dialog p{line-height:1.65}.city{padding:15px;margin:12px 0;border:1px solid #18394330;border-radius:14px}.city small{display:block;margin-top:5px}dialog img{width:100px;float:right}#status{min-height:38px}@media(max-width:850px){main{padding:18px 14px}header{gap:9px;padding:10px 14px}header img{width:44px;height:44px}header h1{font-size:21px}header small{font-size:8px}header button{font-size:11px;padding:9px}.stamp{display:none}.intro h2{font-size:29px}.play{grid-template-columns:1fr}#viewport{height:66vw;min-height:245px;max-height:450px}aside{padding:15px}#targets{grid-template-columns:repeat(4,1fr)}#targets .thumb{height:45px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto}}
#targets img.thumb{object-fit:contain;background:#f0e6d4}@media(max-width:850px) and (orientation:landscape){#viewport{height:75vh;min-height:260px}}

/* Miami dusk atmosphere around the selected scene. */
body{background:radial-gradient(ellipse at 12% 0%,#b8537845,transparent 52%),radial-gradient(ellipse at 90% 45%,#36bab22b,transparent 55%),linear-gradient(155deg,#172d42,#25364c 50%,#102e39);color:#fff1df;min-height:100vh}
header{background:#102b3acc;border-bottom:1px solid #80d6cf55;box-shadow:0 3px 22px #091c2a66}
header h1{color:#ffe9cf}header small,.intro small{color:#8eddd4}.intro h2{color:#ffe2cb;text-shadow:0 0 22px #ff967033}.intro p{color:#e0e6e4}.stamp{color:#ffc99d;border-color:#eaa08a;background:#633e5733}
#viewport{border:1px solid #81d1c780;box-shadow:0 14px 40px #071c2c80,0 0 24px #61d2c01a}
aside{background:linear-gradient(155deg,#244957,#173842);border:1px solid #76ccc15e;box-shadow:0 14px 35px #061d2b55;color:#fff1df}aside p{color:#dce9e6}#count{color:#8fe1ce}#targets button{background:#fcf1df;color:#183943}#targets button.found{opacity:.8;background:#bce5d2}#targets button.selected{outline-color:#ffc58e}.primary{background:#88d4c6;color:#133b43;font-weight:650}.object-glow{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}.object-glow :is(polygon,path){fill:#fff5b828;stroke:#fff5c5;stroke-width:3;stroke-linejoin:round;filter:drop-shadow(0 0 7px #fff0a8) drop-shadow(0 0 15px #60efd4);animation:keepsake-glow 1.8s ease-out both}
@keyframes keepsake-glow{0%{opacity:0}18%{opacity:1;fill:#fff5b850}55%{opacity:1;fill:#fff5b820}100%{opacity:0}}
@media(prefers-reduced-motion:reduce){.object-glow :is(polygon,path){animation:none;fill:#fff5b835}}

.scene-choice{display:block;width:100%;text-align:left;margin-top:10px}.scene-choice small{letter-spacing:0}#continue{margin-top:12px}

.tutorial{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:24px}.tutorial img{float:none;width:100%;height:70px;object-fit:contain}.tutorial b{display:block;margin-top:12px}.tutorial p{font-size:13px}.tutorial-icon{display:flex;align-items:center;justify-content:center;height:70px;font-size:40px;color:#1e686a}@media(max-width:500px){.tutorial{gap:9px}.tutorial p{font-size:12px}dialog{padding:24px}}

#scene-nav{display:flex;flex-wrap:wrap;gap:8px}#scene-nav button{font-size:.85rem}#scene-nav [aria-current="step"]{background:#153d49;color:#fff;border-color:#54c9bd}

.scene-panel{min-width:0}.scene-toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;padding:8px 2px 0}.scene-toolbar button{min-width:44px;min-height:44px;padding:8px 14px}.scene-toolbar #count{white-space:nowrap;padding:8px;font-size:1rem}
@media(max-width:500px){header{flex-wrap:wrap}.intro{flex-wrap:wrap;gap:12px}.intro>div,#scene-nav{width:100%}#scene-nav button{flex:1;min-width:0}#targets{grid-template-columns:repeat(4,minmax(0,1fr))}#targets button{overflow-wrap:anywhere}}

#menu{margin-left:auto;min-height:44px;background:#183943;color:#fff8eb;border:1px solid #88d4c6}#menu span{margin-right:6px;color:#88d4c6}.menu-actions{display:grid;gap:12px;margin-top:22px}.menu-actions button{text-align:left;min-height:48px;border-left:5px solid #d47a62;background:#f8eedb}.menu-actions button:focus-visible{outline:3px solid #1e686a;outline-offset:3px}
dialog{box-sizing:border-box;max-height:90dvh;overflow-y:auto}@media(max-width:500px){dialog{padding:22px;width:calc(100% - 24px)}#scene-nav button{flex:1 1 calc(50% - 8px);overflow-wrap:anywhere}}

/* Illustrated weekend itinerary. */
.intro{flex-wrap:wrap;align-items:flex-start}.intro>div{flex:1;min-width:0}.stamp{display:none}
#scene-nav{order:3;width:100%;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding-top:8px}
#scene-nav button{display:flex;align-items:center;gap:12px;min-width:0;text-align:left;padding:8px;background:#183943;border:1px solid #88d4c645;border-radius:12px;color:#fff1df;box-shadow:0 4px 12px #071c2c30;transition:background .15s,border-color .15s}
#scene-nav button img{width:62px;height:62px;object-fit:cover;flex-shrink:0;border-radius:7px}
.scene-label{display:grid;gap:4px;min-width:0}.scene-number{font-size:11px;font-weight:700;letter-spacing:2px;color:#88d4c6}.scene-name{font-size:14px;line-height:1.3;overflow-wrap:anywhere}
#scene-nav button:hover{background:#244957;border-color:#88d4c6}#scene-nav [aria-current="step"]{background:#f8eedb;color:#183943;border-color:#e9977f;box-shadow:inset 0 -3px #d47a62}.scene-number::after{content:' · MIAMI';font-size:9px;letter-spacing:1px}#scene-nav [aria-current="step"] .scene-number{color:#985340}#scene-nav [aria-current="step"] .scene-number::after{content:' · HERE'}
@media(max-width:900px){#scene-nav{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:500px){#scene-nav{gap:8px}#scene-nav button{gap:8px;padding:7px}#scene-nav button img{width:42px;height:52px}.scene-name{font-size:12px}.scene-number{font-size:10px;letter-spacing:1px}.scene-number::after{font-size:8px}}
@media(prefers-reduced-motion:reduce){#scene-nav button{transition:none}}
#scene-nav button[aria-current="step"]:hover{background:#f8eedb;border-color:#e9977f}

#scene-nav{display:block;width:auto;padding:0;order:0}#scene-nav #choose-scene{padding:12px 18px;white-space:normal;background:#183943;color:#fff1df;border:1px solid #88d4c680;font-size:14px;min-height:48px}.itinerary-list{display:grid;gap:8px;margin-top:20px}.itinerary-list button{display:flex;align-items:center;gap:14px;text-align:left;padding:12px;background:#f8eedb;border:1px solid #18394325}.stop-number{color:#985340;font-size:12px;font-weight:700;letter-spacing:1px}.itinerary-list button>span:nth-child(2){flex:1}.itinerary-list small{font-size:11px;color:#1e686a}.itinerary-list [aria-current="step"]{border-color:#1e686a;background:#d9ece5}.intro{align-items:center}@media(max-width:500px){#scene-nav{width:100%}#scene-nav #choose-scene{width:100%;justify-content:space-between}.itinerary-list button{gap:10px}.itinerary-list small{font-size:10px}}

dialog.city-themed{background:radial-gradient(ellipse at 0 0,#b8537850,transparent 70%),linear-gradient(145deg,#24394c,#143d45);color:#fff1df;border:1px solid #88d4c680;box-shadow:0 20px 70px #071c2c99}.city-themed .close{background:#183943;color:#fff1df;border-color:#88d4c660}.miami-itinerary>small{color:#88d4c6;letter-spacing:2px;font-size:11px}.miami-itinerary h2{color:#ffe2cb;margin-bottom:8px}.itinerary-caption{color:#c9e5df;font-size:13px;margin-top:0}.city-themed .itinerary-list button{background:#183943;color:#fff1df;border-color:#88d4c645;gap:12px}.itinerary-list button img{float:none;width:48px;height:48px;object-fit:cover;border-radius:7px;flex-shrink:0}.itinerary-list button>span:last-of-type{flex:1}.city-themed .stop-number{color:#88d4c6}.city-themed .itinerary-list small{color:#88d4c6}.city-themed .itinerary-list [aria-current="step"]{background:#f8eedb;color:#183943;border-color:#e9977f;box-shadow:inset 3px 0 #d47a62}.city-themed .itinerary-list [aria-current="step"] .stop-number{color:#985340}.city-themed .itinerary-list [aria-current="step"] small{color:#1e686a}@media(max-width:500px){.city-themed .itinerary-list button{gap:8px;padding:9px;font-size:13px}.itinerary-list button img{width:38px;height:44px}.city-themed .stop-number{font-size:10px}}
.itinerary-list button>.stop-number{flex:0 0 auto}

#targets button{min-height:48px;padding:10px;font-size:13px}#targets:has(img){align-items:start}@media(max-width:850px){#targets{grid-template-columns:repeat(3,minmax(0,1fr))}}

dialog.arcade-themed{background:linear-gradient(145deg,#103e60,#092f4b);color:#fff8eb;border:1px solid #88d4c6}.arcade-themed .close{color:#fff8eb;background:#183943;border-color:#88d4c6}.arcade-gallery>h2{font-size:32px;text-align:center;margin-bottom:8px}.arcade-gallery>p{text-align:center}.arcade-gallery #arcade-back{background:transparent;color:#fff8eb;border-color:#88d4c670}.arcade-gallery img.arcade-badge{display:block;float:none;width:100px;height:100px;object-fit:contain;margin:14px auto}.arcade-card{display:flex;align-items:center;gap:18px;border-radius:18px;padding:16px;margin-top:14px;background:#fff8eb;color:#183943}.arcade-card img{float:none;width:88px;height:88px;object-fit:contain;border-radius:14px;flex-shrink:0}.arcade-card>div{min-width:0}.arcade-card h3{font-size:23px}.arcade-card p{font-size:14px;line-height:1.4;margin:8px 0}.arcade-tag{display:inline-block;border:2px solid #1e686a;border-radius:30px;padding:7px 15px;font-size:13px;font-weight:700;color:#183943}.arcade-tag.here{background:#88d4c6;border-color:#88d4c6}.arcade-tag.released{background:#d47a62;border-color:#d47a62;min-height:44px;text-decoration:none;display:inline-flex;align-items:center}.arcade-tag.more{min-height:44px;text-decoration:none;display:inline-flex;align-items:center;margin-left:8px;background:#fff8eb}@media(max-width:500px){.arcade-card{padding:12px;gap:12px}.arcade-card img{width:60px;height:60px}.arcade-card h3{font-size:19px}.arcade-card p{font-size:13px}.arcade-gallery>h2{font-size:28px}}

#scene-nav{display:flex;gap:8px;flex-wrap:wrap}#scene-nav #choose-city{padding:12px 16px;background:#183943;color:#fff1df;border-color:#88d4c680;font-size:14px}body[data-city="los-angeles"]{background:radial-gradient(ellipse at 8% 0%,#d4935745,transparent 58%),linear-gradient(145deg,#173b48,#223746)}body[data-city="tokyo"]{background:radial-gradient(ellipse at 8% 0%,#af6aaf45,transparent 58%),linear-gradient(145deg,#232e4c,#153c48)}dialog.city-themed[data-city="los-angeles"]{background:radial-gradient(ellipse at 0 0,#dc915750,transparent 70%),linear-gradient(145deg,#274552,#173b48)}dialog.city-themed[data-city="tokyo"]{background:radial-gradient(ellipse at 0 0,#b674b650,transparent 70%),linear-gradient(145deg,#303851,#173d4a)}.city summary{cursor:pointer;min-height:44px;display:flex;align-items:center;gap:8px}.city-option img{width:64px;height:48px}@media(max-width:500px){#scene-nav #choose-city,#scene-nav #choose-scene{width:auto;flex:1;justify-content:center;font-size:12px;padding:11px}}
@media(max-width:1100px){.intro>div{flex:1 1 100%}#scene-nav{flex:1 1 100%;width:100%}#scene-nav #choose-city,#scene-nav #choose-scene{flex:1 1 16rem;overflow-wrap:anywhere}}
body[data-city="new-york"]{background:radial-gradient(ellipse at top left,#3c3850 0%,#152737 56%,#0b1928 100%)}
body[data-city="london"]{background:radial-gradient(ellipse at top left,#49343e 0%,#17342f 56%,#102725 100%)}
#modal.city-themed[data-city="new-york"]{background:linear-gradient(135deg,#172b40,#27323b);border-color:#d5ad5e;color:#fff6e4}
#modal.city-themed[data-city="london"]{background:linear-gradient(135deg,#173f35,#3a2933);border-color:#d4ad6a;color:#fff5df}

#version-details{white-space:pre-wrap;overflow-wrap:anywhere;font:inherit;line-height:1.7;user-select:text;padding:16px;background:#ffffff0c;border:1px solid #ffffff25;border-radius:12px}body[data-city="havana"]{--city-accent:#efae63;--city-deep:#284e45;background:linear-gradient(125deg,#50392c,#183c36)}body[data-city="havana"] #modal.city-themed{background:linear-gradient(145deg,#264e43,#5a3b2f);border-color:#e0ab62}

#targets .sign-text{display:block;margin-top:4px;color:#225b57;font-size:11px;line-height:1.25;font-weight:700;overflow-wrap:anywhere}
@media(max-width:500px){body[data-city="havana"] #targets{grid-template-columns:repeat(2,minmax(0,1fr))}#targets .sign-text{font-size:12px}}
@media(max-width:350px){body[data-city="havana"] #targets{grid-template-columns:1fr}}
#targets button.selected[data-id="soldering-iron"]{grid-column:1/-1}
#targets button.selected[data-id="soldering-iron"] .thumb{height:120px}

#key-terms{min-height:44px;padding:7px 11px;background:#f8eedb;color:#183943;font-size:13px;white-space:nowrap}
.trayhead{gap:10px;flex-wrap:wrap}
.terms-list{display:grid;grid-template-columns:minmax(7rem,1fr) minmax(0,2.5fr);gap:10px 14px;margin:20px 0 0;line-height:1.5}
.terms-list dt{font-weight:700;color:#1e686a}.terms-list dd{margin:0}
@media(max-width:500px){.terms-list{grid-template-columns:1fr;gap:2px}.terms-list dd{margin-bottom:12px}}

#menu .menu-bars{display:inline-block;width:17px;height:14px;vertical-align:-2px;background:linear-gradient(currentColor,currentColor) center 1px/17px 2px no-repeat,linear-gradient(currentColor,currentColor) center 6px/17px 2px no-repeat,linear-gradient(currentColor,currentColor) center 11px/17px 2px no-repeat}
