.sec{padding:88px 0}.sec--paper{background:var(--paper-2)}.sec__head{max-width:62ch;margin-bottom:42px}.sec__num{font-family:var(--font-mono);font-size:13px;color:var(--produce-green);letter-spacing:.04em}.sec__head h2{font-family:var(--font-display);font-weight:900;font-size:40px;line-height:1.08;letter-spacing:-.02em;margin:8px 0 0;color:var(--ink)}.sec__head .mark{color:var(--cascadia-blue)}.sec__head p{font-size:18px;color:var(--fg-2);margin:14px 0 0;line-height:1.6}.eyebrow{font-family:var(--font-display);font-weight:800;font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--produce-green)}.game{background:var(--paper);border:1px solid var(--line-soft);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);overflow:hidden}.game__bar{gap:22px;flex-wrap:wrap;padding:16px 24px;border-bottom:1px solid var(--line-soft)}.game__bar,.game__stat{display:flex;align-items:center}.game__stat{font-family:var(--font-display);font-weight:800;color:var(--ink);font-size:15px;gap:8px}.game__stat b{font-family:var(--font-mono);color:var(--produce-green)}.game__hint{font-family:var(--font-body);font-size:13px;color:var(--fg-3)}.game__bar .btn{margin-left:auto}.gamewrap{position:relative}.cp-game{display:block;width:100%;height:auto;background:linear-gradient(180deg,var(--blue-50),var(--cream) 70%);touch-action:none;cursor:grab}.cp-game.dragging{cursor:grabbing}.game__win{position:absolute;inset:0;display:none;flex-direction:column;align-items:center;justify-content:center;gap:14px;background:hsla(44,58%,96%,.94);text-align:center;padding:24px}.game__win.show{display:flex}.game__win h3{font-family:var(--font-display);font-weight:900;font-size:36px;color:var(--ink);margin:0}.game__win p{font-size:17px;color:var(--fg-2);margin:0;max-width:40ch}.punpress{background:var(--paper);border:1px solid var(--line-soft);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);overflow:hidden}.punpress__deck{gap:16px;border-bottom:1px solid var(--line-soft)}.punpress__deck,.punpress__make{padding:28px 32px;display:flex;flex-direction:column}.punpress__make{gap:18px}.punpress__controls{display:flex;gap:16px;flex-wrap:wrap;align-items:flex-end}.pp-field{display:flex;flex-direction:column;gap:7px}.pp-field label{font-family:var(--font-display);font-weight:700;font-size:14px;color:var(--fg-1)}.pp-field input,.pp-field select{font-family:var(--font-body);font-size:16px;padding:12px 14px;border-radius:var(--radius-md);border:1.5px solid var(--line);background:#fff;color:var(--fg-1);transition:border-color .15s,box-shadow .15s}.pp-field input:focus,.pp-field select:focus{outline:none;border-color:var(--focus-ring);box-shadow:var(--shadow-focus)}.pp-field input::placeholder{color:var(--mute)}.punpress__out{background:linear-gradient(180deg,var(--green-50),var(--blue-50));border-radius:var(--radius-lg);border:1px dashed var(--green-300);padding:30px 26px;text-align:center;min-height:96px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px}.punpress__out--deck{min-height:120px}.punpress__out .line{font-family:var(--font-script);font-weight:700;font-size:34px;line-height:1.18;color:var(--produce-green)}.punpress__out--deck .line{font-size:30px;color:var(--produce-green)}.punpress__out .line+.line{color:var(--cascadia-blue)}.ppcap{font-size:14px;color:var(--fg-3);font-family:var(--font-mono)}.punpress__actions{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}.punpress__lib{border-top:1px solid var(--line-soft);padding:24px 32px 28px}.punpress__lib h4{margin:0 0 14px}.punpress__lib h4,.punpress__sectag{font-family:var(--font-display);font-weight:800;font-size:14px;text-transform:uppercase;letter-spacing:.05em;color:var(--fg-3)}.pp-chips{display:flex;gap:10px;flex-wrap:wrap}.pp-chip{font-family:var(--font-display);font-weight:700;font-size:13px;padding:7px 14px;border-radius:var(--radius-pill);background:var(--green-100);color:var(--green-800);border:none;cursor:pointer;transition:background .15s,color .15s;display:inline-flex;align-items:center;gap:7px}.pp-chip span{font-size:12px;opacity:.8}.pp-chip:hover{background:var(--green-200);color:var(--green-900)}.pp-chip:active{transform:scale(.97)}