@font-face{font-family:'Courier Prime';src:url('assets/fonts/courier-prime.ttf') format('truetype');font-display:swap}
:root{color-scheme:light;--red:#be1931;--yellow:#ffdc45;--paper:#fef8dc;--ink:#171915;--mono:'Courier Prime','Courier New',monospace}
*{box-sizing:border-box}
html{min-width:320px}
body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif}
button,a{-webkit-tap-highlight-color:transparent}
button{font:inherit}
a{color:inherit;text-underline-offset:4px}
a:focus-visible{outline:2px solid var(--red);outline-offset:5px}
[hidden]{display:none!important}
main{width:min(1320px,100%);margin:0 auto;padding:0 64px}
.skip-link{position:fixed;top:12px;left:12px;z-index:10;padding:12px;background:white;transform:translateY(-160%)}
.skip-link:focus{transform:translateY(0)}
.masthead{display:grid;place-items:center;padding-top:38px}
.portrait-button{position:relative;display:grid;place-items:center;width:240px;height:240px;padding:0;border:0;background:transparent;text-decoration:none;cursor:pointer;touch-action:manipulation}
.portrait-button:focus-visible{outline:2px dashed var(--red);outline-offset:10px;border-radius:45%}
.portrait-art{display:block;position:relative;width:100%;height:100%;mix-blend-mode:darken;pointer-events:none}
.portrait-layer{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:contain}
.portrait-original{opacity:1}
.portrait-hover{opacity:0;object-fit:contain}
.portrait-ready:is(:hover,:focus-visible,.is-revealed) .portrait-hover{opacity:1}
.portrait-ready:is(:hover,:focus-visible,.is-revealed) .portrait-original{opacity:0}
.portrait-hello{position:absolute;z-index:1;left:calc(100% - 24px);top:36%;display:grid;gap:6px;min-width:122px;padding:15px 20px 13px;background:var(--red);color:var(--paper);border:2px solid var(--red);border-radius:20px 24px 22px 7px;box-shadow:4px 5px 0 var(--yellow);font-family:var(--mono);text-align:center;white-space:nowrap;opacity:0;pointer-events:none;transform:translate(var(--hello-x,0px),6px) rotate(-7deg) scale(.94);transition:opacity 180ms ease,transform 280ms cubic-bezier(.2,.7,.2,1)}
.portrait-hello::before{content:'';position:absolute;left:15px;bottom:-11px;width:17px;height:13px;background:var(--red);clip-path:polygon(0 0,100% 0,0 100%)}
.portrait-hello::after{content:'';position:absolute;inset:-14px -8px;z-index:-1}
.hello-title{font-size:1.5rem;font-weight:700;line-height:1;letter-spacing:-1px}
.portrait-button:is(:hover,:focus-visible,.is-revealed) .portrait-hello{opacity:1;pointer-events:auto;transform:translate(var(--hello-x,0px),0) rotate(-7deg) scale(1)}
.portrait-button.is-touch:not(.is-revealed) .portrait-hello{opacity:0;pointer-events:none}
.portrait-button.is-touch:not(.is-revealed) .portrait-hover{opacity:0}
.portrait-button.is-touch:not(.is-revealed) .portrait-original{opacity:1}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

