.post-showcase{margin-top:2.4rem}.osp{flex-direction:column;gap:1.4rem;display:flex}.osp-terminal{background:var(--night);border:1px solid #fbf6ef1f;border-radius:16px;overflow:hidden;box-shadow:0 20px 48px -16px #30433366}.osp-terminal-bar{background:#00000047;border-bottom:1px solid #fbf6ef14;align-items:center;gap:.75rem;padding:.7rem 1rem;display:flex}.osp-dots{gap:.35rem;display:inline-flex}.osp-dots i{background:#fbf6ef33;border-radius:50%;width:10px;height:10px}.osp-dots i:first-child{background:#e05252}.osp-dots i:nth-child(2){background:#e0b252}.osp-dots i:nth-child(3){background:#52c08a}.osp-terminal-title{font-family:var(--mono);color:#fbf6ef99;font-size:.72rem}.osp-terminal-body{padding:1.1rem 1.2rem}.osp-line{font-family:var(--mono);color:var(--cream);font-size:.8rem;line-height:1.6}.osp-line.dim{color:#fbf6ef80}.osp-line.summary{color:var(--cream);margin-top:.4rem;font-weight:600}.osp-row{font-family:var(--mono);border-bottom:1px solid #fbf6ef0f;grid-template-columns:3.5rem 6.5rem 8.5rem 1fr;align-items:center;gap:.6rem;padding:.42rem 0;font-size:.74rem;display:grid}.osp-type{color:#fbf6ef99}.osp-amount{color:var(--cream);font-weight:600}.osp-status{letter-spacing:.04em;font-weight:700}.osp-rule{color:#fbf6ef6b;font-size:.68rem}.tone-pass .osp-status{color:#4ade80}.tone-warn .osp-status{color:#fbbf24}.tone-hold .osp-status{color:#ff8b7b}.tone-aid .osp-status{color:#8ecdf5}.osp-note{font-family:var(--mono);color:#fbf6efad;margin-top:.7rem;font-size:.74rem}.osp-chain{font-family:var(--mono);border-top:1px dashed #fbf6ef1f;align-items:center;gap:.6rem;margin-top:.9rem;padding-top:.8rem;font-size:.68rem;display:flex}.osp-chain-tag{color:var(--gold);letter-spacing:.12em;font-weight:700}.osp-chain-info{color:#fbf6ef8c}.osp-stats{background:var(--card);border:1px solid var(--line);border-radius:14px;justify-content:space-around;align-items:center;gap:1rem;padding:1.1rem 1.2rem;display:flex}.osp-stat{text-align:center;flex-direction:column;align-items:center;gap:.2rem;display:flex}.osp-stat-num{font-family:var(--display);color:var(--ink);font-size:1.5rem;font-weight:800;line-height:1}.osp-stat-label{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-size:.62rem}.osp-stat-sep{background:var(--line-strong);width:1px;height:26px}.osp-arch{border:1px solid var(--line);background:#3043330d;border-radius:18px;padding:1.7rem 1.5rem}.osp-arch-head{margin-bottom:1.5rem}.osp-arch-pill{font-family:var(--mono);color:var(--teal);text-transform:uppercase;letter-spacing:.04em;background:#1e5a5014;border:1px solid #1e5a5033;border-radius:999px;margin-bottom:.4rem;padding:.2rem .6rem;font-size:.68rem;font-weight:700;display:inline-block}.osp-arch-title{font-family:var(--display);color:var(--ink);margin:.2rem 0 .4rem;font-size:1.2rem;font-weight:700}.osp-arch-sub{color:var(--muted);margin:0;font-size:.85rem}.osp-steps{-webkit-overflow-scrolling:touch;align-items:stretch;gap:.8rem;margin-bottom:1.5rem;padding-bottom:.3rem;display:flex;overflow-x:auto}.osp-step-wrap{flex:1;align-items:stretch;gap:.8rem;min-width:200px;display:flex}.osp-step{background:var(--cream);border:1px solid var(--line);cursor:pointer;text-align:left;border-radius:14px;flex:1;align-items:center;gap:.75rem;min-width:0;padding:.85rem 1.1rem;transition:all .2s;display:flex}.osp-step:hover{border-color:var(--line-strong);background:#fff;transform:translateY(-2px)}.osp-step.active{background:var(--night);border-color:var(--night);box-shadow:0 8px 24px -8px #1e2a2166}.osp-step-num{font-family:var(--mono);color:var(--ink);background:#30433314;border-radius:8px;flex-shrink:0;place-items:center;width:28px;height:28px;font-size:.85rem;font-weight:800;transition:all .2s;display:grid}.osp-step.active .osp-step-num{background:var(--gold);color:var(--night)}.osp-step-meta{flex-direction:column;gap:.2rem;min-width:0;display:flex}.osp-step-title{color:var(--ink);font-size:.85rem;font-weight:700;transition:color .2s}.osp-step.active .osp-step-title{color:#fff}.osp-step-tag{font-family:var(--mono);font-size:.65rem;font-weight:600;transition:color .2s}.osp-step-tag.tone-ai{color:var(--coral)}.osp-step-tag.tone-php{color:var(--teal)}.osp-step-tag.tone-chain{color:var(--gold)}.osp-step.active .osp-step-tag.tone-ai{color:#ff8b7b}.osp-step.active .osp-step-tag.tone-php{color:#4ade80}.osp-step.active .osp-step-tag.tone-chain{color:#fbbf24}.osp-step-connector{background:var(--line-strong);flex-shrink:0;align-self:center;width:20px;height:2px}.title-short{display:none}.title-full{display:inline}.osp-stage-panel{background:var(--cream);border:1px solid var(--line-strong);border-radius:16px;padding:1.6rem;animation:.25s osp-fade;box-shadow:0 10px 30px -10px #3043331a}@keyframes osp-fade{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.osp-stage-grid{grid-template-columns:1.15fr .85fr;align-items:stretch;gap:1.8rem;display:grid}.osp-stage-info{flex-direction:column;justify-content:space-between;display:flex}.osp-stage-badge{font-family:var(--mono);text-transform:uppercase;color:var(--muted);letter-spacing:.04em;margin-bottom:.4rem;font-size:.68rem;font-weight:700}.osp-stage-info h5{font-family:var(--display);color:var(--ink);margin:0 0 .6rem;font-size:1.2rem;font-weight:700}.osp-stage-info p{color:var(--ink-2);margin:0 0 1.2rem;font-size:.88rem;line-height:1.6}.osp-stage-specs{border:1px solid var(--line);background:#f8eddcb3;border-radius:12px;grid-template-columns:1fr 1fr;gap:.8rem;padding:.85rem 1rem;display:grid}.osp-spec{flex-direction:column;gap:.2rem;display:flex}.osp-spec b{font-family:var(--mono);text-transform:uppercase;color:var(--muted);font-size:.65rem}.osp-spec span{color:var(--ink);font-size:.76rem;font-weight:600;line-height:1.35}.osp-stage-code{background:var(--night);border:1px solid #fbf6ef26;border-radius:14px;flex-direction:column;display:flex;overflow:hidden}.osp-stage-code-bar{font-family:var(--mono);color:#fbf6efb3;background:#0000004d;border-bottom:1px solid #fbf6ef14;justify-content:space-between;align-items:center;padding:.6rem .9rem;font-size:.68rem;display:flex}.osp-code-badge{border-radius:4px;padding:.15rem .4rem;font-weight:700}.osp-code-badge.tone-draft{color:#ff8b7b;background:#dc503233}.osp-code-badge.tone-gate{color:#4ade80;background:#1e8c6e33}.osp-code-badge.tone-chain{color:#fbbf24;background:#e6a02833}.osp-stage-code pre{font-family:var(--mono);color:var(--cream);flex:1;margin:0;padding:1rem;font-size:.76rem;line-height:1.55;overflow-x:auto}.osp-pillars{grid-template-columns:repeat(3,1fr);gap:1rem;display:grid}.osp-pillar{background:var(--card);border:1px solid var(--line);border-radius:14px;gap:.75rem;padding:1rem 1.1rem;display:flex}.osp-pillar-num{font-family:var(--mono);color:var(--gold);flex-shrink:0;padding-top:.15rem;font-size:.7rem;font-weight:800}.osp-pillar b{font-family:var(--display);color:var(--ink);margin-bottom:.3rem;font-size:.92rem;display:block}.osp-pillar span{color:var(--ink-soft);font-size:.82rem;line-height:1.55}.osp-stack{flex-wrap:wrap;gap:.45rem;display:flex}.osp-pill{font-family:var(--mono);color:var(--ink-soft);border:1px solid var(--line);background:#3043330f;border-radius:999px;padding:.3rem .7rem;font-size:.68rem;font-weight:600}.osp-actions{flex-wrap:wrap;gap:.7rem;display:flex}@media (width<=900px){.osp-arch{border-radius:14px;padding:1.15rem .9rem}.osp-arch-title{font-size:1.08rem}.osp-arch-sub{font-size:.8rem;line-height:1.45}.osp-steps{grid-template-columns:repeat(3,1fr);gap:.35rem;margin-bottom:1rem;display:grid}.osp-step-wrap{min-width:0}.osp-step-connector{display:none}.osp-step{text-align:center;border-radius:10px;flex-direction:column;align-items:center;gap:.25rem;min-width:0;padding:.55rem .35rem}.osp-step-num{border-radius:6px;width:22px;height:22px;font-size:.72rem}.title-full{display:none}.title-short{font-size:.74rem;font-weight:700;line-height:1.15;display:inline}.osp-step-tag{display:none}.osp-stage-panel{border-radius:14px;padding:1.1rem .95rem}.osp-stage-grid{grid-template-columns:1fr;gap:1.1rem}.osp-stage-info h5{margin-bottom:.4rem;font-size:1.08rem}.osp-stage-info p{margin-bottom:.85rem;font-size:.82rem;line-height:1.5}.osp-stage-specs{grid-template-columns:1fr;gap:.5rem;padding:.7rem .8rem}.osp-stage-code{border-radius:12px}.osp-stage-code pre{padding:.85rem;font-size:.7rem}.osp-pillars{grid-template-columns:1fr;gap:.7rem}.osp-row{grid-template-columns:3.2rem 5.8rem 1fr}.osp-rule{display:none}.osp-stats{padding:.85rem .7rem}.osp-stat-num{font-size:1.05rem}.osp-stat-label{font-size:.56rem}.osp-actions{flex-direction:column;align-items:stretch}.osp-actions .btn{text-align:center;width:100%}}
