*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:#fdfdfd;color:#171717;font-family:'DM Sans',sans-serif;font-size:16px;line-height:1.6}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}button{cursor:pointer}img{max-width:100%;display:block}header{display:flex;align-items:center;justify-content:space-between;gap:24px;position:sticky;top:0;background:#fdfdfdf2;backdrop-filter:blur(14px);z-index:20;padding:22px 4vw;border-bottom:1px solid #e6e6e6}.brand{display:flex;align-items:center;gap:12px;font:800 35px Manrope,sans-serif}.brand>span{font-size:16px;font-weight:700;line-height:1.3}.brand small{display:block;font:500 10px 'DM Sans';letter-spacing:2px;margin-top:5px}nav{display:flex;gap:27px;font-size:14px}nav a:hover{color:#686868}.button{display:inline-flex;justify-content:center;align-items:center;min-height:49px;background:#171717;color:white;padding:14px 25px;border:1px solid #171717;font-weight:600;font-size:14px;transition:background .2s,transform .2s;border-radius:3px}.button:hover{background:#383838;transform:translateY(-2px)}.button.outline{background:transparent;color:#171717}.button.outline:hover{background:#efefef}.wrap{max-width:1440px;margin:auto;padding-inline:5vw}.hero{display:grid;grid-template-columns:1.04fr 1fr;gap:65px;align-items:center;padding-block:90px 105px;min-height:710px}.eyebrow{font-size:12px;font-weight:700;letter-spacing:2px;margin:0 0 24px;color:#606060}h1,h2,h3{font-family:Manrope,sans-serif;font-weight:600;letter-spacing:-2px;line-height:1.12;margin:0}h1{font-size:clamp(42px,4.6vw,70px)}h1 em{font-style:normal;color:#777}.hero-intro{max-width:540px;font-size:18px;color:#646464;margin:27px 0 30px}.actions{display:flex;gap:12px;flex-wrap:wrap}.hero-note{font-size:12px;color:#737373;margin-top:30px}.hero-visual{position:relative;padding:20px 28px 70px 0}.browser-frame{border:1px solid #d8d8d8;border-radius:7px;overflow:hidden;background:white;box-shadow:0 20px 65px #00000015}.browser-bar{height:27px;display:flex;gap:4px;align-items:center;padding:0 10px;background:#ededed}.browser-bar i{width:5px;height:5px;border-radius:50%;background:#b7b7b7}.browser-bar span{margin:auto;font-size:9px;color:#777}.hero-screen{transform:perspective(1000px) rotateY(-7deg) rotateZ(-2deg)}.hero-screen img{width:100%}.phone-frame{border:5px solid #181818;border-radius:22px;overflow:hidden;background:#181818;box-shadow:0 20px 35px #0003;aspect-ratio:390/844}.phone-frame img{width:100%;height:100%;object-fit:cover;object-position:top}.hero-phone{width:27%;position:absolute;right:0;bottom:20px;rotate:5deg}.visual-caption{position:absolute;left:10px;bottom:15px;font-size:12px;color:#777}.section{padding-block:80px;border-top:1px solid #e6e6e6}.section-title{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:35px}h2{font-size:clamp(35px,4vw,53px)}.section-title>p{font-size:16px;color:#666;max-width:360px}.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:40px}.filters button{padding:9px 15px;font-size:13px;border:1px solid #ddd;background:transparent;border-radius:3px;color:#555}.filters button.active{background:#171717;color:white;border-color:#171717}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:55px 35px}.project-card[hidden]{display:none}.project-stage{background:var(--surface,#f1f1f1);padding:36px 40px 50px;position:relative;border-radius:5px;min-height:290px;overflow:hidden}.project-stage .desktop-shot{width:91%;border:0;padding:0;text-align:left;background:white;border-radius:5px;transition:transform .4s;box-shadow:0 15px 25px #0002;overflow:hidden}.project-stage .desktop-shot:hover{transform:translateY(-5px) scale(1.025)}.project-stage .desktop-shot img{aspect-ratio:1.65;object-fit:cover;object-position:top}.project-stage .mobile-shot{position:absolute;right:22px;bottom:25px;width:22%;padding:0;transition:transform .3s}.project-stage .mobile-shot:hover{transform:translateY(-5px)}.project-meta{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:#777;margin-top:22px}.project-card h3{font-size:27px;letter-spacing:-.7px;margin-top:8px}.project-card>p{color:#666;font-size:15px;margin:15px 0}.tags{display:flex;gap:7px;flex-wrap:wrap}.tags span{font-size:12px;color:#666;border-bottom:1px solid #ddd;padding:4px 0;margin-right:10px}.project-links{display:flex;gap:22px;margin-top:19px;font-size:14px;font-weight:600}.project-links a{border-bottom:1px solid #171717;padding-bottom:3px}.pending-preview{height:250px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;border:1px solid #ddd;color:#444}.pending-preview strong{font-size:28px;font-family:Manrope}.pending-preview span{font-size:14px;margin-top:15px;color:#777}footer{padding-block:38px;display:flex;justify-content:space-between;gap:15px;flex-wrap:wrap;font-size:12px;border-top:1px solid #ddd}dialog{width:min(1100px,95vw);max-height:94vh;padding:40px 20px 20px;border:0;border-radius:7px;background:#fff}dialog::backdrop{background:#000b}dialog img{max-height:78vh;margin:auto;object-fit:contain}dialog p{text-align:center}.dialog-close{position:absolute;right:8px;top:2px;border:0;background:none;font-size:28px}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #486eff;outline-offset:4px}.reveal{opacity:0;transform:translateY(20px);transition:opacity .6s,transform .6s}.reveal.visible{opacity:1;transform:none}@media(max-width:1000px){.hero{gap:30px;padding-block:65px}.hero-intro{font-size:16px}nav{gap:15px}.project-stage{padding:25px 20px 45px}}@media(max-width:750px){header{padding:15px 5vw;flex-wrap:wrap;gap:14px}.brand{font-size:28px}.brand>span{font-size:14px}nav{order:3;width:100%;justify-content:space-between;font-size:13px}.nav-cta{padding:10px 15px;min-height:40px}.hero{grid-template-columns:1fr;padding-block:50px;gap:25px;min-height:0}.hero-visual{max-width:560px;width:100%;margin:auto}.hero h1{font-size:45px;max-width:580px}.hero-intro{font-size:17px}.hero-note{font-size:12px}.section{padding-block:55px}.section-title{display:block}.section-title>p{margin-top:22px}.project-grid{grid-template-columns:1fr;gap:40px}.project-stage{padding:30px 25px 45px}.project-card h3{font-size:25px}h2{font-size:37px}.filters button{font-size:12px;padding:8px 11px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}.reveal{opacity:1;transform:none}}
.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:35px}.service-group{border-top:2px solid #171717;padding-top:20px}.service-group>span{font-size:12px;color:#777;letter-spacing:1px}.service-group h3{font-size:27px;letter-spacing:-.8px;margin:24px 0 16px}.service-group p{font-size:15px;color:#666}.service-group ul{list-style:none;padding:0;font-size:14px}.service-group li{padding:9px 0;border-bottom:1px solid #eee}.text-link{font-weight:600;font-size:14px;border-bottom:1px solid #171717;padding-bottom:3px}.process-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:30px;margin-top:45px}.process-step>span{display:block;border-top:1px solid #b8b8b8;padding-top:15px;font-size:14px;color:#777}.process-step h3{font-size:21px;letter-spacing:-.5px;margin:22px 0 15px;line-height:1.4}.process-step p{font-size:14px;color:#666}.about{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:90px}.portrait{position:relative}.portrait img{width:100%;max-height:680px;object-fit:cover;object-position:center 25%;filter:grayscale(1)}.portrait span{display:block;padding:14px 0;font-size:12px;color:#666}.about-copy p:not(.eyebrow){color:#666;font-size:17px;margin:25px 0}.about-copy .button{margin-top:8px}.benefits{display:grid;grid-template-columns:repeat(3,1fr);gap:0 30px}.benefits>div{border-top:1px solid #ddd;padding:22px 0;display:flex;gap:17px}.benefits span{font-size:12px;color:#999}.benefits strong{font-size:16px;font-weight:500}.big-cta{background:#171717;color:white;padding:85px 0}.big-cta .eyebrow{color:#aaa}.big-cta h2{font-size:clamp(40px,5vw,68px)}.big-cta p:not(.eyebrow){max-width:590px;font-size:18px;color:#aaa;margin:30px 0}.button.white{background:white;color:#171717;border-color:white}.button.dark-outline{background:none;border-color:#777}.contact{display:grid;grid-template-columns:.9fr 1.1fr;gap:90px}.contact>div>p:not(.eyebrow){color:#666;max-width:360px}.contact-email{display:inline-block;font-size:21px;border-bottom:1px solid #171717;margin:22px 0}.muted{color:#777;font-size:14px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}label{display:block;font-size:14px;font-weight:500}input,select,textarea{width:100%;padding:13px 0;border:0;border-bottom:1px solid #bbb;border-radius:0;background:transparent;display:block;line-height:1.5;color:#171717}textarea{resize:vertical;margin-top:12px}.contact form>label{margin-top:25px}.form-note{font-size:12px;color:#777;margin:23px 0}#emailDraft[hidden]{display:none}.empty-projects{padding:35px;background:#f3f3f3}.case-main{padding-block:50px 80px}.back-link{font-size:14px;border-bottom:1px solid #777}.case-heading{padding:50px 0}.case-heading h1{font-size:clamp(40px,5vw,70px)}.case-heading>p:not(.eyebrow){max-width:630px;font-size:19px;color:#666}.case-heading>span{font-size:13px;color:#777}.case-image{width:100%;padding:0;border:1px solid #ddd;text-align:left}.case-image img{width:100%}.case-info{display:grid;grid-template-columns:1fr 1fr;gap:70px;padding:55px 0;border-bottom:1px solid #ddd}.case-info h2{font-size:32px;letter-spacing:-1px}.case-info h3{font-size:24px;letter-spacing:-1px}.case-info p,.case-info li{color:#666;font-size:16px}.case-info li{margin:12px 0}.case-gallery{padding:65px 0}.case-gallery>div{display:grid;grid-template-columns:2fr 1fr;gap:35px;align-items:start;margin-top:35px}.case-gallery button{background:#f1f1f1;border:0;padding:22px;text-align:left;color:#666}.case-gallery img{max-height:500px;margin:auto}.case-gallery button span{display:block;margin-top:20px;font-size:14px}.case-cta{padding:50px;background:#f0f0f0}.case-cta h2{font-size:38px}.case-cta p{color:#666}@media(max-width:1000px){.about,.contact{gap:45px}.service-grid{gap:25px}.process-grid{grid-template-columns:1fr 1fr}}@media(max-width:750px){.service-grid,.about,.contact{grid-template-columns:1fr;gap:40px}.benefits{grid-template-columns:1fr 1fr;gap:0 15px}.process-grid{gap:20px}.about-copy p:not(.eyebrow){font-size:16px}.portrait{max-width:460px}.big-cta{padding:60px 0}.big-cta p:not(.eyebrow){font-size:16px}.contact-email{font-size:20px}.case-info{grid-template-columns:1fr;gap:30px;padding:35px 0}.case-gallery>div{grid-template-columns:1fr}.case-cta{padding:30px}.case-cta h2{font-size:31px}.case-heading{padding:35px 0}}@media(max-width:430px){.form-grid{grid-template-columns:1fr;gap:15px}.process-grid{grid-template-columns:1fr}.benefits{grid-template-columns:1fr}.hero h1{font-size:40px}}

/* Black and violet portfolio presentation */
body{background:#08060e;color:#f8f5ff;background-image:radial-gradient(ellipse at 80% 2%,#723ac52e,transparent 30%),radial-gradient(ellipse at 0% 48%,#57208c24,transparent 35%)}header{background:#090710ed;border-color:#ffffff14}.eyebrow{color:#bf99f1}h1 em{color:#cda6ff}.hero-intro,.hero-note,.section-title>p,.project-card>p,.service-group p,.process-step p,.about-copy p:not(.eyebrow),.contact>div>p:not(.eyebrow),.case-info p,.case-info li,.case-heading>p:not(.eyebrow),.case-cta p{color:#bcb5ca}.muted,.form-note,.project-meta,.tags span,.portrait span,.visual-caption,.service-group>span,.process-step>span,.case-heading>span{color:#aaa0bb}nav a:hover{color:#cda6ff}.button{background:linear-gradient(120deg,#823fd6,#6031a0);border-color:#9860da;border-radius:7px}.button:hover{background:#9250e1}.button.outline,.button.dark-outline{color:#f4edff;border-color:#755591;background:#100b1a}.button.outline:hover{background:#21122f}.section,footer,.case-info{border-color:#ffffff16}.filters button{color:#bfb3cd;border-color:#ffffff24}.filters button.active{background:#7a3dbb;border-color:#a869e4}.service-group{border-color:#8451b0}.service-group li,.benefits>div,.tags span{border-color:#ffffff20}.benefits span{color:#b57cdd}.project-links a,.text-link,.contact-email{border-color:#b684ec}.big-cta{background:radial-gradient(ellipse at 70% 20%,#61309180,transparent 65%),#100a19}.big-cta p:not(.eyebrow){color:#c4b5d6}input,select,textarea{color:#f6f0ff;border-color:#65516d}select option{background:#160c22;color:white}.empty-projects,.case-cta,.pending-preview{background:#150e20;color:#d6cae1;border-color:#ffffff20}.pending-preview span{color:#b8a8c8}dialog{background:#160e20;color:#f4edff}.dialog-close{color:white}.reveal{opacity:1;transform:none}.browser-bar{display:none}.browser-frame,.phone-frame{border:0;border-radius:0;background:transparent;box-shadow:none}.hero-visual{padding:20px 26px 100px 0}.hero-screen{transform:none;overflow:visible}.hero-screen img{border-radius:8px;box-shadow:0 25px 90px #783ccd30}.hero-phone{width:26%;right:0;bottom:40px;rotate:0;aspect-ratio:390/844;box-shadow:0 18px 40px #0008;border-radius:8px}.hero-tablet{position:absolute;width:32%;left:18px;bottom:25px;aspect-ratio:820/1100;overflow:hidden;border-radius:8px;box-shadow:0 18px 40px #0008}.hero-tablet img{width:100%;height:100%;object-fit:cover;object-position:top}.visual-caption{bottom:-6px}.device-switch{display:flex;gap:5px;margin-bottom:14px}.device-switch button{border:0;border-radius:5px;padding:8px 15px;font-size:12px;background:transparent;color:#b4a3c7}.device-switch button.active{background:#8a4acb;color:white}.project-stage{background:transparent;padding:0;min-height:0;border-radius:0;display:flex;justify-content:center;align-items:flex-start;height:330px}.preview-shot{display:block;padding:0;border:0;background:transparent;max-width:100%;height:100%;overflow:hidden;transition:transform .25s}.preview-shot:hover{transform:translateY(-3px)}.preview-shot img{width:100%;height:100%;object-fit:cover;object-position:top;border-radius:6px}.project-stage[data-view="desktop"] .preview-shot{width:100%}.project-stage[data-view="tablet"] .preview-shot{aspect-ratio:820/1100}.project-stage[data-view="mobile"] .preview-shot{aspect-ratio:390/844}.case-image{border:0;background:transparent}.case-gallery>div{grid-template-columns:2fr 1fr 1fr;gap:22px}.case-gallery button{padding:0;background:transparent;color:#c5b4d5}.case-gallery img{max-height:500px}.case-gallery button span{margin-top:12px}.project-links{flex-wrap:wrap}.project-meta{gap:12px}.button.white{background:#f4eaff;color:#2d1049}@media(max-width:750px){.case-gallery>div{grid-template-columns:1fr}.project-stage{height:300px}.hero-visual{padding-bottom:115px}.hero-tablet{bottom:28px}.hero-phone{bottom:40px}}

.project-stage[data-view="desktop"] .preview-shot{height:auto;align-self:center}.project-stage[data-view="desktop"] .preview-shot img{height:auto;object-fit:contain}.project-stage[data-view="tablet"] .preview-shot img,.project-stage[data-view="mobile"] .preview-shot img{object-fit:contain}

.device-composition{position:relative;display:block;height:auto;aspect-ratio:1.28;overflow:visible;padding:0 0 20px}.device-composition button{padding:0;background:transparent;border:0;text-align:center;color:#c9b5e0;transition:transform .25s}.device-composition button:hover{transform:translateY(-4px)}.device-composition img{width:100%;height:100%;object-fit:cover;object-position:top;border-radius:5px}.composition-desktop{position:absolute;left:5%;top:3%;width:90%;height:60%;box-shadow:0 10px 45px #0008}.composition-tablet{position:absolute;left:1%;bottom:7%;width:31%;aspect-ratio:820/1100;z-index:2;box-shadow:0 15px 35px #000b}.composition-mobile{position:absolute;right:2%;bottom:4%;width:22%;aspect-ratio:390/844;z-index:3;box-shadow:0 15px 35px #000b}.device-composition button>span{display:block;font-size:10px;letter-spacing:1px;margin-top:5px}.device-composition .composition-desktop img{object-fit:contain;background:#100b19}.unavailable-device{display:flex;align-items:center;justify-content:center;background:#1c1029;border:1px solid #593573;border-radius:5px;color:#b49bc9;font-size:11px;text-align:center}@media(max-width:750px){.device-composition{height:auto;aspect-ratio:1.28}}
