/* BookMyLuck — quiet, editorial, one column. */
:root{color-scheme:light;--bg:#f8faff;--ink:#050414;--muted:#595967;--faint:#5f6070;--blue:#104fc8;--cta:#0335fc;--blue-2:#0230e8;--line:#e6ebf4;--card:#fff;--tint:#f1f5ff;--gold-a:#8A6A12;--gold-b:#E2C264;--cord:#8B5A2B;
 --r-card:24px;--sh-card:0 8px 8px -3px #05041408,0 5px 5px -2.5px #05041408,0 3px 3px -1.5px #05041408,0 2px 2px -1px #05041408,0 1px 1px -.5px #0504140f;--sh-raise:0 2px 2px -1px #0504140a,0 1px 1px -.5px #0504140a,inset 0 2px 8px #ffffff0d,inset 0 1px 3px #ffffff1f,inset 0 .5px .5px #ffffff29;--sh-float:0 24px 60px -12px #0504142e,0 8px 24px -6px #0504141f;--sh-hair:0 1px .5px #0504141a;
 --serif:Newsreader,"New York",Georgia,serif;--display:"Host Grotesk",Inter,system-ui,sans-serif;--sans:Inter,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--left:clamp(24px,6vw,96px);--col:560px;--page:1240px}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:17px;line-height:1.55;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit;text-decoration:none}img{max-width:100%;display:block}h1,h2,h3{font-family:var(--display);font-weight:600;margin:0;letter-spacing:-.02em}
