/* TICINO CINEMATIC CITY — Stage 5. Isolated to the Square and Theatre.
   Self-hosted assets, no map scripts, tracking, geolocation, or external services. */
.room-home,.room-theatre{background:#080c17}
.room-home .world,.room-theatre .world{display:block;background:#070e16}
.room-home .rail,.room-theatre .rail,.room-home .people-panel,.room-theatre .people-panel,
.room-home .skyline,.room-theatre .skyline,.room-home .topbar,.room-theatre .topbar,
.room-home .page-footer,.room-theatre .page-footer{display:none!important}
.room-home .center-world,.room-theatre .center-world{background:#090b17;overflow:hidden}
.room-home .content,.room-theatre .content{max-width:none;width:100%;margin:0;padding:0;min-height:100svh}
.room-home .flash,.room-theatre .flash{position:relative;z-index:35;max-width:630px;margin:105px auto -90px}
.tc-overlay-header{height:83px;padding:0 clamp(18px,4vw,70px);position:absolute;top:0;left:0;right:0;z-index:38;display:flex;justify-content:space-between;align-items:center;gap:18px;background:linear-gradient(#050914e8,#080b13ac 72%,transparent);color:#f7e8d9}
.tc-logo{display:flex;align-items:center;gap:13px;font:24px/1 Georgia,serif;letter-spacing:.22em;z-index:1}
.tc-logo>span:first-child{border:1px solid #d9ac75;padding:9px 13px;font:italic 27px Georgia,serif;color:#eed1a6;box-shadow:0 0 35px #eea15a1f}
.tc-logo>span:last-child{display:block}.tc-logo small{display:block;font:8px Arial,sans-serif;letter-spacing:.23em;margin-top:8px;color:#c9aaa4}
.tc-headnote,.tc-profile-link,.tc-menu-button{font:10px Arial,sans-serif;letter-spacing:.19em}
.tc-headnote{color:#ddc7ba}.tc-header-tools{display:flex;align-items:center;gap:15px}
.tc-profile-link{color:#f2d8bf;padding:10px 15px;border:1px solid #eadbc068;background:#0e1722a9}
.tc-menu-button{border:1px solid #eadbc068;background:#1b1920d9;color:#ffe9d2;padding:12px 17px;display:flex;gap:18px;align-items:center;white-space:nowrap}
.tc-menu-button:hover,.tc-menu-button[aria-expanded=true]{background:#673735}.tc-menu-button span{font-size:17px}
.tc-quick-menu{position:absolute;z-index:60;top:77px;right:clamp(15px,4vw,70px);width:min(90vw,390px);display:grid;grid-template-columns:1fr 1fr;gap:0;background:linear-gradient(130deg,#1c2930f5,#1d1725f8);box-shadow:0 30px 90px #020408de;border:1px solid #e3af8a96;backdrop-filter:blur(24px);padding:14px}
.tc-quick-menu[hidden]{display:none!important}.tc-quick-menu>a,.tc-logout button{min-height:55px;display:flex;align-items:center;padding:14px;text-align:left;border-bottom:1px solid #c4a78c37;color:#e8d9ce;font:10px Arial,sans-serif;letter-spacing:.13em}
.tc-quick-menu>a:hover,.tc-quick-menu>a:focus-visible,.tc-logout button:hover{background:#9a6e6140;color:#fff}
.tc-logout{grid-column:span 2}.tc-logout button{background:transparent;width:100%;border:0}
.tc-micro{font:10px/1.55 Arial,sans-serif;letter-spacing:.25em;color:#e7b98c;text-shadow:0 2px 8px #05050a}
/* A street with three planes of architecture and physical movement. */
.tc-city{--walk:0;--look-x:0px;--look-y:0px;position:relative;min-height:800px;height:max(840px,100svh);isolation:isolate;overflow:hidden;color:#fff;background:#090d17}
.tc-sky{position:absolute;inset:-6%;background:radial-gradient(ellipse at 51% 39%,#80665eab 0,#332d44 29%,#1d1830 54%,#090a16 85%),linear-gradient(0deg,#090e19,#161525);filter:saturate(.9)}
.tc-sky:before{content:"";position:absolute;inset:0;background:url('/assets/city-photo.webp') 50% 26% / cover no-repeat;opacity:.21;mix-blend-mode:screen;filter:blur(2px) saturate(.4)}
.tc-sky:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#080916e6,transparent 28%,transparent 72%,#080916de),linear-gradient(0deg,#100e18 1%,transparent 52%,#080713b3)}
.tc-moon{position:absolute;left:50%;top:15%;border-radius:50%;width:47px;height:47px;background:#f8d7b6;box-shadow:0 0 42px 19px #ecac9b5e,0 0 170px 55px #e58b783a;filter:blur(.5px)}
.tc-perspective{position:absolute;inset:-5% -5% -3%;transform:translate3d(var(--look-x),var(--look-y),0) scale(calc(1 + var(--walk) * .17));transition:transform 550ms cubic-bezier(.18,.6,.24,1);will-change:transform}
.tc-cityback{position:absolute;top:17%;left:31%;width:38%;height:61%;background:repeating-linear-gradient(90deg,#090c1b 0 20px,#252333 21px 24px,#090f1c 26px 58px),linear-gradient(#382943,#0a1225);clip-path:polygon(0 16%,19% 16%,19% 0,38% 0,38% 18%,75% 18%,75% 9%,100% 9%,100% 100%,0 100%);opacity:.9;filter:blur(2px)}
.tc-cityback:after{content:"";position:absolute;inset:20% 10% 5%;background:repeating-linear-gradient(90deg,transparent 0 18px,#eab18c3b 19px 21px,transparent 23px 45px),repeating-linear-gradient(0deg,transparent 0 31px,#daa37825 31px 34px);filter:blur(3px)}
.tc-midbuilding{position:absolute;top:15%;width:32%;height:64%;background:linear-gradient(100deg,#0c101e 10%,#383041 52%,#080b18),repeating-linear-gradient(90deg,transparent,#fff2 5%);box-shadow:0 30px 45px #06080eb8,inset 0 0 80px #09080f}
.midbuilding-left{left:12%;transform:perspective(800px) rotateY(-20deg)}.midbuilding-right{right:12%;transform:perspective(800px) rotateY(20deg)}
.tc-midwindows{position:absolute;inset:14% 12% 7%;background:repeating-linear-gradient(90deg,transparent 0 16%,#11121b 16.5% 19%,transparent 20% 32%),repeating-linear-gradient(0deg,transparent 0 16%,#c79c794b 16% 17%,#11111b 18% 21%);opacity:.7}
.tc-alley{position:absolute;bottom:-27%;height:81%;left:50%;width:100%;transform:translateX(-50%);clip-path:polygon(47% 0,53% 0,100% 100%,0 100%);background:radial-gradient(ellipse at 50% 15%,#bf667271,transparent 20%),repeating-linear-gradient(179deg,#131721d0 0 17px,#513945b8 19px 21px,#0f1420 23px 44px),linear-gradient(90deg,#050a11,#51434b 46%,#171522);box-shadow:0 0 80px #e9977352;opacity:.91}
.tc-reflection{position:absolute;left:18%;right:18%;bottom:-22%;height:54%;background:radial-gradient(ellipse at 37% 40%,#ad39594b,transparent 37%),radial-gradient(ellipse at 61% 50%,#e7ae6c48,transparent 31%),repeating-linear-gradient(90deg,transparent 0 17px,#b9664d12 18px 20px);filter:blur(16px);transform:perspective(200px) rotateX(50deg)}
.tc-facade{position:absolute;top:13%;width:37%;height:106%;background:linear-gradient(90deg,#080a14fa,#322039,#140e1f,#090c16),repeating-linear-gradient(0deg,transparent 0 23px,#7c455427 24px 26px);box-shadow:0 0 75px 30px #02050d9c,inset 0 0 30px #b070573e;overflow:hidden}
.tc-leftfront{left:-3%;clip-path:polygon(0 0,100% 15%,100% 100%,0 100%);transform:perspective(850px) rotateY(10deg)}
.tc-rightfront{right:-3%;clip-path:polygon(0 15%,100% 0,100% 100%,0 100%);transform:perspective(850px) rotateY(-10deg)}
.tc-roof{position:absolute;top:13%;left:0;right:0;height:5%;border-top:8px ridge #765269;border-bottom:5px solid #27192c;background:#11121b;box-shadow:0 5px 30px #a9605154}
.tc-windows{position:absolute;top:19%;bottom:3%;left:7%;right:8%;background:repeating-linear-gradient(90deg,transparent 0 27%,#090c19 27% 31%,transparent 32% 49%),repeating-linear-gradient(0deg,transparent 0 24%,#120f1b 24% 29%,transparent 30% 48%),linear-gradient(110deg,#ad685a4d,#702a6b57 65%,#e6a75d3c);border-left:5px double #74556a;border-right:5px double #74556a;box-shadow:inset 0 0 85px #080713;filter:blur(.6px)}
.tc-streetglow{position:absolute;inset:40% 0 -10%;background:radial-gradient(ellipse at 45% 37%,#d0667951,transparent 44%),radial-gradient(ellipse at 86% 74%,#ef936f50,transparent 37%);filter:blur(11px);animation:tc-breathe 7.5s ease-in-out infinite alternate}
.tc-balcony{position:absolute;left:0;right:0;top:44%;height:2%;background:linear-gradient(#9c706b,#211625,#533746);box-shadow:0 4px 27px #cf7a7385,0 -5px 16px #db919647}
.tc-streetlamp{position:absolute;top:35%;width:7px;height:75%;background:linear-gradient(90deg,#020910,#95765b,#11121c);box-shadow:0 0 7px #000;opacity:.8}
.lamp-left{left:23%}.lamp-right{right:23%}
.tc-streetlamp:before{content:"";position:absolute;left:-7px;top:-8px;width:21px;height:49px;background:linear-gradient(90deg,#41313b,#f0bd83,#52303b);clip-path:polygon(20% 0,80% 0,100% 100%,0 100%);box-shadow:0 0 37px 21px #f7a77777;filter:blur(.5px)}
.tc-fog{position:absolute;pointer-events:none;width:65%;height:33%;bottom:5%;border-radius:50%;filter:blur(48px);background:#a65d7061;animation:tc-drift 14s ease-in-out infinite alternate}
.tc-fog-a{left:-18%;opacity:.39}.tc-fog-b{right:-18%;bottom:21%;opacity:.33;animation-delay:-7s}
.tc-scene-shade{pointer-events:none;position:absolute;inset:0;background:linear-gradient(180deg,#040611bb 0,transparent 22%,transparent 68%,#060915a3 97%),radial-gradient(ellipse at center 41%,transparent 9%,#03050d63 99%)}
.tc-headline{position:absolute;left:50%;top:19%;z-index:12;transform:translateX(-50%);width:min(610px,75vw);text-align:center;text-shadow:0 4px 19px #050512,0 15px 55px #050512}
.tc-headline h1{font:400 clamp(55px,6.4vw,114px)/.93 Georgia,serif;letter-spacing:-.065em;color:#f6ede7;margin:12px 0 18px}
.tc-headline h1 em{color:#e4b5c0;font-weight:400;font-style:italic}
.tc-headline p{font:15px/1.7 Georgia,serif;color:#f3e1da;max-width:405px;margin:auto;text-wrap:balance}
.tc-places{position:absolute;inset:0;z-index:14;pointer-events:none}
.tc-place{position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:4px;width:clamp(130px,13vw,220px);min-height:224px;text-align:center;padding:18px 9px 13px;pointer-events:auto;color:#fff8ec;transform:translateY(0) scale(1);transition:transform .6s,filter .5s,opacity .6s;filter:drop-shadow(0 10px 22px #01020d);isolation:isolate}
.tc-place:after{content:"";position:absolute;inset:10px 8px 3px;border:1px solid #c68a6757;z-index:-1;background:linear-gradient(130deg,#04071396,#3015247a);box-shadow:inset 0 0 35px #0009}
.tc-place:hover,.tc-place:focus-visible{transform:translateY(-15px) scale(1.07);filter:drop-shadow(0 0 20px #d775a87a);z-index:25}
.tc-place:focus-visible{outline:3px solid #f7d4a5}
.tc-place .tc-place-architecture{position:absolute;inset:0;z-index:-2;border:12px ridge #42303b;background:linear-gradient(95deg,#2b1621,#b25c735a 49%,#140d23);box-shadow:0 0 55px #dd597157,0 20px 19px #000a;overflow:hidden}
.tc-arch{position:absolute;top:2%;height:70%;left:6%;right:6%;border:5px solid #7d6060;border-radius:100px 100px 0 0;background:radial-gradient(ellipse at 65% 22%,#ffd4a37d,#4d234f99 58%,#080b19 89%);box-shadow:inset 0 0 40px #1b0916}
.tc-window{position:absolute;top:20%;bottom:0;left:47%;width:4px;background:#47303e;box-shadow:0 0 5px #f9b48e}
.tc-place-id,.tc-place small,.tc-place-open{font:9px/1.4 Arial,sans-serif;letter-spacing:.14em;color:#fbd4ac;text-shadow:0 2px 7px #05030b}
.tc-place-id{margin-bottom:auto;color:#ffe2bb}.tc-place strong{font:21px/1.02 Georgia,serif;letter-spacing:.05em;text-shadow:0 4px 10px #000}.tc-place small{font-size:8px;color:#ffcfcc}.tc-place-open{border-bottom:1px solid #e9c49d;padding-bottom:4px;margin-top:4px;font-weight:bold}
.tc-news{top:30%;left:10%;transform:perspective(600px) rotateY(8deg)}
.tc-community{top:30%;right:10%;transform:perspective(600px) rotateY(-8deg)}
.tc-theatre-gate{top:47%;left:calc(50% - 87px);--local-pink:#ee869c}
.tc-place.tc-theatre-gate{width:174px;min-height:204px}
.tc-gallery{top:49%;left:2.5%;transform:scale(.82);opacity:0;pointer-events:none}
.tc-guide{top:49%;right:2.5%;transform:scale(.82);opacity:0;pointer-events:none}
.tc-city[data-stop="1"] .tc-headline,.tc-city[data-stop="2"] .tc-headline{opacity:0;transform:translate(-50%,-26px);pointer-events:none}
.tc-headline{transition:opacity .5s,transform .65s}
.tc-city[data-stop="1"] .tc-news,.tc-city[data-stop="1"] .tc-community,.tc-city[data-stop="2"] .tc-news,.tc-city[data-stop="2"] .tc-community{opacity:.4;transform:scale(.88) translateY(-12%)}
.tc-city[data-stop="1"] .tc-gallery,.tc-city[data-stop="1"] .tc-guide,.tc-city[data-stop="2"] .tc-gallery,.tc-city[data-stop="2"] .tc-guide{opacity:1;pointer-events:auto;transform:scale(1) translateY(-8%)}
.tc-city[data-stop="2"] .tc-theatre-gate{transform:scale(1.3) translateY(-14%)}
.tc-walk-ui{position:absolute;z-index:22;bottom:25px;left:clamp(18px,5vw,90px);right:clamp(18px,5vw,90px);display:flex;align-items:end;gap:22px;padding:12px 0 0;color:#f7e4d7;pointer-events:none}
.tc-walk-intro{margin-right:auto;display:grid;gap:7px}.tc-walk-intro .tc-micro{font-size:8px}.tc-stop-name{font:22px Georgia,serif;letter-spacing:.07em}
.tc-walk-buttons{display:flex;gap:9px;pointer-events:auto}.tc-walk-buttons button{padding:13px 17px;white-space:nowrap;background:#1a1624d9;border:1px solid #cbb09e88;color:#fbe5db;font:10px Arial,sans-serif;letter-spacing:.12em;min-height:44px;transition:background .2s}
.tc-walk-buttons button:hover{background:#90495c}.tc-walk-buttons button:disabled{opacity:.35;cursor:default}
.tc-progress{display:flex;align-items:center;gap:5px;margin-bottom:10px}.tc-progress span{height:3px;width:30px;background:#a28b87ad}.tc-progress span.tc-lit{background:#ffd2ab;box-shadow:0 0 15px #fac0a2}
.tc-walk-hint{font:8px Arial,sans-serif;letter-spacing:.15em;color:#e6c0ac;margin-bottom:10px;white-space:nowrap}
.tc-curtain{position:absolute;z-index:11;top:0;bottom:0;width:7%;pointer-events:none;background:repeating-linear-gradient(93deg,#03040a 0 18px,#140c1e 24px 39px,#2c1423 44px 59px,#050810 65px 84px);filter:blur(4px);opacity:.8}.tc-curtain-left{left:-5%}.tc-curtain-right{right:-5%}
@keyframes tc-breathe{0%{opacity:.65}100%{opacity:1}}@keyframes tc-drift{0%{transform:translateX(-10%) scale(.9)}100%{transform:translateX(15%) scale(1.1)}}
/* Theatre street frontage — full width, human scale; three real permission-checked entrances */
.room-theatre .center-world{overflow:visible}
.tc-theatre{left:0;top:0;position:relative;isolation:isolate;overflow:hidden;min-height:860px;height:100svh;background:radial-gradient(ellipse at 69% 38%,#542039,#180f25 62%,#080914);color:#fff0e8}
.tc-theatre-sky{position:absolute;inset:0;background:radial-gradient(ellipse at 58% 36%,#86395964,transparent 65%),url('/assets/city-photo.webp') center 34% / cover no-repeat;opacity:.25;filter:saturate(.8) contrast(1.3)}
.tc-theatre-house{position:absolute;inset:4% -3% -20%;transform:perspective(1500px) rotateX(.5deg);background:linear-gradient(90deg,#090812 0%,#311b2f 12%,#3a1e33 28%,#2a142b 67%,#1e1327 83%,#090813);box-shadow:inset 0 110px 140px #04030c,inset 0 0 120px #020309}
.tc-theatre-house:after{content:"";position:absolute;inset:12% 1% 8%;background:repeating-linear-gradient(0deg,transparent 0 17px,#09091136 18px 20px),repeating-linear-gradient(90deg,#6d414b25 0 54px,#09051015 55px 58px);opacity:.75}
.tc-theatre-roofline{position:absolute;top:14%;left:0;right:0;height:5%;z-index:1;border-top:12px ridge #ab6578;border-bottom:7px double #8e4759;box-shadow:0 11px 19px #1b091c;background:#1e111e}
.tc-theatre-windows{position:absolute;top:0;left:10%;width:75%;height:15%;background:repeating-linear-gradient(90deg,#120d1a 0 4%,#794b567e 4% 5%,#070a18 5% 24%);box-shadow:inset 0 0 22px #d87b9e73}
.tc-theatre-wall{position:absolute;bottom:12%;left:6%;width:7%;height:69%;border-left:11px ridge #98566a;border-right:9px ridge #704359;box-shadow:2px 0 18px #0008}
.tc-theatre-street{position:absolute;bottom:0;left:0;right:0;height:24%;transform:perspective(150px) rotateX(15deg);background:repeating-linear-gradient(0deg,#080811 0 15px,#63435a56 17px 19px,#090914 21px 39px),radial-gradient(ellipse at 70% 13%,#c255787e,transparent 50%);box-shadow:0 -7px 18px #e48a8e57}
.tc-theatre-light{position:absolute;left:10%;top:20%;height:70%;width:80%;background:radial-gradient(ellipse at 77% 53%,#d4547752,transparent 55%),radial-gradient(ellipse at 24% 44%,#ae55616b,transparent 40%);filter:blur(30px);animation:tc-breathe 6s ease-in-out infinite alternate}
.tc-theatre-content{position:relative;z-index:5;max-width:1700px;margin:auto;min-height:795px;height:100%;display:flex;align-items:center;gap:clamp(18px,4vw,90px);padding:105px clamp(28px,5vw,92px) 85px}
.tc-theatre-caption{flex:0 0 30%;align-self:center;z-index:5;text-shadow:0 8px 27px #060413}
.tc-theatre-caption h1{font:normal clamp(47px,5vw,93px)/1.03 Georgia,serif;letter-spacing:-.06em;margin:18px 0 27px;max-width:580px}
.tc-theatre-caption h1 em{font-style:italic;color:#f1b3c5}.tc-theatre-caption p{font:clamp(15px,1.1vw,19px)/1.7 Georgia,serif;max-width:340px;color:#f1d9d4}
.tc-theatre-frontage{position:relative;width:min(920px,65vw);height:min(680px,76vh);flex:1 1 65%;padding-top:62px;align-self:center;background:linear-gradient(90deg,#080914,#2c1827 3%,#090a17 12%,#150e1b 83%,#3b2435 96%,#070811);border:12px ridge #4d2a39;box-shadow:0 10px 8px #060714,0 35px 80px #000c,0 0 110px #bf365f52,inset 0 0 45px #000a;transform:perspective(1250px) rotateY(-3deg)}
.tc-theatre-marquee{height:76px;position:absolute;top:-45px;left:-25px;right:-25px;z-index:4;background:linear-gradient(#0f0916,#2a1727 48%,#090b13);border:4px ridge #b27679;box-shadow:0 7px 22px #000b,0 0 30px #d368795c;display:flex;justify-content:space-around;align-items:center;color:#ffd5ac;text-shadow:0 0 20px #f99876}
.tc-theatre-marquee strong{font:clamp(16px,1.65vw,27px) Georgia,serif;letter-spacing:.3em;font-weight:400}.tc-theatre-marquee strong i{font-weight:400;font-style:italic;color:#e8abc3}.tc-theatre-marquee>span{font:23px Georgia,serif}
.tc-theatre-doors{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;height:100%;padding:0 9px 21px}
.tc-theatre-door{position:relative;display:flex;flex-direction:column;justify-content:flex-end;min-width:0;min-height:0;border:5px ridge #694354;color:#fcebe0;isolation:isolate;overflow:hidden;transition:transform .65s,filter .5s;box-shadow:inset 0 0 35px #06050c,0 5px 18px #000b;background:#090812}
.tc-theatre-door:hover,.tc-theatre-door:focus-visible{transform:perspective(600px) rotateY(-5deg) translateY(-9px);filter:drop-shadow(0 0 25px #ed7da1a3);z-index:3;border-color:#d3a089}
.tc-theatre-door:focus-visible{outline:3px solid #ffe4b5;outline-offset:2px}
.tc-glass-room{position:absolute;inset:0;z-index:-2;overflow:hidden;background:radial-gradient(ellipse at 50% 25%,#ffb46b8c,#77304b66 26%,#250d27 65%,#080913),linear-gradient(110deg,#1b0b21,#572540,#140a18);box-shadow:inset 0 0 80px #10070e}
.tc-door-open .tc-glass-room{background-image:linear-gradient(110deg,#2f1424b5,#6b1e4a22 30%,#260b26af),url('/assets/theatre-glass-public.webp');background-size:cover;background-position:center}
.tc-door-members .tc-glass-room{background-image:linear-gradient(110deg,#260b1fa8,#57234f22,#130917b5),url('/assets/theatre-glass-members.webp');background-size:cover;background-position:center}
.tc-door-supporters .tc-glass-room{background-image:linear-gradient(110deg,#260b1fa8,#57234f22,#130917b5),url('/assets/theatre-glass-balcony.webp');background-size:cover;background-position:center}
.tc-glass-room:before{content:"";position:absolute;inset:0;border:18px solid #121020a6;box-shadow:inset 0 0 35px #f3ab895b,inset 0 0 65px #110719;backdrop-filter:blur(2px)}
.tc-glass-room:after{content:"";position:absolute;top:0;bottom:0;left:50%;width:5px;background:#221020;box-shadow:0 0 2px #ffdfad}
.tc-curtain-layer{position:absolute;inset:0 5%;background:repeating-linear-gradient(90deg,transparent 0 12px,#6b203752 18px 34px,transparent 44px 65px);filter:blur(5px);animation:tc-breathe 8s ease-in-out infinite alternate;pointer-events:none}
.tc-light-behind{position:absolute;top:10%;left:20%;width:53%;height:58%;border-radius:50%;background:#ffb18c7d;filter:blur(40px);animation:tc-drift 10s ease-in-out infinite alternate;pointer-events:none}
.tc-figure{position:absolute;width:27%;height:40%;left:42%;bottom:27%;border-radius:50% 50% 22% 22%;background:#0a0913c9;filter:blur(17px);opacity:.5;pointer-events:none}
.tc-glass-handle{position:absolute;top:44%;right:8%;height:45px;width:6px;border-radius:9px;background:linear-gradient(90deg,#ffe1b0,#c98d5b);box-shadow:0 0 11px #f0aa70b3}
.tc-theatre-doorplate{position:relative;text-align:center;padding:17px 8px 24px;min-height:130px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:10px;background:linear-gradient(180deg,transparent,#100c1ce8 16%,#080914);text-shadow:0 2px 10px #000}
.tc-theatre-doorplate small,.tc-theatre-doorplate>span{font:9px Arial,sans-serif;letter-spacing:.14em;color:#f6b6a0}
.tc-theatre-doorplate strong{font:clamp(18px,1.6vw,28px)/1.1 Georgia,serif;color:#ffe2c8}
.tc-theatre-doorplate>span{color:#f8d69f;border-bottom:1px solid #e1aa8380;padding-bottom:4px}
.tc-theatre-base{height:65px;position:absolute;bottom:-53px;left:-10%;right:-10%;background:linear-gradient(#533344,#080912 22%,#2c2233 55%,#090a12);clip-path:polygon(9% 0,91% 0,100% 100%,0 100%);box-shadow:0 8px 22px #000}
.tc-theatre-footnote{position:absolute;bottom:16px;left:7%;right:7%;z-index:8;display:flex;justify-content:space-between;gap:14px;color:#f0c6ae;font:9px Arial,sans-serif;letter-spacing:.17em;text-shadow:0 2px 12px #000}
/* Destination appears after server authorization and is brought into view. */
.room-theatre .stage-visit{position:relative;z-index:2;margin:0;padding:70px clamp(20px,8vw,130px);min-height:440px;border:0;border-top:1px solid #9b536c;background:radial-gradient(ellipse at 72% 30%,#4c263c,#100e1d 68%)}
.room-theatre .stage-visit h2{font-size:clamp(36px,4vw,65px);color:#ffdfd5}.room-theatre .stage-visit p{font-size:15px;max-width:620px}
.room-theatre .transparency{margin:0;padding:23px clamp(20px,8vw,130px);background:#160f1e;border:0;color:#d6adaf}
@media (max-width:1200px){.tc-headnote{display:none}.tc-headline{top:21%}.tc-place.tc-theatre-gate{top:53%}.tc-place{min-height:190px;width:160px}.tc-theatre-content{gap:20px;padding-inline:30px}.tc-theatre-caption{flex-basis:32%}.tc-theatre-frontage{height:540px}}
@media (max-width:760px){
 .tc-overlay-header{height:72px;padding:0 15px}.tc-logo{gap:8px;font-size:17px}.tc-logo>span:first-child{font-size:20px;padding:7px 9px}.tc-logo small{font-size:6px}.tc-profile-link{display:none}.tc-menu-button{padding:10px;font-size:9px;gap:7px}.tc-quick-menu{top:65px;right:10px}
 .tc-city{height:900px;min-height:100svh}.tc-sky{inset:0}.tc-perspective{inset:0 -55%}.tc-facade{width:44%}.tc-leftfront{left:0}.tc-rightfront{right:0}.tc-moon{top:20%}
 .tc-headline{top:15%;width:91vw}.tc-headline h1{font-size:clamp(48px,12vw,70px)}.tc-headline p{font-size:13px;max-width:310px}.tc-headline .tc-micro{font-size:8px}
 .tc-place{width:29vw;min-height:168px;padding:14px 3px 9px}.tc-place strong{font-size:15px}.tc-place-id,.tc-place-open{font-size:7px}.tc-place small{font-size:6px}.tc-place .tc-place-architecture{border-width:6px}.tc-arch{border-width:3px}
 .tc-news{top:42%;left:1%}.tc-community{top:42%;right:1%}.tc-place.tc-theatre-gate{width:29vw;min-height:166px;top:51%;left:35.5%}.tc-gallery{top:64%;left:3%}.tc-guide{top:64%;right:3%}
 .tc-walk-ui{bottom:18px;left:14px;right:14px;display:grid;gap:8px;grid-template-columns:1fr auto}.tc-walk-intro{grid-column:1/-1}.tc-walk-intro .tc-micro{font-size:7px}.tc-stop-name{font-size:18px}.tc-walk-buttons{grid-column:1/2}.tc-walk-buttons button{font-size:9px;padding:11px}.tc-walk-hint{display:none}.tc-progress{grid-column:2;grid-row:2}.tc-progress span{width:14px}.tc-curtain{display:none}
 .tc-theatre{height:auto;min-height:1080px}.tc-theatre-content{display:block;padding:95px 16px 65px;min-height:0;height:auto}.tc-theatre-caption{width:100%;text-align:left;max-width:620px;margin:0 auto 50px}.tc-theatre-caption h1{font-size:clamp(47px,10vw,73px);margin:12px 0 14px}.tc-theatre-caption p{font-size:14px}.tc-theatre-frontage{width:100%;height:560px;margin:50px auto 0;transform:none;border-width:7px}.tc-theatre-marquee{height:63px;top:-37px;left:-12px;right:-12px}.tc-theatre-marquee strong{font-size:13px;letter-spacing:.16em}.tc-theatre-doors{gap:3px;padding:0 3px 13px}.tc-theatre-door{border-width:3px}.tc-theatre-doorplate{padding:10px 2px;min-height:140px}.tc-theatre-doorplate small,.tc-theatre-doorplate>span{font-size:7px;letter-spacing:.06em}.tc-theatre-doorplate strong{font-size:16px}.tc-theatre-footnote{bottom:13px;font-size:7px;letter-spacing:.04em}.room-theatre .stage-visit{padding:35px 18px}
}
@media (max-width:390px){.tc-theatre-frontage{height:440px}.tc-theatre-doorplate strong{font-size:13px}.tc-city{min-height:830px}.tc-stop-name{font-size:15px}.tc-walk-buttons button{padding:9px;font-size:8px}}
@media (prefers-reduced-motion: reduce){.tc-perspective,.tc-place,.tc-headline,.tc-theatre-door{transition:none!important}.tc-fog,.tc-light-behind,.tc-curtain-layer,.tc-streetglow,.tc-theatre-light{animation:none!important}}

/* Architectural revisions: openings are recessed storefronts, not floating cards. */
@media(min-width:761px){
 .tc-place{width:clamp(165px,15vw,245px);min-height:clamp(275px,36vh,390px);padding-bottom:25px}
 .tc-news{left:7%;top:31%}.tc-community{right:7%;top:31%}
 .tc-place.tc-theatre-gate{width:185px;min-height:280px;top:48%}
 .tc-gallery{left:2%;top:48%}.tc-guide{right:2%;top:48%}
 .tc-arch{top:4%;bottom:20%;height:auto}
}
.tc-place .tc-place-architecture{background:linear-gradient(100deg,#130b18,#5d2943 50%,#110c1c);border-color:#7a5360}
.tc-arch:before{content:'';position:absolute;inset:0;background:url('/assets/city-glow.webp') 48% 52%/cover;filter:blur(7px);opacity:.44;mix-blend-mode:screen}
.tc-place:hover .tc-arch:before,.tc-place:focus-visible .tc-arch:before{opacity:.85;filter:blur(3px)}
.tc-place:after{border-color:#c6a49368;background:linear-gradient(180deg,#07091312 0,#0c07154d 42%,#090814ee 73%,#080810fa)}
/* First arrival also belongs to the city. Preserve its entry form and operating door. */
.room-entrance .entry-world{background:radial-gradient(ellipse at 72% 31%,#65304a67,transparent 53%),linear-gradient(0deg,#090713e8,#180e25a1 64%,#0a0c19cc),url('/assets/city-photo.webp') 50% 52% / cover fixed;min-height:100svh}
.room-entrance .entry-world:before{background:radial-gradient(ellipse at 70% 48%,#ce6e9566,transparent 34%),linear-gradient(90deg,#0508136e,transparent 41%,#0607139e);animation:tc-breathe 10s ease-in-out infinite alternate}
.room-entrance .entry-sky{position:absolute;inset:0;background:url('/assets/city-glow.webp') 82% 70%/65% auto no-repeat;opacity:.19;filter:blur(26px);mix-blend-mode:screen;pointer-events:none}
.room-entrance .entry-topline,.room-entrance .entry-bottomline{max-width:none;padding-left:clamp(20px,5vw,85px);padding-right:clamp(20px,5vw,85px)}
.room-entrance .entry-topline{border-bottom:1px solid #cf9a904f;background:#08091375}
.room-entrance .entry-center{max-width:1600px;grid-template-columns:minmax(0,1fr) 490px;gap:clamp(35px,6vw,130px);min-height:calc(100svh - 172px);padding-top:20px;padding-bottom:20px}
.room-entrance .entry-letter h1{font-size:clamp(65px,6.5vw,109px);line-height:1.02;max-width:870px;text-shadow:0 9px 40px #000d}
.room-entrance .entry-letter h1 em{color:#e8aeba;white-space:normal}
.room-entrance .entry-letter p{font-size:clamp(18px,1.6vw,25px);max-width:580px;color:#ffede5;text-shadow:0 2px 15px #000}
.room-entrance .entry-letter p.smaller{color:#c6bac3}
.room-entrance .portal-frame{width:355px;height:505px;border:15px ridge #63334e;outline:2px solid #e2a78f;background:radial-gradient(ellipse at 61% 21%,#e59b8b,#4c2946 50%,#120c20);box-shadow:0 0 75px #f4728c49,25px 23px 66px #02030add,inset 0 0 40px #090713}
.room-entrance .portal-heading{width:355px;color:#ecc9b4}
.room-entrance .door-leaf{background:linear-gradient(115deg,#140c1e,#543149 40%,#261b31);box-shadow:inset 0 0 30px #d28a9d57,0 0 35px #03030b}
.room-entrance .door-glass{height:301px;border-color:#2b172b;background:linear-gradient(115deg,#d192a077,#1d143ac5 42%,#df968f9c 65%,#5628489f);box-shadow:inset 0 0 40px #e8a4a766,0 0 0 2px #b87484}
.room-entrance .door-glass:before,.room-entrance .door-glass:after{background:#4b2942}
.room-entrance .frost-pattern{background:radial-gradient(ellipse at 60% 30%,#eebeaa6b,transparent 40%),url('/assets/city-glow.webp') center / cover;filter:blur(6px);opacity:.42}
.room-entrance .door-bottom{border-color:#8c5367;box-shadow:inset 0 0 27px #170b22}
.room-entrance .portal-sconce{background:linear-gradient(#fbe0ad,#cf8f78,#a05359);box-shadow:0 0 40px 19px #ed9e906e}
.room-entrance .portal-floor{background:linear-gradient(#a06477,#271326 16%,#070916)}
.room-entrance .entry-invite{color:#ffe3c5}
.room-entrance .questions-panel{background:#1c1429f2;border:1px solid #cfa88d;box-shadow:0 25px 120px #000e}
@media(max-width:760px){
 .room-entrance .entry-world{background-attachment:scroll}
 .room-entrance .entry-center{display:flex;flex-direction:column;min-height:0;gap:24px;padding:30px 16px 80px}
 .room-entrance .entry-letter h1{font-size:clamp(48px,11vw,77px);margin:18px 0}
 .room-entrance .entry-letter p{font-size:16px}
 .room-entrance .portal-frame{width:280px;height:400px}.room-entrance .portal-heading{width:280px}
 .room-entrance .door-glass{height:220px}
 .room-entrance .entry-letter{padding-bottom:0}
 .tc-arch:before{opacity:.55}
}
@media(min-width:761px){.tc-place.tc-theatre-gate{top:55%}}
@media(max-width:760px){.tc-theatre-roofline{opacity:.22}.tc-theatre-caption{padding:16px 14px;background:linear-gradient(90deg,#090613d9,#150d23ae);border-left:2px solid #b87e80;backdrop-filter:blur(5px)}}
