@charset "UTF-8";
:root {
  --paper:#f7f7f5; --white:#fff; --ink:#2e2c29; --muted:#696762; --line:#e2e0db;
  --green:#34322f; --green-hover:#1f1e1c; --sage:#eeeee9; --sand:#f2efe9;
  --rose:#f1e9e3; --cream:#f4eddf; --clay:#97583e; --soft-clay:#fbede5;
  --focus:#9d7355; --radius:12px; --ease:cubic-bezier(.23,1,.32,1);
  --shadow:0 12px 36px #25221d1c; --ribbon:#7e9075;
  --sans:"PingFang SC","Microsoft YaHei",sans-serif; --serif:var(--sans);
}
*{box-sizing:border-box}
html{scrollbar-gutter:stable}
body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.6 var(--sans);-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit}button{cursor:pointer;touch-action:manipulation;color:inherit;border:0;background:none;padding:0}
button:disabled{cursor:not-allowed;opacity:.4}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid var(--focus);outline-offset:4px}
input,select,textarea{color:var(--ink);border:1px solid var(--line);background:var(--white);border-radius:8px;padding:10px 12px;min-width:0;caret-color:var(--ink)}
textarea{resize:vertical;line-height:1.8}h1,h2,h3,p{margin:0;text-wrap:pretty}h1,h2,h3{font-weight:650}
svg{flex-shrink:0;vertical-align:middle}img{display:block;max-width:100%;user-select:none;-webkit-user-select:none}
::selection{background:#eadbcf}a{color:inherit;text-underline-offset:3px}input[type=number]{appearance:textfield}input::-webkit-inner-spin-button{appearance:none}
summary{cursor:pointer;list-style:none;touch-action:manipulation}summary::-webkit-details-marker{display:none}
.shell{max-width:1280px;margin:auto;padding:0 40px}
.header{height:76px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:22px}
.brand{display:block;flex-shrink:0;padding:0}.brand-logo{display:block;width:170px;height:62px;object-fit:contain;pointer-events:none}
.role-switch{display:flex;padding:4px;background:#eaeae6;border-radius:9px;gap:3px}.role-switch button{padding:8px 21px;border-radius:7px;font-size:14px;font-weight:550}
.role-switch .active{background:var(--white);color:var(--ink)}.header-tools{display:flex;align-items:center;gap:22px}
.text-button{font-size:13px;color:var(--muted);display:inline-flex;align-items:center;gap:6px}.text-button:hover{color:var(--ink)}
.help-menu{position:relative;color:var(--muted);font-size:13px}.help-menu>div{position:absolute;right:0;top:32px;padding:8px;background:var(--white);border:1px solid var(--line);border-radius:10px;min-width:180px;z-index:45;box-shadow:var(--shadow)}
.help-menu button{display:block;width:100%;text-align:left;white-space:nowrap;padding:9px 12px;border-radius:6px;font-size:13px}.help-menu button:hover{background:var(--sage)}
.store-bar{display:flex;align-items:center;padding:20px 0;color:var(--muted);font-size:13px}.store-name{display:flex;align-items:center;gap:9px}.store-name strong{font-weight:600;color:var(--ink)}.store-name span{margin-left:4px}
.builder{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(350px,.95fr);gap:42px;align-items:start;padding:0 0 32px}
.builder-left{min-width:0}.intro{padding:0 0 17px}.intro h1{font-size:30px;line-height:1.35;margin-bottom:7px;letter-spacing:0;font-weight:650}.intro p{font-size:14px;color:var(--muted)}
.steps{display:flex;border-bottom:1px solid var(--line);gap:26px;margin-bottom:18px}.step{display:flex;gap:8px;align-items:center;padding:13px 0;color:var(--muted);position:relative;font-size:14px;font-weight:500}
.step span{font-size:12px;display:grid;place-items:center;width:21px;height:21px;border-radius:50%;background:#eae8e2;font-weight:650}.step.active{color:var(--ink);font-weight:650}.step.active span{background:var(--ink);color:var(--white)}
.step.active:after{content:"";position:absolute;height:2px;bottom:-1px;left:0;right:0;background:var(--ink)}
.budget-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}.budget-control{display:flex;align-items:center;gap:13px;font-size:14px;font-weight:550}
.budget-input{display:flex;align-items:center;gap:4px;background:var(--white);border:1px solid var(--line);border-radius:8px;padding:8px 10px;font-weight:600;line-height:22px}.budget-input:focus-within{outline:2px solid var(--focus);outline-offset:3px}.budget-input input:focus-visible{outline:none}
.budget-input input{width:64px;min-width:0;border:0;border-radius:0;padding:0;font-size:16px;font-weight:600;line-height:22px;background:none;appearance:textfield}.budget-input input::-webkit-inner-spin-button,.budget-input input::-webkit-outer-spin-button{appearance:none;margin:0}.budget-status{font-size:13px;white-space:nowrap}.budget-status.over{color:var(--clay)}
.catalog-toolbar{display:flex;align-items:center;justify-content:space-between;margin:0 0 12px;gap:12px;position:relative}.catalog-toolbar>span{font-size:14px;font-weight:600}
.catalog-search{font-size:12px;color:var(--muted)}.catalog-search .catalog-tools{position:absolute;top:30px;right:0;z-index:4;width:290px;border:1px solid var(--line);background:var(--white);border-radius:10px;padding:13px;box-shadow:var(--shadow)}
.filters{display:flex;gap:15px;margin-bottom:10px}.filters button{font-size:13px;color:var(--muted)}.filters button.active{color:var(--ink);font-weight:650}
.search-wrap{display:flex;gap:8px;align-items:center;color:var(--muted);border-top:1px solid var(--line);padding-top:8px}.search-wrap input{width:100%;padding:6px 0;border:0;background:none;font-size:14px}
.products{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.product-card{border-radius:12px;overflow:hidden;background:var(--white);border:1px solid var(--line)}
.product-visual{height:144px;position:relative;display:flex;align-items:center;justify-content:center;background:#f2f0eb;overflow:hidden;user-select:none}
.product-visual img{width:133px;height:133px;object-fit:contain;filter:drop-shadow(0 5px 8px #40302512)}
img[data-drag]{cursor:grab;pointer-events:auto}img[data-drag]:active{cursor:grabbing}.product-tag{position:absolute;left:12px;top:11px;font-size:12px;color:var(--muted)}
.product-details{padding:13px 14px 14px}.product-details h3{font-size:16px;line-height:1.4;font-weight:650}.product-details p{color:var(--muted);font-size:12px;margin-top:4px}
.product-bottom{display:flex;align-items:center;justify-content:space-between;margin-top:13px;gap:8px}.product-price{font-size:20px;line-height:1;font-weight:650;font-variant-numeric:tabular-nums}.product-price small{font-size:13px;margin-right:2px}
.quantity{display:flex;align-items:center;gap:0;border:1px solid var(--line);border-radius:7px;overflow:hidden}.quantity button{width:29px;height:29px;display:grid;place-items:center;background:#f4f3f0}.quantity .plus{background:var(--ink);color:var(--white)}.quantity span{font-size:13px;font-weight:600;min-width:26px;text-align:center}.quantity button:hover:not(:disabled){background:#e6e2dc;color:var(--ink)}
.catalog-foot{display:flex;justify-content:space-between;gap:12px;font-size:13px;padding:18px 0 0}.catalog-foot button:first-child{color:var(--muted)}.catalog-foot button:last-child{font-weight:600}
.primary,.secondary{min-height:46px;padding:12px 21px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;gap:10px;font-size:14px;font-weight:600;transition:background .16s,transform .12s}
.primary{background:var(--ink);color:var(--white)}.primary:hover{background:var(--green-hover)}.primary:active,.secondary:active{transform:scale(.98)}.secondary{border:1px solid var(--line);background:var(--white)}.secondary:hover{background:var(--sage)}.full{width:100%}
.next-step{margin-top:16px;display:flex;justify-content:flex-end}.next-step button{font-size:14px;display:flex;align-items:center;gap:9px;font-weight:600}
.preview-column{position:sticky;top:24px;min-width:0}.preview-panel{border:1px solid var(--line);border-radius:14px;background:var(--white);overflow:hidden}
.preview-heading{display:flex;align-items:center;justify-content:space-between;padding:22px 23px 0;gap:16px}.preview-heading h2{font-size:21px;font-weight:650}.preview-heading>span{font-size:13px;color:var(--muted)}
.scene{position:relative;display:grid;place-items:center;min-height:310px;overflow:hidden;background:#fff}
.gift-box{width:320px;max-width:95%;aspect-ratio:1;position:relative;filter:drop-shadow(0 12px 11px #534b3b15)}
.gift-box.small{aspect-ratio:2.25;width:340px;max-width:93%}.box-base,.box-lid{position:absolute;width:100%;height:100%;max-width:none;object-fit:contain;pointer-events:none;-webkit-user-drag:none}
.gift-box.small .box-base,.gift-box.small .box-lid{height:auto;width:100%;top:50%;transform:translateY(-50%)}
.box-inside{position:absolute;left:19.2%;top:21.2%;width:61.3%;height:58.5%;display:grid;grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(2,1fr);gap:4px}
.small .box-inside{left:13.1%;width:73.6%;top:24%;height:52.4%;grid-template-rows:1fr}
.gift-slot{border:1px dashed #85827642;border-radius:6px;position:relative;display:flex;align-items:center;justify-content:center;min-height:0;min-width:0;color:#827e73;user-select:none}
.gift-slot.empty{font-size:25px}.gift-slot.empty span{display:flex;flex-direction:column;align-items:center;gap:3px}.gift-slot.empty small{font-size:12px}
.gift-slot.filled{border-color:transparent}.gift-slot.filled img{height:94%;width:94%;object-fit:contain;filter:drop-shadow(0 4px 5px #342a2a18)}
.gift-slot.selected,.gift-slot.drag-target{border:1px dashed var(--focus);background:#d0b29426}.slot-index{position:absolute;left:3px;bottom:1px;font-size:10px;color:#837e70;pointer-events:none}
.slot-remove{position:absolute;right:0;top:0;z-index:1;width:23px;height:23px;border-radius:50%;background:var(--white);opacity:0;font-size:16px;color:var(--muted)}
.gift-slot:hover .slot-remove,.gift-slot:focus-within .slot-remove,.gift-slot.selected .slot-remove{opacity:1}
.preview-instruction{text-align:center;font-size:13px;color:var(--muted);padding:0 15px 16px}.preview-footer{border-top:1px solid var(--line);padding:16px 23px 22px}
.preview-meta{display:flex;align-items:center;justify-content:space-between;font-size:13px;color:var(--muted);gap:10px}.price-details{margin-top:10px;font-size:13px;color:var(--muted)}.price-details summary:after,.about-details summary:after{content:"＋";float:right}.price-details[open] summary:after,.about-details[open] summary:after{content:"－"}
.cost-row{display:flex;justify-content:space-between;font-size:13px;color:var(--muted);margin-top:9px;gap:12px}.cost-row b{font-weight:550;color:var(--ink);font-variant-numeric:tabular-nums}
.total-row{display:flex;align-items:center;justify-content:space-between;margin:17px 0;gap:12px}.total-row .label{font-size:15px;font-weight:600}.total-price{font-size:29px;line-height:1;font-weight:700;font-variant-numeric:tabular-nums}.total-price small{font-size:15px;margin-right:3px}
.error-banner{background:var(--soft-clay);border-radius:9px;padding:12px;color:var(--clay);font-size:14px;margin-bottom:15px}.error-banner button{font-size:13px;text-decoration:underline;margin-top:5px}.empty-results{grid-column:1/-1;min-height:170px;text-align:center;padding-top:55px;color:var(--muted)}
.section-label{display:flex;justify-content:space-between;align-items:center;margin:8px 0 13px;gap:12px}.section-label h3{font-size:16px;font-weight:650}.section-label span{font-size:12px;color:var(--muted)}
.option-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin-bottom:24px}.box-option{padding:16px;text-align:left;border:1px solid var(--line);border-radius:12px;background:var(--white)}.box-option.active{border-color:var(--ink);background:#f1efea}
.box-option img{height:86px;width:100%;object-fit:contain;margin:0 0 9px;pointer-events:none;-webkit-user-drag:none}.option-name{display:flex;justify-content:space-between;align-items:center;font-size:14px;font-weight:600}.box-option p{font-size:13px;color:var(--muted);margin-top:5px}
.option-check{width:17px;height:17px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;color:var(--white);font-size:11px}.active .option-check{background:var(--ink);border-color:var(--ink)}
.ribbon-options{display:flex;gap:12px;margin-bottom:25px}.ribbon-option{display:flex;align-items:center;gap:8px;border:1px solid var(--line);background:var(--white);border-radius:8px;padding:10px 14px;font-size:14px}.ribbon-option.active{border-color:var(--ink)}
.ribbon-swatch{width:21px;height:21px;border-radius:50%;background:var(--ribbon-color);border:3px solid var(--white);outline:1px solid var(--line)}
.card-options{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.card-option{border:1px solid var(--line);border-radius:9px;padding:10px;background:var(--white);text-align:left}.card-option.active{border-color:var(--ink)}
.mini-card{aspect-ratio:320/210;height:auto;position:relative;margin-bottom:9px;display:grid;place-items:center;border-radius:3px;overflow:hidden;color:#685443;box-shadow:0 2px 3px #55442b12}.mini-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}.mini-card span{position:relative;font-size:16px;font-weight:550;letter-spacing:1px}.mini-card.botanical{color:#657253}.mini-card.celebration{color:#a26b63}.card-detail{display:block;font-size:12px;color:var(--muted);margin:4px 0}
.card-option .name{font-size:13px;font-weight:600}.card-option small{color:var(--muted);display:block;font-size:12px;margin-top:3px}
.pack-tip{font-size:13px;color:var(--muted);padding:16px 0;line-height:1.7}
.field-row{display:flex;gap:14px;margin-bottom:20px}.field{display:flex;flex-direction:column;gap:7px;flex:1;min-width:0}.field label{font-size:13px;color:var(--muted)}.field input{width:100%}
.greeting-templates{display:flex;flex-wrap:wrap;gap:9px;margin:14px 0}.greeting-templates button{border:1px solid var(--line);border-radius:7px;padding:7px 12px;font-size:13px;color:var(--muted)}.greeting-templates button:hover{background:var(--sage)}.greeting-editor{width:100%;min-height:114px;font-size:16px}.counter{font-size:12px;color:var(--muted);text-align:right;margin-top:5px}
.independent-list{padding:13px 23px;border-top:1px solid var(--line)}.independent-list h3{font-size:13px;color:var(--muted);font-weight:550;margin-bottom:8px}.independent-item{display:flex;align-items:center;gap:10px;padding:6px 0;font-size:14px}.independent-item img{width:38px;height:38px;object-fit:contain;pointer-events:none;-webkit-user-drag:none}.independent-item .text{flex:1}.independent-item small{display:block;color:var(--muted);font-size:12px}.independent-item button{color:var(--muted);padding:4px;font-size:19px}
.scene-independent{padding:40px 30px;text-align:center;min-height:310px}.scene-independent img{width:170px;height:170px;object-fit:contain;margin:auto;pointer-events:none;-webkit-user-drag:none}.scene-independent p{font-size:14px;color:var(--muted);margin-top:7px}
.page-footer{border-top:1px solid var(--line);padding:19px 0 26px;display:flex;justify-content:space-between;gap:15px;color:var(--muted);font-size:12px}.mobile-bar{display:none}
.modal-backdrop{position:fixed;inset:0;background:#29262166;z-index:50;display:flex;align-items:center;justify-content:center;padding:25px;animation:fade-in .16s}
.modal{position:relative;width:610px;max-width:100%;max-height:90dvh;overflow:auto;background:var(--white);border-radius:16px;padding:32px;animation:slide-in .22s var(--ease);overscroll-behavior:contain}
.modal.wide{width:740px}.modal-close{position:absolute;right:17px;top:15px;width:31px;height:31px;border-radius:50%;display:grid;place-items:center;color:var(--muted);z-index:8;font-size:23px;background:#ffffffdc}.modal-close:hover{background:var(--sage)}
.modal h2{font-size:25px;line-height:1.4;font-weight:650;margin:4px 0 10px}.modal .subtext{font-size:14px;color:var(--muted);margin-bottom:22px}.modal-actions{display:flex;gap:10px;margin-top:23px;flex-wrap:wrap}.modal-actions button{flex:1}
.modal-details{padding:13px 0;border-bottom:1px solid var(--line)}.modal-details .row{display:flex;justify-content:space-between;font-size:14px;margin:8px 0;gap:12px}.modal-details .row span{color:var(--muted)}.confirm-split{display:grid;grid-template-columns:1fr 1fr;gap:22px}.confirm-split .scene{min-height:230px;border-radius:12px;background:#f5f3ee}.confirm-split .gift-box{width:245px}
.confirmation-message{font-size:13px;color:var(--muted);margin-top:14px}.confirmed-badge{display:inline-flex;align-items:center;gap:7px;font-size:13px;margin-bottom:8px}.success-circle{width:22px;height:22px;border-radius:50%;background:var(--ink);color:var(--white);display:inline-grid;place-items:center;font-size:12px}.eyebrow{display:none}
.about-head{margin-bottom:20px}.about-section{padding:16px 0;border-top:1px solid var(--line)}.about-section h3{font-size:16px;margin-bottom:9px}.about-section p{font-size:14px;color:var(--muted);line-height:1.8}.about-section p+p{margin-top:9px}.about-value{display:grid;grid-template-columns:1fr 1fr;gap:22px}.about-value strong{display:block;font-size:14px;margin-bottom:6px}.about-details{padding:15px 0;border-top:1px solid var(--line);font-size:14px;color:var(--muted)}.about-details p{margin:12px 0 0;line-height:1.8}
.unbox-modal{text-align:center;width:650px;padding:33px;background:#f6f4ee}.unbox-modal h2{font-size:25px}
.unbox-card{animation:slide-in .22s var(--ease);text-align:left;margin:20px auto;max-width:420px}.unbox-progress{display:flex;gap:5px;justify-content:center;margin-bottom:18px}.unbox-progress i{height:3px;width:24px;background:#ddd9ce;border-radius:4px}.unbox-progress i.active{background:var(--ink)}.unbox-controls{display:flex;justify-content:center;align-items:center;gap:20px}.unbox-small{font-size:12px;color:var(--muted);margin-top:16px}
.merchant{padding:4px 0 38px}.merchant-heading{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:26px}.merchant-heading h1{font-size:28px;line-height:1.4;margin-bottom:7px}.merchant-heading p{font-size:14px;color:var(--muted)}.merchant-tabs{display:flex;gap:6px;background:#eaeae4;border-radius:9px;padding:4px;flex-shrink:0}.merchant-tabs button{padding:10px 18px;font-size:14px;border-radius:7px;font-weight:550}.merchant-tabs .active{background:var(--white)}
.merchant-grid{display:grid;grid-template-columns:1fr 330px;gap:28px;align-items:start}.packing-main{background:var(--white);border:1px solid var(--line);border-radius:12px;padding:25px}.packing-top{display:flex;justify-content:space-between;gap:20px;align-items:center;border-bottom:1px solid var(--line);padding-bottom:17px}.packing-top h2{font-size:18px;font-weight:650}.packing-top p{font-size:12px;color:var(--muted);margin-top:6px}.status-pill{font-size:12px;padding:5px 10px;border-radius:6px;background:var(--sage);white-space:nowrap}.packing-note{font-size:13px;color:var(--muted);margin-top:12px}
.checklist{margin-top:18px}.check-group-label{color:var(--muted);font-size:13px;margin:18px 0 7px;font-weight:600}.check-row{display:flex;align-items:center;gap:12px;border-bottom:1px solid #ecebe7;padding:12px 0;cursor:pointer}.check-row input{appearance:none;width:19px;height:19px;padding:0;border-radius:5px;flex-shrink:0;margin:0;display:grid;place-items:center;cursor:pointer}.check-row input:checked{background:var(--ink);border-color:var(--ink)}.check-row input:checked:after{content:"✓";font-size:12px;color:var(--white)}.check-row .item{flex:1;font-size:15px;font-weight:500}.check-row small{display:block;font-size:12px;color:var(--muted);margin-top:4px;font-weight:400}.check-row.checked .item-name{color:var(--muted);text-decoration:line-through;text-decoration-color:#9e998f;text-decoration-thickness:1px}.check-row input:checked:after{animation:check-in 180ms var(--ease)}
.packing-progress{height:4px;background:var(--sage);border-radius:4px;margin-top:20px;overflow:hidden}.packing-progress div{height:100%;background:var(--ink);transition:width .2s}.packing-progress-label{font-size:12px;color:var(--muted);margin-top:9px}.packing-actions{display:flex;gap:10px;margin-top:22px}.packing-actions button{flex:1}
.packing-side .scene{border-radius:12px;background:#f1efe9;min-height:255px}.packing-side .gift-box{width:265px}.packing-side h3{font-size:14px;font-weight:600;margin:13px 0 6px}.position-key{font-size:12px;color:var(--muted);line-height:1.9}.cost-panel{padding:18px;border:1px solid var(--line);border-radius:12px;background:var(--white);margin-top:20px}
.merchant-empty{padding:45px 25px;text-align:center;max-width:600px;margin:20px auto 40px}.empty-box{display:none}.merchant-empty h2{font-size:24px;margin-bottom:12px}.merchant-empty p{font-size:14px;color:var(--muted);margin:0 auto 24px;max-width:390px}
.config-form{background:var(--white);border:1px solid var(--line);border-radius:12px;padding:26px}.config-form h2{font-size:19px;font-weight:650;margin-bottom:8px}.config-description{color:var(--muted);font-size:14px;margin-bottom:22px}
.config-product{display:grid;grid-template-columns:50px minmax(0,1.6fr) minmax(85px,.6fr) minmax(130px,1fr);gap:14px;align-items:end;border-top:1px solid var(--line);padding:20px 0}.config-product>img{width:46px;height:62px;object-fit:contain;align-self:center;pointer-events:none}.config-product input,.config-product select{width:100%;padding:9px;font-size:14px}.config-product label{font-size:12px}.config-rules{grid-column:2/-1;display:flex;align-items:end;gap:18px;padding-top:2px}.config-rules .field{min-width:120px;max-width:210px;flex:1}.config-check{display:flex;align-items:center;gap:7px;min-height:40px}.config-check input{width:16px;height:16px;accent-color:var(--ink)}.store-field{max-width:350px;margin-bottom:22px}
.config-boxes{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px;padding-top:20px;border-top:1px solid var(--line);margin-bottom:20px}.config-boxes label{font-size:13px}.config-boxes input[type=number]{width:80px;margin:0 8px}.config-boxes input[type=checkbox]{accent-color:var(--ink)}
.config-bottom{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:20px;gap:20px}.config-bottom p{color:var(--muted);font-size:13px;max-width:600px}.config-bottom .actions{display:flex;gap:10px;flex-shrink:0}
.copy-area{width:100%;height:280px;font-size:14px}.toast-error{background:#86543f!important}#toast{position:fixed;bottom:28px;left:50%;transform:translate(-50%,15px);opacity:0;pointer-events:none;z-index:100;background:var(--ink);color:var(--white);padding:12px 20px;border-radius:9px;box-shadow:var(--shadow);font-size:14px;transition:opacity .16s,transform .2s var(--ease);max-width:90%;width:max-content;text-align:center}#toast.show{opacity:1;transform:translate(-50%,0)}#print-root{display:none}
.drag-ghost{position:fixed;left:0;top:0;width:110px;height:110px;z-index:90;pointer-events:none;background:transparent;will-change:transform}.drag-ghost img{width:110px;height:110px;object-fit:contain;filter:none;transform:none}.drag-source{opacity:.5}.drag-in-progress{user-select:none;cursor:grabbing}.drag-in-progress img[data-drag]{cursor:grabbing}img[data-drag]{-webkit-user-drag:none}
#tour-root{position:fixed;inset:0;z-index:40;pointer-events:none}.tour-shade{position:fixed;background:rgba(30,27,24,.48);pointer-events:none}.tour-target{outline:2px solid var(--focus)!important;outline-offset:5px!important;border-radius:8px}.tour-card{position:fixed;width:310px;max-width:calc(100vw - 32px);padding:17px 18px;border-radius:12px;background:var(--white);box-shadow:0 8px 30px #29241e25;pointer-events:auto;color:var(--ink)}
.tour-head{display:flex;justify-content:space-between;gap:15px;align-items:center}.tour-head strong{font-size:16px;font-weight:650}.tour-head span{font-size:12px;color:var(--muted)}.tour-card p{font-size:14px;line-height:1.7;color:var(--muted);margin:9px 0 14px}.tour-actions{display:flex;gap:8px;align-items:center}.tour-actions button{font-size:12px;min-height:34px;padding:6px;color:var(--muted);white-space:nowrap}.tour-actions .tour-next{margin-left:auto;padding:8px 12px;background:var(--ink);color:var(--white);border-radius:7px;font-weight:600}
@keyframes fade-in{from{opacity:0}to{opacity:1}}@keyframes slide-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
@media(max-height:820px) and (min-width:761px){.scene{min-height:280px}.gift-box{width:280px}.product-visual{height:123px}.product-visual img{width:118px;height:118px}.preview-heading{padding-top:18px}.intro h1{font-size:28px}.preview-footer{padding:14px 21px 18px}.total-row{margin:14px 0}}
@media(max-width:1100px){.shell{padding:0 28px}.builder{gap:26px;grid-template-columns:minmax(0,1fr) minmax(315px,.9fr)}.product-details{padding:12px}.product-details h3{font-size:15px}.quantity button{width:26px}.quantity span{min-width:23px}.merchant-grid{grid-template-columns:1fr 280px;gap:20px}.config-product{gap:10px;grid-template-columns:40px minmax(0,1.4fr) 85px minmax(130px,1fr)}.config-boxes{gap:10px}}
@media(max-width:960px){
 html{scrollbar-gutter:auto}.shell{padding:0 20px}.header{height:auto;min-height:71px;gap:12px;flex-wrap:wrap;padding:16px 0 12px}.brand-logo{width:135px;height:50px}.role-switch button{padding:7px 11px;font-size:12px}.header-tools{width:100%;justify-content:flex-end;gap:22px}.header-tools .text-button,.help-menu{font-size:12px}.help-menu>div{top:27px}.store-bar{padding:16px 0;font-size:12px}.store-name{gap:6px}.store-name span{margin-left:1px}
 .builder{display:block;padding-bottom:115px}.intro{padding-bottom:14px}.intro h1{font-size:26px;margin-bottom:6px}.intro p{font-size:13px}.steps{gap:24px;margin-bottom:18px}.step{font-size:14px;padding:12px 0}.step span{width:20px;height:20px;font-size:11px}.budget-bar{gap:8px;margin-bottom:18px}.budget-control{font-size:14px;gap:10px}.budget-status{font-size:13px}.budget-input input{font-size:16px;width:64px;padding:0}
 .products{gap:12px}.product-visual{height:136px}.product-visual img{width:123px;height:123px}.product-details{padding:12px 11px}.product-details h3{font-size:14px;white-space:nowrap}.product-details p{font-size:12px;margin-top:4px;line-height:1.5}.product-bottom{gap:5px;margin-top:12px}.product-price{font-size:18px}.quantity button{width:25px;height:28px}.quantity span{min-width:22px;font-size:12px}.product-tag{font-size:12px}.catalog-toolbar>span{font-size:14px}.catalog-foot{font-size:13px}.catalog-search .catalog-tools{width:280px}.preview-column{display:none}
 .page-footer{margin-bottom:85px;font-size:12px;flex-wrap:wrap;padding-bottom:20px}.mobile-bar{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:20;align-items:center;gap:12px;background:var(--white);border-top:1px solid var(--line);padding:12px 20px calc(12px + env(safe-area-inset-bottom))}.mobile-bar .primary{padding:11px 15px;font-size:13px;min-height:44px;white-space:nowrap}
 .modal-backdrop{padding:16px}.modal{border-radius:14px;padding:28px 22px;max-height:85dvh}.modal h2{font-size:23px}.modal-close{right:12px;top:10px}.modal .subtext{font-size:14px;margin-bottom:18px}.confirm-split{grid-template-columns:1fr;gap:8px}.confirm-split .scene{min-height:230px}.confirm-split .gift-box{width:237px}.modal-actions{margin-top:20px;gap:8px}.modal-actions button{padding:12px 9px;font-size:13px}.modal.drawer{width:100%;max-height:78dvh;border-radius:18px 18px 0 0;padding:25px 18px calc(18px + env(safe-area-inset-bottom));margin:0}.modal-backdrop.drawer-backdrop{align-items:flex-end;padding:0}.drawer .preview-panel{border:0;border-radius:0}.drawer .preview-heading{padding:4px 10px 0}.drawer .preview-heading>span{padding-right:20px}.drawer .scene{min-height:282px}.drawer .gift-box{width:282px}.drawer .preview-footer{padding:14px 10px 5px}.drawer .preview-instruction{padding-bottom:13px}.drawer .slot-remove{opacity:1;width:22px;height:22px}.drawer .preview-heading h2{font-size:21px}
 .about-value{gap:18px}.about-section{padding:15px 0}.about-section p{font-size:14px}.unbox-modal{padding:32px 18px 24px}.unbox-modal h2{font-size:23px}.unbox-card{max-width:100%}.unbox-small{font-size:12px}.field input,.greeting-editor{font-size:16px}.option-grid{gap:12px}.box-option{padding:13px}.box-option img{height:78px}.option-name{font-size:13px}.box-option p{font-size:12px}.section-label span{font-size:12px}.card-options{gap:8px}.card-option{padding:8px}.card-option .name{font-size:12px}.card-option small{font-size:12px}.mini-card{font-size:14px}.ribbon-option{font-size:13px;padding:10px 12px}
 .merchant{padding:4px 0 28px}.merchant-heading{display:block;margin-bottom:22px}.merchant-heading h1{font-size:26px}.merchant-heading p{font-size:13px}.merchant-tabs{width:max-content;margin-top:20px}.merchant-tabs button{padding:8px 17px;font-size:13px}.merchant-grid{display:flex;flex-direction:column-reverse;gap:22px}.packing-side{width:100%;display:grid;grid-template-columns:1fr 1fr;gap:13px;align-items:start}.packing-side .scene{min-height:172px;height:172px}.packing-side .gift-box{width:172px}.packing-side h3{margin-top:7px;font-size:13px}.position-key{font-size:12px}.cost-panel{grid-column:1/-1;margin:0;padding:14px 16px}.packing-main{padding:20px 18px;width:100%}.packing-top h2{font-size:16px}.packing-top p{font-size:12px}.packing-top{gap:12px}.check-row .item{font-size:14px}.packing-actions{gap:8px}.packing-actions button{font-size:13px;padding:11px 9px}
 .config-form{padding:21px 16px}.config-form h2{font-size:18px}.config-product{grid-template-columns:42px minmax(0,1.5fr) minmax(70px,.7fr);gap:10px}.config-product>.field:nth-of-type(3){grid-column:2/-1}.config-rules{grid-column:1/-1;gap:12px;flex-wrap:wrap}.config-rules .field{min-width:110px}.config-check{flex:1}.config-boxes{grid-template-columns:1fr;gap:15px}.config-bottom{display:block}.config-bottom .actions{margin-top:17px}.config-product input,.config-product select,.config-form>.field input{font-size:16px}.merchant-empty{padding:35px 5px}.merchant-empty h2{font-size:22px}.merchant .page-footer{margin-bottom:0}#toast{bottom:100px;font-size:13px}.tour-card{width:300px;padding:16px}.tour-card p{font-size:13px}.tour-head strong{font-size:15px}
}
@media(max-width:370px){.shell{padding:0 15px}.brand-logo{width:119px;height:45px}.mobile-bar{padding-left:14px;padding-right:14px;gap:8px}.product-details h3{font-size:13px}.product-price{font-size:17px}.quantity button{width:23px}.quantity span{min-width:20px}.product-visual{height:126px}.product-visual img{width:116px;height:116px}.step{font-size:13px}.steps{gap:21px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media print{body{background:white;color:#222}#app,#modal-root,#toast,#tour-root,#welcome-root{display:none!important}#print-root{display:block;font:12px/1.7 var(--sans)}#print-root h1{font-size:25px;margin-bottom:10px}#print-root h2{font-size:14px;margin:20px 0 8px}#print-root .print-header{border-bottom:1px solid #bbb;padding-bottom:12px}#print-root .print-columns{display:grid;grid-template-columns:1.5fr 1fr;gap:25px}#print-root .print-line{padding:8px 0;border-bottom:1px solid #ddd}#print-root .print-square{display:inline-block;width:12px;height:12px;border:1px solid #666;margin-right:8px}#print-root .scene{min-height:260px;background:none}#print-root .gift-box{width:270px;filter:none}#print-root .gift-slot{border:1px dashed #aaa}#print-root .print-note{font-size:10px;color:#777;margin-top:25px}@page{size:A4;margin:18mm}}

@media print{.print-brand{width:150px;height:55px;object-fit:contain}.print-header h1{font-size:20px!important}}

[hidden]{display:none!important}
.card-option{padding:11px}.card-options .card-option{min-width:0}
.packing-main{min-width:0}.packing-actions{position:sticky;bottom:0;z-index:3;background:var(--white);padding:16px 0 4px;display:flex;justify-content:space-between;gap:12px;align-items:center;border-top:1px solid var(--line)}.packing-export{display:flex;gap:15px;flex-wrap:wrap}.packing-actions .primary:disabled{opacity:.45;cursor:default}.status-pill.packed{background:#e9eee5;color:#46553e;animation:check-in 180ms var(--ease)}
.packing-side .gift-slot.empty{border:0;background:none}.pack-highlight{outline:2px solid #ac896a;outline-offset:3px;border-radius:6px}.packing-side .pack-highlight{transition:outline-color 160ms var(--ease)}
.config-bottom{position:sticky;bottom:0;z-index:2;background:var(--white);padding-bottom:8px}.config-save-status{font-size:13px;color:var(--muted)}
@keyframes check-in{from{opacity:.3;transform:translateY(2px)}to{opacity:1;transform:none}}
@media(hover:hover) and (pointer:fine){.product-card{transition:border-color 160ms var(--ease)}.product-visual{perspective:650px}.product-visual img{transition:transform 220ms var(--ease),filter 220ms var(--ease)}.product-card:has(img[data-drag]):hover,.product-card:focus-within{border-color:#b5a18c}.product-card:has(img[data-drag]):hover .product-visual img,.product-card:focus-within .product-visual img{transform:translateY(-4px) rotateY(-6deg) rotateZ(-2deg) scale(1.02);filter:drop-shadow(0 10px 10px #4030251d)}.drag-in-progress .product-visual img{transform:none!important}}
@media(max-width:960px){.mini-card span{font-size:12px;letter-spacing:0}.card-detail{font-size:11px;line-height:1.5;min-height:33px}.packing-actions{padding-bottom:12px}.packing-actions .primary,.packing-actions .secondary{padding:11px 15px;font-size:13px}.packing-export{gap:10px}.config-bottom{display:block;padding-top:12px}.config-bottom .actions{margin-top:10px;display:flex}.config-bottom .actions button{flex:1;min-width:0;padding:10px 8px;font-size:13px}}
@media(prefers-reduced-motion:reduce){.product-card .product-visual img{transform:none!important}}

/* Orders: an overview first, with a dedicated packing detail. */
.orders-board{background:var(--white);border:1px solid var(--line);border-radius:14px;padding:28px 30px 18px;min-width:0}
.orders-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:20px}
.orders-heading h2{font-size:23px;line-height:1.4}.orders-heading p{font-size:14px;color:var(--muted);margin-top:7px}.orders-heading p strong{font-weight:650;color:var(--ink);font-variant-numeric:tabular-nums}.orders-heading p span{padding:0 7px}
.order-search{display:flex;gap:9px;align-items:center;border:1px solid var(--line);border-radius:9px;padding:0 12px;width:310px;max-width:100%;color:var(--muted)}.order-search:focus-within{outline:2px solid var(--focus);outline-offset:3px}.order-search input{border:0;padding:11px 0;width:100%;background:transparent;outline:none;font-size:14px}
.order-filters{display:flex;gap:26px;border-bottom:1px solid var(--line)}.order-filters button{font-size:14px;padding:9px 0 12px;border-bottom:2px solid transparent;margin-bottom:-1px;color:var(--muted);display:flex;gap:8px;align-items:center}.order-filters button.active{color:var(--ink);border-color:var(--ink);font-weight:650}.order-filters span{font-size:12px;background:#f0eee9;border-radius:5px;min-width:23px;padding:1px 5px;font-variant-numeric:tabular-nums;text-align:center}
.order-table-head,.order-row{display:grid;grid-template-columns:120px minmax(0,1fr) 75px 82px 110px;gap:20px;align-items:center}.order-table-head{font-size:12px;color:var(--muted);padding:15px 0 6px}.order-row{padding:21px 0;border-bottom:1px solid var(--line)}.order-identity strong{font-size:14px;display:block;font-weight:650}.order-identity time{font-size:12px;color:var(--muted);display:block;margin-top:5px;font-variant-numeric:tabular-nums}
.order-gifts{display:flex;align-items:center;gap:15px;min-width:0}.order-thumbs{display:flex;flex-shrink:0;align-items:center;gap:3px;width:88px;flex-wrap:wrap}.order-thumbs img{width:40px;height:40px;object-fit:contain;background:#f5f3ef;border-radius:5px;padding:2px}.order-gift-text{min-width:0}.order-gift-text strong{font-size:15px;font-weight:550;overflow-wrap:anywhere}.order-gift-text p{font-size:13px;color:var(--muted);line-height:1.8;margin-top:4px;overflow-wrap:anywhere}.order-gift-text small{font-size:13px;color:var(--muted);display:block;margin-top:3px}
.order-amount{font-size:17px;font-weight:650;font-variant-numeric:tabular-nums}.order-row .status-pill{justify-self:start}.status-pill.checking{background:#f5ebe3;color:#896749}.status-pill.ready{background:#efe8dd;color:#7c5f35}.order-open{font-size:13px;font-weight:550;padding:8px 0;white-space:nowrap;text-align:right}.order-open svg{margin-left:4px}.order-result-count{font-size:12px;color:var(--muted);padding-top:17px}.order-empty{text-align:center;padding:65px 20px;margin:0;border:0;background:none}.order-empty h3{font-size:20px}.order-empty p{font-size:14px;color:var(--muted);margin:9px 0 20px}.order-empty .text-button{display:inline-flex}.order-detail-heading{display:flex;align-items:center;gap:20px;margin:0 0 20px}.order-detail-heading>span{font-size:14px;color:var(--muted);overflow-wrap:anywhere}.order-detail-heading .text-button{flex-shrink:0}.packing-actions{overflow:visible}
/* Lettering has its own safe area; ornament never shares a line with the text. */
@font-face{font-family:GiftLetter;src:url('assets/fonts/LXGWWenKaiLite-Regular.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
.letter-preview{--letter-paper:#f6f1e7;--letter-accent:#b29b78;background:var(--letter-paper);padding:46px 36px 45px;border-radius:5px;margin:20px 0;position:relative;isolation:isolate;min-height:225px;max-width:100%;min-width:0;color:#433b35}
.letter-preview.botanical{--letter-paper:#f1f3e9;--letter-accent:#879576}.letter-preview.celebration{--letter-paper:#f8ede7;--letter-accent:#bb8b7e}
.letter-frame{position:absolute;inset:14px;border:1px solid color-mix(in srgb,var(--letter-accent) 45%,transparent);border-radius:2px;pointer-events:none}.letter-motif{position:absolute;width:28px;height:28px;color:var(--letter-accent);pointer-events:none;background:var(--letter-paper)}.motif-top{right:23px;top:12px}.motif-bottom{left:23px;bottom:12px;transform:rotate(180deg)}
.letter-content{position:relative;min-width:0}.letter-preview .to,.letter-preview .from{display:flex;align-items:baseline;gap:9px;font-size:12px;color:#76695e;line-height:1.6;min-width:0}.letter-preview .to span,.letter-preview .from span{flex-shrink:0}.letter-preview .to strong,.letter-preview .from strong{font:400 19px/1.65 GiftLetter,"Kaiti SC","STKaiti",serif;color:#5e5045;overflow-wrap:anywhere;min-width:0;max-width:100%}.letter-preview .from{justify-content:flex-end;text-align:right}.letter-preview .message{font:400 23px/1.75 GiftLetter,"Kaiti SC","STKaiti",serif;letter-spacing:.02em;white-space:pre-wrap;overflow-wrap:anywhere;max-width:100%;margin:22px 0 25px;text-wrap:pretty}.mini-card span{font-family:GiftLetter,"Kaiti SC","STKaiti",serif;font-weight:400;font-size:19px}
.packing-side .letter-preview{margin:18px 0 0;padding:42px 28px;min-height:225px}.packing-side .letter-preview .message{font-size:21px;line-height:1.75}.packing-side .letter-preview .to strong,.packing-side .letter-preview .from strong{font-size:18px}.packing-side .letter-preview .to,.packing-side .letter-preview .from{font-size:12px}
@media(hover:hover) and (pointer:fine){.order-open:hover{color:var(--clay)}.order-row:hover{background:#faf9f6}}
@media(max-width:1100px){.order-table-head,.order-row{grid-template-columns:104px minmax(0,1fr) 65px 72px 100px;gap:14px}.order-thumbs{width:38px}.order-thumbs img{width:34px;height:34px}.order-gifts{gap:10px}}
@media(max-width:960px){.orders-board{padding:22px 18px 16px}.orders-heading{display:block;margin-bottom:15px}.orders-heading h2{font-size:22px}.order-search{width:100%;margin-top:20px}.order-search input{font-size:16px}.order-filters{gap:24px}.order-table-head{display:none}.order-row{grid-template-columns:1fr auto;gap:13px;padding:21px 0}.order-identity{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.order-identity time{margin:0}.order-row>.status-pill{grid-column:2;grid-row:1;justify-self:end}.order-gifts{grid-column:1/-1;grid-row:2;gap:14px}.order-thumbs{width:76px;gap:3px}.order-thumbs img{width:35px;height:35px}.order-gift-text p{font-size:13px}.order-amount{grid-column:1;grid-row:3}.order-open{grid-column:2;grid-row:3;padding:8px 0}.order-detail-heading{align-items:flex-start;gap:16px}.order-detail-heading>span{font-size:13px}.packing-side{display:block}.packing-side .scene{height:240px;min-height:240px}.packing-side .gift-box{width:235px}.packing-side .letter-preview{margin:18px 0;padding:45px 30px;min-height:225px}.packing-side .letter-preview .message{font-size:23px}.letter-preview{padding:45px 30px}.letter-preview .message{font-size:23px}.mini-card span{font-size:16px}.order-empty{padding:50px 0}}
@media print{.letter-preview{break-inside:avoid;box-shadow:none}.letter-preview .message{font-size:18px}.letter-preview .to strong,.letter-preview .from strong{font-size:16px}}
.packing-actions{position:relative;bottom:auto;z-index:3}.packing-actions>.primary,.packing-actions>.secondary{flex:0 0 auto}.packing-export button{flex:none;white-space:nowrap}
@media(max-width:960px){.packing-actions{flex-wrap:wrap;gap:14px}.packing-actions>.primary,.packing-actions>.secondary{margin-left:auto}.packing-export{gap:12px}}
/* A real miniature box is the persistent mobile destination. The raised tray is non-modal. */
.mobile-box-entry{display:flex;align-items:center;gap:12px;flex:1;min-width:0;text-align:left;padding:2px 0;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
.mobile-box-thumb{display:block;width:68px;height:68px;flex-shrink:0;position:relative;pointer-events:none}
.mini-box-scene{width:100%;height:100%;display:grid;place-items:center}.mini-box-scene .gift-box,.mini-box-scene .gift-box.small{width:68px;max-width:100%}.mini-box-scene .gift-box.small{width:74px}.mini-box-scene .slot-index{display:none}.mini-box-scene .gift-slot{padding:0}.mini-box-scene .gift-slot img{max-width:100%;max-height:100%;width:100%;height:100%;object-fit:contain;filter:none}
.mobile-box-thumb .scene-independent{padding:0;min-height:0;height:100%;display:grid;place-items:center}.mobile-box-thumb .scene-independent img{width:55px;height:55px;margin:0}.mobile-box-thumb .scene-independent p{display:none}
.mobile-box-copy{display:block;min-width:0}.mobile-box-copy strong{display:block;font-size:25px;font-weight:700;line-height:1.2;font-variant-numeric:tabular-nums}.mobile-box-copy strong small{font-size:13px;margin-right:2px}.mobile-box-copy>span{display:block;color:var(--muted);font-size:12px;margin-top:4px;white-space:nowrap}.mobile-box-copy svg{transform:rotate(-90deg);margin-left:1px}
.touch-drag-hint{display:none;font-size:12px;font-weight:400;color:var(--muted);margin-left:10px}
#mobile-tray-root{position:fixed;inset:0;z-index:25;pointer-events:none}.mobile-drop-tray{pointer-events:auto;position:absolute;bottom:calc(95px + env(safe-area-inset-bottom,0px));left:0;right:0;margin:auto;max-width:580px;background:#fbfaf6;border:1px solid #dfd8cc;border-bottom:0;border-radius:22px 22px 0 0;box-shadow:0 -10px 35px #3b2f211c;padding:10px 20px 12px;max-height:calc(100dvh - 140px - env(safe-area-inset-bottom,0px));overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none}
.tray-handle{width:34px;height:4px;border-radius:3px;background:#d5cdbf;margin:0 auto 12px}.tray-heading{display:flex;align-items:center;justify-content:space-between;gap:14px}.tray-heading h2{font-size:17px;line-height:1.4}.tray-heading h2 span{font-size:12px;font-weight:500;color:var(--muted);margin-left:9px}.tray-heading p{font-size:12px;color:var(--muted);margin-top:2px}.tray-heading>button{width:44px;height:44px;flex-shrink:0;display:grid;place-items:center;border-radius:8px;color:var(--muted)}
.tray-scene{min-height:210px;height:210px;display:grid;place-items:center;position:relative}.tray-scene .gift-box{width:225px;max-width:90%;margin:0}.tray-scene .gift-box.small{width:280px;max-width:96%}.tray-scene .slot-remove{display:none}.tray-scene .slot-index{font-size:10px}.tray-scene .gift-slot{min-width:0}
.tray-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid #e8e2d7;padding-top:10px;font-size:12px;color:var(--muted)}.tray-foot .text-button{font-size:12px;padding:6px 0}.mobile-drop-tray .independent-list{padding:6px 0 10px;border:0}.mobile-drop-tray .independent-list h3{margin-bottom:2px}.mobile-drop-tray .separate-empty{margin:0;padding:9px;border:1px dashed #cfbaa3;border-radius:7px}.mobile-drop-tray .independent-item{padding:3px 0}.mobile-drop-tray .independent-item img{width:28px;height:28px}.mobile-drop-tray .independent-item small{display:none}
.gift-flight{position:fixed;left:0;top:0;z-index:90;max-width:none;object-fit:contain;pointer-events:none;filter:drop-shadow(0 6px 8px #3b2f211a)}.drag-ghost.touch-ghost,.drag-ghost.touch-ghost img{width:90px;height:90px}.touch-ghost img{filter:drop-shadow(0 6px 10px #3b2f2122)}
img[data-drag]{-webkit-touch-callout:none;touch-action:auto}.gift-slot img[data-drag]{touch-action:auto}button,[role=button]{-webkit-touch-callout:none;user-select:none;-webkit-user-select:none}
@media(max-width:960px){.mobile-bar{gap:16px;padding:10px 20px calc(10px + env(safe-area-inset-bottom,0px));min-height:89px}.mobile-bar>.primary{flex-shrink:0;padding:12px 17px}.builder{padding-bottom:125px}#toast{bottom:calc(108px + env(safe-area-inset-bottom,0px))}}
@media(pointer:coarse){.touch-drag-hint{display:inline-block}}
@media(max-width:370px){.mobile-bar{gap:10px;padding-left:14px;padding-right:14px}.mobile-box-entry{gap:7px}.mobile-box-thumb{width:58px;height:58px}.mini-box-scene .gift-box{width:58px}.mobile-box-copy strong{font-size:23px}.mobile-box-copy>span{font-size:11px}.mobile-bar>.primary{padding:12px 12px}.touch-drag-hint{display:block;margin-left:0;margin-top:2px}}
@media(max-height:650px){.tray-scene{height:175px;min-height:175px}.tray-scene .gift-box{width:170px}.tray-scene .gift-box.small{width:230px}.tray-heading p{display:none}.tray-handle{margin-bottom:5px}}
@media(min-width:961px){#mobile-tray-root{display:none}}
.mini-box-scene .gift-slot .slot-index{display:none}.mini-box-scene .gift-slot.empty{border-color:transparent}

.mobile-box-entry[aria-expanded="true"] .mobile-box-copy svg{transform:rotate(90deg)}
.mobile-drop-tray{bottom:calc(89px + env(safe-area-inset-bottom,0px));padding-top:8px;padding-bottom:8px}.tray-handle{margin-bottom:7px}.tray-scene{height:170px;min-height:170px}.tray-scene .gift-box{width:185px}.tray-scene .gift-box.small{width:260px}.tray-foot{padding-top:7px}.tray-foot .text-button{padding:3px 0}
@media(max-height:650px){.tray-scene{height:175px;min-height:175px}.tray-scene .gift-box{width:170px}.tray-scene .gift-box.small{width:230px}}
.tray-scene .gift-slot.empty{font-size:20px;line-height:1}.tray-scene .gift-slot.empty small{font-size:10px;line-height:1.2}.tray-scene .gift-slot.empty>span{gap:2px}
