*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:20px}body{margin:0;background:#fff;color:#000;font-family:'Times New Roman',Times,serif;font-size:16px}a{color:#00e;text-decoration:underline}a:visited{color:#551a8b}button{font:13px Arial,sans-serif;color:#000;background:#eee;border:2px outset #ddd;border-radius:0;padding:4px 10px;cursor:pointer}button:active{border-style:inset}button:focus-visible,a:focus-visible{outline:2px dotted blue;outline-offset:3px}header{max-width:980px;margin:20px auto 0;display:flex;flex-direction:column;align-items:center;gap:14px;padding:0 16px 18px;border-bottom:1px solid #999}.brand{font:bold italic 48px Arial;color:#00e}.brand img{width:230px;max-height:110px;object-fit:contain;display:block}nav{display:flex;gap:18px;justify-content:center;align-items:center;flex-wrap:wrap;font-size:14px}nav a{white-space:nowrap}.hero{max-width:980px;margin:auto;text-align:center;padding:20px 16px 0}.hero-label{font:11px 'Courier New',monospace;display:flex;justify-content:space-between;gap:12px;color:#555}h1{font:bold italic 58px Arial,sans-serif;letter-spacing:-3px;margin:17px 0 0;text-shadow:2px 2px #ccc}.ticker{font:bold 14px 'Courier New',monospace;color:#00e;margin:4px 0}.welcome{font-size:14px;line-height:1.4;margin:14px 0}.session{position:relative;margin:0 auto;max-width:560px}#portrait{display:block;width:100%;height:min(58vw,510px);min-height:290px;padding:0;background:#fff;border:0;position:relative;overflow:hidden}#hero-image{height:100%;width:100%;object-fit:contain;display:block}.flash{position:absolute;inset:0;background:white;opacity:0;pointer-events:none}.flash.fire{animation:camera .45s ease-out}@keyframes camera{0%,20%{opacity:1}100%{opacity:0}}.new-badge{position:absolute;z-index:2;left:0;top:10px;color:red;background:#ff0;font:bold italic 17px Arial;transform:rotate(-12deg);border:1px solid red;padding:4px;animation:newblink 1.8s steps(1) infinite}@keyframes newblink{50%{color:#00e}}.vertical-note{display:block;font:11px 'Courier New';color:#777;margin:6px}.session-bar{display:flex;justify-content:center;align-items:center;gap:22px;padding:12px 0 18px;border-bottom:1px solid #999;flex-wrap:wrap;font:12px 'Courier New'}.session-actions{display:flex;gap:5px}.collection{max-width:980px;margin:55px auto 0;padding:0 16px}.section-heading{text-align:center;margin-bottom:24px}h2{font:bold 26px 'Times New Roman';margin:0 0 7px}.section-heading>span{font:11px 'Courier New';color:#666}.image-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.work{min-width:0}.media-button{position:relative;display:block;width:100%;padding:0;aspect-ratio:1;background:#fff;border:1px solid #bbb;overflow:hidden}.media-button:hover{outline:1px dotted blue;outline-offset:3px}.media-button img{width:100%;height:100%;display:block;object-fit:contain}.open-label{position:absolute;right:6px;bottom:6px;background:#fff;font:11px 'Courier New';color:blue;text-decoration:underline}.work-meta{font:11px 'Courier New';display:flex;justify-content:space-between;gap:5px;padding:10px 0}.video-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px 16px}.film .media-button{aspect-ratio:4/3}.film video{width:100%;height:100%;object-fit:contain;background:#fff}.film-number{position:absolute;top:6px;left:6px;font:10px 'Courier New';background:#fff;padding:3px}.play-icon{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:#eee;border:2px outset #ddd;padding:9px 14px;font:18px Arial}.end{text-align:center;margin:65px 16px 30px}.end p{font:bold 25px 'Times New Roman';line-height:1.2}.end>span{display:block;font:11px 'Courier New';margin:10px}.web-badges{display:flex;gap:6px;justify-content:center;flex-wrap:wrap;margin:30px 15px}.web-badges span{font:bold 9px Arial;padding:5px 7px;border:2px outset #bbb;background:#eee}.web-badges span:first-child{color:#00e}footer{max-width:980px;margin:0 auto;padding:18px 16px 30px;border-top:1px solid #999;display:flex;justify-content:space-between;align-items:center;gap:15px;font:11px 'Courier New';flex-wrap:wrap}dialog{position:fixed;inset:0;background:#fff;color:#000;width:96vw;height:94dvh;max-width:1200px;max-height:94dvh;border:2px ridge #ccc;padding:14px}dialog[open]{display:flex;flex-direction:column}dialog::backdrop{background:#ffffffed}.viewer-top,.viewer-bottom{display:flex;justify-content:space-between;align-items:center;gap:10px;font:12px 'Courier New';flex-shrink:0}.viewer-top{border-bottom:1px solid #bbb;padding-bottom:12px}.viewer-bottom{border-top:1px solid #bbb;padding-top:12px}#viewer-content{flex:1;min-height:0;display:flex;justify-content:center;align-items:center;padding:16px 0}#viewer-content img,#viewer-content video{max-width:100%;max-height:100%;object-fit:contain}#viewer-content video{width:100%;height:100%}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);padding:14px 20px;background:white;border:2px ridge #ccc;font:13px 'Courier New';opacity:0;pointer-events:none;z-index:30}#toast.visible{opacity:1}.missing{position:absolute;inset:0;display:grid;place-items:center;background:#fff;font:11px 'Courier New';color:#666}.film .missing{padding-top:65px}@media(max-width:650px){header{margin-top:15px}.brand img{width:200px}nav{gap:12px;font-size:13px}.hero-label{font-size:9px}h1{font-size:48px}.session-bar{gap:12px;font-size:10px}#portrait{height:95vw;min-height:0}.image-grid{grid-template-columns:repeat(2,1fr)}.video-grid{grid-template-columns:repeat(2,1fr)}.collection{margin-top:40px}.work-meta{font-size:10px;flex-wrap:wrap}.viewer-bottom{font-size:10px}.viewer-bottom button{font-size:11px;padding:4px}.web-badges span{font-size:8px}footer{justify-content:center;text-align:center}footer>span{order:3;width:100%}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}

/* Keep breathing while hovered; return to normal when the pointer leaves. */
@keyframes horseZoom { 0%,100% { transform:scale(1); } 50% { transform:scale(1.055); } }
@media (hover:hover) and (prefers-reduced-motion:no-preference) {
  a:hover, button:hover { animation:horseZoom 1.2s ease-in-out infinite; }
  .media-button:hover, #portrait:hover, .brand:hover { animation:none; }
  .media-button:hover img, .media-button:hover video, #portrait:hover img, .brand:hover img { animation:horseZoom 1.2s ease-in-out infinite; }
  #viewer-content img:hover, #viewer-content video:hover { animation:horseZoom 1.2s ease-in-out infinite; }
}
.play-icon { font-size:11px; padding:4px 7px; border-width:1px; }
