*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:#fff;color:#12345c;font-family:Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased}button,input{font:inherit}a{color:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:.5}a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid #23734c;outline-offset:5px}header{max-width:1440px;margin:auto;padding:25px 5%;display:flex;align-items:center;justify-content:space-between;gap:25px;border-bottom:1px solid #e9edf1;font-size:12px}.brand-name{text-decoration:none;font-size:24px;font-weight:800;letter-spacing:-1px;display:flex;align-items:center;gap:12px}.brand-name span{max-width:130px;font-size:9px;line-height:1.5;letter-spacing:1px}.launch-label{color:#617083}.contact-link{text-decoration:none;border-bottom:1px solid #9aa8b7;padding-bottom:5px}.brand-hero{display:flex;justify-content:center;padding:34px 24px 0}.logo{display:block;width:min(550px,69vw);height:auto}.machine-section{max-width:1320px;margin:8px auto 0;position:relative;padding:0 4%}.scene-top{display:flex;justify-content:space-between;align-items:center;position:relative;z-index:1;padding:9px 0}.technical,.process{font-family:Consolas,'Courier New',monospace;font-size:10px;letter-spacing:1.8px;color:#6b7b8d}.pause{font-size:11px;border:0;background:transparent;color:#51677c;padding:8px}.pause span:first-child{display:inline-block;min-width:18px}.scene{height:360px;width:100%;position:relative}.scene canvas{display:block;width:100%;height:100%}.fallback{position:absolute;inset:30%;font-size:14px;line-height:1.5;text-align:center}.process{display:flex;gap:20px;align-items:center;max-width:850px;margin:-8px auto 0;font-size:9px}.process-line{height:1px;background:#dce3e8;flex:1;position:relative}.process-line:after{content:'›';position:absolute;right:-1px;top:-8px;font-size:13px}.coming-soon{text-align:center;padding:27px 20px 35px}.tricolore{display:flex;width:51px;height:3px;margin:0 auto 17px}.tricolore i{flex:1;background:#078047}.tricolore i:nth-child(2){background:#e7eaed}.tricolore i:last-child{background:#d41123}h1{font-size:clamp(32px,4.1vw,59px);letter-spacing:-2.4px;line-height:1.08;font-weight:500;margin:0 0 13px}h1 span{font-weight:750}p{line-height:1.6}.coming-soon p{font-size:14px;color:#6b7889;margin:0}.notify{max-width:1180px;margin:0 auto 48px;background:#f2f5f8;border:1px solid #e6ebf0;padding:35px 46px;display:grid;grid-template-columns:1fr 1.12fr;gap:70px}.notify h2{font-size:27px;font-weight:500;letter-spacing:-.8px;line-height:1.15;margin:0 0 14px}.notify-copy p{color:#627285;font-size:13px;max-width:330px;margin:0}.form-column{align-self:center}label{font-size:12px;display:block;margin-bottom:10px}.input-row{display:flex;border:1px solid #c9d3dd;background:white;padding:5px}.input-row input{background:#fff;border:0;min-width:0;flex:1;padding:12px;color:#173554;font-size:14px;border-radius:0}.input-row input::placeholder{color:#7b8897}.input-row button{background:#103561;color:#fff;border:0;padding:14px 22px;white-space:nowrap;font-size:13px}.input-row button:hover{background:#204979}.input-row button:active{transform:scale(.98)}.privacy{font-size:10px;color:#637184;margin:12px 0 0;line-height:1.6}.privacy button{font-size:inherit;padding:0;color:inherit;text-decoration:underline;background:none;border:0}#form-status{font-size:12px;color:#526a81;margin:6px 0 0}footer{max-width:1320px;padding:22px 4%;border-top:1px solid #e5eaf0;margin:auto;display:flex;justify-content:space-between;gap:20px;font-size:10px;color:#6a7889}footer a{text-decoration:none}dialog{border:1px solid #d3dce4;padding:40px;max-width:520px;width:calc(100% - 40px);color:#16385e;background:white}dialog::backdrop{background:#142a4777}dialog h2{font-size:26px;letter-spacing:-.8px}dialog p{font-size:14px;color:#52687d}.dialog-close{position:absolute;right:12px;top:8px;border:0;background:none;font-size:28px;color:#53677b}.loader{position:fixed;inset:0;z-index:20;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center}.loader[hidden]{display:none}.loader img{width:min(330px,65vw)}.loader p{font-size:12px;color:#6b7c8e;margin-top:20px}.loading-track{height:2px;background:#e4eaf0;width:180px;margin-top:30px;overflow:hidden}.loading-track span{display:block;background:#123d6b;width:40%;height:100%;animation:load 1.2s ease-in-out infinite}@keyframes load{from{transform:translateX(-100%)}to{transform:translateX(350%)}}@media(min-width:1500px){.scene{height:410px}.brand-hero{padding-top:40px}.logo{width:600px}}@media(max-width:800px){header{padding:18px 5%}.launch-label{display:none}.brand-hero{padding-top:30px}.logo{width:min(520px,88vw)}.scene{height:300px}.technical{font-size:8px;letter-spacing:1px}.pause{font-size:10px}.machine-section{margin-top:15px}.process{gap:10px;font-size:8px;margin:0 10px}.coming-soon{padding:27px 15px 32px}h1{letter-spacing:-1.4px}.coming-soon p{font-size:12px}.notify{margin:0 5% 30px;grid-template-columns:1fr;gap:25px;padding:26px}.notify h2 br{display:none}.notify h2{font-size:24px}.notify-copy p{max-width:100%}.input-row button{padding:13px 15px}footer{flex-wrap:wrap;padding:20px 5%;line-height:1.6}footer span:nth-child(2){display:none}}@media(max-width:420px){.scene{height:240px}.brand-name span{font-size:8px;max-width:105px}.contact-link{font-size:11px}.scene-top{padding:8px 0}.notify{padding:23px 18px}h1{font-size:32px}.input-row input{font-size:13px;padding:10px 6px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}

