@font-face{font-family:Geist;src:url('/redesign/assets/geist-medium.woff2') format('woff2');font-style:normal;font-weight:500;font-display:swap}
@font-face{font-family:Geist;src:url('/redesign/assets/geist-regular.woff2') format('woff2');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:Geist;src:url('/redesign/assets/geist-semibold.woff2') format('woff2');font-style:normal;font-weight:600;font-display:swap}
:root{--bg:#fff;--fg:#000;--muted:#61615e;--edge:2.2222vw;--top:1.8519vw;--ease:cubic-bezier(.22,1,.36,1);--line:color-mix(in srgb,var(--fg) 16%,transparent);font-family:Geist,Arial,sans-serif;font-weight:500;color:var(--fg);background:var(--bg);font-size:14px;line-height:22px;letter-spacing:.04em;font-synthesis:none}
*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden}body{background:var(--bg);transition:background-color .7s var(--ease),color .7s var(--ease)}button,input,select,textarea{font:inherit;letter-spacing:inherit;color:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{cursor:pointer;border:0;background:none;padding:0}button:disabled{cursor:default;opacity:.45}a,button{touch-action:manipulation}p,h1,h2,h3,figure{margin:0}p+p{margin-top:22px}h1,h2,h3{font:inherit;font-weight:500}img{display:block;max-width:100%}::selection{background:#d8dbd2;color:#000}:focus-visible{outline:1px solid currentColor;outline-offset:6px;border-radius:2px}input:focus-visible,textarea:focus-visible,select:focus-visible{outline-offset:1px}button:focus:not(:focus-visible),a:focus:not(:focus-visible),main:focus{outline:none}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.skip-link{position:fixed;top:8px;left:8px;z-index:150;background:white;padding:12px;transform:translateY(-150%)}.skip-link:focus{transform:none}
.site-header{position:fixed;top:var(--top);left:var(--edge);right:var(--edge);height:48px;z-index:70;display:flex;align-items:flex-start;justify-content:space-between;pointer-events:none;line-height:16px;letter-spacing:0}.site-header a,.site-header button{pointer-events:auto}.nav-left,.nav-right{display:flex;align-items:center;gap:28px;min-height:20px}.nav-right{gap:10px;margin-top:-9px}.nav-right a{padding:9px;border:1px solid transparent;border-radius:10px}.nav-right a.current{border-color:var(--line)}.nav-left a,.nav-right a{transition:opacity .2s}.nav-left a:hover,.nav-right a:hover{opacity:.85}.identity{position:absolute;left:50%;top:0;transform:translateX(-50%);text-align:center;white-space:nowrap;font-size:14px;line-height:16px;letter-spacing:0}.icon-button{width:44px;height:44px;align-items:center;justify-content:center}.icon-button svg{width:21px;fill:none;stroke:currentColor;stroke-width:1}.menu-toggle,.tray-toggle{display:none}.corners{position:fixed;left:var(--edge);right:var(--edge);bottom:var(--edge);z-index:39;display:flex;justify-content:space-between;gap:20px;pointer-events:none;line-height:16px;letter-spacing:0}.corners a{pointer-events:auto}.corners a:hover{text-decoration:underline;text-underline-offset:4px}.corners .quiet-links{display:flex;gap:20px}
.edge{height:7.7546vw;position:fixed;left:0;right:0;z-index:30;pointer-events:none}.edge-top{top:0}.edge-bottom{bottom:0;transform:rotate(180deg)}.edge i,.edge b{position:absolute;inset:0}.edge i:nth-child(1){backdrop-filter:blur(1.5px);-webkit-backdrop-filter:blur(1.5px);mask-image:linear-gradient(0deg,transparent,black 25%,black 50%,transparent 75%)}.edge i:nth-child(2){backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);mask-image:linear-gradient(0deg,transparent 25%,black 50%,black 75%,transparent)}.edge i:nth-child(3){backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);mask-image:linear-gradient(0deg,transparent 50%,black 75%)}.edge b{background:linear-gradient(180deg,var(--bg) 0%,color-mix(in srgb,var(--bg) 88%,transparent) 22%,color-mix(in srgb,var(--bg) 55%,transparent) 52%,color-mix(in srgb,var(--bg) 18%,transparent) 80%,transparent 100%)}
#main{position:fixed;inset:0;z-index:10;outline:0}.view{height:100%;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scrollbar-width:none}.view::-webkit-scrollbar{display:none}.view.is-entering{animation:view-in .62s var(--ease) both}.view.is-leaving{opacity:0;filter:blur(7px);transform:scale(.996);transition:opacity .18s ease,filter .2s ease,transform .2s ease}@keyframes view-in{from{opacity:0;filter:blur(7px);transform:scale(1.012)}to{opacity:1;filter:blur(0);transform:scale(1)}}
.gallery{display:flex;flex-direction:column;align-items:center;padding-top:5.795vw;padding-bottom:140px;gap:20px}.gallery-piece{display:block;position:relative;width:var(--piece-size, min(44.8vw,645px));aspect-ratio:1;flex:none;outline-offset:-10px}.gallery-art{width:100%;height:100%;display:flex;align-items:center;justify-content:center;position:relative;transition:transform .65s var(--ease),filter .5s var(--ease);will-change:transform}.gallery-art img{width:100%;height:100%;object-fit:contain}.gallery-piece:nth-child(1){--piece-size:37.786vw}.gallery-piece:nth-child(2){--piece-size:34.825vw}.gallery-piece:nth-child(3){--piece-size:44.346vw}.gallery-piece:nth-child(4){--piece-size:31.777vw}.gallery-piece:nth-child(5){--piece-size:49.626vw}.gallery-piece:nth-child(6){--piece-size:44.792vw}.gallery-piece:hover .gallery-art{transform:scale(1.025)}.gallery-piece figcaption{position:absolute;bottom:8%;left:0;right:0;text-align:center;font-size:11.2px;line-height:16px;letter-spacing:.045em;opacity:0;transition:opacity .3s}.gallery-piece:focus-visible figcaption{opacity:1}.gallery-piece .asset-computer{width:77%}.gallery-piece .asset-router{width:75%}.gallery-piece .asset-backup{width:82%}.gallery-piece .asset-laptop{width:96%}.gallery-piece .asset-laptop-black{width:100%}.gallery-end{text-align:center;padding:32px 0 24px;font-size:14px;line-height:22px}.gallery-end p{color:var(--muted)}.gallery-end a{display:inline-block;margin-top:12px;border-bottom:1px solid var(--line)}
.reveal{transition:opacity .4212s var(--ease),filter .52s var(--ease),transform .6188s var(--ease)}.reveal.waiting{opacity:0;filter:blur(7px);transform:scale(1.012)}.gallery-piece:first-child .gallery-art{animation:object-in 1.3s var(--ease) both}@keyframes object-in{from{opacity:0;filter:blur(12px);transform:scale(1.012)}to{opacity:1;filter:blur(0);transform:scale(1)}}
#hover-label{position:fixed;display:flex;align-items:center;gap:8px;z-index:100;pointer-events:none;height:27px;padding:0 12px;background:rgba(245,245,245,.72);backdrop-filter:blur(10px);color:#181818;border:1px solid rgba(0,0,0,.07);border-radius:17px;font-size:14px;line-height:16px;letter-spacing:0;opacity:0;transform:translate(-50%,-50%);transition:opacity .15s}#hover-label.visible{opacity:1}
.web-object{width:64%;aspect-ratio:.79;background:#e9e6dc;border-radius:3px;box-shadow:8px 13px 25px #0000001c,-1px 0 1px #d3cdbd;transform:rotate(-4deg);padding:6.5%;color:#302e26;display:flex;flex-direction:column;justify-content:space-between}.web-object .web-word{font-size:clamp(32px,5.8vw,82px);line-height:.82;letter-spacing:-.04em;font-weight:600}.web-object .web-top{font-size:10px;display:flex;justify-content:space-between}.web-object .web-bottom{font-size:11px;line-height:16px;display:flex;justify-content:space-between;gap:15px}.web-orbit{width:67%;aspect-ratio:1;align-self:center;border:1px solid #908a78;border-radius:50%;position:relative;transform:rotate(-20deg)}.web-orbit:before,.web-orbit:after{content:'';position:absolute;border:1px solid #908a78;border-radius:50%;inset:18% -20%}.web-orbit:after{inset:-20% 18%}
.dock{position:sticky;top:74px;margin:0 auto;z-index:28;height:64px;display:flex;justify-content:center;align-items:center;gap:12px;pointer-events:none}.dock a{pointer-events:auto;display:flex;align-items:center;justify-content:center;width:50px;height:50px;border-radius:9px;transition:transform .45s var(--ease),background .3s}.dock a:hover{transform:translateY(-6px) scale(1.18)}.dock a.current{background:#ffffff46}.dock img{width:100%;height:100%;object-fit:contain}.dock .web-object{width:30px;height:39px;padding:3px;box-shadow:none}.dock .web-word{font-size:8px}.dock .web-top,.dock .web-bottom,.dock .web-orbit{display:none}.service-page{padding-top:64px;padding-bottom:130px}.case-hero{position:relative;width:min(44.8vw,645px);height:min(36vw,520px);margin:6px auto 0;display:flex;align-items:center;justify-content:center}.case-hero .gallery-art{width:100%;height:100%}.case-hero .asset-router,.case-hero .asset-backup,.case-hero .asset-computer{width:77%}.case-hero .web-object{width:48%;height:80%;aspect-ratio:auto}.case-hero .web-word{font-size:58px}.case-text{width:calc(100% - 72px);max-width:541px;margin:0 auto}.case-intro{display:grid;grid-template-columns:1fr 1fr;gap:36px}.case-intro h1{line-height:22px}.case-intro .meta{font-size:11.2px;line-height:16px;letter-spacing:.045em;margin-top:7px;color:var(--fg);opacity:.75}.case-description{font-weight:400}.case-description p+p{margin-top:16px}.inline-link{display:inline-flex;gap:10px;align-items:center;min-height:36px;border-bottom:1px solid var(--line);margin-top:18px}.inline-link:hover{opacity:.85}.case-content{margin-top:40px;border-top:1px solid var(--line)}.detail-tabs{display:flex;gap:28px;border-bottom:1px solid var(--line);margin-bottom:22px}.detail-tabs button{padding:14px 0;position:relative;color:var(--fg);opacity:.55;line-height:16px}.detail-tabs button[aria-selected=true]{opacity:1}.detail-tabs button[aria-selected=true]:after{content:'';position:absolute;height:1px;left:0;right:0;bottom:-1px;background:currentColor}.service-list{display:grid;grid-template-columns:1fr 1fr;gap:22px 28px}.service-item h2{margin-bottom:5px}.service-item p{font-weight:400;color:var(--fg);opacity:.85}.tab-price{display:grid;grid-template-columns:1fr 1fr;gap:30px}.tab-price .price{font-size:28px;line-height:32px;letter-spacing:0}.tab-price p{font-weight:400}.case-next{max-width:541px;width:calc(100% - 72px);margin:48px auto 0;display:flex;justify-content:space-between;align-items:center;padding-top:18px;border-top:1px solid var(--line);font-size:11.2px;line-height:16px}.case-next a{font-size:14px;display:flex;align-items:center;gap:20px}.case-next a:hover span{transform:translateX(4px)}.case-next span{transition:transform .3s var(--ease)}
.catalog-view{padding:125px 12vw 120px}.catalog-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:35px;font-size:11.2px;line-height:16px}.catalog-heading h1{font-size:14px}.catalog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:34px 45px;max-width:1100px;margin:auto}.catalog-card{min-width:0}.catalog-card .thumb{height:min(21vw,280px);display:flex;align-items:center;justify-content:center;background:var(--card-bg);border-radius:2px;overflow:hidden}.catalog-card .gallery-art{height:95%;width:95%}.catalog-card:hover .gallery-art{transform:scale(1.04)}.catalog-card .web-word{font-size:42px}.catalog-card .web-top,.catalog-card .web-bottom{font-size:6px;line-height:8px}.catalog-card .web-object{width:49%;padding:5%}.catalog-caption{display:flex;justify-content:space-between;gap:12px;margin-top:12px;font-size:11.2px;line-height:16px;letter-spacing:.045em}.catalog-caption .muted{opacity:.55}.catalog-footer{display:flex;justify-content:center;gap:28px;margin-top:50px;font-size:12px}
.text-page{padding:150px 32px 135px;min-height:100%;height:auto}.text-page-inner{max-width:541px;margin:auto}.text-page h1{margin-bottom:38px}.page-intro{max-width:410px;margin-bottom:30px;font-weight:400}.price-row{display:grid;grid-template-columns:1fr 1fr;gap:32px;border-top:1px solid var(--line);padding:24px 0}.price-row h2{margin-bottom:8px}.price-row p{font-weight:400}.price-row .amount{font-size:28px;line-height:32px;letter-spacing:0}.price-row .interval{display:block;margin-top:7px;font-size:11.2px;line-height:16px}.price-row .price-copy{font-size:12px;line-height:18px}.small-note{font-size:11.2px;line-height:16px;letter-spacing:.045em;font-weight:400}.terms{margin-top:24px;display:grid;gap:16px}.terms p{margin:0}.price-links{display:flex;gap:28px;margin-top:28px}.legal-nav{display:flex;gap:24px;flex-wrap:wrap;margin-top:38px;font-size:11.2px;line-height:16px}.legal-nav a:hover{text-decoration:underline;text-underline-offset:4px}
.about-view{padding:128px 24px 135px;position:relative}.about-profile-portrait{position:relative;width:180px;max-width:100%;aspect-ratio:1;margin:0 auto 28px;overflow:hidden;border-radius:50%}.about-profile-portrait img{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;object-position:center 68%}.about-panel{position:relative;width:490px;max-width:100%;margin:0 auto 24px;padding:36px 46px;line-height:22px;background:#ffffff70;border-radius:16px}.about-panel h1,.about-panel h2{margin-bottom:22px}.about-panel p{font-weight:400}.about-panel.matte{background:#dedede59}.about-panel.about-competencies-panel{width:760px}.about-competencies{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.about-competencies>div{min-width:0;padding:0 24px;border-left:1px solid var(--line)}.about-competencies>div:first-child{padding-left:0;border-left:0}.about-competencies>div:last-child{padding-right:0}.about-competencies h2{margin-bottom:8px}.about-art{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:-1;filter:blur(50px);opacity:.18;overflow:clip}.about-art img{transform:scale(1.2);width:600px;height:600px;object-fit:contain}.about-view .inline-link{margin-top:24px}.about-view .legal-nav{margin:0 auto;max-width:398px;justify-content:center}
.contact-view{padding:140px 32px 130px}.contact-inner{max-width:541px;margin:auto}.contact-intro{display:grid;grid-template-columns:1fr 1fr;gap:36px}.contact-intro h1{margin-bottom:22px}.contact-intro p{font-weight:400}.contact-channels{display:flex;flex-direction:column;align-items:flex-start;gap:10px}.contact-channels a{min-height:30px;display:inline-flex;align-items:center;gap:10px;border-bottom:1px solid var(--line);overflow-wrap:anywhere}.contact-switch{display:flex;gap:28px;margin-top:32px;padding-bottom:14px;border-bottom:1px solid var(--line)}.contact-switch button{min-height:30px;opacity:.55}.contact-switch button[aria-selected=true]{opacity:1}.contact-form{margin-top:22px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px 24px}.field{display:flex;flex-direction:column;gap:8px;min-width:0}.field.full{grid-column:1/-1}.field label{font-size:11.2px;line-height:16px}.field input,.field textarea,.field select{appearance:none;-webkit-appearance:none;width:100%;border:0;border-bottom:1px solid var(--line);background:transparent;border-radius:0;min-height:42px;padding:8px 0;font-weight:400;font-size:14px;line-height:22px;caret-color:var(--fg)}.field select{padding-right:24px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='m2 4 4 4 4-4' fill='none' stroke='%23404040'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right center}.field textarea{height:86px;min-height:70px;resize:vertical}.field input::placeholder,.field textarea::placeholder{color:#777;opacity:1}.form-consent{display:flex;gap:12px;align-items:flex-start;margin:22px 0;font-weight:400;font-size:11.2px;line-height:16px}.form-consent input{accent-color:#252820;flex:none;width:16px;height:16px;margin:0}.form-consent a{text-decoration:underline;text-underline-offset:3px}.submit-button{border:1px solid var(--line);border-radius:9px;padding:12px 18px;min-height:44px;display:flex;align-items:center;justify-content:space-between;gap:32px;transition:background .25s}.submit-button:hover{background:#00000008}.preview-note{font-size:11.2px;line-height:16px;margin-top:14px;font-weight:400;color:#62625e}.form-result{margin-top:20px;border-top:1px solid var(--line);padding-top:20px;outline:none}.form-result p{font-weight:400}.form-result button{margin-top:15px;border-bottom:1px solid var(--line)}.contact-info{padding-top:22px;font-weight:400}.contact-info h2{margin-bottom:8px}.contact-info p{margin-bottom:22px}.contact-info a{text-decoration:underline;text-underline-offset:4px}.contact-faq{border-top:1px solid var(--line);margin-top:22px}.contact-faq details{border-bottom:1px solid var(--line);padding:16px 0}.contact-faq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:24px}.contact-faq summary:after{content:'+'}.contact-faq details[open] summary:after{content:'−'}.contact-faq details p{font-weight:400;margin-top:12px}.contact-faq summary::-webkit-details-marker{display:none}
.legal-page h1{margin-bottom:24px}.legal-page h2{margin:28px 0 12px}.legal-page h3{margin:22px 0 10px}.legal-page p,.legal-page li{font-weight:400;overflow-wrap:anywhere}.legal-page a{text-decoration:underline;text-underline-offset:3px}.legal-page .legal-lede{margin-bottom:22px}.legal-page .legal-back{margin-bottom:22px}.legal-page .legal-nav a{text-decoration:none}.legal-page ul{padding-left:20px}.legal-page .legal-stack>section{margin:24px 0}.legal-page .legal-kicker{display:none}.legal-page .contact-callout{margin-top:28px}.legal-page strong{font-weight:600}
dialog{color:var(--fg);font:inherit;letter-spacing:.02em;padding:0;border:0}dialog::backdrop{background:#ffffff50;backdrop-filter:blur(14px)}.mobile-menu{position:fixed;top:8px;left:8px;right:8px;margin:0;width:calc(100% - 16px);max-width:none;border-radius:18px;background:#ffffffed;padding:96px 24px 24px;max-height:calc(100dvh - 16px);overflow-y:auto;z-index:60;animation:menu-in .5s var(--ease)}.mobile-menu[open]{display:block}.mobile-menu::backdrop{background:#ffffff70;backdrop-filter:blur(20px)}.menu-modes{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:8px 0 32px}.menu-mode{display:flex;flex-direction:column;align-items:center;gap:18px}.menu-mode svg{height:42px;width:52px;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.menu-links{border-top:1px solid var(--line)}.menu-links a{padding:19px 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;min-height:58px;font-size:14px}.menu-bottom{padding-top:26px;display:flex;justify-content:space-between;gap:12px;font-size:11px;line-height:16px}.menu-is-open .site-header{z-index:200}.menu-is-open .edge{z-index:30}.menu-is-open .menu-toggle span:nth-child(1){transform:translateY(8px) rotate(45deg)}.menu-is-open .menu-toggle span:nth-child(2){opacity:0}.menu-is-open .menu-toggle span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}.menu-is-open .tray-toggle{visibility:hidden}.service-tray{position:fixed;inset:8px 8px auto;margin:0;width:calc(100% - 16px);max-width:none;border-radius:18px;background:#ffffffee;padding:90px 18px 22px;overflow:visible;animation:menu-in .5s var(--ease)}.tray-items{display:flex;gap:15px;overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:none;padding-bottom:8px}.tray-item{width:116px;flex:none;scroll-snap-align:start;font-size:11.2px;line-height:16px}.tray-item .gallery-art{height:132px}.tray-item p{margin-top:12px}.tray-item .web-object{height:105px;width:81px;padding:8px}.tray-item .web-word{font-size:22px}.tray-item .web-top,.tray-item .web-bottom{display:none}.tray-item.current p{text-decoration:underline;text-underline-offset:4px}@keyframes menu-in{from{opacity:0;filter:blur(8px);transform:translateY(-8px) scale(.98)}to{opacity:1;filter:blur(0);transform:none}}
@media(min-width:901px){.gallery-piece{max-width:calc(100vw - 32px)}.view{scroll-behavior:smooth}.menu-toggle{display:none!important}.mobile-menu{display:none!important}}
@media(max-width:1100px) and (min-width:901px){.site-header{--edge:24px}.nav-left{gap:22px}.nav-right{gap:0}.case-hero{height:350px}.case-hero .web-word{font-size:44px}}
@media(max-width:900px){:root{--edge:20px;--top:20px;font-size:12px;line-height:18px}html,body{height:auto;min-height:100%;overflow:visible}body{min-height:100svh}p+p{margin-top:18px}.site-header{left:20px;right:20px;top:20px;height:48px}.identity{font-size:12px;line-height:16px;letter-spacing:.02em}.nav-left,.nav-right{display:none}.menu-toggle{position:absolute;display:flex;flex-direction:column;left:0;top:0;width:44px;height:36px;gap:7px}.menu-toggle span{width:24px;height:1px;background:currentColor;transition:transform .4s var(--ease),opacity .2s}.tray-toggle{position:absolute;display:none;right:0;top:-2px}.is-service .tray-toggle{display:flex}.is-service .tray-toggle svg{width:20px}.corners{bottom:calc(20px + env(safe-area-inset-bottom));left:20px;right:20px;font-size:12px;line-height:16px;letter-spacing:.02em;gap:15px}.corners .quiet-links{gap:14px}#corner-left{max-width:57%}#corner-right{text-align:right}.edge-top{height:128px}.edge-bottom{height:91px}#main{position:relative;min-height:100svh}.view{height:auto;min-height:100svh;overflow:visible;overscroll-behavior:auto}.gallery{padding-top:41.5px;padding-bottom:110px;gap:32px}.gallery-piece{width:calc(100vw - 32px);max-width:430px}.gallery-piece:nth-child(1){width:calc(100vw - 56px)}.gallery-piece:nth-child(2){width:calc(100vw - 107px);margin-top:0}.gallery-piece:nth-child(3){width:calc(100vw - 71px)}.gallery-piece:nth-child(4){width:calc(100vw - 116px);margin-top:-6px}.gallery-piece:nth-child(5),.gallery-piece:nth-child(6){width:calc(100vw - 32px);margin-top:-20px}.gallery-piece figcaption{opacity:1;bottom:2%;font-size:10px;line-height:14px}.gallery-piece .asset-computer{width:85%}.gallery-piece .asset-router{width:90%}.gallery-piece .asset-backup{width:95%}.gallery-piece .asset-laptop-black{width:111%;max-width:none}.gallery-piece .asset-laptop{width:108%;max-width:none}.gallery-end{font-size:12px;line-height:18px;padding:30px 0 10px}.web-object{width:61%;padding:6.5%;border-radius:2px}.web-object .web-word{font-size:44px}.web-object .web-top{font-size:7px}.web-object .web-bottom{font-size:7px;line-height:10px}.web-orbit{width:58%}#hover-label{display:none}.dock{display:none}.service-page{padding:96px 0 115px}.case-hero{width:calc(100% - 72px);height:260px;margin:0 auto 20px}.case-hero .gallery-art{width:100%}.case-hero .asset-computer{width:80%}.case-hero .asset-router{width:85%}.case-hero .asset-backup{width:92%}.case-hero .web-object{width:53%;height:90%;padding:6%}.case-hero .web-word{font-size:38px}.case-hero .asset-laptop-black,.case-hero .asset-laptop{width:118%;max-width:none}.case-text{width:calc(100% - 112px);max-width:541px}.case-intro{grid-template-columns:1fr;gap:20px}.case-intro h1{line-height:18px}.case-intro .meta{font-size:10px;line-height:14px;margin-top:4px}.case-description p+p{margin-top:18px}.inline-link{min-height:36px;margin-top:16px}.case-content{margin-top:28px}.detail-tabs{gap:24px;margin-bottom:18px}.detail-tabs button{min-height:44px;padding:13px 0;line-height:16px}.service-list{grid-template-columns:1fr;gap:22px}.service-item h2{margin-bottom:5px}.tab-price{grid-template-columns:1fr;gap:16px}.tab-price .price{font-size:24px;line-height:28px}.case-next{width:calc(100% - 112px);margin-top:30px;gap:24px;font-size:10px;line-height:14px}.case-next a{font-size:12px;gap:14px}.catalog-view{padding:120px 24px 120px}.catalog-heading{margin-bottom:25px;font-size:10px;line-height:14px}.catalog-heading h1{font-size:12px}.catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 18px}.catalog-card .thumb{height:190px}.catalog-card .gallery-art{height:95%;width:100%}.catalog-card .web-object{width:67%;padding:7%}.catalog-card .web-word{font-size:24px}.catalog-card .web-top,.catalog-card .web-bottom{font-size:4px;line-height:6px}.catalog-caption{font-size:10px;line-height:14px;gap:6px;margin-top:10px}.catalog-caption .muted{display:none}.catalog-footer{gap:22px;margin-top:36px;font-size:11px}.text-page{padding:128px 40px 120px}.text-page h1{margin-bottom:28px}.page-intro{margin-bottom:26px}.price-row{gap:20px;padding:21px 0;grid-template-columns:1fr 1fr}.price-row .amount{font-size:24px;line-height:28px}.price-row .interval{font-size:10px;line-height:14px}.price-row .price-copy{font-size:11px;line-height:17px}.small-note{font-size:10px;line-height:15px}.terms{gap:15px;margin-top:24px}.price-links{gap:24px}.legal-nav{gap:20px;font-size:10px;line-height:15px}.about-view{padding:112px 16px 115px}.about-panel{width:100%;padding:24px;line-height:18px;margin-bottom:18px;border-radius:16px}.about-panel h1,.about-panel h2{margin-bottom:18px}.about-labels{gap:20px}.about-art img{width:430px;height:430px}.contact-view{padding:124px 40px 115px}.contact-intro{grid-template-columns:1fr;gap:24px}.contact-intro h1{margin-bottom:18px}.contact-channels{gap:7px}.contact-channels a{min-height:32px}.contact-switch{margin-top:28px;gap:24px;padding-bottom:12px}.contact-form{margin-top:20px}.form-grid{gap:18px;grid-template-columns:1fr}.field.full{grid-column:auto}.field label{font-size:11px;line-height:16px}.field input,.field textarea,.field select{font-size:16px;line-height:22px;min-height:44px}.field textarea{height:92px}.form-consent{font-size:10px;line-height:15px;gap:10px}.preview-note{font-size:10px;line-height:15px}.contact-faq details{padding:17px 0}.contact-info{padding-top:20px}.contact-info p{margin-bottom:18px}.legal-page{padding-left:40px;padding-right:40px}.legal-page h1{font-size:14px;line-height:20px}.legal-page h2{margin-top:26px}.menu-is-open{overflow:hidden!important}.menu-is-open #main,.menu-is-open .corners{filter:blur(8px)}.menu-is-open .site-header{color:#000}.menu-is-open .identity{pointer-events:none}}
@media(max-width:360px){.corners{font-size:10px;gap:12px}.catalog-view{padding-left:20px;padding-right:20px}.catalog-card .thumb{height:165px}.case-text,.case-next{width:calc(100% - 88px)}.contact-view,.text-page{padding-left:30px;padding-right:30px}.case-hero{height:225px}.price-row{gap:16px}.menu-bottom{font-size:10px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.reveal.waiting{opacity:1;filter:none;transform:none}.gallery-art{will-change:auto}}
.gallery-piece figure{width:100%;height:100%}.service-list{display:block}.service-item{border-bottom:1px solid var(--line);padding:13px 0}.service-item:first-child{padding-top:0}.service-item summary{display:flex;justify-content:space-between;gap:20px;cursor:pointer;list-style:none;min-height:20px;align-items:center}.service-item summary::-webkit-details-marker{display:none}.service-item[open] summary span{font-size:0}.service-item[open] summary span:after{content:'−';font-size:14px}.service-item p{margin-top:12px;padding-bottom:4px}.optional-fields summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;min-height:36px;align-items:center;font-size:11.2px;line-height:16px}.optional-fields summary::-webkit-details-marker{display:none}.optional-fields[open] summary{margin-bottom:20px}.optional-fields[open] summary span{transform:rotate(45deg)}.optional-fields .form-grid{padding-top:4px}.dialog-head{position:absolute;top:12px;left:12px;right:12px;height:48px}.dialog-head .identity{top:0;font-size:12px;line-height:16px}.dialog-close{display:flex;position:absolute;top:0;left:0;height:36px}.dialog-close svg{width:24px;stroke-width:1}.menu-is-open .site-header{visibility:hidden}.menu-is-open .dialog-head .identity{pointer-events:auto}.legal-meta{font-size:11.2px;line-height:16px;margin-bottom:24px}
/* Reference motion is route-specific. The project gallery is handled independently. */
body{transition:background-color .55s var(--ease),color .55s var(--ease)}
.site-header,.identity{letter-spacing:.04em}.corners{letter-spacing:.045em}
.case-description,.service-item p,.price-row p,.about-panel p,.contact-intro p,.page-intro{font-weight:500}
.view.is-entering,.view.is-leaving{animation:none;transform:none;filter:none;opacity:1;transition:none}
.gallery-piece:first-child .gallery-art{animation:none}
.first-intro .gallery-art{animation:gallery-intro 1.3s var(--ease) both;animation-delay:calc(var(--intro-order) * 140ms)}
@keyframes gallery-intro{0%{opacity:0;filter:blur(12px);transform:scale(1.012)}70%{opacity:1}85%{filter:blur(0)}100%{opacity:1;filter:blur(0);transform:scale(1)}}
.gallery-piece:hover .gallery-art{transform:none}
.asset-setup-neutral{width:76%!important}.asset-website{width:85%!important}.asset-care{width:80%!important}
.case-hero .asset-setup-neutral,.case-hero .asset-care{width:71%!important}.case-hero .asset-website{width:83%!important}
.catalog-card .thumb{aspect-ratio:1.68;height:auto;overflow:visible;background:transparent!important}
.catalog-card .gallery-art{width:100%;height:100%}.catalog-card .asset-router{width:77%}.catalog-card .asset-backup{width:85%}
.catalog-caption .muted{display:none}.catalog-caption{justify-content:center;text-align:center}
.catalog-grid{gap:50px 60px}.catalog-card:hover .gallery-art{transform:translateY(-3px)}
body:not([data-page=home]):not([data-page=catalog]) .edge-bottom,body:not([data-page=home]):not([data-page=catalog]) .corners{display:none}
body[data-page=service] .edge-top{z-index:15}
body[data-page=service] .edge-top b{background:linear-gradient(180deg,color-mix(in srgb,var(--bg) 72%,transparent) 0%,color-mix(in srgb,var(--bg) 63%,transparent) 14%,color-mix(in srgb,var(--bg) 48%,transparent) 29%,color-mix(in srgb,var(--bg) 32%,transparent) 44%,color-mix(in srgb,var(--bg) 18%,transparent) 59%,color-mix(in srgb,var(--bg) 8%,transparent) 74%,color-mix(in srgb,var(--bg) 2%,transparent) 88%,transparent)}
.mobile-menu,.service-tray{animation:reference-menu-in .52s cubic-bezier(.22,1,.36,1) both}
.mobile-menu{animation:mobile-menu-in .26s cubic-bezier(.22,1,.36,1) both}
@keyframes mobile-menu-in{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
@keyframes reference-menu-in{from{opacity:1;transform:translateY(-18px) scale(.985)}to{opacity:1;transform:none}}
.mobile-menu.closing,.service-tray.closing{animation:none}
.service-tray[open] .tray-item{animation:menu-item-in .36s cubic-bezier(.22,1,.36,1) both;animation-delay:calc(36ms + var(--menu-order,0) * 14ms)}
.menu-modes a:nth-child(2){--menu-order:1}.menu-links a:nth-child(1){--menu-order:2}.menu-links a:nth-child(2){--menu-order:3}.menu-links a:nth-child(3){--menu-order:4}.menu-bottom a:nth-child(1){--menu-order:5}.menu-bottom a:nth-child(2){--menu-order:6}.menu-bottom a:nth-child(3){--menu-order:7}
.tray-item:nth-child(2){--menu-order:1}.tray-item:nth-child(3){--menu-order:2}.tray-item:nth-child(4){--menu-order:3}.tray-item:nth-child(5){--menu-order:4}.tray-item:nth-child(6){--menu-order:5}
@keyframes menu-item-in{from{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:none}}
.closing .menu-modes,.closing .menu-links,.closing .menu-bottom,.closing .tray-items{animation:none}
.contact-buttons{display:flex;gap:10px;flex-wrap:wrap}.contact-button{display:inline-flex!important;align-items:center;justify-content:center;gap:8px!important;min-height:44px!important;padding:10px 14px;border:1px solid var(--line)!important;border-radius:14px;background:color-mix(in srgb,var(--bg) 60%,transparent);font-size:12px;line-height:16px;letter-spacing:.02em;transition:background .3s var(--ease),transform .4s var(--ease),border-color .3s!important;white-space:nowrap}.contact-button svg{width:17px;height:17px;flex:none;fill:none;stroke:currentColor;stroke-width:1.25;stroke-linecap:round;stroke-linejoin:round}.contact-button:hover{background:color-mix(in srgb,var(--fg) 6%,var(--bg));transform:translateY(-1px);opacity:1!important;border-color:var(--action,var(--line))!important}.contact-button:active{transform:scale(.98)}.case-contact{margin-top:28px}.contact-channels{justify-content:center;gap:12px}.contact-channels .contact-buttons{gap:8px;flex-direction:column;width:100%;align-items:flex-start}.contact-channels .email-link{border:0;margin-top:3px;font-size:12px;min-height:30px}.catalog-contact{justify-content:center;margin-top:48px}.catalog-footer{margin-top:24px}.menu-bottom{display:block}.menu-contact{display:grid;grid-template-columns:1fr 1fr;gap:10px}.menu-contact .contact-button{font-size:11px;letter-spacing:0;padding:10px 9px}.menu-legal{display:block;text-align:center;margin-top:22px;font-size:10px}.menu-bottom .contact-buttons a:nth-child(1){--menu-order:5}.menu-bottom .contact-buttons a:nth-child(2){--menu-order:6}
@media(min-width:901px){body[data-page=service] .identity{transition:opacity .4s var(--ease)}body[data-portfolio-dock=arriving] .site-header>.identity,body[data-portfolio-dock=open] .site-header>.identity,body[data-portfolio-dock=opening] .site-header>.identity,body[data-portfolio-dock=closing] .site-header>.identity,body[data-portfolio-dock=returning] .site-header>.identity{opacity:0;pointer-events:none}.service-page{padding-top:96px}.case-hero{margin-top:0;height:min(29vw,420px)}.desktop-home{pointer-events:none}}
@media(max-width:900px){.contact-button{min-height:44px;font-size:11px;padding:10px 12px;letter-spacing:0}.case-contact{gap:8px;margin-top:24px}.case-contact .contact-button{padding:10px;font-size:10px;gap:6px!important}.case-contact .contact-button svg{width:15px;height:15px}.contact-channels .contact-buttons{flex-direction:row;width:auto;gap:8px}.contact-channels .contact-button{font-size:11px}.contact-channels .email-link{font-size:12px}.contact-intro{gap:20px}.catalog-contact{margin-top:32px;gap:10px}.catalog-footer{gap:20px;font-size:10px;margin-top:24px}}
.mobile-menu{padding:102px max(26px,calc(50% - 210px)) 27px;border-radius:22.383px;background:#fffffff0;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);color:#000}.service-tray{border-radius:22.383px;background:#fff;backdrop-filter:none;-webkit-backdrop-filter:none;color:#000}.menu-modes{grid-template-columns:repeat(2,141px);justify-content:center;gap:0;padding:0 0 34px}.menu-mode{gap:16px;font-size:12px;line-height:16px;letter-spacing:.04em}.menu-mode svg{height:43px;width:66px}.menu-links a{height:41px;min-height:41px;justify-content:center;padding:0;font-size:12px;line-height:16px;letter-spacing:.04em}.menu-links a span{display:none}.menu-bottom{padding-top:20px}.menu-legal{margin-top:18px}.menu-is-open #main,.menu-is-open .corners{filter:none}.mobile-menu::backdrop,.service-tray::backdrop{background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none}
/* Let the page remain visible beneath the soft band at the dialog edge. */
.menu-backdrop{--menu-reach:420px;position:fixed;inset:0;z-index:60;pointer-events:none;opacity:0;visibility:hidden;transition:opacity .3s ease,visibility 0s .3s}
.menu-is-open .menu-backdrop{opacity:1;visibility:visible;transition:opacity .3s ease}
.menu-backdrop i{position:absolute;left:0;right:0;top:calc(var(--menu-reach) - 24px);height:220px;backdrop-filter:blur(var(--menu-blur));-webkit-backdrop-filter:blur(var(--menu-blur));-webkit-mask-image:linear-gradient(to bottom,#000 24px,#0009 95px,transparent 200px);mask-image:linear-gradient(to bottom,#000 24px,#0009 95px,transparent 200px)}
.menu-backdrop i:nth-child(1){--menu-blur:24px}
.menu-backdrop i:nth-child(2){--menu-blur:8px;-webkit-mask-image:linear-gradient(to bottom,#000 60px,#0008 150px,transparent 220px);mask-image:linear-gradient(to bottom,#000 60px,#0008 150px,transparent 220px)}
.menu-backdrop b{position:absolute;inset:0 0 auto;height:calc(var(--menu-reach) + 220px);background:linear-gradient(to bottom,#f2f2f280 calc(var(--menu-reach) - 24px),#f5f5f566 var(--menu-reach),#ffffff38 calc(var(--menu-reach) + 48px),#ffffff1f calc(var(--menu-reach) + 104px),transparent calc(var(--menu-reach) + 220px))}
.tray-items{gap:24px;padding:8px 0 0 16px}.tray-item{text-align:center;font-size:12px;line-height:16px;letter-spacing:.04em}.tray-item .gallery-art{width:132px;height:132px;margin:-8px}.tray-item p{margin-top:41px}.service-tray{padding:84px 18px 35px}.menu-is-open .portfolio-motion-layer{pointer-events:none}
@media(max-width:340px){.menu-modes{grid-template-columns:repeat(2,1fr)}.menu-contact{gap:7px}.menu-contact .contact-button{font-size:10px;padding-left:7px;padding-right:7px;gap:5px!important}.menu-contact .contact-button svg{width:14px;height:14px}}
.pm-caption,.gallery-piece figcaption{position:absolute;bottom:4%;left:50%;right:auto;transform:translateX(-50%);width:280px;max-width:85%;text-align:center;font-size:12px;line-height:18px;letter-spacing:.04em;opacity:1;pointer-events:none;transition:opacity .24s ease}.pm-caption p,.gallery-piece figcaption p{margin-top:5px;font-size:11px;line-height:16px;color:#62625d;font-weight:400;letter-spacing:.035em}.portfolio-motion-layer[data-mode=service] .pm-caption{opacity:0;visibility:hidden}.portfolio-motion-layer[data-dock-phase=arriving] .pm-caption,.portfolio-motion-layer[data-dock-phase=returning] .pm-caption{opacity:0}.gallery-piece:has(.project-hover-preview.is-active) figcaption{opacity:0}
@media(max-width:900px){.gallery-piece figcaption{font-size:12px;line-height:18px;bottom:1%;max-width:95%;opacity:1}.gallery-piece figcaption p{font-size:11px;line-height:16px;margin-top:4px}.gallery-piece .gallery-art{transform:translateY(-8px)}.gallery-piece:hover .gallery-art{transform:translateY(-8px)}}
.menu-is-open .dialog-head .identity{user-select:none}
@media(max-width:900px){.identity{letter-spacing:.02em}.corners{letter-spacing:.02em}.gallery-piece .asset-laptop-black{width:90%;max-width:100%}.gallery-piece .asset-setup-neutral{width:82%!important}.gallery-piece .asset-router{width:80%}.gallery-piece .asset-backup{width:88%}.gallery-piece .asset-website{width:88%!important}.gallery-piece .asset-care{width:83%!important}.gallery-piece figcaption{bottom:5%;font-size:10px;opacity:0}.gallery-piece:active figcaption,.gallery-piece:focus-visible figcaption{opacity:1}.catalog-grid{gap:42px 18px}.catalog-card .thumb{height:auto;aspect-ratio:1.3}.catalog-card .gallery-art{height:100%}.catalog-caption{margin-top:14px}.catalog-footer{margin-top:42px}.catalog-view{padding-bottom:110px}body[data-page=catalog] .edge-top{height:160px}.edge-top b{background:linear-gradient(180deg,var(--bg),color-mix(in srgb,var(--bg) 97%,transparent) 10%,color-mix(in srgb,var(--bg) 90%,transparent) 20%,color-mix(in srgb,var(--bg) 78%,transparent) 30%,color-mix(in srgb,var(--bg) 65%,transparent) 40%,color-mix(in srgb,var(--bg) 50%,transparent) 50%,color-mix(in srgb,var(--bg) 35%,transparent) 60%,color-mix(in srgb,var(--bg) 22%,transparent) 70%,color-mix(in srgb,var(--bg) 10%,transparent) 80%,color-mix(in srgb,var(--bg) 3%,transparent) 90%,transparent)}.case-hero .asset-laptop-black{width:94%;max-width:100%}.case-hero .asset-care{width:85%!important}}

/* Accepted user correction: each homepage image has visible explanatory copy. */
.gallery-piece figcaption{font-size:12px;line-height:18px;bottom:1%;max-width:95%;opacity:1}
.gallery-piece figcaption p{font-size:11px;line-height:16px;margin-top:4px}
.gallery-art .asset-repair-service{width:82%!important}.gallery-art .asset-setup-service{width:80%!important}
.case-hero .asset-repair-service,.case-hero .asset-setup-service{width:80%!important}
@media(max-width:900px){.gallery-piece figcaption{opacity:1;font-size:12px;line-height:18px;bottom:1%}.gallery-piece .asset-repair-service{width:86%!important}.gallery-piece .asset-setup-service{width:85%!important}}

@media(max-width:900px){.gallery-piece .gallery-art,.gallery-piece:hover .gallery-art{height:calc(100% - 58px);padding-top:12px;transform:none}.gallery-piece .gallery-art img{height:100%}.gallery-piece figcaption{bottom:1%}}

/* Final legibility and reference-menu surface corrections. */
.gallery-piece.ahp-is-active figcaption,.pm-card.ahp-is-active .pm-caption{opacity:0}

@media(max-width:900px){.catalog-view{padding-top:166px}}

.desktop-dock-toggle{display:none;margin-top:-3px}
@media(min-width:901px){body[data-page=service] .desktop-dock-toggle{display:flex}}

.price-terms{border-block:1px solid var(--line);padding:0}.price-terms summary{display:flex;align-items:center;justify-content:space-between;min-height:48px;cursor:pointer;list-style:none}.price-terms summary::-webkit-details-marker{display:none}.price-terms .terms{margin:0 0 24px}.price-terms[open] summary span{transform:rotate(45deg)}

/* Preserve legibility of the small reference typography on every service surface. */
.case-intro .meta,.service-item p,.detail-tabs button,.contact-switch button{opacity:1}


.portfolio-motion-layer{position:fixed;inset:0;z-index:26;pointer-events:none;isolation:isolate;contain:layout style;opacity:1}
.portfolio-motion-layer[hidden]{display:none!important}
.portfolio-motion-layer[data-mode="service"]{z-index:45}
.pm-scroll{position:absolute;inset:0;overflow:hidden auto;overscroll-behavior-y:contain;scrollbar-width:none;pointer-events:auto;touch-action:pan-y;outline:none!important}
.pm-scroll::-webkit-scrollbar{display:none}
.portfolio-motion-layer[data-mode="service"] .pm-scroll{overflow:hidden;pointer-events:none;touch-action:none}
.portfolio-motion-layer[data-mode="hidden"] .pm-scroll{pointer-events:none;overflow:hidden}
.pm-stage{position:relative;pointer-events:none;width:100%}
.pm-card{display:block;position:absolute;top:0;left:0;transform-origin:0 0;pointer-events:auto;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;text-decoration:none;will-change:transform,width,height;outline-offset:6px;z-index:1}
.pm-card[aria-current="page"]{z-index:2}
.pm-card:focus-visible{outline:1px solid currentColor;border-radius:6px}
.pm-art{position:absolute;inset:0;pointer-events:none;will-change:transform,opacity;transform-origin:50% 50%}
.pm-art .gallery-art{height:100%;width:100%;max-width:none;transform:none!important;filter:none;animation:none!important;transition:none!important;will-change:auto;display:flex;align-items:center;justify-content:center}
.pm-art .gallery-art img{width:100%;height:100%;object-fit:contain;max-width:none;user-select:none;-webkit-user-drag:none}
.pm-art .asset-laptop-black{width:88%!important}
.pm-art .asset-setup-neutral,.pm-art .asset-setup{width:82%!important}
.pm-art .asset-router{width:77%!important}
.pm-art .asset-backup{width:82%!important}
.pm-art .asset-website{width:88%!important}
.pm-art .asset-care,.pm-art .asset-laptop{width:88%!important}
.portfolio-motion-layer[data-mode="service"] .pm-card{outline-offset:4px}
.pm-dock-surface{position:fixed;top:0;left:0;z-index:0;pointer-events:none;background:color-mix(in srgb,var(--bg,#fff) 46%,transparent);backdrop-filter:blur(25px);-webkit-backdrop-filter:blur(25px);border-radius:999px;box-shadow:0 4px 8px #00000008;will-change:transform,width,height,opacity;transform-origin:0 0}
.pm-close{position:fixed;top:0;left:0;z-index:4;width:31px;height:31px;display:grid;place-items:center;pointer-events:auto;border:0;border-radius:50%;padding:0;color:var(--fg,#000);background:color-mix(in srgb,var(--bg,#fff) 72%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);cursor:pointer;will-change:transform,opacity}
.pm-close svg{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:1}
.pm-close:hover svg{transform:scale(1.12)}
.pm-close:focus-visible{outline:1px solid currentColor;outline-offset:3px}
.portfolio-motion-layer[data-mode="home"] .pm-close,.portfolio-motion-layer[data-mode="home"] .pm-dock-surface,.portfolio-motion-layer[data-mode="hidden"] .pm-close{visibility:hidden}
.portfolio-motion-layer[data-dock-phase="closed"] .pm-card,.portfolio-motion-layer[data-dock-phase="closing"] .pm-card,.portfolio-motion-layer[data-dock-phase="arriving"] .pm-card,.portfolio-motion-layer[data-dock-phase="returning"] .pm-card{pointer-events:none}
@media(max-width:900px){.portfolio-motion-layer{display:none!important}}
@media(prefers-reduced-motion:reduce){.pm-card,.pm-art,.pm-dock-surface,.pm-close{will-change:auto}}


#hover-label.astox-cursor-label {
  position:fixed; inset:auto; top:0; left:0; z-index:100;
  display:block; width:0; height:0; min-width:0; min-height:0;
  padding:0; margin:0; border:0; border-radius:0; background:none;
  box-shadow:none; backdrop-filter:none; -webkit-backdrop-filter:none;
  color:#000; font-family:inherit; font-weight:500; font-size:14px;
  line-height:14px; letter-spacing:.28px; white-space:nowrap;
  pointer-events:none; opacity:1; visibility:visible;
  transform:translate3d(0,0,0); transition:none;
}
#hover-label.astox-cursor-label .acl-measure {
  display:flex; align-items:baseline; gap:6px; width:max-content;
  position:absolute; visibility:hidden; pointer-events:none;
}
#hover-label.astox-cursor-label .acl-pill {
  box-sizing:border-box; position:absolute; top:-5px; left:17.56px;
  height:27px; width:27px; max-width:calc(100vw - 16px); padding-left:12px;
  border:0; border-radius:16.83px; background:#f3f3f34d;
  box-shadow:inset 0 0 0 .7px #0000000f;
  backdrop-filter:blur(9.82px); -webkit-backdrop-filter:blur(9.82px);
  transform-origin:13.5px 13.5px; transform:scale(.6);
  opacity:0; visibility:hidden; overflow:hidden; will-change:width,transform,opacity;
}
#hover-label.astox-cursor-label .acl-reveal {
  display:block; position:relative; height:27px; opacity:0;
  transform:translateX(-5px); filter:blur(3px);
}
#hover-label.astox-cursor-label .acl-copy {
  display:flex; align-items:baseline; gap:6px; padding-top:6.5px;
  position:absolute; top:0; left:0; width:max-content;
}
#hover-label.astox-cursor-label .acl-name {
  font-size:14px; line-height:14px; letter-spacing:.28px; color:#000;
  font-weight:500;
}
#hover-label.astox-cursor-label .acl-category {
  font-size:12px; line-height:14px; letter-spacing:.24px; color:#0006;
  font-weight:500;
}
@media (hover:none), (pointer:coarse) {
  #hover-label.astox-cursor-label { display:none; }
}


.ahp-host { isolation:isolate; }
.gallery-piece.ahp-host { position:relative; }
.ahp-host .ahp-source {
  transition:opacity 520ms cubic-bezier(.22,1,.36,1),filter 520ms cubic-bezier(.22,1,.36,1)!important;
}
.ahp-host .ahp-source.ahp-transition-reset { transition:none!important; }
.gallery-piece.ahp-is-active .ahp-source,
.portfolio-motion-layer[data-mode="home"] .pm-card.ahp-is-active .ahp-source {
  opacity:0!important; filter:blur(7px)!important;
}
.project-hover-preview {
  position:absolute; inset:0; z-index:3; display:block; overflow:visible;
  pointer-events:none!important; user-select:none; -webkit-user-select:none;
  container-type:inline-size; color:var(--ahp-ink,#444); font-family:inherit;
  line-height:1.15; letter-spacing:0; text-align:left;
  visibility:hidden; opacity:0; filter:blur(14px);
  transition:opacity 600ms cubic-bezier(.22,1,.36,1),filter 600ms cubic-bezier(.22,1,.36,1),visibility 0s 600ms;
}
.ahp-is-active > .project-hover-preview {
  opacity:1; filter:blur(0); visibility:visible;
  transition:opacity 520ms cubic-bezier(.22,1,.36,1),filter 520ms cubic-bezier(.22,1,.36,1),visibility 0s;
}
.portfolio-motion-layer:not([data-mode="home"]) .project-hover-preview {
  display:none!important; opacity:0!important; visibility:hidden!important;
}
.project-hover-preview *, .project-hover-preview *::before, .project-hover-preview *::after {
  box-sizing:border-box; pointer-events:none!important;
}
.project-hover-preview .ahp-panel {
  position:absolute; opacity:0; filter:blur(7px); transform:translateY(17px) scale(.985);
  transition:opacity 600ms cubic-bezier(.22,1,.36,1),filter 600ms cubic-bezier(.22,1,.36,1),transform 600ms cubic-bezier(.22,1,.36,1);
}
.ahp-is-active > .project-hover-preview .ahp-panel {
  opacity:1; filter:blur(0); transform:translateY(0) scale(1);
  transition:opacity 520ms cubic-bezier(.22,1,.36,1) var(--ahp-delay),filter 520ms cubic-bezier(.22,1,.36,1) var(--ahp-delay),transform 620ms cubic-bezier(.22,1,.36,1) var(--ahp-delay);
}
.project-hover-preview .ahp-float { width:100%; height:100%; }
.ahp-is-active > .project-hover-preview .ahp-float {
  animation:astox-preview-drift 8s ease-in-out calc(620ms + var(--ahp-delay)) 1 both;
}
@keyframes astox-preview-drift {
  0%,100% { transform:translateY(0); }
  24% { transform:translateY(-6px); }
  56% { transform:translateY(1px); }
  80% { transform:translateY(-3px); }
}
.project-hover-preview .ahp-sheet {
  position:relative; width:100%; height:100%; overflow:hidden;
  background:var(--ahp-paper); border-radius:1px;
  box-shadow:0 12px 22px #0000000d,0 0 0 .5px #0000000b;
  transform:rotate(var(--ahp-angle));
}
.project-hover-preview .ahp-main {
  left:10%; top:10%; width:55%; height:78%; z-index:2;
  --ahp-angle:-3.1deg; --ahp-delay:35ms;
}
.project-hover-preview .ahp-detail {
  left:57%; top:23%; width:32%; height:48%; z-index:1;
  --ahp-angle:4deg; --ahp-delay:125ms;
}
.project-hover-preview .ahp-type {
  left:34%; top:72%; width:54%; height:17%; z-index:3;
  --ahp-angle:1.5deg; --ahp-delay:215ms;
}
.project-hover-preview[data-variant="alternate"] .ahp-main {
  left:34%; top:8%; --ahp-angle:2.6deg;
}
.project-hover-preview[data-variant="alternate"] .ahp-detail {
  left:10%; top:27%; --ahp-angle:-4deg;
}
.project-hover-preview[data-variant="alternate"] .ahp-type {
  left:14%; top:74%; --ahp-angle:-1.7deg;
}
.project-hover-preview .ahp-editorial-head {
  position:relative; z-index:1; padding:3.7cqw 3.2cqw 0;
}
.project-hover-preview .ahp-kicker {
  display:flex; justify-content:space-between; gap:1cqw; margin:0 0 4cqw;
  font-size:1.3cqw; line-height:1.2; letter-spacing:.035em; font-weight:500;
}
.project-hover-preview .ahp-headline {
  display:block; margin:0; padding:0; font-weight:500;
  font-size:5.25cqw; line-height:.98; letter-spacing:-.04em;
}
.project-hover-preview .ahp-headline span { display:block; }
.project-hover-preview .ahp-caption {
  margin:2.1cqw 0 0; font-size:1.36cqw; line-height:1.36; letter-spacing:.015em;
}
.project-hover-preview .ahp-caption span { display:block; }
.project-hover-preview .ahp-photo {
  position:absolute; left:0; bottom:3.8%; width:100%; height:60%;
  overflow:hidden; margin:0; padding:0;
}
.project-hover-preview .ahp-photo img {
  display:block; width:100%!important; height:100%!important; max-width:none!important;
  object-fit:cover; object-position:center 57%; transform:none!important;
  filter:none!important; opacity:1!important; border:0; border-radius:0;
}
.project-hover-preview[data-cutout="true"] .ahp-photo { height:61%; bottom:4%; }
.project-hover-preview[data-cutout="true"] .ahp-photo img { object-fit:contain; }
.project-hover-preview .ahp-folio {
  position:absolute; bottom:1.2cqw; left:3.2cqw; right:3.2cqw;
  display:flex; justify-content:space-between; font-size:1.12cqw; line-height:1; letter-spacing:.03em;
}
.project-hover-preview .ahp-detail-photo {
  height:48%; overflow:hidden; background:color-mix(in srgb,var(--ahp-paper) 60%,white);
}
.project-hover-preview .ahp-detail-photo img {
  width:100%!important; height:100%!important; max-width:none!important; display:block;
  object-fit:cover; object-position:center 67%; transform:scale(1.08)!important;
  filter:none!important; opacity:1!important; border:0; border-radius:0;
}
.project-hover-preview[data-cutout="true"] .ahp-detail-photo img { object-fit:contain; }
.project-hover-preview .ahp-price-copy { padding:2.5cqw 2.5cqw 0; }
.project-hover-preview .ahp-price-kicker {
  display:block; font-size:1.2cqw; line-height:1.25; letter-spacing:.025em;
}
.project-hover-preview .ahp-price {
  display:block; margin:1.8cqw 0 1cqw; font-size:4.8cqw; line-height:.98;
  font-weight:500; letter-spacing:-.04em;
}
.project-hover-preview .ahp-price span { display:block; }
.project-hover-preview .ahp-price-unit,
.project-hover-preview .ahp-price-note {
  display:block; font-size:1.25cqw; line-height:1.35; letter-spacing:.01em;
}
.project-hover-preview .ahp-price-note { margin-top:1.5cqw; }
.project-hover-preview .ahp-type .ahp-sheet {
  display:flex; flex-direction:column; justify-content:space-between;
  padding:2.2cqw 2.7cqw; color:var(--ahp-paper); background:var(--ahp-reverse);
}
.project-hover-preview .ahp-type-meta {
  display:flex; justify-content:space-between; gap:1cqw;
  font-size:1.1cqw; line-height:1.1; letter-spacing:.045em;
}
.project-hover-preview .ahp-type-word {
  display:block; font-size:6.2cqw; line-height:.95; letter-spacing:-.04em; font-weight:500;
}
@media (hover:none), (pointer:coarse) {
  .project-hover-preview { display:none!important; }
}
@media (prefers-reduced-motion:reduce) {
  .project-hover-preview,.project-hover-preview .ahp-panel,.ahp-host .ahp-source {
    transition-duration:150ms!important; transition-delay:0s!important;
  }
  .project-hover-preview .ahp-float { animation:none!important; }
  .project-hover-preview,.project-hover-preview .ahp-panel { filter:none!important; transform:none!important; }
  .gallery-piece.ahp-is-active .ahp-source,
  .portfolio-motion-layer[data-mode="home"] .pm-card.ahp-is-active .ahp-source { filter:none!important; }
}

/* Publication refinements requested by the owner: clean type, no link underlines. */
a,a:hover,a:focus-visible,.inline-link,.legal-page a,.legal-nav a:hover,.corners a:hover{ text-decoration:none!important; }
.inline-link,.legal-page a,.gallery-end a{border-bottom:0}
.gallery-piece:nth-child(1){--intro-order:0}.gallery-piece:nth-child(2){--intro-order:1}.gallery-piece:nth-child(3){--intro-order:2}.gallery-piece:nth-child(4){--intro-order:3}.gallery-piece:nth-child(n+5){--intro-order:4}
/* Server-rendered pages remain useful while the module loads or without JS. */
html:not(.app-ready),html:not(.app-ready) body{height:auto;overflow:auto}
html:not(.app-ready) #main{position:relative}
html:not(.app-ready) .view{height:auto;min-height:100svh;overflow:visible}
html:not(.app-ready) .corners{position:relative;margin-top:60px;padding-bottom:24px}
html:not(.app-ready) .edge-bottom{display:none}

/* Original ASTOX artwork, unchanged in color and proportions. */
.identity-logo{display:block;width:110px;height:auto;margin:0 auto 4px;object-fit:contain}.identity span{display:block}.tray-item.current p{text-decoration:none}.contact-channels a{border-bottom:0}

html[data-theme="daten-sicherheit"] .identity-logo{background:#fff;border-radius:3px;padding:4px}

/* Quiet location labels; service descriptions carry the information. */
.corners{font-size:11px;line-height:14px;font-weight:400;letter-spacing:0}
@media(max-width:900px){.corners{font-size:10px;line-height:13px;font-weight:400;letter-spacing:0;left:18px;right:18px;bottom:calc(12px + env(safe-area-inset-bottom));gap:12px;color:color-mix(in srgb,var(--fg) 70%,var(--bg))}.edge-bottom{height:64px}}

@media(max-width:900px){.gallery{padding-top:70px}}

/* Menu motion: one lightweight panel movement, with no text-blur animation. */
.mobile-menu,.service-tray{animation-duration:.52s}
.mobile-menu.closing,.service-tray.closing{animation:none}
.mobile-menu[open] .menu-modes a,.mobile-menu[open] .menu-links a,.mobile-menu[open] .menu-bottom a,.service-tray[open] .tray-item{animation-duration:.36s;animation-delay:calc(36ms + var(--menu-order,0) * 14ms)}
.closing .menu-modes,.closing .menu-links,.closing .menu-bottom,.closing .tray-items{animation:none}
.menu-backdrop{transition:opacity .3s ease,visibility 0s .3s}
.menu-is-closing .menu-backdrop{opacity:0;transition:opacity .3s ease}

@media(prefers-reduced-motion:reduce){.mobile-menu,.service-tray,.mobile-menu *, .service-tray *, .menu-backdrop{animation:none!important;transition:none!important}}

@media(max-width:900px){
 .about-profile-portrait{width:144px;margin-bottom:22px}
 .about-competencies{grid-template-columns:1fr}
 .about-competencies>div{padding:20px 0;border-left:0;border-top:1px solid var(--line)}
 .about-competencies>div:first-child{padding-top:0;border-top:0}
 .about-competencies>div:last-child{padding-bottom:0}
}
