:root{--ink:#243c38;--muted:#84928d;--green:#158373;--green-dark:#146c5e;--line:#e8eeea;--bg:#fafbf8;--mint:#e9f5ee;--radius:18px}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:95px}body{margin:0;background:var(--bg);color:var(--ink);font-family:'Noto Sans KR',sans-serif;font-size:14px;letter-spacing:-.035em;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit;color:inherit;letter-spacing:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{border:0;background:none;cursor:pointer}button:disabled{cursor:not-allowed}a{color:inherit;text-decoration:none}button,a,input,select,textarea{outline-offset:4px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[role=button]:focus-visible{outline:3px solid #4aaea0}button,a{touch-action:manipulation}button{transition:background .18s,color .18s,transform .18s}.icon{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;vertical-align:middle}span[data-icon]{display:inline-flex;align-items:center;justify-content:center}.container{max-width:1320px;padding:0 40px;margin:0 auto}.header{height:88px;border-bottom:1px solid var(--line);background:#fffdfb}.nav-wrap{display:flex;align-items:center;height:100%;gap:68px}.brand{display:flex;gap:10px;align-items:center;font-size:22px;font-weight:800;letter-spacing:-1.1px;white-space:nowrap}.brand-mark{width:35px;height:37px;background:linear-gradient(145deg,#49ae91,#0b776b);border-radius:12px 12px 12px 3px;color:white;transform:rotate(-6deg)}.brand-mark .icon{width:24px;height:24px;transform:rotate(6deg)}.brand-24{display:inline-block;color:var(--green);font-size:24px;font-weight:900;margin-left:2px;letter-spacing:-1.5px}.header nav{display:flex;align-items:center;height:100%;gap:30px;font-size:14px;font-weight:600;white-space:nowrap}.header nav a,.header nav button{position:relative;padding:33px 0;color:#84918b}.header nav .nav-active{color:var(--green)}.nav-active:after{content:'';position:absolute;bottom:0;left:0;right:0;height:3px;background:var(--green);border-radius:4px 4px 0 0}.nav-actions{margin-left:auto;display:flex;gap:20px;align-items:center;font-size:12px;font-weight:600;white-space:nowrap}.saved-nav{display:flex;align-items:center;gap:7px;padding:9px 0}.saved-nav .icon{width:17px}.saved-count{font-size:10px;background:#edf4f0;color:var(--green);border-radius:50%;min-width:19px;padding:3px}.saved-nav.active{color:var(--green)}.login-btn{border:1px solid #dfe9e2;background:white;padding:10px 15px;border-radius:9px;display:flex;align-items:center;gap:7px}.login-btn .icon{width:15px}.hero{padding:50px 0 38px;display:flex;align-items:center;justify-content:space-between;gap:40px}.eyebrow{font-size:12px;color:#5b8673;font-weight:500;display:flex;align-items:center;gap:7px}.eyebrow>span{width:6px;height:6px;border-radius:50%;background:#58a589}h1{font-size:38px;line-height:1.4;letter-spacing:-1.9px;margin:12px 0 13px;font-weight:800}h1>span{background:linear-gradient(100deg,#168a70,#6c957e);background-clip:text;-webkit-background-clip:text;color:transparent}.hero p{color:#818d87;line-height:1.8;font-size:13px;margin:0}.mobile-br{display:none}.season-note{display:flex;gap:23px;align-items:center;margin-right:24px}.season-label{font-size:10px;color:#739984;display:block;margin-bottom:9px}.season-note strong{font-size:17px;font-weight:600;line-height:1.7;letter-spacing:-.8px}.season-small{display:block;font-size:10px;color:#8f9d92;margin-top:9px}.season-art{position:relative;width:112px;height:122px;display:grid;place-items:center}.orb{position:absolute;border-radius:50%;background:linear-gradient(140deg,#f1e9c1,#dbeac9)}.orb-one{width:100px;height:100px;left:0;top:5px}.orb-two{width:65px;height:65px;bottom:0;right:0;background:linear-gradient(140deg,#d8e8ce,#a5c6a7);opacity:.65}.season-art>span[data-icon]{position:relative;color:#719b6c;transform:rotate(-22deg)}.season-art .icon{width:75px;height:75px;stroke-width:1.05}.little-star{position:absolute;top:1px;right:4px;color:#bcab79;font-size:24px}.search-panel{background:white;border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 5px 20px #29463303;overflow:hidden}.search-top{padding:18px 22px;display:flex;align-items:center;gap:18px}.search-input{display:flex;align-items:center;gap:12px;flex:1;min-width:160px}.search-input>.icon,.search-input>span{color:var(--green)}.search-input input{border:0;background:transparent;width:100%;font-size:14px;padding:8px 0;outline:none;min-width:0}.search-input input::placeholder{color:#9ba59f;font-weight:400}.search-input kbd{font-family:inherit;color:#b3bdb5;border:1px solid #e9eee8;border-radius:4px;padding:1px 7px;font-size:11px}.search-divider{height:27px;width:1px;background:var(--line);margin:0 6px 0 12px}.date-input{display:flex;align-items:center;gap:8px;padding:5px 7px}.date-input span{color:#8f9a92}.date-input input{border:0;background:transparent;font-size:13px;max-width:140px;outline:none}.period{display:flex;padding:4px;background:#f4f6f3;border-radius:10px;gap:2px}.period button{padding:8px 20px;border-radius:7px;font-size:12px;color:#8a958c}.period button.active{background:var(--green);color:white;box-shadow:0 3px 7px #0d776425;font-weight:600}.search-bottom{border-top:1px solid #f0f3ed;padding:15px 22px;display:flex;gap:20px;align-items:center}.filter-label{display:flex;align-items:center;gap:7px;font-size:12px;color:#7c8d81;white-space:nowrap}.filter-label .icon{width:15px;height:15px}.region-pills{display:flex;align-items:center;gap:5px;flex:1;flex-wrap:wrap}.region-pills button{font-size:11px;padding:6px 11px;color:#88978b;border-radius:7px;white-space:nowrap}.region-pills button.active{background:#eaf4ee;color:var(--green);font-weight:700}.region-pills button:hover{background:#f0f5ef}.reset-btn{display:flex;gap:5px;align-items:center;font-size:11px;color:#929e94;white-space:nowrap}.reset-btn .icon{width:13px}.discovery-heading{display:flex;align-items:center;justify-content:space-between;margin:31px 0 16px}.discovery-heading>div{display:flex;align-items:center;gap:8px}h2{font-size:18px;letter-spacing:-.7px;margin:0;font-weight:700}.live-dot{width:7px;height:7px;background:#29947b;border-radius:50%;box-shadow:0 0 0 4px #eaf3e9;margin-right:4px}.result-number{color:var(--green);font-size:17px;font-weight:700}.range-label{font-size:11px;color:#8e9b92}.explore-grid{display:grid;grid-template-columns:1.08fr 1fr;gap:23px}.map-panel{background:#eef4ed;border:1px solid #e0e9df;border-radius:var(--radius);overflow:hidden;min-width:0}.map-heading{padding:19px 21px 0;display:flex;align-items:center;justify-content:space-between;gap:12px;position:relative;z-index:1}.map-heading>div{display:flex;align-items:center;gap:7px}.map-heading .icon{color:#5c8e79;width:17px}.map-heading strong{font-size:12px;font-weight:600}.map-hint{font-size:10px;color:#94a294}.map-canvas{height:618px;position:relative;background:radial-gradient(ellipse at 53% 61%,#e1f0e7b0,transparent 60%);overflow:hidden;background-image:radial-gradient(#b6cfc036 .7px,transparent .7px),radial-gradient(ellipse at 53% 61%,#e1f0e7b0,transparent 60%);background-size:18px 18px,100% 100%}#map{width:100%;height:100%;display:block;overflow:visible;touch-action:pan-y}#mapScene{transform-origin:50% 55%;transition:transform .25s}.province{fill:url(#landGradient);stroke:#f7faf4;stroke-width:1;stroke-linejoin:round;cursor:pointer;transition:fill .15s}.province:hover,.province.selected{fill:#9bc7ae;stroke:#f7faf4;stroke-width:1.6}.north{fill:#e2e7dc;stroke:#f0f4eb;stroke-width:1}.province-label{font-family:'Noto Sans KR',sans-serif;fill:#6a8b77;font-size:11px;font-weight:500;pointer-events:none;letter-spacing:1px}.north-label{font-size:13px;fill:#a2ad9f;letter-spacing:4px}.north-sub{font-size:9px;fill:#aab5a5;letter-spacing:1px}.map-pin{cursor:pointer;outline-offset:3px}.map-pin rect{stroke:#e2eae1;stroke-width:.5}.map-pin text{font:500 11px 'Noto Sans KR',sans-serif;letter-spacing:-.3px}.map-pin .pin-dot{stroke:#fff;stroke-width:2.2}.map-pin .pin-label{fill:#fffefb}.map-pin:hover .pin-label,.map-pin:focus .pin-label{fill:#e0f4e8}.map-pin:hover text{fill:var(--green)}.map-pin.active .pin-label{fill:var(--green)}.map-pin.active text{fill:white}.map-pin .pin-line{stroke:#b1c8b5;stroke-width:1}.compass{position:absolute;top:20px;right:24px;display:flex;flex-direction:column;align-items:center;gap:5px;color:#92a190;font-size:9px}.compass .icon{width:21px;height:21px;transform:rotate(-20deg);stroke-width:1.3}.sea{position:absolute;color:#aabdb0;letter-spacing:5px;font-size:11px;pointer-events:none}.sea-west{top:50%;left:13%}.sea-east{top:42%;right:9%}.map-controls{position:absolute;right:16px;bottom:51px;display:flex;flex-direction:column;border:1px solid #dee7dc;background:#fffefa;border-radius:10px;padding:4px;box-shadow:0 3px 10px #5070470a}.map-controls button{width:30px;height:32px;display:grid;place-items:center;color:#718770;border-radius:5px}.map-controls button:hover{background:#edf3e9}.map-controls .icon{width:17px;height:17px}.map-controls>span{height:1px;margin:2px 4px;background:#edf0e7}.map-legend{position:absolute;bottom:12px;left:18px;display:flex;gap:14px;background:#ffffffc9;backdrop-filter:blur(10px);border:1px solid #e2eade;padding:8px 12px;border-radius:8px;font-size:9px;color:#849280}.map-legend>span{display:flex;gap:5px;align-items:center}.legend-dot{width:6px;height:6px;border-radius:50%;display:inline-block}.ongoing{background:#279478}.upcoming{background:#dda967}.ended{background:#a6afa8}.map-bottom{display:flex;align-items:center;gap:5px;font-size:9px;color:#849580;padding:12px 17px;border-top:1px solid #e1e9dc;background:#f4f7f0;flex-wrap:wrap}.map-bottom .icon{width:12px;height:12px}.map-credit{margin-left:auto;font-size:8px;color:#a0af99}.map-empty{position:absolute;bottom:68px;left:50%;transform:translateX(-50%);padding:11px 18px;border-radius:10px;font-size:11px;background:#ffffffde;white-space:nowrap;box-shadow:0 3px 15px #214b2c08}.results-panel{min-width:0;display:flex;flex-direction:column;height:705px}.results-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;padding:2px 0 14px}.category-tabs{display:flex;gap:5px}.category-tabs button{padding:7px 10px;border-radius:20px;color:#849186;font-size:10px;border:1px solid #e4eae1;background:white;white-space:nowrap}.category-tabs button.active{background:#263e35;color:white;border-color:#263e35}.list-options{display:flex;align-items:center;gap:9px;color:#8d998e;font-size:10px}.list-options label{display:flex;align-items:center;gap:3px;white-space:nowrap}.list-options input{accent-color:var(--green);width:12px;height:12px;margin:0}.list-options select{background:transparent;border:0;font-size:10px;max-width:80px;cursor:pointer}.festival-list{overflow:auto;overscroll-behavior:contain;padding-right:5px;flex:1;scrollbar-width:thin;scrollbar-color:#d9e4d5 transparent}.festival-card{position:relative;display:flex;gap:16px;padding:16px;background:white;border:1px solid var(--line);border-radius:14px;margin-bottom:11px;transition:border-color .2s,box-shadow .2s;min-height:145px}.festival-card:hover,.festival-card.highlighted{border-color:#aacdb8;box-shadow:0 4px 18px #214a2e06}.card-cover{position:relative;width:127px;min-width:127px;height:113px;padding:0;overflow:hidden;border-radius:9px;display:grid;place-items:center;background:#e1ebe0}.card-cover img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;transition:transform .35s}.festival-card:hover img{transform:scale(1.04)}.cover-fallback{width:100%;height:100%;display:grid;place-items:center;position:absolute;inset:0;background:linear-gradient(140deg,#d9e9c7,#c0d6ad);color:#719b63}.cover-fallback .icon{width:54px;height:54px;stroke-width:.8}.cover-fallback.food-cover{background:linear-gradient(140deg,#f2e3cb,#e9cdb7);color:#b88f65}.cover-fallback.night-cover{background:linear-gradient(140deg,#dbe1f1,#bdc9d9);color:#8596b5}.card-info{flex:1;min-width:0;padding:1px 13px 0 0;display:flex;flex-direction:column;align-items:flex-start}.card-badges{display:flex;gap:5px;margin-bottom:7px;font-size:9px;align-items:center}.status-badge{border-radius:4px;padding:3px 6px;background:#ebf6ef;color:#2a8b6c;font-size:9px;line-height:1.4}.status-badge.upcoming{background:#fff3e3;color:#bb8a47}.status-badge.ended{background:#f0f1ee;color:#929b90}.category-badge{color:#9ba497;padding-left:4px}.card-title{padding:0;text-align:left;font-size:15px;font-weight:700;letter-spacing:-.6px;line-height:1.5;margin:0 0 8px}.card-title:hover{color:var(--green)}.card-meta{font-size:10px;line-height:1.9;color:#8b988b;display:flex;align-items:center;gap:4px}.card-meta .icon{width:11px;height:11px}.card-end{display:flex;align-items:center;justify-content:space-between;width:100%;margin-top:8px;font-size:10px;gap:4px}.card-price{color:#6a7f70;font-weight:500}.card-link{color:var(--green);font-size:10px;white-space:nowrap;display:flex;align-items:center;gap:3px}.card-link .icon{width:12px;height:12px}.save-card{position:absolute;right:11px;top:13px;color:#b7c1b3;padding:5px;z-index:1}.save-card .icon{width:17px;height:17px}.save-card.saved{color:#31947c}.save-card.saved .icon{fill:#e1f0e4}.list-footnote{display:flex;align-items:center;justify-content:center;gap:5px;font-size:9px;color:#8d9d8d;padding:12px 0 0}.list-footnote .icon{width:13px;height:13px;color:#8caa8e}.active-filters{background:#edf5ed;border-radius:8px;padding:8px 11px;font-size:11px;color:#4d8568;margin-bottom:10px;display:flex;justify-content:space-between}.active-filters[hidden]{display:none}.active-filters button{font-size:10px;text-decoration:underline}.empty-state{text-align:center;padding:70px 20px;background:white;border:1px dashed #dce6d6;border-radius:14px;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center}.empty-state .icon{width:40px;height:40px;stroke-width:1;color:#9cae96;margin-bottom:14px}.empty-state strong{font-size:14px}.empty-state p{font-size:11px;color:#8b9a87;line-height:1.9}.empty-state button{margin-top:8px;padding:10px 15px;border:1px solid #dae7d6;border-radius:8px;font-size:11px;color:var(--green)}.editorial{padding:43px 0 30px}.section-title{display:flex;align-items:end;justify-content:space-between;margin-bottom:19px}.small-eyebrow{font-size:10px;color:#86a189;display:block;margin-bottom:8px}.section-title>span{font-size:10px;color:#9da798}.section-title h2{font-size:20px}.theme-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.theme-card{padding:21px;position:relative;overflow:hidden;text-align:left;border-radius:14px;display:flex;gap:13px;align-items:flex-start;min-height:145px;transition:transform .2s}.theme-card:hover{transform:translateY(-3px)}.theme-card.nature{background:linear-gradient(110deg,#ecf0e1,#e2ebdb);color:#4f7855}.theme-card.food{background:linear-gradient(110deg,#f8f0e3,#f0e7d8);color:#a08256}.theme-card.night{background:linear-gradient(110deg,#eceff7,#e2e7f0);color:#71809c}.theme-icon{background:#ffffff80;width:35px;height:35px;border-radius:10px;flex-shrink:0}.theme-icon .icon{width:20px;height:20px}.theme-text{position:relative;z-index:1;display:flex;flex-direction:column;gap:8px}.theme-text small{font-size:9px;opacity:.8}.theme-text strong{font-size:15px;letter-spacing:-.6px;font-weight:600}.theme-text>span{display:flex;align-items:center;gap:5px;font-size:9px;opacity:.8;margin-top:8px}.theme-text .icon{width:11px;height:11px}.theme-art{position:absolute;font-family:Georgia,serif;font-size:140px;line-height:1;right:-6px;bottom:-26px;opacity:.13;transform:rotate(-15deg)}.travel-tip{display:flex;gap:14px;align-items:center;border:1px solid #e5eae0;background:#f2f5ed;border-radius:13px;padding:20px 24px;margin:0 0 45px}.tip-icon{width:38px;height:38px;border-radius:10px;background:#e4eddd;color:#77996c;flex-shrink:0}.tip-icon .icon{width:23px;height:23px;transform:rotate(-15deg)}.travel-tip strong{font-size:12px;font-weight:600}.travel-tip p{font-size:10px;color:#8a9983;margin:5px 0 0;line-height:1.8}.travel-tip a{margin-left:auto;display:flex;align-items:center;gap:7px;font-size:10px;color:#7d9176;white-space:nowrap}.travel-tip a .icon{width:13px;height:13px}footer{border-top:1px solid var(--line);background:#f5f7f1;padding:27px 0 23px;color:#8e9c87}.footer-main{display:flex;align-items:center;gap:18px}.footer-main .brand{font-size:16px;color:#697e64}.footer-main .brand-mark{width:25px;height:26px;border-radius:8px 8px 8px 2px;opacity:.8}.footer-main .brand-mark .icon{width:18px;height:18px}.footer-main .brand-24{font-size:17px}.footer-main>span{font-size:10px;color:#99a490}.footer-main>button{font-size:10px;color:#8b9b83}.footer-main>button:first-of-type{margin-left:auto}.footer-bottom{display:flex;justify-content:space-between;margin-top:21px;padding-top:16px;border-top:1px solid #e7ecdf;font-size:9px;color:#a5ae9b;gap:15px}.skip{position:fixed;z-index:100;top:-70px;left:20px;background:var(--green);padding:12px;color:white;border-radius:6px}.skip:focus-visible{top:12px}.toast{position:fixed;bottom:27px;left:50%;transform:translateX(-50%);background:#28493b;color:white;border-radius:11px;box-shadow:0 8px 30px #0b2f2630;padding:14px 24px;z-index:100;font-size:12px;max-width:90vw;text-align:center}.toast[hidden]{display:none}dialog{border:1px solid var(--line);border-radius:22px;padding:0;color:var(--ink);box-shadow:0 25px 100px #18362926;max-height:90dvh;overscroll-behavior:contain;background:#fffefa}dialog::backdrop{background:#19352e60;backdrop-filter:blur(4px)}body:has(dialog[open]){overflow:hidden}.detail-dialog{width:min(620px,calc(100vw - 28px));scrollbar-width:thin}.detail-cover{height:215px;position:relative;overflow:hidden;background:#e6eedd}.detail-cover img{width:100%;height:100%;object-fit:cover}.detail-cover .cover-fallback .icon{width:100px;height:100px}.dialog-close{position:absolute;right:15px;top:15px;z-index:2;width:33px;height:33px;border-radius:50%;background:#ffffffed;display:grid;place-items:center;border:1px solid #e6ebe2;color:#65765e}.dialog-close .icon{width:18px;height:18px}.detail-body{padding:27px 30px 30px}.detail-top{display:flex;align-items:center;gap:7px}.detail-top .save-card{position:static;margin-left:auto}.detail-body h2{font-size:26px;margin:10px 0 13px;letter-spacing:-1.1px}.detail-description{font-size:12px;color:#80917b;line-height:2;margin:0 0 22px;word-break:keep-all}.detail-facts{display:grid;grid-template-columns:78px 1fr;gap:12px 9px;font-size:12px;padding:18px;background:#f4f6ee;border-radius:12px;margin:0 0 18px}.detail-facts dt{color:#92a08a}.detail-facts dd{margin:0;font-weight:500}.detail-actions{display:flex;gap:9px;align-items:center}.primary-btn{background:var(--green);color:#fff;padding:13px 20px;display:flex;align-items:center;justify-content:center;gap:8px;border-radius:9px;font-size:12px;font-weight:600;border:1px solid var(--green)}.primary-btn:hover{background:var(--green-dark)}.primary-btn:disabled{opacity:.5}.detail-actions .primary-btn{flex:1}.secondary-btn{border:1px solid #dae4d4;border-radius:9px;padding:13px 15px;font-size:12px;display:flex;align-items:center;justify-content:center;gap:5px}.detail-actions .icon{width:15px;height:15px}.official-note{font-size:9px;color:#a2ad98;line-height:1.8;margin:10px 0 22px}.small-dialog{width:min(420px,calc(100vw - 30px));padding:36px 30px 27px;text-align:center}.dialog-brand{display:grid!important;place-items:center;width:49px;height:50px;background:#e7f1e1;color:var(--green);border-radius:15px;margin:0 auto 18px}.dialog-brand .icon{width:29px;height:29px}.small-dialog h2{font-size:23px;letter-spacing:-1px;margin:10px 0}.small-dialog>p{font-size:11px;color:#9aaa8e;line-height:1.9;margin:10px 0 22px}.auth-link{margin-top:22px;padding:14px 15px}.auth-link .icon{width:16px;height:16px}.auth-divider{display:flex;align-items:center;gap:10px;color:#abb59e;font-size:9px;margin:22px 0 15px}.auth-divider:before,.auth-divider:after{content:'';height:1px;flex:1;background:#e8ecdf}.provider{width:100%;display:flex;align-items:center;gap:10px;background:#fff;border:1px solid #e4e8de;border-radius:9px;padding:12px 14px;font-size:11px;margin:9px 0;color:#7f8d78;text-align:left}.provider .icon{width:16px;height:16px}.provider small{margin-left:auto;font-size:8px;border:1px solid #dce2d2;border-radius:4px;padding:2px 5px;color:#93a087}.google-letter{font-size:16px;font-weight:700;color:#7d91a1}.kakao{background:#fff9df;border-color:#efe8c7;color:#8d8565}.apple-letter{font-size:16px;color:#718066}.auth-note{font-size:9px!important;line-height:1.9!important;margin-bottom:0!important}.info-dialog{text-align:left;line-height:1.9}.info-dialog h2{font-size:22px;margin-bottom:20px}.info-dialog h3{font-size:13px;margin-top:22px}.info-dialog p,.info-dialog li{font-size:12px;color:#809176}.info-dialog a{color:var(--green);text-decoration:underline}.info-dialog ul{padding-left:18px}.info-dialog .primary-btn{text-decoration:none;color:white}.info-dialog .icon{width:16px}.account-actions{display:flex;flex-direction:column;gap:10px;margin-top:20px}.account-actions a{font-size:12px}.leaflet-fake{display:none}@media(min-width:1440px){.container{max-width:1390px}.map-canvas{height:654px}.results-panel{height:741px}.festival-card{min-height:155px}.card-cover{width:140px;min-width:140px;height:122px}.hero{padding-top:55px;padding-bottom:43px}.card-title{font-size:16px}}
@media(max-width:1180px){.container{padding:0 28px}.nav-wrap{gap:36px}.header nav{gap:24px}.nav-actions{gap:14px}.saved-nav>span:nth-child(2){display:none}.search-bottom{gap:12px}.region-pills{gap:2px}.region-pills button{padding:5px 8px}.explore-grid{gap:18px;grid-template-columns:1.05fr 1fr}.map-heading{padding:18px 17px 0}.map-hint{font-size:9px}.card-cover{width:104px;min-width:104px;height:109px}.festival-card{gap:12px;padding:13px}.card-title{font-size:14px}.card-info{padding-right:6px}.card-meta{font-size:9px}.card-end{font-size:9px}.card-link{font-size:9px}.theme-card{padding:20px 17px;gap:10px}.theme-text strong{font-size:13px}.theme-icon{width:29px;height:29px}.theme-text>span{font-size:8px}.results-toolbar{gap:7px}.category-tabs button{font-size:9px;padding:6px 8px}.list-options{font-size:9px;gap:5px}.list-options select{font-size:9px}}
@media(max-width:900px){.container{padding:0 22px}.header{height:74px}.nav-wrap{gap:30px}.brand{font-size:19px}.brand-24{font-size:21px}.header nav{gap:20px;font-size:12px}.header nav a,.header nav button{padding:27px 0}.header nav button:last-child{display:none}.login-btn{padding:8px 11px}.hero{padding:35px 0 29px}.hero h1{font-size:31px}.season-note{margin:0;gap:13px}.season-art{width:88px;height:100px}.orb-one{width:80px;height:80px}.orb-two{width:52px;height:52px}.season-art .icon{width:62px;height:62px}.season-note strong{font-size:14px}.season-small{font-size:8px}.search-top{padding:14px 17px;gap:11px}.search-input input{font-size:12px}.search-divider{margin:0 1px}.period button{padding:7px 14px;font-size:11px}.date-input input{font-size:11px;width:120px}.search-bottom{padding:12px 17px;gap:9px}.filter-label{display:none}.region-pills button{font-size:10px;padding:5px 8px}.reset-btn{font-size:10px}.explore-grid{grid-template-columns:1fr}.map-canvas{height:510px}#map{height:100%;max-width:640px;margin:auto}.map-panel{width:100%}.results-panel{height:auto}.festival-list{display:grid;grid-template-columns:1fr 1fr;gap:12px;overflow:visible;padding:0}.festival-card{margin:0;min-height:145px}.card-cover{width:94px;min-width:94px;height:113px}.results-toolbar{padding:4px 0 14px}.category-tabs button{font-size:11px;padding:7px 13px}.list-options{font-size:10px}.list-options select{font-size:10px}.empty-state{grid-column:1/-1;min-height:230px}.map-legend{left:20px}.sea-west{left:23%}.sea-east{right:20%}.editorial{padding-top:35px}.theme-grid{gap:10px}.theme-card{padding:17px 12px;gap:10px;min-height:130px}.theme-icon{display:none!important}.theme-text strong{font-size:13px}.section-title h2{font-size:18px}.travel-tip{padding:17px}.travel-tip a{font-size:9px}.footer-main>span{display:none}}
@media(max-width:600px){.container{padding:0 18px}.header{height:66px}.nav-wrap{gap:0}.brand{font-size:18px;gap:7px}.brand-mark{width:29px;height:31px;border-radius:10px 10px 10px 2px}.brand-mark .icon{width:21px;height:21px}.brand-24{font-size:20px}.header nav{display:none}.nav-actions{gap:14px}.saved-nav{gap:4px}.saved-count{font-size:8px;min-width:15px}.login-btn{font-size:10px;padding:7px 10px;gap:4px}.login-btn .icon{width:13px;height:13px}.hero{padding:32px 0 25px;gap:0}.hero h1{font-size:29px;letter-spacing:-1.6px;line-height:1.45;margin-top:11px}.hero h1>span{display:block}.eyebrow{font-size:10px}.hero p{font-size:11px;line-height:1.9}.mobile-br{display:block}.season-note{display:none}.hero-copy{position:relative;width:100%}.hero-copy:after{content:'✿';font-size:100px;font-family:Georgia,serif;position:absolute;right:10px;top:26px;color:#cbdcbb;opacity:.6;transform:rotate(-22deg);z-index:-1}.search-panel{border-radius:13px}.search-top{flex-wrap:wrap;padding:15px;gap:12px 8px}.search-input{flex-basis:100%;padding-bottom:12px;border-bottom:1px solid #eef1e8}.search-input input{padding:2px 0;font-size:12px}.search-input .icon{width:18px;height:18px}.search-input kbd{display:none}.search-divider{display:none}.date-input{padding:0;flex:1;min-width:130px;gap:6px}.date-input .icon{width:17px;height:17px}.date-input input{width:125px;max-width:140px;font-size:11px}.period{padding:3px}.period button{padding:7px 13px;font-size:10px}.search-bottom{padding:10px 12px;gap:7px;align-items:flex-start}.region-pills{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding:0 0 3px;gap:3px}.region-pills button{font-size:10px;padding:5px 9px}.reset-btn{font-size:0;margin-top:4px;padding:3px}.reset-btn .icon{width:14px;height:14px}.discovery-heading{margin-top:24px;margin-bottom:13px;align-items:flex-start;gap:9px}.discovery-heading h2{font-size:15px}.result-number{font-size:15px}.range-label{font-size:9px;padding-top:4px}.live-dot{width:5px;height:5px;box-shadow:0 0 0 3px #eaf3e9}.discovery-heading>div{gap:6px}.map-panel{border-radius:14px}.map-canvas{height:460px}#map{max-width:100%;width:100%;height:100%}.map-heading{padding:15px 14px 0}.map-heading strong{font-size:11px}.map-hint{font-size:8px}.map-controls{right:10px;bottom:48px}.map-controls button{width:28px;height:28px}.compass{top:18px;right:19px}.sea-west{left:10%;font-size:9px}.sea-east{right:9%;font-size:9px}.map-legend{left:10px;bottom:9px;font-size:8px;padding:7px 9px;gap:9px}.map-bottom{padding:10px 12px;font-size:8px;gap:4px}.map-credit{font-size:7px}.festival-list{grid-template-columns:1fr;gap:11px}.festival-card{padding:14px;gap:15px;min-height:144px;border-radius:12px}.card-cover{width:112px;min-width:112px;height:114px}.card-title{font-size:14px}.card-meta{font-size:10px}.card-end{margin-top:7px}.card-link{font-size:10px}.results-toolbar{padding-top:5px;gap:9px}.category-tabs{gap:5px}.category-tabs button{font-size:10px;padding:6px 9px}.list-options label{font-size:9px}.list-options select{font-size:9px;max-width:62px}.list-options{gap:6px}.explore-grid{gap:16px}.editorial{padding:31px 0 23px}.section-title{margin-bottom:15px}.section-title>span{display:none}.section-title h2{font-size:18px}.small-eyebrow{font-size:9px}.theme-grid{grid-template-columns:1fr;gap:10px}.theme-card{padding:18px;min-height:103px;align-items:center;gap:15px}.theme-icon{display:flex!important;width:36px;height:36px}.theme-text{gap:5px}.theme-text strong{font-size:14px}.theme-text>span{font-size:9px;margin-top:4px}.theme-art{font-size:120px;right:12px;bottom:-23px}.travel-tip{padding:17px 15px;gap:12px;margin-bottom:30px;flex-wrap:wrap}.travel-tip>div:nth-child(2){flex:1}.travel-tip strong{font-size:11px}.travel-tip p{font-size:9px;word-break:keep-all}.travel-tip a{margin-left:50px;font-size:9px}.tip-icon{width:32px;height:34px}.footer-main{flex-wrap:wrap;gap:12px}.footer-main .brand{font-size:14px}.footer-main .brand-24{font-size:16px}.footer-main>button{font-size:9px;padding:3px}.footer-main>button:first-of-type{margin-left:auto}.footer-bottom{font-size:8px;line-height:1.8;flex-direction:column;gap:5px;margin-top:15px}.detail-body{padding:22px 22px 25px}.detail-body h2{font-size:23px}.detail-cover{height:180px}.detail-facts{font-size:11px;grid-template-columns:65px 1fr}.detail-description{font-size:11px}.small-dialog{padding:33px 24px 24px}.small-dialog h2{font-size:22px}.primary-btn{font-size:11px}.detail-actions .secondary-btn{font-size:10px;padding:13px 10px}.toast{bottom:18px;padding:12px 18px;font-size:11px;width:max-content;max-width:90vw}}
.detail-cover img{position:relative;display:block;z-index:1}
.map-expand{display:flex;gap:6px;align-items:center;padding:7px 10px;border:1px solid #d5e3d1;background:#ffffffc9;border-radius:8px;color:#6f8c68;font-size:10px}.map-expand:hover{background:#fff}.map-expand .icon{width:13px;height:13px}.map-pin text{font-size:12px}.province-label{font-size:12px}.map-canvas{height:680px}.results-panel{height:767px}.map-legend{font-size:10px}.map-bottom{font-size:10px}body.map-expanded{overflow:hidden}body.map-expanded:before{content:'';position:fixed;inset:0;background:#18382c7a;backdrop-filter:blur(4px);z-index:60}.map-panel.is-expanded{position:fixed;inset:18px;z-index:70;display:flex;flex-direction:column;box-shadow:0 20px 90px #153a3260;border-radius:20px}.map-panel.is-expanded .map-canvas{height:auto;flex:1;min-height:0}.map-panel.is-expanded #map{max-width:none}.map-panel.is-expanded .map-heading{padding:16px 22px 0}.map-panel.is-expanded .map-controls{right:22px;bottom:55px}.map-panel.is-expanded .map-bottom{flex-shrink:0}.map-panel.is-expanded .map-expand{background:#fff;padding:10px 15px}.map-panel.is-expanded .map-expand .icon{width:15px;height:15px}@media(min-width:1440px){.map-canvas{height:720px}.results-panel{height:807px}}@media(max-width:900px){.map-canvas{height:590px}.results-panel{height:auto}}@media(max-width:600px){.map-canvas{height:510px}.map-expand{font-size:9px;padding:6px 9px}.map-bottom{font-size:8px}.map-legend{font-size:8px}.map-panel.is-expanded{inset:8px;border-radius:14px}.map-panel.is-expanded .map-heading{padding:13px 14px 0}}
.festival-photo{width:100%;height:100%;object-fit:cover}.festival-photo.poster-image{object-fit:contain;background:#f0f2ec}.festival-photo.image-failed{display:none}.cover-text-backdrop{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;padding:15px;background:linear-gradient(140deg,#edf2e2,#c4d7b7);text-align:center;color:#6a875e}.cover-text-backdrop>span{font-size:9px}.cover-text-backdrop>strong{font-size:13px;word-break:keep-all}.cover-text-backdrop>small{font-size:8px;opacity:.7}.card-share{position:absolute;right:38px;top:13px;color:#9cac9b;padding:5px;z-index:1}.card-share .icon{width:15px;height:15px}.card-info{padding-right:33px}.share-dialog{width:min(540px,calc(100vw - 28px))}.share-heading{padding:30px 29px 18px}.share-heading h2{font-size:23px;padding-right:24px;line-height:1.5;overflow-wrap:anywhere}.share-heading p{font-size:11px;color:#8b9b82;margin:9px 0 0}.share-panel{padding:22px 28px 28px}.share-panel[hidden]{display:none}.share-intro{text-align:center;font-size:12px;color:#8f9e83;margin:3px 0 22px}.share-channel-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.share-channel{border:1px solid #e3eadd;border-radius:13px;display:flex;flex-direction:column;align-items:center;padding:18px 6px;gap:8px;background:#f5f7f0}.share-channel:hover{transform:translateY(-2px)}.share-channel-icon{width:43px;height:43px;border-radius:14px;display:grid;place-items:center;background:#e3eadb;color:#729568}.share-channel strong{font-size:12px;font-weight:600}.share-channel small{font-size:9px;color:#94a18a}.kakao-copy{background:#fffae7;border-color:#f0e7be}.kakao-copy .share-channel-icon{background:#f8e590;color:#75653c}.google-copy{background:#f0f4fc;border-color:#e0e7f3}.google-copy .share-channel-icon{background:#e0e9f7;color:#6689ba;font-size:24px;font-weight:700}.share-url-label{font-size:10px;color:#8b9d7e;display:block;margin:23px 0 9px}.share-url-row{display:flex;gap:5px;align-items:center;padding:7px 7px 7px 12px;border:1px solid #dfe8d6;border-radius:9px;background:white}.share-url-row input{flex:1;min-width:0;border:0;font-size:10px;color:#8b9c7e;outline:none;background:transparent}.share-url-row button{padding:6px;color:#78996c;border-radius:7px;background:#edf4e7}.share-url-row .icon{width:16px;height:16px}.copy-status{font-size:10px;line-height:1.8;color:#779367;min-height:20px;margin:11px 0}.native-share{margin-top:13px;border:1px solid #dfe8d8;border-radius:9px;padding:12px;width:100%;font-size:11px;color:#728d65;display:flex;gap:8px;align-items:center;justify-content:center}.native-share .icon{width:15px;height:15px}.clipboard-helper{position:fixed;left:-9999px;top:0;width:1px;height:1px;opacity:0}#manualCopyWrap label{font-size:10px;color:#8c9c80}#manualCopy{width:100%;min-height:110px;padding:10px;font-size:11px;border:1px solid #e0e9d7;border-radius:9px;margin-top:7px}.share-list{margin-top:20px}.sr-only{position:absolute;clip:rect(0,0,0,0);width:1px;height:1px;overflow:hidden;white-space:nowrap}.detail-actions{flex-wrap:wrap}@media(max-width:600px){.share-heading{padding:28px 21px 17px}.share-heading h2{font-size:20px}.share-panel{padding:19px 21px 24px}.share-channel-grid{gap:8px}.share-channel{padding:16px 5px}.share-channel strong{font-size:11px}.share-channel small{font-size:8px}.share-channel-icon{width:37px;height:37px}.detail-actions>.primary-btn{flex-basis:100%}.detail-actions>.secondary-btn{flex:1}.card-info{padding-right:22px}.card-share{right:35px}}
.source-banner{display:flex;align-items:center;gap:10px;padding:14px 17px;margin:17px 0 0;border:1px solid #dce9dd;background:linear-gradient(110deg,#edf5ec,#f4f6ed);border-radius:12px;color:#7d987a}.source-banner>.icon,.source-banner>span .icon{width:18px;height:18px}.source-banner>div{display:flex;align-items:center;gap:12px;flex:1;flex-wrap:wrap}.source-banner strong{font-size:11px;color:#567d5c;font-weight:600}.source-banner #sourceFreshness{font-size:10px;line-height:1.8}.source-banner button{display:flex;align-items:center;gap:5px;color:#6d8b68;font-size:10px;white-space:nowrap}.source-banner button .icon{width:12px;height:12px}.source-stale{background:#faf4e7;border-color:#eaddbc;color:#a58b58}.source-warning{color:#a1814f}.source-status-box{padding:17px;background:#f1f5eb;border:1px solid #e2e9d8;border-radius:12px;margin:20px 0}.source-status-box>strong{font-size:13px}.source-status-box dl{display:grid;grid-template-columns:110px 1fr;gap:9px;font-size:11px;margin:17px 0 0}.source-status-box dt{color:#8c9b82}.source-status-box dd{margin:0;color:#607a55}.source-status-box p{font-size:10px}#mapCount{font-size:9px;color:#6d8d6d;margin-right:5px}.official-note a{text-decoration:underline;text-underline-offset:2px}.card-meta{overflow-wrap:anywhere}.card-title{overflow-wrap:anywhere}@media(max-width:600px){.source-banner{padding:12px;gap:8px}.source-banner>div{gap:2px;display:flex;flex-direction:column;align-items:flex-start}.source-banner strong{font-size:10px}.source-banner #sourceFreshness{font-size:9px}.source-banner button{font-size:9px}#mapCount{font-size:8px}.map-bottom{line-height:1.9}.source-status-box dl{grid-template-columns:90px 1fr;font-size:10px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}

.load-more{width:100%;margin-top:11px;border:1px solid #dfe8d8;border-radius:9px;padding:11px;background:#f3f7ee;color:#67835e;font-size:11px;flex-shrink:0}.load-more:hover{background:#eaf2e1}.load-more[hidden]{display:none}.status-badge.unconfirmed{color:#78889d;background:#edf0f5}.legend-dot.unconfirmed{background:#8e9baf}.map-legend .unconfirmed{background:#8e9baf}

/* Regional map explorer */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.explore-grid{align-items:start;gap:26px}
.map-panel{position:relative;border-color:#dce8df;border-radius:24px;background:#eef5f1;box-shadow:0 14px 40px #2d594208,inset 0 1px 0 #fff}
.map-heading{padding:22px 23px 0;z-index:2;align-items:center}
.map-heading>div{gap:11px;min-width:0}
.map-heading>div>div{display:flex;flex-direction:column;gap:5px}
.map-eyebrow{display:block;font-size:10px;line-height:1.6;font-weight:500;letter-spacing:.01em;color:#779889}
.map-heading strong{font-size:14px;color:#2e5143;letter-spacing:-.6px;line-height:1.6}
.map-heading-icon{width:38px;height:40px;flex-shrink:0;border-radius:13px;background:#fff9;border:1px solid #ffffffcf;box-shadow:0 3px 8px #26563c07}
.map-heading-icon .icon{width:20px;height:20px;color:#548773}
.map-expand{flex-shrink:0;border-radius:10px;background:#ffffffb5;border-color:#dce7de;color:#658477;font-size:10px;padding:9px 10px;gap:5px}
.map-canvas{height:590px;background-color:#eef5f1;background-image:radial-gradient(ellipse at 54% 45%,#f9fcf5 0,#e8f3ed80 52%,transparent 72%),radial-gradient(#9ebdac38 .7px,transparent .7px);background-size:100% 100%,16px 16px;isolation:isolate}
.map-canvas:before{content:'';position:absolute;width:76%;height:72%;left:13%;top:10%;border:1px solid #dce9df75;border-radius:50%;transform:rotate(-23deg);pointer-events:none;z-index:-1}
.map-canvas:after{content:'';position:absolute;width:93%;height:90%;left:4%;top:2%;border:1px solid #e0eae47d;border-radius:50%;transform:rotate(-23deg);pointer-events:none;z-index:-1}
#map{position:relative;z-index:1;max-width:620px;margin:0 auto;overflow:visible}
#mapScene{transform-origin:0 0;transition:transform .45s cubic-bezier(.2,.8,.2,1)}
#landDepth{fill:#96b5a1;stroke:#96b5a1;stroke-width:1;opacity:.85;pointer-events:none}
.province-region{cursor:pointer;transition:transform .35s cubic-bezier(.2,.8,.2,1),opacity .3s;outline:none}
.province{fill:url(#landGradient);stroke:#f7fcf6;stroke-width:1.35;stroke-linejoin:round;transition:fill .2s,stroke .2s;pointer-events:visiblePainted}
.province-region.muted{opacity:.65}
.province-region:hover,.province-region.is-hovered,.province-region:focus-visible{transform:translateY(-5px);opacity:1}
.province-region.selected{transform:translateY(-7px);opacity:1}
.province:hover{fill:url(#landGradient);stroke:#fff;stroke-width:1.35}
.province-region.is-hovered .province,.province-region:hover .province,.province-region:focus-visible .province{fill:#b4d9c0;stroke:#fff}
.province-region.selected .province,.province-region.selected:hover .province{fill:url(#selectedGradient);stroke:#effff5;stroke-width:1.6}
.province-region:focus-visible .province{stroke:#126b57;stroke-width:2.5}
.map-region{cursor:pointer;outline:none}
.region-chip{transition:transform .3s cubic-bezier(.2,.8,.2,1)}
.region-chip-face{fill:#fffefb;stroke:#dce9df;stroke-width:1;filter:url(#pinShadow);transition:fill .2s,stroke .2s}
.region-chip-shadow{fill:#b4cdbd;opacity:.7;transition:fill .2s}
.region-chip-name{fill:#496959;font-family:inherit;font-size:12px;font-weight:700;letter-spacing:-.4px;pointer-events:none}
.region-count-bg{fill:#eef5ed;transition:fill .2s}
.region-count{fill:#5e8970;font-family:inherit;font-size:11px;font-weight:800;letter-spacing:-.4px;pointer-events:none}
.map-region:hover .region-chip,.map-region.is-hovered .region-chip,.map-region:focus-visible .region-chip{transform:translateY(-5px)}
.map-region:hover .region-chip-face,.map-region.is-hovered .region-chip-face{stroke:#83b99f;fill:#fff}
.map-region.selected .region-chip{transform:translateY(-7px)}
.map-region.selected .region-chip-face{fill:#187d65;stroke:#187d65}
.map-region.selected .region-chip-shadow{fill:#125743}
.map-region.selected .region-chip-name,.map-region.selected .region-count{fill:white}
.map-region.selected .region-count-bg{fill:#ffffff29}
.map-region.no-events:not(.selected) .region-count-bg{fill:#f1f3ef}
.map-region.no-events:not(.selected) .region-count{fill:#92a396}
.map-region:focus-visible .region-chip-face{stroke:#0b6352;stroke-width:3}
.map-pin.compact-pin{outline:none}
.compact-pin .pin-halo{fill:#268568;opacity:.12;transition:r .2s}
.compact-pin .pin-dot{stroke:white;stroke-width:2.5;filter:url(#pinShadow)}
.compact-pin:hover .pin-halo,.compact-pin:focus-visible .pin-halo{r:17px;opacity:.25}
.map-pin.compact-pin .compact-count{fill:white;font-size:8px;font-weight:800;pointer-events:none}
.map-view-label{position:absolute;left:24px;top:19px;display:flex;gap:6px;align-items:center;font-size:9px;color:#7b9b8b;z-index:2;pointer-events:none}
.map-view-label>span{width:5px;height:5px;background:#69a78d;border-radius:50%;box-shadow:0 0 0 3px #6aa28a12}
.compass{z-index:2;color:#91a99b;top:18px;right:24px;pointer-events:none}
.sea{z-index:0;font-size:10px;color:#aec5b7;letter-spacing:5px}
.sea-west{left:11%;top:48%}.sea-east{right:10%;top:37%}
.map-controls{z-index:3;right:19px;bottom:59px;border:1px solid #dce8df;border-radius:14px;padding:5px;background:#fffffff0;box-shadow:0 5px 16px #2c63450b}
.map-controls button{height:34px;width:32px;border-radius:8px}
.map-controls button:disabled{opacity:.3}
.map-controls button:hover{background:#eaf4ec;color:#17765e}
.map-controls .icon{width:16px;height:16px}
.map-legend{z-index:2;left:22px;bottom:15px;gap:7px;align-items:center;font-size:9px;color:#82978a;background:transparent;border:0;padding:0;backdrop-filter:none}
.map-legend-symbol{height:20px;min-width:20px;padding:0 5px;display:grid!important;place-items:center;background:#fff9;border:1px solid #dce8dd;border-radius:7px;font-size:9px;color:#6b8d76;font-weight:700}
.map-empty{z-index:3;bottom:49px;max-width:calc(100% - 95px);width:max-content;text-align:center;white-space:normal;font-size:10px;line-height:1.7;border:1px solid #e1eadf;box-shadow:none}
.map-empty[hidden]{display:none}
.map-selection{display:flex;align-items:center;gap:12px;padding:17px 22px;background:#fafff9a8;border-top:1px solid #dce8df;min-height:79px;transition:background .3s}
.has-region .map-selection{background:#e7f3e9}
.map-selection-icon{flex-shrink:0;width:36px;height:38px;border-radius:12px;background:#e8f1e5;color:#6a9379}
.map-selection-icon .icon{width:19px;height:19px}
.has-region .map-selection-icon{background:#d0e8d8;color:#2f8665}
.map-selection>div{display:flex;flex:1;min-width:0;flex-direction:column;gap:5px}
.map-selection strong{font-size:12px;font-weight:600;color:#446c54;line-height:1.5}
.map-selection>div>span{font-size:10px;color:#8a9e8d;line-height:1.6}
.map-selection button{flex-shrink:0;display:flex;align-items:center;gap:5px;font-size:10px;color:#37795d;padding:10px 0 10px 8px;min-height:40px}
.map-selection button .icon{width:14px;height:14px}
.map-bottom{background:#edf4ed;padding:11px 22px;min-height:37px;border-top:1px solid #e0eadf;gap:8px}
#mapCount{font-size:9px;color:#90a18f}.map-credit{font-size:8px;color:#9aa995}
.results-panel{height:786px;scroll-margin-top:24px}
.region-results-heading{display:flex;justify-content:space-between;gap:12px;align-items:center;min-height:75px;padding:5px 3px 15px;border-bottom:1px solid #e4ebe2;margin-bottom:13px}
.region-results-heading .map-eyebrow{font-size:10px;margin-bottom:6px;color:#8b9c8b}
.region-results-heading h3{font-size:21px;line-height:1.45;font-weight:700;letter-spacing:-.9px;margin:0;outline-offset:5px}
.region-results-heading h3>span{font-size:15px;color:#33896b;margin-left:6px;font-weight:600}
.region-results-heading>button{display:flex;align-items:center;gap:4px;padding:10px 0 10px 8px;color:#6c8d76;font-size:10px;white-space:nowrap;min-height:40px}
.region-results-heading>button[hidden]{display:none}
.region-results-heading>button .icon{width:13px;height:13px}
.results-toolbar{flex-shrink:0}
.festival-card{border-radius:17px;box-shadow:0 3px 12px #37543503;transition:transform .2s,border-color .2s,box-shadow .2s}
.festival-card:hover,.festival-card:focus-within{transform:translateY(-2px);border-color:#abcbb5;box-shadow:0 8px 22px #294c3610}
.map-drawer{display:none}
.map-panel.is-expanded{inset:20px;max-width:1480px;margin:0 auto;overflow:hidden}
.map-panel.is-expanded .map-heading{padding:22px 25px 0}
.map-panel.is-expanded .map-canvas{flex:1;min-height:0}
.map-panel.is-expanded #map{width:100%;height:100%;max-width:none;transition:width .4s}
.map-panel.is-expanded.has-region #map{width:calc(100% - 366px);margin-left:0}
.map-panel.is-expanded .map-selection{padding:15px 25px}
.map-panel.is-expanded.has-region .map-selection{padding-right:390px}
.map-panel.is-expanded.has-region .map-controls{right:390px}
.map-panel.is-expanded.has-region .compass{right:395px}
.map-panel.is-expanded.has-region .sea-east{right:calc(366px + 8%)}
.map-panel.is-expanded .map-drawer:not([hidden]){position:absolute;display:flex;flex-direction:column;top:89px;right:22px;bottom:59px;width:344px;z-index:5;background:#fffefbf5;backdrop-filter:blur(18px);border:1px solid #e0e9dd;box-shadow:0 12px 38px #385d3310;border-radius:21px;padding:20px;animation:drawer-in .4s cubic-bezier(.2,.8,.2,1)}
.drawer-handle{display:none}
.drawer-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:18px}
.drawer-heading h3{font-size:19px;letter-spacing:-.8px;margin:5px 0 0}
.drawer-heading>button{width:34px;height:34px;display:grid;place-items:center;background:#edf3e9;border-radius:50%;color:#7c927a;flex-shrink:0}
.drawer-heading .icon{width:15px;height:15px}
.drawer-list{flex:1;min-height:0;overflow:auto;scrollbar-width:thin;scrollbar-color:#d4e1ce transparent;overscroll-behavior:contain}
.drawer-card{display:flex;align-items:center;gap:11px;width:100%;text-align:left;padding:13px 0;border-bottom:1px solid #e9eee4}
.drawer-cover{position:relative;width:62px;height:67px;overflow:hidden;border-radius:10px;flex-shrink:0;background:#e7efdf}
.drawer-cover .cover-text-backdrop{padding:6px}
.drawer-cover .cover-text-backdrop strong{font-size:9px}
.drawer-cover .cover-text-backdrop small,.drawer-cover .cover-text-backdrop>span{display:none}
.drawer-cover img{width:100%;height:100%;object-fit:cover;position:relative}
.drawer-card-info{min-width:0;display:flex;flex:1;flex-direction:column;gap:5px}
.drawer-card-city{font-size:9px;color:#8ba083}
.drawer-card strong{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:12px;font-weight:600;line-height:1.6;word-break:keep-all}
.drawer-card small{font-size:9px;color:#8c9a81}
.drawer-card>.icon{width:14px;height:14px;color:#99ae8d;flex-shrink:0}
.drawer-card:hover strong{color:var(--green)}
.drawer-all{display:flex;justify-content:center;align-items:center;gap:7px;flex-shrink:0;width:100%;margin-top:15px;padding:13px 10px;border-radius:11px;background:#e7f2e5;color:#487b50;font-size:11px;font-weight:600}
.drawer-all .icon{width:14px;height:14px}
.drawer-empty{padding:40px 5px;text-align:center;color:#859879}
.drawer-empty>.icon{width:30px;height:30px;margin-bottom:18px;color:#a5b69b}
.drawer-empty strong{display:block;font-size:13px;font-weight:500}
.drawer-empty p{font-size:11px;line-height:1.9}
@keyframes drawer-in{from{opacity:0;transform:translateX(22px)}to{opacity:1;transform:translateX(0)}}
@media(min-width:1440px){.map-canvas{height:620px}.results-panel{height:816px}}
@media(max-width:1180px) and (min-width:901px){.map-heading{padding:20px 17px 0}.map-heading strong{font-size:12px}.map-heading-icon{display:none!important}.map-selection{padding:17px}.map-selection-icon{display:none!important}.map-selection>div>span{font-size:9px}.results-toolbar{flex-wrap:wrap}.list-options{margin-left:auto}.region-results-heading h3{font-size:19px}}
@media(max-width:900px){.explore-grid{gap:20px}.map-canvas{height:535px}.results-panel{height:auto}.region-results-heading{min-height:72px;padding-bottom:13px}.region-results-heading h3{font-size:20px}.festival-list{padding-top:3px}.map-panel.is-expanded.has-region #map{width:calc(100% - 310px)}.map-panel.is-expanded .map-drawer:not([hidden]){width:292px;right:14px;padding:17px}.map-panel.is-expanded.has-region .map-controls{right:328px}.map-panel.is-expanded.has-region .compass{right:332px}.map-panel.is-expanded.has-region .map-selection{padding-right:330px}.map-panel.is-expanded.has-region .sea-east{right:calc(310px + 7%)}}
@media(max-width:600px){
 .map-panel{border-radius:19px}.map-heading{padding:19px 16px 0;gap:6px}.map-heading>div{gap:9px}.map-heading-icon{width:30px;height:33px;border-radius:11px}.map-heading-icon .icon{width:17px;height:17px}.map-heading strong{font-size:12px;letter-spacing:-.5px}.map-eyebrow{font-size:8px}.map-heading>div>div{gap:3px}.map-expand{padding:9px 7px;font-size:9px;gap:4px;min-height:36px}.map-expand .icon{width:12px;height:12px}
 .map-canvas{height:458px}.map-view-label{left:17px;top:17px;font-size:8px}.compass{top:18px;right:19px;font-size:8px}.compass .icon{width:17px;height:17px}.sea{font-size:9px}.sea-west{left:7%}.sea-east{right:6%}.map-controls{right:11px;bottom:48px;padding:4px;border-radius:12px}.map-controls button{width:28px;height:32px}.map-controls .icon{width:15px;height:15px}.map-legend{left:17px;bottom:13px;font-size:8px;gap:6px}.map-legend-symbol{height:18px;min-width:18px;font-size:8px}.region-chip{transform:scale(1.1)}.map-region:hover .region-chip,.map-region.is-hovered .region-chip,.map-region:focus-visible .region-chip{transform:translateY(-5px) scale(1.1)}.map-region.selected .region-chip{transform:translateY(-7px) scale(1.1)}
 .map-selection{padding:14px 15px;gap:9px;min-height:75px}.map-selection-icon{width:31px;height:34px;border-radius:11px}.map-selection-icon .icon{width:17px;height:17px}.map-selection strong{font-size:11px}.map-selection>div>span{font-size:9px;word-break:keep-all}.map-selection button{font-size:9px;gap:4px;padding-left:3px}.map-selection button .icon{width:12px;height:12px}.map-bottom{padding:10px 16px;min-height:34px}#mapCount{font-size:8px}.map-credit{font-size:7px}
 .region-results-heading{min-height:69px;padding:0 1px 13px;margin-bottom:11px}.region-results-heading h3{font-size:19px}.region-results-heading h3>span{font-size:13px}.region-results-heading .map-eyebrow{font-size:9px;margin-bottom:4px}.region-results-heading>button{font-size:9px}.results-panel{scroll-margin-top:18px}.festival-card{border-radius:15px}.results-toolbar{flex-wrap:wrap;gap:8px}.category-tabs{flex:1;white-space:nowrap}.category-tabs button{padding:8px 7px;font-size:9px}.list-options{margin-left:auto;gap:5px}.list-options label{white-space:nowrap}.festival-card:hover{transform:none}
 .map-panel.is-expanded{inset:8px;border-radius:20px}.map-panel.is-expanded .map-heading{padding:16px 13px 0}.map-panel.is-expanded .map-heading strong{font-size:11px}.map-panel.is-expanded .map-expand{padding:8px}.map-panel.is-expanded .map-expand .icon{width:12px;height:12px}.map-panel.is-expanded .map-canvas{transition:margin-bottom .35s}.map-panel.is-expanded.has-region .map-canvas{margin-bottom:min(38dvh,310px)}.map-panel.is-expanded.has-region #map{width:100%;max-width:none}.map-panel.is-expanded.has-region .map-controls{right:10px;bottom:41px}.map-panel.is-expanded.has-region .compass{right:18px}.map-panel.is-expanded .map-selection{display:none}.map-panel.is-expanded.has-region .sea-east{right:6%}.map-panel.is-expanded.has-region .sea-west{left:7%}
 .map-panel.is-expanded .map-drawer:not([hidden]){top:auto;bottom:34px;left:0;right:0;width:auto;height:min(38dvh,310px);padding:9px 17px 13px;border-radius:22px 22px 0 0;border-left:0;border-right:0;box-shadow:0 -8px 25px #2e4b3010;animation:sheet-in .35s cubic-bezier(.2,.8,.2,1)}.drawer-handle{display:block;flex-shrink:0;width:30px;height:4px;background:#dbe6d6;border-radius:5px;margin:0 auto 8px}.drawer-heading{margin-bottom:2px}.drawer-heading .map-eyebrow{font-size:8px}.drawer-heading h3{font-size:16px;margin:2px 0 0}.drawer-heading>button{width:30px;height:30px}.drawer-card{padding:9px 0;gap:10px}.drawer-cover{width:48px;height:48px}.drawer-card-info{gap:2px}.drawer-card strong{font-size:11px;-webkit-line-clamp:1}.drawer-card small{font-size:8px}.drawer-card-city{font-size:8px}.drawer-all{padding:10px;margin-top:9px;font-size:10px}.drawer-empty{padding:12px 5px}.drawer-empty>.icon{display:none}.drawer-empty p{margin-bottom:0;font-size:10px}
}
@keyframes sheet-in{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}#mapScene,.province-region,.region-chip,.festival-card,.map-panel.is-expanded #map,.map-panel.is-expanded .map-canvas{transition:none}.map-panel.is-expanded .map-drawer:not([hidden]){animation:none}}

@media(max-width:600px){
 .map-panel:not(.is-expanded) .map-canvas{transition:height .35s cubic-bezier(.2,.8,.2,1)}
 .map-panel:not(.is-expanded).has-region .map-canvas{height:350px}
 .map-panel:not(.is-expanded).has-region .map-selection{display:none}
 .map-panel:not(.is-expanded).has-region .map-drawer:not([hidden]){position:relative;display:flex;flex-direction:column;scroll-margin-block:18px;top:auto;right:auto;bottom:auto;left:auto;width:100%;height:270px;padding:10px 17px 13px;background:#fffefbf5;border-top:1px solid #dce8df;border-radius:22px 22px 0 0;box-shadow:0 -8px 25px #2e4b3008;animation:sheet-in .35s cubic-bezier(.2,.8,.2,1)}
}
@media(prefers-reduced-motion:reduce){.map-panel:not(.is-expanded) .map-canvas{transition:none}.map-panel:not(.is-expanded).has-region .map-drawer:not([hidden]){animation:none}}