.collection{position:relative;margin-top:38px}
.collection-hint{margin:0 0 24px;text-align:center;color:var(--red);font-family:var(--mono);font-size:.875rem;line-height:1.6}
.collection-hint>span[aria-hidden]{margin:0 7px}
.touch-hint{display:none}
.objects{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:28px;padding-bottom:164px}
.object{position:relative;min-width:0}
.object.is-active{z-index:2}
.object-button{display:block;width:100%;padding:0;border:0;color:inherit;background:transparent;cursor:pointer;touch-action:manipulation}
.object-button:focus{outline:none}
.object-button:focus-visible .object-name{outline:2px solid var(--red);outline-offset:6px}
.photo-zone{position:relative;display:grid;place-items:center;height:186px}
.object-photo{display:block;width:100%;height:100%;object-fit:contain;transform:rotate(0) scale(1);transition:transform 620ms cubic-bezier(.2,.7,.2,1)}
.kree8{max-height:145px}
.amble{max-height:158px}
.object-photo.clucky{width:85%;height:85%;max-height:151px}
.coffee{max-height:150px}
.diary{max-height:162px}
.camera{max-height:142px}
.object.is-active .object-photo{transform:rotate(var(--tilt)) scale(1.14)}
.object-name{display:inline-block;margin-top:28px;padding:3px 8px;color:var(--red);font-family:var(--mono);font-size:.9375rem;line-height:1.4;transition:color 180ms ease}
.object-index{font-size:.75rem;color:var(--red);opacity:1;margin-right:6px}
.object.is-active .object-name{color:var(--red);background:var(--yellow)}
.viewfinder{position:absolute;inset:12% 2%;color:var(--red);border:1px solid currentColor;opacity:0;transform:scale(.86);transition:opacity 200ms ease,transform 480ms cubic-bezier(.2,.7,.2,1);pointer-events:none}
.viewfinder::before,.viewfinder::after{content:'';position:absolute;inset:-4px;background:linear-gradient(currentColor,currentColor) left top / 16px 2px no-repeat,linear-gradient(currentColor,currentColor) left top / 2px 16px no-repeat,linear-gradient(currentColor,currentColor) right bottom / 16px 2px no-repeat,linear-gradient(currentColor,currentColor) right bottom / 2px 16px no-repeat}
.viewfinder::after{transform:scaleX(-1)}
.object.is-active .viewfinder{opacity:1;transform:scale(1)}
.scan-number{position:absolute;top:-23px;left:-1px;padding:4px 6px 3px;background:var(--yellow);color:var(--red);white-space:nowrap;font-family:var(--mono);font-size:.75rem;line-height:1}
.scan-line{position:absolute;top:0;left:0;width:100%;height:22%;background:linear-gradient(transparent,#be193112);border-bottom:1px solid #be1931b3;opacity:0}
.object.is-active .scan-line{animation:scan 1800ms cubic-bezier(.4,0,.3,1) infinite}
.crosshair{position:absolute;width:13px;height:13px;top:calc(50% - 6px);left:calc(50% - 6px);background:linear-gradient(currentColor,currentColor) center / 1px 100% no-repeat,linear-gradient(currentColor,currentColor) center / 100% 1px no-repeat;opacity:.65}
@keyframes scan{0%{transform:translateY(-10%);opacity:0}12%{opacity:1}80%{opacity:1}100%{transform:translateY(350%);opacity:0}}
.item-detail{position:absolute;top:calc(100% + 24px);left:0;width:236px;padding:13px 15px 14px;color:#4b0b15;background:var(--yellow);border-left:2px solid var(--red);font-family:var(--mono);animation:detail-in 240ms ease both}
.item-detail::before{content:'';position:absolute;bottom:100%;left:36px;width:1px;height:25px;background:var(--red);transform:rotate(23deg);transform-origin:bottom}
.item-detail::after{content:'';position:absolute;bottom:100%;left:0;right:0;height:26px}
.object:nth-last-child(-n+2) .item-detail{left:auto;right:0}
.object:nth-last-child(-n+2) .item-detail::before{left:auto;right:36px;transform:rotate(-23deg)}
.item-detail h2{color:var(--red);font-family:Arial,Helvetica,sans-serif;font-weight:600;font-size:1rem;line-height:1.2;margin:0 0 7px}
.item-detail p{font-size:.875rem;line-height:1.45;margin:0}
.item-detail a,.detail-note{display:inline-block;margin-top:9px;font-size:.875rem;line-height:1.3}
.item-detail a:focus-visible{outline-color:var(--red)}
@keyframes detail-in{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}

.about{max-width:790px;margin:8px auto 48px;padding:24px 0 28px;color:var(--ink);font-family:var(--mono);text-align:left}
.about::before{content:'';display:block;width:46px;height:3px;margin-bottom:22px;background:var(--red)}
.about h2{margin:0 0 22px;color:var(--red);font:400 .9375rem/1.5 var(--mono)}
.about p{margin:0;font-size:1.0625rem;line-height:1.95}
.about a{text-decoration-color:var(--red);text-decoration-thickness:1px}
.about a:hover{color:var(--red)}
.about a:focus-visible{outline-color:var(--red)}

footer{display:flex;flex-wrap:wrap;justify-content:space-between;gap:24px;padding:18px max(32px,calc((100vw - 1192px) / 2));background:var(--paper);color:var(--red);font-family:var(--mono);font-size:.875rem;line-height:1.5}
footer a{text-decoration:none}
footer a:hover{text-decoration:underline}

.photo-credits summary{cursor:pointer}
.photo-credits summary:focus-visible{outline:2px solid var(--red);outline-offset:5px}
.photo-credits[open]{flex-basis:100%;order:3}
.photo-credits p{max-width:720px;margin:12px 0 0;line-height:1.7}
.photo-credits p a{text-decoration:underline}
@media(min-width:1500px){
 .masthead{padding-top:48px}.portrait-button{width:260px;height:260px}.collection{margin-top:30px}
}
@media(max-width:1050px){
 main{padding:0 38px}.masthead{padding-top:32px}.portrait-button{width:220px;height:220px}.collection{margin-top:34px}.objects{gap:18px}.photo-zone{height:155px}.object-photo{max-height:100%}.object-name{font-size:.875rem}.object-index{display:none}.item-detail{width:218px}
}
@media(max-width:800px){
 .objects{--detail-width:220px;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:42px;row-gap:32px;padding-bottom:0;align-items:start}
 .photo-zone{height:176px}.object-photo{max-width:180px}.object-name{font-size:.9375rem;margin-top:18px}.object-index{display:inline}
 .item-detail{position:relative;top:auto;width:var(--detail-width);margin-top:24px}
 .object:nth-last-child(-n+2) .item-detail{right:auto;left:0}
 .object:nth-child(3n) .item-detail{right:0;left:auto;margin-left:calc(100% - var(--detail-width))}
 .object:nth-last-child(-n+2) .item-detail::before{right:auto;left:36px;transform:rotate(23deg)}
 .object:nth-child(3n) .item-detail::before{left:auto;right:36px;transform:rotate(-23deg)}
 .about{margin-top:24px;max-width:620px}
}
@media(max-width:520px){
 main{padding:0 24px}.masthead{padding-top:24px}.portrait-button{width:196px;height:196px}
 .portrait-hello{left:calc(100% - 42px);top:12%;min-width:94px;min-height:44px;padding:11px 12px 9px;border-radius:15px 18px 16px 5px;box-shadow:3px 4px 0 var(--yellow)}
 .hello-title{font-size:1.125rem}

 .collection{margin-top:30px}.collection-hint{font-size:.8125rem;max-width:230px;margin:0 auto 38px}
 .collection-hint>span[aria-hidden]{display:none}.hover-hint{display:block}
 .objects{--detail-width:min(244px,calc(100vw - 48px));grid-template-columns:repeat(2,minmax(0,1fr));column-gap:30px;row-gap:32px;padding-bottom:0}
 .photo-zone{height:160px}.object-photo{max-width:150px}.object-name{font-size:.875rem}
 .object:nth-child(3n) .item-detail{right:auto;left:0;margin-left:0}
 .object:nth-child(3n) .item-detail::before{right:auto;left:36px;transform:rotate(23deg)}
 .object:nth-child(2n) .item-detail{right:0;left:auto;margin-left:calc(100% - var(--detail-width))}
 .object:nth-child(2n) .item-detail::before{left:auto;right:36px;transform:rotate(-23deg)}
 .about{padding:18px 0 12px;margin-bottom:32px}.about h2{font-size:.875rem}.about p{font-size:1rem;line-height:1.85}

 footer{padding:18px 24px;flex-wrap:wrap;row-gap:8px;font-size:.8125rem}
}
@media(hover:none){.hover-hint{display:none}.touch-hint{display:inline}}
@media(prefers-reduced-motion:reduce){
 *,*::before,*::after{animation:none!important;transition:none!important}
 .object.is-active .object-photo{transform:scale(1.04)}
 .object.is-active .scan-line{top:45%;height:1px;opacity:.6}
}
