/* A short brand entrance; the CSS timeout also dismisses it if JavaScript fails. */
:root{--motion-ease:cubic-bezier(.16,1,.3,1)}
.type-line{display:block;position:relative}.type-reserve{visibility:hidden}.type-ink{position:absolute;inset:0;white-space:nowrap}.type-character{animation:cwff-type-in .17s ease-out both}.type-ink.is-typing:after{content:"";display:inline-block;vertical-align:-.03em;width:2px;height:.79em;margin-left:5px;background:#d9c4d3;animation:cwff-type-caret .85s ease-in-out infinite}.type-ink.is-complete:after{animation:cwff-type-finish 1.1s ease-out forwards}@keyframes cwff-type-in{from{opacity:0;filter:blur(2px)}to{opacity:1;filter:blur(0)}}@keyframes cwff-type-caret{0%,100%{opacity:.15}50%{opacity:1}}@keyframes cwff-type-finish{0%{opacity:.9}100%{opacity:0}}@media(max-width:600px){h1.typing-headline{font-size:clamp(28px,8.5vw,43px);letter-spacing:-1.6px}}
html{scroll-behavior:smooth;scroll-padding-top:104px}
.intro-screen{position:fixed;inset:0;z-index:100;background:#0b0b0e;display:grid;place-items:center;pointer-events:none;animation:cwff-intro-away .48s 1.05s ease-in-out forwards}
.intro-wordmark{font:800 clamp(52px,8vw,78px)/1 var(--title);letter-spacing:-5px;color:#f5f0f5;animation:cwff-wordmark-glow 1.12s ease-in-out both;user-select:none}
@keyframes cwff-wordmark-glow{0%{opacity:0;transform:scale(.94);text-shadow:0 0 0 #e9dce500}23%{opacity:1;text-shadow:0 0 14px #eadce588,0 0 42px #d1abc344}45%{opacity:.56;text-shadow:0 0 4px #eadce522}70%{opacity:1;transform:scale(1);text-shadow:0 0 20px #eadce5aa,0 0 60px #d1abc344}100%{opacity:.9;transform:scale(1.025);text-shadow:0 0 10px #eadce544}}
@keyframes cwff-intro-away{to{opacity:0;visibility:hidden}}
@keyframes cwff-stage-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.layout{animation:cwff-stage-in .7s .93s var(--motion-ease) both}
.category,.filter,.copy,.pill-button,.header-link,.server-link,.text-link{transition:background-color .22s ease,color .22s ease,border-color .22s ease,box-shadow .22s ease,transform .32s var(--motion-ease)}
.category:hover{transform:translateX(3px)}
.filter:hover,.copy:hover,.pill-button:hover{transform:translateY(-1px)}
.category:active,.filter:active,.copy:active,.pill-button:active{transform:scale(.98)}
.tool{position:relative;isolation:isolate;transition:border-color .28s ease,box-shadow .35s ease,transform .4s var(--motion-ease)}
.tool:not([open]):hover{transform:translateY(-3px);box-shadow:0 10px 30px #00000030,0 0 0 1px #cbb4c20a}
.tool:before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(340px circle at var(--pointer-x,50%) var(--pointer-y,50%),#e5c6da0d,transparent 70%);opacity:0;transition:opacity .3s ease}
.tool:hover:before{opacity:1}
.tool-content{transform-origin:top center}
.tool[open] .tool-content{animation:cwff-content-in .38s var(--motion-ease) both}
@keyframes cwff-content-in{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:none}}
.tool-arrow{transition:transform .38s var(--motion-ease),color .25s ease}
.search-box{transition:border-color .25s ease,box-shadow .3s ease}
.search-box:focus-within{box-shadow:0 0 0 3px #caa8bd0b}
.header-link{position:relative}
.header-link:after{content:"";position:absolute;bottom:2px;left:0;right:0;height:1px;background:#d8c3d2;transform:scaleX(0);transform-origin:left;transition:transform .3s var(--motion-ease)}
.header-link.current:after{transform:scaleX(1)}
.cursor-halo{display:none;position:fixed;left:0;top:0;width:28px;height:28px;z-index:150;pointer-events:none;opacity:0;transition:opacity .2s ease;will-change:transform}
.cursor-halo.is-visible{opacity:1}
.cursor-ring{display:block;width:100%;height:100%;border:1px solid #eadce55c;border-radius:50%;background:#eadce506;box-shadow:0 0 15px #dac4d30b;transform:scale(var(--cursor-scale,1));transition:transform .28s var(--motion-ease),border-color .2s ease,background-color .2s ease}
.cursor-halo.is-link{--cursor-scale:1.5}.cursor-halo.is-link .cursor-ring{border-color:#eadce59c;background:#eadce50a}.cursor-halo.is-pressed{--cursor-scale:.75}.cursor-halo.is-editing{opacity:0}
@media(hover:hover) and (pointer:fine){html,body{cursor:url('./cursor.svg') 4 4,auto}a,button,summary,select,.tool>summary{cursor:url('./cursor.svg') 4 4,pointer}.cursor-halo{display:block}input,textarea,[contenteditable="true"]{cursor:text}}
@media(hover:none),(pointer:coarse){.category:hover,.tool:not([open]):hover,.filter:hover,.copy:hover,.pill-button:hover{transform:none}.cursor-halo{display:none}}
