/* Personal collection: a cabinet of objects with notes tucked beneath them. */
.collection-controls{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.2rem;}
.collection-controls[hidden],.collection-panels>[hidden]{display:none;}
.collection-arrow{display:grid;place-items:center;width:48px;height:48px;flex:0 0 48px;border:1px solid currentColor;background:transparent;color:inherit;border-radius:50%;font:1.6rem var(--font-display);cursor:pointer;}
.collection-arrow:hover{background:#986a4320;}
.collection-arrow:focus-visible{outline:3px solid var(--court-text);outline-offset:4px;}
.collection-position{margin:0;text-align:center;font:italic 1.4rem var(--font-display);}
.collection-position small{display:block;margin-top:.4rem;font:.6rem var(--font-mono);letter-spacing:.1em;}
.collection-panels{overflow:hidden;}
.is-carousel .racket-wall,.is-carousel .coffee-counter{margin-top:0;}
.collection-enter{animation:collection-enter .32s ease-out;}
@keyframes collection-enter{from{opacity:.35;transform:translateX(calc(var(--collection-direction,1) * 8%));}to{opacity:1;transform:translateX(0);}}
@media(prefers-reduced-motion:reduce){.collection-enter{animation:none;}}
.gl-rm .collection-enter{animation:none;}
#collections{scroll-margin-top:100px;}
.shelf-intro{display:flex;justify-content:space-between;align-items:start;gap:1.5rem;}
.shelf-intro .sec-intro{margin:0 0 1.8rem;max-width:48ch;}
.shelf-hand{font:1.5rem/1.2 var(--font-hand);color:var(--court-text);transform:rotate(-4deg);margin:0 1rem 1.5rem;}
.game-cabinet{padding:0 1.5rem;background:#62432d;border:8px solid #986a43;border-radius:12px;box-shadow:inset 0 2px 18px #2e1c15,0 12px 26px #35241620;}
.cabinet-heading,.cabinet-footer{display:flex;justify-content:space-between;gap:1rem;align-items:center;color:#f1ddbd;padding:1.2rem .5rem;}
.cabinet-heading h3{font:italic 1.5rem var(--font-display);margin:0;}
.cabinet-heading>span,.cabinet-footer{font:0.65rem/1.6 var(--font-mono);}
.shelf-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem 1.8rem;align-items:start;}
.shelf-game{min-width:0;}
.shelf-game summary{cursor:pointer;list-style:none;outline-offset:5px;border-radius:3px;}
.shelf-game summary::-webkit-details-marker{display:none;}
.shelf-game summary:focus-visible{outline:3px solid #f6dba5;}
.shelf-cover{height:260px;position:relative;display:flex;align-items:center;justify-content:center;padding:18px 35px 20px;background:radial-gradient(ellipse at 50% 30%,#a37a4a40,transparent 75%),#382b21;box-shadow:inset 0 8px 22px #1e171b70;border-bottom:13px solid #ae7a4d;}
.shelf-cover::after{content:'';position:absolute;bottom:-13px;left:0;right:0;height:13px;background:repeating-linear-gradient(2deg,transparent 0 3px,#58351c30 4px 5px);box-shadow:0 5px 7px #21160d66;}
.shelf-cover>img{display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(4px 10px 5px #100b0980);transition:transform .3s ease;}
.shelf-game summary:hover .shelf-cover>img,.shelf-game[open] .shelf-cover>img{transform:translateY(-5px) rotate(-2deg);}
.shelf-count{position:absolute;bottom:8px;right:10px;padding:5px 8px;background:#f4e8d2;color:#49351f;font:0.6rem var(--font-mono);box-shadow:2px 3px 4px #25170c40;transform:rotate(-2deg);}
.shelf-caption{display:block;position:relative;padding:1rem 1.1rem;background:#f4ead7;color:#392b20;min-height:125px;}
.shelf-label{display:block;color:#775039;font:0.57rem var(--font-mono);letter-spacing:.09em;text-transform:uppercase;margin-bottom:.4rem;}
.shelf-caption strong{display:block;font:1.55rem/1.15 var(--font-display);}
.shelf-caption small{font:inherit;font-size:1rem;}
.shelf-action{display:flex;justify-content:space-between;align-items:center;font:0.65rem var(--font-mono);color:#65513c;margin-top:.75rem;}
.shelf-action>span{font-size:1.2rem;transition:transform .2s;}
.shelf-game[open] .shelf-action>span{transform:rotate(45deg);}
.shelf-story{background:#f4ead7;color:#493c2e;padding:0 1.1rem 1.25rem;border-top:1px dashed #b8a38a;font-size:.87rem;line-height:1.65;}
.shelf-story>p{margin:1rem 0;}
.shelf-story h4{font:0.65rem/1.5 var(--font-mono);margin:1.2rem 0 .7rem;}
.shelf-expansions{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem;}
.shelf-expansions li{font-size:.68rem;line-height:1.4;text-align:center;}
.shelf-expansions img{width:100%;height:110px;object-fit:contain;display:block;margin-bottom:.4rem;filter:drop-shadow(2px 4px 3px #46302030);}
.shelf-footnote{display:block;margin-top:1.2rem;font:0.58rem/1.5 var(--font-mono);color:#705b45;}
.shelf-diy{display:grid;grid-template-columns:85px 1fr;gap:1rem;margin-top:1rem;align-items:center;}
.shelf-diy h4{margin:0 0 .4rem;}
.shelf-diy p{font-size:.75rem;line-height:1.5;margin:0;}
.shelf-diy-photo{display:block;aspect-ratio:300/410;}
.shelf-diy-photo img{display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(2px 4px 3px #46302030);}
.shelf-story .shelf-wishlist{background:#e9dfbe;padding:.8rem 1rem;transform:rotate(-1deg);font:1.3rem/1.2 var(--font-hand);margin-top:1.4rem;}
.shelf-wishlist span{display:block;font:0.56rem var(--font-mono);margin-bottom:.4rem;}
[data-theme="dark"] .game-cabinet{border-color:#735137;background:#422f24;}
[data-theme="dark"] .shelf-caption,[data-theme="dark"] .shelf-story{background:#302e25;color:#eee2cd;}
[data-theme="dark"] .shelf-label,[data-theme="dark"] .shelf-action,[data-theme="dark"] .shelf-footnote{color:#d9bd98;}
[data-theme="dark"] .shelf-story .shelf-wishlist{background:#4a4532;}
@media(min-width:1050px){.shelf-cover{height:285px;}}
@media(max-width:600px){
  #collections .sec-tag{flex-wrap:wrap;gap:.5rem 1rem;}
  #collections .sec-tag-meta{margin-left:0;flex-basis:100%;}
  .shelf-intro{display:block;}.shelf-hand{margin-left:.5rem;}
  .game-cabinet{padding:0 .8rem;border-width:6px;}
  .shelf-grid{grid-template-columns:minmax(0,1fr);gap:1.5rem;}
  .shelf-cover{height:250px;}.shelf-caption{min-height:0;}
  .cabinet-heading,.cabinet-footer{flex-wrap:wrap;gap:.35rem;}
  .cabinet-heading>span{font-size:.58rem;}
}
@media(prefers-reduced-motion:reduce){.shelf-cover>img,.shelf-action>span{transition:none;}.shelf-game summary:hover .shelf-cover>img,.shelf-game[open] .shelf-cover>img{transform:none;}.shelf-hand,.shelf-count,.shelf-story .shelf-wishlist{transform:none;}}
.gl-rm .shelf-cover>img,.gl-rm .shelf-action>span{transition:none;}
.gl-rm .shelf-game summary:hover .shelf-cover>img,.gl-rm .shelf-game[open] .shelf-cover>img,.gl-rm .shelf-hand,.gl-rm .shelf-count,.gl-rm .shelf-story .shelf-wishlist{transform:none;}

/* Rackets hang from a shared pegboard; paper tags carry their stories. */
#racket-wall{scroll-margin-top:105px;}
.racket-wall{margin-top:3rem;padding:2rem 1.5rem 1rem;border:8px solid #986a43;border-radius:12px;background-color:#344b40;background-image:radial-gradient(#182d25 1px,transparent 1.5px);background-size:18px 18px;box-shadow:inset 0 2px 18px #182d2566,0 12px 26px #35241620;color:#f5ead4;}
.racket-wall-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:0 .5rem 1.5rem;}
.racket-eyebrow{font:.58rem/1.5 var(--font-mono);letter-spacing:.12em;color:#d8d6bf;}
.racket-wall-heading h3{font:italic 2rem/1.2 var(--font-display);margin:.3rem 0 0;}
.racket-wall-heading p{font:1.45rem/1.2 var(--font-hand);margin:0;transform:rotate(-3deg);color:#e9dcb7;}
.racket-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;align-items:start;}
.racket-item summary{display:block;}
.racket-pose{position:relative;display:flex;align-items:center;justify-content:center;height:355px;padding:18px 12px 28px;}
.racket-pose::before{content:'';position:absolute;top:9px;left:calc(50% - 5px);height:13px;width:10px;border-radius:50%;background:#c4ad80;border:1px solid #f1ddb0;box-shadow:2px 3px 3px #14241e;}
.racket-pose img{display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(5px 7px 3px #10241e99);transform:rotate(-4deg);transform-origin:50% 4%;transition:transform .3s ease;}
.racket-item:nth-child(even) .racket-pose img{transform:rotate(4deg);}
.racket-item summary:hover .racket-pose img,.racket-item[open] .racket-pose img{transform:rotate(0deg) translateY(-4px);}
.racket-tag{display:block;position:relative;padding:1.1rem .85rem .75rem;background:#f4ead7;color:#392b20;box-shadow:2px 4px 5px #12291e30;min-height:150px;}
.racket-tag::before{content:'';position:absolute;top:-8px;left:calc(50% - 22px);width:44px;height:16px;background:#c8be98b3;transform:rotate(-4deg);}
.racket-tag strong{display:block;font:1.22rem/1.25 var(--font-display);}
.racket-tag small{display:block;font:.72rem/1.7 var(--font-mono);margin-top:.15rem;}
.racket-tag .shelf-label{font-size:.52rem;line-height:1.5;letter-spacing:.04em;}
.racket-tag .shelf-action{margin-top:.65rem;}
.racket-story{padding:0 .85rem .8rem;font-size:.82rem;}
.racket-current-note{position:absolute;bottom:14px;right:0;transform:rotate(-5deg);background:#f0dc9e;color:#3d3826;padding:.3rem .6rem;font:1.05rem/1.2 var(--font-hand);box-shadow:2px 3px 4px #13271e55;}
.racket-wall-footer{display:flex;justify-content:space-between;gap:1rem;margin-top:1.5rem;padding:.5rem;font:.6rem/1.6 var(--font-mono);color:#ded8c3;}
[data-theme="dark"] .racket-wall{background-color:#243b30;border-color:#735137;}
[data-theme="dark"] .racket-tag{background:#302e25;color:#eee2cd;}
@media(max-width:900px){.racket-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.8rem 1rem;}.racket-tag{min-height:135px;}}
@media(max-width:600px){.racket-wall{padding:1.4rem .8rem .8rem;border-width:6px;}.racket-wall-heading{align-items:start;flex-direction:column;}.racket-wall-heading p{font-size:1.3rem;}.racket-wall-heading p br{display:none;}.racket-wall-heading p br::after{content:' ';}.racket-grid{gap:1.6rem .65rem;}.racket-pose{height:265px;padding:18px 2px 24px;}.racket-tag{padding:1rem .6rem .6rem;min-height:158px;}.racket-tag strong{font-size:1.08rem;}.racket-tag .shelf-label{min-height:2.5em;}.racket-current-note{font-size:.85rem;padding:.25rem .3rem;right:-3px;}.racket-story{padding:0 .6rem .7rem;}.racket-wall-footer{flex-direction:column;gap:.3rem;}}
@media(max-width:360px){.racket-grid{grid-template-columns:minmax(0,1fr);}.racket-pose{height:315px;}.racket-tag{min-height:0;}.racket-tag .shelf-label{min-height:0;}}
@media(prefers-reduced-motion:reduce){.racket-pose img{transition:none;}.racket-item summary:hover .racket-pose img,.racket-item[open] .racket-pose img{transform:none;}}
.gl-rm .racket-pose img{transition:none;}
.gl-rm .racket-item summary:hover .racket-pose img,.gl-rm .racket-item[open] .racket-pose img{transform:none;}

/* A coffee counter with a quieter cupboard for the rest of the collection. */
.coffee-counter{margin-top:3rem;padding:2rem 1.5rem 1rem;border:8px solid #986a43;border-radius:12px;background:#e4d8c4;color:#392b20;box-shadow:inset 0 2px 18px #74502c1a,0 12px 26px #35241620;scroll-margin-top:105px;}
.coffee-heading{display:flex;justify-content:space-between;align-items:center;gap:1.5rem;margin:0 .5rem 1.5rem;}
.coffee-heading h3{font:italic 2rem/1.2 var(--font-display);margin:.35rem 0;}
.coffee-heading>p{font:1.4rem/1.25 var(--font-hand);margin:0;transform:rotate(-3deg);}
.coffee-featured{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.2rem;align-items:start;}
.coffee-feature{min-width:0;}
.coffee-object{height:255px;display:flex;align-items:end;justify-content:center;padding:12px 20px 18px;border-bottom:12px solid #a77a50;box-shadow:0 5px 5px -4px #49301d70;}
.coffee-object img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(3px 7px 4px #392b2033);}
.coffee-note{position:relative;margin:1.2rem .2rem 1.5rem;padding:1.1rem;background:#f5ecd9;box-shadow:2px 4px 6px #392b2014;}
.coffee-note::before{content:'';position:absolute;width:42px;height:14px;background:#c6b58b80;top:-7px;left:calc(50% - 21px);transform:rotate(-5deg);}
.coffee-roaster{display:block;font:.62rem/1.5 var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:#775039;}
.coffee-note .shelf-label{font-size:.53rem;margin-bottom:.85rem;}
.coffee-note h4{font:1.5rem/1.15 var(--font-display);margin:.3rem 0 .8rem;}
.coffee-note p{font-size:.86rem;line-height:1.65;margin:0;}
.coffee-pantry{border-top:1px solid #a58b6c;border-bottom:1px solid #a58b6c;}
.coffee-pantry summary{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1.15rem .5rem;cursor:pointer;list-style:none;font:italic 1.4rem var(--font-display);}
.coffee-pantry summary::-webkit-details-marker{display:none;}
.coffee-pantry summary:focus-visible{outline:3px solid #775039;outline-offset:4px;}
.coffee-pantry summary small{display:inline-block;margin-left:.7rem;font:.65rem var(--font-mono);}
.coffee-toggle{font:1.5rem var(--font-mono);}
.coffee-pantry[open] .coffee-toggle{transform:rotate(45deg);}
.coffee-pantry-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.8rem 1rem;padding:1rem .5rem 1.8rem;margin:0;list-style:none;}
.coffee-pantry-grid li{min-width:0;text-align:center;}
.coffee-pantry-grid .coffee-object{height:165px;padding:8px 14px 12px;border-bottom-width:8px;margin-bottom:.8rem;}
.coffee-pantry-grid h4{font:1.1rem/1.3 var(--font-display);margin:.3rem 0 0;}
.coffee-footer{font:.6rem/1.5 var(--font-mono);margin:1rem .5rem 0;}
[data-theme="dark"] .coffee-counter{background:#302e25;color:#eee2cd;border-color:#735137;}
[data-theme="dark"] .coffee-note{background:#403b2f;}
[data-theme="dark"] .coffee-roaster{color:#d9bd98;}
[data-theme="dark"] .coffee-pantry summary:focus-visible{outline-color:#f6dba5;}
@media(max-width:800px){.coffee-featured{gap:.7rem;}.coffee-object{height:215px;padding-inline:8px;}.coffee-note{padding:.85rem;}.coffee-note h4{font-size:1.3rem;}.coffee-pantry-grid{grid-template-columns:repeat(3,minmax(0,1fr));}}
@media(max-width:600px){.coffee-counter{padding:1.4rem .8rem 1rem;border-width:6px;}.coffee-heading{align-items:start;flex-direction:column;gap:.7rem;}.coffee-heading>p{font-size:1.3rem;}.coffee-featured{grid-template-columns:minmax(0,1fr);gap:.6rem;}.coffee-object{height:245px;}.coffee-note{margin-top:1rem;}.coffee-pantry-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.4rem .65rem;}.coffee-pantry-grid .coffee-object{height:155px;padding-inline:4px;}.coffee-pantry summary small{display:block;margin:.4rem 0 0;}.coffee-pantry-grid h4{font-size:1rem;}.coffee-roaster{font-size:.56rem;}}
