:root {
  --canvas:#E3D9D4; --paper:#D8CCC6; --ink:#493C38; --muted:#826F68;
  --lilac-dark:#DB835E; --border:#C9B9B0;
  --serif:'Fraunces',Georgia,serif; --sans:'Nunito',Arial,sans-serif; --mono:'DM Mono',monospace;
  --gif-gap:12px;
}
*,*::before,*::after {box-sizing:border-box;}
html {scroll-behavior:smooth;}
body {margin:0;min-height:100vh;min-height:100dvh;background:var(--canvas);color:var(--ink);font:400 15px/1.65 var(--sans);-webkit-font-smoothing:antialiased;}
#app {display:flex;flex-direction:column;min-height:100vh;min-height:100dvh;}
main {flex:1;}
button,input {font:inherit;} button {cursor:pointer;}
a {color:inherit;text-decoration:none;} img {max-width:100%;}
svg {display:inline-block;flex:none;vertical-align:middle;}
h1,h2,p {margin-top:0;}
::selection {background:#E8B6A1;color:#493C38;}
.wrap {width:min(1160px,calc(100% - 88px));margin-inline:auto;}
.header {background:var(--canvas);border-bottom:1px solid var(--border);position:relative;z-index:5;}
.header-inner {height:86px;display:flex;align-items:center;justify-content:space-between;gap:24px;width:min(1320px,calc(100% - 88px));margin:auto;}
.brand {font:600 29px/1 var(--serif);letter-spacing:-1.4px;}
.nav-link {text-transform:uppercase;letter-spacing:1.1px;font:400 10px/1.8 var(--mono);color:#836F65;}
.nav-link:hover {color:var(--lilac-dark);}
.hero {padding-top:78px;}
.hero h1 {font:500 clamp(66px,7vw,92px)/1.04 var(--serif);letter-spacing:-4px;margin:0;}
.hero-period {color:var(--lilac-dark);}
.collections {padding-top:54px;padding-bottom:65px;}
.pack-grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:34px;row-gap:0;align-content:start;}
.pack-card {display:block;min-width:0;padding:22px 4px 21px 0;border-top:1px solid var(--border);}
.card-heading {display:flex;align-items:center;justify-content:space-between;gap:12px;}
.card-title {font:500 28px/1.3 var(--serif);letter-spacing:-.8px;overflow-wrap:anywhere;}
.card-heading svg {color:var(--lilac-dark);transition:transform .2s;}
.pack-card:hover .card-heading svg {transform:translateX(4px);}
.pack-card:hover .card-title {color:var(--lilac-dark);}
.card-source {margin-top:6px;color:var(--muted);font:400 11px/1.6 var(--mono);text-transform:uppercase;letter-spacing:.4px;overflow-wrap:anywhere;}
/* Quiet editorial note: no boxed callout or oversized section heading. */
.guidelines {margin-top:34px;padding-left:18px;border-left:2px solid var(--lilac-dark);}
.guidelines h2 {margin:0 0 8px;font:500 19px/1.25 var(--serif);letter-spacing:-.3px;}
.guidelines-copy {max-width:790px;color:var(--muted);font:400 13px/1.75 var(--sans);overflow-wrap:anywhere;}
.guidelines-copy p {margin:0 0 8px;}
.guidelines-copy p:last-child {margin-bottom:0;}
.has-guidelines .collections {padding-top:37px;}
.footer {background:var(--paper);border-top:1px solid var(--border);color:#826F68;font:400 10px/1.6 var(--mono);text-transform:uppercase;letter-spacing:.7px;}
.footer-inner {width:min(1320px,calc(100% - 88px));margin:auto;min-height:95px;display:flex;align-items:center;justify-content:space-between;gap:20px;}
/* Pack pages use ~200px outer gutters on roomy desktop screens.
   The horizontal GIF flow finds its own column count; nothing is cropped. */
.pack-page .pack-head,
.pack-page .gallery-section {width:calc(100% - 400px);max-width:none;}
@media (max-width:1250px) {
  .pack-page .pack-head,
  .pack-page .gallery-section {width:calc(100% - 128px);}
}
.pack-head {padding-top:70px;}
.pack-head h1 {font:500 clamp(56px,6.5vw,86px)/1.04 var(--serif);letter-spacing:-3.6px;margin:0;overflow-wrap:anywhere;}
/* Pack information echoes the left-bordered homepage guidelines line. */
.pack-meta {display:flex;align-items:baseline;flex-wrap:wrap;gap:8px 18px;border-left:2px solid var(--lilac-dark);padding-left:15px;margin-top:29px;color:var(--muted);}
.pack-source {flex:0 0 auto;font:500 18px/1.25 var(--serif);color:var(--ink);letter-spacing:-.3px;text-transform:none;overflow-wrap:anywhere;}
.pack-meta-info {display:inline-flex;align-items:baseline;flex-wrap:wrap;gap:10px;font:400 9px/1.65 var(--mono);letter-spacing:.3px;text-transform:uppercase;}
.meta-separator {color:var(--muted);}
.pack-status {font:inherit;color:inherit;white-space:nowrap;}
.gallery-section {padding:43px 0 90px;scroll-margin-top:22px;}
/* Left-to-right reading order; each new row starts after the previous row.
   GIFs keep their natural dimensions with no forced width or cropping. */
.gif-grid {display:flex;flex-flow:row wrap;align-items:flex-start;align-content:flex-start;gap:var(--gif-gap);}
.gif-tile {display:block;flex:0 0 auto;max-width:100%;margin:0;}
.gif-tile img {display:block;width:auto;height:auto;max-width:100%;object-fit:contain;}
.pagination {display:flex;align-items:center;justify-content:center;gap:22px;margin-top:48px;}
.pages {display:flex;align-items:center;gap:8px;}
.page-num,.page-move {border:0;background:transparent;color:var(--muted);font:400 11px var(--mono);}
.page-num {width:34px;height:34px;}
.page-num.active {background:#D4A38D;color:#493C38;}
.page-move {padding:8px 10px;text-transform:uppercase;}
.page-move:disabled {opacity:.3;cursor:default;}
.ellipsis {color:#aaa;}
.empty-state {text-align:center;padding:60px 30px;background:#D8CCC6;border:1px solid var(--border);color:var(--muted);}
:focus-visible {outline:2px solid #DB835E;outline-offset:3px;}
@media (max-width:980px) {.pack-grid {grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (max-width:680px) {
  .wrap,.header-inner,.footer-inner {width:calc(100% - 36px);}
  .header-inner {height:70px;} .brand {font-size:25px;}
  .hero {padding-top:48px;} .hero h1 {font-size:clamp(52px,11.5vw,72px);letter-spacing:-3px;}
  .collections {padding:36px 0 50px;}
  .guidelines {margin-top:27px;padding-left:15px;}
  .has-guidelines .collections {padding-top:29px;}
  .guidelines h2 {font-size:18px;}
  .pack-grid {grid-template-columns:minmax(0,1fr);}
  .pack-card {padding:17px 0;} .card-title {font-size:25px;}
  .footer-inner {min-height:86px;justify-content:center;flex-direction:column;text-align:center;gap:3px;padding:18px 0;}
  .pack-head {padding-top:48px;} .pack-head h1 {font-size:clamp(48px,11vw,70px);letter-spacing:-2.5px;}
  .pack-page .pack-head,.pack-page .gallery-section {width:calc(100% - 36px);}
  .gallery-section {padding:30px 0 70px;}
  .pagination {gap:7px;justify-content:space-between;} .pages {gap:0;}
  .page-num {width:28px;height:32px;font-size:10px;} .page-move {font-size:10px;padding:7px 2px;}
}

@media (prefers-reduced-motion:reduce) {*,*::before,*::after {scroll-behavior:auto!important;transition:none!important;animation:none!important;}}

/* v10: optional uploaded banner, inside the restored v8 layout. */
.hero-banner {max-width:1080px;margin:0 0 38px;line-height:0;}
.hero-banner img {display:block;width:100%;height:auto;object-fit:contain;}
.hero:has(.hero-banner) {padding-top:40px;}
@media (max-width:680px) {.hero-banner{margin-bottom:24px}.hero:has(.hero-banner){padding-top:26px}}


/* FRAME FOLIO V13: selected playful details on the original layout */
/* A small terracotta star beside the existing directory wordmark. */
.brand {display:inline-flex;align-items:center;gap:10px;}
.brand::before {content:"✳";font:400 24px/1 var(--serif);color:var(--lilac-dark);display:inline-block;transition:transform .24s ease;}
.brand:hover::before {transform:rotate(35deg);}
/* Original three-column directory, now in gently rounded cards. */
.pack-grid {column-gap:18px;row-gap:15px;}
.pack-card {border:1px solid var(--border);border-radius:10px;padding:18px;background:color-mix(in srgb,var(--paper) 68%,var(--canvas));transition:transform .18s ease,background .18s ease,box-shadow .18s ease;}
.pack-card:hover {background:var(--paper);transform:translateY(-2px);box-shadow:3px 3px 0 color-mix(in srgb,var(--lilac-dark) 46%,var(--border));}
.card-title {font-size:clamp(21px,2.1vw,28px);line-height:1.2;}
.card-heading svg {opacity:0;transition:opacity .18s ease,transform .18s ease;}
.pack-card:hover .card-heading svg,.pack-card:focus-visible .card-heading svg {opacity:1;}
/* Guidelines are a slim, single row whenever the screen has room. */
.guidelines {display:flex;align-items:baseline;gap:18px;margin-top:29px;padding-left:15px;}
.guidelines h2 {flex:0 0 auto;margin:0;font-size:18px;white-space:nowrap;}
.guidelines-copy {flex:1;min-width:0;max-width:none;font-size:11px;line-height:1.6;}
.guidelines-copy p {margin:0;}
.guidelines-copy p + p {margin-top:3px;}
@media(min-width:1320px) {.guidelines-copy p {white-space:nowrap;}}
/* Small, uppercase DM Mono on both the homepage and GIF pages. */
.nav-link,.card-source,.pack-meta,.footer,.page-num,.page-move {font-size:9px;line-height:1.65;text-transform:uppercase;}
.card-source {margin-top:10px;letter-spacing:.15px;}
.pack-meta {letter-spacing:.3px;}
.page-num {line-height:1;}
@media(max-width:680px) {
  .brand::before {font-size:20px;}
  .pack-grid {row-gap:11px;}
  .pack-card {padding:15px;}
  .card-title {font-size:23px;}
  .guidelines {align-items:flex-start;flex-wrap:wrap;gap:4px 12px;padding-left:12px;}
  .guidelines h2 {font-size:17px;}
  .guidelines-copy {flex-basis:100%;}
}
@media(prefers-reduced-motion:reduce) {.pack-card,.brand::before {transition:none;}}

/* FRAME FOLIO V14 highlight: marker beneath each faceclaim name. */
.pack-card .card-title {
  position:relative;
  isolation:isolate;
  padding:0 .035em;
  -webkit-box-decoration-break:clone;
  box-decoration-break:clone;
  background-image:linear-gradient(color-mix(in srgb,var(--lilac-dark) 29%,transparent),color-mix(in srgb,var(--lilac-dark) 29%,transparent));
  background-position:0 94%;
  background-size:100% .27em;
  background-repeat:no-repeat;
  transition:background-size .18s ease;
}
.pack-card:is(:hover,:focus-visible) .card-title {
  background-size:100% .40em;
  color:var(--ink);
}
@media(prefers-reduced-motion:reduce) {.pack-card .card-title {transition:none;}}
