:root{--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "HarmonyOS Sans SC", "Noto Sans SC", "Microsoft YaHei", sans-serif;--font-mono: ui-monospace, "SF Mono", "JetBrains Mono", Menlo, Consolas, monospace;--fs-display: clamp(2.5rem, 5.4vw, 4.25rem);--fs-h1: clamp(2rem, 4vw, 3rem);--fs-h2: clamp(1.7rem, 3.1vw, 2.5rem);--fs-h3: 1.1875rem;--fs-h4: 1.0625rem;--fs-body: 1.0625rem;--fs-sm: .9375rem;--fs-xs: .8125rem;--fs-xxs: .75rem;--lh-tight: 1.12;--lh-snug: 1.3;--lh-body: 1.75;--ls-display: -.035em;--ls-heading: -.022em;--ls-body: -.005em;--ls-caps: .08em;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 24px;--sp-6: 32px;--sp-7: 48px;--sp-8: 64px;--sp-9: 88px;--sp-10: 120px;--r-sm: 6px;--r-md: 10px;--r-lg: 14px;--r-xl: 20px;--r-full: 999px;--ease: cubic-bezier(.4, 0, .2, 1);--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-spring: cubic-bezier(.34, 1.32, .64, 1);--dur-fast: .14s;--dur: .24s;--dur-slow: .38s;--dur-shine: .64s;--container: 1160px;--nav-h: 64px}:root,[data-theme=light]{color-scheme:light;--bg: #ffffff;--bg-subtle: #f7f8fa;--bg-sunken: #f2f4f8;--surface: #ffffff;--surface-2: #f7f8fa;--border: #e7eaef;--border-strong: #d4d9e2;--border-faint: #eff1f5;--text: #0d1117;--text-2: #4e5566;--text-3: #838b9c;--text-inverse: #ffffff;--accent: #1a4fd8;--accent-hover: #1440b2;--accent-soft: #eef3ff;--accent-border: #cbd9fc;--accent-text: #1a4fd8;--success: #0f7a55;--success-soft: #e8f6f0;--success-border: #bfe5d5;--warn: #8a5a00;--warn-soft: #fdf5e3;--warn-border: #f0dcae;--danger: #b8332a;--danger-soft: #fdeceb;--danger-border: #f5cbc8;--shadow-sm: 0 1px 2px rgba(16, 24, 40, .04);--shadow-md: 0 4px 14px -4px rgba(16, 24, 40, .08);--shadow-lg: 0 24px 56px -20px rgba(16, 24, 40, .16);--shadow-accent: 0 10px 28px -10px rgba(26, 79, 216, .4);--grid-line: rgba(13, 17, 23, .045)}[data-theme=dark]{color-scheme:dark;--bg: #0a0d14;--bg-subtle: #0d111a;--bg-sunken: #080b11;--surface: #12161f;--surface-2: #171c27;--border: #232936;--border-strong: #2f3745;--border-faint: #1a1f2a;--text: #e9ecf3;--text-2: #a1a9b8;--text-3: #6f7787;--text-inverse: #0a0d14;--accent: #5b87ff;--accent-hover: #7ba0ff;--accent-soft: #16203a;--accent-border: #2b3d6b;--accent-text: #8fadff;--success: #3dba8b;--success-soft: #10251d;--success-border: #1e4436;--warn: #d9a03c;--warn-soft: #241c0d;--warn-border: #453521;--danger: #e5695e;--danger-soft: #2a1413;--danger-border: #4a2321;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 6px 20px -6px rgba(0, 0, 0, .5);--shadow-lg: 0 28px 64px -24px rgba(0, 0, 0, .7);--shadow-accent: 0 10px 30px -12px rgba(91, 135, 255, .45);--grid-line: rgba(233, 236, 243, .05)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--nav-h) + 20px);-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:var(--fs-body);line-height:var(--lh-body);letter-spacing:var(--ls-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}a{color:inherit;text-decoration:none}img,svg{max-width:100%;display:block}button{font-family:inherit;font-size:inherit;color:inherit;background:none;border:none;cursor:pointer}ul,ol{list-style:none}table{border-collapse:collapse;width:100%}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:var(--r-sm)}::selection{background:var(--accent);color:#fff}h1,h2,h3,h4{font-weight:650;letter-spacing:var(--ls-heading);line-height:var(--lh-snug);color:var(--text)}.display{font-size:var(--fs-display);font-weight:680;letter-spacing:var(--ls-display);line-height:var(--lh-tight)}.h2{font-size:var(--fs-h2);font-weight:660;letter-spacing:-.028em}.h3{font-size:var(--fs-h3);font-weight:620}.h4{font-size:var(--fs-h4);font-weight:620}.lead{font-size:clamp(1rem,1.6vw,1.1875rem);line-height:1.8;color:var(--text-2)}.muted{color:var(--text-2)}.faint{color:var(--text-3)}.small{font-size:var(--fs-sm)}.mono{font-family:var(--font-mono);font-size:.92em;letter-spacing:.01em}b,strong{font-weight:640;color:var(--text)}.container{width:100%;max-width:var(--container);margin:0 auto;padding:0 clamp(20px,4vw,40px)}.container-narrow{width:100%;max-width:760px;margin:0 auto;padding:0 clamp(20px,4vw,40px)}.section{padding:clamp(48px,5.5vw,88px) 0}.section-tight{padding:clamp(40px,4vw,60px) 0}.section-sunken{background:var(--bg-subtle);border-top:1px solid var(--border-faint);border-bottom:1px solid var(--border-faint)}.head{max-width:720px;margin-bottom:clamp(32px,3.6vw,52px)}.head-center{margin-left:auto;margin-right:auto;text-align:center}.eyebrow{display:inline-block;font-size:var(--fs-xxs);font-weight:640;letter-spacing:var(--ls-caps);text-transform:uppercase;color:var(--accent-text);margin-bottom:var(--sp-4)}.head-sub{margin-top:var(--sp-3);font-size:var(--fs-body);line-height:1.8;color:var(--text-2)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:absolute;left:-9999px;top:0;z-index:200;padding:10px 18px;background:var(--accent);color:#fff;font-weight:600;border-radius:0 0 var(--r-md) 0}.skip-link:focus{left:0}.reveal{opacity:0;transform:translateY(14px);transition:opacity var(--dur-slow) var(--ease),transform var(--dur-slow) var(--ease)}.reveal.is-in{opacity:1;transform:none}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.reveal{opacity:1;transform:none}}.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);font-weight:600;letter-spacing:-.005em;border-radius:var(--r-md);border:1px solid transparent;white-space:nowrap;cursor:pointer;overflow:hidden;isolation:isolate;transition:background-color var(--dur) var(--ease),color var(--dur) var(--ease),border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease),transform var(--dur) var(--ease-out)}.btn:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;background:linear-gradient(100deg,transparent 22%,rgba(255,255,255,.2) 50%,transparent 78%);transform:translate(-130%);transition:transform var(--dur-shine) var(--ease-out);pointer-events:none}.btn:hover:after{transform:translate(130%)}.btn:active{transform:translateY(0) scale(.985);transition-duration:90ms}.btn-sm{height:38px;padding:0 var(--sp-4);font-size:var(--fs-sm)}.btn-md{height:46px;padding:0 var(--sp-5);font-size:var(--fs-body)}.btn-lg{height:54px;padding:0 var(--sp-6);font-size:1.0625rem}.btn-primary{background-color:var(--text);color:var(--bg);box-shadow:var(--shadow-sm)}.btn-primary:hover{background-color:var(--accent);color:#fff;box-shadow:var(--shadow-accent);transform:translateY(-1px)}.btn-accent{background-color:var(--accent);color:#fff;box-shadow:var(--shadow-accent)}.btn-accent:hover{background-color:var(--accent-hover);color:#fff;transform:translateY(-1px)}.btn-outline{background-color:var(--surface);color:var(--text);border-color:var(--border-strong)}.btn-outline:hover{border-color:var(--accent);color:var(--accent-text);background-color:var(--accent-soft);transform:translateY(-1px)}.btn-ghost{background-color:transparent;color:var(--text-2)}.btn-ghost:hover{background-color:var(--surface-2);color:var(--text)}.btn-block{width:100%}.btn:disabled{opacity:.55;cursor:not-allowed;box-shadow:none}.btn:disabled:after,.btn:disabled:hover{transform:none}.btn-arrow{transition:transform var(--dur) var(--ease-out)}.btn:hover .btn-arrow{transform:translate(4px)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-sm)}.card-interactive{transition:box-shadow var(--dur) var(--ease),border-color var(--dur) var(--ease),transform var(--dur) var(--ease-out),opacity var(--dur-slow) var(--ease)}.card-interactive:hover{box-shadow:var(--shadow-md);border-color:var(--border-strong);transform:translateY(-2px)}.card-pad{padding:clamp(20px,2.4vw,32px)}.badge{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 10px;border-radius:var(--r-full);font-size:var(--fs-xxs);font-weight:620;letter-spacing:.01em;border:1px solid transparent;white-space:nowrap}.badge-accent{background:var(--accent-soft);color:var(--accent-text);border-color:var(--accent-border)}.badge-success{background:var(--success-soft);color:var(--success);border-color:var(--success-border)}.badge-warn{background:var(--warn-soft);color:var(--warn);border-color:var(--warn-border)}.badge-danger{background:var(--danger-soft);color:var(--danger);border-color:var(--danger-border)}.badge-neutral{background:var(--surface-2);color:var(--text-2);border-color:var(--border)}.badge-dot:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.icon{width:20px;height:20px;flex:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;fill:none}.icon-sm{width:16px;height:16px}.icon-lg{width:24px;height:24px}.icon-badge{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--r-md);flex:none}.icon-badge-accent{background:var(--accent-soft);color:var(--accent-text);border:1px solid var(--accent-border)}.icon-badge-success{background:var(--success-soft);color:var(--success);border:1px solid var(--success-border)}.icon-badge-warn{background:var(--warn-soft);color:var(--warn);border:1px solid var(--warn-border)}.icon-badge-danger{background:var(--danger-soft);color:var(--danger);border:1px solid var(--danger-border)}.nav{position:sticky;top:0;z-index:60;height:var(--nav-h);background:color-mix(in srgb,var(--bg) 82%,transparent);backdrop-filter:saturate(1.6) blur(14px);-webkit-backdrop-filter:saturate(1.6) blur(14px);border-bottom:1px solid var(--border-faint)}.nav-inner{display:flex;align-items:center;gap:var(--sp-5);height:var(--nav-h)}.brand{display:flex;align-items:center;gap:9px;font-weight:660;font-size:1.0625rem;letter-spacing:-.02em;flex:none}.brand-mark{width:28px;height:28px;flex:none;color:var(--accent)}.brand em{font-style:normal;color:var(--accent-text)}.brand-tag{font-size:var(--fs-xxs);font-weight:620;color:var(--text-3);padding:2px 7px;border-radius:var(--r-sm);background:var(--surface-2);border:1px solid var(--border)}.nav-links{display:flex;align-items:center;gap:2px;margin-left:auto}.nav-links a{padding:7px 12px;border-radius:var(--r-sm);white-space:nowrap;font-size:var(--fs-sm);font-weight:520;color:var(--text-2);transition:color var(--dur-fast) var(--ease),background var(--dur-fast) var(--ease)}.nav-links a:hover{color:var(--text);background:var(--surface-2)}.nav-links a.nav-hi{color:var(--accent-text);font-weight:600}.nav-links a.nav-hi:hover{background:var(--accent-soft);color:var(--accent-text)}.nav-cta{flex:none}@media (max-width: 900px){.nav-links a.optional{display:none}}@media (max-width: 620px){.nav-links a:not(.nav-hi){padding:7px 8px}}@media (max-width: 620px){.nav-cta{display:none}.nav-links a{padding:7px 9px;font-size:var(--fs-xs)}}@media (max-width: 440px){.brand-tag{display:none}.nav-links{gap:0}.nav-links a{padding:7px}}.plans{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--sp-4);align-items:stretch;max-width:820px;margin-inline:auto}.plan{display:flex;flex-direction:column;padding:clamp(24px,2.6vw,34px);position:relative;transition:box-shadow var(--dur) var(--ease),border-color var(--dur) var(--ease),transform var(--dur) var(--ease-out),opacity var(--dur-slow) var(--ease)}.plan:hover{box-shadow:var(--shadow-lg);border-color:var(--border-strong);transform:translateY(-3px)}.plan-featured{border-color:var(--accent-border);background:linear-gradient(var(--surface),var(--surface)) padding-box;box-shadow:0 0 0 1px var(--accent-border),var(--shadow-sm)}.plan-featured:hover{box-shadow:0 0 0 1px var(--accent-border),var(--shadow-lg);border-color:var(--accent-border)}.plan-featured:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:var(--r-lg);background:var(--accent-soft);opacity:.45;pointer-events:none;z-index:0}.plan>*{position:relative;z-index:1}.plan-flag{position:absolute;top:-10px;left:clamp(24px,2.6vw,34px);z-index:2}.plan-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-3);margin-bottom:var(--sp-2)}.plan-name{font-size:var(--fs-h3);font-weight:640;letter-spacing:-.015em}.plan-for{font-size:var(--fs-xs);color:var(--text-3);margin-bottom:var(--sp-5)}.plan-price{display:flex;align-items:baseline;gap:6px;margin-bottom:var(--sp-5)}.plan-price b{font-size:clamp(2.25rem,3.4vw,2.875rem);font-weight:700;letter-spacing:-.04em;line-height:1}.plan-price span{font-size:var(--fs-sm);color:var(--text-3)}.plan-price em{font-style:normal;font-size:1.25rem;font-weight:620;letter-spacing:-.02em}.plan-feats{display:flex;flex-direction:column;gap:var(--sp-3);margin-top:auto;padding-top:var(--sp-5);border-top:1px solid var(--border-faint);margin-bottom:var(--sp-5)}.plan-feats li{display:flex;align-items:flex-start;gap:10px;font-size:var(--fs-sm);line-height:1.65;color:var(--text-2)}.plan-feats li svg{margin-top:3px;color:var(--accent-text)}.plan-feats li b{color:var(--text)}.compare{border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden;background:var(--surface);font-size:var(--fs-sm)}.compare table{min-width:560px}.compare-scroll{overflow-x:auto}.compare th,.compare td{padding:14px 18px;text-align:left;border-bottom:1px solid var(--border-faint);vertical-align:top}.compare thead th{font-size:var(--fs-xs);font-weight:640;letter-spacing:.01em;color:var(--text-3);background:var(--surface-2);border-bottom:1px solid var(--border);white-space:nowrap}.compare thead th.ours{color:var(--accent-text);background:var(--accent-soft)}.compare tbody th{font-weight:560;color:var(--text);width:22%}.compare td.ours{background:color-mix(in srgb,var(--accent-soft) 55%,transparent);border-left:1px solid var(--accent-border);border-right:1px solid var(--accent-border)}.compare td.theirs{color:var(--text-3)}.compare tbody tr:last-child th,.compare tbody tr:last-child td{border-bottom:none}.cell{display:flex;align-items:flex-start;gap:9px;line-height:1.6}.cell svg{margin-top:3px;flex:none}.cell-yes{color:var(--accent-text)}.cell-no{color:var(--text-3)}.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:var(--sp-4);counter-reset:step}.step{padding:clamp(22px,2.4vw,30px);position:relative;transition:box-shadow var(--dur) var(--ease),border-color var(--dur) var(--ease),transform var(--dur) var(--ease-out),opacity var(--dur-slow) var(--ease)}.step:hover{box-shadow:var(--shadow-md);border-color:var(--border-strong);transform:translateY(-2px)}.step:hover .step-num{background:var(--accent-soft);border-color:var(--accent-border);color:var(--accent-text)}.step-num{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:var(--r-sm);background:var(--surface-2);border:1px solid var(--border);font-size:var(--fs-xs);font-weight:660;color:var(--text-2);font-variant-numeric:tabular-nums;margin-bottom:var(--sp-4);transition:background-color var(--dur) var(--ease),border-color var(--dur) var(--ease),color var(--dur) var(--ease)}.step h3{font-size:var(--fs-h4);margin-bottom:var(--sp-2)}.step p{font-size:var(--fs-sm);line-height:1.75;color:var(--text-2)}.guards{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:var(--sp-4)}.guard{padding:clamp(24px,2.6vw,34px);transition:box-shadow var(--dur) var(--ease),border-color var(--dur) var(--ease),transform var(--dur) var(--ease-out),opacity var(--dur-slow) var(--ease)}.guard:hover{box-shadow:var(--shadow-md);border-color:var(--border-strong);transform:translateY(-2px)}.guard-head{display:flex;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-4)}.guard h3{font-size:var(--fs-h3)}.guard-claim{font-size:var(--fs-sm);line-height:1.7;color:var(--text-2);padding-bottom:var(--sp-4);margin-bottom:var(--sp-4);border-bottom:1px solid var(--border-faint)}.guard-list{display:flex;flex-direction:column;gap:var(--sp-3)}.guard-list li{display:flex;align-items:flex-start;gap:10px;font-size:var(--fs-sm);line-height:1.7;color:var(--text-2)}.guard-list li svg{margin-top:4px;flex:none}.vow{margin-top:var(--sp-6);padding:clamp(24px,3vw,36px);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:var(--r-lg);background:var(--surface)}.vow b{display:block;font-size:var(--fs-h4);margin-bottom:var(--sp-2)}.vow p{font-size:var(--fs-sm);line-height:1.8;color:var(--text-2)}.tips{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--sp-3);margin-top:var(--sp-5)}.tip{padding:var(--sp-4) var(--sp-5);border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);transition:box-shadow var(--dur) var(--ease),border-color var(--dur) var(--ease),transform var(--dur) var(--ease-out),opacity var(--dur-slow) var(--ease)}.tip:hover{box-shadow:var(--shadow-md);border-color:var(--accent-border);transform:translateY(-2px)}.tip h4{display:flex;align-items:center;gap:10px;font-size:var(--fs-sm);font-weight:620;margin-bottom:6px}.tip h4 em{font-style:normal;display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:var(--r-sm);background:var(--surface-2);border:1px solid var(--border);font-size:var(--fs-xxs);font-weight:660;color:var(--text-2);flex:none}.tip span{font-size:var(--fs-xs);line-height:1.7;color:var(--text-2)}.faq{border-top:1px solid var(--border)}.faq details{border-bottom:1px solid var(--border)}.faq summary{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);padding:20px 4px;cursor:pointer;list-style:none;transition:color var(--dur-fast) var(--ease)}.faq summary::-webkit-details-marker{display:none}.faq summary:hover{color:var(--accent-text)}.faq summary h3{font-size:var(--fs-body);font-weight:600;letter-spacing:-.01em}.faq-mark{position:relative;width:16px;height:16px;flex:none}.faq-mark:before,.faq-mark:after{content:"";position:absolute;background:var(--text-3);border-radius:1px;transition:transform var(--dur) var(--ease-out),background-color var(--dur) var(--ease)}.faq summary:hover .faq-mark:before,.faq summary:hover .faq-mark:after{background-color:var(--accent-text)}.faq-mark:before{top:7.5px;left:0;width:16px;height:1.5px}.faq-mark:after{top:0;left:7.5px;width:1.5px;height:16px}.faq details[open] .faq-mark:after{transform:scaleY(0)}.faq-answer{padding:0 4px 22px;font-size:var(--fs-sm);line-height:1.85;color:var(--text-2);max-width:74ch}.faq details[open] .faq-answer{animation:faq-in var(--dur-slow) var(--ease-out)}@keyframes faq-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}.faq-answer b{color:var(--text)}.faq-answer a{color:var(--accent-text);text-decoration:underline;text-underline-offset:2px}.cta-box{padding:clamp(36px,5vw,64px);border-radius:var(--r-xl);background:var(--text);color:var(--bg);text-align:center}.cta-box h2{color:inherit;font-size:clamp(1.5rem,2.8vw,2.125rem);letter-spacing:-.03em}.cta-box p{margin:var(--sp-4) auto 0;max-width:60ch;font-size:var(--fs-sm);line-height:1.8;opacity:.72}.contacts{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--sp-3);margin-top:var(--sp-6)}.contact-card{display:flex;align-items:center;gap:var(--sp-4);padding:14px 18px;border-radius:var(--r-md);background:#ffffff12;border:1px solid rgba(255,255,255,.14);transition:background-color var(--dur) var(--ease),border-color var(--dur) var(--ease),transform var(--dur) var(--ease-out)}.contact-card:hover{background-color:#ffffff1f;border-color:#ffffff42;transform:translateY(-2px)}.contact-card .label{font-size:var(--fs-xxs);letter-spacing:.04em;opacity:.62}.contact-card .value{font-family:var(--font-mono);font-size:1.0625rem;font-weight:600;letter-spacing:.01em}.copy-btn{padding:5px 12px;border-radius:var(--r-sm);background-color:#ffffff1a;border:1px solid rgba(255,255,255,.18);font-size:var(--fs-xs);font-weight:600;transition:background-color var(--dur) var(--ease),border-color var(--dur) var(--ease),transform var(--dur-fast) var(--ease-out)}.copy-btn:hover{background-color:#fff3;border-color:#ffffff4d;transform:translateY(-1px)}.copy-btn:active{transform:scale(.94)}.copy-btn.is-done{background-color:#3dba8be6;border-color:#3dba8be6;color:#fff;animation:pop var(--dur-slow) var(--ease-spring)}@keyframes pop{0%{transform:scale(.9)}55%{transform:scale(1.06)}to{transform:scale(1)}}.footer{border-top:1px solid var(--border);background:var(--bg-subtle);padding:clamp(48px,6vw,72px) 0 var(--sp-6)}.footer-top{display:grid;grid-template-columns:minmax(0,1.6fr) repeat(auto-fit,minmax(140px,1fr));gap:clamp(32px,5vw,64px)}@media (max-width: 720px){.footer-top{grid-template-columns:1fr;gap:var(--sp-6)}}.footer-about h2{font-size:var(--fs-sm);font-weight:620;margin:var(--sp-4) 0 var(--sp-2)}.footer-about p{font-size:var(--fs-xs);line-height:1.85;color:var(--text-2);max-width:62ch}.footer-col h2{font-size:var(--fs-xs);font-weight:640;letter-spacing:var(--ls-caps);text-transform:uppercase;color:var(--text-3);margin-bottom:var(--sp-3)}.footer-col li+li{margin-top:9px}.footer-col a{font-size:var(--fs-sm);color:var(--text-2);transition:color var(--dur-fast) var(--ease)}.footer-col a:hover{color:var(--accent-text)}.footer-legal{margin-top:clamp(40px,5vw,56px);padding-top:var(--sp-5);border-top:1px solid var(--border);display:flex;flex-direction:column;gap:6px;font-size:var(--fs-xxs);line-height:1.8;color:var(--text-3)}.divider{height:1px;background:var(--border-faint);border:none}.pill-row{display:flex;flex-wrap:wrap;gap:var(--sp-2);justify-content:center}.pill{display:inline-flex;align-items:center;gap:7px;padding:8px 15px;border-radius:var(--r-full);background:var(--surface);border:1px solid var(--border);font-size:var(--fs-xs);font-weight:560;color:var(--text-2);box-shadow:var(--shadow-sm);transition:box-shadow var(--dur) var(--ease),border-color var(--dur) var(--ease),color var(--dur) var(--ease),transform var(--dur) var(--ease-out)}.pill:hover{border-color:var(--accent-border);color:var(--text);transform:translateY(-1px)}.pill svg{color:var(--accent-text)}.note{font-size:var(--fs-xs);line-height:1.8;color:var(--text-3)}.field{margin-bottom:var(--sp-4)}.field-label{display:block;font-size:var(--fs-sm);font-weight:560;margin-bottom:var(--sp-2)}.input,.textarea{width:100%;padding:12px 14px;font-family:inherit;font-size:var(--fs-sm);color:var(--text);background:var(--bg-sunken);border:1px solid var(--border);border-radius:var(--r-md);transition:border-color var(--dur-fast) var(--ease),background var(--dur-fast) var(--ease)}.input::placeholder,.textarea::placeholder{color:var(--text-3)}.input:focus,.textarea:focus{outline:none;border-color:var(--accent);background:var(--surface)}.textarea{min-height:96px;resize:vertical}.hint{margin-top:7px;font-size:var(--fs-xs);line-height:1.65;color:var(--text-3)}.msg{display:none;padding:13px 16px;border-radius:var(--r-md);font-size:var(--fs-sm);line-height:1.65;border:1px solid transparent}.msg.show{display:block}.msg-ok{background:var(--success-soft);color:var(--success);border-color:var(--success-border)}.msg-err{background:var(--danger-soft);color:var(--danger);border-color:var(--danger-border)}.msg-info{background:var(--accent-soft);color:var(--accent-text);border-color:var(--accent-border)}.diag{margin-top:var(--sp-5);border:1px solid var(--danger-border);background:var(--danger-soft);border-radius:var(--r-md);padding:var(--sp-4) var(--sp-5)}.diag-head{display:flex;align-items:center;gap:8px;margin-bottom:var(--sp-3);font-size:var(--fs-sm);font-weight:620;color:var(--danger)}.diag-head .diag-dot{width:8px;height:8px;border-radius:50%;background:var(--danger);flex:none}.diag-list{display:grid;gap:6px;margin:0}.diag-list>div{display:grid;grid-template-columns:84px 1fr;gap:var(--sp-3);align-items:baseline;font-size:var(--fs-sm);line-height:1.6}.diag-label{color:var(--text-3);font-size:var(--fs-xs);font-weight:560}.diag-value{color:var(--text);overflow-wrap:anywhere}.diag-code .diag-value{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-2);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);padding:8px 10px}.diag-foot{margin-top:var(--sp-3);padding-top:var(--sp-3);border-top:1px dashed var(--danger-border);font-size:var(--fs-xs);color:var(--text-3)}.diag-actions{display:flex;gap:10px;margin-top:var(--sp-3);flex-wrap:wrap}.diag-btn{border:1px solid var(--border);background:var(--surface);color:var(--text-2);border-radius:var(--r-sm);padding:5px 10px;font-size:var(--fs-xs);cursor:pointer;transition:all var(--dur-fast) var(--ease)}.diag-btn:hover{border-color:var(--accent-border);color:var(--accent-text)}@media (max-width: 640px){.diag-list>div{grid-template-columns:1fr;gap:2px}}.modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;display:flex;align-items:center;justify-content:center;padding:var(--sp-5);background:#1018286b;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.modal{width:100%;max-width:400px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);padding:var(--sp-6) var(--sp-6) var(--sp-5);text-align:center}.modal-icon{display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:50%;margin-bottom:var(--sp-4)}.modal-icon svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round}.modal-icon.is-error{background:var(--danger-soft);color:var(--danger)}.modal-icon.is-warn{background:var(--warn-soft);color:var(--warn)}.modal-icon.is-info{background:var(--accent-soft);color:var(--accent-text)}.modal-title{font-size:var(--fs-h4);font-weight:660;letter-spacing:-.01em;margin-bottom:8px}.modal-text{font-size:var(--fs-sm);line-height:1.7;color:var(--text-2);overflow-wrap:anywhere}.modal-detail{margin-top:10px;padding:8px 10px;border-radius:var(--r-sm);background:var(--surface-2);border:1px solid var(--border);font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-3);text-align:left;overflow-wrap:anywhere}.modal-actions{margin-top:var(--sp-5)}.modal-actions .btn{min-width:132px}.modal-enter-active,.modal-leave-active{transition:opacity var(--dur) var(--ease)}.modal-enter-active .modal,.modal-leave-active .modal{transition:transform var(--dur) var(--ease-out),opacity var(--dur) var(--ease)}.modal-enter-from,.modal-leave-to{opacity:0}.modal-enter-from .modal,.modal-leave-to .modal{opacity:0;transform:translateY(10px) scale(.97)}
