.projects-page{--project-rule: #dedede;--project-hover: #404040;--project-focus: #737373}.projects-page ::selection{background:var(--ink);color:var(--paper)}.projects-page h1{font-size:clamp(2.6rem,4.6vw,3.85rem);letter-spacing:-.04em}.projects-page h2{letter-spacing:-.03em}.projects-intro{display:flex;justify-content:space-between;align-items:flex-end;gap:36px;padding-block:64px 42px}.projects-intro>div{max-width:700px}.projects-intro p{margin-top:20px;max-width:62ch;color:var(--muted);font-size:19px;line-height:1.6}.projects-link{display:inline-flex;align-items:center;justify-content:flex-start;gap:10px;min-height:44px;padding-block:10px;font-size:15px;line-height:1.4;font-weight:600;text-decoration:underline;text-underline-offset:5px;border:0;background:transparent}.projects-link svg,.project-compact h3 svg{flex-shrink:0}.projects-link:hover,.project-compact h3 a:hover{color:var(--project-hover);text-decoration-thickness:2px}.projects-link:active{color:var(--muted)}.projects-intro>.projects-link{flex-shrink:0;margin-bottom:2px}.projects-filter-bar{border-block:1px solid var(--project-rule);display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;column-gap:24px}.projects-filters{min-width:0;padding-block:8px}.projects-filters summary{display:flex;align-items:center;gap:20px;min-height:44px;width:fit-content;max-width:100%;padding:8px 0;cursor:pointer;font-size:15px;font-weight:600;list-style:none}.projects-filters summary::-webkit-details-marker{display:none}.projects-filters summary::marker{content:""}.projects-filters summary:hover{color:var(--project-hover)}.projects-filter-hint{color:var(--muted);font-size:13px;font-weight:400}.projects-disclosure-icon{flex-shrink:0;transition:transform .18s ease-out}.projects-filters[open] .projects-disclosure-icon{transform:rotate(180deg)}.projects-filter-feedback{display:flex;align-items:center;gap:20px;min-height:60px}.projects-filter-feedback p{color:var(--muted);font-size:13px;font-variant-numeric:tabular-nums}.projects-reset{min-height:44px;padding:8px 0 8px 8px;background:transparent;border:0;color:var(--ink);font-size:13px;text-decoration:underline;text-underline-offset:4px}.projects-reset:hover:not(:disabled){color:var(--project-hover);text-decoration-thickness:2px}.projects-reset:active:not(:disabled){color:var(--muted)}.projects-reset:disabled{opacity:.45;cursor:default;text-decoration:none}.projects-filter-content{padding-block:20px;max-width:760px}.projects-filter-content>label{display:block;font-size:15px;font-weight:600}.projects-filter-content input{width:100%;margin-top:10px;min-height:48px;padding:10px 14px;background:var(--paper);color:var(--ink);caret-color:var(--ink);border:1px solid var(--control-border);border-radius:3px;font-size:16px}.projects-filter-content input::placeholder{color:var(--muted);opacity:1}.projects-filter-content input:hover{border-color:var(--ink)}.projects-filter-content input:focus-visible{outline-color:var(--project-focus)}.projects-tags{min-width:0;margin:22px 0 0;padding:0;border:0}.projects-tags legend{margin-bottom:10px;padding:0;font-size:14px;color:var(--muted)}.projects-tags>div{display:flex;flex-wrap:wrap;gap:8px}.projects-tags button{min-height:44px;padding:9px 13px;border:1px solid var(--control-border);border-radius:3px;background:var(--paper);color:var(--ink);font-size:14px;line-height:1.5;transition:background-color .15s,border-color .15s}.projects-tags button[aria-pressed=true]{background:var(--ink);color:var(--paper);border-color:var(--ink)}.projects-tags button:hover:not(:disabled){background:var(--soft);border-color:var(--ink)}.projects-tags button[aria-pressed=true]:hover:not(:disabled){background:var(--project-hover)}.projects-tags button:active:not(:disabled){border-color:var(--ink)}.project-feature{padding-block:48px 56px;border-bottom:1px solid var(--project-rule)}.project-feature-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:28px}.project-feature-heading h2{font-size:clamp(1.9rem,3.2vw,2.5rem)}.project-feature-heading>p{font-size:14px;color:var(--muted)}.project-feature-layout{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);align-items:start;gap:60px}.project-feature-image{display:block;width:100%;height:auto;aspect-ratio:16 / 9;object-fit:contain;background:var(--soft)}.project-tech{display:flex;flex-wrap:wrap;gap:6px 14px;margin:16px 0 0;padding:0;list-style:none;color:var(--muted);font-size:13px;line-height:1.5}.project-feature-copy h3{font-size:clamp(1.35rem,2vw,1.65rem);line-height:1.25;letter-spacing:-.025em;max-width:30ch}.project-need{color:var(--muted);font-size:16px;margin-top:12px;max-width:65ch}.project-responsibility{margin:24px 0 12px}.project-responsibility>div+div{margin-top:20px}.project-responsibility dt{font-size:14px;font-weight:600}.project-responsibility dd{margin:5px 0 0;color:var(--muted);font-size:16px;line-height:1.6;max-width:65ch}.project-availability{color:var(--muted);font-size:14px;margin-top:16px}.projects-more{padding-block:64px}.projects-section-heading{margin-bottom:32px}.projects-section-heading h2{font-size:clamp(1.65rem,2.6vw,2.1rem)}.projects-section-heading p{color:var(--muted);margin-top:12px;font-size:16px}.projects-compact-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 48px;padding:0;margin:0;list-style:none}.project-compact{display:grid;grid-template-columns:112px minmax(0,1fr);gap:20px;padding-block:26px;border-top:1px solid var(--project-rule);align-content:start}.project-compact-image{width:112px;height:auto;aspect-ratio:16 / 9;object-fit:contain;background:var(--soft);margin-top:8px}.project-compact-mark{width:112px;aspect-ratio:16 / 9;margin-top:8px;display:flex;align-items:center;justify-content:center;background:var(--soft);font-size:13px;font-weight:600}.project-compact h3{font-size:19px;line-height:1.3;letter-spacing:-.02em}.project-compact h3 a{display:inline-flex;align-items:center;gap:8px;min-height:44px;max-width:100%;text-decoration:underline;text-underline-offset:4px}.project-compact h3>span{display:inline-flex;align-items:center;min-height:44px}.project-compact p{margin-top:5px;font-size:15px;line-height:1.6;color:var(--muted)}.project-compact p.project-meta{margin-top:0;font-size:13px}.project-compact .project-tech{margin-top:12px;font-size:12px;gap:5px 10px}.projects-empty{padding-block:64px}.projects-empty h2{font-size:26px}.projects-empty p{color:var(--muted);margin-top:14px}.projects-empty .projects-link{margin-top:16px}.projects-contribution{display:grid;grid-template-columns:.7fr 1.3fr;gap:70px;padding-block:38px 64px;border-top:1px solid var(--project-rule)}.projects-contribution h2{font-size:22px}.projects-contribution h3{font-size:18px}.projects-contribution p{color:var(--muted);font-size:15px;line-height:1.6;max-width:65ch;margin-top:12px}.projects-close{background:var(--soft)}.projects-close-inner{display:grid;grid-template-columns:1.4fr 1fr;align-items:center;gap:90px;padding-block:60px}.projects-close h2{font-size:clamp(1.9rem,3vw,2.5rem);max-width:22ch}.projects-close-inner>div>p{color:var(--muted);margin-top:18px;max-width:52ch}.projects-close .button{min-height:50px}.projects-close-inner p.projects-close-note{margin-top:15px;font-size:14px;max-width:34ch}@media(max-width:1000px){.projects-intro{display:block}.projects-intro>.projects-link{margin-top:14px}.project-feature-layout{gap:32px}.projects-filter-hint{display:none}.projects-compact-list{gap:0 28px}.project-compact{grid-template-columns:80px minmax(0,1fr);gap:16px}.project-compact-image,.project-compact-mark{width:80px}.project-compact-mark{font-size:11px}.projects-close-inner{gap:40px}}@media(max-width:720px){.projects-intro{padding-block:40px 28px}.projects-intro p{font-size:17px;margin-top:16px}.projects-filter-bar{column-gap:12px}.projects-filter-feedback{gap:10px}.projects-filter-feedback p,.projects-reset{font-size:12px}.projects-filter-content{grid-column:1 / -1}.projects-filter-bar:has(.projects-filters[open]){display:flex;flex-wrap:wrap}.projects-filters[open]{width:100%}.projects-filter-bar:has(.projects-filters[open]) .projects-filter-feedback{width:100%;border-top:1px solid var(--project-rule);justify-content:space-between}.project-feature{padding-block:34px 40px}.project-feature-heading{margin-bottom:20px;gap:16px}.project-feature-heading>p{font-size:13px}.project-feature-layout{grid-template-columns:minmax(0,1fr);gap:26px}.project-feature-copy h3{font-size:23px}.project-feature-copy .projects-link{margin-top:4px}.projects-more{padding-block:42px}.projects-compact-list{grid-template-columns:minmax(0,1fr)}.project-compact{grid-template-columns:112px minmax(0,1fr);gap:20px}.project-compact-image,.project-compact-mark{width:112px}.project-compact-mark{font-size:13px}.projects-contribution{grid-template-columns:minmax(0,1fr);gap:22px;padding-block:32px 42px}.projects-close-inner{grid-template-columns:minmax(0,1fr);gap:28px;padding-block:42px}}@media(max-width:480px){.projects-page .shell{width:calc(100% - 40px)}.project-compact{grid-template-columns:72px minmax(0,1fr);gap:16px}.project-compact-image,.project-compact-mark{width:72px}.project-compact-mark{font-size:10px}.project-compact h3{font-size:18px}}@media(max-width:359px){.projects-filter-feedback{display:block;min-height:76px;padding-top:8px}.projects-filter-feedback p{text-align:right}.projects-reset{padding:4px 0}.projects-filter-bar:has(.projects-filters[open]) .projects-filter-feedback{display:flex;padding-top:0;min-height:60px}.project-feature-heading{align-items:flex-start;flex-direction:column;gap:8px}}@media(prefers-reduced-motion:reduce){.projects-disclosure-icon,.projects-tags button,.projects-close .button{transition:none}.projects-close .button:hover{transform:none}}
