:root{--blue:#2563eb;--blue-deep:#1d4ed8;--blue-soft:#eff6ff;--navy:#0f172a;--slate:#475569;--line:#e2e8f0;--mist:#f8fafc;--shadow-tight:0 10px 35px #0f172a0a;--shadow-soft:0 20px 60px #0f172a14;--shadow-blue:0 16px 42px #2563eb3d;--motion-fast:.18s ease;--motion-page:.52s cubic-bezier(.16, 1, .3, 1);--motion-section:.68s cubic-bezier(.16, 1, .3, 1);--motion-card:.62s cubic-bezier(.16, 1, .3, 1);color:var(--navy);font-synthesis:none;text-rendering:geometricprecision;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#fff;font-family:Roboto,Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-weight:400;line-height:1.5}*{box-sizing:border-box}html{scroll-behavior:smooth;scrollbar-gutter:stable;overflow-x:clip}body{background:#fff;min-width:320px;max-width:100%;margin:0;overflow-x:clip}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline-offset:3px;outline:3px solid #2563eb47}button,input,textarea,select{font:inherit}.app-shell{background:#fff;max-width:100%;min-height:100vh;overflow-x:clip}.route-pending{z-index:100;color:var(--blue);font-weight:900;position:fixed;top:1rem;right:1rem}.site-header,.site-footer,.hero,.section,.page{width:min(100% - 32px,1280px);margin-inline:auto}.site-header{z-index:50;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#fffffff2;border-bottom:1px solid #e2e8f0b3;grid-template-columns:1fr auto 1fr;align-items:center;gap:1rem;min-height:72px;display:grid;position:sticky;top:0}.desktopNav,.site-footer nav,.button-row{flex-wrap:wrap;align-items:center;gap:.85rem;display:flex}.desktopNav{justify-content:center;gap:2rem}.desktopActions{justify-self:end;align-items:center;gap:.75rem;display:flex}.site-header nav a,.site-footer nav a{color:var(--slate);font-size:.92rem;font-weight:800;transition:color .18s,background-color .18s;position:relative}.site-header nav a:after{content:"";transform-origin:0;height:2px;transition:transform var(--motion-fast);background:currentColor;border-radius:999px;position:absolute;bottom:-4px;left:0;right:0;transform:scaleX(0)}.site-header nav a:hover,.site-footer nav a:hover{color:var(--blue)}.site-header nav a:hover:after,.site-header nav a:focus-visible:after{transform:scaleX(1)}.brand{color:var(--navy);justify-self:start;align-items:center;gap:.75rem;font-weight:900;display:inline-flex}.brandLogo,.brandLogoIcon{display:inline-flex}.brandLogoIcon{width:44px;height:44px;filter:drop-shadow(var(--shadow-blue));flex:none}.brandWordmark{color:var(--navy);align-content:center;gap:.2rem;line-height:1;display:grid}.brandWordmark span:first-child{letter-spacing:.28em;font-size:1.1rem;font-weight:500}.brandWordmark span:last-child{color:var(--blue);letter-spacing:.5em;font-size:.7rem;font-weight:500}.brand-mark{background:linear-gradient(135deg, var(--blue), var(--blue-deep));color:#fff;width:44px;height:44px;box-shadow:var(--shadow-blue);border-radius:12px;place-items:center;font-size:1rem;font-weight:600;display:grid}.mobileToggle{justify-self:end;display:none}.mobileMenu{z-index:45;border-bottom:1px solid var(--line);box-shadow:var(--shadow-soft);transition:transform var(--motion-fast);visibility:hidden;pointer-events:none;background:#fff;display:none;position:fixed;inset:72px 0 auto;transform:translateY(-10px)}.mobileMenu.open{visibility:visible;pointer-events:auto;transform:translateY(0)}.mobileMenu nav{gap:.5rem;width:min(100% - 32px,1280px);margin-inline:auto;padding-block:1.25rem;display:grid}.mobileMenu nav a:not(.button){color:var(--navy);border-radius:12px;padding:.9rem .8rem;font-size:1rem;font-weight:900}.mobileMenu nav a:not(.button):hover{background:var(--blue-soft);color:var(--blue)}.button{cursor:pointer;border:1px solid #0000;border-radius:10px;justify-content:center;align-items:center;gap:.5rem;min-height:44px;padding:.75rem 1rem;font-size:.92rem;font-weight:900;line-height:1;transition:transform .18s,border-color .18s,background-color .18s,color .18s;display:inline-flex}.button:hover{transform:translateY(-1px)}.button:disabled{cursor:not-allowed;opacity:.58;transform:none}.button.primary{background:var(--blue);color:#fff;box-shadow:var(--shadow-blue)}.button.secondary,.button.small{border-color:var(--line);color:var(--navy);background:#fff}.button.secondary:hover,.button.small:hover{color:var(--blue);border-color:#2563eb59}.button.ghost{color:var(--blue);background:0 0}.inlineLink{color:var(--blue);text-underline-offset:3px;cursor:pointer;background:0 0;border:0;padding:0;font-weight:900;text-decoration:underline}.button.small{justify-self:end;min-height:40px;padding:.65rem .9rem}.hero{border-bottom:1px solid #e2e8f0b3;grid-template-columns:minmax(0,.86fr) minmax(18rem,1.14fr);align-items:center;gap:clamp(2rem,5vw,5rem);min-height:620px;padding-block:clamp(3.5rem,7vw,5.5rem);display:grid;position:relative;overflow:hidden}.hero-backdrop{z-index:-1;content:"";background:radial-gradient(circle at 78% 18%, #2563eb1f, transparent 31%), linear-gradient(180deg, #fff 0%, var(--mist) 100%);position:absolute;inset:0 calc(50% - 50vw)}.hero-glow{z-index:-1;filter:blur(48px);background:#2563eb0d;border-radius:999px;width:24rem;height:24rem;position:absolute;top:6rem;right:0}.hero-copy{z-index:2;max-width:44rem;position:relative}.hero h1,.page h1{max-width:760px;color:var(--navy);letter-spacing:0;margin:0;font-size:clamp(2.15rem,6vw,4.25rem);font-weight:900;line-height:1.02}.hero-copy>p:not(.eyebrow),.section-head p,.split p,.page p,.about-section p,.cta-section p{max-width:64ch;color:var(--slate);font-size:1rem;line-height:1.75}.eyebrow{background:var(--blue-soft);width:fit-content;color:var(--blue);border-radius:999px;margin:0 0 1rem;padding:7px 11px;font-size:.8rem;font-weight:800;line-height:1.2;display:inline-flex}.hero-art{min-height:520px;position:relative;transform:translateZ(0)}.dot-grid{opacity:.7;background-image:radial-gradient(circle,#2563eb6b 1.2px,#0000 1.2px);background-size:18px 18px;width:260px;height:190px;position:absolute;top:0;right:4rem}.brandScene{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.service-card,.product-card,.post-card,.post-row,.project-form,.profile-card,.process-panel,.cta-section>div{border:1px solid var(--line);box-shadow:var(--shadow-tight);background:#fff;border-radius:18px}.brandScene>*{transform-box:fill-box;transform-origin:50%;transition:transform var(--motion-card), filter var(--motion-fast), opacity var(--motion-fast)}.mark-hover:hover .brandScene{filter:saturate(1.08)}.mark-hover:hover .sceneWireBack{transform:translate(10px,-10px)}.mark-hover:hover .sceneWireMain{transform:translate(-8px,8px)}.mark-hover:hover .sceneSlab,.mark-hover:hover .sceneTop,.mark-hover:hover .sceneSide{transform:translateY(-8px)scale(1.018)}.mark-hover:hover .sceneSmall,.mark-hover:hover .sceneSmallCore{transform:translate(-8px,-6px)}.mark-hover:hover .sceneWireLeft{transform:translate(-7px,8px)}.mark-hover:hover .sceneNode,.mark-hover:hover .sceneNodeLines,.mark-hover:hover .sceneNodeCore{transform:translate(7px,-5px)}.adminBar{z-index:30;width:min(100% - 32px,1280px);box-shadow:var(--shadow-tight);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#fffffff0;border:1px solid #2563eb33;border-radius:16px;justify-content:center;align-items:center;gap:.75rem;margin:0 auto;padding:.65rem .8rem;display:flex;position:sticky;top:88px}.editableText{vertical-align:top;gap:.45rem;min-width:min(100%,18rem);display:inline-grid}.editableText input,.editableText textarea{width:100%;min-width:min(100%,18rem);color:var(--navy);font:inherit;letter-spacing:0;background:#fff;border:2px solid #2563eb47;border-radius:12px;padding:.7rem .8rem}.editableText textarea{resize:vertical}.section,.page{padding-block:clamp(56px,7vw,96px)}.section-head{margin-bottom:2rem}.row-head{justify-content:space-between;align-items:end;gap:1.5rem;display:flex}.section h2,.page h2,.split h2,.cta-section h2{max-width:800px;color:var(--navy);letter-spacing:0;margin:0;font-size:clamp(1.9rem,4vw,3rem);font-weight:900;line-height:1.08}.service-grid,.process-grid,.post-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;display:grid}.service-card{min-height:190px;padding:1.35rem;transition:transform .18s,border-color .18s,box-shadow .18s}.service-card:hover,.product-card:hover,.post-card:hover,.profile-card:hover{box-shadow:var(--shadow-soft);border-color:#2563eb47;transform:translateY(-3px)}.icon{background:var(--blue-soft);width:44px;height:44px;color:var(--blue);border:1px solid #2563eb33;border-radius:12px;place-items:center;display:inline-grid}.service-card svg,.icon svg{width:1.35rem;height:1.35rem}.service-card h3,.product-card h3,.post-card h3,.profile-card h3,.process-panel h3{color:var(--navy);margin:1rem 0 .5rem;font-weight:900;line-height:1.2}.service-card p,.product-card p,.post-card p,.profile-card p{color:var(--slate);margin:0;font-size:.92rem;line-height:1.65}.process-panel{background:#f8fafcb3;grid-template-columns:minmax(0,1fr) 340px;gap:1.25rem;margin-top:2rem;padding:1.5rem;display:grid}.process-panel .process-grid{grid-template-columns:repeat(4,minmax(0,1fr));margin-top:1.25rem}.process-panel aside{background:linear-gradient(135deg, var(--blue), var(--blue-deep));color:#fff;box-shadow:var(--shadow-blue);border-radius:18px;padding:1.5rem}.process-panel aside .icon{color:#fff;background:#ffffff29;border-color:#fff3}.process-panel aside h3{color:#fff}.process-panel aside .processList{gap:.7rem;margin:1rem 0 0;padding:0;list-style:none;display:grid}.processList>*{font-size:.9rem;font-weight:800;line-height:1.5}.split,.start-page,.about-section{grid-template-columns:minmax(0,.95fr) minmax(20rem,1.05fr);align-items:center;gap:2rem;display:grid}.split{background:linear-gradient(90deg, #fff, var(--mist));border-block:1px solid #e2e8f0b3}.product-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;display:grid}.product-card{align-content:start;min-height:260px;padding:1.35rem;transition:transform .18s,border-color .18s,box-shadow .18s;display:grid}.product-card .button{align-self:end;width:fit-content;margin-top:1.25rem}.link-list{gap:.8rem;display:grid}.link-list>*,.post-row{border:1px solid var(--line);color:var(--navy);box-shadow:var(--shadow-tight);background:#fff;border-radius:14px;padding:1rem;font-weight:900}.about-section{border-block:1px solid #e2e8f0b3}.profile-card{text-align:center;justify-self:end;max-width:340px;padding:1.5rem;position:relative;overflow:hidden}.profile-avatar{border:1px solid var(--line);background:var(--blue-soft);object-fit:cover;width:136px;height:136px;box-shadow:var(--shadow-tight);border-radius:999px;margin:0 auto 1.25rem}.profile-dots{width:180px;height:128px;top:-1rem;left:-1rem;right:auto}.post-list,.post-grid{gap:1rem;display:grid}.post-list{grid-template-columns:1fr;margin-top:2rem}.post-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.post-row,.post-card{gap:.5rem;display:grid}.post-card{min-height:220px;padding:1.35rem}.post-row span,.post-card span{color:var(--blue);font-size:.78rem;font-weight:900}.cta-section{padding-top:24px}.cta-section>div{padding:clamp(2rem,5vw,3rem);position:relative;overflow:hidden}.cta-section>div:after{content:"";background:#2563eb29;border-radius:999px;width:220px;height:220px;position:absolute;bottom:-4rem;right:-3rem}.project-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;padding:1.25rem;display:grid}.project-form label{color:var(--navy);gap:.4rem;font-size:.92rem;font-weight:800;display:grid}.project-form input,.project-form textarea,.project-form select,.field{border:1px solid var(--line);width:100%;min-height:42px;color:var(--navy);background:#fff;border-radius:10px;padding:.75rem}.project-form input:focus,.project-form textarea:focus,.project-form select:focus{border-color:var(--blue);outline:2px solid var(--blue-soft)}.project-form .wide,.form-message{grid-column:1/-1}.form-message{border-left:3px solid var(--blue);background:var(--blue-soft);color:var(--navy);margin:0;padding:.75rem .85rem;font-weight:800}.project-form .check{flex-direction:row;align-items:center;display:flex}.check input{width:auto}.admin-page{width:min(100% - 32px,1280px)}.admin-head{justify-content:space-between;align-items:end;gap:2rem;margin-bottom:2rem;display:flex}.admin-head h1{max-width:760px}.admin-grid,.dashboard-grid{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:1rem;display:grid}.admin-card{border:1px solid var(--line);box-shadow:var(--shadow-tight);background:#fff;border-radius:18px;padding:1.25rem}.admin-card h2{color:var(--navy);margin-block:.25rem 1rem;font-size:clamp(1.25rem,2vw,1.65rem)}.admin-card select,.admin-form input,.admin-form textarea,.admin-form select{border:1px solid var(--line);width:100%;color:var(--navy);font:inherit;letter-spacing:0;background:#fff;border-radius:12px;padding:.75rem .85rem}.admin-form{gap:.9rem;margin-top:1rem;display:grid}.admin-form label{color:var(--slate);gap:.35rem;font-size:.82rem;font-weight:900;display:grid}.admin-login,.client-login{max-width:720px;margin-inline:auto}.client-auth{grid-template-columns:minmax(0,.9fr) minmax(360px,.72fr);align-items:center;gap:clamp(1.25rem,4vw,3rem);min-height:min(720px,100vh - 180px);display:grid}.client-auth-copy{position:relative}.client-auth-copy:after{opacity:.65;content:"";background-image:radial-gradient(circle,#2563eb61 1.2px,#0000 1.2px);background-size:18px 18px;width:min(100%,360px);height:180px;margin-top:2rem;display:block}.auth-tabs{border:1px solid var(--line);background:linear-gradient(135deg, #fff, var(--mist));box-shadow:var(--shadow-tight);border-radius:20px;padding:clamp(1rem,3vw,1.35rem)}.auth-tabs [role=tablist]{background:#fff;border:1px solid #e2e8f0e0;border-radius:14px;grid-template-columns:repeat(3,minmax(0,1fr));gap:.45rem;padding:.35rem;display:grid}.auth-tabs [role=tab]{min-height:42px;color:var(--slate);letter-spacing:0;border-radius:10px;font-weight:900}.auth-tabs [role=tab][data-active=true]{background:var(--blue-soft);color:var(--blue)}.auth-tabs [role=tabpanel]{padding-top:1rem}.client-dashboard{gap:1.25rem;display:grid}.client-hero{border:1px solid var(--line);background:linear-gradient(135deg, #fff, var(--mist));box-shadow:var(--shadow-tight);border-radius:20px;justify-content:space-between;align-items:center;gap:2rem;padding:clamp(1.25rem,4vw,2rem);display:flex}.client-hero p{max-width:760px}.profile-summary{position:relative;overflow:hidden}.profile-summary:after{content:"";background:#2563eb1f;border-radius:999px;width:150px;height:150px;position:absolute;top:-54px;right:-54px}.profile-icon{background:var(--blue-soft);width:48px;height:48px;color:var(--blue);border:1px solid #2563eb33;border-radius:14px;place-items:center;display:grid}.upload-list{gap:.8rem;display:grid}.upload-module{border:1px solid var(--line);border-radius:14px;grid-template-columns:auto 1fr;gap:.75rem;padding:.9rem;display:grid}.upload-module strong{color:var(--navy)}.upload-module p{margin:.2rem 0}.upload-module small{color:var(--slate);font-weight:800}.upload-form{flex-wrap:wrap;gap:.6rem;margin-top:.75rem;display:flex}.upload-form input[type=file]{border:1px solid var(--line);border-radius:10px;max-width:100%;padding:.6rem}.admin-files{border-top:1px solid var(--line);margin-top:1.25rem;padding-top:1.25rem}.file-list{gap:.55rem;margin:.75rem 0 0;padding:0;list-style:none;display:grid}.file-list li{border:1px solid var(--line);border-radius:12px;justify-content:space-between;align-items:center;gap:.75rem;padding:.7rem;display:flex}.file-list span{overflow-wrap:anywhere;color:var(--navy);font-weight:800}.icon-button{border:1px solid var(--line);width:36px;height:36px;color:var(--blue);cursor:pointer;background:#fff;border-radius:10px;flex:none;place-items:center;display:inline-grid}.icon-button.danger{color:#dc2626}.comment-admin-list,.comment-list{gap:.75rem;display:grid}.comment-admin-list{margin-top:1rem}.comment-admin-item,.comment-item{border:1px solid var(--line);background:#fff;border-radius:14px;padding:.85rem}.comment-admin-item>div:first-child{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.comment-admin-item span{background:var(--blue-soft);color:var(--blue);text-transform:uppercase;border-radius:999px;padding:.28rem .5rem;font-size:.72rem;font-weight:900}.comment-admin-item p,.comment-item p{color:var(--slate);margin:.5rem 0;line-height:1.65}.comment-admin-item small{color:var(--slate);overflow-wrap:anywhere;margin-bottom:.75rem;font-weight:800;display:block}.comments-section{border-top:1px solid var(--line);margin-top:3rem;padding-top:2rem}.agreementModal h2{color:var(--navy);margin:0;font-size:clamp(1.4rem,3vw,2rem);line-height:1.08}.agreementModal .eyebrow{margin-bottom:.65rem}.agreementModal p{color:var(--slate);margin:.35rem 0 0;font-size:.92rem;line-height:1.65}.agreementSections{gap:1.2rem;padding-right:.75rem;display:grid}.agreementTitle{color:var(--navy);margin:0;font-size:1rem;font-weight:900}.agreementActions{border-top:1px solid var(--line);justify-content:flex-end;margin-top:1.25rem;padding-top:1rem;display:flex}.comment-form{margin-top:1rem}.steps{flex-wrap:wrap;gap:.75rem;margin-top:1.25rem;padding:0;list-style:none;display:flex}.steps>*{background:var(--blue-soft);color:var(--blue);border-radius:999px;padding:.5rem .75rem;font-size:.82rem;font-weight:900}.article-page article{color:var(--slate);margin-top:2rem;font-size:1.05rem;line-height:1.75}.article-image{border:1px solid var(--line);object-fit:cover;width:100%;max-height:520px;box-shadow:var(--shadow-tight);border-radius:18px;margin-top:1.5rem;display:block}.snapshot-preview{background:var(--navy);color:#fff;border-radius:16px;max-height:60vh;padding:1rem;overflow:auto}.site-footer{border-top:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:1rem;padding-block:2rem;display:flex}.site-footer p{color:var(--slate);margin:.35rem 0 0}.status-line{width:min(100% - 32px,1280px);color:var(--blue);margin:0 auto;padding-block:.75rem;font-weight:900}.status-line.error{color:#dc2626}.app-shell.is-loading .page-transition{opacity:0;transform:translateY(10px)}.app-shell.is-ready .page-transition{animation:pageIn var(--motion-page) both}.app-shell.is-ready .page-transition>section{animation:sectionIn var(--motion-section) both}.app-shell.is-ready .page-transition>section:first-of-type{animation-name:sectionHeroIn}.app-shell.is-ready .page-transition>section:nth-of-type(2){animation-delay:90ms}.app-shell.is-ready .page-transition>section:nth-of-type(3){animation-delay:.15s}.app-shell.is-ready .page-transition>section:nth-of-type(4){animation-delay:.2s}.app-shell.is-ready .page-transition>section:nth-of-type(n+5){animation-delay:.24s}.app-shell.is-ready .page-transition :where(.service-card,.product-card,.post-card,.profile-card,.link-list>*){animation:cardIn var(--motion-card) both;animation-delay:.11s}@media (width<=1040px){.site-header{grid-template-columns:1fr auto}.desktopNav,.desktopActions{display:none}.mobileToggle,.mobileMenu{display:block}.hero,.process-panel,.split,.start-page,.about-section,.client-auth,.admin-grid,.dashboard-grid{grid-template-columns:1fr}.hero-art{min-height:360px;margin-top:-2.5rem}.service-grid,.product-grid,.process-panel .process-grid,.post-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.profile-card{justify-self:start}.admin-head,.client-hero{flex-direction:column;align-items:start}.client-auth{min-height:auto}}@media (width<=680px){.site-header,.site-footer{width:min(100% - 24px,1280px)}.site-header{min-height:auto;padding-block:.75rem}.brand span:last-child{display:none}.button.small{text-align:center;max-width:190px}.hero{gap:1.5rem;min-height:auto;padding-block:3rem 2.25rem}.hero h1,.page h1{font-size:clamp(2.25rem,13vw,2.85rem)}.service-grid,.product-grid,.process-panel .process-grid,.post-grid,.project-form,.client-auth,.admin-grid,.dashboard-grid{grid-template-columns:1fr}.client-auth-copy:after{height:96px;margin-top:1.25rem}.auth-tabs [role=tablist]{grid-template-columns:1fr}.client-hero .mantine-Group-root,.client-hero .mantine-Button-root{width:100%}.hero-copy>p:not(.eyebrow),.section-head p,.split p,.page p,.about-section p,.cta-section p{font-size:.96rem;line-height:1.65}.hero-art{min-height:300px;margin-top:-3.75rem}.brandScene{width:122%;left:-11%}.row-head{flex-direction:column;align-items:start}}@keyframes pageIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes sectionHeroIn{0%{opacity:0;transform:translateY(18px)scale(.99)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes sectionIn{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes cardIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto;transition-duration:1ms;animation-duration:1ms;animation-iteration-count:1}}
