@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@500;600&family=DM+Sans:wght@400;500;600;700&display=swap');
:root{color-scheme:dark;--paper:#f1f0eb;--muted:#a6a6a2;--rule:rgba(255,255,255,.16);--rail:23%;--pad:clamp(24px,3.25vw,64px)}
*{box-sizing:border-box}html{background:#0b0b0b}body{margin:0;color:var(--paper);font-family:'DM Sans',Arial,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:2px solid var(--paper);outline-offset:8px}::selection{background:#ededdf;color:#111}
.atmosphere{position:fixed;inset:0;overflow:hidden;pointer-events:none;background:#0b0b0b}.ambient{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 35%,#202020 0,transparent 62%)}.sculpture{position:absolute;width:100%;height:125%;left:-12%;top:-20%;opacity:.76;animation:sculpture-drift 22s ease-in-out infinite alternate;will-change:transform}.ribbon{transform-origin:600px 500px;animation:breathe 13s ease-in-out infinite alternate}.grain{position:absolute;inset:-50%;opacity:.095;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.93' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23fff' filter='url(%23n)' opacity='.7' d='M0 0h180v180H0z'/%3E%3C/svg%3E");animation:grain-shift 1.4s steps(3) infinite}.vignette{position:absolute;inset:0;background:linear-gradient(0deg,#0b0b0b 2%,transparent 55%),linear-gradient(90deg,rgba(0,0,0,.1),transparent 70%)}.glitch-slice{position:absolute;width:80%;height:2px;left:10%;opacity:0;background:linear-gradient(90deg,transparent,#b0b0b050,transparent);animation:glitch 11s steps(1) infinite}.slice-one{top:35%}.slice-two{top:54%;width:50%;height:14px;animation-delay:4.2s;filter:blur(2px)}
.page{position:relative;min-height:100svh;max-width:2000px;margin:auto;padding:0 var(--pad);display:flex;flex-direction:column}.page:before{content:'';position:absolute;top:0;bottom:58px;left:calc(var(--pad) + (100% - var(--pad)*2)*.23);width:1px;background:var(--rule);pointer-events:none}.masthead{display:grid;grid-template-columns:var(--rail) 1fr auto;align-items:start;padding-top:32px;min-height:128px}.brand{display:flex;gap:10px;width:max-content;text-decoration:none;align-items:center}.brand img{width:49px;height:49px}.brand>span{font-size:18px;font-weight:700;line-height:.94;letter-spacing:-.8px}.brand-period{margin-left:1px}.discipline{font-size:10px;line-height:1.55;letter-spacing:1.1px;margin:3px 0 0 32px}.edition{font-size:9px;letter-spacing:.8px;margin-top:5px}.hero{display:grid;grid-template-columns:var(--rail) 1fr;position:relative;min-height:440px;flex:1}.margin-note{display:flex;flex-direction:column;justify-content:space-between;padding:15px 20px 30px 0}.vertical-note{writing-mode:vertical-rl;font-size:9px;letter-spacing:1.8px}.index{font-size:9px;letter-spacing:1px;color:#c0c0bb}.statement{align-self:center;padding:28px 0 48px 32px;animation:arrive 1.5s ease both}.eyebrow{font-size:10px;font-weight:500;letter-spacing:1.3px;line-height:1.6;margin:0 0 20px}.small-cross{font-size:18px;margin-right:8px;vertical-align:-1px}h1{font-family:'Barlow Condensed','Arial Narrow',Arial,sans-serif;font-stretch:condensed;font-weight:500;font-size:clamp(66px,7.5vw,144px);line-height:.93;letter-spacing:-.018em;margin:0}.last-line{white-space:nowrap}.period{color:#90908b}.hero-caption{font-size:12px;letter-spacing:.1px;margin:26px 0 0;color:#c3c3bf}.art-caption{position:absolute;right:0;bottom:29px;font-size:8px;letter-spacing:1.5px;color:#a2a29d}.availability{position:relative;display:grid;grid-template-columns:var(--rail) 1fr .84fr;border-top:1px solid var(--rule);padding:32px 0 35px;gap:0}.availability:before{content:'+';position:absolute;left:calc(var(--rail) - 6px);top:-12px;background:#101010;font-size:19px;line-height:22px;color:#82827e}.status{padding-right:24px}.status .eyebrow{font-size:9px;margin-bottom:15px;letter-spacing:1px;display:flex;gap:9px;align-items:center}.status-dot{height:5px;width:5px;background:#efefe8;border-radius:50%;box-shadow:0 0 8px #fff4;flex:none}h2{font-size:clamp(17px,1.6vw,26px);line-height:1.25;letter-spacing:-.6px;font-weight:400;margin:0}.message{padding:0 38px 0 32px;max-width:550px}.message p{font-size:12px;line-height:1.7;color:#adada8;margin:0}.message .opening{margin-top:14px;color:#d4d4cf}.opening strong{font-weight:500;color:var(--paper)}.contact{padding:0 0 0 32px;border-left:1px solid var(--rule);align-self:start}.contact p{font-size:11px;color:#adada8;margin:1px 0 15px}.contact a{font-size:clamp(15px,1.65vw,25px);letter-spacing:-.5px;text-decoration:none;display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:12px;border-bottom:1px solid #5c5c57;transition:border-color .25s}.contact a:hover{border-color:#fff}.contact a span{font-size:26px;transition:transform .25s}.contact a:hover span{transform:translate(3px,-3px)}.contact-note{display:block;font-size:8px;letter-spacing:1.1px;margin-top:15px;color:#878782}footer{border-top:1px solid var(--rule);display:flex;justify-content:space-between;align-items:center;gap:20px;min-height:58px;font-size:8px;letter-spacing:1px;color:#8f8f8b}#motion-toggle{font:inherit;color:#c4c4be;background:none;border:0;cursor:pointer;display:flex;gap:9px;align-items:center;min-height:44px;padding:8px}.motion-icon{font-size:12px;letter-spacing:-2px;width:10px}.footer-location{color:#b3b3ad}
@keyframes sculpture-drift{from{transform:translate(-1%,1%) rotate(-4deg) scale(.98)}to{transform:translate(3%,-2%) rotate(4deg) scale(1.06)}}@keyframes breathe{from{opacity:.55;transform:skewY(-2deg)}to{opacity:1;transform:skewY(2deg)}}@keyframes grain-shift{0%,100%{transform:translate(0,0)}33%{transform:translate(2%,-2%)}66%{transform:translate(-2%,2%)}}@keyframes glitch{0%,90%,94%,100%{opacity:0;transform:translateX(0)}91%{opacity:.26;transform:translateX(35px)}92%{opacity:.07;transform:translateX(-20px)}93%{opacity:.2;transform:translateX(10px)}}@keyframes arrive{from{opacity:0;transform:translateY(18px);filter:blur(5px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}
.motion-paused *,.motion-paused *:before{animation-play-state:paused!important}.motion-paused .glitch-slice{opacity:0}.motion-paused .statement{animation:none}
@media(min-width:1600px){.hero{min-height:550px}.masthead{padding-top:45px;min-height:155px}.availability{padding-top:42px;padding-bottom:45px}.message p{font-size:14px}.contact p{font-size:13px}}
@media(max-width:1000px){:root{--rail:20%}.page:before{left:calc(var(--pad) + (100% - var(--pad)*2)*.2)}.edition{font-size:8px}.brand>span{font-size:15px}.brand img{width:40px;height:40px}.discipline{margin-left:24px}.statement{padding-left:24px}.message{padding-left:24px;padding-right:25px}.contact{padding-left:24px}.status .eyebrow{font-size:8px;letter-spacing:.4px}.message p{font-size:11px}.index{font-size:8px}.contact a{font-size:16px}.contact-note{font-size:7px}.footer-location{display:none}}
@media(max-width:700px){:root{--pad:24px;--rail:0%}.page:before{left:24px;top:115px;bottom:72px;opacity:.65}.masthead{display:flex;justify-content:space-between;min-height:130px;padding-top:25px}.brand img{width:42px;height:42px}.brand>span{font-size:16px}.discipline{text-align:right;font-size:8px;margin-top:6px;margin-left:0}.edition{display:none}.hero{display:block;min-height:365px;flex:1}.margin-note{padding:0;position:absolute;left:0;top:15px}.vertical-note{display:none}.index{font-size:7px;letter-spacing:1px;padding-left:18px}.statement{padding:69px 0 55px 18px}.statement>.eyebrow{font-size:8px;letter-spacing:1.1px;margin-bottom:19px}h1{font-size:clamp(48px,12.4vw,85px);line-height:.98;letter-spacing:-.01em}.hero-caption{font-size:10px;margin-top:22px}.art-caption{font-size:6px;bottom:18px;letter-spacing:1px}.sculpture{width:175%;height:100%;top:-10%;left:-45%;opacity:.85}.availability{grid-template-columns:1fr;padding:25px 0 26px 18px;gap:21px}.availability:before{left:-5px}.status{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:0}.status .eyebrow{margin:3px 0 0;font-size:8px;letter-spacing:.4px}.status h2{font-size:17px;letter-spacing:-.4px;line-height:1.3}.message{padding:0;max-width:100%}.message p{font-size:11px;line-height:1.7}.message .opening{margin-top:10px}.contact{padding:18px 0 0;border-left:0;border-top:1px solid var(--rule)}.contact p{font-size:10px;margin-bottom:10px}.contact a{font-size:21px;padding-bottom:8px}.contact-note{font-size:7px;margin-top:12px}footer{font-size:6px;letter-spacing:.65px;gap:8px;min-height:64px}#motion-toggle{font-size:7px;padding-right:0;white-space:nowrap}.grain{opacity:.07}}
/* Signal distortion stays behind the readable, stationary typography. */
.brand>span{font-size:clamp(17px,1.7vw,28px);white-space:nowrap;letter-spacing:-1.1px}.brand-suffix{font-weight:400}.brand{gap:9px}.brand img{width:42px;height:42px}
.booking-badge{display:flex;align-items:center;gap:12px;width:max-content;border:1px solid #d2d2ca;padding:10px 15px;font-size:12px;letter-spacing:1.7px;background:#111b;margin-bottom:24px}.booking-badge .status-dot{width:6px;height:6px}.hero-caption{letter-spacing:1.2px;font-size:10px}
.availability{align-items:center;padding-top:24px;padding-bottom:24px}.status{background:var(--paper);color:#101010;margin-right:20px;padding:18px 22px 20px}.status .eyebrow{font-size:9px;letter-spacing:1px;margin-bottom:12px}.status h2{font-family:'Barlow Condensed','Arial Narrow',Arial,sans-serif;font-size:clamp(35px,3.5vw,62px);font-weight:600;line-height:.91;letter-spacing:-.5px}.status h2 span{color:#797972}.message .focus-line{font-size:clamp(20px,2vw,34px);font-weight:500;line-height:1.1;color:var(--paper);letter-spacing:-.6px}.message .opening{margin-top:20px;line-height:1.5}.opening>span{display:block;font-size:9px;letter-spacing:1.3px;color:#aaa}.opening>strong{display:block;margin-top:4px;font-size:clamp(13px,1.2vw,20px);font-weight:500;letter-spacing:.1px}.contact{align-self:center}.contact>p{font-size:9px;letter-spacing:1px;line-height:1.5}
.glitch-echo{position:absolute;width:100%;height:125%;left:-12%;top:-20%;background:url('./light-field.svg') center/contain no-repeat;mix-blend-mode:screen;opacity:0;will-change:transform,clip-path;animation:signal-tear 5.8s steps(1) infinite}.echo-two{animation:signal-tear-secondary 5.8s steps(1) infinite;filter:contrast(1.6)}.glitch-slice{width:100%;left:0;height:3px;background:linear-gradient(90deg,transparent 5%,#e8e8dc99 25%,#bdbdbd55 72%,transparent 90%);animation:signal-line 5.8s steps(1) infinite}.slice-one{top:34%}.slice-two{top:56%;height:22px;filter:none;animation-delay:.18s;background:repeating-linear-gradient(0deg,transparent 0 3px,#dedede38 3px 4px)}.scanlines{position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent 0 5px,#ffffff08 5px 6px);opacity:.25;animation:scan-roll 9s linear infinite}.grain{animation-duration:.7s;opacity:.11}
@keyframes signal-tear{0%,25%,100%{opacity:0;clip-path:inset(25% 0 55%)}5%{opacity:.85;clip-path:inset(25% 0 59%);transform:translateX(75px)}10%{opacity:.65;clip-path:inset(46% 0 42%);transform:translateX(-65px)}15%{opacity:.9;clip-path:inset(33% 0 49%);transform:translateX(100px)}20%{opacity:.55;clip-path:inset(60% 0 32%);transform:translateX(-38px)}}
@keyframes signal-tear-secondary{0%,30%,100%{opacity:0;clip-path:inset(52% 0 35%)}8%{opacity:.7;clip-path:inset(54% 0 34%);transform:translateX(-90px)}13%{opacity:.8;clip-path:inset(28% 0 65%);transform:translateX(45px)}18%{opacity:.55;clip-path:inset(68% 0 25%);transform:translateX(85px)}23%{opacity:.7;clip-path:inset(44% 0 49%);transform:translateX(-50px)}}
@keyframes signal-line{0%,28%,100%{opacity:0;transform:translateY(0)}5%{opacity:.45;transform:translateY(20px)}12%{opacity:.2;transform:translateY(100px)}19%{opacity:.4;transform:translateY(-20px)}}
@keyframes scan-roll{to{transform:translateY(12px)}}
.motion-paused .glitch-echo,.motion-paused .glitch-slice{opacity:0}
@media(max-width:1000px){.brand{gap:5px}.brand img{width:30px;height:30px}.brand>span{font-size:16px;letter-spacing:-.8px}.status{padding:16px 12px;margin-right:10px}.status .eyebrow{font-size:7px;letter-spacing:.5px}.status h2{font-size:36px}.message .focus-line{font-size:23px}.opening>strong{font-size:13px}.contact>p{font-size:8px}}
@media(max-width:700px){.brand{gap:7px}.brand img{width:35px;height:35px}.brand>span{font-size:20px}.discipline{font-size:7px;max-width:105px}.statement>.booking-badge{font-size:9px;letter-spacing:1px;margin-bottom:24px;padding:9px 12px}.glitch-echo{width:175%;height:100%;top:-10%;left:-45%}.hero{min-height:350px}.availability{gap:24px;padding:24px 0 25px 18px}.status{display:block;position:relative;padding:18px 20px;margin:0}.status .eyebrow{font-size:10px;letter-spacing:1px;margin:0 0 12px}.status h2{font-size:50px;line-height:.9;letter-spacing:-.5px}.status h2 br{display:none}.status h2 br:after{content:' '}.status h2{max-width:100%}.message .focus-line{font-size:27px}.message .opening{margin-top:19px}.opening>strong{font-size:17px}.contact>p{font-size:9px}.contact{width:100%}.hero-caption{font-size:8px}.status h2{font-size:clamp(36px,10.5vw,56px)}}
/* Both languages share the same cell, keeping the three-line title still. */
.word-cycle{display:grid;perspective:850px;white-space:nowrap;line-height:.98}
.word-cycle>span{grid-area:1/1;display:block;transform-origin:50% 55%;backface-visibility:hidden;animation-duration:16s;animation-iteration-count:infinite;animation-timing-function:cubic-bezier(.22,.75,.23,1);animation-fill-mode:both}
.word-en{animation-name:word-english}.word-pt{animation-name:word-portuguese}
.word-cycle:nth-child(2)>span{animation-delay:.8s}.word-cycle:nth-child(3)>span{animation-delay:1.6s}
@keyframes word-english{0%,22%,78%,100%{opacity:1;transform:rotateX(0) translateY(0);filter:blur(0)}26%,70%{opacity:0;transform:rotateX(-90deg) translateY(-.12em);filter:blur(3px)}74%{opacity:0;transform:rotateX(90deg) translateY(.12em);filter:blur(3px)}}
@keyframes word-portuguese{0%,22%,78%,100%{opacity:0;transform:rotateX(90deg) translateY(.12em);filter:blur(3px)}28%,68%{opacity:1;transform:rotateX(0) translateY(0);filter:blur(0)}74%{opacity:0;transform:rotateX(-90deg) translateY(-.12em);filter:blur(3px)}}
.status .eyebrow{font-size:8px;letter-spacing:.6px}.opening>strong{font-size:clamp(12px,1.1vw,19px)}
@media(max-width:1000px){.status .eyebrow{font-size:7px;letter-spacing:0}.status h2{font-size:34px}.message .focus-line{font-size:21px}.opening>strong{font-size:12px}}
@media(max-width:700px){.status .eyebrow{font-size:9px;letter-spacing:.6px}.status h2{font-size:clamp(32px,9.5vw,50px)}.message .focus-line{font-size:26px}.opening>strong{font-size:16px}.word-cycle{line-height:1.02}h1{font-size:clamp(36px,11.5vw,79px)}}
/* Confine animated artwork and word flips to their own paint areas. */
html{overflow-x:clip;scrollbar-width:none}html::-webkit-scrollbar{display:none}
body{overflow-x:clip}.atmosphere{contain:strict}
.hero,.statement,.message,.contact{min-width:0}
.word-cycle{width:max-content;max-width:100%;contain:paint;overflow:clip;overflow-clip-margin:.12em}
.contact .booking-open{padding:10px 12px;border:1px solid #8e8e84;background:#f1f0eb0d;color:var(--paper);font-size:10px;letter-spacing:.8px;line-height:1.6;margin:0 0 16px}
.booking-open strong{font-weight:700}
/* Fit the desktop composition to the available height as well as its width.
   Small screens and browser zoom retain natural vertical scrolling. */
@media(min-width:701px){
  .masthead{min-height:clamp(72px,13svh,128px);padding-top:clamp(20px,3svh,32px)}
  .hero{min-height:0}
  .statement{padding-top:clamp(10px,2svh,28px);padding-bottom:clamp(16px,3svh,40px)}
  h1{font-size:clamp(40px,min(7.5vw,10.5svh),144px)}
  .booking-badge{margin-bottom:clamp(12px,2svh,24px)}
  .hero-caption{margin-top:clamp(12px,2svh,26px)}
  .availability{padding-top:clamp(12px,2svh,24px);padding-bottom:clamp(12px,2svh,24px)}
  .status{padding-top:clamp(12px,2svh,18px);padding-bottom:clamp(12px,2svh,20px)}
  .status h2{font-size:clamp(30px,min(3.5vw,5.5svh),62px)}
  .message .focus-line{font-size:clamp(18px,min(2vw,3.8svh),34px)}
  .message .opening{margin-top:clamp(12px,2svh,20px)}
  .contact .booking-open{font-size:clamp(8px,.75vw,11px);padding:8px 10px;margin-bottom:12px}
  footer{min-height:clamp(44px,6svh,58px)}
  .art-caption{bottom:16px}.margin-note{padding-bottom:18px}
}
@media(max-width:700px){.contact .booking-open{font-size:10px}}
/* Opening sequence: isolated fixed layer, never changes document dimensions. */
.intro{position:fixed;inset:0;z-index:100;display:grid;place-items:center;background:#050505;overflow:clip;contain:strict;animation:intro-failsafe .01s 7s forwards}
.intro[hidden]{display:none}
.intro-center{width:100%;display:flex;flex-direction:column;align-items:center}
.intro-logo{display:flex;align-items:center;justify-content:center;gap:clamp(10px,1.5vw,26px);color:#fff;transform-origin:center;animation:intro-grow 2.4s cubic-bezier(.2,.7,.2,1) both}
.intro-symbol{position:relative;display:block;overflow:hidden;width:clamp(48px,9vw,140px);height:clamp(48px,9vw,140px);flex:none}
.intro-symbol img{display:block;width:100%;height:100%}
.intro-type{display:flex;align-items:baseline;font-size:clamp(36px,7vw,112px);font-weight:700;letter-spacing:-.065em;line-height:1.2}
.intro-type>span{position:relative;overflow:hidden;display:block;padding-right:.03em}.intro-type .intro-light{font-weight:400}
.intro-type>span:after,.intro-symbol:after{content:'';position:absolute;left:-5%;top:0;width:110%;height:20%;background:#050505;box-shadow:0 12px 0 #050505;animation:intro-scan 1.15s cubic-bezier(.3,0,.5,1) infinite;animation-delay:calc(var(--letter,0)*.09s - .6s);pointer-events:none}
.intro-loading{margin-top:42px;width:min(250px,55vw);display:flex;flex-direction:column;align-items:center;gap:14px;transition:opacity .2s}
.intro-label{font-size:9px;letter-spacing:2.8px;color:#b9b9b3}.intro-signature{font-size:7px;letter-spacing:1.3px;color:#777771;white-space:nowrap}
.intro-track{display:block;width:100%;height:1px;background:#30302e;overflow:hidden}.intro-track>span{display:block;width:100%;height:100%;background:#fff;transform:scaleX(.03);transform-origin:left;animation:intro-progress 2.4s ease-out forwards}
.intro-skip{position:absolute;right:var(--pad);bottom:28px;background:none;color:#9c9c96;border:0;padding:14px 0 14px 14px;font:inherit;font-size:9px;letter-spacing:1.2px;cursor:pointer}.intro-skip span{margin-left:10px}
.intro.is-ready .intro-type>span:after,.intro.is-ready .intro-symbol:after{animation:none;opacity:0}
.intro.is-ready .intro-track>span{animation:none;transform:scaleX(1)}
.intro.is-leaving{background:transparent;transition:background .55s .25s;pointer-events:none}
.intro.is-leaving .intro-logo{animation:intro-zoom .95s cubic-bezier(.7,0,.2,1) forwards}
.intro.is-leaving .intro-loading,.intro.is-leaving .intro-skip{opacity:0}
.intro-active .page{opacity:0;animation:page-failsafe .01s 7s forwards}
.intro-active:not(.intro-revealing) .page *{animation-play-state:paused!important}
.intro-revealing .page{opacity:1;animation:none;transition:opacity .65s .15s}
@keyframes intro-grow{from{opacity:0;transform:scale(.76)}15%{opacity:1}to{opacity:1;transform:scale(1)}}
@keyframes intro-scan{0%{transform:translateY(-260%)}100%{transform:translateY(730%)}}
@keyframes intro-progress{from{transform:scaleX(.03)}65%{transform:scaleX(.65)}to{transform:scaleX(.9)}}
@keyframes intro-zoom{0%{opacity:1;transform:scale(1)}45%{opacity:1}100%{opacity:0;transform:scale(12)}}
@keyframes intro-failsafe{to{visibility:hidden;pointer-events:none}}
@keyframes page-failsafe{to{opacity:1}}
@media(max-width:700px){.intro-type{font-size:clamp(30px,8.5vw,56px)}.intro-symbol{width:clamp(40px,11vw,72px);height:clamp(40px,11vw,72px)}.intro-loading{margin-top:32px}}
@media(prefers-reduced-motion:reduce){*,*:before{animation:none!important;transition:none!important}.glitch-slice,.glitch-echo,.scanlines{display:none}.word-en{opacity:0}.word-pt{opacity:1;transform:none;filter:none}.intro-type>span:after,.intro-symbol:after{display:none}}
