:root{--pk:#EE1881;--pk2:#EF2087;--ink:#111827;--body:#4B5563;--mut:#6B7280;--line:#E5E7EB;--fp:#C8D0E4;--fp2:#B8C0D4;--ok:#22C55E;--warn:#F59E0B;--glow:#FCECF4;--wash:#F8F8F8;--sh:0 12px 40px rgba(17,24,39,.08),0 2px 8px rgba(17,24,39,.04)}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%;overflow:hidden;background:#F6F6F8;font-family:Inter,system-ui,-apple-system,"Segoe UI",Helvetica,Arial,sans-serif;color:var(--ink);-webkit-font-smoothing:antialiased}
svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}
a{cursor:pointer;color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer;border:0;background:none;color:inherit}
#app{position:absolute;left:50%;top:50%;width:1440px;height:900px;transform-origin:0 0;overflow:hidden;background:#FBFBFC}
.wash{position:absolute;inset:0;background:radial-gradient(640px 520px at 47% 52%,#FCE3EF 0,rgba(252,236,244,.65) 40%,rgba(252,236,244,0) 72%),radial-gradient(900px 600px at 90% 10%,#F3F5FA 0,rgba(243,245,250,0) 70%),linear-gradient(#FDFDFE,#F7F7F9);transition:background-position 1s}
.grain{position:absolute;inset:0;opacity:.35;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3CfeColorMatrix values='0 0 0 0 .5 0 0 0 0 .5 0 0 0 0 .55 0 0 0 .06 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
#particles{position:absolute;inset:0;pointer-events:none;z-index:6}
#particles i{position:absolute;width:6px;height:6px;border-radius:2px;background:var(--pk);opacity:.0;animation:float linear infinite}
@keyframes float{0%{transform:translate(0,0) rotate(0);opacity:0}10%{opacity:.55}90%{opacity:.45}100%{transform:translate(var(--dx),-260px) rotate(320deg);opacity:0}}

/* header */
.top{position:absolute;left:40px;right:40px;top:18px;height:52px;display:flex;align-items:center;z-index:20}
.brand{display:flex;align-items:center;gap:12px}
.brand img{width:40px;height:40px;border-radius:10px;box-shadow:0 6px 18px rgba(238,24,129,.28)}
.brand b{display:block;font-size:20px;font-weight:700;letter-spacing:-.02em}
.brand small,.fb small,.made small{display:block;font-size:9.5px;letter-spacing:.18em;color:var(--mut);font-weight:600;margin-top:2px}
.tabs{display:flex;gap:34px;margin-left:72px}
.tabs a{font-size:13px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--body);padding:8px 0;position:relative;transition:color .3s}
.tabs a:after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;border-radius:2px;background:var(--pk);transform:scaleX(0);transition:transform .35s}
.tabs a.on{color:var(--ink)}.tabs a.on:after{transform:scaleX(1)}
.chips{margin-left:auto;display:flex;gap:10px;align-items:center}
.chip{display:flex;align-items:center;gap:7px;height:36px;padding:0 14px;border-radius:999px;background:#fff;border:1px solid var(--line);font-size:13px;color:var(--body);box-shadow:0 2px 8px rgba(17,24,39,.04)}
.chip b{color:var(--ink);font-weight:600}.chip svg{color:var(--pk)}
.icon-btn{width:36px;height:36px;display:grid;place-items:center;color:var(--body)}.icon-btn svg{width:20px;height:20px}
.dot{width:8px;height:8px;border-radius:50%;display:inline-block;flex:none}
.dot.live{background:var(--ok);box-shadow:0 0 0 3px rgba(34,197,94,.18);animation:pulse 2s infinite}
.dot.heat{background:linear-gradient(90deg,#22C55E,#F59E0B,#EE1881)}
.dot.sens{background:var(--pk);box-shadow:0 0 0 3px rgba(238,24,129,.18)}
@keyframes pulse{50%{box-shadow:0 0 0 6px rgba(34,197,94,0)}}

/* stage */
#stage{position:absolute;left:0;top:0;width:780px;height:690px;transform-origin:0 0;z-index:5;transition:transform 1.05s cubic-bezier(.65,.02,.2,1)}
#stage canvas{width:780px;height:690px;display:block;cursor:grab}
#stage canvas:active{cursor:grabbing}
#stage[data-pos=home]{transform:translate(286px,66px) scale(.94)}
#stage[data-pos=spaces]{transform:translate(-20px,420px) scale(.58)}
#stage[data-pos=week]{transform:translate(968px,425px) scale(.6)}
#stage[data-pos=day]{transform:translate(140px,64px) scale(1)}
#stage[data-pos=insights]{transform:translate(250px,70px) scale(1)}
#stage[data-pos=thanks]{transform:translate(140px,64px) scale(1)}
.here{position:absolute;left:300px;top:20px;font-size:22px;color:var(--pk);font-weight:600;opacity:0;transition:opacity .5s;display:flex;align-items:flex-end;gap:6px;transform:rotate(-6deg)}
.here svg{width:44px;height:34px;stroke-width:2.4}
#stage[data-pos=spaces] .here,#stage[data-pos=week] .here{opacity:1;transition-delay:.9s}
.drag-hint{position:absolute;left:50%;bottom:24px;transform:translateX(-50%);display:flex;gap:6px;align-items:center;font-size:12px;color:var(--mut);opacity:.0;transition:opacity .4s}
#tags{position:absolute;inset:0;pointer-events:none}
.tag3d{position:absolute;transform:translate(-50%,-100%);background:#fff;border:1px solid var(--line);border-radius:12px;padding:6px 10px 6px 8px;font-size:11.5px;white-space:nowrap;box-shadow:var(--sh);display:flex;align-items:center;gap:7px;transition:opacity .35s;pointer-events:auto}
.tag3d:after{content:"";position:absolute;left:50%;bottom:-16px;width:1.5px;height:16px;background:var(--pk);transform:translateX(-50%)}
.tag3d:before{content:"";position:absolute;left:50%;bottom:-20px;width:6px;height:6px;border-radius:50%;background:var(--pk);transform:translateX(-50%)}
.tag3d b{font-weight:600}.tag3d span{color:var(--mut)}
#stage:not([data-pos=home]):not([data-pos=insights]):not([data-pos=day]) .tag3d{opacity:0}
.tag3d.desk-pop{flex-direction:column;align-items:flex-start;gap:4px;padding:10px 12px;border-radius:16px;pointer-events:auto}
.tag3d.desk-pop button{margin-top:4px}

.layers{position:absolute;left:470px;top:772px;z-index:12;display:flex;gap:6px;padding:5px;background:#fff;border:1px solid var(--line);border-radius:999px;box-shadow:var(--sh);transition:opacity .5s,transform .6s}
.layers button{display:flex;align-items:center;gap:7px;height:32px;padding:0 14px;border-radius:999px;font-size:12.5px;font-weight:500;color:var(--body)}
.layers button.on{background:#FDEAF3;color:var(--pk)}
.layers svg{width:15px;height:15px}
body[data-page=spaces] .layers,body[data-page=week] .layers{opacity:0;transform:translateY(20px);pointer-events:none}
body[data-page=day] .layers{left:330px}
body[data-page=insights] .layers{left:450px}
#toasts{position:absolute;left:1004px;top:678px;width:396px;z-index:14;display:flex;flex-direction:column;gap:8px;pointer-events:none}
body[data-page=spaces] #toasts,body[data-page=week] #toasts{opacity:0}
body[data-page=day] #toasts{left:40px;top:96px}
body[data-page=insights] #toasts{left:52px;top:290px;width:300px}
.toast{background:#fff;border:1px solid var(--line);border-radius:16px;padding:10px 14px;display:flex;gap:10px;align-items:center;box-shadow:var(--sh);font-size:12.5px;color:var(--body);animation:tin .5s cubic-bezier(.2,.9,.3,1.3) both}
.toast b{color:var(--ink);font-weight:600;display:block;font-size:13px}
.toast .ic{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;flex:none;background:#FDEAF3;color:var(--pk)}
.toast .ic.g{background:#E8F8EE;color:#16A34A}.toast .ic.a{background:#FEF3E2;color:#D97706}
.toast.out{animation:tout .4s ease both}
@keyframes tin{from{opacity:0;transform:translateY(-10px) scale(.96)}}
@keyframes tout{to{opacity:0;transform:translateY(-8px)}}

/* pages */
.page{position:absolute;left:0;top:0;width:1440px;height:900px;pointer-events:none;z-index:10}
.page>*{transition:opacity .55s,transform .7s cubic-bezier(.2,.8,.2,1);opacity:0;transform:translateY(16px)}
.page.active>*{opacity:1;transform:none;pointer-events:auto}
.page.active>*:nth-child(2){transition-delay:.18s}.page.active>*:nth-child(3){transition-delay:.3s}
.left{position:absolute;left:52px;top:118px;width:300px}
.left.narrow{width:260px}
.eyebrow{font-size:11px;letter-spacing:.14em;font-weight:600;color:var(--mut);display:flex;align-items:center;gap:7px}
.eyebrow svg{color:var(--pk);width:14px;height:14px}
.eyebrow.pk,.pk{color:var(--pk)}
h1{font-size:46px;line-height:1.04;letter-spacing:-.035em;font-weight:800;margin:14px 0 14px}
h1 em{font-style:normal;color:var(--pk)}
h1.md{font-size:50px;margin:18px 0 14px}
.sub{font-size:15px;line-height:1.55;color:var(--body);max-width:270px}
.menu{list-style:none;margin-top:26px;display:flex;flex-direction:column;gap:9px;width:236px}
.menu a{display:flex;align-items:center;gap:12px;height:44px;padding:0 16px;border-radius:14px;background:#fff;border:1px solid var(--line);font-size:13px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;box-shadow:0 2px 8px rgba(17,24,39,.03);transition:all .25s}
.menu a span:last-child{margin-left:auto;color:var(--mut);font-weight:400}
.menu a:hover{transform:translateX(3px);border-color:#F7C3DC}
.menu a.on{background:var(--pk2);border-color:var(--pk2);color:#fff;box-shadow:0 8px 24px rgba(238,24,129,.35)}
.menu a.on span:last-child{color:#fff}
.badge{min-width:18px;height:18px;border-radius:999px;background:var(--pk);color:#fff;font-size:10.5px;font-weight:700;display:inline-grid;place-items:center;padding:0 5px;margin-left:8px;transition:transform .3s}
.menu a.on .badge{background:#fff;color:var(--pk)}
.badge.bump{animation:bump .5s}
@keyframes bump{40%{transform:scale(1.5)}}
.note{position:relative;margin-top:26px;width:236px;background:#fff;border:1px dashed #F3B4D2;border-radius:16px;padding:14px 16px;font-size:13px;line-height:1.45;color:var(--body);display:flex;flex-direction:column;gap:10px;transform:rotate(-1.2deg)}
.note b{color:var(--ink)}.note span{color:var(--mut);font-size:12px}
.pin{position:absolute;top:-7px;left:50%;width:12px;height:12px;border-radius:50%;background:var(--pk);box-shadow:0 2px 4px rgba(0,0,0,.2)}
.avs{display:flex;align-items:center}
.avs i,.avs b{width:28px;height:28px;border-radius:50%;border:2px solid #fff;margin-right:-9px;background:radial-gradient(circle at 50% 38%,#fff 0 18%,transparent 19%),radial-gradient(circle at 50% 100%,#fff 0 38%,transparent 39%),var(--c,#B8C0D4)}
.avs i:nth-child(1){--c:#9AA6C2}.avs i:nth-child(2){--c:#EE1881}.avs i:nth-child(3){--c:#6B7280}.avs i:nth-child(4){--c:#C8D0E4}
.avs b{background:#F3F4F8;font-size:10.5px;color:var(--body);display:grid;place-items:center;font-weight:600}

.right{position:absolute;right:40px;top:92px;width:396px;display:flex;flex-direction:column;gap:14px}
.card{background:#fff;border:1px solid var(--line);border-radius:24px;box-shadow:var(--sh);padding:18px 20px}
.hero-card{position:relative;background:linear-gradient(120deg,#FFF5FA,#FDE4F0);border-color:#F8D0E3;height:206px;overflow:hidden;cursor:pointer}
.hero-card h3{font-size:28px;line-height:1.05;letter-spacing:-.03em;font-weight:800;margin:10px 0 8px;color:var(--ink)}
.hero-card p{font-size:12.5px;color:var(--body);max-width:210px;line-height:1.45;margin-bottom:12px}
.hero-art{position:absolute;right:22px;top:26px}
.cal-mini{width:96px;height:112px;border-radius:18px;background:#fff;box-shadow:0 14px 30px rgba(238,24,129,.18);display:flex;flex-direction:column;align-items:center;justify-content:center;transform:rotate(6deg);border-top:22px solid var(--pk)}
.cal-mini b{font-size:11px;letter-spacing:.14em;color:var(--mut);margin-top:-8px}.cal-mini span{font-size:42px;font-weight:800;letter-spacing:-.04em;line-height:1}.cal-mini i{font-style:normal;font-size:10px;letter-spacing:.16em;color:var(--pk);font-weight:700}
.btn{display:inline-flex;align-items:center;gap:8px;height:44px;padding:0 22px;border-radius:999px;font-weight:600;font-size:14px;transition:transform .2s,box-shadow .2s}
.btn.pk{background:var(--pk2);color:#fff;box-shadow:0 8px 24px rgba(238,24,129,.35)}
.btn.pk:hover{transform:translateY(-1px);box-shadow:0 12px 28px rgba(238,24,129,.42)}
.btn.sm{height:34px;padding:0 16px;font-size:12.5px}
.btn svg{width:16px;height:16px}
.row-h{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
.row-h>a{font-size:12px;font-weight:600;color:var(--body);letter-spacing:.04em}
.thumbs{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.thumb{cursor:pointer;text-align:left}
.thumb .im{aspect-ratio:1;border-radius:14px;background:#F5F6FA;display:grid;place-items:center;overflow:hidden;transition:transform .25s}
.thumb:hover .im{transform:translateY(-3px)}
.thumb img{width:100%;height:100%;object-fit:contain}
.thumb b{display:block;font-size:12px;font-weight:600;margin-top:7px}.thumb span{font-size:11px;color:var(--mut)}
.now{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.now div{background:#F7F8FB;border-radius:14px;padding:10px 10px}
.now b{font-size:22px;font-weight:700;letter-spacing:-.02em;display:block}.now span{font-size:11px;color:var(--mut)}

/* spaces */
.back{font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--body)}
.back.sm{font-size:11px;display:inline-block;margin-bottom:14px}
.panel{position:absolute;left:330px;top:96px;width:1072px;height:716px}
#spacesPanel{background:#fff;border:1px solid var(--line);border-radius:28px;box-shadow:var(--sh);overflow:hidden}
.grid-view,.detail-view{position:absolute;inset:0;padding:24px 28px;transition:opacity .45s,transform .55s cubic-bezier(.2,.8,.2,1)}
.detail-view{opacity:0;pointer-events:none;transform:scale(.98)}
#spacesPanel.det .grid-view{opacity:0;pointer-events:none;transform:scale(1.02)}
#spacesPanel.det .detail-view{opacity:1;pointer-events:auto;transform:none}
.filters{display:flex;gap:6px}
.filters button{height:30px;padding:0 14px;border-radius:999px;font-size:12px;font-weight:500;border:1px solid var(--line);color:var(--body)}
.filters button.on{background:var(--ink);border-color:var(--ink);color:#fff}
.space-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:6px}
.sp{border-radius:20px;padding:10px;transition:transform .3s,box-shadow .3s,opacity .3s;cursor:pointer;position:relative}
.sp:hover{transform:translateY(-4px);box-shadow:var(--sh)}
.sp .im{aspect-ratio:1.12;border-radius:16px;background:radial-gradient(circle at 50% 60%,#fff,#F2F4F9);display:grid;place-items:center;overflow:hidden}
.sp img{width:100%;height:100%;object-fit:contain;transition:transform .5s}
.sp:hover img{transform:scale(1.06) rotate(-2deg)}
.sp h4{font-size:14px;font-weight:600;margin:10px 4px 2px}
.sp .m{font-size:12px;color:var(--mut);margin:0 4px;display:flex;justify-content:space-between;align-items:center}
.sp .plus{width:28px;height:28px;border-radius:50%;background:var(--pk2);color:#fff;display:grid;place-items:center;font-size:18px;box-shadow:0 6px 14px rgba(238,24,129,.3)}
.sp.hide{display:none}
.det-canvas{position:absolute;left:24px;top:24px;width:560px;height:540px;border-radius:22px;background:radial-gradient(circle at 50% 62%,#fff 0,#FDF1F7 45%,#F4F5FA 100%)}
.det-canvas canvas{width:560px;height:540px;display:block;cursor:grab}
.det-hint{position:absolute;bottom:14px;left:0;right:0;text-align:center;font-size:12px;color:var(--mut);letter-spacing:.04em}
.det-info{position:absolute;left:620px;top:44px;width:410px}
.det-info h2{font-size:38px;letter-spacing:-.035em;line-height:1.05;font-weight:800;margin:10px 0 8px}
.det-meta{font-size:14px;font-weight:600;color:var(--pk);margin-bottom:14px}
.det-info p{font-size:14px;line-height:1.6;color:var(--body);margin-bottom:16px}
.tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:18px}
.tags span{font-size:11px;letter-spacing:.06em;text-transform:uppercase;font-weight:600;padding:6px 10px;border:1px solid #F5C2DA;border-radius:999px;color:#C2185B;background:#FFF7FB}
.opts{display:flex;gap:8px;margin-bottom:20px}
.opts button{height:36px;padding:0 16px;border-radius:12px;border:1px solid var(--line);font-size:13px;color:var(--body);background:#fff}
.opts button.on{border-color:var(--pk);color:var(--pk);background:#FDEAF3;font-weight:600}
.det-actions{display:flex;gap:12px;align-items:center}
.step{display:flex;align-items:center;gap:4px;height:44px;padding:0 6px;border:1px solid var(--line);border-radius:999px}
.step button{width:32px;height:32px;border-radius:50%;font-size:18px;color:var(--body)}
.step span{min-width:18px;text-align:center;font-weight:600}
.step small{font-size:11px;color:var(--mut);margin-right:8px}
.avail{margin-top:16px;font-size:12.5px;color:var(--mut);display:flex;align-items:center;gap:8px}
.det-strip{position:absolute;left:24px;right:24px;bottom:22px;height:110px;border-top:1px solid var(--line);padding-top:14px;display:flex;gap:12px;justify-content:center}
.det-strip button{width:84px;height:84px;border-radius:16px;background:#F5F6FA;border:2px solid transparent;overflow:hidden;transition:all .25s}
.det-strip button.on{border-color:var(--pk);background:#FFF5FA;transform:translateY(-3px)}
.det-strip img{width:100%;height:100%;object-fit:contain}
.fly{position:absolute;z-index:50;width:80px;height:80px;border-radius:18px;background:#fff;box-shadow:var(--sh);pointer-events:none}
.fly img{width:100%;height:100%;object-fit:contain}

/* week */
.calendar{position:absolute;left:64px;top:96px;width:770px;height:716px;padding:26px 30px;transform-origin:30% 20%}
.page.active>.calendar{transform:rotate(-.6deg)}
.tape{position:absolute;width:84px;height:24px;top:-10px;opacity:.85;border-radius:3px}
.tape.t1{left:40px;background:repeating-linear-gradient(90deg,#F9C6DD 0 8px,#FCDCEA 8px 16px);transform:rotate(-4deg)}
.tape.t2{right:60px;background:repeating-linear-gradient(90deg,#C8D0E4 0 8px,#DCE2EE 8px 16px);transform:rotate(5deg)}
.cal-head{display:flex;align-items:center;gap:14px;margin-bottom:16px}
.cal-head h2{font-size:40px;font-weight:800;letter-spacing:-.035em}
.cal-head h2 small{font-size:13px;color:var(--mut);letter-spacing:.14em;font-weight:600;margin-left:6px}
.cal-head .eyebrow{margin-left:auto}
.round{width:36px;height:36px;border-radius:50%;border:1px solid var(--line);font-size:18px;color:var(--body);background:#fff}
.cal-dow{display:grid;grid-template-columns:repeat(7,1fr);border-bottom:1.5px solid var(--ink);padding-bottom:8px}
.cal-dow span{font-size:11px;font-weight:600;letter-spacing:.12em;color:var(--body);padding-left:8px}
.cal-dow .we{color:var(--mut)}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);grid-auto-rows:94px}
.cd{border-right:1px dashed var(--line);border-bottom:1px dashed var(--line);padding:8px;position:relative;cursor:pointer;transition:background .25s}
.cd:nth-child(7n){border-right:0}
.cd:hover{background:#FFF7FB}
.cd .n{font-size:15px;font-weight:500}
.cd.mute .n{color:#C4C8D0}.cd.we .n{color:var(--mut)}
.cd.we{background:repeating-linear-gradient(135deg,transparent 0 8px,rgba(200,208,228,.12) 8px 9px)}
.cd.today .n{width:28px;height:28px;border:1.5px solid var(--pk);border-radius:50%;display:grid;place-items:center;color:var(--pk);margin:-4px 0 0 -6px}
.cd.sel{background:#FDEAF3}
.cd .ev{position:absolute;left:8px;right:8px;bottom:22px;display:flex;flex-direction:column;align-items:center;gap:3px;font-size:10.5px;text-align:center;color:var(--body);line-height:1.15}
.cd .ev svg{width:22px;height:22px;color:var(--pk);stroke-width:1.6}
.cd .bar{position:absolute;left:8px;right:8px;bottom:9px;height:4px;border-radius:4px;background:#EEF0F5;overflow:hidden}
.cd .bar i{display:block;height:100%;border-radius:4px}
.cal-foot{position:absolute;bottom:20px;left:30px;font-size:12px;color:var(--mut);display:flex;gap:8px;align-items:center}
.side{position:absolute;left:870px;top:110px;width:520px}
.ticket{margin-top:12px;display:flex;padding:0;overflow:hidden;min-height:176px}
.ticket .stub{width:120px;background:linear-gradient(160deg,#F43F95,#EE1881);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;position:relative}
.ticket .stub:after{content:"";position:absolute;right:-6px;top:0;bottom:0;width:12px;background:radial-gradient(circle at 6px 8px,#fff 4px,transparent 4.5px) 0 0/12px 16px repeat-y}
.ticket .stub small{font-size:11px;letter-spacing:.16em;font-weight:600;opacity:.9}.ticket .stub b{font-size:50px;font-weight:800;letter-spacing:-.04em;line-height:1}
.ticket .tb{padding:20px 22px;flex:1}
.ticket h3{font-size:24px;font-weight:800;letter-spacing:-.03em;margin-bottom:4px}
.ticket .meta{font-size:11px;letter-spacing:.12em;color:var(--mut);font-weight:600;margin-bottom:10px}
.ticket p{font-size:13px;line-height:1.5;color:var(--body);margin-bottom:14px}
.ticket .fl{display:flex;justify-content:space-between;align-items:center}
.ticket .left-n{font-size:13px;color:var(--body)}.ticket .left-n b{color:var(--pk);font-size:16px}
.ticket-in{animation:tk .6s cubic-bezier(.2,.9,.3,1.2)}
@keyframes tk{from{opacity:0;transform:translateX(18px) rotate(1deg)}}

/* my day */
.day-panel{left:900px;top:92px;width:500px;height:724px;padding:22px 24px;overflow:hidden}
.day-list,.thanks{position:absolute;inset:22px 24px;transition:opacity .5s,transform .6s}
.thanks{opacity:0;pointer-events:none;transform:translateY(16px);display:flex;flex-direction:column;align-items:center;text-align:center;padding-top:34px}
.day-panel.done .day-list{opacity:0;pointer-events:none;transform:translateY(-12px)}
.day-panel.done .thanks{opacity:1;pointer-events:auto;transform:none}
.day-list h2{font-size:32px;letter-spacing:-.035em;font-weight:800;margin:-2px 0 14px}
.pill{font-style:normal;font-size:10.5px;letter-spacing:.08em;padding:3px 9px;border-radius:999px;background:#FDEAF3;color:var(--pk);font-weight:700;margin-left:4px}
#dayItems{display:flex;flex-direction:column;gap:9px;max-height:300px}
.di{display:flex;align-items:center;gap:12px;padding:8px 12px 8px 8px;border:1px solid var(--line);border-radius:16px;animation:tin .5s both;background:#fff}
.di img{width:54px;height:54px;border-radius:12px;background:#F5F6FA;object-fit:contain}
.di .t{flex:1}.di .t b{font-size:14px;font-weight:600;display:block}.di .t span{font-size:11px;letter-spacing:.06em;color:var(--mut);text-transform:uppercase}
.di .time{font-size:12.5px;font-weight:600;color:var(--ink);background:#F5F6FA;padding:6px 10px;border-radius:999px}
.di .x{color:#C4C8D0;font-size:16px;padding:4px}
.di.free{background:#FFF5FA;border-color:#F6C3DB}
.gift{margin-top:12px;border:1px dashed #F3B4D2;border-radius:16px;padding:12px 14px;font-size:12.5px;color:var(--body);display:flex;align-items:center;justify-content:space-between;gap:10px}
.gift b{color:var(--pk)}.gift svg{width:26px;height:26px;color:var(--pk)}
.sum{margin-top:14px;border-top:1px dashed var(--line);padding-top:12px;display:flex;flex-direction:column;gap:7px}
.sum div{display:flex;justify-content:space-between;font-size:12.5px;color:var(--body)}.sum b{color:var(--ink);font-weight:600}.sum b.pk{color:var(--pk)}
.day-foot{position:absolute;left:0;right:0;bottom:0;display:flex;align-items:flex-end;justify-content:space-between}
.day-foot small{font-size:10.5px;letter-spacing:.14em;color:var(--mut);font-weight:600}.day-foot .big{display:block;font-size:30px;letter-spacing:-.03em;color:var(--pk);font-weight:800}
.day-foot .btn{font-size:13px;padding:0 18px}
.thanks h2{font-size:40px;letter-spacing:-.04em;font-weight:800;margin:8px 0 10px}
.thanks p{font-size:14px;color:var(--body);line-height:1.55;max-width:380px;margin-bottom:20px}
.pass{display:flex;gap:16px;align-items:center;text-align:left;padding:14px;border:1px solid var(--line);border-radius:20px;box-shadow:var(--sh);margin-bottom:16px}
.pass canvas{width:110px;height:110px;border-radius:12px}
.pass b{display:block;font-size:16px;margin-bottom:6px}.pass span{display:block;font-size:12.5px;color:var(--body);margin-bottom:4px}.pass span.pk{color:var(--pk);font-weight:600}
.thanks ul{list-style:none;width:100%;max-width:400px;margin-bottom:20px;font-size:13px;color:var(--body)}
.thanks li{display:flex;justify-content:space-between;padding:7px 0;border-bottom:1px dashed var(--line)}.thanks li b{color:var(--ink)}

/* insights */
.dash{position:absolute;right:40px;top:92px;width:410px;display:grid;grid-template-columns:1fr 1fr;gap:12px}
.dash .card{padding:16px 18px;border-radius:22px}
.kpi b{display:block;font-size:42px;font-weight:800;letter-spacing:-.04em;margin:6px 0 2px}.kpi b small{font-size:20px;color:var(--mut)}
.kpi p{font-size:12px;color:var(--mut);line-height:1.4}
.spark{width:100%;height:42px}
.floors,.hood{grid-column:span 2}
.bar-r{display:flex;align-items:center;gap:10px;margin-top:10px;font-size:12.5px;color:var(--body)}
.bar-r span:first-child{width:118px}
.bar-r .tr{flex:1;height:10px;border-radius:6px;background:#EEF0F5;overflow:hidden}
.bar-r .tr i{display:block;height:100%;border-radius:6px;width:0;transition:width 1.2s cubic-bezier(.2,.8,.2,1)}
.bar-r b{width:38px;text-align:right;color:var(--ink);font-weight:600}
.soon{grid-column:span 2;background:linear-gradient(120deg,#fff,#FFF4F9);border-style:dashed;border-color:#F3B4D2}
.soon>div{display:flex;justify-content:space-between;align-items:center}
.soon p{font-size:12.5px;color:var(--body);margin-top:8px;line-height:1.5}
.soon-pill{background:var(--pk);color:#fff}

/* footer */
.bottom{position:absolute;left:36px;right:36px;bottom:16px;height:58px;border-radius:20px;background:#fff;border:1px solid var(--line);box-shadow:var(--sh);display:flex;align-items:center;padding:0 22px;z-index:20}
.fb,.made{display:flex;align-items:center;gap:10px}
.fb img{width:28px;height:28px;border-radius:8px}.fb b{font-size:14px;font-weight:700}
.bottom .tag{margin-left:auto;margin-right:40px;font-size:15px;color:var(--ink);font-weight:500;letter-spacing:-.01em}
.made{background:#F7F8FB;border-radius:12px;padding:6px 12px;margin-right:34px}.made img{width:22px;height:22px;border-radius:6px}.made b{font-size:12px}.made small{margin:0;font-size:8.5px}
.ico{display:flex;gap:28px}
.ico a{color:var(--body);position:relative;transition:color .3s}.ico a.on{color:var(--pk)}
.ico svg{width:21px;height:21px}
.ico .badge{position:absolute;top:-9px;right:-12px;margin:0}
