*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{position:relative;isolation:isolate;margin:0;background:var(--background);color:var(--text);font-family:var(--font-body);-webkit-font-smoothing:antialiased}img{display:block;max-width:100%}a{color:inherit;text-decoration:none}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:5px}button:active{transform:translateY(1px)}[hidden]{display:none!important}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;z-index:10;left:20px;top:20px;padding:16px;background:var(--accent);color:#000;transform:translateY(-150%)}.skip-link:focus{transform:none}
.cursor-glow{position:fixed;inset:0;z-index:0;pointer-events:none;opacity:0;background:radial-gradient(420px circle at var(--cursor-x,50%) var(--cursor-y,50%),rgba(255,117,35,.16),rgba(255,117,35,.055) 38%,transparent 72%);transition:opacity 380ms ease}
.cursor-glow.is-visible{opacity:1}
body > *:not(.cursor-glow){position:relative;z-index:1}
.hero{position:relative;width:100%;max-width:1920px;aspect-ratio:1920/1125;margin-inline:auto;isolation:isolate;overflow:clip}
.hero__title{position:absolute;top:4.1858%;left:-.3646%;margin:0;width:100.729%;white-space:nowrap;font-family:var(--font-display);font-size:min(23.46653vw,450.557px);font-weight:600;line-height:normal;text-box-trim:trim-both;text-box-edge:cap alphabetic;text-transform:uppercase;color:#fff;animation:title-reveal 780ms var(--ease) both}
.hero__symbol{position:absolute;left:28.4896%;top:14.9333%;width:43.0208%;aspect-ratio:1;z-index:1;animation:symbol-reveal 1100ms var(--ease) 160ms both}
.hero__symbol img{width:100%;height:100%;object-fit:contain}
.hero__brand{position:absolute;left:3.8542%;top:74.5778%;width:17.8125%;color:#fff;animation:rise 700ms var(--ease) 100ms both}
.hero__brand>img{width:63.42%;height:auto}
.hero__brand p{margin:7.31% 0 0;font-family:var(--font-brand);font-weight:700;font-size:min(1.51472vw,29.0825px);line-height:1.2}
.hero__preview{position:absolute;left:73.8542%;top:63.1111%;width:22.2917%;aspect-ratio:428/284;border-radius:min(.9896vw,19px);overflow:hidden;animation:rise 750ms var(--ease) 260ms backwards;transition:transform 350ms var(--ease)}
.hero__preview img{width:100%;height:100%;object-fit:cover}
.hero__preview:hover{transform:translateY(-4px)}
.intro{position:relative;isolation:isolate;width:91.77083%;max-width:var(--intro-width);aspect-ratio:1762/990;margin:0 auto;border-radius:min(2.65625vw,var(--radius-intro));overflow:clip;container-type:inline-size}
.intro__art{position:absolute;inset:0;z-index:-1;pointer-events:none}
.intro__background{position:absolute;max-width:none;width:77.703%;height:245.859%;left:.19509%;top:-87.5189%;object-fit:cover;transform:rotate(-90deg);opacity:.81}
.intro__tiles{position:absolute;max-width:none;mix-blend-mode:screen}
.intro__tiles--left{left:0;top:.63636%;width:47.0885%;height:99.3636%}
.intro__tiles--right{left:59.04654%;top:26.404%;width:40.95346%;height:73.596%}
.intro__copy{position:absolute;top:35.2525%;left:50%;transform:translateX(-50%);width:42.68%;text-align:center;color:white}
.intro h2{font-family:var(--font-brand);font-weight:900;font-size:4.63625cqw;line-height:1.09;margin:0 auto;width:80%;letter-spacing:0}
.intro h2 span{color:var(--accent);white-space:nowrap}
.intro p{font-family:var(--font-brand);font-weight:400;font-size:1.5891cqw;line-height:1.4;margin:3.3245% 0 0}
.catalog{width:calc(100% - clamp(48px,20vw - 192px,384px));max-width:var(--container);margin:clamp(96px,13.28125vw,255px) auto 0;padding-bottom:207px;outline:none}
.search-bar{display:flex;position:relative;align-items:center;border-block:var(--line) solid var(--border);padding-block:26.4px}
.search-bar input{width:100%;min-width:0;height:63.6px;background:rgba(0,0,0,.62);border:var(--line) solid var(--input-border);border-radius:0;padding:15.6px 19.2px;color:var(--text);font-size:17.664px;letter-spacing:-.2519px}
.search-bar input::placeholder{color:var(--text-muted);opacity:1}
.search-bar input:focus{border-color:var(--lavender)}.search-bar input::-webkit-search-cancel-button{display:none}
.search-bar:has(button:not([hidden])) input{padding-right:145px}
.search-bar button{position:absolute;right:12px;color:var(--lavender);background:transparent;border:0;padding:12px;font-size:12px}
.catalog__layout{display:grid;grid-template-columns:var(--sidebar-width) minmax(0,1fr);gap:var(--column-gap);padding-top:43.2px}
.category-nav{align-self:start;position:sticky;top:30px;max-height:calc(100dvh - 60px);overflow-y:auto;scrollbar-width:thin;scrollbar-color:#333 transparent;padding-bottom:28.8px}
.category-nav__label{font-size:11.4px;line-height:17.1px;letter-spacing:1.0846px;text-transform:uppercase;color:var(--text-muted);margin:0;padding-inline:4.8px}
.category-nav ul{list-style:none;margin:0;padding:12px 0 0;display:flex;flex-direction:column;gap:2.4px}
.category-link{display:flex;align-items:center;gap:12px;padding:10.8px 12px;min-height:50.4px;border-radius:var(--radius-nav);color:var(--text-secondary);transition:color var(--motion-fast),background-color var(--motion-fast)}
.category-link:hover{color:var(--text);background-color:rgba(255,255,255,.04)}
.category-link__number{display:grid;place-items:center;flex-shrink:0;width:28.8px;height:28.8px;border-radius:var(--radius-number);background:rgba(255,255,255,.05);font-size:10.8px;line-height:14.04px;letter-spacing:1.0644px}
.category-link__label{flex:1;min-width:0;font-size:16.128px;line-height:20.9664px;letter-spacing:-.1292px}
.category-link__count{font-size:11.4px;line-height:14.82px;letter-spacing:.1726px}
.category-link.is-active{color:var(--text);background:linear-gradient(90deg,rgba(123,47,247,.24),rgba(123,47,247,.03))}
.category-link.is-active .category-link__number{background:var(--purple);color:white}
.category-link.is-active .category-link__count{color:var(--lavender)}
.category-link[aria-disabled=true]{opacity:.45}
.category-section{scroll-margin-top:32px}
.category-section~.category-section{margin-top:62.4px;padding-top:62.4px;border-top:var(--line) solid var(--border)}
.section-header{max-width:792px}
.section-header__meta{display:flex;align-items:center;gap:16.8px}
.section-header__number{display:grid;place-items:center;width:45.6px;height:45.6px;flex-shrink:0;background:linear-gradient(160deg,rgba(123,47,247,.4),rgba(104,28,221,.34),rgba(76,0,183,.28)),rgba(201,179,226,.4);border:1.2px solid rgba(201,179,226,.4);font-size:14.4px;line-height:21.6px;letter-spacing:1.152px}
.section-header__count{font-size:11.4px;line-height:17.1px;color:var(--text-muted);letter-spacing:1.7686px;text-transform:uppercase}
.section-header h2{font-weight:300;font-size:36.48px;line-height:54.72px;letter-spacing:-.2522px;margin:19.2px 0 0}
.section-header>p{max-width:682.8px;font-size:18.816px;line-height:30.4819px;letter-spacing:-.344px;color:var(--text-description);margin:9.6px 0 0}
.tool-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--card-gap);margin-top:31.2px}
.tool-card{position:relative;min-width:0;height:141.6px;padding:var(--card-padding);border:var(--line) solid var(--card-border);background:var(--card-fill),rgba(255,255,255,.09);transition:border-color 250ms,background-color 250ms,transform 350ms var(--ease)}
.tool-card__row{display:flex;align-items:center;gap:13.2px;height:40.8px}
.tool-card__logo{display:block;flex:0 0 40.8px;height:40.8px;overflow:hidden;background:var(--logo-color)}
.tool-card__logo img{width:100%;height:100%;object-fit:contain}
.tool-card__identity{flex:1;min-width:0}
.tool-card h3{font-weight:600;font-size:17.664px;line-height:22.9632px;letter-spacing:-.4285px;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tool-card__domain{display:block;font-size:10.8px;line-height:16.2px;letter-spacing:.5244px;color:var(--text-muted);padding-top:1.2px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.tool-card__arrow{flex:0 0 14.4px;font-size:18px;line-height:1;color:var(--lavender);opacity:0;transform:translate(-3px,3px);transition:opacity 200ms,transform 250ms var(--ease)}
.tool-card>p{font-size:15.936px;line-height:23.904px;letter-spacing:-.1152px;color:var(--text-secondary);margin:14.4px 0 0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.tool-card:hover,.tool-card:focus-visible{border-color:rgba(201,179,226,.5);background-color:rgba(255,255,255,.115);transform:translateY(-3px)}
.tool-card:hover .tool-card__arrow,.tool-card:focus-visible .tool-card__arrow{opacity:1;transform:none}
.empty-state{padding:60px 0}.empty-state h2{font-size:30px;font-weight:300}.empty-state p{color:var(--text-secondary)}
.empty-state button{border:1px solid var(--input-border);background:#151515;color:var(--text);padding:14px 18px;margin-top:16px}
.reveal.is-pending{opacity:0;transform:translateY(18px)}
.reveal.is-visible{animation:rise var(--motion-reveal) var(--ease) var(--delay,0ms) both}
.tool-card.is-visible{animation-duration:550ms}
@keyframes rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
@keyframes title-reveal{from{opacity:0;clip-path:inset(0 0 100%);transform:translateY(16px)}to{opacity:1;clip-path:inset(0);transform:translateY(0)}}
@keyframes symbol-reveal{from{opacity:0;transform:translateY(24px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}
@media(min-width:1921px){.hero__title{font-size:450.557px}}
@media(max-width:1650px){:root{--sidebar-width:264px;--column-gap:36px}.category-link__label{font-size:14px}.category-link{gap:10px;padding-inline:10px}.section-header h2{font-size:34px}}
@media(max-width:1199px){:root{--sidebar-width:228px;--column-gap:28px}.tool-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.catalog{width:calc(100% - 64px)}.category-link__label{font-size:13px;line-height:18px}.section-header h2{font-size:30px;line-height:1.4}.section-header>p{font-size:17px;line-height:1.6}.hero__brand{width:22%;top:72%}.hero__brand p{font-size:clamp(16px,1.65vw,22px)}.hero__preview{top:64%}.hero__brand>img{width:75%}}
@media(max-width:899px){.catalog__layout{display:block;padding-top:24px}.category-nav{position:relative;top:auto;max-height:none;overflow:visible;padding-bottom:32px}.category-nav ul{flex-direction:row;overflow-x:auto;overscroll-behavior-inline:contain;padding-bottom:10px;gap:6px;scrollbar-width:thin}.category-nav li{flex:0 0 auto;max-width:275px}.category-link{min-height:48px}.category-link__label{font-size:14px;white-space:normal}.category-link__count{margin-left:4px}.category-nav__label{font-size:11px}.catalog{margin-top:96px;padding-bottom:96px}.hero{aspect-ratio:768/580}.hero__title{top:6%;font-size:23.46653vw}.hero__symbol{top:13%;left:23%;width:54%}.hero__brand{left:4.17%;top:70%;width:33%}.hero__brand>img{width:80%}.hero__brand p{font-size:18px;max-width:240px}.hero__preview{left:auto;right:4.17%;top:67%;width:32%}.intro{width:calc(100% - 64px);aspect-ratio:1.5}.intro__copy{top:29%;width:72%}.intro h2{font-size:7cqw;width:100%}.intro p{font-size:2.7cqw;margin-top:22px}.intro__art{opacity:.85}.intro__tiles--left{left:-12%;width:62%;height:110%}.intro__tiles--right{left:68%;width:55%;height:90%}.search-bar{padding-block:20px}}
@media(max-width:599px){.hero{aspect-ratio:auto;min-height:0;height:clamp(620px,165vw,740px)}.hero__title{top:35px}.hero__symbol{top:98px;left:6%;width:88%}.hero__brand{top:auto;bottom:40px;left:6%;width:53%;max-width:240px}.hero__brand>img{width:180px;max-width:100%}.hero__brand p{font-size:18px;margin-top:18px;line-height:1.25}.hero__preview{top:auto;bottom:40px;right:6%;width:30%;border-radius:8px}.intro{width:calc(100% - 32px);min-height:390px;aspect-ratio:auto;border-radius:24px}.intro__copy{top:50%;transform:translate(-50%,-50%);width:88%}.intro h2{font-size:clamp(30px,10.6cqw,50px);line-height:1.1}.intro p{font-size:clamp(18px,5.8cqw,25px);line-height:1.6;margin-top:24px}.intro__tiles--left{left:-35%;top:0;width:100%;height:100%}.intro__tiles--right{left:74%;top:40%;width:80%;height:80%}.intro__background{left:-45%;width:145%;height:240%}.catalog{width:calc(100% - 40px);margin-top:72px;padding-bottom:72px}.search-bar{padding-block:18px}.search-bar input{height:58px;padding-inline:14px;font-size:14px}.search-bar:has(button:not([hidden])) input{padding-right:110px}.search-bar button{font-size:11px;right:3px}.category-nav{padding-bottom:24px}.category-nav li{max-width:240px}.category-link{padding:8px;gap:8px}.category-link__label{font-size:13px}.tool-grid{grid-template-columns:1fr;gap:14px;margin-top:24px}.tool-card{height:auto;min-height:141.6px}.tool-card>p{-webkit-line-clamp:unset}.tool-card__arrow{opacity:.65;transform:none}.section-header h2{font-size:28px;line-height:1.25;margin-top:18px}.section-header>p{font-size:16px;line-height:1.6;margin-top:12px}.category-section~.category-section{margin-top:42px;padding-top:42px}.section-header__number{width:40px;height:40px;font-size:13px}.section-header__count{font-size:10px}.tool-card h3{font-size:17px}.tool-card>p{font-size:15px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.reveal.is-pending{opacity:1;transform:none}.hero__preview:hover,.tool-card:hover,.tool-card:focus-visible{transform:none}}
@media(pointer:coarse), (prefers-reduced-motion:reduce){.cursor-glow{display:none}}


.category-section.is-first-visible{margin-top:0;padding-top:0;border-top:0}

/* The preview and second fold share one sticky scroll stage. Static fallback
   stays in normal document flow for no-JS and reduced-motion visitors. */
.cover__thumbnail{display:none}
@media(prefers-reduced-motion:no-preference){
 html.js .cover{height:230svh;position:relative}
 html.js .cover__sticky{position:sticky;top:0;height:100svh;overflow:clip;isolation:isolate}
 html.js .cover .hero{height:100%;min-height:0;max-height:none;aspect-ratio:auto;margin-inline:auto}
 html.js .cover .hero__preview{animation:none;transition:none;transform:none}
 html.js .cover.is-ready .hero__preview img{opacity:0}
 html.js .cover:not(.is-ready) .intro{visibility:hidden}
 html.js .cover .intro{position:absolute;left:0;top:0;margin:0;width:min(91.77083vw,1762px,calc((100svh - 64px)*1.779798));height:auto;min-height:0;aspect-ratio:1762/990;transform-origin:0 0;z-index:2;will-change:transform;pointer-events:none;background:#000}
 html.js .cover__thumbnail{display:block;position:absolute;inset:0;width:100%;height:100%;object-fit:fill;z-index:3;opacity:var(--thumbnail-opacity,1);pointer-events:none}
 html.js .cover .intro__copy{z-index:1}
}
@media(prefers-reduced-motion:no-preference) and (max-width:899px){
 html.js .cover .intro{width:min(calc(100vw - 48px),calc((100svh - 48px)*1.5));aspect-ratio:1.5}
}
@media(prefers-reduced-motion:no-preference) and (max-width:599px){
 html.js .cover{height:215svh}
 html.js .cover .intro{width:calc(100vw - 32px);height:min(70svh,470px);aspect-ratio:auto}
 html.js .cover .hero__symbol{top:15%;width:min(88vw,53svh);left:50%;margin-left:calc(min(88vw,53svh)/-2)}
 html.js .cover .hero__brand,html.js .cover .hero__preview{bottom:7%}
}

/* Mobile opening: left-aligned identity above a centered preview. */
@media(max-width:599px){
 .hero__brand{left:6%;top:auto;bottom:calc(8% + min(29.1963vw,119.44px) + 24px);width:82%;max-width:320px;translate:none;text-align:left}
 .hero__brand>img{margin-inline:0}
 .hero__brand p{max-width:290px;margin:18px 0 0}
 .hero__preview{left:50%;right:auto;top:auto;bottom:8%;width:min(44vw,180px);translate:-50% 0}
}
@media(prefers-reduced-motion:no-preference) and (max-width:599px){
 html.js .cover .hero__brand{bottom:calc(8% + min(29.1963vw,119.44px) + 24px)}
 html.js .cover .hero__preview{bottom:8%}
 html.js .cover .hero__symbol{width:min(80vw,40svh);margin-left:calc(min(80vw,40svh)/-2)}
}

/* Expanded second fold fills the viewport, including its background. */
.intro{width:100%;max-width:none;height:100svh;min-height:0;aspect-ratio:auto;border-radius:0}
.intro__copy{top:50%;transform:translate(-50%,-50%)}
.intro__background{left:50%;top:50%;width:100svh;height:100vw;transform:translate(-50%,-50%) rotate(-90deg);object-fit:cover}
@media(prefers-reduced-motion:no-preference){
 html.js .cover .intro{width:100%;height:100%;max-width:none;min-height:0;aspect-ratio:auto}
}

/* Continuous floating motion sits on the image, independently of its entrance. */
@media(prefers-reduced-motion:no-preference){
 .hero__symbol img{animation:symbol-float 7s linear 1.26s infinite;transform-origin:50% 50%;will-change:transform}
 .hero[inert] .hero__symbol img{animation-play-state:paused}
}
@keyframes symbol-float{
 0%{transform:translate3d(0,0,0) scale(1)}
 12.5%{transform:translate3d(0,-5.27px,0) scale(1.013)}
 25%{transform:translate3d(0,-10.27px,0) scale(1.025)}
 37.5%{transform:translate3d(0,-14.83px,0) scale(1.037)}
 50%{transform:translate3d(0,-18px,0) scale(1.045)}
 62.5%{transform:translate3d(0,-14.83px,0) scale(1.037)}
 75%{transform:translate3d(0,-10.27px,0) scale(1.025)}
 87.5%{transform:translate3d(0,-5.27px,0) scale(1.013)}
 100%{transform:translate3d(0,0,0) scale(1)}
}
