:root{--color-bg: #fff5fa;--color-primary: #ff6fae;--color-secondary: #a17bf0;--color-accent: #ffd166;--color-mint: #7fdcc5;--color-sky: #8ecbff;--color-peach: #ffb38a;--color-text: #5b4a6b;--font-heading: "Fredoka", "ZCOOL KuaiLe", sans-serif;--font-body: "Nunito", "ZCOOL KuaiLe", sans-serif;--shadow-soft: 0 10px 30px rgba(161, 123, 240, .18);--shadow-pop: 0 6px 0 rgba(161, 123, 240, .25);--radius-large: 28px}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font-body);background-color:var(--color-bg);background-image:radial-gradient(rgba(255,111,174,.14) 12%,transparent 13%),radial-gradient(rgba(142,203,255,.16) 12%,transparent 13%);background-size:48px 48px;background-position:0 0,24px 24px;color:var(--color-text);line-height:1.6;overflow-x:hidden}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:600;color:var(--color-secondary)}::selection{background:var(--color-accent);color:var(--color-text)}.container{max-width:1200px;margin:0 auto;padding:0 20px}.btn{display:inline-block;padding:14px 34px;background:linear-gradient(45deg,var(--color-primary),var(--color-secondary));color:#fff;border-radius:50px;text-decoration:none;font-weight:600;font-size:1.2rem;font-family:var(--font-heading);transition:transform .2s ease,box-shadow .2s ease;border:3px solid white;box-shadow:0 6px #d9539a,0 14px 24px #ff6fae59;cursor:pointer}.btn:hover{transform:translateY(-3px) scale(1.05) rotate(-2deg)}.btn:active{transform:translateY(4px) scale(.98);box-shadow:0 2px #d9539a,0 6px 12px #ff6fae59}.btn:focus-visible,.lang-btn:focus-visible{outline:3px solid var(--color-accent);outline-offset:3px}@keyframes float{0%,to{transform:translateY(0) rotate(var(--tilt, 0deg))}50%{transform:translateY(-18px) rotate(calc(var(--tilt, 0deg) * -1))}}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes letterBounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes twinkle{0%,to{opacity:.4;transform:scale(.8)}50%{opacity:1;transform:scale(1.2)}}@keyframes wiggle{0%,to{transform:rotate(-8deg)}50%{transform:rotate(8deg)}}@keyframes sparklePop{0%{opacity:1;transform:translate(-50%,-50%) scale(.3)}to{opacity:0;transform:translate(calc(-50% + var(--dx)),calc(-50% + var(--dy))) scale(1.3) rotate(var(--rot))}}.fade-in{animation:fadeIn 1s ease-out both}.language-switcher{position:fixed;top:16px;right:16px;z-index:1000;display:flex;gap:6px;background-color:#ffffffeb;padding:6px;border-radius:50px;border:3px solid #ffd3e8;box-shadow:var(--shadow-soft);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);max-width:calc(100% - 32px);overflow-x:auto;scrollbar-width:none}.language-switcher::-webkit-scrollbar{display:none}.lang-btn{display:flex;align-items:center;gap:5px;padding:8px 14px;border:none;border-radius:50px;background:transparent;color:var(--color-text);cursor:pointer;font-family:var(--font-heading);font-size:.95rem;white-space:nowrap;transition:background-color .2s ease,transform .2s ease}.lang-btn:hover{background-color:#ff6fae1f;transform:scale(1.06)}.lang-btn.active{background:linear-gradient(45deg,var(--color-primary),var(--color-secondary));color:#fff;font-weight:600}.hero{position:relative;min-height:100vh;min-height:100svh;display:flex;align-items:center;justify-content:center;text-align:center;padding:90px 20px 110px;background-size:cover;background-position:center;overflow:hidden}.deco{position:absolute;font-size:var(--size, 2.5rem);line-height:1;-webkit-user-select:none;user-select:none;pointer-events:none;animation:float var(--dur, 6s) ease-in-out infinite;animation-delay:var(--delay, 0s);filter:drop-shadow(0 6px 8px rgba(91,74,107,.18))}.deco.twinkle{animation-name:twinkle;filter:none}.hero-content{position:relative;z-index:1;background-color:#ffffffd1;padding:44px 36px 40px;border-radius:40px;border:4px dashed #ffc2de;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:var(--shadow-soft);max-width:620px;width:100%}.avatar-wrap{position:relative;width:200px;height:200px;max-width:50vw;max-height:50vw;margin:0 auto 22px;animation:float 6s ease-in-out infinite}.avatar-ring{position:absolute;top:-8px;right:-8px;bottom:-8px;left:-8px;border-radius:50%;background:conic-gradient(#ff8fc0,#ffd166,#7fdcc5,#8ecbff,#b79bff,#ff8fc0);animation:spin 10s linear infinite}.avatar{position:relative;width:100%;height:100%;border-radius:50%;border:6px solid white;object-fit:cover;display:block}.avatar-sticker{position:absolute;font-size:2.6rem;line-height:1;filter:drop-shadow(0 3px 4px rgba(91,74,107,.25))}.avatar-sticker.bow{top:-14px;right:-6px;transform:rotate(20deg)}.avatar-sticker.star{bottom:-4px;left:-10px;font-size:2rem;animation:wiggle 2s ease-in-out infinite}.hero-title{font-size:3.4rem;margin-bottom:12px;line-height:1.25;text-shadow:3px 3px 0 white}.hero-title .word{display:inline-block;white-space:nowrap;margin:0 .12em}.hero-title .letter{display:inline-block;animation:letterBounce 1.8s ease-in-out infinite}.hero-subtitle{font-size:1.4rem;margin-bottom:30px;color:var(--color-text)}.hero-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:14px}.btn-secondary{background:#fff;border-color:#d9c9ff;color:var(--color-secondary);box-shadow:0 6px #bea5f8,0 14px 24px #a17bf03d}.wave{position:absolute;left:0;bottom:-1px;width:100%;height:70px;display:block}.about{padding:50px 20px 90px;text-align:center}.section-title{font-size:2.6rem;margin-bottom:30px;color:var(--color-secondary)}.section-title .emoji{display:inline-block;animation:wiggle 2.4s ease-in-out infinite}.about-card{position:relative;max-width:800px;margin:0 auto;font-size:1.25rem;line-height:1.8;background-color:#fff;padding:36px 28px;border-radius:var(--radius-large);border:4px solid #ffe0ef;box-shadow:var(--shadow-soft)}.about-card p+p{margin-top:16px}.about-card:before{content:"";position:absolute;top:-16px;left:50%;width:130px;height:30px;transform:translate(-50%) rotate(-3deg);background:repeating-linear-gradient(45deg,#ffd166,#ffd166 10px,#ffe29a 10px,#ffe29a 20px);border-radius:4px;opacity:.9}.favorites{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:24px;max-width:800px;margin:44px auto 0}.favorite{background:var(--card-color);border:4px solid white;border-radius:var(--radius-large);padding:26px 12px 22px;box-shadow:var(--shadow-pop),var(--shadow-soft);transform:rotate(var(--tilt));transition:transform .25s ease}.favorite:hover{transform:rotate(0) translateY(-8px) scale(1.05)}.favorite-emoji{display:block;font-size:3.4rem;line-height:1.1;margin-bottom:8px}.favorite:hover .favorite-emoji{animation:wiggle .6s ease-in-out infinite}.favorite-label{font-family:var(--font-heading);font-size:1.25rem;font-weight:600;color:var(--color-text)}.gallery-preview{position:relative;overflow:hidden;padding:86px 20px 100px;background:radial-gradient(circle at 10% 20%,rgba(255,209,102,.42) 0 10px,transparent 11px),radial-gradient(circle at 90% 78%,rgba(127,220,197,.35) 0 14px,transparent 15px),linear-gradient(135deg,#fff7cf,#ffe6f2 58%,#eee6ff)}.gallery-preview-inner{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,.72fr);align-items:center;gap:clamp(42px,8vw,100px);max-width:1000px}.preview-copy{text-align:left}.preview-eyebrow,.gallery-eyebrow{margin-bottom:10px;color:#c34c87;font-family:var(--font-heading);font-size:.9rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.preview-copy h2{max-width:560px;margin-bottom:16px;color:var(--color-secondary);font-size:clamp(2.4rem,5vw,3.8rem);line-height:1.05;text-shadow:3px 3px 0 white}.preview-copy>p:not(.preview-eyebrow){max-width:560px;margin-bottom:30px;color:var(--color-text);font-size:1.15rem}.preview-frame{position:relative;display:block;padding:14px 14px 48px;border:4px solid white;border-radius:8px;background:#fff;box-shadow:var(--shadow-pop),0 24px 54px #5b4a6b38;transform:rotate(3deg);transition:transform .25s ease,box-shadow .25s ease}.preview-frame:hover{box-shadow:0 8px #a17bf040,0 28px 64px #5b4a6b47;transform:rotate(0) translateY(-5px) scale(1.02)}.preview-frame img{display:block;width:100%;height:auto;aspect-ratio:3 / 4;object-fit:cover}.preview-tape,.tape{position:absolute;z-index:2;display:block;width:84px;height:24px;background:repeating-linear-gradient(45deg,#ffd166,#ffd166 9px,#ffe29a 9px,#ffe29a 18px);border-radius:3px;box-shadow:0 1px 2px #5b4a6b1f;opacity:.9}.preview-tape{top:-7px;left:50%;transform:translate(-50%) rotate(-3deg)}.gallery-page{position:relative;min-height:100vh;overflow:hidden;padding:120px 20px 100px;background:radial-gradient(rgba(255,111,174,.13) 12%,transparent 13%),radial-gradient(rgba(142,203,255,.14) 12%,transparent 13%),linear-gradient(180deg,#fff7fb,#fff0f6 55%,#f5efff);background-position:0 0,24px 24px,0 0;background-size:48px 48px,48px 48px,auto}.gallery-header{position:relative;z-index:1;max-width:820px;margin-bottom:58px;text-align:center}.back-link{display:inline-flex;align-items:center;gap:8px;margin-bottom:44px;padding:8px 16px;border:3px solid #ffe0ef;border-radius:999px;background:#fff;color:var(--color-text);font-family:var(--font-heading);font-weight:600;text-decoration:none;box-shadow:var(--shadow-soft);transition:color .2s ease,transform .2s ease}.back-link:hover{color:var(--color-primary);transform:translate(-4px) rotate(-2deg)}.gallery-header h1{margin-bottom:18px;color:var(--color-secondary);font-size:clamp(3.4rem,9vw,6.5rem);line-height:.95;letter-spacing:-.04em;text-shadow:4px 4px 0 white}.gallery-intro{max-width:650px;margin:0 auto 24px;color:var(--color-text);font-size:clamp(1.05rem,2vw,1.3rem)}.art-count{display:inline-flex;padding:8px 16px;border:3px solid #d9c9ff;border-radius:999px;background:#fff;color:#725797;font-family:var(--font-heading);font-size:.9rem;font-weight:700;box-shadow:0 4px #a17bf02e}.gallery-sparkle{position:absolute;color:var(--color-accent);line-height:1;opacity:.9;pointer-events:none;animation:twinkle 2.6s ease-in-out infinite}.gallery-sparkle-one{top:210px;left:8%;font-size:3rem;transform:rotate(-15deg)}.gallery-sparkle-two{top:330px;right:8%;color:var(--color-primary);font-size:2.2rem;animation-delay:-1s}.art-grid{position:relative;z-index:1;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:54px 38px;max-width:920px}.art-card{width:100%;max-width:620px;margin:0 auto}.art-frame{position:relative;display:block;padding:clamp(12px,2.5vw,20px);border:4px solid white;border-radius:8px;background:#fffdf9;box-shadow:var(--shadow-pop),0 25px 70px #5b4a6b33;transition:transform .25s ease,box-shadow .25s ease}.art-frame:hover{box-shadow:0 9px #a17bf038,0 30px 80px #5b4a6b45;transform:translateY(-7px) rotate(-1deg)}.art-frame img{display:block;width:100%;height:auto;border:1px solid rgba(91,74,107,.1);aspect-ratio:3 / 4;object-fit:cover}.tape-left{top:2px;left:-24px;transform:rotate(-42deg)}.tape-right{right:-24px;bottom:8px;transform:rotate(-42deg)}.open-hint{position:absolute;right:30px;bottom:30px;padding:7px 11px;border:2px solid #ffe0ef;border-radius:999px;background:#fffffff0;color:var(--color-text);font-size:.82rem;font-weight:700;opacity:0;transform:translateY(6px);transition:opacity .2s ease,transform .2s ease}.art-frame:hover .open-hint,.art-frame:focus-visible .open-hint{opacity:1;transform:translateY(0)}.art-caption{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;padding:24px 10px 0;text-align:left}.art-caption h2{margin-bottom:3px;color:var(--color-text);font-size:clamp(1.5rem,3vw,2rem)}.art-caption p{color:#756d78}.art-caption>span{flex:none;margin-top:8px;color:#b15383;font-family:var(--font-heading);font-size:.82rem;font-weight:700}.more-art-note{margin-top:72px;text-align:center;color:var(--color-text);font-family:var(--font-heading);font-size:1.05rem;font-weight:600}.places-preview{position:relative;overflow:hidden;padding:86px 20px 100px;background:radial-gradient(circle at 88% 18%,rgba(255,111,174,.22) 0 12px,transparent 13px),radial-gradient(circle at 8% 82%,rgba(255,209,102,.4) 0 10px,transparent 11px),linear-gradient(135deg,#e3f8f1,#e9f4ff 55%,#f3ecff)}.places-preview-inner{display:grid;grid-template-columns:minmax(240px,.8fr) minmax(0,1fr);align-items:center;gap:clamp(36px,7vw,90px);max-width:1000px}.flag-stickers{display:flex;flex-wrap:wrap;justify-content:center;gap:14px;list-style:none}.flag-stickers li{display:grid;place-items:center;width:78px;height:78px;border:4px solid white;border-radius:50%;background:#fffdf9;box-shadow:var(--shadow-pop);font-size:2.6rem;line-height:1;transform:rotate(var(--tilt));transition:transform .2s ease}.flag-stickers li:hover{transform:rotate(0) scale(1.12)}.places-page{position:relative;min-height:100vh;overflow:hidden;padding:120px 20px 100px;background:radial-gradient(rgba(127,220,197,.16) 12%,transparent 13%),radial-gradient(rgba(142,203,255,.16) 12%,transparent 13%),linear-gradient(180deg,#f4fbff,#fff3f8 55%,#f5efff);background-position:0 0,24px 24px,0 0;background-size:48px 48px,48px 48px,auto}.places-stats{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;list-style:none}.places-stats li{padding:8px 18px;border:3px solid #d9c9ff;border-radius:999px;background:#fff;color:#725797;font-family:var(--font-heading);font-weight:600;box-shadow:0 4px #a17bf02e}.places-stats strong{color:var(--color-primary);font-size:1.25rem}.map-card{position:relative;z-index:1;max-width:1000px;padding:clamp(10px,2vw,18px);border:4px solid white;border-radius:var(--radius-large);background:#fffdf9;box-shadow:var(--shadow-pop),0 25px 70px #5b4a6b29}.map-toolbar{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.map-chip{padding:6px 14px;border:3px solid #ffe0ef;border-radius:999px;background:#fff;color:var(--color-text);font-family:var(--font-heading);font-size:.95rem;font-weight:600}button.map-chip{cursor:pointer}.map-chip.is-selected{border-color:var(--color-primary);color:#c34c87}.world-map{display:block;width:100%;height:auto}.map-sea{fill:#e4f3ff}.map-ocean{fill:#d6edff}.map-graticule{fill:none;stroke:#fff;stroke-width:1;stroke-dasharray:3 5;opacity:.8}.map-land{fill:#fff1c4;stroke:#fff1c4;stroke-width:.6}.map-borders{fill:none;stroke:#e9b96a;stroke-width:.8;stroke-dasharray:2 3;stroke-linejoin:round}.map-dot{r:6px;fill:var(--color-primary);stroke:#fff;stroke-width:2;cursor:pointer;transition:opacity .25s ease,fill .25s ease}.map-dot:hover{fill:#c34c87}.map-dot.is-faded{fill:var(--color-secondary);opacity:.35}.map-dot.is-active{r:11px;fill:var(--color-accent);stroke:var(--color-primary);stroke-width:4;opacity:1}.map-label{fill:var(--color-text);font-family:var(--font-heading);font-size:26px;font-weight:700;paint-order:stroke;stroke:#fff;stroke-width:7px;stroke-linejoin:round;pointer-events:none}.country-grid{position:relative;z-index:1;max-width:1000px;margin-top:48px;columns:3 260px;column-gap:22px}.country-card{display:inline-block;width:100%;margin-bottom:22px;break-inside:avoid;padding:16px 16px 18px;border:3px dashed #d9c9ff;border-radius:22px;background:#fff;box-shadow:var(--shadow-soft);transition:border-color .2s ease,transform .2s ease}.country-card.is-selected{border-color:var(--color-primary);border-style:solid;transform:translateY(-3px)}.country-head{display:flex;align-items:center;gap:12px;width:100%;margin-bottom:12px;padding:0;border:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}.country-flag{font-size:2.6rem;line-height:1}.country-name{display:block;color:var(--color-secondary);font-family:var(--font-heading);font-size:1.35rem;font-weight:700;line-height:1.2}.country-head:hover .country-name{color:var(--color-primary)}.country-meta{display:block;color:#8a7f93;font-size:.9rem}.city-chips{display:flex;flex-wrap:wrap;gap:6px;list-style:none}.city-chip{padding:3px 10px;border:2px solid #ffe0ef;border-radius:999px;background:#fff7fb;color:var(--color-text);font-family:var(--font-body);font-size:.88rem;cursor:pointer;transition:background .15s ease,border-color .15s ease}.city-chip:hover{border-color:var(--color-primary)}.city-chip.is-active{border-color:var(--color-primary);background:var(--color-accent);font-weight:700}.country-head:focus-visible,.city-chip:focus-visible,.map-chip:focus-visible{outline:3px solid var(--color-secondary);outline-offset:3px}@media (max-width: 768px){.places-preview{padding:68px 20px 82px}.places-preview-inner{grid-template-columns:1fr;gap:40px}.places-preview .preview-copy{order:-1}.flag-stickers li{width:62px;height:62px;font-size:2rem}.places-page{padding:108px 12px 78px}.map-card{padding:8px;border-radius:20px}.map-dot{r:11px;stroke-width:3}.map-dot.is-active{r:18px;stroke-width:6}.map-label{font-size:54px;stroke-width:12px}}.footer{position:relative;background:linear-gradient(135deg,var(--color-secondary),var(--color-primary));color:#fff;padding:70px 20px 40px;text-align:center}.footer .wave{top:-1px;bottom:auto;transform:rotate(180deg)}.footer-emojis{font-size:1.8rem;letter-spacing:.4em;margin-bottom:10px}.footer-emojis span{display:inline-block;animation:letterBounce 1.6s ease-in-out infinite}.footer-made{font-family:var(--font-heading);font-size:1.3rem}.footer-rights{font-size:.9rem;opacity:.85;margin-top:8px}.sparkle{position:fixed;z-index:2000;pointer-events:none;font-size:1.5rem;line-height:1;animation:sparklePop .8s ease-out forwards}@media (max-width: 768px){.container{padding:0 15px}.hero{padding:90px 16px}.hero-content{padding:34px 18px 30px;border-radius:32px}.hero-title{font-size:2.3rem}.hero-subtitle{font-size:1.1rem}.hero-actions{gap:10px}.about{padding:40px 15px 70px}.section-title{font-size:2rem}.about-card{font-size:1.05rem;padding:30px 18px 24px}.favorites{gap:12px}.favorite{padding:18px 6px 14px;border-radius:20px}.favorite-emoji{font-size:2.4rem}.favorite-label{font-size:.95rem}.deco{font-size:calc(var(--size, 2.5rem) * .7)}.lang-btn{padding:7px 10px;font-size:.85rem}.btn{padding:12px 26px;font-size:1.05rem}.wave{height:40px}.gallery-preview{padding:68px 20px 82px}.gallery-preview-inner{grid-template-columns:1fr;gap:50px}.preview-copy{text-align:center}.preview-copy>p:not(.preview-eyebrow){margin-right:auto;margin-left:auto}.preview-frame{width:min(82vw,360px);margin:0 auto}.gallery-page{padding:108px 4px 78px}.gallery-header{padding-right:20px;padding-left:20px;margin-bottom:42px}.gallery-sparkle{display:none}.art-grid{padding-right:20px;padding-left:20px}.tape-left{left:-14px}.tape-right{right:-14px}.open-hint{display:none}.art-caption{display:block;padding-top:18px}.art-caption>span{display:inline-block;margin-top:10px}}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.sparkle{display:none}}
