:root{--abyss-950:#03101a;--abyss-900:#061826;--abyss-800:#0a2131;--abyss-700:#103049;--bathos-700:#085a83;--bathos-600:#0a6f9e;--bathos-500:#0c86bd;--bathos-400:#17a3dd;--bathos-300:#46c2f1;--paper:#fff;--paper-2:#f4f7f9;--ink-900:#0a1620;--ink-700:#33454f;--ink-500:#61717a;--line:#e4e9ec;--foam:#eaf3f7;--foam-dim:#9db2be;--line-dark:#ffffff1a;--r:4px;--r-lg:10px;--container:1180px;--pad:clamp(20px, 5vw, 40px);--section-y:clamp(76px, 10vw, 132px);--font-sans:"Pretendard Variable", Pretendard, -apple-system, BlinkMacSystemFont, system-ui, "Segoe UI", Roboto, sans-serif;--font-mono:ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--ease:cubic-bezier(.2, .7, .2, 1)}*{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{font-family:var(--font-sans);background:var(--paper);color:var(--ink-900);font-feature-settings:"ss01", "cv01";-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;line-height:1.6}h1,h2,h3,h4,p,ul,figure{margin:0}a{color:inherit;text-decoration:none}ul{padding:0;list-style:none}img{max-width:100%;display:block}.container{width:100%;max-width:var(--container);padding-inline:var(--pad);margin:0 auto}.section{padding-block:var(--section-y)}.section--dark{background:var(--abyss-900);color:var(--foam)}.section--alt{background:var(--paper-2)}.eyebrow{letter-spacing:.14em;text-transform:uppercase;color:var(--bathos-600);font-size:.78rem;font-weight:600}.section--dark .eyebrow{color:var(--bathos-300)}.section__head{max-width:720px;margin-bottom:clamp(40px,5vw,64px)}.section__head h2{letter-spacing:-.025em;margin-top:14px;font-size:clamp(1.9rem,3.6vw,2.85rem);font-weight:800;line-height:1.08}.section__head .lead{color:var(--ink-500);max-width:620px;margin-top:18px;font-size:clamp(1.02rem,1.4vw,1.2rem)}.section--dark .section__head .lead{color:var(--foam-dim)}.btn{letter-spacing:-.01em;border-radius:var(--r);cursor:pointer;transition:background-color .18s var(--ease), border-color .18s var(--ease), color .18s var(--ease), transform .18s var(--ease);white-space:nowrap;border:1px solid #0000;align-items:center;gap:9px;padding:13px 22px;font-family:inherit;font-size:.98rem;font-weight:600;display:inline-flex}.btn:active{transform:translateY(1px)}.btn--primary{background:var(--bathos-500);color:#fff}.btn--primary:hover{background:var(--bathos-400)}.btn--ghost{border-color:var(--line);color:var(--ink-900);background:0 0}.btn--ghost:hover{border-color:var(--bathos-500);color:var(--bathos-600)}.section--dark .btn--ghost{border-color:var(--line-dark);color:var(--foam)}.section--dark .btn--ghost:hover{border-color:var(--bathos-300);color:var(--bathos-300)}.btn .arrow{transition:transform .18s var(--ease)}.btn:hover .arrow{transform:translate(3px)}.header{z-index:50;-webkit-backdrop-filter:saturate(160%)blur(12px);backdrop-filter:saturate(160%)blur(12px);border-bottom:1px solid var(--line-dark);background:#04283cd9;position:sticky;top:0}.header__inner{justify-content:space-between;align-items:center;min-height:52px;padding-block:5px;display:flex}.header__brand{align-items:center;gap:10px;display:flex}.header__brand img{width:auto;height:50px}.header__nav{align-items:center;gap:30px;display:flex}.header__links{gap:26px;display:flex}.header__links a{color:#fff;transition:color .15s var(--ease);font-size:.92rem;font-weight:500}.header__links a:hover{color:var(--bathos-300)}.header__actions{align-items:center;gap:14px;display:flex}.langswitch{align-items:center;gap:11px;display:inline-flex}.langswitch a{opacity:.9;transition:opacity .15s var(--ease), transform .15s var(--ease);align-items:center;line-height:1;display:flex}.langswitch svg{filter:drop-shadow(0 1px 2.5px #00000080);width:auto;height:20px;display:block}.langswitch a:hover{opacity:1}.langswitch a[aria-current=true]{opacity:1;transform:scale(1.14)}.header__ghost-github{color:#fff;align-items:center;gap:7px;font-size:.9rem;font-weight:600;display:inline-flex}.header__ghost-github:hover{color:var(--bathos-300)}.hero{color:var(--foam);background:linear-gradient(#04283c 0%,#12496b 55%,#1d6c94 100%);align-items:center;min-height:clamp(560px,74vh,780px);padding-block:clamp(84px,12vw,150px) clamp(64px,10vw,120px);display:flex;position:relative;overflow:hidden}.hero:after{content:"";background:var(--line-dark);height:1px;position:absolute;bottom:0;left:0;right:0}.hero__logo{z-index:1;width:min(720px,90%);height:auto;margin:0 auto clamp(26px,4vw,46px);display:block;position:relative}.hero__inner{z-index:1;max-width:720px;position:relative}.hero__eyebrow{font-family:var(--font-mono);letter-spacing:.02em;color:var(--bathos-300);margin-bottom:26px;font-size:.86rem}.hero h1{letter-spacing:-.03em;white-space:pre-line;font-size:clamp(1.7rem,5vw,3.4rem);font-weight:800;line-height:1.08}.hero__sub{color:#d9e8f0;white-space:pre-line;max-width:680px;margin-top:26px;font-size:clamp(1.08rem,1.7vw,1.32rem);line-height:1.55}.hero__actions{flex-wrap:wrap;gap:14px;margin-top:40px;display:flex}.hero__tag{font-family:var(--font-mono);color:#c2dae5;align-items:center;gap:10px;margin-top:34px;font-size:.82rem;display:inline-flex}.hero__tag:before{content:"";background:var(--bathos-400);border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 4px #17a3dd2e}.compare{border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden}.compare__head,.compare__row{grid-template-columns:1fr 1fr;display:grid}.compare__head>div{letter-spacing:.06em;text-transform:uppercase;border-bottom:1px solid var(--line);padding:16px 22px;font-size:.82rem;font-weight:700}.compare__head .is-plain{color:var(--ink-500);background:var(--paper-2)}.compare__head .is-bathos{color:var(--bathos-600);border-left:1px solid var(--line)}.compare__row>div{border-bottom:1px solid var(--line);padding:20px 22px;font-size:1.02rem}.compare__row:last-child>div{border-bottom:none}.compare__row .is-plain{color:var(--ink-500);background:var(--paper-2)}.compare__row .is-bathos{color:var(--ink-900);border-left:1px solid var(--line);font-weight:600}.grid-2{grid-template-columns:repeat(2,1fr);gap:20px;display:grid}.plane{border:1px solid var(--line-dark);border-radius:var(--r-lg);background:var(--abyss-800);padding:34px}.plane__tag{font-family:var(--font-mono);color:var(--bathos-300);letter-spacing:.02em;font-size:.8rem}.plane h3{letter-spacing:-.02em;margin:14px 0 12px;font-size:1.5rem;font-weight:700}.plane p{color:var(--foam-dim);font-size:1.02rem}.waves{flex-wrap:wrap;justify-content:center;gap:16px;display:flex}.wave{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--paper);transition:border-color .18s var(--ease), transform .18s var(--ease);flex:0 calc(25% - 12px);padding:24px;position:relative}.wave:hover{border-color:var(--bathos-500);transform:translateY(-3px)}.wave__code{font-family:var(--font-mono);color:var(--bathos-600);letter-spacing:.04em;font-size:.82rem;font-weight:700}.wave--star{border-color:var(--bathos-500)}.wave h3{letter-spacing:-.015em;margin:10px 0 8px;font-size:1.12rem;font-weight:700}.wave__team{color:var(--bathos-600);margin-bottom:10px;font-size:.8rem;font-weight:600}.wave__desc{color:var(--ink-500);font-size:.92rem;line-height:1.5}.heart{border:1px solid var(--line);border-radius:var(--r);background:var(--paper);margin-top:28px;padding:24px 28px}.heart__label{letter-spacing:.06em;text-transform:uppercase;color:var(--bathos-600);font-size:.8rem;font-weight:700}.heart p{color:var(--ink-700);margin-top:10px;font-size:1.02rem}.table{border-collapse:collapse;border:1px solid var(--line);border-radius:var(--r-lg);width:100%;overflow:hidden}.table th,.table td{text-align:left;border-bottom:1px solid var(--line);padding:16px 20px;font-size:.98rem}.table td{color:#fff}.table th{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-500);background:var(--paper-2);font-size:.78rem;font-weight:700}.table tr:last-child td{border-bottom:none}.table td:first-child{font-family:var(--font-mono);color:#fff;width:84px;font-weight:700}.roles{grid-template-columns:repeat(3,1fr);gap:14px;display:grid}.role{border:1px solid var(--line);border-radius:var(--r);transition:border-color .16s var(--ease);align-items:baseline;gap:14px;padding:16px 18px;display:flex}.role:hover{border-color:var(--bathos-500)}.role--lead{background:var(--abyss-900);color:var(--foam);border-color:#0000}.role__n{font-family:var(--font-mono);color:var(--bathos-600);min-width:22px;font-size:.78rem;font-weight:700}.role--lead .role__n{color:var(--bathos-300)}.role__name{letter-spacing:-.01em;font-weight:700}.role__role{color:var(--ink-500);font-size:.9rem}.role--lead .role__role{color:var(--foam-dim)}.role__wave{font-family:var(--font-mono);color:var(--ink-500);border:1px solid var(--line);border-radius:var(--r);margin-left:auto;padding:2px 7px;font-size:.74rem}.role--lead .role__wave{color:var(--foam-dim);border-color:var(--line-dark)}.verdicts{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.verdict{border:1px solid #ffffff29;border-top:3px solid var(--bathos-500);border-radius:var(--r);background:#ffffff0d;padding:24px}.verdict--pass{border-top-color:#17a3dd}.verdict--concerns{border-top-color:#d99a2b}.verdict--fail{border-top-color:#d0454c}.verdict__v{font-family:var(--font-mono);letter-spacing:.02em;font-size:1.05rem;font-weight:700}.verdict__meaning{margin-top:8px;font-weight:600}.verdict__effect{color:var(--ink-500);margin-top:6px;font-size:.92rem}.audit{border:1px solid var(--line);border-radius:var(--r);background:var(--paper-2);margin-top:26px;padding:22px 24px}.audit h3{font-size:1.05rem;font-weight:700}.audit p{color:var(--ink-700);margin-top:6px;font-size:.98rem}.audit code{font-family:var(--font-mono);color:var(--bathos-600);font-size:.88em}.engine{grid-template-columns:1.1fr .9fr;align-items:start;gap:36px;display:grid}.engine__points{gap:2px;display:grid}.engine__point{border-bottom:1px solid var(--line-dark);padding:20px 0}.engine__point:last-child{border-bottom:none}.engine__point dt{letter-spacing:-.01em;font-size:1.05rem;font-weight:700}.engine__point dd{color:var(--foam-dim);margin:6px 0 0;font-size:.98rem}.codecard{border:1px solid var(--line-dark);border-radius:var(--r-lg);background:var(--abyss-950);overflow:hidden}.codecard__bar{border-bottom:1px solid var(--line-dark);align-items:center;gap:7px;padding:13px 16px;display:flex}.codecard__bar span{background:var(--line-dark);border-radius:50%;width:10px;height:10px}.codecard__body{font-family:var(--font-mono);color:var(--foam);padding:20px 18px;font-size:.86rem;line-height:1.7;overflow-x:auto}.codecard__caption{color:var(--foam-dim);margin-top:14px;font-size:.9rem}.tok-key{color:var(--bathos-300)}.tok-dim{color:var(--foam-dim)}.cta{text-align:center}.cta__inner{max-width:720px;margin:0 auto}.cta h2{letter-spacing:-.03em;white-space:nowrap;font-size:clamp(1.35rem,4vw,3rem);font-weight:800;line-height:1.06}.cta .lead{color:var(--foam-dim);margin-top:18px;font-size:1.12rem}.cta__actions{flex-wrap:wrap;justify-content:center;gap:14px;margin-top:34px;display:flex}.footer{color:var(--foam-dim);border-top:1px solid var(--line-dark);background:#02161f;padding-block:56px}.footer__top{flex-wrap:wrap;justify-content:space-between;gap:40px;display:flex}.footer__brand img{width:auto;height:46px;margin-bottom:16px}.footer__brand p{max-width:360px;font-size:.95rem}.footer__links{gap:26px;display:flex}.footer__links a:hover{color:var(--foam)}.footer__bottom{border-top:1px solid var(--line-dark);flex-wrap:wrap;justify-content:space-between;gap:20px;margin-top:40px;padding-top:22px;font-size:.85rem;display:flex}.footer__bottom .greek{font-family:var(--font-mono);color:var(--bathos-300)}@media (max-width:900px){.wave{flex-basis:calc(50% - 8px)}.roles{grid-template-columns:repeat(2,1fr)}.engine{grid-template-columns:1fr}}@media (max-width:720px){.header__links{display:none}.grid-2,.verdicts,.compare__head,.compare__row{grid-template-columns:1fr}.compare__row .is-bathos,.compare__head .is-bathos{border-left:none;border-top:1px solid var(--line)}}@media (max-width:560px){.wave{flex-basis:100%}.roles{grid-template-columns:1fr}.cta h2{white-space:normal}.role__wave{display:none}}@media (max-width:760px){.hero__logo{width:94%}.hero__inner{max-width:100%}}.chapter{background:linear-gradient(180deg, var(--bg), var(--bgn));color:var(--fg)}.chapter .section__head h2{color:var(--fg)}.chapter .section__head .lead{color:var(--muted)}.chapter .btn--ghost{border-color:var(--fg);color:var(--fg)}.chapter .btn--ghost:hover{border-color:var(--bathos-500);color:var(--bathos-500)}.d2{--bg:#cbe7f3;--bgn:#a3d3e9;--fg:#0a1620;--muted:#46626e}.d3{--bg:#a3d3e9;--bgn:#6fb5d5;--fg:#0a1620;--muted:#3a5560}.d4{--bg:#6fb5d5;--bgn:#3a93bf;--fg:#0a1620;--muted:#29434f}.d5{--bg:#3a93bf;--bgn:#1d6c94;--fg:#06202c;--muted:#0d3140}.d6{--bg:#1d6c94;--bgn:#0e5178;--fg:#eaf3f7;--muted:#cfe6f1}.d7{--bg:#0e5178;--bgn:#073a56;--fg:#eaf3f7;--muted:#a6c4d5}.d8{--bg:#073a56;--bgn:#04283c;--fg:#eaf3f7;--muted:#93b7c9}.d9{--bg:#04283c;--bgn:#02161f;--fg:#eaf3f7;--muted:#8fb2c5}.d10{--bg:#02161f;--bgn:#010b10;--fg:#eaf3f7;--muted:#7ea6ba}.chapter.d4 .section__head h2,.chapter.d5 .section__head h2{color:#f5fbfe}.chapter.d4 .section__head .lead,.chapter.d5 .section__head .lead{color:#dcecf5}.plane{background:var(--paper);border-color:var(--line)}.plane__tag{color:var(--bathos-600)}.plane h3{color:var(--ink-900)}.plane p{color:var(--ink-500)}.chapter .role:not(.role--lead){background:var(--paper)}.verdict__v,.verdict__meaning{color:#fff}.audit h3{color:var(--ink-900)}.audit p{color:var(--ink-700)}.chapter .engine__point dd{color:var(--muted)}.hero .btn--ghost{border-color:var(--line-dark);color:var(--foam);display:none}.hero .btn--ghost:hover{border-color:var(--bathos-300);color:var(--bathos-300)}.hero .container{text-align:center;flex-direction:column;align-items:center;display:flex}.hero__actions{justify-content:center}.install__steps{gap:18px;display:grid}.install__step{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--paper);padding:22px 24px}.install__stephead{align-items:baseline;gap:15px;margin-bottom:14px;display:flex}.install__n{font-family:var(--font-mono);color:var(--bathos-600);font-size:.9rem;font-weight:700}.install__step h3{letter-spacing:-.015em;color:var(--ink-900);font-size:1.1rem;font-weight:700}.install__step p{color:var(--ink-500);margin-top:4px;font-size:.95rem}.install .codecard{border-radius:var(--r)}.install__note{color:var(--muted);margin-top:22px;font-size:.9rem}.verdict__effect{color:#ffffffd1}.chapter{border-top:1px solid #fff9}.footer{border-top:1px solid #ffffff80}
