:root {
    color-scheme: light;
    --ink: #29291f;
    --muted: #585548;
    --paper: #f7f4ec;
    --white: #fffdf7;
    --line: #cfc8b8;
    --accent: #32402d;
    --wash: #e5e5d7;
    --display: "Baskervville", Baskerville, Georgia, serif;
    --body: "DM Sans", system-ui, sans-serif;
    font: 100%/1.65 var(--body);
    color: var(--ink);
    background: var(--paper);
}

*, *::before, *::after { box-sizing: border-box; }
[hidden] { display: none !important; }
body { margin: 0; }
img { display: block; max-width: 100%; height: auto; }
figure { margin: 0; }
figcaption { color: var(--muted); font-size: .78rem; margin-top: .65rem; }
a { color: inherit; text-underline-offset: .25em; }
a:hover { text-decoration-thickness: .13em; }
:focus-visible { outline: 3px solid #94502d; outline-offset: 4px; }
h1, h2 { font-family: var(--display); font-weight: 400; margin: 0; }
h1 { font-size: clamp(2.75rem, 6.5vw, 5.6rem); line-height: .99; letter-spacing: -.055em; overflow-wrap: break-word; }
h2 { font-size: clamp(1.7rem, 3vw, 2.6rem); line-height: 1.13; letter-spacing: -.035em; }
p { margin: .8rem 0 0; }
nav a { text-decoration: none; }
nav a:hover, nav a[aria-current="page"] { text-decoration: underline; }

.skip {
    position: absolute;
    z-index: 2;
    top: .5rem;
    left: .5rem;
    padding: .55rem .8rem;
    background: var(--white);
    transform: translateY(-150%);
}
.skip:focus { transform: translateY(0); }
.site-header { border-bottom: 1px solid var(--line); }
.header-inner, .footer-inner {
    width: min(100% - 3rem, 76rem);
    margin-inline: auto;
    min-height: 5rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .6rem 2rem;
}
.wordmark {
    font-family: var(--display);
    font-size: clamp(1.4rem, 3vw, 2rem);
    line-height: 1.12;
    letter-spacing: -.055em;
    text-decoration: none;
}
.site-header nav, .site-footer nav { display: flex; flex-wrap: wrap; gap: .25rem clamp(.8rem, 2.4vw, 2rem); }
.site-header nav a, .site-footer nav a { display: inline-block; padding-block: .42rem; font-size: .875rem; }
.site-header nav { margin-inline-start: auto; }
.site-search-trigger {
    display: inline-flex;
    align-items: center;
    gap: .55rem;
    padding: .35rem .8rem;
    border: 1px solid var(--line);
    border-radius: 2rem;
    background: var(--white);
    text-decoration: none;
    font-size: .875rem;
}
.site-search-trigger::before {
    content: "";
    width: .65rem;
    height: .65rem;
    border: 1.5px solid currentColor;
    border-radius: 50%;
    box-shadow: .27rem .27rem 0 -.21rem currentColor;
}
.site-search-trigger:hover { border-color: var(--accent); text-decoration: underline; }
.header-tools { display: flex; flex-wrap: wrap; gap: .45rem; align-items: center; }
.shortlist-trigger, .save-resource {
    padding: .4rem .72rem;
    border: 1px solid var(--line);
    border-radius: 2rem;
    background: var(--white);
    color: var(--ink);
    font-size: .85rem;
}
.shortlist-trigger:hover, .save-resource:hover { border-color: var(--accent); background: var(--wash); }
.shortlist-trigger span:not(:empty) {
    display: inline-block;
    min-width: 1.35rem;
    margin-inline-start: .15rem;
    padding-inline: .2rem;
    border-radius: 2rem;
    background: var(--accent);
    color: var(--white);
}
.intro-copy .save-resource, .card-grid .save-resource { margin-top: .8rem; }
.save-resource[aria-pressed="true"] { border-color: var(--accent); background: var(--wash); }
.shortlist-dialog .search-results li { display: flex; align-items: center; justify-content: space-between; gap: .65rem; }
.shortlist-dialog .save-resource { flex-shrink: 0; }
.compare-entry { margin-bottom: 1.25rem; }
.compare-controls {
    padding: clamp(1rem, 3vw, 1.7rem);
    border: 1px solid var(--line);
    border-radius: .5rem;
    background: var(--wash);
}
.compare-fields, .compare-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(.8rem, 2vw, 1.4rem);
}
.compare-fields select {
    display: block;
    width: 100%;
    margin-top: .35rem;
    padding: .65rem;
    border: 1px solid var(--line);
    border-radius: .3rem;
    background: var(--white);
    color: var(--ink);
    font: inherit;
}
.compare-controls button { margin-top: .9rem; }
.compare-grid { margin-top: 1rem; }
.compare-grid article {
    padding: clamp(1rem, 3vw, 1.65rem);
    border: 1px solid var(--line);
    border-top: .3rem solid var(--tone, var(--accent));
    border-radius: .5rem;
    background: var(--white);
}
.compare-grid img { width: 100%; border-radius: .25rem; margin-bottom: 1rem; }
.compare-grid dl { margin-block: 1rem; }
.compare-grid dt { border-top: 1px solid var(--line); padding-top: .5rem; font-weight: 600; }
.compare-grid dd { margin: .25rem 0 .65rem; }
.compare-grid a { margin: .2rem .75rem .2rem 0; }
@media (max-width: 640px) {
    .compare-fields, .compare-grid { grid-template-columns: minmax(0, 1fr); }
}
.site-search {
    width: min(92vw, 43rem);
    max-height: 86vh;
    padding: clamp(1rem, 4vw, 2rem);
    border: 1px solid var(--line);
    border-radius: .7rem;
    color: var(--ink);
    background: var(--paper);
}
.site-search::backdrop { background: rgb(21 24 19 / 72%); }
.site-search header { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem; margin-bottom: 1rem; }
.site-search h2 { font-size: clamp(1.55rem, 4vw, 2.2rem); }
.site-search form { margin: 0; }
.site-search input { margin-top: .35rem; }
.search-results { list-style: none; padding: 0; margin: 1rem 0 0; }
.search-results li { border-top: 1px solid var(--line); padding: .7rem 0; }
.search-results a { font-weight: 600; }
.search-results p { margin-top: .25rem; color: var(--muted); font-size: .9rem; }
.search-fallback { display: inline-block; margin-top: .65rem; }
.site-footer { margin-top: clamp(3rem, 8vw, 7rem); background: #293327; color: #faf5e9; padding-block: 1.4rem; }
.site-footer p { font-size: .83rem; margin-top: .35rem; }

main { width: min(100% - 3rem, 76rem); margin-inline: auto; }
main > * { max-width: 47rem; margin-inline: auto; }
main > .wide { max-width: none; }
main > section + section { margin-top: 2.1rem; }
.page-intro {
    display: grid;
    grid-template-columns: minmax(0, 1.65fr) minmax(0, 1fr);
    align-items: center;
    gap: clamp(1.25rem, 3vw, 2.7rem);
    padding: 1.6rem 0 clamp(2.1rem, 5vw, 4.5rem);
}
.intro-copy > p, .hero-copy > p { color: var(--muted); font-size: clamp(1rem, 2vw, 1.2rem); max-width: 39rem; }
.intro-photo {
    padding: clamp(.55rem, 1.8vw, 1.35rem);
    background: linear-gradient(150deg, var(--white), var(--wash));
    border: 1px solid var(--line);
    border-radius: .55rem;
}
.intro-photo img { width: 100%; border-radius: .3rem; }
.page-intro h1 { font-size: clamp(2.6rem, 5.2vw, 5.4rem); max-width: 18ch; text-wrap: balance; }
.breadcrumb { grid-column: 1 / -1; font-size: .8rem; color: var(--muted); }
.breadcrumb ol { display: flex; flex-wrap: wrap; gap: .25rem .6rem; list-style: none; padding: 0; margin: 0; }
.breadcrumb li + li::before { content: "/"; margin-right: .6rem; color: var(--muted); }
.page-art {
    --art-ink: color-mix(in srgb, var(--tone, var(--accent)) 80%, var(--wash));
    position: relative;
    isolation: isolate;
    overflow: hidden;
    min-height: clamp(9rem, 18vw, 17rem);
    background: radial-gradient(ellipse at var(--art-x) var(--art-y), var(--white), var(--wash) var(--art-scale));
    border: 1px solid var(--line);
    border-radius: .55rem;
    filter: hue-rotate(var(--art-hue));
}
.page-art span {
    display: block;
    position: absolute;
    width: 54%;
    height: 66%;
    top: var(--art-y);
    left: var(--art-x);
    background: color-mix(in srgb, var(--art-ink) 13%, var(--white));
    border: 1px solid var(--art-ink);
    transform: translate(-50%, -50%) rotate(var(--art-turn));
}
.page-art span:nth-child(2) { transform: translate(-32%, -37%) rotate(calc(0deg - var(--art-turn))); }
.page-art span:nth-child(3) { transform: translate(-65%, -56%) rotate(var(--art-turn)); }
.page-art[data-platform="squarespace"] span { border-radius: .5rem; }
.page-art[data-art="gallery"] span { background: linear-gradient(150deg, var(--white), var(--wash) 48%, var(--art-ink)); }
.page-art[data-art="gallery"] span:nth-child(3) { width: 35%; height: 78%; }
.page-art[data-art="form"] span { height: 18%; background: var(--white); }
.page-art[data-art="form"] span:nth-child(2) { transform: translate(-44%, 68%) rotate(var(--art-turn)); }
.page-art[data-art="form"] span:nth-child(3) { width: 30%; background: var(--art-ink); transform: translate(-85%, -170%) rotate(var(--art-turn)); }
.page-art[data-art="worksheet"] span, .page-art[data-art="journal"] span {
    background: repeating-linear-gradient(180deg, var(--white) 0 calc(var(--art-step) - 1px), var(--line) calc(var(--art-step) - 1px) var(--art-step));
}
.page-art[data-art="journal"] span:nth-child(3) { width: 28%; background: var(--art-ink); opacity: .86; }
.page-art[data-art="index"] span { height: 35%; }
.page-art[data-art="index"] span:nth-child(2) { transform: translate(-42%, 10%) rotate(var(--art-turn)); }
.page-art[data-art="index"] span:nth-child(3) { transform: translate(-58%, -112%) rotate(var(--art-turn)); }
.page-art[data-art="notice"] span { width: 47%; height: 72%; border-radius: 50%; background: transparent; }

.home-hero {
    display: grid;
    grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr);
    align-items: center;
    gap: clamp(1.5rem, 5vw, 4.8rem);
    padding: clamp(2.5rem, 7vw, 6rem) 0;
    border-bottom: 1px solid var(--line);
}
.hero-copy h1 { font-size: clamp(2rem, 5vw, 5.35rem); }
.hero-copy > p { max-width: 29rem; margin-top: 1.25rem; }
.hero-actions, .jump-links { display: flex; flex-wrap: wrap; align-items: center; gap: .85rem 1.3rem; margin-top: 1.65rem; }
.home-hero img { width: 100%; }
.button, button {
    display: inline-block;
    padding: .8rem 1.15rem;
    color: #fffdf5;
    background: var(--accent);
    border: 1px solid transparent;
    font: 600 .88rem/1.4 var(--body);
    text-decoration: none;
}
.button:hover, button:hover { color: var(--accent); background: var(--white); border-color: var(--accent); }
button { cursor: pointer; }
.text-link { font-size: .9rem; font-weight: 600; }
.home-note {
    margin-top: 4rem;
    background: var(--wash);
    padding: clamp(1.4rem, 4vw, 3rem);
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, .85fr);
    align-items: center;
    justify-content: space-between;
    gap: 1rem 2rem;
}
.home-note .button { margin-top: 1rem; }
.home-note img { width: 100%; border-radius: .3rem; }
.home-shortcuts {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr));
    gap: .7rem;
    margin-block: 1rem 2rem;
}
.home-shortcuts a {
    padding: .8rem 1rem;
    border: 1px solid var(--line);
    border-radius: .35rem;
    background: var(--white);
    font-weight: 600;
}
.home-shortcuts a:hover { background: var(--wash); }

