/* styles.css */
@font-face{font-family:Barlow;src:url('../assets/fonts/Barlow-Regular.ttf') format('truetype');font-weight:400;font-display:swap}@font-face{font-family:Barlow;src:url('../assets/fonts/Barlow-Medium.ttf') format('truetype');font-weight:500;font-display:swap}@font-face{font-family:Barlow;src:url('../assets/fonts/Barlow-ExtraBold.ttf') format('truetype');font-weight:800;font-display:swap}@font-face{font-family:Barlow;src:url('../assets/fonts/Barlow-Black.ttf') format('truetype');font-weight:900;font-display:swap}
:root{--forest:#343d28;--army:#403e26;--moss:#95997d;--sand:#c0c1b0;--diesel:#bcbdbf;--smoke:#ecece7;--gold:#e5ac00;--ink:#24291e;--gutter:clamp(1.5rem,6vw,7rem);--line:rgba(52,61,40,.24);--header:88px;--gate-open:0;--camera:1;--intro-opacity:1;--arrival-opacity:0;--seal-opacity:1;--scene-y:0px}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px;scrollbar-gutter:stable}body{margin:0;background:var(--forest);color:var(--ink);font-family:Barlow,Arial,sans-serif;font-size:1rem;line-height:1.5;-webkit-font-smoothing:antialiased}body.modal-open{overflow:hidden}button,input,textarea,select{font:inherit}a{color:inherit;text-decoration:none}button,a,input,textarea{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:wait}img,video{display:block;max-width:100%}button{color:inherit}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid var(--gold);outline-offset:6px}input:focus-visible,textarea:focus-visible{outline:2px solid var(--gold);outline-offset:4px}::selection{background:var(--gold);color:var(--ink)}h1,h2,h3,p{margin:0}h1,h2,h3{line-height:.98;font-weight:900;letter-spacing:-.035em}h2{font-size:clamp(3.25rem,6.5vw,7.75rem)}em{font-style:normal;color:var(--gold)}.eyebrow{text-transform:uppercase;font-size:.875rem;line-height:1.5;letter-spacing:.14em;font-weight:500;display:flex;align-items:center;gap:.85rem}.section-pad{padding:clamp(5rem,11vw,10rem) var(--gutter)}.text-link{display:inline-flex;align-items:center;gap:1.6rem;font-size:1.125rem;border-bottom:1px solid currentColor;padding:0 0 .5rem}.text-link span{font-size:1.8rem;line-height:1}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}[hidden]{display:none!important}.skip-link{position:fixed;left:1rem;top:1rem;z-index:30;background:var(--gold);color:var(--ink);padding:1rem;transform:translateY(-180%)}.skip-link:focus{transform:none}.hex-mark{width:18px;height:21px;flex:none;background:currentColor;clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%)}
.site-header{position:fixed;top:0;left:0;right:0;height:var(--header);z-index:15;padding:1rem var(--gutter);display:flex;align-items:center;justify-content:space-between;gap:2rem;color:var(--smoke);background:linear-gradient(180deg,rgba(20,25,17,.82),rgba(20,25,17,0));transition:background .25s,color .25s}.site-header.scrolled{background:#24291e}.brand img{width:82px;height:auto}.site-header nav{display:flex;align-items:center;gap:clamp(1rem,3.5vw,4rem);font-size:1rem}.site-header nav a{padding:.5rem 0}.nav-contact{border-bottom:1px solid rgba(236,236,231,.55)}.nav-contact span{margin-left:1rem}
.entrance{height:270svh;position:relative;background:var(--army);color:var(--smoke)}.entrance-sticky{height:100svh;min-height:620px;position:sticky;top:0;overflow:hidden;isolation:isolate}.scene,.gate,.gate-leaf,.scene-shade{position:absolute;inset:0}.scene{z-index:-3;transform:scale(var(--camera)) translateY(var(--scene-y));transform-origin:50% 55%;will-change:transform}.courtyard{width:100%;height:100%;object-fit:cover;object-position:50% 50%}.scene-shade{background:linear-gradient(90deg,rgba(20,25,17,.22),transparent 65%),linear-gradient(0deg,rgba(20,25,17,.75),transparent 55%)}.gate{z-index:-2;pointer-events:none}.gate-leaf{background-image:linear-gradient(0deg,rgba(15,20,12,.5),rgba(15,20,12,.16) 65%,rgba(15,20,12,.2)),url('../assets/gate.webp');background-size:cover;background-position:center;will-change:transform}.gate-left{clip-path:polygon(0 0,50.05% 0,50.05% 100%,0 100%);transform:translateX(calc(var(--gate-open) * -55%))}.gate-right{clip-path:polygon(49.95% 0,100% 0,100% 100%,49.95% 100%);transform:translateX(calc(var(--gate-open) * 55%))}.gate-seal{position:absolute;left:50%;top:25%;width:clamp(80px,10vw,145px);transform:translate(-50%,-50%);opacity:var(--seal-opacity)}.gate-seal img{width:100%;filter:drop-shadow(0 6px 8px rgba(0,0,0,.35))}.hero-copy{position:absolute;left:var(--gutter);right:var(--gutter);top:42%;transform:translateY(-12%);opacity:var(--intro-opacity);will-change:opacity}.hero-copy h1{font-size:clamp(4.5rem,8.8vw,10.5rem);margin:1.1rem 0 1.6rem;line-height:.94;max-width:1000px}.hero-description{font-size:clamp(1.125rem,1.5vw,1.5rem);line-height:1.4}.arrival{position:absolute;left:var(--gutter);bottom:17%;opacity:var(--arrival-opacity);transform:translateY(calc((1 - var(--arrival-opacity)) * 30px));pointer-events:none}.arrival p{font-weight:900;line-height:.94;letter-spacing:-.04em;font-size:clamp(4.5rem,9vw,11rem);margin-top:1rem}.entrance-bottom{position:absolute;left:var(--gutter);right:var(--gutter);bottom:2.5rem;display:flex;justify-content:space-between;align-items:center;gap:1rem;font-size:.95rem}.scroll-cue{display:flex;align-items:center;gap:1rem}.scroll-cue>span{font-size:2rem;line-height:1}.entrance-bottom a{border-bottom:1px solid rgba(236,236,231,.45);padding-bottom:.25rem}.entrance-bottom a span{margin-left:1rem}.motion-control{position:absolute;right:var(--gutter);top:calc(var(--header) + 1rem);background:rgba(25,30,20,.65);border:1px solid rgba(236,236,231,.5);color:var(--smoke);padding:.55rem .8rem;font-size:.8125rem;min-height:42px;border-radius:2px}
.services{background:var(--smoke)}.section-heading{display:grid;grid-template-columns:1.35fr 1fr;gap:1.75rem 4rem;align-items:end;margin-bottom:5rem}.section-heading .eyebrow{grid-column:1/-1}.section-heading h2{color:var(--forest)}.section-heading .serif-word{color:var(--moss)}.section-lead{font-size:clamp(1.375rem,2.15vw,2.25rem);line-height:1.35;max-width:26rem;padding-bottom:.2rem}.service-list{display:grid;grid-template-columns:repeat(3,1fr);gap:2.5rem;margin-bottom:4.5rem}.service-item{border-top:1px solid var(--line);padding:1.5rem 0 0;display:flex;flex-direction:column;align-items:flex-start}.service-index{font-size:.875rem;font-weight:500;color:var(--forest);margin-bottom:3.5rem}.service-item h3{font-size:clamp(1.75rem,2.4vw,2.75rem);font-weight:800;line-height:1.08;margin-bottom:1rem}.service-description{font-size:1.125rem;line-height:1.5;max-width:25rem}.service-item ul{list-style:none;margin:2rem 0;padding:0;font-size:1rem}.service-item li{padding:.55rem 0;border-bottom:1px solid var(--line)}.service-item .scope{font-size:.9375rem;color:#58604e;line-height:1.5;margin-top:auto}.prices{border-block:1px solid var(--forest)}.prices summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:1rem;cursor:pointer;min-height:92px;padding:1.25rem 0}.prices summary::-webkit-details-marker{display:none}.prices summary>span:first-child{font-size:clamp(1.5rem,3vw,2.75rem);font-weight:800;letter-spacing:-.025em}.summary-sub{font-size:1rem;display:flex;align-items:center;gap:2rem}.summary-sub>span{font-size:2rem;font-weight:400;transition:transform .25s}.prices[open] .summary-sub>span{transform:rotate(45deg)}.price-content{padding:1rem 0 2.5rem}.price-intro{max-width:740px;font-size:1.25rem;margin-bottom:2rem}.price-row{display:grid;grid-template-columns:1.1fr 1.4fr .4fr;gap:2rem;align-items:center;padding:1rem 0;border-top:1px solid var(--line)}.price-row strong{font-weight:500;font-size:1.125rem}.price-row .price{font-size:1.375rem;text-align:right;white-space:nowrap;font-weight:800}.price-row .unit{color:#59604f}.copy-note{padding:1.5rem;margin:1.5rem 0;background:var(--sand);max-width:950px;font-size:1.05rem}.scope-notes{display:grid;grid-template-columns:1fr 1fr;gap:2rem;font-size:.9375rem;color:#525a48}.conditions{display:grid;grid-template-columns:repeat(3,1fr);gap:3rem;margin-top:3rem}.conditions strong{font-size:1.5rem;line-height:1.1;font-weight:800}.conditions p{margin-top:.8rem;color:#4f5747}.fine-note{font-size:.875rem;max-width:850px;color:#59604f;margin-top:2rem}
.work{background:var(--forest);color:var(--smoke);position:relative;padding-bottom:8rem}.work-heading{display:flex;justify-content:space-between;gap:3rem;align-items:end}.work-heading h2{margin-top:1.8rem}.work-heading>p{font-size:1.3rem;line-height:1.4;padding-bottom:.35rem}.filters{display:flex;flex-wrap:wrap;gap:.7rem;margin:3.5rem 0 1.5rem}.filters button{border:1px solid rgba(236,236,231,.4);border-radius:3rem;background:transparent;color:inherit;padding:.65rem 1.3rem;font-size:1rem;min-height:44px}.filters button[aria-pressed=true]{background:var(--smoke);border-color:var(--smoke);color:var(--forest)}.year-group{border-top:1px solid rgba(236,236,231,.28);padding:3rem 0 4rem;display:grid;grid-template-columns:.27fr 1fr;gap:3rem;scroll-margin-top:115px}.year-heading{font-size:clamp(3rem,5vw,6rem);font-weight:400;letter-spacing:-.06em;line-height:1}.project-grid{display:grid;gap:3rem}.project{min-width:0}.project-open{text-align:left;padding:0;background:none;border:0;width:100%;display:block}.project-visual{aspect-ratio:16/9;background:#252a1f;position:relative;overflow:hidden;display:block}.project-visual img{width:100%;height:100%;object-fit:cover;transition:transform .65s cubic-bezier(.2,.65,.2,1)}.project-visual.contain img{object-fit:contain}.project-open:hover .project-visual img{transform:scale(1.035)}.project-action{position:absolute;right:1rem;bottom:1rem;display:flex;gap:2rem;align-items:center;background:var(--smoke);color:var(--forest);padding:.6rem 1rem;font-size:.875rem}.project-action span{font-size:1.4rem}.project-meta{display:flex;justify-content:space-between;gap:2rem;font-size:.875rem;color:var(--sand);margin:1.25rem 0 .7rem}.project h3{font-size:clamp(1.75rem,3vw,3.25rem);line-height:1.1;font-weight:800}.timeline{position:fixed;z-index:12;bottom:1.2rem;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:.75rem;padding:.55rem .8rem;background:rgba(36,41,30,.97);color:var(--smoke);border:1px solid rgba(236,236,231,.28);border-radius:4rem;box-shadow:0 6px 30px rgba(0,0,0,.15)}.timeline-label{font-size:.8125rem;padding:0 .5rem;color:var(--sand)}.timeline a{font-size:1rem;min-height:40px;min-width:63px;display:grid;place-items:center;border-radius:2rem;padding:.2rem .8rem}.timeline a[aria-current=true]{background:var(--gold);color:var(--ink)}
.about{background:var(--sand);display:grid;grid-template-columns:1fr 1.15fr;gap:7vw;align-items:center}.about-monogram{min-height:400px;display:flex;flex-direction:column;justify-content:center;align-items:center;position:relative}.about-hex{width:90%;max-width:450px;aspect-ratio:1/1.1;display:grid;place-items:center;background:var(--forest);color:var(--smoke);clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%)}.about-hex>span{font-weight:900;font-size:clamp(5rem,9vw,10rem);letter-spacing:-.09em}.monogram-dot{color:var(--gold)}.about-caption{font-size:.875rem;text-transform:uppercase;letter-spacing:.12em;margin-top:1.5rem}.about-copy h2{font-size:clamp(3rem,5.5vw,6.25rem);margin:1.5rem 0 2rem}.about-copy>p:not(.eyebrow){font-size:1.3rem;line-height:1.5;max-width:560px}.about-copy .text-link{margin-top:2.5rem}.instagram{background:var(--smoke);display:flex;justify-content:space-between;align-items:end;gap:2rem;padding-top:4.5rem;padding-bottom:4.5rem}.instagram h2{font-size:clamp(2.25rem,4vw,4rem);margin-top:1rem}.instagram .text-link{white-space:nowrap;font-size:1rem}
.contact{background:var(--army);color:var(--smoke);display:grid;grid-template-columns:1.05fr 1fr;gap:6vw;align-items:start}.contact h2{font-size:clamp(3.7rem,6.1vw,7.3rem);margin:1.5rem 0 2rem}.contact-intro>p:not(.eyebrow){font-size:1.25rem;line-height:1.5}.direct-contact{font-size:clamp(1.5rem,2.1vw,2.5rem);display:flex;justify-content:space-between;gap:2rem;max-width:380px;margin:2.4rem 0 .6rem;padding-bottom:.4rem;border-bottom:1px solid rgba(236,236,231,.4)}.email-link{font-size:1.125rem}.brief-form{padding-top:.5rem}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.brief-form label,.brief-form legend{font-size:1rem;line-height:1.5}.brief-form input:not([type=checkbox]),.brief-form textarea{width:100%;display:block;background:transparent;border:0;border-bottom:1px solid var(--moss);border-radius:0;color:var(--smoke);padding:.9rem 0 .75rem;min-height:48px;resize:vertical}.brief-form input::placeholder,.brief-form textarea::placeholder{color:var(--sand);opacity:.85}.brief-form textarea{margin-top:.5rem}.brief-form fieldset{border:0;padding:0;margin:2.5rem 0}.service-choices{display:flex;flex-wrap:wrap;gap:.65rem;margin-top:1rem}.service-choices label{cursor:pointer;position:relative}.service-choices input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer}.service-choices span{display:block;border:1px solid var(--moss);border-radius:2rem;padding:.6rem 1rem;min-height:44px;font-size:.9375rem;pointer-events:none}.service-choices input:checked+span{background:var(--smoke);color:var(--army);border-color:var(--smoke)}.service-choices input:focus-visible+span{outline:3px solid var(--gold);outline-offset:3px}.form-note{font-size:.9375rem;line-height:1.5;color:var(--sand);margin:1.4rem 0}.send-button{display:flex;align-items:center;justify-content:space-between;gap:2rem;background:var(--gold);color:var(--ink);border:1px solid var(--gold);width:100%;padding:1rem 1.4rem;font-size:1.125rem;font-weight:500;min-height:60px}.send-button span{font-size:1.8rem;line-height:1}.send-button:hover{background:var(--smoke);border-color:var(--smoke)}.data-note{margin-top:1rem;font-size:.8125rem;line-height:1.5;color:var(--sand)}footer{background:#282d21;color:var(--sand);padding:3rem var(--gutter);display:flex;align-items:center;justify-content:space-between;gap:3rem;font-size:.875rem;line-height:1.5}footer p+p{margin-top:.2rem}footer>a{color:var(--smoke);white-space:nowrap;min-height:44px;display:flex;align-items:center}
.project-dialog,.message-dialog{background:var(--smoke);color:var(--ink);border:0;padding:clamp(1.5rem,4vw,4rem);max-height:90svh;max-width:1100px;width:calc(100% - 3rem);overflow:auto;overscroll-behavior:contain}.project-dialog::backdrop,.message-dialog::backdrop{background:rgba(15,20,12,.82)}.dialog-top{display:flex;justify-content:space-between;align-items:center;gap:1.5rem;margin-bottom:2.5rem;font-size:.875rem}.dialog-top button{background:none;border:0;border-bottom:1px solid var(--forest);padding:.5rem 0;display:flex;gap:1.5rem;align-items:center;font-size:1rem;min-height:44px}.dialog-top button span{font-size:1.8rem}.project-dialog h2{font-size:clamp(2.5rem,5vw,5rem);margin:1rem 0 2rem}.project-detail-intro{font-size:1.25rem;max-width:730px;margin-bottom:2rem}.project-dialog video{width:100%;max-height:60svh;background:#20251c;object-fit:contain}.project-detail-image{width:100%;height:auto}.project-detail-info{display:grid;grid-template-columns:1fr 1fr;gap:3rem;margin-top:2rem}.project-detail-info h3{font-size:1.25rem;font-weight:800;line-height:1.2;margin-bottom:.5rem}.project-detail-info ul{padding-left:1.2rem}.message-dialog{max-width:650px}.message-dialog h2{font-size:2.75rem;line-height:1.05;margin-bottom:1.5rem}.message-dialog pre{font:inherit;white-space:pre-wrap;overflow-wrap:anywhere;background:#daddce;padding:1rem;font-size:1rem;line-height:1.6}.message-dialog>p{margin:1.5rem 0}.noscript-note{padding:2rem;background:var(--gold);color:var(--ink)}
@media(min-width:1600px){.entrance-sticky{max-height:1200px}.section-pad{padding-inline:max(var(--gutter),calc((100vw - 1560px)/2))}}
@media(max-width:1000px){.service-list{gap:1.5rem}.service-item h3{font-size:1.9rem}.about{gap:3rem}.about-monogram{min-height:300px}.contact{grid-template-columns:1fr 1fr;gap:3rem}.field-row{grid-template-columns:1fr;gap:1.75rem}.conditions{gap:1.75rem}.instagram{align-items:start;flex-direction:column}.work-heading>p{max-width:230px}}
@media(max-width:720px){:root{--gutter:1.5rem;--header:78px}html{scroll-padding-top:95px}.site-header{gap:1rem;padding-block:.8rem}.brand img{width:64px}.site-header nav{gap:1.2rem;font-size:.875rem}.site-header nav a:first-child{display:none}.nav-contact span{margin-left:.3rem}.entrance{height:235svh}.entrance-sticky{min-height:600px}.gate-seal{top:27%;width:100px}.hero-copy{top:44%;transform:translateY(-5%)}.hero-copy h1{font-size:clamp(3.6rem,13vw,5.6rem);line-height:.96;margin:1.1rem 0 1.25rem}.hero-copy .eyebrow{font-size:.75rem;letter-spacing:.095em}.hero-description{font-size:1.075rem;max-width:300px}.courtyard{object-position:50% 50%}.arrival{bottom:22%}.arrival p{font-size:clamp(4.5rem,16vw,7rem)}.entrance-bottom{bottom:2rem;align-items:flex-end;font-size:.8125rem}.entrance-bottom a{max-width:120px}.entrance-bottom a span{margin-left:.3rem}.motion-control{font-size:.75rem;top:calc(var(--header) + .5rem);min-height:40px}.section-pad{padding-block:4.5rem}.section-heading{display:block;margin-bottom:3.5rem}.section-heading h2{font-size:4.5rem;margin:1.5rem 0 2rem}.section-lead{font-size:1.35rem}.service-list{display:block;margin-bottom:2.5rem}.service-item{display:grid;grid-template-columns:40px 1fr;gap:0 1rem;padding:1.5rem 0 2rem}.service-index{grid-row:1/5;line-height:2;margin:0}.service-item h3{font-size:2rem;grid-column:2}.service-item p,.service-item ul{grid-column:2}.service-description{font-size:1.075rem}.service-item ul{margin:1rem 0 1.3rem;width:100%}.service-item .scope{font-size:.9375rem}.prices summary{align-items:start;flex-direction:column;gap:.5rem;padding-block:1.25rem}.prices summary>span:first-child{font-size:1.8rem}.summary-sub{width:100%;justify-content:space-between;font-size:.9375rem}.price-intro{font-size:1.125rem}.price-row{grid-template-columns:1fr auto;gap:.4rem 1rem;padding:1.2rem 0}.price-row .unit{grid-column:1;grid-row:2;font-size:.9375rem}.price-row .price{grid-column:2;grid-row:1/3;font-size:1.25rem}.price-row strong{font-size:1.075rem}.scope-notes{grid-template-columns:1fr;gap:1rem}.copy-note{padding:1rem;font-size:1rem}.conditions{grid-template-columns:1fr;gap:1.5rem;margin-top:2rem}.conditions>div{display:grid;grid-template-columns:125px 1fr;gap:1rem}.conditions strong{font-size:1.2rem;line-height:1.25}.conditions p{margin:0;font-size:.9375rem}.fine-note{font-size:.8125rem}.work{padding-right:4.5rem}.work-heading{display:block}.work-heading h2{font-size:3.5rem;line-height:1;margin-top:1.5rem}.work-heading>p{font-size:1.125rem;margin-top:1.5rem}.filters{gap:.5rem;margin-top:2rem}.filters button{padding:.5rem .9rem;font-size:.875rem}.year-group{display:block;padding:2rem 0 3rem}.year-heading{font-size:3.25rem;margin-bottom:1.5rem}.project-visual{aspect-ratio:4/5}.project-action{right:.65rem;bottom:.65rem;gap:1rem;font-size:.8125rem;padding:.4rem .65rem}.project-meta{display:block;font-size:.8125rem}.project-meta>span{display:block}.project h3{font-size:1.9rem;line-height:1.1}.timeline{bottom:auto;left:auto;right:.5rem;top:50%;transform:translateY(-50%);border-radius:2rem;flex-direction:column;gap:.4rem;padding:.4rem .25rem}.timeline-label{writing-mode:vertical-rl;padding:.5rem 0;font-size:.75rem}.timeline a{font-size:.8125rem;min-width:44px;min-height:50px;padding:.6rem .15rem;writing-mode:vertical-rl}.about{display:flex;flex-direction:column-reverse;gap:3rem}.about-copy h2{font-size:3.5rem;margin:1.5rem 0}.about-copy>p:not(.eyebrow){font-size:1.15rem}.about-copy .text-link{font-size:1rem;gap:1rem}.about-monogram{min-height:0;width:100%}.about-hex{max-width:245px}.about-hex>span{font-size:6.5rem}.about-caption{font-size:.8125rem}.instagram h2{font-size:2.7rem;line-height:1.05}.instagram{gap:1.5rem}.instagram .eyebrow{font-size:.8125rem}.contact{display:block}.contact h2{font-size:4.3rem}.contact-intro{margin-bottom:3.5rem}.contact-intro>p:not(.eyebrow){font-size:1.125rem}.field-row{grid-template-columns:1fr;gap:1.5rem}.direct-contact{font-size:1.7rem;max-width:315px}.data-note{font-size:.8125rem}footer{flex-wrap:wrap;gap:2rem;padding-block:2.5rem}footer>div{width:100%;order:2;font-size:.8125rem}footer>a{font-size:.8125rem}footer img{width:78px}.project-dialog,.message-dialog{width:calc(100% - 1rem);max-height:94svh;padding:1.4rem}.dialog-top{font-size:.75rem;gap:1rem;margin-bottom:2rem}.project-dialog h2{font-size:2.75rem}.project-detail-info{grid-template-columns:1fr;gap:1.3rem}.project-detail-intro{font-size:1.125rem}.message-dialog h2{font-size:2.25rem}}
@media(max-width:380px){:root{--gutter:1.1rem}.site-header nav{gap:.8rem}.hero-copy h1{font-size:3.6rem}.conditions>div{grid-template-columns:1fr;gap:.4rem}.work-heading h2{font-size:3rem}.contact h2{font-size:3.8rem}.section-heading h2{font-size:4rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}.entrance{height:100svh}.gate{display:none}.hero-copy{opacity:1!important}.arrival{display:none}.scene{transform:none!important}.scroll-cue{visibility:hidden}.motion-control{display:none}}
body.motion-paused .entrance{height:100svh}body.motion-paused .gate{display:none}body.motion-paused .hero-copy{opacity:1!important}body.motion-paused .arrival{display:none}body.motion-paused .scene{transform:none!important}body.motion-paused .scroll-cue{visibility:hidden}
@media print{.site-header,.entrance,.timeline,.motion-control,.brief-form,dialog{display:none!important}body,section,footer{color:#000!important;background:#fff!important}.section-pad{padding:2rem}h2{font-size:3rem}.service-list,.conditions{display:block}.work-years{display:block}.project-visual{height:220px}.about-monogram{display:none}}

/* Mantém a leitura sobre o cenário na versão sem movimento. */
body.motion-paused .scene-shade{background:linear-gradient(90deg,rgba(20,25,17,.6),rgba(20,25,17,.15)),linear-gradient(0deg,rgba(20,25,17,.7),transparent)}
@media(prefers-reduced-motion:reduce){.scene-shade{background:linear-gradient(90deg,rgba(20,25,17,.6),rgba(20,25,17,.15)),linear-gradient(0deg,rgba(20,25,17,.7),transparent)}}
/* A ampliação de texto prioriza fluxo e leitura sobre a sequência cinematográfica. */
body{overflow-wrap:anywhere}.large-text .site-header{position:relative;height:auto;min-height:var(--header);flex-wrap:wrap;background:var(--forest)}.large-text .site-header nav{flex-wrap:wrap;justify-content:flex-start;gap:1rem}.large-text .entrance{height:auto}.large-text .entrance-sticky{height:auto;min-height:100svh;position:relative;display:flex;flex-direction:column;justify-content:center;overflow:visible}.large-text .gate,.large-text .arrival,.large-text .motion-control,.large-text .scroll-cue{display:none}.large-text .hero-copy{position:relative;inset:auto;transform:none;padding:2rem var(--gutter);opacity:1!important}.large-text .hero-copy h1{font-size:2rem;line-height:1.06}.large-text .scene{transform:none!important}.large-text .scene-shade{background:rgba(20,25,17,.7)}.large-text .entrance-bottom{position:relative;inset:auto;margin:1rem var(--gutter) 2rem;flex-wrap:wrap}.large-text .entrance-bottom a{max-width:none}.large-text h2{font-size:2.25rem;line-height:1.05}.large-text .service-list,.large-text .service-item,.large-text .conditions,.large-text .conditions>div,.large-text .contact,.large-text .price-row,.large-text .scope-notes{display:block}.large-text .service-item h3{font-size:1.6rem}.large-text .service-index{display:block;margin-bottom:1rem}.large-text .conditions>div{margin-bottom:1.5rem}.large-text .conditions p{margin-top:.5rem}.large-text .price-row>span{display:block;margin-top:.4rem;text-align:left}.large-text .work{padding-right:var(--gutter)}.large-text .timeline{position:static;transform:none;flex-direction:row;flex-wrap:wrap;border-radius:0;box-shadow:none}.large-text .timeline a,.large-text .timeline-label{writing-mode:horizontal-tb;min-height:44px;padding:.5rem}.large-text .instagram .text-link{white-space:normal}.large-text .contact-intro{margin-bottom:3rem}.large-text .direct-contact{max-width:100%}.large-text .section-pad{padding-top:3rem;padding-bottom:3rem}
@media(max-width:720px){.work-heading h2{font-size:clamp(2.4rem,10.5vw,3.5rem)}}

/* Retira os controles antes de a abertura passar sob o cabeçalho. */
.site-header{visibility:hidden;opacity:0;pointer-events:none;transition:none;background:var(--ink)}
.site-header.available{visibility:visible;opacity:1;pointer-events:auto}
.entrance-sticky{min-height:0;max-height:none}
.gate-left{clip-path:inset(0 50% 0 0)}
.gate-right{clip-path:inset(0 0 0 50%)}
.gate-emblem{position:absolute;left:50%;top:46%;width:clamp(280px,40vw,600px);height:auto;max-width:none;transform:translate(-50%,-50%);pointer-events:none}
.gate-leaf::after{content:"";position:absolute;top:0;bottom:0;width:2px;z-index:1;background:linear-gradient(90deg,#060805,#747663 70%,#1c2117)}
.gate-left::after{left:calc(50% - 2px)}
.gate-right::after{left:50%;background:linear-gradient(90deg,#090c07,#31382b)}
.motion-control.sr-only{inset:auto;top:1rem;left:1rem;min-height:0;font-size:1rem}
.motion-control.sr-only:focus-visible{width:auto;height:auto;clip:auto;white-space:normal;margin:0;padding:.75rem 1rem;overflow:visible;z-index:20;background:var(--ink)}
.large-text .site-header{position:fixed}
.large-text .entrance{height:100svh}
.large-text .entrance-sticky{height:100svh;min-height:0;display:block;overflow:hidden}
.large-text .gate{display:block;--gate-open:0}
.large-text .motion-control{display:block}
@media(max-width:720px){.gate-emblem{width:clamp(250px,74vw,430px);top:46%}}
@media(prefers-reduced-motion:reduce){.entrance-sticky{position:relative;height:100svh}.gate{display:block;--gate-open:0}.gate-leaf{transform:none}.motion-control{display:none}}
body.motion-paused .entrance-sticky{position:relative;height:100svh}body.motion-paused .gate{display:block;--gate-open:0}body.motion-paused .gate-leaf{transform:none}
.entrance + .services{padding-top:max(clamp(5rem,11vw,10rem),calc(var(--header-height,var(--header)) + 1.5rem))}
/* O relevo recebe também a textura e a tonalidade da própria folha de aço. */
.gate-leaf{background-image:linear-gradient(0deg,rgba(8,12,8,.22),transparent 65%),url('../assets/gate-bunker.webp')}
.gate-emblem{mix-blend-mode:hard-light}

/* Um único plano mantém fachada e folhas registradas no mesmo enquadramento. */
.entrance-sticky{container-type:size}
.gate-architecture{
  --facade-image:url('../assets/gate-hexagonal.webp');
  --facade-ratio:1.5;
  --facade-zoom:1.11;
  --seam-x:49.8698%;
  --aperture:polygon(38.93% 26.27%,60.68% 26.27%,70.83% 53.22%,60.74% 81.45%,38.93% 81.45%,29.04% 53.22%);
  --emblem-top:51.3%;
  --emblem-width:28%;
  --leaf-travel:30%;
  position:absolute;left:50%;top:52.3%;
  width:calc(max(100cqw,100cqh * var(--facade-ratio)) * var(--facade-zoom));
  height:calc(max(100cqh,100cqw / var(--facade-ratio)) * var(--facade-zoom));
  transform:translate(calc(var(--seam-x) * -1),-50%);pointer-events:none;
}
.gate-facade{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:fill}
.gate-aperture{position:absolute;inset:0;clip-path:var(--aperture);isolation:isolate;overflow:hidden}
.gate-aperture .scene{z-index:0}
.gate-aperture .gate{z-index:1}
.gate-aperture .gate-leaf{background-image:var(--facade-image);background-size:100% 100%;background-position:center}
.gate-aperture .gate-left{transform:translateX(calc(var(--gate-open) * var(--leaf-travel) * -1));clip-path:inset(0 calc(100% - var(--seam-x)) 0 0)}
.gate-aperture .gate-right{transform:translateX(calc(var(--gate-open) * var(--leaf-travel)));clip-path:inset(0 0 0 var(--seam-x))}
.gate-aperture .gate-emblem{left:var(--seam-x);top:var(--emblem-top);width:var(--emblem-width)}
.gate-aperture .gate-leaf::after{display:none}
.gate-aperture .scene-shade{background:linear-gradient(0deg,rgba(13,17,11,.35),transparent 50%)}
@media(max-aspect-ratio:1/1){
  .gate-architecture{
    --facade-image:url('../assets/gate-hexagonal-mobile.webp');
    --facade-ratio:calc(923 / 1704);
    --facade-zoom:1;
    --seam-x:49.8917%;
    --aperture:polygon(37.27% 40.02%,62.51% 40.02%,74.54% 51.82%,62.4% 64.44%,37.27% 64.44%,25.35% 51.82%);
    --emblem-top:50.8%;
    top:50%;
  }
}
@media(prefers-reduced-motion:reduce){.gate-aperture .gate-leaf{transform:none}}
body.motion-paused .gate-aperture .gate-leaf,.large-text .gate-aperture .gate-leaf{transform:none}

/* A fachada passa pela câmera; o pátio fica em um plano independente ao fundo. */
.entrance{--dolly-scale:1;--dolly-y:0px;--door-center-y:50%;height:310svh}
.entrance-sticky>.scene{z-index:0;transform-origin:50% 53%}
.entrance-sticky>.scene .scene-shade{background:linear-gradient(0deg,rgba(13,17,11,.2),transparent 45%)}
.gate-camera{position:absolute;inset:0;z-index:1;transform:translateY(var(--dolly-y)) scale(var(--dolly-scale));transform-origin:50% var(--door-center-y);will-change:transform;pointer-events:none}
.gate-clips{position:absolute}
.gate-surround{position:absolute;inset:0;clip-path:url('#gate-surround-landscape')}
/* O enquadramento usa a altura física da moldura para reduzir céu e piso vazios. */
.gate-architecture{
  --framing-height:80cqh;
  --outer-height:calc(634 / 1024);
  --portal-center:calc(545 / 1024);
  width:max(100cqw,calc(var(--framing-height) / var(--outer-height) * var(--facade-ratio)));
  height:max(calc(100cqw / var(--facade-ratio)),calc(var(--framing-height) / var(--outer-height)));
  top:54%;transform:translate(calc(var(--seam-x) * -1),calc(var(--portal-center) * -100%));
}
@media(max-aspect-ratio:1/1){.gate-surround{clip-path:url('#gate-surround-portrait')}}
@media(max-aspect-ratio:1/1){.gate-architecture{--framing-height:78cqh;--outer-height:calc(460 / 1704);--portal-center:calc(883 / 1704)}}
@media(prefers-reduced-motion:reduce){.entrance{height:100svh}.gate-camera{transform:none!important}}
body.motion-paused .gate-camera,.large-text .gate-camera{transform:none!important}
body.motion-paused .entrance,.large-text .entrance{height:100svh}

/* base.css */
/* A single photographic plane keeps the doors, plaques and flag in registration. */
html{scrollbar-gutter:auto;scroll-padding-top:0}
.base-layout .site-header{display:none}
.base-enhanced main>.section-pad,.base-enhanced>footer{display:none}
.entrance-sticky{max-height:none;overflow:clip}
.entrance-sticky>.scene{transform:none;will-change:auto}
.base-viewport{position:absolute;inset:0;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;overscroll-behavior-x:contain;touch-action:pan-x pan-y;outline:none}
.base-viewport::-webkit-scrollbar{display:none}
.base-world{position:relative;width:max(100cqw,calc(100cqh * 1672 / 941));height:max(100cqh,calc(100cqw * 941 / 1672));min-height:100%;top:50%;translate:0 -50%;isolation:isolate;container-type:size;transform-origin:50% 50%}
.base-photo{position:absolute;width:100%;height:100%;inset:0;max-width:none;pointer-events:none;user-select:none;object-fit:fill}
.facility-detail,.portal-leaf-detail{position:absolute;left:0;top:0;max-width:none;pointer-events:none;user-select:none;transform-origin:0 0;will-change:auto}
.facility-detail{mask-image:linear-gradient(to right,transparent,#000 13%,#000 87%,transparent),linear-gradient(to bottom,transparent,#000 13%,#000 87%,transparent);mask-composite:intersect}
.facility-detail[hidden],.portal-leaf-detail[hidden]{display:none}
.base-doors{position:absolute;inset:0;opacity:1;pointer-events:none}
.base-ready .base-doors{pointer-events:auto}
.base-doors button{position:absolute;padding:0;border:0;background:none;cursor:pointer;touch-action:pan-x pan-y;color:#292a20}
.facility-plaque{display:block;overflow:visible}
.facility-plaque:focus-visible{mix-blend-mode:normal;color:#161c0d;text-shadow:0 0 12px #fff2aa}
.facility-plaque:focus-visible{outline:3px solid var(--gold);outline-offset:6px;box-shadow:0 0 18px #181d10aa}
.facility-door{border-radius:1px;outline-offset:2px}
.facility-door:hover,.facility-door:focus-visible,.facility-plaque:hover+.facility-door,.facility-plaque:focus-visible+.facility-door{box-shadow:inset 0 0 0 1px #ede8d344}
.door-invitation{position:absolute;bottom:8%;left:50%;translate:-50% 0;display:flex;align-items:center;gap:.7em;font-weight:500;letter-spacing:.12em;font-size:max(12px,.7cqw);line-height:1;color:#f0ecda;text-shadow:0 1px 4px #000;padding:.55em .65em;opacity:0;transition:opacity .2s;white-space:nowrap}
.facility-door:hover .door-invitation,.facility-plaque:hover+.facility-door .door-invitation,.facility-door:focus-visible .door-invitation,.facility-plaque:focus-visible+.facility-door .door-invitation{opacity:1}
.base-flag{position:absolute;left:44.08%;top:11.84%;width:11.9%;height:14.098%;pointer-events:none}
/* A narrow photographic crop adds the halyard without replacing the courtyard. */
.flag-rigging{position:absolute;left:44.31818%;top:12.0085%;width:1.91388%;height:52.2848%;background-image:url('../assets/flag-rigging.webp');background-size:5225% 191.26016%;background-position:45.182927% 25.167038%;mask-image:linear-gradient(to right,transparent,#000 12%,#000 88%,transparent),linear-gradient(to bottom,transparent,#000 1%,#000 98%,transparent);mask-composite:intersect;pointer-events:none}
.base-hud{position:absolute;inset:0;pointer-events:none;opacity:0;visibility:hidden;transition:opacity .6s;color:#f0eee4}
.base-ready .base-hud{opacity:1;visibility:visible}
.base-hud button,.base-hud a,.base-hud summary{pointer-events:auto}
.base-instruction{position:absolute;bottom:1.8rem;left:2rem;margin:0;font-size:.9rem;letter-spacing:.035em;text-shadow:0 1px 5px #000,0 1px 12px #000;font-weight:500}
.base-directory{position:absolute;right:1.5rem;bottom:1.5rem;width:205px;background:#191d17a6;border:1px solid #d1d0b830;box-shadow:0 4px 20px #0002;pointer-events:auto}
.base-directory summary{padding:.75rem 1rem;display:flex;align-items:center;justify-content:space-between;list-style:none;font-weight:500;cursor:pointer}
.base-directory summary::-webkit-details-marker{display:none}
.base-directory nav{border-top:1px solid #999a7a55;padding:.4rem}
.base-directory nav button{display:block;text-align:left;width:100%;background:none;border:0;color:inherit;padding:.65rem .6rem;font-size:.95rem}
.base-directory nav button span{color:#c7b96f;margin-right:.6rem;font-size:.8rem}
.base-directory nav button:hover{background:#ffffff12}
.base-directory>a{display:block;border-top:1px solid #999a7a55;padding:.85rem 1rem;font-size:.8rem;color:#c4c6b8}
.base-pan{position:absolute;left:50%;bottom:5.5rem;transform:translateX(-50%);display:flex;align-items:center;gap:.7rem;white-space:nowrap;font-size:.75rem;text-shadow:0 1px 4px #000}
.base-pan button{border:1px solid #babc9e80;background:#252b20bf;color:var(--smoke);width:44px;height:44px;font-size:1.25rem}
.base-viewport.dragging,.base-viewport.dragging button{cursor:grabbing;user-select:none}
.base-ready .gate-camera,.base-arrived .gate-camera,.base-still .gate-camera{visibility:hidden}
.base-arrived .entrance{height:100svh}
.base-arrived .entrance-sticky{position:relative}
body.gate-returned .gate-camera{visibility:visible}
.entering-facility .base-hud{opacity:0;visibility:hidden;pointer-events:none}
.entering-facility .base-viewport{pointer-events:none;touch-action:none}
.entering-facility .base-doors .door-invitation{visibility:hidden}
.entering-facility .base-doors{pointer-events:none}
.entering-facility .base-world{will-change:auto}

/* The fixed concrete jamb and moving steel share the same exact hexagon. */
.gate-architecture{
  --facade-image:url('../assets/gate-flush.webp');--facade-ratio:1.5;--seam-x:49.8698%;
  --aperture:polygon(38.021% 24.316%,61.719% 24.316%,72.526% 53.027%,61.914% 81.934%,37.695% 81.934%,27.279% 53.027%);
  --framing-height:80cqh;--outer-height:calc(637 / 1024);--portal-center:calc(543 / 1024);--leaf-travel:31%;
  top:53%;width:max(100cqw,calc(var(--framing-height) / var(--outer-height) * 1.5));
  height:max(calc(100cqw / 1.5),calc(var(--framing-height) / var(--outer-height)));
  transform:translate(calc(var(--seam-x) * -1),calc(var(--portal-center) * -100%));
}
.gate-surround{clip-path:url('#gate-surround-landscape')}
.gate-contact-shadow{position:absolute;inset:0;width:100%;height:100%;clip-path:var(--aperture);opacity:calc(var(--gate-open) * .75);pointer-events:none}
@media(max-aspect-ratio:1/1){.gate-architecture{--framing-height:min(80cqh,calc(100cqw * 637 / 750));top:53%}}

/* During travel the photograph, cut-out doorway and hinges remain registered. */
.facility-travel{position:absolute;inset:0;z-index:2;overflow:hidden;pointer-events:none}
.portal-aperture{position:absolute;inset:0;background:#080a07;will-change:clip-path}
.portal-scenery{position:absolute;inset:0;display:block;width:100%;height:100%;max-width:none;object-fit:cover;object-position:center;pointer-events:none;user-select:none}
.portal-scenery{transform-origin:50% 50%;will-change:auto}
.portal-leaves{position:absolute;transform-style:preserve-3d;perspective-origin:50% 48%}
.portal-leaves::after{content:"";position:absolute;inset:0;box-shadow:inset 0 0 22px 5px #000;opacity:var(--jamb-shade,0);pointer-events:none}
.portal-leaf{position:absolute;top:0;bottom:0;background-image:var(--courtyard-texture,url('../assets/base-courtyard-sharp-v2.webp'));background-repeat:no-repeat;backface-visibility:hidden;will-change:auto}
.portal-leaf-left{left:0;transform-origin:0 50%}
.portal-leaf-right{right:0;transform-origin:100% 50%}
/* Empty rooms: only the architecture, its existing practical lights and a quiet exit. */
.facility-room{position:fixed;inset:0;width:100%;height:100%;max-width:none;max-height:none;margin:0;padding:0;border:0;border-radius:0;overflow:hidden;background:transparent;color:#e0dfcf;overscroll-behavior:none;touch-action:none;scrollbar-gutter:auto}
.facility-room::backdrop{background:transparent}
.exit-sign{position:absolute;z-index:2;left:max(1.25rem,env(safe-area-inset-left));top:max(1.1rem,env(safe-area-inset-top));display:flex;gap:.6rem;align-items:center;justify-content:center;min-width:82px;min-height:44px;border:1px solid #a2ae9745;border-radius:1px;background:#14201899;color:#d6ddc9;font-size:.875rem;line-height:1;font-weight:500;letter-spacing:.13em;padding:.7rem .9rem;box-shadow:0 2px 8px #0003;text-shadow:0 1px 3px #000;cursor:pointer;transition:background .2s,border-color .2s}
.exit-sign>span{font-size:1.15rem;letter-spacing:0}
.exit-sign:hover{background:#1b2c20d9;border-color:#b8c6a78c}
.exit-sign:focus-visible{outline:2px solid #d6d5ba;outline-offset:4px}
.room-motion-control:focus{clip:auto;overflow:visible;width:auto;height:auto;margin:0;padding:.75rem;left:1.25rem;bottom:1.25rem;background:#142018e6;color:#e0dfcf;border:1px solid #a2ae9766;z-index:2}
@media(max-width:720px){
 .base-instruction{left:1rem;bottom:1.15rem;max-width:42%;font-size:.875rem;line-height:1.4}
 .base-instruction span{display:none}
 .base-directory{right:1rem;bottom:1rem;width:175px;font-size:.875rem}
 .exit-sign{left:max(.9rem,env(safe-area-inset-left));top:max(.8rem,env(safe-area-inset-top))}
}
.base-still .entrance-sticky{position:relative}
.large-text .base-directory{width:min(90vw,400px)}
.large-text .entrance-sticky{overflow:clip}
.large-text .base-directory nav{max-height:50svh;overflow:auto}
.large-text .base-instruction,.large-text .base-pan{display:none}
@media(prefers-reduced-motion:reduce){.base-hud,.exit-sign{transition:none}.gate-camera{visibility:hidden}}
@media print{.facility-travel,.base-hud,.exit-sign,.room-motion-control{display:none!important}}

.base-sky { position:absolute; inset:0; pointer-events:none; mask:url('../assets/courtyard-sky-mask.svg') center / 100% 100% no-repeat; opacity:.64; }
.base-sky::before { content:''; position:absolute; left:-10%; top:0; width:120%; height:37%; background:url('../assets/courtyard-sky-v1.webp') center / cover no-repeat; animation:courtyard-clouds 150s linear infinite alternate; animation-play-state:paused; }
.base-ready:not(.modal-open):not(.entering-facility):not(.motion-paused) .base-sky::before { animation-play-state:var(--cloud-play,running); }
@keyframes courtyard-clouds { from { transform:translateX(-3%); } to { transform:translateX(3%); } }
@media(prefers-reduced-motion:reduce) { .base-sky::before { animation:none; } }

/* intro.css */
@font-face{font-family:'Caserna Stencil';src:url('../assets/fonts/SairaStencilOne-Regular.ttf') format('truetype');font-display:swap;font-weight:400}
/* A single cover plane is retained from the film's first frame to the open gate. */
.gate-architecture.gate-film-geometry{
  --seam-x:50%;--leaf-travel:32%;
  --aperture:polygon(37.1513% 16.1222%,62.8657% 16.1341%,74.5968% 53.0346%,63.0877% 90.1929%,36.7994% 90.1927%,25.4912% 53.0231%);
  left:50%;top:50%;width:max(100cqw,calc(100cqh * 16 / 9));height:max(100cqh,calc(100cqw * 9 / 16));
  transform:translate(-50%,-50%);
}
.gate-film-geometry .gate-surround{clip-path:url('#gate-surround-film')}
.gate-film-surface,.gate-frame-texture{position:absolute;inset:0;width:100%;height:100%;max-width:none;display:block;pointer-events:none}
.gate-film-surface{z-index:5}
.gate-film-surface[hidden]{display:none}
.gate-frame-ready .gate-facade{visibility:hidden}
.gate-frame-ready .gate-leaf{background:none}
.intro-decoder{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.intro-ui{position:absolute;inset:0;z-index:8;pointer-events:none;color:#ECECE7}
.intro-ui [hidden]{display:none!important}
.intro-loader{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1.5rem;background:radial-gradient(ellipse at 50% 40%,#343D28 0%,#161c13 75%);pointer-events:auto}
.intro-loader img{width:clamp(130px,16vw,190px);height:auto;margin-bottom:2rem;filter:brightness(0) invert(.92)}
.intro-loading-title{font:400 clamp(1.1rem,2vw,1.5rem)/1.2 'Caserna Stencil',sans-serif;letter-spacing:.22em;margin:0 0 1rem}
.intro-progress{appearance:none;width:min(260px,65vw);height:3px;border:0;border-radius:0;background:#C0C1B028;color:#E5AC00;overflow:hidden}
.intro-progress::-webkit-progress-bar{background:#C0C1B028}
.intro-progress::-webkit-progress-value{background:#E5AC00;transition:width .2s}
.intro-progress::-moz-progress-bar{background:#E5AC00}
.intro-progress:indeterminate{background:linear-gradient(90deg,#C0C1B028,#E5AC00,#C0C1B028);background-size:200% 100%;animation:intro-loading 1.3s linear infinite}
.intro-loading-note{font-size:.875rem;text-align:center;color:#C0C1B0;max-width:29em;line-height:1.5;margin:1.25rem 0 0}
.intro-controls{position:absolute;display:flex;gap:.25rem;align-items:center;justify-content:flex-end;flex-wrap:wrap;right:max(1rem,env(safe-area-inset-right));top:max(.8rem,env(safe-area-inset-top));left:1rem}
.intro-controls button{pointer-events:auto;min-height:44px;padding:.65rem .9rem;color:#ECECE7;background:#182013bb;backdrop-filter:blur(8px);border:1px solid #C0C1B040;border-radius:2px;font:400 .875rem/1.2 Barlow,sans-serif;cursor:pointer;text-shadow:0 1px 3px #000}
.intro-controls button:hover{background:#343D28e8;border-color:#C0C1B080}
.intro-ui button:focus-visible{outline:2px solid #E5AC00;outline-offset:4px}
.intro-scroll{position:absolute;left:50%;bottom:6.4%;transform:translateX(-50%);border:0;background:none;color:#ECECE7;display:flex;align-items:center;flex-direction:column;gap:1rem;white-space:nowrap;padding:.75rem;min-height:44px;pointer-events:auto;cursor:pointer;text-shadow:0 2px 8px #090d08,0 0 24px #090d08;font:400 clamp(1.05rem,2.65vw,3.1rem)/1.2 'Caserna Stencil',sans-serif;letter-spacing:.045em}
.intro-scroll-mouse{display:block;position:relative;width:22px;height:35px;border:1.5px solid #E5AC00;border-radius:12px;box-shadow:0 1px 8px #0008}
.intro-scroll-mouse i{position:absolute;left:8.75px;top:7px;width:2px;height:7px;background:#E5AC00;animation:intro-scroll 1.35s ease-in-out infinite}
.base-arrived .intro-ui,.base-ready .intro-ui,.base-still .intro-ui{visibility:hidden;pointer-events:none}
body[data-intro='loading'] .gate-camera,body[data-intro='playing'] .gate-camera{visibility:visible}
@keyframes intro-loading{to{background-position:-200% 0}}
@keyframes intro-scroll{0%,100%{transform:translateY(0);opacity:.45}50%{transform:translateY(8px);opacity:1}}
@media(max-width:600px){.intro-controls{gap:.2rem;right:.65rem;left:.65rem}.intro-controls button{font-size:.75rem;padding:.65rem .6rem}.intro-scroll{gap:.8rem;bottom:8%;font-size:clamp(.9rem,4.5vw,1.4rem);letter-spacing:.015em}}
@media(prefers-reduced-motion:reduce){.intro-scroll-mouse i,.intro-progress:indeterminate{animation:none}.intro-ui{display:none}}
body.gate-returned .intro-ui{display:block;visibility:visible}

/* missions.css */
/* Cylindrical study: hexagon contours over pointer-reactive topography. */
@font-face {
  font-family: Barlow;
  src: url('../assets/fonts/Barlow-Thin.ttf') format('truetype');
  font-weight: 100;
  font-display: swap;
}
@font-face {
  font-family: Barlow;
  src: url('../assets/fonts/Barlow-Light.ttf') format('truetype');
  font-weight: 300;
  font-display: swap;
}
.missions {
  position: absolute;
  inset: 0;
  color: #ecece7;
  background: #000;
  isolation: isolate;
  overflow: hidden;
}
.missions[hidden] { display: none; }
/* The room stays visible at the edges, with a dark viewing area behind work. */
.missions-grid { position:absolute; inset:0; z-index:-1; pointer-events:none; overflow:hidden; }
.missions-grid::before {
  content:''; position:absolute; inset:-5%;
  background:url('../assets/detail/interior-quonset-v2.webp') center / cover no-repeat;
  transform:var(--missions-grid-view,none); transform-origin:center; will-change:transform;
  filter:brightness(.5) saturate(.55);
}
.missions-grid::after {
  content:''; position:absolute; inset:0;
  background:radial-gradient(ellipse 43% 62% at 50% 46%,rgb(0 0 0 / 94%) 0%,rgb(0 0 0 / 82%) 48%,rgb(0 0 0 / 42%) 83%,rgb(0 0 0 / 24%) 100%);
}
.missions-stage {
  position: absolute;
  inset: 0;
  overflow: hidden;
  touch-action: pinch-zoom;
  outline-offset: -4px;
  user-select: none;
  -webkit-user-select: none;
  -webkit-tap-highlight-color: transparent;
}
.missions-renderer, .missions-renderer > canvas, .missions-renderer > svg {
  display: block;
  width: 100%;
  height: 100%;
}
.missions-renderer {
  /* Feather the complete tube, including the contour glow and moving pulses.
     Mask after rendering so neither renderer can leave a hard viewport edge. */
  --tube-feather: linear-gradient(to bottom,
    #0000 0%, #00000013 3.333%, #00000042 6.667%, #00000080 10%,
    #000000bd 13.333%, #000000ed 16.667%, #000 20%, #000 80%,
    #000000ed 83.333%, #000000bd 86.667%, #00000080 90%,
    #00000042 93.333%, #00000013 96.667%, #0000 100%);
  -webkit-mask-image: var(--tube-feather);
  mask-image: var(--tube-feather);
  mask-repeat: no-repeat;
  mask-size: 100% 100%;
}
.missions-stage:focus-visible { outline: 2px solid #95997d; }
.missions-filters {
  position: absolute;
  z-index: 4;
  left: max(1.5rem, env(safe-area-inset-left));
  top: 50%;
  transform: translateY(-50%);
  width: clamp(12rem, 17vw, 15rem);
  font-weight: 300;
  color: #ecece7;
  color-scheme: dark;
  touch-action: auto;
}
.missions-filter-fields { display: grid; gap: 1.65rem; }
.missions-filter-field { display: grid; gap: .35rem; }
.missions-filter-field > span:first-child, .missions-client-picker > summary > span:first-child {
  font-size: .875rem;
  line-height: 1.3;
  letter-spacing: .075em;
  color: #ecece7b8;
}
.missions-filter-field input, .missions-filter-field select, .missions-client-selection {
  width: 100%;
  min-height: 44px;
  padding: .6rem 0;
  border: 0;
  border-bottom: 1px solid #ecece738;
  border-radius: 0;
  background: #0009;
  color: #ecece7;
  font: inherit;
  font-size: 1rem;
}
.missions-filter-field input::placeholder { color: #ecece780; }
.missions-filter-field input { outline-offset: 3px; caret-color: #e5ac00; }
.missions-select { position: relative; display: block; }
.missions-select select { appearance: none; padding-right: 1.5rem; cursor: pointer; }
.missions-select::after, .missions-filter-chevron {
  width: 6px;
  height: 6px;
  border-right: 1px solid #ecece7b3;
  border-bottom: 1px solid #ecece7b3;
  transform: rotate(45deg);
}
.missions-select::after { content: ''; position: absolute; right: 3px; top: 17px; pointer-events: none; }
.missions-select option { background: #0b0c0a; color: #ecece7; }
.missions-client-picker { position: relative; }
.missions-client-picker summary { display: grid; gap: .35rem; list-style: none; cursor: pointer; }
.missions-client-picker summary::-webkit-details-marker { display: none; }
.missions-client-selection { display: flex; align-items: center; justify-content: space-between; gap: .75rem; }
.missions-client-value { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.missions-filter-chevron { flex: none; margin-right: 3px; }
.missions-client-picker[open] .missions-filter-chevron { transform: rotate(225deg); }
.missions-client-menu {
  position: absolute;
  z-index: 1;
  top: calc(100% + 5px);
  left: 0;
  width: 100%;
  max-height: min(28svh, 14rem);
  overflow: auto;
  overscroll-behavior: contain;
  margin: 0;
  padding: .4rem .75rem;
  border: 1px solid #ecece72b;
  background: #0b0c0af5;
  box-shadow: 0 12px 30px #0009;
  scrollbar-width: thin;
}
.missions-client-options label { display: flex; align-items: center; gap: .65rem; min-height: 44px; font-size: .9375rem; line-height: 1.3; cursor: pointer; }
.missions-client-options input { flex: none; width: 15px; height: 15px; margin: 0; accent-color: #ecece7; }
.missions-filter-footer { display: flex; justify-content: space-between; align-items: center; gap: .5rem; margin-top: -.65rem; min-height: 32px; font-size: .875rem; }
.missions-filter-result { color: #ecece780; }
.missions-filter-reset { padding: .4rem 0; border: 0; background: none; font: inherit; color: #ecece7; text-decoration: underline; text-underline-offset: 4px; }
.missions-filters :is(input, select, summary, button):focus-visible { outline: 1px solid #ecece7; outline-offset: 3px; }
.missions-filter-toggle { display: none; }
.missions-empty {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  max-width: 20rem;
  padding: 1rem;
  font-size: 1rem;
  font-weight: 300;
  line-height: 1.5;
  text-align: center;
  color: #ecece7b8;
  pointer-events: none;
}
@media (max-width: 800px) {
  .missions-filters { left: max(.75rem, env(safe-area-inset-left)); top: max(5.5rem, env(safe-area-inset-top)); transform: none; width: min(15rem, calc(100% - 7.75rem)); }
  .missions-filter-toggle { display: block; min-height: 44px; padding: .4rem .6rem; border: 1px solid #ecece738; background: #000d; color: inherit; font: inherit; font-size: .9375rem; }
  .missions-filters[data-expanded=false] .missions-filter-fields { display: none; }
  .missions-filters[data-expanded=true] .missions-filter-fields { padding: 1rem .6rem; background: #000f; gap: 1rem; max-height: calc(100svh - 10rem); overflow-y: auto; overscroll-behavior: contain; }
}
@media (max-height: 550px) and (min-width: 801px) {
  .missions-filter-fields { gap: .75rem; }
  .missions-filters { top: max(4.5rem, env(safe-area-inset-top)); transform: none; }
}
.missions-timeline {
  position: absolute;
  z-index: 3;
  right: max(1.5rem, env(safe-area-inset-right));
  top: 50%;
  transform: translateY(-50%);
  width: 8rem;
  height: auto;
  max-height: min(76%, 760px);
  overflow: hidden;
  scrollbar-width: none;
  color: #ecece7;
  user-select: none;
  touch-action: pinch-zoom;
}
.missions-timeline-track {
  position: relative;
  height: var(--timeline-height, 0px);
}
.missions-timeline-tick {
  position: absolute;
  right: 0;
  transform: translateY(-50%);
  display: flex;
  align-items: center;
  justify-content: flex-end;
  width: 100%;
  height: 24px;
  padding: 0;
  border: 0;
  background: none;
  color: inherit;
}
.missions-timeline-tick::after {
  content: '';
  width: var(--tick-width, 12px);
  max-width: 46%;
  height: 1px;
  background: currentColor;
  opacity: var(--tick-opacity, .22);
  transition: width .18s ease, opacity .18s ease;
}
.missions-timeline-tick[aria-current=true]::after { height: 2px; }
.missions-timeline-year {
  position: absolute;
  left: 0;
  font-family: Barlow, Arial, sans-serif;
  font-size: .9375rem;
  font-weight: 100;
  font-variant-numeric: tabular-nums;
  line-height: 1;
  letter-spacing: .08em;
  color: #ecece7b8;
  text-shadow: 0 1px 5px #000;
}
.missions-timeline-tick:hover::after { opacity: .85; }
.missions-timeline-tick:focus-visible { outline: 1px solid #ecece7; outline-offset: -1px; }
.motion-paused .missions-timeline-tick::after { transition: none; }
@media (prefers-reduced-motion: reduce) {
  .missions-timeline-tick::after { transition: none; }
}
@media (max-width: 600px) {
  .missions-timeline { right: max(.75rem, env(safe-area-inset-right)); width: 6rem; }
  .missions-timeline-year { font-size: .875rem; }
}
.missions-retry {
  position: absolute;
  top: calc(50% - 24px);
  left: calc(50% - 24px);
  width: 48px;
  height: 48px;
  font-size: 1.5rem;
  color: #e5ac00;
  background: #10130e;
  border: 1px solid #95997d;
}
.facility-room[data-facility="missoes"] { touch-action: pinch-zoom; }
.facility-room[data-facility="missoes"] .exit-sign {
  z-index: 5;
  min-width: 44px;
  padding: .7rem;
  gap: 0;
  font-size: 0;
  background: #10130eeb;
  border-color: #95997d66;
  color: #ecece7;
}
.facility-room[data-facility="missoes"] .room-motion-control { z-index: 5; }

.missions[data-clients] {
  /* Artwork bounds and density set width; the rail supplies one responsive unit. */
  --client-logo-size: clamp(80px, 9dvh, 104px);
  --client-logo-gap: 24px;
  --client-rail-lift: max(24px, env(safe-area-inset-bottom));
  --client-rail-height: calc(var(--client-logo-size) * var(--client-logo-slot, 1) + 32px);
  --clients-height: calc(var(--client-rail-height) + var(--client-rail-lift));
}
.missions[data-clients] .missions-stage { bottom: var(--clients-height); }
.missions[data-clients] :is(.missions-filters,.missions-timeline) { top: calc(50% - var(--clients-height) / 2); }
.missions-clients { position:absolute; inset:auto max(1.5rem,env(safe-area-inset-right)) var(--client-rail-lift) max(1.5rem,env(safe-area-inset-left)); z-index:4; height:var(--client-rail-height); display:flex; align-items:center; gap:1.5rem; background:linear-gradient(#0000,rgb(0 0 0 / 35%) 40%,rgb(0 0 0 / 20%) 70%,#0000); touch-action:pan-x pinch-zoom; }
.client-rail-scroll { display:flex; align-items:center; justify-content:safe center; gap:var(--client-logo-gap); flex:1; min-width:0; overflow-x:auto; scrollbar-width:none; overscroll-behavior-x:contain; padding:16px 4px; }
.client-rail-scroll::-webkit-scrollbar { display:none; }
.client-logo { position:relative; flex:0 0 var(--client-logo-size); width:var(--client-logo-size); height:var(--client-logo-size); aspect-ratio:1; border:0; padding:0; background:none; cursor:pointer; }
.client-logo-art { position:absolute; inset:0; }
.client-logo[data-balanced] { height:calc(var(--client-logo-size) * var(--logo-slot, 1)); flex-basis:calc(var(--client-logo-size) * var(--logo-width)); width:calc(var(--client-logo-size) * var(--logo-width)); aspect-ratio:auto; }
.client-logo[data-balanced] .client-logo-art { inset:auto; left:0; top:calc(50% + var(--client-logo-size) * var(--logo-shift)); transform:translateY(-50%); width:calc(var(--client-logo-size) * var(--logo-width)); height:calc(var(--client-logo-size) * var(--logo-height)); overflow:hidden; }
.client-logo[data-balanced] img { inset:auto; left:calc(var(--client-logo-size) * var(--logo-left)); top:calc(var(--client-logo-size) * var(--logo-top)); width:calc(var(--client-logo-size) * var(--logo-plane)); height:calc(var(--client-logo-size) * var(--logo-plane)); max-width:none; }
.client-logo img { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; transition:opacity .2s; pointer-events:none; }
.client-logo-color { opacity:0; }
.client-logo:is(:hover,:focus-visible) .client-logo-white { opacity:0; }
.client-logo:is(:hover,:focus-visible) .client-logo-color { opacity:1; }
.client-logo[aria-pressed=true]::after { content:''; position:absolute; bottom:-12px; left:calc(50% - 8px); width:16px; height:1px; background:#fff9; }
.missions-clients>button { flex:none; width:36px; height:44px; padding:0; border:0; background:none; color:#fff9; font:300 22px Barlow,sans-serif; cursor:pointer; }
.missions-clients>button:disabled { opacity:.15; cursor:default; }
.missions-clients button:focus-visible { outline:1px solid #fff9; outline-offset:5px; }
.missions[data-client-selected] .missions-filters { top:max(5.5rem,env(safe-area-inset-top)); transform:none; }
.missions-client-profile { margin-top:1.6rem; max-height:calc(100dvh - var(--clients-height,0px) - 27rem); overflow-y:auto; overscroll-behavior:contain; scrollbar-width:thin; }
.missions-client-profile h3 { margin:0 0 .6rem; font-size:1.125rem; font-weight:400; }
.client-profile-description { margin:0 0 1rem; font-size:.9375rem; line-height:1.5; color:#ecece7b8; white-space:pre-line; }
.client-profile-description:empty { display:none; }
.missions-client-profile button { padding:.4rem 0; background:none; border:0; color:#ecece7; text-decoration:underline; text-underline-offset:4px; font:inherit; font-size:.875rem; cursor:pointer; }
@media(max-width:800px) {
  .missions[data-clients] { --client-logo-size:64px; --client-rail-lift:max(16px,env(safe-area-inset-bottom)); }
  .missions-clients { left:.75rem; right:.75rem; gap:.5rem; }
  .missions[data-clients] .missions-filters { top:max(5.5rem,env(safe-area-inset-top)); }
  .missions-client-profile { max-height:22dvh; padding:.6rem; background:#000e; }
}
@media(max-height:700px) and (min-width:801px) {
  .missions[data-client-selected] .missions-filters { top:4.5rem; max-height:calc(100dvh - var(--clients-height,0px) - 5rem); overflow-y:auto; }
  .missions-client-profile { max-height:none; }
  .missions[data-client-selected] .missions-filter-fields { gap:.7rem; }
}
@media(prefers-reduced-motion:reduce) { .client-logo img { transition:none; } }

@media (min-width:48rem) { .missions[data-clients] { --client-logo-gap:44px; } }

.missions[data-portal-preview] .missions-filters,.missions[data-portal-preview] .missions-timeline,.missions[data-portal-preview] .missions-clients { visibility:hidden; }

/* media-viewer.css */
/* Shared by the public gallery and the administrator's live preview. */
.mission-detail {
  position: fixed;
  inset: 0;
  box-sizing: border-box;
  width: 100%;
  max-width: none;
  height: 100dvh;
  max-height: none;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  background: #080808;
  color: #ecece7;
  overflow: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
  font: 400 1rem/1.5 Barlow, Arial, sans-serif;
  text-align: left;
  touch-action: pan-y pinch-zoom;
}
.mission-detail::backdrop { background: #080808; }
.mission-detail [hidden] { display: none !important; }
.mission-detail .mission-detail-close {
  position: fixed;
  top: max(.5rem, env(safe-area-inset-top));
  right: max(.75rem, env(safe-area-inset-right));
  z-index: 2;
  width: 3rem;
  height: 3rem;
  min-height: 3rem;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: #fff;
  mix-blend-mode: difference;
  font: 300 2rem/1 Barlow, Arial, sans-serif;
  cursor: pointer;
}
.mission-detail button:focus-visible { outline: 2px solid #e5ac00; outline-offset: 3px; }
.mission-detail-content {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-items: start;
  align-content: start;
  gap: clamp(2rem, 4vw, 4rem);
  padding: max(4rem, calc(env(safe-area-inset-top) + 3.5rem)) clamp(1.5rem, 3vw, 3rem) max(3rem, env(safe-area-inset-bottom));
}
.mission-detail-media, .mission-detail-info { min-width: 0; }
.mission-detail-info { width: 100%; max-width: 58rem; }
.mission-detail h2 {
  margin: 0 0 1.25rem;
  font-size: clamp(1.75rem, 3vw, 3rem);
  font-weight: 300;
  letter-spacing: -.02em;
  line-height: 1.15;
  overflow-wrap: anywhere;
}
.mission-detail-description {
  margin: 0 0 2rem;
  font-size: 1.125rem;
  line-height: 1.6;
  font-weight: 300;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}
.mission-detail-description:empty, .mission-detail-meta:empty { display: none; }
.mission-detail .mission-detail-meta { display: grid; gap: 1.25rem; margin: 0; font-size: 1rem; overflow-wrap: anywhere; }
.mission-detail-meta dt { margin: 0 0 .2rem; color: #a5a5a5; font-size: .875rem; font-weight: 400; }
.mission-detail-meta dd { margin: 0; font-weight: 400; }
.mission-detail-files { display: grid; min-height: 10rem; touch-action: pan-y pinch-zoom; }
.mission-detail-files img, .mission-detail-files video {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  max-height: none;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  object-fit: contain;
  background: transparent;
}
.mission-media-status { margin: 0; padding: 1rem; font-size: 1rem; text-align: center; color: #b8b8b8; }
.mission-detail .mission-media-status button { display: block; margin: .75rem auto 0; border: 0; border-radius: 0; background: transparent; color: #ecece7; min-height: 3rem; padding: .5rem 1rem; font: inherit; text-decoration: underline; text-underline-offset: .25em; cursor: pointer; }
.mission-carousel-controls { display: flex; align-items: center; justify-content: center; gap: 1.5rem; margin-top: 1rem; }
.mission-carousel-controls button { width: 3rem; height: 3rem; min-height: 3rem; padding: 0; border: 0; border-radius: 0; background: transparent; color: #b8b8b8; font: 1.5rem Barlow, Arial, sans-serif; cursor: pointer; }
.mission-carousel-controls button:hover { color: #fff; }
.mission-counter { min-width: 4rem; text-align: center; font-size: .875rem; font-variant-numeric: tabular-nums; color: #b8b8b8; }
@media (min-width: 48rem) {
  .mission-detail-content {
    box-sizing:border-box; max-width:100rem; margin-inline:auto;
    grid-template-columns:minmax(0,1fr); gap:2rem; align-content:start;
    --mission-controls-space:0px;
    --mission-media-height:max(180px,calc(100dvh - 9rem - var(--mission-controls-space)));
  }
  .mission-detail-content:has(.mission-carousel-controls:not([hidden])) { --mission-controls-space:4rem; }
  .mission-detail-media { width:100%; }
  .mission-detail-info { max-width:none; }
  .mission-detail-files { min-height:0; width:100%; height:min(56.25vw,var(--mission-media-height)); background:#000; }
  .mission-detail-files img,.mission-detail-files video { width:100%; height:100%; min-height:0; max-height:var(--mission-media-height); object-fit:contain; }
  .mission-detail-heading { display:flex; align-items:center; gap:1.5rem; margin-bottom:1.25rem; }
  .mission-detail-heading h2 { margin:0; }
  .mission-client-logo { flex:0 0 72px; object-fit:contain; }
  .mission-detail .mission-detail-meta { display:flex; flex-wrap:wrap; gap:2rem 4rem; }
  .mission-credits { margin-top:3rem; }
  .mission-credits h3 { font-size:1rem; font-weight:500; margin-bottom:1rem; }
  .mission-credits dl { margin:0; }
  .mission-credits dl>div { display:flex; gap:.4em; margin:.35rem 0; flex-wrap:wrap; }
  .mission-credits dt::after { content:':'; }
  .mission-credits dd { margin:0; }
}
@media (max-width: 47.99rem) {
  .mission-detail-content { padding-right: env(safe-area-inset-right); padding-left: env(safe-area-inset-left); }
  .mission-detail-info { box-sizing: border-box; padding-inline: 1.5rem; }
}

/* experience-3d.css */
.base-integrated .base-world,.base-integrated .base-pan{display:none!important}
.base-integrated .base-viewport{overflow:hidden;background:#10130e;touch-action:none}
.courtyard-frame{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}
.base-integrated:not(.base-ready):not(.base-arrived) .courtyard-frame{pointer-events:none}
.base-integrated .base-hud{z-index:4}
.base-integrated .base-directory{width:245px}
.base-integrated .base-directory a,.base-integrated .base-directory .replay-intro{display:block;padding:.7rem .8rem;width:100%;text-align:left;color:inherit;background:none;border:0;font:inherit;cursor:pointer;text-decoration:none}
.base-integrated .base-directory .replay-intro:hover{background:#ffffff12}
.base-integrated .missions{background:transparent}
.base-integrated{--gallery-backdrop:linear-gradient(90deg,rgb(0 0 0/.1) 0%,rgb(0 0 0/.18) 12%,rgb(0 0 0/.56) 25%,rgb(0 0 0/.84) 37%,rgb(0 0 0/.84) 63%,rgb(0 0 0/.56) 75%,rgb(0 0 0/.18) 88%,rgb(0 0 0/.1) 100%)}
.base-integrated .missions-grid::before{display:block;filter:brightness(.32) saturate(.55)}
.base-integrated .missions-grid::after{background:var(--gallery-backdrop)}
.door-portal{position:absolute;inset:0;z-index:3;overflow:hidden;pointer-events:none;clip-path:polygon(0 0,0 0,0 0);isolation:isolate}
.door-portal[hidden]{display:none}
.door-portal-content{position:absolute;inset:0;transform-origin:0 0;will-change:transform}
.door-portal[data-transition] .missions-filters,.door-portal[data-transition] .missions-timeline,.door-portal[data-transition] .missions-clients{opacity:0;pointer-events:none}
.integrated-interior{position:absolute;inset:0;z-index:0;background-position:center;background-size:cover;pointer-events:none;overflow:hidden}
.integrated-interior[data-facility="missoes"]{background-image:none!important}
.integrated-interior[data-facility="missoes"]::before{content:'';position:absolute;inset:-5%;background:var(--interior-image) center/cover no-repeat;filter:brightness(.32) saturate(.55)}
.integrated-interior[data-facility="missoes"]::after{content:'';position:absolute;inset:0;background:var(--gallery-backdrop)}
.door-portal-content>.missions{z-index:1}
.base-integrated #facility-room{background:transparent}
.base-integrated .integrated-loading{position:absolute;left:50%;bottom:14%;transform:translateX(-50%);z-index:5;color:#ecece7;background:#151a13d9;padding:.8rem 1.2rem;max-width:80%;font-size:1rem;text-align:center}
.integrated-loading[hidden]{display:none}
.base-integrated.entering-facility .base-hud{visibility:hidden}
.base-integrated.entering-facility .courtyard-frame{pointer-events:none}
@media(prefers-reduced-motion:reduce){.integrated-interior{transition:none}}
