:root{--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--space-20: 5rem;--space-24: 6rem}:root{--color-bg-primary: #232327;--color-bg-secondary: #2c2c31;--color-bg-tertiary: #36363c;--color-bg-elevated: #2a2a2f;--color-bg-code: #1c1c20;--color-bg-overlay: rgba(20, 20, 24, .78);--color-grid: rgba(255, 255, 255, .04);--color-scanline: rgba(255, 255, 255, .02);--color-text-primary: #ececee;--color-text-secondary: #b4b4bb;--color-text-tertiary: #82828c;--color-text-inverse: #0a0a0c;--color-text-link: #c8d3d1;--color-text-link-hover: #ffffff;--color-border: #3f3f46;--color-border-strong: #52525a;--color-border-focus: #00e5ff;--color-success: #22d65e;--color-success-bg: rgba(34, 214, 94, .1);--color-warning: #fbbf24;--color-warning-bg: rgba(251, 191, 36, .1);--color-danger: #ff4757;--color-danger-bg: rgba(255, 71, 87, .1);--color-info: #00e5ff;--color-info-bg: rgba(0, 229, 255, .1);--color-brand-primary: #00e5ff;--color-brand-secondary: #5eead4;--color-accent: #00e5ff;--color-accent-hover: #67f0ff;--color-accent-bg: rgba(0, 229, 255, .1);--color-accent-text: #0a0a0c;--color-accent-glow: rgba(0, 229, 255, .3)}:root{--font-sans: "Inter", "Noto Sans JP", "Hiragino Sans", "Yu Gothic", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", "Fira Code", "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;--font-display: var(--font-mono);--text-xs: clamp(.75rem, .7rem + .25vw, .8rem);--text-sm: clamp(.875rem, .82rem + .28vw, .938rem);--text-base: clamp(1rem, .95rem + .25vw, 1.063rem);--text-lg: clamp(1.125rem, 1.05rem + .38vw, 1.25rem);--text-xl: clamp(1.25rem, 1.15rem + .5vw, 1.5rem);--text-2xl: clamp(1.5rem, 1.35rem + .75vw, 1.875rem);--text-3xl: clamp(1.875rem, 1.55rem + 1.25vw, 2.5rem);--text-4xl: clamp(2.25rem, 1.75rem + 2vw, 3.5rem);--weight-regular: 400;--weight-medium: 500;--weight-semibold: 600;--weight-bold: 700;--leading-tight: 1.25;--leading-snug: 1.5;--leading-normal: 1.75;--leading-loose: 1.85;--tracking-tight: -.02em;--tracking-normal: 0em;--tracking-wide: .06em;--tracking-mono: .03em}:root{--radius-none: 0;--radius-sm: 2px;--radius-md: 4px;--radius-lg: 8px;--radius-xl: 12px;--radius-full: 9999px}:root{--shadow-none: none;--shadow-sm: 0 1px 0 rgba(0, 0, 0, .4);--shadow-md: 0 8px 24px -10px rgba(0, 0, 0, .55), 0 1px 0 rgba(255, 255, 255, .04) inset;--shadow-lg: 0 20px 40px -16px rgba(0, 0, 0, .7), 0 1px 0 rgba(255, 255, 255, .04) inset;--shadow-xl: 0 30px 60px -20px rgba(0, 0, 0, .8), 0 1px 0 rgba(255, 255, 255, .04) inset;--shadow-inner: inset 0 1px 2px 0 rgba(0, 0, 0, .5);--glow-sm: 0 0 0 1px var(--color-accent-glow);--glow-md: 0 0 24px -4px var(--color-accent-glow), 0 0 0 1px var(--color-accent-glow);--glow-lg: 0 0 48px -8px var(--color-accent-glow), 0 0 0 1px var(--color-accent-glow)}:root{--transition-fast: .15s ease;--transition-base: .22s ease;--transition-slow: .4s ease;--transition-spring: .3s cubic-bezier(.34, 1.56, .64, 1)}:root{--z-hide: -1;--z-base: 0;--z-raised: 10;--z-dropdown: 100;--z-sticky: 200;--z-overlay: 300;--z-modal: 400;--z-toast: 500}[data-category=vpn]{--color-accent: #00d4ff;--color-accent-hover:#67e9ff;--color-accent-bg: rgba(0, 212, 255, .1);--color-accent-text: #04111a;--color-accent-glow: rgba(0, 212, 255, .4)}[data-category=password-manager]{--color-accent: #22d65e;--color-accent-hover:#5eea8d;--color-accent-bg: rgba(34, 214, 94, .1);--color-accent-text: #051a0a;--color-accent-glow: rgba(34, 214, 94, .4)}[data-category=antivirus]{--color-accent: #ff4757;--color-accent-hover:#ff7785;--color-accent-bg: rgba(255, 71, 87, .1);--color-accent-text: #1a0508;--color-accent-glow: rgba(255, 71, 87, .38)}[data-category=id-protection]{--color-accent: #a78bfa;--color-accent-hover:#c4b5fd;--color-accent-bg: rgba(167, 139, 250, .12);--color-accent-text: #0f0820;--color-accent-glow: rgba(167, 139, 250, .38)}[data-category="2fa"]{--color-accent: #fbbf24;--color-accent-hover:#fcd34d;--color-accent-bg: rgba(251, 191, 36, .12);--color-accent-text: #1a0f00;--color-accent-glow: rgba(251, 191, 36, .38)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{color-scheme:dark;scrollbar-gutter:stable;scroll-behavior:smooth;-webkit-text-size-adjust:100%;text-size-adjust:100%}body{font-family:var(--font-sans);font-size:var(--text-base);font-weight:var(--weight-regular);line-height:var(--leading-normal);color:var(--color-text-primary);background-color:var(--color-bg-primary);background-image:radial-gradient(ellipse 90% 60% at 50% -10%,rgba(255,255,255,.06),transparent 60%),linear-gradient(to bottom,transparent 0%,rgba(0,0,0,.25) 100%),linear-gradient(var(--color-grid) 1px,transparent 1px),linear-gradient(90deg,var(--color-grid) 1px,transparent 1px);background-size:100% 100%,100% 100%,32px 32px,32px 32px;background-attachment:fixed;background-position:top center,top center,top left,top left;min-height:100vh;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:var(--z-hide);background:repeating-linear-gradient(to bottom,transparent 0,transparent 3px,var(--color-scanline) 3px,var(--color-scanline) 4px);mix-blend-mode:overlay;opacity:.5}@media(prefers-reduced-motion:reduce){body:before{display:none}}img,video,svg{display:block;max-width:100%;height:auto}button,input,select,textarea{font:inherit;color:inherit}ul,ol{list-style:none}hr{border:none;border-top:1px solid var(--color-border);margin:var(--space-8) 0}table{border-collapse:collapse;border-spacing:0;width:100%}blockquote{border-left:4px solid var(--color-accent, var(--color-brand-primary));padding-left:var(--space-4);color:var(--color-text-secondary)}code,kbd,samp,pre{font-family:var(--font-mono);font-size:.9em}pre{background-color:var(--color-bg-code);border-radius:var(--radius-md);padding:var(--space-4);overflow-x:auto;tab-size:2}code:not(pre code){background-color:var(--color-bg-code);border-radius:var(--radius-sm);padding:.1em .35em}a{color:var(--color-text-link);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.25em;text-decoration-color:color-mix(in srgb,var(--color-text-link) 35%,transparent);transition:color var(--transition-fast),text-decoration-color var(--transition-fast)}a:hover{color:var(--color-accent, var(--color-text-link-hover));text-decoration-color:currentColor}p{margin-bottom:var(--space-4)}p:last-child{margin-bottom:0}button{cursor:pointer;background:none;border:none;border-radius:0;line-height:inherit}:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:3px;border-radius:var(--radius-sm);box-shadow:0 0 0 4px #00e5ff2e}.skip-link{position:absolute;top:-100%;left:var(--space-4);z-index:var(--z-toast);padding:var(--space-2) var(--space-4);background-color:var(--color-bg-primary);color:var(--color-text-primary);border:2px solid var(--color-border-focus);border-radius:var(--radius-md);font-weight:var(--weight-bold);text-decoration:none;transition:top var(--transition-fast)}.skip-link:focus-visible{top:var(--space-4);outline:none}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.visually-hidden:focus,.visually-hidden:active{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto;white-space:normal}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.container{width:100%;margin-inline:auto;padding-inline:var(--space-4)}.container--article,.container--wide,.container--hub{max-width:1100px}@media(min-width:640px){.container{padding-inline:var(--space-6)}}@media(min-width:960px){.container{padding-inline:var(--space-8)}}.prose-measure{max-width:65ch}.flex-center{display:flex;align-items:center;justify-content:center}.stack{display:flex;flex-direction:column;gap:var(--space-4)}.cluster{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center}.mt-auto{margin-top:auto}.mb-auto{margin-bottom:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media print{.no-print{display:none!important}}.prose{width:100%;font-size:var(--text-base);line-height:var(--leading-normal);color:var(--color-text-primary)}.prose>*+*{margin-top:var(--space-4)}.prose>h2,.prose>h3,.prose>h4{margin-top:var(--space-10)}.prose>h2+*,.prose>h3+*,.prose>h4+*{margin-top:var(--space-2)}.prose h1,h1.article-title{font-size:var(--text-3xl);font-weight:var(--weight-bold);line-height:var(--leading-tight);letter-spacing:var(--tracking-tight);color:var(--color-text-primary)}.prose h2{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:var(--weight-bold);line-height:var(--leading-tight);letter-spacing:var(--tracking-tight);color:var(--color-text-primary);padding-bottom:var(--space-3);border-bottom:1px solid var(--color-border);position:relative;display:flex;align-items:baseline;gap:var(--space-3)}.prose h2:after{content:"";position:absolute;left:0;bottom:-1px;width:64px;height:1px;background-color:var(--color-accent, var(--color-brand-primary));box-shadow:0 0 8px var(--color-accent-glow)}.prose h2:before{content:"##";font-family:var(--font-mono);font-weight:var(--weight-regular);color:var(--color-accent);opacity:.7;font-size:.75em}.prose h3{font-family:var(--font-display);font-size:var(--text-xl);font-weight:var(--weight-semibold);line-height:var(--leading-snug);color:var(--color-text-primary)}.prose h3:before{content:"";display:inline-block;width:3px;height:.9em;background-color:var(--color-accent, var(--color-brand-primary));margin-right:var(--space-2);vertical-align:middle;border-radius:0;box-shadow:0 0 6px var(--color-accent-glow)}.prose h4{font-size:var(--text-lg);font-weight:var(--weight-semibold);line-height:var(--leading-snug);color:var(--color-text-secondary)}.prose strong{font-weight:var(--weight-bold);color:var(--color-text-primary)}.prose em{font-style:italic}.prose del{color:var(--color-text-tertiary);text-decoration-thickness:1px}.prose mark{background-color:var(--color-warning-bg);color:var(--color-text-primary);padding:0 .2em;border-radius:var(--radius-sm)}.prose abbr[title]{text-decoration:underline dotted;cursor:help}.prose a{color:var(--color-text-link);font-weight:var(--weight-medium)}.prose a:hover{color:var(--color-text-link-hover)}.prose ul{list-style:disc;padding-left:var(--space-6)}.prose ol{list-style:decimal;padding-left:var(--space-6)}.prose li{margin-bottom:var(--space-2);line-height:var(--leading-normal)}.prose li:last-child{margin-bottom:0}.prose ul ul,.prose ol ol,.prose ul ol,.prose ol ul{margin-top:var(--space-2)}.prose dt{font-weight:var(--weight-semibold);margin-top:var(--space-3)}.prose dd{padding-left:var(--space-4);color:var(--color-text-secondary)}.prose table{font-size:var(--text-sm);border-radius:var(--radius-md);overflow:hidden}.table-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:var(--radius-md);border:1px solid var(--color-border);margin-block:var(--space-6)}.prose .table-wrapper+*{margin-top:var(--space-4)}.prose th{background-color:var(--color-bg-tertiary);font-family:var(--font-display);font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--color-text-secondary);text-align:left;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border-strong);white-space:nowrap}.prose td{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);vertical-align:top}.prose tr:last-child td{border-bottom:none}.prose tbody tr:nth-child(2n){background-color:var(--color-bg-secondary)}.prose figure{margin-block:var(--space-6)}.prose figcaption{font-size:var(--text-sm);color:var(--color-text-tertiary);text-align:center;margin-top:var(--space-2)}.note{padding:var(--space-4);border-radius:var(--radius-md);border-left:4px solid;margin-block:var(--space-6);font-size:var(--text-sm);line-height:var(--leading-snug)}.note--info{background-color:var(--color-info-bg);border-color:var(--color-info);color:var(--color-text-primary)}.note--warning{background-color:var(--color-warning-bg);border-color:var(--color-warning);color:var(--color-text-primary)}.note--danger{background-color:var(--color-danger-bg);border-color:var(--color-danger);color:var(--color-text-primary)}.note--success{background-color:var(--color-success-bg);border-color:var(--color-success);color:var(--color-text-primary)}.disclosure-notice{font-size:var(--text-sm);color:var(--color-text-secondary);background-color:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-6)}.badge{display:inline-flex;align-items:center;gap:var(--space-1);font-size:var(--text-xs);font-weight:var(--weight-semibold);line-height:1;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);white-space:nowrap}.badge--default{background-color:var(--color-bg-tertiary);color:var(--color-text-secondary)}.badge--accent{background-color:var(--color-accent-bg);color:var(--color-accent)}.badge--success{background-color:var(--color-success-bg);color:var(--color-success)}.badge--warning{background-color:var(--color-warning-bg);color:var(--color-warning)}.badge--danger{background-color:var(--color-danger-bg);color:var(--color-danger)}.site-header{position:sticky;top:0;z-index:var(--z-sticky);background:linear-gradient(to bottom,color-mix(in srgb,var(--color-bg-primary) 92%,transparent),color-mix(in srgb,var(--color-bg-primary) 78%,transparent));backdrop-filter:blur(12px) saturate(140%);-webkit-backdrop-filter:blur(12px) saturate(140%);border-bottom:1px solid var(--color-border);box-shadow:inset 0 1px #ffffff0a,0 1px #0006}.site-header>.container{max-width:1100px;display:flex;align-items:center;gap:var(--space-4);height:60px}.site-header__logo{font-family:var(--font-display);font-size:var(--text-base);font-weight:var(--weight-bold);letter-spacing:var(--tracking-mono);color:var(--color-text-primary);text-decoration:none;flex-shrink:0;display:inline-flex;align-items:center;gap:var(--space-2);text-transform:uppercase}.site-header__logo:before{content:"";width:8px;height:8px;border-radius:var(--radius-full);background-color:var(--color-success);box-shadow:0 0 8px var(--color-success);animation:pulse-dot 2.4s ease-in-out infinite}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.55;transform:scale(.85)}}@media(prefers-reduced-motion:reduce){.site-header__logo:before{animation:none}}.site-header__logo:hover{color:var(--color-brand-primary)}.site-header__nav{margin-left:auto}.site-header__nav-list{display:flex;align-items:center;gap:var(--space-1)}.site-header__nav-link{display:block;padding:var(--space-2) var(--space-3);font-family:var(--font-display);font-size:var(--text-xs);font-weight:var(--weight-medium);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--color-text-secondary);text-decoration:none;border-radius:var(--radius-md);border:1px solid transparent;transition:color var(--transition-fast),border-color var(--transition-fast),background-color var(--transition-fast)}.site-header__nav-link:hover,.site-header__nav-link[aria-current=page]{color:var(--color-text-primary);background-color:var(--color-bg-secondary);border-color:var(--color-border)}.site-header__nav-link[aria-current=page]{color:var(--color-accent);border-color:color-mix(in srgb,var(--color-accent) 40%,transparent)}.site-header__menu-toggle{display:none;padding:var(--space-2);border-radius:var(--radius-md);color:var(--color-text-secondary)}@media(max-width:639px){.site-header__nav{position:fixed;top:60px;left:0;right:0;background-color:var(--color-bg-elevated);border-bottom:1px solid var(--color-border);padding:var(--space-4);transform:translateY(-100%);opacity:0;pointer-events:none;transition:transform var(--transition-base),opacity var(--transition-base);z-index:var(--z-dropdown)}.site-header__nav[data-open=true]{transform:translateY(0);opacity:1;pointer-events:auto}.site-header__nav-list{flex-direction:column;align-items:stretch;gap:var(--space-1)}.site-header__menu-toggle{display:flex;margin-left:auto}}.site-footer{position:relative;background-color:var(--color-bg-secondary);border-top:1px solid var(--color-border);padding-block:var(--space-6) var(--space-5);margin-top:var(--space-12)}.site-footer:before{content:"";position:absolute;top:-1px;left:0;right:0;height:1px;background:linear-gradient(to right,transparent 0%,var(--color-brand-primary) 30%,var(--color-brand-primary) 70%,transparent 100%);opacity:.4}.site-footer>.container{max-width:1100px;display:flex;flex-direction:column;gap:var(--space-4)}.site-footer__disclosure{font-size:var(--text-xs);color:var(--color-text-tertiary);line-height:var(--leading-snug);padding:0;background:none;border:none;border-left:2px solid var(--color-warning);padding-left:var(--space-3)}.site-footer__disclosure p{margin:0}.site-footer__disclosure:before{content:"DISCLOSURE  ";font-family:var(--font-display);font-size:.65rem;font-weight:var(--weight-bold);letter-spacing:var(--tracking-wide);color:var(--color-warning)}.site-footer__nav{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3) var(--space-6);padding-block:var(--space-3);border-block:1px solid var(--color-border)}.site-footer__nav-categories,.site-footer__nav-links{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-4);list-style:none;padding:0;margin:0}.site-footer__nav-categories li:after{content:"·";margin-left:var(--space-4);color:var(--color-border-strong)}.site-footer__nav-categories li:last-child:after{content:none}.site-footer__nav a{font-family:var(--font-display);font-size:var(--text-xs);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--color-text-secondary);text-decoration:none;transition:color var(--transition-fast)}.site-footer__nav a:hover{color:var(--color-brand-primary)}.site-footer__copyright{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-tertiary);margin:0;letter-spacing:var(--tracking-mono);text-align:center}@media(max-width:639px){.site-footer__nav{gap:var(--space-3)}.site-footer__nav-categories li:after{content:none}}.breadcrumb{padding-block:var(--space-5) var(--space-2);max-width:1100px;margin-inline:auto;padding-inline:var(--space-4);border-bottom:1px dashed var(--color-border);margin-bottom:var(--space-4)}@media(min-width:640px){.breadcrumb{padding-inline:var(--space-6)}}@media(min-width:960px){.breadcrumb{padding-inline:var(--space-8)}}.breadcrumb__list{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-tertiary);letter-spacing:var(--tracking-mono);list-style:none;padding:0;margin:0}.breadcrumb__item{display:inline-flex;align-items:center;gap:var(--space-2)}.breadcrumb__separator{color:var(--color-border-strong);user-select:none}.breadcrumb__link{color:var(--color-text-secondary);text-decoration:none;transition:color var(--transition-fast)}.breadcrumb__link:hover{color:var(--color-accent)}.breadcrumb__current{color:var(--color-text-primary);font-weight:var(--weight-medium);max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.affiliate-button{position:relative;display:flex;width:100%;align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-5);background:linear-gradient(135deg,color-mix(in srgb,var(--color-accent) 6%,transparent) 0%,transparent 60%),var(--color-bg-tertiary);color:var(--color-text-primary);text-decoration:none;border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;isolation:isolate;transition:border-color var(--transition-base),transform var(--transition-fast),box-shadow var(--transition-base)}.affiliate-button:before{content:"";position:absolute;left:0;top:50%;width:3px;height:28px;transform:translateY(-50%);background:var(--color-accent);box-shadow:0 0 12px var(--color-accent-glow);transition:height var(--transition-base)}.affiliate-button:after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 30%,color-mix(in srgb,var(--color-accent) 18%,transparent) 50%,transparent 70%);transform:translate(-100%);pointer-events:none;transition:transform .6s ease;z-index:-1}.affiliate-button:hover{border-color:var(--color-accent);transform:translateY(-1px);box-shadow:0 0 0 1px color-mix(in srgb,var(--color-accent) 60%,transparent),0 16px 32px -16px var(--color-accent-glow),0 0 28px -8px var(--color-accent-glow)}.affiliate-button:hover:before{height:100%}.affiliate-button:hover:after{transform:translate(100%)}.affiliate-button:active{transform:translateY(0)}.affiliate-button:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:3px}.affiliate-button__chip{flex-shrink:0;font-family:var(--font-display);font-size:var(--text-xs);font-weight:var(--weight-bold);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--color-accent);background-color:var(--color-bg-primary);border:1px solid color-mix(in srgb,var(--color-accent) 40%,var(--color-border));padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);min-width:96px;text-align:center;transition:background-color var(--transition-fast),color var(--transition-fast)}.affiliate-button:hover .affiliate-button__chip{background-color:var(--color-accent);color:var(--color-accent-text)}.affiliate-button__body{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.affiliate-button__label{font-family:var(--font-display);font-size:var(--text-base);font-weight:var(--weight-bold);color:var(--color-text-primary);letter-spacing:var(--tracking-mono);line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.affiliate-button__hint{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-tertiary);letter-spacing:var(--tracking-mono);text-transform:uppercase}.affiliate-button__arrow{flex-shrink:0;font-family:var(--font-mono);font-size:var(--text-xl);font-weight:var(--weight-regular);color:var(--color-accent);width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border:1px solid color-mix(in srgb,var(--color-accent) 35%,var(--color-border));border-radius:var(--radius-sm);transition:transform var(--transition-fast),background-color var(--transition-fast),color var(--transition-fast)}.affiliate-button:hover .affiliate-button__arrow{background-color:var(--color-accent);color:var(--color-accent-text);transform:translate(4px)}.affiliate-button--secondary{padding:var(--space-3) var(--space-4);background:transparent}.affiliate-button--secondary .affiliate-button__chip{min-width:72px;font-size:.7rem;padding:var(--space-1) var(--space-2)}.affiliate-button--secondary .affiliate-button__label{font-size:var(--text-sm)}.affiliate-button--secondary .affiliate-button__hint{display:none}.affiliate-button--block,.affiliate-button--primary{display:flex;width:100%}.affiliate-button--placeholder,.affiliate-button[data-asp=placeholder]{opacity:.7;cursor:not-allowed;border-style:dashed}.affiliate-button--placeholder:before,.affiliate-button[data-asp=placeholder]:before{background:var(--color-warning);box-shadow:0 0 8px #fbbf2459}.affiliate-button--placeholder:after,.affiliate-button[data-asp=placeholder]:after{display:none}.affiliate-button--placeholder .affiliate-button__chip,.affiliate-button[data-asp=placeholder] .affiliate-button__chip{color:var(--color-warning);border-color:color-mix(in srgb,var(--color-warning) 35%,var(--color-border))}@media(max-width:480px){.affiliate-button{flex-wrap:wrap;gap:var(--space-3)}.affiliate-button__chip{font-size:.7rem;min-width:auto}.affiliate-button__label{white-space:normal}.affiliate-button__hint{display:none}}.affiliate-links-section,.affiliate-cta{margin-block:var(--space-10);display:flex;flex-direction:column;gap:var(--space-3)}.affiliate-cta h2,.affiliate-links-section h2{font-family:var(--font-display);font-size:var(--text-sm);font-weight:var(--weight-bold);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--color-accent);margin-bottom:var(--space-2);border:none;padding:0;display:flex;align-items:center;gap:var(--space-2)}.affiliate-cta h2:before,.affiliate-links-section h2:before{content:"▸ AFFILIATE";font-family:var(--font-mono);color:var(--color-text-tertiary)}.affiliate-cta-list{list-style:none;padding:0;display:flex;flex-direction:column;gap:var(--space-3)}.last-updated{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-tertiary);letter-spacing:var(--tracking-mono);display:inline-flex;align-items:center;gap:var(--space-2);text-transform:uppercase}.last-updated:before{content:"◷";color:var(--color-info);font-size:1em}.author-box{display:flex;gap:var(--space-4);align-items:flex-start;padding:var(--space-5) var(--space-6);background:linear-gradient(135deg,color-mix(in srgb,var(--color-accent) 6%,transparent),transparent 60%),var(--color-bg-secondary);border:1px solid var(--color-border);border-left:3px solid var(--color-accent);border-radius:var(--radius-md);margin-block:var(--space-10);position:relative}.author-box:before{content:"AUTHOR";position:absolute;top:var(--space-3);right:var(--space-4);font-family:var(--font-display);font-size:var(--text-xs);font-weight:var(--weight-bold);letter-spacing:var(--tracking-wide);color:var(--color-text-tertiary)}.author-box__avatar{width:56px;height:56px;border-radius:var(--radius-md);object-fit:cover;flex-shrink:0;border:1px solid var(--color-border)}.author-box__body{display:flex;flex-direction:column;gap:var(--space-1)}.author-box__name{font-family:var(--font-display);font-size:var(--text-base);font-weight:var(--weight-bold);color:var(--color-text-primary);letter-spacing:var(--tracking-mono);margin-bottom:0}.author-box__bio{font-size:var(--text-sm);color:var(--color-text-secondary);line-height:var(--leading-snug);margin-bottom:0}.pros-cons{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4);margin-block:var(--space-8)}@media(max-width:639px){.pros-cons{grid-template-columns:1fr}}.pros-cons__column{padding:var(--space-5);border-radius:var(--radius-md);border:1px solid;background-color:var(--color-bg-secondary);position:relative}.pros-cons__column--pros{border-color:color-mix(in srgb,var(--color-success) 40%,var(--color-border));background-image:linear-gradient(135deg,var(--color-success-bg),transparent 70%)}.pros-cons__column--cons{border-color:color-mix(in srgb,var(--color-danger) 40%,var(--color-border));background-image:linear-gradient(135deg,var(--color-danger-bg),transparent 70%)}.pros-cons__heading{font-family:var(--font-display);font-size:var(--text-xs);font-weight:var(--weight-bold);text-transform:uppercase;letter-spacing:var(--tracking-wide);margin-bottom:var(--space-4);display:flex;align-items:center;gap:var(--space-2)}.pros-cons__heading:before{content:none}.pros-cons__column--pros .pros-cons__heading{color:var(--color-success)}.pros-cons__column--cons .pros-cons__heading{color:var(--color-danger)}.pros-cons__column--pros .pros-cons__heading:after{content:"[OK]";font-family:var(--font-mono);margin-left:auto;opacity:.7}.pros-cons__column--cons .pros-cons__heading:after{content:"[NG]";font-family:var(--font-mono);margin-left:auto;opacity:.7}.pros-cons__list{list-style:none;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.pros-cons__item{font-size:var(--text-sm);line-height:var(--leading-snug);display:flex;align-items:flex-start;gap:var(--space-2);color:var(--color-text-primary)}.pros-cons__item:before{flex-shrink:0;font-family:var(--font-mono);font-weight:var(--weight-bold);line-height:1.5}.pros-cons__column--pros .pros-cons__item:before{content:"+";color:var(--color-success)}.pros-cons__column--cons .pros-cons__item:before{content:"−";color:var(--color-danger)}.compare-table-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:var(--radius-md);border:1px solid var(--color-border);margin-block:var(--space-8);background-color:var(--color-bg-secondary)}.compare-table{font-size:var(--text-sm);min-width:600px;white-space:normal}.compare-table th,.compare-table td{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);text-align:left;vertical-align:middle}.compare-table thead th{background-color:var(--color-bg-tertiary);font-family:var(--font-display);font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--color-text-secondary);position:sticky;top:0;border-bottom:1px solid var(--color-border-strong)}.compare-table__label-col{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:var(--tracking-mono);text-transform:uppercase;color:var(--color-text-tertiary);background-color:var(--color-bg-tertiary);position:sticky;left:0;z-index:1;min-width:140px;white-space:nowrap}.compare-table tbody tr:last-child td{border-bottom:none}.compare-table tbody tr:nth-child(2n) td{background-color:#ffffff04}.compare-table tbody tr:hover td{background-color:var(--color-accent-bg)}.compare-table__recommended{position:relative;color:var(--color-accent)}.compare-table__recommended:after{content:"RECOMMENDED";display:block;font-family:var(--font-display);font-size:.65rem;font-weight:var(--weight-bold);letter-spacing:var(--tracking-wide);color:var(--color-accent-text);background-color:var(--color-accent);padding:.15em var(--space-2);border-radius:var(--radius-sm);margin-top:var(--space-1);text-align:center;box-shadow:0 0 12px -2px var(--color-accent-glow)}.faq{margin-block:var(--space-10);display:flex;flex-direction:column;gap:var(--space-2)}.faq__item{border:1px solid var(--color-border);background-color:var(--color-bg-secondary);border-radius:var(--radius-md);overflow:hidden;transition:border-color var(--transition-fast)}.faq__item[open]{border-color:color-mix(in srgb,var(--color-accent) 50%,var(--color-border))}.faq__question{padding:var(--space-4) var(--space-5);font-size:var(--text-base);font-weight:var(--weight-semibold);color:var(--color-text-primary);cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);user-select:none;transition:background-color var(--transition-fast)}.faq__question:hover{background-color:var(--color-bg-tertiary)}.faq__question::-webkit-details-marker{display:none}.faq__question:before{content:"Q";font-family:var(--font-display);font-size:var(--text-xs);font-weight:var(--weight-bold);color:var(--color-accent);background-color:var(--color-accent-bg);padding:2px 8px;border-radius:var(--radius-sm);letter-spacing:var(--tracking-wide);flex-shrink:0}.faq__question:after{content:"+";font-family:var(--font-mono);font-size:var(--text-xl);font-weight:var(--weight-regular);color:var(--color-accent);flex-shrink:0;transition:transform var(--transition-base);line-height:1;margin-left:auto}.faq__item[open] .faq__question:after{content:"−"}.faq__answer{padding:var(--space-4) var(--space-5);padding-top:var(--space-4);font-size:var(--text-base);color:var(--color-text-secondary);line-height:var(--leading-normal);border-top:1px solid var(--color-border)}.faq__answer:before{content:"A ";font-family:var(--font-display);font-size:var(--text-xs);font-weight:var(--weight-bold);color:var(--color-success);letter-spacing:var(--tracking-wide);margin-right:var(--space-2)}.toc{background-color:var(--color-bg-secondary);border:1px solid var(--color-border);border-left:3px solid var(--color-accent);border-radius:var(--radius-md);padding:var(--space-4) var(--space-5);margin-block:var(--space-6)}.toc__heading{font-family:var(--font-display);font-size:var(--text-xs);font-weight:var(--weight-bold);color:var(--color-accent);text-transform:uppercase;letter-spacing:var(--tracking-wide);margin-bottom:var(--space-3)}.toc__heading:before{content:"◆ "}.toc__list{list-style:none;padding:0;counter-reset:toc-counter;display:flex;flex-direction:column;gap:var(--space-1)}.toc__item{font-size:var(--text-sm);line-height:var(--leading-snug)}.toc__item--h3{padding-left:var(--space-4)}.toc__item a{color:var(--color-text-secondary);text-decoration:none;transition:color var(--transition-fast),background-color var(--transition-fast);display:block;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm)}.toc__item a:hover{color:var(--color-accent);background-color:var(--color-accent-bg)}.category-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space-5);margin-block:var(--space-8);padding:0;list-style:none}.category-card{position:relative;background:linear-gradient(135deg,color-mix(in srgb,var(--color-accent) 5%,transparent),transparent 65%),var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;transition:border-color var(--transition-base),transform var(--transition-base),box-shadow var(--transition-base)}.category-card:before{content:"";display:block;height:2px;background:linear-gradient(to right,var(--color-accent),color-mix(in srgb,var(--color-accent) 30%,transparent));box-shadow:0 0 12px var(--color-accent-glow)}.category-card:after{content:attr(data-category);position:absolute;top:var(--space-3);right:var(--space-4);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:var(--tracking-mono);text-transform:uppercase;color:var(--color-text-tertiary);pointer-events:none}.category-card:hover{border-color:var(--color-accent);transform:translateY(-3px);box-shadow:0 24px 48px -16px #0009,0 0 32px -8px var(--color-accent-glow)}.category-card__link{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-6);color:var(--color-text-primary);text-decoration:none;height:100%}.category-card__icon{width:44px;height:44px;color:var(--color-accent);filter:drop-shadow(0 0 6px var(--color-accent-glow))}.category-card__name{font-family:var(--font-display);font-size:var(--text-xl);font-weight:var(--weight-bold);color:var(--color-text-primary);line-height:var(--leading-tight);letter-spacing:var(--tracking-mono)}.category-card__name:before{content:none;border:none}.category-card .category-card__name{border-bottom:none;padding-bottom:0}.category-card__description{font-size:var(--text-sm);color:var(--color-text-secondary);line-height:var(--leading-snug);flex-grow:1;margin-bottom:0}.category-card__meta{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:var(--tracking-mono);text-transform:uppercase;color:var(--color-text-tertiary);margin-top:auto;padding-top:var(--space-3);border-top:1px dashed var(--color-border);display:flex;align-items:center;gap:var(--space-2)}.category-card__meta:before{content:"▸";color:var(--color-accent)}.page-header{padding-block:var(--space-10) var(--space-8);border-bottom:1px solid var(--color-border);margin-bottom:var(--space-10);position:relative}.page-header:after{content:"";position:absolute;bottom:-1px;left:0;width:80px;height:1px;background:var(--color-accent);box-shadow:0 0 8px var(--color-accent-glow)}.page-header__meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3);margin-bottom:var(--space-5)}.page-header__category-badge{display:inline-flex;align-items:center;gap:var(--space-2);font-family:var(--font-display);font-size:var(--text-xs);font-weight:var(--weight-bold);color:var(--color-accent);background-color:var(--color-accent-bg);border:1px solid color-mix(in srgb,var(--color-accent) 35%,transparent);padding:var(--space-1) var(--space-3);border-radius:var(--radius-sm);text-transform:uppercase;letter-spacing:var(--tracking-wide);text-decoration:none}.page-header__category-badge:before{content:"#";opacity:.7}.page-header__title{font-family:var(--font-display);font-size:var(--text-3xl);font-weight:var(--weight-bold);line-height:var(--leading-tight);letter-spacing:var(--tracking-tight);color:var(--color-text-primary);margin-bottom:var(--space-4)}.page-header__description{font-size:var(--text-lg);color:var(--color-text-secondary);line-height:var(--leading-normal);max-width:65ch;margin-bottom:0}.page-header__timestamps{display:flex;flex-wrap:wrap;gap:var(--space-4);margin-top:var(--space-5)}.hub-hero{padding-block:var(--space-16) var(--space-12);position:relative;text-align:center}.hub-hero:before{content:"◉ STATUS: OPERATIONAL  /  ENCRYPTED  /  VERIFIED";display:block;font-family:var(--font-display);font-size:var(--text-xs);font-weight:var(--weight-bold);letter-spacing:var(--tracking-wide);color:var(--color-success);margin-bottom:var(--space-6);opacity:.8}.hub-hero__title{font-family:var(--font-display);font-size:clamp(1.5rem,2vw + .75rem,2.25rem);font-weight:var(--weight-bold);line-height:var(--leading-tight);letter-spacing:var(--tracking-tight);color:var(--color-text-primary);margin-bottom:var(--space-5);white-space:normal;text-wrap:balance;background:linear-gradient(135deg,var(--color-text-primary) 0%,var(--color-text-primary) 60%,var(--color-brand-primary) 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;border:none;padding:0}@media(min-width:720px){.hub-hero__title{white-space:nowrap}}.hub-hero__title:before{content:none}.hub-hero__description{font-size:var(--text-lg);color:var(--color-text-secondary);line-height:var(--leading-normal);max-width:60ch;margin:0 auto}.category-section{padding-block:var(--space-8)}.category-section__title{font-family:var(--font-display);font-size:var(--text-sm);font-weight:var(--weight-bold);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--color-text-secondary);margin-bottom:var(--space-2);display:flex;align-items:center;gap:var(--space-3);border:none;padding:0}.category-section__title:before{content:none}.category-section__title:after{content:"";flex:1;height:1px;background:linear-gradient(to right,var(--color-border),transparent)}.disclosure-section{padding-block:var(--space-10) var(--space-8)}.disclosure-section .disclosure-notice{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:var(--tracking-mono);color:var(--color-text-tertiary);text-align:center;background:none;border:none;border-top:1px dashed var(--color-border);border-radius:0;padding:var(--space-6) 0 0;margin-bottom:0}.disclosure-section .disclosure-notice a{color:var(--color-text-secondary);text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--color-accent) 50%,transparent)}.disclosure-section .disclosure-notice a:hover{color:var(--color-accent);text-decoration-color:currentColor}.type-nav{position:relative;margin-block:var(--space-8) 0;border-bottom:1px solid var(--color-border)}.type-nav__list{display:flex;flex-wrap:wrap;align-items:flex-end;gap:4px;list-style:none;padding:0;margin:0 0 -1px}.type-nav__link{position:relative;display:inline-block;padding:var(--space-3) var(--space-5);font-family:var(--font-display);font-size:var(--text-xs);font-weight:var(--weight-bold);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--color-text-secondary);text-decoration:none;background-color:var(--color-bg-secondary);border:1px solid var(--color-border);border-bottom:1px solid var(--color-bg-secondary);border-radius:var(--radius-md) var(--radius-md) 0 0;box-shadow:inset 0 2px 0 var(--color-bg-tertiary);transition:background-color var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast),transform var(--transition-fast)}.type-nav__link:hover{color:var(--color-text-primary);background-color:var(--color-bg-tertiary);transform:translateY(-2px)}.type-nav__link[aria-current=page]{color:var(--color-accent);background-color:var(--color-bg-primary);border-color:var(--color-border);border-bottom-color:var(--color-bg-primary);box-shadow:inset 0 2px 0 var(--color-accent);transform:translateY(0)}.type-nav__link[aria-current=page]:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:1px;background-color:var(--color-bg-primary)}.article-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:var(--space-4);margin-block:var(--space-8)}.article-card{background:linear-gradient(135deg,color-mix(in srgb,var(--color-accent) 4%,transparent),transparent 60%),var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:border-color var(--transition-base),transform var(--transition-fast),box-shadow var(--transition-base)}.article-card:hover{border-color:var(--color-accent);transform:translateY(-2px);box-shadow:0 16px 32px -16px var(--color-accent-glow)}.article-card__link{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-5);color:var(--color-text-primary);text-decoration:none;height:100%}.article-card__meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3)}.article-card__type{font-family:var(--font-display);font-size:var(--text-xs);font-weight:var(--weight-bold);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--color-accent);background-color:var(--color-accent-bg);border:1px solid color-mix(in srgb,var(--color-accent) 35%,transparent);padding:2px var(--space-2);border-radius:var(--radius-sm)}.article-card__title{font-family:var(--font-display);font-size:var(--text-lg);font-weight:var(--weight-bold);line-height:var(--leading-tight);color:var(--color-text-primary);margin:0;border:none;padding:0}.article-card__title:before{content:none}.article-card__description{font-size:var(--text-sm);color:var(--color-text-secondary);line-height:var(--leading-snug);margin:0;flex-grow:1}.empty-state{font-size:var(--text-sm);color:var(--color-text-tertiary);text-align:center;padding:var(--space-12);border:1px dashed var(--color-border);border-radius:var(--radius-md);margin-block:var(--space-8)}.terminal-frame{border:1px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-bg-secondary);overflow:hidden}.terminal-frame__header{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);background-color:var(--color-bg-tertiary);border-bottom:1px solid var(--color-border);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-tertiary);letter-spacing:var(--tracking-mono)}.terminal-frame__header:before{content:"● ● ●";color:var(--color-text-tertiary);letter-spacing:2px;margin-right:var(--space-3)}.terminal-frame__body{padding:var(--space-5)}.status-badge{display:inline-flex;align-items:center;gap:var(--space-2);font-family:var(--font-display);font-size:var(--text-xs);font-weight:var(--weight-bold);letter-spacing:var(--tracking-wide);text-transform:uppercase;padding:var(--space-1) var(--space-3);border-radius:var(--radius-sm);border:1px solid currentColor}.status-badge--success{color:var(--color-success);background-color:var(--color-success-bg)}.status-badge--warning{color:var(--color-warning);background-color:var(--color-warning-bg)}.status-badge--danger{color:var(--color-danger);background-color:var(--color-danger-bg)}.status-badge--info{color:var(--color-info);background-color:var(--color-info-bg)}.status-badge:before{content:"";width:6px;height:6px;border-radius:var(--radius-full);background-color:currentColor;box-shadow:0 0 6px currentColor}