.collection { margin-top: clamp(2rem, 6vw, 4.5rem); }
.card-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 17rem), 1fr));
    list-style: none;
    gap: 1px;
    margin: 1.1rem 0 0;
    padding: 0;
}
.card-grid li { background: var(--white); border: 1px solid var(--line); padding: clamp(1rem, 2.4vw, 1.65rem); }
.card-grid li[data-theme] { border-top: 3px solid var(--tone, var(--accent)); }
.card-grid h3 { font: 400 1.45rem/1.2 var(--display); margin: 0; }
.card-grid p { font-size: .92rem; color: var(--muted); }
.card-grid img { width: 100%; margin-bottom: 1rem; border-radius: .25rem; }
.photo-sequence { margin-block: clamp(2.5rem, 6vw, 4.5rem); }
.photo-pair {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(1rem, 3vw, 2rem);
    margin-top: 1rem;
}
.photo-pair img { width: 100%; border-radius: .3rem; }
.example .photo-sequence, #work .photo-sequence { margin-block: 1.5rem 0; }
.photo-pair figure { margin: 0; }
.photo-enlarge { display: block; width: fit-content; max-width: 100%; }
.photo-enlarge span { display: inline-block; margin-top: .45rem; font-size: .85rem; font-weight: 600; }
.photo-viewer {
    width: min(94vw, 70rem);
    max-height: 94vh;
    padding: 1rem;
    border: 1px solid var(--line);
    border-radius: .5rem;
    background: var(--paper);
}
.photo-viewer::backdrop { background: rgb(21 24 19 / 82%); }
.photo-viewer form { display: flex; justify-content: end; margin: 0 0 .65rem; max-width: none; }
.photo-viewer img { max-height: 77vh; margin-inline: auto; object-fit: contain; }
@media (max-width: 700px) {
    .photo-pair { grid-template-columns: minmax(0, 1fr); }
}
.related { margin-top: clamp(2.2rem, 5vw, 4rem); border-top: 1px solid var(--line); padding-top: 1.2rem; }
.related ul { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr)); gap: .55rem 1.5rem; padding-inline-start: 1.25rem; }
.reference-list li + li { margin-top: .5rem; }

