@import "https://fonts.googleapis.com/css2?family=Gelasio:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500;1,600;1,700&family=Lato:ital,wght@0,100;0,300;0,400;0,700;0,900;1,100;1,300;1,400;1,700&display=swap";:root,[data-theme=dark]{--color-primary:#cc2b2b;--color-primary-strong:#e23b3b;--color-primary-soft:#cc2b2b1f;--color-bg-dark:#181818;--color-bg-medium:#222;--color-surface:#1e1d1d;--color-border:#ffffff14;--color-border-hover:var(--color-primary);--color-text-light:#fff;--color-text-dim:#ffffffa3;--shadow-card:0 10px 30px #00000073;--shadow-card-hover:0 16px 40px #0000008c;--nav-bg:#0a0a0ad9;--badge-bg:#ffffff0a;--hero-scrim:linear-gradient(#18181873, #181818b3);--name-shadow:0 4px 8px #0009;--glow:#cc2b2bcc;--media-bg:radial-gradient(circle at 50% 0%, #2c2c2c, #0f0f0f);--bezel:#1c1c1c;--term-bg:#0e0e0e;--term-header:#1a1a1a;--term-text:#ffffffc7;--color-bg-darker:#161616;--color-bg-card:#393535;--color-text-muted:#ffffffb8;--color-shadow:#999;--color-shadow-active:#666;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-theme=light]{--color-primary:#2563eb;--color-primary-strong:#1d4ed8;--color-primary-soft:#2563eb1a;--color-bg-dark:#fff;--color-bg-medium:#f4f7fc;--color-surface:#fff;--color-border:#0f172a1a;--color-border-hover:var(--color-primary);--color-text-light:#0f172a;--color-text-dim:#475569;--shadow-card:0 10px 30px #0f172a1a;--shadow-card-hover:0 16px 40px #0f172a29;--nav-bg:#ffffffd9;--badge-bg:#0f172a0a;--hero-scrim:linear-gradient(#f4f7fc4d, #f4f7fca6);--name-shadow:0 2px 10px #2563eb38;--glow:#2563eb8c;--media-bg:radial-gradient(circle at 50% 0%, #eef2f8, #dbe3ee);--bezel:#1c1c1c;--term-bg:#f8fafc;--term-header:#eef2f8;--term-text:#475569;--color-bg-darker:#eef2f8;--color-bg-card:#fff;--color-text-muted:#475569;--color-shadow:#0f172a2e;--color-shadow-active:#0f172a4d;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root{--font-heading:"Gelasio", serif;--font-body:"Lato", sans-serif;--font-mono:"Courier New", monospace;--content-max:1120px;--content-pad:clamp(1.25rem, 5vw, 4rem);--space-section:clamp(3rem, 8vw, 8rem);--gap-card:clamp(1rem, 4vw, 1.5rem);--tap-target:44px;--space-1:.5rem;--space-2:1rem;--space-3:1.5rem;--space-4:2rem;--space-5:3rem;--space-6:4rem;--space-7:6rem;--radius-card:16px;--radius-pill:999px;--fs-display:clamp(2.5rem, 7vw, 5rem);--fs-h2:clamp(2rem, 4.5vw, 3.25rem);--fs-h3:clamp(1.25rem, 2vw, 1.6rem);--fs-eyebrow:.8rem;scroll-behavior:smooth}*{box-sizing:border-box}html{scroll-behavior:smooth;font-family:var(--font-heading);scroll-padding-top:80px}body{font-family:var(--font-body);color:var(--color-text-light);text-align:left;background-color:var(--color-bg-dark);margin:0;font-size:1rem;font-weight:400;line-height:1.5;transition:background-color .35s,color .35s;overflow-x:clip}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.button{font-family:var(--font-heading);background-color:var(--color-bg-darker);color:var(--color-text-light);text-align:center;cursor:pointer;width:250px;box-shadow:0 9px var(--color-shadow);border:none;border-radius:15px;margin:10px 5px;padding:20px;font-size:25px;transition:transform .2s ease-out,box-shadow .2s ease-out}.button span{cursor:pointer;transition:all .2s;display:inline-block;position:relative}.button:hover{box-shadow:0 12px var(--color-shadow), 0 0 12px #cc2b2b40;transform:translateY(-3px)}.button:active{box-shadow:0 5px var(--color-shadow-active);background-color:#242323;transform:translateY(4px)}.button:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;color:var(--color-primary)}.wrap{width:100%;max-width:var(--content-max);padding-inline:var(--content-pad);margin-inline:auto}.section{padding-block:var(--space-section);transition:background-color .35s;position:relative}.eyebrow{font-family:var(--font-body);font-weight:700;font-size:var(--fs-eyebrow);letter-spacing:.18em;text-transform:uppercase;color:var(--color-primary);margin:0 0 .75rem}.spine-h{font-family:var(--font-heading);font-weight:700;font-size:var(--fs-h2);letter-spacing:-.01em;margin:0;line-height:1.1}.spine-h .bracket{color:var(--color-primary);font-family:var(--font-mono);font-weight:400}.spine-h:after{content:"";background:var(--color-primary);border-radius:2px;width:64px;height:4px;margin-top:1rem;display:block}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);box-shadow:var(--shadow-card);transition:transform .25s ease-out,border-color .25s ease-out,box-shadow .25s ease-out,background-color .35s}.card:hover{border-color:var(--color-primary);box-shadow:var(--shadow-card-hover);transform:translateY(-4px)}.btn{font-family:var(--font-heading);border:1px solid var(--color-primary);cursor:pointer;border-radius:12px;align-items:center;gap:.5rem;padding:.85rem 1.5rem;font-size:1.05rem;transition:transform .2s ease-out,background .2s,color .2s;display:inline-flex}.btn--primary{background:var(--color-primary);color:#fff}.btn--ghost{color:var(--color-text-light);background:0 0}.btn:hover{transform:translateY(-3px)}.btn--ghost:hover{color:var(--color-primary)}.btn--primary:hover{color:#fff}.btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.fade-in{opacity:0;transition:opacity .6s ease-out,transform .6s ease-out;transform:translateY(24px)}.fade-in--visible{opacity:1;transform:translateY(0)}@media (prefers-reduced-motion:reduce){.fade-in{opacity:1;transition:none;transform:none}body,.section,.card,.nav-bar,footer{transition:none}}.nav-bar{z-index:50;background-color:var(--nav-bg);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:2px solid var(--color-primary);transition:background-color .3s;position:fixed;top:0;left:0;right:0}.nav-inner{max-width:var(--content-max);padding:.6rem var(--content-pad);flex-wrap:wrap;align-items:center;gap:.5rem;margin:0 auto;display:flex}.logo{font-family:var(--font-mono);letter-spacing:1px;color:var(--color-primary);align-items:baseline;margin-right:auto;font-size:1.4rem;font-weight:700;transition:text-shadow .2s,letter-spacing .2s;display:inline-flex}.logo .logo-lab{color:var(--color-text-light)}.logo .logo-caret{background:var(--color-primary);width:9px;height:1.05em;margin-left:3px;animation:1.05s step-end infinite caret-blink;display:inline-block;transform:translateY(2px)}@keyframes caret-blink{50%{opacity:0}}.logo:hover{text-shadow:0 0 10px var(--glow);letter-spacing:2px;color:var(--color-primary)}.logo:focus-visible{outline:2px solid var(--color-primary);outline-offset:4px}.theme-toggle{width:var(--tap-target);height:var(--tap-target);border:1px solid var(--color-border);color:var(--color-text-light);cursor:pointer;background:0 0;border-radius:10px;place-items:center;font-size:1.1rem;line-height:1;transition:border-color .2s,color .2s,transform .2s;display:grid}.theme-toggle:hover{border-color:var(--color-primary);color:var(--color-primary);transform:translateY(-2px)}.theme-toggle:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.nav-bar-links{flex-direction:column;flex-basis:100%;align-items:flex-start;gap:0;margin:.5rem 0 0;padding:0;list-style:none;display:flex}.nav-bar-links li{cursor:pointer;width:100%;position:relative}.nav-bar-links li a{width:100%;min-height:var(--tap-target);color:var(--color-text-light);align-items:center;padding:.5rem .9rem;font-size:1.05rem;text-decoration:none;display:flex;position:relative}.nav-bar-links li:before,.nav-bar-links li:after{opacity:0;color:var(--color-primary);font-family:var(--font-mono);transition:all .25s;position:absolute;top:50%;transform:translateY(-50%)}.nav-bar-links li:before{content:"<";left:-2px}.nav-bar-links li:after{content:">";right:-2px}.nav-bar-links li:hover:before{opacity:1;transform:translateY(-50%)translate(-6px)}.nav-bar-links li:hover:after{opacity:1;transform:translateY(-50%)translate(6px)}.nav-bar-links li:hover a{color:var(--color-primary)}.nav-bar-links li a:after{content:"";background:var(--color-primary);transform-origin:0;width:2rem;height:2px;transition:transform .25s ease-out;position:absolute;bottom:-4px;left:.9rem;right:auto;transform:scaleX(0)}.nav-bar-links li.is-active a{color:var(--color-primary)}.nav-bar-links li.is-active a:after{transform:scaleX(1)}.nav-bar-links li a:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.toggle-button{min-width:var(--tap-target);min-height:var(--tap-target);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex}.hamburger{width:24px;height:16px;display:block;position:relative}.hamburger span{background:var(--color-text-light);border-radius:2px;width:100%;height:2px;transition:transform .3s,opacity .2s,background .2s;position:absolute;left:0}.hamburger span:first-child{top:0}.hamburger span:nth-child(2){top:7px}.hamburger span:nth-child(3){top:14px}@media (hover:hover){.toggle-button:hover .hamburger span{background:var(--color-primary)}}.toggle-button.is-open .hamburger span:first-child{transform:translateY(7px)rotate(45deg)}.toggle-button.is-open .hamburger span:nth-child(2){opacity:0}.toggle-button.is-open .hamburger span:nth-child(3){transform:translateY(-7px)rotate(-45deg)}.toggle-button:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}@media screen and (width>=800px){.toggle-button{display:none}.nav-bar-links{flex-direction:row;flex-basis:auto;order:1;align-items:center;gap:.25rem;margin-top:0}.theme-toggle{order:2}.nav-bar-links li{width:auto}.nav-bar-links li a{width:auto;min-height:auto;padding:.4rem .9rem;display:inline-flex}.nav-bar-links li a:after{transform-origin:50%;width:auto;left:0;right:0}}@media (prefers-reduced-motion:reduce){.logo .logo-caret{animation:none}.nav-bar-links li a:after,.hamburger span{transition:none}}.home-sect{background-color:var(--color-bg-medium);min-height:100svh;color:var(--color-text-light);align-items:flex-start;padding-block:96px 56px;display:flex;position:relative;overflow:hidden}.particles{z-index:0;width:100%;height:100%;position:absolute;inset:0}.home-sect:before{content:"";z-index:1;background:var(--hero-scrim);pointer-events:none;position:absolute;inset:0}.home-sect:after{content:"";z-index:1;background:linear-gradient(to bottom, transparent, var(--color-bg-dark));pointer-events:none;height:140px;position:absolute;bottom:0;left:0;right:0}.hero-grid{z-index:2;grid-template-columns:1fr;align-items:center;gap:clamp(2rem,5vw,5rem);display:grid;position:relative}.hero-text{text-align:left}.home-sect h1.intro{font-family:var(--font-heading);font-weight:700;font-size:var(--fs-display);letter-spacing:-.02em;margin:.5rem 0 .75rem;line-height:1.05}.home-sect .name{color:var(--color-primary);text-shadow:var(--name-shadow);font-weight:700}.home-sect .subtitle{color:var(--color-text-dim);margin:0;font-size:clamp(1.1rem,2vw,1.5rem)}.home-sect .subtitle .sep{color:var(--color-primary)}.hero-blurb{max-width:54ch;color:var(--color-text-dim);margin:1.5rem 0 2rem;font-size:1.1rem;line-height:1.7}.hero-cta{flex-wrap:wrap;gap:1rem;display:flex}.hero-cta .btn--primary:after{content:" →"}.hero-social{justify-content:center;gap:.75rem;margin-top:2rem;display:flex}.hero-social a{width:var(--tap-target);height:var(--tap-target);border:1px solid var(--color-border);color:var(--color-text-dim);border-radius:50%;place-items:center;font-size:1.25rem;transition:border-color .2s,color .2s,transform .2s;display:grid}.hero-social a:hover{border-color:var(--color-primary);color:var(--color-primary);transform:translateY(-3px)}.hero-social a:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.hero-portrait{aspect-ratio:4/4.4;object-fit:cover;object-position:center 55%;border:1px solid var(--color-border);width:100%;max-width:320px;box-shadow:var(--shadow-card);border-radius:24px;justify-self:center;margin-top:2rem}@media screen and (width>=900px){.home-sect{align-items:center;padding-block:80px}.hero-grid{grid-template-columns:1.15fr .85fr}.hero-portrait{justify-self:auto;max-width:none;margin-top:0}.hero-social{justify-content:flex-start}}.about-sect{background-color:var(--color-bg-dark);color:var(--color-text-light);position:relative}.about-sect:after{content:"";background:linear-gradient(to bottom, transparent, var(--color-bg-medium));pointer-events:none;z-index:1;width:100%;height:80px;position:absolute;bottom:0;left:0}.about-lead{max-width:60ch;font-family:var(--font-body);color:var(--color-text-light);margin:2.5rem 0 .5rem;font-size:clamp(1.1rem,1.6vw,1.35rem);line-height:1.6}.about-lead b{font-weight:700}.manifesto{margin-top:2rem}.manifesto-item{border-top:1px solid var(--color-border);gap:1rem;padding:1.6rem 0;display:flex}.manifesto-item:last-child{border-bottom:1px solid var(--color-border)}.manifesto-num{min-width:2rem;font-family:var(--font-mono);letter-spacing:.1em;color:var(--color-primary);padding-top:.6rem;font-size:.85rem;font-weight:700}.manifesto-text{font-family:var(--font-heading);font-size:clamp(1.3rem,2.6vw,2.05rem);line-height:1.28}.manifesto-text b{color:var(--color-primary);font-weight:700}.manifesto-text small{font-family:var(--font-body);color:var(--color-text-dim);margin-top:.4rem;font-size:.95rem;display:block}@media screen and (width>=600px){.manifesto-item{gap:1.5rem}.manifesto-num{min-width:3rem}}.skills-sect{background-color:var(--color-bg-medium);color:var(--color-text-light)}.skills-grid{gap:var(--gap-card);grid-template-columns:1fr;margin-top:3rem;display:grid}.skill-card{padding:1.75rem}.category-title{font-family:var(--font-heading);color:var(--color-primary);border-bottom:1px solid var(--color-border);margin:0 0 1rem;padding-bottom:.5rem;font-size:1.2rem}.skill-badges{flex-wrap:wrap;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.badge{font-family:var(--font-body);color:var(--color-text-dim);background-color:var(--badge-bg);border-radius:var(--radius-pill);border:1px solid var(--color-border);padding:.3rem .75rem;font-size:.8rem;transition:border-color .2s ease-out,color .2s ease-out}.badge:hover{border-color:var(--color-primary);color:var(--color-text-light)}@media screen and (width>=900px){.skills-grid{grid-template-columns:repeat(2,1fr)}}.tooltip{justify-content:center;align-items:center;display:inline-flex;position:relative}.tooltip:after{content:attr(data-tooltip);white-space:nowrap;font-family:var(--font-body);color:var(--color-text-light);background-color:var(--color-bg-darker);box-shadow:0 0 8px var(--glow);opacity:0;pointer-events:none;z-index:10;border-radius:8px;padding:4px 12px;font-size:.8rem;transition:opacity .25s ease-out,transform .25s ease-out;position:absolute;bottom:-36px;left:50%;transform:translate(-50%)translateY(4px)}.tooltip:hover:after,.tooltip:focus-within:after{opacity:1;transform:translate(-50%)translateY(0)}.tooltip--top:after{top:-36px;bottom:auto;transform:translate(-50%)translateY(-4px)}.tooltip--top:hover:after,.tooltip--top:focus-within:after{transform:translate(-50%)translateY(0)}.exp-card{border-left:3px solid #0000;width:100%;padding:2rem}.exp-card:hover{border-left-color:var(--color-primary)}.exp-head{align-items:center;gap:.6rem;display:flex}.exp-head h3{font-family:var(--font-heading);margin:0;font-size:1.5rem}.exp-head .ico{color:var(--color-primary)}.exp-head a{color:inherit}.exp-head a:hover h3{color:var(--color-primary)}.exp-sub{color:var(--color-text-dim);margin:.25rem 0 1rem}.exp-role{flex-wrap:wrap;justify-content:space-between;gap:1rem;padding:.35rem 0;font-weight:700;display:flex}.exp-role .date{color:var(--color-text-dim);white-space:nowrap;font-style:italic;font-weight:400}.exp-bullets{color:var(--color-text-dim);margin:1rem 0 0;padding-left:1.2rem}.exp-bullets li{margin-bottom:.6rem;line-height:1.6}.exp-bullets li::marker{color:var(--color-primary)}.exp-bullets b{color:var(--color-text-light)}.exp-tools{border-top:1px solid var(--color-border);color:var(--color-text-dim);margin-top:1.25rem;padding-top:1rem;font-size:.95rem}.exp-tools b{color:var(--color-text-light)}.proj-card{flex-direction:column;width:100%;display:flex;position:relative;overflow:hidden}.proj-media{background:var(--media-bg);border-radius:var(--radius-card) var(--radius-card) 0 0;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:relative;overflow:hidden}.proj-desktop{width:99%;height:auto}.proj-media.single{aspect-ratio:16/10;align-items:center;padding:1.25rem}.proj-media.single .proj-desktop{width:auto;max-width:100%;max-height:100%}.proj-media:not(.single) .proj-desktop{display:none}.proj-phone{z-index:2;filter:drop-shadow(0 18px 26px #00000080);width:80%;margin-inline:auto;position:static}.proj-body{flex-direction:column;flex:1;gap:1rem;padding:1.5rem;display:flex}.proj-body h3{font-family:var(--font-heading);font-size:var(--fs-h3);margin:0}.proj-desc{color:var(--color-text-dim);margin:0;font-size:1rem;line-height:1.6}.proj-tech{flex-wrap:wrap;align-items:center;gap:.9rem;display:flex}.proj-tech i{font-size:2rem;line-height:1}.proj-tech img{object-fit:contain;width:2rem;height:2rem}.proj-links{flex-wrap:wrap;gap:.75rem;margin-top:auto;display:flex}.proj-links a,.proj-indev{font-family:var(--font-heading);min-height:var(--tap-target);border:1px solid var(--color-border);border-radius:10px;align-items:center;padding:.5rem 1rem;font-size:.95rem;display:inline-flex}.proj-links a:hover{border-color:var(--color-primary);color:var(--color-primary)}.proj-indev{color:var(--color-text-dim)}@media screen and (width>=600px){.proj-media:not(.single) .proj-phone{width:62%}}@media screen and (width>=800px){.proj-card{overflow:visible}.proj-media:not(.single){align-items:flex-end;padding:.5rem 1% 0;overflow:visible}.proj-media:not(.single) .proj-desktop{display:block}.proj-media:not(.single) .proj-phone{width:50%;margin-inline:0;position:absolute;top:-7%;right:-6%}}.proj-sect{background-color:var(--color-bg-dark);color:var(--color-text-light);position:relative}.proj-sect:after{content:"";background:linear-gradient(to bottom, transparent, var(--color-bg-medium));pointer-events:none;z-index:1;width:100%;height:80px;position:absolute;bottom:0;left:0}.proj-tab{flex-wrap:wrap;justify-content:center;gap:.75rem;margin:2.5rem 0;display:flex}.tab{font-family:var(--font-heading);min-height:var(--tap-target);background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text-dim);cursor:pointer;border-radius:12px;padding:.6rem 1.4rem;font-size:1.05rem;transition:color .2s,border-color .2s,box-shadow .2s}.tab:hover{color:var(--color-text-light);border-color:var(--color-primary)}.tab[aria-selected=true]{color:var(--color-primary);border-color:var(--color-primary);box-shadow:0 4px 0 var(--color-primary)}.tab:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.tab-panel{display:none}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.exp-list.tab-panel--active{flex-direction:column;gap:1.5rem;animation:.4s ease-out rise;display:flex}.proj-grid.tab-panel--active{grid-template-columns:1fr;gap:2.75rem 2.25rem;animation:.4s ease-out rise;display:grid}.proj-reveal{display:flex}.proj-reveal>.card{width:100%}@media screen and (width>=800px){.proj-tab{justify-content:flex-start}.proj-grid.tab-panel--active{grid-template-columns:repeat(2,1fr)}}.edu-sect{background-color:var(--color-bg-medium);color:var(--color-text-light)}.edu-grid{gap:var(--gap-card);grid-template-columns:1fr;margin-top:3rem;display:grid}.edu-card{padding:1.75rem}.edu-card .cap{font-size:1.8rem}.edu-card h3{font-family:var(--font-heading);margin:.75rem 0 .25rem;font-size:1.35rem}.edu-card .school{color:var(--color-primary);font-weight:700}.edu-card .meta{color:var(--color-text-dim);margin-top:.5rem;font-size:.95rem}@media screen and (width>=900px){.edu-grid{grid-template-columns:repeat(2,1fr)}}.cont-sect{background-color:var(--color-bg-dark);color:var(--color-text-light)}.term{max-width:720px;font-family:var(--font-mono);background:var(--term-bg);border:1px solid var(--color-border);box-shadow:var(--shadow-card);border-radius:12px;margin-top:2.5rem;transition:background-color .35s,border-color .35s;overflow:hidden}.term-head{background:var(--term-header);border-bottom:1px solid var(--color-border);align-items:center;gap:.5rem;padding:.6rem .9rem;display:flex}.term-dot{border-radius:50%;width:11px;height:11px}.dot-r{background:#ff5f56}.dot-y{background:#ffbd2e}.dot-g{background:#27c93f}.term-title{color:var(--color-text-dim);margin-left:.6rem;font-size:.78rem}.term-body{color:var(--term-text);padding:1.3rem 1.5rem;font-size:.92rem;line-height:1.8}.term-line{align-items:center;display:flex}.term-line .prompt{color:var(--color-primary);margin-right:.5rem;font-weight:700}.term-line .cmd{color:var(--color-text-light)}.term-spacer{margin-top:1rem}.term-link{min-height:var(--tap-target);color:var(--term-text);grid-template-columns:1rem 1.4rem 4.5rem 1fr;align-items:center;gap:.4rem;padding:.3rem 0;font-size:.82rem;display:grid}.term-link .arrow{color:var(--term-text)}.term-icon{object-fit:contain;width:18px;height:18px}.term-key{color:var(--color-text-light)}.term-val{color:var(--term-text);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.term-link:hover .arrow,.term-link:hover .term-key,.term-link:hover .term-val{color:var(--color-primary)}.term-link:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:6px}.term-actions{flex-wrap:wrap;gap:.6rem;margin:.5rem 0 .3rem;display:flex}.term-btn{font-family:var(--font-mono);min-height:var(--tap-target);border:1px solid var(--color-primary);cursor:pointer;border-radius:8px;align-items:center;padding:.45rem .9rem;font-size:.85rem;transition:transform .2s ease-out,background .2s,color .2s;display:inline-flex}.term-btn.solid{background:var(--color-primary);color:#fff}.term-btn.ghost{color:var(--color-text-light);background:0 0}.term-btn:hover{transform:translateY(-2px)}.term-btn.ghost:hover{color:var(--color-primary)}.term-btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.caret{background:var(--color-primary);vertical-align:-2px;width:8px;height:1.05em;animation:1.05s step-end infinite term-blink;display:inline-block}@keyframes term-blink{50%{opacity:0}}@media (prefers-reduced-motion:reduce){.caret{animation:none}}@media screen and (width>=600px){.term-link{font-size:inherit;grid-template-columns:1.2rem 1.6rem 5.5rem 1fr;gap:.6rem}}body{font-family:var(--font-heading);margin:0}.App{overflow-x:clip}.skip-link{background:var(--color-primary);color:var(--color-text-light);z-index:100;padding:8px 16px;transition:top .2s;position:absolute;top:-40px;left:0}.skip-link:focus{top:0}footer{text-align:center;border-top:2px solid var(--color-primary);background-color:var(--color-bg-dark);padding:10px 0 20px;transition:background-color .35s}a,button{cursor:pointer;color:inherit;text-decoration:none}a:hover,.button:hover{color:var(--color-primary)}code{font-family:var(--font-body);color:var(--color-text-light)}
