/* ==========================================================================
   THE FOURTH BLADE — Design System
   Luxury Certificate / Banknote Aesthetic
   ========================================================================== */

/* ── Tokens ── */
:root {
    --ease: cubic-bezier(.25,1,.5,1);
    --t-fast: .2s var(--ease);
    --t-med: .45s var(--ease);
    --t-slow: .7s var(--ease);
    --font-brand: 'Cinzel', serif;
    --font-head: 'Cormorant Garamond', serif;
    --font-body: 'Cormorant Garamond', serif;
    --font-ui: 'Inter', sans-serif;
    --page-max: 1280px;
    --narrow-max: 820px;
}

/* ── Dark Theme ── */
[data-theme="dark"] {
    --bg-1: #05080c;
    --bg-2: #0b1118;
    --bg-glass: rgba(11,17,24,.88);
    --border: rgba(197,168,128,.12);
    --border-h: rgba(197,168,128,.3);
    --tx-1: #e3d1ba;
    --tx-2: #a69276;
    --tx-3: #645541;
    --gold: #c5a880;
    --gold-bright: #e6cfa3;
    --gold-dark: #7c6346;
    --gold-glow: rgba(197,168,128,.08);
    --shadow: 0 30px 60px rgba(0,0,0,.9);
    --amb-1: rgba(197,168,128,.04);
    --amb-2: rgba(11,17,24,.98);
}

/* ── Light Theme ── */
[data-theme="light"] {
    --bg-1: #f2efe9;
    --bg-2: #e8e4da;
    --bg-glass: rgba(232,228,218,.9);
    --border: rgba(124,99,70,.15);
    --border-h: rgba(124,99,70,.35);
    --tx-1: #211c15;
    --tx-2: #6e5e4d;
    --tx-3: #8f7f6d;
    --gold: #8a7355;
    --gold-bright: #a58c6b;
    --gold-dark: #5e4f3a;
    --gold-glow: rgba(138,115,85,.06);
    --shadow: 0 25px 50px rgba(33,28,21,.05);
    --amb-1: rgba(138,115,85,.04);
    --amb-2: rgba(242,239,233,.98);
}

/* ── Reset ── */
*,*::before,*::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior: smooth; }
body {
    background: var(--bg-1);
    color: var(--tx-1);
    font: 18px/1.8 var(--font-body);
    overflow-x: hidden;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    transition: background var(--t-med), color var(--t-med);
}
img { display:block; max-width:100%; height:auto; }
a { color: inherit; text-decoration: none; }
button { cursor:pointer; border:none; background:none; font:inherit; color:inherit; }
input { font:inherit; color:inherit; }

/* ── Fade-in on scroll ── */
.fade-in {
    opacity: 0; transform: translateY(20px);
    transition: opacity var(--t-slow), transform var(--t-slow);
}
.fade-in.visible { opacity:1; transform:translateY(0); }

/* ── Ambient glow ── */
.ambient-glow {
    position:fixed; inset:0; z-index:0; pointer-events:none;
    background: radial-gradient(circle at 50% 50%, var(--amb-1) 0%, transparent 60%),
                radial-gradient(circle at 80% 80%, var(--amb-2) 0%, transparent 55%);
    transition: background 1s ease;
}

/* ==========================================================================
   HEADER
   ========================================================================== */
.header {
    position:sticky; top:0; z-index:100;
    background: var(--bg-glass);
    backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px);
    border-bottom: 1px solid var(--border);
}
.header-inner {
    max-width: var(--page-max); margin:0 auto;
    display:flex; align-items:center; justify-content:space-between;
    padding: 0 1.5rem; height: 68px; gap: 1rem;
}

/* Brand */
.brand { display:flex; flex-direction:column; align-items:center; gap:5px; flex-shrink:0; }
.brand-name {
    font: 700 13.5px/1 var(--font-brand);
    letter-spacing: .14em; color: var(--gold);
    white-space: nowrap; text-align:center;
}
.brand-sub {
    font: 500 7px/1 var(--font-ui);
    letter-spacing: .14em; color: var(--tx-3);
    text-transform: uppercase;
    white-space: nowrap; text-align:center;
}

/* Nav links */
.nav { display:flex; gap:1.2rem; align-items:center; flex-wrap:nowrap; }
.nav-link {
    font: 500 10.5px/1 var(--font-ui);
    letter-spacing: .12em; text-transform: uppercase;
    color: var(--tx-2);
    transition: color var(--t-fast);
    position:relative;
    white-space: nowrap;
}
.nav-link::after {
    content:''; position:absolute; bottom:-4px; left:0; width:0; height:1px;
    background: var(--gold); transition: width var(--t-fast);
}
.nav-link:hover { color: var(--gold); }
.nav-link:hover::after { width:100%; }

/* Header actions */
.header-actions { display:flex; align-items:center; gap:.6rem; flex-shrink:0; }
.icon-btn {
    width:36px; height:36px; border-radius:50%;
    display:grid; place-items:center;
    border: 1px solid var(--border);
    color: var(--tx-2); font-size:14px;
    transition: border-color var(--t-fast), color var(--t-fast);
}
.icon-btn:hover { border-color: var(--gold); color: var(--gold); }

