@font-face{font-family:TreeGrammarPractice;src:url(fonts/JosefinSans-Variable.ttf) format('truetype');font-style:normal;font-weight:100 700;font-display:swap}
@font-face{font-family:TreeGrammarPractice;src:url(fonts/JosefinSans-Italic-Variable.ttf) format('truetype');font-style:italic;font-weight:100 700;font-display:swap}
.tgp{--tgp-ink:#203d31;--tgp-green:#315c47;--tgp-paper:#fbfaf4;--tgp-line:#cbd6c1;color:var(--tgp-ink);background:var(--tgp-paper);border:1px solid #d9decf;border-radius:22px;padding:32px;font-family:TreeGrammarPractice,sans-serif;font-size:17px;line-height:1.65;text-align:left;text-transform:none}
.tgp *{box-sizing:border-box}.tgp [hidden]{display:none!important}.tgp :is(h2,h3,p,a,label,button,input,textarea,summary,legend){font-family:inherit;letter-spacing:normal;text-transform:none}.tgp h2{font-size:36px;line-height:1.25;color:var(--tgp-ink);margin:8px 0 12px;font-weight:700}.tgp h3{font-size:24px;line-height:1.4;color:var(--tgp-ink);margin:0}.tgp p{margin:0 0 16px}.tgp a{color:var(--tgp-green);text-decoration:none}.tgp a:hover{text-decoration:underline}.tgp .tgp-eyebrow{font-size:12px;letter-spacing:.1em;font-weight:700;color:#58684b;margin:0 0 8px}.tgp .tgp-hero{max-width:780px;margin-bottom:26px}.tgp .tgp-levels{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:0 0 28px}.tgp .tgp-levels a{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;border:1px solid var(--tgp-line);border-radius:13px;background:#fffef8;color:var(--tgp-ink)}.tgp .tgp-levels strong{font-size:24px}.tgp .tgp-levels span{font-size:14px}.tgp .tgp-levels a[aria-current]{background:var(--tgp-green);border-color:var(--tgp-green);color:#fffef8}.tgp .tgp-level-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.tgp .tgp-level-heading span{font-size:14px;color:#56674c;white-space:nowrap}.tgp .tgp-topics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.tgp .tgp-topic{display:flex;flex-direction:column;align-items:flex-start;gap:7px;padding:19px;border:1px solid var(--tgp-line);border-radius:14px;background:#fffef9;color:var(--tgp-ink);min-width:0;overflow-wrap:anywhere}.tgp .tgp-topic:hover{background:#eef2e4;border-color:#819870;text-decoration:none}.tgp .tgp-topic small{font-size:12px;color:#5a6f50}.tgp .tgp-topic strong{font-size:19px;line-height:1.4}.tgp .tgp-topic span{font-size:15px;line-height:1.5;color:#56674c}.tgp .tgp-topic b{font-size:14px;margin-top:auto;padding-top:9px}.tgp .tgp-method{margin-top:28px;padding:22px;background:#eef2e4;border-radius:14px}.tgp .tgp-method p{margin-top:7px;font-size:16px}.tgp .tgp-method a{font-weight:600}.tgp .tgp-workspace{scroll-margin-top:100px}.tgp .tgp-back{display:inline-block;margin:0 0 20px;font-size:16px;font-weight:600}.tgp .tgp-practice-heading h2{font-size:32px}.tgp .tgp-rule{border:1px solid var(--tgp-line);border-radius:12px;padding:12px 16px;margin:16px 0 22px;background:#f0f3e8}.tgp summary{cursor:pointer;font-weight:600}.tgp details p{margin:12px 0 0}.tgp .tgp-parts{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:22px}.tgp button{appearance:none;background:#fffdf6;color:var(--tgp-ink);border:1px solid #acbea1;border-radius:9px;font-size:15px;font-weight:600;line-height:1.5;padding:10px 14px;cursor:pointer;box-shadow:none;min-height:44px;text-shadow:none}.tgp button:is(:hover,:focus-visible,:active){background:#e6eddb;color:#203d31;border-color:#6b835c}.tgp button:disabled{cursor:default;opacity:.55}.tgp button[aria-current=page],.tgp .tgp-primary{background:var(--tgp-green);color:#fffef8;border-color:var(--tgp-green)}.tgp .tgp-primary:is(:hover,:focus-visible,:active),.tgp button[aria-current=page]:hover{background:#244b38;color:#fffef8}.tgp .tgp-parts button{padding:8px 10px;font-size:14px}.tgp .tgp-range{display:flex;justify-content:space-between;align-items:center;gap:12px}.tgp .tgp-range h3{font-size:22px}.tgp .tgp-range>span{font-size:14px;white-space:nowrap}.tgp .tgp-range-note{font-size:14px;color:#596d4e;margin:7px 0 20px}.tgp .tgp-question{min-width:0;border:1px solid var(--tgp-line);border-radius:13px;background:#fffef9;padding:20px;margin:0 0 20px;scroll-margin-top:100px}.tgp .tgp-question>legend{font-size:18px;font-weight:700;padding:0 8px;line-height:1.5;color:var(--tgp-ink);width:auto;float:none}.tgp .tgp-question legend small{font-size:12px;font-weight:500;margin-left:8px;background:#eaf0df;border-radius:5px;padding:3px 7px;display:inline-block}.tgp .tgp-instruction{font-size:17px;line-height:1.6;font-weight:500;color:#294c38}.tgp .tgp-prompt{font-size:21px;line-height:1.55;font-weight:600;overflow-wrap:anywhere}.tgp .tgp-blank{display:inline-block;min-width:45px;text-align:center;border-bottom:2px solid #a2b78c}.tgp .tgp-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.tgp :is(.tgp-options,.tgp-self) label{display:flex;align-items:flex-start;gap:11px;margin:0;cursor:pointer;font-size:17px;font-weight:400;line-height:1.5;color:var(--tgp-ink)}.tgp .tgp-options label{padding:12px 13px;border:1px solid #c6d3b9;border-radius:9px;background:#fafbf3}.tgp .tgp-options label:has(input:checked){background:#e6efda;border-color:#71895f}.tgp input[type=radio]{appearance:auto!important;-webkit-appearance:radio!important;position:static!important;opacity:1!important;width:18px!important;height:18px!important;min-width:18px;margin:3px 0 0!important;padding:0!important;accent-color:#315c47;clip:auto!important;clip-path:none!important;border-radius:50%;box-shadow:none;transform:none!important}.tgp input[type=radio]::before,.tgp input[type=radio]::after{content:none!important;display:none!important}.tgp :is(input[type=text],textarea){display:block;width:100%;max-width:100%;min-height:47px;border:1px solid #a9b99b;border-radius:9px;background:white;color:#203d31;font-size:18px;font-weight:400;line-height:1.6;padding:10px 13px;box-shadow:none;text-transform:none;letter-spacing:normal}.tgp textarea{min-height:105px;resize:vertical}.tgp :is(input,textarea)[readonly]{background:#f4f5ec;color:#384d36;opacity:1}.tgp .tgp-answer-label{display:block;margin-bottom:8px;font-size:14px;font-weight:600}.tgp .tgp-pager{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:24px 0}.tgp .tgp-pager span{font-size:14px;white-space:nowrap}.tgp .tgp-check-note,.tgp .tgp-session-note{font-size:14px;line-height:1.6;color:#52664a}.tgp .tgp-session-note{margin:24px 0 0}.tgp .tgp-check{display:block;width:100%}.tgp .tgp-status{margin:16px 0 0;color:#843d29}.tgp .tgp-feedback{margin-top:20px;padding:18px;border-radius:10px;background:#eff3e5;border-left:4px solid #6c8b55;font-size:16px;line-height:1.65;scroll-margin-top:100px}.tgp .tgp-feedback p{margin:10px 0 0}.tgp .tgp-feedback.tgp-incorrect{background:#fbf0e9;border-color:#a45b37}.tgp .tgp-feedback.tgp-blank{background:#f3f2ea;border-color:#89947a}.tgp .tgp-feedback .tgp-model{font-size:20px;font-weight:600;color:#244b38}.tgp .tgp-variants{font-size:14px;color:#526249}.tgp .tgp-self{border:0;border-top:1px solid #c3d0b5;margin:17px 0 0;padding:14px 0 0;min-width:0;display:grid;gap:12px}.tgp .tgp-self legend{font-size:15px;font-weight:600;width:auto;padding:0 7px 0 0;float:none}.tgp .tgp-self label{font-size:16px}.tgp .tgp-result{background:#edf2e2;border:1px solid #c0d0ac;border-radius:14px;padding:22px;margin:0 0 24px}.tgp .tgp-score>strong{font-size:23px;line-height:1.4;display:block;margin-bottom:10px}.tgp .tgp-result p{font-size:15px;margin-bottom:10px}.tgp .tgp-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.tgp :is(a,button,input,textarea,summary):focus-visible{outline:3px solid #b67a37;outline-offset:3px}.tgp .tgp-loading{padding:28px;font-size:20px}.tgp .tgp-level-section{scroll-margin-top:100px}.tgp .tgp-form{margin:0}.tgp .tgp-question>p:last-child{margin-bottom:0}
@media(max-width:1000px){.tgp .tgp-topics{grid-template-columns:repeat(2,minmax(0,1fr))}.tgp .tgp-level-heading{align-items:flex-start;flex-direction:column;gap:6px}}
@media(max-width:600px){.tgp{padding:18px 14px;border-radius:15px;font-size:16px}.tgp h2{font-size:29px}.tgp .tgp-hero{margin-bottom:20px}.tgp .tgp-levels{gap:7px;margin-bottom:22px}.tgp .tgp-levels a{padding:10px 4px;flex-direction:column;gap:0}.tgp .tgp-levels strong{font-size:23px}.tgp .tgp-levels span{font-size:12px}.tgp .tgp-topics{grid-template-columns:1fr;gap:11px}.tgp .tgp-topic{padding:16px}.tgp .tgp-level-heading h3{font-size:22px}.tgp .tgp-method{padding:17px}.tgp .tgp-practice-heading h2{font-size:27px}.tgp .tgp-question{padding:16px 12px;margin-bottom:18px}.tgp .tgp-instruction{font-size:16px}.tgp .tgp-prompt{font-size:20px}.tgp .tgp-options{grid-template-columns:1fr}.tgp .tgp-parts{gap:6px}.tgp .tgp-parts button{font-size:13px;padding:8px}.tgp .tgp-range{align-items:flex-start;flex-direction:column;gap:4px}.tgp .tgp-range h3{font-size:21px}.tgp .tgp-pager button{font-size:14px;padding:9px}.tgp .tgp-feedback{padding:14px 12px;font-size:16px}.tgp .tgp-result{padding:17px}.tgp .tgp-score>strong{font-size:21px}.tgp .tgp-self label{font-size:16px}}
@media(prefers-reduced-motion:reduce){.tgp *{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
