/* Store: an editorial extension of the portfolio's existing design tokens. */
.store-hero h1,.store-detail-hero h1 { font: normal clamp(56px,8vw,108px)/1.02 'Marcellus','Marcellus Fallback',serif; letter-spacing:-.055em; color:var(--cream); margin:20px 0 32px; }
.store-hero h1 em,.store-art__title em { font-family:'Cormorant Garamond',serif; font-weight:400; }
.store-hero h1 em { color:var(--gold); }
.store-hero__row { display:grid; grid-template-columns:1.3fr 1fr; align-items:center; gap:64px; }
.store-hero__row > div { max-width:38ch; }
.page-store p,.store-home p { color:var(--text-soft); }
.page-store .eyebrow,.store-home .eyebrow { color:var(--gold); }
.store-lede { font-size:clamp(20px,2.3vw,27px); line-height:1.5; color:var(--cream)!important; }
.store-text-link { display:inline-block; color:var(--cream); text-decoration:none; border-bottom:1px solid var(--gold-soft); padding:12px 0; }
.store-hero__note { display:flex; flex-wrap:wrap; gap:20px 40px; border-top:1px solid var(--panel-border); padding-top:24px; margin-top:42px; font:11px/1.6 'Jost',sans-serif; letter-spacing:.1em; text-transform:uppercase; color:var(--text-soft); }
.store-hero__note span:last-child { margin-left:auto; color:var(--gold); }
.store-section-top { display:flex; justify-content:space-between; align-items:end; gap:24px; margin-bottom:24px; }
.store-section-top h2,.store-maker h2 { font:normal clamp(29px,3.5vw,44px)/1.18 'Marcellus','Marcellus Fallback',serif; color:var(--cream); letter-spacing:-.025em; margin:0; }
.store-section-top > p { margin:0; font-size:13px; }
.store-filters { display:flex; flex-wrap:wrap; gap:8px; padding:20px 0; border-top:1px solid var(--hairline); }
.store-filters[hidden],.store-card[hidden] { display:none; }
.store-filters button { cursor:pointer; font:14px 'Jost',sans-serif; border:1px solid var(--hairline); background:transparent; color:var(--text-soft); border-radius:30px; min-height:44px; padding:10px 20px; }
.store-filters button span { font-size:10px; margin-left:8px; }
.store-filters button[aria-pressed="true"] { background:var(--cream); color:var(--ink); border-color:var(--cream); }
.store-count { font-size:12px; margin:0 0 22px; }
.store-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:38px 28px; }
.store-card { min-width:0; border:1px solid var(--panel-border); background:var(--panel); }
.store-card__preview { padding:26px; min-height:270px; display:flex; flex-direction:column; justify-content:space-between; gap:32px; text-decoration:none; color:#dbd6c7; overflow:hidden; border-bottom:1px solid var(--panel-border); }
.store-kicker { font:10px/1.6 'Jost',sans-serif; text-transform:uppercase; letter-spacing:.13em; margin:0; }
.store-kicker span { color:var(--text-soft); }
.store-art__title { font:normal clamp(32px,4vw,52px)/1.1 'Marcellus','Marcellus Fallback',serif; letter-spacing:-.035em; }
.store-art__foot { display:flex; justify-content:space-between; align-items:center; gap:16px; font:9px/1.5 'Jost',sans-serif; letter-spacing:.12em; }
.store-art__foot > span { font:24px 'Marcellus',serif; }
.store-art--saas { background:linear-gradient(120deg,#353227,#191915); }
.store-art--audit { background:linear-gradient(135deg,#203834,#141f1e); color:#d2ded5; }
.store-art--flutter { background:linear-gradient(130deg,#2b364b,#171d28); color:#d0dbea; }
.store-art--sentiment { background:linear-gradient(130deg,#493039,#291e27); color:#dfc6ca; }
.store-card__body { padding:26px; }
.store-card h3 { font:normal 25px/1.25 'Marcellus','Marcellus Fallback',serif; color:var(--cream); margin:14px 0; }
.store-card h3 a { color:inherit; text-decoration:none; }
.store-card__body > p:not(.store-kicker) { font-size:14px; line-height:1.7; min-height:4.8em; }
.store-tags { display:flex; flex-wrap:wrap; gap:8px; list-style:none; padding:0; margin:20px 0; }
.store-tags li { font:11px/1.5 'Jost',sans-serif; color:var(--text-soft); border:1px solid var(--hairline); padding:5px 10px; border-radius:20px; }
.store-card__bottom { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:16px; border-top:1px solid var(--hairline); padding-top:20px; font-size:12px; color:var(--text-soft); }
.store-card__bottom strong { display:block; color:var(--cream); font:22px 'Marcellus',serif; margin-top:4px; }
.store-card__bottom a { color:var(--cream); text-decoration:none; padding:12px 0; }
.store-button { display:inline-flex; justify-content:center; align-items:center; min-height:48px; padding:14px 20px; background:var(--cream); color:var(--ink); text-decoration:none; font:13px/1.5 'Jost',sans-serif; }
.store-maker { display:grid; grid-template-columns:1fr 1fr; gap:64px; }
.store-maker p { margin-top:0; }
.store-grid--featured { grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.store-grid--featured .store-card__preview { min-height:220px; padding:22px; }
.store-grid--featured .store-art__title { font-size:clamp(28px,3vw,37px); }
.store-grid--featured .store-card__body { padding:22px; }
.store-grid--featured h3 { font-size:23px; }
.store-home__intro { max-width:65ch; margin-bottom:30px; }
.store-detail-hero { display:grid; grid-template-columns:1.7fr 1fr; gap:64px; align-items:start; margin:52px 0 72px; }
.store-detail-hero h1 { font-size:clamp(44px,6vw,72px); }
.store-purchase { border:1px solid var(--panel-border); padding:32px; background:var(--panel); }
.store-price { font:48px 'Marcellus',serif; color:var(--cream); margin:12px 0 24px; }
.store-purchase p { font-size:13px; }
.store-status { display:inline-block; padding:8px 14px; border:1px solid var(--gold-soft); color:var(--gold); font:12px 'Jost',sans-serif; letter-spacing:.04em; }
.store-detail-grid { display:grid; grid-template-columns:1.1fr 1fr; gap:64px; }
.store-detail-grid > div { min-width:0; }
.store-detail-section { margin-bottom:38px; }
.store-detail-section h2,.store-example h2 { font:normal 27px/1.3 'Marcellus',serif; color:var(--cream); margin:0 0 18px; }
.store-detail-section p,.store-detail-section li { font-size:15px; line-height:1.8; color:var(--text-soft); }
.store-detail-section ul,.store-detail-section ol { padding-left:22px; }
.store-detail-section li { padding-left:5px; margin-bottom:10px; }
.store-detail-section .store-muted { font-size:12px; }
.store-example { background:#1b211f; border:1px solid #35423b; padding:28px; margin-bottom:40px; }
.store-example .store-kicker { margin-bottom:20px; color:#bfd2c5; }
.store-example pre { font:12px/1.9 ui-monospace,SFMono-Regular,Consolas,monospace; color:#d3ded6; white-space:pre-wrap; overflow-wrap:anywhere; }
.store-example > p:last-child { font-size:12px; border-top:1px solid var(--hairline); padding-top:16px; }
.store-detail-section details { border-bottom:1px solid var(--hairline); padding:16px 0; }
.store-detail-section summary { cursor:pointer; color:var(--cream); font-size:14px; min-height:28px; }
.store-detail-end { border-top:1px solid var(--panel-border); padding-top:26px; }
.page-store a:focus-visible,.page-store button:focus-visible,.page-store summary:focus-visible,.store-home a:focus-visible { outline:2px solid var(--gold); outline-offset:5px; }
@media (hover:hover) and (prefers-reduced-motion:no-preference) { .store-card { transition:border-color .25s,transform .25s; } .store-card:hover { border-color:var(--gold-soft); transform:translateY(-4px); } .store-text-link:hover,.store-card__bottom a:hover { color:var(--gold); } }
@media(max-width:1024px) { .store-grid--featured { grid-template-columns:repeat(2,minmax(0,1fr)); } .store-grid--featured .store-card:last-child { grid-column:1/-1; } .store-hero__row,.store-detail-hero,.store-detail-grid { gap:32px; } }
@media(max-width:860px) { .store-hero__row,.store-detail-hero,.store-detail-grid,.store-maker { grid-template-columns:1fr; gap:28px; } .store-hero__row > div { max-width:50ch; } .store-hero__note span:last-child { margin-left:0; width:100%; } .store-section-top { align-items:start; flex-direction:column; } .store-detail-hero { margin:32px 0 48px; } }
@media(max-width:600px) { .store-grid,.store-grid--featured { grid-template-columns:1fr; } .store-grid--featured .store-card:last-child { grid-column:auto; } .store-card__preview { min-height:240px; } .store-card__body > p:not(.store-kicker) { min-height:0; } .store-card__body,.store-purchase,.store-example { padding:22px; } .store-hero h1 { font-size:clamp(54px,14vw,80px); } }

/* Portfolio project kits share the palette of their original case studies. */
.store-art--ocr { background:linear-gradient(130deg,#383226,#1b1916); color:#e7ddc4; }
.store-art--forecast { background:linear-gradient(130deg,#263d35,#13241e); color:#bdd5c6; }
.store-art--rides { background:linear-gradient(130deg,#2a3b52,#182433); color:#c1cedf; }
.store-price--pending { font-size:30px; line-height:1.25; }
.store-project-links { display:flex; flex-wrap:wrap; gap:8px 24px; }

/* Checkout, sign-in and the account page (checkout.js). */
.page-store .store-muted { font-size:12px; line-height:1.7; color:var(--text-soft); }
.store-buy-root > p:first-child { font-size:13px; }
.store-buy,.store-owned,.store-signin { display:grid; gap:14px; }
.store-buy .store-button,.store-owned .store-button,.store-form .store-button { width:100%; border:0; cursor:pointer; font-size:14px; }
.store-button:disabled { opacity:.6; cursor:progress; }
.store-form { display:grid; gap:10px; }
.store-form[hidden] { display:none; }
.store-form label { font:12px/1.5 'Jost',sans-serif; letter-spacing:.04em; color:var(--cream); }
.store-form input[type="tel"],.store-form input[type="text"],.store-form input[type="number"] { width:100%; min-height:48px; padding:12px 14px; background:transparent; border:1px solid var(--panel-border); color:var(--cream); font:16px 'Jost',sans-serif; border-radius:0; }
.store-form input:focus-visible { outline:2px solid var(--gold); outline-offset:2px; }
.store-form__row { display:flex; align-items:stretch; }
.store-form__prefix { display:flex; align-items:center; padding:0 12px; border:1px solid var(--panel-border); border-right:0; color:var(--text-soft); font:15px 'Jost',sans-serif; }
.store-link-button { background:none; border:0; padding:10px 0; color:var(--cream); text-decoration:underline; text-underline-offset:4px; cursor:pointer; font:13px 'Jost',sans-serif; justify-self:start; }
.store-check { display:flex; align-items:center; gap:10px; min-height:44px; font-size:14px; color:var(--cream); cursor:pointer; }
.store-check input { width:18px; height:18px; accent-color:var(--gold); }
.store-alert { font-size:13px; color:var(--cream)!important; margin:12px 0 0; min-height:1.5em; }
.store-alert--error { color:#f0a6a0!important; }
.store-account-head { margin:44px 0 40px; }
.store-account-head h1 { font:normal clamp(48px,7vw,88px)/1.02 'Marcellus','Marcellus Fallback',serif; letter-spacing:-.05em; color:var(--cream); margin:16px 0 20px; }
.store-account-head h1 em { font-family:'Cormorant Garamond',serif; font-weight:400; color:var(--gold); }
.store-account { display:grid; gap:28px; margin-bottom:32px; }
.store-panel { border:1px solid var(--panel-border); background:var(--panel); padding:clamp(22px,4vw,40px); min-width:0; }
.store-panel h2 { font:normal 27px/1.3 'Marcellus',serif; color:var(--cream); margin:0 0 18px; }
.store-panel .store-signin { max-width:420px; }
.store-wallet { display:grid; grid-template-columns:1fr minmax(0,360px); gap:40px; align-items:start; }
.store-wallet__balance { font:clamp(44px,6vw,64px)/1 'Marcellus',serif; color:var(--cream)!important; margin:0 0 18px; }
.store-chips { display:flex; flex-wrap:wrap; gap:8px; }
.store-chips button { cursor:pointer; min-height:40px; padding:8px 16px; border:1px solid var(--hairline); border-radius:30px; background:transparent; color:var(--text-soft); font:13px 'Jost',sans-serif; }
.store-table-wrap { overflow-x:auto; margin-top:32px; border-top:1px solid var(--hairline); }
.store-table { width:100%; border-collapse:collapse; font-size:14px; }
.store-table caption { text-align:left; padding:18px 0 10px; font:10px/1.6 'Jost',sans-serif; letter-spacing:.13em; text-transform:uppercase; color:var(--text-soft); }
.store-table th { text-align:left; font:11px 'Jost',sans-serif; letter-spacing:.06em; color:var(--text-soft); padding:10px 12px 10px 0; border-bottom:1px solid var(--hairline); }
.store-table td { padding:12px 12px 12px 0; border-bottom:1px solid var(--hairline); color:var(--text-soft); vertical-align:top; }
.store-table td:first-child { white-space:nowrap; }
.store-amount,.store-table th:last-child { text-align:right; white-space:nowrap; }
.store-amount { color:var(--cream)!important; }
.store-amount--debit { color:var(--text-soft)!important; }
.store-orders { list-style:none; margin:0; padding:0; }
.store-order { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:16px; padding:18px 0; border-top:1px solid var(--hairline); }
.store-order h3 { font:normal 21px/1.3 'Marcellus',serif; color:var(--cream); margin:0 0 4px; }
.store-order .store-muted { margin:0; }
.page-store input:focus-visible,.page-store .store-chips button:focus-visible,.page-store .store-link-button:focus-visible { outline:2px solid var(--gold); outline-offset:3px; }
@media(max-width:860px) { .store-wallet { grid-template-columns:1fr; gap:24px; } }
@media(max-width:600px) { .store-order .store-button { width:100%; } .store-table td:first-child { white-space:normal; } }
