.gm-practice{--gm-card:var(--ds-surface-card);--gm-sunken:var(--ds-surface-sunken);--gm-line:#e5e5e5;--gm-line-strong:#d4d4d8;--gm-text:var(--ds-text-primary);--gm-muted:var(--ds-text-tertiary);--gm-red:#dc2626;--gm-red-edge:#a51b1b;--gm-red-soft:#fef2f2;--gm-streak:#ff9600;--gm-streak-edge:#d97f00;--gm-streak-soft:#fff4e5;--gm-gold:#ffc800;--gm-gold-edge:#e0a800;--gm-gold-ink:#6b4a00;--gm-gold-soft:#fff8db;--gm-green:#58cc02;--gm-green-edge:#46a302;--gm-green-soft:#ecfbe0;--gm-violet:#a855f7;--gm-violet-edge:#7e22ce;--gm-reading-edge:#11813a;--gm-listening-edge:#1d4ed8;--gm-writing-edge:#b45309;--gm-speaking-edge:#5b21b6;--gm-radius:20px;--gm-radius-sm:14px}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .gm-practice{--gm-line:#2c2c31;--gm-line-strong:#3f3f46;--gm-red:#ef4444;--gm-red-edge:#b91c1c;--gm-red-soft:#3a1f1c;--gm-streak-soft:#33230d;--gm-gold-soft:#2f2808;--gm-gold-ink:#ffe27a;--gm-green-soft:#16260c}}:root[data-theme=dark] .gm-practice{--gm-line:#2c2c31;--gm-line-strong:#3f3f46;--gm-red:#ef4444;--gm-red-edge:#b91c1c;--gm-red-soft:#3a1f1c;--gm-streak-soft:#33230d;--gm-gold-soft:#2f2808;--gm-gold-ink:#ffe27a;--gm-green-soft:#16260c}.gm-practice{max-width:980px;color:var(--gm-text);font-family:var(--ds-font-body);flex-direction:column;gap:24px;margin:0 auto;padding-bottom:32px;display:flex}.gm-practice--page{box-sizing:border-box;max-width:1760px;padding:104px 24px 48px}.gm-practice__eyebrow{font-family:var(--ds-font-display);letter-spacing:.1em;text-transform:uppercase;color:var(--gm-muted);font-size:12px;font-weight:800;display:inline-block}.gm-practice__title{font-family:var(--ds-font-display);letter-spacing:-.02em;color:var(--gm-text);margin:4px 0;font-size:30px;font-weight:800;line-height:1.2}.gm-practice__subtitle{color:var(--ds-text-secondary);margin:0;font-size:14.5px}.gm-practice__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin:0;padding:0;list-style:none;display:grid}.gm-practice__grid>li{min-width:0}.gm-practice-card{--skill:var(--ds-skill-reading);--skill-edge:var(--gm-reading-edge);border:2px solid color-mix(in srgb, var(--skill) 40%, var(--gm-line));border-radius:var(--gm-radius);background:var(--gm-card);height:100%;box-shadow:0 5px 0 color-mix(in srgb, var(--skill) 45%, var(--gm-line));flex-direction:column;transition:transform .2s cubic-bezier(.34,1.56,.64,1);display:flex;overflow:hidden}.gm-practice-card:hover{transform:translateY(-4px)}.gm-practice-card:hover .gm-practice-card__icon{transform:rotate(-10deg)scale(1.1)}.gm-practice-card--listening{--skill:var(--ds-skill-listening);--skill-edge:var(--gm-listening-edge)}.gm-practice-card--writing{--skill:var(--ds-skill-writing);--skill-edge:var(--gm-writing-edge)}.gm-practice-card--speaking{--skill:var(--ds-skill-speaking);--skill-edge:var(--gm-speaking-edge)}.gm-practice-card__banner{background-color:var(--skill);color:#fff;background-image:radial-gradient(#ffffff29 1.5px,#0000 1.5px),linear-gradient(#0000 calc(100% - 6px),#00000024 0);background-size:16px 16px,100% 100%;justify-content:space-between;align-items:center;gap:12px;min-height:112px;padding:18px 20px;display:flex;position:relative}.gm-practice-card__heading{flex-direction:column;gap:2px;min-width:0;display:flex}.gm-practice-card__kicker{font-family:var(--ds-font-display);letter-spacing:.12em;text-transform:uppercase;opacity:.85;font-size:11.5px;font-weight:800}.gm-practice-card__title{font-family:var(--ds-font-display);letter-spacing:-.01em;color:#fff;margin:0;font-size:26px;font-weight:800;line-height:1.15}.gm-practice-card__icon{object-fit:contain;filter:drop-shadow(0 6px #0000002e);flex-shrink:0;width:76px;height:76px;transition:transform .3s cubic-bezier(.34,1.56,.64,1)}.gm-practice-card__body{flex-direction:column;flex:1;gap:14px;padding:18px 20px 20px;display:flex}.gm-practice-card__desc{color:var(--ds-text-secondary);margin:0;font-size:14.5px;line-height:1.5}.gm-practice-card__chips{flex-wrap:wrap;gap:8px;margin:0 0 4px;padding:0;list-style:none;display:flex}.gm-practice-card__chip{border:2px solid var(--gm-line);background:var(--gm-sunken);font-family:var(--ds-font-display);color:var(--gm-muted);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:5px 12px;font-size:12.5px;font-weight:800;display:inline-flex}.gm-practice-card__chip svg{width:13px;height:13px;color:var(--skill)}.gm-practice-card__start{--btn-bg:var(--skill-edge);--btn-fg:#fff;--btn-border:var(--skill-edge);--btn-edge:color-mix(in srgb, var(--skill-edge) 65%, #000);border:2px solid var(--btn-border);border-radius:var(--gm-radius-sm);background:var(--btn-bg);width:100%;min-height:46px;color:var(--btn-fg);box-shadow:0 4px 0 var(--btn-edge);font-family:var(--ds-font-display);letter-spacing:.06em;text-transform:uppercase;cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;gap:8px;margin-top:auto;padding:0 22px;font-size:14px;font-weight:800;transition:transform 80ms,box-shadow 80ms,filter .15s;display:inline-flex}.gm-practice-card__start svg{width:13px;height:13px;transition:transform .2s}.gm-practice-card__start:hover:not(:disabled){filter:brightness(1.08)}.gm-practice-card__start:hover:not(:disabled) svg{transform:translate(3px)}.gm-practice-card__start:active:not(:disabled){box-shadow:0 0 0 var(--btn-edge);transform:translateY(4px)}.gm-practice-card__start:focus-visible{outline:3px solid var(--ds-focus-ring);outline-offset:3px}.gm-practice-card__start:disabled{--btn-bg:var(--gm-sunken);--btn-fg:var(--gm-muted);--btn-border:var(--gm-line);--btn-edge:var(--gm-line);cursor:not-allowed}.gm-practice__wide{grid-column:1/-1}.gm-practice-card--fullmock{--skill:var(--gm-red);--skill-edge:var(--gm-red-edge)}@media (min-width:721px){.gm-practice-card--fullmock .gm-practice-card__body{grid-template-columns:minmax(0,1fr) 260px;align-items:center;column-gap:24px;display:grid}.gm-practice-card--fullmock .gm-practice-card__body .gm-practice-card__start{grid-area:1/2/span 2;margin-top:0}}.gm-practice-card.is-disabled .gm-practice-card__banner{filter:grayscale(.7)}.gm-practice-card.is-disabled:hover,.gm-practice-card.is-disabled:hover .gm-practice-card__icon{transform:none}@media (max-width:720px){.gm-practice--page{min-height:0;padding:84px 16px 42px}.gm-practice__grid{grid-template-columns:minmax(0,1fr);gap:16px}.gm-practice__title{font-size:24px}.gm-practice-card__banner{min-height:96px}.gm-practice-card__icon{width:64px;height:64px}}@media (min-width:721px){.gm-practice--page{gap:clamp(12px,2vh,20px);padding:calc(64px + clamp(8px,2vh,20px)) clamp(20px,3vw,40px) clamp(16px,2.5vh,28px)}.gm-practice--page .gm-practice__grid{gap:clamp(12px,2vh,20px)}.gm-practice--page .gm-practice-card__banner{min-height:0;padding:14px 20px}.gm-practice--page .gm-practice-card__icon{width:64px;height:64px}.gm-practice--page .gm-practice-card__body{gap:12px;padding:16px 20px 20px}.gm-practice--page .gm-practice-card__start{min-height:52px;box-shadow:0 5px 0 var(--btn-edge);border-radius:16px;font-size:16px}.gm-practice--page .gm-practice-card__start svg{width:15px;height:15px}.gm-practice--page .gm-practice-card__start:active:not(:disabled){transform:translateY(5px)}}@media (min-width:1024px){.gm-practice--page{height:100dvh;min-height:620px}.gm-practice--page .gm-practice__grid{flex:1;grid-template-rows:minmax(0,1fr) auto;grid-template-columns:repeat(4,minmax(0,1fr));min-height:0}.gm-practice--page .gm-practice__grid>li:not(.gm-practice__wide){min-height:0}.gm-practice--page .gm-practice-card:not(.gm-practice-card--fullmock) .gm-practice-card__banner{flex-direction:column;flex:1;align-items:stretch;gap:8px;padding:16px 20px}.gm-practice--page .gm-practice-card:not(.gm-practice-card--fullmock) .gm-practice-card__icon{object-fit:contain;flex:1 1 0;width:100%;height:auto;min-height:0;max-height:320px;margin:auto 0}.gm-practice--page .gm-practice-card:not(.gm-practice-card--fullmock) .gm-practice-card__body{flex:none}.gm-practice--page .gm-practice-card:not(.gm-practice-card--fullmock) .gm-practice-card__desc{min-height:4.5em}.gm-practice--page .gm-practice-card__title{font-size:clamp(22px,2.8vh,30px)}.gm-practice--page .gm-practice-card__desc{font-size:15px}.gm-practice--page .gm-practice-card__start{min-height:clamp(50px,6.5vh,60px)}.gm-practice--page .gm-practice-card--fullmock{flex-direction:row}.gm-practice--page .gm-practice-card--fullmock .gm-practice-card__banner{background-image:radial-gradient(#ffffff29 1.5px,#0000 1.5px),linear-gradient(90deg,#0000 calc(100% - 6px),#00000024 0);flex:0 0 34%;padding:16px 24px}.gm-practice--page .gm-practice-card--fullmock .gm-practice-card__icon{width:clamp(56px,8vh,84px);height:clamp(56px,8vh,84px)}.gm-practice--page .gm-practice-card--fullmock .gm-practice-card__body{flex:1;grid-template-columns:minmax(0,1fr) 300px;align-content:center;padding:16px 24px}}@media (min-width:1024px) and (max-width:1279px){.gm-practice--page .gm-practice-card:not(.gm-practice-card--fullmock) .gm-practice-card__banner,.gm-practice--page .gm-practice-card:not(.gm-practice-card--fullmock) .gm-practice-card__body{padding-left:16px;padding-right:16px}.gm-practice--page .gm-practice-card:not(.gm-practice-card--fullmock) .gm-practice-card__desc{min-height:6em}.gm-practice--page .gm-practice-card:not(.gm-practice-card--fullmock) .gm-practice-card__start{letter-spacing:.04em;white-space:nowrap;padding:0 12px;font-size:14px}}.gm-practice-tab-host{container-type:inline-size}.gm-practice--tab{max-width:none}@container (min-width:680px){.gm-practice--tab,.gm-practice--tab .gm-practice__grid{gap:clamp(12px,2vh,20px)}.gm-practice--tab .gm-practice-card__banner{min-height:0;padding:14px 20px}.gm-practice--tab .gm-practice-card__icon{width:64px;height:64px}.gm-practice--tab .gm-practice-card__body{gap:12px;padding:16px 20px 20px}.gm-practice--tab .gm-practice-card__start{min-height:52px;box-shadow:0 5px 0 var(--btn-edge);border-radius:16px;font-size:16px}.gm-practice--tab .gm-practice-card__start svg{width:15px;height:15px}.gm-practice--tab .gm-practice-card__start:active:not(:disabled){transform:translateY(5px)}}@container (min-width:1120px){.gm-practice--tab{height:calc(100dvh - 144px);min-height:620px;padding-bottom:0}.gm-practice--tab .gm-practice__grid{flex:1;grid-template-rows:minmax(0,1fr) auto;grid-template-columns:repeat(4,minmax(0,1fr));min-height:0}.gm-practice--tab .gm-practice__grid>li:not(.gm-practice__wide){min-height:0}.gm-practice--tab .gm-practice-card:not(.gm-practice-card--fullmock) .gm-practice-card__banner{flex-direction:column;flex:1;align-items:stretch;gap:8px;padding:16px 20px}.gm-practice--tab .gm-practice-card:not(.gm-practice-card--fullmock) .gm-practice-card__icon{object-fit:contain;flex:1 1 0;width:100%;height:auto;min-height:0;max-height:320px;margin:auto 0}.gm-practice--tab .gm-practice-card:not(.gm-practice-card--fullmock) .gm-practice-card__body{flex:none}.gm-practice--tab .gm-practice-card:not(.gm-practice-card--fullmock) .gm-practice-card__desc{min-height:4.5em}.gm-practice--tab .gm-practice-card__title{font-size:clamp(22px,2.8vh,30px)}.gm-practice--tab .gm-practice-card__desc{font-size:15px}.gm-practice--tab .gm-practice-card__start{min-height:clamp(50px,6.5vh,60px)}.gm-practice--tab .gm-practice-card--fullmock{flex-direction:row}.gm-practice--tab .gm-practice-card--fullmock .gm-practice-card__banner{background-image:radial-gradient(#ffffff29 1.5px,#0000 1.5px),linear-gradient(90deg,#0000 calc(100% - 6px),#00000024 0);flex:0 0 34%;padding:16px 24px}.gm-practice--tab .gm-practice-card--fullmock .gm-practice-card__icon{width:clamp(56px,8vh,84px);height:clamp(56px,8vh,84px)}.gm-practice--tab .gm-practice-card--fullmock .gm-practice-card__body{flex:1;grid-template-columns:minmax(0,1fr) 300px;align-content:center;padding:16px 24px}}@container (min-width:1120px) and (max-width:1299px){.gm-practice--tab .gm-practice-card:not(.gm-practice-card--fullmock) .gm-practice-card__banner,.gm-practice--tab .gm-practice-card:not(.gm-practice-card--fullmock) .gm-practice-card__body{padding-left:16px;padding-right:16px}.gm-practice--tab .gm-practice-card:not(.gm-practice-card--fullmock) .gm-practice-card__desc{min-height:6em}.gm-practice--tab .gm-practice-card:not(.gm-practice-card--fullmock) .gm-practice-card__start{letter-spacing:.04em;white-space:nowrap;padding:0 12px;font-size:14px}}
