*{box-sizing:border-box;margin:0;padding:0}html,body,#root{width:100%;height:100%;min-height:100%;min-height:100vh;overflow:hidden;background:#1a120c;color:#f4ede4;font-family:Montserrat,system-ui,sans-serif}.pairing{min-height:100%;display:flex;flex-direction:column;justify-content:center;padding:6vh 8vw;background:radial-gradient(ellipse at 20% 0%,#3a2416 0%,transparent 50%),#1a120c}.pairing-kicker{font-size:14px;letter-spacing:.18em;text-transform:uppercase;color:#c4b4a4;font-weight:600}.pairing h1{margin:12px 0 28px;font-size:48px;font-weight:800;letter-spacing:.02em}.pairing-id{font-size:36px;font-weight:700;letter-spacing:.06em;color:#fff;background:#140e0a;border:1px solid #3a2f28;padding:20px 28px;max-width:18ch;word-break:break-all}.pairing ol{margin:32px 0 0;padding-left:1.2em;font-size:22px;line-height:1.7;color:#f4ede4;max-width:42em}.pairing-wait{margin-top:28px;color:#ab5807;font-weight:700;font-size:18px;letter-spacing:.04em}.offline-hint{position:fixed;right:18px;bottom:18px;z-index:40;background:rgba(20,14,10,.92);color:#f4ede4;border:1px solid #3a2f28;padding:8px 12px;font-size:13px;font-weight:600;letter-spacing:.04em;max-width:360px}.offline-hint-detail{display:block;margin-top:4px;font-weight:500;color:#c4b4a4;font-size:12px}.board-viewport{width:100vw;height:100vh;overflow:hidden;background:#1a120c;position:relative}.artboard{width:var(--board-w, 1920px);height:var(--board-h, 1080px);background:#fff;overflow:hidden;position:absolute;top:0;left:0;transform-origin:top left;color:#1a120c}.banner{background:var(--brown, #ab5807);color:#fff;font-weight:800;letter-spacing:.08em;text-transform:uppercase;text-align:center;font-size:28px;line-height:1;padding:14px 20px}.sub{font-family:Libre Baskerville,Georgia,serif;font-style:italic;font-size:16px;text-align:center;padding:10px 16px 6px;color:#1a120c}.logo-lockup{display:flex;flex-direction:column;align-items:center;gap:6px}.seal{width:118px;height:118px;object-fit:contain}.price{position:absolute;right:6px;bottom:8px;background:var(--brown, #ab5807);color:#fff;font-weight:700;font-size:18px;padding:4px 8px;line-height:1;white-space:nowrap}.price.food{background:#111}.card{display:flex;flex-direction:column;align-items:center;min-width:0;min-height:0}.card .shot{position:relative;width:100%;flex:1;min-height:0;display:flex;align-items:flex-end;justify-content:center}.card img,.pair-item img{max-width:100%;max-height:100%;width:100%;height:100%;object-fit:contain;display:block}.shot-empty{width:70%;height:70%;background:#f7f1ea}.card .name{font-weight:800;font-size:15px;text-align:center;text-transform:uppercase;letter-spacing:.02em;padding:8px 4px 0;line-height:1.15}.left{display:grid;grid-template-columns:520px minmax(0,1fr);height:100%}.left-side{display:flex;flex-direction:column;padding:36px 36px 40px;border-right:2px solid #111}.left-side .banner{margin-top:18px;font-size:22px}.basic-list{display:flex;flex-direction:column;gap:18px;margin-top:28px}.basic-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.basic-row .name{font-weight:800;font-size:22px;text-transform:uppercase}.basic-row .price{position:static;font-size:20px}.cold{display:flex;flex-direction:column;padding:28px 36px 32px;min-width:0}.cold-grid{flex:1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:1fr;gap:8px 12px;min-height:0}.center{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,.9fr);height:100%;min-height:0}.specials{display:flex;flex-direction:column;padding:28px 28px 32px;min-width:0}.specials-grid{flex:1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:1fr;gap:6px 10px;min-height:0}.pair{display:flex;flex-direction:column;margin:28px 28px 32px 8px;border:2px dashed #111;padding:0 0 12px;min-width:0}.pair .banner{font-size:20px;padding:12px 10px}.pair-list{display:flex;flex-direction:column;gap:4px;flex:1;min-height:0;padding:4px 16px 0}.pair-item{display:grid;grid-template-columns:minmax(0,1fr) 120px;align-items:center;gap:8px;min-height:0;flex:1;overflow:hidden}.pair-item .shot{height:100%;min-height:0;display:flex;align-items:center;justify-content:center;overflow:hidden}.pair-item img{width:100%;height:100%;object-fit:contain}.pair-item .name{font-size:14px;padding:0;text-align:left;text-transform:uppercase;font-weight:800}.pair-item .meta{display:flex;flex-direction:column;justify-content:center;gap:8px}.pair-item .price{position:static}.right{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,.9fr);grid-template-rows:minmax(0,1fr) auto;height:100%;min-height:0}.noncoffee{display:flex;flex-direction:column;padding:24px 24px 8px 32px;min-width:0}.nc-grid{flex:1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:minmax(0,1fr);gap:4px 10px;min-height:0}.winter{grid-column:3 / 5;border:2px solid #111;position:relative;display:grid;grid-template-columns:1fr 1fr;padding:28px 8px 8px;min-height:220px}.ribbon{position:absolute;top:10px;left:-2px;background:var(--brown, #ab5807);color:#fff;font-weight:800;font-size:13px;letter-spacing:.08em;padding:6px 14px 6px 12px}.fraps{display:flex;flex-direction:column;padding:24px 32px 8px 16px;min-width:0;border-left:2px solid var(--brown, #ab5807)}.frap-grid{flex:1;display:grid;grid-template-columns:1fr 1fr;grid-auto-rows:1fr;gap:6px 10px;min-height:0}.milk{grid-column:1 / -1;margin:0 32px 28px;border:3px solid var(--brown, #ab5807);padding:14px 24px;text-align:center}.milk .lead{color:var(--brown, #ab5807);font-weight:800;letter-spacing:.06em;text-transform:uppercase;font-size:22px}.milk .opts{font-weight:800;font-size:20px;margin-top:6px;letter-spacing:.04em;text-transform:uppercase}.milk .opts span{font-weight:600;font-size:16px;text-transform:none}.generic{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;height:100%;padding:24px}.generic-section{display:flex;flex-direction:column;min-height:0}.generic-grid{flex:1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:1fr;gap:8px;min-height:0}.png-board{width:100%;height:100%;object-fit:contain;background:#fff;display:block}.png-missing{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-weight:700;color:#1a120c}.print-classic{height:100%;display:flex;flex-direction:column;background:#fdf5ee;border:15px solid #8a531d;color:#1a120c;overflow:hidden}.print-logo{flex:0 0 auto;display:flex;justify-content:center;padding:16px 0 8px}.print-logo .seal{width:auto;height:108px}.print-block{flex:1 1 0;min-height:0;display:flex;flex-direction:column}.print-block-specials{flex:1.35 1 0}.print-block-cold{flex:1.15 1 0}.print-bar{flex:0 0 auto;margin:0 28px;padding:12px 16px;color:#fff;font-family:"Source Sans 3",Montserrat,sans-serif;font-weight:800;font-size:28px;letter-spacing:.04em;text-transform:uppercase;text-align:center;line-height:1}.print-tagline{flex:0 0 auto;margin:10px 32px 12px;text-align:center;font-family:Roboto Slab,Libre Baskerville,serif;font-size:18px;font-weight:500;color:#1a120c}.print-specials{flex:1;min-height:0;display:flex;flex-direction:column;gap:36px;padding:0 2.4%}.print-specials-row,.print-cold-grid{flex:1;min-height:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-template-rows:minmax(0,1fr);gap:.4%}.print-specials-row2{align-items:stretch}.print-cold-grid{grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:1% .6%;padding:0 2.4% 1.2%}.print-drink{min-width:0;min-height:0;height:100%;display:flex;flex-direction:column;text-align:center}.print-drink-shot{position:relative;flex:1 1 auto;min-height:0;width:86%;margin:0 auto}.print-drink-shot img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:contain}.print-drink-empty{position:absolute;top:12%;right:12%;bottom:12%;left:12%;border-radius:50%;background:#efe4d4}.print-price{position:absolute;right:-2%;bottom:4%;z-index:1;color:#fff;font-family:"Source Sans 3",Montserrat,sans-serif;font-weight:600;font-size:16px;line-height:1;padding:.25em .5em;border-radius:2px}.print-drink-name{position:relative;z-index:2;flex:0 0 auto;margin-top:2%;padding:0 4px;font-family:Roboto Slab,Palatino,serif;font-weight:800;font-size:16px;line-height:1.08;text-transform:uppercase;color:#1a120c}.print-winter{position:relative;grid-column:span 2;min-height:0;height:100%;display:flex;flex-direction:column;padding-top:20px}.print-winter:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border:1px dashed #1a120c;border-radius:6px;pointer-events:none}.print-winter-banner{position:absolute;left:50%;top:0;z-index:4;display:flex;align-items:stretch;transform:translate(-50%,-50%)}.print-winter-label{color:#fff;font-family:"Source Sans 3",Montserrat,sans-serif;font-weight:800;font-size:14px;letter-spacing:.14em;text-transform:uppercase;line-height:1;padding:.4em .7em;white-space:nowrap}.print-winter-fold{width:10px;background:#5a3512;clip-path:polygon(100% 0,0 0,45% 50%,0 100%,100% 100%)}.print-winter-fold-end{clip-path:polygon(0 0,100% 0,55% 50%,100% 100%,0 100%)}.print-winter-items{flex:1;min-height:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.print-food-grid{flex:1;min-height:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:1.4% 2%;padding:0 4% 1%}.print-food{display:flex;align-items:stretch;gap:3%;min-height:0;min-width:0;height:100%;padding:4% 5%;border:1px dashed #1a120c;border-radius:4px}.print-food-body{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column}.print-food-shot{flex:1 1 auto;min-height:0;position:relative}.print-food-shot img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:contain;object-position:left center}.print-food-empty{position:absolute;top:10%;right:20%;bottom:10%;left:0;border-radius:4px;background:#efe4d4}.print-food-name{flex:0 0 auto;margin-top:4%;font-family:Roboto Slab,Palatino,serif;font-weight:800;font-size:20px;line-height:1.05;text-transform:uppercase}.print-food-sub{flex:0 0 auto;font-family:Roboto Slab,Palatino,serif;font-size:14px;color:#c4a265;text-transform:uppercase}.print-food-price{align-self:center;flex:0 0 auto;background:#111;color:#fff;font-family:"Source Sans 3",Montserrat,sans-serif;font-weight:600;font-size:16px;padding:.4em .65em;line-height:1}
