/* 舒俱来官网 Awwwards 级矿物夜幔设计系统样式表 - 静态缓存加固版 */
        :root {
            /* Color — 舒俱来真实矿物高阶色板 (Awwwards 级矿物夜幔) */
            --clr-deep: #07070D;
            --clr-surface: rgba(255, 255, 255, 0.04);
            --clr-surface-elevated: rgba(255, 255, 255, 0.07);
            --clr-surface-glass: rgba(15, 12, 24, 0.65);
            --clr-border: rgba(255, 255, 255, 0.08);
            --clr-border-highlight: rgba(201, 169, 110, 0.35);
            --clr-border-purple: rgba(155, 127, 200, 0.22);
            --clr-text: #E8E8EC;
            --clr-text-bright: #FFFFFF;
            --clr-muted: #8E8EA0;
            --clr-subtle: #5A5A6E;

            /* Accent & Gem Colors */
            --clr-primary: #9B7FC8;
            --clr-accent: #C4A4D4;
            --clr-gold: #C9A96E;
            --clr-gold-light: #E4CCA0;
            --clr-violet: #6B5B95;
            --clr-royal-deep: #4D2C91;
            --clr-sakura: #E8A5C8;

            /* Luxury Gradients */
            --gradient-luminous: linear-gradient(135deg, #1d122b 0%, #0d0915 50%, #150d22 100%);
            --gradient-gem: linear-gradient(135deg, #C4A4D4 0%, #9B7FC8 45%, #C9A96E 100%);
            --gradient-gold: linear-gradient(135deg, #E4CCA0 0%, #C9A96E 70%, #9D7B3E 100%);
            --gradient-sheen: linear-gradient(105deg, transparent 20%, rgba(255, 255, 255, 0.12) 50%, transparent 80%);
            --gradient-border-sheen: linear-gradient(135deg, rgba(201, 169, 110, 0.45) 0%, rgba(155, 127, 200, 0.18) 50%, rgba(255, 255, 255, 0.04) 100%);

            /* Design tokens */
            --font-sans: 'Noto Sans SC', system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
            --font-serif: 'Noto Serif SC', "Songti SC", STSong, "Source Han Serif SC", Georgia, "Times New Roman", serif;
            --radius-sm: 6px;
            --radius: 12px;
            --radius-lg: 20px;
            --radius-pill: 9999px;
            --space-xs: 0.25rem;
            --space-sm: 0.5rem;
            --space: 1rem;
            --space-md: 1.5rem;
            --space-lg: 2rem;
            --space-xl: 3.5rem;
            --space-2xl: 6rem;

            /* Motion — Awwwards 级高级阻尼曲线 (Expo Out) */
            --ease: cubic-bezier(0.16, 0.84, 0.3, 1);
            --ease-expo: cubic-bezier(0.19, 1, 0.22, 1);
            --ease-bounce: cubic-bezier(0.34, 1.56, 0.64, 1);
            --duration-fast: 180ms;
            --duration-normal: 280ms;
            --duration-slow: 480ms;

            /* Shadows & Glow */
            --shadow-soft: 0 10px 30px rgba(6, 6, 12, 0.6);
            --shadow-deep: 0 20px 50px rgba(5, 4, 10, 0.8);
            --glow-primary: 0 0 35px rgba(155, 127, 200, 0.25);
            --glow-gold: 0 0 25px rgba(201, 169, 110, 0.2);
            --glow-gem-card: 0 16px 40px -10px rgba(107, 91, 149, 0.3);
        }

        * { margin: 0; padding: 0; box-sizing: border-box; }

        html { scroll-behavior: smooth; font-size: 16px; }

        body {
            font-family: var(--font-sans);
            background: var(--clr-deep);
            color: var(--clr-text);
            line-height: 1.9;
            overflow-x: hidden;
        }

        /* ─── Background atmosphere ─── */
        body::before {
            content: '';
            position: fixed;
            inset: 0;
            background:
                radial-gradient(ellipse 80% 60% at 10% 20%, rgba(107,91,149,0.18) 0%, transparent 55%),
                radial-gradient(ellipse 70% 50% at 90% 80%, rgba(168,136,200,0.1) 0%, transparent 50%),
                radial-gradient(ellipse 50% 40% at 50% 50%, rgba(107,91,149,0.05) 0%, transparent 60%);
            pointer-events: none;
            z-index: 0;
        }

        /* grain texture */
        body::after {
            content: '';
            position: fixed;
            inset: 0;
            background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 512 512' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E");
            pointer-events: none;
            z-index: 0;
            opacity: 0.6;
        }

        /* ─── Typography ─── */
        h1, h2, h3 { font-family: 'Noto Serif SC', serif; font-weight: 600; line-height: 1.3; }

        /* ─── Navigation ─── */
        nav {
            position: fixed;
            top: 0; left: 0; right: 0;
            z-index: 1000;
            padding: 1.2rem 3rem;
            background: rgba(7,7,13,0.7);
            backdrop-filter: blur(24px) saturate(180%);
            border-bottom: 1px solid var(--clr-border);
            display: flex;
            justify-content: space-between;
            align-items: center;
        }

        .nav-brand {
            font-family: var(--font-serif);
            font-size: 1.35rem;
            letter-spacing: 0.12em;
            color: var(--clr-text-bright);
            display: inline-flex;
            align-items: center;
            gap: 0.6rem;
            text-decoration: none;
            transition: transform var(--duration-fast) var(--ease-expo);
        }
        .nav-brand::before {
            content: '';
            width: 8px;
            height: 8px;
            border-radius: 50%;
            background: linear-gradient(135deg, var(--clr-gold), var(--clr-primary));
            box-shadow: 0 0 12px var(--clr-gold);
            display: inline-block;
        }
        .nav-brand:hover {
            transform: scale(1.02);
        }
        .nav-brand span {
            color: var(--clr-primary);
            font-weight: 400;
            font-size: 0.78rem;
            letter-spacing: 0.16em;
            text-transform: uppercase;
            padding: 0.15rem 0.6rem;
            background: var(--clr-surface);
            border: 1px solid var(--clr-border-purple);
            border-radius: var(--radius-pill);
        }

        .nav-menu {
            display: flex;
            gap: 2.5rem;
            list-style: none;
        }

        /* Hamburger menu (mobile) */
        .menu-toggle {
            display: none;
            background: transparent;
            border: none;
            width: 44px;
            height: 44px;
            align-items: center;
            justify-content: center;
            cursor: pointer;
            padding: 0.2rem;
        }
        .menu-toggle span { display: block; width: 22px; height: 2px; background: var(--clr-muted); margin: 4px 0; transition: transform 180ms var(--ease), opacity 120ms; }

        /* Mobile: hide menu by default, show toggle */
        @media (max-width: 880px) {
            .menu-toggle { display: flex; }
            /* full-screen drawer */
            .nav-menu {
                display: flex;
                position: fixed;
                inset: 0;
                top: 0;
                right: 0;
                left: 0;
                background: linear-gradient(180deg, rgba(8,6,12,0.98), rgba(8,6,12,0.98));
                backdrop-filter: blur(8px) saturate(120%);
                flex-direction: column;
                align-items: center;
                justify-content: center;
                gap: 1.25rem;
                padding: 2.5rem;
                transform: translateX(100%);
                transition: transform 320ms var(--ease);
                z-index: 1500;
            }
            .nav-menu.active { transform: translateX(0); }
            .nav-menu a { padding: 0.8rem 1.2rem; display: block; border-radius: 10px; font-size: 1.1rem; }
            .nav-menu a:focus, .nav-menu a:hover { background: rgba(255,255,255,0.02); color: var(--clr-text); }
            .nav-quick { display: flex; gap: 0.75rem; }
        }

        /* hide quick links on desktop */
        .nav-quick { display: none; }

        .nav-quick-btn { display: inline-flex; align-items: center; gap: 0.5rem; padding: 0.6rem 0.9rem; border-radius: 8px; background: rgba(255,255,255,0.04); color: #fff; border: none; cursor: pointer; }
        .nav-quick-btn svg { opacity: 0.95; }
        .icon { width: 18px; height: 18px; display: inline-block; vertical-align: middle; }

        /* Toggle animation to cross */
        .menu-toggle.open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
        .menu-toggle.open span:nth-child(2) { opacity: 0; }
        .menu-toggle.open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

        .nav-menu a {
            color: var(--clr-muted);
            text-decoration: none;
            font-size: 0.82rem;
            letter-spacing: 0.06em;
            transition: color 0.25s;
            position: relative;
            cursor: pointer;
        }

        .nav-menu a::after {
            content: '';
            position: absolute;
            bottom: -4px;
            left: 0;
            width: 0;
            height: 1px;
            background: var(--clr-primary);
            transition: width 0.3s;
        }

        .nav-menu a:hover { color: var(--clr-text); }
        .nav-menu a:hover::after { width: 100%; }

        /* ─── Hero ─── */

        /* Hero entrance animations (staggered) */
        @keyframes fadeUp {
            from { opacity: 0; transform: translateY(10px); }
            to { opacity: 1; transform: translateY(0); }
        }

        .reveal.visible .hero-eyebrow { animation: fadeUp 560ms var(--ease) both; animation-delay: 120ms; }
        .reveal.visible .hero-title { animation: fadeUp 660ms var(--ease) both; animation-delay: 220ms; }
        .reveal.visible .hero-desc { animation: fadeUp 760ms var(--ease) both; animation-delay: 320ms; }
        .reveal.visible .hero-meta { animation: fadeUp 860ms var(--ease) both; animation-delay: 420ms; }

        /* subtle particle motion */
        @keyframes floatSlow {
            0% { transform: translateY(0) translateX(0) rotate(0deg); }
            50% { transform: translateY(-8px) translateX(6px) rotate(2deg); }
            100% { transform: translateY(0) translateX(0) rotate(0deg); }
        }
        .particle-1, .particle-2 { animation: floatSlow 8s infinite ease-in-out; }

        /* Utility / Buttons / Accessibility */
        .btn {
            display: inline-flex;
            align-items: center;
            gap: 0.6rem;
            padding: 0.6rem 1rem;
            background: linear-gradient(180deg, var(--clr-primary), var(--clr-accent));
            color: #fff;
            border-radius: 10px;
            border: none;
            box-shadow: var(--shadow-soft);
            cursor: pointer;
            transition: transform var(--duration-normal) var(--ease), box-shadow var(--duration-normal) var(--ease), filter var(--duration-normal) var(--ease);
        }

        .btn:active { transform: translateY(1px) scale(0.998); }
        .btn:hover { transform: translateY(-3px); filter: brightness(1.03); }

        a, button { -webkit-tap-highlight-color: transparent; }

        :focus { outline: none; }
        :focus-visible { outline: 3px solid rgba(196,164,212,0.22); outline-offset: 3px; border-radius: 8px; }

        /* Gallery micro-interactions */
        .gallery-cell img {
            transition: transform var(--duration-normal) var(--ease), box-shadow var(--duration-normal) var(--ease), opacity var(--duration-fast) var(--ease);
            will-change: transform, opacity;
            cursor: pointer;
            border-radius: 8px;
            display: block;
        }

        .gallery-cell:hover img,
        .gallery-cell:focus-within img {
            transform: translateY(-6px) scale(1.03);
            box-shadow: 0 20px 40px rgba(6,6,12,0.6);
        }

        /* Modal transitions */
        .modal,
        .lightbox {
            transition: opacity var(--duration-normal) var(--ease), transform var(--duration-normal) var(--ease);
        }

        /* Respect reduced motion */
        @media (prefers-reduced-motion: reduce) {
            * { transition: none !important; animation: none !important; }
        }
        .hero {
            min-height: 100vh;
            display: grid;
            grid-template-columns: 1fr 1fr;
            align-items: center;
            padding: 8rem 6rem 4rem;
            position: relative;
            gap: 4rem;
        }

        /* Mobile safe-area and touch optimizations */
        @media (max-width: 880px) {
            :root { --safe-bottom: env(safe-area-inset-bottom, 0px); }
            body { padding-bottom: calc(var(--safe-bottom) + 12px); }
            .nav-menu { padding-bottom: calc(var(--safe-bottom) + 2.5rem); }
            .nav-menu a { font-size: 1.2rem; min-height: 56px; display:flex; align-items:center; }
            .nav-quick-btn { padding: 0.9rem 1.1rem; border-radius: 12px; }
            .qr-trigger { width: 64px; height: 64px; font-size: 1.6rem; }
        }

        /* increase modal nav hit area for touch devices */
        @media (max-width: 600px) {
            .modal-nav { width: 72px; height: 72px; }
        }

        .hero-left {
            position: relative;
            z-index: 1;
        }

        .hero-eyebrow {
            display: inline-flex;
            align-items: center;
            gap: 0.6rem;
            padding: 0.45rem 1.2rem;
            background: var(--clr-surface);
            border: 1px solid var(--clr-border);
            border-radius: 100px;
            font-size: 0.72rem;
            letter-spacing: 0.12em;
            color: var(--clr-primary);
            text-transform: uppercase;
            margin-bottom: 2.5rem;
        }

        .hero-eyebrow::before {
            content: '';
            width: 6px;
            height: 6px;
            border-radius: 50%;
            background: var(--clr-gold);
        }

        .hero-title {
            font-size: clamp(3.8rem, 6.8vw, 6rem);
            color: var(--clr-text-bright);
            margin-bottom: 1.6rem;
            letter-spacing: -0.035em;
            line-height: 1.08;
            font-family: var(--font-serif);
            text-shadow: 0 10px 40px rgba(0,0,0,0.5);
        }

        .hero-title em {
            font-style: normal;
            background: linear-gradient(135deg, #FFFFFF 0%, var(--clr-accent) 40%, var(--clr-primary) 70%, var(--clr-gold) 100%);
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
            background-clip: text;
            display: block;
            font-size: 0.58em;
            letter-spacing: 0.08em;
            font-weight: 400;
            margin-top: 0.35rem;
        }

        .hero-desc {
            font-size: 1.12rem;
            line-height: 1.95;
            color: #A6A6BC;
            max-width: 520px;
            margin-bottom: 3.2rem;
            font-weight: 300;
            letter-spacing: 0.015em;
        }

        .hero-meta {
            display: flex;
            gap: 1.4rem;
            flex-wrap: wrap;
        }

        .meta-item {
            display: flex;
            flex-direction: column;
            gap: 0.35rem;
            padding: 0.85rem 1.4rem;
            background: rgba(255, 255, 255, 0.025);
            border: 1px solid var(--clr-border);
            border-radius: var(--radius);
            backdrop-filter: blur(12px);
            transition: all var(--duration-normal) var(--ease-expo);
            position: relative;
            overflow: hidden;
        }
        .meta-item::before {
            content: '';
            position: absolute;
            inset: 0;
            background: var(--gradient-sheen);
            opacity: 0;
            transition: opacity var(--duration-normal) var(--ease);
            pointer-events: none;
        }
        .meta-item:hover {
            transform: translateY(-4px);
            border-color: var(--clr-border-highlight);
            box-shadow: 0 12px 28px rgba(0, 0, 0, 0.4), var(--glow-gold);
        }
        .meta-item:hover::before {
            opacity: 1;
        }

        .meta-label {
            font-size: 0.68rem;
            letter-spacing: 0.16em;
            color: var(--clr-gold);
            text-transform: uppercase;
            font-weight: 500;
        }

        .meta-value {
            font-size: 1.25rem;
            color: var(--clr-text-bright);
            font-weight: 600;
            font-family: var(--font-serif);
            letter-spacing: 0.02em;
        }

        .hero-right {
            display: flex;
            align-items: center;
            justify-content: center;
            position: relative;
        }

        .gem-display {
            width: 420px;
            height: 420px;
            border-radius: 50%;
            background: radial-gradient(circle at 35% 35%, rgba(155,127,200,0.35) 0%, rgba(107,91,149,0.18) 45%, transparent 72%);
            border: 1px solid rgba(201, 169, 110, 0.28);
            box-shadow: 0 30px 90px -20px rgba(77, 44, 145, 0.5), inset 0 0 40px rgba(155, 127, 200, 0.2);
            display: flex;
            align-items: center;
            justify-content: center;
            position: relative;
            overflow: hidden;
            backdrop-filter: blur(8px);
            transition: transform var(--duration-slow) var(--ease-expo), box-shadow var(--duration-slow) var(--ease-expo);
        }
        .gem-display:hover {
            transform: scale(1.025) translateY(-6px);
            box-shadow: 0 40px 110px -15px rgba(107, 91, 149, 0.65), 0 0 50px rgba(201, 169, 110, 0.3);
            border-color: rgba(201, 169, 110, 0.55);
        }

        .gem-display::before {
            content: '';
            position: absolute;
            inset: 18px;
            border-radius: 50%;
            border: 1px solid rgba(196, 164, 212, 0.18);
            pointer-events: none;
        }

        .gem-display::after {
            content: '';
            position: absolute;
            inset: 42px;
            border-radius: 50%;
            border: 1px dashed rgba(201, 169, 110, 0.2);
            pointer-events: none;
            animation: spinSlow 40s linear infinite;
        }
        @keyframes spinSlow {
            from { transform: rotate(0deg); }
            to { transform: rotate(360deg); }
        }

        .gem-icon {
            font-size: 10rem;
            filter: drop-shadow(0 0 40px rgba(155,127,200,0.4));
        }

        .gem-display img {
            width: 100%;
            height: 100%;
            border-radius: 50%;
            object-fit: cover;
            object-position: 40% center;
            transform: scale(1.06);
            display: block;
            box-shadow: 0 12px 40px rgba(107,91,149,0.35);
            transition: transform 420ms var(--ease);
        }

        /* make images responsive by default */
        img { max-width: 100%; height: auto; display: block; }

        /* floating particles */
        .particle {
            position: absolute;
            border-radius: 50%;
            pointer-events: none;
        }

        /* Modal navigation buttons (prev/next) */
        .modal-nav {
            position: absolute;
            z-index: 10;
            background: var(--clr-accent);
            border: 1px solid rgba(0,0,0,0.08);
            color: #ffffff;
            width: 56px;
            height: 56px;
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 1.6rem;
            cursor: pointer;
            transition: transform 180ms var(--ease), filter 180ms var(--ease), box-shadow 180ms var(--ease);
            box-shadow: 0 8px 22px rgba(0,0,0,0.28);
        }
        .modal-nav:hover { transform: translateY(-2px) scale(1.02); filter: brightness(0.94); }
        .modal-nav:active { transform: translateY(0) scale(0.98); }
        .modal-nav:focus { outline: 2px solid rgba(255,255,255,0.9); outline-offset: 3px; box-shadow: 0 0 0 4px rgba(196,164,212,0.12); }
        @media (max-width: 600px) { .modal-nav { width:44px; height:44px; font-size:1.2rem; } }

        /* Responsive: tablet and mobile adjustments */
        @media (max-width: 1024px) {
            nav { padding: 1rem 2rem; }
            section { padding: 4.5rem 2.5rem; }
            html { font-size: 15px; }
            .modal-img-wrap { max-width: 640px; }
            .modal-nav { width: 64px; height:64px; }
        }

        @media (max-width: 600px) {
            nav { padding: 0.8rem 1rem; }
            .nav-menu { gap: 1rem; }
            .nav-brand { font-size: 1rem; }
            html { font-size: 14px; }
            section { padding: 3rem 1rem; }
            .modal-content { margin: 1.5rem; }
            .modal-img-wrap { max-width: 320px; }
            .modal-nav { width: 68px; height: 68px; font-size: 1.2rem; }
            button, .nav-menu a, .modal-close { min-height: 44px; min-width: 44px; }
        }

        /* Accessibility helpers */
        .skip-link {
            position: absolute;
            left: -9999px;
            top: auto;
            width: 1px;
            height: 1px;
            overflow: hidden;
        }
        .skip-link:focus {
            left: 1rem;
            top: 1rem;
            width: auto;
            height: auto;
            padding: 0.5rem 0.75rem;
            background: rgba(0,0,0,0.8);
            color: #fff;
            border-radius: 6px;
            z-index: 2000;
        }

        /* Reduce motion preference */
        @media (prefers-reduced-motion: reduce) {
            * { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; scroll-behavior: auto !important; }
        }

        .particle-1 {
            width: 300px; height: 300px;
            top: -50px; right: -80px;
            background: radial-gradient(circle, rgba(107,91,149,0.15) 0%, transparent 70%);
        }

        .particle-2 {
            width: 200px; height: 200px;
            bottom: 10%; left: -60px;
            background: radial-gradient(circle, rgba(196,164,212,0.1) 0%, transparent 70%);
        }

        .scroll-indicator {
            position: absolute;
            bottom: 2.5rem;
            left: 50%;
            transform: translateX(-50%);
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: 0.5rem;
            color: var(--clr-muted);
            font-size: 0.72rem;
            letter-spacing: 0.15em;
            animation: float 3s ease-in-out infinite;
        }

        @keyframes float {
            0%, 100% { transform: translateX(-50%) translateY(0); }
            50% { transform: translateX(-50%) translateY(8px); }
        }

        /* ─── Section base ─── */
        section {
            position: relative;
            z-index: 1;
            padding: 7rem 6rem;
            max-width: 1400px;
            margin: 0 auto;
        }

        .section-header {
            margin-bottom: 4rem;
        }

        .section-tag {
            display: inline-block;
            font-size: 0.68rem;
            letter-spacing: 0.18em;
            text-transform: uppercase;
            color: var(--clr-primary);
            margin-bottom: 1rem;
            padding: 0.3rem 0.9rem;
            background: var(--clr-surface);
            border: 1px solid rgba(155,127,200,0.2);
            border-radius: 100px;
        }

        .section-title {
            font-size: clamp(2rem, 3.5vw, 2.8rem);
            margin-bottom: 1rem;
        }

        .section-sub {
            color: var(--clr-muted);
            font-size: 1rem;
            max-width: 540px;
            font-weight: 300;
        }

        /* ─── About / Intro ─── */
        .intro-grid {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 5rem;
            align-items: center;
        }

        .intro-text h3 {
            font-size: 1.8rem;
            color: var(--clr-accent);
            margin-bottom: 1.8rem;
        }

        .intro-text p {
            color: var(--clr-muted);
            font-size: 0.98rem;
            margin-bottom: 1.2rem;
            font-weight: 300;
        }

        .intro-visual {
            position: relative;
            aspect-ratio: 1;
            max-width: 420px;
        }

        .intro-visual::before {
            content: '';
            position: absolute;
            inset: 0;
            border-radius: 24px;
            background: linear-gradient(135deg, rgba(107,91,149,0.2) 0%, rgba(196,164,212,0.05) 100%);
            border: 1px solid var(--clr-border);
        }

        .intro-visual-inner {
            position: absolute;
            inset: 3px;
            border-radius: 21px;
            background: var(--clr-surface);
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 9rem;
        }

        .intro-visual-inner img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            border-radius: 18px;
            display: block;
        }

/* ─── Cards ─── */
        .cards-grid {
            display: grid;
            grid-template-columns: repeat(auto-fill, minmax(360px, 1fr));
            gap: 1.6rem;
            align-items: stretch;
        }

        .section-header { margin-bottom: 3rem; }

        .card {
            background: linear-gradient(180deg, rgba(155,127,200,0.04) 0%, rgba(107,91,149,0.02) 100%);
            border: 1px solid var(--clr-border);
            border-radius: 22px;
            padding: 1.5rem;
            transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
            position: relative;
            overflow: hidden;
            display: flex;
            flex-direction: column;
            gap: 1.4rem;
        }

        @media (min-width: 768px) {
            .card {
                flex-direction: row;
                align-items: flex-start;
                gap: 1.5rem;
                padding: 1.5rem;
            }
        }

        .card::before {
            content: '';
            position: absolute;
            top: 0; left: 0; right: 0;
            height: 1px;
            background: linear-gradient(90deg, transparent, rgba(155,127,200,0.5), transparent);
            opacity: 0;
            transition: opacity 0.35s;
        }

        .card::after {
            content: '';
            position: absolute;
            inset: 0;
            border-radius: 22px;
            background: radial-gradient(ellipse at top left, rgba(155,127,200,0.08), transparent 60%);
            opacity: 0;
            transition: opacity 0.4s;
            pointer-events: none;
        }

        .card:hover {
            border-color: rgba(155,127,200,0.4);
            transform: translateY(-4px);
            box-shadow: 0 20px 44px -20px rgba(107,91,149,0.5);
        }

        .card:hover::before,
        .card:hover::after { opacity: 1; }

.card-icon {
            width: 100%;
            aspect-ratio: 1 / 1;
            border-radius: 18px;
            background: linear-gradient(135deg, var(--clr-violet) 0%, rgba(155,127,200,0.3) 100%);
            display: block;
            overflow: hidden;
            padding: 0;
            flex-shrink: 0;
            position: relative;
            box-shadow: inset 0 0 0 1px rgba(155,127,200,0.15), 0 8px 20px -10px rgba(0,0,0,0.6);
        }

        @media (min-width: 768px) {
            .card-icon {
                width: 152px;
            }
        }
        @media (min-width: 1024px) {
            .card-icon {
                width: 168px;
            }
        }
        .card-icon img,
        .card-icon picture {
            width: 100%;
            height: 100%;
            display: block;
            border-radius: 18px;
            object-fit: cover;
            transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
        }
        .card:hover .card-icon img {
            transform: scale(1.06);
        }

        .card-body {
            flex: 1;
            min-width: 0;
            display: flex;
            flex-direction: column;
            gap: 0.5rem;
            padding: 0.2rem 0;
        }

        .card-num {
            display: inline-flex;
            align-items: center;
            gap: 0.5rem;
            font-family: 'Noto Serif SC', serif;
            font-size: 0.72rem;
            letter-spacing: 0.22em;
            color: var(--clr-primary);
            margin-bottom: 0.2rem;
            font-weight: 500;
        }
        .card-num::before {
            content: '';
            display: inline-block;
            width: 18px;
            height: 1px;
            background: var(--clr-primary);
            opacity: 0.6;
        }

        .card h4 {
            font-size: 1.3rem;
            margin-bottom: 0.4rem;
            color: #FFFFFF;
            font-weight: 600;
            letter-spacing: 0.01em;
            line-height: 1.3;
        }

        .card p {
            color: #B8B8C8;
            font-size: 0.92rem;
            line-height: 1.75;
        }

        /* ─── Benefits ─── */
        .benefits-grid {
            display: grid;
            grid-template-columns: repeat(2, 1fr);
            gap: 1.2rem;
        }

        .benefit-item {
            display: flex;
            align-items: flex-start;
            gap: 1rem;
            padding: 1.5rem;
            background: var(--clr-surface);
            border: 1px solid var(--clr-border);
            border-radius: 14px;
        }

.benefit-icon {
            width: 80px;
            height: 80px;
            border-radius: 14px;
            background: linear-gradient(135deg, var(--clr-violet), rgba(155,127,200,0.3));
            display: block;
            flex-shrink: 0;
            overflow: hidden;
            padding: 0;
            position: relative;
        }
        @media (min-width: 768px) {
            .benefit-icon {
                width: 92px;
                height: 92px;
            }
        }
        .benefit-icon img,
        .benefit-icon picture {
            width: 100%;
            height: 100%;
            display: block;
            border-radius: 14px;
            object-fit: cover;
            transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1);
        }
        .benefit-item:hover .benefit-icon img {
            transform: scale(1.06);
        }

        .benefit-item {
            transition: all 0.35s cubic-bezier(0.16, 1, 0.3, 1);
        }
        .benefit-item:hover {
            border-color: rgba(155,127,200,0.3);
            transform: translateY(-2px);
        }

.benefit-text h5 {
            font-size: 1.1rem;
            margin-bottom: 0.4rem;
            color: #FFFFFF;
            font-weight: 600;
            letter-spacing: 0.01em;
        }

        .benefit-text p {
            font-size: 0.9rem;
            color: #B8B8C8;
            line-height: 1.7;
        }

        /* ─── Origins ─── */
        .origins-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(340px, 1fr));
            gap: 1.5rem;
        }

        .origin-card {
            background: var(--clr-surface);
            border: 1px solid var(--clr-border);
            border-radius: 20px;
            overflow: hidden;
        }

        .origin-header {
            padding: 1.5rem 2rem;
            background: linear-gradient(135deg, rgba(107,91,149,0.15) 0%, transparent 100%);
            display: flex;
            align-items: center;
            gap: 1rem;
            border-bottom: 1px solid var(--clr-border);
        }

        .origin-flag { font-size: 2rem; }

        .origin-name {
            font-family: 'Noto Serif SC', serif;
            font-size: 1.2rem;
        }

        .origin-body { padding: 1.5rem 2rem; }

        .origin-body p {
            color: var(--clr-muted);
            font-size: 0.88rem;
            margin-bottom: 1rem;
        }

        .origin-tags {
            display: flex;
            gap: 0.5rem;
            flex-wrap: wrap;
        }

        .origin-tag {
            padding: 0.25rem 0.7rem;
            background: rgba(168,136,200,0.1);
            border: 1px solid rgba(168,136,200,0.2);
            border-radius: 100px;
            font-size: 0.72rem;
            color: var(--clr-accent);
        }

        /* ─── Identify ─── */
        .steps-row {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 1.5rem;
        }

        .step-card {
            padding: 2rem;
            background: var(--clr-surface);
            border: 1px solid var(--clr-border);
            border-radius: 16px;
            text-align: center;
        }

        .step-num {
            width: 44px; height: 44px;
            border-radius: 50%;
            background: linear-gradient(135deg, var(--clr-violet), var(--clr-primary));
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 1.1rem;
            font-weight: 700;
            margin: 0 auto 1.2rem;
        }

        .step-card h4 { font-size: 1rem; margin-bottom: 0.6rem; }
        .step-card p { color: var(--clr-muted); font-size: 0.85rem; }

        /* ─── Care ─── */
        .care-grid {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 3rem;
        }

        .care-list { list-style: none; }

        .care-list li {
            display: flex;
            align-items: flex-start;
            gap: 1rem;
            padding: 1rem 0;
            border-bottom: 1px solid var(--clr-border);
        }

        .care-icon { font-size: 1.1rem; flex-shrink: 0; }

        .care-list li strong {
            display: block;
            font-size: 0.9rem;
            color: var(--clr-accent);
            margin-bottom: 0.25rem;
        }

        .care-list li span {
            font-size: 0.82rem;
            color: var(--clr-muted);
        }

        /* ─── Gallery ─── */
        .gallery-bento {
            display: grid;
            grid-template-columns: repeat(4, 1fr);
            grid-template-rows: repeat(3, 180px);
            gap: 0.75rem;
        }

        .gallery-cell {
            border-radius: var(--radius-lg);
            position: relative;
            overflow: hidden;
            cursor: pointer;
            box-shadow: 0 10px 30px rgba(0, 0, 0, 0.4);
            border: 1px solid var(--clr-border);
            transition: all var(--duration-normal) var(--ease-expo);
        }

        .gallery-cell::after {
            content: '';
            position: absolute;
            inset: 0;
            background: linear-gradient(180deg, transparent 50%, rgba(7, 7, 13, 0.85) 100%);
            opacity: 0.6;
            transition: opacity var(--duration-normal) var(--ease);
            pointer-events: none;
        }

        .gallery-cell:hover {
            transform: translateY(-8px) scale(1.025);
            border-color: var(--clr-border-highlight);
            box-shadow: 0 25px 60px -10px rgba(107, 91, 149, 0.5), var(--glow-gold);
        }

        .gallery-cell:hover::after {
            opacity: 0.3;
        }

        .gallery-cell img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            display: block;
            transition: transform var(--duration-slow) var(--ease-expo);
        }

        .gallery-cell:hover img {
            transform: scale(1.06);
        }

        /* 去掉证书背面图片的可见白边：通过放大与裁切视觉上去除边缘 */
        #certificates .card { overflow: hidden; }
        #certificates img[alt="证书背面"] {
            width: calc(100% + 28px);
            margin-left: -14px;
            height: auto;
            object-fit: cover;
            display: block;
            border-radius: 12px;
        }

        .gallery-cell::before {
            content: '';
            position: absolute;
            inset: 0;
            border-radius: 16px;
        }

        .gallery-cell:nth-child(1) {
            grid-column: span 2; grid-row: span 2;
            background: linear-gradient(135deg, #2d1f4a 0%, #4a3570 40%, #6B5B95 100%);
        }
        .gallery-cell:nth-child(2) {
            background: linear-gradient(135deg, #1f2d4a 0%, #354a70 60%, #4a6090 100%);
        }
        .gallery-cell:nth-child(3) {
            background: linear-gradient(135deg, #2d1f4a 0%, #3d2a5a 100%);
        }
        .gallery-cell:nth-child(4) {
            background: linear-gradient(135deg, #4a3570 0%, #8B7FB8 60%, #A8D8EA 100%);
        }
        .gallery-cell:nth-child(5) {
            background: linear-gradient(135deg, #1a2d4a 0%, #2a4a6a 100%);
        }
        .gallery-cell:nth-child(6) {
            grid-column: span 2;
            background: linear-gradient(135deg, #3d2a5a 0%, #6B5B95 50%, #A8D8EA 100%);
        }

        .gallery-cell-label {
            position: absolute;
            bottom: 0.8rem; left: 1rem;
            font-size: 0.78rem;
            color: rgba(255,255,255,0.7);
            font-weight: 500;
            letter-spacing: 0.05em;
        }

        .gallery-cell-icon {
            position: absolute;
            top: 50%; left: 50%;
            transform: translate(-50%, -50%);
            font-size: 3rem;
            opacity: 0.6;
        }

        /* ─── Price ─── */
        .price-table-wrap {
            background: var(--clr-surface);
            border: 1px solid var(--clr-border);
            border-radius: 20px;
            overflow: hidden;
        }

        .price-table {
            width: 100%;
            border-collapse: collapse;
        }

        .price-table th,
        .price-table td {
            padding: 1rem 1.5rem;
            text-align: left;
            border-bottom: 1px solid var(--clr-border);
        }

        .price-table th {
            font-size: 0.72rem;
            letter-spacing: 0.1em;
            text-transform: uppercase;
            color: var(--clr-muted);
            font-weight: 400;
            background: rgba(107,91,149,0.08);
        }

        .price-table tr:last-child td { border-bottom: none; }

        .grade-badge {
            display: inline-block;
            padding: 0.2rem 0.6rem;
            border-radius: 100px;
            font-size: 0.72rem;
            font-weight: 600;
        }

        .grade-s { background: linear-gradient(135deg, var(--clr-gold), #D4AF37); color: #0a0a0f; }
        .grade-a { background: rgba(168,136,200,0.15); color: var(--clr-accent); border: 1px solid rgba(168,136,200,0.3); }
        .grade-b { background: rgba(107,91,149,0.15); color: var(--clr-primary); border: 1px solid rgba(107,91,149,0.3); }

        /* ─── FAQ ─── */
        .faq-list { max-width: 760px; }

        .faq-item {
            border: 1px solid var(--clr-border);
            border-radius: 14px;
            margin-bottom: 0.8rem;
            overflow: hidden;
            background: var(--clr-surface);
        }

        .faq-q {
            padding: 1.2rem 1.5rem;
            cursor: pointer;
            display: flex;
            justify-content: space-between;
            align-items: center;
            font-size: 0.95rem;
            transition: background 0.25s;
        }

        .faq-q:hover { background: rgba(255,255,255,0.02); }

        .faq-q::after {
            content: '+';
            font-size: 1.3rem;
            color: var(--clr-primary);
            transition: transform 0.3s;
        }

        .faq-item.active .faq-q::after { transform: rotate(45deg); }

        .faq-a {
            padding: 0 1.5rem;
            max-height: 0;
            overflow: hidden;
            transition: all 0.3s;
            color: var(--clr-muted);
            font-size: 0.88rem;
            line-height: 1.8;
        }

        .faq-item.active .faq-a {
            padding: 0 1.5rem 1.2rem;
            max-height: 400px;
        }

        /* ─── Friendly Links ─── */
        .links-section {
            padding: 5rem 6rem;
            max-width: 1400px;
            margin: 0 auto;
        }

        .links-container {
            margin-top: 2rem;
        }

        .links-grid {
            display: grid;
            grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
            gap: 1.2rem;
            margin-bottom: 2rem;
        }

        .link-card {
            background: var(--clr-surface);
            border: 1px solid var(--clr-border);
            border-radius: var(--radius);
            padding: 1.25rem 1.5rem;
            text-decoration: none;
            color: inherit;
            display: flex;
            flex-direction: column;
            justify-content: space-between;
            transition: all 0.25s var(--ease);
            position: relative;
            overflow: hidden;
        }

        .link-card::before {
            content: '';
            position: absolute;
            top: 0; left: 0; right: 0; height: 2px;
            background: linear-gradient(90deg, transparent, var(--clr-primary), transparent);
            opacity: 0;
            transition: opacity 0.25s;
        }

        .link-card:hover {
            transform: translateY(-3px);
            border-color: rgba(155, 127, 200, 0.4);
            background: rgba(155, 127, 200, 0.06);
            box-shadow: 0 12px 28px rgba(0, 0, 0, 0.35);
        }

        .link-card:hover::before {
            opacity: 1;
        }

        .link-card-top {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-bottom: 0.5rem;
        }

        .link-name {
            font-family: var(--font-serif);
            font-size: 1.05rem;
            font-weight: 600;
            color: var(--clr-text);
            transition: color 0.2s;
        }

        .link-card:hover .link-name {
            color: var(--clr-accent);
        }

        .link-arrow {
            color: var(--clr-muted);
            font-size: 0.9rem;
            transition: transform 0.25s, color 0.2s;
        }

        .link-card:hover .link-arrow {
            color: var(--clr-gold);
            transform: translate(2px, -2px);
        }

        .link-desc {
            font-size: 0.82rem;
            color: var(--clr-muted);
            line-height: 1.5;
            margin: 0;
            display: -webkit-box;
            -webkit-line-clamp: 2;
            -webkit-box-orient: vertical;
            overflow: hidden;
        }

        .links-empty {
            text-align: center;
            padding: 3rem;
            color: var(--clr-muted);
            background: var(--clr-surface);
            border-radius: var(--radius);
            border: 1px dashed var(--clr-border);
            margin-bottom: 2rem;
        }

        .links-apply-bar {
            background: rgba(107, 91, 149, 0.08);
            border: 1px solid rgba(155, 127, 200, 0.15);
            border-radius: var(--radius);
            padding: 1rem 1.5rem;
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 1rem;
            flex-wrap: wrap;
        }

        .apply-info {
            display: flex;
            align-items: center;
            gap: 0.6rem;
            font-size: 0.88rem;
            color: var(--clr-muted);
        }

        .apply-btn {
            background: rgba(255, 255, 255, 0.06);
            color: var(--clr-accent);
            border: 1px solid rgba(155, 127, 200, 0.25);
            padding: 0.5rem 1.2rem;
            border-radius: 8px;
            font-size: 0.85rem;
            cursor: pointer;
            transition: all 0.2s;
        }

        .apply-btn:hover {
            background: var(--clr-primary);
            color: #fff;
            border-color: var(--clr-primary);
        }

        /* ─── Link Apply Modal ─── */
        .link-modal-card {
            background: #130d22;
            border: 1px solid rgba(155, 127, 200, 0.25);
            border-radius: 16px;
            width: min(480px, 92%);
            padding: 2.2rem 2rem;
            position: relative;
            box-shadow: 0 20px 50px rgba(0, 0, 0, 0.7);
            color: var(--clr-text);
            animation: modalFadeIn 0.25s var(--ease);
        }
        @keyframes modalFadeIn {
            from { opacity: 0; transform: scale(0.95) translateY(10px); }
            to { opacity: 1; transform: scale(1) translateY(0); }
        }
        .modal-close-btn {
            position: absolute;
            top: 1rem; right: 1.2rem;
            background: transparent;
            border: none;
            color: var(--clr-muted);
            font-size: 1.6rem;
            cursor: pointer;
            line-height: 1;
            padding: 0.2rem;
            transition: color 0.2s;
        }
        .modal-close-btn:hover { color: #fff; }
        .link-modal-header { margin-bottom: 1.5rem; text-align: left; }
        .link-modal-header h3 { font-size: 1.3rem; color: var(--clr-accent); margin-bottom: 0.4rem; }
        .link-modal-header p { font-size: 0.84rem; color: var(--clr-muted); line-height: 1.5; margin: 0; }
        .link-modal-card .form-item { margin-bottom: 1.1rem; text-align: left; }
        .link-modal-card label { display: block; font-size: 0.85rem; color: var(--clr-text); margin-bottom: 0.4rem; font-weight: 500; }
        .link-modal-card input, .link-modal-card textarea {
            width: 100%;
            background: rgba(255, 255, 255, 0.05);
            border: 1px solid rgba(255, 255, 255, 0.12);
            border-radius: 8px;
            padding: 0.75rem 0.9rem;
            color: #fff;
            font-size: 0.9rem;
            box-sizing: border-box;
            font-family: inherit;
            transition: all 0.2s;
        }
        .link-modal-card input:focus, .link-modal-card textarea:focus {
            outline: none;
            border-color: var(--clr-primary);
            background: rgba(255, 255, 255, 0.08);
            box-shadow: 0 0 0 3px rgba(155, 127, 200, 0.15);
        }
        .link-submit-btn {
            width: 100%;
            background: linear-gradient(135deg, var(--clr-violet), var(--clr-primary));
            color: #fff;
            border: none;
            padding: 0.85rem;
            border-radius: 8px;
            font-size: 0.95rem;
            font-weight: 600;
            cursor: pointer;
            transition: filter 0.2s, transform 0.15s;
            margin-top: 0.5rem;
        }
        .link-submit-btn:hover { filter: brightness(1.1); transform: translateY(-1px); }
        .link-submit-btn:disabled { opacity: 0.6; cursor: not-allowed; }

        /* ─── Footer ─── */
        footer {
            position: relative;
            z-index: 1;
            border-top: 1px solid var(--clr-border);
            padding: 4rem 6rem 2rem;
            background: rgba(7,7,13,0.8);
        }

        .footer-inner {
            max-width: 1400px;
            margin: 0 auto;
            display: grid;
            grid-template-columns: 2fr 1fr 1fr;
            gap: 4rem;
            margin-bottom: 3rem;
        }

        .footer-brand h3 {
            font-family: 'Noto Serif SC', serif;
            font-size: 1.3rem;
            color: var(--clr-accent);
            margin-bottom: 1rem;
        }

        .footer-brand p {
            color: var(--clr-muted);
            font-size: 0.85rem;
        }

        .footer-col h4 {
            font-size: 0.72rem;
            letter-spacing: 0.12em;
            text-transform: uppercase;
            color: var(--clr-primary);
            margin-bottom: 1.2rem;
        }

        .footer-col ul { list-style: none; }

        .footer-col li { margin-bottom: 0.6rem; }

        .footer-col a {
            color: var(--clr-muted);
            text-decoration: none;
            font-size: 0.88rem;
            transition: color 0.25s;
        }

        .footer-col a:hover { color: var(--clr-accent); }

        .footer-bottom {
            max-width: 1400px;
            margin: 0 auto;
            padding-top: 2rem;
            border-top: 1px solid var(--clr-border);
            display: flex;
            justify-content: space-between;
            align-items: center;
            flex-wrap: wrap;
            gap: 1rem;
        }

        .footer-copy {
            color: var(--clr-muted);
            font-size: 0.82rem;
        }

        .icp-link {
            display: inline-flex;
            align-items: center;
            gap: 0.5rem;
            color: var(--clr-muted);
            font-size: 0.82rem;
            text-decoration: none;
            padding: 0.5rem 1rem;
            background: var(--clr-surface);
            border: 1px solid var(--clr-border);
            border-radius: 100px;
            transition: all 0.25s;
        }

        .icp-link:hover {
            color: var(--clr-accent);
            border-color: rgba(155,127,200,0.3);
        }

        /* ─── Mobile menu toggle ─── */
        .menu-toggle {
            display: none;
            flex-direction: column;
            gap: 5px;
            cursor: pointer;
            padding: 0.5rem;
        }

        .menu-toggle span {
            width: 22px; height: 2px;
            background: var(--clr-text);
        }

        /* ─── Animations ─── */
        .reveal {
            opacity: 0;
            transform: translateY(24px);
            transition: all 0.6s cubic-bezier(0.16, 1, 0.3, 1);
        }

        .reveal.visible {
            opacity: 1;
            transform: translateY(0);
        }

/* ─── Responsive ─── */
        @media (max-width: 1024px) {
            section { padding: 5rem 3rem; }
            .hero { padding: 7rem 3rem 4rem; grid-template-columns: 1fr; }
            .hero-right { display: none; }
            .intro-grid { grid-template-columns: 1fr; }
            .steps-row { grid-template-columns: repeat(2, 1fr); }
            .gallery-bento { grid-template-columns: repeat(2, 1fr); }
            .gallery-cell:nth-child(1) { grid-column: span 2; }
            .care-grid { grid-template-columns: 1fr; }
            .footer-inner { grid-template-columns: 1fr 1fr; }
        }

@media (max-width: 768px) {
            section { padding: 4rem 1.5rem; }
            nav { padding: 1rem 1.5rem; }
            .menu-toggle { display: flex; }
            .steps-row { grid-template-columns: 1fr; }
            .benefits-grid { grid-template-columns: 1fr; }
            .cards-grid { grid-template-columns: 1fr; }
            .links-section { padding: 3rem 1.5rem; }
            .links-grid { grid-template-columns: 1fr; }
            .links-apply-bar { flex-direction: column; align-items: flex-start; gap: 0.8rem; }
            .footer-inner { grid-template-columns: 1fr; gap: 2rem; }
            .footer-bottom { flex-direction: column; }
        }

        /* ─── Awwwards 级高定悬浮岛 (Luxury Ambient Island & QR Panels) ─── */
        .qr-float {
            position: fixed;
            bottom: 2.2rem;
            right: 2.2rem;
            z-index: 1200;
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: 0.75rem;
        }

        .qr-trigger-wrap {
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: 0.35rem;
            position: relative;
        }

        .qr-trigger {
            width: 56px;
            height: 56px;
            border-radius: var(--radius-pill);
            background: linear-gradient(135deg, rgba(30, 20, 48, 0.9) 0%, rgba(15, 10, 25, 0.95) 100%);
            border: 1px solid var(--clr-border-highlight);
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 1.4rem;
            cursor: pointer;
            box-shadow: 0 12px 32px -4px rgba(0, 0, 0, 0.6), var(--glow-gold);
            backdrop-filter: blur(16px);
            transition: all var(--duration-normal) var(--ease-expo);
            position: relative;
            overflow: hidden;
        }

        .qr-trigger::before {
            content: '';
            position: absolute;
            inset: 0;
            background: var(--gradient-sheen);
            opacity: 0;
            transition: opacity var(--duration-fast) var(--ease);
            pointer-events: none;
        }

        .qr-trigger:hover {
            transform: translateY(-4px) scale(1.06);
            border-color: var(--clr-gold-light);
            box-shadow: 0 18px 45px -5px rgba(107, 91, 149, 0.55), 0 0 30px rgba(201, 169, 110, 0.35);
        }

        .qr-trigger:hover::before {
            opacity: 1;
        }

        .qr-label {
            font-size: 0.68rem;
            color: var(--clr-text-bright);
            letter-spacing: 0.12em;
            text-transform: uppercase;
            font-weight: 500;
            text-shadow: 0 2px 6px rgba(0, 0, 0, 0.8);
            background: rgba(7, 7, 13, 0.6);
            padding: 0.1rem 0.5rem;
            border-radius: var(--radius-pill);
            border: 1px solid rgba(255, 255, 255, 0.06);
        }

        .qr-panel {
            display: none;
            position: absolute;
            bottom: 75px;
            right: 0;
            background: rgba(14, 10, 22, 0.92);
            border: 1px solid var(--clr-border-highlight);
            border-radius: var(--radius-lg);
            padding: 1.6rem;
            backdrop-filter: blur(28px);
            text-align: center;
            min-width: 230px;
            box-shadow: 0 25px 60px -10px rgba(0, 0, 0, 0.85), var(--glow-primary);
            animation: modalFadeIn var(--duration-normal) var(--ease-expo) forwards;
            transform-origin: bottom right;
        }

        @keyframes modalFadeIn {
            from { opacity: 0; transform: translateY(12px) scale(0.96); }
            to { opacity: 1; transform: translateY(0) scale(1); }
        }

        .qr-panel.active { display: block; }

        .qr-panel h4 {
            font-family: var(--font-serif);
            font-size: 1.05rem;
            margin-bottom: 1.1rem;
            color: var(--clr-gold-light);
            letter-spacing: 0.06em;
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 0.4rem;
        }

        .qr-code {
            width: 160px;
            height: 160px;
            background: #FFFFFF;
            border-radius: var(--radius);
            margin: 0 auto 0.8rem;
            padding: 10px;
            box-sizing: border-box;
            box-shadow: 0 8px 24px rgba(0, 0, 0, 0.35);
        }

        .qr-code img {
            width: 100%;
            height: 100%;
            object-fit: contain;
            display: block;
        }

        .qr-panel p {
            font-size: 0.78rem;
            color: var(--clr-muted);
            letter-spacing: 0.04em;
            line-height: 1.5;
        }

        .qr-close {
            margin-top: 1rem;
            padding: 0.4rem 0.8rem;
            font-size: 0.75rem;
            color: var(--clr-text);
            background: rgba(255, 255, 255, 0.06);
            border: 1px solid var(--clr-border);
            border-radius: var(--radius-pill);
            cursor: pointer;
            transition: all var(--duration-fast) var(--ease);
            display: inline-block;
        }

        .qr-close:hover {
            background: rgba(255, 255, 255, 0.12);
            color: #FFFFFF;
            border-color: var(--clr-border-highlight);
        }

        .qr-link {
            display: inline-block;
            margin-top: 0.6rem;
            font-size: 0.75rem;
            color: var(--clr-gold);
            text-decoration: none;
            word-break: break-all;
            border-bottom: 1px dashed currentColor;
            padding-bottom: 2px;
            transition: color var(--duration-fast) var(--ease);
        }

        .qr-link:hover { color: var(--clr-text-bright); }

        @media (min-width: 769px) {
            .qr-link { display: inline-block; }
        }

        .qr-close {
            margin-top: 0.8rem;
            font-size: 0.75rem;
            color: var(--clr-muted);
            cursor: pointer;
        }

        .qr-close:hover { color: var(--clr-accent); }
        /* CTA and large touch targets */
        .cta {
            background: var(--clr-primary);
            color: #fff;
            padding: 0.9rem 1.2rem;
            border-radius: 10px;
            border: none;
            cursor: pointer;
            font-weight: 600;
            min-height: 48px;
            min-width: 48px;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            gap: 0.5rem;
            box-shadow: 0 8px 18px rgba(0,0,0,0.18);
            transition: transform 160ms var(--ease), filter 160ms var(--ease);
        }
        .cta:active { transform: translateY(1px) scale(0.998); }
        .cta:focus { outline: 3px solid rgba(196,164,212,0.18); outline-offset: 3px; }

            /* Certificate modal styles */
            .modal-overlay { display: none; position: fixed; inset: 0; background: rgba(0,0,0,0.6); z-index: 2000; align-items: center; justify-content: center; padding: 2rem; }
            .modal-overlay.active { display: flex; }
            .modal-content { background: linear-gradient(180deg, rgba(255,255,255,0.02), rgba(255,255,255,0.01)); border-radius: 12px; width: min(1000px, 95%); max-height: 90vh; overflow: auto; display: grid; grid-template-columns: 1fr 320px; gap: 1.2rem; padding: 1rem; border: 1px solid rgba(155,127,200,0.12); }
            .modal-img-wrap { background: #fff; padding: 8px; border-radius: 8px; display: flex; align-items: center; justify-content: center; }
            .modal-img-wrap img { width: 100%; height: auto; max-height: 80vh; object-fit: contain; display: block; border-radius: 6px; }
            .modal-info { color: var(--clr-text); padding: 0.6rem 0.4rem; }
            .modal-info h3 { margin-bottom: 0.6rem; color: var(--clr-accent); }
            .modal-info ul { list-style: none; padding: 0; margin: 0; color: var(--clr-muted); }
            .modal-info li { padding: 0.4rem 0; border-bottom: 1px dashed rgba(255,255,255,0.03); }
            .modal-close { position: absolute; right: 1.2rem; top: 1.2rem; background: transparent; border: none; color: var(--clr-text); font-size: 1.6rem; cursor: pointer; }
                .modal-close { padding: 8px; border-radius: 8px; }
            @media (max-width: 768px) { .modal-content { grid-template-columns: 1fr; } .modal-close { right: 0.6rem; top: 0.6rem; } }
