/* Generated by scripts/build_pe_visuals_css.py from the profile page stylesheet. Do not edit. */
article.post .pp{--ink:#171918;--paper:#f3f0e7;--lcd:#1f2a1c;--lime:#d4ed98;--lime-deep:#4f6a1c;--muted:#545850;--line:#17191833;
  --d-user:#edcd42;--d-product:#8fae54;--d-tech:#6084d0;--eng:#6252bc;--px:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
article.post .pp .label{font:700 12px var(--px);letter-spacing:2px;opacity:.8;margin:0 0 10px}
article.post .pp h2{font-size:clamp(28px,4vw,52px);line-height:1.02;letter-spacing:-.04em;font-weight:600;margin:0 0 16px;max-width:900px}
article.post .pp h3{margin:0}
article.post .pp-inner{max-width:1180px;margin:0 auto}
article.post .pp-intro{font-size:clamp(16px,1.4vw,19px);line-height:1.55;max-width:680px;margin:0 0 32px}
article.post .pp a{color:inherit;text-underline-offset:3px}
article.post .pp-hero{background:var(--ink);color:var(--paper);padding:34px 5% 64px;background-image:radial-gradient(#ffffff0d 1px,transparent 1px);background-size:6px 6px}
article.post .pp-hero__top{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font:11px var(--px);letter-spacing:1.2px;color:#c8ccc5}
article.post .pp-badge{border:1px solid var(--lime);color:var(--lime);padding:3px 8px}
article.post .pp-hero h1{margin:28px 0 22px;font-size:clamp(42px,7vw,104px);line-height:.95;letter-spacing:-.06em;font-weight:600;max-width:1100px}
article.post .pp-hero h1 em,article.post .pp-hero--end h2{font-style:normal;color:var(--lime)}
article.post .pp-hero h1.pp-hero__title{font-size:min(104px,8.6vw)}
article.post .pp-hero__title>span,article.post .pp-hero__title>em{display:block;white-space:nowrap}
article.post .pp-hero__sub{margin:-6px 0 22px;font-size:clamp(22px,2.6vw,34px);line-height:1.2;letter-spacing:-.02em;font-weight:500;color:#e8eae3;max-width:900px}
article.post .pp-lede{max-width:660px;font-size:clamp(17px,1.6vw,21px);line-height:1.5;color:#ced0c9;margin:0 0 16px}
article.post .pp-hero__note{font-size:13px;color:#a9ada5;margin:0}
article.post .pp-loopmark{margin-top:40px}
article.post .pp-loopmark .pp-sprite rect{fill:#3a4a33}
article.post .pp-loopmark--lit .pp-sprite rect{fill:var(--lime)}
article.post .pp-hero--end{padding-top:56px}
article.post .pp-hero--end h3{font:700 13px var(--px);letter-spacing:2px;color:var(--lime);margin:36px 0 10px}
article.post .pp-definition{max-width:880px;margin:28px 0 18px;padding:26px 30px;background:#fdfcf6;border-left:7px solid var(--lime)}
article.post .pp-definition__label{margin:0 0 12px;font:700 13px var(--px);letter-spacing:2px;color:#56651f}
article.post .pp-definition blockquote{margin:0;font-size:clamp(19px,2vw,26px);line-height:1.5;color:#1d1f1c}
@media (max-width:600px){article.post .pp-definition{padding:20px}
}article.post .pp-open{max-width:720px;padding-left:20px;line-height:1.6;color:#ced0c9}
article.post .pp-play{all:unset;cursor:pointer;display:inline-flex;gap:10px;margin-top:28px;padding:14px 18px;background:var(--lime);color:var(--ink);font:700 13px var(--px);letter-spacing:1.5px;box-shadow:4px 4px 0 #6f8f2a}
article.post .pp-play:focus-visible,article.post .pp-linkbtn:focus-visible{outline:3px solid var(--lime);outline-offset:3px}
article.post .pp-linkbtn{all:unset;cursor:pointer;text-decoration:underline;text-underline-offset:3px;font-weight:600}
article.post .pp-band{padding:72px 5%}
article.post .pp-band--paper{background:var(--paper);color:var(--ink)}
article.post .pp-band--ink{background:#20251d;color:var(--paper)}
article.post .pp-band--ink .pp-intro{color:#ced0c9}
article.post .pp-sprite rect{fill:currentColor}
article.post .pp-sprite rect.acc{fill:var(--lime)}
article.post .pp-band--paper .pp-sprite rect.acc{fill:var(--lime-deep)}
article.post .pp-types{display:flex;flex-wrap:wrap;gap:10px 22px;margin:0 0 24px;font:13px var(--px)}
article.post .pp-type{display:inline-flex;align-items:center;gap:8px}
article.post .pp-roster{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px}
article.post .pp-voice a{display:flex;gap:12px;align-items:center;padding:12px;border:2px solid var(--ink);text-decoration:none;background:#fffdf6;min-height:64px}
article.post .pp-voice a:hover,article.post .pp-voice a:focus-visible{background:var(--lime);outline:none}
article.post .pp-voice b{display:block;font-size:15px}
article.post .pp-voice small{font:12px var(--px);color:var(--muted)}
article.post .pp-voice em{font-style:normal;background:var(--ink);color:var(--paper);padding:0 4px}
article.post .pp-path{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
article.post .pp-step{position:relative;background:var(--lcd);border:3px solid #0b0d0a;box-shadow:0 0 0 3px #3a4a33;padding:18px;display:flex;flex-direction:column;gap:12px}
article.post .pp-step:not(:last-child)::after{content:"▶";position:absolute;right:-16px;top:40px;color:var(--lime);font:14px var(--px);z-index:1}
article.post .pp-step__head{display:flex;justify-content:space-between;align-items:flex-start;color:var(--lime)}
article.post .pp-step__n{font:700 22px var(--px);color:#6f8f2a}
article.post .pp-step h3{font-size:19px;line-height:1.2;color:var(--paper)}
article.post .pp-step__count{margin:0;font:12px var(--px);color:#c8ccc5;display:grid;gap:6px}
article.post .pp-step__count b{color:var(--lime);font-size:15px}
article.post .pp-step__quote{margin:0;font-size:15px;line-height:1.45;color:#e3e5df}
article.post .pp q{quotes:"“" "”"}
article.post .pp-cite{font:12px var(--px);color:#a9ada5}
article.post .pp-band--paper .pp-cite{color:var(--muted)}
article.post .pp details summary{cursor:pointer;font:12px var(--px);letter-spacing:.5px}
article.post .pp details ul{margin:10px 0 0;padding-left:18px;display:grid;gap:8px;font-size:14px;line-height:1.45}
article.post .pp-step details summary{color:var(--lime)}
article.post .pp-cells{display:inline-grid;gap:2px;width:min(100%,230px);height:8px;vertical-align:middle}
article.post .pp-cells i{background:#2f3d2a}
article.post .pp-cells i.on{background:var(--lime)}
article.post .pp-band--paper .pp-cells i{background:#d9d5c8}
article.post .pp-band--paper .pp-cells i.on{background:var(--ink)}
article.post .pp-loop{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) minmax(0,.6fr) minmax(0,.8fr);gap:14px;align-items:start}
article.post .pp-phase{border:2px solid var(--ink);padding:14px;background:#fffdf6}
article.post .pp-phase h3{font:700 13px var(--px);letter-spacing:1.5px;text-transform:uppercase;margin-bottom:12px;display:flex;justify-content:space-between}
article.post .pp-phase--across,article.post .pp-phase--outside{border-style:dashed;background:transparent}
article.post .pp-dots{display:flex;flex-wrap:wrap;gap:4px}
article.post .pp-dot{all:unset;cursor:pointer;width:16px;height:16px;background:var(--ink);box-sizing:border-box}
article.post .pp-dot:hover,article.post .pp-dot:focus-visible{background:var(--lime);outline:2px solid var(--ink);outline-offset:1px}
article.post .pp-phase--outside .pp-dot,article.post .pp-phase--across .pp-dot{background:transparent;border:2px solid var(--ink)}
article.post .pp-readout{margin:18px 0 0;min-height:3.2em;font-size:16px;line-height:1.5;border-left:4px solid var(--lime-deep);padding:6px 0 6px 14px;max-width:900px}
article.post .pp-band--ink .pp-readout{border-color:var(--lime)}
article.post .pp-tag{display:inline-block;font:11px var(--px);letter-spacing:1px;text-transform:uppercase;border:1px solid currentColor;padding:1px 6px;margin-left:6px}
article.post .pp-practices{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
article.post .pp-card details{background:#141b12;border:2px solid #2f3d2a;padding:14px;height:100%;box-sizing:border-box}
article.post .pp-card details[open]{border-color:var(--lime)}
article.post .pp-card summary{list-style:none;display:grid;grid-template-columns:auto 1fr;gap:6px 12px;align-items:start;color:var(--lime)}
article.post .pp-card summary::-webkit-details-marker{display:none}
article.post .pp-card summary:focus-visible{outline:3px solid var(--lime);outline-offset:4px}
article.post .pp-card__n{font:700 12px var(--px);color:#6f8f2a;justify-self:end}
article.post .pp-card__t{grid-column:1/-1;font:600 17px/1.25 system-ui,sans-serif;color:var(--paper)}
article.post .pp-card__m{grid-column:1/-1;display:grid;gap:6px}
article.post .pp-card__m small{font:12px var(--px);color:#c8ccc5}
article.post .pp-card__m b{color:var(--lime)}
article.post .pp-card p{font-size:14px;line-height:1.5;color:#ced0c9}
article.post .pp-quote{margin:0 0 22px;font-size:clamp(22px,2.6vw,34px);line-height:1.2;letter-spacing:-.02em;max-width:820px}
article.post .pp-quote cite{display:block;font:12px var(--px);font-style:normal;margin-top:10px;color:var(--muted)}
article.post .pp-stages{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
article.post .pp-stage{border:2px solid var(--ink);background:#fffdf6;padding:14px;display:flex;flex-direction:column;gap:10px}
article.post .pp-stage__n{margin:0;font:700 12px var(--px);color:var(--muted)}
article.post .pp-stage h3{font:700 15px var(--px);letter-spacing:1px;text-transform:uppercase}
article.post .pp-stage__def{margin:0;font-size:13px;line-height:1.45;color:var(--muted);min-height:5.8em}
article.post .pp-stage__count{margin:0;font:12px var(--px);display:grid;gap:6px}
article.post .pp-phasebar{display:grid;gap:4px}
article.post .pp-phasebar__row{display:grid;grid-template-columns:56px 1fr 18px;gap:6px;align-items:center;font:11px var(--px)}
article.post .pp-phasebar__track{height:8px;background:#e4e0d4}
article.post .pp-phasebar__track i{display:block;height:100%;background:var(--ink);border-radius:0 4px 4px 0}
article.post .pp-callout{margin:24px 0 0;padding:18px 20px;background:var(--ink);color:var(--paper);font-size:17px;line-height:1.55;max-width:900px}
article.post .pp-callout b{color:var(--lime)}
article.post .pp-filters{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 18px}
article.post .pp-filters button{all:unset;cursor:pointer;font:12px var(--px);padding:6px 10px;border:1px solid #4a5a43;color:#c8ccc5}
article.post .pp-filters button[aria-pressed="true"]{background:var(--lime);color:var(--ink);border-color:var(--lime)}
article.post .pp-filters button:focus-visible{outline:2px solid var(--lime);outline-offset:2px}
article.post .pp-matrix-wrap{overflow-x:auto;padding-bottom:6px}
article.post .pp-matrix{display:grid;grid-template-columns:minmax(170px,230px) repeat(var(--cols),22px);gap:3px;min-width:max-content;padding-right:96px}
article.post .pp-m__col{position:relative;height:92px}
article.post .pp-m__col span{position:absolute;left:50%;bottom:4px;transform-origin:0 100%;transform:rotate(-45deg);font:11px var(--px);color:#c8ccc5;white-space:nowrap}
article.post .pp-m__row{font-size:13px;line-height:1.2;color:#e3e5df;align-self:center;padding-right:8px}
article.post .pp-m__cell{width:22px;height:22px;background:#2a3326;box-sizing:border-box}
article.post button.pp-m__cell{all:unset;cursor:pointer;width:22px;height:22px;background:var(--lime);box-sizing:border-box}
article.post button.pp-m__cell:hover,article.post button.pp-m__cell:focus-visible{outline:2px solid var(--paper);outline-offset:1px}
article.post .pp-matrix .is-dim{opacity:.15}
article.post .pp-matrix .is-pick span{color:var(--lime);font-weight:700}
article.post .pp-legend{display:flex;gap:18px;flex-wrap:wrap;margin:0 0 18px;font:13px var(--px)}
article.post .pp-legend__item{display:inline-flex;align-items:center;gap:8px}
article.post .pp-legend__item i{width:14px;height:14px;display:inline-block}
article.post .d-user-design{background:var(--d-user)}
article.post .d-product{background:var(--d-product)}
article.post .d-tech{background:var(--d-tech)}
article.post .pp-disc{display:grid;gap:10px;max-width:900px}
article.post .pp-disc__row{display:grid;grid-template-columns:minmax(150px,260px) 1fr 92px;gap:12px;align-items:center}
article.post .pp-disc__t{font-size:14px}
article.post .pp-disc__bar{display:flex;gap:2px;height:18px}
article.post .pp-disc__bar i{display:block;height:100%}
article.post .pp-disc__bar i:first-child{border-radius:4px 0 0 4px}
article.post .pp-disc__bar i:last-child{border-radius:0 4px 4px 0}
article.post .pp-disc__top{font:12px var(--px);color:var(--muted)}
article.post .pp-tensions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
article.post .pp-tension{background:var(--lcd);border:3px solid #0b0d0a;box-shadow:0 0 0 3px #3a4a33;padding:18px}
article.post .pp-tension h3{font:700 13px var(--px);letter-spacing:2px;text-transform:uppercase;color:var(--lime);margin-bottom:14px}
article.post .pp-tension p{margin:0;font-size:15px;line-height:1.45}
article.post .pp-tension .pp-vs{font:700 12px var(--px);color:#6f8f2a;margin:10px 0}
article.post .pp-tension .pp-tension__note{margin-top:16px;color:#a9ada5;font-size:14px}
article.post .pp-method p{max-width:820px;line-height:1.6}
article.post .pp-table{border-collapse:collapse;margin-top:24px;font-size:14px;width:100%;max-width:960px}
article.post .pp-table caption{text-align:left;font:12px var(--px);margin-bottom:8px;color:var(--muted)}
article.post .pp-table th,article.post .pp-table td{border-bottom:1px solid var(--line);padding:8px 10px 8px 0;text-align:left;vertical-align:top}
article.post .pp-table td:nth-child(2),article.post .pp-table td:nth-child(3){font-family:var(--px)}
@media (max-width:900px){article.post .pp-path,article.post .pp-tensions{grid-template-columns:1fr}
article.post .pp-step:not(:last-child)::after{content:"▼";right:auto;left:50%;top:auto;bottom:-18px}
article.post .pp-loop{grid-template-columns:1fr}
article.post .pp-stages{grid-template-columns:1fr 1fr}

}@media (max-width:560px){article.post .pp-stages{grid-template-columns:1fr}
article.post .pp-disc__row{grid-template-columns:1fr 70px}
article.post .pp-disc__t{grid-column:1/-1}
article.post .pp-hero,article.post .pp-band{padding-left:16px;padding-right:16px}

}@media (prefers-reduced-motion:reduce){article.post .pp *{transition:none!important}
}@media (forced-colors:active){article.post .pp-m__cell.on,article.post .pp-dot{forced-color-adjust:none;border:1px solid CanvasText}
}article.post .pp{display:block;max-width:100vw;overflow-x:clip}
article.post .pp>section,article.post .pp-inner,article.post .pp-path>li,article.post .pp-loop>div,article.post .pp-stages>article,article.post .pp-tensions>article{min-width:0}
article.post .pp-matrix-wrap{max-width:100%}
article.post .visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
article.post .pp-why{--c:var(--lime);width:22px;height:22px;padding:0;border:2px solid var(--c);border-radius:0;background:#0b0d0a;color:var(--c);font:700 12px/1 var(--px);cursor:pointer;box-shadow:2px 2px 0 #000;flex:none}
article.post .pp-why:hover,article.post .pp-why[aria-expanded="true"]{background:var(--c);color:#0b0d0a}
article.post .pp-why:focus-visible,article.post .pp-why__ok:focus-visible{outline:3px solid var(--lime);outline-offset:2px}
article.post .pp-why__box{--c:var(--lime);position:absolute;z-index:5;left:6px;right:6px;top:52px;min-width:220px;padding:12px 14px 10px;background:#0b0d0a;color:var(--paper);font:12px/1.55 var(--px);text-align:left;
  border:3px solid var(--c);box-shadow:0 0 0 3px #0b0d0a,0 0 0 6px var(--c),6px 6px 0 6px #000;
  background-image:repeating-linear-gradient(0deg,#ffffff07 0 2px,transparent 2px 4px)}
article.post .pp-why__box[hidden]{display:none}
article.post .pp-why__title{margin:0 0 6px;color:var(--c);font-weight:700;letter-spacing:.12em;font-size:11px}
article.post .pp-why__text{margin:0}
article.post .pp-why__ok{display:block;margin:8px 0 0 auto;padding:2px 6px;border:0;background:none;color:var(--c);font:700 11px/1 var(--px);letter-spacing:.1em;cursor:pointer;animation:pp-blink 1s steps(2,start) infinite}

@keyframes pp-blink{to{visibility:hidden}}@media (prefers-reduced-motion:reduce){article.post .pp-why__ok{animation:none}
}article.post .pp-card{position:relative}
article.post .pp-card>.pp-why{position:absolute;top:14px;right:44px}
article.post .pp-step__head{gap:10px}
article.post .pp-step__head .pp-why{margin-left:auto;order:2}
article.post .pp-step__head .pp-step__n{order:3}
article.post .pp-type{position:relative}
article.post .pp-type .pp-why{margin-left:2px;width:18px;height:18px;font-size:11px}
article.post .pp-type .pp-why__box{left:0;right:auto;width:260px;top:30px}
article.post .pp-loopmark{position:relative;display:flex;align-items:flex-start;gap:10px;max-width:420px}
article.post .pp-loopmark .pp-why__box{top:72px;left:0;right:auto;width:300px}
article.post .pp-loop{display:block}
article.post .pp-loop__legend{justify-content:center;margin-bottom:8px}
article.post .pp-legend__note{color:var(--muted)}
article.post .pp-loop__fig{margin:0 auto;max-width:860px;text-align:center}
article.post .pp-loop__svg{display:block;width:100%;height:auto;overflow:visible}
article.post .pp-loop__svg .pp-sq rect{shape-rendering:crispEdges}
article.post .pp-orbit{fill:none;stroke:#17191833;stroke-width:1.5;stroke-dasharray:2 6}
article.post .pp-sq--move .pp-sq__frame,article.post .pp-sq--orbit .pp-sq__frame{stroke:var(--paper);stroke-width:2}
article.post .pp-sq{cursor:pointer;outline:none}
article.post .pp-sq__frame{fill:none;stroke:var(--paper);stroke-width:1.5}
article.post .pp-sq:is(:hover,article.post :focus-visible,article.post .is-on) .pp-sq__frame{stroke:var(--ink);stroke-width:3}
article.post .pp-loop__label{font:700 13px var(--px);letter-spacing:2px;fill:var(--ink);stroke:var(--paper);stroke-width:6px;paint-order:stroke;stroke-linejoin:round}
article.post .pp-loop__fig figcaption{font:12px var(--px);color:var(--muted);margin-top:6px}
article.post .pp-loop__others{display:grid;grid-template-columns:1fr 1fr;gap:14px;max-width:860px;margin:22px auto 0}
@media (max-width:560px){article.post .pp-loop__others{grid-template-columns:1fr}
article.post .pp-loop__label{font-size:18px}
}article.post .pp-sq__empty{fill:none;stroke:#17191840;stroke-width:1.5;stroke-dasharray:3 2}
article.post .pp-band--grid{background:var(--ink);color:var(--paper);background-image:radial-gradient(#ffffff0d 1px,transparent 1px);background-size:6px 6px}
article.post .pp-band--grid .pp-intro{color:#ced0c9}
article.post .pp-band--grid .pp-linkbtn{color:var(--lime)}
article.post .pp-band--grid .pp-legend__note,article.post .pp-band--grid .pp-loop__fig figcaption,article.post .pp-band--grid .pp-cite{color:#a9ada5}
article.post .pp-band--grid .pp-readout{border-color:var(--lime)}
article.post .pp-band--grid .pp-sq__frame{stroke:var(--ink)}
article.post .pp-band--grid .pp-sq:is(:hover,article.post :focus-visible,article.post .is-on) .pp-sq__frame{stroke:var(--lime)}
article.post .pp-band--grid .pp-sq--move .pp-sq__frame,article.post .pp-band--grid .pp-sq--orbit .pp-sq__frame{stroke:var(--ink)}
article.post .pp-band--grid .pp-sq__empty{stroke:#f3f0e740}
article.post .pp-band--grid .pp-orbit{stroke:#f3f0e733}
article.post .pp-band--grid .pp-loop__label{fill:var(--lime);stroke:var(--ink)}
article.post .pp-loop__svg .pp-sq .pp-sq__base{fill:var(--ink)}
article.post .pp-band--grid .pp-loop__svg .pp-sq .pp-sq__base{fill:var(--paper)}
article.post .pp-loop__svg .pp-sq .pp-sq__strip{fill:none;transition:fill .15s steps(2)}
article.post .pp-loop__svg .pp-sq:is(:hover,article.post :focus-visible,article.post .is-on) .pp-sq__strip.d-user-design{fill:var(--d-user)}
article.post .pp-loop__svg .pp-sq:is(:hover,article.post :focus-visible,article.post .is-on) .pp-sq__strip.d-product{fill:var(--d-product)}
article.post .pp-loop__svg .pp-sq:is(:hover,article.post :focus-visible,article.post .is-on) .pp-sq__strip.d-tech{fill:var(--d-tech)}
article.post .pp-m__col span{cursor:default}
article.post .pp-m__cell.is-col{background:#4f5f47}
article.post button.pp-m__cell.is-col{background:var(--lime);box-shadow:0 0 0 2px #9a9e96}
article.post .pp-m__col.is-col span{color:var(--lime);font-weight:700}
article.post .pp-m__col.is-col::after{content:"";position:absolute;left:50%;bottom:0;width:2px;height:6px;background:var(--lime)}
article.post .pp-band--grid .pp-sq__empty{stroke:none;fill:#f3f0e72e}
article.post .pp-loop__label{font-size:20px}
article.post .pp-loop__svg .pp-sq:is(:hover,article.post :focus-visible,article.post .is-on) .pp-sq__frame,article.post .pp-band--grid .pp-loop__svg .pp-sq:is(:hover,article.post :focus-visible,article.post .is-on) .pp-sq__frame{stroke:#9a9e96;stroke-width:1}
article.post .pp-chip{display:inline-flex;align-items:center;gap:6px;font:12px var(--px);margin-left:8px;white-space:nowrap}
article.post .pp-chip i{width:12px;height:12px;display:inline-block}
article.post .pp-loop__label{font-size:17px}
article.post .pp-own{display:grid;gap:6px;max-width:720px;margin-bottom:28px}
article.post .pp-own__head,article.post .pp-own__row{display:grid;grid-template-columns:minmax(120px,170px) 1fr 14px 1fr 14px 1fr 14px 1fr;gap:6px;align-items:center}
article.post .pp-own__head span{font:11px var(--px);letter-spacing:1px;text-transform:uppercase;color:var(--muted);text-align:center}
article.post .pp-own__head span:first-child{text-align:left}
article.post .pp-own__head i,article.post .pp-own__row i{font:12px var(--px);color:var(--muted);text-align:center;font-style:normal}
article.post .pp-own__src{font:13px var(--px)}
article.post .pp-own__src b{color:var(--lime-deep)}
article.post .pp-own__step{height:16px;background:#e4e0d4}
article.post .pp-own__step.on{background:var(--ink)}
article.post .pp-own__row.is-full .pp-own__step.on{background:var(--lime-deep)}
article.post .pp-own__h{font:700 13px var(--px);letter-spacing:2px;text-transform:uppercase;margin:0 0 12px}
article.post .pp-own__quotes{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}
article.post .pp-own__quotes p{margin:0;padding:14px;border:2px solid var(--ink);background:#fffdf6;font-size:15px;line-height:1.45}
@media (max-width:560px){article.post .pp-own__head,article.post .pp-own__row{grid-template-columns:96px 1fr 8px 1fr 8px 1fr 8px 1fr;gap:4px}
article.post .pp-own__src{font-size:11px}
}article.post .pp-own button.pp-own__step{all:unset;box-sizing:border-box;height:16px;cursor:pointer;background:var(--ink)}
article.post .pp-own__row.is-full button.pp-own__step{background:var(--lime-deep)}
article.post .pp-own__row.is-row .pp-own__src{font-weight:700}
article.post .pp-own__row.is-row{background:#17191812}
article.post .pp-own .pp-own__step.is-col{outline:2px solid #9a9e96;outline-offset:1px}
article.post .pp-own button.pp-own__step:hover,article.post .pp-own button.pp-own__step:focus-visible{outline:3px solid var(--ink);outline-offset:2px}
article.post .pp-own__quotes p.is-hit{border-color:var(--lime-deep);box-shadow:4px 4px 0 var(--lime-deep)}
article.post .pp-own__readout{margin:-12px 0 28px}
article.post .pp-next{margin:28px 0 0;font:700 14px var(--px);letter-spacing:1px}
article.post .pp-next a{color:var(--lime);text-decoration:underline;text-underline-offset:4px}
article.post .pp-band--paper .pp-next a{color:var(--ink)}
article.post .pp-disc__seg{all:unset;display:block;height:100%;cursor:pointer;box-sizing:border-box}
article.post .pp-disc__seg.d-user-design{background:var(--d-user)}
article.post .pp-disc__seg.d-product{background:var(--d-product)}
article.post .pp-disc__seg.d-tech{background:var(--d-tech)}
article.post .pp-disc__bar .pp-disc__seg:first-child{border-radius:4px 0 0 4px}
article.post .pp-disc__bar .pp-disc__seg:last-child{border-radius:0 4px 4px 0}
article.post .pp-disc__seg:hover,article.post .pp-disc__seg:focus-visible,article.post .pp-disc__seg.is-on{outline:3px solid var(--ink);outline-offset:2px}
article.post #pp-disc-readout{max-width:900px}
article.post .pp-m__row,article.post .pp-m__corner{position:sticky;left:0;z-index:2;background:#20251d;box-shadow:6px 0 6px -4px #0008}
article.post .pp-m__row{padding:2px 10px 2px 0}
@media (max-width:560px){article.post .pp-matrix{grid-template-columns:minmax(120px,140px) repeat(var(--cols),22px)}
article.post .pp-m__row{font-size:12px}
}article.post .pp-m__row{align-self:stretch;display:flex;align-items:center}
article.post .pp-voice details{border:2px solid var(--ink);background:#fffdf6;height:100%;box-sizing:border-box}
article.post .pp-voice summary{list-style:none;display:flex;gap:12px;align-items:center;padding:12px;min-height:64px;cursor:pointer}
article.post .pp-voice summary::-webkit-details-marker{display:none}
article.post .pp-voice summary:hover,article.post .pp-voice summary:focus-visible{background:var(--lime);outline:none}
article.post .pp-voice details[open] summary{background:var(--lime)}
article.post .pp-voice .pp-voice__n{display:block;margin-top:2px}
article.post .pp-voice details ul{margin:0;padding:10px 14px 4px 30px;display:grid;gap:8px;font-size:14px;line-height:1.45}
article.post .pp-voice__src{display:inline-block;margin:6px 14px 12px;font:700 12px var(--px);color:var(--ink)}
article.post .pp-roster{align-items:start}
article.post .pp-voice details{height:auto}
article.post .pp-arcade{--a-black:#000;--a-ink:#e8e8e8;--a-dim:#8a8a8a;--a-yellow:#e8e05c;--a-green:#5cc85c;--a-blue:#4c70d8;
  --a-pixel:'Press Start 2P',ui-monospace,monospace;--a-term:'VT323',ui-monospace,monospace;
  background:repeating-linear-gradient(90deg,#2a1a0e 0 6px,#24160c 6px 12px);padding:56px 5%}
article.post .pp-arcade__screen{position:relative;overflow:hidden;background:var(--a-black);color:var(--a-ink);border:10px solid #111;border-radius:18px;
  box-shadow:inset 0 0 80px rgba(76,112,216,.15),0 0 0 3px #3a2a1a,0 20px 40px rgba(0,0,0,.6);padding:clamp(18px,3vw,36px)}
article.post .pp-arcade__crt{pointer-events:none;position:absolute;inset:0;z-index:2;
  background:repeating-linear-gradient(0deg,rgba(0,0,0,.35) 0 1px,transparent 1px 3px),radial-gradient(ellipse at center,transparent 60%,rgba(0,0,0,.55) 100%)}
article.post .pp-arcade .label{font:10px var(--a-pixel);letter-spacing:1px;color:var(--a-dim);opacity:1;text-transform:uppercase}
article.post .pp-arcade h2{font:clamp(16px,2.4vw,26px)/1.4 var(--a-pixel);letter-spacing:0;text-transform:uppercase;color:var(--a-yellow);text-shadow:4px 4px 0 #8c5c2c}
article.post .pp-arcade .pp-intro{font:clamp(20px,1.9vw,24px)/1.15 var(--a-term);color:var(--a-ink)}
article.post .pp-arcade .pp-legend{font:9px var(--a-pixel);text-transform:uppercase;color:var(--a-ink);gap:18px}
article.post .pp-arcade .pp-legend i{width:14px;height:14px;border-radius:0;box-shadow:inset -3px -3px 0 rgba(0,0,0,.3),inset 3px 3px 0 rgba(255,255,255,.25)}
article.post .pp-arcade .pp-legend .d-user-design{background:var(--a-yellow)}
article.post .pp-arcade .pp-legend .d-product{background:var(--a-green)}
article.post .pp-arcade .pp-legend .d-tech{background:var(--a-blue)}
article.post .pp-arcade__note{font:20px/1.15 var(--a-term);color:var(--a-dim);margin:10px 0 26px}
article.post .pp-arcade .pp-disc{gap:14px;max-width:none}
article.post .pp-arcade .pp-disc__row{grid-template-columns:minmax(150px,240px) 1fr 104px;gap:16px;padding-bottom:12px;border-bottom:2px dashed #222}
article.post .pp-arcade .pp-disc__t{font:22px/1 var(--a-term);color:var(--a-ink)}
article.post .pp-arcade .pp-disc__bar{height:auto;flex-wrap:wrap;gap:10px;align-items:center}
article.post .pp-arcade .pp-disc__bar .pp-disc__seg{flex:none;display:flex;flex-wrap:wrap;gap:3px;height:auto;padding:3px;background:none;border-radius:0}
article.post .pp-arcade .pp-brick{display:block;width:18px;height:18px;background:var(--c);box-shadow:inset -4px -4px 0 rgba(0,0,0,.3),inset 4px 4px 0 rgba(255,255,255,.25)}
article.post .pp-arcade .pp-disc__seg.d-user-design{--c:var(--a-yellow)}
article.post .pp-arcade .pp-disc__seg.d-product{--c:var(--a-green)}
article.post .pp-arcade .pp-disc__seg.d-tech{--c:var(--a-blue)}
article.post .pp-arcade .pp-disc__seg:hover,article.post .pp-arcade .pp-disc__seg:focus-visible,article.post .pp-arcade .pp-disc__seg.is-on{outline:2px dashed var(--a-yellow);outline-offset:2px}
article.post .pp-arcade .pp-disc__seg.is-on .pp-brick{animation:pp-arcade-blink .8s steps(1) 2}

@keyframes pp-arcade-blink{50%{opacity:.35}}article.post .pp-arcade .pp-disc__top{font:9px/1.4 var(--a-pixel);text-transform:uppercase;color:var(--a-dim)}
article.post .pp-arcade .pp-readout{position:relative;z-index:3;margin-top:24px;max-width:none;background:var(--a-black);color:var(--a-ink);border:4px solid var(--a-blue);border-radius:0;padding:14px 16px;font:21px/1.2 var(--a-term)}
article.post .pp-arcade .pp-readout::before{content:'\25B6\FE0E  ';color:var(--a-yellow)}
article.post .pp-arcade .pp-readout .pp-tag{font:9px var(--a-pixel);text-transform:uppercase;background:var(--a-yellow);color:#000;border-radius:0}
article.post .pp-arcade .pp-readout .pp-cite,article.post .pp-arcade .pp-readout .pp-cite a{color:#4cc8d8}
@media (max-width:640px){article.post .pp-arcade .pp-disc__row{grid-template-columns:1fr 90px}
article.post .pp-arcade .pp-disc__t{grid-column:1/-1}
article.post .pp-arcade .pp-brick{width:14px;height:14px}
}@media (prefers-reduced-motion:reduce){article.post .pp-arcade .pp-disc__seg.is-on .pp-brick{animation:none}
}

/* Placing the visuals inside the article */
article.post .pe-vis{max-width:980px;margin:32px auto;border-radius:0}
article.post .pe-vis.pp-band{padding:28px clamp(16px,3vw,32px)}
article.post .pe-vis--readout{max-width:900px;margin:-16px auto 32px}
article.post .pe-vis .pp-loop__svg{max-width:100%}
article.post .pe-vis > p.label{color:inherit;font:700 12px ui-monospace,Menlo,monospace;letter-spacing:2px;margin:0 0 14px;max-width:none}
article.post .pe-vis--details{display:block;max-width:980px;margin:24px auto 32px;border:2px solid #171918}
article.post .pe-vis--details > summary{cursor:pointer;padding:14px 18px;font:700 13px ui-monospace,Menlo,monospace;letter-spacing:1px;background:#f3f0e7}
article.post .pe-vis--details > .pp-band{padding:24px clamp(16px,3vw,32px)}
article.post .pp-voice details ul q{font-size:14px;line-height:1.45;color:#171918}
article.post .pp-band--ink p,article.post .pp-band--grid p{color:inherit}
/* Voice quotes inside the text: the roster card with the quote under it */
article.post .reading-section > .pp-vq{max-width:680px;margin:28px auto}
article.post .pp-vq-row{max-width:980px;margin:28px auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;align-items:start}
article.post .pp-vq{margin:0;border:2px solid #171918;background:#fffdf6}
article.post .pp-vq__head{display:flex;gap:12px;align-items:center;padding:12px;border-bottom:2px solid #171918;background:#f3f0e7}
article.post .pp-vq__head b{display:block;font:700 15px ui-monospace,Menlo,monospace}
article.post .pp-vq__head small{font:12px ui-monospace,Menlo,monospace;color:#545850}
article.post .pp-vq__head em{font-style:normal;background:#171918;color:#fffdf6;padding:0 4px}
article.post .pp-vq blockquote{padding:14px 16px 4px;font-size:19px;line-height:1.5;letter-spacing:0}
article.post .pp-vq blockquote + blockquote{padding-top:6px}
article.post .pp-vq blockquote::before{content:'“'}
article.post .pp-vq blockquote::after{content:'”'}
article.post .pp-vq figcaption{display:flex;flex-wrap:wrap;gap:6px 18px;padding:8px 16px 12px;font:700 12px ui-monospace,Menlo,monospace}
article.post .pp-vq figcaption a{color:#171918}
article.post .pp-vq--other{border-style:dashed}
article.post .pp-vq--other .pp-vq__head{background:#fffdf6}
article.post .pp-voice:target details{outline:3px solid #4f6a1c;outline-offset:2px}
/* "Why this pic?" boxes: dark box, light text, on any band (article p rules would paint them dark) */
article.post .pp .pp-why__box p.pp-why__text{color:#f3f0e7;font-size:13px;line-height:1.5;max-width:none;margin:0}
article.post .pp .pp-why__box p.pp-why__title{color:#d4ed98;font-size:11px;max-width:none}
@media (max-width:560px){article.post .pp-own__head span{font-size:9px;letter-spacing:0;word-break:keep-all;overflow-wrap:normal;white-space:nowrap}}
/* Chapter 5: my path, step by step, and the stated mix of each role */
article.post .pp-mine__ex{list-style:none;margin:4px 0 0;padding:0;display:grid;gap:8px}
article.post .pp-mine__ex li{display:block;padding:0;border:0;background:none;font-size:13px;line-height:1.45;color:#383b36}
article.post .pp-tally .pp-mine__ex b{display:block;font:700 11px ui-monospace,Menlo,monospace;letter-spacing:.5px;color:#171918;margin-bottom:2px}
article.post .pp-mix{display:grid;gap:8px}
article.post .pp-mix__row{display:grid;grid-template-columns:minmax(150px,240px) 1fr;gap:12px;align-items:center}
article.post .pp-mix__t b{display:block;font:700 14px ui-monospace,Menlo,monospace}
article.post .pp-mix__t small{font:11px ui-monospace,Menlo,monospace;color:#545850}
article.post .pp-mix__bar{display:flex;gap:2px;height:22px}
article.post .pp-mix__bar i{display:flex;align-items:center;justify-content:center;font:700 11px ui-monospace,Menlo,monospace;font-style:normal;color:#171918;min-width:4px}
article.post .m-tech{background:#6084d0}article.post .pp-mix__bar .m-tech{color:#fff}
article.post .m-design{background:#edcd42}
article.post .m-business{background:#8fae54}
article.post p.pp-mix__legend{display:flex;flex-wrap:wrap;gap:6px 16px;margin:0 0 12px;max-width:none;font:12px ui-monospace,Menlo,monospace}
article.post .pp-mix__legend i{display:inline-block;width:12px;height:12px;margin-right:6px;vertical-align:-1px}
article.post p.pp-mix__note{margin:12px 0 0;max-width:none;font-size:13px;line-height:1.5;color:#545850}
@media (max-width:600px){article.post .pp-mix__row{grid-template-columns:1fr;gap:4px}}
/* The series questions: where this article sits among the six */
article.post .pp-qs{max-width:980px;margin:32px auto}
article.post .pp-qs > p.label{font:700 12px ui-monospace,Menlo,monospace;letter-spacing:2px;margin:0 0 12px;max-width:none}
article.post .pp-qs__track{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(6,1fr);gap:8px}
article.post .pp-qs__track li{position:relative}
article.post .pp-qs__track li + li::before{content:'';position:absolute;left:-8px;top:50%;width:8px;height:2px;background:#171918}
article.post .pp-qs__track a,article.post .pp-qs__track span{display:flex;flex-direction:column;gap:4px;padding:10px 12px;border:2px dashed #17191866;background:#fffdf6;color:#545850;font:600 14px/1.2 ui-monospace,Menlo,monospace;text-decoration:none;height:100%;box-sizing:border-box}
article.post .pp-qs__track b{font:700 20px ui-monospace,Menlo,monospace}
article.post .pp-qs__track li.is-here a{border:2px solid #171918;background:#d4ed98;color:#171918}
article.post .pp-qs__track a:hover,article.post .pp-qs__track a:focus-visible{outline:3px solid #171918;outline-offset:2px}
article.post .pp-qs__key{display:flex;gap:8px 16px;align-items:center;flex-wrap:wrap;margin:10px 0 0;font:12px ui-monospace,Menlo,monospace;color:#545850;max-width:none}
article.post .pp-qs__key i{display:inline-block;width:14px;height:14px;border:2px dashed #17191866;background:#fffdf6;margin-right:-8px}
article.post .pp-qs__key i.is-here{border:2px solid #171918;background:#d4ed98}
article.post .pp-qs .about-question-list{max-width:none;margin-top:18px;grid-template-columns:repeat(3,1fr)}
article.post .pp-qs .about-question{border-left-color:#4f6a1c}
article.post .pp-qs .about-question-list .about-question p{font-size:clamp(20px,2vw,23px)}
article.post .pp-qs__go{display:inline-block;margin-top:10px;font:700 12px ui-monospace,Menlo,monospace;color:#171918}
@media (max-width:800px){article.post .pp-qs__track{grid-template-columns:repeat(3,1fr)}article.post .pp-qs__track li:nth-child(4)::before{display:none}article.post .pp-qs .about-question-list{grid-template-columns:1fr}}
/* The path counted in sources: the numbers the text cites, as a strip */
article.post .pp-tally{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:10px;counter-reset:st}
article.post .pp-tally > li{display:grid;gap:8px;align-content:start;padding:12px;border:2px solid #171918;background:#fffdf6;position:relative}
article.post .pp-tally > li + li::before{content:'▸';position:absolute;left:-11px;top:18px;font-size:12px}
article.post .pp-tally__l{font-size:15px;line-height:1.3;font-weight:600}
article.post .pp-tally .pp-cells{width:100%}
article.post .pp-tally b{font:700 26px ui-monospace,Menlo,monospace;line-height:1}
article.post .pp-tally b small{font-size:12px;font-weight:400;color:#545850}
article.post .pp-tally__from{font:700 10px ui-monospace,Menlo,monospace;letter-spacing:1px;text-transform:uppercase;color:#545850;margin-top:4px}
article.post .pp-tally__ks{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:4px}
article.post .pp-tally__ks li{display:inline-block;padding:2px 6px;border:1px solid #171918;background:#f3f0e7;font:12px/1.35 ui-monospace,Menlo,monospace}

article.post p.pp-tally__support{margin:14px 0 0;max-width:none;font-size:14px;line-height:1.5;color:#383b36}
@media (max-width:700px){article.post .pp-tally{grid-template-columns:1fr 1fr}article.post .pp-tally > li + li::before{display:none}}
