/* Screen-only website typography. Card SVGs and printed/PDF artwork retain CardSans. */
@font-face{font-family:InterfaceSans;src:url('/vendor/SourceSans3-Regular.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:InterfaceSans;src:url('/vendor/SourceSans3-Semibold.woff2') format('woff2');font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:InterfaceSans;src:url('/vendor/SourceSans3-Bold.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap}
@media screen{
:root{--ui-font:InterfaceSans,Arial,sans-serif;--heading-font:Georgia,serif;--heading-weight:400;--section-gap:clamp(2rem,5vw,4rem)}
:root[data-heading-style=sans]{--heading-font:InterfaceSans,Arial,sans-serif;--heading-weight:700}
body{font-family:var(--ui-font);font-size:1.0625rem;line-height:1.55}
button,input,select,textarea{font-family:var(--ui-font)}
button,a.primary-cta,.secondary-button,select{font-size:1rem;line-height:1.35}
.header nav a{font-family:var(--ui-font);font-size:1rem;font-weight:600;letter-spacing:0;min-height:44px;display:inline-flex;align-items:center}
.header-inner{gap:24px}.header .brand-name{font-family:var(--ui-font);font-weight:700;letter-spacing:.015em}.header .brand-name small{font-size:.75rem;letter-spacing:.08em}
.intro{padding-top:24px;padding-bottom:40px;gap:clamp(24px,4vw,56px);align-items:center}
.intro h1{font-family:var(--heading-font);font-weight:var(--heading-weight);font-size:clamp(2.25rem,4.6vw,3.5rem);line-height:1.1;letter-spacing:-.035em;margin:18px 0 24px}
:root[data-heading-style=sans] .intro h1 em{font-style:normal;font-weight:inherit}
.intro p{font-size:1.0625rem;line-height:1.6;max-width:46ch}.intro .hero-free{font-size:1rem;font-weight:600}
.intro .primary-cta{min-height:48px;padding:13px 22px;font-size:1.0625rem;font-weight:700;border-radius:4px}
.series-explore-link{font-size:1rem;min-height:44px}.series-caption{font-size:.875rem;line-height:1.5}
.hero-steps{font-size:1rem}.hero-artwork{box-shadow:none;border-radius:6px}.build-print-go-hero{max-width:320px;width:100%}
.intro-label,.sticker-preview-label,.viewer-kicker{font-family:var(--ui-font);font-size:.8125rem;line-height:1.4;letter-spacing:.09em;font-weight:700}
.home-format-gallery{padding:clamp(20px,3vw,32px);border-radius:6px}
.home-format-gallery .gallery-heading{gap:16px 24px;margin-bottom:28px;align-items:center}
.home-format-gallery .gallery-heading h2,#printing>h2,#contact h2,.sticker-visual-heading h3,.reusable-heading h3,#stickers>.physical-section-heading{font-family:var(--heading-font);font-weight:var(--heading-weight);font-size:clamp(1.875rem,3vw,2.25rem);line-height:1.2;letter-spacing:-.025em}
.home-format-grid{gap:24px;grid-template-columns:repeat(auto-fit,minmax(min(100%,19rem),1fr))}.home-format-gallery .placement{border-radius:6px}
.home-format-gallery .compact-caption{padding:20px}
.home-format-gallery .compact-caption h2{font-family:var(--ui-font);font-size:1.1875rem;line-height:1.35;letter-spacing:.055em;margin:0 0 18px}
.home-format-gallery .placement-links{gap:12px;grid-template-columns:repeat(auto-fit,minmax(min(100%,6rem),1fr))}
.home-format-gallery .placement-links>a,.home-format-gallery .placement-links>button{font-family:var(--ui-font);font-size:1rem;font-weight:600;min-height:48px;line-height:1.3;padding:12px 8px;border-radius:4px}
.home-format-gallery .gallery-heading .blank-paper{font-size:.9375rem;flex-wrap:wrap;gap:8px}
.home-format-gallery .gallery-note,.home-format-gallery #blank-print-status{font-size:.875rem;line-height:1.55}
#card-preview{margin-top:32px}#product-name{font-family:var(--heading-font);font-weight:var(--heading-weight);font-size:2rem;line-height:1.2}
.editor h3,.preview-column h3{font-family:var(--ui-font);font-size:1.25rem;line-height:1.35;font-weight:700}
.editor label,.preview-column label{font-size:.9375rem;line-height:1.45}
.editor input:not([type=checkbox]):not([type=radio]),.editor select,.editor textarea{font-size:1rem;min-height:44px}
.editor p,.preview-column p,.builder-storage-note,.storage-note,.physical-proof-note,.contact-hint,.contact-help{font-size:.875rem;line-height:1.6}
.preview-actions button,.preview-actions select{min-height:44px;white-space:normal}
.preview-column .print-note{font-size:.875rem;line-height:1.6}
.entry-grid input{font-family:var(--ui-font);font-size:1rem}
#stickers,#printing,#contact{margin-top:var(--section-gap);padding-top:32px}
#printing{padding-bottom:28px}.print-checks{line-height:1.6;gap:16px}
#stickers{border-top:1px solid #c9cfbf}
.physical-section-heading{margin:0 0 24px}
.physical-card-options{gap:24px}.physical-card-options button{font-family:var(--ui-font);border-radius:6px;padding:24px}
.physical-card-options strong{font-family:var(--ui-font);font-size:1.375rem;line-height:1.3}
.physical-option-description,.physical-option-action{font-size:1rem;line-height:1.5}
.physical-option-status,.local-badge{font-family:var(--ui-font);font-size:.8125rem;font-weight:700;line-height:1.4;letter-spacing:.05em}
.sticker-visual-heading,.reusable-heading{margin-top:32px;margin-bottom:24px;max-width:850px}
.sticker-visual-heading p,.reusable-heading p{font-size:1rem;line-height:1.6}
#stickers .availability{font-size:.9375rem;line-height:1.55;font-weight:600}
#sticker-field-catalog{margin:24px 0 32px}.reusable-color-showcase{margin:24px 0 32px}
#sticker-field-catalog img,.reusable-color-showcase{width:100%;height:auto;object-fit:contain;border-radius:6px}
.sticker-packages,.reusable-catalog{gap:24px}
.sticker-package,.reusable-card-option{padding:24px;border-radius:6px;box-shadow:none}
.sticker-package h4,.reusable-card-option h4{font-family:var(--ui-font);font-size:1.25rem;line-height:1.3}
.sticker-package p,.reusable-card-option p{font-size:1rem;line-height:1.55}
.reusable-card-option .reusable-size-note,.package-shipping,.reusable-illustration-note{font-size:.875rem;line-height:1.6}
.sticker-package button,.reusable-card-option button{font-size:1rem;min-height:48px;white-space:normal}
.concept-details,.reusable-finishes,.sticker-other{margin:24px 0;border-top:1px solid #c9cfbf;padding-top:16px}
.concept-details summary,.reusable-finishes summary,.sticker-other summary{font-size:1rem;min-height:44px;cursor:pointer;font-weight:600}
.concept-details p{max-width:78ch;font-size:.9375rem;line-height:1.6}
dialog{font-family:var(--ui-font)}dialog button,dialog select,dialog input:not([type=checkbox]):not([type=radio]){font-family:var(--ui-font);font-size:1rem;min-height:44px}dialog h2{font-family:var(--heading-font);font-weight:var(--heading-weight);font-size:1.625rem;line-height:1.25}dialog p{font-size:.9375rem;line-height:1.55}
.resource-page{font-family:var(--ui-font)}.article h1,.article h2{font-family:var(--heading-font);font-weight:var(--heading-weight)}
.site-links{font-family:var(--ui-font);font-size:.9375rem}.site-links a{min-height:44px;display:inline-flex;align-items:center}
.mobile-studio-nav button,.mobile-studio-nav select,#mobile-action-dock button,.download button,.download select{font-family:var(--ui-font);font-size:1rem;min-height:44px;line-height:1.35;white-space:normal}
.mobile-studio-nav label,.mobile-studio-nav p,.preview-column dt,.preview-column dd,.preview-column summary{font-size:.875rem;line-height:1.5}
/* Owner review controls are added only on localhost. They never write saved-card state. */
.design-review-bar{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;padding:12px 20px;background:#e8e6da;border-bottom:1px solid #bac5b3;color:#283d2e;font:600 .9375rem/1.4 var(--ui-font)}
.design-review-bar button{font:600 .9375rem/1.2 var(--ui-font);padding:10px 16px;min-height:44px;border:1px solid #405b43;border-radius:4px;background:transparent;color:#2e4835;cursor:pointer}
.design-review-bar button[aria-pressed=true]{background:#2e4835;color:white}.design-review-bar a{color:inherit;text-underline-offset:3px}
.design-review-bar :focus-visible{outline:3px solid #896d36;outline-offset:3px}
@media(max-width:850px){.header-inner{flex-wrap:wrap;justify-content:space-between}.header nav{flex-wrap:wrap;gap:8px 18px}.header .brand-name small{font-size:.6875rem}.home-format-gallery .compact-caption{padding:18px}}
@media(max-width:540px){.intro{padding-top:28px;padding-bottom:32px}.intro h1{font-size:2.375rem}.intro p{font-size:1rem}.home-format-gallery{padding:20px 16px}.home-format-grid{gap:24px;grid-template-columns:repeat(auto-fit,minmax(min(100%,19rem),1fr))}.home-format-gallery .gallery-heading{align-items:flex-start}.home-format-gallery .gallery-heading .blank-paper{width:100%}.header nav a{font-size:.9375rem}.header-inner{gap:12px}.physical-card-options{gap:16px}.physical-card-options button,.sticker-package,.reusable-card-option{padding:20px}.design-review-bar{gap:8px;padding:10px 12px}.design-review-bar>strong{flex-basis:100%;text-align:center}#stickers,#printing,#contact{padding-top:24px}}
}
@media print{.design-review-bar{display:none!important}}

/* Shared campaign presentation: all image-led pages use the approved bold sans theme. */
@media screen {
.header nav a[hidden]{display:none!important}
:root[data-heading-style=sans] :is(.example-title,.format-lead h1,.guide-body h2,.guide-dialog-header h2,.plan-main h1,.placement h2){font-family:var(--ui-font);font-weight:700;letter-spacing:-.025em}
:root[data-heading-style=sans] :is(.viewer-kicker,.scale-caption,.enlarge-action){font-family:var(--ui-font);font-weight:600}
:root[data-heading-style=sans] :is(.example-image,.format-lead img,.placement){border-radius:3px;border-color:#aab69d}
:root[data-heading-style=sans] :is(.plan-header,.resource-header){background:#14261e;color:#f5f3e9}
:root[data-heading-style=sans] :is(.action,.use-format){font-family:var(--ui-font);font-weight:700;background:#1b3025;color:#f5f3e9;border-radius:3px}
}