/* Language dropdown */
.lang-wrap { position:relative; }
.lang-trigger {
    display:flex; align-items:center; gap:6px;
    font: 600 11px/1 var(--font-ui);
    letter-spacing:.1em; color: var(--tx-2);
    padding: 6px 12px; border-radius:6px;
    border: 1px solid var(--border);
    transition: all var(--t-fast);
}
.lang-trigger:hover { border-color: var(--gold); color: var(--gold); }
.lang-arrow { font-size:8px; transition: transform var(--t-fast); }
.lang-wrap.open .lang-arrow { transform:rotate(180deg); }
.lang-dropdown {
    position:absolute; top:calc(100% + 8px); right:0;
    min-width:160px; background: var(--bg-2);
    border: 1px solid var(--border); border-radius:8px;
    padding:6px; opacity:0; visibility:hidden;
    transform:translateY(-6px);
    transition: all var(--t-fast);
    box-shadow: var(--shadow);
}
.lang-wrap.open .lang-dropdown { opacity:1; visibility:visible; transform:translateY(0); }
.lang-opt {
    display:block; width:100%; text-align:left;
    padding:8px 14px; border-radius:5px;
    font: 400 13px/1.4 var(--font-ui); color: var(--tx-2);
    transition: all var(--t-fast);
}
.lang-opt:hover, .lang-opt.active { background: var(--gold-glow); color: var(--gold); }

/* Burger */
.burger { display:none; }

@media(max-width:1240px) {
    .nav { gap:0.8rem; }
    .nav-link { font-size:10px; letter-spacing:0.08em; }
    .brand-name { font-size:12.5px; letter-spacing:0.12em; }
}
@media(max-width:1080px) {
    .nav { display:none; }
    .burger { display:grid; }
}

/* ==========================================================================
   MOBILE OVERLAY
   ========================================================================== */
.mobile-overlay {
    position:fixed; inset:0; z-index:200;
    background: var(--bg-1); opacity:0; visibility:hidden;
    transition: all var(--t-med);
    display:flex; flex-direction:column; align-items:center; justify-content:center;
}
.mobile-overlay.open { opacity:1; visibility:visible; }
.mobile-close {
    position:absolute; top:1.2rem; right:1.5rem;
    font-size:1.5rem; color:var(--tx-2);
}
.mobile-nav { display:flex; flex-direction:column; align-items:center; gap:1.6rem; max-width:100%; padding:0 1rem; }
.mobile-link {
    font: 600 13px/1 var(--font-ui);
    letter-spacing:.2em; text-transform:uppercase;
    color: var(--tx-2); transition: color var(--t-fast);
}
.mobile-link:hover { color: var(--gold); }
.mobile-langs {
    display:flex; gap:.6rem; margin-top:1.5rem;
    /* 9 language chips must wrap — in one row they are wider than a phone viewport */
    flex-wrap: wrap; justify-content: center; max-width: 100%;
}
.mlang {
    padding: 6px 12px; border-radius:5px;
    font: 600 11px/1 var(--font-ui);
    letter-spacing:.1em; color: var(--tx-3);
    border: 1px solid var(--border);
    transition: all var(--t-fast);
}
.mlang:hover, .mlang.active { border-color:var(--gold); color:var(--gold); }

/* ==========================================================================
   MAIN & SECTIONS
   ========================================================================== */
.main { flex:1; position:relative; z-index:1; }
.section { padding: 100px 2rem; }

.narrow { max-width: var(--narrow-max); margin:0 auto; }

/* 2-column grid */
.grid-2col {
    max-width: var(--page-max); margin:0 auto;
    display:grid; grid-template-columns:1fr 1fr;
    gap:4rem; align-items:center;
}
.grid-2col.reverse { direction:rtl; }
.grid-2col.reverse > * { direction:ltr; }

/* ── Section headers ── */
.section-head { text-align:center; margin-bottom:3rem; }
.label-gold {
    font: 500 10px/1 var(--font-ui);
    letter-spacing: .35em; text-transform: uppercase;
    color: var(--gold); margin-bottom:10px; display:block;
}
.title-hero {
    font: 600 clamp(28px,4vw,48px)/1.1 var(--font-head);
    color: var(--tx-1); margin-bottom:16px;
}
.title-section {
    font: 500 clamp(26px,3.5vw,40px)/1.15 var(--font-head);
    color: var(--tx-1); margin-bottom:16px;
}
.body-text {
    font: 400 17px/1.85 var(--font-body);
    color: var(--tx-2); max-width:600px;
}
.body-text.centered { text-align:center; margin:0 auto; }

/* Engraved divider */
.divider {
    display:flex; align-items:center; gap:12px;
    margin:16px 0 20px; justify-content:center;
}
.section-head .divider, .charter .divider { justify-content:center; }
.divider span { height:1px; width:50px; background:var(--gold-dark); opacity:.4; }
.divider i {
    width:6px; height:6px;
    transform:rotate(45deg);
    border:1px solid var(--gold-dark);
    opacity:.5;
}

