@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700;800&family=Syne:wght@600;700;800&display=swap');:root{--ink:#181323;--pink:#ff3692;--purple:#7e46ff;--lime:#dfff49;--blue:#62d5ff}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:#fff;font-family:'DM Sans',sans-serif}a{text-decoration:none;color:inherit}button{font:inherit;cursor:pointer}header{background:#fffefef2;backdrop-filter:blur(16px);position:sticky;top:0;z-index:10;border-bottom:1px solid #eeeeef}.navwrap{max-width:1160px;margin:auto;padding:13px 22px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{font-family:Syne,sans-serif;font-weight:800;display:flex;align-items:center;gap:9px;font-size:20px;letter-spacing:-.06em;white-space:nowrap}.brand-mark{width:42px;height:42px;background:var(--lime);border:3px solid var(--ink);border-radius:13px;display:grid;place-items:center;transform:rotate(-9deg)}nav{display:flex;gap:5px;flex-wrap:wrap}nav a{padding:11px 13px;border-radius:15px;font-weight:800;font-size:14px}nav a.active,nav a:hover{background:var(--ink);color:#fff}.wrap{max-width:1160px;padding:0 22px;margin:auto}.hero{margin-top:26px;padding:clamp(30px,6vw,70px);min-height:440px;border-radius:34px;position:relative;overflow:hidden;display:flex;align-items:center}.hero:before{content:'✳';position:absolute;right:-20px;top:-130px;font-size:430px;line-height:1;opacity:.15;transform:rotate(22deg)}.hero>div{position:relative;z-index:1;max-width:770px}.hero.home{background:linear-gradient(115deg,#fff7cf,#fff0f7 60%,#e9dbff)}.hero.program{background:linear-gradient(110deg,#e1ff5b,#c0fbb6)}.hero.moments{background:linear-gradient(110deg,#ff71ad,#ffa9c9 56%,#ffd85e)}.hero.history{background:linear-gradient(110deg,#b3a0ff,#e1d5ff 70%,#b5edff)}.hero.bookhero{background:linear-gradient(110deg,#71ddff,#d3f4ff 55%,#b6ffbf)}.eyebrow{font-size:13px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;margin-bottom:19px}.hero h1{font:800 clamp(49px,9vw,104px)/.92 Syne,sans-serif;letter-spacing:-.08em;margin:0 0 23px}.hero p{max-width:600px;font-size:19px;line-height:1.55}.tag{display:inline-block;padding:8px 15px;border-radius:50px;background:#fff;border:1px solid #eae4e8;font-size:13px;font-weight:800}.btn{border:0;display:inline-block;border-radius:14px;background:var(--ink);color:#fff;font-weight:800;padding:15px 22px}.btn.white{background:white;color:var(--ink)}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}.section{padding:55px 0}.section h2{font:800 clamp(32px,5vw,54px)/1 Syne,sans-serif;letter-spacing:-.06em;margin:0 0 20px}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.card{padding:26px;min-height:220px;background:#fff;border:1px solid #e9e7ed;border-radius:28px;box-shadow:0 20px 45px #3021470b}.card h3{font:800 25px Syne,sans-serif;letter-spacing:-.05em;margin:14px 0 8px}.card p{color:#666173;line-height:1.6}.card .symbol{font-size:42px}.card.color1{background:#fff0f7}.card.color2{background:#f2edff}.card.color3{background:#efffd1}.card.color4{background:#e0f7ff}.festival{background:linear-gradient(135deg,#261b42,#7e46ff 56%,#ff3692);color:white;padding:38px;border-radius:30px}.festival h2{color:#fff}.festival p{color:#f7e9ff}.filters{display:flex;flex-wrap:wrap;gap:9px;margin:25px 0}.filter{border:0;background:#f1f0f5;border-radius:50px;padding:11px 18px;font-weight:800}.filter.active{background:var(--ink);color:white}.event{display:flex;gap:16px;align-items:center;border:1px solid #e9e7ed;background:#fff;border-radius:21px;padding:20px;margin:10px 0}.event time{min-width:85px;font:800 23px Syne,sans-serif}.event strong{font-size:18px}.event small{display:block;color:#77727f;margin-top:6px}.fav{margin-left:auto;border:0;border-radius:13px;background:#f7f4f8;padding:11px;font-size:20px}.fav.selected{background:#ffe2ef;color:#e91c80}.photo-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.photo{min-height:275px;padding:28px;border-radius:30px;position:relative;overflow:hidden}.photo:after{content:'✷';font-size:220px;position:absolute;right:-15px;bottom:-65px;opacity:.19}.photo h3{font:800 36px/1 Syne,sans-serif;letter-spacing:-.06em;max-width:340px}.photo p{max-width:310px}.photo:nth-child(1){background:#ffc7e0}.photo:nth-child(2){background:#dfff72}.photo:nth-child(3){background:#b6a2ff}.photo:nth-child(4){background:#8deaff}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.step{border-left:7px solid var(--pink);padding:25px;background:#f9f7fd;border-radius:20px}.step:nth-child(2){border-color:var(--purple)}.step:nth-child(3){border-color:#8ac61d}.step strong{font:800 40px Syne,sans-serif}.step p{line-height:1.6}.book-layout{display:grid;grid-template-columns:1fr 1fr;gap:25px}.cover-box{border-radius:30px;background:#eeeaff;display:grid;place-items:center;padding:45px}.cover{background:linear-gradient(140deg,#ff3692,#7049ef 65%,#dfff49);color:white;box-shadow:18px 20px 0 #362d58;width:260px;min-height:350px;transform:rotate(-5deg);border-radius:12px;padding:25px;display:flex;flex-direction:column;justify-content:space-between}.cover h2{color:#fff;font-size:45px}.price{font:800 48px Syne,sans-serif}.notice{background:#fff4c6;padding:17px;border-radius:15px;margin-top:18px;font-weight:600}.reader{padding:30px;background:#fff8e8;border-radius:25px;min-height:210px}footer{border-top:1px solid #eee;margin-top:60px;padding:25px;text-align:center;color:#777;font-size:13px}.mobile-nav{display:none}@media(max-width:840px){nav{display:none}.mobile-nav{display:flex;position:fixed;z-index:20;bottom:0;background:#fff;left:0;right:0;justify-content:space-around;box-shadow:0 -5px 25px #0001;padding:9px 0 max(9px,env(safe-area-inset-bottom))}.mobile-nav a{font-size:11px;font-weight:800;text-align:center;padding:7px}.mobile-nav span{display:block;font-size:20px}.grid,.steps{grid-template-columns:1fr 1fr}.book-layout{grid-template-columns:1fr}footer{padding-bottom:90px}}@media(max-width:540px){.grid,.steps,.photo-grid{grid-template-columns:1fr}.hero{min-height:370px}.hero p{font-size:17px}.actions{flex-direction:column}.btn{text-align:center}.cover{transform:none}.event{gap:9px;padding:13px}.event time{min-width:65px;font-size:17px}.event strong{font-size:14px}.wrap{padding:0 15px}}