@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&family=Manrope:wght@400;500;600&display=swap');

:root{--ink:#ecf5f7;--muted:#95a9b6;--cyan:#63dcee;--amber:#ffbd64;--navy:#06101c;--panel:#0a1725;--line:rgba(149,191,205,.17);--pad:clamp(1.25rem,5vw,5rem)}
*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--navy)}body{margin:0;background:var(--navy);color:var(--ink);font-family:'DM Sans',sans-serif;font-size:1rem;line-height:1.6;overflow-x:hidden}a{color:inherit}.skip-link{position:fixed;left:1rem;top:-5rem;z-index:99;background:#fff;color:#000;padding:.7rem 1rem}.skip-link:focus{top:1rem}.site-header{position:absolute;z-index:10;top:0;left:0;width:100%;height:6.5rem;display:flex;align-items:center;justify-content:space-between;padding:0 var(--pad);border-bottom:1px solid rgba(255,255,255,.12)}.brand{display:flex;align-items:center;gap:.75rem;text-decoration:none;letter-spacing:.22em;font-size:.76rem}.brand>span{display:grid;place-items:center;width:2rem;height:2rem;border:1px solid var(--cyan);border-radius:50%;font-family:Manrope;font-weight:600;color:var(--cyan)}nav{display:flex;gap:2rem}nav a,.header-link{font-size:.8rem;text-decoration:none;color:#c3d1d7;letter-spacing:.08em}.header-link span{color:var(--cyan)}.hero{position:relative;min-height:100svh;display:flex;align-items:center;padding:8rem var(--pad) 5rem;isolation:isolate;overflow:hidden}.hero-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-4;animation:drift 18s ease-in-out infinite alternate}.hero-vignette{position:absolute;inset:0;z-index:-3;background:linear-gradient(90deg,rgba(3,11,20,.96) 0%,rgba(3,11,20,.82) 38%,rgba(3,11,20,.12) 73%),linear-gradient(0deg,rgba(3,11,20,.78),transparent 55%)}.hero-grid{position:absolute;inset:0;z-index:-2;opacity:.16;background-image:linear-gradient(rgba(94,215,234,.22) 1px,transparent 1px),linear-gradient(90deg,rgba(94,215,234,.22) 1px,transparent 1px);background-size:7vw 7vw;mask-image:linear-gradient(90deg,#000,transparent 62%)}.hero-content{max-width:53rem}.eyebrow,.section-label{text-transform:uppercase;letter-spacing:.2em;font-size:.72rem;font-weight:600;color:var(--cyan)}.eyebrow{display:flex;align-items:center;gap:.65rem}.eyebrow span{width:2.3rem;height:1px;background:var(--cyan)}h1,h2{font-family:Manrope,sans-serif;line-height:1.02;letter-spacing:-.055em;margin:1rem 0;font-weight:500}h1{font-size:clamp(3.2rem,7.7vw,7.4rem)}h2{font-size:clamp(2.65rem,5.6vw,5.5rem)}h1 em,h2 em{font-family:Georgia,serif;font-weight:400;color:var(--cyan)}.hero-copy{max-width:40rem;color:#b6c7ce;font-size:clamp(1.05rem,1.55vw,1.35rem)}.hero-actions{display:flex;flex-wrap:wrap;gap:1rem;margin-top:2.3rem}.button{display:inline-flex;align-items:center;justify-content:center;min-height:3.4rem;padding:.85rem 1.35rem;text-decoration:none;text-transform:uppercase;letter-spacing:.12em;font-size:.72rem;font-weight:600;border:1px solid transparent;transition:.25s ease}.button.primary{background:var(--cyan);color:#041019}.button.primary:hover{background:#fff;transform:translateY(-2px)}.button.quiet{border-color:rgba(255,255,255,.3)}.button.quiet:hover{border-color:var(--cyan);color:var(--cyan)}.hero-index{position:absolute;right:var(--pad);bottom:3.2rem;display:flex;align-items:center;gap:.7rem;font-size:.65rem;color:#abc0c8}.hero-index i{display:block;width:5rem;height:1px;background:linear-gradient(90deg,var(--cyan) 30%,rgba(255,255,255,.25) 30%)}.scroll-note{position:absolute;left:var(--pad);bottom:2.5rem;margin:0;text-transform:uppercase;letter-spacing:.17em;font-size:.62rem;color:#91a5ae}.scroll-note span{color:var(--cyan);margin-left:.5rem}.intro,.work,.capabilities,.credentials{padding:clamp(5rem,10vw,9rem) var(--pad)}.intro{display:grid;grid-template-columns:1fr 1fr;gap:4rem;background:#07131f}.intro h2,.capabilities h2,.credentials h2{font-size:clamp(2.7rem,5vw,5rem)}.intro-copy{align-self:center;max-width:36rem;color:#aebec5;font-size:1.1rem}.intro-copy p:first-child{color:#dae5e8}.fact-strip{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-top:2rem}.fact-strip div{display:flex;align-items:center;gap:1rem;padding:1.6rem}.fact-strip div+div{border-left:1px solid var(--line)}.fact-strip strong{font-family:Manrope;font-size:2rem;color:var(--cyan)}.fact-strip span{max-width:10rem;color:var(--muted);font-size:.8rem;line-height:1.3}.work{background:#0b1825}.section-head{display:grid;grid-template-columns:1fr 2fr 1fr;align-items:end;gap:2rem;margin-bottom:4rem}.section-head .section-label{align-self:start}.section-head h2{margin:0}.section-head>p:last-child{color:var(--muted);font-size:.92rem}.project{display:grid;grid-template-columns:4rem minmax(9rem,1fr) 2fr 3rem;align-items:center;gap:2rem;min-height:10.5rem;border-top:1px solid var(--line);padding:1.5rem 0;transition:.25s ease}.project:last-child{border-bottom:1px solid var(--line)}.project:hover{padding-left:1rem;background:linear-gradient(90deg,rgba(94,215,234,.07),transparent)}.project-number{font-family:monospace;color:var(--cyan);font-size:.75rem}.project-type{text-transform:uppercase;letter-spacing:.15em;font-size:.66rem;color:#90a4ad}.project h3{font-family:Manrope;margin:0 0 .25rem;font-size:clamp(1.5rem,2.5vw,2.4rem);font-weight:500}.project p{margin:0;color:var(--muted);max-width:39rem}.project-mark{font-size:1.8rem;color:var(--cyan)}.capabilities{display:grid;grid-template-columns:1fr 1fr;gap:6rem;background:linear-gradient(135deg,#07131f,#0b2031)}.cap-copy>p:last-child{max-width:33rem;color:var(--muted)}.cap-list{list-style:none;margin:0;padding:0}.cap-list li{display:grid;grid-template-columns:3rem 1fr;gap:1rem;padding:1.35rem 0;border-bottom:1px solid var(--line)}.cap-list>li>span{font-family:monospace;font-size:.65rem;color:var(--cyan)}.cap-list strong{display:block;font:500 1.25rem Manrope}.cap-list small{color:var(--muted)}.credentials{text-align:center;background:#081522}.credentials .section-label{margin-bottom:1.5rem}.credential-row{display:flex;justify-content:center;flex-wrap:wrap;gap:.6rem;margin-top:3rem}.credential-row span{border:1px solid var(--line);padding:.7rem 1rem;border-radius:2rem;color:#aebfc6;font-size:.77rem}.contact{position:relative;text-align:center;padding:clamp(7rem,13vw,12rem) var(--pad);overflow:hidden;background:radial-gradient(circle at center,rgba(30,136,161,.25),transparent 40%),#050f19}.contact h2{font-size:clamp(3.3rem,8vw,8rem)}.contact p:not(.section-label){color:var(--muted);margin:0 auto 2rem;max-width:36rem}.contact-orbit{position:absolute;width:43rem;height:43rem;left:50%;top:50%;transform:translate(-50%,-50%);opacity:.18;pointer-events:none}.contact-orbit i{position:absolute;inset:0;border:1px solid var(--cyan);border-radius:50%}.contact-orbit i:nth-child(2){inset:10%;transform:rotateX(65deg)}.contact-orbit i:nth-child(3){inset:23%;transform:rotateY(65deg)}footer{min-height:7rem;padding:1.5rem var(--pad);display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);color:#7f929b;font-size:.7rem;text-transform:uppercase;letter-spacing:.12em}footer .brand{color:var(--ink)}.reveal{opacity:0;transform:translateY(2rem);transition:opacity .8s ease,transform .8s ease}.reveal.visible{opacity:1;transform:none}
@keyframes drift{to{transform:scale(1.035) translate3d(-.4%,.3%,0)}}
@media(max-width:800px){.site-header{height:5rem}.site-header nav{display:none}.header-link{font-size:0}.header-link span{font-size:1rem}.hero{padding-top:7rem}.hero-vignette{background:linear-gradient(90deg,rgba(3,11,20,.9),rgba(3,11,20,.28)),linear-gradient(0deg,rgba(3,11,20,.9),transparent 70%)}.hero-image{object-position:61% center}.hero-index{display:none}.intro,.capabilities{grid-template-columns:1fr;gap:2rem}.fact-strip{grid-template-columns:1fr}.fact-strip div+div{border-left:0;border-top:1px solid var(--line)}.section-head{grid-template-columns:1fr}.project{grid-template-columns:2rem 1fr 2rem;gap:1rem}.project-type{grid-column:2}.project>div:nth-of-type(2){grid-column:2}.project-mark{grid-column:3;grid-row:1/4}.capabilities{gap:3rem}footer{flex-direction:column;justify-content:center;gap:.5rem;text-align:center}.scroll-note{bottom:1.5rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero-image{animation:none}.reveal{opacity:1;transform:none;transition:none}.button,.project{transition:none}}

/* Resume-informed career journey */
.journey{padding:clamp(5rem,10vw,9rem) var(--pad);background:#07131f}
.timeline{border-top:1px solid var(--line)}
.timeline-item{display:grid;grid-template-columns:minmax(7rem,1fr) 2.4fr minmax(6rem,.7fr);align-items:center;gap:2rem;padding:1.6rem 0;border-bottom:1px solid var(--line)}
.timeline-item time{font:500 .76rem monospace;color:var(--cyan)}
.timeline-item h3{margin:0;font:500 clamp(1.25rem,2.1vw,2rem) Manrope}
.timeline-item p{margin:.2rem 0 0;color:var(--muted)}
.timeline-item>span{text-align:right;font-size:.62rem;letter-spacing:.18em;color:#7f959f}
.contact-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:1rem}
@media(max-width:800px){.timeline-item{grid-template-columns:1fr;gap:.35rem}.timeline-item>span{text-align:left}}

/* Caribbean studio positioning */
.services{padding:clamp(5rem,10vw,9rem) var(--pad);background:#081522}
.service-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}
.service{min-height:16rem;padding:1.8rem;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:linear-gradient(145deg,rgba(255,255,255,.025),transparent);transition:.25s ease}
.service:hover{background:rgba(94,215,234,.055);transform:translateY(-3px)}
.service>span{font:500 .68rem monospace;color:var(--cyan)}
.service h3{margin:3rem 0 .7rem;font:500 clamp(1.25rem,2vw,1.75rem) Manrope}
.service p{margin:0;color:var(--muted);font-size:.9rem}
.more-projects{margin-top:0}
.apps{padding:clamp(5rem,10vw,9rem) var(--pad);background:#06101c}
.app-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}
.app-card{display:flex;flex-direction:column;min-height:31rem;padding:1.8rem;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:linear-gradient(155deg,rgba(94,215,234,.055),transparent 56%);transition:.25s ease}
.app-card:hover{background:linear-gradient(155deg,rgba(94,215,234,.12),rgba(255,189,100,.025));transform:translateY(-4px)}
.app-kicker{display:flex;justify-content:space-between;gap:1rem;font:500 .62rem monospace;letter-spacing:.12em;color:var(--muted)}
.app-kicker span:first-child{color:var(--cyan)}
.app-glyph{display:grid;place-items:center;width:5.2rem;height:5.2rem;margin:4rem 0 2.2rem;border:1px solid rgba(255,255,255,.25);border-radius:1.25rem;font:600 1.25rem Manrope;letter-spacing:.05em;box-shadow:0 1.5rem 4rem rgba(0,0,0,.25)}
.app-glyph.fish{color:#06101c;background:linear-gradient(145deg,#65dcec,#1b8fac)}
.app-glyph.rooted{color:#fff;background:linear-gradient(145deg,#41684d,#193d2a)}
.app-glyph.budget{color:#06101c;background:linear-gradient(145deg,#ffcf79,#d98539)}
.app-card h3{margin:0 0 .7rem;font:500 clamp(1.55rem,2.2vw,2.25rem) Manrope}
.app-card p{margin:0 0 2rem;color:var(--muted)}
.app-store-link{display:flex;justify-content:space-between;gap:1rem;margin-top:auto;padding-top:1.15rem;border-top:1px solid var(--line);text-decoration:none;text-transform:uppercase;letter-spacing:.1em;font-size:.68rem;font-weight:600}
.app-store-link span{color:var(--cyan)}
.app-store-link:hover{color:var(--cyan)}
@media(max-width:900px){.service-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:900px){.app-grid{grid-template-columns:1fr}.app-card{min-height:auto}.app-glyph{margin:2.5rem 0 1.8rem}}
@media(max-width:600px){.service-grid{grid-template-columns:1fr}.service{min-height:auto}.service h3{margin:1.8rem 0 .5rem}}