/* Quote */
.quote {
    margin-top:20px; padding-left:20px;
    border-left:2px solid var(--gold-dark);
    font: italic 400 16px/1.7 var(--font-body);
    color: var(--tx-3);
}

/* ==========================================================================
   FRAME (Luxury double-border box)
   ========================================================================== */
.frame {
    position:relative; padding:28px 32px;
    background: var(--bg-2);
    border: 1px solid var(--border);
    border-radius:6px; margin-top:24px;
    transition: border-color var(--t-fast);
}
.frame::before {
    content:''; position:absolute; inset:5px;
    border:1px solid var(--border); border-radius:4px;
    pointer-events:none;
}
.frame:hover { border-color: var(--border-h); }
.frame-title {
    font: 700 10px/1 var(--font-ui);
    letter-spacing:.4em; text-transform:uppercase;
    color: var(--gold); margin-bottom:20px; text-align:center;
}

/* ── Specs list ── */
.specs { display:flex; flex-direction:column; gap:0; }
.spec {
    display:flex; justify-content:space-between; align-items:center;
    padding: 10px 0;
    border-bottom: 1px solid var(--border);
}
.spec:last-child { border-bottom:none; }
.spec dt {
    font: 500 12px/1 var(--font-ui);
    letter-spacing:.12em; text-transform:uppercase;
    color: var(--tx-3);
}
.spec dd {
    font: 500 14px/1 var(--font-ui);
    color: var(--tx-1); text-align:right;
}
.spec dt i { color: var(--gold-dark); font-size:13px; }

/* ── DAO list ── */
.dao-list { display:flex; flex-direction:column; gap:0; }
.dao-item {
    display:flex; align-items:center; gap:14px;
    padding:12px 0; border-bottom:1px solid var(--border);
    font: 400 15px/1.5 var(--font-body); color: var(--tx-2);
}
.dao-item:last-child { border-bottom:none; }
.dao-item i { color: var(--gold-dark); font-size:15px; width:20px; text-align:center; }

/* ==========================================================================
   PHURBA VISUAL PANE (3D tilt)
   ========================================================================== */
.visual-pane { perspective:900px; display:flex; justify-content:center; align-items:center; }
.sculpture-wrap {
    position:relative; display:flex; flex-direction:column; align-items:center;
    transform-style:preserve-3d;
    transition: transform .15s ease-out;
    will-change: transform;
}
.sculpture-glow {
    position:absolute; top:30%; left:50%; width:140%; height:60%;
    transform:translateX(-50%);
    background:radial-gradient(ellipse, var(--gold-glow) 0%, transparent 70%);
    pointer-events:none;
}
.sculpture-img {
    width:260px; max-height:520px; object-fit:contain;
    filter: drop-shadow(0 20px 40px rgba(0,0,0,.4));
    cursor:pointer; transition: filter var(--t-fast);
}
.sculpture-img:hover { filter: drop-shadow(0 20px 50px rgba(197,168,128,.15)); }
.sculpture-pedestal {
    width:120px; height:3px; margin-top:24px;
    background: linear-gradient(90deg, transparent, var(--gold-dark), transparent);
    border-radius:1px;
}

/* Sanctuary visual */
.sanctuary-box {
    position:relative; width:100%; aspect-ratio:4/5;
    background: radial-gradient(ellipse at center 60%, rgba(197,168,128,.04) 0%, var(--bg-2) 60%);
    border-radius:10px; overflow:hidden;
    display:flex; align-items:center; justify-content:center;
}
.sanctuary-glow {
    position:absolute; bottom:20%; left:50%; width:80%; height:40%;
    transform:translateX(-50%);
    background: radial-gradient(ellipse, var(--gold-glow) 0%, transparent 70%);
}
.sanctuary-pedestal {
    position:absolute; bottom:18%; left:50%; transform:translateX(-50%);
    width:30%; height:2px;
    background: linear-gradient(90deg, transparent, var(--gold-dark), transparent);
}
.sanctuary-glass {
    position:absolute; inset:15%; border:1px solid var(--border);
    border-radius:4px; pointer-events:none;
}
.sanctuary-img {
    position:relative; z-index:1; width:50%; max-height:65%;
    object-fit:contain;
    filter: drop-shadow(0 20px 40px rgba(0,0,0,.3));
}

/* Stamp frame */
.stamp-frame { display:flex; align-items:center; justify-content:center; padding:32px; }
.stamp-img { max-width:100%; max-height:400px; object-fit:contain; cursor:pointer; }

/* ==========================================================================
   BLADE CARDS
   ========================================================================== */
