/* Minecraft pages: NovaSync (server plugin) and Nova Quantum (companion mod).
   Frost is the Minecraft branch colour on the tree; everything else is the shared Seidr system. */
.page-mc { --mc: var(--frost); --mc-deep: #5d9ccc; }
.mc-h2 { font-size: var(--t-h2); margin-top: 18px; }
.mc-h2 + .lead { margin-top: 22px; }
.mc-band { background: linear-gradient(180deg, transparent, var(--night-2) 14%, var(--night-2) 86%, transparent); }
.page-mc main a:not(.btn):not(.text-link):not(.chip) { color: var(--mc); }
.page-mc code { font-family: var(--f-mono); font-size: .86em; color: var(--bone); background: rgba(159, 212, 255, .08); border: 1px solid rgba(159, 212, 255, .14); border-radius: 6px; padding: .08em .38em; overflow-wrap: anywhere; }
.page-mc kbd { font-family: var(--f-mono); font-size: .8em; color: var(--night); background: var(--mc); border-radius: 5px; padding: .1em .45em; font-weight: 700; box-shadow: 0 2px 0 var(--mc-deep); }

/* ---------- hero ---------- */
.mc-hero-grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: clamp(32px, 5vw, 80px); align-items: center; }
.mc-hero-copy { min-width: 0; }
.mc-hero h1 { max-width: 13ch; }
.mc-pills { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 22px; }
.mc-hero-note { margin-top: 22px; color: var(--mist); font-size: .95rem; }
/* the sketch fills the right column, where the big page rune would crowd it */
@media (min-width: 1001px) { .mc-hero .page-rune { display: none; } }
@media (max-width: 1000px) {
  .mc-hero-grid { grid-template-columns: 1fr; }
  .mc-hero canvas.sapling { opacity: .35; }
}

.mc-download { gap: .8em; padding-block: .62em; white-space: normal; }
.mc-dl-ico { width: 30px; height: 30px; flex: none; display: grid; place-items: center; border-radius: 50%; border: 1px solid currentColor; font-size: .95rem; opacity: .85; transition: transform .35s var(--ease); }
.mc-download:hover .mc-dl-ico { transform: translateY(2px); }
.mc-dl-text { display: grid; gap: 4px; text-align: left; }
.mc-dl-text small { font-family: var(--f-mono); font-size: .75rem; font-weight: 500; letter-spacing: .03em; opacity: .8; line-height: 1.3; }

