@import "https://fonts.googleapis.com/css2?family=Poppins:wght@100;200;300;400;500;600;700;800;900&family=Playfair+Display:wght@400;500;600;700;800;900&display=swap";
@custom-variant dark (&:where(.dark, .dark *));@theme{ --breakpoint-xs: 375px; --color-surface-background: #f8fafc; --color-surface-foreground: #0f172a; --color-surface-card: #fff; --color-surface-muted: #f1f5f9; --color-surface-border: #cbd5e1; --color-text-primary: #111827; --color-text-secondary: #374151; --color-text-muted: #4b5563; --color-focus-ring: #1e40af; --color-focus-ring-dark: #38bdf8; --animate-fade-in: fade-in .25s ease-out both; --animate-fade-out: fade-out .25s ease-out both; --animate-slide-up: slide-up .3s ease-out both; --animate-slide-down: slide-down .3s ease-out both; --animate-slide-left: slide-left .3s ease-out both; --animate-slide-right: slide-right .3s ease-out both; --animate-scale-in: scale-in .2s ease-out both; --animate-scale-out: scale-out .2s ease-out both; --animate-pulse-subtle: pulse-subtle 2s ease-in-out infinite; --animate-shimmer: shimmer 2s ease-in-out infinite;}@utility ds-container{@apply mx-auto w-full max-w-7xl px-4 sm:px-6 lg:px-8;}@utility ds-section{@apply py-10 sm:py-12 lg:py-16;}@utility text-content-primary{color: var(--color-text-primary);}@utility text-content-secondary{color: var(--color-text-secondary);}@utility text-content-muted{color: var(--color-text-muted);}@utility focus-ring{@apply ring-2 ring-offset-2 outline-hidden; --tw-ring-color: var(--color-focus-ring);}.dark .focus-ring,.dark [class*=focus-ring]{--tw-ring-color:var(--color-focus-ring-dark)}@utility mobile-tight-grid{@apply gap-3;}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes fade-out{0%{opacity:1}to{opacity:0}}@keyframes slide-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes slide-down{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes slide-left{0%{opacity:0;transform:translate(8px)}to{opacity:1;transform:translate(0)}}@keyframes slide-right{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}@keyframes scale-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes scale-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.95)}}@keyframes pulse-subtle{0%,to{opacity:1}50%{opacity:.8}}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}
@plugin "@tailwindcss/typography";@plugin "@tailwindcss/forms";@config "../tailwind.config.ts";@layer base{:root{--background:255 255 255;--foreground:15 23 42;--card:255 255 255;--card-foreground:15 23 42;--popover:255 255 255;--popover-foreground:15 23 42;--primary:37 99 235;--primary-600:37 99 235;--primary-foreground:255 255 255;--text-primary:15 23 42;--secondary:241 245 249;--secondary-foreground:15 23 42;--muted:248 250 252;--muted-foreground:71 85 105;--accent:5 150 105;--accent-foreground:255 255 255;--destructive:239 68 68;--destructive-foreground:255 255 255;--border:226 232 240;--input:226 232 240;--ring:37 99 235;--radius:.75rem;--hopkinton-primary:37 99 235;--hopkinton-secondary:5 150 105;--hopkinton-accent:220 38 38;--hopkinton-neutral:100 116 139;--hopkinton-gold:245 158 11;--hopkinton-navy:30 58 138;--content-width:1200px;--header-height:80px;--section-padding:6rem}.dark{--background:2 6 23;--foreground:248 250 252;--card:3 7 18;--card-foreground:248 250 252;--popover:3 7 18;--popover-foreground:248 250 252;--primary:59 130 246;--primary-foreground:2 6 23;--secondary:30 41 59;--secondary-foreground:248 250 252;--muted:15 23 42;--muted-foreground:148 163 184;--accent:16 185 129;--accent-foreground:2 6 23;--destructive:248 113 113;--destructive-foreground:2 6 23;--border:30 41 59;--input:30 41 59;--ring:59 130 246}@apply border-(--border);@apply scroll-smooth;body{background-color:rgb(var(--background));color:rgb(var(--foreground))}@apply font-sans antialiased;body{font-feature-settings:"rlig" 1, "calt" 1, "ss01" 1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility}@apply font-display tracking-tight;h1,h2,h3,h4,h5,h6{text-wrap:balance}p{text-wrap:pretty}@apply ring-ring ring-offset-background rounded-md ring-2 ring-offset-2 outline-hidden;@apply ring-hopkinton-primary ring-offset-background rounded-md ring-2 ring-offset-2 outline-hidden;@media (prefers-contrast:more){@apply ring-4 ring-offset-4;}}@layer components{@apply mx-auto px-4 sm:px-6 lg:px-8;.container-custom{max-width:var(--content-width)}.hopkinton-gradient{background:linear-gradient(135deg, rgb(var(--hopkinton-primary)) 0%, rgb(var(--hopkinton-secondary)) 50%, rgb(var(--hopkinton-navy)) 100%)}.hopkinton-gradient-subtle{background:linear-gradient(135deg, rgb(var(--hopkinton-primary), .05) 0%, rgb(var(--hopkinton-secondary), .05) 100%)}@apply bg-card text-card-foreground relative rounded-2xl border p-8 shadow-sm transition-all duration-300;@apply hover:-translate-y-1 hover:shadow-lg;.hopkinton-card{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(135deg,#ffffffe6 0%,#fffffff2 100%)}@apply bg-card text-card-foreground relative rounded-2xl border p-8 shadow-sm transition-all duration-300;@apply hover:-translate-y-1 hover:shadow-lg;@apply dark:bg-linear-to-br dark:from-slate-800/50 dark:to-slate-900/50;.hopkinton-card-dark{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(135deg,#ffffffe6 0%,#fffffff2 100%)}@apply inline-flex items-center justify-center rounded-xl px-6 py-3 text-sm font-semibold transition-all duration-200;@apply from-hopkinton-primary to-hopkinton-secondary bg-linear-to-r text-white;@apply hover:scale-105 hover:shadow-lg active:scale-95;@apply focus-visible:ring-ring focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-hidden;@apply disabled:pointer-events-none disabled:opacity-50;@apply inline-flex items-center justify-center rounded-xl px-6 py-3 text-sm font-semibold transition-all duration-200;@apply border-hopkinton-primary text-hopkinton-primary border-2 bg-transparent;@apply hover:bg-hopkinton-primary hover:scale-105 hover:text-white hover:shadow-lg active:scale-95;@apply focus-visible:ring-ring focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-hidden;@apply disabled:pointer-events-none disabled:opacity-50;@apply inline-flex items-center justify-center rounded-xl px-6 py-3 text-sm font-semibold transition-all duration-200;@apply text-hopkinton-primary bg-transparent;@apply hover:bg-hopkinton-primary/10 hover:scale-105 hover:shadow-lg active:scale-95;@apply focus-visible:ring-ring focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-hidden;@apply disabled:pointer-events-none disabled:opacity-50;@apply inline-flex items-center justify-center rounded-xl px-6 py-3 text-sm font-semibold transition-all duration-200;@apply border-hopkinton-primary text-hopkinton-primary border-2 bg-white;@apply hover:bg-hopkinton-primary hover:scale-105 hover:text-white hover:shadow-lg active:scale-95;@apply focus-visible:ring-ring focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-hidden;@apply disabled:pointer-events-none disabled:opacity-50;@apply py-24 lg:py-32;@apply mb-16 text-center;@apply font-display mb-6 text-4xl font-bold lg:text-5xl xl:text-6xl;@apply from-hopkinton-primary to-hopkinton-secondary bg-linear-to-r bg-clip-text text-transparent;@apply text-muted-foreground mx-auto max-w-3xl text-xl lg:text-2xl;@apply bg-card text-card-foreground relative rounded-2xl border p-8 shadow-sm transition-all duration-300 cursor-pointer;@apply hover:-translate-y-1 hover:shadow-lg hover:border-hopkinton-primary/30;@apply dark:bg-linear-to-br dark:from-slate-800/50 dark:to-slate-900/50;.business-card{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(135deg,#ffffffe6 0%,#fffffff2 100%)}@apply mb-4 flex items-start justify-between;@apply text-foreground group-hover:text-hopkinton-primary text-xl font-semibold transition-colors;@apply bg-hopkinton-primary/10 text-hopkinton-primary inline-flex items-center rounded-full px-3 py-1 text-xs font-medium;@apply text-muted-foreground space-y-1 text-sm;@apply text-muted-foreground hover:text-hopkinton-primary flex items-center space-x-2 text-sm transition-colors;@apply text-foreground/80 relative px-4 py-2 font-medium transition-colors duration-200;@apply hover:text-hopkinton-primary;@apply text-hopkinton-primary relative px-4 py-2 font-medium transition-colors duration-200;@apply bg-hopkinton-primary absolute bottom-0 left-1/2 h-0.5 w-8 -translate-x-1/2 rounded-full;.nav-link-active:after{content:""}.hero-gradient{background:linear-gradient(135deg, rgb(var(--hopkinton-primary), .9) 0%, rgb(var(--hopkinton-secondary), .8) 50%, rgb(var(--hopkinton-navy), .9) 100%)}@apply font-display text-5xl leading-tight font-bold lg:text-7xl xl:text-8xl;.hero-title{text-shadow:0 4px 20px #0000004d}@apply mb-8 text-xl font-light text-white/90 lg:text-2xl xl:text-3xl;.hero-subtitle{text-shadow:0 2px 10px #0000004d}.glass-effect{-webkit-backdrop-filter:blur(16px)saturate(180%);backdrop-filter:blur(16px)saturate(180%);background-color:#ffffffbf;border:1px solid #ffffff20}.text-balance{text-wrap:balance}@apply translate-y-8 opacity-0 transition-all duration-700 ease-out;@apply translate-y-0 opacity-100;}@apply prose prose-lg prose-slate dark:prose-invert max-w-none;@apply prose-headings:font-display prose-headings:tracking-tight;@apply prose-a:text-hopkinton-primary prose-a:no-underline hover:prose-a:underline;@apply prose-img:rounded-2xl prose-img:shadow-lg;@apply text-4xl font-bold tracking-tight lg:text-5xl;@apply text-3xl font-semibold tracking-tight lg:text-4xl;@apply text-2xl font-semibold tracking-tight lg:text-3xl;@apply mb-6 rounded-2xl border border-(--border) p-6 transition-all duration-200;@apply hover:border-hopkinton-primary/30 hover:shadow-sm;@apply text-foreground mb-3 text-xl font-semibold;@apply text-muted-foreground leading-relaxed;@apply bg-muted animate-pulse rounded;@media (max-width:640px){@apply text-4xl leading-tight;@apply text-3xl;@apply max-w-full overflow-x-hidden;@apply max-w-full px-4 wrap-break-word;@apply grid-cols-1 gap-4;@apply gap-4;@apply grid-cols-1;@apply w-full px-4 py-3 text-sm;@apply px-4;@apply overflow-x-hidden;@apply max-w-full overflow-x-hidden;}@media print{.hopkinton-gradient,.hero-gradient{color:#000!important;background:0 0!important}.hopkinton-card{box-shadow:none!important;border:1px solid #ccc!important}}@media (prefers-reduced-motion:reduce){*{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (prefers-contrast:more){.hopkinton-card{border-width:2px}.hopkinton-button{border:2px solid}}
@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2c55a0e60120577a-s.0-dom-5bn10r2.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/9c72aa0f40e4eef8-s.1y4-pdgsjb-pw.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/ad66f9afd8947f86-s.3lvt2whj97whp.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/5476f68d60460930-s.2uwcyprjm3xu3.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2bbe8d2671613f1f-s.0k62hbripvv8p.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/1bffadaabf893a1e-s.3-6t-g6q0vh0a.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/83afe278b6a6bb3c-s.p.2bn3s6zvc0dyp.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter Fallback;src:local(Arial);ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.0%;size-adjust:107.12%}.inter_5b7c257d-module__HFa7oG__className{font-family:Inter,Inter Fallback;font-style:normal}
