@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;1,400;1,500&family=Noto+Serif+SC:wght@400;500;600&display=swap');
:root{--ink:#71545e;--rose:#ba647e;--accent:#ce7591;--cream:#fffaf4;--muted:#ac8e96;--ease:cubic-bezier(.2,.8,.2,1)}
*{box-sizing:border-box}html,body{margin:0;width:100%;min-height:100%;background:#f9eeeb}body{font-family:"Microsoft YaHei","PingFang SC",sans-serif;color:var(--ink)}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid #b65a7e;outline-offset:6px}button:disabled{cursor:default}.svg-library{position:absolute;width:0;height:0;overflow:hidden}.scene{height:100svh;min-height:720px;position:relative;isolation:isolate;overflow:hidden;background:#faf0e9}.sky{position:absolute;inset:0;background:radial-gradient(ellipse at 49% 20%,#fff9ef 0,transparent 58%),linear-gradient(130deg,#f3e0e8,#fbefe8 55%,#f7e5e4);z-index:-4}.paper{position:absolute;inset:0;pointer-events:none;z-index:20;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='.78' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23938682' filter='url(%23n)' opacity='.3' d='M0 0h180v180H0z'/%3E%3C/svg%3E")}.topbar{position:absolute;top:0;left:0;width:100%;height:108px;padding:0 5%;display:flex;align-items:center;justify-content:space-between;z-index:25}.brand{color:var(--ink);display:flex;gap:12px;align-items:center;text-decoration:none;font-family:Georgia,serif;font-size:21px;letter-spacing:-.5px}.brand svg{width:34px;height:30px;color:#c97c93}.brand-dot{color:#d3859b}.top-note{position:absolute;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:9px;color:#a5868d;font-size:11px;letter-spacing:2px}.top-note>span{width:5px;height:5px;border-radius:50%;background:#d6a3ad}.controls{display:flex;gap:10px}.icon-button{border:1px solid #d9b9c166;border-radius:50%;width:42px;height:42px;background:#fffaf343;color:#a27887;display:grid;place-items:center;transition:background .2s,transform .2s}.icon-button:hover{background:#fffaf4;transform:translateY(-2px)}.icon-button svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}.sound-off{display:none}[aria-pressed="false"] .sound-off{display:block}[aria-pressed="false"] .sound-wave{display:none}.intro-copy{position:absolute;left:50%;top:17%;width:620px;max-width:90%;text-align:center;transform:translateX(-50%);z-index:3;transition:opacity .6s,translate .7s}.eyebrow{display:flex;align-items:center;justify-content:center;gap:12px;font-family:Georgia,serif;font-size:10px;font-weight:400;letter-spacing:2.7px;color:#b18b91}.eyebrow>span{width:27px;height:1px;background:#cfaab1}.intro-copy h1{font-family:"Noto Serif SC","Songti SC",SimSun,serif;font-weight:400;font-size:clamp(32px,3.3vw,49px);line-height:1.55;letter-spacing:5px;margin:22px 0 0}.intro-copy h1>span{display:block;position:relative}.handwritten{color:#bc6b84;position:relative}.handwritten:after{content:"";position:absolute;bottom:-8px;left:-3px;width:103%;height:9px;border-top:2px solid #d8a0b1;border-radius:50%;transform:rotate(-4deg)}.title-heart{width:20px;height:20px;position:absolute;color:#d995a9;transform:rotate(18deg);margin:6px 0 0 12px}.intro-sub{color:#a98d92;font-size:12px;letter-spacing:2px;line-height:2;margin-top:22px}.cloud{position:absolute;display:flex;align-items:flex-end;opacity:.66;filter:blur(.3px);animation:cloud-drift 18s ease-in-out infinite alternate;z-index:-2}.cloud i{display:block;background:#fffaf4;border-radius:80px 80px 50px 50px}.cloud i:nth-child(1){width:60px;height:28px;margin-right:-18px}.cloud i:nth-child(2){width:80px;height:55px}.cloud i:nth-child(3){width:65px;height:33px;margin-left:-20px}.cloud-one{left:7%;top:25%;transform:scale(.9)}.cloud-two{right:8%;top:36%;transform:scale(.7);animation-delay:-8s}.cloud-three{left:32%;top:10%;opacity:.4;transform:scale(.55);animation-delay:-4s}.wind-trail{position:absolute;left:0;top:18%;width:100%;height:60%;z-index:-2;opacity:.45}.wind-trail path{fill:none;stroke:#d8b5bf;stroke-width:1.3;stroke-dasharray:4 9;stroke-linecap:round}.sun-halo{position:absolute;bottom:12%;left:50%;width:640px;height:400px;transform:translateX(-50%);border-radius:50%;background:radial-gradient(ellipse,#fffaf2c9,transparent 70%);z-index:-2}.ambient-kite{position:absolute;width:115px;height:200px;right:16%;top:17%;opacity:.8;animation:kite-float 7s ease-in-out infinite;transform:rotate(13deg);transition:opacity .6s}.ambient-kite svg{width:100%;height:100%}.floating-flower{position:absolute;color:#efc1ce;opacity:.55;animation:drift 9s ease-in-out infinite}.floating-flower svg{width:100%;height:100%}.f-one{width:27px;height:27px;left:17%;top:46%;transform:rotate(25deg)}.f-two{width:18px;height:18px;right:26%;top:58%;animation-delay:-4s}.spark{position:absolute;color:#dcb681;width:15px;height:15px;opacity:.65;animation:twinkle 4s ease-in-out infinite}.s-one{top:22%;left:28%;width:12px}.s-two{top:48%;right:12%;animation-delay:-2s}.s-three{left:33%;top:61%;width:10px;animation-delay:-1s}.landscape{position:absolute;inset:0;z-index:-1;pointer-events:none}.hills{position:absolute;bottom:0;left:0;width:100%;height:28%}.hills-front{height:21%}.hills-back{opacity:.76}.flowerbed{position:absolute;bottom:8%;width:280px;height:110px}.bed-left{left:3%;transform:rotate(3deg)}.bed-right{right:1%;transform:scaleX(-1) rotate(-3deg)}.stem{position:absolute;bottom:0;width:1px;background:#a0b28b;transform-origin:bottom;animation:sway 6s ease-in-out infinite alternate}.stem:before{content:"";position:absolute;left:0;top:60%;width:12px;height:6px;background:#acbd96;border-radius:0 100% 0 100%;transform:rotate(-28deg)}.stem svg{position:absolute;top:-10px;left:-10px;width:21px;height:21px;color:#fff9ee}.stem.pink svg{color:#ecc0cc}.ground-ornament{position:absolute;left:50%;bottom:3.7%;transform:translateX(-50%);display:flex;gap:15px;align-items:center;color:#cda4ad;opacity:.65}.ground-ornament i{height:1px;width:45px;background:#d7c2ba}.ground-ornament svg{width:25px;height:20px}.ground-ornament span{font-size:10px}.kitty{position:absolute;left:50%;bottom:22%;width:270px;height:291px;transform:translateX(-50%);z-index:6;transition:left 1.2s var(--ease),bottom 1s var(--ease),width 1s var(--ease),height 1s var(--ease);pointer-events:none}.kitty-art{width:100%;height:100%;overflow:visible}.kitty-mover{height:100%;width:100%;transform-origin:50% 90%}.kitty .avatar-slot{height:100%}.kitty-shadow{position:absolute;bottom:3%;width:62%;height:20px;left:19%;background:#b29c9b29;border-radius:50%;filter:blur(4px);transition:opacity .4s}.is-poster .kitty-mover{animation:breathe 3s ease-in-out infinite}.is-poster .head-rig{transform:rotate(-5deg);transform-origin:160px 200px}.is-poster .arm-right{transform:rotate(-25deg);transform-origin:192px 224px}.is-poster .arm-left{transform:rotate(6deg);transform-origin:123px 225px}.eyes{transform-origin:160px 157px;animation:blink 5.7s infinite}.kitty-heart{position:absolute;right:-2%;top:30%;width:22px;height:22px;color:#dfa4b5;transform:rotate(15deg);animation:heart-float 4s ease-in-out infinite}.start-area{position:absolute;top:79%;left:50%;transform:translateX(-50%);text-align:center;white-space:nowrap;z-index:12;transition:opacity .4s,translate .5s}.primary-button{display:inline-flex;align-items:center;justify-content:center;gap:30px;border:1px solid #bb6985;border-radius:50px;min-height:51px;padding:0 30px;background:#c77b94;color:#fffaf5;box-shadow:0 7px 20px #b56e8820;letter-spacing:2px;font-size:12px;transition:background .2s,transform .2s,box-shadow .2s}.primary-button:hover{background:#b86b86;transform:translateY(-3px);box-shadow:0 10px 24px #b56e8835}.primary-button svg{height:17px;width:17px;stroke:currentColor;fill:none;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}.start-area p{font-size:10px;letter-spacing:1.4px;color:#ac9393;margin-top:17px}.tiny-sparkle{margin:0 5px;color:#bda2a7}.footer{position:absolute;bottom:29px;left:5%;right:5%;display:flex;align-items:center;justify-content:space-between;font-size:9px;letter-spacing:2px;color:#ac9495;z-index:22}.footer-sign{font:italic 12px Georgia,serif;letter-spacing:.2px;display:flex;gap:7px;align-items:center}.footer-sign svg{width:9px;height:9px;color:#d59cad}.chapters{display:flex;align-items:center;gap:7px;position:absolute;left:50%;transform:translateX(-50%);bottom:30px}.chapter{display:block;width:16px;height:3px;background:#d8c8c0;border-radius:5px;transition:width .5s,background .5s}.chapter.active{width:32px;background:#bd8297}.chapter.complete{background:#c89dae}.runner{position:absolute;left:0;bottom:25%;width:170px;height:184px;visibility:hidden;z-index:4;will-change:transform}.runner-facing,.runner-bob,.runner .avatar-slot{width:100%;height:100%}.runner-facing{transform-origin:center}.runner-bob{animation:run-bounce .32s ease-in-out infinite}.runner .character{transform:rotate(9deg);transform-origin:160px 280px}.runner .leg-left{transform-origin:137px 285px;animation:run-leg .32s ease-in-out infinite alternate}.runner .leg-right{transform-origin:183px 285px;animation:run-leg .32s ease-in-out infinite alternate-reverse}.runner .arm-left{transform-origin:122px 225px;animation:run-arm .32s ease-in-out infinite alternate}.runner .arm-right{transform:rotate(-100deg);transform-origin:193px 225px}.runner .head-rig{transform:rotate(-7deg);transform-origin:160px 210px}.runner .hair-bow{animation:bow-wiggle .32s ease-in-out infinite alternate;transform-origin:230px 85px}.kite-rig{position:absolute;width:220%;height:220%;bottom:26%;right:60%;z-index:-1;transform:rotate(-9deg);transform-origin:90% 95%}.kite-rig svg{overflow:visible;width:100%;height:100%}.kite-string{stroke:#a78c8f;stroke-width:1.3;fill:none}.flying-kite{animation:kite-tug 1.3s ease-in-out infinite alternate;transform-origin:110px 153px}.runner-shadow{position:absolute;bottom:0;left:15%;width:70%;height:12px;border-radius:50%;background:#997f8420;filter:blur(2px)}.story-caption{position:absolute;top:28%;left:50%;transform:translateX(-50%);font-family:"Noto Serif SC",SimSun,serif;text-align:center;letter-spacing:4px;font-size:22px;color:#a27583;z-index:5;opacity:0;transition:opacity .5s}.story-caption.visible{opacity:1}.peek-mark{position:absolute;left:calc(50% + 100px);bottom:170px;font:italic 53px "Cormorant Garamond",Georgia,serif;color:#bd879c;opacity:0;transform:rotate(15deg);z-index:6}.peek-mark.visible{animation:peek-mark 1s ease-out both}.invitation-copy{position:absolute;left:53%;top:29%;width:39%;max-width:540px;z-index:10;opacity:0;visibility:hidden;transform:translateY(16px);transition:opacity .8s,transform .8s}.invitation-copy .eyebrow{justify-content:flex-start;font-size:9px;letter-spacing:2.4px}.invitation-copy h2{font-family:"Cormorant Garamond",Georgia,"Times New Roman",serif;font-size:clamp(42px,4.7vw,72px);font-weight:400;line-height:1.13;letter-spacing:-1.7px;margin:24px 0 18px;color:#805564;position:relative}.invitation-copy h2 em{font-weight:400;color:#b86c87}.invitation-copy h2 svg{position:absolute;width:23px;height:23px;margin:12px;color:#d59baf;transform:rotate(15deg)}.translation{font-family:"Noto Serif SC",SimSun,serif;font-size:14px;letter-spacing:4px;color:#ac8a91;margin-bottom:34px}.invitation-copy .primary-button{gap:25px}.invitation-copy .primary-button svg{stroke:none;fill:currentColor;width:14px}.hand-note{display:block;color:#b39b9d;font-size:10px;letter-spacing:1.5px;margin-top:20px}.scene[data-step="running"] .intro-copy,.scene[data-step="running"] .start-area,.scene[data-step="peek"] .intro-copy,.scene[data-step="peek"] .start-area,.scene[data-step="wave"] .intro-copy,.scene[data-step="wave"] .start-area,.scene[data-step="invite"] .intro-copy,.scene[data-step="invite"] .start-area,.scene[data-step="held"] .intro-copy,.scene[data-step="held"] .start-area{opacity:0;pointer-events:none;translate:0 -8px}.scene:not([data-step="intro"]) .ambient-kite{opacity:0}.scene[data-step="invite"] .invitation-copy,.scene[data-step="held"] .invitation-copy{opacity:1;visibility:visible;transform:none}.scene[data-step="invite"] .kitty,.scene[data-step="held"] .kitty{left:33%;bottom:21%;width:330px;height:356px}.kitty.is-hidden{visibility:hidden}.kitty.is-peeking{bottom:-160px;width:310px;height:334px}.kitty.is-peeking .kitty-shadow{opacity:0}.kitty.is-peeking .arm-left{transform:rotate(50deg);transform-origin:122px 225px}.kitty.is-peeking .arm-right{transform:rotate(-50deg);transform-origin:193px 225px}.kitty.is-waving{bottom:13%;width:310px;height:334px}.is-waving .head-rig{animation:head-hello 1.1s ease-in-out infinite alternate;transform-origin:160px 205px}.is-waving .arm-right{transform-origin:194px 226px;animation:wave .42s ease-in-out 6 alternate}.is-inviting .kitty-mover{animation:breathe 3s ease-in-out infinite}.is-inviting .body-rig{transform:rotate(-7deg);transform-origin:160px 235px}.is-inviting .head-rig{transform:rotate(5deg);transform-origin:160px 200px;transition:transform 1s}.is-inviting .arm-right{transform-origin:194px 225px;transform:translate(14px,-1px) rotate(-66deg) scale(1.12);transition:transform 1s var(--ease)}.is-inviting .arm-left{transform-origin:123px 225px;transform:rotate(12deg);transition:transform 1s}.is-inviting .kitty-heart{right:-8%;top:35%}.scene[data-step="held"] .arm-right{animation:hand-hold .8s ease-in-out 2 alternate}.scene[data-step="held"] .kitty-heart{animation:heart-float 2s ease-in-out infinite;scale:1.4}.particles{position:absolute;inset:0;pointer-events:none;z-index:24;overflow:hidden}.particle{position:absolute;width:14px;height:14px;color:#d790a9;will-change:transform,opacity;animation:particle-rise 2.5s ease-out forwards}.toast{position:absolute;left:50%;bottom:110px;transform:translateX(-50%) translateY(10px);background:#fffaf4ee;border:1px solid #ead5d9;color:#9d7c85;font-size:11px;line-height:1.7;border-radius:15px;padding:11px 20px;opacity:0;transition:opacity .3s,transform .3s;pointer-events:none;z-index:30;max-width:88%;text-align:center}.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
@keyframes breathe{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-5px) rotate(1deg)}}@keyframes blink{0%,42%,46%,100%{transform:scaleY(1)}44%{transform:scaleY(.08)}}@keyframes cloud-drift{to{translate:24px 0}}@keyframes drift{0%,100%{translate:0 0;rotate:0deg}50%{translate:12px -20px;rotate:25deg}}@keyframes kite-float{0%,100%{translate:0 0;rotate:-5deg}50%{translate:13px -15px;rotate:4deg}}@keyframes twinkle{0%,100%{opacity:.3;scale:.8}50%{opacity:.8;scale:1.1}}@keyframes sway{to{rotate:6deg}}@keyframes heart-float{0%,100%{translate:0 0;rotate:3deg}50%{translate:3px -9px;rotate:-7deg}}@keyframes run-bounce{0%,100%{transform:translateY(0)}50%{transform:translateY(-13px)}}@keyframes run-leg{from{transform:rotate(-31deg)}to{transform:rotate(29deg)}}@keyframes run-arm{from{transform:rotate(-15deg)}to{transform:rotate(40deg)}}@keyframes bow-wiggle{to{rotate:-5deg;translate:0 -2px}}@keyframes kite-tug{to{transform:rotate(12deg) translate(-6px,-7px)}}@keyframes wave{from{transform:rotate(-126deg)}to{transform:rotate(-162deg)}}@keyframes head-hello{to{transform:rotate(-7deg)}}@keyframes peek-mark{0%{opacity:0;translate:0 15px;scale:.6}30%,70%{opacity:1;translate:0 0;scale:1}100%{opacity:0;translate:0 -12px}}@keyframes hand-hold{to{transform:translate(17px,-8px) rotate(-72deg) scale(1.13)}}@keyframes particle-rise{0%{opacity:0;transform:translate(0,15px) scale(.5) rotate(0)}15%{opacity:.9}100%{opacity:0;transform:translate(var(--dx),-220px) scale(1.2) rotate(var(--spin))}}
.kite-rig{right:7%}.offered-arm,.waving-arm{display:none}.is-inviting .arm-right,.is-waving .arm-right{display:none}.is-inviting .offered-arm{display:block;transform-origin:196px 227px;animation:offer-hand 3s ease-in-out infinite}.is-waving .waving-arm{display:block;transform-origin:218px 224px;animation:mitten-wave .4s ease-in-out 6 alternate}.scene[data-step="held"] .offered-arm{animation:offer-hand .6s ease-in-out 4 alternate}.kitty.is-peeking{bottom:-110px}@keyframes offer-hand{50%{transform:rotate(-5deg) scale(1.025)}}@keyframes mitten-wave{from{transform:rotate(-6deg)}to{transform:rotate(9deg)}}
@media(min-width:1500px){.kitty{width:300px;height:323px;bottom:22%}.scene[data-step="invite"] .kitty,.scene[data-step="held"] .kitty{width:390px;height:421px;bottom:19%}.intro-copy{top:18%}}
@media(max-height:800px) and (min-width:701px){.scene{min-height:650px}.topbar{height:88px}.intro-copy{top:15%}.intro-copy h1{font-size:38px;margin-top:15px}.intro-sub{margin-top:15px}.kitty{width:232px;height:250px;bottom:23%}.start-area{top:79%}.invitation-copy{top:25%}.scene[data-step="invite"] .kitty,.scene[data-step="held"] .kitty{width:300px;height:323px;bottom:19%}}
@media(max-width:700px){.scene{min-height:690px}.topbar{height:82px;padding:0 6%}.brand{font-size:17px;gap:8px}.brand svg{width:28px}.top-note{display:none}.controls{gap:7px}.icon-button{width:35px;height:35px}.icon-button svg{width:16px}.intro-copy{top:16%}.eyebrow{font-size:8px;letter-spacing:1.8px;gap:8px}.eyebrow>span{width:17px}.intro-copy h1{font-size:33px;letter-spacing:3px;margin-top:20px;line-height:1.6}.title-heart{width:16px;margin-top:6px}.intro-sub{font-size:11px;letter-spacing:1px;margin-top:20px}.kitty{width:240px;height:259px;bottom:25%}.start-area{top:auto;bottom:12.5%}.primary-button{min-height:49px;font-size:11px;padding:0 26px;gap:25px}.start-area p{font-size:8px;letter-spacing:1px}.ambient-kite{width:72px;right:5%;top:37%;height:130px}.cloud-one{left:-10%;top:31%;opacity:.5}.cloud-two{right:-10%;top:17%}.cloud-three{display:none}.wind-trail{top:28%;height:40%;width:180%;left:-40%}.f-one{left:8%;top:49%;width:20px}.f-two{right:13%;top:65%}.s-one{top:14%;left:21%}.s-two{right:5%;top:58%;width:10px}.s-three{top:60%;left:20%}.hills{height:26%}.hills-front{height:19%}.flowerbed{width:140px;height:85px;bottom:6%;opacity:.8}.bed-left{left:-4%}.bed-right{right:-8%}.footer{bottom:22px;left:6%;right:6%}.footer-note{font-size:8px;letter-spacing:1px}.footer-sign{font-size:10px}.chapters{bottom:29px}.ground-ornament{bottom:2.7%;gap:8px}.ground-ornament i{width:18px}.ground-ornament svg{width:20px}.ground-ornament span{display:none}.story-caption{top:30%;font-size:17px;width:90%;letter-spacing:3px}.scene[data-step="invite"] .kitty,.scene[data-step="held"] .kitty{left:50%;bottom:10%;width:235px;height:253px}.scene[data-step="invite"] .kitty-heart,.scene[data-step="held"] .kitty-heart{right:0;top:17%}.invitation-copy{top:16%;left:5%;width:90%;max-width:none;text-align:center}.invitation-copy .eyebrow{justify-content:center;font-size:7px;letter-spacing:1.7px}.invitation-copy h2{font-size:45px;line-height:1.05;margin:18px 0 12px;letter-spacing:-1px}.invitation-copy h2 br{display:none}.invitation-copy h2 em{display:block}.invitation-copy h2 svg{width:17px;height:17px;top:30px}.translation{font-size:12px;letter-spacing:3px;margin:15px 0 20px}.invitation-copy .primary-button{min-height:43px;padding:0 23px;gap:20px}.hand-note{font-size:8px;letter-spacing:1px;margin-top:12px}.kitty.is-peeking{bottom:-165px;width:290px;height:313px}.kitty.is-waving{bottom:12%;width:280px;height:302px}.peek-mark{left:calc(50% + 90px)}.toast{bottom:80px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.runner-bob{animation:none!important}}
@media(max-width:700px){.kitty.is-peeking{bottom:-110px}}
/* The invitation continues into a small, multi-select weekend plan. */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
[hidden]{display:none!important}
.listen-button{display:flex;align-items:center;gap:7px;margin-top:17px;padding:0;border:0;background:none;font-size:10px;letter-spacing:1px;color:#b0758b}
.listen-button:hover{color:#8f4d67}.listen-button svg{width:13px;height:13px;fill:currentColor}
.date-panel{position:absolute;left:53%;top:19%;width:38%;max-width:475px;opacity:0;visibility:hidden;transform:translateY(16px);transition:opacity .6s,transform .7s;z-index:12}
.date-panel .eyebrow{justify-content:flex-start;font-size:8px;letter-spacing:2px}
.date-panel h2{font-family:'Noto Serif SC','Songti SC',SimSun,serif;font-weight:400;font-size:clamp(28px,2.5vw,38px);line-height:1.55;letter-spacing:3px;margin:20px 0 13px;position:relative}
.date-panel h2 em{font-style:normal;color:#b86c87}.date-panel h2>svg{width:19px;height:19px;position:absolute;margin:10px;color:#d99bb0;rotate:15deg}
.date-description{font-size:11px;letter-spacing:1.4px;color:#a78a92;line-height:1.9;margin:0 0 22px}
.time-options{border:0;padding:0;margin:0;display:grid;gap:10px}
.time-option{position:relative;display:flex;align-items:center;gap:16px;min-height:67px;border:1px solid #dfc5ca;border-radius:16px;background:#fffaf459;padding:11px 18px;cursor:pointer;transition:background .2s,border-color .2s,transform .2s,box-shadow .2s}
.time-option:hover{background:#fffaf4a8;border-color:#ca9aaa;transform:translateY(-1px)}
.time-option:has(input:checked){background:#fff8f5c9;border-color:#c58099;box-shadow:0 3px 15px #c1799210}
.time-option:has(input:focus-visible){outline:3px solid #bc7a93;outline-offset:3px}
.time-option input{position:absolute;inset:0;width:100%;height:100%;opacity:0;margin:0;cursor:pointer}
.day-stamp{font-family:Georgia,serif;font-size:10px;letter-spacing:1.2px;color:#b88999;display:grid;place-items:center;width:39px;height:37px;border:1px solid #e5cdd2;border-radius:10px;flex-shrink:0;background:#fffaf54d}
.time-name{display:flex;align-items:center;gap:18px;flex:1}.time-name strong{font-family:'Noto Serif SC',SimSun,serif;font-size:15px;font-weight:400;letter-spacing:2px}.time-name>span{font-size:11px;color:#a17d89;letter-spacing:1px}
.choice-check{width:21px;height:21px;flex-shrink:0;border:1px solid #d9bec8;border-radius:50%;display:grid;place-items:center;transition:background .2s,border-color .2s}
.choice-check svg{width:13px;height:13px;fill:none;stroke:#fffaf5;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;opacity:0}
.time-option:has(input:checked) .choice-check{background:#c77b94;border-color:#c77b94}.time-option:has(input:checked) .choice-check svg{opacity:1}
.selection-note{min-height:16px;color:#b18b97;font-size:10px;letter-spacing:1px;line-height:1.7;margin:12px 0 16px}
.date-actions{display:flex;align-items:center;gap:22px;flex-wrap:wrap}.date-actions .primary-button{min-height:46px;font-size:11px;padding:0 23px;gap:19px}.date-actions .primary-button:disabled{opacity:.42;transform:none;box-shadow:none}.date-actions .primary-button svg{fill:currentColor;stroke:none;width:13px;height:13px}
.text-button{border:0;background:none;color:#ac8494;letter-spacing:1px;font-size:10px;padding:8px 0;border-bottom:1px solid #ddbdc777}.text-button:hover{color:#8e4b65;border-color:#c0849b}
.scene[data-step='schedule'] .schedule-panel,.scene[data-step='confirmed'] .confirmation-panel{opacity:1;visibility:visible;transform:none}
.scene:is([data-step='schedule'],[data-step='confirmed']) .intro-copy{visibility:hidden;opacity:0}
.scene:is([data-step='schedule'],[data-step='confirmed']) .kitty{left:32%;bottom:20%;width:300px;height:323px}
.scene:is([data-step='schedule'],[data-step='confirmed']) .ambient-kite{opacity:.25;right:30%;top:17%;width:90px}
.chosen-times{list-style:none;display:flex;flex-wrap:wrap;gap:10px;margin:25px 0 22px;padding:0}
.chosen-times li{padding:11px 16px;border-radius:40px;border:1px solid #d9a9ba;background:#fffaf496;color:#a76a81;font-size:12px;letter-spacing:1px}
.confirmation-note{font-size:11px;letter-spacing:1px;color:#a88b93;line-height:1.9;margin:0 0 25px}
.confirmation-panel{top:25%}.confirmation-panel .date-actions .primary-button svg{fill:none;stroke:currentColor;stroke-width:1.5}
.copy-fallback{width:100%;height:110px;padding:14px;background:#fff9f3a8;border:1px solid #d8b3c0;color:#9a6a7e;border-radius:12px;resize:vertical;font:12px/1.8 inherit}
@media(min-width:1500px){.date-panel{top:22%}.scene:is([data-step='schedule'],[data-step='confirmed']) .kitty{width:350px;height:377px}.confirmation-panel{top:27%}}
@media(max-width:700px){
 .listen-button{margin:12px auto 0;font-size:9px}
 .scene:is([data-step='schedule'],[data-step='confirmed']){min-height:790px}
 .date-panel{left:8%;top:13%;width:84%;max-width:none}
 .date-panel .eyebrow{justify-content:center;font-size:7px;letter-spacing:1.3px}
 .date-panel h2{font-size:29px;line-height:1.5;letter-spacing:2px;text-align:center;margin:16px 0 12px}
 .date-panel h2>svg{width:15px;height:15px;margin:8px}
 .date-description{text-align:center;font-size:10px;margin-bottom:20px;letter-spacing:1px}
 .time-option{min-height:62px;padding:10px 15px;gap:14px;border-radius:14px}
 .day-stamp{width:34px;height:33px;font-size:9px}
 .time-name{gap:16px}.time-name strong{font-size:14px}.time-name>span{font-size:11px}
 .time-options{gap:9px}.selection-note{font-size:9px;text-align:center;margin:11px 0 15px}
 .date-actions{justify-content:center;gap:18px}.date-actions .primary-button{min-height:43px;font-size:10px;padding:0 19px;gap:15px}.text-button{font-size:9px}
 .scene:is([data-step='schedule'],[data-step='confirmed']) .kitty{left:50%;bottom:8%;width:145px;height:156px}
 .scene:is([data-step='schedule'],[data-step='confirmed']) .kitty-heart{width:13px;height:13px;top:20%;right:0}
 .scene:is([data-step='schedule'],[data-step='confirmed']) .ambient-kite{right:4%;top:66%;width:56px}
 .confirmation-panel{top:18%}.chosen-times{justify-content:center;gap:8px;margin:24px 0 21px}.chosen-times li{font-size:11px;padding:10px 14px}
 .confirmation-note{text-align:center;font-size:10px;line-height:1.9;margin-bottom:23px}
 .copy-fallback{height:90px;font-size:11px}
}
@media(prefers-reduced-motion:reduce){.date-panel,.time-option{transition:none}.scene .offered-arm{animation:none}}
/* Weekend choices are individual meeting times, expanded by day. */
.schedule-panel,.confirmation-panel{top:125px;max-height:calc(100svh - 160px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#d6a6b7 transparent;padding:0 5px 12px 1px}
.day-option{width:100%;font:inherit;color:inherit;text-align:left}.day-option.has-times{background:#fff8f5c9;border-color:#c58099}.day-option[aria-expanded='true']{background:#fff8f5d9;border-color:#c58099}
.day-chevron{width:17px;height:17px;flex-shrink:0;fill:none;stroke:#b98b9b;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;transition:rotate .2s}.day-option[aria-expanded='true'] .day-chevron{rotate:180deg}
.hours-panel{min-width:0;margin:7px 0 2px;padding:12px 12px 13px;border:1px solid #e0c6ce;border-radius:15px;background:#fffaf46b}
.hours-caption{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:0 0 11px;font-size:11px;color:#a26d82;letter-spacing:1px}.hours-caption>span{font-size:8px;letter-spacing:.3px;color:#b5959f}
.hour-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px}
.hour-option{position:relative;display:flex;align-items:center;justify-content:center;gap:3px;min-height:40px;border:1px solid #dfc6ce;border-radius:10px;background:#fffaf48a;color:#a6818e;font:12px Georgia,serif;cursor:pointer;transition:background .18s,border-color .18s,color .18s}
.hour-option:hover{border-color:#c2899f;background:#fffaf4}.hour-option input{position:absolute;inset:0;width:100%;height:100%;opacity:0;margin:0;cursor:pointer}
.hour-option svg{position:absolute;right:4px;top:4px;width:9px;height:9px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;opacity:0}
.hour-option:has(input:checked){background:#c77b94;border-color:#bb6c89;color:#fffaf5;box-shadow:0 3px 10px #c27d9420}.hour-option:has(input:checked) svg{opacity:1}.hour-option:has(input:focus-visible){outline:3px solid #a45d7a;outline-offset:2px}
@media(min-width:1500px){.schedule-panel,.confirmation-panel{top:17%;max-height:calc(100svh - 190px)}}
@media(max-width:700px){
 .schedule-panel,.confirmation-panel{top:104px;max-height:none;overflow:visible;padding:0;width:84%}
 .scene:is([data-step='schedule'],[data-step='confirmed']) .kitty{bottom:90px}
 .day-option .time-name{gap:14px}.day-option .day-selection{font-size:10px;letter-spacing:.4px}
 .hours-panel{padding:12px 10px;border-radius:13px}.hours-caption{font-size:10px;letter-spacing:.6px;margin-bottom:11px}.hours-caption>span{font-size:7px;letter-spacing:0}
 .hour-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.hour-option{min-height:44px;font-size:13px}
 .chosen-times{gap:8px}.chosen-times li{font-size:10px;padding:10px 12px}
}
@media(prefers-reduced-motion:reduce){.day-chevron,.hour-option{transition:none}}
.reply-details{margin:0 0 17px;border:1px solid #dec3cc;border-radius:13px;background:#fffaf45c;padding:0 14px}.reply-details summary{cursor:pointer;padding:13px 0;font-size:10px;letter-spacing:1px;color:#a97f8f}.reply-details summary>span{float:right;font-size:9px;color:#bb9ba6}.reply-fields{display:grid;gap:12px;padding:0 0 15px}.reply-fields label{font-size:10px;color:#a78190;display:grid;gap:7px;letter-spacing:1px}.reply-fields input,.reply-fields textarea{width:100%;border:1px solid #dfc6ce;border-radius:9px;background:#fffcf7cc;padding:11px 12px;color:#805d6a;font:12px/1.6 inherit;resize:vertical;letter-spacing:.3px}.reply-fields input::placeholder,.reply-fields textarea::placeholder{color:#baa0a7;font-size:10px}.submission-privacy{font-size:9px;color:#b19aa1;line-height:1.7;margin:14px 0 4px;letter-spacing:.5px}.submit-error{padding:12px;border:1px solid #dfb5c0;background:#fff6f1;color:#a26078;border-radius:10px;font-size:11px;line-height:1.8}.previous-submit{font-size:10px;line-height:1.8;color:#a4798d}.date-actions button[disabled]{cursor:wait}.date-actions button#confirm-times[disabled]{cursor:default}.date-actions:has(#confirm-times[disabled]){opacity:.8}
@media(max-width:700px){.submission-privacy{text-align:center;font-size:8px}.reply-details summary{font-size:9px}}
