.tech-page,.tech-page *{box-sizing:border-box}.tech-page{max-width:900px;margin:0 auto}.back-link{display:inline-block;margin-bottom:1.5rem;color:var(--pbn-color-muted);text-decoration:none;font-size:.85rem}.back-link:hover{color:var(--pbn-color-primary)}h1{font-size:1.9rem;line-height:1.4;margin:0 0 .75rem}.page-sub{font-size:.95rem;line-height:1.7;color:var(--pbn-color-muted);margin:0 0 1.75rem;padding-bottom:1.75rem;border-bottom:1px solid var(--pbn-color-hairline)}.category-filter{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem}.category-btn{appearance:none;border:1px solid var(--pbn-color-hairline);background:var(--pbn-color-surface);color:var(--pbn-color-body);font:inherit;font-size:.85rem;font-weight:700;padding:.5rem 1rem;border-radius:var(--pbn-radius-pill);cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease}.category-btn:hover{border-color:var(--pbn-color-primary)}.category-btn.active{background:var(--pbn-color-primary);border-color:var(--pbn-color-primary);color:var(--pbn-color-on-primary)}.category-btn:focus-visible{outline:2px solid var(--pbn-color-primary);outline-offset:2px}.tech-stage{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1.25rem;margin-bottom:1rem}@media (max-width: 640px){.tech-stage{grid-template-columns:1fr}}.preview-col{display:flex;flex-direction:column;min-width:0}.preview-image{position:relative;height:340px;border-radius:var(--pbn-radius-lg);overflow:hidden;transition:background .25s ease}.preview-image .kw-badge{position:absolute;top:.85rem;left:.85rem;font-size:.68rem;font-weight:700;letter-spacing:.03em;font-family:ui-monospace,SF Mono,Cascadia Code,Consolas,monospace;color:#fff;background:#00000052;padding:.28rem .6rem;border-radius:var(--pbn-radius-pill)}.base-toggle{appearance:none;position:absolute;top:.85rem;right:.85rem;width:30px;height:30px;border:none;border-radius:var(--pbn-radius-pill);background:#00000052;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s ease,color .15s ease}.base-toggle svg{width:16px;height:16px}.base-toggle:hover{background:#00000080}.base-toggle.active{background:var(--pbn-color-primary);color:var(--pbn-color-on-primary)}.base-toggle:focus-visible{outline:2px solid var(--pbn-color-primary);outline-offset:2px}.base-toggle:after{content:attr(data-tooltip);position:absolute;top:calc(100% + 12px);right:0;background:var(--pbn-color-ink);color:var(--pbn-color-canvas);font-family:var(--pbn-font-family);font-size:.72rem;font-weight:600;white-space:nowrap;padding:.4rem .7rem;border-radius:var(--pbn-radius-md);box-shadow:0 8px 20px #00000047;opacity:0;transform:translateY(-4px);pointer-events:none;transition:opacity .15s ease,transform .15s ease;z-index:6}.base-toggle:before{content:"";position:absolute;top:calc(100% + 8px);right:11px;width:8px;height:8px;background:var(--pbn-color-ink);transform:rotate(45deg);opacity:0;transition:opacity .15s ease;pointer-events:none;z-index:5}.base-toggle:hover:after,.base-toggle:focus-visible:after{opacity:1;transform:translateY(0)}.base-toggle:hover:before,.base-toggle:focus-visible:before{opacity:1}@media (prefers-reduced-motion: reduce){.base-toggle:after{transition:opacity .15s ease;transform:none}}.preview-image .scrim{position:absolute;left:0;right:0;bottom:0;padding:2.2rem 1rem .9rem;background:linear-gradient(0deg,#0000008c,#0000)}.preview-image .scrim h4{margin:0;font-size:1rem;font-weight:700;color:#fff;text-wrap:balance}.preview-meta{margin-top:.85rem}.preview-meta .effect-desc{font-size:.86rem;color:var(--pbn-color-body);line-height:1.65;margin:0}.kw-col{display:flex;flex-direction:column;min-width:0}.kw-panel{height:340px;overflow-y:auto;background:var(--pbn-color-surface);border:1px solid var(--pbn-color-hairline);border-radius:var(--pbn-radius-lg);padding:1rem 1.1rem}.kw-group+.kw-group{margin-top:1.3rem}.kw-group h3{font-size:.74rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--pbn-color-muted);margin:0 0 .6rem}.kw-list{display:flex;flex-wrap:wrap;gap:.5rem}.kw-chip{appearance:none;border:1px solid var(--pbn-color-hairline);background:var(--pbn-color-surface);color:var(--pbn-color-body);font:inherit;font-size:.85rem;font-weight:700;padding:.5rem 1rem;border-radius:var(--pbn-radius-pill);cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease}.kw-chip:hover{border-color:var(--pbn-color-primary)}.kw-chip.focus{border-color:var(--pbn-color-primary);color:var(--pbn-color-ink)}.kw-chip.applied{background:var(--pbn-color-primary);border-color:var(--pbn-color-primary);color:var(--pbn-color-on-primary)}.kw-chip.applied:before{content:"✓ "}.kw-chip.focus.applied{box-shadow:0 0 0 2px var(--pbn-color-canvas),0 0 0 4px var(--pbn-color-primary)}.kw-chip:focus-visible{outline:2px solid var(--pbn-color-primary);outline-offset:2px}.apply-bar{margin-top:.85rem;display:flex;align-items:center;justify-content:space-between;gap:.7rem;padding:.65rem .7rem .65rem .9rem;background:var(--pbn-color-surface-2);border:1px dashed var(--pbn-color-hairline);border-radius:var(--pbn-radius-md)}.apply-bar .apply-label{font-size:.8rem;color:var(--pbn-color-muted);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.apply-bar .apply-label b{color:var(--pbn-color-ink);font-family:ui-monospace,SF Mono,Cascadia Code,Consolas,monospace}.apply-btn{appearance:none;border:none;font:inherit;font-size:.8rem;font-weight:700;color:var(--pbn-color-on-primary);background:var(--pbn-color-primary);padding:.5rem .9rem;border-radius:var(--pbn-radius-pill);cursor:pointer;flex-shrink:0}.apply-btn:disabled{background:var(--pbn-color-hairline);color:var(--pbn-color-muted);cursor:default}.apply-btn:focus-visible{outline:2px solid var(--pbn-color-primary);outline-offset:2px}.prompt-board{margin-top:1.5rem;background:var(--pbn-color-surface);border:1px solid var(--pbn-color-hairline);border-radius:var(--pbn-radius-lg);padding:1.1rem 1.25rem 1.25rem}.prompt-board-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin:0 0 .7rem}.prompt-board-label{display:block;font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--pbn-color-muted)}.copy-btn{appearance:none;border:1px solid var(--pbn-color-hairline);background:var(--pbn-color-surface-2);color:var(--pbn-color-muted);width:30px;height:30px;border-radius:var(--pbn-radius-pill);display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;transition:border-color .15s ease,color .15s ease,background .15s ease}.copy-btn svg{width:15px;height:15px}.copy-btn .icon-check{display:none}.copy-btn:hover{border-color:var(--pbn-color-primary);color:var(--pbn-color-primary)}.copy-btn.copied{border-color:var(--pbn-color-primary);background:var(--pbn-color-primary);color:var(--pbn-color-on-primary)}.copy-btn.copied .icon-copy{display:none}.copy-btn.copied .icon-check{display:block}.copy-btn:focus-visible{outline:2px solid var(--pbn-color-primary);outline-offset:2px}.copy-btn:disabled{opacity:.4;cursor:default}.copy-btn:disabled:hover{border-color:var(--pbn-color-hairline);color:var(--pbn-color-muted)}.prompt-empty{margin:0;font-size:.85rem;color:var(--pbn-color-muted)}.prompt-lines{display:flex;flex-direction:column}.prompt-line{display:flex;align-items:flex-start;gap:.65rem;padding:.5rem .15rem;font-family:ui-monospace,SF Mono,Cascadia Code,Consolas,monospace;font-size:.9rem;line-height:1.6}.prompt-line+.prompt-line{border-top:1px dashed var(--pbn-color-hairline)}.prompt-line .line-no{flex-shrink:0;width:1.6rem;color:var(--pbn-color-muted);font-size:.8rem;padding-top:.15rem}.prompt-line .line-text{flex:1;color:var(--pbn-color-body);word-break:break-word}.prompt-line.preview-line .line-text{color:var(--pbn-color-muted);font-style:italic}.prompt-line.preview-line .line-no{color:var(--pbn-color-primary)}.prompt-line .line-remove{appearance:none;border:none;background:none;font:inherit;font-size:1rem;line-height:1;color:var(--pbn-color-muted);cursor:pointer;width:22px;height:22px;border-radius:50%;flex-shrink:0}.prompt-line .line-remove:hover{color:var(--pbn-color-on-primary);background:var(--pbn-color-primary)}.prompt-line .line-remove:focus-visible{outline:2px solid var(--pbn-color-primary);outline-offset:1px}
