@font-face{font-family:'Cormorant Garamond';src:url('assets/fonts/CormorantGaramond-Variable.woff2') format('woff2');font-weight:300 700;font-style:normal;font-display:swap}
@font-face{font-family:'Cormorant Garamond';src:url('assets/fonts/CormorantGaramond-SemiBoldItalic.woff2') format('woff2');font-weight:600;font-style:italic;font-display:swap}
@font-face{font-family:Allura;src:url('assets/fonts/Allura-Regular.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:Lato;src:url('assets/fonts/Lato-Regular.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:Lato;src:url('assets/fonts/Lato-Bold.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap}
*{box-sizing:border-box}
html{background:var(--background);color:var(--text);font-family:var(--font-body);-webkit-text-size-adjust:100%}
body{margin:0}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer;color:inherit}
a,button{-webkit-tap-highlight-color:transparent}
button:focus-visible,a:focus-visible{outline:2px solid var(--brand);outline-offset:5px}
main:focus,.intro:focus{outline:none}
img{display:block;max-width:100%;height:auto}
p,h1{margin:0}
[hidden]{display:none!important}
::selection{background:var(--brand);color:var(--background)}
.sr-only{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.language-switcher{position:fixed;z-index:40;top:max(16px,env(safe-area-inset-top));right:max(20px,env(safe-area-inset-right));display:flex;align-items:center;border-bottom:1px solid var(--color-cobre);color:var(--brand)}
.language-flag{width:20px;height:14px;margin-left:8px;object-fit:cover;box-shadow:0 0 0 1px color-mix(in srgb,var(--brand) 18%,transparent)}
.language-switcher select{appearance:none;-webkit-appearance:none;min-width:54px;height:38px;padding:0 20px 0 7px;border:0;border-radius:0;background:linear-gradient(45deg,transparent 50%,currentColor 50%) calc(100% - 8px) 16px/5px 5px no-repeat,linear-gradient(135deg,currentColor 50%,transparent 50%) calc(100% - 4px) 16px/5px 5px no-repeat,var(--background);color:inherit;font:700 11px/1 Lato,sans-serif;letter-spacing:.1em;cursor:pointer}
.language-switcher:has(select:focus-visible){outline:2px solid var(--brand);outline-offset:4px}.language-switcher select:focus-visible{outline:0}
.shell{width:min(1200px,calc(100% - 64px));margin-inline:auto}
.skip-link{position:fixed;top:12px;left:12px;z-index:30;transform:translateY(-150%);padding:16px 24px;background:var(--brand);color:var(--background)}
.skip-link:focus{transform:translateY(0)}
.header{display:flex;align-items:center;justify-content:space-between;gap:32px;min-height:138px}
.brand{display:block;padding:16px;margin-left:-16px;flex-shrink:0}
.brand img{width:360px}
.header-note{font-size:12px;line-height:20px;color:var(--text-muted);margin-left:auto;margin-right:clamp(24px,6vw,100px)}
.header-note span{color:var(--brand)}
.quiet{display:inline-flex;align-items:center;justify-content:center;gap:20px;min-height:44px;font-size:14px;line-height:21px;border:0;background:none;padding:8px 0}
.quiet span[aria-hidden]{font-size:20px}
.contact-header span:first-child{border-bottom:1px solid var(--color-cobre);padding-bottom:4px}
.quiet:hover{color:var(--brand)}
.hero-heading{text-align:center;padding-top:4px}
h1{font:400 clamp(72px,8.5vw,122px)/1.08 Allura,cursive;letter-spacing:.005em;color:var(--brand);padding:.14em .1em .22em;overflow:visible}
h1 span{white-space:nowrap}
.hero-description{font-size:18px;line-height:28px;color:var(--text-muted);margin:27px auto 4px;max-width:580px}
.composition-link{display:inline-flex;align-items:center;justify-content:center;gap:18px;min-height:48px;font-size:14px;color:var(--brand);text-decoration:underline;text-decoration-color:var(--color-cobre);text-underline-offset:6px}
.composition-link span[aria-hidden]{font-size:21px;text-decoration:none}
.gallery{--card-width:300px;--card-height:400px;--radius:285px;--perspective:3000px;margin-top:14px}
.stage{height:475px;display:flex;align-items:center;justify-content:center;overflow:hidden;perspective:var(--perspective);touch-action:pan-y pinch-zoom;cursor:grab;user-select:none;-webkit-user-select:none}
.stage.dragging{cursor:grabbing}
.tilt{transform-style:preserve-3d;transform:rotateX(-7deg)}
.ring{position:relative;width:var(--card-width);height:var(--card-height);transform-style:preserve-3d;transform:translateZ(calc(-1 * var(--radius))) rotateY(-12deg)}
.photo-panel{position:absolute;inset:0;transform:rotateY(calc(var(--i) * 72deg)) translateZ(var(--radius));transform-style:preserve-3d}
.face{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;overflow:hidden;border-radius:3px;background:var(--background);border:1px solid var(--divider);isolation:isolate}
.face img{width:100%;height:100%;object-fit:contain;position:relative;z-index:1;pointer-events:none;-webkit-backface-visibility:hidden}
.back{transform:rotateY(180deg);background:var(--background)}
.photo-fallback{position:absolute;inset:0;display:none;align-items:center;justify-content:center;text-align:center;padding:24px;font:500 32px/1.1 var(--font-heading);color:var(--brand)}
.photo-fallback.is-visible{display:flex}
.gallery-bottom{display:grid;grid-template-columns:1fr 1fr 1fr;align-items:center;gap:24px;margin-top:3px;min-height:88px}
.gallery-invitation{font:400 21px/28px var(--font-heading);color:var(--text-muted)}
.piece-info{text-align:center}
.eyebrow{font-size:10px;line-height:18px;text-transform:uppercase;letter-spacing:.16em;color:var(--text-muted)}
.piece-counter{display:flex;align-items:center;justify-content:center;gap:12px}
.counter-line{height:1px;width:28px;background:var(--color-cobre)}
.piece-link{display:inline-flex;align-items:center;justify-content:center;gap:14px;min-height:44px;font-size:14px;color:var(--brand)}
.piece-link:hover{text-decoration:underline;text-underline-offset:5px}
.piece-link span[aria-hidden]{font-size:18px}
.gallery-controls{display:flex;justify-content:flex-end;gap:10px}
.icon-button{display:grid;place-items:center;border:1px solid transparent;border-radius:50%;background:none;width:44px;height:44px;padding:11px;color:var(--brand);transition:background .2s,border-color .2s}
.icon-button:hover{border-color:var(--divider);background:#F1EAE0}
.icon-button svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.4}
#pause{border-color:var(--divider)}
.play-symbol{display:none}
#pause[data-paused] .play-symbol{display:block}
#pause[data-paused] .pause-symbol{display:none}
.closing-line{display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid var(--divider);margin-top:24px;padding:14px 0 20px;color:var(--text-muted)}
.closing-line>p{font-size:12px;line-height:21px}
.replay{font-size:12px;gap:12px}
.no-script-note{text-align:center;padding:20px;font-size:14px}
.intro{display:none;position:fixed;inset:0;z-index:20;background:var(--background);align-items:center;justify-content:center;flex-direction:column;overflow:hidden}
html[data-intro] .intro{display:flex}
html[data-intro] #site{opacity:0}
.intro-skip{position:relative;color:var(--brand);margin-top:16px;min-height:48px;font-size:15px;gap:24px;border-bottom:1px solid var(--color-cobre);padding-inline:2px}
.intro-hint{font-size:12px;line-height:20px;color:var(--text-muted);margin-top:14px}
.intro-words{display:flex;flex-direction:column;align-items:center;text-align:center;color:var(--brand);padding:24px;perspective:600px}
.intro-line{display:block;white-space:nowrap}
.intro-brand{font:italic 600 clamp(46px,6vw,82px)/1 'Cormorant Garamond',serif;letter-spacing:-.035em}
.intro-tagline{font:400 clamp(52px,7vw,98px)/1.18 Allura,cursive;letter-spacing:.005em;margin-top:4px;padding:.08em .12em .16em;overflow:visible;-webkit-font-smoothing:antialiased;animation:letter-in 950ms 520ms cubic-bezier(.19,1,.22,1) both;transform-origin:center bottom}
.intro-tagline br{display:none}
.intro-word{display:inline-block;white-space:nowrap}
.intro-letter{display:inline-block;animation:letter-in 850ms cubic-bezier(.19,1,.22,1) both;animation-delay:calc(var(--letter) * 42ms);transform-origin:center bottom}
.intro-foot{position:absolute;left:24px;right:24px;bottom:36px;text-align:center;font-size:11px}
html[data-intro='leaving'] .intro{animation:cover-out 950ms 250ms cubic-bezier(.4,0,.2,1) both}
html[data-intro='leaving'] .intro-words,html[data-intro='leaving'] .intro-skip,html[data-intro='leaving'] .intro-hint,html[data-intro='leaving'] .intro-foot{animation:cover-out 550ms ease-in-out both}
html[data-intro='leaving'] #site{animation:site-in 950ms 250ms cubic-bezier(.4,0,.2,1) both}
@keyframes letter-in{from{opacity:0;filter:blur(9px);transform:translateY(36px) rotateX(-85deg)}to{opacity:1;filter:blur(0);transform:translateY(0) rotateX(0)}}
@keyframes cover-out{from{opacity:1}to{opacity:0}}
@keyframes site-in{from{opacity:0}to{opacity:1}}
@media(min-width:1500px){.hero-heading{padding-top:18px}.gallery{margin-top:20px}.stage{height:495px}}
@media(max-width:1000px){.header-note{margin-right:16px}.header{gap:20px}.gallery{--card-width:270px;--card-height:360px;--radius:252px}.stage{height:430px}.gallery-invitation{font-size:18px}}
@media(max-width:800px){.header-note{display:none}.gallery-bottom{grid-template-columns:1fr auto;max-width:660px}.gallery-invitation{display:none}.piece-info{text-align:left}.piece-counter,.piece-link{justify-content:flex-start}}
@media(max-width:680px){
 .shell{width:calc(100% - 40px)}
 .header{min-height:108px;gap:12px}
 .brand{padding:8px;margin-left:-8px}
 .brand img{width:clamp(140px,40vw,180px);height:auto}
 .contact-header{font-size:12px;gap:12px}
 .hero-heading{padding-top:8px}
 h1{font-size:clamp(52px,13vw,68px);line-height:1.08;letter-spacing:.005em}
 h1>span{display:block}
 .hero-description{font-size:16px;line-height:25px;max-width:360px;margin-top:24px}
 .desktop-break{display:none}
 .composition-link{font-size:13px;gap:12px;margin-top:4px}
 .gallery{--card-width:190px;--card-height:253.333px;--radius:155px;--perspective:1600px;margin-top:12px}
 .stage{height:318px}
 .gallery-bottom{gap:12px;margin-top:0;min-height:80px}
 .gallery-controls{gap:0}
 .piece-link{font-size:12px;gap:8px}
 .gallery-controls .icon-button{width:44px;height:44px}
 .eyebrow{font-size:9px}
 .closing-line{margin-top:18px;padding-block:18px;align-items:flex-start}
 .closing-line>p{max-width:165px;font-size:11px}
 .replay{font-size:10px;min-height:44px;gap:6px;white-space:nowrap;padding-top:0}
 .intro-words{max-width:100%;padding-inline:16px}
 .intro-brand{font-size:clamp(40px,12vw,54px)}
 .intro-tagline{display:flex;flex-direction:column;align-items:center;gap:0;font-size:clamp(46px,12.5vw,58px);line-height:1.18;white-space:normal;max-width:370px;padding:.14em .18em .28em}
 .intro-tagline br{display:none}
 .intro-tagline>span{display:block;white-space:nowrap}
 .intro-skip{font-size:14px;gap:20px;margin-top:12px}
 .intro-foot{font-size:10px;bottom:28px}
 .language-switcher{top:max(12px,env(safe-area-inset-top));right:max(14px,env(safe-area-inset-right))}
}
@media(max-width:360px){.gallery{--card-width:166px;--card-height:221.333px;--radius:134px}.stage{height:284px}.piece-link{font-size:11px;gap:4px}.gallery-controls{gap:0}.gallery-bottom{gap:0}.contact-header{font-size:11px;gap:8px}.hero-description{font-size:15px}.intro-brand{font-size:38px}.intro-tagline{font-size:44px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.intro,.replay,#pause{display:none!important}}
