.ps-page{max-width:760px;margin:28px auto 0;padding:0 24px}.ps-heading{display:flex;align-items:baseline;justify-content:space-between;gap:16px}.ps-heading h1{font-size:32px;letter-spacing:-.03em;margin:0}.ps-heading time{font-size:13px;color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}.ps-intro{margin:6px 0 22px;color:var(--muted)}.ps-toolbar{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:16px;margin-bottom:22px}.ps-toolbar ol{display:flex;gap:10px;list-style:none;margin:0;padding:0}.ps-toolbar li{display:grid;place-items:center;width:29px;height:29px;font-size:13px;border-radius:50%;background:var(--pale);font-weight:700}.ps-toolbar li[aria-current]{outline:2px solid var(--green);outline-offset:3px}.ps-toolbar li.ps-pass{background:var(--green);color:var(--paper)}.ps-toolbar li.ps-miss{background:var(--ink);color:var(--paper)}#ps-score{font-size:20px;font-variant-numeric:tabular-nums}#ps-score span{font-weight:400;font-size:14px;color:var(--muted)}.ps-round-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:0 0 14px}.ps-round-head h2{font-size:20px;margin:0;letter-spacing:-.02em}.ps-round-head>span{color:var(--muted);font-size:13px;white-space:nowrap}.ps-sequence{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.ps-frame{background:var(--pale);border-radius:12px;min-width:0;display:grid;place-items:center;padding:8px 3px}.ps-tile{display:block;width:100%;max-width:110px;height:auto;overflow:visible}.ps-arrow,.ps-dot,.ps-marker{fill:var(--green)}.ps-position{fill:var(--green);opacity:.8}.ps-missing{border:1px dashed var(--muted);background:transparent;font-size:40px;font-weight:700;color:var(--green)}.ps-prompt{font-weight:700;margin:22px 0 10px}.ps-options{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.ps-option{font:inherit;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:12px;min-width:0;min-height:124px;padding:8px;cursor:pointer;position:relative;display:flex;align-items:center;flex-direction:column;gap:4px;transition:background-color .15s ease-out,border-color .15s ease-out}.ps-option .ps-tile{max-width:90px}.ps-option-number{align-self:flex-start;background:var(--pale);border-radius:4px;width:23px;line-height:23px;font-size:12px;font-weight:700}.ps-option-state{font-size:12px;min-height:20px}.ps-option:hover:not(:disabled){background:var(--pale);border-color:var(--green)}.ps-option:focus-visible,.ps-actions button:focus-visible,#ps-share:focus-visible{outline:3px solid var(--green);outline-offset:4px}.ps-option:disabled{cursor:default;opacity:1}.ps-option.ps-correct{background:#e5eee7;border-color:var(--green)}.ps-correct .ps-option-state{color:var(--green);font-weight:700}.ps-option.ps-wrong{background:#f6e5de;border-color:var(--red)}.ps-wrong .ps-option-state{color:var(--red);font-weight:700}.ps-actions{display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:64px;margin-top:12px}.ps-page .primary{background:var(--green);min-height:44px}.ps-page .primary:hover{background:#294b37}.ps-actions .text-button{min-height:44px;text-align:left;font-size:13px;color:var(--green)}.ps-actions .text-button:disabled{color:var(--muted);text-decoration:none;cursor:default}.ps-feedback{font-size:15px;color:var(--ink);min-height:0;margin:0 0 16px;max-width:65ch}.ps-feedback:empty{margin:0}.ps-feedback:not(:empty){animation:ps-reveal .18s ease-out}.ps-reset{font-size:12px;color:var(--muted);padding-top:18px;border-top:1px solid var(--line);margin:8px 0 0}.ps-notice{background:var(--pale);padding:12px;font-size:14px}.ps-rules{margin-top:36px}.ps-rules h2{font-size:22px}.ps-rules li{margin:8px 0}.ps-rules p{max-width:70ch}.ps-rules details{padding:15px 0;border-bottom:1px solid var(--line)}.ps-rules summary{cursor:pointer;font-weight:700}.ps-example{display:flex;max-width:360px;margin-top:16px;gap:12px}.ps-example svg{width:22%}.ps-related{display:flex;gap:24px;margin:28px 0}.ps-related a{color:var(--green);text-underline-offset:4px}.ps-result h2{font-size:24px;letter-spacing:-.02em;margin:0 0 8px}.ps-final-score{font-size:64px;line-height:1.1;font-weight:700;letter-spacing:-.035em;margin:18px 0 26px;font-variant-numeric:tabular-nums}.ps-final-score span{font-size:22px;font-weight:400;color:var(--muted);letter-spacing:0}.ps-breakdown{list-style:none;padding:0;margin:0 0 24px}.ps-breakdown li{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);padding:10px 0;font-size:14px}.ps-breakdown small{display:block;color:var(--muted)}.ps-breakdown strong{white-space:nowrap}.ps-result textarea{display:block;width:100%;min-height:130px;margin:16px 0;font:inherit;background:var(--paper);color:var(--ink);border:1px solid var(--muted);padding:10px;caret-color:var(--green)}.ps-result textarea[hidden]{display:none}.ps-return,#ps-share-status{font-size:14px;color:var(--muted)}.ps-result:focus{outline:none}@keyframes ps-reveal{from{clip-path:inset(0 0 100% 0)}to{clip-path:inset(0)}}
@media(max-width:600px){.ps-page{padding:0 16px;margin-top:20px}.ps-heading{align-items:flex-start}.ps-heading h1{font-size:28px}.ps-heading time{font-size:11px;padding-top:8px}.ps-intro{font-size:14px;margin-bottom:18px}.ps-toolbar{margin-bottom:18px}.ps-sequence{gap:6px}.ps-frame{padding:8px 1px;border-radius:8px}.ps-missing{font-size:30px}.ps-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.ps-option{min-height:105px;flex-direction:row;justify-content:center;gap:8px;padding:8px}.ps-option .ps-tile{width:58px;flex-shrink:0}.ps-option-number{position:absolute;left:8px;top:8px;width:19px;line-height:19px;font-size:11px}.ps-option-state{font-size:11px;max-width:48px}.ps-actions{gap:10px;align-items:center}.ps-actions .text-button{max-width:178px;line-height:1.35}.ps-actions .primary{font-size:13px;padding:10px 14px}.ps-round-head h2{font-size:18px}.ps-feedback{font-size:14px}.ps-rules{margin-top:28px}.ps-final-score{font-size:56px}.ps-result h2{font-size:22px}}
@media(prefers-reduced-motion:reduce){.ps-option{transition:none}.ps-feedback:not(:empty){animation:none}}
