*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}html.is-loading{overflow:hidden;height:100%}.preloader{position:fixed;inset:0;z-index:3000;display:flex;align-items:center;justify-content:center;overflow:hidden}.preloader-backdrop{position:absolute;inset:0;z-index:0;background:#fff}.preloader-mark-wrap{position:relative;z-index:1;width:min(60vw,26rem);aspect-ratio:169 / 148;opacity:0}.preloader-mark-wrap svg{position:absolute;top:0;left:0;width:100%;height:100%}.preloader-mark-wrap svg path[stroke],.preloader-mark-wrap svg circle[stroke]{fill:none}.preloader-bubbles{position:absolute;inset:0;z-index:2;overflow:hidden;pointer-events:none}.preloader-bubble{position:absolute;top:0;left:0;width:1em;height:1em;border-radius:50%;border:max(.125rem,.018em) solid rgba(12,125,110,.6);background:radial-gradient(circle at 30% 28%,#fffffff2 0,#fff0 12%),radial-gradient(circle at 30% 28%,#0c7d6e52,#0c7d6e0d 55%,#0c7d6e1f);box-shadow:0 0 .08em #0c7d6e2e,inset 0 0 .08em #0c7d6e26;opacity:0;will-change:transform,opacity}body{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.6;color:#333;background-color:#fff;padding:0;transition:background-color .3s ease,color .3s ease}main{padding:0}h1,h2,h3{font-family:"DM Serif Text",serif}h1{font-size:1.75rem;margin-bottom:1rem;line-height:1.2}h2{font-size:1.5rem;margin-bottom:.75rem;line-height:1.3}p{margin-bottom:1rem}a{color:#06c;text-decoration:none}a:hover{text-decoration:underline}.sticky-header{position:sticky;top:0;z-index:1000;background:#ffffffd9;-webkit-backdrop-filter:blur(.625rem);backdrop-filter:blur(.625rem);padding:1rem clamp(1rem,4vw,2.5rem)}.main-nav{display:flex;justify-content:space-between;align-items:center;gap:1rem}.nav-brand{display:flex;align-items:center;line-height:0;flex-shrink:0}.nav-brand-mark{display:block;width:clamp(2.75rem,5vw,3.75rem);height:auto}.nav-links{display:flex;gap:clamp(1rem,3vw,2.5rem);align-items:center}.nav-links a,.nav-links a:hover{text-decoration:none}.nav-link{position:relative;display:inline-flex;align-items:baseline;gap:.45rem;padding:.35rem 0;font-size:.78rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;white-space:nowrap;color:#073b38;transition:color .3s ease,transform .3s ease}.nav-link:hover,.nav-link:focus-visible{color:#ff4d8d;transform:translateY(-.15rem)}.nav-squiggle{position:absolute;left:0;bottom:-.2rem;width:100%;height:.45rem;overflow:visible;pointer-events:none}.nav-squiggle path{fill:none;stroke:#ff4d8d;stroke-width:1.5;stroke-linecap:round;stroke-dasharray:1 1;stroke-dashoffset:1;transition:stroke-dashoffset .45s ease}.nav-link:hover .nav-squiggle path,.nav-link:focus-visible .nav-squiggle path{stroke-dashoffset:0}.showreel-link{display:inline-flex;align-items:center;gap:.55rem;padding:.65rem 1.15rem .65rem .75rem;border-radius:999rem;font-size:.78rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#fff;background:#0c7d6e;box-shadow:0 .5rem 1.25rem #0c7d6e40;transition:background .3s ease,transform .3s ease,box-shadow .3s ease}.showreel-link:hover{background:#ff4d8d;transform:translateY(-.15rem);box-shadow:0 .6rem 1.4rem #ff4d8d4d}.showreel-play{display:grid;place-items:center;width:1.35rem;height:1.35rem;border-radius:50%;background:#fff3}.showreel-play:before{content:"";margin-left:.12rem;border-style:solid;border-width:.3rem 0 .3rem .5rem;border-color:transparent transparent transparent #fff}.cv-link{display:inline-flex;align-items:center;gap:.45rem;padding:.55rem 1rem .55rem .8rem;border-radius:999rem;border:.09375rem solid #ff4d8d;font-size:.78rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;white-space:nowrap;color:#ff4d8d;background:#fff;transition:background .3s ease,color .3s ease,transform .3s ease}.cv-link:hover,.cv-link:focus-visible,.cv-link[aria-current=page]{color:#fff;background:#ff4d8d;text-decoration:none}.cv-link:hover,.cv-link:focus-visible{transform:translateY(-.15rem)}.cv-link-icon{width:1rem;height:1rem}@media(max-width:40em){.cv-link{font-size:.68rem;letter-spacing:.1em;padding:.45rem .75rem .45rem .6rem}.cv-link-icon{display:none}}@media(max-width:40em){.nav-link,.showreel-link{font-size:.68rem;letter-spacing:.1em}.showreel-link{padding:.55rem .85rem .55rem .55rem}}@media(max-width:34em){.showreel-link{padding:.45rem}.showreel-label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}}@media(prefers-reduced-motion:reduce){.nav-link:hover,.nav-link:focus-visible,.showreel-link:hover,.cv-link:hover,.cv-link:focus-visible{transform:none}}main{max-width:100%;margin:0 auto}img{max-width:100%;height:auto;display:block}:where(.content,.project-detail) ul{list-style:none;display:grid;gap:1rem}:where(.content,.project-detail) li{background-color:#f9f9f9;padding:1rem;border-radius:.5rem;border:.0625rem solid #e0e0e0;transition:transform .2s,box-shadow .2s}:where(.content,.project-detail) li:hover{transform:translateY(-.125rem);box-shadow:0 .25rem .5rem #0000001a}:where(.content,.project-detail) li a{display:block;color:inherit}:where(.content,.project-detail) li a:hover{text-decoration:none}:where(.content,.project-detail) li h2{color:#007d86;margin-bottom:.5rem}:where(.content,.project-detail) li p{color:#666;margin-bottom:.5rem}time{font-size:.875rem;color:#999}.site-footer{--footer-accent: #ff4d8d;--footer-bg: #0a2f2c;position:relative;overflow:hidden;background:radial-gradient(ellipse 75% 55% at 50% 100%,rgba(31,174,154,.2),transparent 70%),var(--footer-bg);color:#fff}.footer-inner{position:relative;z-index:2;max-width:80rem;margin:0 auto;padding:5rem 1.5rem 2rem}.footer-life{position:absolute;inset:0;z-index:0;pointer-events:none}.footer-rays{position:absolute;inset:0;overflow:hidden;-webkit-mask-image:linear-gradient(180deg,transparent,#000 20%,#000 45%,transparent 90%);mask-image:linear-gradient(180deg,transparent,#000 20%,#000 45%,transparent 90%)}.footer-rays i{position:absolute;top:-6rem;width:30rem;height:170%;background:linear-gradient(180deg,rgba(255,255,255,.13),rgba(124,245,223,.05) 45%,transparent 75%);clip-path:polygon(42% 0,58% 0,100% 100%,0 100%);filter:blur(1.5rem);transform-origin:top center;animation:footer-ray-sway 12s ease-in-out infinite alternate}.footer-rays i:nth-child(1){left:-4%;rotate:14deg}.footer-rays i:nth-child(2){left:32%;width:22rem;rotate:9deg;animation-delay:-4s;opacity:.8}.footer-rays i:nth-child(3){left:62%;width:36rem;rotate:16deg;animation-delay:-8s;opacity:.9}@keyframes footer-ray-sway{to{rotate:5deg;opacity:.55}}.footer-shark{position:absolute;top:36%;left:0;width:11rem;height:5.4rem;opacity:.45;animation:footer-shark-swim 46s linear infinite}.footer-shark-svg{display:block;width:100%;height:100%;overflow:visible}.footer-shark-body,.footer-shark-tail{fill:#ee2a7b}.footer-shark-tail{transform-box:fill-box;transform-origin:0% 50%;animation:footer-shark-tail .9s ease-in-out infinite alternate}.footer-shark-face{position:absolute;top:49%;left:11%;width:5.3rem;height:5.3rem;transform:translate(-50%,-50%);border-radius:50%;overflow:hidden}.footer-shark-face img{display:block;width:100%;height:100%;object-fit:cover}@keyframes footer-shark-tail{0%{rotate:-9deg}to{rotate:9deg}}@keyframes footer-shark-swim{0%{transform:translate(calc(100vw + 2rem))}12%{transform:translate(80vw,-.8rem)}24%{transform:translate(52vw,.5rem)}36%{transform:translate(24vw,-.6rem)}48%{transform:translate(-14rem)}50%{transform:translate(-14rem,1.5rem) scaleX(-1)}62%{transform:translate(18vw,2.2rem) scaleX(-1)}74%{transform:translate(46vw,1.2rem) scaleX(-1)}86%{transform:translate(74vw,2rem) scaleX(-1)}98%{transform:translate(calc(100vw + 2rem),1.5rem) scaleX(-1)}to{transform:translate(calc(100vw + 2rem))}}.site-footer.will-arrive .footer-title,.site-footer.will-arrive .footer-text,.site-footer.will-arrive .footer-link{opacity:0;transform:translateY(1.5rem);transition:opacity .7s ease,transform .9s cubic-bezier(.22,1,.36,1)}.site-footer.will-arrive .footer-text{transition-delay:.1s}.site-footer.will-arrive .footer-link:nth-child(1){transition-delay:.2s}.site-footer.will-arrive .footer-link:nth-child(2){transition-delay:.3s}.site-footer.will-arrive .footer-link:nth-child(3){transition-delay:.4s}.site-footer.will-arrive .footer-link:nth-child(4){transition-delay:.5s}.site-footer.has-arrived .footer-title,.site-footer.has-arrived .footer-text,.site-footer.has-arrived .footer-link{opacity:1;transform:none}.footer-title{margin:0;font-family:"DM Serif Text",serif;font-size:clamp(2.25rem,6vw,4.5rem);font-weight:400;line-height:1.05;color:#fff}.footer-text{margin:1rem 0 0;max-width:32rem;font-size:1.1rem;line-height:1.6;color:#ffffffb3}.footer-columns{display:flex;flex-direction:column;gap:2rem}.footer-links{display:flex;flex-direction:column;border-bottom:.0625rem solid rgba(255,255,255,.25)}.footer-link{display:flex;align-items:center;gap:1.5rem;padding:1.5rem 0;color:#fff;text-decoration:none;border-bottom:.0625rem solid rgba(255,255,255,.15)}.footer-link:last-child{border-bottom:none}.footer-link:hover{text-decoration:none}.footer-link-icon{display:flex;align-items:center;justify-content:center;width:3.25rem;height:3.25rem;border-radius:50%;background:var(--footer-accent);color:var(--footer-bg);flex-shrink:0}.footer-link-icon svg{width:1.6rem;height:1.6rem}.footer-link-icon{transition:transform .35s cubic-bezier(.34,1.56,.64,1)}.footer-link:hover .footer-link-icon{transform:rotate(-12deg) scale(1.1)}.footer-link-label{font-size:1.6rem;font-weight:600}.footer-link-arrow{display:flex;align-items:center;justify-content:center;margin-left:auto;width:3.25rem;height:3.25rem;border-radius:50%;border:.0625rem solid rgba(255,255,255,.4);font-size:1.5rem;transition:background .2s ease,border-color .2s ease,color .2s ease}.footer-link:hover .footer-link-arrow{background:var(--footer-accent);border-color:var(--footer-accent);color:var(--footer-bg)}@media(min-width:48em){.footer-columns{flex-direction:row;align-items:center;justify-content:space-between;gap:3rem}.footer-intro{flex:1 1 55%}.footer-links{flex:1 1 35%;max-width:30rem}}.footer-seabed{position:relative;z-index:1;height:10rem;margin-top:1rem}.seabed-sand{position:absolute;left:0;bottom:0;width:100%;height:6rem}.seabed-sand-back{fill:#7cf5df17}.seabed-sand-front{fill:#7cf5df29}.seabed-weed{position:absolute;bottom:2.6rem;width:2.5rem;height:7rem;overflow:visible;transform-origin:50% 100%;animation:seabed-sway 4.5s ease-in-out infinite alternate}.seabed-weed path{fill:none;stroke:#1fae9a99;stroke-width:4;stroke-linecap:round}.seabed-weed--1{left:6%}.seabed-weed--2{left:9%;height:5rem;animation-duration:3.6s;animation-delay:-1.2s}.seabed-weed--3{right:12%;height:6rem;animation-duration:5.2s;animation-delay:-2s}.seabed-weed--4{left:19%;height:4.5rem;animation-duration:4s;animation-delay:-.6s}.seabed-weed--5{right:5%;height:5.5rem;animation-duration:4.8s;animation-delay:-3s}.seabed-weed--2 path,.seabed-weed--5 path{stroke:#7cf5df66}.seabed-shell{position:absolute;right:40%;bottom:2.3rem;width:1.7rem;height:1.3rem}.seabed-shell path{fill:#ff7aa840;stroke:#ff7aa8b3;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.seabed-pebble{position:absolute;bottom:2.2rem;width:.9rem;height:.5rem;border-radius:50%;background:#7cf5df38}.seabed-pebble--1{left:26%}.seabed-pebble--2{left:27.4%;bottom:2.1rem;width:.55rem;height:.35rem}.seabed-pebble--3{right:30%;width:1.2rem;height:.6rem;background:#7cf5df26}.seabed-anchor{position:absolute;right:24%;bottom:2.5rem;width:2.6rem;height:3.5rem;transform:rotate(68deg);overflow:visible}.seabed-anchor path,.seabed-anchor circle{fill:none;stroke:var(--footer-accent);stroke-width:4;stroke-linecap:round;stroke-linejoin:round;opacity:.75}@keyframes seabed-sway{0%{rotate:-5deg}to{rotate:5deg}}@media(prefers-reduced-motion:reduce){.seabed-weed,.footer-rays i{animation:none}.footer-shark{display:none}}.footer-copyright{position:absolute;left:0;right:0;bottom:.9rem;max-width:80rem;margin:0 auto;padding:0 1.5rem;font-size:.875rem;color:#fff9}@media(min-width:48em){h1{font-size:2.5rem}h2{font-size:2rem}main{max-width:60rem}ul{grid-template-columns:repeat(2,1fr)}}@media(min-width:64em){h1{font-size:3rem}ul{grid-template-columns:repeat(3,1fr)}}.content-nav{display:flex;justify-content:space-between;gap:1rem;margin-top:3rem;padding-top:2rem;border-top:.0625rem solid #e5e7eb}.content-nav a{display:flex;align-items:center;gap:.75rem;padding:1rem 1.5rem;background:#f3f4f6;border-radius:.5rem;text-decoration:none;color:#333;transition:all .3s ease;flex:1;max-width:18rem}.content-nav a:hover{background:#e5e7eb;transform:translateY(-.125rem);box-shadow:0 .25rem .375rem #0000001a}.content-nav .nav-prev{margin-right:auto}.content-nav .nav-next{margin-left:auto;justify-content:flex-end}.content-nav .arrow{font-size:1.5rem;font-weight:700}.content-nav .nav-text{display:flex;flex-direction:column;gap:.25rem}.content-nav .nav-label{font-size:.875rem;color:#6b7280;font-weight:500}.content-nav .nav-title{font-size:1rem;font-weight:600;color:#06c}.bubble-layer{position:fixed;inset:0;z-index:15;overflow:hidden;pointer-events:none}.mouse-bubble{position:fixed;border-radius:50%;border:.0625rem solid rgba(255,255,255,.45);background:radial-gradient(circle at 30% 28%,#ffffffa6,#ffffff14 55%,#ffffff05);box-shadow:0 0 .375rem #ffffff26;pointer-events:none;will-change:transform,opacity}.modal[data-astro-cid-en43gk2a]{display:none;position:fixed;top:0;left:0;width:100%;height:100%;z-index:9999}.modal[data-astro-cid-en43gk2a].active{display:flex;align-items:center;justify-content:center}.modal-backdrop[data-astro-cid-en43gk2a]{position:absolute;top:0;left:0;width:100%;height:100%;background:#000c;backdrop-filter:blur(.3125rem)}.modal-content[data-astro-cid-en43gk2a]{position:relative;background:#fff;border-radius:1rem;max-width:90%;max-height:90vh;width:75rem;overflow:auto;z-index:1;animation:modalSlideIn .3s ease}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-1.25rem)}to{opacity:1;transform:translateY(0)}}.close-button[data-astro-cid-en43gk2a]{position:absolute;top:1rem;right:1rem;background:#0000001a;border:none;border-radius:50%;width:2.5rem;height:2.5rem;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s ease;z-index:2}.close-button[data-astro-cid-en43gk2a]:hover{background:#0003}.modal-body[data-astro-cid-en43gk2a]{padding:3rem 2rem 2rem}.modal-body[data-astro-cid-en43gk2a] h2[data-astro-cid-en43gk2a]{margin-bottom:2rem;font-size:2rem}.video-container[data-astro-cid-en43gk2a]{width:100%}.video-placeholder[data-astro-cid-en43gk2a]{aspect-ratio:16 / 9;background:#f0f0f0;display:flex;align-items:center;justify-content:center;border-radius:.5rem;font-size:1.5rem;color:#666}
