@font-face{font-family:Figtree;src:url("fonts/figtree_n5.849a2b51df05.woff2") format('woff2');font-weight:400 500;font-display:swap}@font-face{font-family:Figtree;src:url("fonts/figtree_n6.abc2e6b399fe.woff2") format('woff2');font-weight:600 800;font-display:swap}@font-face{font-family:Montserrat;src:url("fonts/montserrat_n4.36fca5158b62.woff2") format('woff2');font-weight:400;font-display:swap}
:root{font-size:clamp(16px,1.48148vw,32px);--ink:#1a1a1a;--muted:#746c69;--pink:#ffe3e3;--rose:#a87879;--line:#e6e1de;--paper:#fff;--soft:#faf7f5;--radius:2rem}*{box-sizing:border-box}html,body{margin:0;width:100%;min-height:100%;background:var(--paper);color:var(--ink);font-family:Figtree,sans-serif;font-weight:500}body{overscroll-behavior:none}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button{cursor:pointer;color:inherit}button:disabled{cursor:default;opacity:.38}button:focus-visible,input:focus-visible,a:focus-visible{outline:3px solid #925556;outline-offset:4px}button{border:0;background:none}a{color:inherit}h1,h2,h3,p{margin:0}h1,h2{font-family:Montserrat,sans-serif;font-weight:400}h2{font-size:2rem;line-height:1.3}h3{font-size:1.08rem;line-height:1.35;font-weight:600}.icon{width:1.5rem;height:1.5rem;display:inline-block;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;flex:none}.button{min-height:3.75rem;border-radius:var(--radius);padding:.8rem 1.6rem;display:inline-flex;align-items:center;justify-content:center;gap:.8rem;font-weight:600;font-size:1rem;text-decoration:none;transition:background .15s,transform .15s}.button:active:not(:disabled){transform:scale(.98)}.primary{background:var(--ink);color:white}.primary:disabled{opacity:1;background:#ece8e5;color:#8f8782}.secondary{border:1px solid var(--line);background:white}.quiet{background:none;border:1px solid var(--line)}.icon-button{display:inline-flex;align-items:center;justify-content:center;min-width:3.75rem;min-height:3.75rem;border:1px solid var(--line);border-radius:50%;flex-shrink:0;background:white}.eyebrow{display:block;letter-spacing:.17em;font-size:.72rem;font-weight:600;line-height:1.5}.muted{color:var(--muted)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}[hidden]{display:none!important}
.kiosk-shell{height:100dvh;min-height:58rem;max-width:100%;display:flex;flex-direction:column;overflow:hidden}.announcement{height:2.4rem;display:flex;align-items:center;justify-content:center;gap:1.6rem;background:var(--pink);font-size:.86rem;letter-spacing:.045em}.announcement .icon{width:1rem;height:1rem}.brand-row{height:7.4rem;display:flex;align-items:center;justify-content:space-between;margin:0 3.5rem;border-bottom:1px solid var(--line)}.logo{width:13.7rem;height:auto;object-fit:contain}.brand-note,.edition{font-size:.63rem;line-height:1.8;letter-spacing:.11em;width:13rem}.brand-note strong{font-weight:500;color:var(--muted)}.edition{text-align:right;display:flex;flex-direction:column}.edition span{color:var(--muted)}.hero{height:clamp(15rem,18.2vh,25rem);background:#fbefed;position:relative;display:flex;align-items:center;justify-content:space-between;overflow:hidden;padding:2rem 4rem}.hero:before{content:'';position:absolute;width:36rem;height:36rem;border:1px solid #edd9d6;border-radius:50%;right:-10rem;top:-9rem}.hero:after{content:'';position:absolute;width:27rem;height:27rem;border:1px solid #eedfdb;border-radius:50%;right:-7rem;top:-4rem}.hero-copy{z-index:1;max-width:68%}.hero .eyebrow{color:#865c5b;font-size:.69rem;margin-bottom:1rem}.hero h1{font-size:3.75rem;line-height:1.11;letter-spacing:-.055em}.hero p{font-size:1.06rem;line-height:1.65;margin-top:1.2rem;color:#59504d}.hero-sign{display:block;font-size:.9rem;margin-top:1.15rem;color:#966b6a}.anniversary{position:relative;min-width:18rem;text-align:center;color:#b58a85;z-index:1;margin-right:.5rem}.anniversary-number{font-family:Georgia,serif;font-size:17.6rem;font-weight:400;line-height:.78;letter-spacing:-.14em;padding-right:1rem;color:transparent;-webkit-text-stroke:1.3px #b9958f}.anniversary-caption{display:block;letter-spacing:.45em;font-size:.85rem;padding-top:1.3rem;padding-left:2rem}.anniversary-spark{position:absolute;right:-.2rem;top:1.3rem;width:3rem;height:3rem}.steps{height:5.15rem;display:flex;align-items:center;justify-content:center;gap:1.7rem;border-bottom:1px solid var(--line);font-size:.85rem}.step{display:flex;align-items:center;gap:.6rem;color:#8b8581;white-space:nowrap}.step span{width:1.65rem;height:1.65rem;border:1px solid #d7cfca;border-radius:50%;display:grid;place-items:center;font-size:.75rem}.step.active{color:var(--ink)}.step.active span{background:var(--ink);color:white;border-color:var(--ink)}.steps i{height:1px;width:4rem;background:var(--line)}
.shop{min-height:0;flex:1;display:flex;flex-direction:column;padding:2.2rem 3.5rem 0}.shop-title{display:flex;align-items:center;justify-content:space-between;flex:none;margin-bottom:1.25rem}.shop-title .eyebrow{color:var(--muted);font-size:.65rem;margin-bottom:.5rem}.shop-title h2{font-size:2rem;letter-spacing:-.035em}.heart{font-family:Georgia,serif;color:var(--rose);display:inline-block;margin-left:.7rem}.gift-stamp{width:4.8rem;height:4.8rem;border:1px solid #d8b6b1;border-radius:50%;display:flex;justify-content:center;align-items:center;flex-direction:column;color:#8b5b56;font-size:.7rem;transform:rotate(8deg)}.gift-stamp strong{font-size:1.6rem;font-weight:500}.catalog{min-height:0;flex:1;display:flex;flex-direction:column}.catalog-tools{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex:none;margin-bottom:1.4rem}.format-tabs{display:flex;gap:.7rem}.tab{padding:.85rem 1.2rem;border:1px solid var(--line);border-radius:var(--radius);display:inline-flex;align-items:center;gap:.55rem;min-height:3.7rem;white-space:nowrap;font-size:.95rem}.tab span{font-size:.77rem;opacity:.65;margin-left:.25rem}.tab.active{background:var(--ink);color:white;border-color:var(--ink)}.tab .icon{width:1.25rem;height:1.25rem}.search-panel{display:flex;gap:.65rem;margin-bottom:1rem}.search-panel.collapsed{display:none}input{min-height:3.7rem;padding:.8rem 1.2rem;border:1px solid #c9c2bd;border-radius:.6rem;background:white;min-width:0;color:var(--ink)}.search-panel input[type=search]{flex:1}.product-grid{min-height:0;flex:1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));column-gap:1.3rem;row-gap:1.9rem}.product-card{min-height:0;min-width:0;display:flex;flex-direction:column;gap:.75rem}.product-picture{flex:1;min-height:0;position:relative;display:block;overflow:hidden;padding:0;border-radius:.2rem;background:#f5f2ef;width:100%}.product-picture img{height:100%;width:100%;object-fit:contain;object-position:center;display:block;padding:2rem .45rem .4rem;transition:transform .3s}.product-picture:active img{transform:scale(1.02)}.format-badge{position:absolute;top:.65rem;left:.65rem;padding:.4rem .65rem;background:#fffffff2;display:flex;align-items:center;gap:.4rem;border-radius:2rem;font-size:.69rem;box-shadow:0 1px 3px #00000005}.format-badge .icon{width:.92rem;height:.92rem}.selected-mark{position:absolute;right:.65rem;top:.65rem;background:var(--ink);color:white;width:1.8rem;height:1.8rem;display:grid;place-items:center;border-radius:50%}.selected-mark .icon{width:1.1rem;height:1.1rem}.product-info{height:4.2rem;flex:none;text-align:left}.product-title{padding:0;text-align:left;line-height:1.35;font-size:1.06rem;min-height:2.8rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.product-info p{font-size:.69rem;line-height:1.4;color:var(--muted);margin-top:.28rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card-bottom{display:flex;align-items:center;justify-content:space-between;gap:.35rem;min-height:3.75rem;flex:none}.price{font-size:1.23rem;white-space:nowrap;line-height:1.2}.price span{display:block;color:var(--muted);font-size:.69rem;margin-top:.4rem;font-weight:400}.add-button{border:1px solid #d1c8c2;padding:.7rem .9rem;min-height:3.25rem;font-size:.78rem;gap:.3rem}.add-button .icon{width:1rem;height:1rem}.add-button.is-selected{background:#efe9e4;border-color:#efe9e4;color:#5c5048;opacity:1}.add-button.is-selected .icon{display:none}.catalog-bottom{display:flex;justify-content:space-between;align-items:center;min-height:6.6rem;flex:none;gap:1rem}.touch-hint{display:flex;align-items:center;gap:.5rem;font-size:.73rem;color:var(--muted)}.touch-hint .icon{width:1.15rem;height:1.15rem}.pagination{display:flex;align-items:center;gap:1rem}.pagination span{font-size:1rem;font-weight:600;min-width:2.5rem;text-align:center}.pagination em{color:#9a928c;font-style:normal;font-weight:400}.pagination .icon-button{min-width:3.4rem;min-height:3.4rem}.pagination button:disabled{opacity:.25}.empty-state{grid-column:1/-1;grid-row:1/-1;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;gap:1rem;color:var(--muted);min-height:12rem}.empty-state h3{color:var(--ink);font-size:1.5rem}
.kiosk-footer{flex:none;background:var(--soft);border-top:1px solid var(--line);padding:1.5rem 3.5rem .85rem}#cart-bar{display:flex;align-items:center;justify-content:space-between;gap:1.5rem}.cart-summary{display:flex;gap:1.2rem;align-items:center}.cart-summary strong{display:block;font-weight:600;font-size:1.14rem}.cart-summary>div>span{display:block;color:var(--muted);font-size:.74rem;margin-top:.4rem}.cart-symbol{position:relative;width:3rem;height:3rem;display:grid;place-items:center}.cart-symbol .icon{width:2rem;height:2rem}.cart-symbol span{position:absolute;right:0;top:0;width:1.1rem;height:1.1rem;display:grid;place-items:center;border-radius:50%;background:var(--ink);color:white;font-size:.63rem}.checkout-button{min-width:19rem;min-height:4.2rem;justify-content:space-between;padding:1rem 1.5rem}.footer-note{display:flex;justify-content:space-between;align-items:center;gap:1rem;font-size:.61rem;color:#817873;margin-top:1.05rem}.footer-note>span:first-child{display:flex;align-items:center;gap:.45rem}.footer-note .icon{width:1rem;height:1rem}.text-button{font-size:.73rem;text-decoration:underline;text-underline-offset:.2rem;min-height:2.8rem;padding:0 .7rem;color:var(--muted)}
dialog{border:0;color:var(--ink);font:inherit}dialog::backdrop{background:#211b1859;backdrop-filter:blur(5px)}.sheet{position:fixed;top:auto;bottom:9rem;margin:0 auto;padding:2rem 2.5rem 1rem;width:calc(100% - 7rem);max-width:62rem;max-height:70dvh;border-radius:1.2rem;box-shadow:0 1rem 4rem #251c1820;overflow:auto;overscroll-behavior:contain}.sheet-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-bottom:1.5rem;border-bottom:1px solid var(--line)}.sheet-header .eyebrow{color:var(--rose)}.sheet-header h2{margin-top:.5rem;font-size:2rem}.detail{display:grid;grid-template-columns:1fr 1.1fr;gap:2rem;padding:1.8rem 0;min-height:0}.detail-cover img{width:100%;height:100%;max-height:29rem;object-fit:contain;background:var(--soft)}.pill{display:inline-block;background:#f4e9e6;padding:.4rem .85rem;border-radius:2rem;font-size:.8rem;margin-bottom:1rem}.detail h2{font-size:1.8rem;line-height:1.35}.author{color:var(--muted);font-size:.9rem;margin:1rem 0}.detail-description{font-size:.9rem;line-height:1.75;max-height:17rem;overflow:auto;padding-right:.8rem;white-space:normal;overscroll-behavior:contain}.sheet-footer{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:1.5rem 0;border-top:1px solid var(--line);position:sticky;bottom:-1rem;background:white}.sheet-footer .price{font-size:1.8rem}.sheet-footer .price span{font-size:.8rem;margin-bottom:.4rem}.sheet-footer .button{min-width:18rem}.cart-items{max-height:37vh;overflow:auto;overscroll-behavior:contain}.cart-item{display:flex;align-items:center;gap:1rem;padding:1.3rem 0;border-bottom:1px solid var(--line)}.cart-item img{width:5rem;height:6rem;object-fit:cover}.cart-item>div{flex:1}.cart-item .eyebrow{color:var(--rose);font-size:.62rem}.cart-item h3{margin:.4rem 0;font-weight:500}.cart-item>div>span:last-child{font-size:.75rem;color:var(--muted)}.cart-item>strong{font-size:1rem;font-weight:500;margin-right:.7rem}.cart-item .icon-button{border:0;min-width:3rem;min-height:3.5rem}.delivery-note{display:flex;gap:1rem;align-items:center;background:#fbf3f1;padding:1.25rem;margin:1.5rem 0}.delivery-note p{font-size:.8rem;color:var(--muted);line-height:1.5;margin-top:.3rem}.delivery-note strong{font-size:.95rem;font-weight:500}.error{color:#a33145;line-height:1.5;margin-top:.7rem;font-size:.95rem}.error:empty{display:none}.idle-dialog{width:calc(100% - 5rem);max-width:40rem;padding:2.5rem;border-radius:1rem;top:25vh}.dialog-inner{display:flex;flex-direction:column;gap:1.4rem}.dialog-inner p{line-height:1.7;color:var(--muted)}.dialog-inner .eyebrow{color:var(--rose)}.toast{position:fixed;left:50%;bottom:10.5rem;transform:translate(-50%,1rem);opacity:0;pointer-events:none;background:var(--ink);color:white;z-index:15;padding:1rem 1.8rem;border-radius:3rem;font-size:.95rem;transition:opacity .2s,transform .2s;text-align:center}.toast.visible{opacity:1;transform:translate(-50%,0)}.success-dialog{top:15vh;width:calc(100% - 5rem);max-width:54rem;border-radius:1.2rem;padding:4rem;text-align:center;background:#fcf4f1}.success-dialog .eyebrow{color:var(--rose);margin:2rem 0}.success-dialog h2{font-size:3rem;line-height:1.25}.success-dialog p{color:var(--muted);line-height:1.8;margin:1.7rem 0}.success-dialog .button{min-width:26rem;margin:1rem 0}.success-dialog small{display:block;margin-top:1rem;color:var(--muted)}.success-mark{width:5rem;height:5rem;background:#ead6cf;border-radius:50%;margin:auto;display:grid;place-items:center}.success-mark .icon{width:2.5rem;height:2.5rem}
.activation{min-height:100dvh;display:flex;align-items:center;flex-direction:column;justify-content:center;background:#fbefed;padding:3rem 2rem;gap:3rem}.activation section{max-width:33rem;width:100%;background:white;padding:3rem;border-radius:1rem}.activation h1{font-size:3rem;line-height:1.2;margin:1rem 0}.activation p{line-height:1.7;color:var(--muted);margin:1.2rem 0}.activation form{display:flex;flex-direction:column;gap:1rem}.activation label{font-size:.85rem}.activation input{width:100%}.activation .secondary{margin-top:1.5rem;width:100%}.activation small{display:block;font-size:.75rem;line-height:1.6;color:var(--muted);margin-top:1rem}.demo-summary{display:flex;justify-content:space-between;margin:1rem 0}.checkout-demo .quiet{margin-top:1rem;width:100%}.keyboard{position:fixed;bottom:0;left:0;width:100%;background:#f2ece7;padding:1rem 2rem 1.5rem;z-index:100;box-shadow:0 -1rem 3rem #211b181f}.keyboard-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:.7rem;font-size:.85rem;color:var(--muted)}.keyboard-head .button{min-height:2.7rem;padding:.4rem 1rem}.keyboard-row{display:flex;justify-content:center;gap:.5rem;margin-top:.5rem}.keyboard-key{background:white;border:1px solid #e0d6cf;border-radius:.45rem;height:3.3rem;min-width:3rem;flex:1;font-size:1.1rem;max-width:6rem;box-shadow:0 2px 0 #d8cdc7}.keyboard-key.wide{flex:3;max-width:20rem}.keyboard-key:active{background:var(--pink)}.htmx-request button{pointer-events:none}.htmx-request.add-button,.htmx-request .add-button{opacity:.5}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
@media (max-aspect-ratio:3/4) and (min-height:1000px){.kiosk-shell{min-height:0}.product-grid{grid-template-rows:repeat(2,minmax(0,1fr))}}
@media (min-aspect-ratio:4/5){.kiosk-shell{height:auto;min-height:100dvh;overflow:visible}.hero{height:19rem}.shop{flex:none;padding-bottom:0}.product-grid{grid-template-rows:auto;grid-auto-rows:auto}.product-picture{flex:none;height:19rem}.product-info{height:4.2rem}.sheet{bottom:2rem;max-height:85dvh}.cart-items{max-height:40vh}.brand-row{height:7rem}}
@media (max-width:720px){:root{font-size:16px}.kiosk-shell{height:auto;overflow:visible}.brand-row{margin:0 1.2rem;height:6.5rem}.brand-note{display:none}.logo{width:10rem}.edition{font-size:.5rem;width:7rem}.announcement{font-size:.66rem;gap:.7rem}.hero{height:auto;min-height:18rem;padding:2rem 1.5rem}.hero h1{font-size:2.4rem}.hero p{font-size:.85rem}.hero .eyebrow{font-size:.52rem}.hero-sign{font-size:.7rem}.hero-copy{max-width:75%}.anniversary{min-width:6rem;margin-left:-2rem}.anniversary-number{font-size:8rem}.anniversary-caption{font-size:.55rem;letter-spacing:.25em;padding-left:1rem}.anniversary-spark{width:1.5rem;height:1.5rem;right:-.2rem;top:-1rem}.steps{gap:.55rem;padding:0 1rem;height:4.5rem;font-size:.59rem}.steps i{width:1rem}.step{gap:.3rem}.step span{width:1.25rem;height:1.25rem;font-size:.6rem}.shop{padding:1.6rem 1.2rem 0}.shop-title h2{font-size:1.35rem}.shop-title .eyebrow{font-size:.49rem}.gift-stamp{width:3.6rem;height:3.6rem;font-size:.55rem}.gift-stamp strong{font-size:1.1rem}.format-tabs{gap:.3rem}.tab{padding:.7rem .6rem;font-size:.73rem;gap:.3rem;min-height:3rem}.tab span{display:none}.tab .icon{width:1rem;height:1rem}.search-toggle{min-width:3rem;min-height:3rem}.catalog-tools{gap:.4rem}.product-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:none;gap:1.5rem .8rem}.product-picture{height:13rem;flex:none}.product-title{font-size:.87rem;min-height:2.6rem}.product-info{height:4rem}.product-info p{font-size:.61rem}.card-bottom{flex-wrap:wrap;gap:.6rem}.price{font-size:1rem}.price span{font-size:.6rem}.add-button{font-size:.7rem;padding:.65rem .7rem;min-height:2.8rem}.format-badge{font-size:.52rem;left:.4rem;top:.4rem;padding:.3rem .45rem}.format-badge .icon{width:.7rem;height:.7rem}.catalog-bottom{height:5.5rem;min-height:0}.touch-hint{font-size:.58rem;max-width:10rem}.pagination{gap:.6rem}.pagination .icon-button{min-width:2.8rem;min-height:2.8rem}.kiosk-footer{position:sticky;bottom:0;z-index:3;padding:1rem 1.2rem .5rem}#cart-bar{gap:.5rem}.cart-symbol{display:none}.cart-summary strong{font-size:.9rem}.cart-summary>div>span{font-size:.6rem;max-width:9rem;line-height:1.4}.checkout-button{min-width:0;font-size:.8rem;padding:.7rem 1rem;min-height:3.3rem}.footer-note{font-size:.5rem;gap:.3rem;flex-wrap:wrap;margin-top:.5rem}.footer-note>span:last-child{display:none}.text-button{font-size:.65rem;min-height:2rem}.sheet{bottom:0;width:100%;padding:1.3rem;max-height:86dvh;border-radius:1rem 1rem 0 0}.sheet-header h2{font-size:1.4rem}.sheet-header .eyebrow{font-size:.57rem}.sheet .icon-button{min-width:3rem;min-height:3rem}.detail{grid-template-columns:1fr;gap:1rem}.detail-cover{height:12rem}.detail-cover img{height:100%;width:100%;object-fit:contain}.detail h2{font-size:1.3rem}.detail-description{max-height:10rem;font-size:.85rem}.sheet-footer{padding:1rem 0}.sheet-footer .price{font-size:1.4rem}.sheet-footer .price span{font-size:.6rem;white-space:normal}.sheet-footer .button{min-width:0;font-size:.8rem;padding:.7rem 1rem}.cart-item{gap:.6rem}.cart-item img{width:3rem;height:4rem}.cart-item h3{font-size:.86rem}.cart-item>div>span:last-child{font-size:.6rem}.cart-item>strong{font-size:.8rem;margin:0}.cart-items{max-height:33vh}.delivery-note{font-size:.8rem;padding:.8rem;gap:.6rem}.delivery-note strong{font-size:.8rem}.delivery-note p{font-size:.7rem}.success-dialog{width:calc(100% - 2rem);padding:2rem 1rem}.success-dialog h2{font-size:2rem}.success-dialog .button{min-width:0;font-size:.8rem}.idle-dialog{width:calc(100% - 2rem);padding:1.5rem;top:10vh}.idle-dialog h2{font-size:1.5rem}.keyboard{padding:.7rem .4rem}.keyboard-row{gap:.2rem}.keyboard-key{min-width:0;height:3rem;font-size:.85rem}.activation{padding:2rem 1rem;gap:2rem}.activation section{padding:1.6rem}.activation h1{font-size:2.2rem}}
/* The keyboard belongs to the modal's top layer, so it remains touchable. */
.email-dialog{width:calc(100% - 3rem);max-width:48rem;max-height:94dvh;padding:2rem;border-radius:1rem;overflow:auto;top:auto;bottom:3vh;margin:auto}
.email-dialog form{display:flex;flex-direction:column;gap:1rem}.email-dialog input{width:100%}.email-dialog form p{font-size:.9rem}.email-dialog #order-progress{display:flex;flex-direction:column;gap:1.4rem}
.email-dialog .keyboard{position:static;padding:1rem .25rem 0;background:white;box-shadow:none;margin-top:1rem}.email-dialog .keyboard-key{min-width:0}
body.reset-pending>.kiosk-shell,body.reset-pending>.checkout-demo{visibility:hidden}
@media(max-width:720px){.email-dialog{padding:1.2rem;width:calc(100% - 1rem);bottom:1vh}.email-dialog h2{font-size:1.5rem}.email-dialog .dialog-inner{gap:.8rem}.email-dialog form{gap:.7rem}}