/* ---------- Quantum: the command sketch ---------- */
.mc-sketch { position: relative; z-index: 2; display: grid; gap: 16px; min-width: 0; background: linear-gradient(180deg, rgba(15, 29, 29, .94), rgba(10, 19, 22, .96)); border-color: color-mix(in srgb, var(--mc) 22%, transparent); box-shadow: 0 40px 100px -50px rgba(0, 0, 0, .9), 0 0 80px -50px var(--mc); }
.mc-sketch-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.mc-key { font-family: var(--f-mono); font-size: .75rem; color: var(--night); background: var(--mc); border-radius: 6px; padding: 3px 8px; font-weight: 700; box-shadow: 0 2px 0 var(--mc-deep); }
.mc-sketch.listening .mc-key { animation: pulse 1s infinite; }
.mc-say { display: flex; flex-wrap: wrap; gap: 8px; }
.mc-say .chip { font-family: var(--f-body); font-size: .86rem; letter-spacing: 0; min-height: 40px; }
.mc-say .chip:not([aria-pressed="true"]) { background: rgba(6, 12, 14, .85); }
.mc-flow { display: flex; align-items: center; gap: 6px; font-family: var(--f-mono); font-size: .75rem; letter-spacing: .06em; color: var(--mist); }
.mc-flow i { flex: 1; height: 1px; min-width: 12px; background: var(--line-2); position: relative; overflow: hidden; }
.mc-flow i::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, transparent, var(--mc), transparent); transform: translateX(-100%); }
.mc-sketch.working .mc-flow i::after { animation: mc-flow 1.1s var(--ease) infinite; }
@keyframes mc-flow { to { transform: translateX(100%); } }
.mc-node { padding: 5px 10px; border-radius: 99px; border: 1px solid var(--line-2); white-space: nowrap; transition: color .3s, border-color .3s, box-shadow .3s; }
.mc-node.on { color: var(--night); background: var(--mc); border-color: var(--mc); box-shadow: 0 0 20px -4px var(--mc); }
.mc-chain { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; min-height: 176px; align-content: start; }
.mc-chain li { display: grid; grid-template-columns: 26px minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 9px 12px; border-radius: 12px; border: 1px solid var(--line); background: rgba(4, 8, 9, .55); font-size: .92rem; color: var(--bone); opacity: 0; transform: translateY(6px); transition: opacity .35s, transform .35s var(--ease), border-color .3s; }
.mc-chain li.in { opacity: 1; transform: none; }
.mc-chain li.done { border-color: color-mix(in srgb, var(--mc) 35%, transparent); }
.mc-chain li .n { font-family: var(--f-mono); font-size: .75rem; color: var(--mist); }
.mc-chain li .st { font-family: var(--f-mono); font-size: .75rem; letter-spacing: .06em; color: var(--mist); }
.mc-chain li.done .st { color: var(--mc); }
.mc-chain li.mc-idle { display: block; opacity: 1; transform: none; color: var(--mist); border-style: dashed; line-height: 1.55; }
.mc-said { min-height: 1.6em; margin: 0; font-family: var(--f-display); font-style: italic; font-size: 1.2rem; color: var(--mc); }
.mc-illus { margin: 0; font-family: var(--f-mono); font-size: .75rem; letter-spacing: .08em; text-transform: uppercase; color: var(--mist-2); }
@media (max-width: 480px) { .mc-flow { font-size: .75rem; } .mc-node { padding: 4px 8px; } }

/* ---------- NovaSync: the installer terminal ---------- */
.mc-term { position: relative; z-index: 2; display: grid; gap: 16px; min-width: 0; background: linear-gradient(180deg, rgba(8, 14, 16, .96), rgba(5, 10, 12, .98)); border-color: color-mix(in srgb, var(--mc) 22%, transparent); box-shadow: 0 40px 100px -50px rgba(0, 0, 0, .9), 0 0 80px -50px var(--mc); }
.mc-term-bar { display: flex; align-items: center; gap: 12px; }
.mc-dots { display: inline-flex; gap: 6px; }
.mc-dots i { width: 10px; height: 10px; border-radius: 50%; background: var(--line-2); }
.mc-dots i:first-child { background: var(--ember); } .mc-dots i:nth-child(2) { background: var(--sap); } .mc-dots i:nth-child(3) { background: var(--aurora); }
.mc-cmd { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 12px 12px 12px 16px; border-radius: 14px; border: 1px solid color-mix(in srgb, var(--mc) 30%, transparent); background: rgba(159, 212, 255, .05); }
.page-mc .mc-cmd code { background: none; border: 0; padding: 0; font-size: .86rem; line-height: 1.55; color: var(--mc); }
.mc-cmd code::before { content: "$ "; color: var(--mist-2); }
.mc-copy { min-height: 40px; }
.mc-copy.copied { --bd: var(--aurora); color: var(--aurora); }
.mc-log { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; font-family: var(--f-mono); font-size: .78rem; line-height: 1.5; color: var(--mist); }
.mc-log li { overflow-wrap: anywhere; }
.mc-log .mc-t { color: var(--mc); }
.mc-log .mc-ok { color: var(--aurora); }
.mc-term.typing .mc-log li { opacity: 0; transform: translateY(4px); transition: opacity .4s, transform .4s var(--ease); }
.mc-term.typing .mc-log li.in { opacity: 1; transform: none; }
.mc-term-note { margin: 0; color: var(--mist); font-size: .86rem; line-height: 1.55; }
@media (max-width: 520px) { .mc-cmd { grid-template-columns: 1fr; } .mc-copy { justify-self: start; } }

