.ph{--ph-ground:#f2f0e9;--ph-ink:#16150f;--ph-body:#1f1e17;--ph-muted:#34332b;--ph-band:#e8e4d5;--ph-footer:#eae7d9;--ph-dark:#2a1d12;--ph-on-dark:#f2f0e9;--ph-on-dark-dim:#e5e2d4;--ph-on-dark-faint:#b8b6a8;--ph-accent:#c25a2e;--ph-accent-dark:#ff9f6a;--ph-green:#467600;--ph-green-band:#e3ecd2;--ph-green-cell:#f1f5ea;--ph-green-cell-on:#eef3e4;--ph-warn:#a3532a;--ph-rule:#cfccbc;--ph-rule-soft:#d9d2c3;--ph-mono:var(--font-jet), "JetBrains Mono", ui-monospace, Menlo, monospace;--ph-display:"Courier New", Courier, monospace;--ph-pad:clamp(24px, 7.8vw, 150px);background:var(--ph-ground);color:var(--ph-ink);font-family:var(--ph-mono);-webkit-font-smoothing:antialiased;font-size:15px;line-height:1.6}.ph a{color:inherit;text-decoration:none}.ph a:hover{color:var(--ph-accent)}.ph button{font:inherit;cursor:pointer}.ph ::selection{background:var(--ph-accent);color:var(--ph-ground)}.ph :focus{outline:none}.ph :focus-visible{outline:2px solid var(--ph-ink);outline-offset:3px}.ph-btn{letter-spacing:1.5px;text-transform:uppercase;white-space:nowrap;border:1px solid #0000;align-items:center;gap:12px;padding:14px 26px;font-size:13px;font-weight:700;transition:background .25s,color .25s,border-color .25s;display:inline-flex}.ph .ph-btn-hero{border-color:var(--ph-green);color:var(--ph-ink);background:#f2f0e9b3}.ph .ph-btn-hero:hover{background:var(--ph-green);color:var(--ph-ground)}.ph .ph-btn-light{background:var(--ph-ground);color:var(--ph-ink)}.ph .ph-btn-light:hover{background:var(--ph-accent);color:var(--ph-ground)}@keyframes ph-blink{0%,49%{opacity:1}50%,to{opacity:0}}@keyframes ph-ribbon{0%{transform:translate(0)}to{transform:translate(-50%)}}.ph-header{z-index:5;padding:34px var(--ph-pad) 22px;letter-spacing:.5px;justify-content:space-between;align-items:center;gap:20px;font-size:12px;display:flex;position:absolute;top:0;left:0;right:0}.ph-mark{white-space:nowrap;color:var(--ph-ink);align-items:center;gap:9px;font-size:16px;display:flex}.ph-mark img{width:auto;height:22px;display:block}.ph-header-right{align-items:center;gap:30px;display:flex}.ph-nav{text-transform:uppercase;letter-spacing:1.5px;gap:30px;font-size:13.5px;font-weight:700;display:flex}.ph .ph-signin{border:1px solid var(--ph-ink);letter-spacing:1.5px;text-transform:uppercase;color:var(--ph-ink);white-space:nowrap;background:#f2f0e9d9;padding:8px 16px;font-size:12px;font-weight:700;transition:background .25s,color .25s}.ph .ph-signin:hover{background:var(--ph-ink);color:var(--ph-ground)}.ph-hero{background:var(--ph-ground);width:100%;height:88vh;min-height:520px;position:relative;overflow:hidden}.ph-hero>img{aspect-ratio:1477/1264;object-fit:cover;object-position:45.5% 60.8%;transform-origin:45.5% 60.8%;filter:saturate(1.18)contrast(1.04);pointer-events:none;width:105.2%;height:auto;display:block;position:absolute;top:-4%;left:-2.85%;transform:scale(1.09)}.ph-hero-copy{text-align:left;justify-items:start;gap:22px;width:min(48%,620px);display:grid;position:absolute;top:50%;left:clamp(40px,12vw,230px);transform:translateY(-50%)}.ph-hero h1{font-family:var(--ph-display);text-shadow:0 1px #f2f0e999;margin:0;font-size:clamp(34px,5.4vw,70px);font-weight:700;line-height:1.08}.ph-caret{background:var(--ph-green);vertical-align:-.08em;width:.42em;height:.78em;margin-left:14px;animation:1.1s step-end infinite ph-blink;display:inline-block}@media (prefers-reduced-motion:reduce){.ph-caret{animation:none}}.ph-hero-lede{color:var(--ph-muted);font-size:15.5px;line-height:1.7}.ph-hero .ph-btn{margin-top:8px}.ph-intro{background:var(--ph-dark);color:var(--ph-on-dark)}.ph-intro-inner{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(24px,5vw,72px);width:min(100%,1040px);margin:0 auto;padding:clamp(60px,10vh,110px) 20px;display:grid}.ph-intro h2{font-family:var(--ph-display);margin:0;font-size:clamp(28px,3.2vw,40px);font-weight:700;line-height:1.3}.ph-inline-mark{white-space:nowrap;align-items:center;gap:.28em;display:inline-flex}.ph-inline-mark img{width:auto;height:.8em;display:block}.ph-intro-copy{color:var(--ph-on-dark-dim);text-wrap:pretty;gap:16px;font-size:15.5px;line-height:1.95;display:grid}.ph-intro-copy p{margin:0}.ph-demo-section{background:var(--ph-ground)}.ph-demo-inner{padding:clamp(60px, 10vh, 110px) var(--ph-pad)}.ph-demo-layout{grid-template-columns:232px minmax(0,1fr);align-items:stretch;gap:30px;display:grid}.ph-demo-index{grid-template-rows:auto auto 1fr;padding-right:32px;display:grid}.ph-demo-index>h3{text-transform:uppercase;letter-spacing:3px;margin:0 0 22px;font-size:20px;font-weight:700}.ph-demo-tasks{align-content:start;display:grid}.ph-demo-task{border:0;border-bottom:1px solid var(--ph-rule);text-align:left;color:inherit;background:0 0;width:calc(100% + 24px);margin:0 -12px;padding:14px 12px;font-size:14px;transition:color .2s,background .2s}.ph-demo-task:hover:not(:disabled){color:var(--ph-green)}.ph-demo-task[data-on=true]{background:var(--ph-green-band);font-weight:700}.ph-demo-task:disabled{color:var(--ph-muted);opacity:.55;cursor:default;font-style:italic}.ph-demo-note{align-self:end;gap:8px;margin:16px 0 0;display:grid}.ph-demo-note-id{letter-spacing:1.5px;color:var(--ph-green);text-transform:uppercase;font-size:11px;font-weight:700}.ph-demo-note p{color:var(--ph-muted);margin:0;font-size:13px;line-height:1.75}.ph-demo.pn{--pn-serif:var(--font-sans), "IBM Plex Sans", Arial, sans-serif;aspect-ratio:16/9;border:1px solid var(--ph-rule-soft);background:#fff;width:100%;min-width:0;min-height:0;display:flex;overflow:hidden}.ph-demo .pn-viewer-split{grid-template-columns:minmax(0,1fr) 300px}.ph-demo .pn-workbook{border-top:0;flex-direction:column;min-height:0;display:flex}.ph-demo .pn-grid{flex:1}.ph-demo .pn-sheet-tabs{flex:none}.ph-demo .pn-evidence{background:#fff;border-top:0;padding:16px 18px}.ph-demo .pn-evidence-value{font-size:26px;font-weight:500}.ph-demo .pn-cell{white-space:nowrap;text-overflow:ellipsis;font-size:11px;display:block;overflow:hidden}.ph-demo .pn-workbook>button{border:0;border-bottom:1px solid var(--pn-edge-soft);background:var(--pn-chrome);color:var(--pn-ink);text-align:left;flex:none;padding:6px 10px;font-size:11px}.ph-demo .pn-evidence{font-size:11.5px}.ph-uses{background:var(--ph-band);padding:clamp(20px,3vh,28px) 0;overflow:hidden}.ph-ribbon{width:max-content;font-family:var(--ph-display);color:var(--ph-ink);will-change:transform;font-size:16px;font-weight:700;animation:40s linear infinite ph-ribbon;display:flex}.ph-ribbon>span{white-space:nowrap;align-items:center;display:inline-flex}.ph-ribbon>span:after{content:"";background:var(--ph-accent);border-radius:50%;width:5px;height:5px;margin:0 26px}@media (prefers-reduced-motion:reduce){.ph-ribbon{animation:none}}.ph-beta{background:var(--ph-dark);color:var(--ph-on-dark);grid-template-columns:auto auto auto;justify-content:center;align-items:center;gap:48px;padding:clamp(72px,12vh,130px) 20px;font-size:14px;display:grid}.ph-beta-version{align-content:start;gap:4px;display:grid}.ph-beta-number{font-family:var(--ph-display);margin-top:8px;font-size:34px;font-weight:700;line-height:1}.ph-beta-date{color:var(--ph-on-dark-faint);letter-spacing:1px;font-size:11.5px}.ph-beta ul{gap:8px;margin:0;padding:0;list-style:none;display:grid}.ph-beta li{gap:10px;display:flex}.ph-beta-mark{color:var(--ph-accent-dark)}.ph-quote{padding:clamp(72px, 12vh, 130px) var(--ph-pad);background:var(--ph-band);text-align:center}.ph-quote-inner{gap:14px;width:min(100%,760px);margin:0 auto;display:grid}.ph-quote p{font-family:var(--ph-display);color:var(--ph-ink);margin:0;font-size:clamp(18px,2vw,26px);font-weight:700;line-height:1.45}.ph-quote span{letter-spacing:1.5px;text-transform:uppercase;color:var(--ph-muted);font-size:11.5px;font-weight:700}.ph-footer{background:var(--ph-footer);color:var(--ph-ink);padding:36px var(--ph-pad)}.ph-footer-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:24px 40px;display:flex}.ph-footer-brand{white-space:nowrap;align-items:center;gap:9px;font-size:15px;font-weight:700;display:flex}.ph-bracket{color:var(--ph-accent);font-size:22px;font-weight:300}.ph-footer-right{text-align:right;justify-items:end;gap:8px;margin-left:auto;font-size:13px;display:grid}.ph-footer-legal{flex-wrap:wrap;justify-content:flex-end;align-items:baseline;gap:24px;display:flex}.ph-footer-legal>span{letter-spacing:1.5px;color:#16150fd9;font-size:11px}.ph-plain{flex-direction:column;min-height:100svh;display:flex}.ph-plain>main{flex:1}.ph-plain .ph-header{background:var(--ph-ground);position:static}.ph-legal{width:min(100%,760px);padding:clamp(32px, 6vh, 64px) var(--ph-pad) clamp(72px, 12vh, 130px);margin:0 auto}.ph-legal-head{border-bottom:1px solid var(--ph-rule);gap:14px;padding-bottom:34px;display:grid}.ph-legal-head h1{font-family:var(--ph-display);margin:0;font-size:clamp(28px,3.6vw,44px);font-weight:700;line-height:1.15}.ph-legal-updated{letter-spacing:1.5px;text-transform:uppercase;color:var(--ph-muted);margin:0;font-size:11.5px}.ph-legal-body{margin-top:36px}.ph-legal-lede{color:var(--ph-ink);margin:0 0 18px;font-size:16px}.ph-legal-body h2{font-family:var(--ph-display);margin:40px 0 12px;font-size:20px;font-weight:700;line-height:1.3}.ph-legal-body p,.ph-legal-body li{color:var(--ph-body);font-size:14px;line-height:1.85}.ph-legal-body p{margin:0 0 14px}.ph-legal-body ul{margin:0 0 14px;padding-left:22px}.ph-legal-body li+li{margin-top:6px}.ph-legal-body strong{color:var(--ph-ink);font-weight:700}.ph-legal-body a{color:var(--ph-accent);text-underline-offset:3px;overflow-wrap:anywhere;text-decoration:underline}.ph-note{padding:clamp(60px, 12vh, 120px) var(--ph-pad);align-content:center;justify-items:start;gap:18px;min-height:56vh;display:grid}.ph-note-code{letter-spacing:1.5px;text-transform:uppercase;color:var(--ph-accent);font-size:11px;font-weight:700}.ph-note h1{font-family:var(--ph-display);margin:0;font-size:clamp(26px,3.4vw,40px);font-weight:700;line-height:1.15}.ph-note p{max-width:52ch;color:var(--ph-muted);margin:0;font-size:14px}.ph .ph-note .ph-btn{border-color:var(--ph-ink);color:var(--ph-ink);margin-top:8px}.ph .ph-note .ph-btn:hover{background:var(--ph-ink);color:var(--ph-ground)}@media (max-width:960px){.ph-demo-layout{grid-template-columns:minmax(0,1fr);gap:16px}.ph-demo-index{grid-template-rows:auto auto auto;padding-right:0}.ph-demo-note{align-self:start}.ph-demo.pn{aspect-ratio:auto;height:680px}.ph-demo .pn-viewer-split{grid-template-rows:minmax(0,1fr) minmax(0,1fr);grid-template-columns:minmax(0,1fr)}.ph-demo .pn-evidence{border-left:0;border-top:1px solid var(--ph-rule-soft)}.ph-intro-inner{grid-template-columns:minmax(0,1fr);gap:18px}}@media (max-width:768px){.ph-header{background:var(--ph-ground);flex-wrap:wrap;justify-content:center;gap:12px 16px;padding:16px 16px 12px;position:static}.ph-header>a:first-child{flex:0 0 100%;justify-content:center;font-size:14px}.ph-header-right{flex-wrap:wrap;justify-content:center;gap:16px}.ph-nav{gap:16px;font-size:11px}.ph-nav a,.ph-signin{align-items:center;min-height:44px;display:inline-flex}.ph-signin{background:0 0;padding:6px 10px;font-size:10px}.ph-hero{height:78svh;min-height:480px}.ph-hero-copy{text-align:center;justify-items:center;gap:16px;width:auto;inset:auto 20px 44px;transform:none}.ph-hero h1{font-size:min(34px,7.4vw)}.ph-caret{margin-left:8px}.ph-hero-lede{font-size:14px}.ph-intro-inner,.ph-demo-inner{padding:56px 24px}.ph-beta{text-align:center;grid-template-columns:minmax(0,1fr);justify-items:center}.ph-beta ul{text-align:left;justify-items:start}.ph-footer-inner{justify-content:flex-start}.ph-footer-right{text-align:left;justify-items:start;margin-left:0}.ph-footer-legal{justify-content:flex-start}}