.design-feature { display: grid; grid-template-columns: 1.25fr 1fr; gap: clamp(1rem, 4vw, 3rem); align-items: center; margin-bottom: 3rem; }
.design-feature .button { margin-top: 1rem; }
.example { border: 1px solid var(--line); border-left: 5px solid var(--tone, var(--accent)); background: var(--white); padding: clamp(1.3rem, 4vw, 3rem); }
.example > p { max-width: 45rem; }
.example .text-link, .example figure { margin-top: 1rem; }
.example img { width: min(100%, 45rem); }
.example[data-example="notice"] { text-align: center; background: var(--wash); }
.example[data-example="notice"] > p { margin-inline: auto; }
.example[data-example="form"] form {
    padding: clamp(1rem, 3vw, 1.7rem);
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: .5rem;
}
.example[data-example="worksheet"] { background: var(--paper); border-top: .3rem solid var(--tone, var(--accent)); border-left-width: 1px; }
.example[data-example="journal"] { background: var(--wash); border-left-width: 1px; }
.example[data-example="journal"] h2 { font-style: italic; }
.example[data-example="gallery"] { border-left-width: 1px; }
.reading-layout {
    display: grid;
    grid-template-columns: minmax(12rem, 1fr) minmax(0, 2.4fr);
    align-items: start;
    gap: clamp(1.2rem, 4vw, 3.7rem);
    margin-block: clamp(1.8rem, 4vw, 3.5rem);
}
.reading-sidebar {
    display: grid;
    gap: 1rem;
    padding: clamp(1rem, 2vw, 1.55rem);
    border: 1px solid var(--line);
    border-radius: .55rem;
    background: linear-gradient(155deg, var(--white) 42%, var(--wash));
}
.reading-sidebar h2 { font-size: 1.35rem; }
.reading-sidebar ol, .reading-sidebar ul { margin: .65rem 0 0; padding-inline-start: 1.3rem; }
.reading-sidebar li + li { margin-top: .35rem; }
.reading-sidebar a { text-decoration: underline; }
.reading-sidebar img { width: 100%; border-radius: .3rem; }
.reading-next { border-top: 1px solid var(--line); padding-top: 1rem; }
.reading-chapters {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}
.reading-chapters section {
    scroll-margin-top: 1rem;
    padding: clamp(1rem, 2.5vw, 2rem);
    border: 1px solid var(--line);
    border-radius: .45rem;
    background: var(--white);
}
.reading-chapters h2 { font-size: clamp(1.45rem, 2.35vw, 2.15rem); }
.reading-chapters section:last-child:nth-child(odd) { grid-column: 1 / -1; }
.reading-chapters section:last-child:nth-child(odd) p { max-width: 65ch; }
.reading-chapters section:target { border-color: var(--accent); box-shadow: inset .2rem 0 var(--accent); }
@media (min-width: 1050px) and (min-height: 850px) {
    .reading-sidebar { position: sticky; top: 1rem; max-height: calc(100vh - 2rem); overflow: auto; }
}
@media (max-width: 840px) {
    .reading-layout { grid-template-columns: minmax(0, 1fr); }
    .reading-sidebar { grid-template-columns: minmax(0, 1fr) minmax(0, .8fr); }
    .reading-next { grid-column: 1 / -1; }
}
@media (max-width: 560px) {
    .reading-sidebar, .reading-chapters { grid-template-columns: minmax(0, 1fr); }
}
details { border-top: 1px solid var(--line); margin-top: 1rem; padding: .85rem 0 0; max-width: 48rem; }
summary { cursor: pointer; font-weight: 600; }
form, .catalog-tools { max-width: 32rem; margin-top: 1.25rem; }
form { display: grid; gap: .5rem; justify-items: start; }
label { font-weight: 600; }
input, textarea {
    border: 1px solid #817b69;
    background: #fffdf9;
    color: var(--ink);
    padding: .6rem .7rem;
    font: inherit;
    width: 100%;
}
textarea { min-height: 6rem; resize: vertical; }
.catalog-tools input { margin-top: .35rem; }
.catalog-filters { display: flex; flex-wrap: wrap; align-items: end; gap: .7rem; margin-top: .8rem; }
.catalog-filters > div { flex: 1 1 9rem; }
.catalog-filters select {
    display: block;
    width: 100%;
    margin-top: .25rem;
    padding: .5rem;
    border: 1px solid var(--line);
    border-radius: .25rem;
    background: var(--white);
    color: var(--ink);
    font: inherit;
}
.catalog-filters button { flex-shrink: 0; }
.catalog-tools p, form p { color: var(--muted); font-size: .9rem; }
.launch-checklist {
    margin-bottom: clamp(2rem, 5vw, 4rem);
    padding: clamp(1rem, 3vw, 2rem);
    border: 1px solid var(--line);
    border-radius: .55rem;
    background: var(--wash);
}
.launch-progress {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: .5rem 1rem;
    margin-block: 1rem;
}
.launch-progress p { margin: 0; font-weight: 600; }
.launch-progress progress { width: 100%; accent-color: var(--accent); grid-column: 1; }
.launch-progress button { grid-column: 2; grid-row: 1 / span 2; }
.launch-progress button:disabled { opacity: .6; cursor: default; }
.launch-groups {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 17rem), 1fr));
    gap: .85rem;
    margin-top: 1rem;
}
.launch-groups section { padding: 1rem; border: 1px solid var(--line); border-radius: .35rem; background: var(--white); }
.launch-groups h3 { margin: 0; font: 400 1.4rem/1.2 var(--display); }
.launch-groups ul { list-style: none; padding: 0; margin: .85rem 0 0; }
.launch-groups li + li { border-top: 1px solid var(--line); }
.launch-groups label { display: flex; align-items: start; gap: .65rem; padding-block: .65rem; cursor: pointer; }
.launch-groups label span span { display: block; color: var(--muted); font-size: .87rem; font-weight: 400; }
.launch-groups input { flex: none; width: 1.15rem; height: 1.15rem; margin: .2rem 0 0; accent-color: var(--accent); }
@media (max-width: 440px) {
    .launch-progress { grid-template-columns: minmax(0, 1fr); }
    .launch-progress button { grid-column: 1; grid-row: auto; justify-self: start; }
}

