/* GT Frame for the Free Web Tools archive. Generated by __work/tools-frame/build_tools.py. */
.gtw-page,.gtw{--canvas:#fbfaf8;--surface:#fff;--well:#f3f1ed;--ink:#141414;--body:#2b2b30;--muted:#4f4f55;--hair:#e2ded7;--hair-strong:#c4bfb6;--accent:#c0392b;--accent-strong:#9b2c21;--accent-soft:color-mix(in srgb,#c0392b 8%,#fff);--accent-ink:#fff;--btn:#171717;--btn-ink:#fff;--btn-hover:#000;--code:#f6f5f2;--ok:#1e7b46;--rail:max(12px,calc(50% - 731px));--wide:1366px;--pad:48px}
html[data-theme="dark"] .gtw-page,html[data-theme="dark"] .gtw{--canvas:#0f0f0f;--surface:#171717;--well:#1d1d1d;--ink:#fafafa;--body:#e4e4e7;--muted:#babac1;--hair:#2c2c2c;--hair-strong:#4a4a4a;--accent:#da6f55;--accent-strong:#f09a87;--accent-soft:color-mix(in srgb,#da6f55 12%,#171717);--accent-ink:#111;--btn:#fafafa;--btn-ink:#111;--btn-hover:#fff;--code:#141414;--ok:#4ade80}
@media(prefers-color-scheme:dark){html:not([data-theme]) .gtw-page,html:not([data-theme]) .gtw,html[data-theme="auto"] .gtw-page,html[data-theme="auto"] .gtw{--canvas:#0f0f0f;--surface:#171717;--well:#1d1d1d;--ink:#fafafa;--body:#e4e4e7;--muted:#babac1;--hair:#2c2c2c;--hair-strong:#4a4a4a;--accent:#da6f55;--accent-strong:#f09a87;--accent-soft:color-mix(in srgb,#da6f55 12%,#171717);--accent-ink:#111;--btn:#fafafa;--btn-ink:#111;--btn-hover:#fff;--code:#141414;--ok:#4ade80}}
@media(max-width:760px){.gtw-page,.gtw{--pad:24px}}


/* Page frame: hairline rails, ruler ticks. Owned by the first section, scoped to main.gtw-page. */
main.gtw-page{position:relative;display:block;background-color:var(--canvas);isolation:isolate;overflow:clip}
main.gtw-page::before,main.gtw-page::after{content:"";position:absolute;top:0;bottom:0;width:1px;background:var(--hair);z-index:1;pointer-events:none}
main.gtw-page::before{left:var(--rail)}
main.gtw-page::after{right:var(--rail)}
@media(min-width:1530px){main.gtw-page{background-image:repeating-linear-gradient(to bottom,var(--hair-strong) 0 1px,transparent 1px 120px),repeating-linear-gradient(to bottom,var(--hair) 0 1px,transparent 1px 24px),repeating-linear-gradient(to bottom,var(--hair-strong) 0 1px,transparent 1px 120px),repeating-linear-gradient(to bottom,var(--hair) 0 1px,transparent 1px 24px);background-size:12px 100%,7px 100%,12px 100%,7px 100%;background-position:calc(50% - 761px) 0,calc(50% - 756px) 0,calc(50% + 761px) 0,calc(50% + 756px) 0;background-repeat:no-repeat}}


/* Blur-reveal headings. JS adds .gtw-reveal only when motion is allowed, so no-JS and reduced-motion visitors see static text. */
.gtw-page .gtw-reveal .gtw-w{display:inline-block;opacity:0;filter:blur(10px);transform:translateY(.28em);transition:opacity .8s cubic-bezier(.25,1,.5,1),filter .8s cubic-bezier(.25,1,.5,1),transform .8s cubic-bezier(.25,1,.5,1);transition-delay:calc(var(--i) * 60ms);will-change:opacity,filter,transform}
.gtw-page .gtw-reveal.is-in .gtw-w{opacity:1;filter:blur(0);transform:none}
@media(prefers-reduced-motion:reduce){.gtw-page .gtw-reveal .gtw-w{opacity:1;filter:none;transform:none;transition:none}}


.gtw-divider{display:flex;align-items:center;justify-content:center;gap:0;margin:0 auto 56px;max-width:420px}
.gtw-divider i{flex:1;height:1px;background:var(--hair-strong);position:relative}
.gtw-divider i::before{content:"";position:absolute;top:-3px;width:7px;height:7px;border-radius:50%;border:1px solid var(--hair-strong);background:var(--canvas)}
.gtw-divider i:first-child::before{left:0}
.gtw-divider i:last-child::before{right:0}
.gtw-divider b{display:flex;align-items:center;justify-content:center;width:36px;height:36px;margin-inline:10px;border:1px solid var(--hair-strong);border-radius:8px;background:var(--surface);color:var(--accent-strong)}

main.gtw-page{margin:0;max-width:none;width:100%}
.gtw-page,.gtw{--canvas:#fbfaf8;--surface:#fff;--well:#f3f1ed;--ink:#141414;--body:#2b2b30;--muted:#4f4f55;--hair:#e2ded7;--hair-strong:#c4bfb6;--accent:#c0392b;--accent-strong:#9b2c21;--accent-soft:color-mix(in srgb,#c0392b 8%,#fff);--accent-ink:#fff;--btn:#171717;--btn-ink:#fff;--btn-hover:#000;--code:#f6f5f2;--ok:#1e7b46;--rail:max(12px,calc(50% - 731px));--wide:1366px;--pad:48px}
html[data-theme="dark"] .gtw-page,html[data-theme="dark"] .gtw{--canvas:#0f0f0f;--surface:#171717;--well:#1d1d1d;--ink:#fafafa;--body:#e4e4e7;--muted:#babac1;--hair:#2c2c2c;--hair-strong:#4a4a4a;--accent:#da6f55;--accent-strong:#f09a87;--accent-soft:color-mix(in srgb,#da6f55 12%,#171717);--accent-ink:#111;--btn:#fafafa;--btn-ink:#111;--btn-hover:#fff;--code:#141414;--ok:#4ade80}
@media(prefers-color-scheme:dark){html:not([data-theme]) .gtw-page,html:not([data-theme]) .gtw,html[data-theme="auto"] .gtw-page,html[data-theme="auto"] .gtw{--canvas:#0f0f0f;--surface:#171717;--well:#1d1d1d;--ink:#fafafa;--body:#e4e4e7;--muted:#babac1;--hair:#2c2c2c;--hair-strong:#4a4a4a;--accent:#da6f55;--accent-strong:#f09a87;--accent-soft:color-mix(in srgb,#da6f55 12%,#171717);--accent-ink:#111;--btn:#fafafa;--btn-ink:#111;--btn-hover:#fff;--code:#141414;--ok:#4ade80}}
@media(max-width:760px){.gtw-page,.gtw{--pad:24px}}

.gtw-hero{position:relative;box-sizing:border-box;background:var(--canvas);color:var(--body);font-size:1rem;line-height:1.65;padding:96px calc(var(--rail) + var(--pad));border-top:1px solid var(--hair);scroll-margin-top:90px}
.gtw-hero *,.gtw-hero *::before,.gtw-hero *::after{box-sizing:border-box}
:where(.gtw-hero) :where(h1,h2,h3,h4,p,ul,ol,figure,dl,dd,pre,table){margin:0}
.gtw-hero::before,.gtw-hero::after{content:"";position:absolute;top:-4px;width:7px;height:7px;border:1px solid var(--hair-strong);background:var(--canvas);border-radius:50%;z-index:2}
.gtw-hero::before{left:calc(var(--rail) - 3px)}
.gtw-hero::after{right:calc(var(--rail) - 3px)}
.gtw-hero .gtw-hero__inner{max-width:var(--wide);margin-inline:auto}
.gtw-hero .gtw-hero__head{max-width:720px;margin:0 auto 56px;text-align:center}
.gtw-hero h2{font-size:clamp(1.75rem, 1.4rem + 1.1vw, 2.25rem);line-height:1.15;font-weight:600;color:var(--ink);text-wrap:balance}
.gtw-hero h2 .gtw-sub{display:block;color:var(--muted)}
.gtw-hero .gtw-hero__intro{font-size:1.1875rem;line-height:1.55;color:var(--muted);margin-top:16px;text-wrap:pretty}
.gtw-hero h3{font-size:1.3125rem;line-height:1.3;font-weight:600;color:var(--ink)}
.gtw-hero a{color:var(--accent-strong);text-underline-offset:4px;transition:color .22s cubic-bezier(.25,1,.5,1),background-color .22s cubic-bezier(.25,1,.5,1),border-color .22s cubic-bezier(.25,1,.5,1)}
.gtw-hero a:hover{color:var(--ink)}
.gtw-hero :is(a,button,summary,[tabindex]):focus-visible{outline:3px solid var(--accent-strong);outline-offset:3px}
.gtw-hero code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.86em;background:var(--code);border:1px solid var(--hair);border-radius:4px;padding:1px 6px;color:var(--ink);overflow-wrap:anywhere}
.gtw-hero .gtw-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:46px;padding:10px 20px;border-radius:4px;border:1px solid var(--hair-strong);font-size:1rem;line-height:1.3;font-weight:600;text-decoration:none;color:var(--ink);background:var(--surface)}
.gtw-hero .gtw-btn:hover{border-color:var(--muted);color:var(--ink)}
.gtw-hero .gtw-btn--primary{background:var(--btn);border-color:var(--btn);color:var(--btn-ink)}
.gtw-hero .gtw-btn--primary:hover{background:var(--btn-hover);border-color:var(--btn-hover);color:var(--btn-ink)}
.gtw-hero .gtw-btn svg{flex:none}
.gtw-hero [hidden]{display:none!important}
.gtw-hero .screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
@media(max-width:760px){.gtw-hero{padding-block:72px}.gtw-hero .gtw-hero__head{margin-bottom:40px}.gtw-hero .gtw-hero__intro{font-size:1rem}}
@media(prefers-reduced-motion:reduce){.gtw-hero a,.gtw-hero .gtw-btn{transition:none}}


.gtw-hero{border-top:0;padding-top:88px;padding-bottom:0}
.gtw-hero::before,.gtw-hero::after{display:none}
.gtw-hero .gtw-hero__group{max-width:760px;margin:0 auto;text-align:center}
.gtw-hero h1{font-size:clamp(2.25rem, 1.5rem + 2.4vw, 3.5rem);line-height:1.08;font-weight:600;color:var(--ink);text-wrap:balance}
.gtw-hero h1 .gtw-sub{display:block;color:var(--muted)}
.gtw-hero .gtw-hero__lede{margin-top:24px;font-size:1.1875rem;line-height:1.55;color:var(--muted);text-wrap:pretty}
.gtw-hero .gtw-hero__lede p{margin:0}
.gtw-search{display:flex;align-items:center;gap:12px;max-width:640px;margin:36px auto 0;padding:8px 8px 8px 18px;border:1px solid var(--hair-strong);border-radius:12px;background:var(--surface);box-shadow:0 18px 40px -30px rgba(0,0,0,.35);color:var(--muted)}
.gtw-search:focus-within{outline:3px solid var(--accent-strong);outline-offset:3px}
.gtw-search svg{flex:none}
.gtw-search .screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.gtw-search input{flex:1;min-width:0;min-height:44px;border:0;background:none;font-size:1rem;color:var(--ink);outline:none;padding:0}
.gtw-search input::placeholder{color:var(--muted);opacity:1}
.gtw-search__count{flex:none;margin:0;padding:8px 12px;border-radius:8px;background:var(--well);font-size:.875rem;font-weight:600;color:var(--body);white-space:nowrap}
.gtw-hero .gtw-hero__meta{display:flex;justify-content:center;flex-wrap:wrap;gap:8px 20px;margin-top:20px;font-size:.875rem;color:var(--muted)}
.gtw-hero .gtw-hero__meta span{display:inline-flex;align-items:center;gap:6px}
.gtw-hero .gtw-hero__meta svg{color:var(--accent-strong)}
main.gtw-page .gtw-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:72px calc(-1 * var(--pad)) 0;border-top:1px solid var(--hair)}
main.gtw-page .gtw-stats>div{padding:30px var(--pad) 34px;text-align:center}
main.gtw-page .gtw-stats>div+div{border-left:1px solid var(--hair)}
main.gtw-page .gtw-stats dt{font-size:clamp(1.375rem, 1.2rem + 0.6vw, 1.75rem);line-height:1.1;font-weight:600;color:var(--ink)}
main.gtw-page .gtw-stats dd{margin:6px 0 0;font-size:.875rem;color:var(--muted)}
@media(max-width:700px){.gtw-hero{padding-top:60px}.gtw-hero .gtw-hero__lede{font-size:1rem}.gtw-search{padding-left:14px}main.gtw-page .gtw-stats{grid-template-columns:1fr;margin-top:48px}main.gtw-page .gtw-stats>div+div{border-left:0;border-top:1px solid var(--hair)}main.gtw-page .gtw-stats>div{padding:20px var(--pad)}}

.gtw-page,.gtw{--canvas:#fbfaf8;--surface:#fff;--well:#f3f1ed;--ink:#141414;--body:#2b2b30;--muted:#4f4f55;--hair:#e2ded7;--hair-strong:#c4bfb6;--accent:#c0392b;--accent-strong:#9b2c21;--accent-soft:color-mix(in srgb,#c0392b 8%,#fff);--accent-ink:#fff;--btn:#171717;--btn-ink:#fff;--btn-hover:#000;--code:#f6f5f2;--ok:#1e7b46;--rail:max(12px,calc(50% - 731px));--wide:1366px;--pad:48px}
html[data-theme="dark"] .gtw-page,html[data-theme="dark"] .gtw{--canvas:#0f0f0f;--surface:#171717;--well:#1d1d1d;--ink:#fafafa;--body:#e4e4e7;--muted:#babac1;--hair:#2c2c2c;--hair-strong:#4a4a4a;--accent:#da6f55;--accent-strong:#f09a87;--accent-soft:color-mix(in srgb,#da6f55 12%,#171717);--accent-ink:#111;--btn:#fafafa;--btn-ink:#111;--btn-hover:#fff;--code:#141414;--ok:#4ade80}
@media(prefers-color-scheme:dark){html:not([data-theme]) .gtw-page,html:not([data-theme]) .gtw,html[data-theme="auto"] .gtw-page,html[data-theme="auto"] .gtw{--canvas:#0f0f0f;--surface:#171717;--well:#1d1d1d;--ink:#fafafa;--body:#e4e4e7;--muted:#babac1;--hair:#2c2c2c;--hair-strong:#4a4a4a;--accent:#da6f55;--accent-strong:#f09a87;--accent-soft:color-mix(in srgb,#da6f55 12%,#171717);--accent-ink:#111;--btn:#fafafa;--btn-ink:#111;--btn-hover:#fff;--code:#141414;--ok:#4ade80}}
@media(max-width:760px){.gtw-page,.gtw{--pad:24px}}

.gtw-cats{position:relative;box-sizing:border-box;background:var(--canvas);color:var(--body);font-size:1rem;line-height:1.65;padding:96px calc(var(--rail) + var(--pad));border-top:1px solid var(--hair);scroll-margin-top:90px}
.gtw-cats *,.gtw-cats *::before,.gtw-cats *::after{box-sizing:border-box}
:where(.gtw-cats) :where(h1,h2,h3,h4,p,ul,ol,figure,dl,dd,pre,table){margin:0}
.gtw-cats::before,.gtw-cats::after{content:"";position:absolute;top:-4px;width:7px;height:7px;border:1px solid var(--hair-strong);background:var(--canvas);border-radius:50%;z-index:2}
.gtw-cats::before{left:calc(var(--rail) - 3px)}
.gtw-cats::after{right:calc(var(--rail) - 3px)}
.gtw-cats .gtw-cats__inner{max-width:var(--wide);margin-inline:auto}
.gtw-cats .gtw-cats__head{max-width:720px;margin:0 auto 56px;text-align:center}
.gtw-cats h2{font-size:clamp(1.75rem, 1.4rem + 1.1vw, 2.25rem);line-height:1.15;font-weight:600;color:var(--ink);text-wrap:balance}
.gtw-cats h2 .gtw-sub{display:block;color:var(--muted)}
.gtw-cats .gtw-cats__intro{font-size:1.1875rem;line-height:1.55;color:var(--muted);margin-top:16px;text-wrap:pretty}
.gtw-cats h3{font-size:1.3125rem;line-height:1.3;font-weight:600;color:var(--ink)}
.gtw-cats a{color:var(--accent-strong);text-underline-offset:4px;transition:color .22s cubic-bezier(.25,1,.5,1),background-color .22s cubic-bezier(.25,1,.5,1),border-color .22s cubic-bezier(.25,1,.5,1)}
.gtw-cats a:hover{color:var(--ink)}
.gtw-cats :is(a,button,summary,[tabindex]):focus-visible{outline:3px solid var(--accent-strong);outline-offset:3px}
.gtw-cats code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.86em;background:var(--code);border:1px solid var(--hair);border-radius:4px;padding:1px 6px;color:var(--ink);overflow-wrap:anywhere}
.gtw-cats .gtw-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:46px;padding:10px 20px;border-radius:4px;border:1px solid var(--hair-strong);font-size:1rem;line-height:1.3;font-weight:600;text-decoration:none;color:var(--ink);background:var(--surface)}
.gtw-cats .gtw-btn:hover{border-color:var(--muted);color:var(--ink)}
.gtw-cats .gtw-btn--primary{background:var(--btn);border-color:var(--btn);color:var(--btn-ink)}
.gtw-cats .gtw-btn--primary:hover{background:var(--btn-hover);border-color:var(--btn-hover);color:var(--btn-ink)}
.gtw-cats .gtw-btn svg{flex:none}
.gtw-cats [hidden]{display:none!important}
.gtw-cats .screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
@media(max-width:760px){.gtw-cats{padding-block:72px}.gtw-cats .gtw-cats__head{margin-bottom:40px}.gtw-cats .gtw-cats__intro{font-size:1rem}}
@media(prefers-reduced-motion:reduce){.gtw-cats a,.gtw-cats .gtw-btn{transition:none}}


.gtw-cats__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.gtw-cats .gtw-cats__grid a{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:16px;padding:22px;border:1px solid var(--hair);border-radius:14px;background:var(--surface);text-decoration:none;color:var(--ink);transition:border-color .22s cubic-bezier(.25,1,.5,1),background-color .22s cubic-bezier(.25,1,.5,1)}
.gtw-cats .gtw-cats__grid a:hover{border-color:color-mix(in srgb,var(--accent) 45%,var(--hair));background:var(--accent-soft);color:var(--ink)}
.gtw-cats__icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:12px;background:var(--well);border:1px solid var(--hair);color:var(--accent-strong)}
.gtw-cats__copy{display:grid;gap:2px;min-width:0}
.gtw-cats__copy b{font-size:1rem;font-weight:600;color:var(--ink)}
.gtw-cats__copy span{font-size:.875rem;color:var(--muted)}
.gtw-cats__go{display:flex;color:var(--muted);transition:transform .22s cubic-bezier(.25,1,.5,1)}
.gtw-cats__grid a:hover .gtw-cats__go{transform:translateX(4px);color:var(--accent-strong)}
@media(max-width:1000px){.gtw-cats__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.gtw-cats__grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.gtw-cats .gtw-cats__grid a,.gtw-cats__go{transition:none}}

.gtw-page,.gtw{--canvas:#fbfaf8;--surface:#fff;--well:#f3f1ed;--ink:#141414;--body:#2b2b30;--muted:#4f4f55;--hair:#e2ded7;--hair-strong:#c4bfb6;--accent:#c0392b;--accent-strong:#9b2c21;--accent-soft:color-mix(in srgb,#c0392b 8%,#fff);--accent-ink:#fff;--btn:#171717;--btn-ink:#fff;--btn-hover:#000;--code:#f6f5f2;--ok:#1e7b46;--rail:max(12px,calc(50% - 731px));--wide:1366px;--pad:48px}
html[data-theme="dark"] .gtw-page,html[data-theme="dark"] .gtw{--canvas:#0f0f0f;--surface:#171717;--well:#1d1d1d;--ink:#fafafa;--body:#e4e4e7;--muted:#babac1;--hair:#2c2c2c;--hair-strong:#4a4a4a;--accent:#da6f55;--accent-strong:#f09a87;--accent-soft:color-mix(in srgb,#da6f55 12%,#171717);--accent-ink:#111;--btn:#fafafa;--btn-ink:#111;--btn-hover:#fff;--code:#141414;--ok:#4ade80}
@media(prefers-color-scheme:dark){html:not([data-theme]) .gtw-page,html:not([data-theme]) .gtw,html[data-theme="auto"] .gtw-page,html[data-theme="auto"] .gtw{--canvas:#0f0f0f;--surface:#171717;--well:#1d1d1d;--ink:#fafafa;--body:#e4e4e7;--muted:#babac1;--hair:#2c2c2c;--hair-strong:#4a4a4a;--accent:#da6f55;--accent-strong:#f09a87;--accent-soft:color-mix(in srgb,#da6f55 12%,#171717);--accent-ink:#111;--btn:#fafafa;--btn-ink:#111;--btn-hover:#fff;--code:#141414;--ok:#4ade80}}
@media(max-width:760px){.gtw-page,.gtw{--pad:24px}}

.gtw-dir{position:relative;box-sizing:border-box;background:var(--canvas);color:var(--body);font-size:1rem;line-height:1.65;padding:96px calc(var(--rail) + var(--pad));border-top:1px solid var(--hair);scroll-margin-top:90px}
.gtw-dir *,.gtw-dir *::before,.gtw-dir *::after{box-sizing:border-box}
:where(.gtw-dir) :where(h1,h2,h3,h4,p,ul,ol,figure,dl,dd,pre,table){margin:0}
.gtw-dir::before,.gtw-dir::after{content:"";position:absolute;top:-4px;width:7px;height:7px;border:1px solid var(--hair-strong);background:var(--canvas);border-radius:50%;z-index:2}
.gtw-dir::before{left:calc(var(--rail) - 3px)}
.gtw-dir::after{right:calc(var(--rail) - 3px)}
.gtw-dir .gtw-dir__inner{max-width:var(--wide);margin-inline:auto}
.gtw-dir .gtw-dir__head{max-width:720px;margin:0 auto 56px;text-align:center}
.gtw-dir h2{font-size:clamp(1.75rem, 1.4rem + 1.1vw, 2.25rem);line-height:1.15;font-weight:600;color:var(--ink);text-wrap:balance}
.gtw-dir h2 .gtw-sub{display:block;color:var(--muted)}
.gtw-dir .gtw-dir__intro{font-size:1.1875rem;line-height:1.55;color:var(--muted);margin-top:16px;text-wrap:pretty}
.gtw-dir h3{font-size:1.3125rem;line-height:1.3;font-weight:600;color:var(--ink)}
.gtw-dir a{color:var(--accent-strong);text-underline-offset:4px;transition:color .22s cubic-bezier(.25,1,.5,1),background-color .22s cubic-bezier(.25,1,.5,1),border-color .22s cubic-bezier(.25,1,.5,1)}
.gtw-dir a:hover{color:var(--ink)}
.gtw-dir :is(a,button,summary,[tabindex]):focus-visible{outline:3px solid var(--accent-strong);outline-offset:3px}
.gtw-dir code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.86em;background:var(--code);border:1px solid var(--hair);border-radius:4px;padding:1px 6px;color:var(--ink);overflow-wrap:anywhere}
.gtw-dir .gtw-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:46px;padding:10px 20px;border-radius:4px;border:1px solid var(--hair-strong);font-size:1rem;line-height:1.3;font-weight:600;text-decoration:none;color:var(--ink);background:var(--surface)}
.gtw-dir .gtw-btn:hover{border-color:var(--muted);color:var(--ink)}
.gtw-dir .gtw-btn--primary{background:var(--btn);border-color:var(--btn);color:var(--btn-ink)}
.gtw-dir .gtw-btn--primary:hover{background:var(--btn-hover);border-color:var(--btn-hover);color:var(--btn-ink)}
.gtw-dir .gtw-btn svg{flex:none}
.gtw-dir [hidden]{display:none!important}
.gtw-dir .screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
@media(max-width:760px){.gtw-dir{padding-block:72px}.gtw-dir .gtw-dir__head{margin-bottom:40px}.gtw-dir .gtw-dir__intro{font-size:1rem}}
@media(prefers-reduced-motion:reduce){.gtw-dir a,.gtw-dir .gtw-btn{transition:none}}


.gtw-dir__grid{columns:2 420px;column-gap:20px}
.gtw-dir__group{display:block;break-inside:avoid;margin:0 0 20px;border:1px solid var(--hair);border-radius:14px;background:var(--surface);overflow:hidden}
.gtw-dir__gh{display:flex;align-items:center;gap:12px;padding:16px 20px;border-bottom:1px solid var(--hair);background:var(--well)}
.gtw-dir__gh svg{color:var(--accent-strong);flex:none}
.gtw-dir h3{flex:1;font-size:1rem}
.gtw-dir__gh span{font-size:.75rem;font-weight:600;color:var(--accent-strong);background:var(--accent-soft);border-radius:999px;padding:2px 9px}
.gtw-dir__group ul{list-style:none;margin:0;padding:0}
.gtw-dir__group li+li{border-top:1px solid var(--hair)}
.gtw-dir .gtw-dir__group a{display:grid;grid-template-columns:1fr auto;align-items:center;gap:4px 16px;padding:14px 20px;text-decoration:none}
.gtw-dir .gtw-dir__group a:hover{background:var(--accent-soft)}
.gtw-dir__t{font-size:1rem;font-weight:600;color:var(--ink)}
.gtw-dir__d{grid-column:1;font-size:.875rem;line-height:1.5;color:var(--muted)}
.gtw-dir__go{grid-column:2;grid-row:1 / span 2;display:flex;color:var(--muted)}
.gtw-dir__group a:hover .gtw-dir__t,.gtw-dir__group a:hover .gtw-dir__go{color:var(--accent-strong)}
.gtw-dir .gtw-dir__empty{padding:32px 0;text-align:center;color:var(--muted)}
.gtw-dir__index.is-single{columns:1;max-width:760px;margin-inline:auto}
@media(max-width:860px){.gtw-dir__grid{columns:1}}

.gtw-page,.gtw{--canvas:#fbfaf8;--surface:#fff;--well:#f3f1ed;--ink:#141414;--body:#2b2b30;--muted:#4f4f55;--hair:#e2ded7;--hair-strong:#c4bfb6;--accent:#c0392b;--accent-strong:#9b2c21;--accent-soft:color-mix(in srgb,#c0392b 8%,#fff);--accent-ink:#fff;--btn:#171717;--btn-ink:#fff;--btn-hover:#000;--code:#f6f5f2;--ok:#1e7b46;--rail:max(12px,calc(50% - 731px));--wide:1366px;--pad:48px}
html[data-theme="dark"] .gtw-page,html[data-theme="dark"] .gtw{--canvas:#0f0f0f;--surface:#171717;--well:#1d1d1d;--ink:#fafafa;--body:#e4e4e7;--muted:#babac1;--hair:#2c2c2c;--hair-strong:#4a4a4a;--accent:#da6f55;--accent-strong:#f09a87;--accent-soft:color-mix(in srgb,#da6f55 12%,#171717);--accent-ink:#111;--btn:#fafafa;--btn-ink:#111;--btn-hover:#fff;--code:#141414;--ok:#4ade80}
@media(prefers-color-scheme:dark){html:not([data-theme]) .gtw-page,html:not([data-theme]) .gtw,html[data-theme="auto"] .gtw-page,html[data-theme="auto"] .gtw{--canvas:#0f0f0f;--surface:#171717;--well:#1d1d1d;--ink:#fafafa;--body:#e4e4e7;--muted:#babac1;--hair:#2c2c2c;--hair-strong:#4a4a4a;--accent:#da6f55;--accent-strong:#f09a87;--accent-soft:color-mix(in srgb,#da6f55 12%,#171717);--accent-ink:#111;--btn:#fafafa;--btn-ink:#111;--btn-hover:#fff;--code:#141414;--ok:#4ade80}}
@media(max-width:760px){.gtw-page,.gtw{--pad:24px}}

.gtw-guide{position:relative;box-sizing:border-box;background:var(--canvas);color:var(--body);font-size:1rem;line-height:1.65;padding:96px calc(var(--rail) + var(--pad));border-top:1px solid var(--hair);scroll-margin-top:90px}
.gtw-guide *,.gtw-guide *::before,.gtw-guide *::after{box-sizing:border-box}
:where(.gtw-guide) :where(h1,h2,h3,h4,p,ul,ol,figure,dl,dd,pre,table){margin:0}
.gtw-guide::before,.gtw-guide::after{content:"";position:absolute;top:-4px;width:7px;height:7px;border:1px solid var(--hair-strong);background:var(--canvas);border-radius:50%;z-index:2}
.gtw-guide::before{left:calc(var(--rail) - 3px)}
.gtw-guide::after{right:calc(var(--rail) - 3px)}
.gtw-guide .gtw-guide__inner{max-width:var(--wide);margin-inline:auto}
.gtw-guide .gtw-guide__head{max-width:720px;margin:0 auto 56px;text-align:center}
.gtw-guide h2{font-size:clamp(1.75rem, 1.4rem + 1.1vw, 2.25rem);line-height:1.15;font-weight:600;color:var(--ink);text-wrap:balance}
.gtw-guide h2 .gtw-sub{display:block;color:var(--muted)}
.gtw-guide .gtw-guide__intro{font-size:1.1875rem;line-height:1.55;color:var(--muted);margin-top:16px;text-wrap:pretty}
.gtw-guide h3{font-size:1.3125rem;line-height:1.3;font-weight:600;color:var(--ink)}
.gtw-guide a{color:var(--accent-strong);text-underline-offset:4px;transition:color .22s cubic-bezier(.25,1,.5,1),background-color .22s cubic-bezier(.25,1,.5,1),border-color .22s cubic-bezier(.25,1,.5,1)}
.gtw-guide a:hover{color:var(--ink)}
.gtw-guide :is(a,button,summary,[tabindex]):focus-visible{outline:3px solid var(--accent-strong);outline-offset:3px}
.gtw-guide code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.86em;background:var(--code);border:1px solid var(--hair);border-radius:4px;padding:1px 6px;color:var(--ink);overflow-wrap:anywhere}
.gtw-guide .gtw-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:46px;padding:10px 20px;border-radius:4px;border:1px solid var(--hair-strong);font-size:1rem;line-height:1.3;font-weight:600;text-decoration:none;color:var(--ink);background:var(--surface)}
.gtw-guide .gtw-btn:hover{border-color:var(--muted);color:var(--ink)}
.gtw-guide .gtw-btn--primary{background:var(--btn);border-color:var(--btn);color:var(--btn-ink)}
.gtw-guide .gtw-btn--primary:hover{background:var(--btn-hover);border-color:var(--btn-hover);color:var(--btn-ink)}
.gtw-guide .gtw-btn svg{flex:none}
.gtw-guide [hidden]{display:none!important}
.gtw-guide .screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
@media(max-width:760px){.gtw-guide{padding-block:72px}.gtw-guide .gtw-guide__head{margin-bottom:40px}.gtw-guide .gtw-guide__intro{font-size:1rem}}
@media(prefers-reduced-motion:reduce){.gtw-guide a,.gtw-guide .gtw-btn{transition:none}}


.gtw-guide__grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:64px;align-items:start}
.gtw-guide .gtw-guide__intro{margin-top:16px;font-size:1.1875rem;line-height:1.55;color:var(--muted)}
.gtw-guide__note{display:flex;gap:16px;padding:24px;border:1px solid var(--hair);border-radius:14px;background:var(--well)}
.gtw-guide__note>span{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:10px;background:var(--surface);border:1px solid var(--hair);color:var(--accent-strong);flex:none}
.gtw-guide__note p{font-size:1rem;line-height:1.65;color:var(--body)}
.gtw-guide__note p+p{margin-top:12px}
@media(max-width:860px){.gtw-guide__grid{grid-template-columns:1fr;gap:28px}}

.gtw-page,.gtw{--canvas:#fbfaf8;--surface:#fff;--well:#f3f1ed;--ink:#141414;--body:#2b2b30;--muted:#4f4f55;--hair:#e2ded7;--hair-strong:#c4bfb6;--accent:#c0392b;--accent-strong:#9b2c21;--accent-soft:color-mix(in srgb,#c0392b 8%,#fff);--accent-ink:#fff;--btn:#171717;--btn-ink:#fff;--btn-hover:#000;--code:#f6f5f2;--ok:#1e7b46;--rail:max(12px,calc(50% - 731px));--wide:1366px;--pad:48px}
html[data-theme="dark"] .gtw-page,html[data-theme="dark"] .gtw{--canvas:#0f0f0f;--surface:#171717;--well:#1d1d1d;--ink:#fafafa;--body:#e4e4e7;--muted:#babac1;--hair:#2c2c2c;--hair-strong:#4a4a4a;--accent:#da6f55;--accent-strong:#f09a87;--accent-soft:color-mix(in srgb,#da6f55 12%,#171717);--accent-ink:#111;--btn:#fafafa;--btn-ink:#111;--btn-hover:#fff;--code:#141414;--ok:#4ade80}
@media(prefers-color-scheme:dark){html:not([data-theme]) .gtw-page,html:not([data-theme]) .gtw,html[data-theme="auto"] .gtw-page,html[data-theme="auto"] .gtw{--canvas:#0f0f0f;--surface:#171717;--well:#1d1d1d;--ink:#fafafa;--body:#e4e4e7;--muted:#babac1;--hair:#2c2c2c;--hair-strong:#4a4a4a;--accent:#da6f55;--accent-strong:#f09a87;--accent-soft:color-mix(in srgb,#da6f55 12%,#171717);--accent-ink:#111;--btn:#fafafa;--btn-ink:#111;--btn-hover:#fff;--code:#141414;--ok:#4ade80}}
@media(max-width:760px){.gtw-page,.gtw{--pad:24px}}

.gtw-faq{position:relative;box-sizing:border-box;background:var(--canvas);color:var(--body);font-size:1rem;line-height:1.65;padding:96px calc(var(--rail) + var(--pad));border-top:1px solid var(--hair);scroll-margin-top:90px}
.gtw-faq *,.gtw-faq *::before,.gtw-faq *::after{box-sizing:border-box}
:where(.gtw-faq) :where(h1,h2,h3,h4,p,ul,ol,figure,dl,dd,pre,table){margin:0}
.gtw-faq::before,.gtw-faq::after{content:"";position:absolute;top:-4px;width:7px;height:7px;border:1px solid var(--hair-strong);background:var(--canvas);border-radius:50%;z-index:2}
.gtw-faq::before{left:calc(var(--rail) - 3px)}
.gtw-faq::after{right:calc(var(--rail) - 3px)}
.gtw-faq .gtw-faq__inner{max-width:var(--wide);margin-inline:auto}
.gtw-faq .gtw-faq__head{max-width:720px;margin:0 auto 56px;text-align:center}
.gtw-faq h2{font-size:clamp(1.75rem, 1.4rem + 1.1vw, 2.25rem);line-height:1.15;font-weight:600;color:var(--ink);text-wrap:balance}
.gtw-faq h2 .gtw-sub{display:block;color:var(--muted)}
.gtw-faq .gtw-faq__intro{font-size:1.1875rem;line-height:1.55;color:var(--muted);margin-top:16px;text-wrap:pretty}
.gtw-faq h3{font-size:1.3125rem;line-height:1.3;font-weight:600;color:var(--ink)}
.gtw-faq a{color:var(--accent-strong);text-underline-offset:4px;transition:color .22s cubic-bezier(.25,1,.5,1),background-color .22s cubic-bezier(.25,1,.5,1),border-color .22s cubic-bezier(.25,1,.5,1)}
.gtw-faq a:hover{color:var(--ink)}
.gtw-faq :is(a,button,summary,[tabindex]):focus-visible{outline:3px solid var(--accent-strong);outline-offset:3px}
.gtw-faq code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.86em;background:var(--code);border:1px solid var(--hair);border-radius:4px;padding:1px 6px;color:var(--ink);overflow-wrap:anywhere}
.gtw-faq .gtw-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:46px;padding:10px 20px;border-radius:4px;border:1px solid var(--hair-strong);font-size:1rem;line-height:1.3;font-weight:600;text-decoration:none;color:var(--ink);background:var(--surface)}
.gtw-faq .gtw-btn:hover{border-color:var(--muted);color:var(--ink)}
.gtw-faq .gtw-btn--primary{background:var(--btn);border-color:var(--btn);color:var(--btn-ink)}
.gtw-faq .gtw-btn--primary:hover{background:var(--btn-hover);border-color:var(--btn-hover);color:var(--btn-ink)}
.gtw-faq .gtw-btn svg{flex:none}
.gtw-faq [hidden]{display:none!important}
.gtw-faq .screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
@media(max-width:760px){.gtw-faq{padding-block:72px}.gtw-faq .gtw-faq__head{margin-bottom:40px}.gtw-faq .gtw-faq__intro{font-size:1rem}}
@media(prefers-reduced-motion:reduce){.gtw-faq a,.gtw-faq .gtw-btn{transition:none}}


main.gtw-page .gtw-faq__grid{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:64px;align-items:start}
main.gtw-page .gtw-faq main.gtw-page .gtw-faq__intro{margin-top:16px;font-size:1.1875rem;line-height:1.55;color:var(--muted)}
main.gtw-page .gtw-faq main.gtw-page .gtw-faq__contact{margin-top:24px;font-size:.875rem;color:var(--muted)}
main.gtw-page .gtw-faq__list{display:grid;gap:12px}
main.gtw-page .gtw-faq details{background:var(--surface);border:1px solid var(--hair);border-radius:10px}
main.gtw-page .gtw-faq summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:68px;padding:20px 24px;cursor:pointer;font-size:1rem;font-weight:600;line-height:1.4;color:var(--ink);border-radius:9px;transition:background-color .22s cubic-bezier(.25,1,.5,1)}
main.gtw-page .gtw-faq summary::-webkit-details-marker{display:none}
main.gtw-page .gtw-faq summary:hover{background:var(--accent-soft)}
main.gtw-page .gtw-faq summary>span{position:relative;flex:none;width:28px;height:28px;border-radius:6px;border:1px solid var(--hair);background:var(--well)}
main.gtw-page .gtw-faq summary>span::before,main.gtw-page .gtw-faq summary>span::after{content:"";position:absolute;left:50%;top:50%;width:10px;height:2px;margin:-1px 0 0 -5px;background:var(--accent-strong);border-radius:1px;transition:transform .16s}
main.gtw-page .gtw-faq summary>span::after{transform:rotate(90deg)}
main.gtw-page .gtw-faq details[open]{border-color:color-mix(in srgb,var(--accent) 45%,var(--hair))}
main.gtw-page .gtw-faq details[open] summary{background:var(--accent-soft);border-bottom:1px solid color-mix(in srgb,var(--accent) 30%,var(--hair));border-radius:9px 9px 0 0}
main.gtw-page .gtw-faq details[open] summary>span{background:var(--accent);border-color:var(--accent)}
main.gtw-page .gtw-faq details[open] summary>span::before,main.gtw-page .gtw-faq details[open] summary>span::after{background:var(--accent-ink)}
main.gtw-page .gtw-faq details[open] summary>span::after{transform:rotate(0)}
main.gtw-page .gtw-faq main.gtw-page .gtw-faq__a{padding:20px 24px 24px}
main.gtw-page .gtw-faq main.gtw-page .gtw-faq__a p{font-size:1rem;line-height:1.7;color:var(--body)}
@media(max-width:959px){main.gtw-page .gtw-faq__grid{grid-template-columns:1fr;gap:32px}main.gtw-page .gtw-faq__aside{text-align:center}}
@media(max-width:640px){main.gtw-page .gtw-faq summary{padding:18px 20px}main.gtw-page .gtw-faq main.gtw-page .gtw-faq__a{padding:18px 20px 20px}main.gtw-page .gtw-faq main.gtw-page .gtw-faq__intro{font-size:1rem}}
@media(prefers-reduced-motion:reduce){main.gtw-page .gtw-faq summary,main.gtw-page .gtw-faq summary>span::before,main.gtw-page .gtw-faq summary>span::after{transition:none}}


/* Theme reset: md-local styles details/summary, content margins and list items globally. */
main.gtw-page :is(h1,h2,h3,h4,p,ul,ol,li,dl,dd,figure){margin:0}
main.gtw-page details{margin:0;padding:0}
main.gtw-page details summary{margin:0}
main.gtw-page .gtw-search input,main.gtw-page .gtw-search input:hover,main.gtw-page .gtw-search input:focus{-webkit-appearance:none;appearance:none;margin:0;padding:0;height:44px;line-height:1.4;border:0;border-radius:0;box-shadow:none;outline:none;background:transparent;color:var(--ink);font-size:1rem}
main.gtw-page .gtw-search{min-height:62px}
main.gtw-page .gtw-search{position:relative}
.gtw-suggest{position:absolute;left:0;right:0;top:calc(100% + 8px);z-index:20;list-style:none;margin:0;padding:6px;border:1px solid var(--hair-strong);border-radius:12px;background:var(--surface);box-shadow:0 24px 48px -24px rgba(0,0,0,.35);text-align:left;max-height:360px;overflow:auto}
main.gtw-page .gtw-suggest li{margin:0}
main.gtw-page .gtw-suggest a{display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:44px;padding:10px 12px;border-radius:8px;text-decoration:none;color:var(--ink)}
main.gtw-page .gtw-suggest [aria-selected="true"] a,main.gtw-page .gtw-suggest a:hover{background:var(--accent-soft);color:var(--ink)}
.gtw-suggest__t{font-size:1rem;font-weight:600;color:var(--ink);min-width:0}
main.gtw-page .gtw-suggest mark{background:none;color:var(--accent-strong);padding:0;font-weight:600}
.gtw-suggest__g{flex:none;font-size:.75rem;color:var(--muted);white-space:nowrap}
main.gtw-page .gtw-suggest__none{padding:12px;font-size:.875rem;color:var(--muted)}
@media(max-width:600px){.gtw-suggest__g{display:none}}
main.gtw-page details summary:hover{color:var(--ink)}
main.gtw-page details summary::after,main.gtw-page details[open] summary::after{content:none;display:none}
main.gtw-page details>:not(summary),main.gtw-page details>:not(summary):last-child{padding:0}
main.gtw-page .gtw-faq .gtw-faq__a{padding:20px 24px 24px}
main.gtw-page .gtw-guide__note p+p{margin-top:12px}
main.gtw-page .gtw-hero .gtw-hero__lede p+p{margin-top:12px}
@media(max-width:640px){main.gtw-page .gtw-faq .gtw-faq__a{padding:18px 20px 20px}}