p{margin:0}
.page{max-width:var(--page);margin:0 auto;position:relative}
.col{padding-left:var(--left);padding-right:var(--left);max-width:calc(var(--left)*2 + 800px);margin-inline:auto}
.narrow{max-width:var(--col)}
section{padding:clamp(52px,7vw,72px) 0}
h2{font-size:clamp(32px,3.6vw,44px);line-height:1.08}
.sub{margin-top:14px;color:var(--muted);font-size:17px;max-width:62ch}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:13px 22px;border-radius:99px;font:600 15px var(--sans);border:1px solid transparent;cursor:pointer;transition:transform .16s,box-shadow .2s,background .2s;white-space:nowrap}
.btn:hover{transform:translateY(-2px)}.btn:active{transform:translateY(0)!important;transition-duration:.05s}
.btn-blue{background:var(--cta);color:#fff;box-shadow:var(--sh-raise),0 6px 16px -4px #0335fc66}.btn-blue:hover{background:var(--blue-2)}
.btn-white{background:var(--tint);color:var(--blue);border:1px solid #cfdbff;box-shadow:none}.btn-white:hover{background:#e6edff;border-color:#b9c9ff}
.btn-line{background:#fff;color:var(--ink);border-color:#e8e8e8;box-shadow:var(--sh-hair);padding:14px 18px;font-size:14px}.btn-line:hover{border-color:#9c9da6}
.pill{display:inline-block;font:600 11.5px var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--faint);padding:0;background:none;border:0;line-height:1.3}

/* Hero */
.hero{position:relative;min-height:min(100vh,680px);display:flex;align-items:center;padding:96px 0 64px}
.hero .col{width:100%;min-width:0;margin-inline:0}.narrow{max-width:min(var(--col),100%)}
.hero .wordmark{font-family:var(--display);font-weight:800;letter-spacing:-.035em;width:max-content;white-space:nowrap;font-size:clamp(40px,5.2vw,68px);color:var(--ink);display:flex;align-items:center;gap:.26em;line-height:1;background:none;-webkit-text-fill-color:var(--ink)}
.hero .wordmark img{width:.95em;height:.95em;border-radius:22%;flex:none}
.hero .tag{font-family:var(--serif);font-style:italic;font-weight:500;font-size:clamp(19px,1.9vw,23px);color:var(--muted);margin-top:6px;white-space:nowrap}
.hero .lede{margin-top:26px;font-size:17px;color:var(--ink);max-width:min(58ch,100%)}
.hero .cta{display:flex;gap:12px;flex-wrap:wrap;margin-top:32px}
.hero .hint{margin-top:22px;font-size:14px;color:var(--faint)}

/* Dangle: an SVG world covering the hero; rope + beads + charm drawn by app.js */
.dg-svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;z-index:2}
.dg-handle{position:absolute;left:0;top:0;width:160px;height:165px;border-radius:50%;cursor:grab;z-index:3;touch-action:none;transform-origin:0 0}
.dg-handle:active{cursor:grabbing}
@keyframes wave{0%,100%{transform:rotate(0)}15%{transform:rotate(-16deg)}35%{transform:rotate(3deg)}55%{transform:rotate(-14deg)}75%{transform:rotate(2deg)}90%{transform:rotate(-8deg)}}
@keyframes bell{0%{transform:rotate(0)}10%{transform:rotate(9deg)}25%{transform:rotate(-8deg)}40%{transform:rotate(6deg)}55%{transform:rotate(-4deg)}70%{transform:rotate(2.5deg)}85%{transform:rotate(-1deg)}100%{transform:rotate(0)}}
@keyframes clap{0%{transform:rotate(0)}10%{transform:rotate(-14deg)}25%{transform:rotate(13deg)}40%{transform:rotate(-10deg)}55%{transform:rotate(7deg)}70%{transform:rotate(-4deg)}85%{transform:rotate(2deg)}100%{transform:rotate(0)}}
@keyframes wings{0%{opacity:0;transform:scale(.3,.85)}18%{opacity:1;transform:scale(1,1)}75%{opacity:1;transform:scale(1,1)}100%{opacity:0;transform:scale(.4,.9)}}
@keyframes spin3d{0%{transform:scaleX(1)}25%{transform:scaleX(.08) }50%{transform:scaleX(-1)}75%{transform:scaleX(-.08)}100%{transform:scaleX(1)}}
@keyframes knot{0%{transform:scale(1,1)}12%{transform:scale(.9,1.08)}30%{transform:scale(1.03,.98)}50%{transform:scale(.98,1.02)}100%{transform:scale(1,1)}}
.r-knot>image{animation:knot 2.2s ease-out;transform-origin:50% 0;transform-box:fill-box}
@keyframes glow{0%,100%{filter:brightness(1)}50%{filter:brightness(1.35) drop-shadow(0 0 10px rgba(226,194,100,.9))}}
#dgCharm image,#dgCharm text,#dgCharm g{transform-box:fill-box}
#dgCharm .arm,.cs .arm{transform-box:fill-box;transform-origin:57% 80.5%}#dgCharm .clapper,.cs .clapper{transform-box:fill-box;transform-origin:50% 0}#dgCharm .wings,.cs .wings{transform-box:fill-box;transform-origin:50% 50%}
.wings{opacity:0}
.r-wave .arm,.card:hover .cs .arm{animation:wave 1.6s ease-in-out}
.r-ring image:first-child{animation:bell 2s ease-out;transform-box:fill-box;transform-origin:50% 0}.r-ring .clapper{animation:clap 2s ease-out}
.r-wings .wings{animation:wings 3.2s ease-in-out}
.r-spin>image{animation:spin3d 1.6s ease-in-out;transform-origin:50% 50%;transform-box:fill-box}
.r-glow>image{animation:glow 1.3s ease-in-out}
.card .art svg{overflow:visible;filter:drop-shadow(0 8px 8px rgba(27,36,64,.16))}
.card:hover .art svg .cs{animation:sway 1.6s ease-in-out;transform-box:fill-box;transform-origin:50% 0}.card .art svg .static,.card:hover .art svg .static,#dgGarland .slot{animation:none!important;transition:none!important;pointer-events:none}
.card .art svg .cs{transform-box:fill-box;transform-origin:50% 0}
@media (max-width:900px){.hero{min-height:auto;padding-top:clamp(290px,38vh,330px);text-align:center}.hero .wordmark{justify-content:center}.hero .tag{white-space:normal}.hero .lede{margin-left:auto;margin-right:auto}.hero .cta{justify-content:center}.hero .hint{text-align:center}}@media (max-height:520px) and (max-width:900px){.hero{padding-top:210px}}@media (max-width:400px){.hero .cta .btn{flex:1 1 100%}}
@media (min-height:1300px){.hero{min-height:auto;padding-top:180px;padding-bottom:140px}}

/* Cards */
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:40px;max-width:800px}
.card{cursor:pointer;background:var(--card);border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--sh-card);padding:0 20px 24px;text-align:center;display:flex;flex-direction:column;align-items:center;transition:border-color .15s,box-shadow .2s;position:relative;overflow:hidden}
.card:hover{border-color:#dbe6f5;box-shadow:var(--sh-float)}
.card.on{border-color:var(--cta);box-shadow:0 0 0 1px var(--cta),var(--sh-card)}
.card .art{position:relative;height:176px;width:100%;display:flex;justify-content:center;align-items:flex-start;cursor:pointer}
.card .art>img{height:92px;margin-top:2px;position:relative;z-index:1;width:auto;object-fit:contain;transform-origin:50% 0;filter:drop-shadow(0 8px 8px rgba(27,36,64,.16))}

.card h3{font-size:21px;margin-top:8px}
.card .pill{margin-top:6px}
.card p{font-size:14.5px;color:var(--muted);margin-top:12px;flex:1}
.card .btn{margin-top:18px}
@media (max-width:760px){.grid{grid-template-columns:1fr 1fr}}@media (max-width:520px){.grid{gap:12px}.card{padding:16px 12px}.card .art{height:150px}.card .art svg{width:140px;height:150px}.card .art>img{height:80px}.card h3{font-size:16px}.card p{font-size:14px}.card .btn-line{padding:13px 12px;font-size:13px;white-space:normal;line-height:1.25;max-width:100%}}
.suggest{margin-top:28px;font-size:15px;color:var(--muted)}.suggest a{color:var(--blue);font-weight:600}

/* Lists */
.list{list-style:none;padding:0;margin:32px 0 0;display:flex;flex-direction:column;gap:12px;max-width:var(--col)}
.list li{display:flex;gap:12px;font-size:16px;color:var(--ink)}
.list-ic{display:grid;grid-template-columns:1fr 1fr;gap:12px;max-width:800px}.list-ic li{align-items:center;gap:14px;padding:14px 16px;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--sh-hair);font-size:15px}.list-ic li::before{display:none}@media (max-width:640px){.list-ic{grid-template-columns:1fr}}
.list li::before{content:"";flex:none;width:18px;height:18px;margin-top:4px;border-radius:50%;background:var(--blue);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zm-1.2 14.6-4.2-4.2 1.4-1.4 2.8 2.8 5.8-5.8 1.4 1.4z'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zm-1.2 14.6-4.2-4.2 1.4-1.4 2.8 2.8 5.8-5.8 1.4 1.4z'/%3E%3C/svg%3E") center/contain no-repeat}
.four{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:36px;max-width:800px}
.four .f{background:#fff;border:1px solid var(--line);border-radius:var(--r-card);padding:22px 22px 24px;box-shadow:var(--sh-card);transition:transform .25s,box-shadow .25s}.four .f:hover{transform:translateY(-2px);box-shadow:var(--sh-raise)}
.four .fh{display:flex;align-items:center;gap:12px}.four h3{font-size:20px}.four p{margin-top:12px;font-size:15px;color:var(--muted)}
.ib{flex:none;width:40px;height:40px;border-radius:12px;background:var(--tint);color:var(--blue);display:inline-flex;align-items:center;justify-content:center;border:1px solid #e3eaff}.ib .ic{width:20px;height:20px}
kbd{display:inline-block;font:600 12px var(--sans);color:var(--ink);background:#fff;border:1px solid var(--line);border-bottom-width:2px;border-radius:6px;padding:1px 6px;margin:0 1px;vertical-align:1px}
@media (max-width:640px){.four{grid-template-columns:1fr}}
.code{margin-top:20px;max-width:800px;background:var(--ink);color:#eef3fb;border:1px solid #232c3d;border-radius:16px;overflow:hidden;font:14px/1.7 ui-monospace,SFMono-Regular,Menlo,monospace}.code .ch{display:flex;align-items:center;gap:10px;padding:10px 14px;background:#0d1020;border-bottom:1px solid #1e2537;font:500 12px var(--sans);color:#8b93a7}.code .dots{display:inline-flex;gap:6px;margin-right:4px}.code .dots i{width:10px;height:10px;border-radius:50%;background:#2a3147}.code .ti{width:14px;height:14px}.code .copy{margin-left:auto;font:600 12px var(--sans);color:#c9d2e6;background:#1a2033;border:1px solid #2a3147;border-radius:8px;padding:5px 10px;min-height:36px;min-width:44px;cursor:pointer}.code .copy:hover{background:#242c44}.code .cb{padding:16px 18px;overflow-x:auto;white-space:nowrap}
.code .c{color:#8ea0c4}

/* Booking demo */
.book{margin-top:36px;max-width:800px;background:#fff;border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--sh-card);display:grid;grid-template-columns:1.1fr .9fr;overflow:hidden}
.book>div{padding:26px}.book .side{border-left:1px solid var(--line);background:var(--tint)}
.book .h4{display:flex;align-items:center;gap:8px;font:600 13px var(--sans);letter-spacing:.02em;color:var(--faint);text-transform:uppercase;margin:0 0 14px}.book .h4 .hi{width:16px;height:16px;color:var(--blue)}
.book label{display:block;font:600 13px var(--sans);color:var(--muted);margin-bottom:8px}
.book input{width:100%;font:inherit;font-size:16px;padding:12px 14px;border-radius:12px;border:1px solid var(--line);background:#fff;color:var(--ink);outline:none;box-shadow:var(--sh-hair)}
.book input:focus{border-color:var(--cta);box-shadow:0 0 0 3px #0335fc1f}
.book .row{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0 18px}
.chip{display:inline-flex;align-items:center;gap:7px;padding:12px 15px;border-radius:99px;border:1px solid #e8e8e8;background:#fff;font:500 13px var(--sans);color:var(--muted);cursor:pointer;box-shadow:var(--sh-hair)}
.chip.on{border-color:var(--cta);color:var(--cta);background:#fff}.chip .ci{width:15px;height:15px;opacity:.85}
.book ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.book li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;border-radius:12px;background:#fff;border:1px solid var(--line);font-size:14px;box-shadow:var(--sh-hair)}
.book li b{font-weight:600;color:var(--ink)}.book li span{color:var(--faint);white-space:nowrap}.book li .done{color:#1e9e4a;font-weight:600}
.book li.ex{opacity:.55;border-style:dashed;box-shadow:none}
.book .note{margin-top:14px;font-size:13px;color:var(--faint);line-height:1.5}
@media (max-width:700px){.book{grid-template-columns:1fr}.book .side{border-left:0;border-top:1px solid var(--line)}}
/* Pricing */
.plans{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:40px;max-width:800px}
.plan{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:var(--r-card);padding:28px;box-shadow:var(--sh-card)}
.plan.hi{border-color:var(--cta);box-shadow:0 0 0 1px var(--cta),var(--sh-float)}
.plan .tier{font:800 24px var(--display);letter-spacing:-.02em}.plan.hi .tier{color:var(--blue)}.plan{position:relative}.tag-pick{position:absolute;top:-13px;left:24px;background:var(--cta);color:#fff;font:600 12px var(--sans);letter-spacing:.02em;padding:5px 12px;border-radius:99px}.plan .price s{font:500 22px var(--sans);color:var(--faint);text-decoration:line-through;margin-right:10px;letter-spacing:0}
.plan .price{font-family:var(--display);font-weight:600;letter-spacing:-.03em;font-size:44px;line-height:1;margin-top:14px}
.plan .price small{font:400 14px var(--sans);color:var(--faint);margin-left:8px}
.plan .inr{font-size:14px;color:var(--faint);margin-top:6px}
.plan ul{list-style:none;padding:0;margin:20px 0 24px;display:flex;flex-direction:column;gap:8px;font-size:14.5px;color:var(--muted)}
.plan ul li{display:grid;grid-template-columns:12px 1fr;gap:6px}.plan ul li::before{content:"·";color:var(--faint)}
.plan .btn{width:100%;margin-top:auto}
.fine{margin-top:22px;font-size:14px;color:var(--muted);max-width:66ch}
@media (max-width:640px){.plans{grid-template-columns:1fr}}

/* Waitlist */
.wl{display:flex;gap:10px;margin-top:22px;max-width:var(--col)}
.wl input{flex:1;font:inherit;font-size:16px;padding:12px 16px;border-radius:99px;border:1px solid var(--line);background:#fff;color:var(--ink);outline:none;min-width:0;box-shadow:var(--sh-hair)}
.wl input:focus{border-color:var(--cta);box-shadow:0 0 0 3px #0335fc1f}
.msg{margin-top:10px;font-size:14px;color:var(--muted);min-height:20px}.msg.ok{color:#1E7A43}.msg.err{color:#B3261E}
@media (max-width:520px){.wl{flex-direction:column}}

/* FAQ */
.faq{max-width:var(--col);margin-top:28px}
details{border-top:1px solid var(--line)}details>p{padding-bottom:16px}details:last-child{border-bottom:1px solid var(--line)}
summary{cursor:pointer;font-weight:600;font-size:16px;list-style:none;padding:16px 0;display:flex;justify-content:space-between;gap:16px}summary::-webkit-details-marker{display:none}summary::after{content:"+";color:var(--cta)}details[open] summary::after{content:"–"}
details p{margin-top:10px;font-size:15px;color:var(--muted)}

footer{padding:40px 0 64px;font-size:14px;color:var(--faint);border-top:1px solid var(--line)}
.fbrand{display:flex;align-items:center;gap:10px;font:800 18px var(--display);color:var(--ink);letter-spacing:-.02em;margin-bottom:10px}
.top a{display:inline-flex;align-items:center;gap:11px;font:800 22px var(--display);letter-spacing:-.025em;color:var(--ink);line-height:1}.top img{width:34px;height:34px;display:block}
footer nav{display:flex;gap:6px 18px;flex-wrap:wrap;margin-top:8px}footer nav a{display:inline-block;padding:12px 0;line-height:20px}footer .col a[href^="mailto:"]{display:inline-block;padding:13px 0}footer a:hover{color:var(--ink)}
.toast{position:fixed;left:50%;bottom:26px;transform:translate(-50%,16px);opacity:0;background:var(--ink);color:#fff;padding:11px 16px;border-radius:999px;font-size:14px;z-index:100;transition:.25s;pointer-events:none}.toast.show{transform:translate(-50%,0);opacity:1}

/* Sub pages */
.top{padding-block:28px 0}
.legal{max-width:640px;padding-block:40px 80px}.legal p a:not(.btn){display:inline;padding:0}.legal li a:not(.btn){display:inline-block;padding:10px 0}.legal a:not(.btn),.press a:not(.btn){color:var(--blue);text-decoration:underline;text-underline-offset:3px}.legal a.btn{display:inline-flex;align-items:center;justify-content:center;padding:13px 22px;min-height:44px;text-decoration:none}.legal a.btn-blue{color:#fff}.legal a.btn-blue:hover{color:#fff}.legal a.btn-white{color:var(--blue)}.legal h1{line-height:1.06;letter-spacing:-.02em;text-wrap:balance}.legal h2{line-height:1.25}.legal h1{font-size:clamp(30px,7.5vw,44px);margin-bottom:20px}.legal h2{font-size:24px;margin:32px 0 10px}.legal p,.legal li{color:var(--muted);font-size:16px;margin-bottom:10px}
.keybox{font:600 22px ui-monospace,Menlo,monospace;letter-spacing:.06em;background:#fff;border:1px solid var(--line);color:var(--ink);padding:18px 20px;border-radius:12px;text-align:center;margin:24px 0;user-select:all}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}


.card .art .cord{width:2.4px;height:58px;background:linear-gradient(90deg,#5a3a1c,#8a5a2b,#4a2f16);position:relative;z-index:0}.card .art .cord::after{content:'';position:absolute;left:0;top:100%;width:2.4px;height:30px;background:linear-gradient(90deg,#5a3a1c,#8a5a2b,#4a2f16)}
.card .art .beads{display:flex;flex-direction:column;align-items:center;gap:2px;margin:-4px 0 0;position:relative;z-index:1}
.card .art .beads i,.card .art .beads b{display:block;border-radius:50%}.card .art .beads i{width:7px;height:7px;background:radial-gradient(circle at 35% 30%,#fff,#e9ebf2 60%,#9ea3b3)}.card .art .beads b{width:10px;height:10px;background:radial-gradient(circle at 35% 30%,#6d8cff,#2140bf 55%,#101f6a)}
.pill{min-height:2.6em}.sub.err{color:#b42318}.card .art .emoji{font-size:62px;line-height:1;transform-origin:50% 0;margin-top:-2px;position:relative;z-index:1}
@keyframes sway{0%,100%{transform:rotate(0)}25%{transform:rotate(-6deg)}60%{transform:rotate(4deg)}}

.card .art{cursor:pointer;background:none;border:0;width:100%;font:inherit;color:inherit;text-align:inherit;display:flex;justify-content:center;align-items:flex-start;padding:0}.card .art:focus-visible{outline:2px solid var(--cta);outline-offset:4px;border-radius:12px}.book li .done{color:#177a3a}

.page{min-height:100vh;display:flex;flex-direction:column}.page>main,.page>.legal{flex:1 0 auto}.legal{max-width:min(760px,100%)}.legal code{font:.92em/1.5 ui-monospace,Menlo,monospace;background:var(--tint);padding:1px 5px;border-radius:5px}
@media (max-width:640px){
 #gallery{gap:14px}
 #gallery .card{padding:16px 13px 18px}
 #gallery .card .art{height:140px;overflow:hidden;align-items:center}
 #gallery .card .art svg{height:100%;width:auto;max-width:100%}
 #gallery .card h3{font-size:15.5px;margin-top:12px;line-height:1.2}
 #gallery .card .pill{margin-top:6px;font-size:10px;letter-spacing:.03em}
 #gallery .card p{font-size:13px;line-height:1.5;margin-top:10px;margin-bottom:2px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
 #gallery .card .btn-line{margin-top:14px}
}
