@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:100 900;src:url(/fonts/inter-latin-opsz-normal.woff2) format("woff2-variations")}:root{color:#fff;background:#171126;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--ink: #171321;--muted: #666173;--line: rgba(255, 255, 255, .18);--white: #ffffff;--panel: rgba(255, 255, 255, .94);--shadow: 0 26px 70px rgba(20, 10, 44, .52);--surface-shadow: 0 0 1px rgba(40, 41, 61, .16), 0 14px 34px rgba(8, 5, 24, .32), 0 28px 76px rgba(16, 7, 42, .52);--surface-shadow-hover: 0 0 1px rgba(40, 41, 61, .18), 0 18px 42px rgba(8, 5, 24, .36), 0 34px 92px rgba(16, 7, 42, .58);--compact-shadow: 0 0 1px rgba(40, 41, 61, .16), 0 12px 28px rgba(8, 5, 24, .28), 0 22px 58px rgba(16, 7, 42, .42);--compact-shadow-hover: 0 0 1px rgba(40, 41, 61, .18), 0 16px 34px rgba(8, 5, 24, .32), 0 28px 70px rgba(16, 7, 42, .52)}@property --hero-angle{syntax: "<angle>"; inherits: false; initial-value: 172deg;}*{box-sizing:border-box}html{min-width:320px;min-height:100%}body{margin:0;min-width:320px;min-height:100vh}button,input,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{border:0}a{color:inherit;text-decoration:none}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.shell{min-height:100vh;padding:20px;background:var( --shell-background, linear-gradient(90deg, #222 0%, #444 10%, #555 20%, #666 50%, #555 80%, #444 90%, #222 100%) );perspective:1800px}@media(min-width:1181px){html{height:100%}body{height:100%;overflow:hidden}.shell{height:100dvh;max-height:100dvh;min-height:0;overflow:hidden;display:flex;flex-direction:column;box-sizing:border-box}.hero-panel{flex:1 1 auto;min-height:0;margin:0 20px}}.hero-panel{position:relative;isolation:isolate;display:grid;grid-template-columns:minmax(320px,.72fr) minmax(560px,1fr);gap:48px;align-items:stretch;min-height:calc(100vh - 120px);overflow:hidden;padding:6.5vh 5vw;margin:20px;border:0;border-radius:30px;background:linear-gradient(90deg,#020208fa,#080616f5 34%,#130f34c7 54%,#271d5e6b 76%,#cf48ff2e),linear-gradient(112deg,#07122f,#1d6fd6 28%,#6d4cff 58%,#cf48ff 86%,#ff2dcb);box-shadow:0 0 1px #05040ca6,0 20px 46px #03020a8a,0 42px 106px #070314b8,0 58px 160px #04020c9e,inset 0 1px 1px #ffffff52,inset 0 0 0 1px #ffffff1f,inset 0 -2px 2px #00000085,0 0 20px #64647826;backface-visibility:hidden;transform-style:preserve-3d}.hero-panel.is-flipping-portfolio{animation:panel-flip-to-portfolio .76s cubic-bezier(.2,.86,.2,1)}.hero-panel.is-flipping-dashboard{animation:panel-flip-to-dashboard .76s cubic-bezier(.2,.86,.2,1)}.hero-panel.is-data-pending .eyebrow,.hero-panel.is-data-pending .connect-area,.hero-panel.is-data-pending .dashboard-area{opacity:0;transition:opacity .2s ease}.hero-panel:not(.is-data-pending) .eyebrow,.hero-panel:not(.is-data-pending) .connect-area,.hero-panel:not(.is-data-pending) .dashboard-area{transition:opacity .25s ease}.hero-panel.is-portfolio-view{grid-template-rows:auto minmax(0,1fr)}@media(min-width:1181px)and (max-height:920px){.hero-panel.is-portfolio-view{padding-top:clamp(14px,2.8vh,48px);padding-bottom:clamp(14px,2.8vh,48px);gap:clamp(24px,3vw,40px)}.hero-panel.is-portfolio-view .portfolio-showcase:not(.is-detail){row-gap:8px}.hero-panel.is-portfolio-view .portfolio-gallery{gap:clamp(16px,2.2vw,40px)}.hero-panel.is-portfolio-view .portfolio-gallery[data-visible-count="1"]{gap:0}.hero-panel.is-portfolio-view .portfolio-gallery[data-visible-count="2"]{gap:clamp(18px,3.5vw,64px);max-width:min(100%,980px)}.hero-panel.is-portfolio-view .portfolio-gallery[data-visible-count="3"]{max-width:min(100%,1040px);gap:clamp(16px,2.2vw,44px)}.hero-panel.is-portfolio-view .portfolio-gallery[data-visible-count="4"]{max-width:min(100%,1180px);gap:clamp(12px,1.8vw,28px)}.hero-panel.is-portfolio-view .portfolio-menu-image{max-height:min(34vh,300px)}.hero-panel.is-portfolio-view .portfolio-copy{padding:clamp(10px,1.5vw,18px)}.hero-panel.is-portfolio-view .portfolio-copy h2{font-size:clamp(1.02rem,1.35vw,1.48rem)}.hero-panel.is-portfolio-view .client-logo-marquee{gap:8px}.hero-panel.is-portfolio-view .client-logo-marquee-viewport{padding-block:8px}.hero-panel.is-portfolio-view .client-logo{height:52px}}@media(min-width:1181px)and (max-height:780px){.hero-panel.is-portfolio-view{padding-top:clamp(12px,2.2vh,36px);padding-bottom:clamp(12px,2.2vh,36px);gap:clamp(18px,2.5vw,32px)}.hero-panel.is-portfolio-view .portfolio-menu-image{max-height:min(30vh,240px)}.hero-panel.is-portfolio-view .client-logo{height:44px}.hero-panel.is-portfolio-view .portfolio-kicker{font-size:clamp(1.05rem,1.6vw,1.45rem)}}.portfolio-close{position:absolute;right:5vw;top:6.5vh;z-index:3;display:inline-flex;align-items:center;justify-content:center;width:82px;height:82px;border:1px solid rgba(255,255,255,.34);border-radius:999px;color:#ffffffd6;background:linear-gradient(180deg,#fff3,#ffffff0f),#00000014;box-shadow:0 22px 42px #0000003d,inset 0 1px #ffffff47;cursor:pointer;backdrop-filter:blur(18px) saturate(1.2);-webkit-backdrop-filter:blur(18px) saturate(1.2);transition:transform .18s ease,background .18s ease,border-color .18s ease}.portfolio-close:hover{transform:translate(-3px,-2px);border-color:#ffffff85;background:linear-gradient(180deg,#ffffff47,#ffffff14),#0000001a}@keyframes panel-flip-to-portfolio{0%{transform:rotateY(0) scale(1)}49%{transform:rotateY(90deg) scale(.985)}50%{transform:rotateY(-90deg) scale(.985)}to{transform:rotateY(0) scale(1)}}@keyframes panel-flip-to-dashboard{0%{transform:rotateY(0) scale(1)}49%{transform:rotateY(-90deg) scale(.985)}50%{transform:rotateY(90deg) scale(.985)}to{transform:rotateY(0) scale(1)}}.hero-panel:before{position:absolute;inset:0;z-index:1;pointer-events:none;content:"";background:linear-gradient(90deg,rgba(2,2,7,.85) 0%,rgba(5,4,14,.72) 25%,rgba(10,7,24,.45) 50%,rgba(10,7,24,.12) 70%,transparent 85%);border-radius:30px}.panel-sheen{position:absolute;inset:0;z-index:0;pointer-events:none;border-radius:30px;overflow:hidden;background:linear-gradient(135deg,#0a1628,#1a0a3a,#2a0a3a)}#neat-gradient-canvas{display:block;width:100%;height:100%}.panel-sheen a,.panel-sheen>:not(canvas){display:none!important}@keyframes panel-gradient-rotate{0%{transform:rotate(0) scale(1.08)}to{transform:rotate(360deg) scale(1.08)}}@media(prefers-reduced-motion:reduce){.panel-sheen{animation:none}}.intro,.dashboard-area,.card-grid,.portfolio-showcase,.admin-entry{position:relative;z-index:2}.intro{align-self:stretch;display:grid;grid-template-rows:auto 1fr auto;max-width:min(760px,100%);min-width:0}.hero-panel.is-portfolio-view .intro{align-self:start;grid-template-rows:auto 1fr;gap:14px;min-height:0;max-width:none}.hero-panel.is-portfolio-view h1{align-self:center;font-size:clamp(5rem,7.4vw,6.8rem)}.profile-stack{display:grid;gap:8px;margin:0 0 14px}.profile-heading{display:flex;align-items:center;gap:13px;margin:0}.hero-panel.is-portfolio-view .profile-stack{gap:8px;margin:0 0 6px}.portfolio-kicker{margin:0 0 0 54px;color:#ffffffc7;font-size:clamp(1.25rem,2vw,1.7rem);font-weight:500;line-height:1.08}.avatar-placeholder{display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid rgba(255,255,255,.5);border-radius:50%;color:#ffffffdb;font-size:.78rem;font-weight:800;line-height:1;background:linear-gradient(135deg,#ffffff47,#ffffff14),#ffffff24;box-shadow:inset 0 1px #ffffff59,0 12px 30px #0c061e38}.eyebrow{margin:0;width:fit-content;color:transparent;font-size:2rem;font-weight:750;line-height:1.06;letter-spacing:0;background:linear-gradient(93deg,#4fc0ff 0%,var(--eyebrow-color, #8f75ff) 52%,#cf48ff 100%);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}.london-clock{display:inline-grid;width:fit-content;gap:3px;color:#ffffff80;filter:blur(.25px);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.london-clock span{font-size:4.9rem;font-weight:500;line-height:1;text-shadow:0 26px 28px rgba(0,0,0,.08),0 13px 14px rgba(0,0,0,.04),0 6px 7px rgba(0,0,0,.02),0 3px 4px rgba(0,0,0,.01)}.london-clock small{color:#ffffff6b;font-size:.95rem;font-weight:400;line-height:1;text-shadow:0 8px 14px rgba(0,0,0,.08)}h1{align-self:center;margin:0;max-width:100%;color:var(--hero-heading-color, rgba(255, 255, 255, .5));font-size:var(--hero-heading-font-size, clamp(2.35rem, 5.5vw + 1rem, min(5.75rem, 15vh)));font-weight:var(--hero-heading-font-weight, 500);line-height:1.05;letter-spacing:0;text-shadow:0 48px 48px rgba(0,0,0,.08),0 24px 24px rgba(0,0,0,.04),0 12px 12px rgba(0,0,0,.02),0 6px 6px rgba(0,0,0,.01);filter:blur(.35px);-webkit-backdrop-filter:blur(12.5px);backdrop-filter:blur(12.5px)}#dashboard-title{align-self:stretch;box-sizing:border-box;width:100%;min-width:0;max-width:100%;margin-top:clamp(14px,2.2vh,30px);overflow-wrap:anywhere;word-break:normal;letter-spacing:var(--hero-heading-letter-spacing, -4px)}.connect-area{display:grid;gap:28px;margin-top:0;padding-top:42px}.connect-label{margin:0;color:var(--connect-label-color, rgba(255, 255, 255, .58));font-size:1.5em;font-weight:400;letter-spacing:0}.actions{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:flex-start;gap:12px;overflow:visible}.actions .pill-button{flex:0 0 auto}.pill-button,.ghost-button,.admin-primary,.admin-secondary,.icon-button{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:48px;border-radius:999px;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease,background .18s ease}.pill-button{min-width:0;padding:18px 22px;border:1px solid rgba(255,255,255,.28);color:#ffffffe0;background:linear-gradient(180deg,#ffffff38,#ffffff12),#00000003;box-shadow:0 24px 28px #00000014,0 12px 14px #0000000a,0 6px 7px #00000005,0 3px 4px #00000003,inset 0 1px #ffffff52,inset 0 -10px 18px #ffffff1a;font-size:1.05rem;font-weight:650;backdrop-filter:blur(16px) saturate(1.4);-webkit-backdrop-filter:blur(16px) saturate(1.4)}.pill-button span{font-weight:500}.actions a.pill-button:hover span{font-weight:700}.pill-button svg{color:#ffffffdb;flex:0 0 auto}.pill-button .button-arrow{margin-left:auto;color:#ffffff80;transition:color .18s ease,transform .18s ease}.pill-button:hover .button-arrow{color:#ffffffc7;transform:translate(2px)}.pill-button-compact{min-width:0}.pill-button:hover,.tool-card:hover,.ghost-button:hover,.admin-primary:hover,.admin-secondary:hover,.icon-button:hover{transform:translateY(-2px)}.pill-button:hover,.ghost-button:hover,.admin-primary:hover,.admin-secondary:hover,.icon-button:hover{box-shadow:var(--compact-shadow-hover)}.pill-button:hover{border-color:#ffffff61;background:linear-gradient(180deg,#ffffff47,#ffffff17),#00000003;box-shadow:0 28px 34px #0000001a,0 14px 17px #0000000d,0 7px 9px #00000006,0 4px 5px #00000003,inset 0 1px #fff6,inset 0 -10px 18px #ffffff1f}.dashboard-area{align-self:center;display:flex;flex-direction:column;margin-top:0}.dashboard-heading{margin:0 0 18px;color:var(--dashboard-heading-color, rgba(255, 255, 255, .62));font-size:var(--dashboard-heading-font-size, .95rem);font-weight:var(--dashboard-heading-font-weight, 600);letter-spacing:var(--dashboard-heading-letter-spacing, .12em);text-transform:var(--dashboard-heading-text-transform, uppercase);line-height:1.2}.card-grid{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:28px}.tool-card{display:block;width:100%;min-width:0;padding:0;overflow:hidden;text-align:left;cursor:pointer;border-radius:var(--card-radius, 14px);color:var(--ink);background:var(--card-background, rgba(255, 255, 255, .96));box-shadow:var(--surface-shadow);transition:transform .19s ease,box-shadow .19s ease}.tool-card:hover{box-shadow:var(--surface-shadow-hover)}.tool-card-image{position:relative;aspect-ratio:1.35 / 1;overflow:hidden;background-color:#006eff;background-position:center;background-size:cover}.cover-media-img{position:absolute;inset:0;z-index:0;display:block;width:100%;height:100%;object-fit:cover}.tool-card-image-gloss{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(255,255,255,.18),transparent 48%),linear-gradient(38deg,transparent 22%,rgba(255,255,255,.2) 48%,transparent 72%)}.lock-badge{position:absolute;right:14px;top:14px;z-index:2;display:inline-flex;width:38px;height:38px;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.72);border-radius:999px;color:#fff;background:#17132170;box-shadow:var(--compact-shadow);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.tool-card-body{display:flex;min-height:100px;flex-direction:column;justify-content:space-between;gap:10px;padding:16px 18px 15px}.tool-card h2{margin:0;color:var(--card-title-color, #555555);font-size:1.15rem;font-weight:800;line-height:1.18;letter-spacing:0;overflow-wrap:anywhere}.tool-card p{margin:6px 0 0;color:var(--card-description-color, var(--muted));font-size:.92rem;line-height:1.32}.tool-url{display:inline-flex;min-width:0;align-items:center;gap:6px;color:#4d465d;font-size:.8rem;font-weight:700;line-height:1.2;overflow-wrap:anywhere}.tool-url svg{flex:0 0 auto}.admin-entry{position:absolute;right:5vw;top:6.5vh;z-index:2}.ghost-button{min-height:38px;padding:9px 14px;border:1px solid rgba(255,255,255,.3);color:#ffffffe0;background:#ffffff1c;box-shadow:var(--compact-shadow);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.admin-sign-in{min-height:34px;padding:8px 12px;gap:8px;border-color:#ffffff38;color:#ffffffb8;background:#ffffff13;font-size:.8rem;font-weight:720}.admin-sign-in:hover{color:#fff;background:#ffffff26}.ghost-button:disabled,.admin-primary:disabled,.admin-secondary:disabled,.icon-button:disabled{cursor:not-allowed;opacity:.52;transform:none}.admin-ready{min-height:34px;padding:8px 12px;gap:8px;border-color:#ffffff38;color:#ffffffb8;background:#ffffff13;font-size:.8rem;font-weight:720}.admin-ready:hover{color:#fff;background:#ffffff26}.admin-status{display:flex;align-items:center;gap:10px;color:#ffffffd6;font-size:.86rem}.system-note{position:fixed;left:24px;bottom:24px;z-index:5;max-width:min(540px,calc(100vw - 48px));padding:12px 15px;border:1px solid rgba(255,255,255,.24);border-radius:14px;color:#fff;background:#171321b8;box-shadow:var(--surface-shadow);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);font-size:.86rem;line-height:1.45}.portfolio-showcase{align-self:stretch;min-height:0;align-content:space-between;justify-items:stretch;display:grid;grid-template-columns:minmax(0,1fr);row-gap:12px;padding-top:4px;min-width:0;margin-top:0;padding-right:0;grid-column:1 / -1}.portfolio-showcase.is-detail{position:relative;align-self:stretch;align-content:center;justify-content:start;grid-column:1 / -1;margin-top:0;padding-right:0}.portfolio-detail-stage{position:relative;width:100%;min-width:0}.portfolio-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:48px;min-width:0;padding:0;width:100%;justify-self:center}.portfolio-gallery[data-visible-count="1"]{grid-template-columns:minmax(0,1fr);max-width:520px;gap:0}.portfolio-gallery[data-visible-count="2"]{grid-template-columns:repeat(2,minmax(0,1fr));max-width:1100px;gap:96px}.portfolio-gallery[data-visible-count="3"]{max-width:1300px;gap:56px}.portfolio-gallery[data-visible-count="4"]{grid-template-columns:repeat(4,minmax(0,1fr));max-width:1500px;gap:36px}.portfolio-item{display:flex;flex-direction:column;width:100%;min-width:0;padding:0;overflow:hidden;border:1px solid rgba(255,255,255,.22);border-radius:18px;color:inherit;text-align:left;background:linear-gradient(110deg,#ffffff2e,#fff1),#0000003d;box-shadow:0 24px 52px #0000003d,inset 0 1px #ffffff38;backdrop-filter:blur(18px) saturate(1.25);-webkit-backdrop-filter:blur(18px) saturate(1.25);transition:transform .19s ease,box-shadow .19s ease;cursor:pointer}.portfolio-menu-image{position:relative;display:block;aspect-ratio:16 / 9;flex:1 0 auto;width:100%;min-height:0;overflow:hidden;background-position:center;background-size:cover;transition:transform .22s ease}.portfolio-menu-image--placeholder{display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse 55% 45% at 22% 18%,rgba(255,255,255,.12) 0%,transparent 65%),radial-gradient(ellipse 80% 70% at 80% 95%,rgba(186,96,222,.26) 0%,transparent 70%),radial-gradient(ellipse 70% 60% at 10% 100%,rgba(70,90,200,.22) 0%,transparent 70%),linear-gradient(135deg,#1e163ceb,#0c0820f5)}.portfolio-menu-image--placeholder:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(255,255,255,.08),transparent 40%),linear-gradient(38deg,transparent 22%,rgba(255,255,255,.06) 48%,transparent 72%)}.portfolio-menu-image-monogram{position:relative;z-index:1;font-size:clamp(3rem,6vw,4.6rem);font-weight:700;line-height:1;letter-spacing:-.04em;color:#ffffff29;-webkit-user-select:none;user-select:none;font-variant-numeric:lining-nums}.portfolio-item:hover .portfolio-menu-image{transform:scale(1.025)}.portfolio-item:hover{transform:translateY(-2px);box-shadow:0 28px 64px #00000047,inset 0 1px #ffffff47}.portfolio-copy{display:grid;gap:8px;padding:clamp(18px,2vw,24px)}.portfolio-copy h2,.portfolio-copy p{margin:0}.portfolio-copy h2{color:#fffffff5;font-size:clamp(1.15rem,1.65vw,1.65rem);font-weight:560;line-height:1.08;letter-spacing:0;overflow-wrap:anywhere}.portfolio-copy p{color:#ffffffd6;max-width:62ch;font-size:.92rem;line-height:1.4;display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2}.portfolio-media-zoom{position:absolute;inset:0;z-index:2;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;background:linear-gradient(180deg,#0a081200,#0a08122e);transition:opacity .22s ease}.portfolio-item:hover .portfolio-menu-image .portfolio-media-zoom,.portfolio-item:focus-visible .portfolio-menu-image .portfolio-media-zoom{opacity:1}.portfolio-media-zoom-pill{display:inline-flex;width:64px;height:64px;align-items:center;justify-content:center;color:#fff;border:1px solid rgba(255,255,255,.4);border-radius:999px;background:linear-gradient(180deg,#ffffff47,#ffffff14),#0a081259;box-shadow:0 18px 36px #00000052,inset 0 1px #fff6;backdrop-filter:blur(16px) saturate(1.4);-webkit-backdrop-filter:blur(16px) saturate(1.4);transform:scale(.92);transition:transform .22s ease}.portfolio-item:hover .portfolio-menu-image .portfolio-media-zoom-pill,.portfolio-item:focus-visible .portfolio-menu-image .portfolio-media-zoom-pill{transform:scale(1)}.portfolio-media-zoom--video-type{display:flex;align-items:center;justify-content:center;opacity:1}.portfolio-media-zoom--video-type .portfolio-media-zoom-pill--play{width:88px;height:88px;transform:scale(1);transition:transform .22s cubic-bezier(.2,.85,.25,1),box-shadow .22s ease,border-color .22s ease,background .22s ease}.portfolio-item:hover .portfolio-menu-image .portfolio-media-zoom--video-type .portfolio-media-zoom-pill--play,.portfolio-item:focus-visible .portfolio-menu-image .portfolio-media-zoom--video-type .portfolio-media-zoom-pill--play{transform:scale(1.22);border-color:#ffffff8c;background:linear-gradient(180deg,#ffffff5c,#ffffff1f),#0a08126b;box-shadow:0 24px 56px #0000006b,inset 0 1px #ffffff7a}.portfolio-media-zoom-pill--play .portfolio-media-play-icon{margin-left:4px}.portfolio-media-video-placeholder{position:absolute;inset:0;z-index:0;display:flex;align-items:center;justify-content:center;color:#ffffffb8;background:linear-gradient(145deg,#12101ceb,#28243abf)}.client-logo-marquee{--client-logo-duration: 60s;position:relative;margin-top:0;align-self:stretch;width:100%;max-width:100%;min-width:0;display:flex;flex-direction:column;gap:12px}.client-logo-marquee-label{text-align:left}.client-logo-marquee-viewport{position:relative;width:100%;max-width:100%;min-width:0;padding:14px 0;overflow:hidden;-webkit-mask-image:linear-gradient(to right,transparent 0,#000 64px,#000 calc(100% - 64px),transparent 100%);mask-image:linear-gradient(to right,transparent 0,#000 64px,#000 calc(100% - 64px),transparent 100%)}.client-logo-track{display:flex;align-items:center;gap:96px;width:max-content;padding-inline:48px;animation:client-logo-scroll var(--client-logo-duration) linear infinite}@keyframes client-logo-scroll{0%{transform:translateZ(0)}to{transform:translate3d(-50%,0,0)}}.client-logo{flex:0 0 auto;display:flex;align-items:center;justify-content:center;height:64px;max-width:200px}.client-logo-img{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;filter:brightness(0) invert(1) opacity(.55)}@media(prefers-reduced-motion:reduce){.client-logo-track{animation-duration:0s;animation-play-state:paused}}.portfolio-rail-controls{position:absolute;inset:50% 24px auto;z-index:3;display:flex;justify-content:space-between;pointer-events:none;transform:translateY(-50%)}.portfolio-arrow{display:inline-flex;align-items:center;justify-content:center;width:58px;height:58px;border:1px solid rgba(255,255,255,.3);border-radius:999px;color:#ffffffeb;background:linear-gradient(180deg,#fff3,#ffffff0f),#0000003d;box-shadow:var(--compact-shadow);cursor:pointer;pointer-events:auto;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);transition:transform .18s ease,border-color .18s ease,background .18s ease}.portfolio-arrow:hover{transform:translateY(-2px);border-color:#ffffff7a;background:linear-gradient(180deg,#ffffff47,#ffffff17),#00000047}.portfolio-rail-pagination{position:relative;z-index:3;display:flex;justify-content:center;align-items:center;gap:10px;margin-top:10px;padding:8px 14px;width:fit-content;margin-inline:auto;border:1px solid rgba(255,255,255,.18);border-radius:999px;background:linear-gradient(180deg,#ffffff1f,#ffffff0a),#0000002e;box-shadow:0 12px 28px #00000038,inset 0 1px #ffffff2e;backdrop-filter:blur(14px) saturate(1.2);-webkit-backdrop-filter:blur(14px) saturate(1.2)}.portfolio-pagination-dot{appearance:none;display:inline-block;width:10px;height:10px;padding:0;border:1px solid rgba(255,255,255,.32);border-radius:999px;background:#ffffff29;cursor:pointer;box-shadow:inset 0 1px #ffffff38;transition:width .24s ease,background .2s ease,border-color .2s ease,transform .18s ease}.portfolio-pagination-dot:hover{background:#ffffff47;border-color:#ffffff85;transform:translateY(-1px)}.portfolio-pagination-dot[aria-current=true]{width:30px;border-color:#ffffffb8;background:linear-gradient(180deg,#ffffffb8,#ffffff57),#ffffff1f;box-shadow:inset 0 1px #ffffff8c,0 4px 10px #ffffff1f}.portfolio-pagination-dot:focus-visible{outline:2px solid rgba(255,255,255,.7);outline-offset:2px}.contact-dialog-backdrop{position:fixed;inset:0;z-index:12;display:grid;place-items:center;padding:20px;background:#0402089e;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.contact-dialog{width:min(520px,100%);padding:26px;border:1px solid rgba(255,255,255,.18);border-radius:22px;color:var(--ink);background:#fffffff5;box-shadow:var(--surface-shadow-hover)}.contact-dialog--jotform{width:min(760px,calc(100vw - 40px));max-height:min(94vh,920px);display:flex;flex-direction:column;gap:0}.contact-dialog--jotform .contact-dialog-hint{margin-bottom:12px}.contact-dialog-embed-wrap{flex:1 1 auto;min-height:480px;max-height:min(72vh,720px);overflow:auto;border-radius:14px;border:1px solid #ddd7ec;background:#fbfaff;-webkit-overflow-scrolling:touch}.contact-dialog-embed-wrap iframe{display:block;width:100%;min-width:100%;max-width:100%;min-height:480px;border:0;vertical-align:top}.contact-dialog-hint code{font-size:.84em;font-weight:650;color:#3d3552}.contact-dialog-icon{display:inline-flex;width:46px;height:46px;align-items:center;justify-content:center;border-radius:999px;color:#fff;background:linear-gradient(135deg,#4fc0ff,#bd35ff);box-shadow:var(--compact-shadow)}.contact-dialog h2{margin:18px 0 8px;color:var(--ink);font-size:1.55rem;line-height:1.12;letter-spacing:0}.contact-dialog p{margin:0 0 18px;color:var(--muted);line-height:1.45}.contact-dialog form{display:grid;gap:14px}.contact-dialog-error{color:#b51f42;font-size:.86rem;font-weight:760}.contact-dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:2px}.contact-dialog-honeypot-wrap{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;pointer-events:none}.contact-dialog-success{margin:0 0 14px;padding:12px 14px;border-radius:12px;color:#1a4d2e;font-size:.92rem;line-height:1.45;font-weight:650;background:#2eb46424;border:1px solid rgba(46,180,100,.28)}.contact-dialog-hint{margin:0 0 14px;font-size:.88rem;line-height:1.45}.lightbox-backdrop{position:absolute;inset:0;z-index:14;display:grid;place-items:center;padding:0;border-radius:inherit;background:#040406e0;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);animation:lightbox-backdrop-fade-in .22s ease-out both}.lightbox-backdrop .lightbox-panel{z-index:0}.lightbox-backdrop .lightbox-rail-controls{z-index:2}.lightbox-backdrop .portfolio-close{z-index:3}.lightbox-rail-controls{position:absolute;left:clamp(12px,3vw,28px);right:clamp(12px,3vw,28px);top:50%;display:flex;justify-content:space-between;align-items:center;pointer-events:none;transform:translateY(-50%)}.lightbox-arrow{display:inline-flex;align-items:center;justify-content:center;width:58px;height:58px;border:1px solid rgba(255,255,255,.3);border-radius:999px;color:#ffffffeb;background:linear-gradient(180deg,#fff3,#ffffff0f),#0000003d;box-shadow:var(--compact-shadow);cursor:pointer;pointer-events:auto;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);transition:transform .18s ease,border-color .18s ease,background .18s ease}.lightbox-arrow:hover{transform:translateY(-2px);border-color:#ffffff7a;background:linear-gradient(180deg,#ffffff47,#ffffff17),#00000047}.lightbox-panel{position:relative;display:grid;place-items:center;width:100%;height:100%;overflow:hidden;color:#fff}.lightbox-image,.lightbox-video{animation:lightbox-media-fade-in .52s cubic-bezier(.22,.61,.36,1) both;animation-delay:60ms}.lightbox-image{width:min(100%,1280px);max-height:calc(100% - 124px);aspect-ratio:16 / 9;background-position:center;background-repeat:no-repeat;background-size:contain}img.lightbox-image{height:auto;object-fit:contain;background:transparent}.lightbox-video{width:min(100%,1280px);max-height:calc(100% - 124px);aspect-ratio:16 / 9;object-fit:contain;background:#000}@keyframes lightbox-backdrop-fade-in{0%{opacity:0}to{opacity:1}}@keyframes lightbox-media-fade-in{0%{opacity:0;transform:scale(.985)}to{opacity:1;transform:scale(1)}}@media(prefers-reduced-motion:reduce){.lightbox-backdrop,.lightbox-image,.lightbox-video{animation:none}.lightbox-arrow:hover{transform:none}}.lightbox-copy{position:absolute;left:0;right:0;bottom:0;display:grid;gap:10px;padding:clamp(24px,5vw,58px);background:linear-gradient(180deg,transparent,rgba(0,0,0,.62) 42%,rgba(0,0,0,.78))}.lightbox-copy h2,.lightbox-copy p{margin:0}.lightbox-copy h2{color:#ffffffe6;font-size:clamp(1.8rem,4vw,3.2rem);font-weight:500;letter-spacing:0}.lightbox-copy p{color:#ffffffa8;line-height:1.45}.lightbox-slide-count{color:#ffffff80;font-size:.92em;white-space:nowrap}.admin-backdrop{position:fixed;inset:0;z-index:10;display:flex;justify-content:flex-end;pointer-events:none;background:#09061200;transition:background .18s ease}.admin-backdrop.is-open{pointer-events:auto;background:#0906126b}.admin-panel{width:min(520px,100vw);height:100%;overflow-y:auto;padding:24px;color:var(--ink);background:#fbf9ff;box-shadow:-24px 0 70px #00000042;transform:translate(104%);transition:transform .22s ease}.admin-backdrop.is-open .admin-panel{transform:translate(0)}.admin-header,.section-title,.section-title-between,.admin-footer,.card-editor-row{display:flex;align-items:center}.admin-header{justify-content:space-between;gap:18px;margin-bottom:22px}.admin-kicker{margin:0 0 4px;color:#7c3cff;font-size:.78rem;font-weight:800;text-transform:uppercase}.admin-header h2{margin:0;color:var(--ink);font-size:1.7rem;line-height:1.1;letter-spacing:0}.admin-section{display:grid;gap:13px;margin:0 0 20px;padding:18px;border:1px solid #ebe7f5;border-radius:18px;background:#fff;box-shadow:var(--compact-shadow)}.section-title{justify-content:flex-start;gap:9px;color:#332b46;font-size:.96rem;font-weight:850}.section-title-between{justify-content:space-between}.section-title-between>span{display:inline-flex;align-items:center;gap:9px}label{display:grid;gap:7px;color:#524b62;font-size:.82rem;font-weight:760}input,textarea{width:100%;border:1px solid #ddd7ec;border-radius:12px;color:var(--ink);background:#fbfaff;outline:0}input{height:45px;padding:0 13px}textarea{resize:vertical;padding:12px 13px}input:focus,textarea:focus{border-color:#8b78ff;box-shadow:0 0 0 4px #8b78ff24}.admin-primary,.admin-secondary,.icon-button{border:1px solid transparent;font-weight:800}.admin-primary{min-height:46px;padding:12px 18px;color:#fff;background:linear-gradient(93deg,#4f7cff,#b83dff);box-shadow:var(--compact-shadow)}.admin-secondary{min-height:38px;padding:9px 13px;color:#352b4a;background:#f2effb;border-color:#e4ddf4;box-shadow:var(--compact-shadow)}.icon-button{flex:0 0 auto;width:38px;min-height:38px;padding:0;color:#4e465f;background:#f3effb;border-color:#e6def4;box-shadow:var(--compact-shadow)}.icon-button.danger{color:#b51f42;background:#fff0f3;border-color:#ffd5df}.card-editor-list,.card-form{display:grid;gap:10px}.card-editor-row{gap:8px}.row-main{display:grid;flex:1;min-width:0;gap:2px;padding:10px 12px;border:1px solid #e8e1f4;border-radius:12px;color:var(--ink);background:#fcfbff;box-shadow:var(--compact-shadow);text-align:left;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.row-main:hover{border-color:#d8cef0;box-shadow:var(--compact-shadow-hover);transform:translateY(-2px)}.row-main span,.row-main small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row-main span{font-weight:820}.row-main small{color:var(--muted)}.file-upload{display:inline-flex;width:fit-content;grid-template-columns:none;align-items:center;justify-content:center;gap:9px;min-height:42px;padding:10px 14px;border:1px dashed #cfc5e6;border-radius:12px;color:#463958;background:#faf7ff;box-shadow:var(--compact-shadow);cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.file-upload:hover{border-color:#bcaee1;box-shadow:var(--compact-shadow-hover);transform:translateY(-2px)}.file-upload input{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.checkbox-row{display:flex;align-items:center;gap:10px}.checkbox-row input{width:18px;height:18px}.admin-footer{justify-content:space-between;gap:12px;padding-bottom:20px}@media(max-width:1180px){.hero-panel{grid-template-columns:1fr;gap:42px;padding:64px}.intro{align-self:stretch;min-height:44vh}.dashboard-area,.portfolio-showcase{align-self:start;margin-top:0}.portfolio-showcase{padding-right:0;padding-top:78px}.hero-panel.is-portfolio-view .portfolio-showcase{align-self:start;padding-top:0}.portfolio-gallery{grid-template-columns:repeat(3,minmax(220px,1fr));overflow-x:auto;padding-right:0;padding-bottom:18px;scroll-snap-type:x mandatory}.portfolio-item{scroll-snap-align:start}.admin-entry{right:64px;top:64px}}@media(max-width:780px){.shell{padding:0}.hero-panel{min-height:100vh;min-height:100dvh;margin:0;padding-top:max(42px,env(safe-area-inset-top,0px));padding-right:max(22px,env(safe-area-inset-right,0px));padding-bottom:calc(86px + env(safe-area-inset-bottom,0px));padding-left:max(22px,env(safe-area-inset-left,0px));border-radius:0}.portfolio-close{right:22px;top:42px;width:64px;height:64px}.portfolio-close svg{width:42px;height:42px}.hero-panel:before,.panel-sheen{border-radius:0}.eyebrow{font-size:1.8rem}.london-clock span{font-size:4rem}.profile-heading{gap:13px}.avatar-placeholder{width:36px;height:36px;font-size:.72rem}h1{font-size:clamp(3.2rem,10vw,4.6rem);letter-spacing:0}.connect-area{padding-top:38px}.actions{gap:10px}.pill-button{min-width:0;justify-content:flex-start;padding:16px;font-size:.98rem;gap:10px}.pill-button-compact{min-width:0;padding-inline:14px}.card-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.portfolio-copy{padding:16px}.tool-card-body{min-height:122px;padding:15px}.admin-entry{right:22px;top:42px}}@media(max-width:400px){.actions{gap:8px}.actions .pill-button{padding:15px 12px;font-size:.92rem;gap:8px}.actions .pill-button svg{width:20px;height:20px}.actions .pill-button .button-arrow{width:15px;height:15px}}@media(max-width:560px){.hero-panel{padding-top:max(34px,env(safe-area-inset-top,0px));padding-right:max(16px,env(safe-area-inset-right,0px));padding-bottom:calc(84px + env(safe-area-inset-bottom,0px));padding-left:max(16px,env(safe-area-inset-left,0px))}.hero-panel.is-portfolio-view h1{font-size:clamp(2.7rem,14vw,4.2rem)}.portfolio-showcase{padding-top:36px}.hero-panel.is-portfolio-view .portfolio-showcase{padding-top:0}.admin-entry{right:16px;top:34px}.portfolio-close{right:16px;top:34px;width:54px;height:54px}.portfolio-close svg{width:34px;height:34px}.admin-sign-in{width:34px;min-height:34px;padding:0}.admin-sign-in span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.eyebrow{font-size:1.55rem}.london-clock span{font-size:3.25rem}.london-clock small{font-size:.82rem}.profile-heading{gap:10px}.avatar-placeholder{width:34px;height:34px;font-size:.72rem}h1{font-size:clamp(2.45rem,11vw,3.25rem);letter-spacing:0}.card-grid{grid-template-columns:1fr}.portfolio-gallery{grid-template-columns:repeat(3,minmax(240px,1fr))}.tool-card-image{aspect-ratio:1.7 / 1}.admin-panel{padding:18px}.admin-section{padding:15px}.admin-footer{align-items:stretch;flex-direction:column}}