[data-theme="breve"] { --wash: #ded8c5; --tone: #343c2c; }
[data-theme="espressino"] { --wash: #e9c9b4; --tone: #5b362c; }
[data-theme="marocchino"] { --wash: #d6b6a3; --tone: #502f25; }
[data-theme="melange"] { --wash: #e8cdba; --tone: #594637; }
[data-theme="red-eye"] { --wash: #d2ab93; --tone: #3f2829; }
[data-theme="ristretto"] { --wash: #cdcac0; --tone: #383933; }
[data-theme="vienna"] { --wash: #d7cbc1; --tone: #574641; }
.portfolio-preview { display: grid; gap: 1.25rem; padding: clamp(1.5rem, 6vw, 5rem); background: var(--wash); color: var(--tone); }
.portfolio-preview > nav { display: flex; justify-content: space-between; gap: 1rem; font-size: .9rem; }
.portfolio-preview > header { align-self: center; }
.portfolio-preview > header h2 { font-size: clamp(2.1rem, 5.7vw, 5rem); }
.portfolio-preview figure img { width: 100%; }
.portfolio-preview > section { border-top: 1px solid currentColor; padding-top: 1rem; }
[data-theme="breve"] .portfolio-preview > header,
[data-theme="vienna"] .portfolio-preview > header { text-align: center; padding-block: 1.2rem; }
[data-theme="vienna"] .portfolio-preview #work > figure { width: min(100%, 38rem); margin-inline: auto; }
[data-theme="red-eye"] .portfolio-preview { background: #3f2829; color: #fff3e7; }
[data-theme="red-eye"] .portfolio-preview figcaption { color: inherit; }
[data-theme="ristretto"] .portfolio-preview h2,
[data-theme="marocchino"] .portfolio-preview h2 { font-family: var(--body); letter-spacing: -.06em; }
@media (min-width: 800px) {
    [data-theme="espressino"] .portfolio-preview,
    [data-theme="marocchino"] .portfolio-preview,
    [data-theme="ristretto"] .portfolio-preview { grid-template-columns: 1fr 1.1fr; }
    .portfolio-preview > nav, .portfolio-preview > section { grid-column: 1 / -1; }
    [data-theme="marocchino"] .portfolio-preview > header { grid-column: 2; grid-row: 2; padding-left: 1rem; }
    [data-theme="marocchino"] .portfolio-preview > #work { grid-column: 1; grid-row: 2; }
}

@media (max-width: 700px) {
    main, .header-inner, .footer-inner { width: min(100% - 2rem, 76rem); }
    .header-inner, .footer-inner { align-items: flex-start; flex-direction: column; padding-block: .8rem; }
    .header-inner { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; }
    .site-header nav { grid-row: 2; grid-column: 1 / -1; margin-inline-start: 0; }
    .home-hero, .design-feature, .home-note { grid-template-columns: minmax(0, 1fr); }
    .page-intro { grid-template-columns: minmax(0, 1fr); }
    .page-art { min-height: 8rem; }
    .hero-copy h1 { font-size: clamp(2.25rem, 12vw, 4.5rem); }
}
@media (max-width: 420px) {
    .header-inner { grid-template-columns: minmax(0, 1fr); }
    .site-header nav { grid-row: auto; }
}

.supplier-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 20rem), 1fr));
    align-items: start;
    gap: .65rem;
    margin-top: 1rem;
}
.supplier-list details {
    padding: 0;
    margin: 0;
    background: var(--white);
    border: 1px solid var(--line);
}
.supplier-list summary { padding: .8rem .9rem; overflow-wrap: anywhere; }
.supplier-list summary span { color: var(--muted); font-size: .78rem; margin-left: .35rem; }
.supplier-list ul { margin: 0; padding: .1rem 1.3rem .85rem 2.1rem; }
.supplier-list li + li { margin-top: .25rem; }
.supplier-list a { overflow-wrap: anywhere; }

.design-feature img, .portfolio-preview img, .home-hero img { border-radius: .3rem; }
.card-grid li:focus-within, .supplier-list details:focus-within { border-color: var(--accent); }
@media (prefers-reduced-motion: no-preference) {
    @view-transition { navigation: auto; }
    ::view-transition-old(root) { animation-duration: 120ms; }
    ::view-transition-new(root) { animation-duration: 180ms; }
    .button, button, .card-grid li, .supplier-list details {
        transition: background-color 160ms ease, color 160ms ease, border-color 160ms ease;
    }
}
@media (hover: hover) {
    .card-grid li:hover, .supplier-list details:hover { background: #f3efe4; border-color: var(--accent); }
}