.blades-grid {
    display:grid; grid-template-columns:repeat(2,1fr); gap:20px;
}
.blade-card {
    position:relative; padding:28px;
    background: var(--bg-2); border:1px solid var(--border); border-radius:6px;
    transition: border-color var(--t-fast), transform var(--t-fast);
}
.blade-card::before {
    content:''; position:absolute; inset:5px;
    border:1px solid var(--border); border-radius:4px; pointer-events:none;
}
.blade-card:hover { border-color: var(--border-h); transform:translateY(-2px); }
.blade-num {
    display:block; font: 300 36px/1 var(--font-head);
    color: var(--tx-3); margin-bottom:10px;
}
.blade-num.gold { color: var(--gold); }
.blade-title {
    font: 600 17px/1.3 var(--font-head);
    color: var(--tx-1); margin-bottom:8px;
}
.blade-title.gold { color: var(--gold-bright); }
.blade-desc { font:400 15px/1.7 var(--font-body); color: var(--tx-2); }
.blade-desc.gold { color: var(--gold); }
.blade-four { border-color: var(--gold-dark); }
.blade-four::before { border-color: rgba(197,168,128,.15); }

/* ==========================================================================
   REGISTER BOX (Quantity + Wallet)
   ========================================================================== */
.register-box .label-gold { display:block; margin-bottom:14px; font-size:10px; }
.qty-row { display:flex; align-items:center; gap:20px; flex-wrap:wrap; margin-bottom:18px; }
.qty-input {
    display:flex; align-items:center;
    border:1px solid var(--border); border-radius:5px; overflow:hidden;
}
.qty-btn {
    width:38px; height:38px; display:grid; place-items:center;
    color: var(--gold-dark); font-size:12px;
    transition: background var(--t-fast), color var(--t-fast);
}
.qty-btn:hover { background: var(--gold-glow); color: var(--gold); }
.qty-input input {
    width:100px; height:38px; text-align:center;
    border:none; border-left:1px solid var(--border); border-right:1px solid var(--border);
    background: transparent;
    font: 500 16px/1 var(--font-ui); color: var(--tx-1);
    -moz-appearance:textfield;
}
.qty-input input::-webkit-outer-spin-button,
.qty-input input::-webkit-inner-spin-button { -webkit-appearance:none; }

.price-block { display:flex; flex-direction:column; gap:2px; }
.price-label { font:400 11px/1 var(--font-ui); letter-spacing:.1em; color:var(--tx-3); text-transform:uppercase; }
.price-row { display:flex; align-items:baseline; gap:6px; }
.price-val { font:700 22px/1 var(--font-brand); color:var(--gold); }
.price-unit { font:600 11px/1 var(--font-ui); letter-spacing:.1em; color:var(--tx-3); }

.actions { display:flex; align-items:center; gap:14px; flex-wrap:wrap; }
.btn-gold {
    display:inline-flex; align-items:center; gap:10px;
    padding:12px 28px; border-radius:5px;
    background: linear-gradient(135deg, var(--gold-dark), var(--gold));
    color:#0a0d12; font:700 11px/1 var(--font-ui);
    letter-spacing:.15em; text-transform:uppercase;
    transition: all var(--t-fast);
    border:none;
}
.btn-gold:hover { filter:brightness(1.15); transform:translateY(-1px); }
.btn-gold i { font-size:13px; }

.wallet-bar {
    display:flex; align-items:center; gap:8px;
    padding:8px 14px; border-radius:5px;
    background: var(--gold-glow); border:1px solid var(--border);
}
.dot-live {
    width:7px; height:7px; border-radius:50%;
    background:#34d399; box-shadow:0 0 6px #34d399;
    animation: pulse-dot 2s infinite;
}
@keyframes pulse-dot { 0%,100%{opacity:1} 50%{opacity:.4} }
.wallet-addr { font:500 12px/1 var(--font-ui); color:var(--tx-2); letter-spacing:.05em; }
.icon-btn-sm {
    width:28px; height:28px; border-radius:50%; display:grid; place-items:center;
    color:var(--tx-3); font-size:12px; transition: color var(--t-fast);
}
.icon-btn-sm:hover { color: var(--gold); }

/* ==========================================================================
   MODAL
   ========================================================================== */
.modal-bg {
    position:fixed; inset:0; z-index:300;
    background:rgba(0,0,0,.75); backdrop-filter:blur(8px);
    display:flex; align-items:center; justify-content:center;
    opacity:0; visibility:hidden; transition: all var(--t-fast);
}
.modal-bg.open { opacity:1; visibility:visible; }
.modal {
    width:90%; max-width:520px; max-height:90vh; overflow-y:auto;
    text-align:center; padding:40px 36px;
}
.modal-x {
    position:absolute; top:16px; right:16px;
    font-size:18px; color:var(--tx-3); transition:color var(--t-fast);
}
.modal-x:hover { color:var(--gold); }
.modal-title { font:600 22px/1.2 var(--font-head); color:var(--gold-bright); margin-bottom:4px; }
.modal-sub { font:400 11px/1 var(--font-ui); letter-spacing:.2em; color:var(--tx-3); margin-bottom:28px; }

