/* Four rooms, one theatre. The stage artwork carries the scene. */
[hidden]{display:none!important}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.room-world{min-height:max(800px,100svh);height:auto;display:flex;flex-direction:column}
.room-world .scenery{position:absolute;inset:-1%;height:100%;transition:transform 1.4s ease,filter 1.4s ease}
.room-world .scenery img{object-position:65% 50%}
.room-shade{position:absolute;inset:0;z-index:-2;pointer-events:none;background:linear-gradient(90deg,#090605bd 0%,#09060565 36%,#09060500 68%),linear-gradient(180deg,#08050570,transparent 20%,transparent 70%,#080505e8)}
.room-header{position:relative;top:auto;left:auto;right:auto;padding:26px 4%;min-height:94px;display:grid;grid-template-columns:1fr auto 1fr;gap:20px}
.backstage{font-size:12px;letter-spacing:.12em;justify-self:start;display:inline-flex;align-items:center;gap:12px;padding:12px 0;transition:gap .2s}
.backstage:hover{gap:17px}
.room-wordmark{font:22px DM,serif;letter-spacing:.2em;text-shadow:0 3px 12px #0009}
.room-header .motion{justify-self:end}
.room-layout{position:relative;flex:1;width:min(1380px,100%);margin:auto;padding:22px 6% 70px;display:flex;align-items:center;min-height:670px}
.room-content{position:relative;width:520px;max-width:46%;z-index:1}
.room-title{position:relative;inset:auto;height:220px;width:calc(100% + 44px);margin:0 -22px 16px;pointer-events:none}
.room-title canvas{display:block}
.room-lead{font-size:23px;letter-spacing:.08em;line-height:1.6;margin:0 0 6px;color:#f2dfc6}
.room-copy{font-size:14px;line-height:1.9;letter-spacing:.07em;margin:0;color:#c9b5a0;text-shadow:0 2px 14px #000}
.room-action{width:100%;max-width:340px;display:flex;align-items:center;justify-content:space-between;padding:18px 21px;margin-top:32px;border-top:1px solid #dbb38b8c;border-bottom:1px solid #dbb38b50;background:linear-gradient(120deg,#831b18e6,#46120fc9);box-shadow:0 8px 25px #0005;letter-spacing:.09em;font-size:14px;transition:background .25s,transform .25s}
.room-action span{font:22px DM,serif}
.room-action:hover{background:#a12922;transform:translateY(-2px)}
.room-content .quiet-link{margin:17px 0 0;line-height:1.8;font-size:11px;max-width:340px}
.world .room-footer{position:relative;bottom:auto;left:auto;right:auto;display:flex;gap:24px;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:22px 4%;border-top:1px solid #b08b641a;background:#08050555;line-height:1.8;z-index:2}
.room-nav{display:flex;align-items:center;justify-content:center;gap:24px;flex-wrap:wrap;color:#cdb49c;font-size:11px;letter-spacing:.06em}
.room-nav a{position:relative;padding:7px 0}
.room-nav a[aria-current=page]{color:#f8dfb9}
.room-nav a[aria-current=page]::after{content:'';position:absolute;bottom:0;left:50%;width:16px;height:2px;background:#c14232;transform:translateX(-50%)}
.about-intro{display:flex;align-items:center;gap:23px;margin:0 0 10px;padding-left:6px}
.portrait-seal{width:76px;height:76px;object-fit:cover;border-radius:50%;border:1px solid #b4917060;box-shadow:0 0 0 5px #100807,0 0 0 6px #b4917033,0 10px 30px #0007}
.light-switch{display:flex;align-items:center;gap:11px;padding:15px 1px;margin-top:18px;font-size:12px;letter-spacing:.12em;color:#cba98a}
.light-switch i{font-style:normal;opacity:.5;transition:transform .3s}
.light-switch:hover i{transform:translate(3px,-3px)}
.switch-dot{width:6px;height:6px;border-radius:50%;border:1px solid #c17157;box-shadow:0 0 0 4px #50161150;transition:.5s}
.light-switch[aria-pressed=true] .switch-dot{background:#f39f65;box-shadow:0 0 14px 4px #d849235c}
.lantern-glow{pointer-events:none;position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse at 78% 40%,#fc4a1647,transparent 44%);opacity:0;transition:opacity 1.5s;mix-blend-mode:screen}
.lantern-lit .lantern-glow,.light-on .lantern-glow,[data-room=about]:has(.light-switch[aria-pressed=true]) .lantern-glow{opacity:1}
.lantern-lit .scenery,.light-on .scenery,[data-room=about]:has(.light-switch[aria-pressed=true]) .scenery{filter:brightness(1.24) saturate(1.1)}
.paper-index{position:relative;width:100%;max-width:440px;margin:0 0 26px;padding-top:6px}
.index-tabs{display:flex;gap:5px;margin-left:14px;position:relative;z-index:2}
.index-tabs button{position:relative;padding:12px 21px 13px;font-size:12px;letter-spacing:.14em;border:1px solid #aa785a55;border-bottom:0;clip-path:polygon(7% 0,93% 0,100% 100%,0 100%);background:#25140feb;transition:background .3s,color .3s,transform .3s;color:#b9987c}
.index-tabs button[aria-selected=true]{background:#7b2921;color:#f2d7b8;transform:translateY(1px);padding-top:11px}
.index-leaf{position:relative;isolation:isolate;min-height:162px;padding:30px 26px 30px;border:1px solid #ad765a73;background:repeating-linear-gradient(24deg,#ffffff01 0px,#ffffff01 1px,transparent 1px,transparent 4px),linear-gradient(130deg,#291913ed,#150e0beb);box-shadow:3px 5px #35170ec4,4px 6px #b5905833,8px 12px 26px #0008;transition:border-color .35s,transform .35s}
.index-leaf::after{content:'';position:absolute;inset:5px;border:1px solid #9d785b20;pointer-events:none}
.index-leaf h2{font-family:'Microsoft YaHei','PingFang SC',sans-serif;font-size:18px;letter-spacing:.03em;margin:0 0 13px;line-height:1.5}
.index-leaf p{font-size:12px;line-height:1.8;color:#c9ab93;margin:0;max-width:90%}
.demo-note{position:absolute;bottom:12px;right:15px;font-size:9px;letter-spacing:.08em;color:#ac88738c}
.index-marker{position:absolute;top:21px;right:16px;width:4px;height:25px;border-radius:0 0 2px 2px;background:#c54833;box-shadow:0 2px 5px #0005;transition:height .4s,background .4s}
body[data-feature=function] .index-marker,[data-feature-view=function] .index-marker{height:38px;background:#ba9373}
body[data-feature=library] .index-marker,[data-feature-view=library] .index-marker{height:49px;background:#816d5d}
body[data-feature=function] .index-leaf,[data-feature-view=function] .index-leaf{border-color:#ce9c7280;transform:rotate(-.25deg)}
body[data-feature=library] .index-leaf,[data-feature-view=library] .index-leaf{border-color:#ab958980;transform:rotate(.25deg)}
.download-note{display:flex;gap:18px;font-size:10px;letter-spacing:.06em;color:#b99d85}
[data-room=manager] .room-action{margin-top:15px}
[data-room=manager] .room-title{height:235px;margin-bottom:4px}
.invitation-copy{margin:0 0 23px 5px}
.theatre-ticket{position:relative;display:flex;align-items:stretch;width:390px;max-width:100%;height:142px;padding:0;background:#d7c09d;color:#291710;text-align:left;box-shadow:5px 7px 0 #77241d,9px 13px 25px #0007;transform:rotate(-2deg);transition:transform .4s,box-shadow .4s;margin:14px 0 25px;border:1px solid #f2d8b0;isolation:isolate}
.theatre-ticket::before,.theatre-ticket::after{content:'';position:absolute;z-index:2;width:17px;height:17px;border-radius:50%;background:#160b09;right:94px}
.theatre-ticket::before{top:-9px}.theatre-ticket::after{bottom:-9px}
.theatre-ticket:hover{transform:rotate(0deg) translateY(-4px);box-shadow:3px 5px 0 #77241d,9px 15px 30px #0009;color:#291710}
.ticket-main{position:relative;flex:1;display:flex;flex-direction:column;justify-content:center;padding:17px 24px;background:repeating-linear-gradient(36deg,#6a493b09 0px,#6a493b09 1px,transparent 1px,transparent 3px)}
.ticket-main small{font:10px DM,serif;letter-spacing:.24em;opacity:.6;margin-bottom:8px}
.ticket-main strong{font-family:'Microsoft YaHei','PingFang SC',sans-serif;font-size:27px;font-weight:500;letter-spacing:.15em;line-height:1.2}
.ticket-main>span{font-size:9px;letter-spacing:.21em;margin-top:11px;opacity:.65}
.ticket-stub{flex:0 0 103px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:13px;color:#ebc8a0;background:repeating-linear-gradient(-45deg,#b5473015 0,#b5473015 1px,transparent 1px,transparent 5px),#72231c;border-left:2px dashed #d9b48b8c;font-size:12px;letter-spacing:.1em;transition:transform .6s,opacity .5s}
.ticket-stub i{font:23px DM,serif}
.theatre-ticket[aria-expanded=true]{transform:rotate(0);box-shadow:2px 3px 0 #77241d,6px 9px 20px #0007}
.theatre-ticket[aria-expanded=true] .ticket-stub{transform:translateX(9px) rotate(4deg)}
.ticket-reveal{display:flex;align-items:center;gap:25px;max-width:440px;padding-top:7px;animation:unfold-in .65s ease both;transform-origin:top}
.ticket-reveal .qr-crop{flex:none;width:176px;height:176px;margin:0;border-width:7px;box-shadow:2px 4px 12px #0005}
.tiny-label{display:block;font-size:10px;letter-spacing:.15em;color:#bba18a}
.copy-number{padding:12px 0;text-align:left;display:flex;flex-direction:column;gap:12px}
.copy-number strong{font:21px DM,serif;letter-spacing:.025em;color:#eddbbe}
.copy-number span{font-size:11px;color:#c7a887}
.ticket-details .fine{max-width:180px;font-size:10px;margin:0;line-height:1.8}
[data-room=community] .room-layout{align-items:flex-start;padding-top:40px}
.correspondence{max-width:430px;perspective:900px;padding-top:6px}
.sealed-letter{position:relative;width:100%;height:180px;isolation:isolate;padding:0;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:12px;transform:rotate(2deg);transition:transform .5s;background:linear-gradient(22deg,#41221a,#271610);border:1px solid #ad7a5f77;box-shadow:0 14px 36px #0006;overflow:hidden}
.sealed-letter::before{content:'';position:absolute;inset:7px;border:1px solid #b7895d32;z-index:-1}
.sealed-letter:hover{transform:rotate(0deg) translateY(-3px)}
.letter-fold{position:absolute;left:-2px;right:-2px;top:0;height:115px;clip-path:polygon(0 0,100% 0,50% 100%);background:linear-gradient(160deg,#6a3726,#381c14 90%);filter:drop-shadow(0 3px 2px #000);z-index:-1;transition:transform .8s}
.wax-seal{position:absolute;top:72px;left:calc(50% - 32px);width:65px;height:65px;border-radius:45% 52% 47% 49%;background:radial-gradient(circle at 35% 25%,#c14831,#8d241b 45%,#55130f);border:3px solid #963c29;box-shadow:inset 1px 2px 3px #dd754853,inset -2px -3px 4px #3d090a80,2px 5px 9px #0006;display:grid;place-items:center;transition:transform .6s,opacity .6s}
.wax-seal::before{content:'';position:absolute;inset:7px;border:1px solid #dd7c4d70;border-radius:50%;box-shadow:0 1px 1px #3f0a08}
.wax-seal span{font:31px DM,serif;color:#d3724d;text-shadow:0 1px 1px #49100b;transform:rotate(-12deg)}
.letter-caption{margin-bottom:18px;font-size:11px;letter-spacing:.16em;color:#d3ae87}
.letter-caption i{font-style:normal;margin-left:10px}
.sealed-letter[aria-expanded=true]{height:135px;transform:rotate(0);border-bottom-color:#8c5f4138}
.sealed-letter[aria-expanded=true] .wax-seal{transform:translate(115px,17px) rotate(25deg) scale(.76);opacity:.65}
.sealed-letter[aria-expanded=true] .letter-fold{transform:translateY(-28px)}
.letter-reveal{position:relative;margin:0 9px;padding:23px 26px 8px;border:1px solid #a77d4b38;border-top:0;background:linear-gradient(140deg,#231711fa,#100b09f5);box-shadow:0 12px 32px #0005;animation:unfold-in .6s ease both;transform-origin:top center}
.letter-salutation{font-size:12px;letter-spacing:.12em;margin:0 0 20px;color:#c6a78c}
.letter-reveal .contact-line{padding:17px 0;grid-template-columns:39px 1fr 25px;gap:8px}
.letter-reveal .contact-line strong{font:21px DM,serif;letter-spacing:.025em}
.letter-reveal .contact-line span,.letter-reveal .contact-line small{font-size:10px}
.letter-signature{margin:16px 0 12px;text-align:right;font-size:15px;letter-spacing:.1em;color:#c09f83}
.letter-signature span{font:10px DM,serif;letter-spacing:.12em;display:block;margin-top:5px;opacity:.7}
@keyframes unfold-in{from{opacity:0;transform:translateY(-12px) rotateX(-8deg)}to{opacity:1;transform:none}}
@media(min-width:1500px){.room-layout{padding-left:3%;padding-right:3%}.room-content{width:550px}.room-title{height:250px}.room-copy{font-size:15px}}
@media(max-width:1000px) and (min-width:701px){.room-content{max-width:52%;width:470px}.room-layout{padding-left:5%;padding-right:5%}.room-title{height:200px}.ticket-reveal{gap:16px}.ticket-reveal .qr-crop{width:152px;height:152px}.copy-number strong{font-size:19px}.room-nav{gap:17px}}
@media(max-width:700px){
 .room-world{min-height:100svh;height:auto}.room-world .scenery{position:absolute;inset:0;height:100%;transform:none}.room-world .scenery img{object-position:70% top;object-fit:cover}.room-shade{background:linear-gradient(180deg,#09050555 0%,#0905056e 22%,#090505d6 55%,#090505ed 100%)}
 .room-header{top:auto;left:auto;right:auto;padding:19px 23px;min-height:82px;gap:12px}.backstage{font-size:10px;gap:8px}.room-wordmark{font-size:17px;letter-spacing:.14em}.room-header .motion{width:36px;height:36px}
 .room-layout{display:block;min-height:calc(100svh - 207px);padding:28px 27px 54px;margin:0}.room-content{max-width:100%;width:100%;margin:0 auto}.room-title{height:205px;width:calc(100% + 28px);margin:0 -14px 22px;inset:auto}.room-copy{font-size:13px}.room-lead{font-size:20px}.room-action{max-width:none;padding:17px 18px;font-size:13px}.about-intro{padding:0;gap:20px;margin-top:18px}.portrait-seal{width:68px;height:68px}.light-switch{margin-top:15px}
 .world .room-footer{padding:19px 23px;gap:12px;display:grid;grid-template-columns:1fr auto;font-size:9px}.room-footer .room-nav{grid-column:1/-1;grid-row:1;justify-content:space-between;gap:10px;font-size:10px;padding-bottom:10px}.room-footer>a{justify-self:end}.room-content .quiet-link{font-size:10px;max-width:none}
 [data-room=manager] .room-title{height:215px}.paper-index{margin-bottom:25px}.index-leaf{padding:25px 22px 31px;min-height:157px}.index-leaf h2{font-size:17px}.index-tabs button{padding-left:18px;padding-right:18px;font-size:11px}.download-note{font-size:9px;gap:15px}
 [data-room=community] .room-layout{padding-top:28px}.invitation-copy{margin:0 0 25px 1px}.theatre-ticket{width:100%;height:132px;transform:rotate(-1.5deg)}.ticket-main{padding:15px 20px}.ticket-main strong{font-size:24px}.ticket-stub{flex-basis:92px;font-size:11px}.theatre-ticket::before,.theatre-ticket::after{right:83px}.ticket-reveal{gap:18px;padding-top:12px}.ticket-reveal .qr-crop{width:154px;height:154px;border-width:6px}.ticket-details{min-width:0}.copy-number strong{font-size:18px}.copy-number span{font-size:10px}.ticket-details .fine{font-size:9px}.tiny-label{font-size:9px}
 .sealed-letter{height:178px}.letter-reveal{padding:23px 19px 8px;margin:0 5px}.letter-reveal .contact-line strong{font-size:20px}.sealed-letter[aria-expanded=true] .wax-seal{transform:translate(94px,15px) rotate(25deg) scale(.72)}
}
@media(max-width:365px){.room-layout{padding-left:21px;padding-right:21px}.room-title{height:188px}.ticket-reveal{flex-direction:column;align-items:center;gap:15px}.ticket-reveal .qr-crop{width:190px;height:190px}.ticket-details{text-align:center}.copy-number{align-items:center}.ticket-details .fine{max-width:none}.room-nav{font-size:9px!important}}
@media(prefers-reduced-motion:reduce){.room-world *, .room-world *::before,.room-world *::after{animation:none!important;transition:none!important}.theatre-ticket,.sealed-letter{transform:none!important}}
