:root{--white: #fff;--paper: #fff;--ink: #252525;--muted: #555;--graphite: #393938;--pink: #c796b7;--blue: #2f68f5;--blue-text: #2155cb;--blue-dark: #204cb8;--line: #a5a5a5;--font: Arial, Helvetica, sans-serif;--content-width: 1100px;--section-space: clamp(2.5rem, 4vw, 4rem);--gap: 1rem;--radius: 7px;--body-size: 1rem;--heading-size: 1.5rem}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:7rem}body{margin:0;font:var(--body-size)/1.5 var(--font);background:var(--white);color:var(--ink);-webkit-font-smoothing:antialiased}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline}:focus-visible{outline:3px solid var(--blue-text);outline-offset:5px}.site-header :focus-visible,.projects :focus-visible,.services :focus-visible{outline-color:#fff}section:focus,main:focus,.process:focus{outline:none}h1,h2,h3,h4,p{margin:0}h1,h2,h3,h4{line-height:1.2}p{overflow-wrap:break-word}.container{width:min(var(--content-width),100% - 2.5rem);margin-inline:auto}.section{padding-block:var(--section-space)}.code-heading{font-size:var(--heading-size);color:var(--blue-text);text-align:center;margin-bottom:1.8rem;font-weight:700;overflow-wrap:anywhere}.eyebrow{font-size:.78rem;letter-spacing:.06em;font-weight:600}.button{min-height:46px;display:inline-flex;align-items:center;justify-content:center;padding:.7rem 1.3rem;color:#fff;border:1px solid var(--blue-text);background:var(--blue-text);border-radius:2px;font-size:.95rem;font-weight:600;transition:background .2s}.button:hover{background:var(--blue-dark);text-decoration:none}.button-outline{background:transparent;color:var(--ink);border-color:var(--ink)}.button-outline:hover{background:#ffffff45}.skip-link{position:fixed;top:-100px;left:1rem;z-index:30;padding:1rem;background:#fff;color:var(--ink)}.skip-link:focus{top:1rem}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}app-root,app-header,app-projects,app-contact,app-line-icon{display:block}app-line-icon svg{display:block;width:100%;height:100%}app-header{position:sticky;top:0;z-index:20}.site-header{background:var(--graphite);color:#fff}.header-inner{min-height:90px;position:relative;display:flex;align-items:center;justify-content:space-between;gap:1rem}.brand{width:clamp(160px,44vw,210px);display:block;flex-shrink:0}.brand img,.footer-brand img{display:block;width:100%;height:auto}.menu-toggle{display:flex;align-items:center;gap:.6rem;min-height:44px;border:1px solid #a6a6a6;background:transparent;color:#fff;padding:.5rem .7rem}.menu-toggle span{font-size:1.2rem}#main-navigation{display:none;position:absolute;top:100%;left:-1.25rem;right:-1.25rem;background:var(--graphite);padding:.5rem 1.25rem 1.25rem;border-top:1px solid #646464}#main-navigation.is-open{display:flex;flex-direction:column}#main-navigation a{display:flex;align-items:center;min-height:44px;padding:.6rem .75rem;text-transform:uppercase;font-size:.85rem;border:1px solid #50504f;border-top:0}.hero{--hero-art-opacity: .65;--hero-art-line: color-mix(in srgb, var(--blue) 65%, var(--pink));--hero-art-soft: color-mix(in srgb, var(--white) 46%, var(--pink));--hero-art-tint: color-mix(in srgb, var(--blue) 12%, var(--pink));--hero-motion-duration: 4.8s;--hero-motion-distance: 12px;--hero-motion-rotation: 3deg;position:relative;isolation:isolate;overflow:clip;background:var(--pink);min-height:460px;display:grid;align-items:center;padding-block:3rem;text-align:center}.hero-art{position:absolute;inset:0;pointer-events:none;-webkit-user-select:none;user-select:none;opacity:var(--hero-art-opacity)}.hero-art svg{position:absolute;width:160px;height:auto;stroke-width:1.5;animation:hero-settle var(--hero-motion-duration) ease-out both}.hero-orbit{--hero-rest-angle: 0deg;top:-95px;left:-85px}.hero-art .hero-window{--hero-rest-angle: -9deg;width:115px;right:-38px;bottom:-27px;transform:rotate(var(--hero-rest-angle))}.hero-window .hero-shape-tint,.hero-window .hero-shape-line{display:none}.hero-shape-soft{stroke:var(--hero-art-soft);stroke-width:2}.hero-shape-line{stroke:var(--hero-art-line);stroke-linecap:round;stroke-linejoin:round}.hero-shape-solid{fill:var(--hero-art-line)}.hero-shape-tint{fill:var(--hero-art-tint)}@keyframes hero-settle{0%{transform:translateY(var(--hero-motion-distance)) rotate(calc(var(--hero-rest-angle) - var(--hero-motion-rotation)))}to{transform:translateY(0) rotate(var(--hero-rest-angle))}}.hero-copy{position:relative;max-width:850px}.hero h1{font-size:clamp(2rem,4.1vw,3.3rem);font-weight:500;line-height:1.14;margin:1.2rem auto;max-width:800px}.hero-description{max-width:680px;margin-inline:auto;font-size:1.05rem}.hero-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:.8rem;margin-top:1.6rem}.intro-copy{max-width:900px;margin-inline:auto}.intro-copy p{line-height:1.4}.intro-copy p+p{margin-top:1rem}.process{margin-top:3rem}.process-grid{list-style:none;margin:0;padding:0;display:grid;gap:var(--gap)}.process-card{border:1px solid var(--line);padding:1.3rem .8rem 1rem;text-align:center;display:flex;flex-direction:column;align-items:center}.process-card app-line-icon{width:100px;height:100px;color:var(--blue);margin-bottom:.5rem}.process-card h4{font-size:.85rem;text-transform:uppercase;margin-bottom:.7rem}.process-card p{font-size:.95rem;line-height:1.35}.step-label{margin-top:auto;padding-top:1rem;color:var(--blue-text);font-size:.8rem;font-weight:600}.projects{background:var(--blue);color:#fff;padding-block:2rem 2.5rem}.projects .code-heading{color:#fff;margin-bottom:1.5rem}.project-carousel{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;gap:.1rem}.carousel-arrow{position:relative;z-index:5;border:0;background:transparent;color:#fff;width:44px;min-height:56px;font-size:2.8rem;font-weight:700;line-height:1}.carousel-arrow:hover{background:#0000001a;border-radius:var(--radius)}.project-stage{display:grid;position:relative;min-width:0;min-height:450px;isolation:isolate}.project-card{grid-area:1/1;align-self:center;justify-self:center;width:100%;background:#fff;color:var(--ink);border-radius:var(--radius);overflow:hidden;transform:scale(.9);box-shadow:0 8px 25px #00000026;transition:transform .3s,opacity .3s}.project-card.is-before{transform:translate(-5%) scale(.88);z-index:0}.project-card.is-after{transform:translate(5%) scale(.88);z-index:1}.project-card.is-active{z-index:3;transform:none}.project-info{padding:1rem}.project-info h3{font-size:1.15rem;margin-bottom:.5rem}.project-info p{color:var(--muted);font-size:.9rem;line-height:1.4}.project-info .project-category{font-size:.75rem;margin-bottom:.4rem}.project-link{display:flex;align-items:center;gap:.4rem;width:fit-content;min-height:44px;margin-top:.4rem;color:var(--blue-text);font-weight:600;font-size:.9rem;text-decoration:underline}.projects .project-link:focus-visible{outline-color:var(--blue-text)}.status{display:inline-block;color:#61415a;background:#f1e4ed;padding:.25rem .55rem;margin-top:.7rem;font-size:.8rem;border-radius:2px}.carousel-position,.project-note{text-align:center;font-size:.85rem;margin-top:1rem}.project-note{max-width:600px;margin-inline:auto;margin-top:.6rem}.preview{height:210px;padding:1rem 1rem 0;overflow:hidden}.preview.tourism{background:#d3dfcf}.preview.gym{background:var(--graphite)}.preview.furniture{background:#ccd6ed}.mini-browser{height:100%;overflow:hidden;border-radius:4px 4px 0 0;box-shadow:0 4px 15px #00000014}.site-screenshot{position:relative;height:calc(100% - 20px);background:var(--white)}.site-screenshot img{object-fit:contain}.browser-bar{height:20px;display:flex;align-items:center;justify-content:space-between;padding:0 .6rem;background:#fff;font-size:.45rem;color:#555}.browser-bar span:first-child{letter-spacing:.15em}.services{background:var(--graphite);color:#fff}.services .code-heading{color:#fff}.service-grid{display:grid;gap:1.4rem}.service-card{display:grid;grid-template-columns:35% minmax(0,1fr);background:#fff;color:var(--ink)}.service-visual{background:var(--pink);display:grid;place-items:center;padding:.6rem}.service-visual app-line-icon{width:min(100%,110px);color:#3c3c3b}.service-copy{padding:1.1rem}.service-copy h3{font-size:1.25rem;margin-bottom:.6rem}.service-copy p{font-size:.92rem;line-height:1.4}.service-copy .service-detail{font-size:.8rem;margin-top:.9rem;color:var(--muted)}.scope-note{text-align:center;margin:1.8rem auto 0;max-width:750px;font-size:.9rem;color:#efefef}.contact .eyebrow{display:none}.contact-inner{display:grid;gap:2rem}.contact .code-heading{text-align:left;margin-bottom:1rem}.contact-inner>div>p{max-width:480px}.contact-panel{border-left:2px solid var(--pink);padding-left:1.5rem}.contact-panel h3{font-size:1.15rem;margin-bottom:.6rem}.contact-panel>p{color:var(--muted)}.contact-panel .button{margin-top:1rem;gap:.4rem}.email-link{display:block;width:fit-content;max-width:100%;min-height:44px;text-decoration:underline;color:var(--blue-text);overflow-wrap:anywhere;margin-top:1rem}.contact-panel .contact-detail{font-size:.9rem;margin-top:.6rem}.contact-panel .contact-hint{font-size:.85rem;margin-top:.5rem}.contact-address{display:block}.site-footer{border-top:1px solid #e8e8e8;padding-block:2.4rem 1rem}.footer-top{display:flex;flex-direction:column;align-items:center;gap:1.5rem}.footer-brand{display:block;width:220px}.footer-top nav{display:flex;flex-wrap:wrap;justify-content:center;gap:0 1.3rem}.footer-top nav a{display:inline-flex;align-items:center;min-height:44px;font-size:.85rem}.footer-bottom{text-align:center;font-size:.8rem;color:var(--muted);display:flex;flex-wrap:wrap;justify-content:center;gap:.4rem 1rem;margin-top:2rem}@media(min-width:600px){.hero-art svg{width:240px}.hero-orbit{top:-140px;left:-95px}.hero-art .hero-window{width:175px;right:-50px;bottom:-35px}.hero-window .hero-shape-tint,.hero-window .hero-shape-line{display:initial}.container{width:min(var(--content-width),100% - 4rem)}.process-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.project-carousel{gap:1rem}.project-stage{min-height:400px}.project-card{width:82%}.project-card.is-before{transform:translate(-19%) scale(.86)}.project-card.is-after{transform:translate(19%) scale(.86)}.project-info{padding:1.2rem 1.5rem}.preview{height:210px}.service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.service-card:last-child{grid-column:1/-1;width:calc(50% - .7rem);justify-self:center}.service-card{grid-template-columns:1fr}.service-visual{min-height:130px}.contact-inner{grid-template-columns:1fr 1fr;gap:2.5rem}}@media(min-width:1000px){.container{width:min(var(--content-width),75%)}.header-inner{min-height:104px}.brand{width:210px}.menu-toggle{display:none}#main-navigation,#main-navigation.is-open{display:flex;flex-direction:row;position:static;padding:0;background:transparent;border:0}#main-navigation a{min-height:44px;font-size:.78rem;padding:.5rem .65rem;border:1px solid #50504f;border-right:0;white-space:nowrap}#main-navigation a:last-child{border-right:1px solid #50504f}.hero{min-height:450px}.hero-art svg{width:clamp(260px,23vw,360px)}.hero-orbit{top:-75px;left:-120px}.hero-art .hero-window{width:clamp(200px,18vw,280px);right:-75px;bottom:35px}.hero-copy{width:min(850px,75%)}.hero h1{font-size:2.8rem}.intro-copy{width:82%}.process-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.9rem}.process-card{min-height:260px}.process-card h4{font-size:.8rem}.process-card p{font-size:.9rem}.process{margin-top:3rem}.project-carousel{grid-template-columns:44px minmax(0,1fr) 44px;gap:1.5rem}.project-stage{min-height:360px}.project-card{width:78%}.project-card.is-before{transform:translate(-16%) scale(.87)}.project-card.is-after{transform:translate(16%) scale(.87)}.project-card:not(.is-active) .preview,.project-card:not(.is-active) .project-info{visibility:hidden}.preview{height:190px}.preview-title{font-size:1.7rem}.project-info{padding:1rem 1.5rem}.project-info h3{font-size:1.2rem}.project-info p{font-size:.9rem}.project-note{font-size:.8rem}.service-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem}.service-card:last-child{grid-column:auto;width:auto}.service-visual{min-height:150px}.footer-top{flex-direction:row;justify-content:space-between}.footer-brand{width:220px}.footer-top nav{gap:0 1rem}}@media(min-width:1250px){.service-card{grid-template-columns:38% minmax(0,1fr)}.service-visual{min-height:230px}.service-visual app-line-icon{width:100px}.header-inner{gap:2rem}#main-navigation a{font-size:.85rem;padding-inline:.85rem}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}
