:root {
  --canvas: #f7f3ef; --paper:#fcfaf7; --ink:#3d3738; --muted:#807677; --quiet:#ada19f;
  --accent:#a9a592; --lilac:#d4c5d2; --lilac-dark:#ad96ac; --border:#ded7d2;
  --serif:'Fraunces', Georgia, serif; --sans:'Nunito',Arial,sans-serif; --mono:'DM Mono',monospace;
}
*, *::before, *::after { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--canvas); color:var(--ink); font:400 15px/1.65 var(--sans); -webkit-font-smoothing:antialiased; }
button,input {font:inherit;} button {cursor:pointer;} a {color:inherit;text-decoration:none;} svg {display:inline-block; flex:none; vertical-align:middle;} img {max-width:100%;}
::selection {background:#dcd0de; color:#3d3738;}
.wrap { width:min(1160px, calc(100% - 88px));margin-inline:auto; }
.header { background:rgba(247,243,239,.93); border-bottom:1px solid var(--border); position:relative;z-index:5; }
.header-inner {height:86px;display:flex;align-items:center;justify-content:space-between;width:min(1320px,calc(100% - 88px));margin:auto;}
.brand {font:600 29px/1 var(--serif); letter-spacing:-1.4px;display:inline-flex;align-items:center;}
nav {display:flex;align-items:center;gap:37px;}
.nav-link {text-transform:uppercase;letter-spacing:1.1px;font:400 10px/1.8 var(--mono); display:inline-flex;align-items:center;gap:7px; transition:color .15s;color:#6e6666;}
.nav-link.current {color:var(--ink);position:relative;}
.nav-link.current:after {content:""; position:absolute; bottom:-8px;left:0;right:0;height:1px;background:#b2a1b0;}
.nav-link:hover {color:#a78fa6;}
.eyebrow,.section-kicker,.card-index,.card-meta,.collection-rule,.stats,.breadcrumb,.section-side,.card-source,.gif-meta,.shortcut,.result-count,.pack-tags,.quiet-cta,.footer,.lightbox-actions,.sideways,.pack-bottom,.cover-small {font:400 11px/1.6 var(--mono);text-transform:uppercase;letter-spacing:.7px;}
.hero {padding-top:78px;}
.hero-kicker {color:#837980;letter-spacing:1.1px;font:400 10px/1.6 var(--mono);}
h1,h2,h3,p {margin-top:0;}
.hero h1 {font:500 clamp(66px,7vw,92px)/1.04 var(--serif);letter-spacing:-4px;margin:19px 0 27px;}
.hero-period {color:#ad96ac;}
.stats {border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:14px 0;display:flex;gap:32px;align-items:center;color:#645e5b;}
.collections {padding-top:54px;padding-bottom:90px;}
.section-heading {display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:26px;}
h2 {font:500 43px/1.13 var(--serif);letter-spacing:-2px;margin:0;}
.pack-grid {display:grid;grid-template-columns:repeat(3, minmax(0,1fr));gap:35px 27px;}
.pack-card {min-width:0;display:block;}
.cover {position:relative;overflow:hidden;aspect-ratio:1 / 1.04; background:var(--cover-accent,#d7c5cf);border-radius:3px;}
.cover > img {display:block;width:100%;height:100%;object-fit:cover;transition:transform .5s ease;}
.pack-card:hover .cover > img {transform:scale(1.045);}
.cover-fade {position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,transparent 30%,rgba(46,32,47,.17));}
.cover-empty {background:radial-gradient(circle at 65% 35%,rgba(255,255,255,.65),transparent 38%),linear-gradient(135deg, #e8dfdc 4%,var(--cover-accent,#d7c5cf) 70%);}
.cover-orbit {position:absolute; border:1px solid rgba(255,255,255,.64); border-radius:50%;aspect-ratio:1; width:78%;left:-6%;top:8%;transform:rotate(-20deg);}
.orbit-two {width:95%;left:29%;top:26%;border-color:rgba(86,64,81,.22);}
.cover-star {position:absolute;left:50%;top:48%;transform:translate(-50%,-50%);font:400 110px/1 var(--serif);color:rgba(255,255,255,.6);text-shadow:0 1px 1px rgba(80,70,80,.07);}
.cover-small {position:absolute;bottom:19px;left:20px;color:#6c5b68;font-size:9px;letter-spacing:1px;}
.card-meta {display:flex;justify-content:space-between;align-items:center;margin-top:17px;color:#988a91;font-size:10px;}
.card-title {font:500 28px/1.3 var(--serif);letter-spacing:-.9px;display:flex;align-items:center;justify-content:space-between;margin-top:8px;gap:10px;}
.card-title svg {color:#a19a8b;transition:transform .2s;}
.pack-card:hover .card-title svg {transform:translateX(5px);}
.card-source {color:#958b8b;font-size:10px;margin-top:8px;white-space:normal;}
.bullet {padding:0 6px;color:#c3b1ba;}
.footer {background:#efebe7;border-top:1px solid var(--border);color:#908686;font-size:10px;line-height:1.6;}
.footer-inner {width:min(1320px,calc(100% - 88px));margin:auto;min-height:95px;display:flex;align-items:center;justify-content:space-between;gap:20px;}
/* individual pack */
.pack-head {padding-top:38px;}
.breadcrumb {display:inline-flex;gap:10px;align-items:center;color:#96848e;font-size:10px;transition:color .2s;}
.breadcrumb:hover {color:var(--ink);}
.pack-head-grid {padding-top:38px;padding-bottom:46px;display:grid;grid-template-columns:1fr 260px;gap:60px;align-items:center;}
.pack-head-text > .eyebrow {color:#ad97a6;}
.pack-head h1 {font:500 clamp(56px,6.5vw,86px)/1.03 var(--serif);letter-spacing:-4px;margin:12px 0 23px;overflow-wrap:anywhere;}
.pack-description {color:#807575;max-width:585px;font-size:16px;line-height:1.9;margin-bottom:27px;}
.pack-tags {display:flex;gap:9px;flex-wrap:wrap;font-size:10px;}
.pack-tags > span {border:1px solid #d9d0d2;padding:10px 14px;color:#8b797f;}
.pack-head-cover {width:260px;aspect-ratio:1/1.08;box-shadow:18px 16px 0 #eee6e8;}
.collection-rule {padding:16px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);display:flex;justify-content:space-between;color:#988b8b;font-size:10px;}
.gallery-section {padding:42px 0 50px;}
.gallery-toolbar {display:flex;align-items:end;justify-content:space-between;gap:25px;margin-bottom:29px;}
.gallery-toolbar h2 {font-size:40px;margin:0;}
.result-count {font-size:10px;color:#a39797;margin-top:13px;margin-bottom:0;}
.search-box {height:45px;width:min(330px,100%);display:flex;align-items:center;gap:11px;border:1px solid #d9d1cf;background:#fbf9f6;padding:0 14px;color:#a3979a;}
.search-box:focus-within {border-color:#b4a2b0;outline:1px solid #e3d8e0;}
.search-box input {width:100%;min-width:0;flex:1;border:0;outline:0;background:transparent;color:var(--ink);font:400 13px/1.5 var(--sans);}
.search-box input::placeholder {color:#a39a98;}
.shortcut {font-size:9px;color:#c0b4b5;}
.gif-grid {display:grid;grid-template-columns:repeat(4, minmax(0,1fr));gap:29px 16px;scroll-margin-top:30px;}
.gif-tile {min-width:0;}
.gif-preview {position:relative;display:block;width:100%;padding:0;border:0;background:#e7e0df;aspect-ratio:1.55;overflow:hidden;}
.gif-preview img {width:100%;height:100%;object-fit:contain;display:block;}
.gif-zoom {position:absolute;bottom:0;right:0;left:0;padding:12px 13px;background:linear-gradient(transparent,rgba(28,22,25,.65));color:#fff;text-align:right;opacity:0;transform:translateY(5px);transition:opacity .18s,transform .18s;font:400 10px var(--mono);text-transform:uppercase;letter-spacing:.4px;display:flex;align-items:center;justify-content:flex-end;gap:7px;}
.gif-preview:hover .gif-zoom,.gif-preview:focus-visible .gif-zoom {opacity:1;transform:none;}
.gif-meta {display:flex;align-items:center;justify-content:space-between;margin-top:8px;color:#b1a4a5;font-size:10px;}
.gif-copy {background:none;border:0;padding:4px 0;color:#8b8084;display:inline-flex;align-items:center;gap:6px;font:400 9px/1.4 var(--mono);text-transform:uppercase;letter-spacing:.4px;}
.gif-copy svg {width:13px;height:13px;}
.gif-copy:hover {color:#665564;}
.pagination {display:flex;align-items:center;justify-content:center;gap:22px;margin-top:50px;}
.pages {display:flex;gap:8px;align-items:center;}
.page-num,.page-move {border:0;background:transparent;color:#867d7e;font:400 11px var(--mono);}
.page-num {width:34px;height:34px;}
.page-num.active {background:#d9cbd7;color:#423740;}
.page-move {display:inline-flex;align-items:center;gap:8px;text-transform:uppercase;padding:7px 9px;}
.page-move:disabled {opacity:.28;cursor:default;}
.ellipsis {color:#aaa;font-size:14px;}
.pack-bottom {display:flex;align-items:center;justify-content:flex-end;gap:20px;border-top:1px solid var(--border);padding:22px 0 70px;color:#988d8e;font-size:10px;}
.pack-bottom a {display:inline-flex;align-items:center;gap:9px;color:#675d65;}
.empty-state {grid-column:1/-1;text-align:center;padding:74px 30px;background:#f0eae6;border:1px solid #e2d8d8;color:#847477;line-height:1.8;}
.gallery-empty {min-height:225px;display:flex;flex-direction:column;align-items:center;justify-content:center;}
.gallery-empty h3 {font:400 31px var(--serif);margin:6px 0 3px;}
.gallery-empty p {margin:0;max-width:440px;}
/* lightbox */
.lightbox {padding:0;border:1px solid #d5c8d0;background:var(--paper);width:min(860px,calc(100% - 28px));max-height:min(90vh,980px);box-shadow:0 16px 80px rgba(35,25,31,.27);color:var(--ink);}
.lightbox::backdrop {background:rgba(38,32,36,.72);backdrop-filter:blur(3px);}
.lightbox-bar {display:flex;justify-content:space-between;align-items:center;padding:14px 21px;border-bottom:1px solid var(--border);color:#978891;gap:20px;}
.lightbox-image {padding:26px;background:#eee8e7;display:flex;align-items:center;justify-content:center;max-height:64vh;}
.lightbox-image img {display:block;max-height:calc(64vh - 52px);max-width:100%;width:auto;height:auto;object-fit:contain;}
.icon-button {border:0;background:transparent;color:#766b6b;display:inline-flex;padding:5px;}
.lightbox-actions {display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:center;padding:19px;font-size:10px;}
.outline-button {background:#fcfaf7;border:1px solid #d8cdd2;padding:11px 19px;color:#61545d;display:inline-flex;align-items:center;gap:9px;text-transform:uppercase;}
.outline-button:hover {background:#f0e7ee;}
.toast {position:fixed;z-index:20;bottom:30px;left:50%;transform:translate(-50%,20px);opacity:0;pointer-events:none;background:#423840;color:#fff;padding:10px 20px;font:400 11px var(--mono);text-transform:uppercase;letter-spacing:.5px;transition:opacity .2s,transform .2s;}
.toast.show {opacity:1;transform:translate(-50%,0);}
:focus-visible {outline:2px solid #9e81a0;outline-offset:3px;}
@media(max-width:980px) {
  .hero h1 {font-size:clamp(67px,9vw,90px);}
  .pack-grid {grid-template-columns:repeat(2,minmax(0,1fr));}
  .gif-grid {grid-template-columns:repeat(3,minmax(0,1fr));}
}
@media(max-width:680px) {
  .wrap,.header-inner,.footer-inner {width:calc(100% - 36px);}
  .header-inner {height:70px;}
  .brand {font-size:25px;}
  .brand-symbol {font-size:21px;}
  nav {gap:14px;} .nav-link {font-size:9px;letter-spacing:.3px;}
  .hero {padding-top:50px;}
  .hero-kicker {gap:10px;font-size:8px;}
  .hero h1 {font-size:clamp(52px,11.5vw,72px);letter-spacing:-3px;margin:18px 0 22px;}
  .hero-period {font-size:inherit;}
  .stats {gap:20px;flex-wrap:wrap;justify-content:flex-start;font-size:9px;}
  .collections {padding:45px 0 72px;}
  .section-heading {align-items:flex-start;flex-direction:column;gap:9px;margin-bottom:27px;}
  h2 {font-size:38px;}
  .pack-grid {grid-template-columns:repeat(2,minmax(0,1fr));gap:25px 14px;}
  .card-meta {font-size:8px;gap:4px;flex-wrap:wrap;}
  .card-title {font-size:21px;gap:5px;}
  .card-title svg {width:14px;}
  .card-source {font-size:9px;line-height:1.6;}
  .cover-small {font-size:8px;bottom:9px;left:9px;}
  .cover-star {font-size:75px;}
  .footer-inner {min-height:86px;justify-content:center;flex-direction:column;text-align:center;gap:3px;padding:18px 0;}
  .pack-head-grid {grid-template-columns:1fr;gap:32px;padding-top:35px;padding-bottom:48px;}
  .pack-head h1 {font-size:clamp(48px,11vw,70px);letter-spacing:-2.5px;}
  .pack-description {font-size:14px;}
  .pack-head-cover {width:min(100%,265px);justify-self:center;}
  .collection-rule {font-size:9px;}
  .gallery-section {padding-top:42px;}
  .gallery-toolbar {display:block;}
  .gallery-toolbar h2 {font-size:38px;}
  .search-box {margin-top:23px;width:100%;}
  .gif-grid {grid-template-columns:repeat(2,minmax(0,1fr));gap:19px 11px;}
  .gif-meta {font-size:9px;} .gif-copy {font-size:8px;gap:3px;} .gif-copy svg {width:11px;}
  .pagination {gap:7px;justify-content:space-between;}
  .pages {gap:0;}.page-num {width:28px;height:32px;font-size:10px;}
  .page-move {font-size:10px;gap:3px;padding-inline:2px;}
  .pack-bottom {align-items:flex-start;flex-direction:column;}
  .lightbox-image {padding:11px;}
  .lightbox-actions {padding:13px;gap:8px;}
  .outline-button {padding:10px 12px;font-size:9px;}
}
@media(max-width:380px) {.pack-grid {grid-template-columns:1fr;} .card-title {font-size:25px;} .header-inner nav a:last-child:not(:first-child) {display:none;}}
@media(prefers-reduced-motion:reduce) {*,*::before,*::after {scroll-behavior:auto!important;transition:none!important;animation:none!important;}}
