:root{font-family:PingFang SC,Noto Sans SC,Microsoft YaHei,sans-serif;color:#272229;background:#f1e9eb;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}html,body,#root{min-height:100%;overflow-x:hidden}body{margin:0;min-width:320px;min-height:100vh;-webkit-font-smoothing:antialiased;background:#f1e9eb}button,input{font:inherit}button{-webkit-tap-highlight-color:transparent}.mobile-prototype{width:100vw;max-width:430px;height:min(100dvh,844px);margin-inline:auto;overflow:hidden;position:relative}.app-shell{position:relative;height:100%;overflow:hidden;padding:22px 20px 18px;background:snow}.topline{display:flex;align-items:center;justify-content:flex-start;height:28px;position:relative;z-index:2}.icon-button{width:34px;height:34px;display:grid;place-items:center;border:1px solid #2b252c;border-radius:50%;color:#2b252c;background:snow;cursor:pointer}.decorative-layer{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;color:#d94e93;will-change:transform}.flower,.heart,.sparkle,.confetti{position:absolute}.flower,.heart,.sparkle,.confetti{will-change:transform,opacity}.flower{color:#e6a2bc;font-size:22px}.heart{color:#d34f9c;font-size:10px}.sparkle{color:#d494b0;font-size:18px}.confetti{color:#e7adca;font-size:20px}.flower-a{top:111px;left:14px;transform:rotate(-16deg)}.flower-c{top:254px;right:7px;color:#f0b4c9;font-size:16px;transform:rotate(19deg)}.flower-d{bottom:226px;left:53px;color:#efb2ca;font-size:17px;transform:rotate(-10deg)}.flower-e{right:68px;bottom:112px;color:#efc1d4;font-size:18px;transform:rotate(14deg)}.flower-b{right:15px;bottom:166px;transform:rotate(21deg)}.heart-a{top:154px;right:35px}.heart-b{left:22px;bottom:205px}.heart-c{right:52px;bottom:80px}.heart-d{top:312px;left:13px;color:#e995bc;font-size:8px}.heart-e{top:66px;left:91px;color:#ed9fc1;font-size:8px}.heart-f{right:82px;bottom:165px;color:#e995bc;font-size:8px}.heart-g{bottom:274px;left:27px;color:#e59abb;font-size:7px}.sparkle-a{left:42px;bottom:128px}.sparkle-b{top:87px;right:45px;color:#efb7cf;font-size:14px}.sparkle-c{right:26px;bottom:212px;color:#e9a5c3;font-size:15px}.sparkle-d{bottom:96px;left:93px;color:#edb4ca;font-size:13px}.confetti-a{right:25px;bottom:104px;transform:rotate(-18deg)}.confetti-b{top:67px;right:82px;color:#edb2c9;font-size:15px;transform:rotate(12deg)}.invite-card{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;width:100%;margin-top:58px;padding:31px 19px 26px;border:1.5px solid #2c2930;border-radius:19px 24px 18px 25px;background:#fff;box-shadow:7px 8px #2c2930;text-align:center}.invite-card.step-0{min-height:450px;justify-content:center}.invite-card.step-1{margin-top:39px;min-height:537px}.invite-card.step-2{margin-top:31px;min-height:572px}.invite-card.step-3{margin-top:35px;min-height:538px}.icon-badge{display:grid;place-items:center;width:54px;height:54px;margin-bottom:20px;border:2px solid #252027;border-radius:14px;color:#be2c84;background:#ef72c0;box-shadow:inset 0 -3px #381a3021}.icon-badge.red{color:#fdba76;background:#d83a52}.icon-badge.lavender{color:#772e78;background:#dc9be9}.eyebrow{margin:0 0 9px;color:#c8589c;font-size:11px;font-weight:900;letter-spacing:.12em}h1,h2{margin:0;font-weight:900;letter-spacing:-.065em}h1{font-size:clamp(31px,8.9vw,38px);line-height:1.15}h2{font-size:clamp(25px,7vw,31px);line-height:1.2}.subcopy{max-width:252px;margin:13px auto 0;color:#8f828e;font-size:12px;line-height:1.55}.button-row{display:grid;grid-template-columns:1.3fr 1fr;align-items:center;gap:12px;width:100%;margin-top:31px}.primary-button,.secondary-button{min-height:43px;display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1.5px solid #262129;border-radius:999px;font-size:13px;font-weight:900;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,background .18s ease}.primary-button{color:#291f28;background:#e95db2;box-shadow:0 4px #2d2630}.secondary-button{color:#3e343d;background:#fff}.button-row.has-hesitated{grid-template-columns:1.7fr .85fr}.tease-button.shrunk{align-self:center;min-height:31px;height:31px;width:88%;padding:0 6px;font-size:10px}.tease-button.shrunk-2{min-height:28px;height:28px;width:76%;font-size:9.5px}.tease-button.shrunk-3{min-height:25px;height:25px;width:66%;font-size:9px}.tease-button.shrunk-4{min-height:22px;height:22px;width:58%;font-size:8px}.home-yes-button{font-size:14px}.button-row.has-hesitated .home-yes-button{min-height:49px}.primary-button:hover,.secondary-button:hover,.food-option:hover{transform:translateY(-2px)}.primary-button:active{transform:translateY(2px);box-shadow:0 1px #2d2630}.full{width:100%;margin-top:22px}.form-stack{width:100%;margin-top:20px;text-align:left}.field-label{display:flex;align-items:center;gap:4px;margin:0 0 5px 4px;color:#a14b85;font-size:10px;font-weight:900;letter-spacing:.08em}.field-wrap{display:flex;align-items:center;gap:8px;height:44px;padding:0 11px;margin-bottom:13px;border:1.5px solid #332c33;border-radius:11px;background:snow;color:#c8589c}.field-wrap input{min-width:0;flex:1;border:0;outline:0;color:#332c33;background:transparent;font-size:13px;font-weight:700}.food-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;width:100%;margin-top:19px}.food-option{min-height:70px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:7px 3px;border:1.5px solid #332c33;border-radius:12px;color:#443841;background:snow;text-align:center;cursor:pointer;transition:transform .18s ease,background .18s ease,box-shadow .18s ease}.food-option svg{color:#c8589c}.food-option span{font-size:12px;font-weight:900;line-height:1.1}.food-option small{color:#a897a2;font-size:8px;font-weight:900;letter-spacing:.04em;line-height:1.1}.food-option.selected{border-color:#332c33;background:#ed9fd0;box-shadow:3px 3px #332c33}.food-option.selected svg{color:#78295f}.summary-card{width:100%;margin-top:22px;padding:12px 11px 10px;border:1.5px solid #332c33;border-radius:17px 13px 19px 14px;background:#ffd9ec;box-shadow:4px 5px #332c33}.summary-card-top{display:flex;align-items:center;justify-content:space-between;padding:0 3px 8px;color:#b4538f}.summary-card-top span{font-size:9px;font-weight:900;letter-spacing:.17em}.summary-card-top svg{color:#cf4c96}.summary-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;width:100%}.summary-item{display:flex;flex-direction:column;align-items:flex-start;min-width:0;padding:10px;border:1px solid #332c33;border-radius:9px;background:snow;text-align:left}.summary-item span{color:#bd649e;font-size:8px;font-weight:900;letter-spacing:.14em}.summary-item strong{margin-top:4px;overflow:hidden;color:#372a34;font-size:13px;font-weight:900;text-overflow:ellipsis;white-space:nowrap}.full-item{grid-column:1 / -1}.summary-card-note{margin:9px 0 0;color:#a06b8e;font-size:10px;font-weight:800}.location-note{display:flex;align-items:center;gap:5px;margin-top:14px;color:#9e8393;font-size:11px;font-weight:700}.location-note svg{color:#d34892}.bottom-meta{position:absolute;z-index:2;right:20px;bottom:13px;left:20px;display:flex;flex-direction:column;align-items:center;gap:6px}.progress{display:flex;align-items:center;gap:6px}.progress span{width:5px;height:5px;border-radius:50%;background:#dfc6d3}.progress span.active{width:18px;border-radius:5px;background:#d9509c}.progress span.done{background:#d990ba}.footer-line{display:inline-flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:7px;min-height:16px}.swipe-hint,.notice{display:inline-flex;align-items:center;gap:4px;color:#ac8e9f;font-size:10px;font-weight:700}.swipe-hint svg{color:#d34f9c}.notice{color:#b34181}.maker-line{color:#8e7788;font-size:9px;font-weight:900;letter-spacing:.08em}.maker-line:before{content:"·";margin-right:7px;color:#d9b2c9}.icp-link{color:#9a8291;font-size:9px;font-weight:800;text-decoration:none}.icp-link:before{content:"·";margin-right:7px;color:#d9b2c9}.final-copy{max-width:270px}.home-page{min-height:100dvh;padding:24px clamp(22px,5vw,74px) 22px;color:#f7f0f4;background:#17141c;font-family:Space Grotesk,PingFang SC,sans-serif}.home-topline,.home-footer{display:flex;justify-content:space-between;flex-wrap:wrap;gap:20px;color:#a89ba8;font-size:10px;font-weight:700;letter-spacing:.16em;text-transform:uppercase}.home-hero{display:grid;grid-template-columns:minmax(0,.9fr) minmax(320px,1.1fr);align-items:center;max-width:1260px;min-height:calc(100dvh - 92px);margin:0 auto}.home-copy{position:relative;z-index:1;max-width:600px}.home-kicker,.admin-kicker{margin:0 0 18px;color:#ff77ba;font-size:10px;font-weight:800;letter-spacing:.19em}.home-copy h1{margin:0;font-size:clamp(62px,9.8vw,148px);line-height:.88;letter-spacing:-.09em;font-weight:800}.home-copy h1 em{color:#ff72b5;font-style:normal}.home-intro{max-width:360px;margin:32px 0 0;color:#bcb0ba;font-size:14px;line-height:1.8}.home-links{display:flex;flex-wrap:wrap;gap:12px;margin-top:34px}.home-links a{display:inline-flex;align-items:center;gap:10px;min-height:42px;padding:0 16px;border:1px solid #524450;border-radius:999px;color:#f9eef4;font-size:12px;font-weight:800;text-decoration:none;transition:border-color .2s ease,background .2s ease,transform .2s ease}.home-links a:first-child{border-color:#ff72b5;color:#17141c;background:#ff72b5}.home-links a:hover{transform:translateY(-2px);border-color:#ff72b5}.home-orbit{position:relative;min-height:560px}.three-scene{position:absolute;top:0;right:0;bottom:0;left:0;min-height:560px}.three-scene:after{position:absolute;top:18%;right:12%;bottom:18%;left:12%;border:1px solid rgba(255,117,184,.16);border-radius:50%;content:"";transform:rotate(-19deg) scaleY(.46);box-shadow:0 0 100px #ff65ae1f}.orbit-label{position:absolute;right:10%;bottom:13%;color:#e5c9da;font-size:9px;font-weight:800;letter-spacing:.18em}.home-footer{max-width:1260px;margin:0 auto;padding-top:12px;border-top:1px solid #332d38;letter-spacing:.08em;text-transform:none}.home-icp{color:#a89ba8;font-size:9px;font-weight:700;letter-spacing:.04em;text-decoration:none}.home-icp:hover{color:#ff77ba}.site-footer{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:10px;color:#9d8997;font-size:10px;font-weight:700}.site-footer a{color:inherit;text-decoration:none}.site-footer a:hover{color:#d74f9c;text-decoration:underline}.admin-page{min-height:100dvh;color:#2a202a;background:#f4edf0;font-family:Space Grotesk,PingFang SC,sans-serif}.admin-site-footer{padding:0 20px 24px}.admin-header{display:flex;align-items:center;justify-content:space-between;padding:24px clamp(20px,5vw,70px);border-bottom:1px solid #dfd0d8}.admin-brand{color:#2b202b;font-size:12px;font-weight:900;letter-spacing:.16em}.admin-header-note{margin-left:12px;color:#a58d9c;font-size:9px;letter-spacing:.14em}.admin-logout{border:0;color:#a15a82;background:transparent;font-size:11px;font-weight:800;cursor:pointer}.admin-content{max-width:1180px;margin:0 auto;padding:clamp(34px,7vw,84px) clamp(20px,5vw,70px)}.admin-heading{display:flex;align-items:end;justify-content:space-between;gap:22px;margin-bottom:35px}.admin-heading h1,.admin-login-card h1{margin:0;color:#28202a;font-size:clamp(38px,6vw,74px);line-height:.96;letter-spacing:-.08em}.admin-heading p:not(.admin-kicker){margin:14px 0 0;color:#998796;font-size:13px}.admin-count{display:flex;flex-direction:column;align-items:end;color:#a68196}.admin-count strong{color:#d74f9c;font-size:44px;line-height:.9;letter-spacing:-.07em}.admin-count span{margin-top:7px;font-size:9px;font-weight:900;letter-spacing:.18em}.admin-grid{display:grid;grid-template-columns:minmax(260px,.7fr) minmax(0,1.3fr);gap:18px}.create-card,.invite-list-card{padding:24px;border:1px solid #decdd7;border-radius:18px;background:#fffcfdad}.card-label{display:flex;align-items:center;gap:7px;color:#bd6394;font-size:9px;font-weight:900;letter-spacing:.16em}.create-card h2{margin:36px 0 24px;font-size:28px;letter-spacing:-.06em}.create-card form{display:grid;gap:8px}.create-card label{margin-top:8px;color:#907b89;font-size:10px;font-weight:800}.create-card label span{color:#ba9cae;font-weight:500}.create-card input,.admin-login-card input{height:46px;padding:0 13px;border:1px solid #cfbdc9;border-radius:10px;outline:0;color:#352735;background:snow;font-size:13px}.create-card input:focus,.admin-login-card input:focus{border-color:#d9509c;box-shadow:0 0 0 3px #d9509c1f}.admin-primary-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:45px;margin-top:16px;border:1px solid #332532;border-radius:999px;color:#261c25;background:#ed73b8;font-size:12px;font-weight:900;cursor:pointer}.admin-primary-button:disabled{cursor:wait;opacity:.6}.created-link{display:grid;gap:8px;margin-top:22px;padding:13px;border-radius:11px;background:#fbd8e9}.created-link span{color:#a36688;font-size:10px}.created-link strong{overflow-wrap:anywhere;color:#4c3344;font-size:11px}.created-link button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:31px;border:1px solid #b67398;border-radius:999px;color:#8b416b;background:transparent;font-size:11px;font-weight:800;cursor:pointer}.invite-list-card{min-height:360px}.invite-list{display:grid;gap:9px;margin-top:20px}.invite-row{display:grid;grid-template-columns:minmax(0,1fr) auto 34px;align-items:center;gap:12px;padding:15px 2px;border-bottom:1px solid #e8dce2}.invite-row>div:first-child{display:flex;flex-wrap:wrap;align-items:baseline;gap:9px;min-width:0}.invite-row strong{font-size:16px}.invite-row span{color:#aa91a0;font-size:11px}.invite-row button{display:grid;place-items:center;width:30px;height:30px;border:0;border-radius:50%;color:#9f557e;background:#f5d5e5;cursor:pointer}.status{color:#9b7b8e;font-size:11px;font-weight:800;text-align:right}.status-accepted{color:#bd4383}.admin-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:270px;color:#aa95a2;text-align:center}.admin-empty strong{color:#564150;font-size:15px}.admin-empty span{font-size:11px}.admin-error{margin-top:12px;padding:10px 12px;border-radius:9px;color:#a52e5f;background:#ffe0ea;font-size:11px}.admin-login-page{display:grid;align-content:start;justify-items:center;padding:30px 20px;background:#17141c}.admin-login-page .admin-brand{width:min(100%,420px);color:#fff1f7}.admin-login-page .admin-brand span{margin-left:12px;color:#a89ba8;font-size:9px;font-weight:700;letter-spacing:.14em}.admin-login-card{width:min(100%,420px);margin-top:clamp(80px,18vh,180px);padding:30px;border:1px solid #453443;border-radius:20px;color:#b8abb6;background:#211b25;box-shadow:16px 18px #312530}.admin-icon{display:grid;place-items:center;width:54px;height:54px;margin-bottom:26px;border-radius:16px;color:#271d25;background:#ff72b5}.admin-login-card h1{color:#fff3f8;font-size:38px}.admin-login-card>p:not(.admin-kicker){margin:13px 0 26px;color:#b8abb6;font-size:13px}.admin-login-card form{display:grid;gap:8px}.admin-login-card label{color:#e7c8d9;font-size:10px;font-weight:800}.admin-login-card input{border-color:#5a4354;color:#fff4f8;background:#17141c}.admin-login-card .admin-primary-button{color:#261c25}.admin-login-page .admin-site-footer{width:min(100%,420px);margin-top:28px;color:#a89ba8}.admin-login-page .admin-site-footer a:hover{color:#ff77ba}.missing-page{display:grid;place-items:center;align-content:center;min-height:100dvh;padding:30px;color:#2e252d;background:snow;text-align:center}.missing-page svg{color:#d64b95}.missing-page h1{margin:16px 0 8px;font-size:28px}.missing-page p{color:#9a8994;font-size:13px}.missing-site-footer{width:100%;margin-top:34px}@media(min-width:600px){body{display:grid;place-items:center;padding:24px}.mobile-prototype{width:390px;box-shadow:0 20px 60px #542d411f;border-radius:28px}}@media(max-width:760px){.home-page{padding:20px}.home-topline span:last-child{display:none}.home-hero{display:flex;flex-direction:column;align-items:stretch;min-height:calc(100dvh - 76px);padding-top:12vh}.home-copy h1{font-size:clamp(57px,17vw,88px)}.home-orbit{min-height:330px;margin-top:8px}.three-scene{min-height:330px}.three-scene:after{top:10%;right:10%;bottom:10%;left:10%}.orbit-label{bottom:7%}.home-footer{font-size:9px}.home-footer span:first-child{max-width:170px}.admin-grid{grid-template-columns:1fr}.admin-heading{align-items:start}.admin-count{padding-top:6px}}@media(min-width:600px){body:has(.home-page),body:has(.admin-page){display:block;padding:0}}@media(max-height:720px){.app-shell{padding-top:14px}.invite-card{margin-top:30px;padding-top:22px;padding-bottom:20px}.invite-card.step-0{min-height:420px}.invite-card.step-1,.invite-card.step-2,.invite-card.step-3{min-height:0}.bottom-meta{bottom:10px}}
