:root{--color-bg: #f1f5f9;--color-bg-alt: #ffffff;--color-surface: #ffffff;--color-surface-soft: #f0fdfa;--color-navy: #0f172a;--color-navy-2: #1e293b;--color-teal: #0d9488;--color-teal-hover: #0f766e;--color-teal-deep: #115e59;--color-sky: #38bdf8;--color-teal-bright: #5eead4;--color-text: #0f172a;--color-text-secondary: #3f4f63;--color-text-muted: #5b6b7c;--color-text-inverted: #f8fafc;--color-border: #e2e8f0;--color-border-strong: #cbd5e1;--bg: var(--color-bg);--bg-1: var(--color-surface);--bg-2: var(--color-bg-alt);--bg-3: var(--color-surface-soft);--bg-alt: #e8eef5;--text: var(--color-text);--text-soft: var(--color-text-secondary);--text-mid: var(--color-text-muted);--text-dim: #94a3b8;--text-inverted: var(--color-text-inverted);--line: var(--color-border);--line-2: var(--color-border-strong);--accent: var(--color-teal);--accent-2: var(--color-sky);--accent-deep: var(--color-teal-hover);--accent-text: var(--color-teal-hover);--accent-on-dark: var(--color-teal-bright);--cobalt: var(--color-sky);--action-primary: var(--color-teal-hover);--action-primary-hover: var(--color-teal-deep);--action-primary-text: #ffffff;--action-secondary-border: var(--color-border-strong);--action-secondary-text: var(--color-text);--surface-dark: var(--color-navy);--surface-dark-2: var(--color-navy-2);--surface-dark-3: #334155;--text-on-dark: #f8fafc;--text-on-dark-soft: #cbd5e1;--text-on-dark-mid: #94a3b8;--text-on-dark-dim: #64748b;--line-on-dark: rgba(248, 250, 252, .12);--line-on-dark-2: rgba(248, 250, 252, .22);--shadow-sm: 0 2px 8px rgba(15, 23, 42, .04);--shadow-md: 0 8px 30px rgba(15, 23, 42, .06);--shadow-lg: 0 16px 48px rgba(15, 23, 42, .1);--shadow-nav: 0 4px 24px rgba(15, 23, 42, .06);--gradient-hero: radial-gradient(ellipse 70% 50% at 85% 15%, rgba(13, 148, 136, .22), transparent 55%), radial-gradient(ellipse 50% 40% at 10% 80%, rgba(56, 189, 248, .12), transparent 50%), var(--surface-dark);--gradient-cta: radial-gradient(ellipse 60% 50% at 90% 20%, rgba(13, 148, 136, .2), transparent 55%), radial-gradient(ellipse 40% 40% at 0% 100%, rgba(56, 189, 248, .1), transparent 50%), var(--surface-dark);--radius-sm: 6px;--radius-md: 10px;--radius-lg: 18px;--radius-pill: 999px;--space-section: 4.75rem;--space-section-sm: 3.75rem;--space-card: 1.5rem;--transition: .25s ease;--maxw: 1240px;--font-display: "Archivo", system-ui, sans-serif;--font-sans: "Familjen Grotesk", system-ui, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, monospace}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;scroll-padding-top:5rem}body{font-family:var(--font-sans);font-weight:400;line-height:1.55;color:var(--text-soft);background:var(--bg);min-height:100vh;overflow-x:hidden;position:relative;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:1;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 220 220' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' seed='5'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.035 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");opacity:.4;mix-blend-mode:multiply}body>*{position:relative;z-index:2}#root{min-height:100vh}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}button{font:inherit;cursor:pointer;border:none;background:none}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}h1,h2,h3,h4,.display-2{font-family:var(--font-display);font-weight:800;text-transform:uppercase;letter-spacing:-.02em;line-height:1.05;color:var(--text)}em{font-style:normal;color:var(--accent-text)}.container{width:min(100% - 3rem,var(--maxw));margin-inline:auto}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.eyebrow{font-family:var(--font-mono);font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:var(--text-mid);display:flex;align-items:center;gap:.75rem;margin-bottom:1.1rem}.eyebrow:before{content:"";width:28px;height:1px;background:var(--text-mid);flex-shrink:0}.section{padding-block:var(--space-section)}.lead{font-family:var(--font-sans);font-weight:400;font-size:clamp(1.05rem,1.8vw,1.2rem);line-height:1.65;color:var(--text-soft)}h2{font-size:clamp(1.85rem,3.6vw,2.85rem)}.accent{color:var(--accent-text)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.9rem 1.6rem;border-radius:var(--radius-pill);font-family:var(--font-sans);font-weight:600;font-size:.95rem;transition:transform var(--transition),background var(--transition),border-color var(--transition),color var(--transition),box-shadow var(--transition)}.btn:hover{transform:translateY(-2px)}.btn-primary{background:var(--action-primary);color:var(--action-primary-text);box-shadow:0 4px 14px #0f766e40}.btn-primary:hover{background:var(--action-primary-hover);box-shadow:0 6px 18px #0f766e4d}.btn-outline{border:1px solid var(--action-secondary-border);color:var(--action-secondary-text);background:transparent}.btn-outline:hover{border-color:var(--color-navy);color:var(--color-navy)}.reveal{opacity:0;transform:translateY(20px);transition:opacity .9s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1)}.reveal.visible{opacity:1;transform:none}@media(max-width:720px){.container{width:min(100% - 2.5rem,var(--maxw))}.section{padding-block:var(--space-section-sm)}}@media(max-width:520px){.container{width:min(100% - 2rem,var(--maxw))}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}.btn:hover{transform:none}}.skip-link{position:absolute;top:-100%;left:1rem;z-index:999;padding:.75rem 1.25rem;background:var(--action-primary);color:var(--action-primary-text);border-radius:0 0 4px 4px;font-weight:600}.skip-link:focus{top:0}.topbar.marquee-wrap{background:var(--action-primary);color:var(--action-primary-text);overflow:hidden;padding:.65rem 0}.marquee-track{display:flex;width:max-content;animation:marquee-scroll 35s linear infinite}.marquee-track span{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;padding-right:3rem}@keyframes marquee-scroll{0%{transform:translate(0)}to{transform:translate(-50%)}}.navbar{position:sticky;top:0;z-index:100;background:#ffffffeb;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transition:background .3s ease,box-shadow .3s ease,backdrop-filter .3s ease}.navbar.scrolled{background:#fffffff5;box-shadow:var(--shadow-nav)}.nav-inner{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:.9rem 1.5rem;max-width:var(--maxw);margin:0 auto;position:relative;min-height:4.25rem}.logo{justify-self:start;display:inline-flex;align-items:baseline;gap:.12em;font-size:1.5rem;line-height:1}.nav-links{justify-self:center}.nav-cta,.nav-toggle{justify-self:end}.logo .tn{font-family:var(--font-display);font-style:italic;font-weight:700;color:var(--accent-text);letter-spacing:-.02em}.logo .software{font-family:var(--font-sans);font-weight:500;color:var(--color-navy);letter-spacing:-.01em}.nav-links{display:flex;align-items:center;gap:1.85rem}.nav-links a:not(.nav-cta-mobile){font-family:var(--font-sans);font-size:.94rem;letter-spacing:normal;text-transform:none;color:var(--text-soft);line-height:1;transition:color .2s ease}.nav-links a:not(.nav-cta-mobile):hover{color:var(--color-navy)}.nav-cta,.nav-cta-mobile{display:inline-flex;align-items:center;gap:.35rem;padding:.58rem 1.3rem;background:var(--action-primary);color:var(--action-primary-text);border-radius:var(--radius-pill);font-size:.9rem;font-weight:600;line-height:1;transition:background .25s ease,color .25s ease,box-shadow .25s ease}.nav-cta:hover,.nav-cta-mobile:hover{background:var(--action-primary-hover);color:var(--action-primary-text)}.nav-cta{justify-self:end}.nav-cta-mobile{display:none}.nav-toggle{display:none;width:40px;height:40px;place-items:center;font-size:1.25rem;color:var(--color-navy)}.nav-toggle:hover{background:transparent}@media(max-width:980px){.nav-inner{display:flex;justify-content:space-between}.nav-links{display:none;justify-self:auto}.nav-cta{display:none}.nav-cta-mobile{display:inline-flex;align-self:flex-start}.nav-toggle{display:grid}.nav-links.open{display:flex;flex-direction:column;align-items:flex-start;position:absolute;top:100%;left:0;right:0;background:var(--color-surface);padding:1.5rem;gap:1.25rem;border-bottom:1px solid var(--line);box-shadow:var(--shadow-md)}}@media(max-width:520px){.nav-inner{padding-inline:1rem}}.hero{position:relative;width:100%;padding:3.25rem 1.5rem 4.25rem;overflow:hidden;background:var(--gradient-hero);color:var(--text-on-dark-soft)}.hero:before{content:"";position:absolute;top:-20%;right:-10%;width:min(60vw,480px);height:min(60vw,480px);background:radial-gradient(circle,rgba(13,148,136,.2) 0%,transparent 70%);filter:blur(60px);pointer-events:none;z-index:0}.hero .accent{color:var(--accent-on-dark)}.hero h1{color:var(--text-on-dark)}.hero-layout{position:relative;z-index:1;display:grid;grid-template-columns:1.05fr .95fr;gap:2.25rem 2.75rem;align-items:center;max-width:var(--maxw);margin:0 auto}.hero-copy{display:flex;flex-direction:column;justify-content:center;max-width:36rem}.hero-eyebrow{margin-bottom:1.1rem;color:var(--text-on-dark-mid)}.hero-eyebrow:before{background:var(--text-on-dark-mid)}.hero-title-wrap{margin-bottom:1.15rem}.hero h1{font-size:clamp(2.35rem,5.5vw,4.25rem);line-height:1.02;max-width:12ch;text-transform:none;letter-spacing:-.03em}.hero-desc{font-family:var(--font-sans);font-weight:400;font-size:clamp(1.05rem,1.8vw,1.18rem);line-height:1.65;color:var(--text-on-dark-soft);max-width:40ch;margin-bottom:1.65rem}.hero-actions{display:flex;flex-wrap:wrap;gap:.85rem}.hero .btn-outline{border-color:var(--line-on-dark-2);color:var(--text-on-dark)}.hero .btn-outline:hover{border-color:var(--text-on-dark);color:var(--text-on-dark);background:#f8fafc0f}.hero-visual{min-width:0}.hero-panel{border:1px solid var(--line-on-dark);border-radius:var(--radius-md);background:linear-gradient(160deg,var(--surface-dark-2) 0%,rgba(15,23,42,.92) 55%,#0b1220 100%);overflow:hidden;box-shadow:0 24px 60px #00000059}.hero-panel-bar{display:flex;gap:.4rem;padding:.85rem 1rem;border-bottom:1px solid var(--line-on-dark);background:#1e293be6}.hero-panel-bar span{width:8px;height:8px;border-radius:50%;background:var(--line-on-dark-2)}.hero-panel-bar span:first-child{background:var(--accent)}.hero-panel-body{padding:1.15rem 1.15rem 1.25rem}.hero-panel-row{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}.hero-panel-label{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--text-on-dark-mid)}.hero-panel-chip{font-family:var(--font-mono);font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;color:var(--text-on-dark-soft);border:1px solid var(--line-on-dark);border-radius:var(--radius-pill);padding:.3rem .7rem}.hero-panel-blocks{display:grid;grid-template-columns:1fr 1fr;gap:.7rem}.hero-block{border:1px solid var(--line-on-dark);border-radius:var(--radius-sm);background:#0f172aa6;padding:.95rem .85rem;min-height:5rem;display:flex;flex-direction:column;justify-content:flex-end;gap:.2rem}.hero-block strong{font-family:var(--font-display);font-size:1rem;font-weight:700;color:var(--text-on-dark);text-transform:none;letter-spacing:0}.hero-block span{font-size:.84rem;color:var(--text-on-dark-mid)}.hero-block--accent{border-color:#0d948873;background:linear-gradient(180deg,rgba(13,148,136,.16),transparent 70%)}@keyframes hero-fade-up{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}.hero-enter{opacity:0;animation:hero-fade-up .9s cubic-bezier(.16,1,.3,1) forwards}.hero-enter--1{animation-delay:.05s}.hero-enter--2{animation-delay:.18s}.hero-enter--3{animation-delay:.31s}.hero-enter--4{animation-delay:.46s}.hero-enter--5{animation-delay:.58s}@media(max-width:980px){.hero-layout{grid-template-columns:1fr}}@media(max-width:720px){.hero{padding-inline:1.25rem}}@media(max-width:520px){.hero{padding-inline:1rem}.hero-panel-blocks{grid-template-columns:1fr}}.section-head{display:grid;grid-template-columns:1fr 1.15fr;gap:1.75rem 3.5rem;margin-bottom:2.75rem;align-items:end}.section-head h2{margin-bottom:0;line-height:1.08}.lead{max-width:48ch}.portfolio{background:var(--color-bg-alt);border-top:1px solid var(--line)}.filter-bar{display:flex;flex-wrap:wrap;gap:.6rem;margin-bottom:2.5rem}.filter-btn{padding:.45rem 1.1rem;border-radius:var(--radius-pill);font-family:var(--font-sans);font-size:.88rem;border:1px solid var(--line);color:var(--text-mid);background:var(--color-surface);transition:background .2s ease,border-color .2s ease,color .2s ease,box-shadow .2s ease}.filter-btn:hover{border-color:var(--line-2);color:var(--color-navy);box-shadow:var(--shadow-sm)}.filter-btn.active{background:var(--action-primary);color:var(--action-primary-text);border-color:var(--action-primary);font-weight:600}.projects-grid{display:grid;grid-template-columns:repeat(3,1fr);column-gap:1.25rem;row-gap:0;align-items:stretch}.project-card{--project-card-pad-x: var(--space-card);--project-card-pad-y: var(--space-card);display:grid;grid-template-rows:auto auto auto 1fr auto;grid-template-columns:minmax(0,1fr);height:100%;min-height:0;min-width:0;margin-bottom:1.25rem;border:1px solid var(--line);border-radius:var(--radius-md);overflow:hidden;background:var(--color-surface);box-shadow:var(--shadow-sm);transition:border-color .2s ease,transform .4s cubic-bezier(.16,1,.3,1),box-shadow .3s ease}@supports (grid-template-rows: subgrid){.project-card{grid-template-rows:subgrid;grid-row:span 5}}.project-card:hover{border-color:#0d948859;transform:translateY(-4px);box-shadow:var(--shadow-md)}.project-card--featured{border-color:#0d948847;box-shadow:var(--shadow-sm),inset 0 0 0 1px #0d948814}.project-card--featured .project-card-banner{background:linear-gradient(135deg,rgba(13,148,136,.16),transparent 48%),linear-gradient(180deg,#ecfeff 0%,var(--color-surface-soft) 55%,#e8eef5 100%)}.project-card-banner{display:flex;flex-direction:column;justify-content:space-between;gap:.75rem;box-sizing:border-box;min-height:8.75rem;padding:1.1rem 1.25rem 1rem;border-bottom:1px solid var(--line);background:linear-gradient(135deg,rgba(15,23,42,.04),transparent 42%),linear-gradient(180deg,var(--color-surface-soft),#e8eef5)}.project-card-banner-top{display:flex;justify-content:space-between;align-items:flex-start;gap:.75rem;min-height:2.7rem}.project-card-category{font-family:var(--font-mono);font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text-mid);line-height:1.35;max-width:min(22ch,70%);overflow-wrap:anywhere}.project-card-monogram{font-family:var(--font-display);font-style:italic;font-weight:800;font-size:clamp(2.4rem,3.4vw,3rem);line-height:.9;letter-spacing:-.04em;color:var(--color-navy);align-self:flex-end;flex-shrink:0}.project-card--featured .project-card-monogram{color:var(--accent-text)}.project-tag{font-family:var(--font-mono);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;background:#ffffffb8;color:var(--accent-text);border:1px solid rgba(13,148,136,.22);padding:.22rem .5rem;border-radius:var(--radius-sm);flex-shrink:0;white-space:nowrap}.project-card-title{font-size:clamp(1.25rem,1.8vw,1.55rem);line-height:1.2;margin:0;padding:var(--project-card-pad-y) var(--project-card-pad-x) 0;text-transform:none;letter-spacing:-.02em;color:var(--color-navy);overflow-wrap:anywhere}.project-subtitle{color:var(--text-mid);font-size:.9rem;margin-bottom:.75rem}.project-card-desc{color:var(--text-soft);font-size:.92rem;line-height:1.55;margin:0;padding:.55rem var(--project-card-pad-x) 0;overflow-wrap:anywhere}.project-tags{display:flex;flex-wrap:wrap;align-content:flex-start;align-self:end;gap:.4rem;margin:0;padding:1rem var(--project-card-pad-x) 0;min-width:0}.tech-badge{font-family:var(--font-mono);font-size:.65rem;letter-spacing:.06em;padding:.25rem .5rem;border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--text-mid);background:var(--bg);transition:border-color .2s ease,color .2s ease,background .2s ease}.tech-badge:hover{border-color:#0d948859;color:var(--accent-text);background:var(--color-surface-soft)}.project-link,.project-link-btn{font-size:.9rem;font-weight:600;color:var(--accent-text);transition:color .2s ease;justify-self:start;align-self:end;margin:0;padding:1rem var(--project-card-pad-x) var(--project-card-pad-y)}.project-link:hover,.project-link-btn:hover{color:var(--action-primary-hover)}@supports not (grid-template-rows: subgrid){.project-tags{margin-top:auto}}.portfolio-empty{color:var(--text-mid);padding:1rem 0}.project-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:300;background:#0f172a9e;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:grid;place-items:center;padding:1.25rem}.project-modal{width:min(100%,880px);max-height:min(90vh,900px);background:var(--color-surface);border:1px solid var(--line);border-radius:var(--radius-md);display:flex;flex-direction:column;overflow:hidden;box-shadow:var(--shadow-lg)}.project-modal-top{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.25rem 0}.project-modal-eyebrow{margin-bottom:0}.project-modal-close{width:40px;height:40px;border-radius:50%;border:1px solid var(--line);color:var(--color-navy);display:grid;place-items:center;transition:border-color .2s ease,background .2s ease}.project-modal-close:hover{border-color:var(--line-2);background:var(--bg)}.project-modal-scroll{overflow-y:auto;padding:1rem 1.25rem 1.5rem;flex:1}.project-modal-header h2{font-size:clamp(1.7rem,3vw,2.4rem);text-transform:none;margin-bottom:.35rem;color:var(--color-navy)}.project-modal-lead{color:var(--text-soft);max-width:60ch;margin-top:.75rem}.project-gallery{margin:1.35rem 0 1.5rem}.project-gallery-stage{position:relative;width:100%;aspect-ratio:16 / 10;max-height:min(48vh,460px);margin-inline:auto;background:linear-gradient(165deg,#0f172a,#1e293b 48%,#0b1220);border:1px solid var(--line);border-radius:var(--radius-sm);overflow:hidden;display:flex;align-items:center;justify-content:center}.project-gallery-stage img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;object-position:center;display:block}.project-gallery-nav{position:absolute;top:50%;transform:translateY(-50%);width:40px;height:40px;border-radius:50%;border:1px solid var(--line);background:#ffffffeb;color:var(--color-navy);font-size:1.5rem;line-height:1;display:grid;place-items:center;box-shadow:var(--shadow-sm);transition:background .2s ease,border-color .2s ease}.project-gallery-nav:hover{background:var(--color-surface);border-color:var(--line-2)}.project-gallery-nav--prev{left:.65rem}.project-gallery-nav--next{right:.65rem}.project-gallery-meta{display:flex;flex-wrap:wrap;align-items:baseline;gap:.5rem 1rem;margin-top:.65rem;min-height:1.25rem}.project-gallery-counter{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.06em;color:var(--text-dim);margin:0}.project-gallery-caption{margin:0;color:var(--text-mid);font-size:.9rem}.project-gallery-thumbs{display:flex;gap:.5rem;margin-top:.75rem;overflow-x:auto;padding-bottom:.15rem;-webkit-overflow-scrolling:touch}.project-gallery-thumb{flex:0 0 auto;width:72px;aspect-ratio:16 / 10;padding:0;border:1px solid var(--line);border-radius:var(--radius-sm);overflow:hidden;background:var(--bg-alt);opacity:.72;transition:opacity .2s ease,border-color .2s ease,box-shadow .2s ease}.project-gallery-thumb img{width:100%;height:100%;object-fit:cover;display:block}.project-gallery-thumb:hover,.project-gallery-thumb.is-active{opacity:1;border-color:var(--accent);box-shadow:0 0 0 1px #0d948840}.project-modal-identity{margin:1.35rem 0 1.5rem;padding:1.15rem 1.2rem;border:1px solid var(--line);border-radius:var(--radius-sm);background:linear-gradient(135deg,rgba(13,148,136,.1),transparent 45%),linear-gradient(180deg,var(--color-surface-soft),#eef4f8);display:grid;gap:1rem}.project-modal-identity-main{display:flex;align-items:center;gap:1rem}.project-modal-monogram{font-family:var(--font-display);font-style:italic;font-weight:800;font-size:clamp(2.4rem,4vw,3.2rem);line-height:1;letter-spacing:-.04em;color:var(--accent-text);flex-shrink:0}.project-modal-identity-title{font-family:var(--font-display);font-weight:700;font-size:1.2rem;color:var(--color-navy);margin:0 0 .25rem;letter-spacing:-.02em}.project-modal-identity-meta{margin:0 0 .55rem;font-family:var(--font-mono);font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;color:var(--text-mid)}.project-modal-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin-bottom:1.5rem}.project-modal-grid h3,.project-modal-features h3,.project-modal-benefit h3,.project-modal-stack h3{font-size:.95rem;text-transform:uppercase;letter-spacing:.04em;margin-bottom:.6rem;color:var(--color-navy)}.project-modal-grid p,.project-modal-features li,.project-modal-benefit p{color:var(--text-soft);font-size:.95rem}.project-modal-benefit{margin-bottom:1.5rem;padding:1rem 1.1rem;border:1px solid var(--line);border-radius:var(--radius-sm);background:linear-gradient(135deg,rgba(13,148,136,.06),transparent 55%),var(--color-surface-soft)}.project-modal-features ul{list-style:none;display:grid;gap:.45rem;margin-bottom:1.5rem}.project-modal-features li{padding-left:1rem;position:relative}.project-modal-features li:before{content:"";position:absolute;left:0;top:.55em;width:6px;height:6px;border-radius:50%;background:var(--accent)}.project-modal-actions{display:flex;flex-wrap:wrap;gap:.75rem;padding:1rem 1.25rem 1.25rem;border-top:1px solid var(--line);background:var(--bg)}.tech-stack{background:var(--bg)}.tech-groups{display:grid;grid-template-columns:repeat(2,1fr);gap:1.25rem}.tech-group{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--color-surface);padding:var(--space-card);box-shadow:var(--shadow-sm);transition:box-shadow .25s ease,border-color .25s ease}.tech-group:hover{box-shadow:var(--shadow-md);border-color:var(--line-2)}.tech-group h3{font-size:1rem;text-transform:none;margin-bottom:1rem;color:var(--color-navy)}.tech-group-items{display:flex;flex-wrap:wrap;gap:.45rem}@media(max-width:980px){.section-head{grid-template-columns:1fr}.projects-grid{grid-template-columns:repeat(2,1fr)}.project-modal-grid{grid-template-columns:1fr}.project-gallery-stage{max-height:min(42vh,380px)}.project-gallery-nav{width:36px;height:36px;font-size:1.35rem}.tech-groups,.convictions-grid{grid-template-columns:1fr}}@media(max-width:520px){.projects-grid{grid-template-columns:1fr}.project-modal-overlay{padding:.75rem}.filter-bar{flex-wrap:nowrap;overflow-x:auto;padding-bottom:.35rem;-webkit-overflow-scrolling:touch}.filter-btn{flex-shrink:0}}.services{background:var(--color-bg-alt)}.services-list{border-top:1px solid var(--line)}.service-row{display:grid;grid-template-columns:52px minmax(0,1.05fr) minmax(0,1.55fr) 40px;align-items:center;column-gap:1.5rem;row-gap:.35rem;padding:1.35rem .35rem;border-bottom:1px solid var(--line);position:relative;overflow:hidden;color:inherit;transition:background-color .28s ease,padding .28s ease,border-color .28s ease}.service-row:before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--accent);opacity:0;transform:scaleY(.55);transition:opacity .28s ease,transform .28s ease;z-index:0}.service-row:hover{background:#f0fdfa8c;padding-inline:.85rem}.service-row:hover:before{opacity:1;transform:scaleY(1)}.service-row>*{position:relative;z-index:1;transition:color .28s ease,transform .28s ease}.service-row:hover .service-num,.service-row:hover .service-arrow{color:var(--accent-text)}.service-row:hover .service-arrow{transform:translate(2px,-2px)}.service-num{font-family:var(--font-mono);font-size:.8rem;letter-spacing:.08em;color:var(--accent-text);line-height:1}.service-row h3{font-size:clamp(1.15rem,2vw,1.45rem);line-height:1.2;letter-spacing:-.02em;text-transform:none;color:var(--color-navy)}.service-row p{color:var(--text-soft);font-size:.98rem;line-height:1.6;max-width:48ch}.service-arrow{text-align:right;font-size:1.15rem;color:var(--text-mid);line-height:1}.stats{background:var(--surface-dark-2);color:var(--text-on-dark)}.stats-inner{display:grid;grid-template-columns:1fr 2fr;gap:4rem;align-items:start}.stats h2{font-size:clamp(2rem,4vw,3.2rem);line-height:1.1;color:var(--text-on-dark)}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem}.stat-item{border-top:1px solid var(--line-on-dark-2);padding-top:1.5rem}.stat-num{font-family:var(--font-display);font-weight:800;text-transform:uppercase;letter-spacing:-.02em;font-size:clamp(3rem,5vw,4.5rem);line-height:1;color:var(--text-on-dark)}.stat-label{margin-top:.5rem;color:var(--text-on-dark-dim);font-size:.95rem}.convictions-grid{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line);border-radius:var(--radius-md);overflow:hidden;background:var(--color-surface);box-shadow:var(--shadow-sm)}.conviction-card{padding:2rem 1.75rem;border:1px solid var(--line);margin:-1px 0 0 -1px;display:grid;grid-template-columns:64px 1fr;gap:1.15rem;background:var(--color-surface)}.conviction-num{font-family:var(--font-display);font-style:italic;font-weight:800;font-size:2.75rem;line-height:1;color:var(--accent-text)}.conviction-card h3{font-size:1.25rem;margin-bottom:.55rem;color:var(--color-navy)}.conviction-card p{color:var(--text-soft);font-size:.95rem}.process{background:var(--color-bg-alt);border-top:1px solid var(--line)}.process-differentials{margin-top:3.5rem;padding-top:2.5rem;border-top:1px solid var(--line)}.section-head--compact{margin-bottom:1.75rem}.process-differentials-title{font-family:var(--font-display);font-size:clamp(1.6rem,3vw,2.2rem);color:var(--color-navy);letter-spacing:-.02em;margin:0}.process-list{list-style:none;border-top:1px solid var(--line);margin:0;padding:0}.process-step{display:grid;grid-template-columns:auto 1fr;gap:1.75rem 2.5rem;padding:2.35rem 0;border-bottom:1px solid var(--line);align-items:start}.process-num{font-family:var(--font-display);font-style:italic;font-weight:800;font-size:clamp(4rem,8vw,7rem);line-height:.85;color:var(--accent-text)}.process-step h3{font-size:clamp(1.75rem,3vw,2.5rem);margin-bottom:.75rem;color:var(--color-navy)}.process-step p{color:var(--text-soft);max-width:52ch}.testimonials{background:var(--color-bg-alt)}.testimonial-block{display:grid;grid-template-columns:1fr 2fr;gap:3rem;padding:2.25rem;margin-bottom:1.25rem;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-sm)}.testimonial-block:first-of-type{border-top:1px solid var(--line)}.testimonial-author h4{font-size:1.1rem;margin-bottom:.35rem;color:var(--color-navy)}.testimonial-role{color:var(--text-mid);font-size:.92rem;margin-bottom:.75rem}.pill{display:inline-block;font-family:var(--font-mono);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-text);border:1px solid rgba(13,148,136,.25);background:var(--color-surface-soft);padding:.35rem .65rem;border-radius:var(--radius-pill)}.testimonial-quote{font-family:var(--font-display);font-style:italic;font-weight:500;font-size:clamp(1.2rem,2.5vw,2rem);line-height:1.35;color:var(--text-soft);position:relative;padding-left:1rem}.testimonial-quote:before{content:"“";position:absolute;left:-.15em;top:-.35em;font-size:5rem;line-height:1;color:var(--accent);opacity:.28;font-style:normal}.cta{background:var(--bg)}.cta-card{background:var(--gradient-cta);color:var(--text-on-dark);border-radius:var(--radius-lg);padding:clamp(2.5rem,5vw,4rem);position:relative;overflow:hidden;border:1px solid var(--line-on-dark);box-shadow:var(--shadow-lg)}.cta-card:before{content:"";position:absolute;top:-20%;right:-10%;width:400px;height:400px;background:radial-gradient(circle,rgba(13,148,136,.22) 0%,transparent 70%);filter:blur(60px);pointer-events:none}.cta-card .accent{color:var(--accent-on-dark)}.cta-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:3rem;position:relative;z-index:1}.cta-eyebrow{color:var(--text-on-dark-mid)}.cta-eyebrow:before{background:var(--text-on-dark-mid)}.cta-grid h2{font-size:clamp(2.5rem,5vw,4.8rem);line-height:1.05;max-width:none;color:var(--text-on-dark)}.cta-actions{display:flex;flex-direction:column;align-items:flex-end;gap:1.25rem;text-align:right}.cta-actions p{font-family:var(--font-sans);font-weight:400;font-size:clamp(1.05rem,1.8vw,1.2rem);line-height:1.55;color:var(--text-on-dark-soft);max-width:36ch}.cta-actions .btn-primary{background:var(--action-primary);color:var(--action-primary-text)}.cta-actions .btn-primary:hover{background:var(--action-primary-hover)}.btn-email{display:inline-flex;align-items:center;gap:.5rem;padding:.9rem 1.5rem;border:1px solid var(--line-on-dark-2);border-radius:var(--radius-pill);color:var(--text-on-dark);font-family:var(--font-sans);font-weight:500;font-size:.95rem;letter-spacing:normal;text-transform:none;transition:border-color .25s ease,background .25s ease,color .25s ease}.btn-email:hover{border-color:var(--text-on-dark);color:var(--text-on-dark);background:#f8fafc0f}footer{background:var(--surface-dark);padding:4rem 0 2rem;color:var(--text-on-dark-soft)}.footer-top{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:3rem;margin-bottom:3rem}.footer-brand .logo-big{font-family:var(--font-display);font-style:italic;font-weight:800;font-size:2.5rem;margin-bottom:1rem;color:var(--text-on-dark)}.footer-brand .logo-big .dot{color:var(--accent-on-dark)}.footer-brand p{color:var(--text-on-dark-soft);max-width:36ch;margin-bottom:1.5rem;line-height:1.55}.social-btns{display:flex;gap:.6rem}.social-btn{width:40px;height:40px;border-radius:50%;border:1px solid var(--line-on-dark);display:grid;place-items:center;font-family:var(--font-mono);font-size:.65rem;letter-spacing:.05em;color:var(--text-on-dark-mid);transition:border-color .2s ease,color .2s ease,background .2s ease}.social-btn:hover{border-color:var(--accent-on-dark);color:var(--accent-on-dark);background:#5eead414}.footer-col h5{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--text-on-dark-mid);margin-bottom:1rem}.footer-col ul{list-style:none}.footer-col li{margin-bottom:.5rem}.footer-col a{font-size:.92rem;color:var(--text-on-dark-soft);transition:color .2s ease}.footer-col a:hover{color:var(--accent-on-dark)}.footer-col-systems li span{font-size:.92rem;color:var(--text-on-dark-mid);cursor:default}.footer-muted{color:var(--text-on-dark-dim);font-size:.85rem;margin-top:.75rem}.legal-section{padding:3rem 0 0;border-top:1px solid var(--line-on-dark);margin-top:2rem}.legal-section h5{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--text-on-dark-mid);margin-bottom:.75rem}.legal-section p{font-size:.88rem;color:var(--text-on-dark-soft);max-width:72ch;line-height:1.6}.footer-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;padding-top:2rem;border-top:1px solid var(--line-on-dark);font-size:.85rem;color:var(--text-on-dark-mid)}.footer-bottom a{margin-left:1.5rem;color:var(--text-on-dark-mid)}.footer-bottom a:hover{color:var(--accent-on-dark)}.wa-float{position:fixed;bottom:1.35rem;right:1.35rem;z-index:200}.wa-float a{display:grid;place-items:center;width:56px;height:56px;background:var(--action-primary);color:var(--action-primary-text);border-radius:50%;box-shadow:0 6px 20px #0f766e52;transition:transform .2s ease,background .2s ease,box-shadow .2s ease}.wa-float a:hover{transform:translateY(-2px);background:var(--action-primary-hover);box-shadow:0 8px 24px #0f766e61}.wa-icon{width:28px;height:28px;display:block}@media(max-width:980px){.convictions-grid{grid-template-columns:1fr}.service-row{grid-template-columns:44px minmax(0,1fr) 32px;grid-template-rows:auto auto;align-items:start;padding:1.2rem .2rem;column-gap:1rem}.service-row h3{padding-top:.05rem}.service-row p{grid-column:2 / 3;grid-row:2;font-size:.95rem}.service-num{padding-top:.2rem}.service-arrow{grid-row:1;grid-column:3;align-self:start;padding-top:.15rem}.service-row:hover{padding-inline:.55rem}.stats-inner,.stats-grid{grid-template-columns:1fr}.process-step{grid-template-columns:auto 1fr}.testimonial-block,.cta-grid{grid-template-columns:1fr}.cta-actions{align-items:flex-start;text-align:left}.footer-top{grid-template-columns:1fr 1fr}}@media(max-width:520px){.footer-top{grid-template-columns:1fr}.testimonial-block{padding:1.5rem}.wa-float{bottom:1.1rem;right:1.1rem}.wa-float a{width:52px;height:52px}.wa-icon{width:26px;height:26px}.service-row{padding-block:1.1rem}}@media(prefers-reduced-motion:reduce){.navbar{transition:none}.hero-enter{opacity:1;transform:none;animation:none}.marquee-track{animation:none}.project-card{transition:none}.project-card:hover{transform:none}.project-modal-overlay{-webkit-backdrop-filter:none;backdrop-filter:none}.service-row{transition:none}.service-row:before{transition:none}.service-row:hover .service-arrow,.wa-float a:hover{transform:none}}