.languages{display:flex;align-items:center;gap:4px}.languages button{border:1px solid transparent;background:white;color:#52677e;display:flex;align-items:center;gap:5px;padding:7px 6px;font-size:10px;border-radius:3px}.languages button[aria-pressed=true]{border-color:#103561;background:#edf2f7;color:#103561}.flag{display:inline-block;width:21px;height:14px;border:1px solid #0002;flex-shrink:0}.flag-it{background:linear-gradient(90deg,#008c45 33.33%,white 33.33%,white 66.66%,#cd212a 66.66%)}.flag-es{background:linear-gradient(#aa151b 25%,#f1bf00 25%,#f1bf00 75%,#aa151b 75%)}.flag-en{background:linear-gradient(90deg,transparent 42%,#c8102e 42%,#c8102e 58%,transparent 58%),linear-gradient(transparent 36%,#c8102e 36%,#c8102e 64%,transparent 64%),linear-gradient(90deg,transparent 32%,white 32%,white 68%,transparent 68%),linear-gradient(transparent 24%,white 24%,white 76%,transparent 76%),linear-gradient(33deg,transparent 43%,white 43%,white 57%,transparent 57%),linear-gradient(-33deg,#012169 43%,white 43%,white 57%,#012169 57%)}@media(max-width:1100px){.launch-label{display:none}}@media(max-width:600px){header{flex-wrap:wrap;gap:12px}.languages{width:100%;justify-content:center;border-top:1px solid #edf0f4;padding-top:10px}.languages button{padding:8px 12px}.coming-soon h1{font-size:30px}.notify h2{line-height:1.3}}


.machine-section{isolation:isolate}.machine-section:before{content:"";position:absolute;inset:5% 0 0;background:url("assets/fm-logo.png") center 42% / 96% auto no-repeat;opacity:.085;pointer-events:none;z-index:-1}@media(max-width:600px){.machine-section:before{inset:0 -3%;background-size:110% auto;opacity:.09}}

.machine-section{overflow:clip}

/* Single fixed brand layer; the document scrolls over it. */
body{isolation:isolate}.fixed-brand{position:fixed;inset:0;z-index:-1;pointer-events:none;background:url('assets/fm-logo.png') center 43% / min(92vw,1250px) auto no-repeat;opacity:.12}.machine-section:before{content:none}.machine-section{margin-top:60px}.scene{height:440px}.coming-soon .languages{justify-content:center;margin:0 auto 24px;gap:8px;border:0;padding:0;width:auto}.coming-soon .languages button{background:rgba(255,255,255,.8);padding:8px 10px}.coming-soon .languages button[aria-pressed=true]{background:#edf2f7}.brand-name span{max-width:230px}.notify{background:rgba(242,245,248,.94)}header,footer{background:rgba(255,255,255,.82)}@media(max-width:800px){.machine-section{margin-top:40px}.scene{height:330px}.fixed-brand{background-size:115vw;background-position:center 40%}}@media(max-width:420px){.scene{height:280px}}

#form-status:empty{display:none}

/* Keep the subtitle readable over the fixed logo at every viewport size. */
.coming-soon > p{opacity:1;color:#12345c;font-weight:500;background:rgba(255,255,255,.92);width:fit-content;max-width:100%;margin:0 auto;padding:5px 12px;border-radius:3px}


/* Header announcement emphasis in every language. */
.launch-label{font-size:18px;font-weight:700;color:#12345c;line-height:1.35}


/* Launch countdown: total hours, fluid sizing for desktop and mobile. */
.countdown{text-align:center;padding:28px 16px 12px;background:rgba(255,255,255,.92)}
#countdown-title{margin:0 0 12px;font-size:16px;font-weight:700;color:#12345c}
.countdown-clock{display:flex;justify-content:center;align-items:flex-start;gap:clamp(10px,3vw,28px);color:#103561;font-variant-numeric:tabular-nums}
.countdown-clock div{display:flex;flex-direction:column;min-width:64px}
.countdown-clock strong{font-size:clamp(38px,6vw,64px);line-height:1.1;letter-spacing:-1px}
.countdown-clock span{font-size:11px;letter-spacing:1px;text-transform:uppercase;margin-top:7px}
.countdown-clock b{font-size:clamp(30px,5vw,50px);line-height:1.2;font-weight:400;color:#8998a7}
#countdown-date{font-size:11px;color:#52677e;margin:14px 0 0}
.countdown + .machine-section{margin-top:24px}

/* A single compact countdown row across all screen sizes. */
header.countdown-header{display:flex;justify-content:center;max-width:none;padding:16px 12px;gap:0}
.countdown-header .countdown{padding:0;background:transparent;max-width:100%}
.countdown-header .countdown-clock{gap:clamp(10px,3vw,26px)}
.countdown-header .countdown-clock div{min-width:clamp(48px,8vw,80px)}
.countdown-header .countdown-clock strong{font-size:clamp(28px,5vw,44px)}
.countdown-header .countdown-clock b{font-size:clamp(24px,4vw,36px)}
.countdown-header .countdown-clock span{font-size:clamp(9px,1.6vw,11px);margin-top:4px}

/* Words follow the annotated vertical positions within the kiln scene. */
.trade-message{position:absolute;inset:0;z-index:2;pointer-events:none;color:#103561;font-weight:800;letter-spacing:.09em;line-height:1;text-align:center}
.trade-message span{position:absolute;display:block;transform:translate(-50%,-50%);text-shadow:0 1px 12px rgba(255,255,255,.85)}
.trade-buy{left:48%;top:8%;font-size:clamp(30px,5.7vw,74px);opacity:.85}
.trade-and{left:49%;top:39%;font-size:clamp(21px,3.5vw,45px);opacity:.8}
.trade-sell{left:38%;top:83%;font-size:clamp(30px,5.7vw,74px);opacity:.85}
@media(max-width:600px){.trade-buy{top:7%}.trade-and{top:38%}.trade-sell{top:87%;left:38%}.trade-message{letter-spacing:.06em}}
/* The three words fade together from transparent to dark blue and back. */
@keyframes trade-fade{0%,100%{opacity:0}45%,55%{opacity:1}}
.trade-message span{animation:trade-fade 6s ease-in-out infinite}
@media(prefers-reduced-motion:reduce){.trade-message span{animation:none;opacity:.85}}

.input-row[data-email-state=valid]{border:2px solid #168044;background:#f3fbf6}
.input-row[data-email-state=invalid]{border:2px solid #ba2936;background:#fff5f5}
.email-validation{font-size:12px;margin:8px 0 0;line-height:1.4}
.email-validation:empty{display:none}
.email-validation[data-email-state=valid]{color:#126b38}
.email-validation[data-email-state=invalid]{color:#ad2230}

.kiln-fallback{display:none;width:100%;height:100%;object-fit:contain}.scene-unavailable .kiln-fallback{display:block}.scene-unavailable canvas{display:none}.scene-unavailable .fallback{inset:auto 10px 0;font-size:11px;background:#ffffffe8;padding:4px}.scene-unavailable .trade-message{z-index:2}

/* Validation stays inside the email field, with constant dimensions. */
.input-row{gap:6px;align-items:stretch}
.input-row[data-email-state=valid],.input-row[data-email-state=invalid]{border:1px solid #c9d3dd;background:#fff}
.input-row input{border:2px solid transparent;width:0}
.input-row[data-email-state=valid] input{border-color:#168044;background:#f3fbf6}
.input-row[data-email-state=invalid] input{border-color:#ba2936;background:#fff5f5}
.input-row input:focus-visible{outline:none;box-shadow:inset 0 0 0 1px #103561}
.email-validation,.email-validation:empty{display:block;min-height:2.8em;margin:8px 0 0;overflow-wrap:anywhere}
