/* BookMyLuck — quiet, editorial, one column. */
:root{--bg:#F7F9FD;--ink:#1B2440;--muted:#5B6480;--faint:#8A93AB;--blue:#2140BF;--blue-2:#1A34A0;--line:#D9E0F0;--card:#FFFFFF;--gold-a:#8A6A12;--gold-b:#E2C264;--cord:#8B5A2B;
 --serif:"Iowan Old Style","Palatino Linotype",Palatino,"Book Antiqua",Georgia,serif;--sans:system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,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(--serif);font-weight:400;margin:0;letter-spacing:-.005em}
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)}
.narrow{max-width:var(--col)}
section{padding:96px 0}
h2{font-size:clamp(34px,4vw,48px);line-height:1.1}
.sub{margin-top:14px;color:var(--muted);font-size:17px;max-width:62ch}
.btn{display:inline-flex;align-items:center;justify-content:center;padding:13px 24px;border-radius:999px;font:600 15px var(--sans);border:1px solid transparent;cursor:pointer;transition:background .15s,border-color .15s,transform .1s;white-space:nowrap}
.btn:active{transform:translateY(1px)}
.btn-blue{background:var(--blue);color:#fff}.btn-blue:hover{background:var(--blue-2)}
.btn-white{background:#fff;color:var(--ink);border-color:var(--line)}.btn-white:hover{border-color:#B9C4DD}
.btn-line{background:transparent;color:var(--blue);border-color:var(--blue);padding:9px 18px;font-size:14px}.btn-line:hover{background:rgba(33,64,191,.06)}
.pill{display:inline-block;font:600 11px var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);border:1px solid var(--line);border-radius:6px;padding:4px 9px;background:#fff}

/* 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}.narrow{max-width:min(var(--col),100%)}
.hero .wordmark{font-family:var(--serif);width:max-content;white-space:nowrap;font-size:clamp(48px,6.4vw,84px);line-height:1;letter-spacing:-.01em;--sx:50%;--sy:40%;background:radial-gradient(circle at var(--sx) var(--sy),#F7E7A8 0,#E2C264 18%,transparent 42%),linear-gradient(100deg,var(--gold-a) 0%,#C9A63C 45%,var(--gold-a) 100%);-webkit-background-clip:text;background-clip:text;color:transparent;padding-bottom:.08em}
.hero .tag{font-family:var(--serif);font-style:italic;font-size:clamp(20px,2.2vw,26px);color:var(--muted);margin-top:4px}
.hero .lede{margin-top:26px;font-size:17px;color:var(--ink);max-width:58ch}
.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:68px;height:150px;border-radius:40px;cursor:grab;z-index:3;touch-action:none}
.dg-handle:active{cursor:grabbing}
@keyframes wave{0%,100%{transform:rotate(0)}15%{transform:rotate(-38deg)}35%{transform:rotate(6deg)}55%{transform:rotate(-34deg)}75%{transform:rotate(4deg)}90%{transform:rotate(-20deg)}}
@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 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,#dgCharm .clapper,#dgCharm .wings,.cs .arm,.cs .clapper,.cs .wings{transform-box:view-box}
.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-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%}
.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 .cs{transform-box:fill-box;transform-origin:50% 0}
@media (max-width:900px){.hero{min-height:auto;padding-top:460px}}
@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{background:var(--card);border:1px solid var(--line);border-radius:14px;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:#B9C4DD;box-shadow:0 12px 30px -20px rgba(27,36,64,.35)}
.card.on{border-color:var(--blue);box-shadow:0 0 0 1px var(--blue)}
.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:hover .art img,.card:hover .art .emoji{animation:sway 1.6s ease-in-out}
.card h3{font-size:22px;margin-top:8px}
.card .pill{margin-top:8px}
.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{grid-template-columns:1fr}}
.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 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:32px 40px;margin-top:40px;max-width:800px}
.four h3{font-size:22px}.four p{margin-top:8px;font-size:15.5px;color:var(--muted)}
@media (max-width:640px){.four{grid-template-columns:1fr}}
.code{margin-top:24px;max-width:var(--col);background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px 18px;font:14px/1.7 ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--ink);overflow-x:auto}
.code .c{color:var(--faint)}

/* Booking demo */
.book{margin-top:36px;max-width:var(--col);background:#fff;border:1px solid var(--line);border-radius:14px;padding:22px}
.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:10px;border:1px solid var(--line);background:var(--bg);color:var(--ink);outline:none}
.book input:focus{border-color:var(--blue)}
.book .row{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0 18px}
.chip{padding:7px 12px;border-radius:999px;border:1px solid var(--line);background:#fff;font:500 13px var(--sans);color:var(--muted);cursor:pointer}
.chip.on{border-color:var(--blue);color:var(--blue)}
.book ul{list-style:none;margin:18px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}
.book li{display:flex;justify-content:space-between;gap:12px;padding:10px 12px;border-radius:10px;background:var(--bg);font-size:14px}
.book li b{font-weight:600}.book li span{color:var(--faint)}.book li .done{color:#1E7A43;font-weight:600}

/* Pricing */
.plans{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:40px;max-width:800px}
.plan{background:#fff;border:1px solid var(--line);border-radius:14px;padding:28px}
.plan.hi{border-color:var(--blue);box-shadow:0 0 0 1px var(--blue)}
.plan h3{font-size:24px}
.plan .price{font-family:var(--serif);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::before{content:"·";margin-right:8px;color:var(--faint)}
.plan .btn{width:100%}
.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 14px;border-radius:999px;border:1px solid var(--line);background:#fff;color:var(--ink);outline:none;min-width:0}
.wl input:focus{border-color:var(--blue)}
.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);padding:16px 0}details:last-child{border-bottom:1px solid var(--line)}
summary{cursor:pointer;font-weight:600;font-size:16px;list-style:none;display:flex;justify-content:space-between;gap:16px}summary::-webkit-details-marker{display:none}summary::after{content:"+";color:var(--faint)}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)}
footer nav{display:flex;gap:18px;flex-wrap:wrap;margin-top:8px}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:28px 0 0}.top a{font-family:var(--serif);font-size:22px}
.legal{max-width:640px;padding:40px 0 80px}.legal h1{font-size: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)}
.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)}}
