@import "https://fonts.googleapis.com/css2?family=JetBrains+Mono:ital,wght@0,400;0,500;0,700;0,800;1,400&family=DM+Mono:ital,wght@0,400;0,500;1,400&display=swap";.osp{--osp-bg:#09090b;--osp-bg-deep:#060608;--osp-panel:#101014;--osp-panel-2:#15151b;--osp-line:#25252e;--osp-line-soft:#1a1a21;--osp-fg:#e9e8e2;--osp-muted:#9b998f;--osp-faint:#67655d;--osp-gold:#e5b23a;--osp-gold-bright:#f5cd6c;--osp-green:#7bd88f;--osp-red:#ef8d73;--osp-mono:"JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;--osp-comment:"DM Mono", var(--osp-mono);background-color:var(--osp-bg);width:100%;min-height:100vh;color:var(--osp-fg);font-family:var(--osp-mono);font-feature-settings:"liga" 1, "calt" 1;-webkit-font-smoothing:antialiased;background-image:radial-gradient(120% 80% at 50% -10%,#e5b23a14,#0000 60%),radial-gradient(80% 50% at 100% 100%,#7bd88f0a,#0000 70%);position:relative;overflow-x:clip}.osp:before{content:"";z-index:1;pointer-events:none;opacity:.035;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}.osp:after{content:"";z-index:1;pointer-events:none;opacity:.4;mix-blend-mode:overlay;background:repeating-linear-gradient(#0000 0 2px,#00000040 3px,#0000 4px);position:fixed;inset:0}.osp__wrap{z-index:2;max-width:1080px;margin:0 auto;padding:0 24px;position:relative}.osp ::selection{color:#fff;background:#e5b23a4d}.osp a{color:inherit;text-decoration:none}.osp-nav{z-index:20;border-bottom:1px solid var(--osp-line-soft);background:color-mix(in srgb, var(--osp-bg) 78%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);position:sticky;top:0}.osp-nav__row{justify-content:space-between;align-items:center;height:58px;display:flex}.osp-nav__links{color:var(--osp-muted);align-items:center;gap:22px;font-size:13px;display:flex}.osp-nav__links a{transition:color .18s}.osp-nav__links a:hover{color:var(--osp-gold-bright)}.osp-logo{letter-spacing:-.02em;align-items:center;gap:1px;font-size:16px;font-weight:800;display:inline-flex}.osp-logo b{color:var(--osp-gold);font-weight:800}.osp-logo i{color:var(--osp-fg);font-style:normal}.osp-logo span{color:var(--osp-fg);margin-left:8px;font-weight:500}.osp-term{border:1px solid var(--osp-line);background:linear-gradient(180deg, var(--osp-panel-2), var(--osp-panel));border-radius:12px;overflow:hidden;box-shadow:inset 0 1px #ffffff08,0 30px 80px -30px #000c,0 0 60px -20px #e5b23a1f}.osp-term__bar{border-bottom:1px solid var(--osp-line-soft);background:#00000040;align-items:center;gap:14px;padding:11px 14px;display:flex}.osp-dots{gap:7px;display:flex}.osp-dots i{background:#2c2c34;border-radius:50%;width:11px;height:11px}.osp-dots i:first-child{background:#e0604d}.osp-dots i:nth-child(2){background:var(--osp-gold)}.osp-dots i:nth-child(3){background:var(--osp-green)}.osp-term__title{color:var(--osp-faint);letter-spacing:.02em;font-size:12px}.osp-term__body{padding:22px 22px 26px;font-size:14px;line-height:1.65}.osp-prompt{color:var(--osp-green)}.osp-flag{color:var(--osp-gold)}.osp-comment{color:var(--osp-faint);font-family:var(--osp-comment);font-style:italic}.osp-muted{color:var(--osp-muted)}.osp-add{color:var(--osp-green)}.osp-del{color:var(--osp-red)}.osp-white{color:#fff}.osp-cursor{vertical-align:-.16em;background:var(--osp-gold);width:.62ch;height:1.05em;margin-left:1px;animation:1.05s step-end infinite osp-blink;display:inline-block}@keyframes osp-blink{0%,50%{opacity:1}50.01%,to{opacity:0}}.osp-hero{padding:70px 0 30px}.osp-hero__help{white-space:pre-wrap;display:block}.osp-reveal{opacity:0;animation:.55s cubic-bezier(.2,.7,.2,1) forwards osp-rise}@keyframes osp-rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.osp-h1{letter-spacing:-.03em;margin:34px 0 16px;font-size:clamp(30px,5vw,52px);font-weight:800;line-height:1.04}.osp-h1 em{color:var(--osp-gold);font-style:normal}.osp-sub{max-width:560px;color:var(--osp-muted);font-size:15px;line-height:1.6}.osp-actions{flex-wrap:wrap;gap:12px;margin-top:28px;display:flex}.osp-btn{border:1px solid var(--osp-line);color:var(--osp-fg);background:var(--osp-panel-2);border-radius:9px;align-items:center;gap:9px;padding:11px 18px;font-size:13.5px;font-weight:500;transition:transform .15s,border-color .2s,box-shadow .2s,background .2s;display:inline-flex}.osp-btn:hover{border-color:var(--osp-line);transform:translateY(-1px)}.osp-btn--gold{background:var(--osp-gold);border-color:var(--osp-gold);color:#1a1505;font-weight:700}.osp-btn--gold:hover{background:var(--osp-gold-bright);box-shadow:0 8px 30px -8px #e5b23a80}.osp-btn--ghost:hover{border-color:color-mix(in srgb, var(--osp-gold) 50%, var(--osp-line));box-shadow:0 0 24px -10px #e5b23a66}.osp-btn svg{width:15px;height:15px}.osp-section{padding:58px 0}.osp-shead{color:var(--osp-muted);align-items:baseline;gap:12px;margin-bottom:26px;font-size:13px;display:flex}.osp-shead b{color:var(--osp-gold);font-weight:500}.osp-shead hr{border:0;border-top:1px dashed var(--osp-line);flex:1}.osp-grid{grid-template-columns:repeat(2,1fr);gap:20px;display:grid}.osp-card-wide{grid-column:1/-1}@media (width<=720px){.osp-grid{grid-template-columns:1fr}}.osp-card{opacity:0;flex-direction:column;transition:opacity .6s,transform .6s cubic-bezier(.2,.7,.2,1);display:flex;transform:translateY(16px)}.osp-in .osp-card{opacity:1;transform:translateY(0)}.osp-in .osp-card:nth-child(2){transition-delay:.1s}.osp-in .osp-card:nth-child(3){transition-delay:.2s}.osp-card .osp-term{height:100%;transition:border-color .25s,box-shadow .25s}.osp-card:hover .osp-term{border-color:color-mix(in srgb, var(--osp-gold) 45%, var(--osp-line));box-shadow:0 30px 80px -30px #000c,0 0 70px -22px #e5b23a47}.osp-card--soon{opacity:.92}.osp-card--soon .osp-term{border-style:dashed}.osp-demo{white-space:pre;color:var(--osp-muted);padding:4px 0 2px;font-size:13px;line-height:1.6;overflow-x:auto}.osp-meta{border-top:1px solid var(--osp-line-soft);color:var(--osp-faint);flex-wrap:wrap;align-items:center;gap:14px;margin-top:18px;padding-top:16px;font-size:12px;display:flex}.osp-tag{color:var(--osp-muted);align-items:center;gap:6px;display:inline-flex}.osp-dot{border-radius:50%;width:8px;height:8px}.osp-pname{color:var(--osp-fg);font-size:15px;font-weight:700}.osp-ptag{color:var(--osp-muted);margin-top:6px;font-size:13px;line-height:1.5}.osp-ghlink{color:var(--osp-gold);align-items:center;gap:6px;margin-left:auto;transition:gap .18s,color .18s;display:inline-flex}.osp-card:hover .osp-ghlink{color:var(--osp-gold-bright);gap:9px}.osp-soonbadge{color:var(--osp-faint);border:1px solid var(--osp-line);border-radius:20px;margin-left:auto;padding:3px 11px;font-size:11px;animation:2.4s ease-in-out infinite osp-pulse}@keyframes osp-pulse{0%,to{opacity:.5}50%{opacity:1}}.osp-pix{grid-template-columns:repeat(11,1fr);gap:3px;width:154px;margin:2px 0 6px;display:grid}.osp-pix i{aspect-ratio:1;background:#1c1c22;border-radius:2px}.osp-pix i.g{background:var(--osp-gold)}.osp-pix i.w{background:#f3f1ea}.osp-clone{border:1px solid var(--osp-line);background:var(--osp-panel);border-radius:12px;flex-wrap:wrap;align-items:center;gap:14px;padding:18px 20px;display:flex}.osp-clone code{color:var(--osp-fg);font-size:13.5px}.osp-clone code b{color:var(--osp-green);font-weight:400}.osp-copy{cursor:pointer;border:1px solid var(--osp-line);background:var(--osp-panel-2);color:var(--osp-muted);font-family:var(--osp-mono);border-radius:8px;margin-left:auto;padding:7px 13px;font-size:12px;transition:color .18s,border-color .18s}.osp-copy:hover{color:var(--osp-gold-bright);border-color:color-mix(in srgb, var(--osp-gold) 40%, var(--osp-line))}.osp-foot{border-top:1px solid var(--osp-line-soft);color:var(--osp-faint);margin-top:30px;padding:34px 0 56px;font-size:13px}.osp-foot__row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;display:flex}.osp-foot a{color:var(--osp-muted);transition:color .18s}.osp-foot a:hover{color:var(--osp-gold-bright)}.osp-type{white-space:nowrap;vertical-align:bottom;display:inline-block;overflow:hidden}.osp-in .osp-type{animation:1s steps(24,end) both osp-typing}@keyframes osp-typing{0%{width:0}to{width:100%}}@media (prefers-reduced-motion:reduce){.osp *,.osp :before,.osp :after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}.osp-card{opacity:1;transform:none}.osp-cursor{background:var(--osp-gold)}}
