*{box-sizing:border-box} :root{--pink:#f7acc0;--cream:#fff5db;--ink:#4b1528;--wine:#791e3a;--lime:#deed98;--line:#4b152833}body{margin:0;background:var(--pink);color:var(--ink);font-family:Arial,Helvetica,sans-serif;font-size:18px;line-height:1.45;-webkit-font-smoothing:antialiased}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer;touch-action:manipulation}button:disabled{cursor:default;opacity:.45}button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid var(--wine);outline-offset:5px}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.background{position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:-1}.leo{position:absolute;background:#b5824f url('/leopard.svg') repeat;background-size:155px;box-shadow:inset 0 0 40px #3d201f26}.leo-one{height:500px;width:240px;border-radius:100px;right:-120px;top:-110px;transform:rotate(-32deg)}.leo-two{height:440px;width:190px;border-radius:100px;left:-150px;bottom:-125px;transform:rotate(-38deg)}.floating{position:absolute;animation:float 6s ease-in-out infinite}.star{font-size:100px;line-height:1;color:var(--wine)}.star-one{top:14%;left:5%;transform:rotate(15deg)}.star-two{right:5%;bottom:10%;color:#fff5db;font-size:120px;animation-delay:-2s}.heart{font-size:64px;right:11%;top:40%;color:var(--wine);animation-delay:-3s}.ring{border:13px solid #fff0d4;width:75px;height:75px;border-radius:50%;left:12%;bottom:15%;animation-delay:-1s}#demo{position:absolute;top:8px;left:0;right:0;text-align:center;font-size:14px;color:#632b3d}main{max-width:1040px;margin:auto;min-height:100svh;padding:42px 30px 38px;outline:none}.screen{animation:enter .38s cubic-bezier(.2,.8,.3,1) both}.home-head{text-align:center;position:relative;margin:20px auto 32px}.home-head h1,h1{font-size:clamp(44px,6.6vw,74px);line-height:1;letter-spacing:-3.5px;font-weight:900;margin:0;white-space:pre-line}.home-head p{font-size:20px;margin:18px 0 0}.home-head h1{display:inline-block;position:relative}.mini-spark{display:inline-block;color:var(--cream);font-size:46px;vertical-align:top;animation:spin 16s linear infinite;margin-left:10px}.home-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.mood-card{border:2px solid var(--ink);border-radius:28px;background:var(--cream);box-shadow:0 7px 0 var(--ink);padding:22px 23px 24px;text-align:left;min-height:355px;position:relative;transition:transform .2s,box-shadow .2s;overflow:visible;display:flex;flex-direction:column}.mood-card:nth-child(2){background:var(--lime);transform:rotate(2deg);z-index:1}.mood-card:nth-child(3){background:#ccbded;transform:rotate(-2deg)}.mood-card:hover{transform:translateY(-9px) rotate(-1deg);box-shadow:0 15px 0 var(--ink)}.mood-card:active{transform:translateY(5px);box-shadow:0 2px 0 var(--ink)}.mood-card strong{font-size:29px;line-height:1.06;letter-spacing:-1px;font-weight:800;display:block;margin-top:15px}.mood-card small{font-size:17px;line-height:1.4;display:block;margin-top:12px;padding-right:10px}.card-arrow{position:absolute;right:20px;bottom:16px;font-size:27px}.art{display:block;width:150px;height:140px;position:relative;margin:auto;transform-origin:center;animation:bob 4.5s ease-in-out infinite;filter:drop-shadow(0 8px 0 #4b15281c)}.mood-card:nth-child(2) .art{animation-delay:-1.5s}.mood-card:nth-child(3) .art{animation-delay:-3s}.mood-card:hover .art{animation:wiggle .4s ease-in-out infinite}.art svg{width:100%;height:100%;overflow:visible}.steam{animation:steam 2.4s ease-in-out infinite;transform-origin:center}.shoe-two{animation:step 1.8s ease-in-out infinite}.shoe-one{animation:step 1.8s -.9s ease-in-out infinite}.car-body{animation:car .8s ease-in-out infinite}.road{stroke-dasharray:12 10;animation:road 1.2s linear infinite}.home-bottom{position:relative;text-align:center;min-height:90px;margin:28px auto 0}.no-button{background:transparent;border:1.5px solid #792e484d;border-radius:40px;min-width:90px;min-height:48px;padding:10px 22px;font-size:18px;position:relative;transition:transform .18s;z-index:5}.no-hint{font-size:16px;min-height:24px;margin:12px 0 0}.shell{max-width:680px;margin:5px auto 0}.step-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;gap:20px}.back,.restart{background:transparent;border:0;padding:10px 0;font-size:18px;min-height:48px}.step-dots{display:flex;gap:5px;align-items:center}.step-dots span{height:6px;width:18px;border-radius:9px;background:#792e4833}.step-dots .done{background:var(--wine)}.step-dots .current{width:28px;background:var(--wine)}.heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:26px}.heading h1{font-size:clamp(42px,6vw,64px);letter-spacing:-2.8px}.step-art{font-size:65px;line-height:1;animation:float 5s ease-in-out infinite}.step-caption{font-size:18px;margin:15px 0 0;max-width:500px}.option-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.option{border:2px solid var(--ink);background:var(--cream);border-radius:18px;box-shadow:0 4px 0 var(--ink);min-height:92px;padding:17px 19px;display:flex;align-items:center;gap:12px;text-align:left;transition:transform .15s,background .15s;position:relative}.option:hover{transform:translateY(-3px);background:#fffbe9}.option.selected{background:var(--lime)}.option strong{font-size:21px;line-height:1.16;display:block;letter-spacing:-.5px}.option small{font-size:16px;display:block;margin-top:6px;line-height:1.4;font-weight:400}.option .check{width:23px;height:23px;border:1.5px solid var(--ink);border-radius:50%;flex-shrink:0;display:grid;place-items:center;font-size:15px;margin-left:auto}.option.selected .check{background:var(--ink);color:var(--cream)}.choice-number{font-size:20px;opacity:.6}.step-footer{margin-top:28px;display:flex;justify-content:flex-end}.primary{min-height:60px;min-width:190px;display:inline-flex;justify-content:space-between;align-items:center;gap:30px;border:2px solid var(--ink);box-shadow:0 5px 0 var(--ink);border-radius:18px;background:var(--wine);color:var(--cream);padding:15px 23px;font-size:21px;font-weight:700;transition:transform .15s,box-shadow .15s}.primary:hover:enabled{transform:translateY(-3px);box-shadow:0 8px 0 var(--ink)}.primary:active:enabled{transform:translateY(4px);box-shadow:0 1px 0 var(--ink)}.primary span{font-size:27px}.field{display:block}.field-label{display:block;font-size:18px;margin-bottom:10px}.field input,.field textarea{width:100%;padding:19px;border:2px solid var(--ink);border-radius:18px;background:var(--cream);font-size:22px;min-height:64px;box-shadow:0 4px 0 var(--ink)}.field textarea{min-height:155px;resize:vertical}.field-help{font-size:16px;margin-top:13px}.time-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.time-grid .option{min-height:62px;justify-content:center;padding:12px;font-size:21px}.time-grid .check{display:none}.time-grid .option strong{font-size:22px;letter-spacing:0}.date-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:25px}.date-card{min-height:105px;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:12px;text-align:center}.date-card strong{font-size:27px}.date-card small{font-size:16px;margin:0}.date-card .check{display:none}.ticket{background:var(--cream);border:2px solid var(--ink);border-radius:22px;padding:25px;box-shadow:0 7px 0 var(--ink);position:relative;overflow:hidden}.ticket-top{height:20px;background:url('/leopard.svg') repeat;background-size:140px;margin:-25px -25px 24px}.ticket-title{font-size:26px;font-weight:800;line-height:1.15;letter-spacing:-.6px;margin:0 0 20px}.ticket-row{padding:13px 0;border-top:1px dashed #791e3a44;display:flex;justify-content:space-between;align-items:start;gap:18px;font-size:18px}.ticket-row span{opacity:.75;min-width:76px}.ticket-row strong{font-weight:600;text-align:right;overflow-wrap:anywhere;min-width:0}.rating{font-size:18px;margin:23px 0 0;display:flex;align-items:center;justify-content:space-between;gap:12px}.rating strong{font-size:32px;white-space:nowrap}.review-quote{font-size:18px;margin:24px 0 0;text-align:center}.success{text-align:center;max-width:620px;margin:25px auto}.success h1{font-size:clamp(44px,6vw,64px)}.success .ticket{text-align:left;margin:30px 0}.success p{font-size:19px}.success .primary{margin:5px auto}.success-seal{width:130px;height:130px;border:2px solid var(--ink);box-shadow:0 5px 0 var(--ink);background:var(--lime);border-radius:50%;font-size:62px;display:grid;place-items:center;margin:0 auto 28px;animation:stamp .6s both}.error{font-size:18px;line-height:1.5;margin:18px 0 0;color:var(--wine)}.loading{font-size:24px;text-align:center;padding-top:28svh}.particle{position:fixed;top:50%;left:50%;font-size:30px;pointer-events:none;animation:burst 1s cubic-bezier(.1,.7,.6,1) forwards;color:var(--wine)}#particles{position:fixed;inset:0;pointer-events:none;z-index:20;overflow:hidden}.closed{text-align:center;padding:20svh 0}.closed .restart{display:block;margin:25px auto;text-decoration:underline}
@keyframes enter{from{opacity:0;transform:translateY(20px) scale(.975)}to{opacity:1;transform:none}}@keyframes float{0%,100%{translate:0 0;rotate:-8deg}50%{translate:0 -15px;rotate:8deg}}@keyframes bob{0%,100%{transform:translateY(0) rotate(-6deg)}50%{transform:translateY(-8px) rotate(5deg)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes wiggle{0%,100%{transform:rotate(-7deg) scale(1.04)}50%{transform:rotate(7deg) scale(1.04)}}@keyframes steam{0%,100%{opacity:.25;translate:0 0}50%{opacity:.85;translate:0 -8px}}@keyframes step{0%,100%{translate:0 0;rotate:0deg}50%{translate:0 -8px;rotate:8deg}}@keyframes car{0%,100%{translate:0 0}50%{translate:0 -2px}}@keyframes road{to{stroke-dashoffset:-44}}@keyframes burst{from{opacity:1;transform:translate(0,0) rotate(0)}to{opacity:0;transform:translate(var(--x),var(--y)) rotate(var(--r))}}@keyframes stamp{from{opacity:0;transform:scale(1.5) rotate(-30deg)}to{opacity:1;transform:scale(1) rotate(-12deg)}}
@media(min-width:1300px){main{padding-top:65px}.home-head{margin-bottom:45px}.mood-card{min-height:380px}.art{height:155px;width:175px}.home-cards{gap:24px}}@media(max-width:760px){main{padding:40px 20px 28px;max-width:530px}.home-head{margin:7px 0 25px;text-align:left}.home-head h1{font-size:48px;letter-spacing:-2.5px}.home-head p{font-size:18px;margin:12px 0 0}.mini-spark{font-size:37px;position:absolute;right:10px;top:8px}.home-cards{display:flex;flex-direction:column;gap:15px}.mood-card{min-height:118px;padding:20px 48px 20px 112px;border-radius:22px;justify-content:center}.mood-card:nth-child(2){transform:rotate(-1.5deg)}.mood-card:nth-child(3){transform:rotate(1deg)}.mood-card strong{font-size:25px;letter-spacing:-.8px;margin:0}.mood-card small{font-size:16px;margin-top:7px;padding:0;line-height:1.25}.art{position:absolute;left:10px;top:50%;margin:-43px 0 0;width:88px;height:86px}.card-arrow{bottom:18px;right:17px;font-size:24px}.home-bottom{margin:24px 0 0;min-height:75px}.no-button{min-height:46px;font-size:18px}.no-hint{font-size:16px;margin-top:9px}.leo-one{width:145px;right:-105px;top:-165px;height:430px}.leo-two{left:-155px;bottom:-240px}.star-one{font-size:50px;left:-10px;top:36%}.star-two{font-size:70px;right:-25px;bottom:7%}.heart{font-size:35px;right:5%;top:12%;display:none}.ring{left:-32px;bottom:25%;width:56px;height:56px;border-width:9px}.shell{margin-top:0}.step-header{margin-bottom:18px}.step-dots{gap:4px}.step-dots span{width:12px;height:5px}.step-dots .current{width:20px}.heading{margin-bottom:24px;gap:10px}.heading h1{font-size:43px;letter-spacing:-2px}.step-art{font-size:47px}.step-caption{font-size:18px}.option-grid{gap:12px;grid-template-columns:1fr}.option{min-height:76px;border-radius:18px;padding:17px}.option strong{font-size:22px}.option small{font-size:16px}.option .check{width:24px;height:24px}.step-footer{margin-top:26px}.primary{min-height:61px;font-size:22px;min-width:180px}.step-footer .primary{width:100%}.date-grid{grid-template-columns:repeat(4,1fr);gap:9px}.date-grid .option{padding:12px 5px;min-height:100px}.date-card strong{font-size:25px}.date-card small{font-size:16px}.time-grid{grid-template-columns:repeat(3,1fr)}.time-grid .option{min-height:59px;padding:12px}.field input,.field textarea{font-size:22px;padding:18px;min-width:0;max-width:100%}.field input[type=date]{appearance:none;-webkit-appearance:none;display:block;width:100%;min-height:67px}.ticket{padding:21px}.ticket-top{margin:-21px -21px 22px}.ticket-row{font-size:18px;gap:12px;flex-wrap:wrap}.ticket-row strong{text-align:left;flex-basis:100%}.ticket-row span{font-size:16px}.ticket-title{font-size:27px}.rating{font-size:17px}.rating strong{font-size:30px}.success{margin-top:15px}.success h1{font-size:44px;letter-spacing:-2px}.success .primary{width:100%;font-size:20px}.success .ticket{margin:25px 0}.success-seal{width:100px;height:100px;font-size:45px;margin-bottom:25px}#demo{font-size:13px;top:7px}}
@media(max-width:360px){main{padding-left:16px;padding-right:16px}.home-head h1{font-size:43px}.mood-card{padding-left:91px;padding-right:28px}.art{left:6px;width:74px}.mood-card strong{font-size:23px}.mood-card small{font-size:16px}.heading h1{font-size:39px}.date-grid{grid-template-columns:repeat(3,1fr)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.particle{display:none}}

/* The invitation comes before the activity chooser. */
.invite-screen{min-height:calc(100svh - 100px);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;max-width:760px;margin:auto;padding:15px 0}.invite-screen h1{font-size:clamp(44px,6vw,72px);line-height:1.06;letter-spacing:-3px;position:relative;z-index:1}.invite-heart{position:relative;width:150px;height:140px;display:grid;place-items:center;font-size:130px;line-height:1;color:var(--wine);filter:drop-shadow(0 8px 0 #4b152820);margin:0 0 32px;animation:bob 4s ease-in-out infinite}.invite-heart span{font-size:43px;position:absolute;right:-10px;top:0;color:var(--cream);animation:spin 12s linear infinite}.invite-arena{position:relative;width:min(100%,440px);height:220px;margin-top:34px}.invite-yes{position:absolute;left:12px;top:12px;width:190px;min-height:66px;font-size:25px}.invite-no{position:absolute;right:12px;top:12px;min-width:110px;min-height:66px;border:2px solid var(--ink);background:var(--cream);box-shadow:0 5px 0 var(--ink);border-radius:18px;font-size:23px;transition:left .16s ease,top .16s ease;touch-action:none}.invite-screen .no-hint{min-height:48px;margin:0;max-width:390px;font-size:18px}.home-head{margin-top:5px}.invite-yes:hover:enabled{transform:translateY(-3px)}
@media(max-width:760px){.invite-screen{min-height:calc(100svh - 80px);padding:15px 0}.invite-screen h1{font-size:clamp(38px,9.8vw,54px);letter-spacing:-1.9px}.invite-heart{font-size:105px;width:125px;height:115px;margin-bottom:30px}.invite-heart span{font-size:35px}.invite-arena{height:205px;max-width:380px;margin-top:28px}.invite-yes{left:4px;top:10px;width:165px;min-height:64px;font-size:25px}.invite-no{right:4px;top:10px;min-height:64px;min-width:100px;font-size:23px}.invite-screen .no-hint{font-size:18px}.home-head{margin-top:5px}}
@media(max-height:640px){.invite-heart{height:80px;font-size:85px;margin-bottom:18px}.invite-screen h1{font-size:40px}.invite-arena{height:180px;margin-top:20px}}
