:root{color-scheme:light;--paper: #e9edf2;--paper-2: #f4f6f9;--card: #ffffff;--ink: #12161d;--ink-2: #3d4856;--ink-3: #69747f;--line: rgba(18, 22, 29, .1);--line-2: rgba(18, 22, 29, .16);--line-3: rgba(18, 22, 29, .26);--signal: #1f5bff;--signal-ink: #ffffff;--signal-2: #1546d6;--wash: rgba(31, 91, 255, .08);--wash-2: rgba(31, 91, 255, .14);--sans: "IBM Plex Sans", "Segoe UI", system-ui, -apple-system, sans-serif;--mono: "IBM Plex Mono", ui-monospace, "SFMono-Regular", "Consolas", monospace;--maxw: 1200px;--gutter: clamp(20px, 4vw, 40px);--radius: 4px;--radius-lg: 8px;--ease-out: cubic-bezier(.23, 1, .32, 1);--ease-in-out: cubic-bezier(.77, 0, .175, 1);--ease-drawer: cubic-bezier(.32, .72, 0, 1);--t-fast: .14s;--t: .22s;--t-slow: .46s;--shadow: 0 1px 2px rgba(18,22,29,.04), 0 8px 24px -14px rgba(18,22,29,.28);--shadow-lg: 0 2px 6px rgba(18,22,29,.05), 0 26px 60px -30px rgba(18,22,29,.38)}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:17px;line-height:1.65;font-weight:400;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}button{font-family:inherit}::selection{background:var(--signal);color:var(--signal-ink)}:focus-visible{outline:2px solid var(--signal);outline-offset:3px;border-radius:2px}.sheet{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background-color:var(--paper);background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:28px 28px;-webkit-mask-image:radial-gradient(120% 90% at 50% 0%,#000 55%,transparent 100%);mask-image:radial-gradient(120% 90% at 50% 0%,#000 55%,transparent 100%);opacity:.6}.sheet:after{content:"";position:absolute;top:18px;right:18px;bottom:18px;left:18px;border:1px solid var(--line-2);border-radius:2px;clip-path:polygon(0 0,34px 0,34px 1px,1px 1px,1px 34px,0 34px,0 100%,34px 100%,34px calc(100% - 1px),1px calc(100% - 1px),1px calc(100% - 34px),0 calc(100% - 34px))}@media (max-width: 620px){.sheet:after{top:10px;right:10px;bottom:10px;left:10px}}.container{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 var(--gutter)}.section{padding:clamp(72px,12vw,132px) 0;position:relative}.section+.section{padding-top:0}.sec-head{margin-bottom:clamp(38px,6vw,64px);max-width:820px}.sec-ref{font-family:var(--mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--signal);display:inline-flex;align-items:center;gap:10px;margin-bottom:18px}.sec-ref:before{content:"";width:26px;height:1px;background:var(--signal)}.sec-title{font-size:clamp(2rem,5vw,3.15rem);line-height:1.04;letter-spacing:-.03em;font-weight:600;margin:0;text-wrap:balance}.sec-lead{color:var(--ink-2);font-size:clamp(1rem,2vw,1.15rem);max-width:62ch;margin:20px 0 0}h1,h2,h3,h4{font-weight:600;letter-spacing:-.02em;line-height:1.12}p{margin:0 0 1em}strong{font-weight:600}.spec{font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}.btn{--bd: var(--line-3);display:inline-flex;align-items:center;gap:9px;font-family:var(--mono);font-size:13.5px;letter-spacing:.02em;font-weight:700;padding:12px 20px;border-radius:var(--radius);border:1px solid var(--bd);background:transparent;color:var(--ink);cursor:pointer;transition:transform var(--t-fast) var(--ease-out),background var(--t-fast) var(--ease-out),border-color var(--t-fast) var(--ease-out),color var(--t-fast) var(--ease-out);will-change:transform}.btn i{font-size:.95em}.btn:active{transform:scale(.97)}.btn-primary{background:var(--signal);border-color:var(--signal);color:var(--signal-ink)}.btn-primary:hover{background:var(--signal-2);border-color:var(--signal-2)}.btn-ghost{color:var(--ink)}.btn-ghost:hover{background:var(--card);border-color:var(--line-3)}.dl{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;margin-left:8px;border-radius:3px;border:1px solid var(--line-2);color:var(--ink-3);font-size:11px;vertical-align:middle;transition:transform var(--t-fast) var(--ease-out),color var(--t-fast) var(--ease-out),border-color var(--t-fast) var(--ease-out)}.dl:hover{color:var(--signal);border-color:var(--signal)}.dl:active{transform:scale(.9)}@media (prefers-reduced-motion: reduce){*{animation-duration:.001ms!important;transition-duration:.001ms!important}}.nav{position:fixed;top:0;left:0;right:0;z-index:60;transition:background var(--t) var(--ease-out),border-color var(--t) var(--ease-out);border-bottom:1px solid transparent}.nav.scrolled{background:color-mix(in srgb,var(--paper) 82%,transparent);-webkit-backdrop-filter:blur(10px) saturate(1.4);backdrop-filter:blur(10px) saturate(1.4);border-bottom-color:var(--line-2)}.nav-inner{max-width:var(--maxw);margin:0 auto;padding:14px var(--gutter);display:flex;align-items:center;gap:20px;height:72px}.brand{display:inline-flex;align-items:center;gap:12px}.brand-mark{display:grid;place-items:center;width:40px;height:40px;border:1px solid var(--line-3);border-radius:var(--radius);font-family:var(--mono);font-weight:700;font-size:15px;letter-spacing:-.02em;color:var(--ink);position:relative}.brand-mark:after{content:"";position:absolute;right:-1px;bottom:-1px;width:8px;height:8px;border-right:2px solid var(--signal);border-bottom:2px solid var(--signal)}.brand>span:not(.brand-mark){display:flex;flex-direction:column;line-height:1.1;font-weight:600;font-size:15px}.brand small{font-family:var(--mono);font-weight:400;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);margin-top:3px}.nav-links{display:flex;align-items:center;gap:4px;margin-left:auto}.nav-links a{font-family:var(--mono);font-size:12.5px;letter-spacing:.02em;color:var(--ink-2);padding:8px 12px;border-radius:3px;position:relative;transition:color var(--t-fast) var(--ease-out)}.nav-links a:hover{color:var(--ink)}.nav-links a.active{color:var(--signal)}.nav-links a.active:before{content:"";position:absolute;left:12px;right:12px;bottom:2px;height:1.5px;background:var(--signal)}.nav-cta{margin-left:8px}.nav-cta .btn{padding:10px 16px}.nav-toggle{display:none;margin-left:auto;width:42px;height:42px;border:1px solid var(--line-3);border-radius:var(--radius);background:var(--card);color:var(--ink);font-size:16px;cursor:pointer}.hero{min-height:100dvh;display:flex;align-items:center;padding:128px 0 72px;position:relative}.hero-inner{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 var(--gutter)}.hero-ref{font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);display:flex;align-items:center;gap:14px;margin-bottom:30px}.hero-ref .live{display:inline-flex;align-items:center;gap:8px;color:var(--signal)}.hero-ref .live b{width:7px;height:7px;border-radius:50%;background:var(--signal);font-size:0}.hero h1{font-size:clamp(2.9rem,9vw,6rem);line-height:.98;letter-spacing:-.045em;font-weight:600;margin:0}.hero h1 .draw{display:inline-block;position:relative;color:var(--signal)}.hero-role{font-family:var(--mono);font-size:clamp(.85rem,2.4vw,1.05rem);letter-spacing:.02em;color:var(--ink-2);margin:26px 0 0;display:flex;align-items:baseline;gap:10px}.hero-role .idx{color:var(--signal)}.hero-desc{color:var(--ink-2);font-size:clamp(1rem,2vw,1.18rem);max-width:56ch;margin:26px 0 0}.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:38px}.socials{display:flex;gap:6px;margin-top:36px}.socials a{display:grid;place-items:center;width:40px;height:40px;border:1px solid var(--line-2);border-radius:var(--radius);color:var(--ink-2);font-size:15px;transition:transform var(--t-fast) var(--ease-out),color var(--t-fast) var(--ease-out),border-color var(--t-fast) var(--ease-out)}.socials a:hover{color:var(--signal);border-color:var(--signal);transform:translateY(-2px)}.socials a:active{transform:scale(.94)}.dim{position:relative;height:1px;background:var(--line-3);transform-origin:left center;margin:46px 0 4px}.dim:before,.dim:after{content:"";position:absolute;top:-3px;width:1px;height:7px;background:var(--line-3)}.dim:before{left:0}.dim:after{right:0}.dim .tick{position:absolute;top:-22px;font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);background:var(--paper);padding:0 8px}.dim .tick.a{left:0}.dim .tick.b{right:0;color:var(--signal)}.titleblock{border:1px solid var(--line-2);border-radius:var(--radius-lg);background:var(--card);box-shadow:var(--shadow);overflow:hidden}.tb-portrait{aspect-ratio:4 / 5;overflow:hidden;border-bottom:1px solid var(--line-2);position:relative}.tb-portrait img{width:100%;height:100%;object-fit:cover;filter:grayscale(.15) contrast(1.02)}.tb-portrait:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,transparent 62%,rgba(233,237,242,0));mix-blend-mode:multiply}.tb-rows{display:grid}.tb-row{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:baseline;padding:12px 16px;border-top:1px solid var(--line)}.tb-row:first-child{border-top:0}.tb-row .k{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3)}.tb-row .v{font-size:14px;font-weight:500;text-align:right}.tb-row .v small{display:block;font-family:var(--mono);font-weight:400;font-size:11px;color:var(--ink-3);letter-spacing:.04em}.strip{border-top:1px solid var(--line-2);border-bottom:1px solid var(--line-2);background:var(--paper-2);overflow:hidden;position:relative;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}.strip-track{display:flex;gap:0;width:max-content;animation:strip 42s linear infinite}.strip-track span{font-family:var(--mono);font-size:13px;letter-spacing:.06em;color:var(--ink-2);padding:16px 26px;display:inline-flex;align-items:center;gap:26px;white-space:nowrap}.strip-track span:after{content:"/";color:var(--signal);opacity:.5}@keyframes strip{to{transform:translate(-50%)}}@media (prefers-reduced-motion: reduce){.strip-track{animation:none}}.about-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:clamp(28px,5vw,64px);align-items:start}.about-text p{color:var(--ink-2);font-size:1.08rem}.about-text p+p{margin-top:1.1em}.info-card{list-style:none;margin:0;padding:0;border:1px solid var(--line-2);border-radius:var(--radius-lg);background:var(--card);overflow:hidden}.info-card li{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:14px 18px;border-top:1px solid var(--line)}.info-card li:first-child{border-top:0}.info-card .k{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3)}.info-card .v{font-weight:500;text-align:right}.info-card .v a{color:var(--ink);transition:color var(--t-fast) var(--ease-out)}.info-card .v a:hover{color:var(--signal)}.caps{margin-top:clamp(40px,6vw,72px);border-top:1px solid var(--line-2)}.cap{display:grid;grid-template-columns:68px 1fr;gap:clamp(16px,3vw,40px);padding:28px 0;border-bottom:1px solid var(--line-2);align-items:start}.cap .no{font-family:var(--mono);font-size:13px;color:var(--signal);letter-spacing:.06em;padding-top:4px}.cap-body h3{font-size:1.35rem;margin:0 0 8px}.cap-body p{color:var(--ink-2);margin:0;max-width:64ch}.skills-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,56px)}.tl-sub{font-family:var(--mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);display:flex;align-items:center;gap:10px;margin:0 0 20px;padding-bottom:14px;border-bottom:1px solid var(--line-2)}.tl-sub i{color:var(--signal)}.skill-list{list-style:none;margin:0 0 8px;padding:0}.skill-list li{display:flex;align-items:baseline;gap:14px;padding:11px 0;border-bottom:1px solid var(--line)}.skill-list li:last-child{border-bottom:0}.skill-list .nm{font-weight:500;font-size:1.02rem}.skill-list .rk{margin-left:auto;font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}.skill-list .rk.core{color:var(--signal)}.skill-list .lead-dot{flex:1;border-bottom:1px dotted var(--line-3);align-self:center;height:1px}.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}.chip{font-family:var(--mono);font-size:12px;letter-spacing:.02em;color:var(--ink-2);padding:6px 12px;border:1px solid var(--line-2);border-radius:3px;transition:color var(--t-fast) var(--ease-out),border-color var(--t-fast) var(--ease-out)}a .chip:hover{color:var(--signal);border-color:var(--signal)}.tl-cols{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(32px,6vw,72px);align-items:start}.timeline{position:relative;margin-left:6px}.tl-item{position:relative;padding:0 0 30px 30px;border-left:1px solid var(--line-2)}.tl-item:last-child{border-left-color:transparent;padding-bottom:0}.tl-item:before{content:"";position:absolute;left:-5px;top:5px;width:9px;height:9px;border-radius:50%;background:var(--paper);border:1.5px solid var(--line-3)}.tl-item:first-child:before{border-color:var(--signal);background:var(--signal)}.tl-period{font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--signal)}.tl-item h4{font-size:1.1rem;margin:6px 0 2px;display:flex;align-items:center;flex-wrap:wrap}.tl-item .org{font-size:.92rem;color:var(--ink-2);font-weight:500;margin-bottom:8px}.tl-item p{color:var(--ink-2);font-size:.98rem;margin:0;max-width:60ch}.tst{border:1px solid var(--line-2);border-radius:var(--radius-lg);background:var(--card);padding:22px;margin-bottom:16px}.tst .quote{color:var(--signal);font-size:18px}.tst>p{color:var(--ink);font-size:1rem;margin:10px 0 16px;font-style:italic}.tst-author{display:flex;align-items:center;gap:12px}.tst-author img{width:42px;height:42px;border-radius:50%;object-fit:cover;border:1px solid var(--line-2)}.tst-author .an{font-weight:600;font-size:.95rem}.tst-author .ac{font-family:var(--mono);font-size:10.5px;letter-spacing:.04em;color:var(--ink-3);text-transform:uppercase}.cert-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.cert{display:grid;grid-template-columns:52px 1fr;gap:16px;align-items:center;padding:18px;border:1px solid var(--line-2);border-radius:var(--radius-lg);background:var(--card);transition:border-color var(--t-fast) var(--ease-out),transform var(--t-fast) var(--ease-out)}.cert:hover{border-color:var(--line-3);transform:translateY(-2px)}.cert-logo{display:grid;place-items:center;width:52px;height:52px;border:1px solid var(--line);border-radius:var(--radius);background:var(--paper-2);padding:8px}.cert-logo img{max-width:100%;max-height:100%;object-fit:contain}.cert-body h4{font-size:1rem;margin:0 0 4px;display:flex;align-items:center;flex-wrap:wrap}.cert-body h4 a{transition:color var(--t-fast) var(--ease-out)}.cert-body h4 a:hover{color:var(--signal)}.cert-body .meta{font-size:.88rem;color:var(--ink-2)}.cert-body .meta.cert-badge{color:var(--signal);font-weight:600}.cert-body .date{font-family:var(--mono);font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);margin-top:4px}.filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:36px}.filter{font-family:var(--mono);font-size:12px;letter-spacing:.04em;color:var(--ink-2);padding:8px 15px;border:1px solid var(--line-2);border-radius:3px;background:transparent;cursor:pointer;transition:color var(--t-fast) var(--ease-out),border-color var(--t-fast) var(--ease-out),background var(--t-fast) var(--ease-out)}.filter:hover{color:var(--ink);border-color:var(--line-3)}.filter.active{color:var(--signal-ink);background:var(--signal);border-color:var(--signal)}.work-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.work{display:block;border:1px solid var(--line-2);border-radius:var(--radius-lg);overflow:hidden;background:var(--card);transition:border-color var(--t) var(--ease-out),transform var(--t) var(--ease-out),box-shadow var(--t) var(--ease-out);will-change:transform}.work:hover{border-color:var(--line-3);transform:translateY(-4px);box-shadow:var(--shadow-lg)}.work-media{position:relative;aspect-ratio:16 / 10;overflow:hidden;background:var(--paper-2);border-bottom:1px solid var(--line)}.work-media img{width:100%;height:100%;object-fit:cover;transition:transform var(--t-slow) var(--ease-out)}.work:hover .work-media img{transform:scale(1.04)}.work-open{position:absolute;top:12px;right:12px;width:34px;height:34px;display:grid;place-items:center;background:var(--card);border:1px solid var(--line-2);border-radius:var(--radius);color:var(--ink);opacity:0;transform:translateY(-4px);transition:opacity var(--t) var(--ease-out),transform var(--t) var(--ease-out),background var(--t) var(--ease-out),color var(--t) var(--ease-out)}.work:hover .work-open{opacity:1;transform:translateY(0);background:var(--signal);border-color:var(--signal);color:var(--signal-ink)}.work-info{padding:16px 18px;display:flex;align-items:baseline;justify-content:space-between;gap:12px}.work-info h4{font-size:1.05rem;margin:0}.work-info .cat{font-family:var(--mono);font-size:10.5px;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-3);text-align:right;flex:0 0 auto;max-width:44%}.footer{border-top:1px solid var(--line-2);padding:clamp(72px,12vw,128px) 0 40px;background:var(--paper-2);position:relative}.footer-cta{max-width:720px}.footer-cta h2{font-size:clamp(2rem,6vw,3.4rem);letter-spacing:-.03em;margin:14px 0 0}.footer-cta>p{color:var(--ink-2);font-size:1.12rem;margin:18px 0 0;max-width:52ch}.footer-cta .btn-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}.footer-bar{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-top:clamp(56px,9vw,96px);padding-top:26px;border-top:1px solid var(--line-2)}.footer-bar .copy{font-family:var(--mono);font-size:11.5px;letter-spacing:.04em;color:var(--ink-3)}.footer .socials{margin-top:0}.pp-main{padding-top:72px}.pp-hero{padding:clamp(40px,7vw,76px) 0 clamp(28px,4vw,44px)}.pp-back{font-family:var(--mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2);display:inline-flex;align-items:center;gap:8px;transition:color var(--t-fast) var(--ease-out),gap var(--t-fast) var(--ease-out)}.pp-back:hover{color:var(--signal);gap:12px}.pp-cat{font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--signal);display:inline-flex;align-items:center;gap:9px;margin:30px 0 16px}.pp-title{font-size:clamp(2.4rem,7vw,4.6rem);line-height:1;letter-spacing:-.04em;margin:0}.pp-meta{display:flex;flex-wrap:wrap;gap:22px;margin-top:22px}.pp-meta span{font-family:var(--mono);font-size:12px;letter-spacing:.04em;color:var(--ink-3);display:inline-flex;align-items:center;gap:8px}.pp-meta i{color:var(--signal)}.pp-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}.pp-tags span{font-family:var(--mono);font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-2);padding:5px 11px;border:1px solid var(--line-2);border-radius:3px}.pp-cover{margin:clamp(30px,5vw,52px) 0 0;border:1px solid var(--line-2);border-radius:var(--radius-lg);overflow:hidden;background:var(--paper-2)}.pp-cover img{width:100%;height:auto}.pp-article{max-width:820px;margin:clamp(40px,6vw,72px) auto 0;padding:0 var(--gutter)}.pp-article .container,.pp-article .col-inner,.pp-article .row,.pp-article [class^=col-]{width:100%;max-width:none;margin:0;padding:0}.pp-article h3{font-size:1.5rem;letter-spacing:-.02em;margin:2em 0 .6em;padding-bottom:.4em;border-bottom:1px solid var(--line-2)}.pp-article h3:first-child{margin-top:0}.pp-article p{color:var(--ink-2);font-size:1.08rem;line-height:1.75;margin:0 0 1.1em;max-width:72ch}.pp-article li{color:var(--ink-2);font-size:1.06rem;line-height:1.7;margin:0 0 .5em}.pp-article ol,.pp-article ul{padding-left:1.3em;margin:0 0 1.2em}.pp-article a{color:var(--signal);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;transition:color var(--t-fast) var(--ease-out)}.pp-article a:hover{color:var(--signal-2)}.pp-article u{text-decoration:none;font-weight:600;color:var(--ink)}.pp-article strong{color:var(--ink)}.pp-more{padding:clamp(48px,8vw,88px) 0}.pp-more-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;border-top:1px solid var(--line-2);padding-top:32px}.pp-more-card{display:flex;align-items:center;gap:16px;padding:22px;border:1px solid var(--line-2);border-radius:var(--radius-lg);background:var(--card);transition:border-color var(--t) var(--ease-out),transform var(--t) var(--ease-out)}.pp-more-card:hover{border-color:var(--signal);transform:translateY(-3px)}.pp-more-card.next{text-align:right;justify-content:flex-end}.pp-more-card i{color:var(--signal);font-size:18px}.pp-more-card .dir{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3)}.pp-more-card .nm{font-size:1.15rem;font-weight:600;margin-top:3px}[data-reveal]{opacity:1}@media (max-width: 980px){.about-grid,.skills-grid,.tl-cols{grid-template-columns:1fr}.work-grid{grid-template-columns:repeat(2,1fr)}.hero-grid{grid-template-columns:1fr}}@media (max-width: 860px){.nav-links,.nav-cta{display:none}.nav-toggle{display:grid;place-items:center}.nav.open .nav-links{display:flex;flex-direction:column;align-items:stretch;gap:2px;position:absolute;top:72px;left:0;right:0;background:var(--paper);border-bottom:1px solid var(--line-2);padding:14px var(--gutter) 22px;margin:0}.nav.open .nav-links a{padding:12px 8px;border-bottom:1px solid var(--line)}.nav.open .nav-cta{display:block;position:absolute;top:100%;left:0;right:0;padding:0 var(--gutter) 20px;background:var(--paper)}.nav.open .nav-cta .btn{width:100%;justify-content:center}.cert-grid,.pp-more-grid{grid-template-columns:1fr}}@media (max-width: 620px){body{font-size:16px}.work-grid{grid-template-columns:1fr}.cap{grid-template-columns:1fr;gap:8px}.cap .no{padding-top:0}.footer-bar{flex-direction:column;align-items:flex-start}}.hero-grid{display:grid;grid-template-columns:1.55fr .95fr;gap:clamp(32px,6vw,80px);align-items:center}@media (max-width: 980px){.hero{min-height:auto;padding-top:118px}.titleblock{max-width:360px}}.pf-wrap{--brand: #1f5bff;--brand-ink: #ffffff;--stage: #0b1220;--bg: #0f172a;--surface: #1e293b;--card: #172033;--text: #e6edf5;--muted: #8ba0b3;--line: rgba(255, 255, 255, .08);--ok: #34d399;--warn: #fbbf24;--danger: #f87171;font-family:Lexend,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;margin:46px 0 10px;line-height:1.45}.pf-wrap *{box-sizing:border-box}.pf-head{display:flex;align-items:center;gap:12px;margin:0 0 4px}.pf-kicker{font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--brand);white-space:nowrap}.pf-line{flex:1;height:1px;background:linear-gradient(90deg,var(--brand),transparent);opacity:.5}.pf-sub{color:#6b7684;font-size:14.5px;margin:0 0 24px;max-width:640px}.pf-stage{background:var(--stage);background-image:radial-gradient(circle at 18% 8%,rgba(255,255,255,.06),transparent 42%),radial-gradient(circle at 92% 100%,color-mix(in srgb,var(--brand) 22%,transparent),transparent 45%);border-radius:22px;padding:40px 22px;display:flex;gap:26px;flex-wrap:wrap;align-items:flex-start;justify-content:center;box-shadow:0 26px 60px -28px #0009;overflow:hidden}.pf-frame{flex:0 0 auto}.pf-cap{text-align:center;color:#ffffff8c;font-size:12.5px;margin-top:13px;letter-spacing:.02em}.pf-phone{width:236px;background:#05080c;border-radius:36px;padding:9px;border:1px solid rgba(255,255,255,.09);box-shadow:0 18px 40px #00000080,inset 0 0 0 2px #ffffff08}.pf-screen{position:relative;height:478px;background:var(--bg);border-radius:28px;overflow:hidden;display:flex;flex-direction:column;color:var(--text)}.pf-notch{height:24px;display:flex;align-items:center;justify-content:center;flex:0 0 auto}.pf-notch:before{content:"";width:74px;height:5px;border-radius:3px;background:#ffffff29;margin-top:4px}.pf-browser{width:560px;max-width:100%;background:var(--surface);border-radius:14px;overflow:hidden;border:1px solid rgba(255,255,255,.08);box-shadow:0 18px 40px #00000080}.pf-browser.pf-wide{width:620px}.pf-tabbar{display:flex;align-items:center;gap:8px;padding:10px 14px;background:#00000040;border-bottom:1px solid var(--line)}.pf-dot{width:11px;height:11px;border-radius:50%}.pf-dot.r{background:#ff5f57}.pf-dot.y{background:#febc2e}.pf-dot.g{background:#28c840}.pf-url{margin-left:10px;flex:1;background:#ffffff12;color:#ffffff8c;font-size:11.5px;padding:5px 12px;border-radius:20px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.pf-viewport{background:var(--bg);color:var(--text);height:420px;overflow:hidden;display:flex}.pf-body{padding:14px;flex:1;overflow:hidden}.pf-pad{padding:16px}.pf-appbar{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px}.pf-appbar .pf-t-lg{margin:0}.pf-side{width:150px;flex:0 0 auto;background:var(--surface);border-right:1px solid var(--line);padding:14px 10px}.pf-brandrow{display:flex;align-items:center;gap:8px;margin-bottom:16px}.pf-brandrow img{height:20px;width:auto}.pf-navitem{display:flex;align-items:center;gap:9px;padding:8px 10px;border-radius:8px;color:var(--muted);font-size:12.5px;margin-bottom:3px}.pf-navitem .pf-ic{opacity:.7}.pf-navitem.active{background:color-mix(in srgb,var(--brand) 20%,transparent);color:var(--text)}.pf-navitem.active .pf-ic{color:var(--brand);opacity:1}.pf-main{flex:1;padding:16px;overflow:hidden}.pf-t-lg{font-size:17px;font-weight:700;color:var(--text)}.pf-t{font-size:13px;color:var(--text)}.pf-h2{font-size:14px;font-weight:600;color:var(--text);margin:0 0 8px}.pf-muted{color:var(--muted);font-size:12px}.pf-xs{font-size:11px}.pf-strong{font-weight:700}.pf-ic{display:inline-flex;align-items:center;justify-content:center;font-family:"Font Awesome 5 Free",FontAwesome,sans-serif}.pf-iconbox{width:34px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--brand) 22%,transparent);color:var(--brand);font-size:15px;flex:0 0 auto}.pf-card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:13px;margin-bottom:10px}.pf-card:last-child{margin-bottom:0}.pf-grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.pf-grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}.pf-grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.pf-row{display:flex;align-items:center;gap:10px}.pf-row.wrap{flex-wrap:wrap}.pf-between{display:flex;align-items:center;justify-content:space-between;gap:8px}.pf-mt{margin-top:10px}.pf-mb{margin-bottom:10px}.pf-stat{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px}.pf-stat .n{font-size:21px;font-weight:700;color:var(--text);line-height:1.1}.pf-stat .l{font-size:11px;color:var(--muted);margin-top:3px}.pf-stat.brand{background:var(--brand);border-color:transparent}.pf-stat.brand .n,.pf-stat.brand .l{color:var(--brand-ink)}.pf-badge{display:inline-flex;align-items:center;gap:5px;font-size:10.5px;font-weight:700;letter-spacing:.03em;padding:3px 9px;border-radius:20px;background:color-mix(in srgb,var(--brand) 20%,transparent);color:var(--brand);text-transform:uppercase}.pf-badge.ok{background:color-mix(in srgb,var(--ok) 20%,transparent);color:var(--ok)}.pf-badge.warn{background:color-mix(in srgb,var(--warn) 22%,transparent);color:var(--warn)}.pf-badge.danger{background:color-mix(in srgb,var(--danger) 20%,transparent);color:var(--danger)}.pf-badge.solid{background:var(--brand);color:var(--brand-ink)}.pf-dot-live{width:7px;height:7px;border-radius:50%;background:currentColor;box-shadow:0 0 0 3px color-mix(in srgb,currentColor 25%,transparent)}.pf-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;background:var(--brand);color:var(--brand-ink);font-size:12.5px;font-weight:600;padding:9px 16px;border-radius:10px}.pf-btn.block{display:flex;width:100%}.pf-btn-outline{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid color-mix(in srgb,var(--text) 30%,transparent);color:var(--text);font-size:12.5px;font-weight:600;padding:9px 16px;border-radius:10px;background:transparent}.pf-btn-ghost{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px dashed color-mix(in srgb,var(--text) 26%,transparent);color:var(--muted);font-size:12px;font-weight:600;padding:11px 14px;border-radius:10px;width:100%}.pf-av{width:28px;height:28px;border-radius:50%;background:linear-gradient(135deg,var(--brand),color-mix(in srgb,var(--brand) 40%,#000));color:var(--brand-ink);display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;flex:0 0 auto;border:2px solid var(--card)}.pf-avs{display:flex}.pf-avs .pf-av+.pf-av{margin-left:-9px}.pf-bar{height:7px;border-radius:20px;background:color-mix(in srgb,var(--text) 12%,transparent);overflow:hidden}.pf-bar>i{display:block;height:100%;border-radius:20px;background:var(--brand)}.pf-bar.ok>i{background:var(--ok)}.pf-bar.warn>i{background:var(--warn)}.pf-bar.danger>i{background:var(--danger)}.pf-chart{display:flex;align-items:flex-end;gap:8px;height:84px}.pf-chart .b{flex:1;border-radius:5px 5px 0 0;background:color-mix(in srgb,var(--brand) 55%,transparent)}.pf-chart .b.hi{background:var(--brand)}.pf-donut{width:78px;height:78px;border-radius:50%;flex:0 0 auto;display:flex;align-items:center;justify-content:center;background:conic-gradient(var(--brand) var(--v, 70%),color-mix(in srgb,var(--text) 12%,transparent) 0)}.pf-donut:after{content:attr(data-v);width:56px;height:56px;border-radius:50%;background:var(--card);display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:700;color:var(--text)}.pf-li{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--line)}.pf-li:last-child{border-bottom:0}.pf-li .grow{flex:1;min-width:0}.pf-table{width:100%;font-size:12px;border-collapse:collapse}.pf-table th{text-align:left;color:var(--muted);font-weight:600;font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;padding:8px;border-bottom:1px solid var(--line)}.pf-table td{padding:9px 8px;border-bottom:1px solid var(--line);color:var(--text)}.pf-table tr:last-child td{border-bottom:0}.pf-kanban{display:flex;gap:10px}.pf-kcol{flex:1;background:color-mix(in srgb,var(--text) 5%,transparent);border-radius:10px;padding:9px}.pf-kcol .h{font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:8px;display:flex;justify-content:space-between}.pf-kcard{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:9px;margin-bottom:8px}.pf-kcard:last-child{margin-bottom:0}.pf-tag{display:inline-block;font-size:9.5px;font-weight:700;padding:2px 7px;border-radius:5px;background:color-mix(in srgb,var(--brand) 20%,transparent);color:var(--brand)}.pf-input{background:color-mix(in srgb,var(--text) 7%,transparent);border:1px solid var(--line);border-radius:9px;padding:9px 12px;color:var(--muted);font-size:12px;display:flex;align-items:center;gap:8px}.pf-qr{width:132px;height:132px;border-radius:14px;background:#fff;padding:10px;margin:0 auto;display:block}.pf-qr svg{width:100%;height:100%;display:block}.pf-fab{position:absolute;right:16px;bottom:16px;width:46px;height:46px;border-radius:16px;background:var(--brand);color:var(--brand-ink);display:flex;align-items:center;justify-content:center;font-size:20px;box-shadow:0 8px 20px color-mix(in srgb,var(--brand) 50%,transparent)}.pf-tabbarbtm{display:flex;justify-content:space-around;align-items:center;padding:11px 6px 12px;border-top:1px solid var(--line);background:var(--surface);flex:0 0 auto}.pf-tabbarbtm span{font-size:15px;color:var(--muted)}.pf-tabbarbtm span.active{color:var(--brand)}.pf-tabs{display:flex;gap:6px;background:color-mix(in srgb,var(--text) 7%,transparent);padding:4px;border-radius:10px}.pf-tabs b{flex:1;text-align:center;font-size:11.5px;font-weight:600;padding:6px;border-radius:7px;color:var(--muted)}.pf-tabs b.active{background:var(--brand);color:var(--brand-ink)}.pf-stack{display:flex;flex-wrap:wrap;gap:8px;margin:22px 0 4px}.pf-chip{font-size:12px;font-weight:500;padding:6px 13px;border-radius:20px;background:color-mix(in srgb,var(--brand) 10%,#f4f6f8);color:#33414f;border:1px solid color-mix(in srgb,var(--brand) 22%,transparent)}@supports not (background: color-mix(in srgb,red,blue)){.pf-chip{background:#eef2f6;border-color:#d6dee6}.pf-navitem.active{background:#3b82f62e}.pf-iconbox{background:#3b82f633}.pf-badge{background:#3b82f62e}}@media (max-width: 600px){.pf-browser{width:100%}.pf-stage{padding:26px 12px;gap:20px}.pf-phone{width:210px}.pf-screen{height:440px}}
