:root,[data-theme=blossom]{--blush:#F6D6DC;--cream:#FFF8F4;--rose:#E8A0B4;--oak:#C9A27E;--grey:#8A8A8F;--teal:#3FB8AF;--ink:#4a3b3f;--card:#fff;--soft:#fde8ec}
[data-theme=sky]{--blush:#dfe7f5;--cream:#f6f8fc;--rose:#5b7bd5;--oak:#c9a27e;--grey:#6f7890;--teal:#e8a0b4;--ink:#1f2a44;--card:#fff;--soft:#e9eefa}
[data-theme=lagoon]{--blush:#d5f1ee;--cream:#fffaf2;--rose:#2aa79b;--oak:#d9b88a;--grey:#7f8a8a;--teal:#f08a6c;--ink:#1d3b3a;--card:#fff;--soft:#e6f7f5}
[data-theme=seoul]{--blush:#1b1630;--cream:#0f0c1d;--rose:#ff4fa3;--oak:#7cf3ff;--grey:#a9a3c4;--teal:#7cf3ff;--ink:#f3ecff;--card:#211b3b;--soft:#2a2150}
[data-theme=matcha]{--blush:#e3ecd3;--cream:#fbf8ef;--rose:#7a9a52;--oak:#b89470;--grey:#7d806f;--teal:#c47f5a;--ink:#3a3f2c;--card:#fff;--soft:#eef3e4}
body{transition:background .5s,color .5s}
*{box-sizing:border-box;margin:0}html{scroll-behavior:smooth}
body{font-family:Nunito,sans-serif;background:var(--cream);color:var(--ink);line-height:1.6;overflow-x:hidden}
h1,h2,h3,.logo{font-family:Fraunces,serif;font-weight:600}h2{font-size:clamp(1.8rem,5vw,2.8rem);line-height:1.15;margin:.3rem 0 1rem}
img{max-width:100%;display:block}a{color:inherit}
.eyebrow{text-transform:uppercase;letter-spacing:.2em;font-size:.75rem;color:var(--teal);font-weight:700}
.note{color:var(--grey);font-size:.9rem}.c{text-align:center;margin-top:1rem}
nav{position:fixed;inset:0 0 auto;z-index:50;display:flex;justify-content:space-between;align-items:center;padding:.9rem 1.2rem;transition:.3s}
nav.solid{background:color-mix(in srgb,var(--cream) 92%,transparent);backdrop-filter:blur(10px);box-shadow:0 2px 20px #e8a0b433}
.logo{font-size:1.5rem;text-decoration:none}.logo span{font-size:.8rem;color:var(--rose);margin-left:.4rem}
#links{list-style:none;display:none;padding:0}#links a{text-decoration:none;font-weight:600}
#links.open{display:flex;flex-direction:column;gap:1rem;position:absolute;top:100%;left:0;right:0;background:var(--cream);padding:1.2rem}
#burger{background:none;border:0;font-size:1.6rem;color:var(--ink)}
@media(min-width:860px){#burger{display:none}#links{display:flex;gap:1.6rem}}
.hero{min-height:100svh;display:grid;place-items:center;text-align:center;position:relative;overflow:hidden;
background:linear-gradient(color-mix(in srgb,var(--cream) 80%,transparent),color-mix(in srgb,var(--blush) 80%,transparent)),url(img/hall.jpg) center/cover}
.hero-in{position:relative;z-index:2;padding:6rem 1.2rem 3rem;animation:up 1.2s ease both}
.hero h1{font-size:clamp(3rem,12vw,7rem);letter-spacing:.02em;color:var(--ink);line-height:1}
.tag{font-size:1.15rem;max-width:34rem;margin:1rem auto 2rem}
.btns{display:flex;gap:.8rem;justify-content:center;flex-wrap:wrap}
.btn{background:var(--rose);color:#fff;border:0;padding:.85rem 1.6rem;border-radius:99px;font:700 1rem Nunito;text-decoration:none;cursor:pointer;transition:.25s;box-shadow:0 6px 18px #e8a0b466}
.btn:hover{transform:translateY(-2px);background:#dc8aa1}.btn.ghost{background:var(--card);color:var(--ink);box-shadow:inset 0 0 0 2px var(--rose)}
.scroll{position:absolute;bottom:1.5rem;z-index:2;font-size:1.5rem;text-decoration:none;animation:bob 2s infinite}
#petals{position:absolute;inset:0;pointer-events:none;z-index:1}
.petal{position:absolute;top:-30px;width:14px;height:12px;background:var(--rose);border-radius:12px 0 12px 0;opacity:.8;animation:fall linear infinite}
@keyframes fall{to{transform:translate(var(--dx),110vh) rotate(720deg)}}
@keyframes up{from{opacity:0;transform:translateY(30px)}}@keyframes bob{50%{transform:translateY(8px)}}
section{padding:5rem 1.2rem}.tint{background:var(--blush)}
.head{text-align:center;max-width:42rem;margin:0 auto 2.5rem}
.wrap{display:grid;gap:2.5rem;max-width:1100px;margin:auto;align-items:center}
.wrap2{max-width:760px;margin:auto}
@media(min-width:860px){.wrap{grid-template-columns:1fr 1fr}}
.arch img{border-radius:999px 999px 24px 24px;aspect-ratio:3/4;object-fit:cover;box-shadow:0 20px 50px #e8a0b455}
.stats{display:flex;gap:2rem;margin-top:1.5rem}.stats b{font:600 2rem Fraunces;color:var(--rose);display:block}
.zones{display:grid;gap:1.5rem;max-width:1150px;margin:auto}
@media(min-width:700px){.zones{grid-template-columns:repeat(2,1fr)}}@media(min-width:1000px){.zones{grid-template-columns:repeat(3,1fr)}}
.zone{background:var(--card);border-radius:28px;overflow:hidden;box-shadow:0 10px 30px #c9a27e22;transition:.35s}
.zone:hover{transform:translateY(-6px)}.zone img{aspect-ratio:4/3;object-fit:cover;border-radius:999px 999px 0 0;transition:.6s}
.zone:hover img{transform:scale(1.04)}.zone div{padding:1.3rem 1.5rem 1.6rem}.num{color:var(--oak);font-weight:700;font-size:.8rem}
.flow{max-width:900px;margin:3rem auto 0;text-align:center}
.plan{display:grid;grid-template-columns:1fr 1fr 1fr;grid-template-rows:auto auto auto;gap:8px;margin:1rem 0;font-weight:700;font-size:.9rem}
.plan>div{background:var(--card);border:2px dashed var(--rose);border-radius:18px;padding:1rem .5rem}
.p1{grid-column:1/4;background:var(--blush)!important}.p2{grid-column:1/3;grid-row:2/4;display:grid;place-items:center;background:var(--soft)!important}.p3,.p4{grid-column:3}
.p5{grid-column:1/4;border-color:var(--teal)!important;background:var(--soft)!important}
.tabs{display:flex;gap:.5rem;justify-content:center;flex-wrap:wrap;margin-bottom:2rem}
.tabs button{border:0;background:var(--card);padding:.6rem 1.2rem;border-radius:99px;font:700 .95rem Nunito;cursor:pointer;color:var(--ink)}
.tabs button.on{background:var(--ink);color:#fff}
.menu-grid{display:grid;gap:1rem;max-width:1000px;margin:auto}@media(min-width:700px){.menu-grid{grid-template-columns:1fr 1fr}}
.item{background:var(--cream);border-radius:20px;padding:1rem 1.2rem;display:flex;justify-content:space-between;gap:1rem;align-items:center;animation:up .5s both}
.item h4{font-size:1.05rem}.item p{font-size:.85rem;color:var(--grey)}.item .pr{font-weight:700;white-space:nowrap;text-align:right}
.add{border:0;background:var(--rose);color:#fff;border-radius:99px;padding:.3rem .8rem;font:700 .8rem Nunito;cursor:pointer;margin-top:.3rem}
.card{background:var(--card);border-radius:26px;padding:1.6rem;box-shadow:0 10px 30px #c9a27e22;display:flex;flex-direction:column;gap:.8rem}
input,select,textarea{width:100%;padding:.8rem 1rem;border:1.5px solid var(--blush);border-radius:14px;font:1rem Nunito;background:var(--cream);color:var(--ink)}
textarea{min-height:90px}.row{display:flex;gap:.8rem;flex-wrap:wrap}.row label{flex:1;display:flex;gap:.4rem;align-items:center;font-weight:700}.row label input{width:auto}
.row>input,.row>select{flex:1;min-width:120px}
.line{display:flex;justify-content:space-between;align-items:center;padding:.35rem 0;border-bottom:1px dashed var(--blush)}
.line button{border:0;background:var(--blush);border-radius:50%;width:26px;height:26px;cursor:pointer}
.two,.three{display:grid;gap:1.5rem;max-width:1100px;margin:auto}@media(min-width:800px){.two{grid-template-columns:1fr 1fr}.three{grid-template-columns:repeat(3,1fr)}}
.plans{margin-top:1.5rem}.price{font:600 1.6rem Fraunces;color:var(--rose)}.hi{outline:3px solid var(--rose)}
.revs{display:grid;gap:1rem;margin-bottom:2rem}.rev{background:var(--card);border-radius:22px;padding:1.2rem 1.4rem;box-shadow:0 6px 20px #e8a0b422}
.rev .st{color:var(--rose)}.badge{display:inline-block;font-size:.72rem;font-weight:700;padding:.15rem .6rem;border-radius:99px;background:#eee;color:var(--grey);margin-left:.5rem}
.badge.you{background:#e6f7f5;color:var(--teal)}
.stars{font-size:1.8rem;color:var(--blush);cursor:pointer;letter-spacing:.2rem}.stars .on{color:var(--rose)}
.hours td{padding:.4rem 1.5rem .4rem 0}.hours{margin:1rem 0}
iframe{width:100%;height:340px;border:0;border-radius:28px}
footer{background:var(--ink);color:var(--cream);text-align:center;padding:3rem 1rem}footer .made{font-weight:700;color:var(--blush);margin:.5rem 0}
.reveal{opacity:0;transform:translateY(40px);transition:opacity .9s ease,transform .9s ease}.reveal.in{opacity:1;transform:none}
.toast{position:fixed;bottom:1.5rem;left:50%;transform:translateX(-50%);background:var(--ink);color:var(--cream);padding:.8rem 1.4rem;border-radius:99px;z-index:99;animation:up .4s}
@media(prefers-reduced-motion:reduce){.petal{display:none}.reveal{opacity:1;transform:none}}

nav{background:color-mix(in srgb,var(--cream) 85%,transparent);backdrop-filter:blur(10px)}
#tabbar{position:fixed;top:58px;left:0;right:0;z-index:49;display:flex;gap:.4rem;overflow-x:auto;padding:.5rem 1rem;background:color-mix(in srgb,var(--cream) 92%,transparent);backdrop-filter:blur(10px);scrollbar-width:none;border-bottom:1px solid var(--blush)}
#tabbar::-webkit-scrollbar{display:none}
#tabbar a{flex:none;text-decoration:none;font-weight:700;font-size:.88rem;padding:.45rem .95rem;border-radius:99px;background:var(--card);color:var(--ink);transition:.25s}
#tabbar a.on{background:var(--rose);color:#fff}
@media(min-width:1100px){#tabbar{justify-content:center}}
.page:not(.active){display:none}.page.active{animation:up .5s both}
section.page{padding-top:8.5rem}#home section{padding-top:5rem}.hero-in{padding-top:8rem}
.scroll{font-size:1rem;font-weight:700}
.pl{font-weight:700;font-size:.9rem}
.paygrid,.themegrid{display:grid;gap:1rem;max-width:1100px;margin:auto}
@media(min-width:600px){.paygrid{grid-template-columns:1fr 1fr}}@media(min-width:900px){.themegrid{grid-template-columns:repeat(3,1fr)}}
.paycard{display:flex;gap:1rem;align-items:flex-start;background:var(--card);border-radius:22px;padding:1.2rem 1.3rem;box-shadow:0 8px 24px #0001}
.paycard .ic{flex:none;width:52px;height:52px;border-radius:16px;display:grid;place-items:center;font-size:1.5rem;background:var(--blush)}
.paycard small{display:inline-block;margin-top:.3rem;font-weight:700;color:var(--teal);font-size:.75rem;text-transform:uppercase;letter-spacing:.08em}
.tcard{border:0;text-align:left;cursor:pointer;border-radius:24px;overflow:hidden;background:var(--card);box-shadow:0 8px 24px #0002;font:inherit;color:inherit;transition:.3s;padding:0}
.tcard:hover{transform:translateY(-4px)}.tcard.on{outline:4px solid var(--rose);outline-offset:3px}
.tprev{height:150px;position:relative;background-size:cover;background-position:center}
.tprev .sw{position:absolute;bottom:10px;left:10px;display:flex;gap:6px}.tprev .sw i{width:26px;height:26px;border-radius:50%;border:2px solid #fff}
.tprev .mini{position:absolute;top:12px;left:12px;right:12px;border-radius:12px;padding:.5rem .7rem;font:600 1rem Fraunces}
.tcard .tb{padding:1rem 1.2rem}.tcard .tb p{font-size:.85rem;opacity:.75}
