.till{--till-bg:#fffaf0;--till-card:#fffdf7;--till-ink:#4b3524;--till-soft:#756453;--till-pink:#d52f72;--till-pink-deep:#ae2459;--till-pink-light:#fff0f6;--till-pink-hover:#fff8fb;--till-pink-picked:#fff7fa;--till-green:#7b8651;--till-green-light:#dedccf;--till-line:#d8d1c1;--till-good:#36804a;--till-good-light:#e7f4e7;--till-bad:#a72b2b;--till-bad-light:#fdf0f0;--till-bad-line:#e2bcbc;--till-wait-line:#eec3d6;--till-note:#fff8e6;--till-note-line:#e6cf98;--till-note-ink:#7a5a12;--till-white:#fff;--till-panel:#f7f2e5;--till-safe:#f0ece2;--till-shade:#4b352414;--till-scroll-shade:#4b352438;--till-focus:#7b865140;--till-method-shade:#d52f7229;--till-tap:#d52f722e;--till-glow-pink:#d52f7214;--till-glow-pink-start:#d52f721a;--till-glow-green:#7b86511a;--till-glow-green-start:#7b86511f;--till-sans:system-ui, -apple-system, "Segoe UI", sans-serif;--till-serif:Georgia, "Times New Roman", serif;--till-round-big:24px;--till-round:18px;--till-round-small:14px}html.till{-webkit-tap-highlight-color:var(--till-tap);font-size:16px;line-height:normal}html.till,.till body{background:var(--till-bg);height:100%;margin:0;overflow:hidden}.till body{font-family:var(--till-sans);color:var(--till-ink);touch-action:manipulation;-webkit-text-size-adjust:100%;background:radial-gradient(circle at 4% 12%, var(--till-glow-pink), transparent 16%), radial-gradient(circle at 96% 88%, var(--till-glow-green), transparent 18%), var(--till-bg)}.till *,.till :before,.till :after{box-sizing:border-box}.till button,.till input{font:inherit;color:inherit}.till button{text-align:center}.till h1,.till h2,.till h3{font-family:var(--till-serif);margin:0;font-weight:700}.till .shell{grid-template-rows:auto auto minmax(0,1fr);gap:clamp(10px,1.6vh,18px);width:min(1100px,100%);height:100dvh;margin:auto;padding:clamp(12px,2.5vh,24px) clamp(16px,3vw,34px);display:grid;position:relative;overflow:clip}.till .shell:before,.till .shell:after{content:"✿";color:var(--till-pink);opacity:.16;pointer-events:none;z-index:-1;font-size:clamp(3rem,8vw,7rem);position:absolute}.till .shell:before{bottom:.05em;left:-.1em;transform:rotate(-12deg)}.till .shell:after{color:var(--till-green);top:16%;right:.05em;transform:rotate(18deg)}.till .topbar{justify-content:space-between;align-items:center;gap:16px;display:flex}.till .brand{align-items:center;gap:14px;min-width:0;display:flex}.till .brand img{object-fit:contain;width:clamp(56px,7vw,84px);height:clamp(56px,7vw,84px)}.till .brand .kicker{text-transform:uppercase;letter-spacing:.14em;color:var(--till-green);margin:0 0 2px;font-size:.72rem;font-weight:800}.till .brand h1{color:var(--till-pink);font-size:clamp(1.4rem,3.2vh,2.1rem);font-style:italic;line-height:1}.till .progress{gap:9px;display:flex}.till .progress span{background:var(--till-green-light);border-radius:99px;flex:1;height:7px}.till .progress span.on{background:var(--till-green)}.till .screen{flex-direction:column;min-height:0;animation:.18s till-rise;display:flex}@keyframes till-rise{0%{opacity:.35;transform:translateY(4px)}to{opacity:1;transform:none}}.till .screen h2{margin-bottom:clamp(6px,1vh,12px);font-size:clamp(1.6rem,4vh,2.6rem);line-height:1.08}.till .intro{color:var(--till-soft);margin:0 0 clamp(12px,2vh,22px);font-size:clamp(.95rem,2vh,1.12rem)}.till .eyebrow{text-transform:uppercase;letter-spacing:.12em;color:var(--till-green);margin:0 0 4px;font-size:.74rem;font-weight:800}.till .filler{flex:1;min-height:0}.till .filler.limited{max-height:clamp(14px,4vh,44px)}.till .button{cursor:pointer;border-radius:var(--till-round);background:var(--till-pink);color:var(--till-white);min-height:clamp(54px,7.5vh,70px);box-shadow:0 4px 0 var(--till-pink-deep);border:0;padding:0 26px;font-size:clamp(1rem,2.2vh,1.15rem);font-weight:800;transition:transform 60ms}.till .button:active:not(:disabled){box-shadow:0 1px 0 var(--till-pink-deep);transform:translateY(3px)}.till .button:disabled{opacity:.42;cursor:not-allowed;box-shadow:none}.till .button.wide{width:100%;margin-top:auto}.till .button.small{min-height:46px;box-shadow:0 3px 0 var(--till-pink-deep);padding:0 18px;font-size:.94rem}.till .button.confirm{margin-top:18px}.till .button.retry{margin-top:14px}.till .choices{grid-template-columns:1fr 1fr;gap:clamp(12px,2vw,20px);display:grid}.till .question-at-buttons{margin-bottom:clamp(8px,1.4vh,14px)}.till .choice{cursor:pointer;text-align:left;background:var(--till-card);border:2px solid var(--till-line);border-radius:var(--till-round-big);color:var(--till-ink);flex-direction:row;justify-content:center;align-items:center;gap:clamp(10px,2vw,20px);min-height:clamp(110px,17vh,165px);padding:clamp(18px,3vh,26px);transition:border-color .12s,background .12s;display:flex}.till .choice .words{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}.till .choice .arrow{width:clamp(26px,3.4vh,34px);height:clamp(26px,3.4vh,34px);color:var(--till-pink);flex:none}.till .choice:disabled .arrow{color:var(--till-soft)}.till .choice strong{color:var(--till-pink);font-size:clamp(1.4rem,3.6vh,2rem);font-family:var(--till-serif);display:block}.till .choice small{color:var(--till-soft);font-size:clamp(.85rem,1.8vh,1rem)}.till .choice:hover,.till .choice:focus-visible{border-color:var(--till-pink);background:var(--till-pink-hover);outline:none}.till .count-group{display:contents}.till .counter-card{background:var(--till-card);border:1px solid var(--till-line);border-radius:var(--till-round-big);grid-template-columns:auto 1fr auto;align-items:center;gap:clamp(12px,2vw,20px);padding:clamp(14px,2.4vh,22px);display:grid}.till .round{border:1px solid var(--till-line);background:var(--till-white);width:clamp(62px,8.5vh,84px);height:clamp(62px,8.5vh,84px);color:var(--till-pink);cursor:pointer;border-radius:20px;font-size:2.2rem;font-weight:800}.till .round:active{background:var(--till-pink-light)}.till .counter-card .middle{text-align:center;min-width:0}.till .counter-card label{color:var(--till-soft);margin-bottom:2px;font-size:.88rem;display:block}.till .counter-card input{text-align:center;appearance:textfield;background:0 0;border:0;outline:none;width:100%;max-width:260px;font-size:clamp(2.6rem,8vh,4rem);font-weight:800}.till .counter-card input::-webkit-inner-spin-button{appearance:none;margin:0}.till .counter-card input::-webkit-outer-spin-button{appearance:none;margin:0}.till .amount-line{border-bottom:1px solid var(--till-line);justify-content:space-between;align-items:center;margin:clamp(8px,1.5vh,16px) 0;padding:clamp(10px,1.8vh,18px) 4px;display:flex}.till .amount-line span{color:var(--till-soft)}.till .amount-line strong{color:var(--till-pink);font-size:clamp(1.5rem,3.6vh,2rem)}.till .products{grid-template-columns:1fr 1fr;align-content:start;gap:clamp(8px,1.4vh,14px);min-height:0;display:grid;overflow-y:auto}.till .product{background:var(--till-card);border:1px solid var(--till-line);border-radius:var(--till-round);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:clamp(10px,1.6vh,16px);display:grid}.till .product .name{font-size:clamp(.88rem,1.9vh,1.05rem);font-weight:700;line-height:1.2;display:block}.till .product .price{color:var(--till-soft);margin-top:3px;font-size:.86rem;display:block}.till .counter{align-items:center;gap:8px;display:flex}.till .counter button{border-radius:var(--till-round-small);border:1px solid var(--till-line);background:var(--till-white);width:clamp(44px,6vh,56px);height:clamp(44px,6vh,56px);color:var(--till-pink);cursor:pointer;font-size:1.6rem;font-weight:800}.till .counter button:active{background:var(--till-pink-light)}.till .counter .quantity{text-align:center;min-width:30px;font-size:1.2rem;font-weight:800}.till .vouchers{gap:14px;display:grid}.till .voucher{text-align:left;border:2px solid var(--till-line);border-radius:var(--till-round);background:var(--till-card);cursor:pointer;align-items:flex-start;gap:16px;width:100%;padding:clamp(16px,2.6vh,22px);display:flex}.till .voucher[aria-pressed=true]{border-color:var(--till-pink);background:var(--till-pink-picked)}.till .voucher .dot{border:2px solid var(--till-line);border-radius:50%;flex:none;place-items:center;width:28px;height:28px;margin-top:2px;display:grid}.till .voucher[aria-pressed=true] .dot{border-color:var(--till-pink)}.till .voucher[aria-pressed=true] .dot:after{content:"";background:var(--till-pink);border-radius:50%;width:14px;height:14px}.till .voucher .text{gap:8px;font-size:clamp(.95rem,2vh,1.1rem);line-height:1.4;display:grid}.till .voucher .text strong{font-weight:700}.till .voucher .text small{color:var(--till-soft);font-size:.92rem}.till .receipt{background:var(--till-card);border:1px solid var(--till-line);border-radius:var(--till-round-big);flex-direction:column;flex:0 auto;min-height:0;padding:clamp(8px,1.4vh,16px) clamp(16px,2.4vw,24px);display:flex}.till .receipt .lines{overscroll-behavior:contain;background:linear-gradient(var(--till-card) 30%, transparent) center top, linear-gradient(transparent, var(--till-card) 70%) center bottom, radial-gradient(farthest-side at 50% 0, var(--till-scroll-shade), transparent) center top, radial-gradient(farthest-side at 50% 100%, var(--till-scroll-shade), transparent) center bottom;background-repeat:no-repeat;background-size:100% 28px,100% 28px,100% 12px,100% 12px;background-attachment:local,local,scroll,scroll;min-height:0;overflow-y:auto}.till .receipt .line{border-bottom:1px solid var(--till-line);justify-content:space-between;align-items:baseline;gap:20px;padding:clamp(8px,1.3vh,13px) 0;font-size:clamp(1.05rem,2.3vh,1.4rem);display:flex}.till .receipt .lines .line:last-child{border-bottom:0}.till .receipt .line strong{white-space:nowrap}.till .receipt .discount,.till .receipt .discount strong{color:var(--till-green)}.till .receipt .total{border-top:2px solid var(--till-line);border-bottom:0;flex:none;padding-top:clamp(10px,1.6vh,16px);font-size:clamp(1.3rem,3vh,1.8rem);font-weight:800}.till .receipt .total strong{color:var(--till-pink)}.till .donation{border:2px solid var(--till-line);border-radius:var(--till-round);background:var(--till-card);flex:none;margin-top:clamp(12px,2vh,18px);padding:clamp(14px,2.2vh,20px)}.till .donation-head{align-items:center;gap:10px;margin-bottom:12px;display:flex}.till .donation-head strong{font-size:1.06rem}.till .donation .info{border:2px solid var(--till-line);background:var(--till-white);width:40px;height:40px;color:var(--till-soft);font-family:var(--till-serif);cursor:pointer;border-radius:50%;flex:none;place-items:center;font-size:1.15rem;font-style:italic;font-weight:700;line-height:1;display:grid}.till .donation .info[aria-expanded=true]{border-color:var(--till-pink);background:var(--till-pink-light);color:var(--till-pink-deep)}.till .donation-amounts{grid-template-columns:repeat(4,1fr);gap:9px;display:grid}.till .donation-amounts button{border:2px solid var(--till-line);background:var(--till-white);border-radius:var(--till-round-small);cursor:pointer;padding:14px 8px;font-weight:800}.till .donation-amounts button[aria-pressed=true]{border-color:var(--till-pink);background:var(--till-pink-light);color:var(--till-pink-deep)}.till .donation .explanation{color:var(--till-soft);margin:14px 0 0;font-size:.94rem;line-height:1.5}.till .overview .question-at-buttons,.till .overview .choices,.till .overview .notice{flex:none}.till .big-amount{color:var(--till-pink);font-size:clamp(2.6rem,8vh,4.6rem);font-weight:900;font-family:var(--till-serif);margin:0 0 clamp(8px,1.4vh,14px)}.till .safe{border:1px solid var(--till-line);border-radius:var(--till-round-big);background:var(--till-card);grid-template-columns:auto 1fr;align-items:center;gap:clamp(20px,3.6vw,42px);padding:clamp(20px,3.4vh,36px);display:grid}.till .safe .icon{background:var(--till-safe);border-radius:50%;place-items:center;width:clamp(92px,13vw,140px);height:clamp(92px,13vw,140px);font-size:clamp(2.8rem,6.5vw,4.8rem);display:grid}.till .safe h3{margin-bottom:10px;font-size:clamp(1.3rem,3vh,1.9rem)}.till .safe p{margin:0 0 8px;font-size:clamp(.98rem,2vh,1.16rem);line-height:1.5}.till .safe .note{color:var(--till-soft);font-size:.94rem}.till .pay-panel{background:var(--till-panel);border:1px solid var(--till-line);border-radius:var(--till-round-big);grid-template-columns:auto minmax(0,1fr);align-items:center;gap:clamp(20px,3.5vw,40px);padding:clamp(16px,2.6vh,26px);display:grid}.till .pay-panel .qr{background:var(--till-white);border-radius:var(--till-round);padding:10px;line-height:0}.till .pay-panel .qr svg{width:clamp(180px,34vh,300px);height:auto;display:block}.till .pay-text h3{margin-bottom:8px;font-size:clamp(1.25rem,3vh,1.8rem)}.till .pay-text p{margin:8px 0;font-size:clamp(.95rem,2vh,1.12rem);line-height:1.45}.till .pay-text .note{color:var(--till-soft);font-size:.92rem}.till .notice{border-radius:var(--till-round-small);margin:14px 0 0;padding:12px 16px;font-weight:700}.till .notice.error{background:var(--till-bad-light);border:1px solid var(--till-bad-line);color:var(--till-bad)}.till .notice.waiting{background:var(--till-pink-light);border:1px solid var(--till-wait-line);color:var(--till-pink-deep)}.till .notice.narrow{align-self:start;margin:0 0 clamp(10px,1.8vh,18px);font-size:1rem}.till .notice.heads-up{background:var(--till-note);border:1px solid var(--till-note-line);color:var(--till-note-ink);margin-top:0;font-size:1.06rem}.till .notice.urgent{background:var(--till-pink);border:3px solid var(--till-pink-deep);color:var(--till-white);border-radius:var(--till-round);box-shadow:0 4px 0 var(--till-pink-deep);margin-top:0;padding:clamp(14px,2vh,20px) clamp(16px,2.4vw,22px);font-size:clamp(1.05rem,2.4vh,1.35rem);line-height:1.35}.till .notice.urgent strong{text-underline-offset:3px;text-decoration:underline}.till .centered{text-align:center;flex:1;place-items:center;min-height:0;display:grid}.till .centered .inner{width:min(820px,100%)}.till .tick{background:var(--till-good-light);width:clamp(74px,11vh,96px);height:clamp(74px,11vh,96px);color:var(--till-good);border-radius:50%;place-items:center;margin:0 auto 14px;font-size:3.2rem;font-weight:900;display:grid}.till .review-qr{background:var(--till-white);border-radius:var(--till-round);border:1px solid var(--till-line);width:min(300px,60vh);height:auto;margin:clamp(14px,2.4vh,24px) auto;padding:12px;display:block}.till .start{text-align:center;background:radial-gradient(circle at 12% 14%, var(--till-glow-pink-start), transparent 24%), radial-gradient(circle at 88% 82%, var(--till-glow-green-start), transparent 28%), var(--till-bg);place-items:center;height:100dvh;padding:clamp(18px,4vh,44px) clamp(18px,5vw,56px);display:grid;position:relative;overflow:hidden}.till .start .flower{pointer-events:none;opacity:.13;color:var(--till-pink);font-size:clamp(6rem,17vw,13rem);position:absolute}.till .start .flower.left{bottom:-3vh;left:-2vw;transform:rotate(-15deg)}.till .start .flower.right{color:var(--till-green);top:1vh;right:-1vw;transform:rotate(18deg)}.till .start .gear{z-index:2;border:1px solid var(--till-line);background:var(--till-card);width:52px;height:52px;color:var(--till-soft);opacity:.6;border-radius:50%;place-items:center;font-size:1.4rem;line-height:1;text-decoration:none;display:grid;position:absolute;top:clamp(10px,2vh,22px);left:clamp(10px,2vw,22px)}.till .start .gear:active{opacity:1;background:var(--till-pink-light);color:var(--till-pink-deep)}.till .start .inner{flex-direction:column;align-items:center;width:min(780px,94vw);display:flex}.till .start img.logo{object-fit:contain;width:clamp(130px,22vh,230px);height:clamp(130px,22vh,230px);margin-bottom:clamp(6px,1.2vh,14px)}.till .start .kicker{color:var(--till-green);text-transform:uppercase;letter-spacing:.16em;margin:0;font-size:clamp(.95rem,2.1vh,1.3rem);font-weight:900}.till .start h1{color:var(--till-pink);font-family:var(--till-sans);letter-spacing:.03em;margin:clamp(2px,.5vh,6px) 0 0;font-size:clamp(3.4rem,10vh,7rem);font-weight:900;line-height:.95}.till .start .sub{margin:clamp(8px,1.4vh,14px) 0 clamp(14px,2.4vh,24px);font-size:clamp(1rem,2.3vh,1.4rem);font-weight:600}.till .start .question{margin:0 0 14px;font-size:clamp(1rem,2.1vh,1.25rem);font-weight:800}.till .start .methods{grid-template-columns:1fr 1fr;gap:clamp(12px,2vw,20px);width:min(700px,90vw);display:grid}.till .start .method{border:2px solid var(--till-pink);background:var(--till-card);min-height:clamp(88px,12vh,118px);color:var(--till-ink);cursor:pointer;box-shadow:0 6px 0 var(--till-method-shade);border-radius:26px;justify-content:center;align-items:center;gap:14px;padding:16px 20px;font-size:clamp(1.35rem,3.4vh,2.1rem);font-weight:900;transition:transform 60ms;display:flex}.till .start .method:active{box-shadow:0 3px 0 var(--till-method-shade);transform:translateY(3px)}.till .start .method .sign{font-size:1.5em;line-height:1}.till .start .hint{color:var(--till-soft);margin:clamp(10px,1.6vh,16px) 0 0;font-size:clamp(.92rem,2vh,1.15rem);font-weight:700}.till .start .unlock-title{font-family:var(--till-serif);letter-spacing:0;margin-bottom:6px;font-size:clamp(2.4rem,7vh,4.4rem)}.till .unlock-card{background:var(--till-card);border:1px solid var(--till-line);width:min(560px,92vw);box-shadow:0 8px 30px var(--till-shade);border-radius:28px;padding:clamp(22px,3.4vh,32px)}.till .unlock-card label{margin-bottom:12px;font-size:1.06rem;font-weight:800;display:block}.till .pin{text-align:center;letter-spacing:.35em;border:2px solid var(--till-line);border-radius:var(--till-round);background:var(--till-white);width:min(330px,100%);margin-bottom:6px;padding:14px 14px 14px 26px;font-size:2rem}.till .pin:focus{outline:4px solid var(--till-focus);border-color:var(--till-green)}.till .start .unlock-card .hint{font-weight:400;line-height:1.45}.till .notice.unset{text-align:left;max-width:560px}@media (orientation:portrait),(width<=820px){.till .products{grid-template-columns:1fr}.till .safe,.till .pay-panel{text-align:center;grid-template-columns:1fr}.till .pay-panel .qr{justify-self:center}.till .safe .icon{margin:0 auto}.till .start .methods{grid-template-columns:1fr}.till .choice{min-height:clamp(84px,11vh,120px);padding:clamp(14px,2.2vh,20px)}.till .choice strong{font-size:clamp(1.2rem,2.9vh,1.6rem)}}@media (orientation:landscape) and (height<=900px){.till .overview .choice{min-height:clamp(84px,11vh,120px);padding:clamp(14px,2.2vh,20px)}.till .overview .choice strong{font-size:clamp(1.2rem,2.9vh,1.6rem)}.till .overview .receipt .line{padding:clamp(6px,1vh,10px) 0}.till .overview .receipt .total{padding-top:clamp(8px,1.2vh,12px)}.till .overview .donation{margin-top:clamp(10px,1.5vh,14px);padding:clamp(12px,1.8vh,16px)}.till .overview .donation .explanation{margin-top:10px}}@media (height<=700px){.till .brand img{width:52px;height:52px}.till .screen h2{font-size:clamp(1.35rem,3.4vh,1.9rem)}.till .intro{margin-bottom:10px}}@media (width<=600px){.till .choices{grid-template-columns:1fr}.till .donation-amounts{grid-template-columns:1fr 1fr}}
