:root{--ink:#0A0A0A;--ink-2:#111010;--ivory:#F4EFE6;--dim:#9A948A;--faint:#6A655C;--gold:#C6A66B;--gold-lo:#8C7648;--line:#26241F;--serif:"Fraunces",Georgia,serif;--sans:"Hanken Grotesk","Segoe UI",system-ui,sans-serif;--mono:"IBM Plex Mono",ui-monospace,monospace}*{box-sizing:border-box}html,body{margin:0;background:var(--ink);color:var(--ivory);font-family:var(--sans);-webkit-font-smoothing:antialiased}body{min-height:100vh;overflow-x:hidden}a{color:var(--gold)}.vignette{position:fixed;inset:0;pointer-events:none;z-index:0;background:radial-gradient(120% 80% at 50% 0%,rgba(198,166,107,.05),transparent 55%),radial-gradient(120% 100% at 50% 120%,rgba(0,0,0,.7),transparent 60%)}.bar{position:sticky;top:0;z-index:40;display:flex;align-items:center;justify-content:space-between;padding:14px clamp(16px,4vw,44px);background:#0a0a0ad1;backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}.mark{font-family:var(--mono);font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--dim);display:flex;align-items:center;gap:11px}.mark .dot{width:7px;height:7px;border-radius:50%;background:var(--gold);box-shadow:0 0 12px var(--gold)}.bar-right{display:flex;align-items:center;gap:8px 18px}.tour{font:inherit;font-family:var(--mono);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);background:var(--gold);border:1px solid var(--gold);border-radius:99px;padding:8px 16px;cursor:pointer;transition:background .2s,color .2s,box-shadow .2s}.tour:hover{box-shadow:0 0 20px #c6a66b66}.tour.on{background:transparent;color:var(--gold)}.tour .tri{display:inline-block;transform:translateY(-.5px)}.exit{font-family:var(--mono);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);text-decoration:none}.exit:hover{color:var(--ivory)}.intro{position:relative;z-index:1;text-align:center;padding:clamp(48px,9vw,110px) 22px clamp(24px,4vw,44px)}.intro h1{font-family:var(--serif);font-weight:500;font-size:clamp(2.4rem,7vw,4.6rem);letter-spacing:-.02em;margin:0;color:var(--ivory);text-shadow:0 1px 40px rgba(198,166,107,.12)}.intro p{font-family:var(--serif);font-style:italic;font-size:clamp(1rem,2.2vw,1.28rem);line-height:1.6;color:var(--dim);max-width:52ch;margin:18px auto 0}.wall{position:relative;z-index:1;column-count:3;column-gap:clamp(16px,2.2vw,30px);padding:clamp(18px,4vw,54px) clamp(16px,4vw,54px) 40px;max-width:1400px;margin:0 auto}@media(max-width:1080px){.wall{column-count:2}}@media(max-width:620px){.wall{column-count:1}}.frame{position:relative;margin:0 0 clamp(16px,2.2vw,30px);break-inside:avoid;cursor:pointer;outline:none;transition:transform .4s cubic-bezier(.2,.7,.2,1)}.frame .mat{position:relative;background:linear-gradient(160deg,#1a1814,#0e0d0b);border:1px solid var(--line);border-radius:3px;padding:clamp(8px,1vw,14px);overflow:hidden;box-shadow:0 2px 4px #00000080,0 20px 40px -24px #000000e6;transition:box-shadow .4s,border-color .4s}.mat:after{content:"";position:absolute;inset:0;border-radius:3px;pointer-events:none;box-shadow:inset 0 0 0 1px #c6a66b1a}.mat img{width:100%;height:auto;display:block;border-radius:1px;background:#f7f3ea;filter:brightness(.92) contrast(1.02);transition:filter .4s}.plaque{position:absolute;left:50%;bottom:clamp(8px,1vw,14px);transform:translate(-50%);font-family:var(--mono);font-size:.58rem;letter-spacing:.12em;color:var(--gold);background:#0a0a0ab8;border:1px solid rgba(198,166,107,.22);padding:2px 9px;border-radius:99px;opacity:0;transition:opacity .3s;pointer-events:none}.tag{display:block;text-align:center;font-family:var(--mono);font-size:.62rem;letter-spacing:.05em;color:var(--faint);opacity:.6;transition:opacity .3s,color .3s;padding:9px 4px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.frame:hover,.frame:focus-visible{transform:translateY(-4px)}.frame:hover .mat,.frame:focus-visible .mat{border-color:#c6a66b80;box-shadow:0 0 0 1px #c6a66b40,0 10px 30px #0009,0 0 60px -8px #c6a66b59}.frame:hover .mat img,.frame:focus-visible .mat img{filter:brightness(1.05) contrast(1.04)}.frame:hover .plaque,.frame:focus-visible .plaque{opacity:1}.frame:hover .tag,.frame:focus-visible .tag{opacity:1;color:var(--gold)}.foot{position:relative;z-index:1;display:flex;flex-wrap:wrap;gap:10px 20px;justify-content:space-between;padding:26px clamp(16px,4vw,54px) 120px;border-top:1px solid var(--line);margin-top:20px;font-family:var(--mono);font-size:.66rem;letter-spacing:.05em;color:var(--faint)}.foot a{color:var(--dim);text-decoration:none}.foot a:hover{color:var(--gold)}.lb[hidden]{display:none}.lb{position:fixed;inset:0;z-index:60;display:flex;align-items:center;justify-content:center;padding:clamp(14px,3vw,40px)}.lb-scrim{position:absolute;inset:0;background:#060606b8;backdrop-filter:blur(10px) saturate(.8);-webkit-backdrop-filter:blur(10px) saturate(.8);opacity:0;transition:opacity .3s ease}.lb.open .lb-scrim{opacity:1}.lb-card{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,.9fr);gap:0;width:min(1180px,100%);max-height:88vh;background:linear-gradient(155deg,#141210,#0b0a09);border:1px solid var(--line);border-radius:6px;overflow:hidden;box-shadow:0 40px 100px -30px #000000e6,0 0 0 1px #c6a66b14;opacity:0;transform:translateY(14px) scale(.985);transition:opacity .34s ease,transform .34s cubic-bezier(.2,.7,.2,1)}.lb.open .lb-card{opacity:1;transform:none}.lb-figure{margin:0;display:flex;align-items:center;justify-content:center;padding:clamp(14px,2vw,26px);background:radial-gradient(120% 120% at 50% 40%,#131110,#0a0908);min-height:0}.lb-figure img{max-width:100%;max-height:calc(88vh - 52px);object-fit:contain;border-radius:2px;box-shadow:0 10px 40px -10px #000c,0 0 0 1px #c6a66b24,0 0 70px -20px #c6a66b47;opacity:0;transition:opacity .4s ease;background:#f7f3ea}.lb-figure img.ready{opacity:1}.lb-info{padding:clamp(20px,2.4vw,32px) clamp(20px,2.4vw,34px);border-left:1px solid var(--line);overflow-y:auto;overscroll-behavior:contain}.lb-x{position:absolute;top:10px;right:12px;z-index:3;width:34px;height:34px;border-radius:50%;background:#0a0a0a99;border:1px solid var(--line);color:var(--dim);font-size:.9rem;cursor:pointer;transition:color .2s,border-color .2s}.lb-x:hover{color:var(--ivory);border-color:var(--gold)}.lb-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.p-year{font-family:var(--mono);font-size:.84rem;letter-spacing:.14em;color:var(--gold)}.p-badge{font-family:var(--mono);font-size:.56rem;letter-spacing:.1em;text-transform:uppercase;color:var(--gold-lo);border:1px solid var(--gold-lo);border-radius:99px;padding:3px 10px}.p-count{font-family:var(--mono);font-size:.64rem;color:var(--faint);margin-left:auto}.p-title{font-family:var(--serif);font-weight:500;font-size:clamp(1.4rem,2.6vw,2rem);color:var(--ivory);margin:12px 0 2px;letter-spacing:-.01em;line-height:1.14}.p-maker{font-family:var(--serif);font-style:italic;font-size:1rem;color:var(--dim);margin:0 0 16px}.p-shows{font-size:.98rem;line-height:1.6;color:var(--ivory);margin:0 0 20px}.p-block{margin:0 0 16px}.p-lbl{display:block;font-family:var(--mono);font-size:.56rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);margin-bottom:6px}.p-block p{margin:0;font-size:.9rem;line-height:1.6;color:var(--dim)}.lb-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:2;width:46px;height:46px;border-radius:50%;background:#0a0a0a8c;border:1px solid var(--line);color:var(--ivory);font-size:1.1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s,border-color .2s,color .2s}.lb-arrow:hover{background:#c6a66b29;border-color:var(--gold);color:var(--gold)}.lb-arrow.prev{left:clamp(8px,2vw,26px)}.lb-arrow.next{right:clamp(8px,2vw,26px)}.lb-progress{position:absolute;left:0;right:0;bottom:0;z-index:2;height:2px;background:#ffffff0f}.lb-progress i{display:block;height:100%;width:0;background:var(--gold)}body.locked{overflow:hidden}@media(max-width:820px){.lb-card{grid-template-columns:1fr;grid-template-rows:auto 1fr;max-height:90vh}.lb-figure img{max-height:46vh}.lb-info{border-left:0;border-top:1px solid var(--line)}.lb-arrow{top:auto;bottom:14px;transform:none}}@media(max-width:560px){.wall{grid-template-columns:repeat(4,1fr);grid-auto-rows:88px}.frame,.frame.wide,.frame.tall{grid-column:span 2;grid-row:span 2}.frame.tall{grid-row:span 3}}@media(prefers-reduced-motion:reduce){*{transition-duration:.001ms!important}.mat img{transform:none!important}}
