/* MineSki public landing page. Shared header and footer remain in styles.css. */
.ms-landing {
    --landing-ink:#102f3f;
    --landing-blue:#187d9f;
    --landing-sky:#75cbd3;
    --landing-muted:#58727f;
    --landing-line:#d5e4e9;
    color:var(--landing-ink);
    background:#f5fafb;
}
.ms-landing-wrap {
    width:min(100% - 3rem,68rem);
    margin-inline:auto;
}
.ms-landing-progress {
    position:fixed;
    inset:0 0 auto;
    z-index:60;
    height:3px;
    pointer-events:none;
}
.ms-landing-progress span {
    display:block;
    width:100%;
    height:100%;
    transform:scaleX(0);
    transform-origin:left center;
    background:linear-gradient(90deg,#2689b0,#88dce6);
}
.ms-landing-hero {
    position:relative;
    overflow:hidden;
    isolation:isolate;
    color:#fff;
    background:#102f3f;
}
.ms-landing-hero::before {
    content:"";
    position:absolute;
    inset:0;
    z-index:-1;
    background-image:linear-gradient(180deg,rgba(3,20,43,.45),rgba(3,20,43,.61)),url(img/hero-forside.jpg);
    background-size:cover;
    background-position:center 43%;
}
.ms-landing-hero-inner {
    display:grid;
    grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);
    align-items:center;
    gap:2.5rem;
    min-height:36rem;
    padding-block:3.3rem;
}
.ms-landing-hero-copy h1 {
    max-width:40rem;
    margin:0 0 1.25rem;
    color:#fff;
    font-size:clamp(2.4rem,4.3vw,3.85rem);
    line-height:1.12;
    letter-spacing:-.045em;
    font-weight:750;
    text-wrap:balance;
    text-shadow:0 2px 15px rgba(0,10,25,.27);
}
.ms-landing-hero-copy p {
    max-width:34rem;
    color:#e9f4f8;
    font-size:clamp(1rem,1.4vw,1.125rem);
    line-height:1.56;
    text-shadow:0 1px 10px rgba(0,10,25,.28);
}
.ms-landing-hero-actions {
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:.65rem 1.25rem;
    margin-top:1.7rem;
}
.ms-landing-button {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:3rem;
    padding:.8rem 1.35rem;
    border-radius:.65rem;
    font-weight:800;
    text-decoration:none;
    transition:transform .2s,background-color .2s,box-shadow .2s;
}
.ms-landing-button:hover { transform:translateY(-2px); }
.ms-landing-button:focus-visible,.ms-landing-text-link:focus-visible,.ms-phone-controls button:focus-visible {
    outline:3px solid #f8b074;
    outline-offset:3px;
}
.ms-landing-button-light {
    color:#103b61;
    background:#fff;
    box-shadow:0 12px 28px rgba(0,15,37,.2);
}
.ms-landing-button-light:hover { background:#e9f8fc; }
.ms-landing-text-link {
    color:#effbff;
    font-size:.9rem;
    font-weight:750;
    text-decoration:underline;
    text-decoration-color:#a3dce8;
    text-underline-offset:.32rem;
}
.ms-landing-text-link:hover { color:#fff; }

/* The phone is a product illustration, with user controls immediately below it. */
.ms-phone-showcase {
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:1.1rem;
    min-width:0;
    width:min(100%,22rem);
    margin-inline:auto;
}
.ms-phone-scene {
    position:relative;
    isolation:isolate;
    display:grid;
    place-items:center;
    width:100%;
    min-height:31rem;
    perspective:1100px;
}
.ms-phone {
    position:relative;
    width:249px;
    height:476px;
    border:7px solid #061d37;
    border-radius:35px;
    background:#061d37;
    color:var(--landing-ink);
    box-shadow:0 31px 64px rgba(0,13,32,.5),-11px 9px 22px rgba(8,90,149,.22),inset 1px 0 1px #7fb7d8;
    transform:rotate(-3deg) rotateY(var(--ms-phone-tilt-y,0deg)) rotateX(var(--ms-phone-tilt-x,0deg));
    transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s;
    will-change:transform;
}
.ms-phone-scene:hover .ms-phone {
    transform:translateY(-5px) rotate(-1deg) rotateY(var(--ms-phone-tilt-y,0deg)) rotateX(var(--ms-phone-tilt-x,0deg));
    box-shadow:0 38px 73px rgba(0,13,32,.54),-11px 12px 27px rgba(8,90,149,.25),inset 1px 0 1px #7fb7d8;
}
.ms-phone::before,.ms-phone::after {
    content:"";
    position:absolute;
    width:2px;
    border-radius:2px;
    background:linear-gradient(#85b7d0,#1d5780);
}
.ms-phone::before { left:-9px;top:84px;height:39px; }
.ms-phone::after { right:-9px;top:128px;height:48px; }
.ms-phone-screen {
    position:absolute;
    inset:3px;
    overflow:hidden;
    border-radius:26px;
    background:linear-gradient(164deg,#f8fcff,#eaf5f8);
}
.ms-phone-screen::before {
    content:"";
    position:absolute;
    z-index:8;
    top:0;
    left:50%;
    width:87px;
    height:16px;
    transform:translateX(-50%);
    border-radius:0 0 10px 10px;
    background:#061d37;
}
.ms-phone-status {
    position:absolute;
    z-index:7;
    top:8px;
    left:16px;
    right:14px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    color:#234d63;
    font-size:.6rem;
    font-weight:850;
}
.ms-phone-status-icons { display:flex;align-items:end;gap:3px;height:9px; }
.ms-phone-status-icons i { display:block;width:4px;height:5px;border-radius:1px;background:#234d63; }
.ms-phone-status-icons i:nth-child(2) { height:7px; }
.ms-phone-status-icons i:nth-child(3) { width:10px;height:6px;border:1px solid #234d63;background:linear-gradient(90deg,#234d63 65%,transparent 65%); }
.ms-phone-appbar {
    position:absolute;
    z-index:5;
    top:28px;
    left:0;
    right:0;
    height:45px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding-inline:16px;
    border-bottom:1px solid #e0ebee;
    background:rgba(255,255,255,.87);
}
.ms-phone-brand { display:flex;align-items:center;color:#103d56;font-weight:900;font-size:1rem;letter-spacing:-.04em; }
.ms-phone-brand img { width:18px;height:18px;margin-right:5px;object-fit:contain; }
.ms-phone-brand em { color:#2a9fba;font-style:normal; }
.ms-phone-menu { color:#7091a0;font-size:.9rem;letter-spacing:.12rem; }
.ms-phone-step {
    position:absolute;
    inset:74px 0 20px;
    display:flex;
    flex-direction:column;
    align-items:stretch;
    padding:20px 18px 12px;
    opacity:0;
    transform:translateX(16px) scale(.985);
    filter:blur(2px);
    transition:opacity .48s,transform .48s cubic-bezier(.2,.75,.2,1),filter .48s;
    pointer-events:none;
}
.ms-phone-step.is-active { opacity:1;transform:none;filter:none; }
.ms-phone-eyebrow {
    display:flex;
    justify-content:space-between;
    gap:5px;
    margin-bottom:10px;
    color:#1686a6;
    font-size:.5rem;
    font-weight:900;
    letter-spacing:.1em;
    white-space:nowrap;
}
.ms-phone-eyebrow b { color:#678696;font-size:.55rem;letter-spacing:normal; }
.ms-phone-heading { color:#103b56;font-size:1.25rem;line-height:1.2;letter-spacing:-.045em; }
.ms-phone-intro { color:#607d8d;font-size:.7rem;line-height:1.4;margin-top:4px; }
.ms-phone-foot {
    display:flex;
    align-items:center;
    justify-content:center;
    gap:6px;
    margin-top:auto;
    padding-top:8px;
    color:#648696;
    font-size:.62rem;
    font-weight:650;
    text-align:center;
}
.ms-phone-foot i { width:6px;height:6px;border-radius:50%;background:#24a8c5;box-shadow:0 0 0 3px rgba(36,168,197,.14); }
.ms-phone-scan-stage {
    position:relative;
    display:grid;
    place-items:center;
    height:217px;
    margin:9px -18px 0;
    background:radial-gradient(circle,#d5eaf0,#eaf5f7 68%);
}
.ms-phone-scan-stage::before,.ms-phone-scan-stage::after {
    content:"";
    position:absolute;
    width:192px;
    height:192px;
    border:1px solid rgba(48,144,179,.14);
    border-radius:50%;
}
.ms-phone-scan-stage::after { width:224px;height:224px; }
.ms-phone-step[data-ms-phone-step="0"] .ms-phone-scan-stage { margin-block:auto; }
.ms-phone-scan-window {
    position:relative;
    z-index:1;
    display:grid;
    place-items:center;
    width:174px;
    height:174px;
    overflow:hidden;
    border:2px solid rgba(20,129,179,.45);
    border-radius:16px;
    background:#fff;
    box-shadow:0 15px 26px rgba(24,91,130,.16),inset 0 0 0 9px #fff;
}
.ms-phone-scan-window svg { width:99px;height:99px; }
.ms-phone-scan-beam {
    position:absolute;
    left:12px;
    right:12px;
    top:12%;
    height:2px;
    background:#17bad2;
    box-shadow:0 0 8px #31d2e3,0 10px 28px 14px rgba(42,195,225,.18);
}
.ms-phone-step.is-active .ms-phone-scan-beam { animation:ms-scan-sweep 2.4s ease-in-out infinite alternate; }
@keyframes ms-scan-sweep { to { top:84%; } }
.ms-phone-form {
    display:grid;
    gap:8px;
    margin-top:18px;
    padding:12px 12px 10px;
    border:1px solid #d9e9ed;
    border-radius:13px;
    background:#fff;
    box-shadow:0 8px 20px rgba(21,78,119,.08);
}
.ms-phone-ski { display:flex;align-items:center;gap:8px;padding-bottom:8px;border-bottom:1px solid #e4eef0; }
.ms-phone-ski-mark { display:grid;place-items:center;width:30px;height:32px;border-radius:8px;background:#e6f6f8;color:#1889a6; }
.ms-phone-ski-mark svg { width:18px;height:23px;fill:none;stroke:currentColor;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round; }
.ms-phone-ski strong,.ms-phone-ski small { display:block; }
.ms-phone-ski strong { font-size:.68rem; }
.ms-phone-ski small { color:#6b8795;font-size:.58rem; }
.ms-phone-field { display:flex;justify-content:space-between;gap:8px;padding:4px 0;border-bottom:1px solid #edf2f3;font-size:.62rem; }
.ms-phone-field > span { color:#688695; }
.ms-phone-field strong { color:#2a5267;font-size:.62rem;text-align:right; }
.ms-phone-save-button { display:block;margin-top:4px;padding:7px 5px;border-radius:7px;background:#103d56;color:#fff;font-size:.62rem;font-weight:800;text-align:center; }
.ms-phone-step.is-active .ms-phone-field { animation:ms-form-rise .48s both; }
.ms-phone-step.is-active .ms-phone-field:nth-of-type(2) { animation-delay:.14s; }
.ms-phone-step.is-active .ms-phone-field:nth-of-type(3) { animation-delay:.27s; }
.ms-phone-step.is-active .ms-phone-field:nth-of-type(4) { animation-delay:.4s; }
@keyframes ms-form-rise { from { opacity:0;transform:translateY(8px); } to { opacity:1;transform:none; } }
.ms-phone-saved {
    display:flex;
    flex-direction:column;
    align-items:center;
    margin-top:19px;
    padding:15px 12px 10px;
    border:1px solid #d9e9ed;
    border-radius:13px;
    background:#fff;
    box-shadow:0 8px 20px rgba(21,78,119,.08);
}
.ms-phone-check { display:grid;place-items:center;width:43px;height:43px;margin-bottom:10px;border-radius:50%;background:#e3f8f1;color:#17967a;transform:scale(.7); }
.ms-phone-step.is-active .ms-phone-check { animation:ms-save-pop .55s cubic-bezier(.2,1.5,.3,1) .15s forwards; }
.ms-phone-check svg { width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:37;stroke-dashoffset:37; }
.ms-phone-step.is-active .ms-phone-check svg { animation:ms-draw-check .45s ease .45s forwards; }
@keyframes ms-save-pop { to { transform:scale(1); } }
@keyframes ms-draw-check { to { stroke-dashoffset:0; } }
.ms-phone-saved > strong { color:#153d55;font-size:.86rem; }
.ms-phone-saved > small { color:#6b8696;font-size:.62rem;margin:3px 0 12px; }
.ms-phone-saved-row { display:flex;justify-content:space-between;width:100%;gap:4px;padding:7px 1px;border-top:1px solid #e9f0f2;font-size:.61rem; }
.ms-phone-saved-row span { color:#6a8796; }
.ms-phone-saved-row b { color:#274e63;text-align:right; }
.ms-phone-home { position:absolute;left:50%;bottom:8px;width:74px;height:3px;transform:translateX(-50%);border-radius:4px;background:#9bb5c0; }
.ms-phone-controls { display:flex;justify-content:center;gap:7px;flex-wrap:wrap; }
.ms-landing .ms-phone-controls button {
    min-height:2rem;
    padding:.48rem .7rem;
    border:1px solid rgba(169,226,241,.34);
    border-radius:999px;
    background:rgba(7,35,66,.58);
    box-shadow:none;
    color:#e0f1f5 !important;
    font-size:.68rem;
    font-weight:750;
    line-height:1.1;
    white-space:nowrap;
}
.ms-landing .ms-phone-controls button span { color:#87d7e7;font-weight:900; }
.ms-landing .ms-phone-controls button.is-active { color:#103d56 !important;background:#f8fdff;border-color:#fff;box-shadow:0 4px 15px rgba(0,12,32,.18); }
.ms-landing .ms-phone-controls button.is-active span { color:#158eaf; }
.ms-landing .ms-phone-controls button:hover { transform:translateY(-2px);border-color:#b5eaf1; }

/* Useful information takes the place of the repeated QR/PIN explanation. */
.ms-landing-value { padding:5.5rem 0 6rem;background:#edf5f7; }
.ms-landing-section-head { max-width:47rem;margin-bottom:2.5rem; }
.ms-landing-kicker,.ms-landing-small-kicker { color:#197d9b;font-size:.7rem;font-weight:900;letter-spacing:.13em;text-transform:uppercase; }
.ms-landing h2 { margin:.7rem 0 .95rem;color:#103b56;font-size:clamp(1.95rem,3.3vw,2.85rem);line-height:1.12;letter-spacing:-.04em;font-weight:800;text-wrap:balance; }
.ms-landing-section-head p,.ms-landing-team-copy p { color:#526f7d;font-size:1rem;line-height:1.65; }
.ms-landing-value-grid { display:grid;grid-template-columns:.92fr 1.08fr;align-items:start;gap:3.15rem; }
.ms-landing-value-list { display:grid;gap:1.6rem; }
.ms-landing-value-item { padding-left:1.2rem;border-left:3px solid #58bfd2; }
.ms-landing-value-item h3 { margin:0 0 .35rem;color:#163f59;font-size:1.1rem;font-weight:800;letter-spacing:-.02em; }
.ms-landing-value-item p { color:#587482;font-size:.9rem;line-height:1.6; }
.ms-landing-history,.ms-landing-team-table {
    background:#fff;
    border:1px solid #d5e5e9;
    border-radius:1.1rem;
    box-shadow:0 18px 45px rgba(14,55,79,.08);
}
.ms-landing-history { padding:1.5rem; }
.ms-landing-small-kicker { display:block;margin-bottom:1rem; }
.ms-landing-history-top { display:flex;align-items:center;gap:.75rem;padding-bottom:1.1rem;border-bottom:1px solid #e2ecef; }
.ms-landing-history-top strong,.ms-landing-history-top small { display:block; }
.ms-landing-history-top strong { font-size:1rem; }
.ms-landing-history-top small { color:#678493;font-size:.72rem; }
.ms-landing-ski-icon { display:grid;place-items:center;flex:none;width:2.55rem;height:2.65rem;border:1px solid #cde4e9;border-radius:.6rem;background:#eaf6f8;color:#1a8dac; }
.ms-landing-ski-icon svg { width:1.5rem;height:1.75rem;fill:none;stroke:currentColor;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round; }
.ms-landing-history-list { position:relative;padding-left:1.1rem; }
.ms-landing-history-list::before { content:"";position:absolute;top:.3rem;bottom:.3rem;left:.25rem;width:1px;background:#d0e8ed; }
.ms-landing-history-line { position:absolute;top:.3rem;bottom:.3rem;left:.19rem;width:3px;border-radius:5px;background:#2cb3ca;transform:scaleY(0);transform-origin:top center; }
.ms-landing-history-row { display:grid;grid-template-columns:3.8rem 1fr;gap:.8rem;padding:.95rem 0;border-bottom:1px solid #e8eff1; }
.ms-landing-history-row:last-child { border-bottom:0;padding-bottom:0; }
.ms-landing-history-row > span { color:#718b97;font-size:.73rem;font-weight:700; }
.ms-landing-history-row strong,.ms-landing-history-row small { display:block; }
.ms-landing-history-row strong { color:#1a405a;font-size:.82rem; }
.ms-landing-history-row small { margin-top:.18rem;color:#678391;font-size:.72rem;line-height:1.4; }

.ms-landing-team { padding:5.7rem 0;background:#f8fbfc; }
.ms-landing-team-inner { display:grid;grid-template-columns:.95fr 1.05fr;align-items:center;gap:3.5rem; }
.ms-landing-team-copy h2 { max-width:34rem; }
.ms-landing-team-copy p { max-width:35rem; }
.ms-landing-team-table { padding:1.45rem; }
.ms-landing-team-head { display:flex;justify-content:space-between;align-items:center;gap:1rem;padding-bottom:.95rem;border-bottom:1px solid #e1ebee; }
.ms-landing-team-head strong,.ms-landing-team-head small { display:block; }
.ms-landing-team-head strong { color:#163e57;font-size:1rem; }
.ms-landing-team-head small { color:#6b8794;font-size:.7rem; }
.ms-landing-team-row { display:flex;align-items:center;gap:.8rem;padding:.8rem .1rem;border-bottom:1px solid #e8eff1; }
.ms-landing-team-row:last-child { padding-bottom:0;border:0; }
.ms-landing-team-row .ms-landing-ski-icon { width:2.3rem;height:2.35rem; }
.ms-landing-team-row .ms-landing-ski-icon svg { width:1.3rem;height:1.55rem; }
.ms-landing-team-row strong,.ms-landing-team-row small { display:block; }
.ms-landing-team-row strong { color:#1c4158;font-size:.8rem; }
.ms-landing-team-row small { color:#6a8594;font-size:.68rem; }
.ms-landing-owner { margin-left:auto;color:#3b6376;font-size:.72rem;text-align:right; }
.ms-landing-closing { padding:4.6rem 1.5rem 5rem;text-align:center;background:#e3f1f4; }
.ms-landing-closing > div { max-width:48rem;margin:auto; }
.ms-landing-closing h2 { margin-top:0; }
.ms-landing-closing p { max-width:37rem;margin:0 auto 1.45rem;color:#526f7d;font-size:1rem;line-height:1.55; }
.ms-landing-button-primary { color:#fff;background:#103d56; }
.ms-landing-button-primary:hover { color:#fff;background:#1b5876; }

@media(max-width:860px) {
    .ms-landing-hero-inner,.ms-landing-value-grid,.ms-landing-team-inner { grid-template-columns:1fr; }
    .ms-landing-hero-inner { gap:1.5rem;padding-block:3rem 3.6rem; }
    .ms-landing-hero-copy h1 { max-width:38rem; }
    .ms-landing-value-grid { gap:2.5rem; }
    .ms-landing-team-inner { gap:2.5rem; }
    .ms-phone-showcase { margin-inline:auto; }
}
@media(max-width:480px) {
    .ms-landing-wrap { width:calc(100% - 2rem); }
    .ms-landing-hero-copy h1 { font-size:clamp(2.15rem,9vw,2.75rem); }
    .ms-landing-hero-copy p { font-size:1rem; }
    .ms-landing-hero-actions { align-items:flex-start;flex-direction:column; }
    .ms-phone-scene { min-height:30rem; }
    .ms-landing-value,.ms-landing-team { padding-block:4rem; }
    .ms-landing-history,.ms-landing-team-table { padding:1.05rem; }
    .ms-landing-history-row { grid-template-columns:3.2rem 1fr;gap:.55rem; }
    .ms-landing-owner { max-width:5rem;font-size:.64rem; }
}
@media(prefers-reduced-motion:reduce) {
    .ms-landing-progress { display:none; }
    .ms-phone,.ms-phone-scene:hover .ms-phone,.ms-phone-step,.ms-landing-button { transition:none;transform:none; }
    .ms-phone-step.is-active .ms-phone-scan-beam,.ms-phone-step.is-active .ms-phone-field,.ms-phone-step.is-active .ms-phone-check,.ms-phone-step.is-active .ms-phone-check svg { animation:none; }
    .ms-phone-check { transform:none; }
    .ms-phone-check svg { stroke-dashoffset:0; }
    .ms-landing-history-line { transform:none; }
}
