/* A little beauty campaign. A completely unreasonable travelling party. */
.nail-character{display:block;width:100%;aspect-ratio:3/4;background-image:url('assets/travel-nail-crew.webp');background-repeat:no-repeat;background-size:400% 100%;background-position:var(--sprite) 0}
.site-loader{display:none;position:fixed;inset:0;z-index:1000;place-items:center;background:radial-gradient(ellipse at 50% 45%,#f9d5e2,#fff9f2 70%);pointer-events:none;transition:opacity .42s,transform .42s var(--ease)}
.has-intro .site-loader{display:grid;animation:loader-fail-open 0s 1.8s forwards}
.intro-leaving .site-loader{opacity:0;transform:translateY(-22px) scale(1.025)}
.loader-content{position:relative;text-align:center;width:300px}
.loading-orbit{width:220px;height:220px;margin:0 auto 14px;position:relative;animation:luggage-carousel 1.8s linear infinite}
.loader-dancer{position:absolute;inset:0;display:flex;justify-content:center;align-items:center;transform:rotate(var(--orbit)) translateY(-66px)}
.loader-dancer .nail-character{width:63px;animation:luggage-counterspin 1.8s linear infinite}
.loader-heart{position:absolute;left:0;right:0;top:88px;color:#bc497c;font-size:41px;animation:heart-beat 1s ease-in-out infinite}
.loader-content>p{font-family:'Italiana',Georgia,serif;font-size:35px;line-height:1;margin:14px 0 9px}
.loader-content>span:last-child{font-size:12px;color:#805c70}
@keyframes loader-fail-open{to{visibility:hidden}}
@keyframes luggage-carousel{to{transform:rotate(360deg)}}
@keyframes luggage-counterspin{from{transform:rotate(calc(-1 * var(--orbit)))}to{transform:rotate(calc(-360deg - var(--orbit)))}}
@keyframes heart-beat{50%{transform:scale(.8) rotate(-10deg)}}
/* The brand stays on one line: glossy nails, a stamp, and an expendable 'males'. */
.opening-compact .nbm-wordmark{display:flex;align-items:center;gap:.16em;white-space:nowrap;width:max-content;max-width:100%;font-size:clamp(44px,6vw,86px);line-height:1.18;letter-spacing:-.065em;margin-bottom:37px}
.word-nails{position:relative;display:inline-block;font-weight:600;overflow:hidden;color:#241421;text-shadow:0 .035em 0 #d2a3b62e}
.word-nails:after{content:'';position:absolute;inset:-30% auto -30% -60%;width:35%;background:linear-gradient(90deg,transparent,#ffebf7a0,transparent);transform:skewX(-25deg);pointer-events:none}
.opening-compact .nbm-wordmark .word-before{font-family:'Italiana',Georgia,serif;font-size:.77em;line-height:1.05;letter-spacing:-.03em;display:inline-block;position:relative;padding:.09em .28em .14em;margin:.1em .03em 0;color:#682e4d;background:#efb6ca;border:1px solid #c787a366;border-radius:50%;transform:rotate(-7deg);box-shadow:0 5px 0 #b6789530}
.word-males{position:relative;font-weight:500;color:#795b6c}
.word-males:after{content:'';position:absolute;left:-4%;right:-4%;top:55%;height:3px;border-radius:50%;background:#b64f7c;transform:rotate(-8deg);transform-origin:left}
.wordmark-heart{font-size:.4em;color:#ad4d79;align-self:flex-start;transform:rotate(13deg);margin:0 0 0 -.09em}
.motion-ready .word-nails{animation:word-arrive .8s var(--ease) both}
.motion-ready .word-nails:after{animation:lacquer-shine 2.2s ease-in-out .8s both}
.motion-ready .word-before{animation:stamp-arrive .9s var(--ease) .1s both}
.motion-ready .word-males{animation:word-arrive .8s var(--ease) .2s both}
.motion-ready .word-males:after{animation:cheeky-strike .55s var(--ease) .9s both}
.motion-ready .wordmark-heart{animation:heart-arrive .8s var(--ease) .45s both}
.motion-ready .campaign-illustration{animation:campaign-arrive 1s var(--ease) .12s both}
.campaign-illustration{translate:var(--scene-x,0px) var(--scene-y,0px);transition:translate .8s var(--ease)}
.campaign-composition{min-height:430px;padding-top:66px;padding-bottom:50px}
.campaign-message .campaign-tagline{font-size:16px}
.campaign-message .opening-actions{margin-top:24px}
.editorial .course-card{display:flex;flex-direction:column}
.editorial .course-content{flex:1;display:flex;flex-direction:column;gap:17px}
.editorial .course-subtitle{min-height:0;margin:0;font-size:12px}
.editorial .course-actions{margin-top:auto}
.editorial .studio-portrait{margin-bottom:24px}
.editorial .service-note p{font-size:11px}
.editorial .simple-footer{font-size:10px}
.editorial .course-art:before{animation:beauty-orbit 18s linear infinite;animation-play-state:paused}
.editorial .course-art.ambient-active:before{animation-play-state:running}
/* The lettering is part of the little departure lounge. */
.travel-intro{max-width:900px;grid-template-columns:minmax(0,1fr) 230px;gap:42px;margin-bottom:37px}
.tour-story{position:relative;min-width:0}
.tour-story .tour-title{position:relative;display:inline-block;max-width:none;font-size:clamp(40px,4.6vw,66px);font-weight:600;letter-spacing:-3px;line-height:1.1;transform:rotate(-3deg)}
.tour-title em{display:inline-block;color:#a03d6b;font-size:1.14em;font-weight:400;position:relative}
.tour-title em:after{content:'';position:absolute;height:9px;left:0;right:0;bottom:-8px;border-bottom:2px solid #bf7599;border-radius:50%;transform:rotate(-2deg)}
.tour-plane{position:absolute;width:34px;right:-49px;top:0;color:#b38748;transform:rotate(12deg)}
.tour-story.visible .tour-plane{animation:plane-takeoff 1.7s var(--ease) .4s both}
.nail-crew{display:flex;align-items:flex-end;gap:5px;width:100%;max-width:510px;margin:23px 0 8px}
.crew-member{flex:1;min-width:0;position:relative;transform-origin:50% 100%;animation:airport-shuffle 3.6s ease-in-out infinite;animation-delay:calc(var(--i) * -.8s);animation-play-state:paused}
.crew-member:nth-child(2){animation-name:diva-shuffle;animation-duration:4.5s}
.crew-member:nth-child(3){animation-name:map-shuffle;animation-duration:4.1s}
.nail-crew.ambient-active .crew-member{animation-play-state:running}
.crew-member .nail-character{transform-origin:50% 80%;transition:transform .55s var(--ease)}
.crew-member:hover .nail-character{transform:translateY(-9px) rotate(8deg)}
.tour-story>p{font-size:13px;line-height:1.65;margin:17px 0 0;color:#745263}
.travel-film{width:230px;position:relative;transform:rotate(3deg)}
.travel-film .film-frame{border-radius:115px 115px 7px 7px;box-shadow:0 16px 32px #482e3820;outline-width:6px}
.instax-collection.visible .instax-print{animation:print-arrive .9s var(--ease) both;animation-delay:calc(var(--i) * 70ms)}
.instax-print{transition:transform .6s var(--ease),box-shadow .6s var(--ease);transform:perspective(700px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg)) rotate(var(--tilt))}
@media(hover:hover){.instax-print:hover{transform:perspective(700px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg)) rotate(0) translateY(-8px);box-shadow:0 16px 28px #482e3826}}
.magnetic{translate:var(--magnet-x,0px) var(--magnet-y,0px);transition:translate .4s var(--ease),transform .35s var(--ease),background .25s,box-shadow .3s}
@keyframes word-arrive{from{opacity:0;transform:translateY(24px) rotate(3deg)}to{opacity:1;transform:translateY(0) rotate(0)}}
@keyframes stamp-arrive{from{opacity:0;transform:translateY(-30px) rotate(-22deg) scale(.75)}65%{opacity:1;transform:translateY(3px) rotate(-4deg) scale(1.04)}to{opacity:1;transform:translateY(0) rotate(-7deg) scale(1)}}
@keyframes lacquer-shine{to{left:160%}}
@keyframes cheeky-strike{from{transform:rotate(-8deg) scaleX(0)}to{transform:rotate(-8deg) scaleX(1)}}
@keyframes heart-arrive{from{opacity:0;transform:translateY(12px) rotate(-20deg) scale(.5)}to{opacity:1;transform:translateY(0) rotate(13deg) scale(1)}}
@keyframes campaign-arrive{from{opacity:0;transform:translateY(22px) scale(.94)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes beauty-orbit{from{transform:rotate(-25deg)}to{transform:rotate(335deg)}}
@keyframes airport-shuffle{0%,100%{transform:translateY(0) rotate(-2deg)}35%{transform:translateY(-7px) rotate(3deg)}60%{transform:translateY(-2px) rotate(-2deg)}}
@keyframes diva-shuffle{0%,100%{transform:translateY(0) rotate(2deg)}45%{transform:translateY(-5px) rotate(-4deg)}70%{transform:translateY(-2px) rotate(1deg)}}
@keyframes map-shuffle{0%,100%{transform:translateY(0) rotate(0)}40%{transform:translateY(-3px) rotate(-4deg)}60%{transform:translateY(-6px) rotate(3deg)}}
@keyframes plane-takeoff{from{opacity:0;transform:translate(-45px,22px) rotate(-20deg)}to{opacity:1;transform:translate(0,0) rotate(12deg)}}
@keyframes print-arrive{from{opacity:0;translate:0 28px}to{opacity:1;translate:0 0}}
@media(max-width:1100px){.campaign-composition{min-height:405px;padding-top:55px}.opening-compact .nbm-wordmark{font-size:6vw}.travel-intro{max-width:820px;gap:35px}.tour-story .tour-title{font-size:54px}.tour-plane{width:28px;right:-39px}.nail-crew{max-width:450px}.tour-story>p{font-size:12px}}
@media(max-width:800px){.campaign-composition{padding-top:31px;padding-bottom:36px;min-height:0}.opening-compact .nbm-wordmark{grid-row:1;font-size:clamp(29px,8.2vw,64px);margin:0;gap:.14em}.campaign-message .campaign-tagline{font-size:14px}.travel-intro{grid-template-columns:minmax(0,1fr) 180px;gap:28px;max-width:720px}.tour-story .tour-title{font-size:45px;letter-spacing:-2px}.tour-plane{display:none}.travel-film{width:180px}.travel-film .film-frame{border-radius:90px 90px 6px 6px}.nail-crew{gap:2px;margin-top:18px}.tour-story>p{font-size:12px}.editorial .section{padding-block:60px}.editorial .travel-edit{padding-top:55px;padding-bottom:40px}}
@media(max-width:600px){.travel-intro{grid-template-columns:minmax(0,1fr) 135px;max-width:500px;gap:20px;margin-bottom:30px}.tour-story{grid-column:1/-1;grid-row:1;display:grid;grid-template-columns:minmax(0,1fr) 135px;column-gap:20px}.tour-story .tour-title{grid-column:1;grid-row:1;align-self:center;min-height:99px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;font-size:43px;transform:rotate(-4deg)}.tour-story .tour-title em{font-size:1.08em}.tour-story>p{grid-column:1;grid-row:2;margin-top:12px;font-size:11px}.nail-crew{grid-column:1/-1;grid-row:3;max-width:400px;justify-self:center;margin:26px 0 0;gap:5px}.travel-film{grid-column:2;grid-row:1;width:135px;align-self:start;margin-top:5px}.travel-film .film-frame{border-radius:70px 70px 6px 6px}.crew-member:hover .nail-character{transform:none}}
@media(max-width:400px){.tour-story .tour-title{font-size:37px}.travel-intro,.tour-story{grid-template-columns:minmax(0,1fr) 123px;column-gap:16px}.travel-film{width:123px}.campaign-message .campaign-tagline{font-size:13px}}
@media(prefers-reduced-motion:reduce){.site-loader,.has-intro .site-loader{display:none}.motion-ready .word-nails,.motion-ready .word-nails:after,.motion-ready .word-before,.motion-ready .word-males,.motion-ready .word-males:after,.motion-ready .wordmark-heart,.motion-ready .campaign-illustration,.crew-member,.tour-story.visible .tour-plane,.instax-collection.visible .instax-print,.editorial .course-art:before{animation:none}.campaign-illustration,.magnetic{translate:none;transition:none}.instax-print,.instax-print:hover{transform:none;transition:none}.crew-member .nail-character{transition:none}}

/* Keep the entire campaign inside the compact opening, including pointer movement. */
@media(min-width:801px){.campaign-illustration{height:calc(100% - 54px);object-fit:contain;object-position:right bottom}}

.photo-flag{display:inline-block;font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif;font-size:14px;line-height:1;margin-right:5px;vertical-align:1px;letter-spacing:0}

/* Give the travel crew clear space below the phone-sized film, even during its entrance. */
@media(max-width:600px){
  .travel-intro .travel-film{width:90%;margin-top:0;top:-18px;justify-self:end}
  .js-reveal .travel-film.reveal{transform:translateY(-8px)}
  .js-reveal .travel-film.reveal.visible{transform:translateY(0)}
}

/* Three compact, sealed previews. No catalogue or purchasing controls yet. */
.editorial .academy-teaser{padding-block:55px}
.academy-teaser .container{max-width:950px}
.teaser-heading{text-align:center;margin-bottom:30px}
.teaser-heading h2{font-size:clamp(35px,4vw,52px);letter-spacing:-2px}
.teaser-heading p{font-size:12px;color:#b49ba9;margin:13px 0 0}
.academy-teaser .course-teasers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;max-width:840px;margin-inline:auto}
.course-teaser{min-width:0}
.teaser-art{position:relative;display:flex;align-items:center;justify-content:center;height:205px;border-radius:12px;background:radial-gradient(ellipse at 50% 35%,#e6abc5,#bd7a9c);overflow:hidden}
.course-teaser:nth-child(2) .teaser-art{background:radial-gradient(ellipse at 50% 35%,#584851,#2a2028)}
.course-teaser:nth-child(3) .teaser-art{background:radial-gradient(ellipse at 50% 35%,#f5e5d0,#c4a881)}
.teaser-art:before{content:'';position:absolute;inset:23px;border:1px solid #ffffff38;border-radius:50%;transform:rotate(-25deg);animation:beauty-orbit 18s linear infinite;animation-play-state:paused}
.teaser-art.ambient-active:before{animation-play-state:running}
.mystery-book{position:relative;display:flex;align-items:center;justify-content:center;width:115px;height:154px;border-radius:3px 6px 6px 3px;border-left:7px solid #c68ba6;background:#f1c1d2;color:#53253e;box-shadow:-9px 12px 18px #21131b26,6px 0 0 #aa6686,9px 2px 0 #f7dfe9;transform:perspective(600px) rotateY(-13deg) rotateZ(-7deg);transition:transform .65s var(--ease)}
.mystery-book:before{content:'';position:absolute;inset:7px;border:1px solid #a65f7c55;border-radius:2px}
.course-teaser:nth-child(2) .mystery-book{background:#21151f;color:#edbfd1;border-left-color:#45313f;box-shadow:-9px 12px 18px #0b03093d,6px 0 0 #705165,9px 2px 0 #cfc1c9;transform:perspective(600px) rotateY(-10deg) rotateZ(6deg)}
.course-teaser:nth-child(3) .mystery-book{background:#f4e8d5;color:#795633;border-left-color:#ccb38c;box-shadow:-9px 12px 18px #3125152c,6px 0 0 #a78a60,9px 2px 0 #fff4e5}
.teaser-code{position:absolute;top:15px;left:16px;font-size:8px;letter-spacing:1px;opacity:.65}
.mystery-mark{font-family:'Italiana',Georgia,serif;font-size:78px;font-weight:400;line-height:1;transform:translateY(-5px)}
.teaser-seal{position:absolute;bottom:19px;left:-13px;right:-16px;padding:7px 2px;background:#6b314f;color:#ffedf5;text-align:center;font-size:6px;letter-spacing:1.8px;transform:rotate(-9deg);box-shadow:0 3px 6px #39162d22}
.course-teaser:nth-child(2) .teaser-seal{background:#c284a3;color:#261620}
.course-teaser:nth-child(3) .teaser-seal{background:#8a6a40;color:#fff7e9}
.teaser-caption{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:13px 5px 0;color:#e6c3d3}
.teaser-caption h3{font-size:19px;font-weight:400;letter-spacing:3px;line-height:1;margin:0}
.teaser-caption>span{font-family:'Italiana',Georgia,serif;font-size:22px;line-height:1}
@media(hover:hover){.course-teaser:hover .mystery-book{transform:perspective(600px) rotateY(-4deg) rotateZ(-2deg) translateY(-5px)}}
@media(max-width:800px){.editorial .academy-teaser{padding-block:40px}.teaser-heading{margin-bottom:25px}.teaser-heading h2{font-size:38px}.teaser-heading p{font-size:11px}.academy-teaser .course-teasers{gap:15px;max-width:650px}.teaser-art{height:165px}.mystery-book{width:95px;height:129px}.mystery-mark{font-size:62px}.teaser-seal{bottom:16px;left:-10px;right:-12px;letter-spacing:1.2px;font-size:5px;padding:6px 0}.teaser-code{top:13px;left:14px;font-size:7px}}
@media(max-width:500px){.academy-teaser .course-teasers{gap:11px;max-width:none}.teaser-heading h2{font-size:35px}.teaser-art{height:132px;border-radius:9px}.teaser-art:before{inset:12px}.mystery-book{width:68px;height:94px;border-left-width:5px;box-shadow:-5px 7px 11px #21131b26,4px 0 0 #aa6686,6px 1px 0 #f7dfe9}.mystery-book:before{inset:5px}.mystery-mark{font-size:48px}.teaser-code{font-size:6px;top:8px;left:9px;letter-spacing:0}.teaser-seal{font-size:4px;letter-spacing:.65px;padding:4px 0;bottom:10px;left:-7px;right:-8px}.teaser-caption{padding:11px 3px 0;gap:4px}.teaser-caption h3{font-size:16px;letter-spacing:2px}.teaser-caption>span{font-size:18px}}
@media(prefers-reduced-motion:reduce){.teaser-art:before{animation:none}.mystery-book,.course-teaser:hover .mystery-book{transform:none;transition:none}}

/* A complete menu, with a short featured selection and compact category filters. */
.service-menu .service-tabs{display:flex;flex-wrap:wrap;gap:8px;border:0;margin-bottom:8px}
.service-menu .service-tab{padding:10px 13px;border:1px solid var(--line);border-radius:30px;background:transparent;gap:7px;font-size:12px;line-height:1.2;white-space:nowrap;color:#715866;transition:background .25s,color .25s,border-color .25s}
.service-menu .service-tab span{font-size:9px;border:0;padding:0;border-radius:0;opacity:.65}
.service-menu .service-tab.active{background:var(--ink);border-color:var(--ink);color:#fff4f9}
.service-menu .service-tab.active:after{content:none}
.service-menu .service-tab:not(.active):hover{background:#f5e3ec;border-color:#cb9db3}
.service-item summary>span:first-child{min-width:0}
@media(max-width:500px){.service-menu .service-tabs{gap:7px}.service-menu .service-tab{padding:9px 11px;gap:6px;font-size:11px}.service-menu .service-tab span{font-size:8px}}
