/* Artelle ribbon reveal - intro overlay for the homepage.
   Every rule is scoped to #launch so it cannot touch the site's own styles. */
#launch{--pull:0;--ease:cubic-bezier(.76,0,.18,1);position:fixed;inset:0;z-index:999999;overflow:hidden;touch-action:pan-y;color:#f2eddf;font-family:Manrope,Arial,sans-serif}
#launch button{font:inherit;color:inherit;background:none;cursor:pointer;-webkit-tap-highlight-color:transparent}
#launch button:focus-visible{outline:2px solid #d7af67;outline-offset:8px}
#launch .panel{position:absolute;left:0;width:100%;height:50%;overflow:hidden;background:#080808;will-change:transform;transition:transform 1.7s var(--ease)}
#launch .top-panel{top:0;border-bottom:1px solid #dabc8317;transform-origin:center top}
#launch .bottom-panel{bottom:0;transform-origin:center bottom}
#launch .grain{position:absolute;inset:0;opacity:.055;pointer-events:none;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='.82' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23fff' filter='url(%23n)' opacity='.4' d='M0 0h180v180H0z'/%3E%3C/svg%3E")}
#launch .top-content{position:relative;height:100%;display:flex;flex-direction:column;align-items:center;text-align:center;padding:35px 20px 0}
#launch .launch-brand{position:absolute;top:24px;margin:0;font:38px 'Cormorant Garamond',Georgia,serif;letter-spacing:-2px}
#launch .eyebrow{position:absolute;bottom:calc(106px + clamp(36px,min(4.5vw,7.2vh),73px)*2.12 + 18px);left:0;right:0;margin:0;font-size:9px;font-weight:600;letter-spacing:4px;color:#c9b17e}
#launch .top-content h2{position:absolute;bottom:106px;left:18px;right:18px;margin:0;font:clamp(36px,min(4.5vw,7.2vh),73px)/1.06 'Cormorant Garamond',Georgia,serif;font-weight:400;letter-spacing:-1.7px}
#launch .top-content h2 em{font-weight:400;color:#dabc83}
#launch .tiny-star{position:absolute;bottom:77px;left:0;right:0;margin:0;font-size:15px;color:#dabc83}
#launch .bottom-content{text-align:center;padding:185px 20px 0}
#launch .bottom-content>p{font:italic 24px 'Cormorant Garamond',Georgia,serif;color:#d4cec1;margin:22px 0 29px}
#launch .instruction{display:flex;gap:18px;align-items:center;justify-content:center;font-size:8px;letter-spacing:3px;color:#c9b17e}
#launch .line{width:35px;height:1px;background:#dabc8355}
#launch .small-note{display:block;margin-top:15px;font-size:10px;color:#a29c90;letter-spacing:.5px}
#launch .launch-footer{position:absolute;bottom:30px;left:5%;right:5%;display:flex;align-items:center;justify-content:space-between;font-size:8px;letter-spacing:1.7px;color:#a29c90}
#launch .launch-footer button{border:0;color:#c9c1b0;font-size:10px;letter-spacing:1px;padding:10px}
#launch .ribbon-stage{position:absolute;top:50%;height:0;width:100%;z-index:2;perspective:1000px;filter:drop-shadow(0 14px 12px #0008);transition:transform 1s cubic-bezier(.7,0,.8,.2),opacity .4s .65s}
#launch .ribbon-band{position:absolute;top:-24px;left:-5%;width:110%;height:48px;background:linear-gradient(180deg,#8f5929 0%,#c89a59 7%,#f6deb0 19%,#e8c18a 35%,#bd894a 67%,#d5a263 88%,#8e5c2c 97%,#e4bd80);box-shadow:inset 0 1px #ffe5b1,inset 0 -1px #775126;transform:translateY(calc(var(--pull)*8px)) scaleY(calc(1 - var(--pull)*.15));transition:transform .15s ease-out}
#launch .ribbon-band:after{content:'';position:absolute;inset:3px 0;background:repeating-linear-gradient(0deg,transparent 0px,transparent 2px,#5631100e 3px)}
#launch .ribbon-band span{position:absolute;inset:0;background:linear-gradient(105deg,transparent 25%,#fff3 45%,transparent 65%);background-size:200% 100%;animation:ribbon-shimmer 5s ease-in-out infinite}
#launch .bow-wrap{position:absolute;left:50%;top:0;width:460px;height:268px;transform:translate(-50%,-48%);pointer-events:none;z-index:2}
#launch .bow{width:100%;height:100%;overflow:visible;transform:translateY(calc(var(--pull)*15px)) rotate(calc(var(--pull)*3deg));transition:transform .13s ease-out}
#launch .loop{transform-box:fill-box;transition:transform .65s var(--ease),opacity .4s .15s}
#launch .loop-left{transform-origin:right 80%;transform:scaleX(calc(1 - var(--pull)*.22))}
#launch .loop-right{transform-origin:left 80%;transform:scaleX(calc(1 + var(--pull)*.15))}
#launch .tails{transform-origin:50% 50%;transition:transform .7s ease,opacity .5s}
#launch .knot{transition:opacity .35s .25s}
#launch #pull{position:absolute;left:50%;top:5px;width:64px;height:151px;padding:62px 0 15px;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:6px;border:0;color:#573817;touch-action:none;cursor:grab;user-select:none;transform:translateX(-50%) translateY(calc(var(--pull)*85px));background:linear-gradient(90deg,#9b642e,#e0b477 17%,#f7dda7 38%,#dbad6b 64%,#b88343 91%,#e5bd81);box-shadow:inset 1px 0 #ffe5b1,inset -1px 0 #805024;clip-path:polygon(0 0,100% 0,100% 100%,50% 91%,0 100%);transition:transform .12s ease-out,opacity .3s}
#launch #pull:active{cursor:grabbing}
#launch .pull-label{font-size:8px;font-weight:700;line-height:1.55;text-align:center;letter-spacing:1.5px}
#launch .pull-arrow{font-size:24px;line-height:1;animation:ribbon-nudge-down 2.5s infinite}
#launch .flash{position:absolute;inset:49.8% 0;background:#f5e5c0;opacity:0;box-shadow:0 0 55px 10px #e9cd9270;pointer-events:none}
#launch.untying .loop-left{transform:scale(.04,.5) rotate(-18deg);opacity:0}
#launch.untying .loop-right{transform:translateY(80px) scale(.08,.5);opacity:0}
#launch.untying .tails{transform:translateY(120px) scaleX(.2);opacity:0}
#launch.untying .knot{opacity:0}
#launch.untying #pull{opacity:0}
#launch.untying .ribbon-stage{transform:translateY(110vh) rotate(8deg);transition-delay:.5s}
#launch.opening .top-panel{transform:translateY(-102%) rotateX(7deg)}
#launch.opening .bottom-panel{transform:translateY(102%) rotateX(-7deg)}
#launch.opening .flash{animation:ribbon-flash .8s ease-out forwards}
#launch.hidden{display:none!important}
.ribbon-sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;clip:rect(0,0,0,0);overflow:hidden}
html.ribbon-locked,html.ribbon-locked body{overflow:hidden!important}
@keyframes ribbon-shimmer{0%,100%{background-position:100% 0}50%{background-position:0 0}}
@keyframes ribbon-nudge-down{0%,70%,100%{transform:translateY(0)}85%{transform:translateY(5px)}}
@keyframes ribbon-flash{0%{opacity:0}20%{opacity:.8}100%{opacity:0}}
@media(max-width:650px){
#launch .top-content{padding:22px 18px 0}
#launch .launch-brand{top:20px;font-size:32px}
#launch .eyebrow{bottom:calc(85px + clamp(30px,min(10.5vw,6.3vh),42px)*2.12 + 18px);font-size:8px}
#launch .top-content h2{bottom:85px;font-size:clamp(30px,min(10.5vw,6.3vh),42px)}
#launch .tiny-star{bottom:60px}
#launch .ribbon-band{height:40px;top:-20px}
#launch .bow-wrap{width:330px;height:193px;left:50%}
#launch #pull{left:50%;top:4px;height:144px;width:58px;padding:58px 0 16px;gap:6px}
#launch .pull-label{font-size:8px;letter-spacing:1.4px}
#launch .pull-arrow{font-size:24px}
#launch .bottom-content{padding-top:172px}
#launch .bottom-content>p{font-size:21px;margin-top:15px;margin-bottom:23px}
#launch .instruction{font-size:7px;letter-spacing:2px}
#launch .launch-footer{bottom:17px}
#launch .launch-footer>span:nth-child(2){display:none}
}
@media(max-height:650px){
#launch .top-content{padding-top:15px}
#launch .launch-brand{font-size:28px}
#launch .tiny-star{display:none}
}
@media(max-height:700px){
#launch #pull{height:115px;padding-top:35px}
#launch .bottom-content{padding-top:128px}
#launch .bottom-content>p{font-size:19px;margin:12px 0 15px}
#launch .small-note{margin-top:10px}
#launch .launch-footer{bottom:8px}
}
@media(max-height:550px){
#launch .launch-brand{top:12px;font-size:25px}
#launch .top-content h2{bottom:90px;font-size:30px}
#launch .eyebrow{display:none}
#launch .tiny-star{display:none}
}
@media(prefers-reduced-motion:reduce){
#launch,#launch *,#launch *:before,#launch *:after{animation:none!important;transition-duration:.01ms!important;transition-delay:0s!important}
}
