:root{color-scheme:light;--ink:#382d4d;--muted:#746681;--purple:#68468c;--line:#ddd1e6;--gold:#af803a;--red:#9d2638}*{box-sizing:border-box}body{margin:0;background:linear-gradient(#25213bdd,#25213bf5),url('../wizzy-assets/waypoint/arrival.webp') center/cover fixed;font:15px 'Segoe UI',system-ui,sans-serif;color:var(--ink)}header{display:flex;justify-content:space-between;align-items:center;padding:18px max(24px,calc((100vw - 1360px)/2));background:#211d34;color:#f5eadb;border-bottom:1px solid #be9b6166}a{color:var(--purple)}header a{color:#f5eadb;text-decoration:none}header nav{display:flex;gap:24px}.brand{font:24px Georgia,serif}main{max-width:1400px;margin:auto;padding:30px 24px}h1,h2,h3{font-family:Georgia,serif;font-weight:400}h1{font-size:36px;margin:8px 0 12px}h2{font-size:25px;margin:0}h3{font-size:19px;margin:0 0 6px}.shop-heading{color:#f8efdf;display:flex;justify-content:space-between;align-items:center;padding:0 8px 20px}.shop-heading p{color:#d7c9dd}.eyebrow{font-size:11px;letter-spacing:2.5px;color:#dfbd7e!important}.market-emblem{font-size:54px;color:#dfbd7e;padding:20px}.controls{display:flex;align-items:start;gap:20px;padding:20px 24px;border:1px solid #e3cca5;background:#fbf6ed;border-radius:10px;margin-bottom:22px}.controls label{flex:0 0 145px}.controls p{font-size:13px;color:var(--muted);line-height:1.6;margin:22px 0 0;max-width:660px}label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:600}input,select,button{font:inherit}input,select{width:100%;border:1px solid #cbbbd8;border-radius:5px;padding:10px;background:#fff;color:var(--ink);min-width:0}button{border:1px solid #cbbbd8;border-radius:5px;background:#f9f5fc;color:var(--purple);padding:9px 13px;cursor:pointer}button:hover{background:#eee4f6}button:disabled{opacity:.5;cursor:default}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #b08d4b;outline-offset:3px}.primary{background:var(--purple);color:white;border-color:var(--purple)}.primary:hover{background:#50326f}.shop-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:22px;align-items:start}.catalog,.cart{background:#fffdf9;border:1px solid #e4d7bf;border-radius:10px;padding:22px}.filters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px}.filters>label{flex:0 1 140px;min-width:0}.filters .search{flex:1 1 180px}.filters .check{flex:0 0 100%}.filters input:not([type=checkbox]),.filters select{height:40px}.check{grid-column:1/-1;flex-direction:row;align-items:center;font-weight:400}.check input{width:auto}#results{font-size:12px;color:var(--muted);margin:20px 0 12px}#products{display:flex;flex-direction:column;gap:6px}.product{border:1px solid var(--line);background:linear-gradient(100deg,#faf6ff,#fffdf9);border-radius:7px;padding:9px 12px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px}.product-info{display:flex;align-items:center;flex-wrap:wrap;gap:5px 12px;min-width:0}.product h3{font-size:17px;line-height:1.3;margin:0}.product .metadata{font-size:11px;line-height:1.5}.product h3 a{text-decoration:none}.product h3 a:hover{text-decoration:underline}.metadata{font-size:12px;color:var(--muted);line-height:1.8}.purchase{display:flex;align-items:center;gap:8px;flex-wrap:nowrap;justify-content:flex-end}.purchase button{font-size:12px;padding:7px 10px;white-space:nowrap}.price{font-size:13px;font-weight:600;white-space:nowrap;text-align:right}.purchase input{width:52px;padding:6px;font-size:13px}.over-budget{border-color:#c56b76;background:#fff5f5}.over-budget .price,.over-label{color:var(--red)}.over-label{font-size:10px;white-space:nowrap}.over-label:empty{display:none}.pagination{display:flex;align-items:center;justify-content:space-between;margin-top:20px;gap:10px;font-size:12px}.cart{position:sticky;top:18px}.cart-title{display:flex;align-items:center;justify-content:space-between;padding-bottom:16px;border-bottom:1px solid var(--line)}#cart-count{font-size:12px;color:var(--muted)}.cart-row{padding:15px 0;border-bottom:1px solid var(--line)}.cart-row a{font-weight:600;text-decoration:none}.cart-row .cart-actions{display:flex;align-items:center;gap:8px;margin-top:9px}.cart-actions input{width:72px;padding:7px}.cart-actions small{margin-right:auto}.cart-actions button{padding:6px 8px;font-size:12px}.cart>.primary,.cart>#clear{width:100%;margin-top:10px}#cart-totals{line-height:1.9;padding-top:15px;font-size:14px}#cart-totals strong{font-size:19px}#cart-warning{color:var(--red);font-size:13px}.fine{font-size:12px;line-height:1.6;color:var(--muted)}dialog{width:min(700px,calc(100% - 30px));max-height:85vh;overflow:auto;border:1px solid #bc9c64;border-radius:10px;padding:24px;background:#fffdf9;color:var(--ink)}dialog::backdrop{background:#21182cc9}.summary-heading{display:flex;justify-content:space-between;align-items:center}pre{white-space:pre-wrap;overflow-wrap:anywhere;font:14px/1.7 'Segoe UI',sans-serif}footer{color:#c5b7cc;text-align:center;font-size:12px;padding:15px 24px 30px}.empty{color:var(--muted);padding:20px 0}.ineligible{color:var(--red)}@media(max-width:1000px){.shop-layout{grid-template-columns:minmax(0,1fr) 300px}.filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.filters .search{grid-column:1/-1}.product{grid-template-columns:1fr}.purchase{max-width:none}.price{width:auto;margin-right:auto}}@media(max-width:720px){main{padding:22px 12px}header{padding:16px;gap:16px}.brand{font-size:20px}header nav{gap:12px;font-size:12px}h1{font-size:28px}.market-emblem{display:none}.controls{flex-wrap:wrap;padding:16px;gap:12px}.controls label{flex:1 1 110px}.controls p{margin:0}.shop-layout{grid-template-columns:1fr}.cart{position:static}.catalog,.cart{padding:16px}.pagination{font-size:11px}}
.mobile-cart-link{display:none}@media(max-width:720px){.mobile-cart-link{display:block;position:fixed;bottom:12px;left:16px;right:16px;z-index:5;background:#68468c;color:white;text-align:center;text-decoration:none;padding:13px;border:1px solid #cfb081;border-radius:7px;box-shadow:0 3px 18px #211d3455}footer{padding-bottom:80px}#shopping-cart{scroll-margin-top:15px}}

@media(max-width:720px){.product-info{gap:4px 10px}.product h3{font-size:16px;overflow-wrap:anywhere}.product .metadata{overflow-wrap:anywhere}.product{gap:8px}.purchase{flex-wrap:wrap}.purchase .over-label{white-space:normal}}

.upgrade-menu{position:relative;font-size:12px}.upgrade-menu summary{cursor:pointer;list-style:none;border:1px solid #cbbbd8;border-radius:5px;background:#f9f5fc;color:var(--purple);padding:7px 10px;white-space:nowrap}.upgrade-menu summary::-webkit-details-marker{display:none}.upgrade-menu[open] summary{background:#eee4f6}.upgrade-options{position:absolute;z-index:10;right:0;top:calc(100% + 7px);width:min(320px,calc(100vw - 62px));background:#fffdf9;border:1px solid #cbbbd8;border-radius:7px;padding:15px;box-shadow:0 5px 24px #30203b33}.upgrade-options select{font-size:12px}.upgrade-footer{display:flex;gap:12px;justify-content:space-between;align-items:center}.upgrade-cost{font-size:13px;font-weight:600;white-space:nowrap}.upgrade-budget{font-size:11px;color:var(--red)}.upgrade-description{font-size:12px;color:var(--purple);margin-top:4px}.product-info{gap:4px 10px}.product h3{font-size:16px}.purchase{gap:6px}.purchase button,.upgrade-menu summary{padding:7px 8px}.product .metadata{font-size:11px}
.upgrade-menu summary:focus-visible{outline:3px solid #b08d4b;outline-offset:3px}
.controls-clear{flex:none;align-self:flex-start;margin-top:21px;height:40px}
@media(max-width:360px){.controls-clear{margin-top:0}}

/* Reserve the Upgrade column on every row, including items without upgrades. */
.purchase{display:grid;grid-template-columns:minmax(88px,max-content) 52px 36px 36px;gap:4px 6px;align-items:center}
.purchase>.price{grid-column:1;grid-row:1;justify-self:end;margin:0}
.purchase>.add-quantity{grid-column:2;grid-row:1;width:100%}
.purchase>.add{grid-column:3;grid-row:1;width:100%;display:grid;place-items:center;padding:6px}
.purchase>.upgrade-menu{grid-column:4;grid-row:1;width:100%}
.purchase>.upgrade-menu>summary{display:flex;align-items:center;justify-content:center;gap:3px;padding:6px}
.shop-action-icon{display:block;width:18px;height:18px;flex:none}
.purchase>.over-label{grid-column:1 / -1;grid-row:2;justify-self:end}
@media(max-width:1000px){.purchase{width:100%;grid-template-columns:minmax(0,1fr) 52px 36px 36px}}
@media(max-width:720px){.purchase{grid-template-columns:minmax(0,1fr) 44px 36px 36px;column-gap:4px}.purchase>.price{white-space:normal;overflow-wrap:anywhere}.purchase>.add,.purchase>.upgrade-menu>summary{padding-inline:5px}}
