/* ==================== 手绘风变量 (Hand-drawn Sketch) ==================== */
        :root {
            /* 纸张与墨水 */
            --paper: #fdfbf7;         /* 暖白手账纸 */
            --paper-dot: #e8e4d9;     /* 纸张网格点 */
            --ink: #2b2b2b;           /* 碳素墨水黑 */
            --ink-light: #5c5c5c;     /* 浅色涂鸦线 */
            
            /* 马克笔高亮色 */
            --marker-yellow: #ffde59;
            --marker-blue: #8be9fd;
            --marker-pink: #ffb6c1;
            --marker-green: #a7f3d0;

            /* 视觉属性 */
            --border-width: 2.5px;
            --shadow-sketch: 5px 5px 0px var(--ink);
            --transition: all 0.2s cubic-bezier(0.25, 0.8, 0.25, 1);
            --ease-spring: cubic-bezier(0.34, 1.35, 0.64, 1);
            --ease-smooth: cubic-bezier(0.22, 1, 0.36, 1);
            --dur-fast: 0.2s;
            --dur-med: 0.45s;
            --dur-slow: 0.65s;
            
            /* 手绘不规则圆角 (神奇的 CSS 技巧模拟手绘歪扭感) */
            --sketch-radius-1: 255px 15px 225px 15px / 15px 225px 15px 255px;
            --sketch-radius-2: 15px 225px 15px 255px / 255px 15px 225px 15px;
            --sketch-radius-3: 3% 97% 4% 96% / 96% 5% 95% 4%;
        }

        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
            /* Comic Neue 无汉字：ZCOOL 未加载时必须落到系统黑体，否则中文会像乱码/方框 */
            font-family: 'Comic Neue', 'ZCOOL KuaiLe', 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', 'Noto Sans SC', 'Source Han Sans SC', 'Segoe UI', sans-serif;
            -webkit-font-smoothing: antialiased;
        }

        body {
            background-color: var(--paper);
            color: var(--ink);
            line-height: 1.6;
            overflow-x: hidden;
            /* 手账点阵背景 */
            background-image: radial-gradient(var(--paper-dot) 2px, transparent 2px);
            background-size: 24px 24px;
        }

        @media (prefers-reduced-motion: no-preference) {
            html {
                scroll-behavior: smooth;
            }
            body {
                animation: paperDotsDrift 100s linear infinite;
            }
        }
        @media (prefers-reduced-motion: reduce) {
            html {
                scroll-behavior: auto;
            }
            body {
                animation: none;
            }
        }

        @keyframes paperDotsDrift {
            0% { background-position: 0 0; }
            100% { background-position: 24px 24px; }
        }

        a { text-decoration: none; color: inherit; }
        ul { list-style: none; }
        
        /* 加粗线条，让图标看起来像马克笔画的 */
        .lucide { stroke-width: 2.5px; stroke: var(--ink); }

        .container {
            max-width: 1200px;
            margin: 0 auto;
            padding: 0 24px;
        }
        /* 顶栏：宽度随当前语言 intrinsic 伸缩；不得宽于视口与 1520px，避免窄屏溢出 */
        #site-nav .container {
            width: min(max-content, min(1520px, calc(100% - 32px)));
            margin-left: auto;
            margin-right: auto;
            padding-left: clamp(16px, 2.4vw, 28px);
            padding-right: clamp(16px, 2.4vw, 28px);
            box-sizing: border-box;
        }

        /* 动画基础 - 涂鸦显现 */
        .fade-in {
            opacity: 0;
            transform: translateY(20px) rotate(-1.5deg) scale(0.985);
            transition:
                opacity var(--dur-med) var(--ease-smooth),
                transform 0.58s var(--ease-spring);
        }
        .fade-in.visible {
            opacity: 1;
            transform: translateY(0) rotate(0deg) scale(1);
        }

        @media (prefers-reduced-motion: reduce) {
            .fade-in {
                transition-duration: 0.01ms;
                transform: none;
            }
            .fade-in.visible {
                transform: none;
            }
        }

        @media (prefers-reduced-motion: no-preference) {
            .section-header.fade-in:not(.visible) h2::after {
                transform: rotate(-1deg) scaleX(0);
                transform-origin: left center;
            }
            .section-header.fade-in.visible h2::after {
                animation: markerSweep 0.6s var(--ease-smooth) 0.1s forwards;
            }
            @keyframes markerSweep {
                from {
                    transform: rotate(-1deg) scaleX(0);
                    transform-origin: left center;
                }
                to {
                    transform: rotate(-1deg) scaleX(1);
                    transform-origin: left center;
                }
            }
        }

        /* ==================== 手账导航栏 ==================== */
        /* 仅顶栏 #site-nav 内 nav，避免正文里 <nav>（条款目录、帮助 TOC 等）被当成固定导航 */
        #site-nav > nav {
            position: fixed; top: 0; left: 0; right: 0;
            /* 固定 height 会导致俄语/德语等换行时内容溢出并盖住正文，改为自适应 */
            min-height: 80px;
            height: auto;
            padding: 10px 0;
            box-sizing: border-box;
            background: var(--paper);
            border-bottom: var(--border-width) solid var(--ink);
            /* 手绘波浪边框效果 */
            border-radius: 0 0 50% 50% / 0 0 10px 10px;
            z-index: 1000;
            display: flex;
            align-items: center;
            justify-content: center;
            box-shadow: 0 4px 10px rgba(0,0,0,0.05);
            transition: box-shadow 0.4s var(--ease-smooth), border-radius 0.35s ease;
        }
        #site-nav.is-scrolled > nav {
            box-shadow: 0 10px 32px rgba(43, 43, 43, 0.12);
        }

        /* Flex：Logo + 导航链 intrinsic 宽度 + 右侧控件；无 flex:1 撑满，间距随内容变 */
        .nav-inner {
            display: flex;
            align-items: center;
            justify-content: flex-start;
            gap: clamp(12px, 2.2vw, 24px);
        }
        .nav-inner .logo {
            flex-shrink: 0;
            min-width: 0;
        }
        .nav-inner .nav-links {
            flex: none;
            width: max-content;
            max-width: 100%;
            margin: 0;
            box-sizing: border-box;
            justify-content: flex-start;
            overflow: visible;
        }
        .nav-right {
            flex-shrink: 0;
            display: flex;
            align-items: center;
            gap: 12px;
            position: relative;
            z-index: 20;
        }

        .logo {
            font-size: 26px; font-weight: 700; color: var(--ink);
            display: flex; align-items: center; gap: 10px; cursor: pointer;
            letter-spacing: 1px;
        }
        .logo-icon {
            width: 42px; height: 42px;
            background: var(--marker-yellow);
            border: var(--border-width) solid var(--ink);
            border-radius: var(--sketch-radius-1);
            display: flex; align-items: center; justify-content: center;
            transition: transform 0.35s var(--ease-spring), box-shadow 0.3s ease;
        }
        a.logo:hover .logo-icon {
            transform: rotate(-6deg) scale(1.06);
            box-shadow: 4px 4px 0 var(--ink);
        }

        /* 长文案语言：列表不抢点击，仅链接可点；桌面单行不换行，宽度随语言变长 */
        .nav-links {
            display: flex;
            flex-wrap: nowrap;
            column-gap: clamp(12px, 2vw, 24px);
            align-items: center;
            justify-content: center;
            pointer-events: none;
        }
        .nav-links > li {
            flex-shrink: 0;
        }
        .nav-links a.nav-item {
            pointer-events: auto;
        }
        .nav-item {
            font-weight: 700; color: var(--ink-light); cursor: pointer;
            transition: var(--transition); font-size: 20px;
            position: relative; padding: 4px 8px;
            isolation: isolate;
            white-space: nowrap;
        }
        .nav-item:hover, .nav-item.active { color: var(--ink); }
        /* 导航栏手绘马克笔下划线（isolate 避免 z-index:-1 被顶栏背景吃掉） */
        .nav-item.active::after {
            content: ''; position: absolute; bottom: 2px; left: 0; width: 100%; height: 10px;
            background: var(--marker-blue); opacity: 0.55; z-index: -1; transform: rotate(-2deg);
            pointer-events: none;
        }
        .nav-item:hover:not(.active)::after {
            content: ''; position: absolute; bottom: 2px; left: 0; width: 100%; height: 10px;
            background: var(--marker-pink); opacity: 0.5; z-index: -1; transform: rotate(2deg);
            pointer-events: none;
        }

        /* 语言切换 + 移动端汉堡 */
        .lang-dropdown { position: relative; z-index: 1001; }
        .lang-trigger {
            display: inline-flex;
            align-items: center;
            gap: 8px;
            padding: 8px 14px;
            font-size: 17px;
            font-weight: 700;
            color: var(--ink);
            background: #fff;
            border: var(--border-width) solid var(--ink);
            border-radius: var(--sketch-radius-2);
            cursor: pointer;
            transition: var(--transition);
            box-shadow: 3px 3px 0 var(--ink);
        }
        .lang-trigger:hover {
            background: var(--marker-blue);
            transform: translate(-2px, -2px);
            box-shadow: 5px 5px 0 var(--ink);
        }
        .lang-trigger .lucide { width: 18px; height: 18px; flex-shrink: 0; }
        .lang-chevron { width: 16px !important; height: 16px !important; transition: transform 0.2s ease; }
        .lang-dropdown.open .lang-chevron { transform: rotate(180deg); }
        .lang-menu {
            position: absolute;
            top: calc(100% + 10px);
            right: 0;
            min-width: 200px;
            padding: 8px;
            background: #fff;
            border: var(--border-width) solid var(--ink);
            border-radius: var(--sketch-radius-3);
            box-shadow: var(--shadow-sketch);
            display: none;
            flex-direction: column;
            gap: 4px;
        }
        .lang-dropdown.open .lang-menu { display: flex; }
        .lang-menu a {
            display: block;
            padding: 10px 14px;
            font-size: 16px;
            font-weight: 700;
            color: var(--ink-light);
            border-radius: 8px;
            transition: var(--transition);
        }
        .lang-menu a:hover, .lang-menu a[aria-current="true"] {
            color: var(--ink);
            background: var(--marker-yellow);
        }

        .btn-nav-login {
            display: inline-flex;
            align-items: center;
            gap: 6px;
            padding: 8px 20px;
            font-size: 17px;
            font-weight: 700;
            color: var(--ink);
            background: var(--marker-yellow);
            border: var(--border-width) solid var(--ink);
            border-radius: var(--sketch-radius-1);
            cursor: pointer;
            transition: var(--transition);
            box-shadow: 3px 3px 0 var(--ink);
            white-space: nowrap;
        }
        .btn-nav-login:hover {
            background: var(--marker-pink);
            transform: translate(-2px, -2px);
            box-shadow: 5px 5px 0 var(--ink);
        }
        .btn-nav-login:active {
            transform: translate(2px, 2px);
            box-shadow: 1px 1px 0 var(--ink);
        }
        /* 已登录时 JS 会设 hidden；须盖过上面的 display:inline-flex，否则按钮仍占位显示 */
        #nav-login-btn[hidden],
        .btn-nav-login[hidden] {
            display: none !important;
        }

        .nav-user-area {
            position: relative;
            flex-shrink: 0;
        }
        .nav-user-dropdown-wrap {
            position: relative;
        }
        .nav-user-trigger {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            width: 44px;
            height: 44px;
            padding: 0;
            margin: 0;
            flex-shrink: 0;
            border-radius: 50%;
            border: var(--border-width) solid var(--ink);
            background: var(--marker-yellow);
            box-shadow: 3px 3px 0 var(--ink);
            transition: var(--transition);
            color: var(--ink);
            cursor: pointer;
            font: inherit;
        }
        .nav-user-trigger:hover {
            background: var(--marker-pink);
            transform: translate(-2px, -2px);
            box-shadow: 5px 5px 0 var(--ink);
        }
        .nav-user-area.nav-user-on-account .nav-user-trigger {
            outline: 3px solid var(--marker-blue);
            outline-offset: 3px;
        }
        .nav-avatar-circle {
            display: flex;
            align-items: center;
            justify-content: center;
            width: 100%;
            height: 100%;
            pointer-events: none;
        }
        .nav-avatar-letter {
            font-size: 18px;
            font-weight: 800;
            line-height: 1;
        }
        .nav-user-dropdown {
            position: absolute;
            top: calc(100% + 6px);
            left: 50%;
            right: auto;
            min-width: 212px;
            margin: 0;
            padding: 16px 8px 8px;
            list-style: none;
            background: #fff;
            border: var(--border-width) solid var(--ink);
            /* 顶部大圆角，与圆形头像气质一致；底部仍用手账圆角 */
            border-radius: 26px 26px 16px 18px / 28px 28px 18px 16px;
            box-shadow: var(--shadow-sketch);
            z-index: 1002;
            opacity: 0;
            visibility: hidden;
            transform: translate(-50%, -8px);
            transition: opacity 0.18s ease, transform 0.18s ease, visibility 0.18s;
        }
        /* 填平头像与菜单间隙：窄条对准头像中心，避免 hover 断开 */
        .nav-user-dropdown::before {
            content: '';
            position: absolute;
            left: 50%;
            transform: translateX(-50%);
            width: 52px;
            right: auto;
            bottom: 100%;
            height: 14px;
        }
        /* 小「气嘴」衔接圆形头像与方盒菜单 */
        .nav-user-dropdown::after {
            content: '';
            position: absolute;
            left: 50%;
            bottom: 100%;
            width: 12px;
            height: 12px;
            margin-bottom: -5px;
            transform: translateX(-50%) translateY(50%) rotate(45deg);
            background: #fff;
            border-left: var(--border-width) solid var(--ink);
            border-top: var(--border-width) solid var(--ink);
            box-sizing: border-box;
            z-index: 1;
            pointer-events: none;
        }
        .nav-user-dropdown-wrap:hover .nav-user-dropdown,
        .nav-user-dropdown-wrap:focus-within .nav-user-dropdown,
        .nav-user-dropdown-wrap.is-open .nav-user-dropdown {
            opacity: 1;
            visibility: visible;
            transform: translate(-50%, 0);
        }
        @media (max-width: 480px) {
            .nav-user-dropdown {
                left: auto;
                right: 0;
                transform: translate(0, -8px);
                max-width: min(212px, calc(100vw - 24px));
            }
            .nav-user-dropdown-wrap:hover .nav-user-dropdown,
            .nav-user-dropdown-wrap:focus-within .nav-user-dropdown,
            .nav-user-dropdown-wrap.is-open .nav-user-dropdown {
                transform: translate(0, 0);
            }
            .nav-user-dropdown::before {
                left: auto;
                right: 10px;
                transform: none;
                width: 48px;
            }
            .nav-user-dropdown::after {
                left: auto;
                right: 21px;
                transform: translateY(50%) rotate(45deg);
            }
        }
        .nav-user-menu-item {
            display: flex;
            width: 100%;
            align-items: center;
            padding: 10px 14px;
            font-size: 16px;
            font-weight: 700;
            color: var(--ink);
            text-align: left;
            border: none;
            border-radius: var(--sketch-radius-2);
            background: transparent;
            cursor: pointer;
            font-family: inherit;
            text-decoration: none;
            box-sizing: border-box;
            transition: var(--transition);
        }
        a.nav-user-menu-item { color: var(--ink); }
        .nav-user-menu-item:hover {
            background: var(--marker-yellow);
        }
        .nav-user-menu-quit {
            color: #b91c1c;
        }
        .nav-user-menu-quit:hover {
            background: #fee2e2;
        }
        .nav-user-menu-sep {
            height: 1px;
            margin: 6px 8px;
            background: var(--ink-light);
            opacity: 0.35;
            list-style: none;
            padding: 0;
        }

        .hamburger { display: none; flex-direction: column; gap: 6px; cursor: pointer; padding: 10px; flex-shrink: 0; }
        .hamburger span { 
            width: 28px; height: 3px; background: var(--ink); 
            border-radius: var(--sketch-radius-2); transition: var(--transition);
        }

        /* ==================== 登录 / 注册弹窗 ==================== */
        body.auth-modal-open { overflow: hidden; }

        .auth-modal {
            position: fixed;
            inset: 0;
            z-index: 2000;
            display: flex;
            align-items: center;
            justify-content: center;
            padding: 24px;
            opacity: 0;
            visibility: hidden;
            pointer-events: none;
            transition: opacity 0.25s ease, visibility 0.25s ease;
        }
        .auth-modal.open {
            opacity: 1;
            visibility: visible;
            pointer-events: auto;
        }
        .auth-modal-backdrop {
            position: absolute;
            inset: 0;
            background: rgba(43, 43, 43, 0.45);
            backdrop-filter: blur(5px);
            -webkit-backdrop-filter: blur(5px);
            transition: backdrop-filter 0.35s ease;
        }

        /* 弹窗面板：双栏布局 */
        .auth-modal-panel {
            position: relative;
            width: 100%;
            max-width: 860px;
            max-height: min(90vh, 680px);
            overflow: hidden;
            display: flex;
            flex-direction: row;
            background: var(--paper);
            border: var(--border-width) solid var(--ink);
            border-radius: var(--sketch-radius-3);
            box-shadow: 8px 8px 0 var(--ink);
            transform: scale(0.96) rotate(-0.5deg);
            transition: transform 0.36s var(--ease-spring);
        }
        .auth-modal.open .auth-modal-panel {
            transform: scale(1) rotate(0deg);
        }

        /* 左侧：品牌区 */
        .auth-modal-brand {
            flex: 0 0 300px;
            display: flex;
            flex-direction: column;
            justify-content: center;
            padding: 44px 36px;
            background: var(--ink);
            color: #fff;
            border-right: var(--border-width) solid var(--ink);
            position: relative;
            overflow: hidden;
        }
        .auth-modal-brand::before {
            content: '';
            position: absolute;
            inset: 0;
            background-image: radial-gradient(circle, rgba(255,255,255,0.06) 1px, transparent 1px);
            background-size: 20px 20px;
            pointer-events: none;
        }
        .auth-brand-logo {
            display: flex;
            align-items: center;
            gap: 12px;
            margin-bottom: 32px;
            position: relative;
        }
        .auth-brand-logo svg {
            width: 44px;
            height: 44px;
            flex-shrink: 0;
        }
        .auth-brand-name {
            font-size: 24px;
            font-weight: 800;
            color: #fff;
            letter-spacing: -0.5px;
        }
        .auth-brand-tagline {
            font-size: 19px;
            font-weight: 700;
            color: #fff;
            line-height: 1.45;
            margin-bottom: 32px;
            position: relative;
        }
        .auth-brand-features {
            list-style: none;
            padding: 0;
            margin: 0;
            display: flex;
            flex-direction: column;
            gap: 18px;
            position: relative;
        }
        .auth-brand-features li {
            display: flex;
            align-items: center;
            gap: 12px;
            font-size: 14px;
            font-weight: 600;
            color: rgba(255, 255, 255, 0.82);
            line-height: 1.4;
        }
        .auth-brand-features li .lucide {
            width: 17px;
            height: 17px;
            flex-shrink: 0;
            color: var(--marker-yellow);
        }

        /* 右侧：表单区 */
        .auth-modal-form-side {
            flex: 1;
            min-width: 0;
            overflow-y: auto;
            padding: 32px 32px 36px;
            position: relative;
        }

        .auth-modal-close {
            position: absolute;
            top: 16px;
            right: 16px;
            width: 40px;
            height: 40px;
            display: flex;
            align-items: center;
            justify-content: center;
            border: var(--border-width) solid var(--ink);
            border-radius: var(--sketch-radius-2);
            background: #fff;
            cursor: pointer;
            transition: var(--transition);
            box-shadow: 2px 2px 0 var(--ink);
        }
        .auth-modal-close:hover {
            background: var(--marker-pink);
            transform: translate(-2px, -2px);
            box-shadow: 4px 4px 0 var(--ink);
        }
        .auth-modal-close .lucide { width: 20px; height: 20px; }

        .auth-modal-title {
            font-size: 26px;
            font-weight: 700;
            margin-bottom: 20px;
            padding-right: 44px;
        }

        .auth-tabs {
            display: flex;
            flex-wrap: wrap;
            gap: 8px;
            margin-bottom: 24px;
            padding: 4px;
            background: #fff;
            border: 2px dashed var(--ink-light);
            border-radius: var(--sketch-radius-2);
        }
        .auth-reset-lead {
            font-size: 15px;
            color: var(--ink-light);
            line-height: 1.5;
            margin: 0 0 18px;
        }
        .auth-start-lead {
            font-size: 15px;
            color: var(--ink-light);
            line-height: 1.5;
            margin: 0 0 18px;
        }
        .auth-tab {
            flex: 1;
            min-width: 88px;
            padding: 12px 16px;
            font-size: 18px;
            font-weight: 700;
            color: var(--ink-light);
            background: transparent;
            border: none;
            border-radius: 10px;
            cursor: pointer;
            transition: var(--transition);
        }
        .auth-tab:hover { color: var(--ink); }
        .auth-tab.active {
            color: var(--ink);
            background: var(--marker-yellow);
            border: var(--border-width) solid var(--ink);
            box-shadow: 2px 2px 0 var(--ink);
        }

        .auth-pane { display: none; }
        .auth-pane.active { display: block; }

        .auth-field { margin-bottom: 18px; }
        .auth-field label {
            display: block;
            font-size: 15px;
            font-weight: 700;
            margin-bottom: 8px;
            color: var(--ink);
        }
        .auth-input-wrap {
            position: relative;
            display: flex;
            align-items: center;
            border: var(--border-width) solid var(--ink);
            border-radius: var(--sketch-radius-2);
            background: #fff;
            box-shadow: 2px 2px 0 rgba(43,43,43,0.12);
            transition: var(--transition);
        }
        .auth-input-wrap:focus-within {
            box-shadow: 3px 3px 0 var(--ink);
            background: #fffef8;
        }
        .auth-input-wrap .field-icon {
            padding: 0 12px;
            display: flex;
            color: var(--ink-light);
        }
        .auth-input-wrap .field-icon .lucide { width: 20px; height: 20px; }
        .auth-input-wrap input {
            flex: 1;
            border: none;
            background: transparent;
            padding: 14px 12px 14px 0;
            font-size: 17px;
            font-weight: 600;
            color: var(--ink);
            outline: none;
            min-width: 0;
        }
        .auth-input-wrap input::placeholder { color: #aaa; font-weight: 500; }
        .auth-toggle-pw {
            padding: 8px 12px;
            border: none;
            background: transparent;
            cursor: pointer;
            color: var(--ink-light);
            display: flex;
            align-items: center;
        }
        .auth-toggle-pw:hover { color: var(--ink); }
        .auth-toggle-pw .lucide { width: 20px; height: 20px; }
        /* 密文：eye-off；明文：eye（与输入框实际状态一致） */
        .auth-toggle-pw .icon-eye { display: none; }
        .auth-toggle-pw .icon-eye-off { display: block; }
        .auth-toggle-pw.is-revealed .icon-eye { display: block; }
        .auth-toggle-pw.is-revealed .icon-eye-off { display: none; }

        .auth-row {
            display: flex;
            align-items: center;
            justify-content: space-between;
            flex-wrap: wrap;
            gap: 12px;
            margin-bottom: 20px;
        }
        .auth-check {
            display: inline-flex;
            align-items: center;
            gap: 8px;
            cursor: pointer;
            font-size: 15px;
            font-weight: 600;
            color: var(--ink-light);
        }
        .auth-check input {
            width: 18px;
            height: 18px;
            accent-color: var(--ink);
            cursor: pointer;
        }
        .auth-link {
            font-size: 15px;
            font-weight: 700;
            color: var(--ink);
            text-decoration: underline;
            text-decoration-style: wavy;
            text-underline-offset: 4px;
            cursor: pointer;
            background: none;
            border: none;
            padding: 0;
            font-family: inherit;
        }
        .auth-link:hover { color: var(--ink-light); }

        .auth-submit {
            width: 100%;
            padding: 14px 24px;
            font-size: 19px;
            font-weight: 700;
            color: var(--ink);
            background: var(--marker-blue);
            border: var(--border-width) solid var(--ink);
            border-radius: var(--sketch-radius-1);
            cursor: pointer;
            box-shadow: 4px 4px 0 var(--ink);
            transition: var(--transition);
            margin-top: 8px;
        }
        .auth-submit:hover {
            background: var(--marker-yellow);
            transform: translate(-2px, -2px);
            box-shadow: 6px 6px 0 var(--ink);
        }
        .auth-submit:active {
            transform: translate(2px, 2px);
            box-shadow: 2px 2px 0 var(--ink);
        }

        .auth-msg {
            min-height: 22px;
            margin-top: 12px;
            font-size: 15px;
            font-weight: 700;
            color: #c41e3a;
        }
        .auth-msg.ok { color: #15803d; }

        .auth-switch {
            text-align: center;
            margin-top: 14px;
        }

        .auth-code-row {
            display: flex;
            gap: 10px;
            align-items: stretch;
        }
        .auth-code-row .auth-code-input {
            flex: 1;
            min-width: 0;
        }
        .auth-send-code {
            flex-shrink: 0;
            padding: 0 14px;
            font-size: 14px;
            font-weight: 700;
            border: var(--border-width) solid var(--ink);
            border-radius: var(--sketch-radius-2);
            background: var(--paper);
            cursor: pointer;
            box-shadow: 3px 3px 0 var(--ink);
            transition: var(--transition);
        }
        .auth-send-code:hover:not(:disabled) {
            background: var(--marker-blue);
            transform: translate(-1px, -1px);
        }
        .auth-send-code:disabled {
            opacity: 0.55;
            cursor: not-allowed;
            box-shadow: 2px 2px 0 var(--ink);
        }

        @media (max-width: 680px) {
            .auth-modal { padding: 12px; }
            .auth-modal-panel {
                flex-direction: column;
                max-height: min(95vh, 700px);
            }
            .auth-modal-brand { display: none; }
            .auth-modal-form-side { padding: 24px 20px 28px; }
            .auth-modal-title { font-size: 22px; }
        }

        /* ==================== 页面路由控制 ==================== */
        /* 顶栏换行时总高度可能 >80px，预留足够间距避免标题与导航叠在一起 */
        .page-main { padding-top: 100px; min-height: 100vh; }
        .page-main.page-enter {
            animation: sketchIn 0.78s var(--ease-smooth) both forwards;
        }
        @keyframes sketchIn {
            0% {
                opacity: 0;
                filter: blur(8px) saturate(1.15);
                transform: translateY(22px) scale(0.97) rotate(-0.6deg);
            }
            100% {
                opacity: 1;
                filter: blur(0) saturate(1);
                transform: translateY(0) scale(1) rotate(0deg);
            }
        }
        @media (prefers-reduced-motion: no-preference) {
            html.maclogin-enter-from-nav .page-main.page-enter {
                animation: macloginPageEnterNav 0.82s var(--ease-spring) both forwards !important;
            }
            @keyframes macloginPageEnterNav {
                0% {
                    opacity: 0;
                    filter: blur(12px);
                    transform: translateX(40px) skewX(-2deg) scale(0.98);
                }
                100% {
                    opacity: 1;
                    filter: blur(0);
                    transform: none;
                }
            }
        }
        @media (prefers-reduced-motion: reduce) {
            .page-main.page-enter {
                animation: none;
                opacity: 1;
                filter: none;
                transform: none;
            }
        }

        /* ==================== 手绘组件 (Buttons & Cards) ==================== */
        .sketch-box {
            background: #fff;
            border: var(--border-width) solid var(--ink);
            border-radius: var(--sketch-radius-3);
            box-shadow: var(--shadow-sketch);
            transition:
                transform 0.42s var(--ease-spring),
                box-shadow 0.38s var(--ease-smooth),
                border-color 0.25s ease;
        }
        .sketch-box:hover {
            transform: translate(-4px, -4px) rotate(0.8deg);
            box-shadow: 9px 9px 0 var(--ink);
        }

        .btn-primary {
            background: var(--marker-yellow);
            color: var(--ink);
            padding: 12px 32px;
            font-size: 22px;
            cursor: pointer;
            display: inline-flex; align-items: center; gap: 8px;
            border: var(--border-width) solid var(--ink);
            border-radius: var(--sketch-radius-1);
            box-shadow: var(--shadow-sketch);
            transition:
                transform 0.35s var(--ease-spring),
                box-shadow 0.35s var(--ease-smooth),
                background 0.25s ease;
            font-weight: 700;
        }
        .btn-primary:active {
            transform: translate(5px, 5px) !important;
            box-shadow: 0px 0px 0px var(--ink) !important;
        }
        .btn-primary:hover {
            background: var(--marker-blue);
            transform: translate(-2px, -2px); box-shadow: 7px 7px 0px var(--ink);
        }

        .btn-secondary {
            background: #fff;
            color: var(--ink);
            padding: 12px 32px;
            font-size: 22px;
            cursor: pointer;
            border: var(--border-width) dashed var(--ink);
            border-radius: var(--sketch-radius-2);
            transition: var(--transition);
            font-weight: 700;
        }
        .btn-secondary:hover {
            background: var(--paper-dot); border-style: solid;
        }

        /* 马克笔文字高亮 */
        .hl-pink { background: linear-gradient(104deg, transparent 0%, var(--marker-pink) 2%, var(--marker-pink) 98%, transparent 100%); padding: 0 8px; }
        .hl-blue { background: linear-gradient(104deg, transparent 0%, var(--marker-blue) 2%, var(--marker-blue) 98%, transparent 100%); padding: 0 8px; }

        .section-header { text-align: center; margin-bottom: 60px; }
        .section-header h2 { font-size: 42px; font-weight: 700; margin-bottom: 16px; display: inline-block; position: relative;}
        .section-header h2::after { content:''; position: absolute; bottom: -5px; left: -10%; width: 120%; height: 6px; background: var(--marker-yellow); z-index: -1; transform: rotate(-1deg);}
        .section-header p { color: var(--ink-light); font-size: 20px; }

        .btn-dash:hover { transform: translate(-2px, -2px); box-shadow: 5px 5px 0 var(--ink);}
        .btn-dash:active { transform: translate(3px, 3px); box-shadow: 0 0 0 var(--ink);}
        .btn-dash.primary { background: var(--marker-blue); }

        /* ==================== 页脚手账尾页 ==================== */
        footer { margin-top: 80px; border-top: 3px solid var(--ink); padding: 56px 0 32px; background: #fff;}
        /* 双行网格：第1行 Logo + 三列标题；第2行标语区 + 三列列表 → 标语首行与首条链接顶对齐 */
        .footer-grid {
            display: grid;
            grid-template-columns: 2fr 1fr 1fr 1fr;
            grid-template-rows: auto auto;
            gap: 14px 48px;
            margin-bottom: 44px;
            align-items: start;
        }
        .footer-slot--r1c1 { grid-area: 1 / 1; }
        .footer-slot--r1c2 { grid-area: 1 / 2; }
        .footer-slot--r1c3 { grid-area: 1 / 3; }
        .footer-slot--r1c4 { grid-area: 1 / 4; }
        .footer-slot--r2c1 { grid-area: 2 / 1; }
        .footer-slot--r2c2 { grid-area: 2 / 2; }
        .footer-slot--r2c3 { grid-area: 2 / 3; }
        .footer-slot--r2c4 { grid-area: 2 / 4; }
        .footer-grid .footer-slot h5 {
            font-size: 22px;
            margin: 0;
            color: var(--ink);
            font-weight: 700;
            display: block;
            width: fit-content;
            max-width: 100%;
            padding-bottom: 8px;
            box-sizing: border-box;
            position: relative;
            border-bottom: none;
            line-height: 1.35;
        }
        .footer-grid .footer-slot h5::after {
            content: '';
            position: absolute;
            left: 0;
            right: 0;
            bottom: 0;
            height: 4px;
            background: var(--marker-yellow);
        }
        .footer-grid .footer-slot ul { margin: 0; padding: 0; list-style: none; }
        .footer-grid .footer-slot ul li { margin-bottom: 12px; font-size: 18px; color: var(--ink-light); }
        .footer-grid .footer-slot ul li a { transition: var(--transition); display: inline-block;}
        .footer-grid .footer-slot ul li a:hover { color: var(--ink); transform: translateX(5px); text-decoration: underline wavy var(--marker-blue);}
        .footer-bottom { border-top: 2px dotted var(--ink-light); padding-top: 24px; display: flex; justify-content: space-between; align-items: center; color: var(--ink-light); font-size: 18px; }
        
        /* Logo 行高固定，便于与右侧 h5 区块对齐计算 */
        .footer-logo {
            font-size: 28px;
            font-weight: 700;
            color: var(--ink);
            display: flex;
            align-items: center;
            gap: 10px;
            margin: 0;
            line-height: 1;
        }
        .footer-logo .lucide,
        .footer-logo svg {
            width: 1em;
            height: 1em;
            flex-shrink: 0;
        }
        .footer-tagline {
            color: var(--ink-light);
            font-size: 17px;
            font-weight: 700;
            line-height: 1.65;
            margin: 0 0 12px;
            max-width: 28em;
            white-space: pre-line;
        }
        .footer-contact-email {
            margin: 12px 0 0;
            font-size: 17px;
            font-weight: 800;
        }
        .footer-contact-email a {
            color: var(--ink);
            text-decoration: none;
        }
        .footer-contact-email a:hover {
            color: var(--marker-blue);
            text-decoration: underline wavy var(--marker-blue);
            text-underline-offset: 4px;
        }

        /* 品牌列第2行：slogan → 虚线 → 三图标 → 邮箱 */
        .footer-brand-rest .footer-scribble-line {
            height: 0;
            margin: 0 0 12px;
            max-width: 26em;
            border: none;
            border-top: 2.5px dashed var(--ink-light);
            opacity: 0.85;
            transform: rotate(-0.4deg);
        }
        .footer-brand-rest .footer-doodles {
            display: flex;
            flex-wrap: wrap;
            align-items: center;
            justify-content: flex-start;
            gap: 12px 16px;
            margin: 0;
        }
        .footer-doodle {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            width: 48px;
            height: 48px;
            border: var(--border-width) solid var(--ink);
            border-radius: var(--sketch-radius-2);
            box-shadow: 3px 3px 0 var(--ink);
        }
        .footer-doodle i {
            width: 24px;
            height: 24px;
            stroke-width: 2.25px;
        }
        .footer-doodle--a {
            background: var(--marker-pink);
            transform: rotate(-6deg);
        }
        .footer-doodle--b {
            background: var(--marker-blue);
            transform: rotate(4deg);
        }
        .footer-doodle--c {
            background: var(--marker-yellow);
            transform: rotate(-3deg);
        }

        @media (prefers-reduced-motion: no-preference) {
            .footer-doodle--a {
                animation: footerDoodleFloat 5s ease-in-out infinite;
            }
            .footer-doodle--b {
                animation: footerDoodleFloat 5.5s ease-in-out infinite 0.6s;
            }
            .footer-doodle--c {
                animation: footerDoodleFloat 4.8s ease-in-out infinite 1.1s;
            }
            @keyframes footerDoodleFloat {
                0%, 100% { transform: translateY(0) rotate(var(--fd-tilt, -6deg)); }
                50% { transform: translateY(-5px) rotate(calc(var(--fd-tilt, -6deg) + 2deg)); }
            }
            .footer-doodle--a { --fd-tilt: -6deg; }
            .footer-doodle--b { --fd-tilt: 4deg; }
            .footer-doodle--c { --fd-tilt: -3deg; }
        }

        /* ==================== 响应式设计 ==================== */
        @media (max-width: 1100px) and (min-width: 769px) {
            .nav-links { column-gap: clamp(8px, 1.2vw, 16px); }
            .nav-item { font-size: 18px; padding: 4px 6px; }
        }

        @media (max-width: 900px) and (min-width: 769px) {
            .nav-item { font-size: 16px; padding: 4px 4px; }
            .nav-links { column-gap: 8px; }
            .nav-inner { gap: 10px; }
        }

        @media (max-width: 900px) {
            .bento-grid { grid-template-columns: 1fr 1fr;}
            .pricing-grid, .addon-grid, .blog-grid { grid-template-columns: 1fr; }
        }

        @media (max-width: 768px) {
            #site-nav > nav {
                min-height: 70px;
                height: auto;
                padding: 8px 0;
                box-sizing: border-box;
                border-radius: 0;
            }
            #site-nav .container {
                width: 100%;
                max-width: none;
            }
            .nav-inner {
                display: flex;
                justify-content: space-between;
                align-items: center;
                width: 100%;
                gap: 8px;
            }
            .nav-inner .nav-links {
                flex: none;
                max-width: none;
                overflow: visible;
                justify-content: flex-start;
                pointer-events: auto;
            }
            .lang-trigger .lang-current-label { display: none; }
            .lang-trigger { padding: 8px 10px; }
            .hamburger { display: flex; }
            .nav-links {
                position: absolute;
                top: 70px;
                left: 0;
                right: 0;
                background: #fff;
                border-bottom: 3px solid var(--ink);
                flex-direction: column;
                flex-wrap: nowrap;
                padding: 24px;
                gap: 16px;
                display: none;
                box-shadow: 0 10px 0 rgba(0,0,0,0.1);
            }
            .nav-links .nav-item {
                white-space: normal;
            }
            .nav-links.mobile-active { display: flex; }
            
            .hero h1 { font-size: 40px; }
            .bento-grid { grid-template-columns: 1fr; }
            .dashboard-layout { grid-template-columns: 1fr; gap: 32px;}
            .sidebar { display: none; }
            .server-specs-grid { grid-template-columns: 1fr; }
            .footer-grid {
                display: flex;
                flex-direction: column;
                gap: 28px;
            }
            .footer-slot--r1c1 { order: 1; width: 100%; }
            .footer-slot--r2c1 { order: 2; width: 100%; }
            .footer-slot--r1c2 { order: 3; width: 100%; }
            .footer-slot--r2c2 { order: 4; width: 100%; }
            .footer-slot--r1c3 { order: 5; width: 100%; }
            .footer-slot--r2c3 { order: 6; width: 100%; }
            .footer-slot--r1c4 { order: 7; width: 100%; }
            .footer-slot--r2c4 { order: 8; width: 100%; }
            .footer-slot { width: 100%; }
            .footer-grid .footer-slot h5 {
                display: inline-block;
                padding-bottom: 0;
                width: auto;
                max-width: 100%;
                border-bottom: 4px solid var(--marker-yellow);
            }
            .footer-grid .footer-slot h5::after {
                display: none;
            }
            .footer-bottom { flex-direction: column; gap: 16px; text-align: center;}
        }
        a.logo { text-decoration: none; color: inherit; }

        /* 全站轻提示（替代 alert） */
        #maclogin-toast.maclogin-toast {
            position: fixed;
            bottom: max(24px, env(safe-area-inset-bottom));
            left: 50%;
            transform: translateX(-50%);
            z-index: 4000;
            max-width: min(520px, calc(100vw - 32px));
            padding: 14px 20px;
            font-size: 15px;
            font-weight: 700;
            line-height: 1.45;
            text-align: center;
            color: var(--ink);
            background: #fff;
            border: var(--border-width) solid var(--ink);
            border-radius: var(--sketch-radius-2);
            box-shadow: 5px 5px 0 var(--ink);
            box-sizing: border-box;
        }
        @media (prefers-reduced-motion: no-preference) {
            #maclogin-toast.maclogin-toast:not([hidden]) {
                animation: toastPopIn 0.48s var(--ease-spring) forwards;
            }
            @keyframes toastPopIn {
                from {
                    opacity: 0;
                    transform: translateX(-50%) translateY(16px) scale(0.96);
                }
                to {
                    opacity: 1;
                    transform: translateX(-50%) translateY(0) scale(1);
                }
            }
        }
        #maclogin-toast.maclogin-toast[hidden] { display: none !important; }
        #maclogin-toast.maclogin-toast--error {
            background: #fff5f5;
            border-color: #c41e3a;
        }
        #maclogin-toast.maclogin-toast--ok {
            background: var(--marker-green);
        }

        /* ==================== 全站：加载幕 + 跳转过渡（page-transitions.js）==================== */
        #maclogin-transition {
            position: fixed;
            inset: 0;
            z-index: 100050;
            pointer-events: none;
            visibility: hidden;
        }

        #maclogin-transition.maclogin-transition--active {
            pointer-events: auto;
            visibility: visible;
        }

        /* 跳转：手账暴走版 — 色带 + 纸屑爆开 + 星星 + 闪屏 + 舞台震 + 色相漂移 */
        .maclogin-transition__vignette {
            position: absolute;
            inset: 0;
            background: var(--ink);
            opacity: 0;
        }

        .maclogin-transition__flash {
            position: absolute;
            inset: 0;
            pointer-events: none;
            z-index: 3;
            background: linear-gradient(
                105deg,
                transparent 0%,
                transparent 42%,
                rgba(255, 255, 255, 0.55) 50%,
                transparent 58%,
                transparent 100%
            );
            background-size: 200% 200%;
            opacity: 0;
        }

        .maclogin-transition__stage {
            position: absolute;
            inset: 0;
            overflow: hidden;
        }

        .maclogin-transition__swipes {
            position: absolute;
            inset: -12% -15%;
            transform: rotate(-2.5deg) scale(1.08);
            pointer-events: none;
            z-index: 1;
        }

        .maclogin-transition__swipe-track {
            position: absolute;
            left: 0;
            right: 0;
            height: 21%;
            overflow: hidden;
        }

        .maclogin-transition__swipe-track--1 { top: -3%; }
        .maclogin-transition__swipe-track--2 { top: 17%; }
        .maclogin-transition__swipe-track--3 { top: 37%; }
        .maclogin-transition__swipe-track--4 { top: 57%; }
        .maclogin-transition__swipe-track--5 { top: 77%; }

        .maclogin-transition__swipe {
            position: absolute;
            left: 0;
            top: 0;
            width: 100%;
            height: 100%;
            border-top: var(--border-width) solid var(--ink);
            border-bottom: var(--border-width) solid var(--ink);
            box-shadow: 4px 3px 0 rgba(43, 43, 43, 0.07);
            transform: translateX(-120%);
        }

        .maclogin-transition__swipe--y { background: var(--marker-yellow); }
        .maclogin-transition__swipe--p { background: var(--marker-pink); }
        .maclogin-transition__swipe--b { background: var(--marker-blue); }
        .maclogin-transition__swipe--g { background: var(--marker-green); }
        .maclogin-transition__swipe--y2 { background: linear-gradient(90deg, var(--marker-yellow) 0%, #fff59e 100%); }

        .maclogin-transition__fold {
            position: absolute;
            top: 0;
            right: 0;
            width: 0;
            height: 0;
            border-style: solid;
            border-width: 0 72px 72px 0;
            border-color: transparent rgba(43, 43, 43, 0.08) transparent transparent;
            opacity: 0;
            transform-origin: top right;
        }

        .maclogin-transition__scraps {
            position: absolute;
            left: 50%;
            top: 46%;
            width: 0;
            height: 0;
            z-index: 5;
            pointer-events: none;
        }

        .maclogin-transition__scrap {
            position: absolute;
            left: 0;
            top: 0;
            box-sizing: border-box;
            border: var(--border-width) solid var(--ink);
            opacity: 0;
            will-change: transform, opacity;
        }

        .maclogin-transition__scrap--1 { width: 14px; height: 18px; margin: -9px 0 0 -7px; background: var(--marker-yellow); --tx: -150px; --ty: -110px; --rz: 640deg; }
        .maclogin-transition__scrap--2 { width: 11px; height: 14px; margin: -7px 0 0 -5px; background: var(--marker-pink); --tx: 130px; --ty: -90px; --rz: -520deg; }
        .maclogin-transition__scrap--3 { width: 16px; height: 12px; margin: -6px 0 0 -8px; background: var(--marker-blue); --tx: -40px; --ty: 130px; --rz: 480deg; }
        .maclogin-transition__scrap--4 { width: 12px; height: 12px; margin: -6px 0 0 -6px; border-radius: 50%; background: var(--marker-green); --tx: 160px; --ty: 70px; --rz: -720deg; }
        .maclogin-transition__scrap--5 { width: 18px; height: 10px; margin: -5px 0 0 -9px; background: var(--marker-yellow); --tx: -170px; --ty: 40px; --rz: 380deg; }
        .maclogin-transition__scrap--6 { width: 10px; height: 20px; margin: -10px 0 0 -5px; background: var(--marker-pink); --tx: 90px; --ty: 120px; --rz: -400deg; }
        .maclogin-transition__scrap--7 { width: 13px; height: 13px; margin: -6px 0 0 -6px; transform: rotate(12deg); background: #fff; --tx: -100px; --ty: -130px; --rz: 900deg; }
        .maclogin-transition__scrap--8 { width: 15px; height: 14px; margin: -7px 0 0 -7px; background: var(--marker-blue); --tx: 50px; --ty: -140px; --rz: -600deg; }
        .maclogin-transition__scrap--9 { width: 12px; height: 16px; margin: -8px 0 0 -6px; background: var(--marker-green); --tx: -130px; --ty: 100px; --rz: 550deg; }
        .maclogin-transition__scrap--10 { width: 14px; height: 11px; margin: -5px 0 0 -7px; background: var(--marker-yellow); --tx: 170px; --ty: -30px; --rz: -480deg; }
        .maclogin-transition__scrap--11 { width: 9px; height: 9px; margin: -4px 0 0 -4px; border-radius: 2px; background: var(--marker-pink); --tx: -60px; --ty: -60px; --rz: 720deg; }
        .maclogin-transition__scrap--12 { width: 17px; height: 9px; margin: -4px 0 0 -8px; background: var(--marker-blue); --tx: 110px; --ty: 20px; --rz: 420deg; }
        .maclogin-transition__scrap--13 { width: 11px; height: 11px; margin: -5px 0 0 -5px; background: #fffef0; --tx: -200px; --ty: 10px; --rz: -800deg; }
        .maclogin-transition__scrap--14 { width: 13px; height: 15px; margin: -7px 0 0 -6px; background: var(--marker-green); --tx: 40px; --ty: 150px; --rz: -360deg; }
        .maclogin-transition__scrap--15 { width: 12px; height: 10px; margin: -5px 0 0 -6px; background: var(--marker-yellow); --tx: -80px; --ty: 150px; --rz: 500deg; }
        .maclogin-transition__scrap--16 { width: 10px; height: 18px; margin: -9px 0 0 -5px; background: var(--marker-pink); --tx: 200px; --ty: -60px; --rz: 600deg; }
        .maclogin-transition__scrap--17 { width: 15px; height: 15px; margin: -7px 0 0 -7px; border-radius: var(--sketch-radius-2); background: var(--marker-blue); --tx: -30px; --ty: -160px; --rz: -500deg; }
        .maclogin-transition__scrap--18 { width: 14px; height: 8px; margin: -4px 0 0 -7px; background: var(--marker-green); --tx: 70px; --ty: -100px; --rz: 800deg; }

        .maclogin-transition__sparks {
            position: absolute;
            left: 50%;
            top: 50%;
            width: 0;
            height: 0;
            z-index: 6;
            pointer-events: none;
            font-size: clamp(14px, 2.5vw, 22px);
            color: var(--ink);
        }

        .maclogin-transition__spark {
            position: absolute;
            opacity: 0;
            font-weight: 900;
            line-height: 1;
            text-shadow: 2px 2px 0 var(--marker-yellow);
        }

        .maclogin-transition__spark--1 { left: -120px; top: -80px; color: var(--marker-pink); }
        .maclogin-transition__spark--2 { left: 100px; top: -90px; color: var(--marker-blue); }
        .maclogin-transition__spark--3 { left: -90px; top: 60px; color: var(--marker-green); }
        .maclogin-transition__spark--4 { left: 110px; top: 50px; color: var(--marker-yellow); }
        .maclogin-transition__spark--5 { left: 0; top: -130px; color: var(--marker-pink); }
        .maclogin-transition__spark--6 { left: -140px; top: 0; color: var(--marker-blue); }
        .maclogin-transition__spark--7 { left: 130px; top: -20px; color: var(--marker-green); }
        .maclogin-transition__spark--8 { left: -50px; top: 100px; color: var(--marker-yellow); }
        .maclogin-transition__spark--9 { left: 80px; top: 90px; color: var(--marker-pink); }
        .maclogin-transition__spark--10 { left: 0; top: 110px; color: var(--marker-blue); }

        .maclogin-transition__label {
            position: absolute;
            left: 50%;
            top: 50%;
            z-index: 7;
            transform: translate(-50%, -50%) rotate(-4deg) scale(0.88);
            margin: 0;
            padding: 12px 22px;
            font-size: clamp(17px, 3vw, 24px);
            font-weight: 800;
            letter-spacing: 0.04em;
            color: var(--ink);
            background: linear-gradient(135deg, #fff 0%, #fff9e6 50%, #fff 100%);
            border: var(--border-width) solid var(--ink);
            border-radius: var(--sketch-radius-1);
            box-shadow: 6px 6px 0 var(--ink), 0 0 0 3px var(--marker-pink), 0 0 24px rgba(255, 182, 193, 0.5);
            opacity: 0;
            white-space: nowrap;
            pointer-events: none;
            display: flex;
            align-items: center;
            gap: 8px;
        }

        .maclogin-transition__label-arrow {
            display: inline-block;
            font-size: 1.35em;
            animation: none;
        }

        #maclogin-transition.maclogin-transition--active {
            filter: saturate(1.2);
        }

        #maclogin-transition.maclogin-transition--active .maclogin-transition__vignette {
            animation: macloginTxVignetteWild 0.88s ease forwards;
        }

        #maclogin-transition.maclogin-transition--active .maclogin-transition__flash {
            animation: macloginTxFlashSweep 0.38s ease-out 0.08s forwards;
        }

        #maclogin-transition.maclogin-transition--active .maclogin-transition__stage {
            animation: macloginTxStageRumble 0.38s ease-in-out 0.04s 3;
        }

        #maclogin-transition.maclogin-transition--active .maclogin-transition__swipe-track--1 .maclogin-transition__swipe {
            animation: macloginTxSwipeWild 0.52s var(--ease-spring) forwards;
        }

        #maclogin-transition.maclogin-transition--active .maclogin-transition__swipe-track--2 .maclogin-transition__swipe {
            animation: macloginTxSwipeWild 0.52s var(--ease-spring) 0.07s forwards;
        }

        #maclogin-transition.maclogin-transition--active .maclogin-transition__swipe-track--3 .maclogin-transition__swipe {
            animation: macloginTxSwipeWild 0.52s var(--ease-spring) 0.14s forwards;
        }

        #maclogin-transition.maclogin-transition--active .maclogin-transition__swipe-track--4 .maclogin-transition__swipe {
            animation: macloginTxSwipeWild 0.52s var(--ease-spring) 0.21s forwards;
        }

        #maclogin-transition.maclogin-transition--active .maclogin-transition__swipe-track--5 .maclogin-transition__swipe {
            animation: macloginTxSwipeWild 0.54s var(--ease-spring) 0.28s forwards;
        }

        #maclogin-transition.maclogin-transition--active .maclogin-transition__fold {
            animation: macloginTxFold 0.55s var(--ease-spring) 0.18s forwards;
        }

        #maclogin-transition.maclogin-transition--active .maclogin-transition__label {
            animation: macloginTxLabelWild 0.55s var(--ease-spring) 0.3s forwards;
        }

        #maclogin-transition.maclogin-transition--active .maclogin-transition__label-arrow {
            animation: macloginTxArrowPulse 0.35s ease-in-out 0.55s infinite alternate;
        }

        #maclogin-transition.maclogin-transition--active .maclogin-transition__scrap {
            animation: macloginTxScrapBurst 0.78s var(--ease-spring) forwards;
        }

        #maclogin-transition.maclogin-transition--active .maclogin-transition__scrap--1 { animation-delay: 0.12s; }
        #maclogin-transition.maclogin-transition--active .maclogin-transition__scrap--2 { animation-delay: 0.14s; }
        #maclogin-transition.maclogin-transition--active .maclogin-transition__scrap--3 { animation-delay: 0.1s; }
        #maclogin-transition.maclogin-transition--active .maclogin-transition__scrap--4 { animation-delay: 0.16s; }
        #maclogin-transition.maclogin-transition--active .maclogin-transition__scrap--5 { animation-delay: 0.11s; }
        #maclogin-transition.maclogin-transition--active .maclogin-transition__scrap--6 { animation-delay: 0.18s; }
        #maclogin-transition.maclogin-transition--active .maclogin-transition__scrap--7 { animation-delay: 0.13s; }
        #maclogin-transition.maclogin-transition--active .maclogin-transition__scrap--8 { animation-delay: 0.15s; }
        #maclogin-transition.maclogin-transition--active .maclogin-transition__scrap--9 { animation-delay: 0.17s; }
        #maclogin-transition.maclogin-transition--active .maclogin-transition__scrap--10 { animation-delay: 0.09s; }
        #maclogin-transition.maclogin-transition--active .maclogin-transition__scrap--11 { animation-delay: 0.19s; }
        #maclogin-transition.maclogin-transition--active .maclogin-transition__scrap--12 { animation-delay: 0.2s; }
        #maclogin-transition.maclogin-transition--active .maclogin-transition__scrap--13 { animation-delay: 0.08s; }
        #maclogin-transition.maclogin-transition--active .maclogin-transition__scrap--14 { animation-delay: 0.21s; }
        #maclogin-transition.maclogin-transition--active .maclogin-transition__scrap--15 { animation-delay: 0.22s; }
        #maclogin-transition.maclogin-transition--active .maclogin-transition__scrap--16 { animation-delay: 0.16s; }
        #maclogin-transition.maclogin-transition--active .maclogin-transition__scrap--17 { animation-delay: 0.23s; }
        #maclogin-transition.maclogin-transition--active .maclogin-transition__scrap--18 { animation-delay: 0.24s; }

        #maclogin-transition.maclogin-transition--active .maclogin-transition__spark {
            animation: macloginTxSparkPop 0.55s var(--ease-spring) forwards;
        }

        #maclogin-transition.maclogin-transition--active .maclogin-transition__spark--1 { animation-delay: 0.2s; }
        #maclogin-transition.maclogin-transition--active .maclogin-transition__spark--2 { animation-delay: 0.22s; }
        #maclogin-transition.maclogin-transition--active .maclogin-transition__spark--3 { animation-delay: 0.18s; }
        #maclogin-transition.maclogin-transition--active .maclogin-transition__spark--4 { animation-delay: 0.25s; }
        #maclogin-transition.maclogin-transition--active .maclogin-transition__spark--5 { animation-delay: 0.15s; }
        #maclogin-transition.maclogin-transition--active .maclogin-transition__spark--6 { animation-delay: 0.28s; }
        #maclogin-transition.maclogin-transition--active .maclogin-transition__spark--7 { animation-delay: 0.26s; }
        #maclogin-transition.maclogin-transition--active .maclogin-transition__spark--8 { animation-delay: 0.3s; }
        #maclogin-transition.maclogin-transition--active .maclogin-transition__spark--9 { animation-delay: 0.32s; }
        #maclogin-transition.maclogin-transition--active .maclogin-transition__spark--10 { animation-delay: 0.17s; }

        @keyframes macloginTxVignetteWild {
            0% { opacity: 0; filter: hue-rotate(0deg) brightness(1); }
            20% { opacity: 0.1; filter: hue-rotate(35deg) brightness(1.05); }
            45% { opacity: 0.22; filter: hue-rotate(-25deg) brightness(0.95); }
            70% { opacity: 0.26; filter: hue-rotate(15deg) brightness(1.02); }
            100% { opacity: 0.32; filter: hue-rotate(0deg) brightness(1); }
        }

        @keyframes macloginTxFlashSweep {
            0% { opacity: 0; background-position: 0% 50%; }
            35% { opacity: 1; background-position: 80% 50%; }
            100% { opacity: 0; background-position: 160% 50%; }
        }

        @keyframes macloginTxStageRumble {
            0%, 100% { transform: translate(0, 0) rotate(0deg); }
            25% { transform: translate(-5px, 4px) rotate(-0.35deg); }
            50% { transform: translate(6px, -4px) rotate(0.4deg); }
            75% { transform: translate(-3px, -3px) rotate(-0.2deg); }
        }

        @keyframes macloginTxSwipeWild {
            0% { transform: translateX(-130%) skewX(-5deg) scaleY(1.08); }
            55% { transform: translateX(6px) skewX(2deg) scaleY(0.98); }
            100% { transform: translateX(0) skewX(0) scaleY(1); }
        }

        @keyframes macloginTxFold {
            0% { opacity: 0; transform: scale(0.3); }
            100% { opacity: 1; transform: scale(1); }
        }

        @keyframes macloginTxLabelWild {
            0% { opacity: 0; transform: translate(-50%, -50%) rotate(-12deg) scale(0.5); filter: blur(6px); }
            45% { opacity: 1; transform: translate(-50%, -50%) rotate(3deg) scale(1.12); filter: blur(0); }
            72% { transform: translate(-50%, -50%) rotate(-5deg) scale(0.98); }
            100% { opacity: 1; transform: translate(-50%, -50%) rotate(-4deg) scale(1); filter: blur(0); }
        }

        @keyframes macloginTxArrowPulse {
            from { transform: translateX(0) scale(1); }
            to { transform: translateX(8px) scale(1.15); }
        }

        @keyframes macloginTxScrapBurst {
            0% { opacity: 1; transform: translate(0, 0) rotate(0deg) scale(0.35); }
            100% { opacity: 0; transform: translate(var(--tx), var(--ty)) rotate(var(--rz)) scale(1.15); }
        }

        @keyframes macloginTxSparkPop {
            0% { opacity: 0; transform: scale(0) rotate(0deg); }
            30% { opacity: 1; transform: scale(1.4) rotate(180deg); }
            100% { opacity: 0; transform: scale(0.3) rotate(360deg); }
        }

        #maclogin-boot {
            position: fixed;
            inset: 0;
            z-index: 100040;
            display: flex;
            align-items: center;
            justify-content: center;
            pointer-events: none;
            overflow: hidden;
        }

        .maclogin-boot__paper {
            position: absolute;
            inset: 0;
            background: var(--paper);
            opacity: 1;
        }

        .maclogin-boot__stripes {
            position: absolute;
            inset: 0;
            display: flex;
            flex-direction: column;
            justify-content: center;
            gap: 0;
            transform: rotate(-8deg) scale(1.4);
            pointer-events: none;
        }

        .maclogin-boot__stripe {
            display: block;
            height: 28%;
            width: 140%;
            margin-left: -20%;
            border-top: var(--border-width) solid var(--ink);
            border-bottom: var(--border-width) solid var(--ink);
            transform: translateX(-100%);
            opacity: 0.92;
        }

        .maclogin-boot__stripe--y { background: var(--marker-yellow); }
        .maclogin-boot__stripe--p { background: var(--marker-pink); }
        .maclogin-boot__stripe--b { background: var(--marker-blue); }

        .maclogin-boot__center {
            position: relative;
            z-index: 2;
            text-align: center;
            transform: scale(0.85);
            opacity: 0;
        }

        .maclogin-boot__badge {
            display: inline-block;
            font-size: clamp(26px, 5vw, 38px);
            font-weight: 800;
            padding: 14px 28px;
            letter-spacing: 0.04em;
        }

        .maclogin-boot__tag {
            margin-top: 18px;
            font-size: 17px;
            font-weight: 700;
            color: var(--ink-light);
        }

        .maclogin-boot__dots {
            display: flex;
            justify-content: center;
            gap: 10px;
            margin-top: 22px;
        }

        .maclogin-boot__dots span {
            width: 10px;
            height: 10px;
            border-radius: 50%;
            border: var(--border-width) solid var(--ink);
            background: var(--marker-green);
        }

        #maclogin-boot.maclogin-boot--in .maclogin-boot__stripe--y {
            animation: macloginBootStripe 0.55s var(--ease-spring) forwards;
        }

        #maclogin-boot.maclogin-boot--in .maclogin-boot__stripe--p {
            animation: macloginBootStripe 0.55s var(--ease-spring) 0.1s forwards;
        }

        #maclogin-boot.maclogin-boot--in .maclogin-boot__stripe--b {
            animation: macloginBootStripe 0.55s var(--ease-spring) 0.2s forwards;
        }

        #maclogin-boot.maclogin-boot--in .maclogin-boot__center {
            animation: macloginBootCenter 0.65s var(--ease-spring) 0.25s forwards;
        }

        #maclogin-boot.maclogin-boot--in .maclogin-boot__dots span:nth-child(1) {
            animation: macloginBootDot 0.5s ease-in-out 0.7s infinite alternate;
        }

        #maclogin-boot.maclogin-boot--in .maclogin-boot__dots span:nth-child(2) {
            animation: macloginBootDot 0.5s ease-in-out 0.8s infinite alternate;
        }

        #maclogin-boot.maclogin-boot--in .maclogin-boot__dots span:nth-child(3) {
            animation: macloginBootDot 0.5s ease-in-out 0.9s infinite alternate;
        }

        @keyframes macloginBootStripe {
            to { transform: translateX(0); }
        }

        @keyframes macloginBootCenter {
            0% { opacity: 0; transform: scale(0.75) rotate(-4deg); }
            70% { opacity: 1; transform: scale(1.05) rotate(1deg); }
            100% { opacity: 1; transform: scale(1) rotate(0deg); }
        }

        @keyframes macloginBootDot {
            to { transform: translateY(-4px); background: var(--marker-yellow); }
        }

        #maclogin-boot.maclogin-boot--out {
            animation: macloginBootOut 0.65s var(--ease-smooth) forwards;
        }

        #maclogin-boot.maclogin-boot--out .maclogin-boot__stripe--y,
        #maclogin-boot.maclogin-boot--out .maclogin-boot__stripe--p,
        #maclogin-boot.maclogin-boot--out .maclogin-boot__stripe--b {
            animation: macloginBootStripeOut 0.55s var(--ease-smooth) forwards;
        }

        @keyframes macloginBootOut {
            to { opacity: 0; filter: blur(6px); }
        }

        @keyframes macloginBootStripeOut {
            to { transform: translateX(100%); opacity: 0.4; }
        }

        @media (prefers-reduced-motion: reduce) {
            #maclogin-transition.maclogin-transition--active {
                filter: none;
            }

            #maclogin-transition.maclogin-transition--active .maclogin-transition__vignette {
                animation: none;
                opacity: 0.18;
                filter: none;
            }

            #maclogin-transition.maclogin-transition--active .maclogin-transition__flash {
                animation: none;
                opacity: 0;
            }

            #maclogin-transition.maclogin-transition--active .maclogin-transition__stage {
                animation: none;
                transform: none;
            }

            #maclogin-transition.maclogin-transition--active .maclogin-transition__swipe {
                animation: none !important;
                transform: translateX(0) !important;
            }

            #maclogin-transition.maclogin-transition--active .maclogin-transition__fold {
                animation: none;
                opacity: 1;
                transform: none;
            }

            #maclogin-transition.maclogin-transition--active .maclogin-transition__label {
                animation: none;
                opacity: 1;
                transform: translate(-50%, -50%) rotate(-4deg) scale(1);
                filter: none;
            }

            #maclogin-transition.maclogin-transition--active .maclogin-transition__label-arrow {
                animation: none !important;
                transform: none;
            }

            #maclogin-transition.maclogin-transition--active .maclogin-transition__scrap,
            #maclogin-transition.maclogin-transition--active .maclogin-transition__spark {
                animation: none !important;
                opacity: 0 !important;
                visibility: hidden;
            }

            #maclogin-boot,
            #maclogin-boot.maclogin-boot--out {
                animation: none !important;
                opacity: 0 !important;
                visibility: hidden !important;
            }

            #maclogin-boot .maclogin-boot__stripe,
            #maclogin-boot .maclogin-boot__center {
                animation: none !important;
                transform: none !important;
                opacity: 1 !important;
            }
        }
