:root{--gold:#d7a24b;--gold2:#ffd079;--panel:rgba(8,7,6,.92);--text:#f2e7d2;--muted:#bca98b}
*{box-sizing:border-box}html,body{margin:0;background:#030303;color:var(--text);font-family:Georgia,'Times New Roman',serif}button{font:inherit}
#app{min-height:100vh;background:radial-gradient(circle at 50% 0,#24180c,#080706 42%,#030303)}
header{display:flex;align-items:center;gap:12px;padding:9px 12px;border-bottom:1px solid #3c2914;background:#050505;position:sticky;top:0;z-index:50}.brand b{display:block;color:#e8bd75;letter-spacing:.06em}.brand span{font:11px Arial,sans-serif;letter-spacing:.14em;color:#b7a488}.spacer{flex:1}.topbtn{border:1px solid #765326;color:#e9c17a;background:#11100e;border-radius:999px;padding:8px 11px;cursor:pointer}
main{padding:8px;display:grid;place-items:center}.stage{position:relative;width:min(100%,1536px);max-height:calc(100svh - 72px);background:#050505;overflow:hidden;border:1px solid #33230f;box-shadow:0 20px 70px #000;border-radius:8px;transition:aspect-ratio .12s ease}.scene{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#030303;user-select:none;-webkit-user-drag:none}.modalImage{padding:10px;background:#000}.overlay{position:absolute;inset:0;width:100%;height:100%;z-index:8;overflow:visible;pointer-events:none}.target{pointer-events:auto;fill:transparent;stroke:transparent;stroke-width:2;vector-effect:non-scaling-stroke;cursor:pointer;transition:stroke .14s,fill .14s,filter .14s}.target:hover,.target.selected{stroke:rgba(255,203,100,.98);fill:rgba(224,160,64,.025);filter:drop-shadow(0 0 2px rgba(232,165,65,.7))}.target.precise:hover,.target.precise.selected{stroke-width:2.3}.hit{pointer-events:auto;fill:transparent;stroke:transparent;cursor:pointer}.framepiece{pointer-events:auto;fill:transparent;stroke:transparent;stroke-width:2.5;vector-effect:non-scaling-stroke;cursor:pointer}.framepiece.active,.framepiece:hover{fill:rgba(222,158,58,.035);stroke:rgba(255,204,103,.98);filter:drop-shadow(0 0 2px rgba(230,160,60,.68))}
.riserActive{pointer-events:none;fill:rgba(225,160,55,.055);stroke:rgba(255,202,94,.98);stroke-width:2.4;vector-effect:non-scaling-stroke;filter:drop-shadow(0 0 1.5px rgba(230,159,55,.55))}.ringActive{pointer-events:none;fill:none;stroke:rgba(255,200,92,.98);stroke-width:3;vector-effect:non-scaling-stroke;filter:drop-shadow(0 0 1.5px rgba(230,159,55,.52))}
.control{position:absolute;z-index:1100;border:1px solid #805926;background:rgba(7,7,6,.91);color:#edc47c;border-radius:999px;padding:9px 13px;cursor:pointer;font:13px Arial,sans-serif;backdrop-filter:blur(5px)}.back{left:13px;top:13px}.turn{right:13px;top:13px}.prominent{border-color:#d49b43;background:rgba(21,14,7,.95);box-shadow:0 0 16px rgba(210,145,49,.24);font-weight:700}.enter{left:50%;bottom:6%;transform:translateX(-50%);font-size:14px;padding:10px 17px}
.hint{position:absolute;z-index:1050;left:50%;bottom:12px;transform:translateX(-50%);max-width:92%;background:rgba(5,5,5,.82);border:1px solid #65451d;color:#e7bf79;border-radius:999px;padding:8px 14px;font:12px Arial,sans-serif;text-align:center;pointer-events:none}.info{position:absolute;z-index:1060;left:50%;bottom:48px;transform:translateX(-50%);width:min(620px,86%);background:rgba(8,7,6,.93);border:1px solid #8c642c;border-radius:12px;padding:12px 15px;box-shadow:0 16px 45px #000;pointer-events:none}.info .k{font:10px Arial,sans-serif;letter-spacing:.17em;text-transform:uppercase;color:#bb8c4c}.info h3{margin:3px 0 5px;color:#f0c77f;font-size:20px}.info p{margin:0;color:#ded1bd;font:14px/1.42 Arial,sans-serif}.info small{display:block;margin-top:8px;color:#a9977c;font:11px Arial,sans-serif}.letter{position:absolute;z-index:35;right:3%;top:5%;width:min(38%,560px);max-height:88%;object-fit:contain;border:1px solid #92672d;box-shadow:0 20px 70px #000;background:#080706}.closeLetter{position:absolute;z-index:36;right:4%;top:6%;border:1px solid #aa7731;background:#0c0906;color:#f0c47c;border-radius:999px;padding:7px 10px;cursor:pointer}.entryBadge{position:absolute;z-index:1040;left:50%;bottom:5.5%;transform:translateX(-50%);padding:9px 15px;border:1px solid #a77731;background:rgba(7,6,5,.88);border-radius:999px;color:#f0c77e;font:12px Arial,sans-serif;letter-spacing:.08em;text-transform:uppercase;pointer-events:none}
@media(max-width:700px){main{padding:2px}.stage{border-radius:0}.brand b{font-size:12px}.brand span{font-size:9px}.topbtn{font-size:10px;padding:6px 8px}.hint{font-size:10px;padding:6px 10px}.info{bottom:36px;width:94%;padding:10px}.info h3{font-size:17px}.info p{font-size:12px}.control{font-size:11px;padding:7px 9px}.letter{width:76%;right:4%;top:8%}}
.target.ringHit{fill:rgba(0,0,0,.001);stroke:transparent;stroke-width:0;filter:none}.target.ringHit:hover,.target.ringHit.selected{fill:rgba(0,0,0,.001);stroke:transparent;filter:none}
.mapPanel{position:absolute;z-index:1080;right:3%;top:8%;width:min(420px,88%);background:rgba(7,6,5,.96);border:1px solid #9a6a2c;border-radius:14px;padding:16px;box-shadow:0 20px 60px #000;color:#ead8b8;font-family:Arial,sans-serif}.mapPanel .mapK{font-size:10px;letter-spacing:.18em;color:#c59651}.mapPanel h3{font-family:Georgia,serif;color:#f0c77d;margin:4px 0 8px}.mapPanel p{font-size:13px;line-height:1.4;margin:0 0 12px}.mapGrid{display:grid;gap:8px}.mapGrid button{border:1px solid #765326;background:#13100c;color:#efc67d;border-radius:10px;padding:11px;text-align:left;cursor:pointer}.mapPanel small{display:block;margin-top:10px;color:#9e8c73}
@media(max-width:700px){.mapPanel{top:5%;right:4%;padding:12px}.entryBadge{max-width:88%;text-align:center;line-height:1.25}}
/* v7 controlled patch */
.stage.fullViewport{position:fixed!important;inset:0!important;z-index:1000!important;width:100vw!important;height:100svh!important;max-width:none!important;max-height:none!important;aspect-ratio:auto!important;border-radius:0!important;border:0!important;box-shadow:none!important;background:#000!important}
.target.dismissZone,.target.dismissZone:hover,.target.dismissZone.selected{fill:rgba(0,0,0,.001);stroke:transparent;filter:none}
.baseControlActive{pointer-events:none;fill:rgba(215,162,75,.035);stroke:rgba(255,203,100,.98);stroke-width:2.2;vector-effect:non-scaling-stroke;filter:drop-shadow(0 0 1.5px rgba(230,159,55,.52))}
@media(max-width:700px){.stage.fullViewport{height:100svh!important}}

/* v9 interaction-system cleanup */
.stage.fullViewport{position:fixed!important;inset:0!important;z-index:1000!important;width:100vw!important;height:100svh!important;max-width:none!important;max-height:none!important;aspect-ratio:auto!important;border:0!important;border-radius:0!important;box-shadow:none!important;background:#000!important}
.stage.fullViewport .scene.modalImage{object-fit:contain!important;width:100%!important;height:100%!important;padding:0!important;background:#000!important}
.homeReturn{font-weight:700;border-color:#d49b43;background:rgba(10,8,6,.94);box-shadow:0 0 18px rgba(215,162,75,.22)}
.target.invisibleTarget,.target.invisibleTarget:hover,.target.invisibleTarget.selected{fill:rgba(0,0,0,.001)!important;stroke:transparent!important;filter:none!important}
.lineIndicator{pointer-events:none;stroke:rgba(215,162,75,.22);stroke-width:2;vector-effect:non-scaling-stroke;opacity:.2;transition:opacity .15s,stroke-width .15s,filter .15s}.lineIndicator.active{opacity:1;stroke:rgba(255,204,103,.98);stroke-width:3.2;filter:drop-shadow(0 0 4px rgba(230,159,55,.9))}
.clickMarker .markerCircle{fill:rgba(8,7,6,.70);stroke:rgba(215,162,75,.92);stroke-width:2.2;vector-effect:non-scaling-stroke;transition:fill .15s,stroke-width .15s,filter .15s}.clickMarker .markerText{fill:#f4c978;font:700 24px Arial,sans-serif;pointer-events:none}.clickMarker:hover .markerCircle,.clickMarker.active .markerCircle{fill:rgba(215,162,75,.16);stroke:rgba(255,210,121,1);stroke-width:3.2;filter:drop-shadow(0 0 7px rgba(230,159,55,.95))}
.sceneLabel{position:absolute;z-index:18;display:grid;place-items:center;text-align:center;pointer-events:none;font-family:Arial,sans-serif;letter-spacing:.06em}
.navLabelPatch{position:absolute;z-index:18;background:rgba(12,10,8,.96);border:1px solid rgba(150,105,44,.72);color:#f0c77e;border-radius:5px;font:700 clamp(8px,.72vw,13px) Arial,sans-serif;letter-spacing:.05em;display:grid;place-items:center;text-align:center;pointer-events:none}
.partnershipTitlePatch{position:absolute;z-index:18;background:#17110b;color:#f0dfc4;font:700 clamp(18px,2vw,38px) Georgia,serif;letter-spacing:.02em;display:flex;align-items:center;padding-left:1%;pointer-events:none}
.sidebarLabelPatch{position:absolute;z-index:18;background:linear-gradient(90deg,rgba(71,48,23,.98),rgba(50,35,19,.98));color:#f1dfc1;border:1px solid rgba(194,139,65,.7);border-radius:7px;font:700 clamp(8px,.85vw,14px) Arial,sans-serif;display:grid;place-items:center;pointer-events:none}
@media(max-width:700px){.clickMarker .markerText{font-size:22px}.homeReturn{font-size:12px;padding:8px 10px}.stage.fullViewport{height:100svh!important}}

/* v10 icon and fullscreen refinements */
.topEntry{top:14px;bottom:auto;z-index:1090}
.topEnter{left:50%;top:60px;bottom:auto;transform:translateX(-50%);font-size:14px;padding:10px 16px}
.entryMarker .entryBox{fill:rgba(8,7,6,.78);stroke:rgba(215,162,75,.92);stroke-width:2.2;vector-effect:non-scaling-stroke;transition:fill .15s,stroke-width .15s,filter .15s}.entryMarker .entryDoor{fill:none;stroke:rgba(244,201,120,.95);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.entryMarker .entryArrow{fill:none;stroke:rgba(244,201,120,.98);stroke-width:3;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.entryMarker:hover .entryBox,.entryMarker.active .entryBox{fill:rgba(215,162,75,.18);stroke:rgba(255,210,121,1);stroke-width:3.2;filter:drop-shadow(0 0 7px rgba(230,159,55,.95))}

/* v11 interaction polish */
.fullViewportBackdrop{position:absolute;inset:-4%;z-index:0;background-size:cover;background-position:center;filter:blur(18px) brightness(.28);transform:scale(1.08);pointer-events:none}
.stage.fullViewport .scene.modalImage{z-index:1;object-fit:contain!important;width:100%!important;height:100%!important;padding:0!important;background:transparent!important}
.stage.fullViewport .overlay{z-index:8}
.clickMarker .markerCircle{fill:rgba(9,9,9,.72)!important;stroke:rgba(255,255,255,.68)!important;stroke-width:1.7!important}
.clickMarker .markerText{fill:rgba(255,255,255,.94)!important;font:700 18px Arial,sans-serif!important}
.clickMarker:hover .markerCircle,.clickMarker.active .markerCircle{fill:rgba(22,17,10,.88)!important;stroke:rgba(255,201,91,1)!important;stroke-width:2.5!important;filter:drop-shadow(0 0 5px rgba(230,159,55,.8))}
.clickMarker.active .markerText{fill:#ffd079!important}
.activeCursorHalo{pointer-events:none;fill:rgba(215,162,75,.08);stroke:rgba(255,204,103,.98);stroke-width:3;vector-effect:non-scaling-stroke;filter:drop-shadow(0 0 6px rgba(230,159,55,.9))}
.entryMarker .entryCircle{fill:rgba(8,7,6,.76);stroke:rgba(215,162,75,.96);stroke-width:2.2;vector-effect:non-scaling-stroke;transition:fill .15s,stroke-width .15s,filter .15s}
.entryMarker .entryDoor,.entryMarker .entryArrow{fill:none;stroke:rgba(244,201,120,.98);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.entryMarker:hover .entryCircle,.entryMarker.active .entryCircle{fill:rgba(215,162,75,.18);stroke:#ffd079;stroke-width:3;filter:drop-shadow(0 0 7px rgba(230,159,55,.9))}

/* v12 approved icon references */
.clickMarker .markerIcon{pointer-events:none;filter:drop-shadow(0 0 1px rgba(0,0,0,.85));opacity:.97}.clickMarker.active .markerIcon,.clickMarker:hover .markerIcon{filter:drop-shadow(0 0 6px rgba(255,208,121,.95)) brightness(1.08)}
.entryMarker .entryIcon{pointer-events:none;filter:drop-shadow(0 0 1px rgba(0,0,0,.9));opacity:.98}.entryMarker.active .entryIcon,.entryMarker:hover .entryIcon{filter:drop-shadow(0 0 7px rgba(255,208,121,.95)) brightness(1.06)}
.activeCursorHalo{pointer-events:none;filter:drop-shadow(0 0 7px rgba(255,208,121,.98)) brightness(1.08)}
.microPrompt{position:absolute;z-index:1045;left:50%;top:70px;transform:translateX(-50%);padding:6px 10px;border-radius:999px;border:1px solid rgba(167,119,49,.82);background:rgba(7,6,5,.86);color:#f0c77e;font:11px Arial,sans-serif;letter-spacing:.05em;pointer-events:none}
.topEntry{top:14px;bottom:auto}.enter{left:50%;bottom:5%;transform:translateX(-50%);font-size:14px;padding:10px 17px}
.stage.fullViewport .scene.modalImage{object-fit:contain!important;width:100vw!important;height:100svh!important;max-width:100vw!important;max-height:100svh!important}
.fullViewportBackdrop{inset:-8%;filter:blur(26px) brightness(.34);transform:scale(1.14)}
@media(max-width:700px){.microPrompt{top:58px;font-size:10px;padding:5px 9px}}

/* v13 regression repair */
.iconHit{fill:rgba(0,0,0,.001);stroke:transparent;pointer-events:auto}
.iconMask{fill:#090909;stroke:#090909;stroke-width:2;pointer-events:none}
.clickMarker .markerIcon,.entryMarker .entryIcon{pointer-events:none}

/* v14 surgical interaction cleanup */
.clickMarker:active .markerIcon,.entryMarker:active .entryIcon{filter:drop-shadow(0 0 8px rgba(255,208,121,.98)) brightness(1.12)}

/* v15 surgical interaction refinements */
.markerActiveRing{pointer-events:none;fill:none;stroke:#ffd079;stroke-width:2.7;vector-effect:non-scaling-stroke;filter:drop-shadow(0 0 6px rgba(255,196,82,.95));animation:markerPulse .55s ease-out}
@keyframes markerPulse{0%{opacity:.25;stroke-width:1.4}55%{opacity:1;stroke-width:3.2}100%{opacity:1;stroke-width:2.7}}
.clickMarker.active .markerIcon{filter:drop-shadow(0 0 8px rgba(255,208,121,.98)) brightness(1.12)!important}
.sealPrompt{position:absolute;z-index:1050;left:50%;top:84px;transform:translateX(-50%);padding:7px 12px;border:1px solid rgba(167,119,49,.82);border-radius:999px;background:rgba(7,6,5,.88);color:#f0c77e;font:12px Arial,sans-serif;letter-spacing:.04em;text-align:center;pointer-events:none}
@media(max-width:700px){.sealPrompt{top:68px;font-size:10px;padding:6px 9px;max-width:72%}}

/* v17 stewardship detail cleanup */
.stewardBottomCleanup{position:absolute;left:0;right:0;bottom:0;height:118px;z-index:1040;pointer-events:none;background:linear-gradient(180deg, rgba(7,6,5,0) 0%, rgba(7,6,5,.55) 18%, rgba(7,6,5,.88) 45%, rgba(7,6,5,.98) 100%)}
@media(max-width:700px){.stewardBottomCleanup{height:104px}}

/* v18 surgical refinements */
.builtInActiveRing{pointer-events:none;fill:rgba(215,162,75,.06);stroke:#ffd079;stroke-width:3;vector-effect:non-scaling-stroke;filter:drop-shadow(0 0 7px rgba(255,208,121,.95))}
.topRoomPrompt{position:absolute;z-index:1050;left:50%;top:14px;transform:translateX(-50%);max-width:72%;padding:7px 12px;border:1px solid rgba(167,119,49,.82);border-radius:999px;background:rgba(7,6,5,.88);color:#f0c77e;font:12px Arial,sans-serif;letter-spacing:.04em;text-align:center;pointer-events:none}
@media(max-width:700px){.topRoomPrompt{top:8px;font-size:10px;padding:6px 9px;max-width:68%}.sealPrompt{top:74px}}

/* v21 stewardship control positioning */
.stewardDetailReturn{position:absolute;right:13px;top:13px;left:auto}
.stewardHome{position:absolute;left:50%;top:84px;transform:translateX(-50%);font-weight:700;border-color:#d49b43;background:rgba(10,8,6,.94);box-shadow:0 0 18px rgba(215,162,75,.22)}
@media(max-width:700px){.stewardHome{top:66px;max-width:78%;text-align:center}.stewardDetailReturn{right:10px;top:10px}}

/* v24 donation panel */
.donationPanel{position:absolute;z-index:1070;right:3%;top:8%;width:min(540px,92%);background:rgba(8,7,6,.96);border:1px solid #9a6a2c;border-radius:16px;padding:18px;box-shadow:0 24px 70px #000;color:#ead8b8;font-family:Arial,sans-serif}
.donationK{font-size:10px;letter-spacing:.18em;color:#c59651;margin-bottom:4px}
.donationPanel h3{margin:0 0 8px;color:#f0c77d;font:700 30px/1.1 Georgia,serif}
.donationPanel p{margin:0 0 14px;color:#ded1bd;font-size:14px;line-height:1.45}
.donationGrid{display:grid;grid-template-columns:1.1fr .9fr;gap:14px;align-items:center;margin-bottom:14px}
.donationBrand{display:flex;gap:12px;align-items:center;padding:12px;border:1px solid rgba(167,119,49,.45);border-radius:12px;background:rgba(17,14,11,.72)}
.donationBrand img{width:92px;height:92px;object-fit:contain;border-radius:10px;background:#fff;padding:6px}
.donationBrandText b{display:block;color:#f0c77e;font-size:18px;margin-bottom:4px}
.donationBrandText span{display:block;color:#bda98b;font-size:12px;line-height:1.35}
.donationQR{width:100%;max-width:190px;justify-self:center;background:#fff;border-radius:14px;padding:10px;border:1px solid rgba(167,119,49,.45)}
.donationActions{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.donationBtn{border:1px solid #805926;background:rgba(16,13,10,.92);color:#f1c87e;border-radius:999px;padding:10px 14px;cursor:pointer;font:13px Arial,sans-serif}
.donationPrimary{border-color:#d49b43;background:linear-gradient(180deg,#2b1c0d,#171009);box-shadow:0 0 16px rgba(210,145,49,.22);font-weight:700}
.donationPanel small{display:block;color:#9e8c73;font-size:11px}
@media(max-width:700px){.donationPanel{left:4%;right:4%;top:7%;padding:14px}.donationPanel h3{font-size:23px}.donationGrid{grid-template-columns:1fr;gap:12px}.donationBrand img{width:74px;height:74px}.donationQR{max-width:170px}.donationActions{gap:8px}.donationBtn{font-size:12px;padding:9px 12px}}

/* v25 Future Member pathway + donation quick access */
.supportTop{border-color:#9b6d2d;background:linear-gradient(180deg,#1c130a,#0c0906);color:#f1c87e;font-weight:700;box-shadow:0 0 12px rgba(215,162,75,.16)}
.futureMemberPrompt{position:absolute;z-index:1046;left:50%;top:57.2%;transform:translateX(-50%);width:min(360px,26%);border:1px solid rgba(181,129,54,.88);background:rgba(8,7,6,.9);color:#f1c87e;border-radius:12px;padding:10px 14px;cursor:pointer;text-align:left;box-shadow:0 8px 28px rgba(0,0,0,.5);backdrop-filter:blur(5px)}
.futureMemberPrompt b{display:block;font:700 clamp(12px,1.05vw,18px) Georgia,serif;line-height:1.1}.futureMemberPrompt span{display:block;margin-top:3px;color:#cbb28a;font:11px Arial,sans-serif;letter-spacing:.1em;text-transform:uppercase}
.futureMemberPrompt:hover{border-color:#e1aa58;box-shadow:0 0 18px rgba(215,162,75,.22)}
.mapDonate{border-color:#a87832!important;color:#f1c87e!important;background:linear-gradient(180deg,#21160b,#100b07)!important;font-weight:700}
.memberRoomStart{position:absolute;z-index:1046;left:50%;top:1.8%;transform:translateX(-50%);min-width:310px;max-width:62%;border:1px solid rgba(181,129,54,.88);background:rgba(7,6,5,.9);color:#f0c77e;border-radius:12px;padding:8px 14px;cursor:pointer;text-align:center;box-shadow:0 8px 24px rgba(0,0,0,.45);backdrop-filter:blur(5px)}
.memberRoomStart b{display:block;font:700 18px Georgia,serif}.memberRoomStart span{display:block;margin-top:2px;color:#c6ad84;font:10px Arial,sans-serif;letter-spacing:.08em;text-transform:uppercase}
.resourcePanel{position:absolute;z-index:1075;left:50%;top:6%;transform:translateX(-50%);width:min(900px,92%);max-height:88%;overflow:auto;background:rgba(7,6,5,.97);border:1px solid #9a6a2c;border-radius:16px;padding:20px 22px 18px;box-shadow:0 28px 80px #000;color:#e9dac1;font-family:Arial,sans-serif}
.resourceK{font-size:10px;letter-spacing:.18em;color:#c59651;text-transform:uppercase;margin-bottom:4px}.resourcePanel h3{margin:0 0 8px;color:#f0c77d;font:700 30px/1.1 Georgia,serif}.resourceLead{margin:0 0 16px;color:#ded1bd;font-size:14px;line-height:1.48}.resourceCols{display:grid;grid-template-columns:1fr 1fr;gap:18px}.resourceCols section{border:1px solid rgba(154,106,44,.45);border-radius:12px;padding:13px 15px;background:rgba(17,14,11,.62)}.resourceCols h4{margin:0 0 7px;color:#e7b967;font:700 15px Georgia,serif}.resourceCols h4:not(:first-child){margin-top:14px}.resourceCols ul{margin:0;padding-left:19px}.resourceCols li{margin:0 0 6px;font-size:12.5px;line-height:1.4;color:#d9cbb4}.resourceCols p{font-size:12.5px;line-height:1.4;color:#d9cbb4}.pathStrip{display:flex;gap:7px;align-items:center;justify-content:center;flex-wrap:wrap;margin-top:16px;padding:10px;border-top:1px solid rgba(154,106,44,.5);color:#efc77f;font-size:11px}.pathStrip span{border:1px solid rgba(154,106,44,.52);border-radius:999px;padding:6px 9px;background:#100c08}.pathStrip b{color:#9e7540}.resourcePlaceholder{margin-top:12px;border:1px dashed rgba(154,106,44,.6);border-radius:12px;padding:22px;text-align:center;color:#bca98b;font-size:13px}.resourceClose{position:absolute;right:12px;top:10px;width:34px;height:34px;border-radius:50%;border:1px solid #805926;background:#0d0a07;color:#edc47c;cursor:pointer;font:24px/1 Arial,sans-serif}
@media(max-width:700px){.supportTop{font-size:9px;padding:6px 8px}.futureMemberPrompt{left:50%;top:56%;width:58%;padding:7px 9px;transform:translateX(-50%)}.futureMemberPrompt span{font-size:8px}.memberRoomStart{top:1.5%;min-width:0;width:67%;padding:6px 8px}.memberRoomStart b{font-size:14px}.memberRoomStart span{font-size:8px}.resourcePanel{top:4%;width:96%;max-height:92%;padding:16px 14px}.resourcePanel h3{font-size:23px}.resourceLead{font-size:12px}.resourceCols{grid-template-columns:1fr;gap:10px}.resourceCols li,.resourceCols p{font-size:11.5px}.pathStrip{font-size:9px;gap:5px}.resourceClose{right:8px;top:7px}}

/* v27 — A Day Within the Circle video integration */
.memberVideoTeaser{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:16px 0 4px;padding:14px 15px;border:1px solid rgba(181,129,54,.58);border-radius:12px;background:linear-gradient(135deg,rgba(31,22,13,.92),rgba(12,10,8,.92));box-shadow:inset 0 0 28px rgba(215,162,75,.04)}
.memberVideoTeaser>div{min-width:0}.memberVideoTeaser span{display:block;color:#c59651;font:700 9px Arial,sans-serif;letter-spacing:.18em;margin-bottom:4px}.memberVideoTeaser strong{display:block;color:#f0c77d;font:700 20px Georgia,serif;margin-bottom:4px}.memberVideoTeaser p{margin:0;color:#cfc1aa;font-size:12px;line-height:1.4;max-width:520px}.resourceVideoLink{flex:0 0 auto;border:1px solid #b78035;background:linear-gradient(180deg,#2b1c0d,#15100a);color:#f1c87e;border-radius:999px;padding:10px 14px;cursor:pointer;font:700 11px Arial,sans-serif;letter-spacing:.02em;box-shadow:0 0 14px rgba(215,162,75,.12)}
.resourceVideoLink:hover{border-color:#e0aa59;box-shadow:0 0 18px rgba(215,162,75,.22)}
.resourceVideoFeature{overflow:hidden;border:1px solid rgba(181,129,54,.58);border-radius:14px;background:#050403;box-shadow:0 14px 38px rgba(0,0,0,.48)}
.resourceVideoFeature video{display:block;width:100%;aspect-ratio:16/9;background:#000;object-fit:contain}
.resourceVideoMeta{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:11px 13px;background:linear-gradient(180deg,#15100b,#0b0907)}.resourceVideoMeta b{color:#efc77e;font:700 15px Georgia,serif}.resourceVideoMeta span{color:#9f8f78;font-size:10.5px;text-align:right}
.learningComingSoon{display:flex;gap:12px;align-items:flex-start;margin-top:12px;padding:11px 13px;border-top:1px solid rgba(154,106,44,.35);color:#bba98e}.learningComingSoon b{flex:0 0 auto;color:#d9b06c;font:700 12px Georgia,serif}.learningComingSoon span{font-size:11px;line-height:1.4}
@media(max-width:700px){.memberVideoTeaser{display:block;padding:12px}.memberVideoTeaser strong{font-size:17px}.resourceVideoLink{width:100%;margin-top:10px;padding:10px;font-size:10.5px}.resourceVideoMeta{display:block}.resourceVideoMeta span{display:block;text-align:left;margin-top:3px}.learningComingSoon{display:block}.learningComingSoon span{display:block;margin-top:4px}}

/* v28 — visible ICC film entry point in Education & Resource Room */
.videoRoomStart{
  position:absolute;
  left:50%;
  bottom:92px;
  transform:translateX(-50%);
  z-index:18;
  display:flex;
  align-items:center;
  gap:12px;
  min-width:310px;
  max-width:72vw;
  padding:12px 18px;
  border:1px solid rgba(211,165,86,.9);
  border-radius:14px;
  background:rgba(7,12,18,.92);
  color:#f5ead2;
  box-shadow:0 10px 28px rgba(0,0,0,.34);
  cursor:pointer;
  text-align:left;
}
.videoRoomStart>span{
  width:36px;height:36px;border-radius:50%;
  display:grid;place-items:center;
  border:1px solid rgba(211,165,86,.85);
  color:#d8aa60;font-size:17px;flex:0 0 auto;
}
.videoRoomStart b{display:block;font-size:15px;letter-spacing:.02em}
.videoRoomStart small{display:block;margin-top:2px;opacity:.78;font-size:12px}
.videoRoomStart:hover,.videoRoomStart:focus-visible{
  outline:none;border-color:#f0c67a;background:rgba(12,18,25,.97)
}
@media(max-width:700px){
  .videoRoomStart{bottom:72px;min-width:0;width:calc(100% - 36px);max-width:none}
}


/* v30 — Connect with the Circle / launch contact access */
.contactPanel{position:absolute;z-index:1085;left:50%;top:7%;transform:translateX(-50%);width:min(720px,94%);max-height:88%;overflow:auto;background:rgba(7,6,5,.975);border:1px solid #a87832;border-radius:16px;padding:20px 22px 18px;box-shadow:0 28px 80px #000;color:#e9dac1;font-family:Arial,sans-serif}
.contactK{font-size:10px;letter-spacing:.2em;color:#c59651;margin-bottom:5px}.contactPanel h3{margin:0 40px 8px 0;color:#f0c77d;font:700 30px/1.08 Georgia,serif}.contactLead{margin:0 0 15px;color:#d7cab4;font-size:14px;line-height:1.48}.contactDetails{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:13px}.contactDetails a{display:block;border:1px solid rgba(168,120,50,.48);border-radius:11px;padding:11px 12px;background:rgba(18,14,10,.72);text-decoration:none}.contactDetails span{display:block;color:#a89475;font-size:9px;letter-spacing:.12em;text-transform:uppercase;margin-bottom:3px}.contactDetails b{display:block;color:#efc77e;font-size:14px;overflow-wrap:anywhere}.contactActions{display:flex;gap:9px;flex-wrap:wrap;margin:4px 0 14px}.contactBtn{display:inline-block;border:1px solid #805926;background:#100c08;color:#efc77e;border-radius:999px;padding:10px 14px;text-decoration:none;font:700 12px Arial,sans-serif}.contactPrimary{border-color:#d49b43;background:linear-gradient(180deg,#2b1c0d,#171009);box-shadow:0 0 16px rgba(210,145,49,.2)}.contactRoutes{display:grid;grid-template-columns:1fr 1fr;gap:10px}.contactRoutes section{border-top:1px solid rgba(154,106,44,.5);padding-top:10px}.contactRoutes h4{margin:0 0 4px;color:#ddb168;font:700 14px Georgia,serif}.contactRoutes p{margin:0;color:#bfae94;font-size:11.5px;line-height:1.4}.contactPanel small{display:block;margin-top:13px;color:#91816b;font-size:10.5px}.contactClose{position:absolute;right:12px;top:10px;width:34px;height:34px;border-radius:50%;border:1px solid #805926;background:#0d0a07;color:#edc47c;cursor:pointer;font:24px/1 Arial,sans-serif}.mapContact{border-color:#a87832!important;color:#f1c87e!important;background:linear-gradient(180deg,#21160b,#100b07)!important;font-weight:700}.resourceContactLink{display:block;margin:14px auto 0;border:1px solid #b78035;background:linear-gradient(180deg,#2b1c0d,#15100a);color:#f1c87e;border-radius:999px;padding:10px 15px;cursor:pointer;font:700 11px Arial,sans-serif}
@media(max-width:700px){.contactPanel{top:4%;width:96%;max-height:92%;padding:16px 14px}.contactPanel h3{font-size:23px}.contactLead{font-size:12px}.contactDetails,.contactRoutes{grid-template-columns:1fr}.contactDetails b{font-size:12.5px}.contactActions{display:grid;grid-template-columns:1fr}.contactBtn{text-align:center}.contactClose{right:8px;top:7px}}
\n\n/* v31 iPhone/iPad immersive viewport repair */\n@media (max-width:900px){\n  html,body,#app{width:100%;height:100%;min-height:100%;overflow:hidden;background:#000}\n  header{position:fixed;left:0;right:0;top:0;z-index:40;transform:translateY(-110%);pointer-events:none}\n  main{padding:0;width:100%;height:100%;display:block}\n  .stage.mobileViewport{\n    position:fixed!important;inset:0!important;z-index:1000!important;\n    width:100dvw!important;height:100dvh!important;\n    max-width:none!important;max-height:none!important;aspect-ratio:auto!important;\n    border:0!important;border-radius:0!important;box-shadow:none!important;background:#000!important;\n    padding-top:env(safe-area-inset-top);padding-right:env(safe-area-inset-right);\n    padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left);\n  }\n  .stage.mobileViewport .scene.modalImage{\n    position:absolute!important;inset:0!important;z-index:1!important;\n    width:100%!important;height:100%!important;max-width:none!important;max-height:none!important;\n    object-fit:contain!important;object-position:center center!important;padding:0!important;background:transparent!important;\n  }\n  .stage.mobileViewport .overlay{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;z-index:8!important}\n  .stage.mobileViewport .fullViewportBackdrop{inset:-9%;z-index:0;background-size:cover;background-position:center;filter:blur(24px) brightness(.30);transform:scale(1.15)}\n  .stage.fullViewport{width:100dvw!important;height:100dvh!important}\n  .stage.fullViewport .scene.modalImage{width:100%!important;height:100%!important;object-fit:contain!important;object-position:center center!important}\n}\n@supports not (height:100dvh){\n  @media (max-width:900px){.stage.mobileViewport,.stage.fullViewport{height:100vh!important}}\n}\n

/* v33 — portrait-phone spacing experiment only.
   Preserves image scale, contain behavior, SVG viewBox/hotspot geometry, landscape,
   tablet and desktop behavior. The stage keeps a modest control/prompt buffer instead
   of consuming the full portrait viewport. */
@media (max-width:700px) and (orientation:portrait){
  .stage.mobileViewport{
    position:relative!important;
    inset:auto!important;
    z-index:auto!important;
    width:calc(100vw - 4px)!important;
    height:min(68dvh, calc((100vw - 4px) * var(--scene-mobile-ratio, .5625) + 180px))!important;
    min-height:390px!important;
    max-width:none!important;
    max-height:none!important;
    aspect-ratio:auto!important;
    margin:0 auto!important;
    border:1px solid #33230f!important;
    border-radius:0!important;
    box-shadow:0 20px 70px #000!important;
    background:#030303!important;
    overflow:hidden!important;
  }
  .stage.mobileViewport .scene.modalImage{
    position:absolute!important;
    inset:0!important;
    width:100%!important;
    height:100%!important;
    object-fit:contain!important;
    object-position:center center!important;
    padding:0!important;
    background:#030303!important;
  }
  .stage.mobileViewport .overlay{
    position:absolute!important;
    inset:0!important;
    width:100%!important;
    height:100%!important;
  }
  .stage.mobileViewport .fullViewportBackdrop{display:none!important}
}


/* v34 — phone portrait CTA docking + dedicated phone-landscape presentation.
   No hotspot coordinates or scene artwork are changed. */
.mobileDock{display:none}

@media (max-width:700px) and (orientation:portrait){
  html,body,#app{height:auto!important;min-height:100%;overflow-x:hidden!important;overflow-y:auto!important}
  main{display:block!important;height:auto!important;padding:2px!important}
  .stage.mobileViewport{
    height:calc((100vw - 4px) * var(--scene-mobile-ratio, .6667))!important;
    min-height:0!important;max-height:none!important;
    overflow:hidden!important;
  }
  .mobileDock{display:flex;flex-direction:column;align-items:center;gap:10px;width:100%;padding:12px 12px 18px;background:#030303}
  .mobileDock .futureMemberPrompt,.mobileDock .hint,.mobileDock .entryBadge,.mobileDock .memberRoomStart,.mobileDock .videoRoomStart,.mobileDock .enter{
    position:relative!important;left:auto!important;right:auto!important;top:auto!important;bottom:auto!important;transform:none!important;
    width:min(92%,560px)!important;max-width:560px!important;margin:0!important;
  }
  .mobileDock .futureMemberPrompt{padding:12px 16px!important;text-align:left!important}
  .mobileDock .futureMemberPrompt b{font-size:17px!important}.mobileDock .futureMemberPrompt span{font-size:10px!important}
  .mobileDock .hint{pointer-events:none;border-radius:999px!important;font-size:11px!important;line-height:1.35;padding:9px 14px!important}
  .mobileDock .entryBadge{text-align:center;border-radius:999px!important}
  .mobileDock .memberRoomStart,.mobileDock .videoRoomStart{min-width:0!important}
}

/* Safari phone landscape often reports a CSS width well above 900px, so height is the reliable discriminator. */
@media (orientation:landscape) and (max-height:560px){
  html,body,#app{width:100%;height:auto!important;min-height:100%;overflow-x:hidden!important;overflow-y:auto!important;background:#030303}
  header{
    position:relative!important;transform:none!important;pointer-events:auto!important;
    min-height:48px!important;padding:5px 10px!important;gap:8px!important;
  }
  .brand b{font-size:13px!important}.brand span{font-size:8px!important}
  .topbtn{font-size:10px!important;padding:6px 9px!important;white-space:nowrap}
  main{display:block!important;width:100%!important;height:auto!important;padding:2px 4px 10px!important}
  .stage,.stage.mobileViewport,.stage.fullViewport{
    position:relative!important;inset:auto!important;z-index:auto!important;
    width:min(100%, calc((100dvh - 54px) / var(--scene-mobile-ratio, .6667)))!important;
    height:calc(100dvh - 54px)!important;
    min-height:300px!important;max-height:none!important;max-width:none!important;
    margin:0 auto!important;border:1px solid #33230f!important;border-radius:6px!important;
    box-shadow:0 16px 50px #000!important;background:#030303!important;overflow:hidden!important;
  }
  .stage .scene.modalImage,.stage .scene{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;object-fit:contain!important;object-position:center!important;padding:0!important;background:#030303!important}
  .stage .overlay{position:absolute!important;inset:0!important;width:100%!important;height:100%!important}
  .stage .fullViewportBackdrop{display:none!important}
  .control{font-size:10px!important;padding:6px 9px!important}.back{left:8px!important;top:8px!important}.turn{right:8px!important;top:8px!important}
  .mobileDock{display:flex;flex-direction:column;align-items:center;gap:8px;width:100%;padding:8px 10px 14px;background:#030303}
  .mobileDock .futureMemberPrompt,.mobileDock .hint,.mobileDock .entryBadge,.mobileDock .memberRoomStart,.mobileDock .videoRoomStart,.mobileDock .enter{
    position:relative!important;left:auto!important;right:auto!important;top:auto!important;bottom:auto!important;transform:none!important;
    width:min(92%,680px)!important;max-width:680px!important;margin:0!important;
  }
  .mobileDock .hint{border-radius:999px!important;font-size:10px!important;line-height:1.3;padding:7px 12px!important}
  .mobileDock .futureMemberPrompt{padding:9px 13px!important}.mobileDock .futureMemberPrompt b{font-size:14px!important}.mobileDock .futureMemberPrompt span{font-size:9px!important}
  .mobileDock .entryBadge{text-align:center!important;border-radius:999px!important}
  .mobileDock .memberRoomStart,.mobileDock .videoRoomStart{min-width:0!important;padding:9px 12px!important}
}


/* v35 — iPhone landscape repair for portrait-format scenes and interactive detail panels.
   Landscape source scenes keep the v34 sizing. Portrait source scenes become a larger,
   scrollable presentation so thresholds, Pathway, Inspection Seal, and other tall assets
   are not reduced to a narrow strip. Informational cards are docked below the artwork. */
.detailCaption{position:absolute;z-index:1060;left:50%;bottom:48px;transform:translateX(-50%);width:min(650px,88%);background:rgba(8,7,6,.94);border:1px solid #8c642c;border-radius:12px;padding:12px 15px;box-shadow:0 16px 45px #000;color:#ded1bd;pointer-events:none}
.detailCaption .k{font:10px Arial,sans-serif;letter-spacing:.17em;text-transform:uppercase;color:#bb8c4c}.detailCaption h3{margin:3px 0 5px;color:#f0c77f;font:700 20px Georgia,serif}.detailCaption p{margin:0;color:#ded1bd;font:14px/1.42 Arial,sans-serif}
@media (orientation:landscape) and (max-height:560px){
  /* Tall approved assets need width rather than viewport-height scaling in landscape. */
  .stage.portraitScene,.stage.portraitScene.mobileViewport,.stage.portraitScene.fullViewport{
    width:min(76vw,760px)!important;
    height:auto!important;
    min-height:0!important;
    aspect-ratio:var(--scene-aspect)!important;
    overflow:hidden!important;
  }
  .stage.portraitScene .scene,.stage.portraitScene .scene.modalImage{
    position:absolute!important;inset:0!important;width:100%!important;height:100%!important;
    object-fit:fill!important;object-position:center!important;
  }
  .stage.portraitScene .overlay{position:absolute!important;inset:0!important;width:100%!important;height:100%!important}
  .stage.portraitScene .control{max-width:46%!important;white-space:normal!important;line-height:1.15!important}
  .stage.portraitScene .back{left:8px!important;top:8px!important}.stage.portraitScene .turn{right:8px!important;top:8px!important}

  /* No explanatory card should cover interactive architecture in phone landscape. */
  .mobileDock .info,.mobileDock .topRoomPrompt,.mobileDock .sealPrompt,.mobileDock .microPrompt,.mobileDock .detailCaption{
    position:relative!important;left:auto!important;right:auto!important;top:auto!important;bottom:auto!important;
    transform:none!important;width:min(92%,760px)!important;max-width:760px!important;margin:0!important;
    box-sizing:border-box!important;
  }
  .mobileDock .info,.mobileDock .detailCaption{padding:9px 12px!important;border-radius:12px!important;text-align:left!important}
  .mobileDock .info h3,.mobileDock .detailCaption h3{font-size:16px!important;margin:2px 0 4px!important}
  .mobileDock .info p,.mobileDock .detailCaption p{font-size:11px!important;line-height:1.35!important}
  .mobileDock .info small{font-size:9px!important;margin-top:5px!important}
  .mobileDock .topRoomPrompt,.mobileDock .sealPrompt,.mobileDock .microPrompt{
    padding:7px 12px!important;border-radius:999px!important;text-align:center!important;font-size:10px!important;line-height:1.3!important;
  }
}

/* v40 — consolidated iPhone landscape corrections only.
   Portrait/tablet/desktop rules above remain untouched. */
.pathwayTap{display:none}
@media (orientation:landscape) and (max-height:560px){
  /* PATHWAY: native 1024x1535 geometry, no stretching. HTML tap zones are
     positioned from the same source coordinates as the visible stair risers. */
  .stage[data-scene="pathway"],
  .stage[data-scene="pathway"].portraitScene,
  .stage[data-scene="pathway"].mobileViewport,
  .stage[data-scene="pathway"].fullViewport{
    position:relative!important;
    width:min(74vw,760px)!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    aspect-ratio:1024 / 1535!important;
    margin:0 auto!important;
    overflow:hidden!important;
    background:#030303!important;
  }
  .stage[data-scene="pathway"] .scene,
  .stage[data-scene="pathway"] .scene.modalImage{
    position:absolute!important;inset:0!important;
    width:100%!important;height:100%!important;
    object-fit:fill!important;object-position:center!important;
    padding:0!important;background:#030303!important;
  }
  .stage[data-scene="pathway"] .overlay{
    position:absolute!important;inset:0!important;width:100%!important;height:100%!important;
    pointer-events:none!important;z-index:20!important;
  }
  .stage[data-scene="pathway"] .pathwayTap{
    display:block!important;position:absolute!important;z-index:40!important;
    border:0!important;background:transparent!important;box-shadow:none!important;
    padding:0!important;margin:0!important;appearance:none!important;-webkit-appearance:none!important;
    touch-action:manipulation!important;-webkit-tap-highlight-color:transparent!important;cursor:pointer!important;
  }
  .stage[data-scene="pathway"] .pathwayTap:focus{outline:none!important}

  /* INSPECTION SEAL: larger portrait close-up, native 3:4 proportions.
     The page scrolls vertically instead of shrinking the approved asset. */
  .stage[data-scene="inspect"],
  .stage[data-scene="inspect"].portraitScene,
  .stage[data-scene="inspect"].mobileViewport,
  .stage[data-scene="inspect"].fullViewport{
    position:relative!important;
    width:min(78vw,760px)!important;
    height:auto!important;min-height:0!important;max-height:none!important;
    aspect-ratio:768 / 1024!important;
    margin:0 auto!important;overflow:hidden!important;background:#030303!important;
  }
  .stage[data-scene="inspect"] .scene,
  .stage[data-scene="inspect"] .scene.modalImage{
    position:absolute!important;inset:0!important;width:100%!important;height:100%!important;
    object-fit:fill!important;object-position:center!important;padding:0!important;background:#030303!important;
  }
  .stage[data-scene="inspect"] .overlay{position:absolute!important;inset:0!important;width:100%!important;height:100%!important}

  /* FLOOR SEAL: the detail card is centered against the actual viewport,
     independent of the scene width or horizontal offset. */
  #mobileDock{
    display:flex!important;flex-direction:column!important;align-items:center!important;
    width:100vw!important;max-width:100vw!important;box-sizing:border-box!important;
    margin:0!important;padding-left:10px!important;padding-right:10px!important;
  }
  #mobileDock .floorSealCaption{
    position:relative!important;left:auto!important;right:auto!important;top:auto!important;bottom:auto!important;
    transform:none!important;align-self:center!important;
    width:min(88vw,980px)!important;max-width:980px!important;
    margin:2px auto 0!important;box-sizing:border-box!important;text-align:left!important;
  }
}

/* v41 — Pathway-to-Permanence phone-landscape orientation gate only.
   Portrait Pathway and all other scenes/orientations remain unchanged. */
@media (orientation:landscape) and (max-height:560px){
  .stage.pathwayRotateStage{
    width:100%!important;
    max-width:none!important;
    height:calc(100dvh - 54px)!important;
    min-height:260px!important;
    margin:0 auto!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    overflow:hidden!important;
    border:1px solid #33230f!important;
    background:radial-gradient(circle at 50% 45%,#171109 0%,#080706 48%,#020202 100%)!important;
  }
  .pathwayRotateGate{
    width:min(680px,88vw);
    margin:auto;
    padding:22px 28px;
    box-sizing:border-box;
    text-align:center;
    color:#ead9bd;
    background:rgba(7,6,5,.94);
    border:1px solid #8c642c;
    border-radius:16px;
    box-shadow:0 18px 60px #000;
  }
  .pathwayRotateGate .rotateMark{font-size:34px;line-height:1;color:#d7a85f;margin-bottom:8px}
  .pathwayRotateGate .rotateK{font:700 10px/1.2 Arial,sans-serif;letter-spacing:.22em;color:#c4934d;margin-bottom:7px}
  .pathwayRotateGate h2{margin:0 0 8px;color:#f1d092;font:700 23px/1.1 Georgia,serif}
  .pathwayRotateGate p{margin:0 auto 13px;max-width:520px;color:#d8c9b3;font:12px/1.45 Arial,sans-serif}
  .pathwayRotateGate .rotateAction{display:inline-block;border:1px solid #8c642c;border-radius:999px;padding:7px 13px;color:#e4bd78;font:700 10px/1 Arial,sans-serif;letter-spacing:.13em}
}


/* v43 — Impact Gallery usability only, layered onto the untouched v41 portrait baseline. */
.stage[data-scene="impactLanding"] .impactLandingGate{position:absolute;left:50%;top:58%;transform:translate(-50%,-50%);z-index:1120;width:min(560px,72%);box-sizing:border-box;padding:22px 24px;text-align:center;color:#ead9bd;background:rgba(6,5,4,.94);border:1px solid #8c642c;border-radius:18px;box-shadow:0 20px 70px rgba(0,0,0,.82),0 0 24px rgba(178,119,43,.10)}
.stage[data-scene="impactLanding"] .impactLandingK{font:700 10px/1.2 Arial,sans-serif;letter-spacing:.24em;color:#c4934d;margin-bottom:7px}
.stage[data-scene="impactLanding"] .impactLandingGate h2{margin:0 0 7px;color:#f1d092;font:700 28px/1.05 Georgia,serif}
.stage[data-scene="impactLanding"] .impactLandingGate p{margin:0 auto 14px;max-width:440px;color:#ded0ba;font:13px/1.45 Arial,sans-serif}
.stage[data-scene="impactLanding"] .impactLandingEnter{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-width:300px;padding:14px 20px;border:1px solid #b27a31;border-radius:999px;background:linear-gradient(180deg,#24180b,#0c0905);color:#f1cf91;font:700 13px/1 Arial,sans-serif;letter-spacing:.08em;cursor:pointer;box-shadow:0 0 22px rgba(186,125,45,.22)}
.stage[data-scene="impactLanding"] .impactLandingEnter span{font-size:19px;line-height:1}
.stage[data-scene="impactLanding"] .impactLandingGate small{display:block;margin-top:10px;color:#a99270;font:10px/1.35 Arial,sans-serif}
.stage[data-scene="impact"] .impactOrientationSuggestion{position:absolute;inset:0;z-index:1800;display:grid;place-items:center;padding:18px;background:rgba(0,0,0,.72);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}
.stage[data-scene="impact"] .impactOrientationCard{width:min(360px,88vw);box-sizing:border-box;padding:20px 18px;text-align:center;background:rgba(8,7,5,.97);border:1px solid #8c642c;border-radius:16px;box-shadow:0 22px 70px #000;color:#e8d8bd}
.stage[data-scene="impact"] .impactRotateIcon{font-size:34px;line-height:1;color:#d7a85f;margin-bottom:7px}
.stage[data-scene="impact"] .impactOrientationK{font:700 9px/1.2 Arial,sans-serif;letter-spacing:.22em;color:#c4934d;margin-bottom:6px}
.stage[data-scene="impact"] .impactOrientationCard h3{margin:0 0 8px;color:#f1d092;font:700 22px/1.08 Georgia,serif}
.stage[data-scene="impact"] .impactOrientationCard p{margin:0 auto 14px;color:#d7c8b1;font:12px/1.45 Arial,sans-serif;max-width:300px}
.stage[data-scene="impact"] .impactOrientationCard button{border:1px solid #8c642c;border-radius:999px;background:#100c07;color:#e5bd78;padding:9px 14px;font:700 10px/1 Arial,sans-serif;letter-spacing:.08em;cursor:pointer}
@media(max-width:700px) and (orientation:portrait){.stage[data-scene="impactLanding"] .impactLandingGate{top:50%;width:84%;padding:16px 14px;border-radius:14px}.stage[data-scene="impactLanding"] .impactLandingGate h2{font-size:22px}.stage[data-scene="impactLanding"] .impactLandingGate p{font-size:11px;margin-bottom:11px}.stage[data-scene="impactLanding"] .impactLandingEnter{min-width:0;width:100%;padding:12px 13px;font-size:11px}.stage[data-scene="impactLanding"] .impactLandingGate small{font-size:9px}}
@media(orientation:landscape) and (max-height:560px){.stage[data-scene="impactLanding"] .impactLandingGate{top:51%;width:min(580px,62vw);padding:14px 18px}.stage[data-scene="impactLanding"] .impactLandingGate h2{font-size:23px}.stage[data-scene="impactLanding"] .impactLandingGate p{font-size:11px;margin-bottom:9px}.stage[data-scene="impactLanding"] .impactLandingEnter{padding:10px 16px;font-size:11px;min-width:270px}.stage[data-scene="impactLanding"] .impactLandingGate small{font-size:9px;margin-top:7px}}

/* v44 — targeted mobile cleanup only.
   Priority 1: Headquarters quick-navigation modal.
   Priority 2: Founder threshold and Circle Sitting Area portrait scene presence.
   No Impact Gallery, Pathway, desktop, or unrelated scene behavior changed. */

/* Headquarters Map: make it a true viewport-centered quick-navigation modal on mobile. */
@media (max-width:900px){
  .mapPanel{
    position:fixed!important;
    left:50%!important;
    top:50%!important;
    right:auto!important;
    bottom:auto!important;
    transform:translate(-50%,-50%)!important;
    width:min(92vw,560px)!important;
    max-width:560px!important;
    max-height:min(82dvh,760px)!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    padding:18px!important;
    margin:0!important;
    z-index:5000!important;
    border-radius:16px!important;
    box-sizing:border-box!important;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior:contain;
  }
  .mapPanel h3{font-size:clamp(26px,7vw,34px)!important;line-height:1.05!important;margin:5px 0 10px!important}
  .mapPanel p{font-size:13px!important;line-height:1.42!important;margin-bottom:14px!important}
  .mapGrid{gap:9px!important}
  .mapGrid button{font-size:14px!important;line-height:1.25!important;padding:13px 14px!important;border-radius:12px!important}
  .mapPanel small{font-size:10px!important;line-height:1.35!important;margin-top:11px!important}
}

@media (max-width:700px) and (orientation:portrait){
  .mapPanel{
    width:calc(100vw - 28px)!important;
    max-width:none!important;
    max-height:calc(100dvh - 130px)!important;
    padding:16px 15px!important;
  }
  .mapPanel .mapK{font-size:10px!important}
  .mapPanel h3{font-size:28px!important}
  .mapGrid button{font-size:13px!important;padding:12px 13px!important}

  /* Give these two approved landscape scenes the full usable phone width.
     Image and SVG keep identical geometry; no crop and no hotspot remap. */
  .stage[data-scene="founderT"],
  .stage[data-scene="steward"]{
    width:100vw!important;
    max-width:100vw!important;
    margin-left:calc(50% - 50vw)!important;
    margin-right:0!important;
    border-left:0!important;
    border-right:0!important;
    border-radius:0!important;
    box-shadow:none!important;
  }
  .stage[data-scene="founderT"]{height:calc(100vw * 1024 / 1535)!important}
  .stage[data-scene="steward"]{height:calc(100vw * 1024 / 1536)!important}
  .stage[data-scene="founderT"] .scene,
  .stage[data-scene="founderT"] .scene.modalImage,
  .stage[data-scene="steward"] .scene,
  .stage[data-scene="steward"] .scene.modalImage{
    width:100%!important;
    height:100%!important;
    object-fit:contain!important;
    object-position:center center!important;
    padding:0!important;
  }
  .stage[data-scene="founderT"] .overlay,
  .stage[data-scene="steward"] .overlay{
    width:100%!important;
    height:100%!important;
    inset:0!important;
  }
}

@media (orientation:landscape) and (max-height:560px){
  .mapPanel{
    width:min(78vw,820px)!important;
    max-width:820px!important;
    max-height:calc(100dvh - 20px)!important;
    padding:13px 16px!important;
  }
  .mapPanel h3{font-size:24px!important;margin:2px 0 6px!important}
  .mapPanel p{font-size:11px!important;margin-bottom:8px!important}
  .mapGrid{grid-template-columns:1fr 1fr!important;gap:7px!important}
  .mapGrid button{font-size:10.5px!important;padding:9px 10px!important}
  .mapPanel small{font-size:9px!important;margin-top:7px!important}
}


/* v45 — Headquarters Quick Navigation landscape-only repair.
   Portrait and every other scene/orientation remain untouched. */
@media (orientation:landscape) and (max-height:560px){
  .mapLandscapeLayer{
    position:fixed;
    inset:0;
    z-index:99999;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:max(8px,env(safe-area-inset-top)) max(14px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left));
    box-sizing:border-box;
    background:rgba(0,0,0,.58);
    backdrop-filter:blur(2px);
    -webkit-backdrop-filter:blur(2px);
  }
  .mapLandscapeLayer .mapPanel{
    position:relative!important;
    left:auto!important;
    top:auto!important;
    right:auto!important;
    bottom:auto!important;
    transform:none!important;
    width:min(860px,calc(100vw - 44px))!important;
    max-width:calc(100vw - 44px)!important;
    max-height:calc(100dvh - 18px)!important;
    overflow:auto!important;
    margin:0!important;
    padding:12px 14px!important;
    box-sizing:border-box!important;
    border-radius:14px!important;
  }
  .mapLandscapeLayer .mapPanel h3{font-size:22px!important;margin:2px 0 5px!important}
  .mapLandscapeLayer .mapPanel p{font-size:10.5px!important;line-height:1.3!important;margin:0 0 7px!important}
  .mapLandscapeLayer .mapGrid{grid-template-columns:1fr 1fr!important;gap:6px!important}
  .mapLandscapeLayer .mapGrid button{font-size:10.5px!important;line-height:1.15!important;padding:8px 10px!important;min-height:38px!important}
  .mapLandscapeLayer .mapPanel small{font-size:8.5px!important;line-height:1.2!important;margin-top:6px!important}
}

/* v51 — partnership resource links */
.resourceInlineLink,.contactRouteLink{display:inline-flex;margin-top:8px;color:#e4bd74;text-decoration:none;font-size:11px;font-weight:800;border-bottom:1px solid rgba(200,154,75,.45);padding-bottom:2px}.resourceActionRow{display:flex;gap:10px;flex-wrap:wrap;margin-top:15px}.resourceAnchorLink{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}

/* v51 referral-path clarity — native actions, no visual overlays */
.resourceLinkStack{display:flex;flex-direction:column;align-items:flex-start;gap:7px;margin-top:11px}.resourcePrimaryInline{font-size:12px}.resourceSecondaryInline{opacity:.78;font-size:10.5px}.resourceSecondaryLink{display:block;margin:9px auto 0;color:#d9bd84;text-decoration:none;font:600 10.5px/1.35 Arial,sans-serif;text-align:center}.resourceSecondaryLink:hover{text-decoration:underline}.resourcePrimaryAction{font-size:12px;padding:11px 18px}
