@charset "UTF-8";
:root{--paper:#f6f4ed;--ink:#203c32;--muted:#667369;--line:#dcded3;--orange:#c55e3d;--white:#fffefa;color-scheme:light;font-family:"Segoe UI",Arial,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,a,input{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:disabled{cursor:default;opacity:.6}a{color:inherit;text-decoration:none}button,a{touch-action:manipulation}button:focus-visible,a:focus-visible{outline:3px solid #bc5735;outline-offset:5px}button{color:inherit}h1,h2,h3,p{margin:0}button[hidden],[hidden]{display:none!important}.skip-link{position:absolute;left:20px;top:-80px;background:white;padding:15px;z-index:50}.skip-link:focus{top:10px}
.masthead{max-width:1440px;margin:auto;padding:24px 5%;display:flex;align-items:center;justify-content:space-between;gap:25px;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:12px;font-weight:750;font-size:12px;letter-spacing:1.8px}.brand small{display:block;font-size:10px;letter-spacing:1px;font-weight:400;margin-top:5px}.brand-mark{display:flex;align-items:center;font:italic bold 43px Georgia,serif;letter-spacing:-7px}.brand-mark span{font:normal 30px Georgia;color:var(--orange);margin-left:3px}.masthead nav{display:flex;gap:28px;align-items:center;font-size:13px}.portal-link{font-size:12px;border:1px solid var(--line);border-radius:6px;padding:10px 16px}.text-button{border:0;background:none;padding:4px 0;font-size:13px;font-weight:600}.text-button:hover,a:hover{color:var(--orange)}main{max-width:1320px;padding:0 40px;margin:auto}.welcome{display:flex;justify-content:space-between;align-items:center;padding:48px 0 44px;gap:32px}.eyebrow{font-size:10px;font-weight:700;letter-spacing:1.8px;line-height:1.5}.welcome .eyebrow{display:flex;align-items:center;gap:9px}.tiny-sun{font-size:20px;color:var(--orange)}.preview-label{font-size:9px;text-transform:none;letter-spacing:.4px;background:#e9eadd;padding:4px 8px;border-radius:4px;margin-left:8px;font-weight:500}h1{font-size:clamp(40px,4.9vw,67px);font-weight:450;line-height:1.06;letter-spacing:-3px;margin:17px 0 18px}h1 em{font-family:Georgia,serif;color:var(--orange);font-weight:400}.intro{font-size:14px;line-height:1.8;color:var(--muted)}.welcome-actions{display:flex;align-items:center;gap:24px;margin-top:25px}.button{display:inline-flex;align-items:center;justify-content:center;gap:25px;padding:13px 19px;font-size:12px;font-weight:600;border-radius:6px;border:1px solid var(--ink)}.primary{color:#fff;background:var(--ink)}.primary:hover{background:#315443;color:white}.secondary{background:transparent}.secondary:hover{background:#e9eadd}.welcome-note{position:relative;transform:rotate(-5deg);margin-right:55px;text-align:center;min-width:240px}.note-star{color:var(--orange);font-size:76px;line-height:1.1}.welcome-note p{font-family:Georgia,serif;font-size:31px;font-style:italic;line-height:1.25;margin:12px 0}.welcome-note>span:last-of-type{font-size:10px;letter-spacing:1px}.note-line{margin:15px auto 0;width:110px;height:9px;border-top:2px solid var(--orange);border-bottom:1px solid var(--orange);transform:rotate(-4deg)}
.festival-body{display:grid;grid-template-columns:minmax(0,1fr) 285px;gap:26px;scroll-margin-top:24px}.section-bar{display:flex;justify-content:space-between;gap:15px;align-items:center;margin-bottom:12px}h2{font:400 28px Georgia,serif;letter-spacing:-.5px;margin-top:5px}.view-switch{display:flex;gap:3px;background:#e9ebe2;padding:4px;border-radius:7px}.view-switch button{border:0;padding:9px 11px;background:transparent;border-radius:5px;font-size:11px;white-space:nowrap}.view-switch button[aria-pressed=true]{background:var(--white);box-shadow:0 1px 4px #203c3212}.muted{font-size:11px;color:var(--muted);line-height:1.7}#mode-description{margin-bottom:16px}.village-scene{background:#e7ebde;border:1px solid #d7ddcc;border-radius:10px;overflow:hidden}.scene-heading,.scene-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 22px;font-size:10px;color:#546851}.scene-heading>span:first-child{font-weight:700;letter-spacing:1.8px}.scene-heading>span:last-child{font-style:italic}.scene-footer{border-top:1px solid #d7ddcc;background:#eef0e5}.scene-footer .text-button{font-size:11px}.dot{display:inline-block;height:6px;width:6px;background:#61875b;border-radius:50%;margin-right:6px}#scene-art svg{display:block;width:100%;height:auto;max-height:470px}.scene-booth{cursor:pointer;outline:none}.scene-booth .booth-shadow{opacity:.13;transition:opacity .2s}.scene-booth:hover .booth-shadow,.scene-booth:focus .booth-shadow{opacity:.3}.scene-booth:hover .roof,.scene-booth:focus .roof{filter:brightness(1.13)}.scene-booth:focus .focus-ring{stroke:#203c32;stroke-width:3;stroke-dasharray:5 4}.map-caption{fill:#304d3c;font-size:12px;font-weight:650}.map-subcaption{fill:#647363;font-size:8px}.booth-directory{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.booth-card{padding:23px;border:1px solid var(--line);background:var(--white);border-radius:9px}.booth-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:25px}.booth-symbol{color:var(--booth-color);font-size:34px;line-height:1}.booth-number{font-size:8px;letter-spacing:1.5px;color:var(--muted)}.booth-card>.eyebrow{color:var(--booth-color);font-size:9px}.booth-card h3{font:24px Georgia,serif;margin:7px 0 10px}.booth-card>p:not(.eyebrow){font-size:12px;line-height:1.8;color:var(--muted)}.booth-enter{display:flex;justify-content:space-between;width:100%;margin-top:20px;border-top:1px solid var(--line);padding-top:15px}.discovery-strip{display:flex;align-items:center;gap:13px;background:#eeeee4;border-radius:6px;padding:14px 18px;margin-top:14px}.discovery-strip>span{font-size:30px;color:var(--orange)}.discovery-strip p{font-size:11px;line-height:1.6;color:var(--muted)}.discovery-strip strong{color:var(--ink)}.village-sidebar{padding-top:2px;display:flex;flex-direction:column;gap:17px}.passport{background:var(--ink);color:#edf0dc;padding:24px;border-radius:9px;position:relative;overflow:hidden}.passport-heading{display:flex;justify-content:space-between;align-items:center}.passport .eyebrow{font-size:8px;letter-spacing:1.4px;color:#cbd6b5}.passport h2{font-size:25px;line-height:1.2;margin:19px 0 13px}.passport>p{font-size:11px;color:#c0ccb8;line-height:1.7}.stamps{display:flex;gap:9px;margin:24px 0 15px}.stamps span{border:1px dashed #78927b;color:#b6c8ab;width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px}.stamps span.collected{background:#d6ddac;color:#243b2e;border-style:solid;font-weight:bold;transform:rotate(-10deg)}.passport .passport-progress{font-size:10px;color:#e7eacb}.passport small{display:block;font-size:9px;color:#bac6af;margin-top:7px}.stage-card{border:1px solid var(--line);border-radius:9px;background:var(--white);padding:19px}.stage-card>.eyebrow{font-size:9px}.stage-art{display:flex;justify-content:space-between;align-items:center;overflow:hidden;height:110px;background:#e7b795;border-radius:5px;margin:14px 0 13px;padding:15px 20px;color:#753e2a}.stage-art span{font:29px Georgia,serif;line-height:.9}.stage-art i{font-size:88px;font-style:normal;transform:rotate(15deg);margin-right:-8px}.schedule-tag{font-size:9px;color:var(--muted)}.stage-card h3{font:21px Georgia,serif;line-height:1.2;margin:7px 0}.stage-card>p:not(.eyebrow){font-size:11px;line-height:1.6;color:var(--muted)}.stage-card .button{margin-top:15px;width:100%;font-size:11px;padding:10px}.access-card{display:flex;text-align:left;align-items:center;gap:13px;background:none;border:0;padding:0 4px}.access-card>span:first-child{font-size:30px;color:#758269}.access-card strong{display:block;font-size:11px;font-weight:600}.access-card small{display:block;font-size:10px;color:var(--muted);margin-top:5px}
.programme{padding:42px 0 45px;scroll-margin-top:20px}.programme .section-bar{margin-bottom:22px}.session{display:flex;align-items:center;gap:27px;border-top:1px solid var(--line);padding:22px 0}.session-time{font:24px Georgia,serif;min-width:70px}.session-time small{display:block;font:10px "Segoe UI",sans-serif;margin-top:7px;color:var(--muted)}.session-info{flex:1}.session-info .eyebrow{font-size:9px;letter-spacing:1.2px;color:var(--muted)}.session h3{font-size:16px;font-weight:550;margin:5px 0 7px}.session-info>p:last-child{font-size:12px;color:var(--muted)}.save-session{padding:9px 13px;border:1px solid var(--line);background:transparent;border-radius:5px;font-size:11px;min-width:94px}.save-session[aria-pressed=true]{background:#e1e8d6;border-color:#b7c5ac}.programme-footer{display:flex;justify-content:space-between;align-items:center;gap:15px;border-top:1px solid var(--line);padding-top:20px}.programme-footer p{font-size:11px;color:var(--muted)}.site-footer{border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:20px;padding:25px 5%;font-size:10px;color:var(--muted)}.footer-brand{font-size:13px;font-weight:650;color:var(--ink)}.footer-brand span{color:var(--orange);margin-left:10px;font-size:22px}
dialog{width:min(600px,calc(100% - 28px));max-height:88vh;max-height:88dvh;border:1px solid var(--line);border-radius:14px;padding:28px;background:var(--paper);color:var(--ink);box-shadow:0 20px 80px #142e3440}dialog::backdrop{background:#18342999;backdrop-filter:blur(3px)}.dialog-top{display:flex;justify-content:space-between;align-items:center;gap:15px}.close-dialog{width:35px;height:35px;border:1px solid var(--line);border-radius:50%;background:transparent;font-size:23px}.dialog-symbol{font-size:60px;margin:8px 0}.dialog-title{font:38px Georgia,serif;line-height:1.1;margin:13px 0}.dialog-subtitle{color:var(--orange);font:italic 20px Georgia,serif;margin-bottom:19px}.dialog-copy{font-size:13px;line-height:1.85;color:var(--muted);margin-bottom:18px}.challenge{padding:20px;background:#e7ebdd;border-radius:7px;margin:22px 0}.challenge p:last-child{font-size:13px;line-height:1.8;margin-top:10px}.dialog-actions{display:flex;gap:12px;flex-wrap:wrap}.dialog-note{font-size:10px;line-height:1.7;color:var(--muted);margin-top:16px}.access-option{padding:16px 0;border-top:1px solid var(--line)}.access-option strong{display:block;font-size:14px;margin-bottom:6px}.access-option p{font-size:12px;line-height:1.7;color:var(--muted)}.access-option .text-button{margin-top:10px}.status-pill{display:inline-block;font-size:10px;background:#e6e8dd;border-radius:20px;padding:6px 10px;margin:10px 0}.toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);padding:13px 22px;background:var(--ink);color:white;box-shadow:0 3px 15px #0002;border-radius:8px;font-size:12px;z-index:100;max-width:calc(100% - 32px);width:max-content}.toast:empty{display:none}body:has(dialog[open]){overflow:hidden}
@media(min-width:1250px){.welcome{padding-top:55px;padding-bottom:55px}.village-scene #scene-art svg{max-height:515px}}
@media(max-width:1000px){main{padding:0 25px}.masthead{padding:20px 25px}.festival-body{grid-template-columns:minmax(0,1fr) 250px;gap:20px}.welcome-note{margin-right:15px;min-width:190px}.welcome-note p{font-size:26px}.section-bar{align-items:flex-start;flex-wrap:wrap}.passport{padding:19px}.stamps{gap:6px}.scene-heading>span:last-child{display:none}}
@media(max-width:760px){.masthead nav{display:none}.masthead{padding:17px 20px}.brand{font-size:10px}.brand small{font-size:9px}main{padding:0 20px}.welcome{padding:32px 0}.welcome-note{display:none}h1{font-size:48px;letter-spacing:-2px}.intro{font-size:13px}.festival-body{grid-template-columns:1fr}.section-bar{align-items:center}.village-sidebar{display:grid;grid-template-columns:1fr 1fr;gap:14px}.access-card{grid-column:1/-1;margin:5px 0}.passport{padding:19px}.passport h2{font-size:23px}.stage-card{padding:16px}.stage-art{height:90px}.stamps{gap:5px}.stamps span{width:29px;height:29px}.scene-footer{padding:14px;font-size:9px}.scene-footer .text-button{font-size:10px}.programme{padding-top:30px}.session{gap:14px}.session h3{font-size:14px}.session-info>p:last-child{font-size:11px}.session-time{min-width:53px;font-size:21px}.session-info .eyebrow{font-size:8px}.save-session{min-width:80px;padding:10px 8px}.site-footer{flex-wrap:wrap;font-size:9px;padding:20px}.site-footer>span:last-child{display:none}.programme .section-bar>.muted{font-size:10px}.booth-card{padding:18px}.booth-card h3{font-size:22px}}
@media(max-width:420px){.welcome .eyebrow{font-size:8px;letter-spacing:1px}.preview-label{font-size:8px}.welcome-actions{gap:16px}.button{padding:12px 15px}.welcome-actions .text-button{font-size:11px}.booth-directory{grid-template-columns:1fr}.section-bar h2{font-size:26px}.view-switch button{font-size:10px;padding:8px}.village-sidebar{grid-template-columns:1fr}.passport .stamps span{width:36px;height:36px}.session{flex-wrap:wrap}.save-session{margin-left:67px}.session-info{min-width:190px}.programme-footer{align-items:flex-start;flex-direction:column}.scene-heading{padding:15px}.scene-footer{flex-wrap:wrap}.dialog-title{font-size:32px}dialog{padding:23px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

/* Optional 3D experience: the engine and scene load only after explicit entry. */
.world-panel{border:1px solid #d3d9c8;border-radius:10px;overflow:hidden;background:#e5e8d9}
.world-welcome{min-height:460px;padding:45px 25px;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(ellipse at 50% 100%,#b8c5a055,transparent 65%),#e9ebde}
.world-orbit{font:95px Georgia,serif;color:var(--orange);line-height:1;margin-bottom:20px}
.world-welcome h3{font:42px Georgia,serif;letter-spacing:-1.5px;margin:13px 0}
.world-welcome>p:not(.eyebrow){font-size:13px;line-height:1.8;color:#596953}
.world-welcome .button{margin:25px 0 14px}
.world-welcome>.world-download{font-size:10px;line-height:1.7}
#world-load-status{max-width:430px;font-size:12px;padding-top:13px}
.world-topbar{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:15px 18px;background:#eff0e5;border-bottom:1px solid #d6ddcd}
.world-topbar>span{font-size:9px;font-weight:700;letter-spacing:1.2px}
.world-topbar>div{display:flex;align-items:center;gap:19px}
.world-topbar .text-button{font-size:11px}
.world-viewport{height:530px;position:relative;overflow:hidden;isolation:isolate;background:#e9e7d8;outline-offset:-4px!important}
.world-canvas{display:block;width:100%;height:100%;touch-action:none;cursor:grab}
.world-canvas:active{cursor:grabbing}
.world-labels{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.world-label{position:absolute;left:0;top:0;background:#fff9e8ed;color:#254235;padding:5px 9px;border:1px solid #fff5d9;border-radius:5px;font-size:10px;font-weight:600;white-space:nowrap;box-shadow:0 2px 8px #304a3415;will-change:transform}
.world-label:last-child{background:#294b3d;color:#fff6dc;border-color:#294b3d;font-size:9px;border-radius:20px;padding:4px 9px}
.world-camera-controls{position:absolute;top:13px;left:13px;display:flex;gap:7px;z-index:2}
.world-camera-controls button{background:#f8f5eae8;border:1px solid #fff7e8;border-radius:5px;font-size:10px;padding:9px 12px;box-shadow:0 2px 7px #34432e0d}
.world-camera-controls button:hover{background:#fffbed}
.world-nearby{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:8px;max-width:70%;pointer-events:none}
#world-place{padding:6px 12px;border-radius:20px;background:#f7f3e4e8;font-size:10px;white-space:nowrap}
#world-visit{pointer-events:auto;padding:11px 14px;font-size:11px;white-space:nowrap;box-shadow:0 4px 12px #223d3430}
.world-dpad{position:absolute;bottom:17px;left:13px;display:grid;grid-template-columns:repeat(3,33px);grid-template-rows:repeat(2,33px);gap:4px}
.world-dpad button{border:1px solid #fff8e8;background:#f8f5eae8;border-radius:5px;font-size:18px;touch-action:none;user-select:none}
.world-dpad button:first-child{grid-column:2}.world-dpad button:nth-child(2){grid-column:1;grid-row:2}.world-dpad button:nth-child(3){grid-column:2;grid-row:2}.world-dpad button:nth-child(4){grid-column:3;grid-row:2}
.world-dpad button:active{background:#c6d3b4}
.world-bottom{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:12px 17px;background:#eff0e5;font-size:10px;color:#566650;border-top:1px solid #d6ddcd}
.world-bottom>span{white-space:nowrap;font-size:9px}
.world-destinations{display:flex;align-items:center;gap:7px;flex-wrap:wrap;background:#f7f5ea;padding:12px 15px}
.world-destinations>span{font-size:8px;font-weight:700;letter-spacing:1.1px;padding-right:3px}
.world-destinations button{font-size:10px;padding:8px 10px;background:transparent;border:1px solid #d6ddcd;border-radius:20px}
.world-destinations button:hover{background:#e3e9d7}
.world-expanded{overflow:hidden}
.world-expanded #world-panel{position:fixed;inset:0;z-index:500;border-radius:0;border:0;display:flex;flex-direction:column}
.world-expanded #world-experience{height:100%;display:flex;flex-direction:column}
.world-expanded .world-viewport{flex:1;height:auto;min-height:0}
.world-expanded .world-topbar{flex-shrink:0}
.world-expanded .world-destinations{flex-shrink:0}
@media(max-width:1000px){.world-viewport{height:460px}.view-switch{flex-wrap:wrap}.section-bar:has(#world-mode){align-items:flex-start}.world-topbar{padding:12px}.world-topbar>span{font-size:8px;letter-spacing:.7px}.world-label{font-size:9px;padding:4px 6px}}
@media(max-width:600px){.world-viewport{height:440px}.world-welcome{min-height:430px;padding:32px 20px}.world-welcome h3{font-size:35px}.world-topbar>span{max-width:125px;font-size:8px;line-height:1.6}.world-topbar>div{gap:12px}.world-topbar .text-button{font-size:10px}.world-label{font-size:8px;padding:3px 5px}.world-nearby{bottom:96px;max-width:96%}.world-camera-controls button{font-size:9px;padding:8px}.world-dpad{grid-template-columns:repeat(3,39px);grid-template-rows:repeat(2,36px)}.world-bottom{font-size:9px;padding:11px}.world-bottom>span{font-size:8px}.world-destinations{padding:11px;gap:6px}.world-destinations button{font-size:9px;padding:8px}.world-destinations>span{width:100%;margin-bottom:3px}.world-expanded .world-destinations{max-height:120px;overflow:auto}.world-expanded .world-topbar{padding-top:max(12px,env(safe-area-inset-top))}.world-expanded .world-destinations{padding-bottom:max(12px,env(safe-area-inset-bottom))}}

.festival-time{font-size:1rem;line-height:1.7;max-width:650px}.room-entry{background:#e8eee2;border:1px solid #afc6b1;border-radius:16px;padding:20px;margin:22px 0;max-width:660px}.room-entry .eyebrow{margin:0 0 12px}.host-join{background:#ffd492;color:#173f38;box-shadow:0 3px 0 #bf8952;font-size:1rem;font-weight:800}.room-note{font-size:.8rem;line-height:1.6;margin:12px 0 0}.welcome .preview-label{white-space:normal}.welcome h1{font-size:clamp(3rem,5vw,5.5rem)}

.festival-guides{padding:26px 0 38px;border-top:1px solid #deded0}.guide-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.guide-card{display:flex;align-items:flex-start;gap:17px;padding:24px 20px;background:#fffdf6;border-top:4px solid var(--guide-color);border-radius:12px}.guide-card h3{font-family:Georgia,serif;font-size:29px;margin:3px 0 5px;color:var(--guide-color)}.guide-card p{font-size:13px;line-height:1.65;margin:8px 0 15px}.guide-card .guide-label{font-size:9px;font-weight:800;letter-spacing:1.3px;color:var(--guide-color);margin:0}.guide-card .guide-role{font-weight:700;margin:0}.guide-card .button{font-size:12px;padding:12px}.guide-avatar{position:relative;flex-shrink:0;width:50px;height:57px;background:var(--guide-color);border-radius:14px 14px 19px 19px;margin-top:15px}.guide-antenna{position:absolute;width:4px;height:15px;left:23px;top:-13px;background:var(--guide-color)}.guide-antenna:before{content:'';position:absolute;top:-5px;left:-4px;width:12px;height:12px;background:var(--guide-color);border-radius:50%}.guide-face{display:flex;gap:12px;justify-content:center;align-items:center;position:absolute;inset:10px 5px 20px;background:#f8f7ef;border-radius:7px}.guide-face i{width:6px;height:7px;border-radius:50%;background:#172033}.guide-answers details,.guide-card details{border-bottom:1px solid #d5dfd7;padding:17px 0}.guide-answers summary,.guide-card summary{font-weight:700;cursor:pointer;line-height:1.5}.guide-answers p{font-size:16px;line-height:1.75;margin:12px 0 0}.guide-answers summary:focus-visible{outline:3px solid #006b68;outline-offset:5px}@media(max-width:1000px){.guide-list{grid-template-columns:1fr}.guide-card{padding:20px}.festival-guides{padding-top:20px}.guide-card .button{min-height:44px}}
.booth-logo{width:52px;height:42px;object-fit:contain;border-radius:5px;background:#fff;padding:3px;box-shadow:0 0 0 1px var(--line)}
