html,body{height:100%}.art-body{overflow:hidden;background:var(--paper)}.art-stage{position:fixed;inset:0;overflow:hidden}.stage-head{position:absolute;top:clamp(58px,8vh,88px);left:clamp(28px,5vw,72px);z-index:1400;max-width:360px;pointer-events:none}.stage-head .page-h1{font-size:clamp(1.6rem,3vw,2.4rem);margin-top:6px}.stage-hint{margin-top:14px;font-family:var(--font-sans);font-size:var(--text-xs);letter-spacing:.2em;text-transform:uppercase;color:var(--stone);font-weight:300}.stage-hint-mobile{display:none}.fade-up{animation-delay:calc(var(--i, 0) * .08s)!important}.track-viewport{position:absolute;inset:0;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;cursor:grab;scroll-snap-type:none;-webkit-overflow-scrolling:touch;touch-action:pan-x;overscroll-behavior-x:contain}.track-viewport::-webkit-scrollbar{display:none}.track-viewport.dragging{cursor:grabbing}.track-viewport.deck-touch{overflow:hidden;touch-action:none}.track{position:relative;height:100%;min-width:100%}.art-card{position:absolute;top:51%;left:0;margin:0;text-align:center;transform:translate(-50%,-50%);transform-origin:center center;will-change:transform,opacity;contain:layout paint style;backface-visibility:hidden;cursor:pointer}.art-card-frame{position:relative;display:inline-block;line-height:0;border-radius:var(--radius-sm);overflow:hidden;box-shadow:none;transition:box-shadow .45s ease}.art-card-frame:after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,rgba(237,232,226,calc(var(--veil-opacity, 0) * .75)),rgba(237,232,226,var(--veil-opacity, 0)) 52%,rgba(247,246,244,calc(var(--veil-opacity, 0) * .8)));opacity:1;pointer-events:none}.art-card-frame img{display:block;width:auto;height:auto;max-width:var(--card-max, 520px);max-height:48vh;-webkit-user-select:none;user-select:none}.art-card.is-active .art-card-frame{box-shadow:0 24px 70px #1a16141a}.art-card-flip{position:absolute;right:10px;bottom:10px;z-index:2;font-family:var(--font-sans);font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase;font-weight:300;color:var(--paper);background:#1a16148c;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:none;border-radius:var(--radius-sm);padding:6px 12px;cursor:pointer;opacity:0;transform:translateY(4px);transition:opacity .25s ease,transform .25s ease,background .2s ease}.art-card.is-active .art-card-flip{opacity:1;transform:none}.art-card-flip:hover,.art-card-flip.is-before{background:var(--crimson)}.art-card-cap{display:none}.art-card-num{font-family:var(--font-sans);font-size:var(--text-xs);font-weight:300;letter-spacing:.15em;color:var(--stone);font-variant-numeric:tabular-nums}.art-card-title{font-family:var(--font-serif);font-style:italic;font-size:clamp(.82rem,1vw,.95rem);color:var(--ink);white-space:nowrap}.art-card.is-active .art-card-title{color:var(--crimson)}.art-card-year{font-family:var(--font-sans);font-style:normal;font-size:var(--text-xs);color:var(--stone);margin-left:4px}.sketch-pile{position:absolute;top:51%;left:0;width:var(--card-max, 420px);transform:translate(-50%,-50%);transform-origin:center center;will-change:transform,opacity;contain:layout style;backface-visibility:hidden;cursor:pointer;text-align:center}.sketch-pile-stack{position:relative;width:100%;aspect-ratio:4 / 5;margin:0 auto}.sketch-pile-layer{position:absolute;inset:0;width:88%;height:88%;margin:auto;object-fit:cover;border-radius:var(--radius-sm);background:var(--paper);box-shadow:0 10px 30px #1a16142e;border:3px solid #fff;transform-origin:center bottom;transform:rotate(calc((var(--k) - 2) * 4deg)) translateY(calc(var(--k) * -2px));transition:transform .5s cubic-bezier(.2,.8,.2,1),box-shadow .5s ease}.sketch-pile.is-active .sketch-pile-layer,.sketch-pile:hover .sketch-pile-layer{transform:rotate(calc((var(--k) - 2) * 9deg)) translate(calc((var(--k) - 2) * 9px),calc(var(--k) * -5px))}.sketch-pile:hover .sketch-pile-layer{box-shadow:0 18px 44px #1a161442}.sketch-pile-cap{display:none;align-items:baseline;justify-content:center;gap:10px;margin:22px 0 0;opacity:0;transition:opacity .35s ease}.sketch-pile.is-active .sketch-pile-cap{opacity:1}.sketch-pile-hint{font-family:var(--font-sans);font-size:var(--text-xs);letter-spacing:.18em;text-transform:uppercase;color:var(--crimson);font-weight:300}.progress-rail{position:absolute;left:0;right:0;bottom:clamp(44px,6.5vh,64px);z-index:1400;padding:0 clamp(96px,11vw,150px) 0 clamp(28px,5vw,72px);pointer-events:none}.progress-rail>*{pointer-events:auto}.rail-count{position:absolute;left:clamp(28px,5vw,72px);bottom:14px;font-family:var(--font-sans);font-size:var(--text-xs);letter-spacing:.16em;color:var(--stone);font-weight:300;font-variant-numeric:tabular-nums;white-space:nowrap}.deck-caption{position:absolute;left:50%;bottom:clamp(78px,10vh,108px);transform:translate(-50%);z-index:1400;display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;max-width:86vw;pointer-events:none}.deck-caption-title{font-family:var(--font-serif);font-style:italic;font-size:clamp(1.05rem,1.6vw,1.4rem);color:var(--crimson);white-space:nowrap}.deck-caption-meta{font-family:var(--font-sans);font-size:var(--text-xs);letter-spacing:.16em;text-transform:uppercase;color:var(--stone);font-weight:300}.rail-line{position:relative;height:1px;background:var(--border)}.rail-fill{position:absolute;inset:0;background:var(--crimson);transform-origin:left center;transform:scaleX(0);transition:transform .1s linear}.rail-tick{position:absolute;top:50%;width:7px;height:7px;margin:-3.5px 0 0 -3.5px;border-radius:50%;background:var(--paper);border:1px solid var(--stone);padding:0;cursor:pointer;transition:transform .25s ease,background .25s ease,border-color .25s ease}.rail-tick:hover{transform:scale(1.4);border-color:var(--crimson)}.rail-tick.is-active{background:var(--crimson);border-color:var(--crimson);transform:scale(1.5)}.sketch-modal{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:clamp(24px,5vh,64px);background:#1a16148c;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);opacity:0;visibility:hidden;transition:opacity .4s ease,visibility .4s ease}.sketch-modal.open{opacity:1;visibility:visible}.sketch-modal-panel{width:min(960px,100%);max-height:100%;background:var(--paper);border-radius:var(--radius-md, 14px);box-shadow:0 40px 100px #0006;padding:clamp(24px,4vw,44px);overflow-y:auto;transform:translateY(20px) scale(.98);transition:transform .45s cubic-bezier(.2,.8,.2,1);scrollbar-width:thin}.sketch-modal.open .sketch-modal-panel{transform:none}.sketch-modal-head{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:28px}.sketch-modal-kicker{font-family:var(--font-sans);font-size:var(--text-xs);letter-spacing:.2em;text-transform:uppercase;color:var(--stone);font-weight:300}.sketch-modal-title{font-family:var(--font-serif);font-size:clamp(1.6rem,3vw,2.2rem);font-weight:400;margin-top:4px;color:var(--ink)}.sketch-modal-close{background:none;border:none;font-size:1.3rem;color:var(--stone);cursor:pointer;line-height:1;padding:8px;transition:color .2s ease,transform .2s ease}.sketch-modal-close:hover{color:var(--crimson);transform:rotate(90deg)}.sketch-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:20px}.sketch-cell{position:relative;border:none;padding:0;background:var(--paper);cursor:pointer;border-radius:var(--radius-sm);overflow:hidden;box-shadow:var(--shadow-card);aspect-ratio:4 / 5;animation:sketchIn .5s both;animation-delay:calc(var(--d) * .06s)}@keyframes sketchIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.sketch-cell img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease}.sketch-cell:hover img{transform:scale(1.05)}.sketch-cell-label{position:absolute;left:10px;bottom:8px;font-family:var(--font-serif);font-style:italic;font-size:.8rem;color:#fff;text-shadow:0 1px 4px rgba(0,0,0,.5)}@media(max-width:767px){.stage-head{max-width:70vw}.stage-head .page-h1{font-size:clamp(1.4rem,6vw,1.8rem)}.stage-hint-desktop{display:none}.stage-hint-mobile{display:inline}.art-card-frame img{max-height:34.5vh}.rail-title{max-width:40vw}.progress-rail{gap:12px}.sketch-grid{grid-template-columns:repeat(2,1fr);gap:12px}.rail-tick{display:none}}