/* Timeline */
.timeline { text-align:left; margin-bottom:24px; }
.tl-step {
    display:flex; gap:14px; align-items:flex-start;
    padding:14px 0; border-bottom:1px solid var(--border);
    opacity:.35; transition: opacity var(--t-fast);
}
.tl-step:last-child { border-bottom:none; }
.tl-step.done, .tl-step.active { opacity:1; }
.tl-dot {
    width:32px; height:32px; border-radius:50%; flex-shrink:0;
    display:grid; place-items:center; font-size:12px;
    border:1px solid var(--border); color:var(--tx-3);
    transition: all var(--t-fast);
}
.tl-step.done .tl-dot { border-color:var(--gold-dark); color:var(--gold); background:var(--gold-glow); }
.tl-step.active .tl-dot { border-color:var(--gold); color:var(--gold); }
.tl-title { display:block; font:600 13px/1 var(--font-ui); color:var(--tx-1); letter-spacing:.05em; }
.tl-desc { display:block; font:400 12px/1.4 var(--font-ui); color:var(--tx-3); margin-top:3px; }

/* Feedback */
.feedback {
    padding:18px 20px; border-radius:6px; text-align:left;
    display:flex; align-items:flex-start; gap:14px;
    margin-bottom:20px;
}
.feedback.success { background:rgba(52,211,153,.08); border:1px solid rgba(52,211,153,.2); }
.feedback.error { background:rgba(231,76,60,.08); border:1px solid rgba(231,76,60,.2); }
.feedback i { font-size:20px; margin-top:2px; }
.feedback.success i { color:#34d399; }
.feedback.error i { color:#e74c3c; }
.feedback h4 { font:600 14px/1 var(--font-ui); color:var(--tx-1); margin-bottom:4px; }
.feedback p { font:400 13px/1.5 var(--font-ui); color:var(--tx-2); }

/* Modal outline button */
.btn-outline {
    display:inline-flex; align-items:center; justify-content:center; gap:8px;
    width:100%; padding:12px 20px; border-radius:5px;
    border:1px solid var(--border); color:var(--tx-2);
    font:600 11px/1 var(--font-ui); letter-spacing:.15em; text-transform:uppercase;
    transition: all var(--t-fast);
}
.btn-outline:hover { border-color:var(--gold); color:var(--gold); }

/* ==========================================================================
   LIGHTBOX
   ========================================================================== */
.lightbox {
    position:fixed; inset:0; z-index:400;
    background:rgba(0,0,0,.92);
    display:flex; align-items:center; justify-content:center;
    opacity:0; visibility:hidden; transition: all var(--t-fast);
    padding:2rem;
}
.lightbox.open { opacity:1; visibility:visible; }
.lightbox img { max-width:92vw; max-height:88vh; object-fit:contain; border-radius:4px; }
.lightbox-x {
    position:absolute; top:20px; right:24px;
    font-size:24px; color:#fff; opacity:.6; transition:opacity var(--t-fast);
}
.lightbox-x:hover { opacity:1; }

/* ==========================================================================
   FOOTER
   ========================================================================== */
.footer {
    background:var(--bg-2); border-top:1px solid var(--border);
    position:relative; z-index:1;
}
.footer-inner { max-width:var(--page-max); margin:0 auto; padding:60px 2rem 40px; }
.charter { text-align:center; margin-bottom:40px; }
.manifesto-row {
    display:flex; justify-content:center; gap:2rem; flex-wrap:wrap;
    margin-top:16px;
}
.manifesto-row span {
    font: italic 400 17px/1 var(--font-body); color:var(--tx-2);
}
.manifesto-big {
    margin-top:20px; font:500 clamp(20px,2.5vw,28px)/1.4 var(--font-head);
    color:var(--gold);
}
.footer-hr { border:none; height:1px; background:var(--border); margin:32px 0; }
.footer-bottom {
    display:flex; justify-content:space-between; align-items:flex-end; gap:1.5rem; flex-wrap:wrap;
}
.footer-copy { font:400 12px/1.6 var(--font-ui); color:var(--tx-3); }
.footer-contract { font:400 11px/1.6 var(--font-ui); color:var(--tx-3); margin-top:4px; display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.footer-contract code {
    font:500 11px/1 'Inter', monospace; color:var(--tx-2);
    letter-spacing:.03em; word-break:break-all;
}
.copy-btn {
    color:var(--tx-3); font-size:12px; transition:color var(--t-fast);
}
.copy-btn:hover { color:var(--gold); }
.footer-link {
    font:500 11px/1 var(--font-ui); letter-spacing:.1em; color:var(--tx-3);
    display:flex; align-items:center; gap:6px; transition:color var(--t-fast);
}
.footer-link:hover { color:var(--gold); }

/* ==========================================================================
   TOAST
   ========================================================================== */
.toast {
    position:fixed; bottom:30px; left:50%; transform:translateX(-50%) translateY(20px);
    display:flex; align-items:center; gap:10px;
    padding:12px 24px; border-radius:8px;
    background:var(--bg-2); border:1px solid var(--gold-dark);
    font:500 13px/1 var(--font-ui); color:var(--gold);
    box-shadow:0 10px 40px rgba(0,0,0,.4);
    opacity:0; visibility:hidden; transition: all var(--t-fast);
    z-index:500;
}
.toast.show { opacity:1; visibility:visible; transform:translateX(-50%) translateY(0); }

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media(max-width:900px) {
    .grid-2col { grid-template-columns:1fr; gap:2.5rem; }
    .grid-2col.reverse { direction:ltr; }
    .section { padding:60px 1.5rem; }
    .header-inner { padding:0 1.2rem; }
    .blades-grid { grid-template-columns:1fr; }
    .manifesto-row { flex-direction:column; gap:.6rem; }

    /* Center text on mobile for info sections */
    .info-pane { text-align:center; }
    .info-pane .label-gold { text-align:center; }
    .info-pane .title-hero { text-align:center; }
    .info-pane .body-text { text-align:center; margin-left:auto; margin-right:auto; }
    .info-pane .divider { justify-content:center; }
    .info-pane .quote { text-align:center; border-left:none; padding-left:0; border-top:1px solid var(--gold-dark); padding-top:16px; }
    .register-box .label-gold { text-align:center; }
    .qty-row { justify-content:center; }
    .actions { justify-content:center; }
}
@media(max-width:480px) {
    .section { padding:40px 1rem; }
    .frame { padding:20px 18px; }
    .frame::before { inset:4px; }
    .sculpture-img { width:180px; }
    .qty-row { flex-direction:column; align-items:flex-start; }
    .header-inner { height:56px; padding:0 1rem; gap:.5rem; }
    .brand-name { font-size:12px; }
    /* Brand must be allowed to shrink: translated names are far longer than the
       English one and were pushing the header past the viewport edge. */
    .brand { flex-shrink:1; min-width:0; align-items:flex-start; }
    .brand-name, .brand-sub { max-width:100%; overflow:hidden; text-overflow:ellipsis; }
    .header-actions { gap:.35rem; }
    .footer-bottom { flex-direction:column; align-items:flex-start; }
}

/* ═══════════════ ABOUT SECTION ═══════════════ */
.about-block {
    margin-top: 2.5rem;
    padding-top: 2rem;
    border-top: 1px solid var(--border);
}
.about-block:first-of-type {
    margin-top: 2rem;
}
.about-heading {
    font-family: var(--font-head);
    font-size: 1.5rem;
    font-weight: 600;
    color: var(--gold);
    margin-bottom: 1rem;
    letter-spacing: 0.02em;
}
.about-subheading {
    font-family: var(--font-head);
    font-size: 1.2rem;
    font-weight: 500;
    color: var(--gold-bright);
    margin-bottom: 0.7rem;
    letter-spacing: 0.01em;
}
.about-sub {
    margin-top: 1.5rem;
    padding-left: 1.2rem;
    border-left: 2px solid var(--border);
}
.about-list {
    list-style: none;
    padding: 0;
    margin-top: 1.2rem;
}
.about-list li {
    position: relative;
    padding-left: 1.5rem;
    margin-bottom: 0.9rem;
    font-family: var(--font-body);
    font-size: 1.05rem;
    line-height: 1.7;
    color: var(--tx-2);
}
.about-list li::before {
    content: '◆';
    position: absolute;
    left: 0;
    color: var(--gold);
    font-size: 0.7rem;
    top: 0.35em;
}
.about-sources {
    list-style: none;
    padding: 0;
    margin-top: 1rem;
}
.about-sources li {
    font-family: var(--font-body);
    font-size: 0.95rem;
    font-style: italic;
    color: var(--tx-3);
    margin-bottom: 0.6rem;
    padding-left: 1.2rem;
    position: relative;
}
.about-sources li::before {
    content: '—';
    position: absolute;
    left: 0;
    color: var(--gold-dark);
}

/* ═══════════════ COUNTDOWN SECTION ═══════════════ */
.countdown-card {
    text-align: center;
    padding: 2.5rem 2rem;
    position: relative;
    background: radial-gradient(ellipse at center, rgba(197,168,128,0.06) 0%, rgba(11,17,24,0.92) 80%);
    border: 1px solid var(--border-h);
    box-shadow: 0 20px 50px rgba(0,0,0,0.6), inset 0 0 30px rgba(197,168,128,0.03);
}
.countdown-head {
    margin-bottom: 1.5rem;
}
.countdown-head .divider {
    justify-content: center;
    margin: 0.8rem auto 0;
}
.countdown-grid {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1.2rem;
    margin: 2rem 0;
}
.cd-box {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-width: 100px;
    padding: 1.2rem 1rem;
    background: rgba(197,168,128,0.04);
    border: 1px solid var(--border);
    border-radius: 10px;
    backdrop-filter: blur(8px);
    transition: all var(--t-med);
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.05);
}
.cd-box:hover {
    border-color: var(--gold);
    box-shadow: 0 0 25px rgba(197,168,128,0.15), inset 0 1px 0 rgba(255,255,255,0.1);
    transform: translateY(-2px);
}
.cd-num {
    font-family: var(--font-brand);
    font-size: 3rem;
    font-weight: 700;
    line-height: 1;
    color: var(--gold-bright);
    text-shadow: 0 0 20px rgba(197,168,128,0.4), 0 0 40px rgba(197,168,128,0.1);
    letter-spacing: 0.05em;
    display: inline-block;
    transition: transform 0.15s ease-out;
}
.cd-num.tick-pop {
    animation: tickPop 0.35s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
@keyframes tickPop {
    0% { transform: scale(1.22); color: #ffffff; text-shadow: 0 0 30px rgba(255,255,255,0.9); }
    100% { transform: scale(1); color: var(--gold-bright); }
}
.cd-unit {
    font-family: var(--font-ui);
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.25em;
    color: var(--tx-2);
    margin-top: 0.6rem;
    text-transform: uppercase;
}
.cd-sep {
    font-family: var(--font-brand);
    font-size: 2.2rem;
    color: var(--gold-dark);
    line-height: 1;
    margin-top: -1.2rem;
    animation: pulseSep 2s infinite ease-in-out;
}
@keyframes pulseSep {
    0%, 100% { opacity: 0.3; }
    50% { opacity: 0.9; text-shadow: 0 0 10px var(--gold); }
}
.countdown-label {
    font-family: var(--font-head);
    font-size: 1.25rem;
    font-style: italic;
    color: var(--tx-1);
    margin-top: 1rem;
    letter-spacing: 0.02em;
}
.countdown-footer {
    margin-top: 1.8rem;
    display: flex;
    justify-content: center;
}
.cd-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 20px;
    border-radius: 20px;
    background: rgba(197,168,128,0.08);
    border: 1px solid var(--border-h);
    font-family: var(--font-ui);
    font-size: 0.82rem;
    font-weight: 500;
    color: var(--gold-bright);
    letter-spacing: 0.05em;
}
.cd-badge i {
    color: var(--gold);
}

.whitelist-promo-box {
    margin-top: 2rem;
    padding: 1rem 1.5rem;
    background: rgba(197,168,128,0.06);
    border: 1px dashed var(--gold-dark);
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
}
.promo-icon {
    font-size: 1.4rem;
    color: var(--gold);
}
.promo-text {
    font-family: var(--font-body);
    font-size: 1.05rem;
    color: var(--tx-1);
    margin: 0;
    line-height: 1.5;
}
.countdown-actions {
    margin-top: 2rem;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1.2rem;
    flex-wrap: wrap;
}
.btn-whitelist {
    padding: 14px 28px;
    font-size: 0.95rem;
}
.btn-locked[disabled] {
    opacity: 0.55;
    cursor: not-allowed;
    border-color: var(--border);
    color: var(--tx-3);
    background: rgba(0,0,0,0.2);
}
.btn-locked[disabled]:hover {
    border-color: var(--border);
    color: var(--tx-3);
    box-shadow: none;
}
.cd-lock-note {
    font-family: var(--font-ui);
    font-size: 0.8rem;
    color: var(--tx-3);
    margin-top: 1rem;
    font-style: italic;
}

/* Whitelist Modal Form */
.wl-form {
    display: flex;
    flex-direction: column;
    gap: 1.2rem;
    margin-top: 1.8rem;
    text-align: left;
}
.wl-field {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}
.wl-field label {
    font-family: var(--font-ui);
    font-size: 0.85rem;
    font-weight: 500;
    color: var(--gold);
    display: flex;
    align-items: center;
    gap: 6px;
}
.wl-field input {
    background: rgba(0,0,0,0.4);
    border: 1px solid var(--border);
    border-radius: 6px;
    padding: 12px 14px;
    font-family: var(--font-ui);
    font-size: 0.95rem;
    color: var(--tx-1);
    outline: none;
    transition: border-color var(--t-fast);
}
.wl-field input:focus {
    border-color: var(--gold);
    box-shadow: 0 0 10px rgba(197,168,128,0.2);
}
.wl-submit {
    margin-top: 0.5rem;
    width: 100%;
    justify-content: center;
}

@media (max-width: 640px) {
    .countdown-grid {
        gap: 0.5rem;
    }
    .cd-box {
        min-width: 65px;
        padding: 0.8rem 0.5rem;
    }
    .cd-num {
        font-size: 1.8rem;
    }
    .cd-unit {
        font-size: 0.55rem;
        letter-spacing: 0.15em;
    }
    .cd-sep {
        font-size: 1.4rem;
    }
    .countdown-label {
        font-size: 1.05rem;
    }
    .countdown-actions {
        flex-direction: column;
        width: 100%;
    }
    .countdown-actions button {
        width: 100%;
        justify-content: center;
    }
}

/* ═══════════════ SMART CONTRACTS SECTION ═══════════════ */
.contracts-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    gap: 1.8rem;
    margin-top: 2rem;
}
.contract-card {
    position: relative;
    padding: 2rem 1.8rem;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    transition: all var(--t-med);
}
.contract-card:hover {
    border-color: var(--gold);
    box-shadow: 0 15px 40px rgba(0,0,0,0.7), inset 0 0 20px rgba(197,168,128,0.05);
    transform: translateY(-3px);
}
.contract-badge {
    /* In normal flow, not absolutely positioned: the title can never run under it,
       regardless of how long the translated heading is. */
    align-self: flex-start;
    width: fit-content;
    max-width: 100%;
    margin-bottom: 1.1rem;
    font-family: var(--font-ui);
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.15em;
    padding: 5px 11px;
    border-radius: 4px;
    background: rgba(197,168,128,0.1);
    border: 1px solid var(--border-h);
    color: var(--gold-bright);
    display: inline-flex;
    align-items: center;
    gap: 6px;
    white-space: nowrap;
}
.contract-badge.gold-badge {
    background: rgba(197,168,128,0.18);
    border-color: var(--gold);
    color: #fff;
}
.contract-name {
    font-family: var(--font-head);
    font-size: 1.4rem;
    font-weight: 600;
    line-height: 1.3;
    color: var(--gold-bright);
    margin-bottom: 0.6rem;
    /* Long compound names (and German/Russian translations) must wrap, not overflow */
    overflow-wrap: break-word;
    text-wrap: balance;
}
.contract-desc {
    font-family: var(--font-body);
    font-size: 1.02rem;
    color: var(--tx-2);
    margin-bottom: 1.4rem;
    line-height: 1.6;
}
.contract-meta-list {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    margin-bottom: 1.4rem;
    padding: 0.8rem 1rem;
    background: rgba(0,0,0,0.25);
    border-radius: 6px;
    border: 1px solid var(--border);
}
.cm-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-family: var(--font-ui);
    font-size: 0.85rem;
}
.cm-label {
    color: var(--tx-3);
}
.cm-val {
    color: var(--tx-1);
    font-weight: 500;
}
.cm-val.gold-txt {
    color: var(--gold);
    font-weight: 600;
}
.contract-addr-box {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: var(--bg-1);
    border: 1px solid var(--border);
    border-radius: 6px;
    padding: 8px 12px;
    margin-bottom: 1.2rem;
}
.contract-addr-box code {
    font-family: 'Inter', monospace;
    font-size: 0.82rem;
    color: var(--gold);
    letter-spacing: 0.05em;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    margin-right: 8px;
}
.contract-status-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-family: var(--font-ui);
    font-size: 0.78rem;
    font-weight: 500;
    color: var(--tx-2);
}
.contract-status-badge.pending i {
    color: var(--gold);
}

