@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&family=Instrument+Serif&display=swap');:root{--bg:#0b0d12;--ink:#f4f4f1;--muted:#9b9da5;--line:#292c34;--blue:#7c9cff;--ease:cubic-bezier(.2,.8,.2,1)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.55 'DM Sans',sans-serif;overflow-x:hidden}a{color:inherit;text-decoration:none}.progress{position:fixed;top:0;left:0;width:100%;height:3px;background:var(--blue);transform:scaleX(0);transform-origin:left;z-index:20}.glow{position:fixed;width:42rem;height:42rem;border-radius:50%;background:radial-gradient(circle,rgba(124,156,255,.13),transparent 67%);transform:translate(-50%,-50%);pointer-events:none}header{height:76px;padding:0 5vw;display:flex;align-items:center;justify-content:space-between;position:fixed;inset:0 0 auto;z-index:10;background:rgba(11,13,18,.78);backdrop-filter:blur(18px);border-bottom:1px solid var(--line)}.brand{font-weight:600;border:1px solid #555;padding:7px 9px}nav{display:flex;gap:30px;font-size:14px;color:#bbb}.resume{font-size:14px;color:var(--blue)}section{padding:130px 5vw}.label{font-size:12px;letter-spacing:.14em;color:var(--blue);font-weight:600}.hero{min-height:100vh;padding-top:130px;display:grid;grid-template-columns:1.35fr .65fr;gap:8vw;align-items:center;position:relative}.hero h1{font:400 clamp(5rem,10.5vw,11rem)/.76 'Instrument Serif',serif;letter-spacing:-.045em;margin:25px 0}.hero h1 .word{display:inline-block;overflow:hidden;padding-bottom:.08em;margin-bottom:-.08em}.hero h1 .word i{font-style:normal;display:inline-block;transform:translateY(110%);animation:word 1s var(--ease) forwards}@keyframes word{to{transform:none}}.lead{font-size:20px;color:#bbb;max-width:690px}.actions{display:flex;gap:24px;margin-top:40px}.actions a:first-child{background:var(--ink);color:var(--bg);padding:14px 20px}.actions a:last-child{padding:13px 0;border-bottom:1px solid #777}.hero figure{margin:0}.photo-frame{overflow:hidden;aspect-ratio:4/5}.photo-frame img{width:100%;height:100%;object-fit:cover;filter:grayscale(1);transform:scale(1.12);animation:photo 1.5s .4s var(--ease) forwards}@keyframes photo{to{transform:scale(1)}}figcaption{display:flex;flex-direction:column;font-size:13px;color:#8e929d;margin-top:16px}.scroll-note{position:absolute;bottom:25px;left:5vw;font-size:12px;color:#777}.scroll-note i{color:var(--blue);font-style:normal}.section-head{display:grid;grid-template-columns:1fr 2.4fr;gap:5vw;margin-bottom:70px}.section-head h2,.about h2,.contact h2{font:400 clamp(3.2rem,6.5vw,7rem)/.9 'Instrument Serif',serif;letter-spacing:-.03em;margin:0}.value{background:#f1f1ed;color:#151515}.value-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid #aaa}.value article{padding:30px 24px 30px 0;border-right:1px solid #c5c5bf}.value article+article{padding-left:24px}.value span{color:#5870ca;font-size:12px}.value h3{font:400 29px 'Instrument Serif',serif}.value p{color:#555}.work{background:#11141a}.projects{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}.project{background:#11141a;padding:38px;min-height:310px;display:flex;flex-direction:column;transition:.5s var(--ease)}.project:hover{background:#171b23;transform:translateY(-7px)}.project.featured{grid-column:1/-1;display:grid;grid-template-columns:1.2fr .7fr 1.2fr;gap:50px;min-height:auto}.project div>p,.project>div:first-child p{font-size:12px;color:var(--blue);letter-spacing:.1em}.project h3{font:400 38px 'Instrument Serif',serif;margin:10px 0}.project span,.project>p{color:var(--muted)}.project>p{margin-top:auto}.project-result strong{font:400 58px 'Instrument Serif',serif}.project a{color:var(--blue);align-self:end}.approach{background:#516fd8;color:white;display:grid;grid-template-columns:1.05fr 1fr;gap:10vw}.approach .section-head{display:block;margin:0}.approach .label{color:#dfe5ff}.steps article{padding:22px 0;border-top:1px solid rgba(255,255,255,.35);display:grid;grid-template-columns:140px 1fr;gap:25px}.steps p{margin:0;color:#e3e7f7}.journey{background:#f1f1ed;color:#151515}.timeline{border-top:1px solid #999}.timeline article{display:grid;grid-template-columns:140px 1fr 1.4fr;gap:30px;padding:27px 0;border-bottom:1px solid #bbb}.timeline time{color:#526bc4;font-weight:600}.timeline h3,.timeline p{margin:0}.timeline span{color:#555}.about{display:grid;grid-template-columns:.65fr 1.35fr;gap:8vw;align-items:center}.about>img{width:100%;aspect-ratio:1;object-fit:cover;filter:grayscale(1)}.about>div>p:not(.label){font-size:20px;color:#b4b7bf;max-width:760px}.about>div>div{display:flex;flex-wrap:wrap;gap:9px;margin-top:30px}.about span{border:1px solid #434752;padding:8px 12px;font-size:13px}.contact{padding-bottom:35px;background:#f1f1ed;color:#151515}.contact h2{margin:35px 0 70px}.contact>a{font-size:clamp(1rem,2.4vw,2rem);border-bottom:1px solid}.contact footer{display:flex;gap:35px;margin-top:120px;padding-top:25px;border-top:1px solid #aaa;font-size:13px}.contact footer span{margin-right:auto}.reveal{opacity:0;transform:translateY(45px);transition:.9s var(--ease)}.reveal.visible{opacity:1;transform:none}@media(max-width:800px){header nav{display:none}.hero{grid-template-columns:1fr;padding-top:110px}.hero figure{max-width:360px}.hero h1{font-size:5.4rem}.section-head,.about,.approach{grid-template-columns:1fr}.value-grid{grid-template-columns:1fr 1fr}.project.featured{grid-template-columns:1fr}.projects{grid-template-columns:1fr}.project.featured{grid-column:auto}.timeline article{grid-template-columns:1fr}.contact footer{flex-wrap:wrap}.contact footer span{width:100%}.glow{display:none}}@media(max-width:520px){section{padding:90px 5vw}.hero{padding-top:100px}.value-grid{grid-template-columns:1fr}.value article{border-right:0;border-bottom:1px solid #bbb;padding-left:0!important}.actions{flex-direction:column;align-items:flex-start}.steps article{grid-template-columns:1fr;gap:8px}.project{padding:25px}.hero h1{font-size:4.5rem}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero h1 .word i,.photo-frame img{animation:none;transform:none}.reveal{opacity:1;transform:none}}
/* FinPulse case study */
.case-link{display:inline-block;margin-top:22px;padding-bottom:3px;border-bottom:1px solid var(--blue)}
.contact-links{display:flex;flex-wrap:wrap;gap:20px 42px;align-items:center}.contact-links a{font-size:clamp(1rem,2.4vw,2rem);border-bottom:1px solid}
.actions button{appearance:none;border:0;border-bottom:1px solid #777;background:none;color:var(--ink);padding:13px 0;font:inherit;cursor:pointer}
.chat-launcher{position:fixed;right:24px;bottom:24px;z-index:30;border:1px solid #4c5363;background:#f4f4f1;color:#11141a;padding:13px 17px;display:flex;align-items:center;gap:10px;font:600 14px 'DM Sans',sans-serif;box-shadow:0 15px 45px rgba(0,0,0,.28);cursor:pointer}.chat-launcher span{width:8px;height:8px;border-radius:50%;background:#526fd8;box-shadow:0 0 0 5px rgba(82,111,216,.14)}
.chat{position:fixed;right:24px;bottom:24px;width:min(420px,calc(100vw - 32px));height:min(650px,calc(100vh - 48px));z-index:40;background:#11141a;border:1px solid #3a404d;box-shadow:0 28px 90px rgba(0,0,0,.55);display:flex;flex-direction:column;transform:translateY(24px) scale(.97);opacity:0;pointer-events:none;transition:.3s var(--ease)}.chat.open{transform:none;opacity:1;pointer-events:auto}.chat-head{display:flex;justify-content:space-between;align-items:center;padding:20px;border-bottom:1px solid var(--line)}.chat-head div{display:flex;flex-direction:column}.chat-head small{font-size:10px;letter-spacing:.14em;color:var(--blue)}.chat-head strong{font:400 24px 'Instrument Serif',serif}.chat-close{appearance:none;border:0;background:none;color:#aaa;font-size:27px;cursor:pointer}.chat-log{flex:1;overflow:auto;padding:20px;display:flex;flex-direction:column;gap:12px}.message{max-width:88%;padding:12px 14px;font-size:14px;line-height:1.5}.message.bot{background:#1b202a;color:#d8dae0;align-self:flex-start}.message.user{background:#5975d7;color:#fff;align-self:flex-end}.message.typing{color:#838793}.chat-prompts{padding:0 20px 12px;display:flex;gap:7px;overflow:auto}.chat-prompts button{white-space:nowrap;border:1px solid #393e49;background:transparent;color:#b9bcc4;padding:8px 10px;font:12px 'DM Sans',sans-serif;cursor:pointer}.chat-form{margin:0 20px;display:grid;grid-template-columns:1fr 48px;border:1px solid #404652}.chat-form label{position:absolute;width:1px;height:1px;overflow:hidden}.chat-form input{min-width:0;border:0;background:#0d1015;color:#fff;padding:14px;font:14px 'DM Sans',sans-serif;outline:none}.chat-form button{border:0;background:var(--blue);color:#0b0d12;font-size:22px;cursor:pointer}.chat-note{margin:8px 20px 14px;font-size:11px;color:#696d77}
@media(max-width:520px){.chat-launcher{right:16px;bottom:16px}.chat{right:16px;bottom:16px;height:calc(100vh - 32px)}.chat-prompts{padding-bottom:10px}.actions button{text-align:left}}
.case-study{background:#090b10;position:relative;overflow:hidden}
.case-study:before{content:"";position:absolute;width:46vw;height:46vw;border:1px solid #232838;border-radius:50%;right:-20vw;top:-18vw;box-shadow:0 0 120px rgba(124,156,255,.08)}
.case-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:9vw;position:relative}
.case-copy>p{font-size:20px;color:#b7bac3;max-width:650px}
.case-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin:42px 0}
.case-metrics span{background:#11141a;padding:20px;font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}
.case-metrics b{display:block;font:400 42px 'Instrument Serif',serif;color:var(--ink);letter-spacing:0;text-transform:none}
.case-copy .demo-note{font-size:14px;color:#7f838e;border-left:2px solid var(--blue);padding-left:16px}
.flow{position:relative;padding-left:44px}
.flow:before{content:"";position:absolute;left:14px;top:20px;bottom:160px;width:1px;background:#303646}
.flow-step{width:100%;appearance:none;border:0;border-bottom:1px solid #2b303b;background:transparent;color:#777;text-align:left;padding:18px 0;display:grid;grid-template-columns:48px 1fr;font:500 17px 'DM Sans',sans-serif;cursor:pointer;transition:.35s var(--ease)}
.flow-step i{font-style:normal;font-size:12px}.flow-step:hover,.flow-step.active{color:var(--ink);padding-left:10px}.flow-step.active i{color:var(--blue)}
.flow-detail{min-height:145px;margin-top:28px;padding:24px;background:#151923;border:1px solid #2d3341;transition:.3s var(--ease)}
.flow-detail small{color:var(--blue);letter-spacing:.12em}.flow-detail strong{display:block;font:400 30px 'Instrument Serif',serif;margin:10px 0}.flow-detail p{margin:0;color:#aeb2bd}
.hero figure{animation:float 7s ease-in-out infinite}@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
@media(max-width:800px){.case-grid{grid-template-columns:1fr}.case-metrics{margin:28px 0}.flow{padding-left:0}.flow:before{display:none}}
@media(max-width:520px){.case-metrics{grid-template-columns:1fr}.case-metrics span{padding:14px}.flow-detail strong{font-size:25px}}
@media(prefers-reduced-motion:reduce){.hero figure{animation:none}}
