:root{color-scheme:light;--bg:#fcfaff;--surface:#ffffff;--line:#e4dbee;--text:#231333;--muted:#675973;--accent:#7c3aed;--font:Arial,Helvetica,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:16px;line-height:1.6}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.6;cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:5px}header{height:102px;display:flex;align-items:center;justify-content:space-between;max-width:1440px;padding:0 5%;margin:auto;border-bottom:1px solid var(--line)}.brand{position:relative;display:flex;width:191px;height:67px;align-items:center}.brand img{width:191px;height:auto;max-height:67px;object-fit:contain;position:relative;z-index:1;background:white;border-radius:4px;padding:4px}.brand-fallback{position:absolute;font-size:28px;letter-spacing:3px;font-weight:800;line-height:1.1}.brand-fallback small{display:block;font-size:10px;letter-spacing:2.8px}nav{display:flex;gap:32px;align-items:center}nav>a:not(.button){font-size:14px;color:#584666}nav a:hover{color:var(--accent)}.menu{display:none}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:30px;border:1px solid var(--accent);background:var(--accent);color:#ffffff;padding:15px 23px;border-radius:5px;font-size:14px;font-weight:700;transition:transform .2s,background .2s}.button:hover{transform:translateY(-2px);background:#6d28d9;color:#ffffff}.button.small{padding:11px 17px;gap:18px;font-size:13px}.button.secondary{color:var(--accent);background:transparent}.text-link{display:inline-block;font-size:14px;font-weight:600;border-bottom:1px solid #c4b5d5;padding-bottom:3px;background:none;color:var(--text);cursor:pointer}.text-link:hover{color:var(--accent)}section{max-width:1440px;margin:auto;padding:100px 5%;scroll-margin-top:20px}.hero{display:grid;grid-template-columns:1.05fr 1fr;gap:55px;align-items:center;padding-top:83px;padding-bottom:85px;min-height:700px;background:radial-gradient(ellipse at 90% 45%,#c4a2ff45,transparent 52%)}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(44px,4.8vw,74px);letter-spacing:-3.4px;line-height:1.05;font-weight:600;margin-bottom:28px}em{color:var(--accent);font-style:normal}h2{font-size:clamp(32px,3.8vw,52px);line-height:1.12;letter-spacing:-2px;font-weight:500;margin-bottom:25px}h3{font-size:21px;letter-spacing:-.4px;line-height:1.35;margin-bottom:12px;font-weight:500}.eyebrow{font-family:Consolas,'Courier New',monospace;font-size:11px;letter-spacing:1.4px;line-height:1.7;color:var(--accent);margin-bottom:26px}.hero .eyebrow{font-size:10px;letter-spacing:1.1px}.led{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--accent);margin-right:8px;box-shadow:0 0 10px #7c3aed55}.hero-intro{font-size:21px;color:#49335c;line-height:1.5;margin-bottom:15px}.muted,p{color:var(--muted)}.hero .muted{max-width:475px;font-size:15px}.actions{display:flex;gap:25px;align-items:center;flex-wrap:wrap;margin-top:32px}.workspace{border:1px solid #d5c2ef;border-radius:11px;background:linear-gradient(130deg,#ffffff,#f6f0ff);box-shadow:0 45px 95px #7c3aed20;transform:perspective(1400px) rotateY(-7deg) rotateX(3deg);overflow:hidden}.workspace-top{display:flex;align-items:center;border-bottom:1px solid #e2d5f1;padding:19px 21px;font-size:9px;letter-spacing:1px;font-family:monospace;color:#5d3d78}.workspace-top>span:last-child{margin-left:auto;font-size:8px;color:#7b638f}.workspace-body{display:grid;grid-template-columns:108px 1fr;min-height:330px}.workspace-side{display:flex;flex-direction:column;gap:20px;border-right:1px solid #e2d5f1;padding:28px 15px;color:#7b638f;font-size:10px}.workspace-side .active{color:var(--accent);background:#ede1ff;padding:8px;border-radius:4px;margin:-8px}.workspace-main{padding:27px 24px}.workspace-heading{font-size:19px;letter-spacing:-.5px;margin-bottom:25px}.workspace-heading>span{display:block;font-size:10px;color:#78618b;letter-spacing:0;margin-top:5px}.connections{display:grid;grid-template-columns:1fr 1fr;gap:11px}.connections>div{border:1px solid #e0d1f3;border-radius:5px;background:#ffffff;padding:18px 12px;font-size:12px}.connections small{color:#78618b;display:inline-block;margin-top:5px;font-size:9px}.sync{border-top:1px solid #e0d1f3;margin-top:26px;padding-top:17px;font-size:9px;color:#6b4f82}.workspace-bottom{padding:16px 21px;border-top:1px solid #e2d5f1;font-size:8px;font-family:monospace;color:#78618b;display:flex;justify-content:space-between}.workspace-bottom span{color:#52316e}.visual-caption{display:flex;justify-content:space-between;gap:15px;padding:25px 8px 0;font-family:monospace;font-size:9px;color:#78618b}.ticker{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:26px 5%;display:flex;justify-content:space-around;gap:20px;font-family:monospace;font-size:11px;letter-spacing:1.8px;color:#6e587c}.ticker span:before{content:'+';color:var(--accent);margin-right:17px}.section-head{display:grid;grid-template-columns:1.3fr 1fr;gap:90px;align-items:end;margin-bottom:45px}.section-head h2{margin-bottom:0}.section-head>p{max-width:400px;margin-bottom:6px;font-size:16px}.section-head .eyebrow{margin-bottom:20px}.services{display:grid;grid-template-columns:1fr 1fr;column-gap:45px}.service{display:grid;grid-template-columns:27px 1fr 17px;gap:20px;border-top:1px solid var(--line);padding:30px 0}.service p{font-size:14px;line-height:1.7;margin:0;max-width:470px}.number{font-family:monospace;color:#8b6aa6;font-size:12px;padding-top:4px}.service>span:last-child{color:var(--accent)}.integration{background:#f2eaff;max-width:none;text-align:center;border-top:1px solid #e0d0f5;border-bottom:1px solid #e0d0f5;padding-top:80px;padding-bottom:80px}.integration>p:not(.eyebrow){max-width:690px;margin:0 auto 30px;color:#685277}.pill-row{display:flex;justify-content:center;gap:10px;flex-wrap:wrap}.pill-row span{font-size:12px;padding:8px 15px;border:1px solid #d9c5f0;border-radius:30px;color:#593675}.cases{display:grid;grid-template-columns:repeat(3,1fr);gap:25px}.case{border:1px solid var(--line);border-radius:7px;overflow:hidden;background:#ffffff;transition:transform .2s,border-color .2s}.case:hover{transform:translateY(-5px);border-color:#a276dc}.case-art{height:210px;position:relative;padding:25px;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;background:radial-gradient(circle at 85% 30%,#fd984525,transparent 60%),#fff1e8;color:#9c430e}.case-art.green{background:radial-gradient(circle at 85% 30%,#97e99125,transparent 60%),#eff9f1;color:#286b3c}.case-art.blue{background:radial-gradient(circle at 85% 30%,#7975fd25,transparent 60%),#f0edff;color:#6532b3}.case-monogram{font-size:64px;font-weight:600;letter-spacing:-5px;line-height:1;z-index:1}.art-label{font-family:monospace;font-size:10px;text-transform:uppercase;letter-spacing:1px;z-index:1}.art-line{position:absolute;border:1px solid currentColor;opacity:.25;border-radius:20px;transform:rotate(-30deg);width:185px;height:185px;right:-30px;top:30px}.art-line:after{content:'';display:block;position:absolute;inset:25px;border:1px solid currentColor;border-radius:10px}.case-copy{padding:27px 25px}.case-copy .eyebrow{font-size:9px;letter-spacing:.3px;margin-bottom:14px}.case-copy h3{display:flex;justify-content:space-between;font-size:22px;gap:10px}.case-copy p{font-size:14px;min-height:90px}.case-copy .text-link{font-size:12px}.licence{display:flex;justify-content:space-between;gap:35px;align-items:center;border-top:1px solid var(--line);margin-top:45px;padding-top:30px}.licence p{max-width:770px;font-size:14px;margin-bottom:0}.licence .text-link{white-space:nowrap}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:45px}.steps article{border-top:1px solid var(--line);padding-top:28px}.steps article>span{color:var(--accent);font-family:monospace;font-size:12px;display:block;margin-bottom:23px}.steps p{font-size:14px}.contact{border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;gap:100px;background:linear-gradient(130deg,#f4ecff,var(--bg));max-width:none;padding-left:max(5%,calc((100vw - 1296px)/2));padding-right:max(5%,calc((100vw - 1296px)/2))}.contact>div>p{max-width:460px}.contact .muted{font-size:13px}.contact-details{margin-top:35px;display:flex;flex-direction:column;gap:9px;font-size:14px}.contact-details a:first-child{color:var(--accent)}address{font-style:normal;color:var(--muted);font-size:13px;margin-top:10px}label{display:block;color:#49315c;font-size:12px;font-weight:500;margin-bottom:20px}input,textarea{display:block;width:100%;background:#ffffff;border:1px solid #d8c7e8;border-radius:4px;color:var(--text);padding:12px 14px;margin-top:8px;font-size:14px}textarea{resize:vertical}input::placeholder,textarea::placeholder{color:#8b789b}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:20px}.form-note{font-size:11px;line-height:1.8;margin-top:5px}.form-note a{text-decoration:underline}.honeypot{display:none}#form-status,#admin-status{font-size:13px;margin-top:16px}.error{color:#b42318!important}footer{border-top:1px solid var(--line);max-width:1440px;margin:auto;padding:45px 5%;display:grid;grid-template-columns:1.3fr 1fr .8fr;gap:35px;font-size:12px}footer strong{font-size:13px;letter-spacing:1.7px}footer p{margin:8px 0}footer>div:not(:first-child){display:flex;flex-direction:column;gap:8px}footer small{color:#78618b;margin-top:5px}.skip{position:absolute;left:15px;top:-100px;padding:10px;background:var(--accent);color:var(--bg);z-index:10}.skip:focus{top:10px}.case-hero{padding-top:65px;padding-bottom:65px;border-bottom:1px solid var(--line)}.case-hero>.text-link{margin-bottom:40px}.case-hero h1{max-width:950px}.case-hero .eyebrow{margin-bottom:20px}.case-tagline{font-size:24px;max-width:720px;line-height:1.5}.case-story{display:grid;grid-template-columns:.9fr 1.1fr;gap:80px;padding-bottom:40px}.case-story h3{color:var(--accent);margin-top:35px}.case-story h3:first-child{margin-top:0}.feature-grid{display:grid;grid-template-columns:1fr 1fr;gap:25px 50px;margin-top:40px}.feature-grid article{border-top:1px solid var(--line);padding-top:25px}.feature-grid p{font-size:15px}.outcome{background:#f2eaff;max-width:none}.outcome h2{font-size:32px;line-height:1.45;max-width:1050px;letter-spacing:-.8px;margin:0}.case-licence{padding:70px 5%;margin-top:0}.case-licence .button{flex-shrink:0}.prose{max-width:900px;padding-top:60px}.prose h3{color:var(--accent);margin-top:35px}.prose a{text-decoration:underline}.admin-head{padding-top:65px;padding-bottom:30px}.admin-head h1{font-size:48px}.admin-panel{padding-top:25px;min-height:450px}#login-form{max-width:420px;padding:30px;border:1px solid var(--line);border-radius:7px;background:var(--surface)}#login-form h2{font-size:25px;letter-spacing:-.8px}.dashboard-toolbar{display:flex;gap:20px;align-items:center}.dashboard-toolbar label{flex:1;margin:0}.enquiry{padding:25px;border:1px solid var(--line);background:var(--surface);margin-bottom:15px;border-radius:6px}.enquiry h3{margin:0 0 5px}.enquiry time{color:#78618b;font-family:monospace;font-size:11px}.enquiry .brief{white-space:pre-wrap;overflow-wrap:anywhere;margin-top:20px}.enquiry a{color:var(--accent)}[hidden]{display:none!important}@media(min-width:1600px){.hero h1{font-size:74px}}@media(max-width:1100px){nav{gap:19px}header{padding:0 4%}.hero{gap:30px;padding-left:4%;padding-right:4%}h1{font-size:56px}.workspace-side{display:none}.workspace-body{grid-template-columns:1fr}.workspace-heading{font-size:20px}.workspace-main{padding:25px}.contact{gap:50px}.case-copy{padding:22px 18px}.case-copy h3{font-size:20px}.visual-caption span:last-child{display:none}}@media(max-width:780px){header{height:85px;position:relative}.brand{width:163px;height:58px}.brand img{width:163px;max-height:58px}.menu{display:block;color:var(--text);border:1px solid var(--line);background:transparent;padding:8px 13px;border-radius:4px}nav{display:none;position:absolute;left:0;right:0;top:84px;padding:25px;background:#ffffff;border-bottom:1px solid var(--line);z-index:5;align-items:flex-start;flex-direction:column}nav.open{display:flex}.hero{grid-template-columns:1fr;gap:45px;padding-top:45px;padding-bottom:50px;min-height:0}h1{font-size:clamp(42px,9vw,66px);letter-spacing:-2px}.hero h1 br{display:none}.hero-intro{font-size:20px}.hero-visual{max-width:560px;width:100%;margin:auto}.workspace{transform:none}.workspace-body{min-height:290px}.workspace-main{padding:25px}.connections>div{padding:15px}.visual-caption{font-size:9px}.ticker{flex-wrap:wrap;justify-content:flex-start;padding:20px 5%;font-size:9px;gap:12px 25px}section{padding:65px 5%}.section-head{grid-template-columns:1fr;gap:22px}.section-head>p{max-width:none;font-size:15px}.services{grid-template-columns:1fr}.service{gap:15px}.cases{grid-template-columns:1fr}.case{display:grid;grid-template-columns:.7fr 1fr}.case-art{height:auto;min-height:235px}.case-copy p{min-height:0}.licence{flex-direction:column;align-items:flex-start;gap:20px}.steps{grid-template-columns:1fr;gap:20px}.steps article{display:grid;grid-template-columns:30px 1fr;gap:0 20px}.steps p{grid-column:2}.steps article>span{margin:3px 0}.contact{grid-template-columns:1fr;gap:40px}.contact-details{margin-top:25px}footer{grid-template-columns:1fr 1fr}footer>div:first-child{grid-column:1/-1}.case-hero{padding-top:45px}.case-tagline{font-size:21px}.case-story{grid-template-columns:1fr;gap:25px}.story-label h2{margin:0}.feature-grid{grid-template-columns:1fr;gap:10px}.outcome h2{font-size:25px}.dashboard-toolbar{flex-wrap:wrap}.dashboard-toolbar label{flex-basis:100%}}@media(max-width:440px){.case{grid-template-columns:1fr}.case-art{min-height:0;height:160px}.case-monogram{font-size:48px}.form-row{grid-template-columns:1fr;gap:0}.actions{gap:20px}.button{gap:20px}.hero .eyebrow{font-size:9px;letter-spacing:.6px}.workspace-top{padding:16px}.workspace-top>span:last-child{display:none}.workspace-main{padding:20px 16px}.sync{font-size:8px}.connections small{font-size:8px}.case-copy{padding:25px}.ticker span:before{margin-right:9px}.case-licence .button{white-space:normal}footer{gap:25px;font-size:11px}.admin-head h1{font-size:37px}.brand-fallback{font-size:23px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

.brand img{background:#226148;padding:8px;border-radius:4px}

/* Light theme refinements */
.workspace{box-shadow:0 30px 80px #7c3aed1a}.connections>div{box-shadow:0 3px 12px #7c3aed08}.case{box-shadow:0 8px 28px #4c1d9506}.integration .pill-row span{background:#fff}.button.secondary:hover{background:#ede1ff;color:var(--accent)}.skip{color:#fff}

/* Purple symbol with company wordmark */
.brand{width:245px;gap:12px;flex-shrink:0}.brand img{position:static;width:54px;height:54px;max-height:none;padding:0;background:#fff;border-radius:0;object-fit:contain}.brand-name{position:static;font-size:28px;letter-spacing:3px;font-weight:800;line-height:1.1;color:#231333}.brand-name small{display:block;font-size:10px;letter-spacing:2.8px;margin-top:4px}@media(max-width:780px){.brand{width:220px;gap:10px}.brand img{width:46px;height:46px;max-height:none}.brand-name{font-size:25px}.brand-name small{font-size:9px}}@media(max-width:440px){.brand{width:204px}.brand-name{font-size:23px}}

/* Supplied project branding */
.case-art{background:#fff!important;align-items:center;padding:18px 22px;color:#675973!important}.case-logo{display:block;width:100%;height:145px;object-fit:contain}.case-art .art-label{align-self:flex-start;font-size:9px;margin-top:10px}.case-hero-logo{display:block;width:180px;height:145px;object-fit:contain;object-position:left center;margin:0 0 24px;background:#fff;border-radius:8px;padding:10px}@media(max-width:780px){.case-art{justify-content:center;padding:16px}.case-logo{height:160px}.case-art .art-label{font-size:8px;letter-spacing:.4px}}@media(max-width:440px){.case-art{height:210px}.case-logo{height:160px}}

/* Latest complete Linea logo */
header{height:148px}.brand{width:156px;height:132px;gap:0}.brand img{width:156px;height:132px;max-height:none;background:#fff;padding:0;border-radius:0;object-fit:contain}.brand-name{display:none}@media(max-width:780px){header{height:128px}.brand{width:135px;height:116px}.brand img{width:135px;height:116px;max-height:none}nav{top:127px}}

/* Product screenshot gallery */
.screenshot-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:32px;align-items:start}.product-shot{min-width:0;border:1px solid var(--line);background:#fff;border-radius:10px;overflow:hidden}.product-shot[open]{grid-column:1/-1}.product-shot summary{cursor:pointer;list-style:none}.product-shot summary::-webkit-details-marker{display:none}.product-shot summary:focus-visible{outline:3px solid var(--accent);outline-offset:-3px}.shot-title{display:flex;justify-content:space-between;gap:16px;padding:18px 20px;align-items:center;font-size:16px;font-weight:600}.shot-hint{font-size:10px;font-weight:400;color:var(--accent)}.product-shot img{display:block;width:100%;height:auto;border-top:1px solid var(--line)}.product-shot p{padding:18px 20px;margin:0;font-size:14px;border-top:1px solid var(--line)}@media(max-width:780px){.screenshot-grid{grid-template-columns:1fr}.shot-title{font-size:14px;flex-wrap:wrap;gap:5px}.shot-hint{font-size:9px}}

/* Software integration hero illustration */
.integration-illustration{display:block;width:100%;height:auto;border-radius:14px;border:1px solid #e4dbee;box-shadow:0 20px 60px #7c3aed12}.hero-visual{min-width:0}@media(min-width:1101px){.hero{grid-template-columns:1fr 1.15fr;gap:38px}}

/* Blend the supplied white logo canvas into the light page */
.brand img{background:transparent;mix-blend-mode:multiply}

.product-video video{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:contain;background:#080d12;border:1px solid var(--line);border-radius:12px;margin-top:30px}.product-video{padding-top:60px;padding-bottom:40px}

/* Four project cards and SheetClarity */
@media(min-width:781px){.cases{grid-template-columns:repeat(2,minmax(0,1fr))}.case-copy p{min-height:65px}}.sheetclarity-logo{object-fit:contain}.tool-demo iframe{display:block;width:100%;height:850px;border:1px solid var(--line);border-radius:10px;background:#fff;margin-top:24px}.tool-demo summary{list-style:none;cursor:pointer}.tool-demo summary::-webkit-details-marker{display:none}@media(max-width:780px){.tool-demo iframe{height:700px}}

/* Centre supplied logos in their display areas */
.brand{justify-content:center}.brand img,.case-logo,.case-hero-logo{object-position:center}.case-art{justify-content:center}.case-art .art-label{position:absolute;left:16px;right:16px;bottom:12px;text-align:center;margin:0;align-self:center}.case-hero-logo{margin:0 auto 24px}.case-logo{margin:0 auto}

/* YourBags app showcase */
.yourbags-brand-image{display:block;width:min(100%,960px);height:auto;margin:45px auto 0;border-radius:14px}.yourbags-intro{max-width:720px;color:var(--muted)}.yourbags-privacy{background:#f2eaff}.yourbags-art .case-logo{height:165px}.yourbags-gallery .screenshot-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.yourbags-gallery .product-shot img{width:auto;max-width:100%;height:420px;object-fit:contain;margin:20px auto}.yourbags-gallery .product-shot[open]{grid-column:1/-1}.yourbags-gallery .product-shot[open] img{height:auto;width:min(100%,360px)}@media(max-width:780px){.yourbags-gallery .screenshot-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.yourbags-gallery .product-shot img{height:320px}}@media(max-width:440px){.yourbags-gallery .screenshot-grid{grid-template-columns:1fr}.yourbags-gallery .product-shot img{height:400px}}

/* YourBags supplied money-bag logo */
.yourbags-art .case-logo{height:165px;object-position:center}.case-hero-logo.yourbags-logo{width:220px;height:230px;background:transparent;padding:0;border-radius:0;margin:0 auto 28px}

/* Left-align project branding with the project copy */
.case-logo,.case-hero-logo{object-position:left center}.case-logo{margin:0}.case-hero-logo{margin:0 0 24px}.case-hero-logo.yourbags-logo{margin:0 0 28px;object-position:left center}.case-art{align-items:flex-start}.case-art .art-label{text-align:left;align-self:flex-start}.yourbags-art .case-logo{object-position:left center}.yourbags-privacy-page>.text-link{margin-bottom:35px}

/* Portfolio card logos centred; project page logos stay left-aligned */
.case-art{align-items:center}.case-art .case-logo{object-position:center;margin:0 auto}.case-art .art-label{text-align:center;align-self:center}

/* Centre Waggly Tails inside its white logo panel */
.case-hero-logo.waggly-logo{object-position:center}

/* Balanced square panel for the Waggly Tails logo */
.case-hero-logo.waggly-logo{width:145px;height:145px;object-fit:contain;object-position:50% 50%;padding:10px}

/* Centre project artwork within its panel, without moving the panel */
.case-hero .case-hero-logo{object-position:center}

/* Portfolio is a separate page */
.portfolio-page .section-head h1{margin-bottom:0}.portfolio-page .section-head>p{align-self:end}

/* Supplied full-width project banners, shown without cropping */
.case-art.case-banner{display:block;height:auto;min-height:0;padding:0;background:transparent!important}
.case-art.case-banner img{display:block;width:100%;height:auto;aspect-ratio:2048/682;object-fit:contain}
.project-hero-banner{display:block;width:100%;height:auto;aspect-ratio:2048/682;object-fit:contain;margin:28px 0 32px;border-radius:10px}
@media(max-width:780px){.portfolio-page .case{display:block}.project-hero-banner{margin:24px 0;border-radius:6px}}
