*{box-sizing:border-box}body{margin:0;font-family:Pretendard,'Noto Sans KR',Arial,sans-serif;color:#31200f;background:#fffaf0}button,a{font:inherit}button{cursor:pointer;border:0}header{position:fixed;z-index:30;inset:0 0 auto;height:62px;display:flex;align-items:center;padding:0 clamp(14px,4vw,55px);gap:18px;color:#fff;background:#3b281ccc;backdrop-filter:blur(12px)}header a{color:#fff;text-decoration:none;font-weight:900}header strong{margin:auto;font-weight:1000}header button{background:#ffffff18;color:#fff;border:1px solid #ffffff44;border-radius:99px;padding:8px 12px;font-weight:900}.hidden{display:none!important}.cover{min-height:100svh;padding:95px clamp(22px,7vw,95px);display:flex;align-items:center;position:relative;background:#42a9df url('assets/specialty-map/hero.png') center/cover no-repeat}.shade{position:absolute;inset:0;background:linear-gradient(90deg,#341d0bdd 0%,#44260c9b 37%,transparent 66%),linear-gradient(0deg,#29160877,transparent 45%)}.copy{position:relative;z-index:2;color:#fff;max-width:590px}.copy span,.eyebrow{display:inline-flex;padding:7px 11px;border-radius:99px;background:#ffe058;color:#5c3c00;font-size:11px;font-weight:1000}.copy h1{font-size:clamp(52px,7vw,96px);letter-spacing:-6px;line-height:.92;margin:18px 0;text-shadow:0 6px 25px #32140088}.copy p{font-size:clamp(16px,1.8vw,21px);line-height:1.65;font-weight:800;text-shadow:0 2px 9px #321400}.copy button,.bookHead button{min-height:55px;padding:0 23px;border-radius:17px;background:linear-gradient(135deg,#ffe94e,#ff8b35);color:#4a2700;font-weight:1000;box-shadow:0 12px 30px #ff922e55}.coverRecord{position:absolute;z-index:2;right:5vw;bottom:40px;background:#fffde9e9;padding:18px 28px;border-radius:23px;text-align:center;box-shadow:0 14px 30px #3419004d}.coverRecord b{display:block;font-size:27px;color:#db5a24}.coverRecord small{font-weight:900}.play,.book{min-height:100svh;padding:100px clamp(16px,5vw,70px) 95px}.playHead,.bookHead{max-width:1180px;margin:auto;display:flex;justify-content:space-between;align-items:end}.play h2,.book h2{font-size:clamp(34px,5vw,55px);margin:8px 0 3px;letter-spacing:-2px}.playHead p{margin:0;color:#796c5d;font-weight:750}.score{display:grid;grid-template-columns:auto auto;gap:2px 8px;text-align:center;background:#fff;border-radius:19px;padding:12px 19px;box-shadow:0 10px 30px #8f6a3722}.score b{font-size:23px;color:#e55f29}.score span{font-size:10px;font-weight:900}.board{max-width:1180px;margin:25px auto;display:grid;grid-template-columns:1.1fr .9fr;gap:22px}.map{min-height:650px;position:relative;border-radius:35px;background:radial-gradient(circle at 50% 45%,#fff9dc,#c5edfa 68%,#8fd7ef);box-shadow:inset 0 0 0 1px #fff,0 18px 50px #73562d1f;overflow:hidden}.map:after{content:'동해';position:absolute;right:7%;top:38%;color:#2995bb88;font-weight:1000}.region{position:absolute;min-width:74px;min-height:48px;padding:5px 8px;border-radius:16px;background:var(--c,#ffca62);color:#432815;font-weight:1000;box-shadow:0 6px 0 color-mix(in srgb,var(--c),#000 18%),0 10px 18px #72501f30;border:3px solid #fff;transition:.18s}.region:hover,.region:focus{transform:translateY(-4px) scale(1.05);z-index:2}.region.done:before{content:'✓';position:absolute;right:-7px;top:-9px;width:23px;height:23px;display:grid;place-items:center;background:#16b886;color:#fff;border-radius:50%;border:2px solid #fff}.region.active{outline:5px solid #ff6b35}.quiz{background:#fff;border-radius:30px;padding:28px;min-height:650px;display:grid;place-items:center;box-shadow:0 18px 50px #73562d1f}.empty{text-align:center;color:#837564}.empty>b{font-size:80px}.empty h3{font-size:26px}.quiz #question{width:100%;text-align:center}.quiz #regionTag{display:inline-block;padding:6px 10px;border-radius:99px;background:#fff1c6;font-size:12px;font-weight:1000;color:#bd5727}.foodEmoji{font-size:84px;margin:22px 0 8px}.quiz h3{font-size:25px;line-height:1.45}.choices{display:grid;gap:9px;margin-top:22px}.choice{min-height:58px;border-radius:16px;background:#f7f2e9;border:2px solid transparent;font-weight:1000;color:#4c3724}.choice:hover{border-color:#ff9a4b}.choice.correct{background:#d8f7e8;border-color:#16b886;color:#08734f}.choice.wrong{background:#ffe0df;border-color:#f25454}.choice:disabled{cursor:default}.feedback{min-height:48px;font-weight:900;line-height:1.5}.next{min-height:48px;padding:0 18px;border-radius:14px;background:#5e3cc7;color:#fff;font-weight:1000}.bottom{position:fixed;z-index:25;bottom:12px;left:50%;transform:translateX(-50%);display:flex;padding:6px;background:#3b281de9;border-radius:18px;box-shadow:0 12px 35px #0004}.bottom button{min-width:112px;height:48px;background:transparent;color:#fff;border-radius:13px;font-weight:1000}.bottom button:hover{background:#ffffff18}.bottom i{font-style:normal;background:#ffda45;color:#492a00;border-radius:99px;padding:2px 6px}.book{background:linear-gradient(150deg,#fffaf0,#fff1dc)}.bookGrid{max-width:1180px;margin:28px auto;display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.bookCard{background:#fff;border-radius:22px;padding:18px;min-height:190px;box-shadow:0 10px 30px #7953211a}.bookCard.locked{filter:grayscale(1);opacity:.53}.bookCard .emoji{font-size:48px}.bookCard h3{margin:7px 0}.bookCard p{font-size:13px;line-height:1.55;color:#716556}.notice{max-width:1180px;margin:auto;color:#776b5c;font-size:12px}.confetti{position:fixed;z-index:50;pointer-events:none;animation:fall 1.1s forwards}@keyframes fall{to{transform:translate(var(--dx),110px) rotate(280deg);opacity:0}}
@media(max-width:850px){header strong{font-size:13px}.cover{background-position:45% center;align-items:flex-end;padding-bottom:135px}.shade{background:linear-gradient(0deg,#341d0be8,#44260c80 60%,transparent)}.coverRecord{left:20px;right:20px;bottom:18px}.board{grid-template-columns:1fr}.map{min-height:580px}.quiz{min-height:500px}.bookGrid{grid-template-columns:repeat(2,1fr)}.playHead{align-items:start}.score{margin-top:10px}}
@media(max-width:500px){header #resetBtn{display:none}.copy h1{font-size:54px}.map{min-height:540px}.region{min-width:60px;min-height:42px;font-size:11px;padding:3px}.play,.book{padding-left:10px;padding-right:10px}.quiz{padding:20px}.bookGrid{grid-template-columns:1fr}}

/* V51: the play board must show the real Korea specialty artwork, not an empty gradient. */
.map{isolation:isolate;min-height:650px}
.mapArt{position:absolute;z-index:0;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;filter:saturate(.9) brightness(1.04);pointer-events:none}
.map:before{content:'';position:absolute;z-index:1;inset:0;background:radial-gradient(circle at 52% 49%,transparent 30%,#235b701c 100%);pointer-events:none}
.map:after{z-index:2;padding:4px 8px;border-radius:999px;background:#e6f9ffcc;color:#147a9c;box-shadow:0 3px 12px #124d6330}
.region{z-index:3;transform:translate(-50%,-50%);box-shadow:0 6px 0 color-mix(in srgb,var(--c),#000 18%),0 10px 18px #33200c55}
.region span{display:block;text-shadow:0 1px #fff8}
.region:hover,.region:focus{transform:translate(-50%,calc(-50% - 4px)) scale(1.05);z-index:5}
.region.active{z-index:5}
@media(max-width:850px){.map{min-height:620px}.mapArt{object-position:50% center}}
@media(max-width:500px){.map{min-height:620px}.region{min-width:58px;min-height:40px}}

/* V53 spectacle upgrade: jewel pins, living sea, collection HUD and festival quiz. */
body{background:radial-gradient(circle at 50% 0,#fff8ce 0,#fff9ef 32%,#eaf9ff 100%)}
.play{background:radial-gradient(circle at 14% 8%,#fff0a8aa,transparent 28%),radial-gradient(circle at 88% 18%,#a3eaff88,transparent 29%),linear-gradient(145deg,#fff8e9,#f5efff 56%,#e8fbff)}
.playHead{max-width:1460px}.playHead .eyebrow{background:linear-gradient(135deg,#ffed69,#ff9c39);box-shadow:0 7px 20px #ff9f3f48}.play h2{background:linear-gradient(100deg,#6a2ac7,#ef3f81 52%,#f07a2a);-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:0 8px 25px #a7447b17}.score{border:3px solid #fff0a5;background:linear-gradient(145deg,#fff,#fff7d9);box-shadow:0 13px 0 #eadb9c,0 22px 42px #75491e2b}
.board{max-width:1460px;grid-template-columns:minmax(680px,1.35fr) minmax(360px,.65fr);gap:28px;align-items:stretch}
.map{min-height:760px;border:8px solid #fff6b1;border-radius:44px;background:#43b9df;box-shadow:0 0 0 4px #f4ad3f,0 0 0 9px #fff,0 30px 80px #2f6c8d40,inset 0 0 55px #0b5e8244;overflow:hidden}
.mapArt{animation:mapBreath 10s ease-in-out infinite alternate;filter:saturate(1.18) contrast(1.03) brightness(1.06)}
.map:before{z-index:2;background:linear-gradient(180deg,#79ddff1c,#fff7b514 65%,#133e5c25),radial-gradient(circle at 51% 45%,transparent 24%,#0a56752a 100%)}
.map:after{content:'🌊 동해 바다';z-index:4;right:3%;top:46%;background:linear-gradient(135deg,#e6fbffed,#aeeeffe6);color:#08749d;border:2px solid #fff;box-shadow:0 6px 0 #5ec6e4,0 12px 25px #07546f3a;animation:seaFloat 3.4s ease-in-out infinite}
.mapAura{position:absolute;z-index:1;left:26%;top:8%;width:48%;height:82%;border-radius:50%;background:radial-gradient(ellipse,#fffbd14f 0,transparent 67%);filter:blur(5px);animation:auraPulse 3s ease-in-out infinite;pointer-events:none}
.mapSparkle{position:absolute;z-index:4;left:var(--sx);top:var(--sy);width:var(--size);height:var(--size);border-radius:50%;background:#fff;box-shadow:0 0 6px #fff,0 0 13px #ffe46d,0 0 24px #fff59a;animation:sparkle 1.7s var(--delay) ease-in-out infinite;pointer-events:none}
.mapCompass{position:absolute;z-index:5;left:18px;bottom:22px;width:106px;height:106px;border-radius:50%;display:grid;place-items:center;text-align:center;color:#623d13;background:radial-gradient(circle,#fffde2 0 43%,#ffd85a 44% 55%,#fff4ad 56% 64%,#bd7432 65% 69%,#fff 70%);border:3px solid #fff;box-shadow:0 9px 0 #9f5e2a,0 17px 35px #57331755;animation:compassBob 4s ease-in-out infinite}.mapCompass b{position:absolute;inset:5px auto auto;font-size:22px;color:#dc3f67}.mapCompass span{font-size:12px;line-height:1.2;font-weight:1000}
.mapCloud{position:absolute;z-index:3;font-size:55px;filter:drop-shadow(0 9px 10px #24536731);opacity:.9;pointer-events:none}.cloudOne{left:-13px;top:10%;animation:cloudDrift 8s ease-in-out infinite alternate}.cloudTwo{right:-16px;bottom:7%;animation:cloudDrift 9.5s 1s ease-in-out infinite alternate-reverse}
.mapHud{position:absolute;z-index:8;right:18px;top:18px;width:230px;padding:13px 15px;border:3px solid #fff;border-radius:21px;background:linear-gradient(145deg,#401a85e8,#7e39cce8 55%,#ed4f91e8);color:#fff;box-shadow:0 9px 0 #2c1269,0 17px 35px #26114c5c;backdrop-filter:blur(8px)}.mapHud span{display:block;font-size:11px;font-weight:900}.mapHud b{display:block;margin:3px 0 8px;font-size:25px;color:#fff17c}.mapHud>div{height:10px;border:2px solid #ffffff80;border-radius:99px;background:#230e5a;overflow:hidden}.mapHud>div i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#57f1c5,#fff16b,#ff8a50);box-shadow:0 0 12px #fff16b;transition:width .45s}
.seaRibbon{position:absolute;z-index:3;right:4%;bottom:8%;display:flex;gap:5px;transform:rotate(-8deg);pointer-events:none}.seaRibbon i{display:block;width:38px;height:9px;border-radius:50%;border-top:4px solid #e9feff;animation:wave 1.5s ease-in-out infinite}.seaRibbon i:nth-child(2){animation-delay:.2s}.seaRibbon i:nth-child(3){animation-delay:.4s}
.region{z-index:7;width:62px;min-width:62px;height:62px;min-height:62px;padding:0;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 35% 25%,#fff 0 10%,var(--c) 13% 60%,color-mix(in srgb,var(--c),#5a1d57 32%) 100%);border:4px solid #fff7bd;box-shadow:0 6px 0 color-mix(in srgb,var(--c),#3b143e 42%),0 12px 23px #27133a66,0 0 0 3px #ffffff70;transform:translate(-50%,-50%);animation:pinBob 3s ease-in-out infinite;animation-delay:calc(var(--y,0)*.1s)}.region>i{font-style:normal;font-size:27px;line-height:1;filter:drop-shadow(0 3px 2px #4e253552)}.region>span{position:absolute;left:50%;top:54px;transform:translateX(-50%);min-width:54px;padding:3px 7px;border:2px solid #fff;border-radius:99px;background:#321556e8;color:#fff;font-size:11px;line-height:1.05;text-shadow:none;box-shadow:0 4px 9px #25103b4d}.region>small{position:absolute;display:none;left:50%;top:-23px;transform:translateX(-50%);white-space:nowrap;padding:4px 7px;border-radius:8px;background:#fff;color:#64318b;font-size:9px;font-weight:1000;box-shadow:0 4px 12px #32144f42}.region:hover,.region:focus{transform:translate(-50%,-50%) scale(1.28) rotate(-3deg);z-index:12;animation:none;outline:0}.region:hover>small,.region:focus>small{display:block}.region.active{z-index:13;outline:0;animation:activePin 1.05s ease-in-out infinite}.region.active:after{content:'';position:absolute;inset:-15px;border:5px solid #fff05d;border-radius:50%;box-shadow:0 0 18px #fff16b,0 0 35px #ff6f4c;animation:ringBurst 1.1s ease-out infinite}.region.done{background:radial-gradient(circle at 35% 25%,#fff 0 9%,#ffe85e 13% 58%,#ee8e24 100%);border-color:#fff}.region.done:before{content:'★';right:-9px;top:-11px;width:28px;height:28px;background:linear-gradient(135deg,#ffec4f,#ff8a35);color:#7b3b00;box-shadow:0 4px 10px #bd5a1a66;animation:stampPop .45s ease-out}.region.done>span{background:linear-gradient(135deg,#a64513,#e36a23)}
.quiz{position:relative;min-height:760px;overflow:hidden;border:5px solid #fff;border-radius:38px;background:radial-gradient(circle at 50% 5%,#fffbd7,#fff 36%),linear-gradient(#fff,#fff2dd);box-shadow:0 12px 0 #e7c983,0 28px 65px #5f3c273d}.quiz:before{content:'✦  ✧  ✦';position:absolute;left:0;right:0;top:17px;text-align:center;color:#f2b52b;font-size:22px;letter-spacing:18px;animation:sparkle 1.8s infinite}.empty>b{display:inline-grid;place-items:center;width:126px;height:126px;border-radius:50%;background:linear-gradient(145deg,#fff1a8,#ffc56c);box-shadow:0 11px 0 #e99c3d,0 20px 35px #8c512a35;animation:basketFloat 2.4s ease-in-out infinite}.quiz #regionTag{background:linear-gradient(135deg,#6c32c7,#ef4a8f);color:#fff;border:2px solid #fff;box-shadow:0 6px 14px #6b2fad40}.foodEmoji{display:grid;place-items:center;width:128px;height:128px;margin:24px auto 14px;border-radius:50%;background:radial-gradient(circle,#fff 0 42%,#fff0a1 44% 60%,#ffad4c 62%);font-size:72px;box-shadow:0 12px 0 #d9772e,0 22px 42px #8f512f3d;animation:foodFloat 2.2s ease-in-out infinite}.choice{position:relative;min-height:64px;border:3px solid #eee1d1;border-radius:19px;background:linear-gradient(145deg,#fff,#fff7e9);box-shadow:0 6px 0 #e7d4bc,0 10px 18px #5a382219;transition:.16s}.choice:hover{transform:translateY(-3px);border-color:#ff9a4b;box-shadow:0 9px 0 #ed8e3f,0 15px 25px #8a482b30}.choice.correct{box-shadow:0 7px 0 #0c8a62,0 0 25px #3de8aa66}.choice.wrong{box-shadow:0 7px 0 #cb3838}.next{min-height:56px;border-radius:18px;background:linear-gradient(135deg,#6734c7,#ed438d);box-shadow:0 8px 0 #45208e,0 14px 25px #4d26713d;font-size:16px}
.bookCard:not(.locked){border:3px solid #ffe17d;background:linear-gradient(145deg,#fff,#fff7d8);box-shadow:0 9px 0 #efd28a,0 17px 32px #70461f25;transition:.2s}.bookCard:not(.locked):hover{transform:translateY(-6px) rotate(-1deg)}
@keyframes mapBreath{to{transform:scale(1.035);filter:saturate(1.3) contrast(1.04) brightness(1.08)}}@keyframes sparkle{50%{opacity:.2;transform:scale(.35)}}@keyframes auraPulse{50%{opacity:.35;transform:scale(1.12)}}@keyframes seaFloat{50%{transform:translateY(-8px) rotate(2deg)}}@keyframes cloudDrift{to{transform:translateX(30px) translateY(8px)}}@keyframes compassBob{50%{transform:translateY(-7px) rotate(3deg)}}@keyframes wave{50%{transform:translateY(-5px);opacity:.45}}@keyframes pinBob{50%{margin-top:-5px}}@keyframes activePin{50%{transform:translate(-50%,-50%) scale(1.2)}}@keyframes ringBurst{to{opacity:0;transform:scale(1.45)}}@keyframes stampPop{0%{transform:scale(.2) rotate(-50deg)}70%{transform:scale(1.3) rotate(8deg)}}@keyframes basketFloat{50%{transform:translateY(-9px) rotate(3deg)}}@keyframes foodFloat{50%{transform:translateY(-7px) rotate(-3deg)}}
@media(max-width:1100px){.board{grid-template-columns:1fr}.map,.quiz{min-height:690px}.quiz{min-height:560px}.mapHud{width:205px}.region{width:58px;min-width:58px;height:58px;min-height:58px}.region>span{top:51px}}
@media(max-width:600px){.playHead{display:block}.score{margin-top:15px;display:flex;justify-content:center;gap:8px}.map{min-height:680px;border-width:5px;border-radius:30px}.mapArt{object-position:50% center}.mapHud{width:175px;right:9px;top:10px;padding:9px 11px}.mapHud b{font-size:20px}.mapCompass{width:77px;height:77px;left:9px;bottom:13px}.mapCompass b{font-size:15px}.mapCompass span{font-size:9px}.mapCloud{font-size:38px}.region{width:49px;min-width:49px;height:49px;min-height:49px;border-width:3px}.region>i{font-size:22px}.region>span{top:43px;min-width:46px;font-size:9px;padding:3px 5px}.quiz{min-height:540px;border-radius:28px}.foodEmoji{width:108px;height:108px;font-size:60px}.board{gap:22px}}
@media(prefers-reduced-motion:reduce){.mapArt,.mapAura,.mapSparkle,.mapCompass,.mapCloud,.region,.foodEmoji,.empty>b{animation:none!important}}
.mapImageFallback:before{content:'🗺️  대한민국 맛 탐험 지도';position:absolute;inset:0;display:grid;place-items:center;padding:80px;text-align:center;color:#176b86;font-size:clamp(24px,4vw,48px);font-weight:1000;background:radial-gradient(circle at 50% 45%,#fff9dc,#c5edfa 68%,#8fd7ef)}
