:root{
  --pink:#FF3D9A;--pink-2:#FF8CC6;--pink-deep:#D81B7E;--sky:#9ED8FF;--lilac:#C9B8FF;--butter:#FFD84D;--mint:#A8F0D1;
  --cream:#FFF3F8;--plum:#3A1240;--plum-2:#6B3A73;--white:#fff;--err:#E0283C;
  --disp:"Fredoka",ui-rounded,system-ui,sans-serif;--ui:"Nunito",ui-rounded,system-ui,sans-serif;
  --bw:4px;--r:28px;--hh:68px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--hh) + 12px)}
body{margin:0;background:var(--cream);color:var(--plum);font:700 18px/1.5 var(--ui);overflow-x:hidden;
  cursor:url(/assets/cursor.png) 16 16,auto;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
a,button,[role=button],[onclick],summary,label,.ca,select,input[type=range],input[type=checkbox]{cursor:pointer}
button{font:inherit;color:inherit}
.num,.tab{font-family:var(--ui);font-variant-numeric:tabular-nums;font-weight:900}
h1,h2,h3{font-family:var(--disp);font-weight:700;margin:0;letter-spacing:-.01em;line-height:1}
p{margin:0}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
:focus-visible{outline:3px solid var(--pink-deep);outline-offset:3px;border-radius:12px}

/* ---------------------------------------------------------------- buttons: jelly pills */
.btn{--bg:var(--pink);--fg:#fff;position:relative;display:inline-flex;align-items:center;justify-content:center;gap:10px;
  min-height:56px;padding:0 26px;border:var(--bw) solid var(--plum);border-radius:999px;background:var(--bg);color:var(--fg);
  font:700 20px/1 var(--disp);text-decoration:none;white-space:nowrap;box-shadow:0 7px 0 var(--plum);
  transition:transform .12s ease,box-shadow .12s ease,background-color .15s;isolation:isolate;-webkit-tap-highlight-color:transparent}
.btn::before{content:"";position:absolute;left:16px;right:40%;top:7px;height:7px;border-radius:9px;background:rgba(255,255,255,.55);z-index:-1;pointer-events:none}
.btn:hover{transform:translateY(-2px);box-shadow:0 9px 0 var(--plum)}
.btn:active{transform:translateY(5px);box-shadow:0 2px 0 var(--plum)}
.btn[disabled]{opacity:.55;pointer-events:none}
.btn.white{--bg:#fff;--fg:var(--plum)}
.btn.butter{--bg:var(--butter);--fg:var(--plum)}
.btn.mint{--bg:var(--mint);--fg:var(--plum)}
.btn.sm{min-height:44px;padding:0 18px;font-size:17px;box-shadow:0 5px 0 var(--plum)}
.btn.sm::before{top:5px;height:5px}
.btn.sm:hover{box-shadow:0 7px 0 var(--plum)}
.btn.sm:active{transform:translateY(4px);box-shadow:0 1px 0 var(--plum)}
.btn.icon{width:56px;padding:0}
.btn.sm.icon{width:44px}
.btn svg{width:22px;height:22px;flex:none}
.btn.sm svg{width:18px;height:18px}
.btn .spark{position:absolute;width:14px;height:14px;pointer-events:none;opacity:0;transform:scale(0)}
.btn:hover .spark{animation:pop .5s ease-out}
@keyframes pop{0%{opacity:0;transform:scale(0) rotate(0)}40%{opacity:1;transform:scale(1.1) rotate(20deg)}100%{opacity:0;transform:scale(.6) translateY(-10px) rotate(40deg)}}

/* ---------------------------------------------------------------- CA pill */
.ca{font:inherit;display:inline-flex;align-items:center;gap:10px;min-height:48px;padding:5px 6px 5px 6px;border:var(--bw) solid var(--plum);border-radius:999px;
  background:#fff;color:var(--plum);box-shadow:0 5px 0 var(--plum);max-width:100%;transition:transform .12s,box-shadow .12s}
.ca:hover{transform:translateY(-1px);box-shadow:0 6px 0 var(--plum)}
.ca:active{transform:translateY(3px);box-shadow:0 2px 0 var(--plum)}
.ca b{font:700 15px/1 var(--disp);background:var(--pink);color:#fff;border:3px solid var(--plum);border-radius:999px;padding:7px 11px;letter-spacing:.04em}
.ca code{font:900 16px/1 var(--ui);font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.ca i{font:800 14px/1 var(--ui);font-style:normal;background:var(--cream);border:3px solid var(--plum);border-radius:999px;padding:7px 12px}
.ca.done i{background:var(--mint)}

/* ---------------------------------------------------------------- header */
.hd{position:sticky;top:0;z-index:50;height:var(--hh);background:#fff;border-bottom:var(--bw) solid var(--plum)}
.hd-in{max-width:1440px;margin:0 auto;height:100%;display:flex;align-items:center;gap:18px;padding:0 24px}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none;flex:none}
.logo img{width:40px;height:40px}
.logo span{font:700 23px/1 var(--disp);white-space:nowrap}
.nav{display:flex;gap:4px;margin-left:12px}
.nav a{font:800 16px/1 var(--ui);text-decoration:none;padding:10px 14px;border-radius:999px;border:3px solid transparent;transition:background-color .15s,border-color .15s}
.nav a:hover{background:var(--cream);border-color:var(--plum)}
.nav a[aria-current]{background:var(--pink-2);border-color:var(--plum)}
.hd-r{margin-left:auto;display:flex;align-items:center;gap:10px}
.hd .ca{min-height:44px;box-shadow:0 4px 0 var(--plum)}
.hd .ca code{font-size:14px}.hd .ca b{font-size:13px;padding:6px 9px}.hd .ca i{display:none}
.menu-b{display:none}
.wal{max-width:200px}
.wal .num{font-size:16px}
@media (max-width:1180px){.hd .ca{display:none}}
@media (max-width:900px){
  .nav{display:none}.menu-b{display:inline-flex}
  .nav.open{display:flex;position:absolute;top:calc(var(--hh) - 2px);left:12px;right:12px;flex-direction:column;background:#fff;border:var(--bw) solid var(--plum);border-radius:24px;padding:10px;box-shadow:0 7px 0 var(--plum);margin:0}
  .nav.open a{padding:14px 16px;font-size:18px}
}
@media (max-width:560px){
  :root{--hh:62px}
  .hd-in{padding:0 12px;gap:8px}
  .logo span{display:none}
  .hd-r{gap:8px}
  .hd .btn.sm:not(.icon){padding:0 14px;font-size:16px}
}

/* ---------------------------------------------------------------- shared surfaces */
.plate{background:var(--cream);border:var(--bw) solid var(--plum);border-radius:var(--r);box-shadow:0 8px 0 var(--plum);padding:28px;position:relative}
.plate.white{background:#fff}
.tag{display:inline-flex;align-items:center;gap:6px;font:800 13px/1 var(--ui);letter-spacing:.08em;text-transform:uppercase;padding:6px 10px;border:3px solid var(--plum);border-radius:999px;background:var(--butter)}
.tag.demo{background:var(--lilac)}
.eyebrow{font:800 15px/1 var(--ui);letter-spacing:.12em;text-transform:uppercase;color:var(--pink-deep)}
.big{font-family:var(--disp);font-weight:700;color:#fff;-webkit-text-stroke:calc(var(--sw,12px)) var(--plum);paint-order:stroke fill;
  text-shadow:0 var(--s1,8px) 0 var(--plum),0 var(--s2,13px) 0 var(--pink)}
.lead{font:700 20px/1.45 var(--ui);max-width:34ch}
.wrap{max-width:1280px;margin:0 auto;padding:0 32px;position:relative}
@media (max-width:560px){.wrap{padding:0 16px}.plate{padding:20px;border-radius:22px}.lead{font-size:18px}}

/* stickers float (scene objects only) */
.stk{position:absolute;pointer-events:none;user-select:none;will-change:transform}
.float{animation:flo var(--d,6s) ease-in-out infinite alternate}
@keyframes flo{from{transform:translateY(-8px) rotate(var(--r0,-2deg))}to{transform:translateY(8px) rotate(var(--r1,2deg))}}
.sp{position:absolute;width:var(--z,22px);height:var(--z,22px);pointer-events:none;animation:tw var(--d,2.6s) ease-in-out infinite;animation-delay:var(--dl,0s)}
@keyframes tw{0%,100%{transform:scale(.2);opacity:0}50%{transform:scale(1);opacity:1}}

/* ---------------------------------------------------------------- HERO */
.hero{position:relative;min-height:calc(100svh - var(--hh));overflow:hidden;background:#a9d4ff url(/assets/hero.webp) center bottom/cover no-repeat;display:flex;align-items:center}
.hero .wrap{width:100%;max-width:1440px;padding:40px clamp(16px,4.5vw,72px) 110px;z-index:3}
.hero h1{--sw:18px;--s1:10px;--s2:16px;font-size:clamp(64px,9.2vw,156px);line-height:.9;margin:0 0 26px}
.hero h1 span{display:block}
.hero .lead{margin-bottom:28px;background:rgba(255,255,255,.0)}
.hero-cta{display:flex;flex-wrap:wrap;gap:14px;margin-bottom:22px}
.hero-phone{position:absolute;right:max(4vw,calc(50% - 680px));top:50%;width:min(42vw,620px);aspect-ratio:1;z-index:2;transform:translateY(-54%)}
.hero-phone img.ph{width:100%;height:100%}
.hero-phone .say{position:absolute;left:-6%;bottom:6%;z-index:3}
.say{background:#fff;border:var(--bw) solid var(--plum);border-radius:22px;padding:12px 18px;box-shadow:0 6px 0 var(--plum);font:800 16px/1.3 var(--ui);white-space:nowrap}
.say::after{content:"";position:absolute;right:28px;top:-15px;width:22px;height:22px;background:#fff;border-left:var(--bw) solid var(--plum);border-top:var(--bw) solid var(--plum);transform:rotate(45deg) skew(8deg,8deg);border-radius:4px 0 0 0}
.say .num{font-size:20px;color:var(--pink-deep)}
@media (max-width:900px){
  .hero{align-items:flex-start}
  .hero .wrap{padding-top:clamp(190px,47vw,300px);padding-bottom:90px}
  .hero-phone{left:50%;right:auto;top:8px;width:clamp(180px,46vw,290px);transform:translateX(-50%)}
  .hero-phone .say{left:auto;right:-58%;bottom:34%;font-size:13px;padding:8px 12px;border-radius:16px}
  .say .num{font-size:16px}
  .hero h1{--sw:12px;--s1:7px;--s2:11px;font-size:clamp(52px,15vw,96px);margin-bottom:18px}
  .hero .lead{margin-bottom:20px}
}
@media (max-width:560px){
  .hero .wrap{padding-top:182px;padding-bottom:70px}
  .hero-phone{width:150px;left:16px;transform:none}
  .hero-phone .say{left:calc(100% - 6px);right:auto;bottom:38%}
  .hero-phone .say::after{left:-15px;right:auto;top:calc(50% - 11px);transform:rotate(-45deg) skew(8deg,8deg)}
  .hero h1{font-size:clamp(46px,14.6vw,64px)}
  .hero .lead{font-size:16px;margin-bottom:16px}
  .hero-cta{gap:10px;margin-bottom:16px}
  .hero-cta .btn{min-height:50px;font-size:17px;padding:0 18px}
  .hero-cta .btn.icon{width:50px;padding:0}
  .ca code{font-size:14px}
}

/* ---------------------------------------------------------------- scene sections */
.scene{position:relative;overflow:hidden;padding:120px 0 130px;border-top:var(--bw) solid var(--plum)}
.scene h2{--sw:12px;--s1:7px;--s2:11px;font-size:clamp(46px,5.6vw,80px);line-height:.95;margin:14px 0 18px}
@media (max-width:560px){.scene{padding:80px 0 90px}.scene h2{--sw:9px;--s1:5px;--s2:9px;font-size:clamp(38px,11vw,52px)}}

/* SWIPE */
.s-swipe{background:#ffb08f url(/assets/swipe.webp) right center/cover no-repeat}
.s-swipe .wrap{display:grid;grid-template-columns:minmax(0,470px) minmax(0,440px);gap:64px;align-items:start}
.s-swipe .plate h2{--sw:10px;--s1:6px;--s2:10px;font-size:clamp(42px,4.4vw,64px)}
.taste{display:inline-block;margin-top:22px;background:#fff;border:3px solid var(--plum);border-radius:16px;padding:12px 16px;font:800 16px/1.4 var(--ui);box-shadow:0 4px 0 var(--plum);max-width:100%}
.taste small{display:block;font:800 12px/1 var(--ui);letter-spacing:.1em;text-transform:uppercase;color:var(--pink-deep);margin-bottom:6px}
.deck-wrap{position:relative}
.deck{position:relative;height:430px;touch-action:pan-y}
.card{cursor:pointer;position:absolute;inset:0;background:#fff;border:var(--bw) solid var(--plum);border-radius:30px;box-shadow:0 8px 0 var(--plum);padding:24px;display:flex;flex-direction:column;gap:14px;
  transform-origin:50% 110%;user-select:none;touch-action:pan-y;will-change:transform}
.card:nth-last-child(2){transform:translateY(14px) scale(.96) rotate(2deg)}
.card:nth-last-child(3){transform:translateY(26px) scale(.92) rotate(-3deg)}
.card:nth-last-child(n+4){opacity:0}
.card .top{display:flex;align-items:center;justify-content:space-between;gap:10px}
.card h3{font-size:38px}
.card h3 .num{font-family:var(--ui);font-size:30px;color:var(--pink-deep);margin-left:6px}
.card .meta{font:800 15px/1 var(--ui);color:var(--plum-2)}
.card .bio{font:700 18px/1.45 var(--ui)}
.card .pr{background:var(--cream);border:3px solid var(--plum);border-radius:18px;padding:12px 14px}
.card .pr small{display:block;font:800 12px/1.2 var(--ui);letter-spacing:.08em;text-transform:uppercase;color:var(--pink-deep);margin-bottom:4px}
.card .pr p{font:800 17px/1.35 var(--ui)}
.card .stamp{position:absolute;top:22px;right:22px;font:700 28px/1 var(--disp);padding:6px 14px;border:var(--bw) solid var(--plum);border-radius:14px;opacity:0;transform:rotate(8deg)}
.card .stamp.like{background:var(--mint)}.card .stamp.pass{background:var(--lilac);right:auto;left:22px;transform:rotate(-8deg)}
.deck-btns{display:flex;justify-content:center;gap:22px;margin-top:34px}
@media (max-width:560px){.s-swipe{padding-bottom:50px}.verdict{min-height:0}}
.deck-btns .btn{width:76px;height:76px;padding:0;min-height:0}
.deck-btns .btn img{width:44px;height:42px}
.deck-btns .btn svg{width:30px;height:30px}
.verdict{margin-top:18px;min-height:76px}
.verdict .v{background:#fff;border:3px solid var(--plum);border-radius:18px;padding:12px 16px;box-shadow:0 4px 0 var(--plum);font:800 16px/1.4 var(--ui)}
.verdict .v b{font-family:var(--disp);font-weight:700;margin-right:6px;padding:3px 9px;border-radius:999px;border:3px solid var(--plum)}
.verdict .v b.like{background:var(--mint)}.verdict .v b.pass{background:var(--lilac)}
.deck-end{position:absolute;inset:0;display:none;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:16px;background:rgba(255,255,255,.92);border:var(--bw) dashed var(--plum);border-radius:30px;padding:24px}
.deck-end.on{display:flex}
.deck-end p{font:800 18px/1.4 var(--ui);max-width:28ch}
@media (max-width:900px){.s-swipe{background-position:70% center}.s-swipe .wrap{grid-template-columns:1fr;gap:34px}.deck{height:410px}}
@media (max-width:560px){.deck{height:400px}.card h3{font-size:32px}.card{padding:20px}.card .bio{font-size:16px}}

/* CHAT */
.s-chat{background:linear-gradient(180deg,#bfaeff 0%,#d9ccff 55%,#efe6ff 100%)}
.s-chat .wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,560px);gap:60px;align-items:start}
.s-chat .intro{position:sticky;top:calc(var(--hh) + 60px)}
.thread{position:relative;display:flex;flex-direction:column;gap:14px;padding:26px;background:rgba(255,255,255,.55);border:var(--bw) solid var(--plum);border-radius:34px;box-shadow:0 8px 0 var(--plum)}
.thread .who{display:flex;align-items:center;gap:12px;padding-bottom:14px;border-bottom:3px dashed rgba(58,18,64,.35)}
.thread .who b{font:700 24px/1 var(--disp)}
.thread .who span{font:800 15px/1.3 var(--ui);color:var(--plum-2)}
.thread .who .tag{margin-left:auto}
.cap{align-self:center;font:800 13px/1 var(--ui);letter-spacing:.1em;text-transform:uppercase;background:var(--butter);border:3px solid var(--plum);border-radius:999px;padding:7px 12px;margin:6px 0 2px}
.bb{position:relative;max-width:80%;padding:13px 18px;border:var(--bw) solid var(--plum);border-radius:24px;font:800 17px/1.35 var(--ui);box-shadow:0 5px 0 var(--plum)}
.bb::before{content:"";position:absolute;left:14px;right:34%;top:6px;height:6px;border-radius:9px;background:rgba(255,255,255,.55)}
.bb.me{align-self:flex-end;background:var(--pink);color:#fff;border-bottom-right-radius:8px}
.bb.her{align-self:flex-start;background:#fff;border-bottom-left-radius:8px}
.bb.her::before{background:rgba(255,140,198,.25)}
.typing{align-self:flex-start;display:inline-flex;gap:6px;padding:14px 18px;background:#fff;border:var(--bw) solid var(--plum);border-radius:24px;border-bottom-left-radius:8px}
.typing i{width:9px;height:9px;border-radius:50%;background:var(--pink);animation:dot 1s infinite ease-in-out}
.typing i:nth-child(2){animation-delay:.15s}.typing i:nth-child(3){animation-delay:.3s}
@keyframes dot{0%,100%{transform:translateY(0);opacity:.5}50%{transform:translateY(-4px);opacity:1}}
.dateset{align-self:center;display:flex;align-items:center;gap:14px;background:var(--butter);border:var(--bw) solid var(--plum);border-radius:22px;padding:14px 18px;box-shadow:0 6px 0 var(--plum);margin-top:8px}
.dateset div{display:flex;flex-direction:column;gap:4px;text-align:left}
.dateset b{font:700 22px/1 var(--disp)}.dateset span{font:800 15px/1.3 var(--ui)}
.js .thread .rv{opacity:0;transform:translateY(16px) scale(.96)}
.thread .rv.shown{opacity:1;transform:none;transition:opacity .35s ease,transform .45s cubic-bezier(.3,1.4,.5,1)}
.s-chat .note{margin-top:22px;font:700 17px/1.5 var(--ui);max-width:40ch}
@media (max-width:900px){.s-chat .wrap{grid-template-columns:1fr;gap:30px}.s-chat .intro{position:static}}
@media (max-width:560px){.thread{padding:16px;border-radius:26px}.bb{font-size:16px;max-width:88%}}

/* ACCESS */
.s-access{background:#ffe27a url(/assets/date.webp) right center/cover no-repeat}
.s-access .wrap{display:grid;grid-template-columns:minmax(0,520px) minmax(0,1fr);gap:40px}
.gauge{display:grid;grid-template-columns:200px 1fr;gap:26px;align-items:center}
.gauge svg{width:200px;height:184px;overflow:visible}
.gauge .read .num{display:block;font-size:46px;line-height:1}
.gauge .read small{display:block;font:800 14px/1.3 var(--ui);color:var(--plum-2);margin-top:6px}
.gauge .state{display:inline-block;margin-top:14px;font:700 18px/1 var(--disp);padding:8px 14px;border:3px solid var(--plum);border-radius:999px;background:var(--lilac)}
.gauge .state.on{background:var(--mint)}
.rng{margin-top:22px}
.rng .rl{display:flex;justify-content:space-between;font:800 15px/1 var(--ui);margin-bottom:12px}
input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:40px;background:transparent;outline:none;margin:0}
input[type=range]::-webkit-slider-runnable-track{height:16px;border:3px solid var(--plum);border-radius:999px;background:linear-gradient(90deg,var(--pink) var(--p,50%),#fff var(--p,50%))}
input[type=range]::-moz-range-track{height:10px;border:3px solid var(--plum);border-radius:999px;background:linear-gradient(90deg,var(--pink) var(--p,50%),#fff var(--p,50%))}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;margin-top:-12px;width:34px;height:34px;border-radius:50%;background:var(--butter);border:4px solid var(--plum);box-shadow:0 4px 0 var(--plum)}
input[type=range]::-moz-range-thumb{width:28px;height:28px;border-radius:50%;background:var(--butter);border:4px solid var(--plum)}
.steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:56px;grid-column:1/-1}
.step{background:#fff;border:var(--bw) solid var(--plum);border-radius:24px;box-shadow:0 6px 0 var(--plum);padding:20px}
.step .num{display:flex;width:44px;height:44px;align-items:center;justify-content:center;border:3px solid var(--plum);border-radius:50%;background:var(--pink-2);font-size:22px;margin-bottom:12px}
.step h3{font-size:24px;margin-bottom:6px}
.step p{font:700 16px/1.4 var(--ui)}
@media (max-width:1000px){.s-access{background-position:80% center}.s-access .wrap{grid-template-columns:1fr}.steps{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.gauge{grid-template-columns:1fr;justify-items:center;text-align:center}.gauge svg{width:170px;height:156px}.steps{grid-template-columns:1fr;margin-top:36px}}

/* FINALE */
.s-ring{background:#fc7cce;text-align:center;padding:110px 0 0}
.s-ring h2{font-size:clamp(52px,7vw,110px);--sw:14px;--s1:9px;--s2:14px}
.s-ring .hero-cta{justify-content:center}
.ring-art{width:100%;max-width:none;height:auto;margin-top:-30px;-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 16%);mask-image:linear-gradient(to bottom,transparent 0,#000 16%)}
.ring-foot{background:#fdfbff;padding:0 0 90px;margin-top:-2px}
.ring-foot .board{margin-top:-130px}
.board{max-width:780px;margin:0 auto;text-align:left}
.board h3{font-size:32px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.board h3 small{font:800 14px/1 var(--ui);color:var(--plum-2);margin-left:auto}
table.lb{width:100%;border-collapse:separate;border-spacing:0 8px;margin-top:12px}
.lb th{font:800 13px/1 var(--ui);letter-spacing:.1em;text-transform:uppercase;text-align:left;padding:4px 14px;color:var(--plum-2)}
.lb td{white-space:nowrap;background:#fff;border-top:3px solid var(--plum);border-bottom:3px solid var(--plum);padding:12px 14px;font:900 17px/1 var(--ui);font-variant-numeric:tabular-nums}
.lb td:first-child{border-left:3px solid var(--plum);border-radius:16px 0 0 16px;width:56px}
.lb td:last-child{border-right:3px solid var(--plum);border-radius:0 16px 16px 0}
.lb th:not(:nth-child(2)),.lb td:not(:nth-child(2)){text-align:right}
.lb tr.me td{background:var(--pink-2)}
.empty{display:flex;align-items:center;gap:18px;border:var(--bw) dashed var(--plum);border-radius:22px;padding:20px;background:#fff;margin-top:14px}
.empty img{width:64px;height:auto;flex:none}
.empty p{font:800 17px/1.4 var(--ui)}
@media (max-width:560px){.s-ring{padding:80px 0 0}.ring-art{height:320px;object-fit:cover;margin-top:-10px}.ring-foot{padding-bottom:60px}.ring-foot .board{margin-top:-50px}.s-ring h2{--sw:10px;--s1:6px;--s2:10px}.lb td{padding:11px 10px;font-size:15px}.lb th{padding:4px 10px}.lb td:first-child{width:40px}}

/* ---------------------------------------------------------------- footer */
.ft{background:var(--plum);color:var(--cream);padding:30px 0 34px}
.ft .wrap{display:flex;gap:24px;align-items:center;flex-wrap:wrap;max-width:1440px}
.ft p a{display:inline-block;padding:6px 0}
.ft p{font:700 15px/1.5 var(--ui);flex:1 1 420px;opacity:.92}
.ft nav{display:flex;gap:6px;flex-wrap:wrap}
.ft nav a{font:800 15px/1 var(--ui);text-decoration:none;padding:12px 14px;border-radius:999px;border:3px solid rgba(255,243,248,.35)}
.ft nav a:hover{border-color:var(--cream)}

/* ---------------------------------------------------------------- toasts / modal */
.toasts{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);z-index:90;display:flex;flex-direction:column;gap:10px;width:min(92vw,460px);pointer-events:none}
.toast{pointer-events:auto;background:#fff;border:var(--bw) solid var(--plum);border-radius:20px;padding:14px 18px;box-shadow:0 6px 0 var(--plum);font:800 16px/1.35 var(--ui);animation:tin .3s cubic-bezier(.3,1.4,.5,1)}
.toast.ok{background:var(--mint)}.toast.err{background:#ffd6dc}
@keyframes tin{from{transform:translateY(20px);opacity:0}}
.modal{position:fixed;inset:0;z-index:95;display:none;align-items:center;justify-content:center;padding:16px;background:rgba(58,18,64,.45)}
.modal.on{display:flex}
.modal .plate{width:min(100%,460px);background:#fff;text-align:center}
.modal h3{font-size:32px;margin-bottom:10px}
.modal p{font:700 17px/1.45 var(--ui);margin-bottom:20px}
.modal .x{position:absolute;top:12px;right:12px}
.modal .col{display:flex;flex-direction:column;gap:14px;align-items:stretch}

/* cursor sparkles */
.trail{position:fixed;width:12px;height:12px;pointer-events:none;z-index:99;opacity:0}

/* ---------------------------------------------------------------- APP */
.app-bg{background:linear-gradient(180deg,#a9d4ff 0,#cfe8ff 420px,#ffe9f4 1100px,var(--cream) 100%);min-height:calc(100svh - var(--hh));padding:46px 0 90px}
.app-hd{display:flex;align-items:flex-end;gap:20px;flex-wrap:wrap;margin-bottom:34px}
.app-hd h1{--sw:11px;--s1:6px;--s2:10px;font-size:clamp(44px,5vw,72px)}
.app-hd .who{margin-left:auto;display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.chip{display:inline-flex;align-items:center;gap:8px;background:#fff;border:3px solid var(--plum);border-radius:999px;padding:8px 14px;font:900 15px/1 var(--ui);font-variant-numeric:tabular-nums}
.grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:30px;align-items:start}
.col{display:flex;flex-direction:column;gap:30px;min-width:0}
.plate h2{font-size:34px;margin-bottom:6px}
.plate .sub{font:700 16px/1.45 var(--ui);color:var(--plum-2);margin-bottom:18px}
.totals{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:8px 0 18px}
.tot{background:#fff;border:3px solid var(--plum);border-radius:18px;padding:14px}
.tot .num{display:block;font-size:34px;line-height:1}
.tot small{display:block;font:800 13px/1.2 var(--ui);color:var(--plum-2);margin-top:6px}
.bars{display:grid;gap:12px;margin-bottom:18px}
.bar label{display:flex;justify-content:space-between;font:800 15px/1 var(--ui);margin-bottom:7px}
.bar .tr{height:18px;border:3px solid var(--plum);border-radius:999px;background:#fff;overflow:hidden}
.bar .tr i{display:block;height:100%;width:0;background:var(--pink);border-right:3px solid var(--plum);transition:width .6s ease}
.tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.tabs button{font:800 16px/1 var(--ui);padding:11px 16px;border:3px solid var(--plum);border-radius:999px;background:#fff;transition:background-color .15s,transform .12s}
.tabs button:hover{transform:translateY(-1px)}
.tabs button[aria-selected=true]{background:var(--pink);color:#fff}
.tabs .num{margin-left:6px}
.list{display:flex;flex-direction:column;gap:10px}
.row{display:grid;grid-template-columns:1fr auto;gap:6px 14px;background:#fff;border:3px solid var(--plum);border-radius:18px;padding:14px 16px}
.row b{font:700 20px/1.1 var(--disp)}
.row .st{justify-self:end;font:800 13px/1 var(--ui);text-transform:uppercase;letter-spacing:.08em;padding:6px 10px;border:3px solid var(--plum);border-radius:999px;background:var(--cream)}
.row .st.date_set,.row .st.set{background:var(--butter)}.row .st.date_done,.row .st.done{background:var(--mint)}.row .st.stopped{background:var(--lilac)}
.row p{grid-column:1/-1;font:700 16px/1.4 var(--ui);color:var(--plum-2)}
.row .m{grid-column:1/-1;font:800 14px/1 var(--ui);font-variant-numeric:tabular-nums;color:var(--plum-2)}
.paused{display:flex;gap:14px;align-items:center;flex-wrap:wrap;background:var(--lilac);border:3px solid var(--plum);border-radius:18px;padding:14px 16px;margin-bottom:16px;font:800 16px/1.4 var(--ui)}
.paused .btn{margin-left:auto}
.gate{max-width:640px;margin:20px auto 50px;text-align:center}
.gate img{width:180px;height:180px;margin:0 auto 10px}
.gate p{font:700 18px/1.5 var(--ui);margin:10px auto 22px;max-width:40ch}
.gate .btn{margin:0 auto}

/* form */
.form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.f{display:flex;flex-direction:column;gap:8px;min-width:0}
.f.full{grid-column:1/-1}
.f>span{font:800 15px/1.2 var(--ui);display:flex;justify-content:space-between;gap:10px}
.f>span em{font-style:normal;color:var(--plum-2);font-variant-numeric:tabular-nums}
.in{width:100%;font:700 17px/1.4 var(--ui);color:var(--plum);background:#fff;border:var(--bw) solid var(--plum);border-radius:18px;padding:12px 16px;outline:none;transition:border-color .15s,box-shadow .15s;min-height:52px}
.in:focus{border-color:var(--pink-deep);box-shadow:0 4px 0 var(--pink)}
textarea.in{min-height:120px;resize:vertical}
select.in{appearance:none;-webkit-appearance:none;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='10'%3E%3Cpath d='M2 2l6 6 6-6' fill='none' stroke='%233A1240' stroke-width='3' stroke-linecap='round'/%3E%3C/svg%3E") right 16px center no-repeat;padding-right:42px}
.pair{display:flex;gap:10px;align-items:center}.pair .in{min-width:0}
.seg{display:flex;gap:8px;flex-wrap:wrap}
.seg label{position:relative}
.seg input{position:absolute;opacity:0;inset:0}
.seg span{display:inline-flex;align-items:center;gap:8px;font:800 16px/1 var(--ui);padding:12px 16px;border:3px solid var(--plum);border-radius:999px;background:#fff}
.seg span::before{content:"";width:20px;height:18px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 18'%3E%3Cpath d='M10 16.5 L2.6 9.3 C-.2 6.5 1.3 1.5 5.4 1.5 C7.5 1.5 9 2.8 10 4.2 C11 2.8 12.5 1.5 14.6 1.5 C18.7 1.5 20.2 6.5 17.4 9.3 Z' fill='%23FFF3F8' stroke='%233A1240' stroke-width='2.2' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat}
.seg input:checked+span{background:var(--pink-2)}
.seg input:checked+span::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 18'%3E%3Cpath d='M10 16.5 L2.6 9.3 C-.2 6.5 1.3 1.5 5.4 1.5 C7.5 1.5 9 2.8 10 4.2 C11 2.8 12.5 1.5 14.6 1.5 C18.7 1.5 20.2 6.5 17.4 9.3 Z' fill='%23D81B7E' stroke='%233A1240' stroke-width='2.2' stroke-linejoin='round'/%3E%3C/svg%3E")}
.seg input:focus-visible+span{outline:3px solid var(--pink-deep);outline-offset:2px}
.voices{display:flex;flex-direction:column;gap:10px}
.voice{display:flex;gap:8px}
.voice .in{min-height:48px}
.form .act{grid-column:1/-1;display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.form .act small{font:700 15px/1.4 var(--ui);color:var(--plum-2)}

.kv{display:grid;grid-template-columns:auto 1fr;gap:8px 16px;margin:18px 0 0;padding:14px 16px;background:var(--cream);border:3px solid var(--plum);border-radius:18px}
.kv dt{font:800 15px/1.3 var(--ui);color:var(--plum-2)}.kv dd{margin:0;text-align:right;font:900 16px/1.3 var(--ui);font-variant-numeric:tabular-nums}
/* extension */
.ol{list-style:none;margin:0 0 18px;padding:0;display:flex;flex-direction:column;gap:12px;counter-reset:s}
.ol li{counter-increment:s;display:grid;grid-template-columns:40px 1fr;gap:12px;align-items:start;font:700 16px/1.45 var(--ui)}
.ol li::before{content:counter(s);display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:3px solid var(--plum);border-radius:50%;background:var(--butter);font:900 17px/1 var(--ui)}
.ol code,.mono{font:800 15px/1.3 ui-monospace,SFMono-Regular,Menlo,monospace;background:#fff;border:2px solid var(--plum);border-radius:8px;padding:1px 6px;word-break:break-all}
.tok{display:flex;gap:10px;align-items:stretch}
.tok .in{font:800 14px/1.3 ui-monospace,SFMono-Regular,Menlo,monospace;min-height:52px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tok small{display:block}
@media (max-width:1000px){.grid{grid-template-columns:1fr}.totals{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.form{grid-template-columns:1fr}.app-bg{padding:30px 0 70px}.plate h2{font-size:28px}.tok{flex-direction:column}.app-hd .who{margin-left:0}}

/* ---------------------------------------------------------------- DOCS */
.docs-bg{background:linear-gradient(180deg,#d9ccff 0,#efe6ff 600px,var(--cream) 100%);padding:50px 0 90px}
.docs{display:grid;grid-template-columns:240px minmax(0,1fr);gap:40px;align-items:start;max-width:1120px}
.toc{position:sticky;top:calc(var(--hh) + 24px);display:flex;flex-direction:column;gap:6px}
.toc a{font:800 16px/1.2 var(--ui);text-decoration:none;padding:10px 14px;border:3px solid transparent;border-radius:999px}
.toc a:hover{border-color:var(--plum);background:#fff}
.doc{display:flex;flex-direction:column;gap:26px}
.doc h1{--sw:11px;--s1:6px;--s2:10px;font-size:clamp(48px,6vw,84px);margin-bottom:6px}
.doc section h2{font-size:34px;margin-bottom:12px}
.doc p,.doc li{font:700 18px/1.6 var(--ui)}
.doc p+p{margin-top:12px}
.doc ul{margin:10px 0 0;padding-left:22px}
.doc li{margin:6px 0}
.doc table{width:100%;border-collapse:collapse;margin-top:10px}
.doc td,.doc th{text-align:left;padding:12px 10px;border-bottom:3px solid rgba(58,18,64,.18);font:800 17px/1.35 var(--ui)}
.doc td.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.doc .risk{background:#fff;border-color:var(--plum)}
.doc .risk h2::before{content:"";display:inline-block;width:26px;height:24px;margin-right:10px;vertical-align:-2px;background:var(--pink);border:0;clip-path:path("M13 24 L2.4 13 C-2.6 7.9 .7 0 7 0 C9.8 0 11.7 1.6 13 3.7 C14.3 1.6 16.2 0 19 0 C25.3 0 28.6 7.9 23.6 13 Z")}
@media (max-width:900px){.docs{grid-template-columns:1fr}.toc{position:static;flex-direction:row;flex-wrap:wrap}}

/* ---------------------------------------------------------------- 404 */
.nf{position:relative;overflow:hidden;min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:space-between;text-align:center;background:#a9d4ff;padding:9vh 16px 8vh}
.nf h1{--sw:14px;--s1:8px;--s2:13px;font-size:clamp(52px,9vw,130px);position:relative;z-index:1}
.nf .btn{position:relative;z-index:1}
.nf-art{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;max-width:none}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .js .thread .rv{opacity:1;transform:none}
}
[hidden]{display:none!important}
