/* A real website lives inside the active portfolio frame. */
.portfolio-live-preview{position:absolute;inset:0;z-index:4;overflow:hidden;opacity:0;transition:opacity .55s ease;background:#0a0b10;pointer-events:none;isolation:isolate}
.is-preview-ready .portfolio-live-preview{opacity:1}
.portfolio-live-frame{position:absolute;left:0;top:0;border:0;display:block;max-width:none!important;transform-origin:0 0;pointer-events:none;background:#0a0b10}
.proj__media.is-preview-ready:after{opacity:0}
.portfolio-live-badge,.portfolio-live-open{position:absolute;bottom:19px;z-index:5;display:flex;align-items:center;gap:8px;padding:10px 13px;border:1px solid #ffffff33;border-radius:40px;background:#0a0b10d9;color:#f5f1e8;backdrop-filter:blur(12px);font:500 10px/1.2 var(--f-sans,Arial,sans-serif);letter-spacing:.01em;box-shadow:0 4px 18px #0002}
.portfolio-live-badge{left:20px}.portfolio-live-open{right:20px;gap:16px}
.portfolio-live-badge i{display:block;width:5px;height:5px;border-radius:50%;background:#c2bdff;box-shadow:0 0 9px #c2bdff66}
.portfolio-preview-tools{display:flex;justify-content:flex-end;margin:0 0 20px;position:relative;z-index:8}
.portfolio-preview-toggle{display:inline-flex;gap:9px;align-items:center;border:1px solid #f5f1e83b;border-radius:30px;background:#0a0b10;color:#e5e1ec;padding:11px 15px;min-height:38px;font:500 10px/1.3 var(--f-sans,Arial,sans-serif);cursor:pointer;transition:background .2s,border-color .2s}
.portfolio-preview-toggle:hover{background:#20202d;border-color:#c2bdff}
.portfolio-preview-toggle:focus-visible{outline:2px solid #f3acdc;outline-offset:5px}
.portfolio-preview-toggle:disabled{cursor:default;color:#a7a8b3;border-color:#f5f1e81c}
.portfolio-preview-toggle-icon{display:block;width:9px;height:10px;border-inline:2px solid currentColor}
.portfolio-preview-toggle[data-paused=true] .portfolio-preview-toggle-icon{width:0;height:0;border:0;border-left:8px solid currentColor;border-top:5px solid transparent;border-bottom:5px solid transparent}
html.hs .portfolio-preview-tools{position:absolute;right:var(--pad);bottom:clamp(16px,3.3vh,32px);margin:0}
html.hs .has-live-previews .work__hud>.label:last-child{visibility:hidden}
@media(max-width:899px){.portfolio-preview-tools{margin-bottom:23px}.portfolio-preview-toggle{font-size:9px;padding:10px 13px}.portfolio-live-badge,.portfolio-live-open{bottom:12px;padding:8px 10px;font-size:8px;gap:6px}.portfolio-live-badge{left:12px}.portfolio-live-open{right:12px}}
@media(prefers-reduced-motion:reduce){.portfolio-live-preview{transition:none}.portfolio-preview-toggle{transition:none}}

/* A cream and burgundy product world, matching the supplied Mathilde concept. */
.proj--mathilde{grid-column:1/-1}
.proj--mathilde .proj__media{aspect-ratio:2.2;background:#f6ecdd;border:1px solid #a3202e44}
.proj--mathilde .proj__media:after{display:none}
.mathilde-preview{position:absolute;inset:0;overflow:hidden;background:#f6ecdd;color:#3b2218;isolation:isolate}
.mathilde-preview__top{position:absolute;inset:6% 6% auto;display:flex;justify-content:space-between;align-items:start;z-index:3}
.mathilde-preview__top>span:first-child{font:600 clamp(15px,1.7vw,27px)/.92 Georgia,serif;letter-spacing:-.04em}
.mathilde-preview__top i{font-weight:400}
.mathilde-preview__top>span:last-child{font:500 7px/1.8 var(--f-sans);letter-spacing:.12em;text-align:right;color:#a3202e}
.mathilde-preview__products{position:absolute;inset:5% 13% 15%;display:flex;align-items:center;justify-content:center;gap:2%;z-index:1}
.mathilde-preview__products img{width:35%;height:100%;object-fit:contain;mix-blend-mode:multiply;transform:translateY(2%) rotate(-14deg)}
.mathilde-preview__products img:nth-child(2){width:41%;transform:translateY(-13%) rotate(0);z-index:1}
.mathilde-preview__products img:nth-child(3){transform:translateY(2%) rotate(14deg)}
.mathilde-preview__circle{position:absolute;width:78%;aspect-ratio:1;border-radius:50%;background:#a3202e;top:66%;left:11%;z-index:2}
.mathilde-preview__title{position:absolute;left:12%;right:12%;bottom:9%;z-index:3;text-align:center;color:#f6ecdd;font:500 clamp(29px,3.7vw,56px)/.92 Georgia,serif;letter-spacing:-.045em}
.mathilde-preview__title em{font-weight:400}
.mathilde-preview__footer{position:absolute;inset:auto 5% 6%;z-index:4;display:flex;align-items:center;justify-content:space-between;font:500 6px/1.5 var(--f-sans);letter-spacing:.08em}
.mathilde-preview__footer span{max-width:13ch}
.mathilde-preview__footer span:last-child{text-align:right;font-size:8px;letter-spacing:0}
.proj--mathilde .portfolio-live-preview{background:#f6ecdd}
.proj--mathilde .portfolio-live-badge i{background:#efb997;box-shadow:0 0 9px #efb99766}
.proj--mathilde .proj__link:hover .proj__go{color:#a3202e;background:#f6ecdd;border-color:#f6ecdd}
@media(max-width:899px){.proj--mathilde .proj__media{aspect-ratio:1.15}.mathilde-preview__top>span:first-child{font-size:20px}.mathilde-preview__top>span:last-child{font-size:6px}.mathilde-preview__products{inset:18% 2% 19%}.mathilde-preview__circle{width:110%;left:-5%;top:68%}.mathilde-preview__title{font-size:34px;bottom:6%}.mathilde-preview__footer{bottom:4%;font-size:5px;inset-inline:4%}.mathilde-preview__footer span:last-child{font-size:6px}.proj--mathilde .proj__name span{display:block;margin:6px 0 0;font-size:15px}}

/* Souffleur is an external application: its preview is a local visual tour. */
.proj--souffleur{grid-column:1/-1}
.proj--souffleur .proj__media{aspect-ratio:2.2;background:#e7ebdf;border:1px solid #b4c2ad;display:flex;flex-direction:column}
.proj--souffleur .proj__media:after{display:none}
.souffleur-preview{position:relative;flex:1 1 0;min-height:0;overflow:hidden;background:#eef0e8}
.souffleur-preview>img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:contain;transition:transform 1s var(--ease)}
.proj--souffleur .proj__link:hover .souffleur-preview>img{transform:scale(1.025)}
.souffleur-preview-label{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 26px;border-top:1px solid #244d3426;color:#244d34;background:#e7ebdf;font:600 9px/1.5 var(--f-sans);letter-spacing:.07em}
.souffleur-preview-label>span:last-child{display:flex;gap:12px;align-items:center;white-space:nowrap;letter-spacing:0;font-size:11px}
.proj--souffleur .proj__link:hover .proj__go{color:#244d34;background:#e7ebdf;border-color:#e7ebdf}
.proj--souffleur .portfolio-live-preview{background:#e5e9df}
.proj--souffleur .portfolio-live-badge i{background:#c8e69a;box-shadow:0 0 9px #c8e69a66}
html.hs .proj--souffleur{width:min(78vw,1280px)}
html.hs .proj--souffleur .proj__media{aspect-ratio:auto;height:min(62vh,640px)}
@media(max-width:899px){.proj--souffleur .proj__media{aspect-ratio:1.1}.proj--souffleur .proj__name span{display:block;margin:6px 0 0;font-size:15px}.souffleur-preview>img{object-fit:cover;object-position:center top}.souffleur-preview-label{padding:16px 20px;font-size:7px}.souffleur-preview-label>span:last-child{font-size:9px}}
@media(max-width:400px){.souffleur-preview-label{gap:10px;padding:14px}.souffleur-preview-label>span:first-child{max-width:18ch}}

/* The boutique keeps its own warm, architectural identity inside the gallery. */
.proj--saison{grid-column:1/-1}
.proj--saison .proj__media{aspect-ratio:2.2;background:#ece4d6;border:1px solid #bba98a}
.proj--saison .proj__media:after{display:none}
.saison-preview{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;isolation:isolate;overflow:hidden;background:radial-gradient(ellipse at 50% 40%,#fbf8f0c9,transparent 70%),#e9dfce;color:#403627;text-align:center;padding:35px}
.saison-preview__architecture{position:absolute;inset:8% 5% -12%;display:flex;align-items:stretch;justify-content:space-around;gap:6%;z-index:-1;opacity:.6}
.saison-preview__architecture>i{width:28%;border:1px solid #b49a6a66;border-radius:160px 160px 0 0;box-shadow:inset 12px 0 30px #846c3d09,9px 3px 30px #846c3d08;background:linear-gradient(90deg,#eee5d7,#fcf8ee66)}
.saison-preview__floor{position:absolute;left:-50%;right:-50%;height:85%;bottom:-45%;background:repeating-linear-gradient(90deg,transparent 0 89px,#b49a6a22 90px 91px),repeating-linear-gradient(0deg,#eee7db 0 89px,#b49a6a22 90px 91px);transform:perspective(400px) rotateX(55deg);border-top:1px solid #b49a6a44}
.saison-preview__eyebrow{font:500 9px/1.4 var(--f-sans);letter-spacing:.24em;margin-bottom:30px}
.saison-preview strong{font:400 clamp(32px,5vw,76px)/1 Georgia,serif;letter-spacing:.15em;text-shadow:0 2px 20px #fff8}
.saison-preview strong em{font-weight:400;letter-spacing:.02em}
.saison-preview__subtitle{font:italic 24px/1.3 Georgia,serif;margin-top:22px}
.saison-preview__footer{position:absolute;bottom:30px;left:30px;right:30px;display:flex;justify-content:space-between;gap:18px;align-items:center;font:500 9px/1.5 var(--f-sans);letter-spacing:.04em;text-align:left}
.saison-preview__footer span:last-child{font-size:11px;white-space:nowrap}
.proj--saison .portfolio-live-preview{background:#e8e1d6}
.proj--saison .proj__link:hover .proj__go{color:#403627;background:#ece4d6;border-color:#ece4d6}
html.hs .proj--saison{width:min(78vw,1280px)}
html.hs .proj--saison .proj__media{aspect-ratio:auto;height:min(62vh,640px)}
@media(max-width:899px){.proj--saison .proj__media{aspect-ratio:1.15}.proj--saison .proj__name span{display:block;margin:6px 0 0;font-size:15px}.saison-preview{padding:20px}.saison-preview__eyebrow{font-size:7px;letter-spacing:.13em}.saison-preview strong{font-size:clamp(28px,6vw,55px)}.saison-preview__subtitle{font-size:19px}.saison-preview__footer{bottom:22px;left:20px;right:20px;font-size:7px}.saison-preview__footer span:last-child{font-size:9px}}

/* The original walnut salon forms both the still poster and the guided tour. */
.proj--ralph{grid-column:1/-1}
.proj--ralph .proj__media{aspect-ratio:2.2;background:#241d16;border:1px solid #b3a18270}
.proj--ralph .proj__media:after{display:none}
.ralph-preview{position:absolute;inset:0;overflow:hidden;color:#f3ead9;background:#241d16}
.ralph-preview>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 43%}
.ralph-preview__shade{position:absolute;inset:0;background:linear-gradient(90deg,#080704a6,transparent 70%),linear-gradient(#120e0877,transparent 30%,transparent 60%,#120e0877)}
.ralph-preview__wordmark{position:absolute;top:7%;left:0;right:0;text-align:center;font:400 clamp(19px,2.2vw,34px)/1.2 Georgia,serif;letter-spacing:.18em}
.ralph-preview__wordmark span{display:block;font:400 7px/1.5 var(--f-sans);letter-spacing:.25em;margin-top:10px}
.ralph-preview__copy{position:absolute;left:7%;top:33%}
.ralph-preview__copy>span{font:400 8px/1.5 var(--f-sans);letter-spacing:.18em}
.ralph-preview__copy strong{display:block;margin-top:15px;font:400 clamp(37px,4.8vw,74px)/1.05 Georgia,serif;letter-spacing:-.035em}
.ralph-preview__copy em{font-weight:400}
.ralph-preview__footer{position:absolute;bottom:7%;left:7%;right:7%;display:flex;justify-content:space-between;gap:14px;font:400 8px/1.5 var(--f-sans);letter-spacing:.08em}
.ralph-preview__footer>span:last-child{font-size:10px;letter-spacing:0}
.proj--ralph .portfolio-live-preview{background:#241d16}
.proj--ralph .portfolio-live-badge i{background:#dcc395;box-shadow:0 0 9px #dcc39566}
.proj--ralph .proj__link:hover .proj__go{color:#241d16;background:#e8dac0;border-color:#e8dac0}
@media(max-width:899px){.proj--ralph .proj__media{aspect-ratio:1.15}.ralph-preview__wordmark{font-size:23px;top:9%}.ralph-preview__copy{top:36%}.ralph-preview__copy>span{font-size:6px}.ralph-preview__copy strong{font-size:40px}.ralph-preview__footer{font-size:6px;bottom:8%}.ralph-preview__footer>span:last-child{font-size:8px}.proj--ralph .proj__name span{display:block;margin:6px 0 0;font-size:15px}}

/* The Mediterranean penthouse carries its own warm, architectural light. */
.proj--roche{grid-column:1/-1}
.proj--roche .proj__media{aspect-ratio:2.2;background:#b3a28a;border:1px solid #d4c7b466}
.proj--roche .proj__media:after{display:none}
.roche-preview{position:absolute;inset:0;overflow:hidden;color:#faf7f0;background:#716450}
.roche-preview>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 52%}
.roche-preview__shade{position:absolute;inset:0;background:linear-gradient(90deg,#12170faf,transparent 90%),linear-gradient(#161a1166,transparent 40%,#11180e88)}
.roche-preview__wordmark{position:absolute;top:7%;left:7%;width:clamp(130px,16vw,220px)}
.roche-preview__wordmark>img{display:block;width:100%;height:auto;filter:brightness(0) invert(1)}
.roche-preview__copy{position:absolute;left:7%;top:34%}
.roche-preview__copy>span{font:500 7px/1.5 var(--f-sans);letter-spacing:.18em}
.roche-preview__copy strong{display:block;margin-top:18px;font:400 clamp(37px,4.8vw,74px)/1.02 Georgia,serif;letter-spacing:-.055em}
.roche-preview__copy em{font-weight:400}
.roche-preview__footer{position:absolute;bottom:7%;left:7%;right:7%;display:flex;justify-content:space-between;gap:14px;font:400 7px/1.5 var(--f-sans);letter-spacing:.08em}
.roche-preview__footer>span:last-child{font-size:10px;letter-spacing:0}
.proj--roche .portfolio-live-preview{background:#c0b09a}
.proj--roche .portfolio-live-badge i{background:#efe4cd;box-shadow:0 0 9px #efe4cd66}
.proj--roche .proj__link:hover .proj__go{color:#292b22;background:#ede9df;border-color:#ede9df}
@media(max-width:899px){.proj--roche .proj__media{aspect-ratio:1.15}.roche-preview__wordmark{font-size:25px;top:9%}.roche-preview__copy{top:35%}.roche-preview__copy>span{font-size:6px;letter-spacing:.12em}.roche-preview__copy strong{font-size:43px}.roche-preview__footer{font-size:6px;bottom:8%}.roche-preview__footer>span:last-child{font-size:8px}.proj--roche .proj__name span{display:block;margin:6px 0 0;font-size:15px}}

/* The watch keeps the original silver, ink and gold editorial palette. */
.proj--santos{grid-column:1/-1}
.proj--santos .proj__media{aspect-ratio:2.2;background:#f1f3f3;border:1px solid #b8935a66}
.proj--santos .proj__media:after{display:none}
.santos-preview{position:absolute;inset:0;overflow:hidden;background:#f1f3f3;color:#171919}
.santos-preview__header{position:absolute;left:6%;right:6%;top:7%;display:flex;align-items:center;justify-content:space-between;z-index:2}
.santos-preview__header>span:first-child{font:400 clamp(13px,1.4vw,19px)/1.2 Georgia,serif}
.santos-preview__header>span:last-child{font:400 6px/1.5 var(--f-sans);letter-spacing:.16em;color:#656b6e}
.santos-preview__visual{position:absolute;inset:7% 29% 6%;display:grid;place-items:center}
.santos-preview__visual img{width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply;mask-image:radial-gradient(ellipse,#000 62%,transparent 77%)}
.santos-preview__title{position:absolute;inset:0;display:flex;align-items:center;justify-content:space-between;padding:0 7%;font:400 clamp(27px,3.3vw,52px)/1 Georgia,serif;letter-spacing:-.04em}
.santos-preview__title>span:last-child{font-style:italic}
.santos-preview__footer{position:absolute;left:6%;right:6%;bottom:7%;display:flex;align-items:end;justify-content:space-between;gap:15px;font:400 6px/1.8 var(--f-sans);letter-spacing:.08em;color:#656b6e}
.santos-preview__footer>span:last-child{font-size:10px;color:#292a2a;letter-spacing:0;border-bottom:1px solid #b8935a;padding-bottom:5px}
.proj--santos .portfolio-live-preview{background:#f1f3f3}
.proj--santos .portfolio-live-badge i{background:#d6b77e;box-shadow:0 0 9px #d6b77e66}
.proj--santos .proj__link:hover .proj__go{color:#171919;background:#f1f3f3;border-color:#f1f3f3}
@media(max-width:899px){.proj--santos .proj__media{aspect-ratio:1.15}.santos-preview__header>span:first-child{font-size:15px}.santos-preview__header>span:last-child{display:none}.santos-preview__visual{inset:15% 21% 14%}.santos-preview__title{font-size:25px;padding:0 5%}.santos-preview__footer{font-size:5px}.santos-preview__footer>span:last-child{font-size:8px}.proj--santos .proj__name span{display:block;margin:6px 0 0;font-size:15px}}
