:root{--background: #f6f5f2;--surface: #ffffff;--text: #1d1d1b;--muted: #5c5b57;--border: #d9d6cf;--accent: #2f5d50;--accent-text: #ffffff;--problem: #a3261b;--focus: #1a73e8;color-scheme:light dark;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5}@media (prefers-color-scheme: dark){:root{--background: #151514;--surface: #1f1f1d;--text: #f1efe9;--muted: #b3b0a8;--border: #3a3936;--accent: #7fc2ad;--accent-text: #10201b;--problem: #ff8a7f;--focus: #8ab4f8}}*{box-sizing:border-box}body{margin:0;background:var(--background);color:var(--text)}.page{max-width:40rem;margin:0 auto;padding:2rem 1rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:1.5rem}h1{font-size:1.5rem;line-height:1.25;margin:0 0 .5rem}.lead{color:var(--muted);margin:0 0 1.5rem}.notice>:last-child{margin-bottom:0}.question{border:0;margin:0 0 1.25rem;padding:0}.question legend{font-weight:600;padding:0;margin-bottom:.25rem}.sub-ratings .question legend{font-weight:400}.scores{display:flex;margin-left:-.375rem}.score{position:relative;display:grid;place-items:center;width:2.75rem;height:2.75rem;border-radius:8px;color:var(--accent)}.score:has(input:checked) .star,.score:has(~.score input:checked) .star{fill:currentColor}.score:has(input:checked){outline:2px solid currentColor;outline-offset:-2px}.star{width:2rem;height:2rem;fill:transparent;stroke:currentColor;stroke-width:1.5;stroke-linejoin:round}.sub-ratings{border:0;border-top:1px solid var(--border);margin:0 0 1.25rem;padding:1.25rem 0 0}.sub-ratings>legend{float:left;width:100%;font-weight:600;padding:0}.sub-ratings>legend+*{clear:both}.sub-ratings>.question:last-child{margin-bottom:0}.sub-ratings>.hint{margin:.25rem 0 1rem}.score input{position:absolute;opacity:0;top:0;right:0;bottom:0;left:0;margin:0;cursor:pointer}.score:has(input:focus-visible),input:focus-visible,textarea:focus-visible,button:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.field{display:grid;gap:.25rem;margin-bottom:1.25rem}textarea,input[type=text]{font:inherit;color:inherit;background:transparent;border:1px solid var(--border);border-radius:8px;padding:.75rem;resize:vertical}.hint{display:block;color:var(--muted);font-size:.875rem}.check{display:flex;gap:.75rem;align-items:flex-start;margin-bottom:1rem}.check input{margin-top:.3rem}.share-card{margin-top:1.5rem;padding:1.25rem;border:1px solid var(--accent);border-radius:12px;background:color-mix(in srgb,var(--accent) 8%,var(--surface));text-align:left}.share-card h2{font-size:1.125rem;line-height:1.3;margin:0 0 .25rem}.share-card>p{margin:0 0 1rem}.review-preview{margin:0 0 1.25rem;padding:1rem;border:1px solid var(--border);border-radius:8px;background:var(--surface)}.review-preview figcaption{font-weight:600}.preview-stars{display:flex;gap:.125rem;margin:.25rem 0 .5rem;color:var(--accent)}.preview-stars .star{width:1.25rem;height:1.25rem}.star.lit{fill:currentColor}.review-preview blockquote{margin:0;color:var(--muted);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.share-button{display:flex;align-items:center;justify-content:center;gap:.5rem;font-size:1.125rem;padding:1rem;box-shadow:0 4px 14px color-mix(in srgb,var(--accent) 35%,transparent);transition:transform .12s ease}.share-button:hover:not(:disabled){transform:translateY(-1px)}@media (prefers-reduced-motion: reduce){.share-button{transition:none}.share-button:hover:not(:disabled){transform:none}}.share-icon{width:1.25rem;height:1.25rem;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.share-card>.share-notice{margin:.75rem 0 0}.problem{color:var(--problem);font-weight:600}button{font:inherit;font-weight:600;width:100%;padding:.875rem;border:0;border-radius:8px;background:var(--accent);color:var(--accent-text);cursor:pointer}button:disabled{opacity:.6;cursor:progress}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}a{color:var(--accent)}a:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.footer{max-width:40rem;margin:0 auto;padding:0 1rem 2rem;font-size:.875rem;text-align:center}.policy h2{font-size:1.0625rem;margin:1.5rem 0 .25rem}.policy p{margin:0}
