@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--bg:#0c0a10;--text:#e8e6e9;--muted:#939098;--line:#302b35;--purple:#9a73bf}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:'DM Sans',Arial,sans-serif;font-size:15px}::selection{background:#8254a5;color:white}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:focus-visible,a:focus-visible{outline:2px solid #c899f1;outline-offset:6px}button{color:inherit;background:none;border:0}p{line-height:1.7;color:var(--muted)}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:'Manrope',Arial,sans-serif;font-weight:500}em{font-family:Georgia,serif;font-weight:400}header{height:112px;padding:0 4.5%;display:flex;align-items:center;gap:5%;position:absolute;z-index:20;top:0;width:100%;border-bottom:1px solid #ffffff19}.logo{font-size:42px;letter-spacing:-4px;font-weight:800;line-height:1}.logo span{font-size:13px;vertical-align:top;letter-spacing:0;margin-left:5px}.header-note{font-size:10px;line-height:1.5;color:#a4a0a9}nav{display:flex;gap:36px;margin-left:auto;font-size:12px}nav a{position:relative}nav a:after,.text-link:after{content:'';position:absolute;bottom:-5px;height:1px;background:currentColor;left:0;width:0;transition:width .4s}nav a:hover:after,.text-link:hover:after{width:100%}.nav-contact{border:1px solid #69616f;padding:13px 22px;font-size:12px;transition:.3s}.nav-contact:hover{background:var(--text);color:var(--bg)}.menu-button{display:none}.grain{position:fixed;inset:0;pointer-events:none;opacity:.025;z-index:80;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.8' filter='url(%23n)'/%3E%3C/svg%3E")}.hero{position:relative;min-height:900px;height:100svh;max-height:1250px;padding:150px 4.5% 35px;overflow:hidden;background:radial-gradient(ellipse at 80% 45%,#241231 0,transparent 51%)}.hero-top{display:flex;justify-content:space-between}.eyebrow{font-size:10px;font-weight:500;letter-spacing:1.9px;line-height:1.7;display:block}.eyebrow i{display:inline-block;width:5px;height:5px;background:#a88fc4;border-radius:50%;margin-right:10px;box-shadow:0 0 12px #c18aff}.hero h1{font-size:clamp(80px,9.3vw,160px);line-height:.98;letter-spacing:-.075em;margin:58px 0 52px;position:relative;z-index:3;pointer-events:none;animation:rise 1.3s both}.hero h1 .outline{color:transparent;-webkit-text-stroke:1px #c5bacd;padding-left:14%}.last-line{white-space:nowrap}.asterisk{font-size:.6em;color:#aa80ce;display:inline-block;vertical-align:middle;margin-left:3%;animation:spin 30s linear infinite}.hero-bottom{display:flex;align-items:flex-end;justify-content:space-between;position:relative;z-index:4}.hero-bottom p{font-size:13px;margin:0 0 0 18%;color:#bcb5c3}.scroll-cue{font-size:9px;letter-spacing:1px}.text-link{font-size:12px;position:relative;display:inline-block;padding:8px 0;border-bottom:1px solid #6e627b;white-space:nowrap}.hero-orb{position:absolute;top:20%;right:5%;width:44vw;height:44vw;max-height:650px;max-width:650px;transform:rotate(-24deg);opacity:.9;animation:float 12s ease-in-out infinite;perspective:800px}.orb-ring{position:absolute;border-radius:50%;inset:7%;border:45px solid #44234c;box-shadow:inset 7px 7px 20px #bc85c248,inset -22px -20px 30px #08060c,8px 13px 40px #0009;transform:rotateY(40deg) rotateX(24deg);background:linear-gradient(140deg,#b684c016,#190d25)}.ring2{inset:20%;border-width:30px;transform:rotateY(-30deg) rotateX(45deg);border-color:#3b2353}.ring3{inset:33%;border-width:22px;transform:rotateY(20deg) rotateX(-30deg);border-color:#754588}.orb-core{position:absolute;inset:44%;border-radius:50%;background:radial-gradient(circle at 25% 25%,#b58ac5,#49205f 50%,#140b1b 80%);box-shadow:0 0 70px #7948ad55}.vertical-label{position:absolute;right:1.5%;top:55%;writing-mode:vertical-rl;font-size:8px;letter-spacing:3px;color:#a79bad}.section{padding:120px 7%}.intro{border-top:1px solid var(--line)}.intro h2{font-size:clamp(40px,5.5vw,84px);line-height:1.18;letter-spacing:-.05em;margin:50px 0}.intro h2>span{color:#74677f}.intro h2 em{padding-left:25%;color:#a98bc0}.intro-bottom{display:flex;align-items:center;justify-content:space-between;gap:8%}.mini-star{font-size:70px;color:#a184b5}.intro-bottom p{max-width:440px;font-size:17px}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:60px}.section-heading h2{font-size:70px;letter-spacing:-4px;line-height:1.05;margin:25px 0 0}.work-section{background:#100d15}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px 45px}.project:nth-child(even){margin-top:150px}.project-image{height:540px;position:relative;overflow:hidden}.project img{width:100%;height:100%;object-fit:cover;filter:brightness(.65) saturate(.65);transition:transform 1.2s cubic-bezier(.2,.65,.3,1),filter .8s}.project:hover img{transform:scale(1.055);filter:brightness(.8) saturate(.8)}.image-word{position:absolute;top:44%;left:0;width:100%;text-align:center;font-size:clamp(25px,4.5vw,70px);letter-spacing:-4px;font-weight:500;color:white;mix-blend-mode:difference}.project-number{position:absolute;left:25px;bottom:25px;color:white;font-size:9px;letter-spacing:2px}.view-circle{position:absolute;right:25px;top:25px;border-radius:50%;background:#e9e3ed;color:#160c1f;width:88px;height:88px;display:flex;align-items:center;justify-content:center;font-size:11px;line-height:1.5;transform:translateY(-130px) rotate(-35deg);transition:.5s}.project:hover .view-circle{transform:translateY(0) rotate(0)}.project-info{display:flex;justify-content:space-between;align-items:center;margin:23px 0 8px}.project-info h3{font-size:21px;margin:0}.project-info span{font-size:10px;color:#a49ba9}.project-info b{margin-left:20px;font-size:20px;font-weight:400}.project>p{font-size:12px}.statement{height:850px;position:relative;overflow:hidden}.statement>img{width:100%;height:100%;object-fit:cover;filter:brightness(.4) saturate(.65)}.statement-copy{position:absolute;inset:100px 7%;color:white}.statement h2{font-size:clamp(60px,8vw,120px);letter-spacing:-.06em;line-height:1.05;margin:50px 0}.light-button{display:inline-flex;align-items:center;justify-content:space-between;gap:45px;background:#e4dfe9;color:#1a1220;border:1px solid #e4dfe9;padding:19px 25px;font-size:12px;transition:background .3s,transform .3s}.light-button:hover{background:#b294ce;border-color:#b294ce;transform:translateY(-3px)}.section-caption{font-size:26px;line-height:1.3;color:#c5bfca}.service-row{display:flex;align-items:center;gap:5%;padding:36px 0;border-top:1px solid var(--line);transition:padding .4s,color .4s}.service-row:hover{padding-left:22px;color:#ba92d6}.service-row small{color:#807587;font-size:10px}.service-row h3{font-size:clamp(25px,3.6vw,55px);letter-spacing:-2px;margin:0}.service-row>span{font-size:35px;margin-left:auto}.closing{background:#1a1022;border-top:1px solid #3a2845;padding-top:90px;padding-bottom:100px}.closing>a{display:block;position:relative;font-size:clamp(55px,8vw,125px);line-height:1.15;letter-spacing:-.055em;margin-top:35px}.closing>a>span{position:absolute;right:2%;top:15%;transition:transform .4s}.closing>a:hover>span{transform:translate(15px,-15px)}footer{padding:60px 7% 25px}.footer-top{display:flex;align-items:center;gap:8%;padding-bottom:60px}.footer-top p{font-size:12px;margin:0}.footer-top .text-link{margin-left:auto}.footer-bottom{border-top:1px solid var(--line);padding-top:25px;display:flex;justify-content:space-between;font-size:9px;color:#928897}.page-start{padding-top:200px}.page-title{font-size:clamp(65px,8.5vw,125px);line-height:1.05;letter-spacing:-.06em;margin:40px 0 70px}.page-title em{color:#b294c9}.catalog-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:65px;gap:30px}.catalog-top p{font-size:13px}.filters{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}.filters button{border:1px solid #46394f;padding:10px 15px;font-size:10px;transition:.3s}.filters button.active,.filters button:hover{background:#d1bddf;color:#170d1e}.fine-print{font-size:11px;margin-top:30px}.case-meta{display:flex;justify-content:space-between;align-items:center}.case-meta p{font-size:25px}.case-meta span{font-size:12px}.case-image{height:80vh;min-height:450px;position:relative}.case-image img{width:100%;height:100%;object-fit:cover;filter:brightness(.65)}.case-image h2{position:absolute;inset:38% 0 auto;text-align:center;font-size:9vw;color:white;mix-blend-mode:difference}.case-story{display:grid;grid-template-columns:1fr 2fr;gap:10%}.case-story h2{font-size:50px;letter-spacing:-2px}.case-story p{font-size:20px}.case-deliverables{display:flex;gap:20px;flex-wrap:wrap;font-size:11px;border-top:1px solid var(--line);padding-top:35px;margin-top:40px}.palette{display:grid;grid-template-columns:1fr 1fr 1fr;gap:20px;padding-top:0}.palette>div{padding:30px;height:330px;border:1px solid #ffffff22;font-size:13px;position:relative}.palette span{display:block;font-size:130px;position:absolute;bottom:20px;right:30px}.big-link{font-size:45px}.studio-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:10%;align-items:center}.studio-grid img{width:100%;height:650px;object-fit:cover;filter:brightness(.7)}.studio-grid h2{font-size:44px;letter-spacing:-2px;margin-top:35px}.studio-grid p{font-size:16px}.value-row{display:grid;grid-template-columns:.2fr 1.3fr 1fr;align-items:center;gap:5%;padding:50px 0;border-bottom:1px solid var(--line)}.value-row h2{font-size:40px;margin:0;letter-spacing:-2px}.value-row p{margin:0}.expertise-block{display:grid;grid-template-columns:1fr 2fr;gap:10%;padding:65px 0;border-top:1px solid var(--line)}.expertise-block h2{font-size:45px;letter-spacing:-2px}.expertise-block p{font-size:20px;max-width:650px}.deliverables{display:flex;gap:10px;flex-wrap:wrap;margin-top:30px}.deliverables span{font-size:11px;padding:10px 14px;border:1px solid #3b3045}.process{background:#1c1227;padding:65px;margin-top:65px}.process h2{font-size:60px;margin:40px 0}.contact-grid{display:grid;grid-template-columns:1fr 1.3fr;gap:12%}.contact-grid>div>p{font-size:24px;margin-bottom:60px}.contact-grid>div>.text-link{margin-top:20px}label{display:block;font-size:11px;letter-spacing:.5px;text-transform:uppercase;margin-bottom:30px}input,select,textarea{display:block;width:100%;border:0;border-bottom:1px solid #4b3e55;background:transparent;border-radius:0;padding:18px 0;color:var(--text);outline:0;font-size:16px;resize:vertical}input:focus,textarea:focus,select:focus{border-color:#c5a1e2}select option{background:#1a1220}.success{padding:40px;border:1px solid #5c436e}.success>span{font-size:60px;color:#bb94d7}.success h2{font-size:45px}.admin-toolbar{display:flex;align-items:center;justify-content:space-between;margin:70px 0 30px}.admin-toolbar h2{font-size:26px;margin:0}.admin-row{display:flex;gap:25px;align-items:center;border-top:1px solid var(--line);padding:20px 0}.admin-row img{width:90px;height:70px;object-fit:cover}.admin-row>div{flex:1}.admin-row h3{margin:0}.admin-row p{margin:5px 0 0;font-size:12px}.admin-row button{border:1px solid #574660;padding:10px 15px;font-size:12px}.admin-subheading{margin-top:70px}.reset{margin-top:50px}.enquiry{border-top:1px solid var(--line);padding:20px 0}.modal-backdrop{position:fixed;inset:0;background:#000b;z-index:100;display:flex;justify-content:center;align-items:center;padding:20px;backdrop-filter:blur(12px)}.edit-modal{background:#1a1220;padding:35px;width:600px;max-height:90vh;overflow:auto;border:1px solid #5e426f}.modal-title{display:flex;justify-content:space-between;align-items:center}.edit-modal label{margin-bottom:15px}.edit-modal input{padding:10px 0}.reveal{opacity:0;transform:translateY(36px);transition:opacity 1s ease,transform 1.1s cubic-bezier(.2,.7,.2,1)}.reveal.visible{opacity:1;transform:translateY(0)}.mobile-menu{position:fixed;inset:90px 0 0;background:#180e21;z-index:50;padding:40px;display:flex;flex-direction:column;gap:30px;font-size:40px;text-transform:capitalize}@keyframes float{50%{transform:translateY(-25px) rotate(-16deg)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes rise{from{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:1600px){.hero{min-height:1000px}.hero h1{margin-top:80px}.hero-bottom{margin-top:70px}}@media(max-width:1000px){.header-note{display:none}.hero{min-height:760px;height:95svh}.hero h1{font-size:10.5vw;margin:90px 0 70px}.hero-orb{top:28%;right:-10%;width:65vw;height:65vw}.hero-bottom p{margin:0}.project-image{height:400px}.project-info{align-items:flex-start;gap:15px}.project-info span{max-width:120px;text-align:right}.section{padding:90px 6%}.page-start{padding-top:180px}.catalog-top{display:block}.filters{justify-content:flex-start}.studio-grid{gap:6%}.studio-grid img{height:500px}.section-heading h2{font-size:55px}.statement{height:740px}.hero .last-line{font-size:.93em}.asterisk{margin-left:1%}}
@media(max-width:650px){header{height:90px;padding:0 6%;justify-content:space-between}.logo{font-size:36px}nav,.nav-contact{display:none}.menu-button{display:block;font-size:12px}.hero{padding:120px 6% 30px;min-height:730px;height:95svh;max-height:900px}.hero-top>.eyebrow:last-child{display:none}.hero h1{font-size:14vw;letter-spacing:-.075em;margin:120px 0 75px;line-height:1.06}.hero h1 .outline{padding-left:5%}.hero-orb{top:18%;right:-27%;width:100vw;height:100vw}.orb-ring{border-width:25px}.ring2{border-width:20px}.ring3{border-width:13px}.asterisk{display:none}.hero-bottom{display:grid;grid-template-columns:1fr 1fr;gap:25px}.hero-bottom p{font-size:11px}.hero-bottom .text-link{grid-column:2;justify-self:start}.scroll-cue{font-size:8px}.vertical-label{display:none}.section{padding:75px 6%}.intro h2{font-size:36px;letter-spacing:-1.8px}.intro h2 em{padding-left:10%}.intro-bottom{display:grid;grid-template-columns:45px 1fr;gap:20px}.intro-bottom p{font-size:14px}.intro-bottom .text-link{grid-column:2;justify-self:start}.mini-star{font-size:40px}.section-heading h2{font-size:45px;letter-spacing:-2px}.section-heading{gap:20px}.section-heading .text-link{font-size:10px}.project-grid{grid-template-columns:1fr;gap:40px}.project:nth-child(even){margin-top:0}.project-image{height:440px}.image-word{font-size:55px;letter-spacing:-3px}.view-circle{width:65px;height:65px;font-size:9px;transform:translateY(0)}.project-info h3{font-size:20px}.project-info span{max-width:200px}.statement{height:650px}.statement-copy{inset:70px 6%}.statement h2{font-size:60px}.service-row{padding:26px 0}.service-row h3{font-size:24px;letter-spacing:-1px}.service-row>span{font-size:25px}.section-caption{font-size:20px}.closing>a{font-size:49px}.closing>a>span{font-size:45px;top:-35px;right:0}.footer-top{flex-wrap:wrap;gap:30px;padding-bottom:35px}.footer-top .text-link{margin-left:0}.footer-bottom{gap:20px;flex-wrap:wrap;font-size:9px}.footer-bottom>span:nth-child(2){display:none}.page-start{padding-top:150px}.page-title{font-size:58px;letter-spacing:-3px;margin:35px 0 50px}.filters{gap:7px}.filters button{font-size:9px;padding:8px 10px}.case-meta{align-items:flex-start;gap:20px;flex-wrap:wrap}.case-meta p{font-size:20px}.case-image{height:500px;min-height:0}.case-image h2{font-size:14vw}.case-story{grid-template-columns:1fr;gap:30px}.case-story h2{font-size:35px}.case-story p{font-size:17px}.palette{grid-template-columns:1fr;padding-top:0}.palette>div{height:230px}.big-link{font-size:30px}.studio-grid{grid-template-columns:1fr;gap:40px}.studio-grid img{height:450px}.studio-grid h2{font-size:38px}.value-row{grid-template-columns:25px 1fr;gap:20px;padding:35px 0}.value-row h2{font-size:30px}.value-row p{grid-column:2;font-size:14px}.expertise-block{grid-template-columns:1fr;gap:25px;padding:40px 0}.expertise-block h2{font-size:34px}.expertise-block p{font-size:17px}.process{padding:30px}.process h2{font-size:40px}.contact-grid{grid-template-columns:1fr;gap:50px}.contact-grid>div>p{font-size:20px;margin-bottom:25px}.admin-toolbar{align-items:flex-start;gap:20px}.admin-toolbar h2{font-size:21px}.admin-toolbar .light-button{padding:12px;font-size:10px;white-space:nowrap}.admin-row{gap:10px;flex-wrap:wrap}.admin-row img{width:60px;height:60px}.admin-row h3{font-size:16px}.admin-row button{font-size:10px;padding:8px}.edit-modal{padding:22px}.eyebrow{font-size:8px;letter-spacing:1.4px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}

.filters button{transition:background-color .32s,color .32s,border-color .32s,transform .32s,box-shadow .32s}
.filters button:not(.active):hover{background:#382344;color:#eee3f5;border-color:#87649e;transform:translateY(-3px);box-shadow:0 7px 18px #0003}
.filters button.active{background:#d1bddf;color:#170d1e;border-color:#d1bddf}
.filters button.active:hover{background:#ddcbe8;transform:translateY(-2px)}
.filters button:active{transform:scale(.97)}
.page-transition{animation:page-arrive .55s cubic-bezier(.2,.7,.2,1) both;transition:opacity .18s,filter .18s}
.page-transition.leaving{animation:none;opacity:0;filter:blur(2px);pointer-events:none}
.filtered-grid{transition:opacity .16s,transform .16s;min-height:450px}
.filtered-grid.filtering-out{opacity:0;transform:translateY(8px);pointer-events:none}
.filtered-grid .project.visible{animation:page-arrive .55s cubic-bezier(.2,.7,.2,1) both}
.filtered-grid .project:nth-child(2){animation-delay:65ms}.filtered-grid .project:nth-child(3){animation-delay:110ms}.filtered-grid .project:nth-child(4){animation-delay:155ms}
@keyframes page-arrive{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.page-transition,.page-transition.leaving,.filtered-grid.filtering-out{opacity:1;filter:none;transform:none}.filters button:hover{transform:none}}

/* Cover the full viewport before resetting scroll, including header/footer. */
.navigation-veil{position:fixed;inset:0;background:#0c0a10;z-index:200;opacity:0;pointer-events:none;transition:opacity .36s cubic-bezier(.4,0,.2,1)}
.navigation-veil.covering{opacity:1;pointer-events:auto}
.page-transition{animation:page-arrive .65s cubic-bezier(.2,.7,.2,1) both;transition:opacity .32s ease,filter .32s ease}
.page-transition.leaving{animation:none;opacity:0;filter:blur(2px)}
@media(prefers-reduced-motion:reduce){.navigation-veil{display:none}.page-transition.leaving{opacity:1;filter:none}}
