.jn{--jn-bg: #f8f8f7;--jn-panel: #ffffff;--jn-ink: #161616;--jn-mid: #6a6a6a;--jn-rule: #dddddd;--jn-hairline: rgba(22, 22, 22, .06);background:var(--jn-bg);color:var(--jn-ink);font-family:Helvetica Neue,Helvetica,Arial,sans-serif;overflow-x:clip}.dark .jn{--jn-bg: #111110;--jn-panel: #171716;--jn-ink: #f0efed;--jn-mid: #9a9a96;--jn-rule: #2c2c2a;--jn-hairline: rgba(240, 239, 237, .07)}.jn a{color:inherit}.jn a:focus-visible,.jn button:focus-visible{outline:2px solid var(--jn-ink);outline-offset:3px}.jn-mono{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--jn-mid)}.jn-wrap{max-width:1220px;margin:0 auto;padding:0 clamp(20px,4vw,40px)}.jn-columns{background-image:repeating-linear-gradient(90deg,var(--jn-hairline) 0,var(--jn-hairline) 1px,transparent 1px,transparent calc(100% / 12))}.jn-index{display:grid;grid-template-columns:96px 1fr}.jn-rail{position:sticky;top:0;align-self:start;height:100vh;display:flex;flex-direction:column;justify-content:space-between;padding:96px 0 32px;border-right:1px solid var(--jn-rule)}.jn-rail-count{writing-mode:vertical-rl;transform:rotate(180deg);margin:0 auto}.jn-rail-count b{color:var(--jn-ink);font-weight:600}.jn-rail-links{display:flex;flex-direction:column;gap:20px;align-items:center}.jn-rail-links a{writing-mode:vertical-rl;transform:rotate(180deg);text-decoration:none;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--jn-mid);padding:6px 0;border-left:1px solid transparent;transition:color .25s}.jn-rail-links a:hover,.jn-rail-links a.jn-active{color:var(--jn-ink)}.jn-sheet{position:relative;min-height:78vh;display:flex;flex-direction:column;justify-content:center;padding:clamp(72px,10vw,128px) clamp(24px,5vw,72px);border-bottom:1px solid var(--jn-rule)}.jn-sheet-head{display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:clamp(28px,4vw,48px)}.jn-next{display:inline-flex;align-items:center;gap:10px;margin-top:clamp(40px,6vw,64px);align-self:flex-start;background:none;border:0;border-bottom:1px solid var(--jn-rule);padding:8px 0;cursor:pointer;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--jn-ink);transition:border-color .25s,gap .25s}.jn-next:hover{border-color:var(--jn-ink);gap:16px}.jn-hero-title{font-size:clamp(48px,7.2vw,88px);font-weight:700;line-height:1.02;letter-spacing:-.035em;margin:0;max-width:14ch}.jn-hero-title .jn-dim{color:var(--jn-mid)}.jn-hero-overview{margin-top:28px;font-size:17px;line-height:1.7;color:var(--jn-mid);max-width:52ch}.jn-hero-meta{display:flex;flex-wrap:wrap;gap:0;margin-top:clamp(36px,5vw,56px);border-top:1px solid var(--jn-rule);border-bottom:1px solid var(--jn-rule)}.jn-hero-meta>div{padding:14px 20px 14px 0;margin-right:20px;border-right:1px solid var(--jn-rule)}.jn-hero-meta>div:last-child{border-right:0}.jn-hero-meta b{display:block;font-size:15px;color:var(--jn-ink);font-weight:600;margin-top:4px}.jn-featured-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:clamp(32px,5vw,64px)}.jn-featured a.jn-featured-link{text-decoration:none;display:block}.jn-featured h3{font-size:clamp(26px,3vw,38px);font-weight:700;line-height:1.12;letter-spacing:-.02em;margin:14px 0 12px;transition:opacity .25s}.jn-featured a:hover h3{opacity:.65}.jn-featured p{font-size:15px;line-height:1.7;color:var(--jn-mid);margin:0 0 18px;max-width:56ch}.jn-diagram{border:1px solid var(--jn-rule);background:var(--jn-panel);padding:20px;margin-bottom:24px}.jn-diagram svg{display:block;width:100%;height:auto;color:var(--jn-ink)}.jn-diagram .ln{stroke:currentColor;stroke-width:1;fill:none}.jn-diagram .lt{stroke:var(--jn-mid);stroke-width:.75;fill:none}.jn-diagram .dt{stroke:var(--jn-mid);stroke-width:.75;fill:none;stroke-dasharray:3 4}.jn-diagram .fl{fill:var(--jn-bg);stroke:currentColor;stroke-width:1}.jn-diagram text{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:9px;letter-spacing:.12em;fill:currentColor;text-transform:uppercase}.jn-diagram text.m{fill:var(--jn-mid)}.jn-diagram figcaption{margin-top:12px;display:flex;justify-content:space-between;gap:12px}.jn-explore{border-left:1px solid var(--jn-rule);padding-left:clamp(24px,3vw,40px)}.jn-explore-item{display:block;text-decoration:none;padding:20px 0;border-bottom:1px solid var(--jn-rule)}.jn-explore-item:first-of-type{padding-top:8px}.jn-explore-item h4{font-size:19px;font-weight:600;line-height:1.3;margin:8px 0 6px;transition:opacity .25s}.jn-explore-item:hover h4{opacity:.65}.jn-explore-item p{font-size:13.5px;line-height:1.6;color:var(--jn-mid);margin:0}.jn-shelf{display:flex;flex-wrap:wrap;gap:4px 28px;border-top:1px solid var(--jn-rule);border-bottom:1px solid var(--jn-rule);padding:18px 0;margin-bottom:8px}.jn-shelf button{background:none;border:0;border-bottom:1px solid transparent;padding:6px 0;cursor:pointer;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--jn-mid);transition:color .25s,border-color .25s}.jn-shelf button:hover{color:var(--jn-ink)}.jn-shelf button.jn-active{color:var(--jn-ink);border-bottom-color:var(--jn-ink)}.jn-shelf button sup{margin-left:6px;font-size:9px;color:var(--jn-mid)}.jn-pub{display:block;text-decoration:none;border-bottom:1px solid var(--jn-rule)}.jn-pub-row{display:grid;grid-template-columns:48px 120px 1fr auto 24px;gap:clamp(16px,2.5vw,32px);align-items:center;padding:clamp(22px,3vw,34px) 0;min-height:130px;transition:padding-left .25s}.jn-pub:hover .jn-pub-row{padding-left:10px}.jn-pub-idx{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:12px;color:var(--jn-mid)}.jn-pub-title{font-size:clamp(20px,2.2vw,25px);font-weight:600;line-height:1.22;letter-spacing:-.015em;margin:0 0 6px}.jn-pub-abs{font-size:13.5px;line-height:1.6;color:var(--jn-mid);margin:0;max-width:62ch;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.jn-pub-meta{text-align:right;white-space:nowrap}.jn-pub-meta span{display:block}.jn-pub-arrow{color:var(--jn-mid);transition:transform .25s,color .25s}.jn-pub:hover .jn-pub-arrow{transform:translate(4px);color:var(--jn-ink)}.jn-empty{padding:48px 0;font-size:14px;color:var(--jn-mid)}.jn-progress{position:fixed;top:0;left:0;right:0;height:2px;z-index:60;background:transparent;pointer-events:none}.jn-progress span{display:block;height:100%;background:var(--jn-ink);width:0;transition:width .1s linear}.jn-art-hero{padding:clamp(56px,8vw,104px) 0 0}.jn-crumb{display:inline-flex;align-items:center;gap:8px;text-decoration:none;margin-bottom:clamp(32px,5vw,56px)}.jn-crumb:hover{color:var(--jn-ink)}.jn-art-grid{display:grid;grid-template-columns:1fr 300px;gap:clamp(32px,5vw,72px);align-items:end}.jn-art-title{font-size:clamp(38px,5vw,56px);font-weight:700;line-height:1.05;letter-spacing:-.03em;margin:0}.jn-art-dek{margin-top:20px;font-size:17px;line-height:1.65;color:var(--jn-mid);max-width:56ch}.jn-datablock{border:1px solid var(--jn-rule);background:var(--jn-panel)}.jn-datablock>div{display:flex;justify-content:space-between;gap:16px;padding:12px 16px;border-bottom:1px solid var(--jn-rule)}.jn-datablock>div:last-child{border-bottom:0}.jn-datablock dt{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--jn-mid);margin:0}.jn-datablock dd{margin:0;font-size:13px;font-weight:600;text-align:right}.jn-datablock dd a{text-decoration:none;border-bottom:1px solid var(--jn-rule)}.jn-datablock dd a:hover{border-color:var(--jn-ink)}.jn-art-rule{border:0;border-top:1px solid var(--jn-ink);margin:clamp(32px,5vw,48px) 0 0}.jn-art-body{display:grid;grid-template-columns:240px minmax(0,760px);gap:clamp(32px,5vw,80px);padding:clamp(40px,6vw,72px) 0}.jn-toc{position:sticky;top:96px;align-self:start}.jn-toc-fig{border:1px solid var(--jn-rule);background:var(--jn-panel);padding:12px;margin-bottom:20px}.jn-toc-fig svg{display:block;width:100%;height:auto;color:var(--jn-ink)}.jn-toc-fig .ln{stroke:currentColor;stroke-width:1;fill:none}.jn-toc-fig .dt{stroke:var(--jn-mid);stroke-width:.75;fill:none;stroke-dasharray:3 4}.jn-toc ol{list-style:none;margin:0;padding:0}.jn-toc a{display:grid;grid-template-columns:28px 1fr;gap:10px;text-decoration:none;font-size:13px;line-height:1.4;color:var(--jn-mid);border-left:1px solid var(--jn-rule);padding:9px 0 9px 14px;margin-left:0;transition:color .2s,border-color .2s}.jn-toc a span{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:10px;padding-top:2px}.jn-toc a:hover{color:var(--jn-ink)}.jn-toc a.jn-active{color:var(--jn-ink);border-left-color:var(--jn-ink)}.jn-toc details{border:1px solid var(--jn-rule);background:var(--jn-panel);padding:12px 16px}.jn-toc summary{cursor:pointer;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--jn-ink)}.jn-section{scroll-margin-top:96px;margin-bottom:clamp(44px,6vw,72px)}.jn-kicker{display:flex;align-items:baseline;gap:16px;border-top:1px solid var(--jn-rule);padding-top:14px;margin-bottom:20px}.jn-kicker:after{content:"";flex:1;height:1px;background:var(--jn-rule);align-self:center}.jn-kicker span{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:11px;letter-spacing:.18em;color:var(--jn-mid)}.jn-kicker h2{font-size:clamp(22px,2.4vw,28px);font-weight:700;letter-spacing:-.015em;margin:0}.jn-section p{font-size:17px;line-height:1.8;color:var(--jn-ink);margin:0 0 20px}.jn-section ul{margin:0 0 20px;padding:0;list-style:none;border-top:1px solid var(--jn-rule)}.jn-section li{font-size:15px;line-height:1.7;color:var(--jn-ink);padding:12px 0 12px 20px;border-bottom:1px solid var(--jn-rule);position:relative}.jn-section li:before{content:"";position:absolute;left:0;top:22px;width:8px;height:1px;background:var(--jn-mid)}.jn-section blockquote{margin:28px 0;padding:4px 0 4px 24px;border-left:2px solid var(--jn-ink);font-size:20px;line-height:1.5;font-weight:600;letter-spacing:-.01em}.jn-refs{border-top:1px solid var(--jn-ink);padding-top:20px;margin-bottom:clamp(44px,6vw,72px)}.jn-refs ol{margin:14px 0 0;padding-left:18px}.jn-refs li{font-size:14px;line-height:1.7;color:var(--jn-mid);margin-bottom:8px}.jn-refs a{color:var(--jn-ink);text-decoration:none;border-bottom:1px solid var(--jn-rule);word-break:break-all}.jn-refs a:hover{border-color:var(--jn-ink)}.jn-readnext{border-top:1px solid var(--jn-rule);padding-top:28px;margin-bottom:clamp(44px,6vw,72px)}.jn-readnext a{display:grid;grid-template-columns:32px 1fr auto;gap:16px;align-items:baseline;padding:16px 0;border-bottom:1px solid var(--jn-rule);text-decoration:none;transition:padding-left .25s}.jn-readnext a:hover{padding-left:8px}.jn-readnext strong{font-size:16px;font-weight:600;line-height:1.35}.jn-readnext .jn-mono{font-size:10px}.jn-art-cta{border-top:1px solid var(--jn-rule);padding:clamp(40px,6vw,64px) 0 clamp(64px,8vw,96px);display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap}.jn-art-cta p{font-size:17px;color:var(--jn-mid);margin:6px 0 0}.jn-art-cta a{display:inline-flex;align-items:center;gap:10px;background:var(--jn-ink);color:var(--jn-bg);padding:16px 26px;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:11px;letter-spacing:.18em;text-transform:uppercase;text-decoration:none;transition:transform .2s}.jn-art-cta a:hover{transform:translateY(-2px)}.jn-home{border-top:1px solid var(--jn-rule)}.jn-home-inner{display:grid;grid-template-columns:1fr auto;gap:clamp(24px,4vw,48px);align-items:end}.jn-home h3{font-size:clamp(22px,2.6vw,30px);font-weight:700;letter-spacing:-.02em;line-height:1.15;margin:12px 0 10px}.jn-home p{font-size:14.5px;line-height:1.65;color:var(--jn-mid);margin:0;max-width:60ch}.jn-home a.jn-home-title{text-decoration:none}.jn-home a.jn-home-title:hover h3{opacity:.65}.jn-home-link{display:inline-flex;align-items:center;gap:10px;text-decoration:none;border-bottom:1px solid var(--jn-rule);padding-bottom:8px;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--jn-ink);white-space:nowrap;transition:border-color .25s,gap .25s}.jn-home-link:hover{border-color:var(--jn-ink);gap:16px}.jn-reveal{opacity:0;transform:translateY(18px) scale(.995);transition:opacity .55s ease,transform .55s ease}.jn-reveal.jn-in{opacity:1;transform:none}.jn-stagger>*{opacity:0;transform:translateY(14px);transition:opacity .45s ease,transform .45s ease}.jn-stagger.jn-in>*{opacity:1;transform:none}.jn-stagger.jn-in>*:nth-child(2){transition-delay:.06s}.jn-stagger.jn-in>*:nth-child(3){transition-delay:.12s}.jn-stagger.jn-in>*:nth-child(4){transition-delay:.18s}.jn-stagger.jn-in>*:nth-child(5){transition-delay:.24s}.jn-stagger.jn-in>*:nth-child(6){transition-delay:.3s}.jn-diagram .jn-draw{stroke-dasharray:400;stroke-dashoffset:400;transition:stroke-dashoffset 1.1s ease .15s}.jn-in .jn-diagram .jn-draw,.jn-diagram.jn-in .jn-draw{stroke-dashoffset:0}@media (prefers-reduced-motion: reduce){.jn-reveal,.jn-stagger>*{opacity:1;transform:none;transition:none}.jn-diagram .jn-draw{stroke-dashoffset:0;transition:none}.jn-next,.jn-pub-row,.jn-pub-arrow,.jn-readnext a{transition:none}html{scroll-behavior:auto}}@media (max-width: 1023px){.jn-art-grid{grid-template-columns:1fr;align-items:start}.jn-datablock{max-width:420px}.jn-art-body{grid-template-columns:1fr}.jn-toc{position:static}.jn-toc .jn-toc-desktop{display:none}}@media (min-width: 1024px){.jn-toc .jn-toc-mobile{display:none}}@media (max-width: 860px){.jn-index{grid-template-columns:1fr}.jn-rail{display:none}.jn-sheet{min-height:0;padding:clamp(56px,12vw,80px) clamp(20px,5vw,32px)}.jn-featured-grid{grid-template-columns:1fr}.jn-explore{border-left:0;padding-left:0;border-top:1px solid var(--jn-rule);padding-top:24px}.jn-pub-row{grid-template-columns:32px 1fr 20px;min-height:0}.jn-pub-cat,.jn-pub-meta{display:none}.jn-pub-abs{-webkit-line-clamp:3}.jn-home-inner{grid-template-columns:1fr;align-items:start}}.ab{--ab-bg: 0 0% 100%;--ab-tint: 210 14% 97%;--ab-ivory: 40 33% 97%;--ab-ink: 0 0% 7%;--ab-body: 0 0% 25%;--ab-muted: 0 0% 45%;--ab-line: 0 0% 86%;--ab-grid: 0 0% 92%;--ab-signal: 22 100% 47%;--ab-signal-ink: 0 0% 100%;background:hsl(var(--ab-bg));color:hsl(var(--ab-ink));font-family:Helvetica Neue,Helvetica,Arial,sans-serif;overflow-x:clip}.dark .ab{--ab-bg: 0 0% 6%;--ab-tint: 0 0% 9%;--ab-ivory: 30 6% 10%;--ab-ink: 0 0% 95%;--ab-body: 0 0% 78%;--ab-muted: 0 0% 60%;--ab-line: 0 0% 22%;--ab-grid: 0 0% 14%;--ab-signal: 22 100% 55%;--ab-signal-ink: 0 0% 6%}.ab-wrap{max-width:1220px;margin:0 auto;padding:0 clamp(20px,4vw,40px)}.ab h1,.ab h2,.ab h3{font-family:inherit;font-style:normal;color:hsl(var(--ab-ink));letter-spacing:-.02em}.ab p{color:hsl(var(--ab-body))}.ab-signal{color:hsl(var(--ab-signal))}.ab-cap{font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:hsl(var(--ab-muted));font-weight:600}.ab-section{padding:clamp(56px,8vw,112px) 0;border-top:1px solid hsl(var(--ab-line))}.ab-tinted{background:hsl(var(--ab-tint))}.ab-gridpaper{background-color:hsl(var(--ab-ivory));background-image:linear-gradient(hsl(var(--ab-grid)) 1px,transparent 1px),linear-gradient(90deg,hsl(var(--ab-grid)) 1px,transparent 1px);background-size:24px 24px}.ab-hero{padding:clamp(48px,7vw,96px) 0 0}.ab-hero-grid{display:grid;gap:48px;align-items:center}.ab-name{font-size:clamp(56px,10vw,136px);font-weight:700;line-height:.9;letter-spacing:-.045em}.ab-lede{font-size:clamp(16px,1.4vw,19px);line-height:1.7;max-width:46ch;margin-top:28px}.ab-chapters{display:flex;flex-wrap:wrap;margin-top:clamp(48px,6vw,80px);border-top:1px solid hsl(var(--ab-line));border-bottom:1px solid hsl(var(--ab-line))}.ab-chapters a{flex:1 1 120px;padding:14px 12px;border-right:1px solid hsl(var(--ab-line));font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:hsl(var(--ab-muted));text-decoration:none;transition:color .2s,background .2s}.ab-chapters a:last-child{border-right:0}.ab-chapters a span{color:hsl(var(--ab-ink));margin-right:8px;font-weight:700}.ab-chapters a:hover{color:hsl(var(--ab-ink));background:hsl(var(--ab-tint))}.ab-band{display:grid;grid-template-columns:auto 1fr;align-items:end;gap:24px;border-bottom:1px solid hsl(var(--ab-line));padding-bottom:16px;margin-bottom:clamp(40px,6vw,72px);position:relative}.ab-num{font-size:clamp(72px,12vw,160px);font-weight:700;line-height:.8;color:transparent;-webkit-text-stroke:1px hsl(var(--ab-ink));letter-spacing:-.04em}.ab-band-cols{display:grid;grid-template-columns:repeat(4,1fr);border-left:1px solid hsl(var(--ab-line))}.ab-band-cols>div{padding:0 12px;border-right:1px solid hsl(var(--ab-line))}.ab-band-cols b{display:block;font-size:12px;color:hsl(var(--ab-ink));font-weight:600;margin-top:4px;letter-spacing:0;text-transform:none}.ab-ticks{position:absolute;left:0;right:0;bottom:-1px;height:7px;background-image:linear-gradient(90deg,hsl(var(--ab-muted)) 1px,transparent 1px);background-size:40px 7px;opacity:.5;pointer-events:none}.ab-two{display:grid;gap:clamp(32px,5vw,72px)}.ab-h2{font-size:clamp(30px,4vw,52px);font-weight:700;line-height:1.04}.ab-body{font-size:16px;line-height:1.8;max-width:60ch}.ab-rows{margin-top:32px;border-top:1px solid hsl(var(--ab-line))}.ab-row{display:grid;grid-template-columns:minmax(110px,160px) 1fr;gap:16px;padding:14px 0;border-bottom:1px solid hsl(var(--ab-line));font-size:14px;color:hsl(var(--ab-body))}.ab-plate{border:1px solid hsl(var(--ab-line));background:hsl(var(--ab-bg));padding:12px;position:relative}.ab-plate:before,.ab-plate:after{content:"";position:absolute;width:10px;height:10px;border-color:hsl(var(--ab-ink));border-style:solid}.ab-plate:before{top:-1px;left:-1px;border-width:1px 0 0 1px}.ab-plate:after{bottom:-1px;right:-1px;border-width:0 1px 1px 0}.ab-plate img{display:block;width:100%;height:auto;background:#fff}.ab-plate figcaption{display:flex;justify-content:space-between;gap:12px;margin-top:10px}.ab-portrait img{aspect-ratio:4 / 5;-o-object-fit:cover;object-fit:cover;-o-object-position:top;object-position:top}.ab-svg{width:100%;height:auto;color:hsl(var(--ab-ink))}.ab-svg .ln{stroke:currentColor;stroke-width:1;fill:none}.ab-svg .lt{stroke:hsl(var(--ab-muted));stroke-width:.75;fill:none}.ab-svg .dt{stroke:hsl(var(--ab-muted));stroke-width:.75;fill:none;stroke-dasharray:2 4}.ab-svg .fl{fill:hsl(var(--ab-bg));stroke:currentColor;stroke-width:1}.ab-svg .or{fill:hsl(var(--ab-signal))}.ab-svg text{font-family:inherit;font-size:10px;fill:currentColor;letter-spacing:.08em}.ab-svg text.m{fill:hsl(var(--ab-muted));font-size:9px}.ab-steps{display:grid;gap:1px;background:hsl(var(--ab-line));border:1px solid hsl(var(--ab-line));margin-top:48px}.ab-step{background:hsl(var(--ab-bg) / .9);padding:28px}.ab-step h3{font-size:20px;font-weight:700;margin:16px 0 8px}.ab-step p{font-size:14px;line-height:1.75}.ab-table{width:100%;border-collapse:collapse;font-size:14px}.ab-table th,.ab-table td{text-align:left;vertical-align:top;padding:14px 12px 14px 0;border-bottom:1px solid hsl(var(--ab-line))}.ab-table th{width:34%;font-weight:600;color:hsl(var(--ab-ink))}.ab-table td{color:hsl(var(--ab-body));line-height:1.7}.ab-table thead th{font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:hsl(var(--ab-muted));border-bottom-color:hsl(var(--ab-ink))}.ab-link{display:grid;grid-template-columns:80px 1fr auto;gap:16px;align-items:baseline;padding:18px 0;border-bottom:1px solid hsl(var(--ab-line));text-decoration:none;color:hsl(var(--ab-ink));transition:padding .2s}.ab-link:hover{padding-left:8px}.ab-link:hover .ab-arrow{color:hsl(var(--ab-signal))}.ab-link strong{font-size:17px;font-weight:600;display:block}.ab-arrow{color:hsl(var(--ab-muted));transition:color .2s}.ab-tl{position:relative;border-left:1px solid hsl(var(--ab-line));margin-left:6px}.ab-tl li{position:relative;padding:0 0 28px 28px}.ab-tl li:before{content:"";position:absolute;left:-4px;top:6px;width:7px;height:7px;border-radius:50%;background:hsl(var(--ab-bg));border:1px solid hsl(var(--ab-ink))}.ab-tl li:first-child:before{background:hsl(var(--ab-signal));border-color:hsl(var(--ab-signal))}.ab-cta{display:inline-flex;align-items:center;gap:10px;background:hsl(var(--ab-signal));color:hsl(var(--ab-signal-ink));padding:18px 28px;font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;text-decoration:none;transition:transform .2s}.ab-cta:hover{transform:translateY(-2px)}.ab-ghost{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:hsl(var(--ab-ink));text-decoration:none;border-bottom:1px solid hsl(var(--ab-line));padding:6px 0}.ab-ghost:hover{border-color:hsl(var(--ab-ink))}.ab a:focus-visible{outline:2px solid hsl(var(--ab-signal));outline-offset:3px}.ab-mark{background:hsl(var(--ab-tint));border-top:1px solid hsl(var(--ab-line));padding:clamp(40px,6vw,72px) 0}.ab-wordmark{font-size:clamp(64px,16vw,220px);font-weight:700;line-height:.85;letter-spacing:-.06em;color:hsl(var(--ab-ink))}@media (min-width: 900px){.ab-hero-grid{grid-template-columns:1fr 1.05fr}.ab-two{grid-template-columns:1fr 1fr;align-items:start}.ab-two.wide-l{grid-template-columns:1.15fr 1fr}.ab-steps{grid-template-columns:repeat(3,1fr)}}@media (max-width: 720px){.ab-band{grid-template-columns:1fr}.ab-band-cols{grid-template-columns:repeat(2,1fr);row-gap:12px}.ab-row{grid-template-columns:1fr;gap:4px}.ab-link{grid-template-columns:1fr auto}.ab-link .ab-cap{grid-column:1 / -1}.ab-table th{width:40%}}@media (prefers-reduced-motion: reduce){.ab *{transition:none!important}}.paintrack-study{--study-paper: 0 0% 100%;--study-ink: 0 0% 7%;--study-muted: 220 9% 43%;--study-rule: 220 13% 90%;--study-blue: 0 0% 18%;--study-wash: 220 23% 97%;--study-deep: 0 0% 7%;--study-hero-gradient: linear-gradient(125deg, hsl(var(--study-paper)), hsl(var(--study-wash) / .6));color:hsl(var(--study-ink));background:hsl(var(--study-paper));font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.75}.dark .paintrack-study{--study-paper: 0 0% 9%;--study-ink: 0 0% 95%;--study-muted: 215 10% 72%;--study-rule: 215 10% 24%;--study-blue: 0 0% 82%;--study-wash: 0 0% 13%;--study-deep: 0 0% 95%}.paintrack-study *,.paintrack-study *:before,.paintrack-study *:after{box-sizing:border-box}.paintrack-study :is(h1,h2,h3,h4){font-family:Arial,Helvetica,sans-serif;color:hsl(var(--study-ink));font-style:normal}.paintrack-study h1{font-size:88px;line-height:1;font-weight:700;margin:24px 0}.paintrack-study h2{font-size:40px;font-weight:500}.paintrack-study h3{font-size:23px;font-weight:600;margin-bottom:16px}.paintrack-study p{margin-bottom:20px;max-width:70ch}.paintrack-study a:focus-visible{outline:2px solid hsl(var(--study-blue));outline-offset:5px}.study-width{width:min(1248px,calc(100% - 96px));margin-inline:auto}.study-caption{font:11px/1.5 ui-monospace,monospace;text-transform:uppercase;color:hsl(var(--study-muted))}.study-topline{display:flex;justify-content:space-between;border-bottom:1px solid hsl(var(--study-rule));padding:24px 0}.study-hero{background:var(--study-hero-gradient);padding-bottom:32px}.study-hero-layout{display:grid;grid-template-columns:1fr 1.15fr;gap:48px;align-items:center;padding:64px 0 48px}.study-hero-copy>p:not(.study-caption){font-size:21px;line-height:1.6;max-width:38ch}.study-hero-actions{display:flex;align-items:center;gap:24px;flex-wrap:wrap;margin-top:32px}.paintrack-study .study-primary{background:hsl(var(--study-ink));color:hsl(var(--study-paper));border-radius:2px;height:48px;padding-inline:24px}.paintrack-study .study-link{color:hsl(var(--study-ink));padding:0;height:auto;gap:12px}.study-hero-devices{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:center;gap:8px;padding:32px 0;background-image:linear-gradient(hsl(var(--study-rule)/.5) 1px,transparent 1px),linear-gradient(90deg,hsl(var(--study-rule)/.5) 1px,transparent 1px);background-size:40px 40px}.study-hero-devices figure{min-width:0}.study-hero-devices figure:nth-child(2){transform:translateY(-24px)}.study-hero-devices img{width:100%;height:360px;-o-object-fit:contain;object-fit:contain}.study-hero-devices figcaption{text-align:center;font:10px ui-monospace,monospace;margin-top:16px;color:hsl(var(--study-muted))}.study-hero-stage{min-width:0;margin:0}.study-hero-stage img{width:100%;height:auto;border:1px solid hsl(var(--study-rule));border-radius:4px}.study-hero-stage figcaption{margin-top:12px}.study-lede{font-size:21px;line-height:1.6;max-width:46ch}.study-lessons{margin:32px 0;border-top:1px solid hsl(var(--study-rule))}.study-lesson{display:grid;grid-template-columns:100px 1fr;gap:24px;padding:32px 0;border-bottom:1px solid hsl(var(--study-rule));align-items:start}.study-lesson .study-chapter-number{font-size:48px}.study-lesson p{margin-bottom:0}.study-appendix{margin:72px 0;border:1px solid hsl(var(--study-rule))}.study-appendix>summary{cursor:pointer;display:flex;flex-direction:column;gap:8px;padding:32px;font-size:21px;font-weight:500;list-style:none}.study-appendix>summary::-webkit-details-marker{display:none}.study-appendix>summary:after{content:"+";color:hsl(var(--study-blue));font-size:28px;line-height:1}.study-appendix[open]>summary:after{content:"–"}.study-appendix-body{padding:0 32px 32px;border-top:1px solid hsl(var(--study-rule))}.study-appendix-body>h3{margin-top:48px}.study-appendix-body blockquote{border-left:2px solid hsl(var(--study-blue));padding-left:24px;margin:24px 0}.study-metadata{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border-block:1px solid hsl(var(--study-rule))}.study-metadata div{padding:24px 16px;border-right:1px solid hsl(var(--study-rule))}.study-metadata div:first-child{padding-left:0}.study-metadata div:last-child{border:0}.study-metadata dt{font:10px ui-monospace,monospace;text-transform:uppercase;color:hsl(var(--study-muted));margin-bottom:8px}.study-metadata dd{font-size:13px;line-height:1.6}.paintrack-study .study-source-stats{grid-template-columns:repeat(3,minmax(0,1fr));margin:32px 0 12px}.paintrack-study .study-source-results{grid-template-columns:repeat(2,minmax(0,1fr))}.study-source-stats dd{font-size:17px}.study-source-results dt{margin:12px 0 0}@media (max-width:600px){.paintrack-study .study-source-stats{grid-template-columns:1fr}.study-source-stats div{border-right:0;border-bottom:1px solid hsl(var(--study-rule))}}.study-body-layout{display:grid;grid-template-columns:160px minmax(0,1fr);gap:48px}.study-navigation{position:sticky;top:112px;align-self:start;padding-top:40px}.study-navigation>div{display:flex;flex-direction:column;margin-top:16px}.paintrack-study .study-nav-link{display:flex;justify-content:flex-start;gap:12px;height:auto;padding:7px 0;font-size:11px;line-height:1.4;white-space:normal;color:hsl(var(--study-muted));border-radius:0}.study-nav-link span{font-family:ui-monospace,monospace;font-size:10px}.paintrack-study .study-nav-link[aria-current]{color:hsl(var(--study-blue))}.study-section{padding:112px 0;border-bottom:1px solid hsl(var(--study-rule));scroll-margin-top:112px}.study-section:nth-child(2n){background:hsl(var(--study-wash)/.25)}.study-section-header{display:grid;grid-template-columns:100px 1fr 16px;gap:24px;align-items:start;margin-bottom:48px}.study-section-header .study-caption{margin-bottom:12px}.study-chapter-number{font-size:88px;line-height:1;font-weight:400;color:transparent;-webkit-text-stroke:1px hsl(var(--study-blue)/.6)}.study-draft-tick{color:hsl(var(--study-blue))}.study-section-body{min-width:0}.study-two{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:start}.study-three{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.study-note{border-left:2px solid hsl(var(--study-blue));padding:16px 24px;background:hsl(var(--study-wash));margin:32px 0}.study-note p:last-child{margin-bottom:0}.study-research-details{border-block:1px solid hsl(var(--study-rule));margin:32px 0;padding:20px 0}.study-research-details summary{cursor:pointer;font:12px/1.6 ui-monospace,monospace;color:hsl(var(--study-blue))}.study-research-details[open] summary{margin-bottom:24px}.study-research-details>p{font-size:14px}.study-observations{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:32px 0;border-block:1px solid hsl(var(--study-rule))}.study-observations div{padding:24px 16px;border-right:1px solid hsl(var(--study-rule))}.study-observations div:last-child{border:0}.study-observations h3{font-size:16px}.study-observations p{font-size:14px}.study-figure{margin:24px 0 40px;min-width:0}.study-figure img{width:100%;height:auto;-o-object-fit:contain;object-fit:contain}.study-figure figcaption{margin-top:12px;font:11px/1.6 ui-monospace,monospace;color:hsl(var(--study-muted))}.study-table-wrap{overflow-x:auto;max-width:100%;margin:32px 0}.study-table{width:100%;border-collapse:collapse;text-align:left;font-size:14px}.study-table th{font:11px/1.5 ui-monospace,monospace;text-transform:uppercase;background:hsl(var(--study-wash))}.study-table :is(th,td){padding:20px 16px;border-bottom:1px solid hsl(var(--study-rule));vertical-align:top}.study-table th{color:hsl(var(--study-muted))}.study-research-count{font-size:56px;color:hsl(var(--study-blue));display:block;line-height:1.2;margin-bottom:16px}.study-decision-map{margin:32px 0;border:1px solid hsl(var(--study-rule))}.study-map-heading,.study-map-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.study-map-heading{font:10px/1.6 ui-monospace,monospace;text-transform:uppercase;background:hsl(var(--study-wash))}.study-map-heading span,.study-map-row p{padding:24px;border-right:1px solid hsl(var(--study-rule));margin:0}.study-map-row{border-top:1px solid hsl(var(--study-rule))}.study-map-row p{font-size:14px}.study-map-row p:last-child{color:hsl(var(--study-blue))}.study-persona{display:grid;grid-template-columns:.7fr 1.3fr;gap:40px}.study-persona img{width:100%;max-height:440px;-o-object-fit:cover;object-fit:cover}.study-persona ul,.study-section ul{padding-left:20px;list-style:disc;margin-bottom:24px}.study-journey{margin:48px 0 0}.study-journey svg{width:100%;background:hsl(var(--study-wash)/.5)}.study-grid-line{fill:none;stroke:hsl(var(--study-rule));stroke-width:1}.study-journey-line{fill:none;stroke:hsl(var(--study-blue));stroke-width:2}.study-journey circle{fill:hsl(var(--study-paper));stroke:hsl(var(--study-blue));stroke-width:2}.study-journey-stages{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;margin-top:24px}.study-journey-stages h3{font-size:16px}.study-journey-stages p{font-size:13px}.study-process{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:hsl(var(--study-rule));border:1px solid hsl(var(--study-rule));margin:32px 0}.study-process div{padding:24px;background:hsl(var(--study-paper))}.study-process h3{font-size:17px;margin-top:12px}.study-process p{font-size:14px;margin:0}.study-device-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;margin:40px 0}.study-device-gallery img{width:100%;height:400px;-o-object-fit:contain;object-fit:contain}.study-device-gallery h3{font-size:17px;margin-top:24px}.study-device-gallery p{font-size:14px}.study-video{width:100%;max-height:600px;background:hsl(var(--study-wash));margin-top:16px}.study-video-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px}.study-video-grid video{max-height:480px}.study-video-grid figcaption{font:12px ui-monospace,monospace;margin-top:12px}.study-comparison{border-block:1px solid hsl(var(--study-rule));margin:40px 0;padding:32px 0}.study-comparison .study-two{gap:24px}.study-comparison h4{font-size:12px;text-transform:uppercase;margin-bottom:12px}.study-comparison p{font-size:15px}.study-materials{display:flex;flex-wrap:wrap;gap:24px;margin-bottom:48px}.study-next{display:flex;justify-content:space-between;align-items:center;border-top:1px solid hsl(var(--study-rule));padding-top:32px;gap:24px}.study-footer-signature{font-size:64px;line-height:1.1;padding-top:32px}.study-footer-signature span{color:hsl(var(--study-blue))}.study-hero-layout{animation:study-enter .45s ease-out both}@keyframes study-enter{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media (min-width:1024px){html:has(.paintrack-study){scroll-behavior:smooth}}@media (max-width:1100px){.study-width{width:calc(100% - 64px)}.study-body-layout{grid-template-columns:130px minmax(0,1fr);gap:32px}.paintrack-study h1{font-size:72px}.paintrack-study h2{font-size:34px}.study-hero-devices img{height:280px}.study-section-header{grid-template-columns:72px 1fr 12px;gap:16px}.study-chapter-number{font-size:56px}.study-device-gallery img{height:320px}}@media (max-width:900px){.study-body-layout{display:block}.study-navigation{position:sticky;top:88px;z-index:20;background:hsl(var(--study-paper)/.98);padding:12px 0;border-bottom:1px solid hsl(var(--study-rule))}.study-navigation>.study-caption{display:none}.study-navigation>div{flex-direction:row;overflow-x:auto;margin:0;gap:24px}.paintrack-study .study-nav-link{flex-shrink:0;white-space:nowrap}.study-hero-layout{gap:24px}.study-metadata{grid-template-columns:repeat(3,minmax(0,1fr))}.study-metadata div{padding:16px}.study-section{scroll-margin-top:160px}.study-observations{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:600px){.study-lesson{grid-template-columns:1fr;gap:8px;padding:24px 0}.study-lesson .study-chapter-number{font-size:36px}.study-appendix>summary{padding:20px;font-size:17px}.study-appendix-body{padding:0 20px 20px}.study-width{width:calc(100% - 40px)}.study-topline{padding:16px 0;font-size:10px;gap:16px}.study-hero-layout{grid-template-columns:1fr;padding:40px 0 24px}.paintrack-study h1{font-size:64px}.paintrack-study h2{font-size:29px}.study-hero-copy>p:not(.study-caption){font-size:18px}.study-hero-devices img{height:240px}.study-metadata{grid-template-columns:repeat(2,minmax(0,1fr))}.study-metadata div:first-child{padding-left:16px}.study-section{padding:48px 0}.study-section-header{grid-template-columns:56px 1fr;gap:16px;margin-bottom:32px}.study-chapter-number{font-size:48px}.study-draft-tick{display:none}.study-two,.study-three,.study-persona{grid-template-columns:1fr;gap:24px}.study-map-heading{display:none}.study-map-row{grid-template-columns:1fr}.study-map-row p{padding:16px;border:0}.study-map-row p+p:before{content:"↓ ";color:hsl(var(--study-blue))}.study-journey-stages,.study-process{grid-template-columns:repeat(2,minmax(0,1fr))}.study-device-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 16px}.study-device-gallery img{height:270px}.study-video-grid{grid-template-columns:1fr}.study-next{align-items:flex-start;flex-direction:column}.study-footer-signature{font-size:48px}.study-table{min-width:620px}.study-navigation{top:72px}.study-note,.study-observations div{padding:16px}}@media (prefers-reduced-motion:reduce){html:has(.paintrack-study){scroll-behavior:auto}.study-hero-layout{animation:none}.paintrack-study *{transition:none!important}}.paintrack-study h2{line-height:1.18}.study-section-body>.study-lede{max-width:52ch;margin-bottom:48px}.study-insight-rows{margin-top:40px;border-top:1px solid hsl(var(--study-rule))}.study-insight-rows>div{display:grid;grid-template-columns:1fr 24px 1fr;gap:24px;padding:24px 0;border-bottom:1px solid hsl(var(--study-rule))}.study-insight-rows p{margin:0}.study-reasoning,.study-evaluation-chain{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;margin:40px 0}.study-reasoning>div{border-top:1px solid hsl(var(--study-rule));padding-top:20px;position:relative}.study-reasoning>div:not(:last-child):after{content:"→";position:absolute;right:-20px;top:16px;color:hsl(var(--study-muted))}.study-evaluation-chain p:not(.study-caption){font-size:14px}.study-lesson{grid-template-columns:72px minmax(0,1fr);padding:40px 0}.study-lesson>div{display:grid;grid-template-columns:1fr 1fr;gap:32px}.study-lesson h3{margin:0}@media (max-width:900px){.study-reasoning,.study-evaluation-chain{grid-template-columns:repeat(2,minmax(0,1fr))}.study-lesson>div{grid-template-columns:1fr;gap:16px}}@media (max-width:600px){.study-section{padding:64px 0}.study-reasoning,.study-evaluation-chain{grid-template-columns:1fr;gap:16px}.study-reasoning>div:not(:last-child):after{display:none}.study-lesson{grid-template-columns:1fr;gap:16px}.study-insight-rows>div{grid-template-columns:1fr;gap:8px}.study-insight-rows span{display:none}}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--background: 220 27% 98%;--foreground: 222 47% 11%;--card: 220 20% 97%;--card-foreground: 222 47% 11%;--popover: 220 27% 98%;--popover-foreground: 222 47% 11%;--primary: 221 83% 53%;--primary-foreground: 0 0% 100%;--secondary: 220 20% 94%;--secondary-foreground: 222 47% 11%;--muted: 220 15% 92%;--muted-foreground: 215 16% 47%;--accent: 189 94% 43%;--accent-foreground: 0 0% 100%;--destructive: 0 84% 60%;--destructive-foreground: 0 0% 100%;--border: 220 15% 90%;--input: 220 15% 90%;--ring: 221 83% 53%;--radius: .5rem;--showcase-background: 220 27% 98%;--showcase-surface: 0 0% 100%;--showcase-foreground: 222 47% 11%;--showcase-muted: 215 16% 40%;--showcase-backdrop: 0 0% 0%;--showcase-blue: 224 100% 52%;--showcase-cyan: 194 100% 50%;--showcase-gradient: linear-gradient(90deg, hsl(var(--showcase-blue)), hsl(var(--showcase-cyan)));--showcase-shadow: 0 0 40px hsl(var(--showcase-blue) / .14);--showcase-card-shadow: 0 16px 32px hsl(222 47% 11% / .12);--hero-wash: 220 27% 98%;--hero-wash-opacity: .92;--about-heading: 222 47% 11%;--about-body: 215 25% 27%;--about-muted: 215 16% 47%;--about-divider: 220 13% 91%;--galloping: 146 51% 36%;--galloping-foreground: 0 0% 100%;--galloping-light: 146 40% 95%;--baystate: 218 70% 14%;--baystate-foreground: 0 0% 100%;--baystate-teal: 174 62% 40%;--baystate-teal-foreground: 0 0% 100%;--baystate-light: 220 25% 96%;--font-heading: "Cormorant Garamond", Georgia, serif;--font-body: "Inter", system-ui, sans-serif}.dark{--showcase-background: 0 0% 0%;--showcase-surface: 240 6% 5%;--showcase-foreground: 0 0% 98%;--showcase-muted: 220 10% 62%;--showcase-card-shadow: 0 16px 32px hsl(0 0% 0% / .5);--hero-wash: 222 47% 6%;--hero-wash-opacity: .8;--background: 222 47% 11%;--foreground: 220 20% 95%;--card: 218 60% 10%;--card-foreground: 220 20% 95%;--popover: 218 60% 8%;--popover-foreground: 220 20% 95%;--primary: 221 83% 60%;--primary-foreground: 0 0% 100%;--secondary: 218 40% 16%;--secondary-foreground: 220 20% 90%;--muted: 218 30% 18%;--muted-foreground: 215 16% 65%;--accent: 189 94% 50%;--accent-foreground: 218 70% 6%;--destructive: 0 62% 35%;--destructive-foreground: 0 0% 100%;--border: 218 30% 20%;--input: 218 30% 20%;--ring: 221 83% 60%;--about-heading: 220 20% 95%;--about-body: 215 20% 82%;--about-muted: 215 16% 65%;--about-divider: 218 30% 20%;--galloping-light: 146 25% 13%;--baystate-light: 218 30% 15%}*{border-color:hsl(var(--border))}html{scroll-behavior:smooth;overflow-x:hidden}body{overflow-x:hidden;background-color:hsl(var(--background));-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:var(--font-body);font-size:16px;line-height:1.7;color:hsl(var(--about-body))}p{line-height:1.7}h1{font-family:var(--font-heading);line-height:1.05;font-weight:700;color:hsl(var(--foreground));letter-spacing:-.025em}h2,h3,h4,h5,h6{font-family:var(--font-heading);line-height:1.2;font-weight:600;color:hsl(var(--foreground));letter-spacing:-.025em}.skip-to-content{position:absolute;top:-2.5rem;left:1rem;z-index:50;border-radius:calc(var(--radius) - 2px);background-color:hsl(var(--primary));padding:.5rem 1rem;color:hsl(var(--primary-foreground));transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}section:has(>.case-media-overlay) .skip-to-content{background:hsl(var(--media-foreground))}.skip-to-content:focus{top:1rem}.container{width:100%;margin-right:auto;margin-left:auto;padding-right:2rem;padding-left:2rem}@media (min-width: 1200px){.container{max-width:1200px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.visible{visibility:visible}.invisible{visibility:hidden}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{top:0;right:0;bottom:0;left:0}.inset-x-0{left:0;right:0}.inset-y-0{top:0;bottom:0}.-bottom-12{bottom:-3rem}.-left-12{left:-3rem}.-right-12{right:-3rem}.-top-12{top:-3rem}.-top-3{top:-.75rem}.bottom-0{bottom:0}.bottom-4{bottom:1rem}.bottom-5{bottom:1.25rem}.left-0{left:0}.left-1{left:.25rem}.left-1\/2{left:50%}.left-2{left:.5rem}.left-6{left:1.5rem}.left-\[50\%\]{left:50%}.right-0{right:0}.right-1{right:.25rem}.right-2{right:.5rem}.right-3{right:.75rem}.right-4{right:1rem}.right-6{right:1.5rem}.top-0{top:0}.top-1\.5{top:.375rem}.top-1\/2{top:50%}.top-2{top:.5rem}.top-24{top:6rem}.top-3\.5{top:.875rem}.top-4{top:1rem}.top-\[1px\]{top:1px}.top-\[50\%\]{top:50%}.top-\[60\%\]{top:60%}.top-full{top:100%}.z-0{z-index:0}.z-10{z-index:10}.z-20{z-index:20}.z-50{z-index:50}.z-\[100\]{z-index:100}.z-\[1\]{z-index:1}.col-span-2{grid-column:span 2 / span 2}.-mx-1{margin-left:-.25rem;margin-right:-.25rem}.mx-0{margin-left:0;margin-right:0}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-3\.5{margin-left:.875rem;margin-right:.875rem}.mx-auto{margin-left:auto;margin-right:auto}.my-0\.5{margin-top:.125rem;margin-bottom:.125rem}.my-1{margin-top:.25rem;margin-bottom:.25rem}.-ml-4{margin-left:-1rem}.-mt-4{margin-top:-1rem}.mb-1{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-10{margin-bottom:2.5rem}.mb-12{margin-bottom:3rem}.mb-16{margin-bottom:4rem}.mb-2{margin-bottom:.5rem}.mb-20{margin-bottom:5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-auto{margin-left:auto}.mr-2{margin-right:.5rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-10{margin-top:2.5rem}.mt-12{margin-top:3rem}.mt-2{margin-top:.5rem}.mt-2\.5{margin-top:.625rem}.mt-24{margin-top:6rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-\[7px\]{margin-top:7px}.mt-auto{margin-top:auto}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.contents{display:contents}.hidden{display:none}.aspect-\[4\/3\]{aspect-ratio:4/3}.aspect-square{aspect-ratio:1 / 1}.aspect-video{aspect-ratio:16 / 9}.size-4{width:1rem;height:1rem}.h-1{height:.25rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-12{height:3rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[120px\]{height:120px}.h-\[1px\]{height:1px}.h-\[220px\]{height:220px}.h-\[260px\]{height:260px}.h-\[2px\]{height:2px}.h-\[52px\]{height:52px}.h-\[58px\]{height:58px}.h-\[60px\]{height:60px}.h-\[70vh\]{height:70vh}.h-\[var\(--radix-navigation-menu-viewport-height\)\]{height:var(--radix-navigation-menu-viewport-height)}.h-\[var\(--radix-select-trigger-height\)\]{height:var(--radix-select-trigger-height)}.h-auto{height:auto}.h-full{height:100%}.h-px{height:1px}.h-svh{height:100svh}.max-h-96{max-height:24rem}.max-h-\[300px\]{max-height:300px}.max-h-\[500px\]{max-height:500px}.max-h-\[80vh\]{max-height:80vh}.max-h-screen{max-height:100vh}.min-h-0{min-height:0px}.min-h-\[140px\]{min-height:140px}.min-h-\[500px\]{min-height:500px}.min-h-\[80px\]{min-height:80px}.min-h-screen{min-height:100vh}.min-h-svh{min-height:100svh}.w-0{width:0px}.w-1{width:.25rem}.w-1\.5{width:.375rem}.w-1\/2{width:50%}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-3\/4{width:75%}.w-32{width:8rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-7{width:1.75rem}.w-72{width:18rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-\[--sidebar-width\]{width:var(--sidebar-width)}.w-\[100px\]{width:100px}.w-\[120px\]{width:120px}.w-\[160px\]{width:160px}.w-\[1px\]{width:1px}.w-\[200px\]{width:200px}.w-\[52px\]{width:52px}.w-\[58px\]{width:58px}.w-\[60px\]{width:60px}.w-\[95vw\]{width:95vw}.w-auto{width:auto}.w-full{width:100%}.w-max{width:-moz-max-content;width:max-content}.w-px{width:1px}.min-w-0{min-width:0px}.min-w-5{min-width:1.25rem}.min-w-\[12rem\]{min-width:12rem}.min-w-\[8rem\]{min-width:8rem}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-5xl{max-width:64rem}.max-w-\[--skeleton-width\]{max-width:var(--skeleton-width)}.max-w-\[1100px\]{max-width:1100px}.max-w-\[1200px\]{max-width:1200px}.max-w-\[14ch\]{max-width:14ch}.max-w-\[160px\]{max-width:160px}.max-w-\[260px\]{max-width:260px}.max-w-\[280px\]{max-width:280px}.max-w-\[300px\]{max-width:300px}.max-w-\[320px\]{max-width:320px}.max-w-\[34ch\]{max-width:34ch}.max-w-\[36ch\]{max-width:36ch}.max-w-\[38ch\]{max-width:38ch}.max-w-\[460px\]{max-width:460px}.max-w-\[500px\]{max-width:500px}.max-w-\[520px\]{max-width:520px}.max-w-\[560px\]{max-width:560px}.max-w-\[600px\]{max-width:600px}.max-w-\[620px\]{max-width:620px}.max-w-\[700px\]{max-width:700px}.max-w-\[760px\]{max-width:760px}.max-w-lg{max-width:32rem}.max-w-max{max-width:-moz-max-content;max-width:max-content}.max-w-md{max-width:28rem}.max-w-xl{max-width:36rem}.flex-1{flex:1 1 0%}.flex-shrink-0{flex-shrink:0}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.grow-0{flex-grow:0}.basis-full{flex-basis:100%}.caption-bottom{caption-side:bottom}.border-collapse{border-collapse:collapse}.-translate-x-1\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-x-px{--tw-translate-x: -1px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-\[-50\%\]{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-px{--tw-translate-x: 1px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-0{--tw-translate-y: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-3{--tw-translate-y: .75rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-\[-50\%\]{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-45{--tw-rotate: 45deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-90{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes fade-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:fade-in .5s ease-out forwards}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.scroll-mt-24{scroll-margin-top:6rem}.list-disc{list-style-type:disc}.list-none{list-style-type:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.items-stretch{align-items:stretch}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-10{gap:2.5rem}.gap-12{gap:3rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.gap-x-8{-moz-column-gap:2rem;column-gap:2rem}.gap-y-2{row-gap:.5rem}.space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.25rem * var(--tw-space-x-reverse));margin-left:calc(.25rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(1rem * var(--tw-space-x-reverse));margin-left:calc(1rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.space-y-12>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(3rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(3rem * var(--tw-space-y-reverse))}.space-y-16>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(4rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(4rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.space-y-\[100px\]>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(100px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(100px * var(--tw-space-y-reverse))}.self-start{align-self:flex-start}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-nowrap{white-space:nowrap}.break-words{overflow-wrap:break-word}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-\[24px\]{border-radius:24px}.rounded-\[28px\]{border-radius:28px}.rounded-\[2px\]{border-radius:2px}.rounded-\[32px\]{border-radius:32px}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xl{border-radius:.75rem}.rounded-t-\[10px\]{border-top-left-radius:10px;border-top-right-radius:10px}.rounded-tl-sm{border-top-left-radius:calc(var(--radius) - 4px)}.rounded-tr-\[64px\]{border-top-right-radius:64px}.border{border-width:1px}.border-0{border-width:0px}.border-2{border-width:2px}.border-\[1\.5px\]{border-width:1.5px}.border-\[2px\]{border-width:2px}.border-\[5px\]{border-width:5px}.border-y{border-top-width:1px;border-bottom-width:1px}.border-b{border-bottom-width:1px}.border-l{border-left-width:1px}.border-l-2{border-left-width:2px}.border-l-4{border-left-width:4px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-dashed{border-style:dashed}.border-\[--color-border\]{border-color:var(--color-border)}.border-\[hsl\(160_40\%_88\%\)\]{--tw-border-opacity: 1;border-color:hsl(160 40% 88% / var(--tw-border-opacity, 1))}.border-\[hsl\(230_50\%_92\%\)\]{--tw-border-opacity: 1;border-color:hsl(230 50% 92% / var(--tw-border-opacity, 1))}.border-\[hsl\(270_40\%_90\%\)\]{--tw-border-opacity: 1;border-color:hsl(270 40% 90% / var(--tw-border-opacity, 1))}.border-\[hsl\(30_50\%_90\%\)\]{--tw-border-opacity: 1;border-color:hsl(30 50% 90% / var(--tw-border-opacity, 1))}.border-\[hsl\(340_60\%_90\%\)\]{--tw-border-opacity: 1;border-color:hsl(340 60% 90% / var(--tw-border-opacity, 1))}.border-border{border-color:hsl(var(--border))}.border-border\/30{border-color:hsl(var(--border) / .3)}.border-border\/50{border-color:hsl(var(--border) / .5)}.border-border\/60{border-color:hsl(var(--border) / .6)}.border-destructive{border-color:hsl(var(--destructive))}.border-destructive\/20{border-color:hsl(var(--destructive) / .2)}.border-destructive\/50{border-color:hsl(var(--destructive) / .5)}.border-input{border-color:hsl(var(--input))}.border-muted-foreground\/30{border-color:hsl(var(--muted-foreground) / .3)}.border-primary{border-color:hsl(var(--primary))}.border-primary-foreground{border-color:hsl(var(--primary-foreground))}.border-primary\/10{border-color:hsl(var(--primary) / .1)}.border-primary\/20{border-color:hsl(var(--primary) / .2)}.border-primary\/30{border-color:hsl(var(--primary) / .3)}.border-primary\/40{border-color:hsl(var(--primary) / .4)}.border-transparent{border-color:transparent}.border-l-transparent{border-left-color:transparent}.border-t-transparent{border-top-color:transparent}.bg-\[--color-bg\]{background-color:var(--color-bg)}.bg-\[hsl\(0\,0\%\,10\%\)\]{--tw-bg-opacity: 1;background-color:hsl(0 0% 10% / var(--tw-bg-opacity, 1))}.bg-\[hsl\(146\,51\%\,45\%\)\]{--tw-bg-opacity: 1;background-color:hsl(146 51% 45% / var(--tw-bg-opacity, 1))}.bg-\[hsl\(220_18\%_96\%\)\]{--tw-bg-opacity: 1;background-color:hsl(220 18% 96% / var(--tw-bg-opacity, 1))}.bg-\[hsl\(220_20\%_96\%\)\]{--tw-bg-opacity: 1;background-color:hsl(220 20% 96% / var(--tw-bg-opacity, 1))}.bg-\[hsl\(260_30\%_95\%\)\]{--tw-bg-opacity: 1;background-color:hsl(260 30% 95% / var(--tw-bg-opacity, 1))}.bg-\[hsl\(260_40\%_94\%\)\]{--tw-bg-opacity: 1;background-color:hsl(260 40% 94% / var(--tw-bg-opacity, 1))}.bg-\[hsl\(340_60\%_94\%\)\]{--tw-bg-opacity: 1;background-color:hsl(340 60% 94% / var(--tw-bg-opacity, 1))}.bg-\[hsl\(50\,80\%\,55\%\)\]{--tw-bg-opacity: 1;background-color:hsl(50 80% 55% / var(--tw-bg-opacity, 1))}.bg-accent{background-color:hsl(var(--accent))}.bg-background{background-color:hsl(var(--background))}.bg-background\/40{background-color:hsl(var(--background) / .4)}.bg-background\/95{background-color:hsl(var(--background) / .95)}.bg-black\/80{background-color:#000c}.bg-border{background-color:hsl(var(--border))}.bg-card{background-color:hsl(var(--card))}.bg-card\/50{background-color:hsl(var(--card) / .5)}.bg-destructive{background-color:hsl(var(--destructive))}.bg-foreground{background-color:hsl(var(--foreground))}.bg-foreground\/10{background-color:hsl(var(--foreground) / .1)}.bg-foreground\/40{background-color:hsl(var(--foreground) / .4)}.bg-muted{background-color:hsl(var(--muted))}.bg-muted\/50{background-color:hsl(var(--muted) / .5)}.bg-popover{background-color:hsl(var(--popover))}.bg-primary{background-color:hsl(var(--primary))}.bg-primary-foreground{background-color:hsl(var(--primary-foreground))}.bg-primary\/10{background-color:hsl(var(--primary) / .1)}.bg-primary\/5{background-color:hsl(var(--primary) / .05)}.bg-secondary{background-color:hsl(var(--secondary))}.bg-secondary\/30{background-color:hsl(var(--secondary) / .3)}.bg-secondary\/40{background-color:hsl(var(--secondary) / .4)}.bg-transparent{background-color:transparent}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.bg-gradient-to-l{background-image:linear-gradient(to left,var(--tw-gradient-stops))}.bg-gradient-to-t{background-image:linear-gradient(to top,var(--tw-gradient-stops))}.from-\[hsl\(220_30\%_96\%\)\]{--tw-gradient-from: hsl(220 30% 96%) var(--tw-gradient-from-position);--tw-gradient-to: hsl(220 30% 96% / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-black\/50{--tw-gradient-from: rgb(0 0 0 / .5) var(--tw-gradient-from-position);--tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-primary\/\[0\.03\]{--tw-gradient-from: hsl(var(--primary) / .03) var(--tw-gradient-from-position);--tw-gradient-to: hsl(var(--primary) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.via-\[hsl\(250_20\%_97\%\)\]{--tw-gradient-to: hsl(250 20% 97% / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), hsl(250 20% 97%) var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-black\/10{--tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), rgb(0 0 0 / .1) var(--tw-gradient-via-position), var(--tw-gradient-to)}.to-\[hsl\(220_15\%_98\%\)\]{--tw-gradient-to: hsl(220 15% 98%) var(--tw-gradient-to-position)}.to-transparent{--tw-gradient-to: transparent var(--tw-gradient-to-position)}.fill-current{fill:currentColor}.fill-primary{fill:hsl(var(--primary))}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.object-center{-o-object-position:center;object-position:center}.object-top{-o-object-position:top;object-position:top}.p-0{padding:0}.p-1{padding:.25rem}.p-10{padding:2.5rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.p-\[1px\]{padding:1px}.px-1{padding-left:.25rem;padding-right:.25rem}.px-12{padding-left:3rem;padding-right:3rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-14{padding-top:3.5rem;padding-bottom:3.5rem}.py-16{padding-top:4rem;padding-bottom:4rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-20{padding-top:5rem;padding-bottom:5rem}.py-24{padding-top:6rem;padding-bottom:6rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.py-\[120px\]{padding-top:120px;padding-bottom:120px}.pb-0{padding-bottom:0}.pb-16{padding-bottom:4rem}.pb-24{padding-bottom:6rem}.pb-3{padding-bottom:.75rem}.pb-4{padding-bottom:1rem}.pb-5{padding-bottom:1.25rem}.pb-\[80px\]{padding-bottom:80px}.pl-2\.5{padding-left:.625rem}.pl-4{padding-left:1rem}.pl-6{padding-left:1.5rem}.pl-8{padding-left:2rem}.pr-2{padding-right:.5rem}.pr-2\.5{padding-right:.625rem}.pr-8{padding-right:2rem}.pt-0{padding-top:0}.pt-1{padding-top:.25rem}.pt-10{padding-top:2.5rem}.pt-12{padding-top:3rem}.pt-2{padding-top:.5rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.pt-6{padding-top:1.5rem}.pt-8{padding-top:2rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-middle{vertical-align:middle}.font-heading{font-family:Arial,Helvetica,sans-serif}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-\[0\.8rem\]{font-size:.8rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[12px\]{font-size:12px}.text-\[13px\]{font-size:13px}.text-\[14px\]{font-size:14px}.text-\[15px\]{font-size:15px}.text-\[16px\]{font-size:16px}.text-\[17px\]{font-size:17px}.text-\[18px\]{font-size:18px}.text-\[20px\]{font-size:20px}.text-\[22px\]{font-size:22px}.text-\[24px\]{font-size:24px}.text-\[28px\]{font-size:28px}.text-\[32px\]{font-size:32px}.text-\[36px\]{font-size:36px}.text-\[42px\]{font-size:42px}.text-\[48px\]{font-size:48px}.text-\[60px\]{font-size:60px}.text-\[clamp\(40px\,8vw\,90px\)\]{font-size:clamp(40px,8vw,90px)}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-black{font-weight:900}.font-bold{font-weight:700}.font-extrabold{font-weight:800}.font-light{font-weight:300}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing: tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-\[0\.95\]{line-height:.95}.leading-\[1\.12\]{line-height:1.12}.leading-\[1\.15\]{line-height:1.15}.leading-\[1\.1\]{line-height:1.1}.leading-\[1\.25\]{line-height:1.25}.leading-\[1\.2\]{line-height:1.2}.leading-\[1\.4\]{line-height:1.4}.leading-\[1\.5\]{line-height:1.5}.leading-\[1\.6\]{line-height:1.6}.leading-\[1\.75\]{line-height:1.75}.leading-\[1\.7\]{line-height:1.7}.leading-\[1\.8\]{line-height:1.8}.leading-\[1\],.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.leading-snug{line-height:1.375}.leading-tight{line-height:1.25}.tracking-\[-0\.03em\]{letter-spacing:-.03em}.tracking-\[0\.08em\]{letter-spacing:.08em}.tracking-\[0\.15em\]{letter-spacing:.15em}.tracking-\[0\.1em\]{letter-spacing:.1em}.tracking-\[0\.25em\]{letter-spacing:.25em}.tracking-\[0\.2em\]{letter-spacing:.2em}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.tracking-wider{letter-spacing:.05em}.tracking-widest{letter-spacing:.1em}.text-\[hsl\(var\(--accent\)\)\],.text-accent{color:hsl(var(--accent))}.text-accent-foreground{color:hsl(var(--accent-foreground))}.text-background{color:hsl(var(--background))}.text-card-foreground{color:hsl(var(--card-foreground))}.text-current{color:currentColor}.text-destructive{color:hsl(var(--destructive))}.text-destructive-foreground{color:hsl(var(--destructive-foreground))}.text-foreground{color:hsl(var(--foreground))}.text-foreground\/50{color:hsl(var(--foreground) / .5)}.text-foreground\/80{color:hsl(var(--foreground) / .8)}.text-foreground\/\[0\.04\]{color:hsl(var(--foreground) / .04)}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-muted-foreground\/70{color:hsl(var(--muted-foreground) / .7)}.text-popover-foreground{color:hsl(var(--popover-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-primary\/80{color:hsl(var(--primary) / .8)}.text-secondary-foreground{color:hsl(var(--secondary-foreground))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.text-white\/70{color:#ffffffb3}.text-white\/80{color:#fffc}.text-white\/90{color:#ffffffe6}.underline{text-decoration-line:underline}.line-through{text-decoration-line:line-through}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-90{opacity:.9}.shadow-\[0_0_0_1px_hsl\(var\(--sidebar-border\)\)\]{--tw-shadow: 0 0 0 1px hsl(var(--sidebar-border));--tw-shadow-colored: 0 0 0 1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_4px_16px_rgba\(0\,0\,0\,0\.03\)\]{--tw-shadow: 0 4px 16px rgba(0,0,0,.03);--tw-shadow-colored: 0 4px 16px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_6px_24px_rgba\(0\,0\,0\,0\.03\)\]{--tw-shadow: 0 6px 24px rgba(0,0,0,.03);--tw-shadow-colored: 0 6px 24px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_8px_30px_rgba\(0\,0\,0\,0\.04\)\]{--tw-shadow: 0 8px 30px rgba(0,0,0,.04);--tw-shadow-colored: 0 8px 30px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-none{--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.ring-0{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-2{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-ring{--tw-ring-color: hsl(var(--ring))}.ring-offset-background{--tw-ring-offset-color: hsl(var(--background))}.grayscale{--tw-grayscale: grayscale(100%);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.sepia{--tw-sepia: sepia(100%);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[left\,right\,width\]{transition-property:left,right,width;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[margin\,opa\]{transition-property:margin,opa;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[width\,height\,padding\]{transition-property:width,height,padding;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[width\]{transition-property:width;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-1000{transition-duration:1s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}.duration-700{transition-duration:.7s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-linear{transition-timing-function:linear}@keyframes enter{0%{opacity:var(--tw-enter-opacity, 1);transform:translate3d(var(--tw-enter-translate-x, 0),var(--tw-enter-translate-y, 0),0) scale3d(var(--tw-enter-scale, 1),var(--tw-enter-scale, 1),var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity, 1);transform:translate3d(var(--tw-exit-translate-x, 0),var(--tw-exit-translate-y, 0),0) scale3d(var(--tw-exit-scale, 1),var(--tw-exit-scale, 1),var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0))}}.animate-in{animation-name:enter;animation-duration:.15s;--tw-enter-opacity: initial;--tw-enter-scale: initial;--tw-enter-rotate: initial;--tw-enter-translate-x: initial;--tw-enter-translate-y: initial}.fade-in-0{--tw-enter-opacity: 0}.fade-in-80{--tw-enter-opacity: .8}.zoom-in-95{--tw-enter-scale: .95}.duration-1000{animation-duration:1s}.duration-200{animation-duration:.2s}.duration-300{animation-duration:.3s}.duration-500{animation-duration:.5s}.duration-700{animation-duration:.7s}.ease-in-out{animation-timing-function:cubic-bezier(.4,0,.2,1)}.ease-linear{animation-timing-function:linear}.gradient-bg,.gradient-hero{background:hsl(var(--primary));color:hsl(var(--primary-foreground))}.gradient-word,.hero-name{background:none;color:hsl(var(--foreground));-webkit-text-fill-color:currentColor;filter:none}.gradient-wash{background:hsl(var(--background))}.gradient-border{border:1px solid hsl(var(--border))}.section-alt{background:hsl(var(--card))}.case-study-specimen{--foreground: 222 47% 11%;--border: 220 15% 90%;color:hsl(var(--foreground))}.typing-cursor:after{content:"|";animation:blink 1s infinite;color:inherit}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.vertical-line{width:2px;height:0;background-color:hsl(var(--foreground));margin:24px 0;animation:growLine 1.2s ease forwards}@keyframes growLine{0%{height:0}to{height:120px}}.hero-video{filter:brightness(.65) contrast(.9) saturate(.9)}.hero-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:hsl(var(--hero-wash) / var(--hero-wash-opacity));z-index:1}.process-section-bg{background:hsl(var(--secondary))}.process-anim-card-light{position:relative;border-radius:16px;overflow:hidden;background:hsl(var(--card));border:1px solid hsl(var(--border));box-shadow:0 20px 50px #0f172a1f;padding:28px 24px;min-height:240px;display:flex;flex-direction:column;justify-content:center}@media (min-width: 640px){.process-anim-card-light{border-radius:18px;padding:40px 36px;min-height:280px}}.process-anim-glow,.process-anim-dots,.process-anim-scanline{display:none}.featured-work-section{background:hsl(var(--showcase-background));color:hsl(var(--showcase-foreground));padding:64px 24px 80px;letter-spacing:0}.featured-work-inner{max-width:1100px;margin:0 auto}.featured-work-eyebrow{display:flex;align-items:center;gap:8px;font-size:11px;text-transform:uppercase;color:hsl(var(--showcase-muted));padding-bottom:16px;border-bottom:1px solid hsl(var(--showcase-blue) / .45)}.featured-work-eyebrow>span:first-child{width:5px;height:5px;border-radius:50%;background:var(--showcase-gradient)}.featured-work-count{margin-left:auto}.featured-work-heading{text-align:center;padding:40px 0}.featured-work-heading h2{color:hsl(var(--showcase-foreground));font-size:64px;line-height:1.1;margin-bottom:16px;letter-spacing:0}.featured-work-heading p{color:hsl(var(--showcase-muted));font-size:14px}.featured-work-browser{border:1px solid hsl(var(--showcase-blue) / .32);border-radius:8px;background:hsl(var(--showcase-surface));box-shadow:var(--showcase-shadow);overflow:hidden}.featured-work-toolbar{height:56px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 16px;border-bottom:1px solid hsl(var(--showcase-blue) / .16)}.featured-work-dots{display:flex;gap:6px;width:40px}.featured-work-dots i{width:7px;height:7px;border-radius:50%;background:hsl(var(--showcase-blue))}.featured-work-dots i:nth-child(2){opacity:.7}.featured-work-dots i:nth-child(3){background:hsl(var(--showcase-cyan))}.featured-work-address{font-size:10px;color:hsl(var(--showcase-muted));border:1px solid hsl(var(--showcase-blue) / .2);border-radius:24px;padding:4px 24px;text-align:center}.featured-work-reset{color:hsl(var(--showcase-muted))}.featured-work-reset:hover{color:hsl(var(--showcase-foreground));background:hsl(var(--showcase-blue) / .15)}.featured-work-stage{height:680px;position:relative;background-image:radial-gradient(hsl(var(--showcase-blue) / .2) .7px,transparent .7px);background-size:24px 24px}.featured-floating-project{position:absolute;width:29%;display:block;cursor:grab;touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;transform:translate(var(--move-x, 0px),var(--move-y, 0px)) rotate(var(--tilt));z-index:1;outline:none}.featured-project-0{left:9%;top:12%;--tilt: -6deg;--float-delay: 0s}.featured-project-1{left:61%;top:10%;--tilt: 7deg;--float-delay: -2s}.featured-project-2{left:19%;top:56%;--tilt: -7deg;--float-delay: -4s}.featured-project-3{left:59%;top:55%;--tilt: 5deg;--float-delay: -1s}.featured-project-float{animation:featuredFloat 7s ease-in-out infinite;animation-delay:var(--float-delay);transition:scale .3s ease}.featured-project-preview{display:block;width:100%;height:auto;padding:0;white-space:normal;text-align:left;cursor:inherit;overflow:hidden;border-radius:8px;border:1px solid hsl(var(--showcase-blue) / .35);background:hsl(var(--showcase-background));box-shadow:var(--showcase-card-shadow);transition:border-color .3s,box-shadow .3s}.featured-project-preview:hover{background:hsl(var(--showcase-background));color:hsl(var(--showcase-foreground))}.featured-project-preview img{width:100%;aspect-ratio:16 / 10;display:block;-o-object-fit:cover;object-fit:cover;-o-object-position:top;object-position:top;pointer-events:none}.featured-project-live-link{display:flex;align-items:flex-start;gap:8px;width:-moz-fit-content;width:fit-content;max-width:100%;padding:8px 4px 0;font-size:10px;line-height:1.5;color:hsl(var(--showcase-muted));transition:color .3s}.featured-project-live-link span{overflow-wrap:anywhere}.featured-project-live-link svg{flex-shrink:0;margin-top:2px}.featured-project-live-link:hover,.featured-project-live-link:focus-visible{color:hsl(var(--showcase-cyan))}.featured-project-caption{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:48px;padding:8px 12px;font-size:12px;line-height:1.4;color:hsl(var(--showcase-foreground))}.featured-project-caption svg{flex-shrink:0;color:hsl(var(--showcase-cyan));transition:transform .3s}.featured-project-category{display:block;font-size:9px;line-height:1.4;color:hsl(var(--showcase-muted));padding:8px 4px 0}.featured-floating-project:hover,.featured-floating-project:focus-within,.featured-floating-project[data-dragging=true]{z-index:5}.featured-floating-project:hover .featured-project-float,.featured-floating-project:focus-within .featured-project-float{animation-play-state:paused;scale:1.04}.featured-floating-project:hover .featured-project-preview,.featured-floating-project:focus-within .featured-project-preview{border-color:hsl(var(--showcase-cyan));box-shadow:var(--showcase-shadow)}.featured-floating-project:hover svg{transform:translate(2px,-2px)}.featured-floating-project[data-dragging=true]{cursor:grabbing}.featured-floating-project[data-dragging=true] .featured-project-float{animation-play-state:paused;scale:1.06}@keyframes featuredFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-12px)}}.featured-screenshot-dialog{padding:0;margin:auto;width:min(960px,94vw);max-width:94vw;max-height:90dvh;border:1px solid hsl(var(--showcase-blue) / .5);border-radius:8px;background:hsl(var(--showcase-surface));color:hsl(var(--showcase-foreground));box-shadow:var(--showcase-shadow);overflow:hidden}.featured-screenshot-dialog::backdrop{background:hsl(var(--showcase-backdrop) / .88);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.featured-screenshot-dialog[open]{animation:featuredScreenshotOpen .25s ease-out}.featured-screenshot-content{display:flex;flex-direction:column;max-height:90dvh}.featured-screenshot-header{display:flex;flex-shrink:0;align-items:center;justify-content:space-between;gap:16px;padding:16px 24px;border-bottom:1px solid hsl(var(--showcase-blue) / .25)}.featured-screenshot-header>div{min-width:0}.featured-screenshot-header h3{color:hsl(var(--showcase-foreground));font-size:24px;letter-spacing:0}.featured-screenshot-header .featured-work-reset{display:inline-flex;flex-shrink:0}.featured-screenshot-scroll{overflow-y:auto;overscroll-behavior:contain}.featured-screenshot-scroll img{display:block;width:100%;height:auto}@keyframes featuredScreenshotOpen{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@media (min-width: 768px) and (max-width: 1023px){.featured-work-stage{height:640px}.featured-floating-project{width:35%}.featured-project-0{left:6%}.featured-project-1{left:57%}.featured-project-2{left:10%}.featured-project-3{left:55%}}@media (max-width: 767px){.featured-work-section{padding:48px 20px}.featured-work-heading{padding:32px 0}.featured-work-heading h2{font-size:40px}.featured-work-address{padding:4px 12px;font-size:9px}.featured-work-dots{width:auto}.featured-work-reset{display:none}.featured-work-stage{height:auto;display:grid;grid-template-columns:1fr;gap:32px;padding:32px 24px}.featured-floating-project{position:relative;inset:auto;width:100%;transform:none;cursor:pointer;touch-action:auto}.featured-project-float{animation:none}.featured-project-caption{font-size:14px}.featured-project-category{font-size:10px}}@media (prefers-reduced-motion: reduce){.featured-screenshot-dialog[open]{animation:none}.featured-project-float{animation:none;transition:none}.featured-project-preview,.featured-project-caption svg{transition:none}}.case-rail{--rail-surface: var(--secondary);--rail-ink: var(--foreground);--rail-accent: var(--primary);--rail-shadow: 0 24px 56px hsl(var(--foreground) / .12);max-width:1440px;margin:0 auto;padding:32px 64px 24px;letter-spacing:0}.case-rail-topline,.case-rail-bottomline{display:flex;align-items:center;justify-content:space-between;gap:24px}.case-rail-topline{padding-bottom:24px;border-bottom:1px solid hsl(var(--border))}.case-rail-topline h1{font-size:32px;letter-spacing:0}.case-rail-counter,.case-rail-bottomline>span{font-size:12px;color:hsl(var(--muted-foreground))}.case-rail-stage{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1fr) 100px;align-items:center;gap:40px;min-height:640px;perspective:1200px;touch-action:pan-y}.case-rail-story{animation:railStoryIn .65s cubic-bezier(.22,1,.36,1) both}.case-rail-category{font-size:11px;text-transform:uppercase;color:hsl(var(--rail-accent));margin-bottom:24px}.case-rail-story h2{font-size:56px;line-height:1.05;letter-spacing:0;text-wrap:balance;color:hsl(var(--rail-ink))}.case-rail-description{color:hsl(var(--muted-foreground));font-size:16px;margin-top:24px;max-width:400px}.case-rail-outcome{margin-top:24px;font-size:13px;color:hsl(var(--rail-accent))}.case-rail-open{padding:0;margin-top:32px;text-transform:uppercase;font-size:12px;text-decoration:none}.case-rail-open:hover{text-decoration:none}.case-rail-open svg{transition:transform .2s ease-in-out}.case-rail-open:hover svg{transform:translate(4px)}.case-rail-main-image{position:relative;display:block;aspect-ratio:4 / 5;max-height:520px;transform:rotateY(-14deg) rotate(5deg);animation:railImageIn .8s cubic-bezier(.22,1,.36,1) both;background:hsl(var(--rail-surface));box-shadow:var(--rail-shadow);transition:transform .5s cubic-bezier(.22,1,.36,1);outline-offset:8px}.case-rail-main-image img{width:100%;height:100%;display:block;-o-object-fit:cover;object-fit:cover}.case-rail-main-image:hover,.case-rail-main-image:focus-visible{transform:rotateY(0) rotate(0) scale(1.025)}.case-rail-image-arrow{position:absolute;right:16px;bottom:16px;width:48px;height:48px;display:grid;place-items:center;background:hsl(var(--primary));color:hsl(var(--primary-foreground));border-radius:50%;transition:transform .3s}.case-rail-main-image:hover .case-rail-image-arrow{transform:rotate(-35deg)}.case-rail-selector{display:flex;flex-direction:column;gap:16px;transform:rotateY(-16deg) rotate(5deg)}.case-rail-thumbnail{position:relative;display:block;width:100%;height:76px;padding:0;border-radius:4px;border:2px solid transparent;opacity:.5;overflow:hidden;transition:opacity .3s,transform .45s cubic-bezier(.22,1,.36,1),border-color .3s;background:hsl(var(--rail-surface))}.case-rail-thumbnail img{display:block;width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.case-rail-thumbnail span{position:absolute;bottom:4px;right:4px;font-size:10px;line-height:1.5;padding:0 4px;background:hsl(var(--background) / .95);color:hsl(var(--foreground))}.case-rail-thumbnail[aria-pressed=true]{opacity:1;border-color:hsl(var(--primary));transform:translate(-12px) scale(1.08)}.case-rail-thumbnail:hover,.case-rail-thumbnail:focus-visible{opacity:1;transform:translate(-8px);border-color:hsl(var(--accent))}.case-rail-bottomline{border-top:1px solid hsl(var(--border));padding-top:16px}@keyframes railStoryIn{0%{opacity:0;transform:translateY(32px)}to{opacity:1;transform:translateY(0)}}@keyframes railImageIn{0%{opacity:0;translate:0 64px}to{opacity:1;translate:0 0}}.case-rail-stage[data-direction=backward] .case-rail-main-image{animation-name:railImageBack}@keyframes railImageBack{0%{opacity:0;translate:0 -64px}to{opacity:1;translate:0 0}}@media (min-width: 768px) and (max-width: 1100px){.case-rail{padding-inline:32px}.case-rail-stage{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 72px;gap:24px}.case-rail-story h2{font-size:44px}.case-rail-thumbnail{height:64px}}@media (max-width: 767px){.case-rail{padding:24px 20px}.case-rail-topline h1{font-size:28px}.case-rail-stage{grid-template-columns:minmax(0,1fr) 56px;gap:24px 20px;min-height:0;padding:32px 0}.case-rail-story{grid-column:1 / -1}.case-rail-story h2{font-size:40px;max-width:480px}.case-rail-category{margin-bottom:16px}.case-rail-description{font-size:14px;margin-top:16px}.case-rail-outcome,.case-rail-open{margin-top:16px}.case-rail-main-image{aspect-ratio:4 / 4.5;transform:rotateY(-8deg) rotate(3deg)}.case-rail-selector{gap:12px;transform:rotate(3deg)}.case-rail-thumbnail{height:48px}.case-rail-thumbnail[aria-pressed=true]{transform:translate(-4px) scale(1.04)}}@media (prefers-reduced-motion: reduce){.case-rail-story,.case-rail-main-image{animation:none}.case-rail-main-image,.case-rail-thumbnail,.case-rail-open svg,.case-rail-image-arrow{transition:none}}:root{--background: 0 0% 100%;--foreground: 0 0% 6.67%;--card: 60 9.09% 97.84%;--card-foreground: 0 0% 6.67%;--popover: 0 0% 100%;--popover-foreground: 0 0% 6.67%;--primary: 0 0% 6.67%;--primary-foreground: 0 0% 100%;--secondary: 0 0% 94.9%;--secondary-foreground: 0 0% 6.67%;--muted: 0 0% 94.9%;--muted-foreground: 0 0% 29.41%;--accent: 0 0% 94.9%;--accent-foreground: 0 0% 6.67%;--border: 0 0% 88%;--input: 0 0% 88%;--ring: 0 0% 29.41%;--about-heading: var(--foreground);--about-body: var(--muted-foreground);--about-muted: var(--muted-foreground);--about-divider: var(--border);--galloping: var(--primary);--galloping-light: var(--card);--baystate: var(--primary);--baystate-teal: var(--primary);--baystate-light: var(--card);--showcase-background: var(--background);--showcase-surface: var(--card);--showcase-foreground: var(--foreground);--showcase-muted: var(--muted-foreground);--showcase-blue: var(--border);--showcase-cyan: var(--foreground);--showcase-gradient: linear-gradient(hsl(var(--foreground)), hsl(var(--foreground)));--showcase-shadow: none;--showcase-card-shadow: 0 8px 24px hsl(var(--foreground) / .06);--font-heading: Arial, Helvetica, sans-serif;--font-body: Arial, Helvetica, sans-serif;--content-width: 1120px;--section-space: 96px;--page-gutter: 32px;--portrait-mask: linear-gradient(to bottom, transparent 0%, hsl(0 0% 0%) 10%, hsl(0 0% 0%) 64%, transparent 100%);--portrait-side-mask: linear-gradient(to right, transparent, hsl(0 0% 0%) 16%, hsl(0 0% 0%) 84%, transparent)}.dark{--background: 0 0% 6.67%;--foreground: 0 0% 98%;--card: 0 0% 10%;--card-foreground: 0 0% 98%;--popover: 0 0% 10%;--popover-foreground: 0 0% 98%;--primary: 0 0% 98%;--primary-foreground: 0 0% 6.67%;--secondary: 0 0% 15%;--secondary-foreground: 0 0% 98%;--muted: 0 0% 15%;--muted-foreground: 0 0% 72%;--accent: 0 0% 20%;--accent-foreground: 0 0% 98%;--border: 0 0% 24%;--input: 0 0% 24%;--ring: 0 0% 72%;--about-heading: var(--foreground);--about-body: var(--muted-foreground);--about-muted: var(--muted-foreground);--about-divider: var(--border);--showcase-background: var(--background);--showcase-surface: var(--card);--showcase-foreground: var(--foreground);--showcase-muted: var(--muted-foreground);--showcase-card-shadow: none;--galloping-light: var(--card);--baystate-light: var(--card)}*{letter-spacing:0!important}.portfolio-shell h1,.portfolio-shell h2,.portfolio-shell h3,.portfolio-shell h4{font-family:var(--font-heading);font-style:normal;line-height:1.15;text-wrap:balance}.portfolio-shell p{line-height:1.75}.portfolio-container{width:min(var(--content-width),calc(100% - var(--page-gutter) * 2));margin-inline:auto}.portfolio-shell .container{max-width:var(--content-width);padding-inline:var(--page-gutter)}.portfolio-header{position:sticky;top:0;z-index:40;border-bottom:1px solid hsl(var(--border) / .65);background:hsl(var(--background) / .96);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.portfolio-nav{height:88px;display:flex;align-items:center;justify-content:space-between;gap:24px}.portfolio-brand{font-weight:600;font-size:18px;color:hsl(var(--foreground))}.portfolio-brand span{font-weight:400;margin-left:16px;font-size:12px;color:hsl(var(--muted-foreground))}.portfolio-nav nav a{color:hsl(var(--muted-foreground))}.portfolio-nav nav a:hover,.portfolio-nav nav a[aria-current]{color:hsl(var(--foreground))}.portfolio-mobile-nav{padding:16px var(--page-gutter) 24px;border-top:1px solid hsl(var(--border))}.portfolio-mobile-nav a{display:block;padding:12px 0;color:hsl(var(--foreground))}.portfolio-hero{padding-top:88px;padding-bottom:40px}.portfolio-shell .hero-headline{font-size:48px;line-height:1.15;max-width:840px}.portrait-section{display:flex;justify-content:center;padding-bottom:64px}.editorial-portrait{width:352px;height:384px;mask-image:var(--portrait-mask);-webkit-mask-image:var(--portrait-mask);animation:portraitEntrance .8s ease-out both}.editorial-portrait img{mask-image:var(--portrait-side-mask);-webkit-mask-image:var(--portrait-side-mask)}@keyframes portraitEntrance{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.primary-projects{padding-bottom:var(--section-space)}.section-heading{display:flex;align-items:baseline;justify-content:space-between;gap:24px;margin-bottom:32px}.section-heading h2,.section-title{font-size:28px;font-weight:600}.primary-project-grid{display:grid;gap:32px}.primary-project{display:grid;grid-template-columns:1fr 1fr;align-items:stretch;min-height:456px;border-radius:8px;overflow:hidden;background:hsl(var(--card));border:1px solid hsl(var(--border));transition:border-color .2s}.primary-project-link:nth-child(2) .primary-project{background:hsl(var(--secondary))}.primary-project-link:hover .primary-project{border-color:hsl(var(--muted-foreground))}.primary-project-text{padding:48px;display:flex;flex-direction:column;align-items:flex-start;gap:24px}.primary-project h3{font-size:32px;font-weight:600}.primary-project-text p{font-size:15px}.project-tags{display:flex;flex-wrap:wrap;gap:8px}.project-tags span{font-size:11px;padding:4px 8px;border:1px solid hsl(var(--border));border-radius:4px;color:hsl(var(--muted-foreground))}.project-cta{display:inline-flex;align-items:center;gap:12px;font-size:14px;font-weight:600;margin-top:auto;padding-top:8px;color:hsl(var(--foreground))}.primary-project-media{min-width:0;padding:32px 24px 32px 0;display:flex;align-items:center}.primary-project-media img{width:100%;height:344px;-o-object-fit:contain;object-fit:contain}.other-projects{padding-bottom:var(--section-space)}.editorial-card-light{background:hsl(var(--card));border:1px solid hsl(var(--border))}#main-content>section:not(.contact-cta):not(.featured-work-section){padding-block:var(--section-space)}#main-content>section>div[class*=max-w]{max-width:var(--content-width)}.featured-work-section{padding-block:var(--section-space)}.featured-work-heading h2{font-size:40px}.featured-work-stage{background-image:none;height:560px}.featured-floating-project{--tilt: 0deg}.featured-project-float{animation:none}.featured-project-0,.featured-project-1{top:8%}.featured-project-2,.featured-project-3{top:54%}.featured-work-heading{text-align:left;padding:32px 0}.featured-work-toolbar{background:hsl(var(--card))}.featured-work-dots,.featured-work-eyebrow>span:first-child{display:none}.featured-work-browser{border:0;background:hsl(var(--background))}.featured-work-eyebrow{border-color:hsl(var(--border))}.contact-cta{padding-block:var(--section-space);background:hsl(var(--secondary));border-block:1px solid hsl(var(--border))}.contact-cta h2{font-size:48px;font-weight:600}.portfolio-footer{background:hsl(var(--background))}.boston-time{text-align:center;padding:var(--section-space) var(--page-gutter)}.boston-time-display{font-size:64px;font-weight:600;color:hsl(var(--foreground));font-variant-numeric:tabular-nums;min-height:112px}.boston-time-location{font-size:24px;color:hsl(var(--muted-foreground))}.footer-bottom{border-top:1px solid hsl(var(--border));padding-block:32px;display:flex;align-items:center;justify-content:space-between;gap:24px}.footer-bottom nav a:hover{color:hsl(var(--foreground));text-decoration:underline}.portfolio-shell :is([class*="text-[#"],[class*=text-blue-],[class*=text-cyan-],[class*=text-green-],[class*=text-purple-],[class*=text-slate-],[class*=text-navy]):not(.case-study-specimen,.case-study-specimen *){color:hsl(var(--foreground))}.portfolio-shell [class*=bg-clip-text]:not(.case-study-specimen,.case-study-specimen *){background:none;color:hsl(var(--foreground));-webkit-text-fill-color:currentColor}.portfolio-shell :is([class*=bg-gradient],[class*="bg-[#"],[class*=bg-blue-],[class*=bg-cyan-],[class*=bg-green-],[class*=bg-purple-]):not(.case-study-specimen,.case-study-specimen *){background-image:none;background-color:hsl(var(--secondary))}.portfolio-shell :is([class*="border-[#"],[class*=border-blue-],[class*=border-green-],[class*=border-purple-]):not(.case-study-specimen,.case-study-specimen *){border-color:hsl(var(--border))}@media (max-width: 1023px){:root{--section-space: 80px}.primary-project-text{padding:32px}.primary-project h3{font-size:28px}.primary-project-media{padding-right:16px}.portfolio-shell .hero-headline{font-size:40px}}@media (max-width: 767px){:root{--section-space: 64px;--page-gutter: 20px}.portfolio-nav{height:72px;gap:16px}.portfolio-brand{font-size:16px}.portfolio-brand span{display:none}.portfolio-hero{padding-top:56px;padding-bottom:32px}.portfolio-shell .hero-headline{font-size:32px}.editorial-portrait{width:280px;height:320px}.portrait-section{padding-bottom:48px}.primary-project{grid-template-columns:1fr;min-height:0}.primary-project-text{padding:32px 24px;gap:20px}.primary-project h3{font-size:28px}.project-cta{margin-top:8px}.primary-project-media{padding:0 24px 24px}.primary-project-media img{height:260px}.section-heading h2,.section-title{font-size:24px}.contact-cta h2{font-size:32px}.boston-time-display{font-size:48px;min-height:84px}.footer-bottom{flex-direction:column;text-align:center}.featured-work-stage{height:auto;padding-inline:0}.featured-work-heading h2{font-size:32px}.featured-work-reset{display:inline-flex}}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}:root{--media-overlay: 0 0% 0%;--media-foreground: 0 0% 100%}.case-media-overlay{background:hsl(var(--media-overlay) / .72)}.portfolio-shell section:has(>.case-media-overlay){padding-block:0!important}.portfolio-shell section:has(>.case-media-overlay) :is(h1,h2,p){color:hsl(var(--media-foreground))}.case-media-divider,section:has(>.case-media-overlay) .bg-primary{background:hsl(var(--media-foreground))}.skip-to-content:not(:focus){transform:translateY(-100%)}.portfolio-shell .text-accent:not(.case-study-specimen *){color:hsl(var(--foreground))}.about-portrait{width:320px;height:420px;mask-image:var(--portrait-mask);-webkit-mask-image:var(--portrait-mask)}.about-portrait img{mask-image:var(--portrait-side-mask);-webkit-mask-image:var(--portrait-side-mask)}.about-module{padding:48px 0}@media (min-width: 768px){.about-module{padding:56px 40px}.about-module:nth-child(odd){padding-left:0}.about-module:nth-child(2n){padding-right:0}}@media (max-width: 767px){.about-portrait{width:260px;height:340px}.about-module{border-bottom:1px solid hsl(var(--about-divider))}.about-module:last-child{border-bottom:none}}@media (prefers-reduced-motion: no-preference){.about-reveal{opacity:0;transform:translateY(16px);transition:opacity .4s ease-out,transform .4s ease-out}.about-reveal.is-visible{opacity:1;transform:translateY(0)}}.file\:border-0::file-selector-button{border-width:0px}.file\:bg-transparent::file-selector-button{background-color:transparent}.file\:text-sm::file-selector-button{font-size:.875rem;line-height:1.25rem}.file\:font-medium::file-selector-button{font-weight:500}.file\:text-foreground::file-selector-button{color:hsl(var(--foreground))}.placeholder\:text-muted-foreground::-moz-placeholder{color:hsl(var(--muted-foreground))}.placeholder\:text-muted-foreground::placeholder{color:hsl(var(--muted-foreground))}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:-inset-2:after{content:var(--tw-content);top:-.5rem;right:-.5rem;bottom:-.5rem;left:-.5rem}.after\:inset-y-0:after{content:var(--tw-content);top:0;bottom:0}.after\:left-1\/2:after{content:var(--tw-content);left:50%}.after\:w-1:after{content:var(--tw-content);width:.25rem}.after\:w-\[2px\]:after{content:var(--tw-content);width:2px}.after\:-translate-x-1\/2:after{content:var(--tw-content);--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.first\:rounded-l-md:first-child{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.first\:border-l:first-child{border-left-width:1px}.last\:rounded-r-md:last-child{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.last\:border-0:last-child{border-width:0px}.last\:pb-0:last-child{padding-bottom:0}.focus-within\:relative:focus-within{position:relative}.focus-within\:z-20:focus-within{z-index:20}.hover\:border-foreground:hover{border-color:hsl(var(--foreground))}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-destructive\/80:hover{background-color:hsl(var(--destructive) / .8)}.hover\:bg-destructive\/90:hover{background-color:hsl(var(--destructive) / .9)}.hover\:bg-muted:hover{background-color:hsl(var(--muted))}.hover\:bg-muted\/50:hover{background-color:hsl(var(--muted) / .5)}.hover\:bg-primary:hover{background-color:hsl(var(--primary))}.hover\:bg-primary\/5:hover{background-color:hsl(var(--primary) / .05)}.hover\:bg-primary\/80:hover{background-color:hsl(var(--primary) / .8)}.hover\:bg-primary\/90:hover{background-color:hsl(var(--primary) / .9)}.hover\:bg-secondary:hover{background-color:hsl(var(--secondary))}.hover\:bg-secondary\/80:hover{background-color:hsl(var(--secondary) / .8)}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:text-foreground:hover{color:hsl(var(--foreground))}.hover\:text-muted-foreground:hover{color:hsl(var(--muted-foreground))}.hover\:text-primary:hover{color:hsl(var(--primary))}.hover\:text-primary-foreground:hover{color:hsl(var(--primary-foreground))}.hover\:text-primary\/90:hover{color:hsl(var(--primary) / .9)}.hover\:underline:hover{text-decoration-line:underline}.hover\:no-underline:hover{text-decoration-line:none}.hover\:opacity-100:hover{opacity:1}.hover\:shadow-\[0_0_0_1px_hsl\(var\(--sidebar-accent\)\)\]:hover{--tw-shadow: 0 0 0 1px hsl(var(--sidebar-accent));--tw-shadow-colored: 0 0 0 1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:brightness-110:hover{--tw-brightness: brightness(1.1);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.focus\:bg-accent:focus{background-color:hsl(var(--accent))}.focus\:bg-primary:focus{background-color:hsl(var(--primary))}.focus\:text-accent-foreground:focus{color:hsl(var(--accent-foreground))}.focus\:text-primary-foreground:focus{color:hsl(var(--primary-foreground))}.focus\:opacity-100:focus{opacity:1}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-ring:focus{--tw-ring-color: hsl(var(--ring))}.focus\:ring-offset-2:focus{--tw-ring-offset-width: 2px}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-1:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color: hsl(var(--ring))}.focus-visible\:ring-offset-1:focus-visible{--tw-ring-offset-width: 1px}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width: 2px}.focus-visible\:ring-offset-background:focus-visible{--tw-ring-offset-color: hsl(var(--background))}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-30:disabled{opacity:.3}.disabled\:opacity-50:disabled{opacity:.5}.group\/menu-item:focus-within .group-focus-within\/menu-item\:opacity-100{opacity:1}.group:hover .group-hover\:-translate-y-1{--tw-translate-y: -.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:scale-\[1\.02\]{--tw-scale-x: 1.02;--tw-scale-y: 1.02;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:scale-\[1\.04\]{--tw-scale-x: 1.04;--tw-scale-y: 1.04;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:bg-primary\/10{background-color:hsl(var(--primary) / .1)}.group\/menu-item:hover .group-hover\/menu-item\:opacity-100,.group:hover .group-hover\:opacity-100{opacity:1}.group.destructive .group-\[\.destructive\]\:border-muted\/40{border-color:hsl(var(--muted) / .4)}.group.toaster .group-\[\.toaster\]\:border-border{border-color:hsl(var(--border))}.group.toast .group-\[\.toast\]\:bg-muted{background-color:hsl(var(--muted))}.group.toast .group-\[\.toast\]\:bg-primary{background-color:hsl(var(--primary))}.group.toaster .group-\[\.toaster\]\:bg-background{background-color:hsl(var(--background))}.group.destructive .group-\[\.destructive\]\:text-red-300{--tw-text-opacity: 1;color:rgb(252 165 165 / var(--tw-text-opacity, 1))}.group.toast .group-\[\.toast\]\:text-muted-foreground{color:hsl(var(--muted-foreground))}.group.toast .group-\[\.toast\]\:text-primary-foreground{color:hsl(var(--primary-foreground))}.group.toaster .group-\[\.toaster\]\:text-foreground{color:hsl(var(--foreground))}.group.toaster .group-\[\.toaster\]\:shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.group.destructive .group-\[\.destructive\]\:hover\:border-destructive\/30:hover{border-color:hsl(var(--destructive) / .3)}.group.destructive .group-\[\.destructive\]\:hover\:bg-destructive:hover{background-color:hsl(var(--destructive))}.group.destructive .group-\[\.destructive\]\:hover\:text-destructive-foreground:hover{color:hsl(var(--destructive-foreground))}.group.destructive .group-\[\.destructive\]\:hover\:text-red-50:hover{--tw-text-opacity: 1;color:rgb(254 242 242 / var(--tw-text-opacity, 1))}.group.destructive .group-\[\.destructive\]\:focus\:ring-destructive:focus{--tw-ring-color: hsl(var(--destructive))}.group.destructive .group-\[\.destructive\]\:focus\:ring-red-400:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(248 113 113 / var(--tw-ring-opacity, 1))}.group.destructive .group-\[\.destructive\]\:focus\:ring-offset-red-600:focus{--tw-ring-offset-color: #dc2626}.peer:disabled~.peer-disabled\:cursor-not-allowed{cursor:not-allowed}.peer:disabled~.peer-disabled\:opacity-70{opacity:.7}.has-\[\:disabled\]\:opacity-50:has(:disabled){opacity:.5}.group\/menu-item:has([data-sidebar=menu-action]) .group-has-\[\[data-sidebar\=menu-action\]\]\/menu-item\:pr-8{padding-right:2rem}.aria-disabled\:pointer-events-none[aria-disabled=true]{pointer-events:none}.aria-disabled\:opacity-50[aria-disabled=true]{opacity:.5}.aria-selected\:bg-accent[aria-selected=true]{background-color:hsl(var(--accent))}.aria-selected\:bg-accent\/50[aria-selected=true]{background-color:hsl(var(--accent) / .5)}.aria-selected\:text-accent-foreground[aria-selected=true]{color:hsl(var(--accent-foreground))}.aria-selected\:text-muted-foreground[aria-selected=true]{color:hsl(var(--muted-foreground))}.aria-selected\:opacity-100[aria-selected=true]{opacity:1}.aria-selected\:opacity-30[aria-selected=true]{opacity:.3}.data-\[disabled\=true\]\:pointer-events-none[data-disabled=true],.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[panel-group-direction\=vertical\]\:h-px[data-panel-group-direction=vertical]{height:1px}.data-\[panel-group-direction\=vertical\]\:w-full[data-panel-group-direction=vertical]{width:100%}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom]{--tw-translate-y: .25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=left\]\:-translate-x-1[data-side=left]{--tw-translate-x: -.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=right\]\:translate-x-1[data-side=right]{--tw-translate-x: .25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=top\]\:-translate-y-1[data-side=top]{--tw-translate-y: -.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=checked\]\:translate-x-5[data-state=checked]{--tw-translate-x: 1.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=unchecked\]\:translate-x-0[data-state=unchecked],.data-\[swipe\=cancel\]\:translate-x-0[data-swipe=cancel]{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[swipe\=end\]\:translate-x-\[var\(--radix-toast-swipe-end-x\)\][data-swipe=end]{--tw-translate-x: var(--radix-toast-swipe-end-x);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[swipe\=move\]\:translate-x-\[var\(--radix-toast-swipe-move-x\)\][data-swipe=move]{--tw-translate-x: var(--radix-toast-swipe-move-x);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes accordion-up{0%{height:var(--radix-accordion-content-height)}to{height:0}}.data-\[state\=closed\]\:animate-accordion-up[data-state=closed]{animation:accordion-up .2s ease-out}@keyframes accordion-down{0%{height:0}to{height:var(--radix-accordion-content-height)}}.data-\[state\=open\]\:animate-accordion-down[data-state=open]{animation:accordion-down .2s ease-out}.data-\[panel-group-direction\=vertical\]\:flex-col[data-panel-group-direction=vertical]{flex-direction:column}.data-\[state\=open\]\:border-primary\/20[data-state=open]{border-color:hsl(var(--primary) / .2)}.data-\[active\]\:bg-accent\/50[data-active]{background-color:hsl(var(--accent) / .5)}.data-\[selected\=\'true\'\]\:bg-accent[data-selected=true]{background-color:hsl(var(--accent))}.data-\[state\=active\]\:bg-background[data-state=active]{background-color:hsl(var(--background))}.data-\[state\=checked\]\:bg-primary[data-state=checked]{background-color:hsl(var(--primary))}.data-\[state\=on\]\:bg-accent[data-state=on],.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:hsl(var(--accent))}.data-\[state\=open\]\:bg-accent\/50[data-state=open]{background-color:hsl(var(--accent) / .5)}.data-\[state\=open\]\:bg-secondary[data-state=open]{background-color:hsl(var(--secondary))}.data-\[state\=selected\]\:bg-muted[data-state=selected]{background-color:hsl(var(--muted))}.data-\[state\=unchecked\]\:bg-input[data-state=unchecked]{background-color:hsl(var(--input))}.data-\[active\=true\]\:font-medium[data-active=true]{font-weight:500}.data-\[selected\=true\]\:text-accent-foreground[data-selected=true]{color:hsl(var(--accent-foreground))}.data-\[state\=active\]\:text-foreground[data-state=active]{color:hsl(var(--foreground))}.data-\[state\=checked\]\:text-primary-foreground[data-state=checked]{color:hsl(var(--primary-foreground))}.data-\[state\=on\]\:text-accent-foreground[data-state=on],.data-\[state\=open\]\:text-accent-foreground[data-state=open]{color:hsl(var(--accent-foreground))}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{color:hsl(var(--muted-foreground))}.data-\[disabled\=true\]\:opacity-50[data-disabled=true],.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[state\=open\]\:opacity-100[data-state=open]{opacity:1}.data-\[state\=active\]\:shadow-sm[data-state=active]{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.data-\[swipe\=move\]\:transition-none[data-swipe=move]{transition-property:none}.data-\[state\=closed\]\:duration-300[data-state=closed]{transition-duration:.3s}.data-\[state\=open\]\:duration-500[data-state=open]{transition-duration:.5s}.data-\[motion\^\=from-\]\:animate-in[data-motion^=from-],.data-\[state\=open\]\:animate-in[data-state=open],.data-\[state\=visible\]\:animate-in[data-state=visible]{animation-name:enter;animation-duration:.15s;--tw-enter-opacity: initial;--tw-enter-scale: initial;--tw-enter-rotate: initial;--tw-enter-translate-x: initial;--tw-enter-translate-y: initial}.data-\[motion\^\=to-\]\:animate-out[data-motion^=to-],.data-\[state\=closed\]\:animate-out[data-state=closed],.data-\[state\=hidden\]\:animate-out[data-state=hidden],.data-\[swipe\=end\]\:animate-out[data-swipe=end]{animation-name:exit;animation-duration:.15s;--tw-exit-opacity: initial;--tw-exit-scale: initial;--tw-exit-rotate: initial;--tw-exit-translate-x: initial;--tw-exit-translate-y: initial}.data-\[motion\^\=from-\]\:fade-in[data-motion^=from-]{--tw-enter-opacity: 0}.data-\[motion\^\=to-\]\:fade-out[data-motion^=to-],.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity: 0}.data-\[state\=closed\]\:fade-out-80[data-state=closed]{--tw-exit-opacity: .8}.data-\[state\=hidden\]\:fade-out[data-state=hidden]{--tw-exit-opacity: 0}.data-\[state\=open\]\:fade-in-0[data-state=open],.data-\[state\=visible\]\:fade-in[data-state=visible]{--tw-enter-opacity: 0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale: .95}.data-\[state\=open\]\:zoom-in-90[data-state=open]{--tw-enter-scale: .9}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale: .95}.data-\[motion\=from-end\]\:slide-in-from-right-52[data-motion=from-end]{--tw-enter-translate-x: 13rem}.data-\[motion\=from-start\]\:slide-in-from-left-52[data-motion=from-start]{--tw-enter-translate-x: -13rem}.data-\[motion\=to-end\]\:slide-out-to-right-52[data-motion=to-end]{--tw-exit-translate-x: 13rem}.data-\[motion\=to-start\]\:slide-out-to-left-52[data-motion=to-start]{--tw-exit-translate-x: -13rem}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y: -.5rem}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x: .5rem}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x: -.5rem}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y: .5rem}.data-\[state\=closed\]\:slide-out-to-bottom[data-state=closed]{--tw-exit-translate-y: 100%}.data-\[state\=closed\]\:slide-out-to-left[data-state=closed]{--tw-exit-translate-x: -100%}.data-\[state\=closed\]\:slide-out-to-left-1\/2[data-state=closed]{--tw-exit-translate-x: -50%}.data-\[state\=closed\]\:slide-out-to-right[data-state=closed],.data-\[state\=closed\]\:slide-out-to-right-full[data-state=closed]{--tw-exit-translate-x: 100%}.data-\[state\=closed\]\:slide-out-to-top[data-state=closed]{--tw-exit-translate-y: -100%}.data-\[state\=closed\]\:slide-out-to-top-\[48\%\][data-state=closed]{--tw-exit-translate-y: -48%}.data-\[state\=open\]\:slide-in-from-bottom[data-state=open]{--tw-enter-translate-y: 100%}.data-\[state\=open\]\:slide-in-from-left[data-state=open]{--tw-enter-translate-x: -100%}.data-\[state\=open\]\:slide-in-from-left-1\/2[data-state=open]{--tw-enter-translate-x: -50%}.data-\[state\=open\]\:slide-in-from-right[data-state=open]{--tw-enter-translate-x: 100%}.data-\[state\=open\]\:slide-in-from-top[data-state=open]{--tw-enter-translate-y: -100%}.data-\[state\=open\]\:slide-in-from-top-\[48\%\][data-state=open]{--tw-enter-translate-y: -48%}.data-\[state\=open\]\:slide-in-from-top-full[data-state=open]{--tw-enter-translate-y: -100%}.data-\[state\=closed\]\:duration-300[data-state=closed]{animation-duration:.3s}.data-\[state\=open\]\:duration-500[data-state=open]{animation-duration:.5s}.data-\[panel-group-direction\=vertical\]\:after\:left-0[data-panel-group-direction=vertical]:after{content:var(--tw-content);left:0}.data-\[panel-group-direction\=vertical\]\:after\:h-1[data-panel-group-direction=vertical]:after{content:var(--tw-content);height:.25rem}.data-\[panel-group-direction\=vertical\]\:after\:w-full[data-panel-group-direction=vertical]:after{content:var(--tw-content);width:100%}.data-\[panel-group-direction\=vertical\]\:after\:-translate-y-1\/2[data-panel-group-direction=vertical]:after{content:var(--tw-content);--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[panel-group-direction\=vertical\]\:after\:translate-x-0[data-panel-group-direction=vertical]:after{content:var(--tw-content);--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:left-\[calc\(var\(--sidebar-width\)\*-1\)\]{left:calc(var(--sidebar-width) * -1)}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:right-\[calc\(var\(--sidebar-width\)\*-1\)\]{right:calc(var(--sidebar-width) * -1)}.group[data-side=left] .group-data-\[side\=left\]\:-right-4{right:-1rem}.group[data-side=right] .group-data-\[side\=right\]\:left-0{left:0}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:-mt-8{margin-top:-2rem}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:hidden{display:none}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:\!size-8{width:2rem!important;height:2rem!important}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:w-\[--sidebar-width-icon\]{width:var(--sidebar-width-icon)}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:w-\[calc\(var\(--sidebar-width-icon\)_\+_theme\(spacing\.4\)\)\]{width:calc(var(--sidebar-width-icon) + 1rem)}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:w-\[calc\(var\(--sidebar-width-icon\)_\+_theme\(spacing\.4\)_\+2px\)\]{width:calc(var(--sidebar-width-icon) + 1rem + 2px)}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:w-0{width:0px}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group[data-side=right] .group-data-\[side\=right\]\:rotate-180,.group[data-state=open] .group-data-\[state\=open\]\:rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:overflow-hidden{overflow:hidden}.group[data-variant=floating] .group-data-\[variant\=floating\]\:rounded-lg{border-radius:var(--radius)}.group[data-variant=floating] .group-data-\[variant\=floating\]\:border{border-width:1px}.group[data-side=left] .group-data-\[side\=left\]\:border-r{border-right-width:1px}.group[data-side=right] .group-data-\[side\=right\]\:border-l{border-left-width:1px}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:\!p-0{padding:0!important}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:\!p-2{padding:.5rem!important}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:opacity-0{opacity:0}.group[data-variant=floating] .group-data-\[variant\=floating\]\:shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:after\:left-full:after{content:var(--tw-content);left:100%}.peer\/menu-button[data-size=default]~.peer-data-\[size\=default\]\/menu-button\:top-1\.5{top:.375rem}.peer\/menu-button[data-size=lg]~.peer-data-\[size\=lg\]\/menu-button\:top-2\.5{top:.625rem}.peer\/menu-button[data-size=sm]~.peer-data-\[size\=sm\]\/menu-button\:top-1{top:.25rem}.peer[data-variant=inset]~.peer-data-\[variant\=inset\]\:min-h-\[calc\(100svh-theme\(spacing\.4\)\)\]{min-height:calc(100svh - 1rem)}.dark\:border-destructive:is(.dark *){border-color:hsl(var(--destructive))}@media (min-width: 640px){.sm\:bottom-0{bottom:0}.sm\:bottom-6{bottom:1.5rem}.sm\:right-0{right:0}.sm\:right-8{right:2rem}.sm\:top-auto{top:auto}.sm\:mb-14{margin-bottom:3.5rem}.sm\:mb-4{margin-bottom:1rem}.sm\:mb-5{margin-bottom:1.25rem}.sm\:mb-8{margin-bottom:2rem}.sm\:mt-0{margin-top:0}.sm\:mt-2\.5{margin-top:.625rem}.sm\:mt-3{margin-top:.75rem}.sm\:mt-5{margin-top:1.25rem}.sm\:flex{display:flex}.sm\:max-w-sm{max-width:24rem}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:flex-col{flex-direction:column}.sm\:justify-end{justify-content:flex-end}.sm\:gap-2\.5{gap:.625rem}.sm\:gap-6{gap:1.5rem}.sm\:space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.sm\:space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(1rem * var(--tw-space-x-reverse));margin-left:calc(1rem * calc(1 - var(--tw-space-x-reverse)))}.sm\:space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(0px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px * var(--tw-space-y-reverse))}.sm\:space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.sm\:rounded-lg{border-radius:var(--radius)}.sm\:p-6{padding:1.5rem}.sm\:p-8{padding:2rem}.sm\:px-5{padding-left:1.25rem;padding-right:1.25rem}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:px-8{padding-left:2rem;padding-right:2rem}.sm\:py-16{padding-top:4rem;padding-bottom:4rem}.sm\:py-6{padding-top:1.5rem;padding-bottom:1.5rem}.sm\:pb-6{padding-bottom:1.5rem}.sm\:pt-4{padding-top:1rem}.sm\:text-left{text-align:left}.sm\:text-2xl{font-size:1.5rem;line-height:2rem}.sm\:text-4xl{font-size:2.25rem;line-height:2.5rem}.sm\:text-\[15px\]{font-size:15px}.sm\:text-\[22px\]{font-size:22px}.sm\:text-\[80px\]{font-size:80px}.sm\:text-base{font-size:1rem;line-height:1.5rem}.sm\:text-lg{font-size:1.125rem;line-height:1.75rem}.data-\[state\=open\]\:sm\:slide-in-from-bottom-full[data-state=open]{--tw-enter-translate-y: 100%}}@media (min-width: 768px){.md\:absolute{position:absolute}.md\:sticky{position:sticky}.md\:top-28{top:7rem}.md\:order-1{order:1}.md\:order-2{order:2}.md\:mb-0{margin-bottom:0}.md\:mb-12{margin-bottom:3rem}.md\:block{display:block}.md\:flex{display:flex}.md\:hidden{display:none}.md\:h-\[140px\]{height:140px}.md\:h-\[360px\]{height:360px}.md\:w-\[140px\]{width:140px}.md\:w-\[28\%\]{width:28%}.md\:w-\[72\%\]{width:72%}.md\:w-\[var\(--radix-navigation-menu-viewport-width\)\]{width:var(--radix-navigation-menu-viewport-width)}.md\:w-auto{width:auto}.md\:max-w-\[420px\]{max-width:420px}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.md\:grid-cols-\[0\.42fr_0\.58fr\]{grid-template-columns:.42fr .58fr}.md\:grid-cols-\[0\.8fr_1\.2fr\]{grid-template-columns:.8fr 1.2fr}.md\:grid-cols-\[1fr\,1\.2fr\]{grid-template-columns:1fr 1.2fr}.md\:flex-row{flex-direction:row}.md\:items-end{align-items:flex-end}.md\:justify-between{justify-content:space-between}.md\:gap-10{gap:2.5rem}.md\:gap-14{gap:3.5rem}.md\:gap-16{gap:4rem}.md\:gap-5{gap:1.25rem}.md\:self-auto{align-self:auto}.md\:p-12{padding:3rem}.md\:p-14{padding:3.5rem}.md\:p-8{padding:2rem}.md\:px-10{padding-left:2.5rem;padding-right:2.5rem}.md\:px-16{padding-left:4rem;padding-right:4rem}.md\:px-8{padding-left:2rem;padding-right:2rem}.md\:py-20{padding-top:5rem;padding-bottom:5rem}.md\:py-24{padding-top:6rem;padding-bottom:6rem}.md\:pl-10{padding-left:2.5rem}.md\:pr-10{padding-right:2.5rem}.md\:pt-16{padding-top:4rem}.md\:text-3xl{font-size:1.875rem;line-height:2.25rem}.md\:text-5xl{font-size:3rem;line-height:1}.md\:text-\[12px\]{font-size:12px}.md\:text-\[13px\]{font-size:13px}.md\:text-\[17px\]{font-size:17px}.md\:text-\[18px\]{font-size:18px}.md\:text-\[19px\]{font-size:19px}.md\:text-\[22px\]{font-size:22px}.md\:text-\[24px\]{font-size:24px}.md\:text-\[26px\]{font-size:26px}.md\:text-\[28px\]{font-size:28px}.md\:text-\[30px\]{font-size:30px}.md\:text-\[32px\]{font-size:32px}.md\:text-\[36px\]{font-size:36px}.md\:text-\[40px\]{font-size:40px}.md\:text-\[44px\]{font-size:44px}.md\:text-\[56px\]{font-size:56px}.md\:text-\[64px\]{font-size:64px}.md\:text-base{font-size:1rem;line-height:1.5rem}.md\:text-sm{font-size:.875rem;line-height:1.25rem}.md\:text-xl{font-size:1.25rem;line-height:1.75rem}.md\:opacity-0{opacity:0}.after\:md\:hidden:after{content:var(--tw-content);display:none}.peer[data-variant=inset]~.md\:peer-data-\[variant\=inset\]\:m-2{margin:.5rem}.peer[data-state=collapsed][data-variant=inset]~.md\:peer-data-\[state\=collapsed\]\:peer-data-\[variant\=inset\]\:ml-2{margin-left:.5rem}.peer[data-variant=inset]~.md\:peer-data-\[variant\=inset\]\:ml-0{margin-left:0}.peer[data-variant=inset]~.md\:peer-data-\[variant\=inset\]\:rounded-xl{border-radius:.75rem}.peer[data-variant=inset]~.md\:peer-data-\[variant\=inset\]\:shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}}@media (min-width: 1024px){.lg\:block{display:block}.lg\:aspect-auto{aspect-ratio:auto}.lg\:min-h-\[400px\]{min-height:400px}.lg\:grid-cols-\[1fr_320px\]{grid-template-columns:1fr 320px}.lg\:flex-row{flex-direction:row}.lg\:gap-16{gap:4rem}.lg\:gap-8{gap:2rem}.lg\:text-6xl{font-size:3.75rem;line-height:1}.lg\:text-\[52px\]{font-size:52px}}.\[\&\:has\(\[aria-selected\]\)\]\:bg-accent:has([aria-selected]){background-color:hsl(var(--accent))}.first\:\[\&\:has\(\[aria-selected\]\)\]\:rounded-l-md:has([aria-selected]):first-child{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.last\:\[\&\:has\(\[aria-selected\]\)\]\:rounded-r-md:has([aria-selected]):last-child{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.\[\&\:has\(\[aria-selected\]\.day-outside\)\]\:bg-accent\/50:has([aria-selected].day-outside){background-color:hsl(var(--accent) / .5)}.\[\&\:has\(\[aria-selected\]\.day-range-end\)\]\:rounded-r-md:has([aria-selected].day-range-end){border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role=checkbox]){padding-right:0}.\[\&\>button\]\:hidden>button{display:none}.\[\&\>span\:last-child\]\:truncate>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.\[\&\>span\]\:line-clamp-1>span{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.\[\&\>svg\+div\]\:translate-y-\[-3px\]>svg+div{--tw-translate-y: -3px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\[\&\>svg\]\:absolute>svg{position:absolute}.\[\&\>svg\]\:left-4>svg{left:1rem}.\[\&\>svg\]\:top-4>svg{top:1rem}.\[\&\>svg\]\:size-3\.5>svg{width:.875rem;height:.875rem}.\[\&\>svg\]\:size-4>svg{width:1rem;height:1rem}.\[\&\>svg\]\:h-2\.5>svg{height:.625rem}.\[\&\>svg\]\:h-3>svg{height:.75rem}.\[\&\>svg\]\:w-2\.5>svg{width:.625rem}.\[\&\>svg\]\:w-3>svg{width:.75rem}.\[\&\>svg\]\:shrink-0>svg{flex-shrink:0}.\[\&\>svg\]\:text-destructive>svg{color:hsl(var(--destructive))}.\[\&\>svg\]\:text-foreground>svg{color:hsl(var(--foreground))}.\[\&\>svg\]\:text-muted-foreground>svg{color:hsl(var(--muted-foreground))}.\[\&\>svg\~\*\]\:pl-7>svg~*{padding-left:1.75rem}.\[\&\>tr\]\:last\:border-b-0:last-child>tr{border-bottom-width:0px}.\[\&\[data-panel-group-direction\=vertical\]\>div\]\:rotate-90[data-panel-group-direction=vertical]>div{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\[\&\[data-state\=open\]\>svg\]\:rotate-45[data-state=open]>svg{--tw-rotate: 45deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\[\&_\.recharts-cartesian-axis-tick_text\]\:fill-muted-foreground .recharts-cartesian-axis-tick text{fill:hsl(var(--muted-foreground))}.\[\&_\.recharts-cartesian-grid_line\[stroke\=\'\#ccc\'\]\]\:stroke-border\/50 .recharts-cartesian-grid line[stroke="#ccc"]{stroke:hsl(var(--border) / .5)}.\[\&_\.recharts-curve\.recharts-tooltip-cursor\]\:stroke-border .recharts-curve.recharts-tooltip-cursor{stroke:hsl(var(--border))}.\[\&_\.recharts-dot\[stroke\=\'\#fff\'\]\]\:stroke-transparent .recharts-dot[stroke="#fff"]{stroke:transparent}.\[\&_\.recharts-layer\]\:outline-none .recharts-layer{outline:2px solid transparent;outline-offset:2px}.\[\&_\.recharts-polar-grid_\[stroke\=\'\#ccc\'\]\]\:stroke-border .recharts-polar-grid [stroke="#ccc"]{stroke:hsl(var(--border))}.\[\&_\.recharts-radial-bar-background-sector\]\:fill-muted .recharts-radial-bar-background-sector,.\[\&_\.recharts-rectangle\.recharts-tooltip-cursor\]\:fill-muted .recharts-rectangle.recharts-tooltip-cursor{fill:hsl(var(--muted))}.\[\&_\.recharts-reference-line_\[stroke\=\'\#ccc\'\]\]\:stroke-border .recharts-reference-line [stroke="#ccc"]{stroke:hsl(var(--border))}.\[\&_\.recharts-sector\[stroke\=\'\#fff\'\]\]\:stroke-transparent .recharts-sector[stroke="#fff"]{stroke:transparent}.\[\&_\.recharts-sector\]\:outline-none .recharts-sector,.\[\&_\.recharts-surface\]\:outline-none .recharts-surface{outline:2px solid transparent;outline-offset:2px}.\[\&_\[cmdk-group-heading\]\]\:px-2 [cmdk-group-heading]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-group-heading\]\]\:py-1\.5 [cmdk-group-heading]{padding-top:.375rem;padding-bottom:.375rem}.\[\&_\[cmdk-group-heading\]\]\:text-xs [cmdk-group-heading]{font-size:.75rem;line-height:1rem}.\[\&_\[cmdk-group-heading\]\]\:font-medium [cmdk-group-heading]{font-weight:500}.\[\&_\[cmdk-group-heading\]\]\:text-muted-foreground [cmdk-group-heading]{color:hsl(var(--muted-foreground))}.\[\&_\[cmdk-group\]\:not\(\[hidden\]\)_\~\[cmdk-group\]\]\:pt-0 [cmdk-group]:not([hidden])~[cmdk-group]{padding-top:0}.\[\&_\[cmdk-group\]\]\:px-2 [cmdk-group]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-input-wrapper\]_svg\]\:h-5 [cmdk-input-wrapper] svg{height:1.25rem}.\[\&_\[cmdk-input-wrapper\]_svg\]\:w-5 [cmdk-input-wrapper] svg{width:1.25rem}.\[\&_\[cmdk-input\]\]\:h-12 [cmdk-input]{height:3rem}.\[\&_\[cmdk-item\]\]\:px-2 [cmdk-item]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-item\]\]\:py-3 [cmdk-item]{padding-top:.75rem;padding-bottom:.75rem}.\[\&_\[cmdk-item\]_svg\]\:h-5 [cmdk-item] svg{height:1.25rem}.\[\&_\[cmdk-item\]_svg\]\:w-5 [cmdk-item] svg{width:1.25rem}.\[\&_p\]\:leading-relaxed p{line-height:1.625}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:size-4 svg{width:1rem;height:1rem}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_tr\:last-child\]\:border-0 tr:last-child{border-width:0px}.\[\&_tr\]\:border-b tr{border-bottom-width:1px}[data-side=left][data-collapsible=offcanvas] .\[\[data-side\=left\]\[data-collapsible\=offcanvas\]_\&\]\:-right-2{right:-.5rem}[data-side=left][data-state=collapsed] .\[\[data-side\=left\]\[data-state\=collapsed\]_\&\]\:cursor-e-resize{cursor:e-resize}[data-side=left] .\[\[data-side\=left\]_\&\]\:cursor-w-resize{cursor:w-resize}[data-side=right][data-collapsible=offcanvas] .\[\[data-side\=right\]\[data-collapsible\=offcanvas\]_\&\]\:-left-2{left:-.5rem}[data-side=right][data-state=collapsed] .\[\[data-side\=right\]\[data-state\=collapsed\]_\&\]\:cursor-w-resize{cursor:w-resize}[data-side=right] .\[\[data-side\=right\]_\&\]\:cursor-e-resize{cursor:e-resize}
