:root{--bg:#fff8f0;--card:#ffffff;--text:#333333;--muted:#6e6e6e;--border:#e8e0d0;--success:#7ec850;--gold:#ffb300;--radius:16px;--radius-lg:20px;--accent:#e85d26;--accent-soft:#ffd580;--accent-deep:#b8451c}.theme-rescue{--accent:#d6453d;--accent-soft:#ffd9d1;--accent-deep:#a32d27}.theme-hangar{--accent:#2f7fc1;--accent-soft:#cfe9ff;--accent-deep:#205a8a}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}body,html{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:ui-rounded,SF Pro Rounded,Segoe UI,system-ui,-apple-system,sans-serif;font-size:17px;overscroll-behavior:none;touch-action:manipulation;-moz-user-select:none;user-select:none;-webkit-user-select:none}main.screen{min-height:100dvh;max-width:900px;margin:0 auto;padding:20px 20px 32px;display:flex;flex-direction:column;gap:16px}h1,h2,h3{margin:0;font-weight:700}button{font:inherit;color:inherit;border:none;cursor:pointer;background:none;padding:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:64px;padding:14px 28px;border-radius:var(--radius);background:var(--accent);color:#fff;font-size:22px;font-weight:700;box-shadow:0 4px 0 var(--accent-deep);transition:transform .08s ease}.btn:active{transform:translateY(3px);box-shadow:0 1px 0 var(--accent-deep)}.btn-ghost{color:var(--text);box-shadow:0 3px 0 var(--border)}.btn-ghost,.card{background:var(--card);border:2px solid var(--border)}.card{border-radius:var(--radius);padding:18px}.tile-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));grid-gap:16px;gap:16px}.tile{min-height:110px;border-radius:var(--radius-lg);background:var(--card);border:3px solid var(--border);box-shadow:0 4px 0 var(--border);font-size:34px;font-weight:800;display:flex;align-items:center;justify-content:center;transition:transform .08s ease,border-color .15s,background .15s}.tile:active{transform:translateY(3px);box-shadow:0 1px 0 var(--border)}.tile.big{font-size:56px;min-height:130px}.tile.correct{border-color:var(--success);background:#f0fbe8;animation:pop .4s ease}.tile.wrong{border-color:var(--accent);animation:shake .4s ease}@keyframes pop{0%{transform:scale(1)}40%{transform:scale(1.08)}to{transform:scale(1)}}@keyframes shake{0%,to{transform:translateX(0)}25%{transform:translateX(-8px)}75%{transform:translateX(8px)}}.tile.sign{font-weight:900;letter-spacing:1.5px;border-width:3px;box-shadow:0 4px 0 rgba(0,0,0,.28),inset 0 0 0 4px rgba(255,255,255,.92);text-shadow:0 1px 2px rgba(0,0,0,.28)}.tile.sign:active{box-shadow:0 1px 0 rgba(0,0,0,.28),inset 0 0 0 4px rgba(255,255,255,.92)}.tile.sign.octagon{-webkit-clip-path:polygon(30% 0,70% 0,100% 30%,100% 70%,70% 100%,30% 100%,0 70%,0 30%);clip-path:polygon(30% 0,70% 0,100% 30%,100% 70%,70% 100%,30% 100%,0 70%,0 30%);border-radius:0}.tile.sign.octagon,.tile.sign.octagon:active{box-shadow:inset 0 0 0 4px rgba(255,255,255,.92)}.tile.sign.triangle{-webkit-clip-path:polygon(50% 100%,0 0,100% 0);clip-path:polygon(50% 100%,0 0,100% 0);border-radius:0;align-items:flex-start;padding-top:22px;font-size:26px}.tile.sign.triangle,.tile.sign.triangle:active{box-shadow:inset 0 0 0 4px rgba(255,255,255,.85)}.tile.sign.diamond{-webkit-clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);box-shadow:inset 0 0 0 4px rgba(0,0,0,.35);border-radius:0}main.screen{position:relative;z-index:0}main.screen.theme-rescue:before{background:radial-gradient(135% 70% at 50% -18%,rgba(214,69,61,.22),transparent 60%),linear-gradient(180deg,#fff0e8 0,var(--bg) 44%)}main.screen.theme-hangar:before,main.screen.theme-rescue:before{content:"";position:fixed;inset:0;z-index:-3;pointer-events:none}main.screen.theme-hangar:before{background:radial-gradient(140% 78% at 50% -14%,rgba(74,156,218,.3),transparent 64%),linear-gradient(180deg,#e4f2ff 0,var(--bg) 48%)}main.screen.theme-rescue:after{background:repeating-linear-gradient(-45deg,#f4b73d 0 16px,#34302d 16px 32px)}main.screen.theme-hangar:after,main.screen.theme-rescue:after{content:"";position:fixed;top:0;left:0;right:0;height:12px;z-index:-2;pointer-events:none}main.screen.theme-hangar:after{background:repeating-linear-gradient(90deg,#ffffff 0 26px,#2f7fc1 26px 56px)}.worldfx{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden}.wx-plane{position:absolute;top:13%;left:-14%;font-size:44px;opacity:.7;animation:wx-fly 30s linear infinite}.wx-cloud{position:absolute;border-radius:100px;background:rgba(255,255,255,.75);filter:blur(2px);opacity:.8}.wx-cloud-a{width:150px;height:44px;top:22%;left:-20%;animation:wx-fly 46s linear infinite}.wx-cloud-b{width:200px;height:56px;top:40%;left:-30%;animation:wx-fly 64s linear 8s infinite}.wx-beacon{position:absolute;width:150px;height:150px;border-radius:50%;background:radial-gradient(circle,rgba(214,69,61,.38),transparent 70%)}.wx-beacon-a{top:5%;right:6%;animation:wx-pulse 2.6s ease-in-out infinite}.wx-beacon-b{top:8%;left:4%;animation:wx-pulse 2.6s ease-in-out 1.3s infinite}@keyframes wx-fly{0%{transform:translateX(0)}to{transform:translateX(135vw)}}@keyframes wx-pulse{0%,to{opacity:.2;transform:scale(.85)}50%{opacity:.55;transform:scale(1.12)}}.theme-rescue .coach{border-color:#ecccc6;background:linear-gradient(#ffffff,#fff5f2)}.theme-hangar .coach{border-color:#cbe3f6;background:linear-gradient(#ffffff,#f1f8ff)}.coach .face{font-size:42px}.shift-hero{width:100%}.shift-btn{width:100%;justify-content:flex-start;gap:16px;padding:18px 22px;min-height:84px;text-align:left;background:linear-gradient(105deg,var(--accent),var(--accent-deep));box-shadow:0 5px 0 var(--accent-deep),0 10px 22px rgba(0,0,0,.14);animation:shift-pop .5s cubic-bezier(.34,1.56,.64,1)}.shift-emoji{font-size:40px;line-height:1;filter:drop-shadow(0 2px 3px rgba(0,0,0,.25))}.shift-copy{display:flex;flex-direction:column;gap:2px;flex:1 1}.shift-title{font-size:22px;font-weight:800}.shift-sub{font-size:14px;font-weight:600;opacity:.9}.shift-go{font-size:20px;font-weight:900;letter-spacing:1px;padding:8px 16px;border-radius:999px;background:rgba(255,255,255,.22);border:2px solid rgba(255,255,255,.5)}.shift-progress{font-size:18px;letter-spacing:3px;opacity:.95}.shift-done{display:flex;align-items:center;gap:14px;padding:16px 20px;border-radius:var(--radius);background:linear-gradient(#ffffff,#f4fbee);border:3px solid var(--success);box-shadow:0 4px 0 rgba(126,200,80,.5)}.shift-done>div:nth-child(2){flex:1 1}@keyframes shift-pop{0%{transform:scale(.94);opacity:0}to{transform:scale(1);opacity:1}}@media (prefers-reduced-motion:reduce){.shift-btn{animation:none}}.skill-row{display:flex;flex-direction:column;gap:7px}.skill-head{display:flex;align-items:center;gap:10px}.skill-bar{height:12px;border-radius:999px;overflow:hidden;background:var(--accent-soft)}.skill-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--accent),var(--accent-deep));transition:width .5s ease}.needs-chip{font-size:13px;font-weight:700;padding:3px 10px;border-radius:999px;background:#fff3e0;color:#b8451c;border:1.5px solid #f2c79a}.tile{position:relative}.theme-hangar .card:after,.theme-hangar .tile:not(.sign):after{content:"";position:absolute;top:8px;left:16px;right:16px;height:10px;background-image:radial-gradient(circle at 9px 50%,rgba(47,127,193,.3) 0 4.5px,transparent 5.5px);background-size:24px 10px;background-repeat:repeat-x;border-radius:4px;pointer-events:none}.theme-rescue .card:after,.theme-rescue .tile:not(.sign):after{content:"";position:absolute;inset:7px;border-radius:13px;pointer-events:none;box-shadow:inset 0 0 0 2px rgba(214,69,61,.1);background:radial-gradient(circle at 9px 9px,rgba(163,45,39,.28) 0 2px,transparent 3px),radial-gradient(circle at calc(100% - 9px) 9px,rgba(163,45,39,.28) 0 2px,transparent 3px),radial-gradient(circle at 9px calc(100% - 9px),rgba(163,45,39,.28) 0 2px,transparent 3px),radial-gradient(circle at calc(100% - 9px) calc(100% - 9px),rgba(163,45,39,.28) 0 2px,transparent 3px)}.theme-rescue .card{position:relative;background:linear-gradient(#ffffff,#fff6f3)}.theme-hangar .card{position:relative;background:linear-gradient(#ffffff,#f3faff)}.focal{font-size:112px;min-height:128px}.focal.word{font-size:68px}.theme-rescue .dot.now{box-shadow:0 0 0 4px rgba(214,69,61,.18)}.theme-hangar .dot.now{box-shadow:0 0 0 4px rgba(47,127,193,.18)}.coach .face{display:inline-block;animation:face-bounce .5s cubic-bezier(.34,1.56,.64,1)}@keyframes face-bounce{0%{transform:scale(1) rotate(0)}35%{transform:scale(1.35) rotate(-8deg)}70%{transform:scale(.95) rotate(5deg)}to{transform:scale(1) rotate(0)}}.match-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:12px;gap:12px;max-width:560px;margin:0 auto;width:100%}.match-card{position:relative;aspect-ratio:3/4;min-height:84px;border-radius:var(--radius);border:3px solid var(--border);background:var(--accent);box-shadow:0 4px 0 var(--accent-deep);font-size:40px;font-weight:800;display:grid;place-items:center;transition:transform .12s ease}.match-card:active{transform:translateY(3px)}.match-card .mc-back{color:#fff;opacity:.9}.match-card .mc-front{display:none;color:var(--text)}.match-card.up{background:var(--card);border-color:var(--accent);animation:pop .35s ease}.match-card.up .mc-back{display:none}.match-card.up .mc-front{display:block}.match-card.done{background:#f0fbe8;border-color:var(--success);box-shadow:0 4px 0 #cde6b3;opacity:.92}@media (max-width:560px){.match-grid{grid-template-columns:repeat(4,1fr);gap:8px}.match-card{font-size:30px}}@media (prefers-reduced-motion:reduce){.wx-beacon,.wx-cloud,.wx-plane{animation:none}.wx-cloud,.wx-plane{display:none}.coach .face,.match-card.up{animation:none}}.beacon{width:56px;height:56px;border-radius:50%;position:relative;overflow:hidden;background:radial-gradient(circle at 50% 55%,#3a2020 30%,#241414 100%);border:3px solid #4a2e2e}.beacon:after{content:"";position:absolute;inset:-60%;background:conic-gradient(from 0deg,rgba(255,80,60,0) 0deg,rgba(255,120,80,.9) 40deg,rgba(255,80,60,0) 90deg,rgba(255,80,60,0) 1turn);animation:beacon-sweep 1.7s linear infinite}.beacon.amber:after{background:conic-gradient(from 0deg,rgba(255,190,60,0) 0deg,rgba(255,210,90,.9) 40deg,rgba(255,190,60,0) 90deg,rgba(255,190,60,0) 1turn)}@keyframes beacon-sweep{to{transform:rotate(1turn)}}.pull-station{width:180px;height:240px;margin:0 auto;background:#d6453d;border:5px solid #a32d27;border-radius:18px;position:relative;overflow:hidden;box-shadow:0 6px 0 #7d1f1a;display:flex;flex-direction:column;align-items:center;padding-top:18px;gap:10px}.pull-station:after{content:"";position:absolute;left:50%;top:96px;transform:translateX(-50%);width:8px;height:120px;border-radius:4px;background:rgba(0,0,0,.18)}.pull-station .label{color:#fff;font-weight:900;letter-spacing:3px;font-size:20px}.pull-station .handle{width:110px;height:64px;position:relative;z-index:1;background:#fff;border-radius:12px;border:4px solid #ddd;display:flex;align-items:center;justify-content:center;font-weight:900;color:#d6453d;font-size:17px;letter-spacing:2px;transition:transform .35s cubic-bezier(.34,1.56,.64,1);box-shadow:0 4px 0 #bbb}.pull-station.pulled .handle{transform:translateY(58px)}.dots{display:flex;gap:8px;justify-content:center}.dot{width:14px;height:14px;border-radius:50%;background:var(--border)}.dot.done{background:var(--success)}.dot.now{background:var(--accent);transform:scale(1.25)}.topbar{display:flex;justify-content:space-between;gap:12px}.badge,.topbar{align-items:center}.badge{display:inline-flex;gap:6px;background:var(--accent-soft);border-radius:20px;padding:8px 16px;font-weight:700;font-size:18px}.focal{font-size:96px;text-align:center;line-height:1.1;min-height:110px;display:flex;align-items:center;justify-content:center}.focal.word{font-size:64px;font-weight:800;letter-spacing:4px}.coach{display:flex;align-items:center;gap:12px;background:var(--card);border:2px solid var(--border);border-radius:var(--radius);padding:12px 16px;font-size:18px}.coach .face{font-size:36px}.fade-in{animation:fadein .35s ease}@keyframes fadein{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.reward-splash{position:fixed;inset:0;z-index:40;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;pointer-events:none;background:radial-gradient(circle at 50% 45%,var(--accent-soft) 0,transparent 55%);animation:reward-glow 1.5s ease-out}.reward-emoji{font-size:150px;line-height:1;filter:drop-shadow(0 8px 18px rgba(0,0,0,.22));animation:reward-pop 1.5s cubic-bezier(.34,1.56,.64,1)}.reward-text{font-size:52px;font-weight:900;color:var(--accent);text-shadow:0 2px 0 #fff,0 5px 16px rgba(0,0,0,.2);animation:reward-text-pop 1.5s cubic-bezier(.34,1.56,.64,1)}@keyframes reward-pop{0%{transform:scale(.2) rotate(-8deg);opacity:0}22%{transform:scale(1.25) rotate(4deg);opacity:1}38%{transform:scale(1.05) rotate(0deg);opacity:1}80%{transform:scale(1.05);opacity:1}to{transform:scale(.96);opacity:0}}@keyframes reward-text-pop{0%{transform:scale(.3) translateY(10px);opacity:0}26%{transform:scale(1.15) translateY(0);opacity:1}80%{transform:scale(1.05);opacity:1}to{transform:scale(1);opacity:0}}@keyframes reward-glow{0%{opacity:0}20%{opacity:.9}75%{opacity:.8}to{opacity:0}}@media (prefers-reduced-motion:reduce){.reward-splash{animation:none;background:none}.reward-emoji,.reward-text{animation:none}}.tile.correct{animation:tile-correct .5s cubic-bezier(.34,1.56,.64,1)}@keyframes tile-correct{0%{transform:scale(1)}45%{transform:scale(1.12);box-shadow:0 0 0 6px rgba(126,200,80,.45)}to{transform:scale(1)}}.focal{animation:focal-pop .45s cubic-bezier(.34,1.56,.64,1)}@keyframes focal-pop{0%{transform:scale(.6);opacity:0}to{transform:scale(1);opacity:1}}@media (prefers-reduced-motion:reduce){.focal,.tile.correct{animation:none}}.emoji-burst{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:60}.emoji-burst span{position:absolute;top:-64px;line-height:1;animation:emoji-fall 3s linear forwards}@keyframes emoji-fall{0%{transform:translateY(0) rotate(-14deg);opacity:1}to{transform:translateY(115vh) rotate(16deg);opacity:.85}}@media (prefers-reduced-motion:reduce){.beacon:after{animation:none;opacity:.5}.btn,.pull-station .handle,.tile{transition:none;animation:none}.emoji-burst{display:none}}