@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,500;0,600;0,700;1,500;1,600&display=swap');
.subscribe{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,440px);gap:clamp(28px,6vw,100px);align-items:center;padding:clamp(65px,8vw,120px) clamp(24px,8vw,140px);border-top:1px solid rgba(198,168,108,.3);background:#1c1013}.subscribe h2{font:500 clamp(32px,4vw,55px)/1.1 Georgia,serif;margin:12px 0 16px}.subscribe p{line-height:1.6;max-width:530px}.subscribe form label{display:block;font-size:14px;margin-bottom:10px}.subscribe-fields{display:flex;gap:10px}.subscribe-fields input{min-width:0;flex:1;border:1px solid #9c805a;background:#100b0a;color:#fff;padding:15px;font:inherit;font-size:16px}.subscribe-fields .button{white-space:nowrap;border:0;cursor:pointer;font:700 12px/1 'DM Sans',sans-serif;letter-spacing:.12em}.subscribe-fields button:disabled{opacity:.6;cursor:wait}#subscribe-status{font-size:14px;color:#d8c5a5;min-height:1.6em;margin:10px 0 0}@media(max-width:800px){.subscribe{grid-template-columns:1fr}}@media(max-width:520px){.subscribe-fields{flex-direction:column}.subscribe-fields .button{width:100%}}
:root{--ink:#100b0a;--red:#9a251e;--cream:#f2e6cf;--gold:#c6a86c;--line:rgba(242,230,207,.25)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--ink);color:var(--cream);font-family:"DM Sans",Arial,sans-serif}a{color:inherit;text-decoration:none}img{display:block;width:100%}button,a{ -webkit-tap-highlight-color:transparent}a:focus-visible{outline:2px solid var(--gold);outline-offset:5px}.skip{position:absolute;left:-999px;z-index:100}.skip:focus{left:12px;top:12px;padding:12px;background:white;color:black}.grain{position:fixed;inset:0;pointer-events:none;z-index:90;opacity:.12;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.95' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.48'/%3E%3C/svg%3E")}
.masthead{height:84px;padding:0 clamp(24px,5vw,88px);display:flex;align-items:center;justify-content:space-between;gap:28px;position:relative;z-index:20;border-bottom:1px solid var(--line);background:#100b0a}.wordmark{font:700 25px/1 Georgia,serif;letter-spacing:-1px;white-space:nowrap}.wordmark em{font-style:normal;color:var(--gold)}.wordmark-star{font-size:20px;color:var(--red);margin-right:6px}.masthead nav{display:flex;gap:clamp(18px,3vw,48px)}.masthead nav a,.header-book{font-size:12px;letter-spacing:.16em;text-transform:uppercase;font-weight:700}.masthead nav a{color:#d1c5b1;transition:color .25s}.masthead nav a:hover{color:white}.header-book{border:1px solid var(--gold);padding:14px 17px;color:var(--gold);white-space:nowrap;transition:.2s}.header-book:hover{background:var(--gold);color:var(--ink)}.header-book span{margin-left:12px}
.hero{position:relative;min-height:825px;overflow:hidden;background:radial-gradient(ellipse at 50% 51%,#54201b 0%,#261212 41%,#100b0a 73%);isolation:isolate}.hero:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent 0,transparent 18%,rgba(0,0,0,.14) 18.3%,transparent 19.3%);opacity:.5}.stage-glow{position:absolute;top:12%;left:24%;width:52%;height:70%;background:radial-gradient(ellipse,#a04a2f88,transparent 65%);filter:blur(40px)}.hero-heading{position:relative;text-align:center;z-index:8;margin-top:48px}.eyebrow{font-size:11px;letter-spacing:.26em;font-weight:700;color:var(--gold);margin:0 0 22px}.hero-heading h1{font:600 clamp(46px,6.4vw,97px)/.91 "Playfair Display",Georgia,serif;letter-spacing:-.06em;margin:0;text-shadow:0 5px 40px #100b0a}.hero-heading h1 span{font-style:italic;color:#ebd9b5}.hero-heading>p:last-child{font-size:15px;color:#ddc6ad;margin:20px 0 0}.hero-heading strong{color:#fff}
.collage{position:absolute;inset:180px 0 55px;max-width:1440px;margin:auto;pointer-events:none}.collage>*{pointer-events:auto}.central-portrait{position:absolute;left:50%;top:18%;width:min(46vw,600px);height:min(49vw,590px);min-height:380px;transform:translate(calc(-50% + var(--px,0px)),var(--py,0px));transition:transform .55s ease;z-index:3;clip-path:polygon(12% 1%,86% 1%,100% 12%,100% 90%,80% 100%,15% 100%,0 88%,0 12%);box-shadow:0 0 80px #000}.central-portrait img{height:100%;object-fit:cover;object-position:66% center;filter:contrast(1.12) saturate(.74) sepia(.08)}.portrait-shade{position:absolute;inset:0;background:linear-gradient(0deg,#11090a 0%,transparent 42%),linear-gradient(90deg,#100b0a88,transparent 25%,transparent 76%,#100b0a88)}
.floating{position:absolute;z-index:5;padding:8px 8px 32px;background:#e5d7ba;box-shadow:0 20px 60px #000a;transition:transform .5s ease}.floating img{width:100%;height:100%;object-fit:cover;filter:saturate(.8) contrast(1.07)}.floating-left{left:8%;top:33%;width:clamp(145px,19vw,256px);height:clamp(220px,26vw,346px);transform:translate(var(--px,0px),var(--py,0px)) rotate(-10deg);animation:bob-left 7s ease-in-out infinite}.floating-left img{object-position:65% center}.floating-right{right:7%;top:26%;width:clamp(150px,18vw,240px);height:clamp(215px,26vw,340px);transform:translate(var(--px,0px),var(--py,0px)) rotate(9deg);animation:bob-right 8s ease-in-out infinite}.floating-right img{object-position:center 17%}.photo-label{position:absolute;bottom:9px;left:12px;color:#35251e;font-size:9px;letter-spacing:.14em;font-weight:700}.seal{position:absolute;z-index:7;left:50%;bottom:2%;width:184px;height:184px;border-radius:50%;background:#cdb584;border:8px solid #8d271d;outline:2px solid #d1ac65;color:#27110e;display:flex;flex-direction:column;align-items:center;justify-content:center;transform:translate(-50%,0) rotate(-9deg);box-shadow:0 12px 35px #000a;text-align:center;animation:seal-in 1s .3s both}.seal span{font:700 37px/1 Georgia,serif;letter-spacing:-.09em}.seal small{border-top:1px solid #4b2922;margin-top:8px;padding-top:8px;font-size:10px;letter-spacing:.13em;line-height:1.4;font-weight:700}.ticket{position:absolute;left:1%;top:3%;z-index:2;background:#e4c996;color:#4e1e16;border:2px solid #a57442;width:170px;height:110px;padding:14px;transform:translate(var(--px,0px),var(--py,0px)) rotate(-14deg);box-shadow:0 10px 30px #0007;animation:drift 8s ease-in-out infinite}.ticket:after{content:"";position:absolute;inset:7px;border:1px dashed #a57442}.ticket span,.ticket small{font-size:9px;letter-spacing:.2em}.ticket strong{display:block;font:700 25px/.9 Georgia,serif;margin:8px 0 3px}.playing-card{position:absolute;right:4%;bottom:11%;z-index:4;width:130px;height:185px;border-radius:8px;background:#e9dec8;color:#251b19;box-shadow:0 12px 35px #000a;transform:translate(var(--px,0px),var(--py,0px)) rotate(16deg);padding:10px;display:flex;flex-direction:column;justify-content:space-between;font:700 23px Georgia,serif;animation:drift 7s 1s ease-in-out infinite}.playing-card strong{font:70px Georgia,serif;align-self:center}.playing-card span:last-child{align-self:flex-end;transform:rotate(180deg)}.orbit{position:absolute;border:1px solid rgba(218,180,117,.25);border-radius:50%;width:860px;height:560px;left:50%;top:17%;transform:translateX(-50%) rotate(-18deg)}.orbit-two{transform:translateX(-50%) rotate(19deg);width:950px;border-style:dashed;opacity:.5}.spark{position:absolute;color:var(--gold);font-size:40px;z-index:6;animation:twinkle 3s infinite}.spark-one{left:26%;top:17%}.spark-two{right:26%;bottom:17%;animation-delay:1s}.hero-bottom{position:absolute;z-index:8;bottom:20px;left:5%;right:5%;display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:16px;font-size:10px;letter-spacing:.2em;color:var(--gold);font-weight:700}.hero-bottom a{color:white;font-size:12px}.hero-bottom a span{margin-left:12px}
.section-pad{padding:clamp(80px,9vw,150px) clamp(24px,8vw,135px)}h2{font:600 clamp(48px,6vw,88px)/1.06 "Playfair Display",Georgia,serif;letter-spacing:-.055em;margin:0}h2 i{color:var(--gold);font-weight:500}.world{background:#e6dbc4;color:#241410}.world .eyebrow{color:var(--red)}.section-intro{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:end;margin-bottom:55px}.section-intro .eyebrow{grid-column:1/-1;margin:0}.section-intro p:last-child{max-width:350px;line-height:1.7;font-size:17px;justify-self:end}.world h2 i{color:var(--red)}.world-grid{display:grid;grid-template-columns:1.55fr 1fr;gap:22px}.world-grid figure{margin:0;position:relative;overflow:hidden;background:#281715}.world-grid img{height:clamp(330px,43vw,600px);object-fit:cover;transition:transform .7s}.world-grid figure:hover img{transform:scale(1.035)}.world-feature img{object-position:62% center}.world-trunk img{object-fit:cover}.world-grid figcaption{position:absolute;bottom:0;left:0;right:0;padding:35px 25px 20px;background:linear-gradient(transparent,#120c0bdc);color:#fff;font-size:11px;letter-spacing:.19em;font-weight:700}.world-grid figcaption span{color:var(--gold)}
.performances{background:#25110f;background-image:radial-gradient(circle at 70% 20%,#5b231c 0%,transparent 40%)}.performances h2{margin-bottom:70px}.show-list{border-top:1px solid var(--line)}.show-list article{display:grid;grid-template-columns:90px 1fr 80px;gap:20px;align-items:start;border-bottom:1px solid var(--line);padding:32px 0}.show-num{font-size:12px;letter-spacing:.15em;color:var(--gold);padding-top:11px}.show-list h3{font:500 clamp(28px,3vw,42px) "Playfair Display",Georgia,serif;letter-spacing:-.03em;margin:0 0 8px}.show-list p{max-width:590px;color:#c9b9ac;font-size:16px;line-height:1.65;margin:0}.show-mark{font:42px Georgia,serif;color:var(--gold);text-align:right}
.about{display:grid;grid-template-columns:1fr 1fr;gap:clamp(45px,8vw,150px);align-items:center;background:#16100f}.about-photo{height:650px;max-height:70vw;position:relative}.about-photo:before{content:"";position:absolute;inset:-14px 14px 14px -14px;border:1px solid var(--gold)}.about-photo img{height:100%;object-fit:cover;object-position:center 45%;filter:saturate(.7)}.about h2{margin-bottom:20px}.about-lead{font:italic 500 28px/1.25 "Playfair Display",Georgia,serif;color:var(--gold)}.about-copy>p:not(.eyebrow):not(.credits):not(.about-lead){font-size:16px;line-height:1.75;color:#d8cbbd;max-width:530px}.credits{font-size:11px;letter-spacing:.1em;line-height:1.9;color:#aa9b8a;border-top:1px solid var(--line);padding-top:23px;margin:30px 0}.button{display:inline-flex;gap:25px;justify-content:space-between;align-items:center;padding:18px 23px;background:var(--red);color:white;font-size:12px;letter-spacing:.16em;font-weight:700;transition:background .2s,transform .2s}.button:hover{background:#bd3527;transform:translateY(-2px)}
.finale{text-align:center;padding:120px 24px 100px;background:#9b291f;color:#fff}.finale .eyebrow{color:#f4d5a1}.finale h2{font-size:clamp(60px,9vw,142px);line-height:.9;margin:0 0 50px}.finale h2 i{color:#f1d2a5}.button-light{background:var(--cream);color:#30120e}.button-light:hover{background:white}.finale>p:last-child{font-size:12px;letter-spacing:.13em;margin:45px 0 0;color:#f0cfc5}.finale>p:last-child a{text-decoration:underline;text-underline-offset:4px}footer{display:flex;justify-content:space-between;gap:20px;padding:28px clamp(24px,5vw,88px);font-size:10px;letter-spacing:.16em;font-weight:700;color:#a99b87}
@keyframes bob-left{50%{transform:translate(var(--px,0px),calc(var(--py,0px) - 12px)) rotate(-8deg)}}@keyframes bob-right{50%{transform:translate(var(--px,0px),calc(var(--py,0px) + 12px)) rotate(7deg)}}@keyframes drift{50%{translate:0 -10px}}@keyframes twinkle{50%{opacity:.35;scale:.75}}@keyframes seal-in{from{opacity:0;scale:.6}to{opacity:1;scale:1}}
@media(max-width:800px){.masthead{height:68px;padding:0 20px}.masthead nav{display:none}.header-book{font-size:10px;padding:12px}.wordmark{font-size:20px}.hero{min-height:760px}.hero-heading{margin-top:64px;padding:0 14px}.hero-heading h1{font-size:clamp(44px,10vw,70px)}.hero-heading>p:last-child{font-size:14px}.collage{top:180px;bottom:65px}.central-portrait{width:77vw;height:500px;min-height:0;top:12%}.floating-left{top:38%;left:-8%;width:30vw;height:230px}.floating-right{right:-8%;top:23%;width:30vw;height:240px}.ticket{left:2%;top:3%;scale:.7;transform-origin:left top}.playing-card{right:1%;bottom:6%;scale:.65;transform-origin:right bottom}.seal{width:134px;height:134px;border-width:6px;bottom:0}.seal span{font-size:28px}.seal small{font-size:8px}.orbit{width:600px;height:520px}.hero-bottom span:last-child{display:none}.section-intro{display:block}.section-intro .eyebrow{margin-bottom:20px}.section-intro p:last-child{max-width:550px;margin-top:25px}.about{grid-template-columns:1fr;gap:65px}.about-photo{height:520px;max-height:none}.about-copy{max-width:650px}.world-grid{grid-template-columns:1fr}.world-grid img{height:390px}}
@media(max-width:520px){.hero{min-height:690px}.hero-heading{margin-top:42px}.hero-heading h1{font-size:45px}.hero-heading .eyebrow{font-size:9px}.hero-heading>p:last-child{max-width:250px;margin:17px auto 0;line-height:1.5}.collage{top:172px}.central-portrait{width:85vw;height:440px;top:14%}.floating{padding:5px 5px 20px}.floating-left{top:37%;left:-9%;width:35vw;height:185px}.floating-right{right:-9%;top:26%;width:34vw;height:194px}.photo-label{font-size:6px;bottom:6px;left:7px}.seal{bottom:7%;width:112px;height:112px}.seal span{font-size:23px}.ticket{scale:.55}.playing-card{scale:.5;right:-2%;bottom:16%}.spark-one{left:9%}.spark-two{right:6%}.hero-bottom{left:20px;right:20px;font-size:8px}.hero-bottom a{font-size:9px}.section-pad{padding:80px 24px}.world-grid img{height:300px}.performances h2{margin-bottom:42px}.show-list article{grid-template-columns:35px 1fr 25px;gap:12px;padding:25px 0}.show-list h3{font-size:27px}.show-list p{font-size:14px}.show-mark{font-size:22px}.about-photo{height:440px}.finale{padding:95px 20px}.finale h2{font-size:59px}footer{flex-wrap:wrap}footer span:nth-child(2){display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}

/* The photographs are the front of four playable cards. */
.hero{min-height:940px}
.collage{inset:190px 0 105px}
.floating{padding:0;background:none;box-shadow:none;perspective:1100px}
.floating-left{top:29%;left:7%;width:clamp(145px,18vw,245px);height:clamp(215px,25vw,330px)}
.floating-right{top:25%;right:7%;width:clamp(150px,18vw,245px);height:clamp(215px,25vw,330px)}
.floating-third{left:17%;bottom:2%;width:clamp(100px,11vw,150px);height:clamp(150px,16vw,208px);transform:translate(var(--px,0px),var(--py,0px)) rotate(12deg);animation:bob-third 9s ease-in-out infinite}
.floating-fourth{right:16%;bottom:1%;width:clamp(100px,11vw,150px);height:clamp(150px,16vw,208px);transform:translate(var(--px,0px),var(--py,0px)) rotate(-13deg);animation:bob-fourth 8s ease-in-out infinite}
@keyframes bob-third{50%{transform:translate(var(--px,0px),calc(var(--py,0px) - 12px)) rotate(10deg)}}
@keyframes bob-fourth{50%{transform:translate(var(--px,0px),calc(var(--py,0px) + 10px)) rotate(-11deg)}}
.flip-card{border:0;background:none;padding:0;width:100%;height:100%;display:block;cursor:pointer;color:inherit;text-align:left}
.flip-card:focus-visible{outline:3px solid var(--gold);outline-offset:8px}
.flip-inner{width:100%;height:100%;display:block;position:relative;transform-style:preserve-3d;transition:transform .85s cubic-bezier(.2,.7,.2,1)}
.flip-card.is-flipped .flip-inner{transform:rotateY(180deg)}
.photo-face,.card-face{position:absolute;inset:0;display:block;backface-visibility:hidden;overflow:hidden;background:#e5d7ba;box-shadow:0 20px 60px #000b}
.photo-face{padding:8px 8px 29px}.photo-face img{width:100%;height:100%;object-fit:cover;filter:saturate(.8) contrast(1.07)}
.floating-left .photo-face img,.floating-fourth .photo-face img{object-position:65% center}.floating-right .photo-face img{object-position:center 18%}.floating-third .photo-face img{object-position:64% center}
.card-face{transform:rotateY(180deg);border:7px solid #ede2cf;border-radius:8px;background:#f2e9d9;color:#181514;display:flex;align-items:center;justify-content:center;flex-direction:column;font-family:Georgia,serif;text-align:center}
.card-face.red{color:#aa2d25}.card-face:before{content:"";position:absolute;inset:7px;border:1px solid currentColor;opacity:.35;border-radius:3px}
.corner{position:absolute;top:9px;left:9px;font-weight:700;font-size:clamp(16px,2vw,25px);line-height:.92}.corner.bottom{top:auto;left:auto;right:9px;bottom:9px;transform:rotate(180deg)}
.pip{font-size:clamp(75px,10vw,145px);line-height:1}.pip-three{font-size:clamp(35px,4.4vw,65px);line-height:.8}.pip-four{font-size:clamp(30px,4vw,58px);line-height:1.15;white-space:nowrap}.card-name{font:700 9px "DM Sans",Arial,sans-serif;letter-spacing:.14em;margin-top:3px}
.floating-third .corner,.floating-fourth .corner{font-size:16px}.floating-third .pip,.floating-fourth .pip{font-size:39px}.floating-third .pip-three{font-size:26px}.floating-fourth .pip-four{font-size:23px}.floating-third .card-name,.floating-fourth .card-name{font-size:6px}
.suit-wall{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0}.suit-wall span{position:absolute;font:clamp(75px,12vw,180px) Georgia,serif;color:#e1b387;opacity:.045;filter:blur(4px);animation:suit-breathe 10s ease-in-out infinite}.suit-wall span:nth-child(1){left:3%;top:6%;animation-delay:-1s}.suit-wall span:nth-child(2){left:21%;top:25%;animation-delay:-4s}.suit-wall span:nth-child(3){left:39%;top:4%;animation-delay:-7s}.suit-wall span:nth-child(4){left:77%;top:8%;animation-delay:-2s}.suit-wall span:nth-child(5){left:88%;top:35%;animation-delay:-5s}.suit-wall span:nth-child(6){left:6%;top:62%;animation-delay:-8s}.suit-wall span:nth-child(7){left:52%;top:61%;animation-delay:-3s}.suit-wall span:nth-child(8){left:72%;top:74%;animation-delay:-6s}.suit-wall span:nth-child(9){left:30%;top:80%;animation-delay:-9s}.suit-wall span:nth-child(10){left:59%;top:31%;animation-delay:-1.5s}.suit-wall span:nth-child(11){left:13%;top:43%;animation-delay:-4.5s}.suit-wall span:nth-child(12){left:91%;top:83%;animation-delay:-7.5s}
@keyframes suit-breathe{0%,100%{opacity:.025;filter:blur(5px);transform:scale(.85)}50%{opacity:.17;filter:blur(0);transform:scale(1.12)}}
.performances{position:relative;overflow:hidden}.performances>*:not(.suit-wall){position:relative;z-index:1}.suit-wall-section{opacity:.75}
.rabbit-lane{position:absolute;z-index:9;bottom:69px;width:135px;height:110px;pointer-events:none;opacity:0}.rabbit-lane img{width:100%;height:100%;object-fit:contain;animation:rabbit-hop .7s ease-in-out infinite}.rabbit-lane-a{animation:cross-left 26s linear infinite 4s}.rabbit-lane-b{bottom:130px;animation:cross-right 29s linear infinite 17s}.rabbit-lane-b img{transform:scaleX(-1);animation:rabbit-hop-reverse .75s ease-in-out infinite}
@keyframes cross-left{0%,7%{left:calc(100% + 140px);opacity:0}8%{opacity:1}43%{left:-150px;opacity:1}44%,100%{left:-150px;opacity:0}}
@keyframes cross-right{0%,7%{left:-150px;opacity:0}8%{opacity:1}43%{left:calc(100% + 140px);opacity:1}44%,100%{left:calc(100% + 140px);opacity:0}}
@keyframes rabbit-hop{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-25px) rotate(-5deg)}}
@keyframes rabbit-hop-reverse{0%,100%{transform:translateY(0) scaleX(-1)}50%{transform:translateY(-23px) scaleX(-1) rotate(-5deg)}}
@media(max-width:800px){.hero{min-height:860px}.collage{top:180px;bottom:105px}.central-portrait{top:17%;height:465px}.floating-left{top:33%;left:-3%;width:27vw;height:215px}.floating-right{top:31%;right:-3%;width:27vw;height:215px}.floating-third{left:9%;bottom:1%;width:105px;height:150px}.floating-fourth{right:8%;bottom:1%;width:105px;height:150px}.rabbit-lane{width:100px;height:85px;bottom:75px}.rabbit-lane-b{bottom:135px}.card-face .pip{font-size:75px}.card-face .pip-three{font-size:37px}.card-face .pip-four{font-size:31px}}
@media(max-width:520px){.hero{min-height:815px}.collage{top:175px;bottom:115px}.central-portrait{top:22%;height:400px}.floating-left{top:31%;left:-6%;width:35vw;height:180px}.floating-right{top:32%;right:-7%;width:35vw;height:180px}.floating-third{left:7%;bottom:0;width:82px;height:120px}.floating-fourth{right:6%;bottom:0;width:82px;height:120px}.seal{bottom:4%}.floating-third .corner,.floating-fourth .corner{font-size:13px}.floating-third .pip-three{font-size:20px}.floating-fourth .pip-four{font-size:17px}.floating-third .card-name,.floating-fourth .card-name{font-size:5px}.card-face{border-width:4px}.card-face .pip{font-size:61px}.card-face .pip-three{font-size:30px}.card-face .pip-four{font-size:24px}.card-name{font-size:7px}.corner{font-size:16px}.rabbit-lane{width:70px;height:60px;bottom:65px}.rabbit-lane-b{bottom:112px}}
@media(prefers-reduced-motion:reduce){.rabbit-lane{display:none}.suit-wall span{opacity:.08;filter:none}.flip-inner{transition:none}}
/* New site photographs and restrained close-up illusions. */
.wink-photo{overflow:visible}.wink-photo .wink-frame{position:absolute;inset:0;opacity:0;pointer-events:none;animation:wink 5s .5s infinite}.wink-photo .wink-frame,.wink-photo>img{object-position:center center}
@keyframes wink{0%,55%,68%,100%{opacity:0}60%,64%{opacity:1}}

.transform-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,340px);gap:clamp(28px,5vw,100px);align-items:center}
.card-stage{display:grid;place-items:center;min-height:470px;perspective:900px}
.morph-card{position:relative;width:260px;height:370px;border:9px solid #f5eddf;border-radius:14px;background:#f4eee4;color:#16120f;box-shadow:0 35px 70px #0008,inset 0 0 0 1px #b1a494;transform:rotate(6deg);animation:card-tilt 16s ease-in-out infinite}
.morph-corner{position:absolute;top:14px;left:14px;font:700 27px/.88 Georgia,serif;text-align:center;z-index:2}
.morph-corner.lower{top:auto;left:auto;bottom:14px;right:14px;transform:rotate(180deg)}
.index-four{animation:index-four 16s steps(1,end) infinite}.index-ten{opacity:0;animation:index-ten 16s steps(1,end) infinite}.index-heart{opacity:0;color:#9b2531;animation:index-heart 16s steps(1,end) infinite}
.morph-pip{position:absolute;left:50%;top:50%;font:46px/1 Georgia,serif;width:48px;height:50px;text-align:center;transform:translate(calc(-50% + var(--x)),calc(-50% + var(--y)));color:#16120f}
.morph-pip::before{content:"♠";display:block;animation:pip-suit 16s steps(1,end) infinite}
.born-pip{opacity:0;animation:pip-multiply 16s ease-in-out infinite}
@keyframes pip-multiply{0%,24%{opacity:0;transform:translate(calc(-50% + var(--x)),calc(-50% + var(--from-y))) scale(.4)}29%{opacity:1;transform:translate(calc(-50% + var(--x)),calc(-50% + var(--from-y))) scale(.68)}52%,91%{opacity:1;transform:translate(calc(-50% + var(--x)),calc(-50% + var(--y))) scale(1)}96%,100%{opacity:0;transform:translate(calc(-50% + var(--x)),calc(-50% + var(--from-y))) scale(.4)}}
@keyframes pip-suit{0%,64%{content:"♠";color:#16120f}65%,92%{content:"♥";color:#9b2531}93%,100%{content:"♠";color:#16120f}}
@keyframes index-four{0%,44%{opacity:1}45%,94%{opacity:0}95%,100%{opacity:1}}
@keyframes index-ten{0%,44%{opacity:0}45%,64%{opacity:1}65%,100%{opacity:0}}
@keyframes index-heart{0%,64%{opacity:0}65%,92%{opacity:1}93%,100%{opacity:0}}
@keyframes card-tilt{50%{transform:rotate(-3deg) translateY(-6px)}}
@media(max-width:800px){.transform-layout{grid-template-columns:1fr}.card-stage{min-height:390px}}
@media(prefers-reduced-motion:reduce){.wink-photo .wink-frame{display:none}.morph-card,.morph-pip::before,.morph-corner,.born-pip{animation:none}.morph-pip::before{content:"♥";color:#9b2531}.born-pip,.index-heart{opacity:1}.index-four,.index-ten{display:none}.born-pip{transform:translate(calc(-50% + var(--x)),calc(-50% + var(--y)))}}

/* Real card artwork replaces the oversized text pips on the photo flips. */
.card-face{padding:0;border:0;background:white;display:block}
.card-face::before{display:none}
.card-face img{width:100%;height:100%;object-fit:fill;filter:none}
.card-stage{position:relative;isolation:isolate}
.bicycle-back{position:absolute;width:220px;height:320px;object-fit:cover;border-radius:11px;transform:translate(38px,13px) rotate(15deg);box-shadow:0 28px 55px #0008;opacity:.78;z-index:-1}
@media(max-width:800px){.bicycle-back{transform:translate(26px,13px) rotate(12deg)}}

.art-credit{font:400 11px/1.4 Arial,sans-serif;color:#a99b87}.art-credit a{text-decoration:underline;text-underline-offset:2px}@media(max-width:800px){.art-credit{width:100%}}

/* Slow background suit breathing across every section. */
.world,.about,.finale{position:relative;isolation:isolate;overflow:hidden}
.world>:not(.suit-wall),.about>:not(.suit-wall),.finale>:not(.suit-wall){position:relative;z-index:1}
.suit-wall{pointer-events:none}
.suit-wall span.red-suit{color:#a12b35}
.world .suit-wall span:not(.red-suit){color:#1b1715}
.world .suit-wall span.red-suit{color:#9b2531}
.hero .suit-wall,.world .suit-wall,.performances .suit-wall,.about .suit-wall,.finale .suit-wall{z-index:0}
.central-portrait.wink-photo .wink-frame{z-index:1;clip-path:inherit}
.central-portrait.wink-photo .portrait-shade{z-index:2}
/* The alternate portrait has a slightly different crop; keep the tight phone frame steady. */
@media(max-width:620px){.central-portrait.wink-photo .wink-frame{display:none;animation:none}}
/* A small, occasional television flicker in the masthead. */
.wordmark{animation:wordmark-static 13s infinite}.wordmark em{animation:wordmark-gold 13s infinite}
@keyframes wordmark-static{0%,70%,72%,75%,100%{opacity:1;text-shadow:none}70.5%{opacity:.68;text-shadow:2px 0 #9b2531,-2px 0 #c6a86c}71%{opacity:1;text-shadow:-2px 0 #9b2531,2px 0 #c6a86c}74%{opacity:.78;text-shadow:1px 0 #c6a86c}}
@keyframes wordmark-gold{0%,70%,72%,75%,100%{color:var(--gold)}70.5%,74%{color:#fff4d3}}
.hero-heading h1 .hero-first{font-style:normal;color:var(--cream)}
.hero-heading h1 .verb-cycle,.hero-heading h1 .tagline-cycle{display:inline-grid;vertical-align:baseline}
.hero-heading h1 .verb-cycle>span,.hero-heading h1 .tagline-cycle>span{grid-area:1/1;white-space:nowrap}
.hero-heading h1 .verb-cycle>span{text-align:center;font-style:normal;color:var(--cream)}
.hero-heading h1 .verb-cycle>span:first-child{animation:welcome-out 20s ease-in-out infinite}
.hero-heading h1 .verb-cycle>span:last-child{opacity:0;animation:greetings-in 20s ease-in-out infinite}
.hero-heading h1 .tagline-cycle>span{font-style:italic;color:#ebd9b5}
.hero-heading h1 .tagline-cycle>span:first-child{animation:unexpected-shift 20s ease-in-out infinite}
.hero-heading h1 .tagline-cycle>span:last-child{opacity:0;animation:expected-shift 20s ease-in-out infinite}
@keyframes welcome-out{0%,42%,100%{opacity:1;filter:blur(0)}49%,88%{opacity:0;filter:blur(5px)}}
@keyframes greetings-in{0%,42%,100%{opacity:0;filter:blur(5px)}49%,88%{opacity:1;filter:blur(0)}}
@keyframes unexpected-shift{0%,22%,40%,100%{opacity:1;filter:blur(0)}29%,35%{opacity:0;filter:blur(4px)}}
@keyframes expected-shift{0%,22%,40%,100%{opacity:0;filter:blur(4px)}29%,35%{opacity:1;filter:blur(0)}}
/* The original leather case, followed by its open counterpart and soft spirit portraits. */
.world-grid{align-items:stretch}.world-trunk{min-height:clamp(360px,43vw,600px);overflow:visible!important;background:radial-gradient(ellipse at 50% 62%,#6b5149 0%,#2d1a1a 56%,#170e0e 90%)!important;isolation:isolate}
.world-trunk::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 50% 50%,#e8d5b052,transparent 65%);pointer-events:none}
.world-trunk figcaption{z-index:8;pointer-events:none}
.case-scene{position:absolute;inset:0;z-index:1;isolation:isolate;pointer-events:none}
.case-img{position:absolute;width:105%;height:auto;left:50%;top:56%;object-fit:contain;transform:translate(-50%,-50%);filter:drop-shadow(0 24px 18px #0009);z-index:4}
.case-closed{transform-origin:50% 55%}.case-open{opacity:0;z-index:5}
.world-trunk.is-awake .case-closed{animation:case-rumble 20s ease-in-out infinite}
.world-trunk.is-awake .case-open{animation:case-unfold 20s ease-in-out infinite}
@keyframes case-rumble{0%,10%,18%,25%,34%,42%,48%{opacity:1;transform:translate(-50%,-50%) scale(1)}12%,27%,40%{opacity:1;transform:translate(calc(-50% + 3px),calc(-50% - 2px)) scale(1.03,.98) rotate(.6deg)}15%,30%,44%{opacity:1;transform:translate(calc(-50% - 3px),calc(-50% + 2px)) scale(.99,1.04) rotate(-.7deg)}50%,53%{opacity:1;transform:translate(-50%,-50%) scale(1.05,.96)}57%,92%{opacity:0;transform:translate(-50%,-50%) scale(1.07,.92)}100%{opacity:1;transform:translate(-50%,-50%) scale(1)}}
@keyframes case-unfold{0%,53%{opacity:0;transform:translate(-50%,-45%) scale(.93,.78)}58%,89%{opacity:1;transform:translate(-50%,-50%) scale(1)}94%,100%{opacity:0;transform:translate(-50%,-50%) scale(.96,.9)}}
.case-light{position:absolute;left:50%;top:42%;width:70%;height:43%;border-radius:50%;background:radial-gradient(ellipse,#fff3cd99,#b1f2e459 34%,transparent 70%);filter:blur(24px);transform:translate(-50%,-30%);opacity:0;z-index:2}
.world-trunk.is-awake .case-light{animation:case-gleam 20s ease-in-out infinite}
@keyframes case-gleam{0%,48%,100%{opacity:0}60%,77%{opacity:.75}90%{opacity:0}}
.case-card{position:absolute;z-index:6;width:clamp(44px,5.5vw,75px);height:auto;left:50%;top:59%;opacity:0;filter:drop-shadow(0 8px 8px #0008)}
.world-trunk.is-awake .case-card-one{animation:card-escape-left 20s ease-in-out infinite}
.world-trunk.is-awake .case-card-two{animation:card-escape-right 20s ease-in-out infinite}
.world-trunk.is-awake .case-card-three{animation:card-escape-high 20s ease-in-out infinite}
@keyframes card-escape-left{0%,20%,100%{opacity:0;transform:translate(0,0) rotate(0) scale(.4)}28%,42%{opacity:1;transform:translate(-220%,-55%) rotate(-25deg) scale(.9)}52%,60%{opacity:0;transform:translate(-290%,-100%) rotate(-45deg) scale(1)}}
@keyframes card-escape-right{0%,30%,100%{opacity:0;transform:translate(0,0) rotate(0) scale(.4)}38%,48%{opacity:1;transform:translate(160%,-40%) rotate(24deg) scale(.9)}58%,65%{opacity:0;transform:translate(260%,-120%) rotate(48deg) scale(1)}}
@keyframes card-escape-high{0%,44%,100%{opacity:0;transform:translate(0,0) rotate(0) scale(.4)}51%,60%{opacity:.9;transform:translate(40%,-150%) rotate(12deg) scale(.95)}72%{opacity:0;transform:translate(90%,-250%) rotate(35deg) scale(1)}}
.case-ghost{position:absolute;z-index:3;width:40%;height:55%;top:22%;left:50%;object-fit:cover;object-position:center 25%;border-radius:40%;opacity:0;filter:grayscale(1) sepia(.3) hue-rotate(140deg) brightness(1.6) contrast(.75) blur(1px);mix-blend-mode:screen;-webkit-mask-image:radial-gradient(ellipse at 50% 43%,#000 18%,transparent 75%);mask-image:radial-gradient(ellipse at 50% 43%,#000 18%,transparent 75%)}
.world-trunk.is-awake .ghost-one{animation:spirit-left 20s ease-out infinite}.world-trunk.is-awake .ghost-two{animation:spirit-center 20s ease-out infinite}.world-trunk.is-awake .ghost-three{animation:spirit-right 20s ease-out infinite}
@keyframes spirit-left{0%,55%,100%{opacity:0;transform:translate(-50%,40%) scale(.35)}63%{opacity:.46}80%{opacity:.25;transform:translate(-135%,-68%) scale(1.05)}93%{opacity:0;transform:translate(-165%,-120%) scale(1.22)}}
@keyframes spirit-center{0%,58%,100%{opacity:0;transform:translate(-50%,42%) scale(.3)}68%{opacity:.38}82%{opacity:.27;transform:translate(-45%,-95%) scale(1.02)}94%{opacity:0;transform:translate(-30%,-155%) scale(1.18)}}
@keyframes spirit-right{0%,60%,100%{opacity:0;transform:translate(-50%,40%) scale(.3)}70%{opacity:.44}83%{opacity:.24;transform:translate(40%,-72%) scale(1.04)}95%{opacity:0;transform:translate(80%,-135%) scale(1.2)}}
/* Bring both rabbits into view quickly and keep crossings frequent. */
.rabbit-lane{z-index:15;width:clamp(95px,10vw,145px);height:clamp(83px,9vw,126px)}
.rabbit-lane-a{animation:rabbit-cross-left 13s linear infinite 0s}.rabbit-lane-b{animation:rabbit-cross-right 13s linear infinite 6.5s}
@keyframes rabbit-cross-left{0%{left:calc(100% + 145px);opacity:0}4%,72%{opacity:1}76%{left:-160px;opacity:0}100%{left:-160px;opacity:0}}
@keyframes rabbit-cross-right{0%{left:-160px;opacity:0}4%,72%{opacity:1}76%{left:calc(100% + 145px);opacity:0}100%{left:calc(100% + 145px);opacity:0}}
@media(max-width:800px){.hero-heading h1 .verb-cycle{font-size:.79em}.world-trunk{min-height:430px}.case-img{width:112%}.case-ghost{width:45%}}
@media(max-width:520px){.hero-heading h1 .verb-cycle{font-size:.72em}.world-trunk{min-height:360px}.case-img{width:118%}.case-ghost{width:52%;height:60%}}
@media(prefers-reduced-motion:reduce){.wordmark,.wordmark em,.hero-heading h1 .verb-cycle>span,.hero-heading h1 .tagline-cycle>span{animation:none!important}.hero-heading h1 .verb-cycle>span:last-child,.hero-heading h1 .tagline-cycle>span:last-child{display:none}.case-closed{display:none}.case-open{opacity:1}.case-ghost,.case-card{display:none}.rabbit-lane{display:none}}
/* Keep suitcase art dimensions independent of the photo-grid rules. */
.world-grid .world-trunk .case-img{width:105%;height:auto;max-width:none;object-fit:contain}
.world-grid .world-trunk .case-card{width:clamp(44px,5.5vw,75px);height:auto;object-fit:contain}
.world-grid .world-trunk .case-ghost{width:40%;height:55%;object-fit:cover}
@media(max-width:800px){.world-grid .world-trunk .case-img{width:112%}.world-grid .world-trunk .case-ghost{width:45%}}
@media(max-width:520px){.world-grid .world-trunk .case-img{width:118%}.world-grid .world-trunk .case-ghost{width:52%;height:60%}}
/* Full-width suitcase theater. The entire case silhouette is transparent. */
.world .world-grid{display:block}
.world .world-suitcase{margin:0;min-height:clamp(570px,72vw,860px);overflow:visible!important;background:transparent!important;isolation:isolate}
.world .world-suitcase::before{display:none}
.world .world-suitcase .case-scene{position:absolute;inset:0;z-index:1;overflow:visible}
.world-grid .world-suitcase .case-img{width:min(100%,1080px);height:auto;left:50%;top:58%;object-fit:contain;max-width:none;filter:drop-shadow(0 22px 18px #2b171850)}
.world .world-suitcase .case-closed{opacity:1}
.world .world-suitcase .case-half,.world .world-suitcase .case-open{opacity:0}
.world .world-suitcase.is-awake .case-closed{animation:flat-case-rumble 22s ease-in-out infinite}
.world .world-suitcase.is-awake .case-half{animation:half-open-show 22s ease-in-out infinite}
.world .world-suitcase.is-awake .case-open{animation:full-open-show 22s ease-in-out infinite}
@keyframes flat-case-rumble{0%,5%,15%,25%,34%,44%{opacity:1;transform:translate(-50%,-50%) scale(1)}8%,28%,40%{opacity:1;transform:translate(calc(-50% + 2px),calc(-50% - 2px)) scale(1.015,.99) rotate(.3deg)}11%,31%,43%{opacity:1;transform:translate(calc(-50% - 2px),calc(-50% + 1px)) scale(.99,1.02) rotate(-.3deg)}48%,51%{opacity:1;transform:translate(-50%,-50%) scale(1.025,.985)}57%,93%{opacity:0;transform:translate(-50%,-50%) scale(1.025,.985)}100%{opacity:1;transform:translate(-50%,-50%) scale(1)}}
@keyframes half-open-show{0%,49%{opacity:0;transform:translate(-50%,-48%) scale(.98,.95)}55%,60%{opacity:1;transform:translate(-50%,-50%) scale(1)}68%,100%{opacity:0;transform:translate(-50%,-50%) scale(1)}}
@keyframes full-open-show{0%,59%{opacity:0;transform:translate(-50%,-47%) scale(.97,.9)}67%,90%{opacity:1;transform:translate(-50%,-50%) scale(1)}95%,100%{opacity:0;transform:translate(-50%,-50%) scale(.99,.96)}}
.world .world-suitcase .case-light{left:50%;top:52%;width:60%;height:24%;background:radial-gradient(ellipse,#fff6d98a,#d8b4ea4d 40%,transparent 72%);filter:blur(26px);z-index:3}
.world .world-suitcase.is-awake .case-light{animation:flat-case-gleam 22s ease-in-out infinite}
@keyframes flat-case-gleam{0%,30%,100%{opacity:0}45%,55%{opacity:.35}67%,84%{opacity:.75}94%{opacity:0}}
.preopen-mist{position:absolute;left:50%;top:53%;width:min(64%,660px);height:20%;transform:translateX(-50%);z-index:6;background:radial-gradient(ellipse at 30% 80%,#fff9eec4,transparent 42%),radial-gradient(ellipse at 70% 85%,#f8f2d5a6,transparent 45%);filter:blur(20px);opacity:0}
.world-suitcase.is-awake .preopen-mist{animation:seam-mist 22s ease-in-out infinite}
@keyframes seam-mist{0%,14%,100%{opacity:0;transform:translate(-50%,22px) scale(.8)}26%,47%{opacity:.35;transform:translate(-50%,-5px) scale(1)}54%,61%{opacity:.7;transform:translate(-50%,-45px) scale(1.25)}70%,95%{opacity:0;transform:translate(-50%,-100px) scale(1.4)}}
.preopen-dust{position:absolute;inset:0;z-index:7;opacity:0}
.world-suitcase.is-awake .preopen-dust{animation:dust-envelope 22s linear infinite}
@keyframes dust-envelope{0%,12%,100%{opacity:0}20%,50%{opacity:1}60%,95%{opacity:0}}
.preopen-dust i{position:absolute;left:var(--p-x);top:57%;width:3px;height:3px;border-radius:50%;background:#fff6d8;box-shadow:0 0 6px 2px #ddae55,0 0 14px #fff;animation:dust-rise 2.8s ease-out infinite;animation-delay:var(--p-delay)}
@keyframes dust-rise{0%{opacity:0;transform:translateY(14px) scale(.5)}20%{opacity:1}100%{opacity:0;transform:translateY(-90px) translateX(18px) scale(1.5)}}
.world-grid .world-suitcase .magic-plume{position:absolute;left:50%;top:8%;width:min(100%,1100px);height:auto;z-index:6;object-fit:contain;opacity:0;filter:drop-shadow(0 0 18px #ffefcf70);transform:translateX(-50%) translateY(110px) scale(.56)}
.world-suitcase.is-awake .magic-plume{animation:plume-rise 22s ease-in-out infinite}
@keyframes plume-rise{0%,43%,100%{opacity:0;transform:translateX(-50%) translateY(110px) scale(.56)}50%,57%{opacity:.2;transform:translateX(-50%) translateY(55px) scale(.7)}68%,86%{opacity:.88;transform:translateX(-50%) translateY(-45px) scale(1)}94%{opacity:0;transform:translateX(-50%) translateY(-110px) scale(1.1)}}
.world-grid .world-suitcase .case-ghost{width:24%;height:36%;top:38%;mix-blend-mode:normal;z-index:8;filter:grayscale(1) sepia(.25) hue-rotate(145deg) brightness(1.4) contrast(.75) blur(1px)}
.world-suitcase.is-awake .ghost-one{animation:wide-spirit-left 22s ease-out infinite}.world-suitcase.is-awake .ghost-two{animation:wide-spirit-center 22s ease-out infinite}.world-suitcase.is-awake .ghost-three{animation:wide-spirit-right 22s ease-out infinite}
@keyframes wide-spirit-left{0%,61%,100%{opacity:0;transform:translate(-50%,40%) scale(.4)}69%{opacity:.48}85%{opacity:.3;transform:translate(-190%,-77%) scale(1)}95%{opacity:0;transform:translate(-230%,-130%) scale(1.2)}}
@keyframes wide-spirit-center{0%,64%,100%{opacity:0;transform:translate(-50%,40%) scale(.4)}72%{opacity:.43}85%{opacity:.28;transform:translate(-45%,-105%) scale(1.05)}95%{opacity:0;transform:translate(-35%,-175%) scale(1.24)}}
@keyframes wide-spirit-right{0%,66%,100%{opacity:0;transform:translate(-50%,40%) scale(.4)}74%{opacity:.47}86%{opacity:.3;transform:translate(90%,-77%) scale(1.02)}95%{opacity:0;transform:translate(130%,-140%) scale(1.2)}}
@media(max-width:800px){.world .world-suitcase{min-height:620px}.world-grid .world-suitcase .case-img{width:110%;top:63%}.world-grid .world-suitcase .magic-plume{width:120%;top:9%}.world-grid .world-suitcase .case-ghost{width:32%;height:38%;top:44%}}
@media(max-width:520px){.world .world-suitcase{min-height:490px}.world-grid .world-suitcase .case-img{width:120%;top:64%}.world-grid .world-suitcase .magic-plume{width:140%;top:9%}.world-grid .world-suitcase .case-ghost{width:42%;height:39%;top:45%}.preopen-dust i{top:63%}}
@media(prefers-reduced-motion:reduce){.world .world-suitcase .case-closed,.world .world-suitcase .case-half{display:none}.world .world-suitcase .case-open{opacity:1}.world .world-suitcase .magic-plume{opacity:.55;transform:translateX(-50%) translateY(-45px) scale(1)}.preopen-dust,.preopen-mist{display:none}}
/* Give every suitcase frame safe room inside the second section. */
.world-grid .world-suitcase .case-img{width:min(86%,920px);top:52%}
@media(max-width:800px){.world-grid .world-suitcase .case-img{width:86%;top:53%}}
@media(max-width:520px){.world-grid .world-suitcase .case-img{width:90%;top:58%}}
/* Booking inquiry, kept clear and readable over the finale. */
.booking{scroll-margin-top:70px}
.booking-intro{margin:1.2rem auto 1.7rem;font-size:1.1rem}
.booking-form{position:relative;z-index:2;width:min(100%,760px);margin:0 auto 2rem;text-align:left}
.booking-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem 1.2rem}
.booking-form label{display:flex;flex-direction:column;gap:.5rem;color:#f4e8d4;font-size:.9rem;font-weight:600;letter-spacing:.03em}
.booking-form input,.booking-form textarea{box-sizing:border-box;width:100%;min-height:48px;padding:.8rem .9rem;border:1px solid #dfc9a66b;border-radius:2px;background:#1d1515e8;color:#fffaf1;font:inherit;font-size:1rem;letter-spacing:normal}
.booking-form textarea{resize:vertical;margin-bottom:1rem}
.booking-form input::placeholder,.booking-form textarea::placeholder{color:#c5b5a8}
.booking-form input:focus-visible,.booking-form textarea:focus-visible{outline:2px solid #eecb84;outline-offset:2px}
.booking-form>.booking-fields+label{margin-top:1rem}
.booking-form button{display:block;margin:1.4rem auto .5rem;cursor:pointer}
.booking-form .booking-note{text-align:center;font-size:.85rem;line-height:1.5;color:#e2d1ba}
.booking-trap{position:absolute!important;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.booking-form button:disabled{opacity:.55;cursor:wait}
@media(max-width:640px){.booking-fields{grid-template-columns:1fr}.booking-form{width:min(100%,480px)}}
/* Let the rabbits cross the visible stage in a clearly readable hop. */
.hero .rabbit-lane{z-index:13;width:clamp(82px,9vw,132px);height:clamp(72px,8vw,115px)}
.hero .rabbit-lane-a{bottom:39%;animation:rabbit-cross-left 17s linear infinite}
.hero .rabbit-lane-b{bottom:15%;animation:rabbit-cross-right 19s linear infinite 4s}
.hero .rabbit-lane img{animation:rabbit-hop-visible .58s ease-in-out infinite}
.hero .rabbit-lane-b img{animation:rabbit-hop-visible-reverse .62s ease-in-out infinite}
@keyframes rabbit-hop-visible{0%,100%{transform:translateY(0) rotate(3deg)}48%{transform:translateY(-42px) rotate(-8deg)}}
@keyframes rabbit-hop-visible-reverse{0%,100%{transform:translateY(0) scaleX(-1) rotate(3deg)}48%{transform:translateY(-40px) scaleX(-1) rotate(-8deg)}}
@media(max-width:520px){.hero .rabbit-lane{width:82px;height:70px}.hero .rabbit-lane-a{bottom:42%}.hero .rabbit-lane-b{bottom:15%}}
.rabbit-lane{pointer-events:auto;cursor:pointer;touch-action:manipulation;border:0;background:none;padding:0}
.rabbit-lane:focus-visible{outline:3px solid #f3d391;outline-offset:4px;border-radius:12px}
.hero .rabbit-lane-a{left:5%;bottom:24%;opacity:1;animation:none;z-index:25;filter:drop-shadow(0 8px 14px rgba(0,0,0,.65))}
.hero .rabbit-lane-a:hover{transform:scale(1.08)}
.hero .rabbit-lane-b::after{content:"Catch the rabbit!";position:absolute;left:50%;bottom:100%;transform:translateX(-50%) rotate(-5deg);white-space:nowrap;background:#fff3d4;color:#301d1a;border:2px solid #7b4930;border-radius:55% 48% 53% 45%;padding:8px 13px;font:700 clamp(12px,1.2vw,16px)/1.1 Georgia,serif;box-shadow:0 5px 12px #0008;pointer-events:none}
.hero .rabbit-lane-b::before{content:"";position:absolute;z-index:1;left:48%;bottom:calc(100% - 3px);border:8px solid transparent;border-top-color:#7b4930;pointer-events:none}
@media(max-width:520px){.hero .rabbit-lane-a{left:4%;bottom:30%;width:94px;height:80px}}
@media(prefers-reduced-motion:reduce){.hero .rabbit-lane-a{display:block}.hero .rabbit-lane-a img{animation:none}}
/* Al's original card-holding crow, with a quiet stage hop and a visible call. */
.world>.crow-perch{position:absolute;right:7%;top:5.5rem;z-index:4;width:clamp(100px,13vw,180px);animation:crow-hop 9s ease-in-out infinite}
.crow-button{display:block;position:relative;width:100%;aspect-ratio:1.43;border:0;padding:0;background:transparent;cursor:pointer;filter:drop-shadow(0 9px 7px #0008)}
.crow-button:focus-visible{outline:2px solid var(--gold);outline-offset:5px}
.crow-frame{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.crow-open{opacity:0}
.crow-button.is-calling .crow-open{animation:crow-beak .42s steps(1) infinite}
.crow-call{position:absolute;bottom:95%;left:-18%;padding:.55rem .75rem;background:var(--cream);color:#2c1617;border:1px solid var(--gold);font:700 .75rem Georgia,serif;letter-spacing:.09em;white-space:nowrap;opacity:0;transform:translateY(8px) rotate(-8deg);pointer-events:none}
.crow-button.is-calling+.crow-call{opacity:1;transform:translateY(0) rotate(-8deg);transition:opacity .15s,transform .2s}
@keyframes crow-beak{0%,49%{opacity:1}50%,100%{opacity:0}}
@keyframes crow-hop{0%,78%,100%{transform:translateY(0) rotate(0)}83%{transform:translateY(-16px) rotate(-4deg)}88%{transform:translateY(0) rotate(1deg)}93%{transform:translateY(-7px) rotate(-2deg)}}
@media(max-width:800px){.world>.crow-perch{right:4%;top:3.5rem;width:105px}.world .section-intro{padding-right:7rem}}
@media(max-width:520px){.world>.crow-perch{right:5%;top:4.5rem;width:72px}.world .section-intro{padding-right:0}.world .section-intro .eyebrow{padding-right:5rem}.crow-call{font-size:.62rem}}
/* Carry the dark stage, gold rules and serif typography into the inquiry. */
.booking{background:radial-gradient(ellipse at 50% 12%,#52211f 0%,#211111 57%,#130d0e 100%);border-top:1px solid var(--gold)}
.booking h2{font-family:"Playfair Display",Georgia,serif;font-weight:600;font-size:clamp(53px,8vw,112px);margin-bottom:1.2rem}
.booking h2 i{color:#d0ad77}.booking-intro{color:#dbc8b9}
.booking-form{padding:clamp(1.4rem,3vw,2.5rem);border:1px solid #b995655e;background:#100b0ab8;box-shadow:0 20px 70px #0005}
.booking-form label{color:#d9bd8d}.booking-form input,.booking-form textarea{background:#231717;border-color:#a88a665e}
.booking-form .button-light{background:var(--red);color:#fff;border:0}
.booking-form .button-light:hover{background:#bd3527}
@media(prefers-reduced-motion:reduce){.world>.crow-perch{animation:none}.crow-button.is-calling .crow-open{animation:none;opacity:1}}
/* Theater-poster redesign: a centered portrait framed by a gilded stage. */
:root{--ink:#0f0b10;--red:#8d2631;--cream:#f3e8d4;--gold:#d5b978;--line:rgba(220,188,128,.27)}
body{background:#0f0b10}
.masthead{height:82px;background:#130d12;border-bottom:1px solid #ba9b5b75;box-shadow:0 8px 30px #0008}
.wordmark{font:600 26px/1 "Playfair Display",Georgia,serif;letter-spacing:.045em}
.wordmark-star{color:var(--gold);font-size:18px}
.masthead nav a:hover{color:var(--gold)}
.header-book{border-color:#cbaa6c;color:#f5e4c1}
.hero{min-height:960px;background:radial-gradient(ellipse at 50% 48%,#632732 0%,#2e1521 42%,#0d0a10 80%)}
.hero:before{inset:0;background:linear-gradient(90deg,#050508db,transparent 23%,transparent 77%,#050508db),repeating-linear-gradient(90deg,transparent 0,transparent 17%,#0002 18%,transparent 19%);opacity:.85}
.hero:after{content:"";position:absolute;inset:12px;border:1px solid #c4a36755;pointer-events:none;z-index:10}
.stage-glow{top:19%;left:20%;width:60%;height:66%;background:radial-gradient(ellipse,#b45e496b,transparent 66%)}
.proscenium{position:absolute;z-index:1;left:50%;top:245px;width:min(54vw,740px);height:610px;transform:translateX(-50%);border:2px solid #d0ae6a7a;border-radius:48% 48% 7px 7px/27% 27% 7px 7px;box-shadow:inset 0 0 0 12px #151016,inset 0 0 0 13px #d0ae6a38,0 0 100px #0008;pointer-events:none}
.proscenium:before{content:"";position:absolute;inset:17px;border:1px solid #d0ae6a48;border-radius:inherit}
.proscenium span{position:absolute;left:50%;top:-22px;transform:translateX(-50%);display:grid;place-items:center;width:44px;height:44px;background:#24141c;border:1px solid var(--gold);border-radius:50%;color:var(--gold);font-size:18px}
.hero-heading{margin-top:64px;padding:0 20px}
.hero-heading .eyebrow{color:#e6c88b;letter-spacing:.36em}
.hero-heading h1{font-size:clamp(52px,6.3vw,92px);line-height:.98;letter-spacing:-.055em;text-shadow:0 5px 25px #080508,0 0 50px #080508}
.hero-heading>p:last-child{font-size:17px;color:#f4dfc2}
.collage{inset:260px 0 70px}
.central-portrait{top:10%;width:min(37vw,500px);height:570px;min-height:0;clip-path:polygon(0 7%,8% 0,92% 0,100% 7%,100% 93%,92% 100%,8% 100%,0 93%);outline:1px solid var(--gold)}
.central-portrait img{object-position:66% center}
.floating{background:#e8d6b4;border:1px solid #b59161;box-shadow:0 25px 45px #000a}
.floating-left{left:7%;top:26%;transform:rotate(-11deg)}
.floating-right{right:7%;top:21%;transform:rotate(10deg)}
.floating-third{left:18%;bottom:5%}.floating-fourth{right:18%;bottom:4%}
.hero-bottom{border-top:1px solid #d1ad6966;padding-top:18px}
.world{background:radial-gradient(ellipse at 50% 60%,#38201f 0%,#1a1117 67%,#100c11);border-top:1px solid #b69b69}
.world .section-intro{border-top:1px solid var(--line);padding-top:34px}
.world .section-intro h2,.performances h2,.about h2{font-family:"Playfair Display",Georgia,serif;letter-spacing:-.055em}
.world .section-intro h2 i,.performances h2 i{color:#ddba85}
.world .section-intro p:last-child{color:#e2cfba}
.world>.crow-perch{top:7rem}
.performances{background:radial-gradient(circle at 75% 45%,#4a2026,transparent 49%),#180e14;border-top:1px solid #b69b6966}
.show-list{border-top:1px solid #c2a06e70}
.show-list article{border-bottom-color:#c2a06e70;transition:background .25s,padding-left .25s}
.show-list article:hover{background:#6330372e;padding-left:12px}
.show-num,.show-mark{color:#d9ba7b}
.about{background:#130d12;border-top:1px solid #b69b6966}
.about-photo:before{inset:-18px 18px 18px -18px;border-color:#c9a869}
.about-photo:after{content:"";position:absolute;inset:10px;border:1px solid #e8d1a550;pointer-events:none}
.about-lead{color:#e0bd80}
.booking{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(2rem,5vw,6rem);align-items:start;text-align:left;padding:clamp(95px,9vw,145px) clamp(24px,7vw,130px) 80px;background:radial-gradient(circle at 20% 20%,#5b2630,transparent 50%),#190e15}
.booking-head{position:sticky;top:42px;padding-top:2rem}
.booking h2{font-size:clamp(58px,6vw,104px);line-height:1.03;margin:0 0 1.8rem}
.booking .eyebrow{color:#dabe83}
.booking-intro{font:italic 500 clamp(20px,2vw,28px)/1.35 "Playfair Display",Georgia,serif;color:#e5cfae;margin:0}
.booking-form{margin:0;width:100%;padding:clamp(1.5rem,3vw,3rem);background:#110c12d9;border:1px solid #c7a56c8a;box-shadow:18px 18px 0 #09070b55}
.booking-form label{font-size:.9rem;letter-spacing:.04em}
.booking-form input,.booking-form textarea{border:1px solid #c0a47570;border-radius:0;background:#261820}
.booking-form .booking-note{margin-bottom:0;color:#cbbba9}
.booking>p:last-child{grid-column:1/-1;border-top:1px solid var(--line);padding-top:24px}
@media(max-width:900px){.hero{min-height:880px}.proscenium{top:260px;width:75vw;height:560px}.collage{top:250px}.central-portrait{width:57vw;height:520px;top:11%}.floating-left{left:1%;top:34%}.floating-right{right:1%;top:28%}.booking{grid-template-columns:1fr}.booking-head{position:relative;top:auto;padding:0}.booking h2{max-width:600px}.booking-form{max-width:760px}}
@media(max-width:520px){.masthead{height:68px}.wordmark{font-size:19px}.hero{min-height:830px}.hero-heading{margin-top:43px}.hero-heading h1{font-size:44px}.hero-heading .eyebrow{letter-spacing:.22em}.hero-heading>p:last-child{font-size:14px}.proscenium{top:248px;width:86vw;height:490px}.collage{top:238px;bottom:75px}.central-portrait{width:73vw;height:440px;top:13%}.floating-left{left:-8%;top:36%}.floating-right{right:-8%;top:31%}.floating-third{left:4%;bottom:0}.floating-fourth{right:4%;bottom:0}.world>.crow-perch{top:5.5rem}.booking{padding:84px 22px 65px}.booking h2{font-size:clamp(48px,13vw,64px)}.booking-form{padding:1.3rem;box-shadow:10px 10px 0 #09070b55}}
.world-soundtrack{position:relative;z-index:2;max-width:660px;margin:0 auto 48px;padding:18px;background:#281715;border:1px solid #9a6d4a;box-shadow:8px 8px 0 #28171533}.world-soundtrack .eyebrow{margin:0 0 12px;color:#e7c487}.world-soundtrack iframe{display:block;width:100%;height:175px;border:0;border-radius:8px;background:#16110f}
/* One returning crow in every act, using the same card-holding artwork. */
.hero>.crow-cameo,.performances>.crow-cameo,.about>.crow-cameo,.booking>.crow-cameo{position:absolute;z-index:8;width:clamp(75px,9vw,115px);animation:crow-hop 7.5s ease-in-out infinite}
.hero>.crow-cameo{left:4%;bottom:12%;animation-delay:-2s}
.performances>.crow-cameo{right:7%;top:7%;animation-delay:-3.5s}
.about>.crow-cameo{left:5%;bottom:6%;animation-delay:-1s}
.booking>.crow-cameo{left:4%;bottom:6%;animation-delay:-5s}
.hero>.crow-cameo .crow-call,.about>.crow-cameo .crow-call,.booking>.crow-cameo .crow-call{left:0}
@media(max-width:800px){.hero>.crow-cameo,.performances>.crow-cameo,.about>.crow-cameo,.booking>.crow-cameo{width:78px}.hero>.crow-cameo{left:2%;bottom:11%}.performances>.crow-cameo{right:4%;top:6%}.about>.crow-cameo{left:3%;bottom:5%}.booking>.crow-cameo{left:auto;right:5%;bottom:3%}}
@media(max-width:520px){.hero>.crow-cameo,.performances>.crow-cameo,.about>.crow-cameo,.booking>.crow-cameo{width:62px}.hero>.crow-cameo{bottom:14%}.performances>.crow-cameo{top:3%;right:3%}.about>.crow-cameo{bottom:4%}.booking>.crow-cameo{bottom:1.5%}}
/* A dark stage and concentrated beam illuminate the suitcase without a box around it. */
.world{background:radial-gradient(ellipse at 50% 65%,#2f2225 0%,#120e15 48%,#09090e 82%)}
.world::before{content:"";position:absolute;left:5%;right:5%;top:18%;height:73%;z-index:0;pointer-events:none;background:linear-gradient(108deg,transparent 24%,#e8c58a0c 44%,#f1cf921c 50%,#e8c58a0c 56%,transparent 76%),radial-gradient(ellipse at 50% 77%,#ddb78340,transparent 48%);filter:blur(18px);animation:stage-spotlight 8s ease-in-out infinite}
@keyframes stage-spotlight{0%,100%{opacity:.65}50%{opacity:1}}
.world .world-suitcase .case-light{background:radial-gradient(ellipse,#fff4caaf,#e7b68165 38%,transparent 73%);filter:blur(31px)}
.world-grid .world-suitcase .magic-plume{filter:drop-shadow(0 0 18px #f5ddaa55)}
.world-suitcase.is-awake .magic-plume{animation:plume-breathe 22s ease-in-out infinite}
@keyframes plume-breathe{0%,43%,100%{opacity:0;transform:translateX(-50%) translateY(110px) scale(.56)}52%{opacity:.25;transform:translateX(-51%) translateY(45px) scale(.73)}62%{opacity:.67;transform:translateX(-49%) translateY(-18px) scale(.94)}70%{opacity:.83;transform:translateX(-51%) translateY(-50px) scale(1.02)}78%{opacity:.74;transform:translateX(-49%) translateY(-68px) scale(1.07)}86%{opacity:.87;transform:translateX(-51%) translateY(-85px) scale(1.11)}94%{opacity:0;transform:translateX(-50%) translateY(-130px) scale(1.19)}}
.living-vapor{position:absolute;top:48%;width:18%;height:38%;z-index:7;opacity:0;pointer-events:none}
.living-vapor::before,.living-vapor::after{content:"";position:absolute;inset:0;border-radius:50%;background:radial-gradient(ellipse at 45% 75%,#fff8dd77 0%,#cbe6df5c 25%,transparent 67%);filter:blur(18px);animation:vapor-curl 5.2s ease-in-out infinite}
.living-vapor::after{animation-delay:-2.6s;filter:blur(29px);opacity:.65}
.vapor-left{left:29%}.vapor-mid{left:41%;width:21%;top:44%}.vapor-right{left:55%}
.vapor-left::before,.vapor-left::after{animation-duration:4.7s}.vapor-right::before,.vapor-right::after{animation-duration:5.9s;animation-delay:-1.7s}
.world-suitcase.is-awake .living-vapor{animation:vapor-open-gate 22s linear infinite}
@keyframes vapor-open-gate{0%,54%,100%{opacity:0}64%,88%{opacity:.9}96%{opacity:0}}
@keyframes vapor-curl{0%{opacity:0;transform:translate(-18%,24%) rotate(-12deg) scale(.7)}24%{opacity:.8}55%{opacity:.55;transform:translate(6%,-17%) rotate(9deg) scale(1.1)}100%{opacity:0;transform:translate(22%,-62%) rotate(-7deg) scale(1.45)}}
/* A small comic-book poof, located at the hand and cards in the final photo. */
.about-photo .hand-magic{position:absolute;left:49%;top:85%;z-index:5;width:0;height:0;pointer-events:none}
.magic-puff{position:absolute;left:-37px;top:-37px;width:76px;height:76px;border-radius:50%;background:radial-gradient(circle,#fffbeaee 0%,#f8d99d99 29%,#b8d5d588 54%,transparent 72%);filter:blur(7px);animation:hand-poof 9s ease-out infinite}
.magic-puff-two{animation-delay:.22s;filter:blur(13px)}
.magic-word{position:absolute;left:15px;bottom:38px;color:#fff1ce;font:italic 700 clamp(19px,2.3vw,31px)/1 "Playfair Display",Georgia,serif;letter-spacing:.04em;text-shadow:2px 3px 0 #702536,0 0 18px #fff4cf;white-space:nowrap;opacity:0;animation:magic-word-pop 9s ease-out infinite}
.magic-twinkle{position:absolute;left:-60px;top:-54px;color:#fff2c8;font-size:21px;letter-spacing:.45em;white-space:nowrap;text-shadow:0 0 12px #fff;opacity:0;animation:magic-word-pop 9s ease-out infinite .15s}
@keyframes hand-poof{0%,48%,100%{opacity:0;transform:scale(.3) translateY(8px)}54%{opacity:.9;transform:scale(1)}69%{opacity:.4;transform:scale(1.8) translateY(-20px)}80%{opacity:0;transform:scale(2.2) translateY(-35px)}}
@keyframes magic-word-pop{0%,51%,100%{opacity:0;transform:translateY(12px) scale(.65) rotate(-9deg)}58%,70%{opacity:1;transform:translateY(-8px) scale(1) rotate(-9deg)}82%{opacity:0;transform:translateY(-27px) scale(1.08) rotate(-9deg)}}
@media(max-width:520px){.magic-word{left:-45px;bottom:36px;font-size:20px}.magic-twinkle{left:-50px;font-size:14px}.living-vapor{height:33%;top:53%}}
@media(prefers-reduced-motion:reduce){.hero>.crow-cameo,.performances>.crow-cameo,.about>.crow-cameo,.booking>.crow-cameo,.world::before,.world-suitcase.is-awake .living-vapor{animation:none}.living-vapor{display:none}.magic-puff,.magic-puff-two,.magic-word,.magic-twinkle{animation:none}.magic-word{opacity:.9;transform:translateY(-8px) rotate(-9deg)}}
.video-cta{margin-top:26px}
.photo-cta{margin-top:35px}
.hero-bottom>a:last-child{color:#f1d0a0}
@media(max-width:520px){.hero-bottom{gap:12px}.hero-bottom>span:first-child{display:none}.hero-bottom>a{white-space:nowrap}.hero-bottom>a:last-child{font-size:9px}}
/* Letter-scrambled chapter titles; the original copy returns on each cycle. */
.hero h1.quote-mode,.world h2.quote-mode,.performances h2.quote-mode,.about h2.quote-mode,.booking h2.quote-mode{white-space:pre-line;color:#f2d8a2;text-shadow:0 4px 26px #09070bcc}
.hero h1.quote-mode{font-size:clamp(45px,5.8vw,86px);line-height:1.04}

/* Both rabbits cross the stage, turn, and travel back. */
.hero{min-height:1120px}
.collage{inset:260px 0 220px}
.hero .rabbit-lane-a,.hero .rabbit-lane-b{bottom:100px;left:0;opacity:1;z-index:12;filter:drop-shadow(0 8px 14px rgba(0,0,0,.65))}
.hero .rabbit-lane-a{animation:rabbit-patrol-left 12s linear infinite}
.hero .rabbit-lane-b{animation:rabbit-patrol-right 14s linear infinite}
.hero .rabbit-lane-a:hover{animation-play-state:running;transform:none}
.hero .rabbit-lane-b::before,.hero .rabbit-lane-b::after{display:none}
@keyframes rabbit-patrol-left{0%{left:1%;transform:scaleX(-1)}49%{left:calc(99% - 132px);transform:scaleX(-1)}50%{left:calc(99% - 132px);transform:scaleX(1)}99%,100%{left:1%;transform:scaleX(1)}}
@keyframes rabbit-patrol-right{0%{left:calc(99% - 132px);transform:scaleX(1)}49%{left:1%;transform:scaleX(1)}50%{left:1%;transform:scaleX(-1)}99%,100%{left:calc(99% - 132px);transform:scaleX(-1)}}
@media(max-width:900px){.hero{min-height:1060px}.collage{inset:250px 0 200px}.hero .rabbit-lane-a,.hero .rabbit-lane-b{bottom:92px}}
@media(max-width:520px){
  .hero{min-height:980px}
  .collage{inset:238px 0 185px}
  .hero .rabbit-lane-a,.hero .rabbit-lane-b{width:76px;height:68px;bottom:85px}
  @keyframes rabbit-patrol-left{0%{left:1%;transform:scaleX(-1)}49%{left:calc(99% - 76px);transform:scaleX(-1)}50%{left:calc(99% - 76px);transform:scaleX(1)}99%,100%{left:1%;transform:scaleX(1)}}
  @keyframes rabbit-patrol-right{0%{left:calc(99% - 76px);transform:scaleX(1)}49%{left:1%;transform:scaleX(1)}50%{left:1%;transform:scaleX(-1)}99%,100%{left:calc(99% - 76px);transform:scaleX(-1)}}
}
@media(prefers-reduced-motion:reduce){.hero .rabbit-lane-a,.hero .rabbit-lane-b{animation:none}.hero .rabbit-lane-a{left:2%}.hero .rabbit-lane-b{left:auto;right:2%}}
/* Rabbits leave the stage completely before their next crossing. */
.hero .rabbit-lane-a{animation:rabbit-exit-right 13s linear infinite;animation-delay:-2s}
.hero .rabbit-lane-b{animation:rabbit-exit-left 14s linear infinite;animation-delay:-8s}
.hero .rabbit-lane-b::before,.hero .rabbit-lane-b::after{content:none}
@keyframes rabbit-exit-right{0%{left:-150px;opacity:0}5%{opacity:1}94%{opacity:1}100%{left:calc(100% + 20px);opacity:0}}
@keyframes rabbit-exit-left{0%{left:calc(100% + 20px);opacity:0}5%{opacity:1}94%{opacity:1}100%{left:-150px;opacity:0}}
.rabbit-catch{position:absolute;left:50%;bottom:100%;transform:translateX(-50%) rotate(-5deg);white-space:nowrap;background:#fff3d4;color:#301d1a;border:2px solid #7b4930;border-radius:48%;padding:9px 13px;font:700 14px/1.2 Georgia,serif;box-shadow:0 5px 12px #0008;pointer-events:none}
.performances>.crow-cameo{right:3%;top:5%}
.about>.crow-cameo{left:auto;right:3%;bottom:3%}
.booking>.crow-cameo{left:auto;right:3%;bottom:2%}
@media(max-width:520px){.rabbit-catch{font-size:12px;padding:7px 9px}.performances>.crow-cameo{right:2%;top:2%}.about>.crow-cameo{right:2%;bottom:2%}.booking>.crow-cameo{right:2%;bottom:1%}}
@media(prefers-reduced-motion:reduce){.hero .rabbit-lane-a,.hero .rabbit-lane-b{animation:none;opacity:1}.hero .rabbit-lane-a{left:2%}.hero .rabbit-lane-b{left:auto;right:2%}}
/* Each chapter has a clear crossing lane below its content. */
.hero>.crow-cameo{left:auto;right:3%;top:155px;bottom:auto;z-index:9}
.hero .rabbit-lane-a{bottom:29%}
.hero .rabbit-lane-b{bottom:13%}
.rabbit-run{position:relative;z-index:7;clear:both;width:100%;height:120px;margin-top:35px;overflow:hidden;pointer-events:none}
.rabbit-run .rabbit-lane{bottom:8px;left:0;width:clamp(80px,9vw,120px);height:clamp(70px,8vw,105px);pointer-events:auto;filter:drop-shadow(0 8px 10px #0009)}
.rabbit-run .rabbit-lane-a{animation:rabbit-exit-right 13s linear infinite;animation-delay:-2s}
.rabbit-run .rabbit-lane-b{animation:rabbit-exit-left 14s linear infinite;animation-delay:-8s}
.rabbit-run .rabbit-lane img{animation:rabbit-hop-visible .58s ease-in-out infinite}
.rabbit-run .rabbit-lane-b img{animation:rabbit-hop-visible-reverse .62s ease-in-out infinite}
.rabbit-run .rabbit-lane-b::before,.rabbit-run .rabbit-lane-b::after{content:none}
.world>.rabbit-run,.performances>.rabbit-run,.about>.rabbit-run,.booking>.rabbit-run{margin-top:65px}
.booking>.rabbit-run{margin-bottom:22px}
@media(max-width:620px){.hero>.crow-cameo{right:3%;top:125px;bottom:auto;width:60px}.hero .rabbit-lane-a{bottom:30%}.hero .rabbit-lane-b{bottom:12%}.rabbit-run{height:100px;margin-top:24px}.rabbit-run .rabbit-lane{width:78px;height:68px}.world>.rabbit-run,.performances>.rabbit-run,.about>.rabbit-run,.booking>.rabbit-run{margin-top:45px}}
@media(prefers-reduced-motion:reduce){.rabbit-run .rabbit-lane{animation:none;opacity:1}.rabbit-run .rabbit-lane-a{left:3%}.rabbit-run .rabbit-lane-b{left:auto;right:3%}.rabbit-run .rabbit-lane img{animation:none}}
.character-entrance{position:relative;z-index:2;display:flex;align-items:end;max-width:1400px;margin:0 auto 46px;min-height:125px}
.character-entrance .rabbit-run{flex:1;width:auto;margin:0 14px}
.character-entrance .entrance-crow{position:relative;flex:0 0 clamp(70px,9vw,112px);width:clamp(70px,9vw,112px);animation:crow-hop 7.5s ease-in-out infinite}
@media(max-width:620px){.character-entrance{min-height:100px;margin-bottom:30px}.character-entrance .entrance-crow{flex-basis:66px;width:66px}}
@media(prefers-reduced-motion:reduce){.character-entrance .entrance-crow{animation:none}}
.about>.rabbit-run,.booking>.rabbit-run{grid-column:1/-1}
.music-toggle{z-index:20;display:inline-flex;align-items:center;gap:7px;flex:none;padding:9px 12px;border:1px solid #e5c18b;border-radius:22px;background:#221217e8;color:#ffe0a7;font:700 13px/1.2 Georgia,serif;white-space:nowrap;cursor:pointer;box-shadow:0 5px 16px #0008}
.music-toggle:hover,.music-toggle:focus-visible{background:#513038;outline:2px solid #f4d79d;outline-offset:2px}
.portrait-music{position:absolute;right:9%;bottom:10%;transform:none}
@media(max-width:620px){.music-toggle{font-size:12px;padding:7px 9px}.portrait-music{right:10%;bottom:11%}}
.world .section-intro h2.quote-mode{font-size:clamp(34px,4.5vw,68px);line-height:1.12;max-width:950px}
.world .section-intro h2.quote-mode::after{content:"— EDGAR ALLAN POE";display:block;margin-top:.8rem;font:700 clamp(11px,1vw,14px)/1.4 "DM Sans",Arial,sans-serif;letter-spacing:.2em;color:#d3b77d}
.performances h2.quote-mode{font-size:clamp(42px,6vw,84px);line-height:1.08}
.about h2.quote-mode{font-size:clamp(38px,4.5vw,70px);line-height:1.12}
.booking h2.quote-mode{font-size:clamp(38px,4.8vw,70px);line-height:1.13}
/* A themed theatrical smoke puff replaces only the caught rabbit. */
.rabbit-lane-b.is-transforming{animation-play-state:paused!important;opacity:1!important;z-index:30!important}
.rabbit-lane-b.is-transforming img,.rabbit-lane-b.is-transforming .rabbit-catch{opacity:0;animation:none!important;transition:opacity .1s ease}
.rabbit-lane-b.is-transforming::before{content:""!important;display:block!important;position:absolute;left:50%;top:45%;width:clamp(170px,19vw,260px);height:clamp(115px,13vw,180px);transform:translate(-50%,-50%) scale(.25);background:url("assets/rabbit-poof-gold.png") center/contain no-repeat;pointer-events:none;animation:rabbit-poof 1.25s ease-out both}
.rabbit-lane-b.is-transforming::after{content:"✦  ✧  ✦"!important;display:block!important;position:absolute;left:50%;top:30%;width:170%;color:#ffe7a6;font-size:clamp(20px,2.6vw,34px);letter-spacing:10px;text-shadow:0 0 13px #ffdca2;pointer-events:none;animation:magic-sparkles 1.15s ease-out forwards}
.rabbit-lane-b.is-vanished img,.rabbit-lane-b.is-vanished .rabbit-catch{visibility:hidden}
@keyframes rabbit-poof{0%{opacity:0;transform:translate(-50%,-50%) scale(.25)}22%{opacity:1;transform:translate(-50%,-50%) scale(1.15)}55%{opacity:1;transform:translate(-50%,-58%) scale(1.3)}100%{opacity:0;transform:translate(-50%,-80%) scale(1.5)}}
@keyframes magic-sparkles{0%{opacity:0;transform:translate(-50%,0) scale(.35)}28%{opacity:1}100%{opacity:0;transform:translate(-50%,-45px) scale(1.4)}}
@media(prefers-reduced-motion:reduce){.rabbit-lane-b.is-transforming::before,.rabbit-lane-b.is-transforming::after{animation-duration:.01ms}}
/* Both runners face the direction of travel and exit the stage before repeating. */
.hero .rabbit-lane-b,.rabbit-run .rabbit-lane-b{animation:rabbit-exit-right 14s linear infinite;animation-delay:-8s}
.rabbit-lane-b img,.hero .rabbit-lane-b img,.rabbit-run .rabbit-lane-b img{transform:none;animation:rabbit-hop-visible .62s ease-in-out infinite}
/* The soundtrack control sits centered beneath the main portrait. */
.collage>.portrait-music{position:absolute;left:50%;right:auto;top:calc(10% + 582px);bottom:auto;transform:translateX(-50%);width:42px;height:42px;padding:0;display:grid;place-items:center;border-radius:50%;font:normal 25px/1 Georgia,serif}
.portrait-music span{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:900px){.collage>.portrait-music{top:calc(11% + 532px)}}
@media(max-width:520px){.collage>.portrait-music{top:calc(13% + 452px);width:38px;height:38px;font-size:23px}}
/* The supplied rabbit faces left; mirror it when the crossing goes right. */
.rabbit-lane img,.rabbit-run .rabbit-lane img,.hero .rabbit-lane img,.rabbit-lane-b img,.rabbit-run .rabbit-lane-b img,.hero .rabbit-lane-b img{animation:rabbit-hop-forward .62s ease-in-out infinite;transform:scaleX(-1)}
@keyframes rabbit-hop-forward{0%,100%{transform:translateY(0) scaleX(-1) rotate(3deg)}48%{transform:translateY(-40px) scaleX(-1) rotate(-8deg)}}
@media(prefers-reduced-motion:reduce){.rabbit-lane img,.rabbit-run .rabbit-lane img,.hero .rabbit-lane img{animation:none;transform:scaleX(-1)}}

/* Home stage overrides: show the current puff above the opening rabbit. */
.hero .rabbit-lane-b.is-transforming::before,.hero .rabbit-lane-b.is-transforming::after{display:block!important;z-index:5;visibility:visible;content:""!important}
.hero .rabbit-lane-b.is-transforming::before{background-image:url("assets/rabbit-poof-gold.png?v=poof2")}
.hero .rabbit-lane-b.is-transforming::after{content:"✦  ✧  ✦"!important}

/* Two suitcase states: closed, then open, then closed on repeat. */
.world .world-suitcase .case-half{display:none!important}
.world .world-suitcase.is-awake .case-closed{animation:case-two-closed 22s linear infinite}
.world .world-suitcase.is-awake .case-open{animation:case-two-open 22s linear infinite}
@keyframes case-two-closed{0%,54.9%{opacity:1}55%,94.9%{opacity:0}95%,100%{opacity:1}}
@keyframes case-two-open{0%,54.9%{opacity:0}55%,94.9%{opacity:1}95%,100%{opacity:0}}
@media(prefers-reduced-motion:reduce){.world .world-suitcase .case-closed{display:none}.world .world-suitcase .case-open{opacity:1}}

/* Keep the entire rabbit and its catch sign inside the mobile stage. */
.rabbit-run{height:170px;overflow:hidden}
.rabbit-run .rabbit-lane{bottom:12px}
.character-entrance{min-height:170px}
.rabbit-run .rabbit-lane-a{animation:rabbit-contained-cross 13s linear infinite;animation-delay:-2s}
.rabbit-run .rabbit-lane-b{animation:rabbit-contained-cross 14s linear infinite;animation-delay:-8s}
.hero .rabbit-lane-a{animation:rabbit-contained-cross 13s linear infinite;animation-delay:-2s}
.hero .rabbit-lane-b{animation:rabbit-contained-cross 14s linear infinite;animation-delay:-8s}
@keyframes rabbit-contained-cross{
  0%{left:0;opacity:0}
  4%{opacity:1}
  94%{opacity:1}
  100%{left:calc(100% - var(--rabbit-width, 120px));opacity:0}
}
.rabbit-run .rabbit-lane{--rabbit-width:clamp(80px,9vw,120px)}
.hero .rabbit-lane{--rabbit-width:clamp(82px,9vw,132px)}
@media(max-width:620px){
  .rabbit-run{height:156px}
  .rabbit-run .rabbit-lane{--rabbit-width:78px;bottom:10px}
  .character-entrance{min-height:156px}
  .character-entrance .rabbit-run{min-width:0}
  .hero .rabbit-lane{--rabbit-width:76px}
}
@media(prefers-reduced-motion:reduce){
  .rabbit-run .rabbit-lane,.hero .rabbit-lane{animation:none}
}
/* Keep the opening crow below the headline on phone screens. */
@media(max-width:620px){
  .hero>.crow-cameo{top:270px;right:8%;width:56px}
  .hero .collage{top:298px}
  .hero{min-height:1040px}
}

/* A quiet transformation in the cards: smoke covers the fixed photograph, then the rabbit emerges. */
.about-photo .hand-magic{left:51%;top:85%;isolation:isolate}
.hand-rabbit{position:absolute;z-index:2;left:-34px;bottom:-8px;width:76px;height:76px;object-fit:contain;opacity:0;filter:sepia(.27) drop-shadow(0 3px 7px #1b1012);animation:hand-rabbit-reveal 10s ease-in-out infinite}
.hand-magic .magic-puff{z-index:3;left:-47px;top:-53px;width:94px;height:86px;background:radial-gradient(ellipse at 50% 59%,#fff5d7ec 0%,#c8ae91bd 36%,#63424a78 62%,transparent 75%);filter:blur(7px);animation:hand-smoke 10s ease-in-out infinite}
.hand-magic .magic-puff-two{left:-29px;top:-73px;width:86px;height:74px;filter:blur(13px);animation-delay:.18s}
.hand-magic .magic-twinkle{z-index:4;left:-37px;top:-63px;font-size:15px;color:#fce2a3;animation:hand-sparks 10s ease-in-out infinite}
.hand-magic .magic-word{display:none!important}
@keyframes hand-rabbit-reveal{0%,40%{opacity:0;transform:translateY(18px) scale(.65);filter:blur(7px)}53%{opacity:.12}63%{opacity:.75;filter:blur(2px)}70%,86%{opacity:.95;transform:translateY(-10px) scale(1);filter:blur(0)}98%,100%{opacity:0;transform:translateY(2px) scale(.9)}}
@keyframes hand-smoke{0%,42%,100%{opacity:0;transform:translateY(8px) scale(.4)}49%,60%{opacity:.95;transform:translateY(-4px) scale(1.15)}73%{opacity:.34;transform:translateY(-23px) scale(1.6)}84%{opacity:0;transform:translateY(-42px) scale(1.9)}}
@keyframes hand-sparks{0%,47%,80%,100%{opacity:0;transform:translateY(7px) scale(.6)}54%,64%{opacity:.9;transform:translateY(-14px) scale(1)}73%{opacity:.2;transform:translateY(-33px) scale(1.25)}}
@media(prefers-reduced-motion:reduce){.hand-rabbit{animation:none;opacity:.95;transform:translateY(-10px)}.hand-magic .magic-puff,.hand-magic .magic-twinkle{display:none}}

/* Let hopping rabbits extend into the page instead of cropping their ears at a lane edge. */
.rabbit-run{overflow:visible;z-index:12}
.rabbit-run .rabbit-lane,.photo-stage .rabbit-run .rabbit-lane,.video-theater .rabbit-run .rabbit-lane{bottom:12px}
.character-entrance{z-index:12}
.photo-stage,.video-theater{overflow:visible}
.photo-stage .rabbit-run,.video-theater .rabbit-run{position:relative;z-index:12}
/* Show the supplied gold POOF image when the labeled rabbit is caught. */
.rabbit-lane-b.is-transforming::before,.hero .rabbit-lane-b.is-transforming::before{
  content:""!important;display:block!important;visibility:visible!important;
  background:url("assets/rabbit-poof-gold.png?v=supplied") center/contain no-repeat!important;
  border:0!important;border-radius:0!important;filter:none!important;
  width:clamp(170px,19vw,260px);height:clamp(115px,13vw,180px);
  animation:rabbit-poof 1.25s ease-out both!important
}
.rabbit-lane-b.is-transforming::after,.hero .rabbit-lane-b.is-transforming::after{content:none!important;display:none!important}
/* Hold the trunk in place, let the latch rumble, then snap it open. */
.world .world-suitcase.is-awake .case-closed{animation:case-anchored-rumble 22s linear infinite}
.world .world-suitcase.is-awake .case-open{animation:case-erupts-open 22s linear infinite}
@keyframes case-anchored-rumble{
  0%,37%,39%{opacity:1;transform:translate(-50%,-50%) rotate(0)}
  40%,44%,48%{opacity:1;transform:translate(calc(-50% + 4px),calc(-50% - 2px)) rotate(.3deg)}
  42%,46%,50%{opacity:1;transform:translate(calc(-50% - 4px),calc(-50% + 2px)) rotate(-.3deg)}
  51%{opacity:1;transform:translate(calc(-50% + 7px),calc(-50% - 4px)) rotate(.45deg)}
  52%{opacity:1;transform:translate(calc(-50% - 8px),calc(-50% + 4px)) rotate(-.5deg)}
  53%{opacity:1;transform:translate(calc(-50% + 9px),calc(-50% - 5px)) rotate(.55deg)}
  54.5%{opacity:1;transform:translate(calc(-50% - 7px),calc(-50% + 3px)) rotate(-.4deg)}
  55%,94.9%{opacity:0;transform:translate(-50%,-50%) rotate(0)}
  95%,100%{opacity:1;transform:translate(-50%,-50%) rotate(0)}
}
@keyframes case-erupts-open{
  0%,54.9%{opacity:0;transform:translate(-50%,-50%) scale(.98,.94)}
  56%{opacity:1;transform:translate(-50%,-50%) scale(1.025,1.02)}
  58%,94.9%{opacity:1;transform:translate(-50%,-50%) scale(1)}
  95%,100%{opacity:0;transform:translate(-50%,-50%) scale(.98,.94)}
}
@media(prefers-reduced-motion:reduce){.world .world-suitcase.is-awake .case-closed{display:none;animation:none}.world .world-suitcase.is-awake .case-open{opacity:1;animation:none;transform:translate(-50%,-50%)}}
/* Reserve a clear band between the changing headline and the portrait arch. */
.hero{min-height:1225px}
.hero .proscenium{top:355px}
.hero .collage{top:370px}
@media(max-width:900px){.hero{min-height:1170px}.hero .proscenium{top:355px}.hero .collage{top:360px}}
@media(max-width:520px){.hero{min-height:1090px}.hero .proscenium{top:360px}.hero .collage{top:350px}}
/* Anchor the vapor's narrow end inside the velvet tray as it grows upward. */
.world-grid .world-suitcase .magic-plume{top:-17%;transform-origin:50% 94%}
.world-suitcase.is-awake .magic-plume{animation:plume-from-tray 22s ease-in-out infinite}
@keyframes plume-from-tray{
  0%,55%{opacity:0;transform:translateX(-50%) translateY(15px) scale(.58)}
  58%{opacity:.28;transform:translateX(-50%) translateY(11px) scale(.75)}
  65%{opacity:.8;transform:translateX(-50%) translateY(5px) scale(1)}
  78%,87%{opacity:.88;transform:translateX(-50%) translateY(0) scale(1.06)}
  94%{opacity:.3;transform:translateX(-50%) translateY(-12px) scale(1.13)}
  97%,100%{opacity:0;transform:translateX(-50%) translateY(-25px) scale(1.2)}
}
@media(prefers-reduced-motion:reduce){.world-suitcase.is-awake .magic-plume{animation:none;opacity:.55;transform:translateX(-50%) translateY(0) scale(1)}}
/* Rumble for about ten seconds in view, then open and let the props vanish. */
.world .world-suitcase .case-empty{opacity:0;z-index:4}
.world .world-suitcase .case-open{z-index:5}
.world .world-suitcase.is-awake .case-closed{animation:case-quick-rumble 18s linear infinite}
.world .world-suitcase.is-awake .case-empty{animation:case-empty-reveal 18s linear infinite}
.world .world-suitcase.is-awake .case-open{animation:case-props-vanish 18s linear infinite}
@keyframes case-quick-rumble{
  0%,4%{opacity:1;transform:translate(-50%,-50%)}
  6%,14%,22%,30%,38%,46%,54%{opacity:1;transform:translate(calc(-50% + 5px),calc(-50% - 3px)) rotate(.4deg)}
  10%,18%,26%,34%,42%,50%,55%{opacity:1;transform:translate(calc(-50% - 6px),calc(-50% + 3px)) rotate(-.45deg)}
  55.5%{opacity:1;transform:translate(-50%,-50%)}
  56.5%,92%{opacity:0;transform:translate(-50%,-50%)}
  95%,100%{opacity:1;transform:translate(-50%,-50%)}
}
@keyframes case-empty-reveal{
  0%,55.5%{opacity:0;transform:translate(-50%,-50%)}
  57%,92%{opacity:1;transform:translate(-50%,-50%)}
  95%,100%{opacity:0;transform:translate(-50%,-50%)}
}
@keyframes case-props-vanish{
  0%,55.5%{opacity:0;transform:translate(-50%,-50%)}
  57%,64%{opacity:1;transform:translate(-50%,-50%)}
  88%,100%{opacity:0;transform:translate(-50%,-50%)}
}
.world .world-suitcase.is-awake .case-light{animation:flat-case-gleam 18s ease-in-out infinite}
.world-suitcase.is-awake .preopen-mist{animation:seam-mist-quick 18s ease-in-out infinite}
@keyframes seam-mist-quick{0%,40%,96%,100%{opacity:0}48%{opacity:.32;transform:translate(-50%,-5px) scale(1)}57%,64%{opacity:.7;transform:translate(-50%,-40px) scale(1.2)}82%{opacity:.2;transform:translate(-50%,-85px) scale(1.4)}92%{opacity:0}}
.world-suitcase.is-awake .preopen-dust{animation:dust-quick 18s linear infinite}
@keyframes dust-quick{0%,43%,96%,100%{opacity:0}50%,80%{opacity:1}92%{opacity:0}}
/* The image's narrow smoke tip lands inside the open tray at every viewport. */
.world-grid .world-suitcase .magic-plume{top:-14%}
@media(max-width:800px){.world-grid .world-suitcase .magic-plume{top:-9%}}
@media(max-width:520px){.world-grid .world-suitcase .magic-plume{top:-7%}}
.world-suitcase.is-awake .magic-plume{animation:plume-quick 18s ease-in-out infinite}
@keyframes plume-quick{0%,55%,100%{opacity:0;transform:translateX(-50%) translateY(15px) scale(.58)}59%{opacity:.35;transform:translateX(-50%) translateY(10px) scale(.76)}67%,75%{opacity:.83;transform:translateX(-50%) translateY(0) scale(1.04)}90%{opacity:.17;transform:translateX(-50%) translateY(-10px) scale(1.13)}96%{opacity:0;transform:translateX(-50%) translateY(-18px) scale(1.2)}}
.world-suitcase.is-awake .living-vapor{animation-duration:18s}
.world-suitcase.is-awake .ghost-one,.world-suitcase.is-awake .ghost-two,.world-suitcase.is-awake .ghost-three{animation-duration:18s}
@media(prefers-reduced-motion:reduce){.world .world-suitcase .case-empty{opacity:1}.world .world-suitcase .case-open{opacity:0}.world .world-suitcase.is-awake .case-empty,.world .world-suitcase.is-awake .case-open{animation:none}.world .world-suitcase.is-awake .preopen-mist,.world .world-suitcase.is-awake .preopen-dust{animation:none}}
/* The opener shares the burgundy theater palette used throughout the site. */
.hero{background:radial-gradient(ellipse at 50% 48%,#5b1c2b 0%,#32121e 46%,#170b13 82%)}
/* The revised plume has a broad smoke bed rising from the props across the tray. */
.world-grid .world-suitcase .magic-plume{top:-22%;width:min(100%,1080px)}
@media(max-width:800px){.world-grid .world-suitcase .magic-plume{top:-16%}}
@media(max-width:520px){.world-grid .world-suitcase .magic-plume{top:-13%}}
/* Bring the next section closer after the suitcase animation. */
.world>.rabbit-run{margin-top:0}
/* Seat the plume's smoke bed just above the open props. */
.world-grid .world-suitcase .magic-plume{top:-12%}
@media(max-width:800px){.world-grid .world-suitcase .magic-plume{top:-8%}}
@media(max-width:520px){.world-grid .world-suitcase .magic-plume{top:-5%}}
/* Send the rabbits across the page from right to left, facing their path. */
@keyframes rabbit-contained-cross-reverse{
  0%{left:calc(100% - var(--rabbit-width, 120px));opacity:0}
  4%{opacity:1}
  94%{opacity:1}
  100%{left:0;opacity:0}
}
.rabbit-run .rabbit-lane-a,.rabbit-run .rabbit-lane-b,.hero .rabbit-lane-a,.hero .rabbit-lane-b{animation-name:rabbit-contained-cross-reverse}
.rabbit-lane img,.rabbit-run .rabbit-lane img,.hero .rabbit-lane img,.rabbit-lane-b img,.rabbit-run .rabbit-lane-b img,.hero .rabbit-lane-b img{animation-name:rabbit-hop-left;transform:scaleX(1)}
@keyframes rabbit-hop-left{0%,100%{transform:translateY(0) scaleX(1) rotate(-3deg)}48%{transform:translateY(-40px) scaleX(1) rotate(8deg)}}
@media(prefers-reduced-motion:reduce){.rabbit-lane img,.rabbit-run .rabbit-lane img,.hero .rabbit-lane img{animation:none;transform:scaleX(1)}}
/* Transparent circular cues gently surface from the photographs and vanish. */
.photo-face .photo-prompt{position:absolute;left:50%;top:48%;z-index:2;display:grid;place-items:center;width:clamp(64px,7vw,92px);height:clamp(64px,7vw,92px);border:1px solid #fff8e6a8;border-radius:50%;background:#190d1852;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);color:#fff8e8;text-align:center;text-shadow:0 1px 6px #190b13;font:700 clamp(10px,.9vw,13px)/1.15 "DM Sans",Arial,sans-serif;letter-spacing:.04em;box-shadow:inset 0 0 15px #fff3d124,0 0 12px #ecd9b744;pointer-events:none;opacity:0;transform:translate(-50%,-50%) scale(.78);animation:photo-prompt-breathe 6.4s ease-in-out infinite}
.floating-right .photo-prompt{animation-delay:-1.4s}.floating-third .photo-prompt{animation-delay:-2.8s}.floating-fourth .photo-prompt{animation-delay:-4.2s}
@keyframes photo-prompt-breathe{0%,12%,75%,100%{opacity:0;transform:translate(-50%,-50%) scale(.78)}27%,48%{opacity:.96;transform:translate(-50%,-50%) scale(1.04)}61%{opacity:.5;transform:translate(-50%,-50%) scale(1.12)}}
.flip-card.is-flipped .photo-prompt{display:none}
@media(max-width:520px){.photo-face .photo-prompt{width:54px;height:54px;font-size:9px;letter-spacing:0}}
@media(prefers-reduced-motion:reduce){.photo-face .photo-prompt{animation:none;opacity:.85;transform:translate(-50%,-50%)}}

/* Social links share the masthead while the opening stage stays burgundy. */
.masthead{background:#170b13;gap:clamp(12px,1.5vw,24px)}
.masthead nav{gap:clamp(12px,1.5vw,28px)}
.header-social{display:flex;align-items:center;gap:clamp(12px,1.5vw,26px);white-space:nowrap}
.header-social a{color:#d1c5b1;font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;transition:color .25s}
.header-social a:hover{color:var(--gold)}
.hero{background:radial-gradient(ellipse at 50% 48%,#672338 0%,#3d1728 48%,#170b13 84%)}
@media(max-width:1100px){.masthead nav{display:none}}
@media(max-width:800px){.masthead{height:104px;padding:0 20px 33px}.header-social{position:absolute;left:20px;bottom:10px;gap:22px}.header-social a{font-size:11px;letter-spacing:.09em}}
.masthead .header-social{gap:8px;margin-left:0}
.masthead .header-social a{display:grid;place-items:center;width:38px;height:38px;color:#d1c5b1;border-radius:50%;transition:color .25s,background .25s}
.masthead .header-social a:hover,.masthead .header-social a:focus-visible{color:var(--gold);background:#ffffff16}
.masthead .header-social svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round}
.masthead .header-social .icon-dot{fill:currentColor;stroke:none}
.masthead .header-social path{fill:currentColor;stroke:none}
.masthead .header-subscribe{font-size:12px;letter-spacing:.12em;font-weight:700;color:#d1c5b1;white-space:nowrap;text-decoration:none}
.masthead .header-subscribe:hover,.masthead .header-subscribe:focus-visible{color:var(--gold)}
@media(max-width:800px){.masthead .header-subscribe{position:absolute;left:20px;bottom:17px;font-size:11px}}
@media(max-width:800px){.masthead .header-social{left:auto;right:16px;bottom:5px;gap:5px}.masthead .header-social a{width:38px;height:38px}}

/* A rabbit crosses each way, always looking in its direction of travel. */
.rabbit-run .rabbit-lane-a,.hero .rabbit-lane-a{animation-name:rabbit-contained-cross}
.rabbit-run .rabbit-lane-b,.hero .rabbit-lane-b{animation-name:rabbit-contained-cross-reverse}
.rabbit-run .rabbit-lane-a img,.hero .rabbit-lane-a img{animation-name:rabbit-hop-right;transform:scaleX(-1)}
.rabbit-run .rabbit-lane-b img,.hero .rabbit-lane-b img{animation-name:rabbit-hop-left;transform:scaleX(1)}
@keyframes rabbit-hop-right{0%,100%{transform:translateY(0) scaleX(-1) rotate(3deg)}48%{transform:translateY(-40px) scaleX(-1) rotate(-8deg)}}
@media(prefers-reduced-motion:reduce){.rabbit-run .rabbit-lane-a img,.hero .rabbit-lane-a img{animation:none;transform:scaleX(-1)}.rabbit-run .rabbit-lane-b img,.hero .rabbit-lane-b img{animation:none;transform:scaleX(1)}}

/* Left-side crows face inward; speech and button labels remain unmirrored. */
.left-crow .crow-frame{transform:scaleX(-1)}
.hero>.left-crow{left:3%;right:auto;top:155px;bottom:auto}
.world>.left-crow{left:4%;right:auto;top:7rem}
.performances>.left-crow{left:3%;right:auto;top:5%}
.about>.left-crow{left:3%;right:auto;bottom:3%}
.booking>.left-crow{left:3%;right:auto;bottom:2%}
.video-theater>.left-crow,.photo-stage>.left-crow{left:5%!important;right:auto!important;bottom:0}
@media(max-width:620px){.hero>.left-crow{left:3%;right:auto;top:270px;width:56px}.world>.left-crow{left:3%;right:auto}.performances>.left-crow{left:2%;right:auto;top:2%}.about>.left-crow{left:2%;right:auto;bottom:2%}.booking>.left-crow{left:2%;right:auto;bottom:1%}.video-theater>.left-crow,.photo-stage>.left-crow{left:3%!important;right:auto!important}}

/* Four quiet silhouette poses bubble up and vanish among the existing magic motifs. */
.shadow-figure{position:absolute;left:4%;bottom:-125px;z-index:3;width:clamp(80px,9vw,135px);height:clamp(100px,13vw,180px);background:var(--shadow-pose) center/contain no-repeat;pointer-events:none;opacity:0;filter:drop-shadow(0 0 2px #e4c795);animation:shadow-rise var(--shadow-duration) linear var(--shadow-delay) infinite}
.shadow-figure-2{left:auto;right:5%;width:clamp(65px,8vw,115px);animation-direction:normal}
@keyframes shadow-rise{0%{opacity:0;transform:translate3d(0,70px,0) rotate(-8deg)}10%{opacity:.58}21%{opacity:0}34%{opacity:.48}46%{opacity:0}60%{opacity:.5}71%{opacity:0}84%{opacity:.42}100%{opacity:0;transform:translate3d(10px,calc(0px - var(--shadow-travel)),0) rotate(7deg)}}
@media(max-width:620px){.shadow-figure{left:2%;width:58px;height:84px;filter:drop-shadow(0 0 2px #f0d59c)}.shadow-figure-2{display:block;left:auto;right:2%}}
@media(prefers-reduced-motion:reduce){.shadow-figure{animation:none;display:none}}

.video-theater,.video-outro,.photo-stage,.photo-outro{position:relative}
/* Keep the shadow readable against the burgundy stage while retaining a soft silhouette. */
.shadow-figure{background:#bca68e;-webkit-mask:var(--shadow-pose) center/contain no-repeat;mask:var(--shadow-pose) center/contain no-repeat;filter:drop-shadow(0 0 6px #d5b78b)}
@keyframes shadow-rise{0%{opacity:0;transform:translate3d(0,70px,0) rotate(-8deg)}5%,24%{opacity:.82}30%{opacity:0}38%,62%{opacity:.73}68%{opacity:0}75%,94%{opacity:.83}100%{opacity:0;transform:translate3d(10px,calc(0px - var(--shadow-travel)),0) rotate(7deg)}}
/* Each side gets a different pose in alternating twelve-second turns. */
.shadow-figure{animation:shadow-turn 24s linear var(--shadow-delay) infinite}
@keyframes shadow-turn{
  0%{opacity:0;transform:translate3d(0,70px,0) rotate(-8deg)}
  5%,35%{opacity:.88}
  46%{opacity:0;transform:translate3d(10px,calc(0px - var(--shadow-travel)),0) rotate(7deg)}
  47%,100%{opacity:0;transform:translate3d(10px,calc(0px - var(--shadow-travel)),0) rotate(7deg)}
}
@media(prefers-reduced-motion:reduce){.shadow-figure{animation:none;display:none}}
/* The right-hand visitor peeks past the page edge, then retreats. */
.shadow-figure-2{left:auto;right:0;top:var(--peek-top,42%);bottom:auto;animation-name:shadow-peek;transform-origin:center}
@keyframes shadow-peek{
  0%{opacity:0;transform:translate3d(105%,0,0) scaleX(-1) rotate(7deg)}
  7%{opacity:.88;transform:translate3d(48%,0,0) scaleX(-1) rotate(4deg)}
  18%,34%{opacity:.9;transform:translate3d(23%,0,0) scaleX(-1) rotate(-3deg)}
  46%{opacity:0;transform:translate3d(105%,0,0) scaleX(-1) rotate(7deg)}
  47%,100%{opacity:0;transform:translate3d(105%,0,0) scaleX(-1) rotate(7deg)}
}
@media(max-width:620px){.shadow-figure-2{left:auto;right:0;width:78px;height:105px}}
@media(prefers-reduced-motion:reduce){.shadow-figure-2{animation:none;display:none}}
/* The supplied crouching silhouette is the right-edge visitor. */
.shadow-figure-2{width:clamp(100px,12vw,175px);height:clamp(105px,13vw,180px)}
@media(max-width:620px){.shadow-figure-2{width:100px;height:110px}}
/* Restore the main portrait's occasional wink on phones with matched framing. */
.central-portrait.wink-photo > img,.central-portrait.wink-photo .wink-frame{object-position:center center}
@media(max-width:620px) and (prefers-reduced-motion:no-preference){.central-portrait.wink-photo .wink-frame{display:block;animation:wink 5s .5s infinite}}
/* A soft double pulse makes the music control feel alive without shifting it. */
.music-toggle{position:relative;animation:music-heartbeat 2.8s ease-in-out infinite}
.music-toggle::after{content:"";position:absolute;inset:-5px;border:1px solid #f3cf8f;border-radius:inherit;pointer-events:none;opacity:0;animation:music-heartbeat-ring 2.8s ease-out infinite}
@keyframes music-heartbeat{0%,17%,30%,100%{box-shadow:0 5px 16px #0008,0 0 0 0 #e9c47b00}9%,23%{box-shadow:0 5px 16px #0008,0 0 16px 4px #e9c47b99}}
@keyframes music-heartbeat-ring{0%,17%,30%,100%{opacity:0;transform:scale(.86)}9%,23%{opacity:.7;transform:scale(1.12)}}
@media(prefers-reduced-motion:reduce){.music-toggle,.music-toggle::after{animation:none}}

.performance-links{display:flex;flex-wrap:wrap;gap:14px;margin-top:26px;align-items:center}.performance-links .button{margin:0;white-space:nowrap}.performance-links .photo-cta{background:transparent;border:1px solid var(--gold);color:var(--cream)}.performance-links .photo-cta:hover{background:var(--gold);color:var(--ink)}@media(max-width:600px){.performance-links{align-items:stretch;flex-direction:column}.performance-links .button{text-align:center;white-space:normal}}

.about .credits{list-style:disc;padding:22px 0 0 25px;font-size:14px;letter-spacing:.04em;line-height:1.55}.about .credits li{padding:3px 0}.about .credits li::marker{color:var(--gold)}

.about-copy .credits-intro{border-top:1px solid var(--line);padding-top:24px;margin:30px 0 12px;font-size:16px;line-height:1.55;color:var(--cream)}.about .credits{border-top:0;margin-top:0;padding-top:0}
/* Leave room for the Nevermore sign and the crow’s upward hop inside the section. */
.world>.crow-perch.left-crow{top:4rem}
@media(max-width:620px){.world>.crow-perch.left-crow{top:3.5rem}}
/* Newsletter status for the gallery pages. */
.subscribe [role="status"]{font-size:14px;color:#d8c5a5;min-height:1.6em;margin:10px 0 0}
