@font-face{font-family:Noto Sans;src:url('/assets/NotoSans-Regular.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:Noto Sans;src:url('/assets/NotoSans-Bold.ttf') format('truetype');font-weight:700;font-display:swap}
:root{--yellow:#C4E60A;--ink:#121512;--paper:#F7F8F2;--muted:#AAB1A5;--line:#343B30;--surface:#121512;--cycle:1800ms;--symbol:url('/assets/loveset-symbol.png');color-scheme:dark}
*{box-sizing:border-box} [hidden]{display:none!important}body{margin:0;background:var(--ink);color:var(--paper);font-family:'Noto Sans',Arial,sans-serif;-webkit-font-smoothing:antialiased}button,input{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible{outline:3px solid var(--yellow);outline-offset:4px}h1,h2,p{margin:0}.page{min-height:100svh;max-width:1800px;margin:auto;display:flex;flex-direction:column;padding:40px 6.25vw 26px}header{display:flex;justify-content:space-between;align-items:center;gap:28px}.logo{width:240px;aspect-ratio:1842 / 342;position:relative;overflow:hidden;flex:none}.logo img{position:absolute;max-width:none;height:auto;width:117.91530945%;left:-9.06623236%;top:-56.72514620%}.eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:12px;white-space:nowrap}.eyebrow i{width:7px;height:7px;border-radius:50%;background:var(--yellow)}main{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:36px;padding:64px 0 70px;text-align:center}.hero{max-width:900px}h1{font-size:clamp(50px,5.2vw,76px);line-height:1.13;letter-spacing:-3.5px;font-weight:700}h1 span{color:var(--yellow)}.description{font-size:15px;line-height:1.75;color:var(--muted);max-width:540px;margin:25px auto 0}.signup{width:100%;max-width:620px;min-width:0}h2{font-size:23px;line-height:1.18;letter-spacing:-.5px;font-weight:700}.form-heading p{font-size:13px;line-height:1.7;margin:10px auto 24px;color:var(--muted)}label{display:block;text-align:left;font-size:12px;margin-bottom:10px}.form-row{display:grid;grid-template-columns:1fr auto;gap:8px}input{min-width:0;width:100%;height:56px;padding:0 18px;border:1px solid #434B3D;border-radius:6px;background:#20261E;color:#fff;font-size:15px}input::placeholder{color:var(--muted)}input[aria-invalid=true]{border-color:#F2AD9B}button[type=submit]{min-height:56px;min-width:224px;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 18px;border:1px solid var(--yellow);border-radius:6px;background:var(--yellow);color:var(--ink);font-size:14px;font-weight:700}button[type=submit]:hover{background:#B4D300;border-color:#B4D300}button[type=submit] span{font-size:21px;line-height:1}.form-note{font-size:11px;line-height:1.6;color:var(--muted);margin-top:12px}.form-error{font-size:13px;line-height:1.7;color:#F2AD9B;margin-top:18px}.form-error:focus-visible,#success-title:focus-visible{outline:2px solid var(--yellow);outline-offset:7px}footer{display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line);padding-top:20px;color:var(--muted);font-size:10px}.result{text-align:center;padding-bottom:12px}.result h2{font-size:30px;letter-spacing:-1px}.result>p{font-size:13px;line-height:1.8;color:var(--muted);margin-top:16px}.result .pending-label{font-size:15px;color:var(--paper);margin-top:10px}.result .confirmation-label{margin-top:24px;font-size:11px}.result .confirmation-email{font-size:15px;color:var(--paper);overflow-wrap:anywhere;margin-top:5px}.edit-email{padding:7px 0;margin-top:14px;border:0;border-bottom:1px solid currentColor;background:transparent;color:var(--paper);font-size:12px}
/* Owner-approved Rally: original scene, geometry and 1800 ms timing. */
.rally{width:256px;height:150px;margin:auto;display:grid;place-items:center}.rally .stage{width:230px;height:120px;position:relative;margin:0}.rally .ground{height:1px;background:var(--line);position:absolute;left:25px;right:25px;top:104px}.rally .ground:before,.rally .ground:after{content:'';position:absolute;top:-2px;width:5px;height:5px;border-radius:50%;background:var(--muted);opacity:.22}.rally .ground:before{left:20px}.rally .ground:after{right:9px}.rally .travel{position:absolute;left:23px;top:57px;width:48px;height:48px;animation:travel var(--cycle) linear infinite;will-change:transform}.rally .lift{width:48px;height:48px;animation:lift var(--cycle) infinite;will-change:transform}.rally .squash{width:48px;height:48px;animation:touch var(--cycle) infinite;transform-origin:50% 100%}.rally .ball{display:block;width:48px;height:48px;background:var(--yellow);mask:var(--symbol) center/135% no-repeat;-webkit-mask:var(--symbol) center/135% no-repeat;animation:spin var(--cycle) linear infinite;transform-origin:50% 50%;will-change:transform}.rally .shadow-travel{position:absolute;top:106px;left:33px;animation:travel var(--cycle) linear infinite}.rally .shadow{width:28px;height:4px;background:var(--paper);border-radius:50%;filter:blur(2px);animation:shadow var(--cycle) infinite}.rally .impact{position:absolute;left:29px;top:103px;width:37px;height:3px;border-radius:50%;background:var(--yellow);animation:impact var(--cycle) ease-out infinite;transform-origin:center}.rally .impact.right{left:175px;animation-delay:-900ms}
@keyframes travel{0%,100%{transform:translateX(0)}50%{transform:translateX(146px)}}
@keyframes lift{0%,50%,100%{transform:translateY(0);animation-timing-function:cubic-bezier(.16,.65,.35,1)}25%,75%{transform:translateY(-58px);animation-timing-function:cubic-bezier(.65,0,.84,.35)}}
@keyframes touch{0%,50%,100%{transform:scale(1.12,.88)}6%,44%,56%,94%{transform:scale(1,1)}}
@keyframes spin{0%,100%{transform:rotate(0deg)}50%{transform:rotate(180deg)}}
@keyframes shadow{0%,50%,100%{opacity:.18;transform:scaleX(1)}25%,75%{opacity:.04;transform:scaleX(.5)}}
@keyframes impact{0%{opacity:.7;transform:scaleX(.7)}15%{opacity:0;transform:scaleX(1.8)}100%{opacity:0;transform:scaleX(1.8)}}
/* Owner-approved Heart: original geometry; original WAAPI sequence in app.js. */
.heart .stage{height:178px;width:256px;position:relative;margin:0 auto 6px}.heart .ball-position{position:absolute;left:99px;top:62px;width:58px;height:58px}.heart .ball-squash{width:100%;height:100%;transform-origin:50% 100%}.heart .ball{width:100%;height:100%;background:var(--yellow);mask:var(--symbol) center/135% no-repeat;-webkit-mask:var(--symbol) center/135% no-repeat}.heart .check{position:absolute;left:155px;top:102px;width:24px;height:24px;border-radius:50%;background:var(--paper);color:var(--surface);display:grid;place-items:center;border:3px solid var(--surface)}.heart .check svg{width:13px;height:13px}.heart .halo{position:absolute;left:90px;top:53px;width:76px;height:76px;border-radius:50%;border:1px solid var(--yellow);opacity:0}.heart .shadow{position:absolute;left:111px;top:130px;width:34px;height:4px;border-radius:50%;background:var(--paper);opacity:.09;filter:blur(2px)}
@media(max-width:700px){.page{padding:26px 24px 22px}header{gap:18px}.logo{width:210px}.eyebrow{font-size:10px;gap:7px}.eyebrow i{width:6px;height:6px}main{padding:62px 0 52px;gap:38px}h1{font-size:44px;line-height:1.16;letter-spacing:-2.2px}.description{font-size:13px;line-height:1.85;margin-top:25px}.form-heading p{font-size:12px;max-width:300px;line-height:1.7;margin:12px auto 24px}label{font-size:11px}.form-row{display:flex;flex-direction:column}input,button[type=submit]{height:54px;min-height:54px}button[type=submit]{width:100%}.form-note{font-size:10px}footer{font-size:9px;padding-top:16px}.result h2{font-size:28px}.result>p{font-size:12px}}
@media(max-width:359px){.page{padding-left:18px;padding-right:18px}header{flex-wrap:wrap;gap:16px}h1{font-size:39px}.eyebrow{margin-left:auto}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.rally .travel,.rally .shadow-travel{transform:translateX(73px)}.rally .shadow{opacity:.1}.rally .impact{display:none}}
/* Privacy links and standalone notice; the approved landing layout is retained. */
.privacy-link{color:inherit;text-decoration:underline;text-underline-offset:3px}.privacy-link:hover{color:var(--paper)}.privacy-link:focus-visible,.privacy-home:focus-visible{outline:3px solid var(--yellow);outline-offset:4px}.footer-links{display:inline-flex;align-items:baseline;gap:18px}.privacy-main{width:100%;max-width:760px;margin:0 auto;align-items:stretch;justify-content:flex-start;gap:0;text-align:left;padding:64px 0 72px}.privacy-back{display:inline-block;margin-bottom:30px;color:var(--muted);font-size:13px;line-height:1.8}.privacy-content h1{font-size:44px;line-height:1.2;letter-spacing:-1.5px}.privacy-content .privacy-intro{margin-top:24px;font-size:17px;line-height:1.8;color:var(--paper)}.privacy-content section{margin-top:32px}.privacy-content h2{font-size:20px;line-height:1.4;letter-spacing:-.3px}.privacy-content section p{margin-top:12px;color:var(--muted);font-size:14px;line-height:1.9;overflow-wrap:anywhere}
@media(max-width:700px){.footer-links{gap:12px}.privacy-main{padding:48px 0 52px}.privacy-content h1{font-size:36px;letter-spacing:-1px}.privacy-content .privacy-intro{font-size:15px}.privacy-content h2{font-size:18px}.privacy-content section p{font-size:13px}}
