*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.grid{display:grid}:root{--ink: #33242d;--muted: #806b76;--pink: #ee5f91;--pink-dark: #d9477c;--line: rgba(86, 45, 64, .11);--paper: rgba(255, 255, 255, .76);--shadow: 0 22px 65px rgba(138, 68, 95, .15);color-scheme:light}*{box-sizing:border-box}html,body{width:100%;height:100%}html{overflow:hidden}body{margin:0;min-width:0;overflow:hidden;color:var(--ink);background:linear-gradient(145deg,#fffdfb,#fff3f7 48%,#f8f3ff);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;-webkit-tap-highlight-color:transparent}body:before{content:"";position:fixed;inset:0;z-index:100;pointer-events:none;opacity:.14;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.12'/%3E%3C/svg%3E")}button{color:inherit;font:inherit}button:focus-visible{outline:3px solid rgba(217,71,124,.28);outline-offset:3px}h1,h2,h3,p{margin-top:0}h1,h2{font-family:Georgia,Times New Roman,serif;font-weight:500;letter-spacing:-.045em}.ambient{position:fixed;inset:0;z-index:-1;overflow:hidden;pointer-events:none}.orb{position:absolute;border-radius:50%;filter:blur(4px)}.orb-one{width:26rem;height:26rem;left:-11rem;top:28%;background:#ffb5d13d}.orb-two{width:36rem;height:36rem;right:-18rem;top:4%;background:#b7a5f52b}.orb-three{width:22rem;height:22rem;left:45%;bottom:3%;background:#ffcba829}.float-heart{position:absolute;width:16px;height:16px;opacity:.2;background:linear-gradient(135deg,#ff9bbb,#ea5b91);transform:rotate(45deg);animation:drift 8s ease-in-out infinite}.float-heart:before,.float-heart:after{content:"";position:absolute;width:100%;height:100%;border-radius:50%;background:inherit}.float-heart:before{left:-50%}.float-heart:after{top:-50%}.heart-one{left:8%;top:20%}.heart-two{right:8%;top:57%;scale:.7;animation-delay:-5s}.heart-three{left:48%;top:8%;scale:.65;animation-delay:-1s}.heart-four{left:17%;bottom:10%;scale:1.35;animation-delay:-6s}.app-shell{position:relative;width:100%;height:100%;overflow:hidden}.screen{position:absolute;inset:0;width:100%;height:100%;height:100dvh;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;opacity:0;visibility:hidden;pointer-events:none;transform:translate(7%) scale(.985);transition:opacity .35s ease,transform .55s cubic-bezier(.2,.8,.2,1),visibility .55s;scrollbar-width:thin;scrollbar-color:rgba(217,71,124,.28) transparent}.screen.is-active{z-index:2;opacity:1;visibility:visible;pointer-events:auto;transform:none}.screen.is-exiting{opacity:0;transform:translate(-6%) scale(.985)}.screen:not(.is-active):not(.is-exiting){display:none}.topbar,.screen-header{position:relative;z-index:5;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:10px;font-size:13px;font-weight:800;letter-spacing:.03em}.brand-heart,.header-heart{display:grid;place-items:center;color:#fff;background:linear-gradient(145deg,#ff8aae,#de4e83);box-shadow:0 10px 24px #dc487d3d}.brand-heart{width:36px;height:36px;border-radius:50%}.top-pill{min-height:44px;padding:0 17px;border:1px solid var(--line);border-radius:999px;background:#ffffff9e;cursor:pointer;font-size:14px;font-weight:800;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.top-pill span{margin-left:5px;color:var(--pink)}.intro-screen{display:grid;grid-template-columns:minmax(0,.92fr) minmax(360px,1.08fr);grid-template-rows:auto 1fr;gap:1rem 3vw;max-width:1480px;margin:auto;padding:max(20px,env(safe-area-inset-top)) max(24px,calc(5vw + env(safe-area-inset-right))) max(24px,env(safe-area-inset-bottom)) max(24px,calc(5vw + env(safe-area-inset-left)))}.topbar{grid-column:1/-1}.intro-copy{position:relative;z-index:3;align-self:center}.eyebrow{display:flex;align-items:center;gap:10px;margin-bottom:18px;color:var(--pink-dark);font-size:12px;font-weight:850;letter-spacing:.14em;text-transform:uppercase}.eyebrow>span{width:28px;height:1px;background:currentColor}h1{margin-bottom:24px;font-size:clamp(56px,6.5vw,106px);line-height:.9}h1 em{color:var(--pink-dark);font-weight:500}.lead{max-width:590px;color:var(--muted);font-size:clamp(16px,1.3vw,20px);line-height:1.65}.intro-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}.button{display:inline-flex;min-height:56px;align-items:center;justify-content:center;gap:11px;padding:0 24px;border:0;border-radius:18px;cursor:pointer;font-weight:850;transition:transform .2s,box-shadow .2s}.button:hover{transform:translateY(-2px)}.button:active{transform:scale(.98)}.button-primary{color:#fff;background:linear-gradient(135deg,#f2769f,#da477d);box-shadow:0 16px 34px #da477d47}.button-primary>span{font-size:19px}.button-ghost{border:1px solid var(--line);background:#ffffffa8}.button-runaway{white-space:nowrap;touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.button-runaway:hover{transform:none}.button-runaway.is-running{position:fixed;z-index:70;width:auto;min-width:190px;margin:0;transition:left .2s cubic-bezier(.2,.8,.2,1),top .2s cubic-bezier(.2,.8,.2,1)}.mobile-surprise{display:none}.hero-art{position:relative;align-self:center;display:grid;min-height:min(68vh,680px);place-items:center;perspective:1200px}.art-glow{position:absolute;width:72%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.97),rgba(255,199,219,.34) 46%,transparent 72%);filter:blur(10px)}.art-card{position:relative;width:min(100%,720px);height:100%;min-height:0;max-height:100%}.art-card img{position:relative;z-index:2;display:block;width:100%;height:100%;-o-object-fit:contain;object-fit:contain;-webkit-user-select:none;-moz-user-select:none;user-select:none;filter:drop-shadow(0 28px 25px rgba(114,65,84,.18))}.sparkle{position:absolute;z-index:4;color:#fff;filter:drop-shadow(0 0 8px rgba(239,80,139,.8));animation:sparkle 2.3s ease-in-out infinite}.sparkle-a{left:12%;top:22%;font-size:30px}.sparkle-b{right:9%;top:38%;font-size:22px;animation-delay:-.9s}.sparkle-c{right:24%;top:10%;color:#f6a3be;font-size:24px;animation-delay:-1.5s}.love-note{position:absolute;right:2%;bottom:10%;z-index:5;padding:13px 16px;border:1px solid rgba(255,255,255,.8);border-radius:16px;background:#ffffffad;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);font-family:Georgia,serif;font-style:italic;transform:rotate(-3deg)}.love-note span{color:var(--pink);margin-right:6px}.screen-header{position:sticky;top:0;width:100%;min-height:76px;padding:max(12px,env(safe-area-inset-top)) max(22px,calc(4vw + env(safe-area-inset-right))) 10px max(22px,calc(4vw + env(safe-area-inset-left)));background:linear-gradient(#fff8fae8 70%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.screen-header>div{text-align:center}.screen-header strong,.step-label{display:block}.screen-header strong{margin-top:3px;font-family:Georgia,serif;font-size:18px}.step-label{color:var(--muted);font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.round-back,.header-heart{width:42px;height:42px;border-radius:50%}.round-back{border:1px solid var(--line);background:#ffffffb3;cursor:pointer;font-size:28px;line-height:1}.header-heart{font-size:17px}.date-layout{display:grid;grid-template-columns:minmax(270px,.45fr) minmax(670px,1fr);gap:clamp(24px,4vw,65px);width:min(1280px,100%);min-height:calc(100dvh - 76px);align-items:center;margin:auto;padding:26px clamp(22px,5vw,76px) max(34px,env(safe-area-inset-bottom))}.section-heading{max-width:470px}.section-heading h2{margin-bottom:18px;font-size:clamp(50px,5vw,76px);line-height:.95}.section-heading>p:last-child{color:var(--muted);font-size:17px;line-height:1.65}.planner-shell{display:grid;grid-template-columns:minmax(340px,1.08fr) minmax(300px,.92fr);gap:12px;padding:11px;border:1px solid rgba(255,255,255,.78);border-radius:31px;background:#ffffff52;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px)}.calendar-card,.details-card{min-width:0;border-radius:23px;background:#ffffffc7}.calendar-card{padding:26px}.calendar-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.micro-label{display:block;margin-bottom:7px;color:var(--muted);font-size:11px;font-weight:850;letter-spacing:.12em;text-transform:uppercase}.calendar-top h3{margin:0;font-family:Georgia,serif;font-size:24px;font-weight:500}.month-controls{display:flex;gap:6px}.month-controls button{width:40px;height:40px;border:1px solid var(--line);border-radius:13px;background:#fff;cursor:pointer;font-size:24px}.month-controls button:disabled{opacity:.35}.weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.weekdays{margin-bottom:6px;color:#a18b95;font-size:11px;font-weight:800;text-align:center;text-transform:uppercase}.calendar-grid button,.calendar-grid .empty{aspect-ratio:1;min-width:0;border-radius:12px}.calendar-grid button{position:relative;border:0;background:transparent;cursor:pointer;font-weight:800;transition:.18s}.calendar-grid button:hover:not(:disabled){background:#fff0f5;transform:translateY(-2px)}.calendar-grid button:disabled{color:#d4c7cd}.calendar-grid button.today:after{content:"";position:absolute;left:50%;bottom:5px;width:4px;height:4px;border-radius:50%;background:var(--pink);transform:translate(-50%)}.calendar-grid button.selected{color:#fff;background:linear-gradient(135deg,#f57ca5,#dc4c80);box-shadow:0 8px 18px #da477d40}.calendar-grid button.selected:before{content:"♥";position:absolute;right:4px;top:2px;font-size:8px}.details-card{display:flex;flex-direction:column;gap:22px;padding:26px;background:linear-gradient(160deg,#ffffffd6,#fff1f7d6)}.time-list{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.time-list button{min-height:44px;border:1px solid var(--line);border-radius:13px;background:#ffffffbf;cursor:pointer;font-weight:800}.time-list button.active{color:#fff;border-color:transparent;background:var(--ink)}.mood-list{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.mood{display:grid;min-width:0;min-height:64px;place-items:center;gap:2px;padding:7px 3px;border:1px solid transparent;border-radius:15px;background:#ffffffa6;cursor:pointer}.mood span{font-size:19px}.mood b{font-size:12px}.mood.active{border-color:#e34b8238;background:#fff;box-shadow:0 8px 22px #643c4c14}.selection{display:flex;align-items:center;gap:11px;min-height:62px;margin-top:auto;padding:10px 12px;border:1px dashed rgba(218,71,125,.28);border-radius:16px;background:#ffffff80}.selection-icon{display:grid;flex:0 0 38px;height:38px;place-items:center;border-radius:50%;color:#fff;background:linear-gradient(145deg,#f58aaa,#de4e83);font-size:20px}.selection small,.selection b{display:block}.selection small{color:var(--muted);font-size:10px;font-weight:850;letter-spacing:.12em;text-transform:uppercase}.selection b{margin-top:3px;font-size:13px;line-height:1.3}.confirm-button{display:flex;min-height:54px;align-items:center;justify-content:space-between;padding:0 19px;border:0;border-radius:16px;color:#fff;background:linear-gradient(135deg,#f2769f,#d9457b);box-shadow:0 15px 28px #da477d3b;cursor:pointer;font-weight:850}.confirm-button:disabled{opacity:.35;cursor:default;box-shadow:none}.confirm-button i{font-size:20px;font-style:normal}.confirm-screen,.love-screen{padding-bottom:env(safe-area-inset-bottom)}.confirm-wrap{display:flex;width:min(100% - 32px,620px);min-height:calc(100dvh - 88px);align-items:center;justify-content:center;flex-direction:column;margin:auto;padding:18px 0 30px;text-align:center}.mini-kittens{width:min(52vw,280px);height:min(27vh,220px);margin-bottom:7px}.mini-kittens img{display:block;width:100%;height:100%;margin:0;-o-object-fit:contain;object-fit:contain;filter:drop-shadow(0 18px 18px rgba(114,65,84,.15))}.confirm-wrap .eyebrow,.love-card .eyebrow{justify-content:center}.confirm-wrap h2{margin-bottom:9px;font-size:clamp(48px,7vw,76px);line-height:.95}.confirm-subtitle{color:var(--muted);font-size:17px}.plan-card{width:100%;margin:18px 0;padding:9px 18px;border:1px solid rgba(255,255,255,.85);border-radius:25px;background:#ffffffb8;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);text-align:left}.plan-card>div{display:flex;align-items:center;gap:13px;min-height:62px;border-bottom:1px solid var(--line)}.plan-card>div:last-child{border:0}.plan-icon{display:grid;flex:0 0 38px;height:38px;place-items:center;border-radius:13px;color:var(--pink-dark);background:#fff0f5}.plan-card small,.plan-card b{display:block}.plan-card small{color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.1em}.plan-card b{margin-top:3px;font-size:15px}.final-yes{width:100%}.text-button{min-height:43px;padding:0 12px;border:0;color:var(--muted);background:transparent;cursor:pointer;font-weight:750;text-decoration:underline;text-decoration-color:#806b764d;text-underline-offset:4px}.love-screen{display:grid;place-items:center;padding:max(20px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(20px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));background:radial-gradient(circle at 50% 25%,#fffffff2,#ffeaf3b8 55%,#efe0ffb3)}.love-card{position:relative;z-index:2;width:min(100%,570px);padding:clamp(28px,5vw,48px);border:1px solid rgba(255,255,255,.86);border-radius:32px;background:#ffffffbd;box-shadow:0 35px 100px #5d2d4133;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);text-align:center}.big-heart{display:grid;width:82px;height:82px;margin:0 auto 25px;place-items:center;border-radius:50%;color:#fff;background:linear-gradient(145deg,#fa86ab,#d9447a);box-shadow:0 16px 32px #d9447a47;font-size:38px;animation:heartbeat 1.2s infinite}.love-card h2{margin-bottom:9px;color:var(--pink-dark);font-size:clamp(58px,9vw,82px);line-height:.95}.love-card>p:not(.eyebrow,.kiss){color:var(--muted);font-size:17px;line-height:1.55}.final-plan{margin:22px 0;padding:16px;border-radius:17px;background:#fff;box-shadow:0 12px 28px #572c3e14;font-weight:800;line-height:1.5}.final-plan span{color:var(--pink)}.final-plan small{color:var(--muted)}.love-card .button{width:100%}.love-card .text-button{display:block;margin:5px auto 0}.kiss{margin:9px 0 0;color:var(--muted);font-family:Georgia,serif;font-size:14px;font-style:italic}.heart-rain{position:absolute;inset:0;overflow:hidden;pointer-events:none}.burst-heart{position:absolute;bottom:-40px;color:#ff77a2;animation:rise-heart var(--duration) ease-in forwards;animation-delay:var(--delay);filter:drop-shadow(0 5px 5px rgba(148,47,83,.14))}.heart-transition{position:fixed;inset:0;z-index:80;display:grid;place-items:center;overflow:hidden;visibility:hidden;pointer-events:none}.heart-transition:before{content:"";position:absolute;width:36px;height:36px;border-radius:50%;background:linear-gradient(145deg,#ff93b3,#df4a80);transform:scale(0)}.heart-transition.is-playing{visibility:visible}.heart-transition.is-playing:before{animation:heart-wipe .85s cubic-bezier(.76,0,.24,1) both}.heart-transition span{position:absolute;color:#fff;opacity:0;font-size:clamp(22px,7vw,52px)}.heart-transition span:nth-child(1){left:11%;top:18%}.heart-transition span:nth-child(2){left:74%;top:13%}.heart-transition span:nth-child(3){left:23%;top:68%}.heart-transition span:nth-child(4){left:82%;top:73%}.heart-transition span:nth-child(5){left:54%;top:26%}.heart-transition span:nth-child(6){left:8%;top:48%}.heart-transition span:nth-child(7){left:67%;top:54%}.heart-transition.is-playing span{animation:transition-heart .85s ease both}.heart-transition span:nth-child(2),.heart-transition span:nth-child(5){animation-delay:.08s}.heart-transition span:nth-child(3),.heart-transition span:nth-child(7){animation-delay:.15s}.heart-transition b{position:relative;color:#fff;opacity:0;font-size:clamp(52px,14vw,100px)}.heart-transition.is-playing b{animation:center-heart .85s ease both}.too-late-dialog{width:min(calc(100% - 30px),470px);padding:38px 28px 30px;border:1px solid rgba(255,255,255,.88);border-radius:30px;color:var(--ink);background:linear-gradient(145deg,#fffffffa,#ffe7f1fa);box-shadow:0 35px 100px #52263a4d;text-align:center}.too-late-dialog[open]{animation:dialog-pop .35s cubic-bezier(.2,.9,.2,1.15) both}.too-late-dialog::backdrop{background:#45233280;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.dialog-heart{display:grid;width:68px;height:68px;margin:0 auto 20px;place-items:center;border-radius:50%;color:#fff;background:linear-gradient(145deg,#fa86ab,#d9447a);box-shadow:0 14px 30px #d9447a40;font-size:31px;animation:heartbeat 1.2s infinite}.too-late-dialog h2{margin-bottom:25px;color:var(--pink-dark);font-size:clamp(42px,8vw,58px);line-height:.98}.too-late-dialog .button{width:100%}.ring-dialog{width:min(92vw,550px);max-height:min(90dvh,720px);overflow:auto;padding:38px;border:1px solid rgba(255,255,255,.75);border-radius:30px;color:var(--ink);background:#fff8faf5;box-shadow:0 35px 100px #4723344d;-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);text-align:center}.ring-dialog::backdrop{background:#341f2a7a;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.dialog-close{position:absolute;right:16px;top:16px;display:grid;width:40px;height:40px;place-items:center;border:0;border-radius:50%;background:#ffffffbf;cursor:pointer;font-size:24px}.ring-dialog .eyebrow{justify-content:center;margin-top:14px}.ring-dialog h2{margin-bottom:14px;font-size:43px;line-height:1}.ring-dialog>p:not(.eyebrow){color:var(--muted);line-height:1.6}.ring-stage{display:grid;height:165px;place-items:end center;perspective:700px}.ring-box{position:relative;width:130px;height:110px;transform-style:preserve-3d;animation:ring-float 3s ease-in-out infinite}.box-base{position:absolute;left:8px;right:8px;bottom:0;height:64px;border-radius:17px 17px 28px 28px;background:linear-gradient(145deg,#f788ac,#a92f61);box-shadow:inset 0 7px 13px #ffffff52,0 20px 30px #8b2a5133;transform:rotateX(8deg)}.box-lid{position:absolute;left:10px;right:10px;top:8px;height:72px;border:7px solid #c84d7b;border-radius:60px 60px 15px 15px;background:linear-gradient(#782141,#ef86a8);transform:translateY(-22px) rotateX(-24deg);transform-origin:bottom}.ring{position:absolute;z-index:3;left:50%;bottom:28px;width:45px;height:45px;border:6px solid #f2be58;border-radius:50%;box-shadow:inset 2px 0 3px #fff,0 3px 8px #4723344d;transform:translate(-50%) rotateX(25deg)}.ring i{position:absolute;left:50%;top:-20px;width:21px;height:21px;background:linear-gradient(135deg,#fff,#dff0ff 45%,#b9c9ff);clip-path:polygon(50% 0,100% 40%,80% 100%,20% 100%,0 40%);filter:drop-shadow(0 0 7px white);transform:translate(-50%)}@keyframes float-art{0%,to{transform:translateY(0) rotateY(-1deg)}50%{transform:translateY(-10px) rotateY(1deg)}}@keyframes sparkle{0%,to{transform:scale(.65);opacity:.25}50%{transform:scale(1.2) rotate(20deg);opacity:1}}@keyframes drift{0%,to{translate:0 0}50%{translate:0 -24px}}@keyframes ring-float{0%,to{transform:translateY(0) rotateY(-5deg)}50%{transform:translateY(-8px) rotateY(5deg)}}@keyframes heartbeat{0%,to{transform:scale(1)}15%,45%{transform:scale(1.08)}30%{transform:scale(1)}}@keyframes rise-heart{0%{transform:translateZ(0) rotate(0);opacity:0}12%{opacity:1}to{transform:translate3d(var(--drift),-115vh,0) rotate(480deg);opacity:0}}@keyframes heart-wipe{0%{transform:scale(0)}48%,63%{transform:scale(75)}to{transform:scale(0)}}@keyframes transition-heart{0%,to{opacity:0;transform:translateY(30px) scale(.4) rotate(-20deg)}48%,65%{opacity:.85;transform:translateY(0) scale(1) rotate(8deg)}}@keyframes center-heart{0%,28%,to{opacity:0;transform:scale(.3)}50%,66%{opacity:1;transform:scale(1)}}@keyframes dialog-pop{0%{opacity:0;transform:translateY(24px) scale(.92)}to{opacity:1;transform:none}}@media(max-width:980px){.intro-screen{grid-template-columns:1fr 1fr}.date-layout{grid-template-columns:1fr;align-content:start;max-width:720px}.section-heading{max-width:600px;text-align:center;margin:8px auto 0}.section-heading .eyebrow{justify-content:center}.section-heading h2{font-size:52px}.planner-shell{grid-template-columns:1fr 1fr}}@media(max-width:640px){.screen{transform:translate(12%)}.screen.is-exiting{transform:translate(-10%)}.intro-screen{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr) auto;gap:0;padding:max(14px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));text-align:center}.brand{font-size:12px}.brand-heart{width:34px;height:34px}.top-pill{min-height:38px;padding:0 13px;font-size:12px}.intro-copy{align-self:start;padding-top:clamp(24px,7vh,58px)}.intro-copy .eyebrow{justify-content:center;margin-bottom:13px;font-size:10px}.intro-copy h1{margin-bottom:14px;font-size:clamp(43px,13.8vw,64px);line-height:.92}.lead{max-width:410px;margin:0 auto;font-size:16px;line-height:1.48}.intro-actions{display:grid;gap:8px;margin-top:20px}.button{width:100%;min-height:52px;border-radius:16px}.button-runaway.is-running{width:auto;min-width:184px}.mobile-surprise{display:none}.hero-art{grid-row:3;min-height:0;height:clamp(245px,35vh,370px);margin-top:2px}.art-card{width:min(112%,540px)}.love-note{right:0;bottom:3px;padding:10px 12px;font-size:12px}.screen-header{min-height:68px;padding:max(10px,env(safe-area-inset-top)) max(14px,env(safe-area-inset-right)) 8px max(14px,env(safe-area-inset-left))}.round-back,.header-heart{width:38px;height:38px}.screen-header strong{font-size:17px}.step-label{font-size:9px}.date-layout{display:block;min-height:auto;padding:10px max(10px,env(safe-area-inset-right)) max(18px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left))}.section-heading{padding:0 8px}.section-heading .eyebrow{margin-bottom:8px;font-size:10px}.section-heading h2{margin-bottom:7px;font-size:clamp(36px,11vw,48px)}.section-heading>p:last-child{margin-bottom:15px;font-size:15px;line-height:1.42}.planner-shell{grid-template-columns:1fr;gap:8px;padding:6px;border-radius:24px}.calendar-card,.details-card{border-radius:19px}.calendar-card{padding:16px 13px 13px}.calendar-top{margin-bottom:12px}.micro-label{margin-bottom:4px;font-size:9px}.calendar-top h3{font-size:21px}.month-controls button{width:36px;height:36px;border-radius:11px}.weekdays,.calendar-grid{gap:2px}.weekdays{font-size:9px}.calendar-grid button,.calendar-grid .empty{height:36px;aspect-ratio:auto;border-radius:10px}.calendar-grid button{font-size:13px}.details-card{gap:13px;padding:14px 13px 15px}.time-list{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}.time-list button{min-height:40px;padding:0;font-size:12px}.mood-list{gap:5px}.mood{min-height:55px;border-radius:12px}.mood span{font-size:16px}.mood b{font-size:10px}.selection{min-height:54px;padding:7px 9px}.selection-icon{flex-basis:34px;height:34px}.selection b{font-size:12px}.confirm-button{min-height:50px}.confirm-wrap{width:min(100% - 24px,520px);min-height:calc(100dvh - 72px);padding:8px 0 max(18px,env(safe-area-inset-bottom))}.mini-kittens{width:min(72vw,280px);height:min(24vh,180px)}.confirm-wrap .eyebrow{margin-bottom:10px;font-size:10px}.confirm-wrap h2{max-width:100%;font-size:clamp(42px,11vw,55px);overflow-wrap:anywhere}.confirm-subtitle{margin-bottom:4px;font-size:15px}.plan-card{margin:13px 0;padding:6px 14px;border-radius:21px}.plan-card>div{min-height:54px}.plan-icon{flex-basis:34px;height:34px}.plan-card b{font-size:13px}.plan-card small{font-size:9px}.love-card{padding:26px 18px 20px;border-radius:27px}.big-heart{width:70px;height:70px;margin-bottom:20px;font-size:32px}.love-card .eyebrow{margin-bottom:12px;font-size:10px}.love-card h2{font-size:clamp(54px,16vw,70px)}.love-card>p:not(.eyebrow,.kiss){font-size:15px}.final-plan{margin:17px 0;font-size:14px}.ring-dialog{width:calc(100% - 24px);padding:30px 18px 22px;border-radius:25px}.ring-dialog h2{font-size:36px}.ring-stage{height:145px}}@media(max-width:640px)and (max-height:740px){.intro-copy{padding-top:17px}.intro-copy h1{font-size:clamp(39px,12vw,52px)}.lead{font-size:14px}.intro-actions{margin-top:14px}.hero-art{height:225px}.love-note{display:none}.screen-header{min-height:58px;padding-top:7px;padding-bottom:5px}.round-back,.header-heart{width:34px;height:34px}.date-layout{padding-top:3px;padding-bottom:8px}.section-heading .eyebrow{margin-bottom:4px}.section-heading>p:last-child{display:none}.section-heading h2{margin-bottom:5px;font-size:32px}.planner-shell{gap:5px;padding:5px}.calendar-card{padding:9px 11px 8px}.calendar-top{margin-bottom:5px}.month-controls button{width:32px;height:32px}.calendar-grid button,.calendar-grid .empty{height:26px}.details-card{gap:7px;padding:9px 11px 10px}.time-list button{min-height:36px}.mood{min-height:43px}.selection{display:none}.confirm-button{min-height:44px}.mini-kittens{height:115px}.confirm-wrap .eyebrow{display:none}.confirm-wrap h2{font-size:44px}.plan-card>div{min-height:49px}.love-card{padding-top:22px}.big-heart{width:62px;height:62px;margin-bottom:14px}.love-card h2{font-size:54px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
