/* Mastercraft Sync: link page, linked PCs, download button states */
.mcs-main{min-height:100vh;display:grid;place-items:center;padding:120px var(--gutter) 70px}
.mcs-card{width:min(560px,100%);text-align:center;padding:40px 34px 32px;display:grid;justify-items:center;gap:14px}
.mcs-card__ic{width:68px;height:68px;border-radius:14px;overflow:hidden;box-shadow:0 0 0 1px #000,0 0 0 3px #B8893A,0 0 0 4px #4a2c0c,0 0 30px -4px rgba(127,224,255,.6)}
.mcs-card__ic .wicon{width:100%;height:100%;border-radius:0}
.mcs-card__t{font-size:clamp(1.6rem,4.6vw,2.2rem);color:var(--gold-hi)}
.mcs-card__l{color:var(--ink-soft);max-width:44ch}
.mcs-card__l b{color:var(--ink)}
.mcs-card__s{color:var(--ink-dim);font-size:.88rem}
.mcs-card__btns{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-top:6px}
.mcs-code{font-family:var(--f-display);font-weight:700;font-size:clamp(1.8rem,7vw,2.6rem);letter-spacing:.22em;padding:.35em .9em .35em 1.1em;border-radius:12px;color:var(--rune);
  background:radial-gradient(circle at 50% 30%,rgba(127,224,255,.12),rgba(0,0,0,.35));box-shadow:inset 0 0 0 1px rgba(127,224,255,.4),0 0 0 1px #000,0 0 26px -8px rgba(127,224,255,.7)}
.mcs-note{color:var(--q-yellow);font-size:.86rem;margin:0}
.mcs-devs{display:grid;gap:8px;margin-top:4px;padding-top:12px;border-top:1px solid rgba(90,62,20,.6);width:100%;text-align:left}
.mcs-devs__h{font-family:var(--f-display);font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-dim)}
.mcs-devs__h small{color:var(--gold);font-size:inherit;margin-left:4px}
.mcs-devs--card{border-top:0;padding-top:0}
.mcs-dev{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:10px 12px;border-radius:10px;background:rgba(0,0,0,.28);box-shadow:inset 0 0 0 1px rgba(90,62,20,.7)}
.mcs-dev__ic{width:34px;height:34px;display:grid;place-items:center;border-radius:8px;color:var(--rune);background:rgba(127,224,255,.07);box-shadow:inset 0 0 0 1px rgba(127,224,255,.3)}
.mcs-dev__ic svg{width:20px;height:20px}
.mcs-dev__t{min-width:0}
.mcs-dev__t b{display:block;color:var(--ink);font-size:.95rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mcs-dev__t small{display:block;color:var(--ink-dim);font-size:.78rem;line-height:1.35}
.mcs-dev__x{padding:.55em .9em!important;font-size:.72rem!important}
.upcard__dl[disabled],.syncapp__btn[disabled]{opacity:.55;cursor:not-allowed;filter:grayscale(.4)}
@media (max-width:420px){
  .mcs-card{padding:34px 18px 26px}
  .mcs-dev{grid-template-columns:auto 1fr}
  .mcs-dev__x{grid-column:1/-1;justify-content:center}
  .mcs-card__btns .btn{flex:1 1 100%;justify-content:center}
}

/* "Unknown publisher" help + file fingerprint: one small line under the button */
.syncapp__trust{grid-column:1/-1}
.mcs-trustrow{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:6px 14px;margin-top:-2px}
.mcs-trust{flex:1 1 auto;min-width:0;font-size:.78rem;line-height:1.4;color:var(--ink-dim)}
.mcs-trust summary{cursor:pointer;list-style:none;display:inline-flex;align-items:center;gap:7px;padding:3px 0;transition:color .2s}
.mcs-trust summary::-webkit-details-marker{display:none}
.mcs-trust summary:hover,.mcs-trust[open] summary{color:var(--ink-soft)}
.mcs-trust__q{flex:none;display:grid;place-items:center;width:15px;height:15px;border-radius:50%;font:700 .62rem/1 var(--f-display);color:var(--gold-ink);background:radial-gradient(circle at 35% 30%,var(--gold-hi),var(--gold) 55%,var(--gold-lo));box-shadow:0 0 0 1px #000,0 0 8px -2px rgba(233,181,76,.6)}
.mcs-trust summary b{color:var(--gold);font-weight:700}
.mcs-trust__body{display:grid;gap:8px;margin:8px 0 2px;padding:10px;border-radius:10px;background:rgba(0,0,0,.25);box-shadow:inset 0 0 0 1px rgba(90,62,20,.7)}
.mcs-trust__body p{margin:0;font-size:.76rem;color:var(--ink-dim)}
.mcs-ss{display:grid;gap:4px;max-width:300px;padding:10px 12px;border-radius:3px;background:#0f5ea8;color:#fff;font:400 .68rem/1.35 "Segoe UI",system-ui,sans-serif;box-shadow:0 0 0 1px #000,0 8px 18px -10px rgba(0,0,0,.8)}
.mcs-ss b{font-weight:600;font-size:.86rem}
.mcs-ss u{color:#fff;font-weight:600;outline:2px solid var(--q-yellow);outline-offset:2px;justify-self:start;border-radius:2px}
.mcs-ss i{font-style:normal;opacity:.85}
.mcs-ss em{font-style:normal;display:flex;gap:6px;justify-content:flex-end}
.mcs-ss em span{padding:2px 9px;border:1px solid rgba(255,255,255,.7)}
.mcs-ss em span:first-child{outline:2px solid var(--q-yellow);outline-offset:2px}
.mcs-disclaim{flex:1 1 100%;margin:2px 0 0;font-size:.68rem;line-height:1.45;color:var(--ink-dim)}
.mcs-disclaim a{color:var(--ink-soft);text-decoration:underline;text-decoration-color:rgba(233,181,76,.4);text-underline-offset:2px}
.mcs-disclaim a:hover{color:#FFE19A}
.mcs-sha{position:relative;flex:none;display:inline-flex;align-items:center;gap:6px;padding:2px 9px;border:0;border-radius:99px;cursor:copy;font:inherit;font-size:.68rem;color:var(--ink-dim);background:rgba(0,0,0,.3);box-shadow:inset 0 0 0 1px rgba(90,62,20,.8);transition:box-shadow .2s,color .2s}
.mcs-sha:hover{color:var(--ink-soft);box-shadow:inset 0 0 0 1px rgba(233,181,76,.5)}
.mcs-sha span{font-family:var(--f-display);font-size:.9em;letter-spacing:.1em;color:var(--gold-lo)}
.mcs-sha code{font-size:1em;color:inherit;letter-spacing:.02em}
.mcs-sha em{position:absolute;inset:0;display:grid;place-items:center;border-radius:inherit;font-style:normal;font-family:var(--f-display);letter-spacing:.1em;color:var(--gold-ink);background:var(--gold);opacity:0;transition:opacity .2s}
.mcs-sha.is-copied em{opacity:1}
/* The by-hand upload card for players without a plan: same card, grey and locked */
.upcard--off{background:linear-gradient(180deg,#151210,#0c0a08)!important}
.upcard--off .upcard__dim{display:flex;flex-direction:column;gap:12px;filter:grayscale(1);opacity:.5;pointer-events:none;user-select:none}
.upcard--off .upcard__zone{border-color:rgba(160,160,160,.3)}
.upcard__offbtn{filter:grayscale(1);opacity:.45;cursor:not-allowed;box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 0 0 1px #333!important}
.upcard__offbtn:hover{transform:none!important;filter:grayscale(1)!important}
.upcard__offbtn::after{display:none}
.upcard--off .upcard__link{color:var(--gold-hi)}
/* The drop zone fills the card (no empty gap), with a rune seal in the middle */
.upcard--drop{gap:14px}
.upcard--drop .upcard__dim{flex:1 1 auto}
.upcard--drop .upcard__zone{position:relative;flex:1 1 auto;min-height:150px;flex-direction:column;gap:6px;padding:22px 16px;text-align:center;
  background:radial-gradient(60% 70% at 50% 45%,rgba(127,224,255,.09),transparent 70%),rgba(0,0,0,.22);border:1px solid rgba(127,224,255,.22);
  box-shadow:inset 0 0 0 4px rgba(0,0,0,.25),inset 0 0 30px -10px rgba(127,224,255,.25)}
.upcard--drop .upcard__zone::before,.upcard--drop .upcard__zone::after{content:"";position:absolute;width:18px;height:18px;border:2px solid rgba(233,181,76,.55);pointer-events:none}
.upcard--drop .upcard__zone::before{top:7px;left:7px;border-right:0;border-bottom:0;border-radius:6px 0 0 0}
.upcard--drop .upcard__zone::after{bottom:7px;right:7px;border-left:0;border-top:0;border-radius:0 0 6px 0}
.upcard__zic{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;margin-bottom:4px;color:var(--rune);
  background:radial-gradient(circle at 40% 35%,rgba(127,224,255,.18),rgba(0,0,0,.5));box-shadow:0 0 0 1px #000,0 0 0 2px rgba(184,137,58,.8),0 0 22px -4px rgba(127,224,255,.55);animation:mcsSeal 3.2s ease-in-out infinite}
.upcard__zic svg{width:24px!important;height:24px!important}
.upcard--drop .upcard__zone span{font-family:var(--f-display);font-weight:700;font-size:.95rem;letter-spacing:.04em;color:var(--ink)}
.upcard--drop .upcard__zone small{font-size:.78rem;color:var(--ink-dim)}
.upcard--drop.is-over .upcard__zic{animation:none;transform:scale(1.08);box-shadow:0 0 0 1px #000,0 0 0 2px var(--gold),0 0 30px 0 rgba(127,224,255,.7)}
.upcard--off .upcard__zone{border-color:rgba(160,160,160,.25)}
.upcard--off .upcard__zic{animation:none;color:var(--ink-dim)}
@keyframes mcsSeal{50%{box-shadow:0 0 0 1px #000,0 0 0 2px rgba(233,181,76,.9),0 0 30px 0 rgba(127,224,255,.55)}}
@media (prefers-reduced-motion:reduce){.upcard__zic{animation:none}}
@media (max-width:900px){.upcard--drop .upcard__zone{min-height:130px}}
/* A small picture of the app in the Sync card, until a PC is linked (fills the card, no empty gap) */
.upcard--sync{gap:14px}
.mcs-mock{flex:1 1 auto;position:relative;display:grid;place-items:center;min-height:150px;padding:18px 12px 30px;border-radius:12px;overflow:hidden;
  background:radial-gradient(70% 80% at 50% 30%,rgba(255,122,46,.08),transparent 70%),linear-gradient(180deg,rgba(0,0,0,.15),rgba(0,0,0,.4));box-shadow:inset 0 0 0 1px rgba(90,62,20,.6)}
.mcs-mock__win{width:min(320px,100%);border-radius:8px;padding:8px 10px 10px;display:grid;gap:6px;background:linear-gradient(180deg,#22170F,#140d08);
  box-shadow:0 0 0 1px #000,0 0 0 2px #B8893A,0 0 0 3px #4a2c0c,0 16px 30px -12px rgba(0,0,0,.9);transform:rotate(-1.2deg);animation:mcsFloat 6s ease-in-out infinite}
.mcs-mock__bar{display:flex;align-items:center;gap:6px;padding-bottom:6px;border-bottom:1px solid rgba(233,181,76,.25)}
.mcs-mock__mark svg,.mcs-mock__tray svg{width:18px;height:18px;display:block}
.mcs-mock__bar b{font:700 .74rem/1 var(--f-display);letter-spacing:.06em;text-transform:uppercase;color:var(--gold-hi)}
.mcs-mock__bar small{font:700 .58rem/1 var(--f-display);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-dim)}
.mcs-mock__bar i{margin-left:auto;font-style:normal;color:var(--ink-dim);font-size:.8rem}
.mcs-mock__row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 8px;border-radius:6px;background:rgba(0,0,0,.3);box-shadow:inset 0 0 0 1px rgba(90,62,20,.7)}
.mcs-mock__row span{display:grid;line-height:1.15}
.mcs-mock__row b{font-size:.76rem;color:var(--gold-hi)}
.mcs-mock__row small{font-size:.62rem;color:var(--ink-dim)}
.mcs-mock__row em{font-style:normal;font-size:.64rem;font-weight:700;display:inline-flex;align-items:center;gap:5px;white-space:nowrap}
.mcs-mock__row em::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;box-shadow:0 0 8px currentColor}
.mcs-mock__row .is-ok{color:var(--q-green)}
.mcs-mock__row .is-go{color:var(--rune)}
.mcs-mock__row .is-go::before{animation:glowp 1.2s infinite}
.mcs-mock__clock{position:absolute;right:10px;bottom:7px;display:flex;align-items:center;gap:8px;font-size:.62rem;color:var(--ink-dim);padding:3px 8px;border-radius:6px;background:rgba(0,0,0,.45)}
.mcs-mock__tray svg{width:13px;height:13px}
@keyframes mcsFloat{50%{transform:rotate(-1.2deg) translateY(-4px)}}
@media (prefers-reduced-motion:reduce){.mcs-mock__win{animation:none}}