.web3-integration-box {
    margin-top: 2rem;
    padding: 1.8rem 2rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem;
    background: radial-gradient(ellipse at left, rgba(197,168,128,0.08) 0%, rgba(11,17,24,0.95) 70%);
}
.web3-box-content {
    display: flex;
    align-items: center;
    gap: 1.2rem;
}
.web3-icon {
    font-size: 2.2rem;
    color: var(--gold);
}
.web3-title {
    font-family: var(--font-head);
    font-size: 1.3rem;
    font-weight: 600;
    color: var(--gold-bright);
    margin-bottom: 0.3rem;
}
.web3-desc {
    font-family: var(--font-body);
    font-size: 1rem;
    color: var(--tx-2);
    margin: 0;
    line-height: 1.5;
}

@media (max-width: 768px) {
    .web3-integration-box {
        flex-direction: column;
        align-items: flex-start;
        padding: 1.4rem 1.2rem;
    }
    .web3-integration-box button {
        width: 100%;
        justify-content: center;
    }
}




/* ─── Footer: legal & anti-phishing block ───────────────────────────── */
.footer-legal {
    margin-top: 32px;
    padding-top: 24px;
    border-top: 1px solid var(--ln, rgba(255,255,255,.08));
}
.footer-legal-links {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 22px;
    margin-bottom: 16px;
}
.footer-legal-links a {
    font-family: 'Inter', sans-serif;
    font-size: 12px;
    letter-spacing: .06em;
    text-transform: uppercase;
    text-decoration: none;
    color: var(--tx-2, #b8b8b8);
    transition: color .2s ease;
}
.footer-legal-links a:hover { color: var(--gold, #c9a227); }
.footer-disclaimer {
    font-family: 'Inter', sans-serif;
    max-width: 720px;
    font-size: 12px;
    line-height: 1.7;
    color: var(--tx-3, #8a8a8a);
}
.footer-disclaimer a { color: var(--gold, #c9a227); }
.footer-antiphish {
    font-family: 'Inter', sans-serif;
    display: flex;
    align-items: flex-start;
    gap: 8px;
    max-width: 720px;
    margin-top: 14px;
    font-size: 12px;
    line-height: 1.6;
    color: var(--tx-3, #8a8a8a);
}
.footer-antiphish i { margin-top: 3px; color: var(--gold, #c9a227); }

/* ─── Keyboard focus visibility (a11y) ──────────────────────────────── */
a:focus-visible,
button:focus-visible,
input:focus-visible {
    outline: 2px solid var(--gold, #c9a227);
    outline-offset: 3px;
    border-radius: 3px;
}

/* ─── Respect reduced-motion preference ─────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
        scroll-behavior: auto !important;
    }
    .sculpture-wrap { transform: none !important; }
}