/* ---------- feature grid ---------- */
.mc-feats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.mc-feat { --c: var(--mc); position: relative; overflow: hidden; display: grid; gap: 10px; align-content: start; padding: 24px; border-radius: var(--r-m); border: 1px solid var(--line); background: linear-gradient(180deg, var(--moss), var(--night-2)); transition: border-color .35s; }
.mc-feat::before { content: ""; position: absolute; inset: 0; pointer-events: none; background: radial-gradient(280px circle at var(--mx, 50%) var(--my, 0%), color-mix(in srgb, var(--c) 12%, transparent), transparent 60%); opacity: 0; transition: opacity .35s; }
.mc-feat:hover { border-color: color-mix(in srgb, var(--c) 40%, transparent); }
.mc-feat:hover::before { opacity: 1; }
.mc-feat h3 { position: relative; font-size: 1.5rem; }
.mc-feat p { position: relative; margin: 0; color: var(--mist); font-size: .94rem; line-height: 1.6; }
.mc-state { position: relative; justify-self: start; font-family: var(--f-mono); font-size: .75rem; letter-spacing: .1em; text-transform: uppercase; padding: 4px 10px; border-radius: 99px; border: 1px solid; }
.mc-state.ship { color: var(--aurora); border-color: color-mix(in srgb, var(--aurora) 40%, transparent); }
.mc-state.next { color: var(--violet); border-color: color-mix(in srgb, var(--violet) 45%, transparent); }
@media (max-width: 1000px) { .mc-feats { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .mc-feats { grid-template-columns: 1fr; } }

/* ---------- install ---------- */
.mc-install { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(20px, 4vw, 48px); align-items: start; }
.mc-needs { display: grid; gap: 14px; position: sticky; top: 110px; }
.mc-needs h3 { font-size: 1.4rem; }
.mc-needs ul { margin: 0; padding-left: 1.1em; color: var(--mist); display: grid; gap: 6px; }
.mc-needs ul li::marker { color: var(--mc); }
.mc-keys { margin: 0; display: grid; gap: 8px; }
.mc-keys div { display: flex; align-items: center; gap: 12px; }
.mc-keys dt { flex: none; }
.mc-keys dd { margin: 0; color: var(--mist); }
.mc-steps { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.mc-steps-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 20px; }
.mc-steps li { min-width: 0; display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 16px; padding: 22px; border-radius: var(--r-m); border: 1px solid var(--line); background: var(--night-2); align-content: start; }
.mc-steps h3 { font-size: 1.4rem; margin-bottom: 6px; }
.mc-steps p { margin: 0; color: var(--mist); font-size: .94rem; line-height: 1.6; }
.mc-steps b { color: var(--bone); font-weight: 600; }
.mc-n { font-family: var(--f-mono); font-size: .76rem; letter-spacing: .1em; color: var(--mc); padding-top: 6px; }
.mc-paths { margin: 12px 0 0; display: grid; gap: 6px; font-size: .88rem; }
.mc-paths div { display: grid; grid-template-columns: 72px minmax(0, 1fr); gap: 10px; align-items: baseline; }
.mc-paths dt { font-family: var(--f-mono); font-size: .75rem; letter-spacing: .08em; text-transform: uppercase; color: var(--mist); }
.mc-paths dd { margin: 0; }
.mc-code { margin-top: 12px; }
.mc-code pre { margin: 0; padding: 12px 14px; border-radius: 12px; border: 1px solid var(--line-2); background: rgba(4, 8, 9, .8); overflow-x: auto; font-family: var(--f-mono); font-size: .78rem; line-height: 1.55; color: var(--bone); }
.page-mc .mc-code code { background: none; border: 0; padding: 0; font-size: inherit; overflow-wrap: normal; white-space: pre; }
.mc-code pre:focus-visible { outline: 2px solid var(--sap); outline-offset: 2px; }
.mc-warn { border-color: color-mix(in srgb, var(--sap) 40%, transparent); display: grid; gap: 8px; }
.mc-warn h3 { font-size: 1.4rem; color: var(--sap); }
.mc-warn p { margin: 0; color: var(--mist); }
.mc-recover { margin-top: 20px; }
.mc-recover summary, .mc-faq summary { list-style: none; cursor: pointer; min-height: 48px; display: flex; align-items: center; gap: 12px; color: var(--bone); font-weight: 600; font-size: 1rem; }
.mc-recover summary::-webkit-details-marker, .mc-faq summary::-webkit-details-marker { display: none; }
.mc-recover summary::after, .mc-faq summary::after { content: "+"; margin-left: auto; flex: none; display: grid; place-items: center; width: 30px; height: 30px; border: 1px solid var(--line-2); border-radius: 50%; color: var(--sap); font-size: 1.05rem; line-height: 1; transition: transform .35s var(--ease); }
.mc-recover[open] summary::after, .mc-faq details[open] summary::after { content: "−"; transform: rotate(180deg); }
.mc-recover summary:hover::after, .mc-faq summary:hover::after { border-color: var(--sap); }
.mc-recover ol { margin: 12px 0 0; padding-left: 1.2em; display: grid; gap: 10px; color: var(--mist); }
.mc-recover b { color: var(--bone); }
@media (max-width: 1000px) { .mc-install { grid-template-columns: 1fr; } .mc-needs { position: static; } .mc-steps-2 { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 480px) { .mc-steps li { grid-template-columns: minmax(0, 1fr); gap: 6px; padding: 18px; } .mc-n { padding-top: 0; } .mc-paths div { grid-template-columns: 1fr; gap: 2px; } }

/* ---------- servers ---------- */
.mc-servers { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: clamp(28px, 5vw, 70px); align-items: center; }
.mc-offline { display: grid; gap: 12px; justify-items: start; }
.mc-offline h3 { font-size: 1.6rem; }
.mc-offline p { margin: 0; color: var(--mist); }
@media (max-width: 900px) { .mc-servers { grid-template-columns: 1fr; } }

/* ---------- FAQ ---------- */
.mc-faq-wrap { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(28px, 5vw, 70px); align-items: start; }
.mc-faq { display: grid; gap: 10px; }
.mc-faq details { border: 1px solid var(--line); border-radius: var(--r-m); background: var(--night-2); padding: 6px 18px; transition: border-color .3s; }
.mc-faq details[open] { border-color: var(--line-2); padding-bottom: 16px; }
.mc-faq p { margin: 6px 0 0; color: var(--mist); line-height: 1.65; }
@media (max-width: 900px) { .mc-faq-wrap { grid-template-columns: 1fr; } }

/* ---------- NovaSync: dashboard tabs ---------- */
.mc-tabs { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 16px; align-items: start; }
.mc-tablist { display: flex; flex-wrap: wrap; gap: 8px; align-content: start; }
.mc-tablist [role="tab"] { font: inherit; font-size: .9rem; color: var(--mist); background: var(--night-2); border: 1px solid var(--line-2); border-radius: 99px; padding: 10px 16px; min-height: 42px; cursor: pointer; transition: color .25s, border-color .25s, background .25s; }
.mc-tablist [role="tab"]:hover { color: var(--bone); border-color: var(--mc); }
.mc-tablist [role="tab"][aria-selected="true"] { color: var(--night); background: var(--mc); border-color: var(--mc); box-shadow: 0 0 24px -6px var(--mc); }
.mc-tabpanel { min-height: 180px; display: grid; gap: 10px; align-content: start; border-color: color-mix(in srgb, var(--mc) 25%, transparent); }
.mc-tabpanel h3 { font-size: 1.8rem; }
.mc-tabpanel p { margin: 0; color: var(--mist); font-size: 1.02rem; line-height: 1.65; }
@media (max-width: 900px) { .mc-tabs { grid-template-columns: 1fr; } }

/* ---------- NovaSync: compare ---------- */
.mc-table-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: var(--r-m); background: var(--night-2); }
.mc-table-wrap:focus-visible { outline: 2px solid var(--sap); outline-offset: 2px; }
.mc-table { width: 100%; min-width: 760px; border-collapse: collapse; font-size: .9rem; }
.mc-table th, .mc-table td { padding: 13px 16px; text-align: left; border-bottom: 1px solid var(--line); vertical-align: top; }
.mc-table thead th { font-family: var(--f-mono); font-size: .75rem; letter-spacing: .1em; text-transform: uppercase; color: var(--mist); font-weight: 500; }
.mc-table tbody th { color: var(--bone); font-weight: 600; }
.mc-table td { color: var(--mist); }
.mc-table tr:last-child th, .mc-table tr:last-child td { border-bottom: 0; }
.mc-table .mc-us { color: var(--bone); background: rgba(159, 212, 255, .06); }
.mc-table thead .mc-us { color: var(--mc); }
.mc-sub { font-size: var(--t-h3); margin: clamp(40px, 6vw, 70px) 0 20px; }
.mc-companions { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.mc-comp { display: flex; flex-direction: column; gap: 10px; padding: 22px; border-radius: var(--r-m); border: 1px solid var(--line); background: var(--night-2); }
.mc-comp h4 { font-size: 1.35rem; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.mc-comp p { margin: 0; color: var(--mist); font-size: .92rem; line-height: 1.6; }
.mc-comp .text-link { margin-top: auto; padding-top: 6px; align-self: flex-start; font-size: .9rem; }
@media (max-width: 1100px) { .mc-companions { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .mc-companions { grid-template-columns: 1fr; } }

/* ---------- NovaSync: pricing ---------- */
.mc-prices { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; }
.mc-price { position: relative; display: grid; gap: 10px; align-content: start; padding: 22px; border-radius: var(--r-m); border: 1px solid var(--line); background: linear-gradient(180deg, var(--moss), var(--night-2)); }
.mc-pop { position: absolute; top: -11px; left: 20px; font-family: var(--f-mono); font-size: .75rem; letter-spacing: .08em; text-transform: uppercase; color: var(--ink-on-sap); background: var(--sap); border-radius: 99px; padding: 3px 10px; font-weight: 700; box-shadow: 0 6px 20px -8px var(--sap); }
.mc-amt { margin: 0; font-family: var(--f-display); font-size: 2.4rem; line-height: 1; color: var(--bone); }
.mc-amt span { font-size: 1.2rem; color: var(--mist); }
.mc-price p:last-child { margin: 0; color: var(--mist); font-size: .9rem; line-height: 1.55; }
.mc-price-free { border-color: color-mix(in srgb, var(--aurora) 40%, transparent); }
.mc-price-free .mc-amt { color: var(--aurora); }
.mc-price-pop { border-color: color-mix(in srgb, var(--sap) 55%, transparent); box-shadow: 0 0 60px -30px var(--sap); }
.mc-price-pop .mc-amt { color: var(--sap); }
.mc-price-cta { margin: 26px 0 0; display: flex; flex-wrap: wrap; align-items: center; gap: 12px 18px; color: var(--mist); }
@media (max-width: 1200px) { .mc-prices { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 800px) { .mc-prices { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 480px) { .mc-prices { grid-template-columns: 1fr; } }

/* ---------- NovaSync: appeal ---------- */
.mc-appeal { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(28px, 5vw, 70px); align-items: start; }
.mc-appeal-note { margin-top: 18px; color: var(--mist); font-size: .94rem; }
.mc-appeal .form-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.mc-appeal .btn-sap[disabled] { opacity: .7; cursor: progress; }
@media (max-width: 900px) { .mc-appeal { grid-template-columns: 1fr; } }

/* ---------- CTA ---------- */
.mc-cta-rune { font-size: 2.6rem; color: var(--mc); text-shadow: 0 0 24px var(--mc); }

.mc-caution { margin-top: 10px; padding: 12px 14px; border-radius: var(--r-s, 10px); border: 1px solid color-mix(in srgb, var(--ember) 45%, transparent); background: color-mix(in srgb, var(--ember) 8%, transparent); color: var(--bone); font-size: .92rem; line-height: 1.55; }
/* ten feature cards in three columns leave one card alone on the last row: let it run across the row */
@media (min-width: 1001px) { .mc-feats > .mc-feat:last-child:nth-child(3n + 1) { grid-column: 1 / -1; } }
.mc-privacy-line { margin: 4px 0 0; color: var(--mist); font-size: .85rem; line-height: 1.5; }
.mc-term-note code, .mc-caution code { font-size: 1em; }
