*,*:before,*:after{box-sizing:border-box}body{margin:0;padding:0;background:#fbf7f0}:root{--color-primary: #C8112B;--color-primary-deep: #A50D22;--color-secondary: #F5EDE0;--color-bg: #FBF7F0;--color-ink: #1A1413;--color-ink-soft: #4A3F3C;--color-line: #1A1413;--color-rule: rgba(26,20,19,.18);--color-stamp: #C8112B;--font-serif: "Playfair Display", "Cormorant Garamond", "Times New Roman", serif;--font-sans-en: "Bebas Neue", "Oswald", "Helvetica Neue", sans-serif;--font-mono: "JetBrains Mono", "Courier New", monospace;--font-cjk: "Noto Sans TC", "Hiragino Kaku Gothic ProN", "PingFang TC", sans-serif;--font-cjk-serif: "Noto Serif TC", "Songti TC", serif;--grid-px: 22px}.proto *{box-sizing:border-box}.proto{font-family:var(--font-cjk);color:var(--color-ink);background:var(--color-bg);line-height:1.55;-webkit-font-smoothing:antialiased;letter-spacing:.01em}.proto img{display:block;max-width:100%}.proto button{font-family:inherit;cursor:pointer;border:none;background:none}.proto input,.proto textarea,.proto select{font-family:inherit}.bg-grid{background-image:linear-gradient(to right,var(--color-rule) 1px,transparent 1px),linear-gradient(to bottom,var(--color-rule) 1px,transparent 1px);background-size:var(--grid-px) var(--grid-px)}.bg-grid-red{background-image:linear-gradient(to right,rgba(200,17,43,.22) 1px,transparent 1px),linear-gradient(to bottom,rgba(200,17,43,.22) 1px,transparent 1px);background-size:var(--grid-px) var(--grid-px);background-color:var(--color-bg)}.bg-checker{background:repeating-conic-gradient(var(--color-primary) 0% 25%,transparent 0% 50%) 0 0 / 24px 24px}.bg-checker-sm{background:repeating-conic-gradient(var(--color-primary) 0% 25%,var(--color-secondary) 0% 50%) 0 0 / 14px 14px}.bg-dots{background-image:radial-gradient(var(--color-primary) 1.6px,transparent 1.8px);background-size:14px 14px}.t-eng-display{font-family:var(--font-serif);font-style:italic;font-weight:500;letter-spacing:-.01em}.t-eng-bebas{font-family:var(--font-sans-en);letter-spacing:.04em}.t-mono{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase}.t-cjk-bold{font-family:var(--font-cjk);font-weight:900;letter-spacing:.06em}.t-cjk-body{font-family:var(--font-cjk);font-weight:400;letter-spacing:.04em}.rule{height:1px;background:var(--color-ink)}.rule-double{border-top:1px solid var(--color-ink);border-bottom:1px solid var(--color-ink);height:4px}.box-line{border:1px solid var(--color-ink)}.box-line-red{border:1px solid var(--color-primary)}.stamp{display:inline-flex;align-items:center;justify-content:center;border:2px solid var(--color-primary);color:var(--color-primary);font-family:var(--font-serif);font-style:italic;font-weight:600;border-radius:999px;padding:6px 16px;transform:rotate(-6deg);background:var(--color-bg);letter-spacing:.04em}.stamp-circle{width:96px;height:96px;border:2px solid var(--color-primary);color:var(--color-primary);border-radius:50%;display:grid;place-items:center;text-align:center;background:var(--color-bg);transform:rotate(-8deg);line-height:1.05}.tape{background:#c8112b2e;border-left:1px dashed rgba(200,17,43,.6);border-right:1px dashed rgba(200,17,43,.6);padding:4px 14px;display:inline-block;transform:rotate(-2deg);font-family:var(--font-mono);font-size:11px;color:var(--color-primary-deep)}.page-root{max-width:960px;margin:0 auto;min-height:100vh;display:flex;flex-direction:column}.page-body{flex:1}@media(min-width:680px){.page-body{display:grid;grid-template-columns:55% 45%;align-items:stretch}.page-left{border-right:1px solid var(--color-ink);position:sticky;top:0;align-self:start;background:var(--color-bg)}}.form-collapsible{display:grid;grid-template-rows:0fr;transition:grid-template-rows .48s cubic-bezier(.7,.05,.2,1),opacity .36s ease;opacity:0}.form-collapsible.open{grid-template-rows:1fr;opacity:1}.form-collapsible>div{overflow:hidden;min-height:0}.form-grid{display:grid;grid-template-columns:max-content 1fr;border-bottom:1px solid var(--color-ink)}.form-grid .field-label{border-top:1px solid var(--color-ink);white-space:nowrap}.form-grid .field-input{border-top:1px solid var(--color-ink)}.field-row{display:grid;grid-template-columns:140px 1fr;border-top:1px solid var(--color-ink);align-items:stretch}.field-row:last-child{border-bottom:1px solid var(--color-ink)}.field-label{background:var(--color-secondary);border-right:1px solid var(--color-ink);padding:14px 16px;display:flex;align-items:center;gap:8px;font-weight:700;font-size:14px}.field-label .req{font-family:var(--font-mono);font-size:10px;color:var(--color-primary);border:1px solid var(--color-primary);padding:1px 5px;letter-spacing:.1em}.field-input{padding:14px 16px;background:transparent}.field-input input[type=text],.field-input input[type=tel],.field-input input[type=number],.field-input textarea,.field-input select{width:100%;border:none;border-bottom:1px dashed var(--color-rule);background:transparent;font-size:15px;padding:6px 0;outline:none;color:var(--color-ink)}.field-input input:focus,.field-input textarea:focus,.field-input select:focus{border-bottom-color:var(--color-primary)}.field-input textarea{resize:vertical;min-height:60px}.radio-row{display:flex;flex-wrap:wrap;gap:8px}.radio-pill{border:1px solid var(--color-ink);padding:8px 16px;font-size:13px;background:var(--color-bg);transition:all .15s ease;font-weight:600}.radio-pill.active{background:var(--color-primary);color:var(--color-bg);border-color:var(--color-primary)}.radio-pill:hover:not(.active){background:var(--color-secondary)}.qty-stepper{display:inline-flex;border:1px solid var(--color-ink);align-items:stretch}.qty-stepper button{width:38px;background:var(--color-bg);font-size:18px;font-weight:700;color:var(--color-ink)}.qty-stepper button:hover{background:var(--color-secondary)}.qty-stepper input{width:56px;text-align:center;border:none;border-left:1px solid var(--color-ink);border-right:1px solid var(--color-ink);background:var(--color-bg);font-weight:700;font-size:16px}.btn-block{display:flex;flex-direction:column;align-items:stretch;justify-content:center;padding:28px 22px;border:1.5px solid var(--color-ink);text-align:left;transition:transform .18s ease,box-shadow .18s ease;position:relative;overflow:hidden}.btn-block:hover{transform:translate(-2px,-2px);box-shadow:4px 4px 0 var(--color-ink)}.btn-block:active{transform:translate(0);box-shadow:2px 2px 0 var(--color-ink)}.btn-block.red{background:var(--color-primary);color:var(--color-bg);border-color:var(--color-primary)}.btn-block.red:hover{box-shadow:4px 4px 0 var(--color-ink)}.btn-block.white{background:var(--color-bg);color:var(--color-ink)}.proto .btn-submit{display:inline-flex;align-items:center;justify-content:center;gap:10px;background:var(--color-primary);color:var(--color-bg);padding:18px 36px;font-family:var(--font-cjk);font-weight:900;font-size:18px;letter-spacing:.2em;border:1.5px solid var(--color-primary);width:100%;transition:all .16s ease}.proto .btn-submit:hover{background:var(--color-primary-deep);border-color:var(--color-primary-deep)}.gallery-scroll{display:flex;gap:14px;overflow-x:auto;padding:4px 4px 18px;scroll-snap-type:x mandatory;scrollbar-width:thin;scrollbar-color:var(--color-primary) var(--color-secondary)}.gallery-scroll::-webkit-scrollbar{height:8px}.gallery-scroll::-webkit-scrollbar-track{background:var(--color-secondary)}.gallery-scroll::-webkit-scrollbar-thumb{background:var(--color-primary)}.gallery-card{flex:0 0 auto;width:240px;scroll-snap-align:start}.gallery-card .img{width:100%;height:240px;border:1px solid var(--color-ink);background:var(--color-secondary);position:relative;overflow:hidden}.gallery-card .meta{display:flex;justify-content:space-between;margin-top:8px;font-family:var(--font-mono);font-size:10px;color:var(--color-ink-soft)}.ph{width:100%;height:100%;background:repeating-linear-gradient(135deg,var(--color-secondary) 0 8px,#ECDFC8 8px 16px);display:grid;place-items:center;color:var(--color-ink-soft);font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.1em}.ph.red{background:repeating-linear-gradient(135deg,var(--color-primary) 0 8px,var(--color-primary-deep) 8px 16px);color:#ffffffd9}.ph.dark{background:repeating-linear-gradient(135deg,#2c2522 0,#2c2522 8px,#1a1413 8px,#1a1413 16px);color:#ffffffb3}.sec-head{display:flex;align-items:baseline;gap:16px;border-top:2px solid var(--color-ink);border-bottom:1px solid var(--color-ink);padding:10px 2px;margin-bottom:22px}.sec-head .num{font-family:var(--font-mono);font-size:11px;color:var(--color-primary)}.sec-head .cn{font-weight:900;font-size:20px;letter-spacing:.16em}.sec-head .en{font-family:var(--font-serif);font-style:italic;font-size:18px;color:var(--color-ink-soft);margin-left:auto}.vert{writing-mode:vertical-rl;text-orientation:mixed;letter-spacing:.3em}@media(max-width:420px){.info-bar-cell{padding:10px 6px!important}.info-bar-cell .info-label{font-size:8px!important}.info-bar-cell .info-value{font-size:11px!important}.field-label{padding:10px 8px;font-size:12px;gap:4px}.field-label .req{font-size:8px;padding:1px 3px}.field-input{padding:10px 8px}.qty-stepper button{width:32px;font-size:16px}.qty-stepper input{width:44px;font-size:15px}}@keyframes marq{0%{transform:translate(0)}to{transform:translate(-50%)}}.marquee{overflow:hidden;border-top:1px solid var(--color-bg);border-bottom:1px solid var(--color-bg);background:var(--color-primary);color:var(--color-bg)}.marquee-track{display:inline-flex;gap:40px;padding:10px 0;animation:marq 30s linear infinite;white-space:nowrap;font-family:var(--font-serif);font-style:italic;font-size:16px}.desc-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#1a14139e;z-index:900;display:flex;align-items:center;justify-content:center;padding:20px}.desc-modal{background:var(--color-bg);max-width:560px;width:100%;max-height:82vh;overflow-y:auto;border:1.5px solid var(--color-ink);position:relative}.desc-modal-inner{padding:28px 28px 32px}.desc-close{position:absolute;top:10px;right:12px;width:30px;height:30px;display:flex;align-items:center;justify-content:center;font-size:15px;color:var(--color-bg);background:none;border:none;cursor:pointer;z-index:1;opacity:.7;transition:opacity .15s ease}.desc-close:hover{opacity:1}.img-info-badge{position:absolute;top:12px;right:12px;background:#1a14139e;color:var(--color-secondary);font-family:var(--font-mono);font-size:9px;letter-spacing:.12em;text-transform:uppercase;padding:5px 10px;pointer-events:none;transition:opacity .18s ease}.product-list{display:flex;flex-direction:column;gap:10px}.product-card{display:flex;border:1px solid var(--color-ink);transition:box-shadow .18s ease,border-color .18s ease}.product-card.selected{border-color:var(--color-primary);box-shadow:3px 3px 0 var(--color-primary)}.product-card-img{flex:0 0 96px;width:96px;border-right:1px solid var(--color-ink);transition:border-color .18s ease}.product-card.selected .product-card-img{border-right-color:var(--color-primary)}.product-card-body{flex:1;padding:14px 16px;display:flex;flex-direction:column;gap:10px;min-width:0}.product-card-meta{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}.product-card-name{font-size:15px}.product-card-price{font-family:var(--font-mono);font-size:12px;color:var(--color-primary);white-space:nowrap;flex-shrink:0}.product-card-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:auto}.product-stock{font-family:var(--font-mono);font-size:9px;color:var(--color-ink-soft);text-transform:uppercase;letter-spacing:.1em}.product-stock.low{color:var(--color-primary)}@media(max-width:420px){.product-card-img{flex:0 0 72px;width:72px}.product-card-body{padding:10px 12px}.product-card-name{font-size:13px}}.order-summary{border:1px solid var(--color-ink);margin-bottom:16px}.order-summary-head{background:var(--color-ink);color:var(--color-secondary);padding:8px 14px;font-family:var(--font-mono);font-size:10px;letter-spacing:.15em;text-transform:uppercase}.order-summary-row{display:flex;justify-content:space-between;align-items:baseline;gap:8px;padding:10px 14px;font-size:13px;border-bottom:1px dashed var(--color-rule)}.order-summary-row span:first-child{color:var(--color-ink-soft);font-size:12px}.order-summary-total{display:flex;justify-content:space-between;align-items:baseline;padding:12px 14px;font-weight:900;font-size:15px;letter-spacing:.04em}
