:root{--ink:#203c3c;--muted:#526664;--teal:#537f82;--coral:#ed5145;--paper:#f8f9f6;--line:#dbe2dd;--sans:Inter,"Noto Sans KR","Apple SD Gothic Neo","Malgun Gothic",system-ui,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);line-height:1.75;word-break:keep-all;overflow-wrap:break-word}a{color:inherit;text-decoration:none}button{font:inherit}img{max-width:100%;height:auto}svg{display:block}a,button{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:3px solid var(--coral);outline-offset:5px}.container{max-width:1240px;width:calc(100% - 96px);margin:auto}.skip{position:fixed;top:-80px;left:20px;z-index:99;background:white;padding:12px 20px}.skip:focus{top:10px}.header{position:sticky;top:0;z-index:20;background:rgba(248,249,246,.96);border-bottom:1px solid var(--line)}.header-inner{height:92px;display:flex;align-items:center;justify-content:space-between;gap:32px}.brand{display:flex;flex-shrink:0;align-items:center}.brand img{width:154px;display:block}.navigation{display:flex;gap:32px;margin-left:auto;font-size:14px;font-weight:600}.navigation a:hover,.language:hover,.text-link:hover{color:var(--coral)}.header-actions{display:flex;align-items:center;gap:16px}.language{border-left:1px solid var(--line);padding-left:24px;font-size:12px;font-weight:700}.menu-toggle{display:none}.hero{display:grid;grid-template-columns:1.15fr 1fr;gap:45px;align-items:center;padding-top:86px;padding-bottom:65px}.eyebrow{font-size:11px;font-weight:700;letter-spacing:1.6px;margin:0 0 24px;color:var(--teal);display:flex;gap:10px;align-items:center}.signal-dot{width:7px;height:7px;background:var(--coral);border-radius:50%}h1{font-size:clamp(34px,3.5vw,51px);line-height:1.35;letter-spacing:-2.5px;margin:0 0 25px;font-weight:750}h1 span{color:var(--teal)}.intro{font-size:16px;color:var(--muted);line-height:1.95}.buttons{display:flex;align-items:center;gap:26px;margin-top:34px;flex-wrap:wrap}.button{display:inline-flex;gap:30px;align-items:center;justify-content:space-between;font-size:14px;font-weight:600;padding:13px 21px;border-radius:3px;transition:background .15s}.primary{background:var(--coral);color:white}.primary:hover{background:#cd3d33}.text-link{font-size:13px;font-weight:600;display:inline-flex;gap:16px}.hero-foot{font-family:monospace;font-size:10px;letter-spacing:1.3px;margin-top:58px;color:var(--muted)}.system-visual{background:#eef2ec;border:1px solid #d5ded5;position:relative;padding:20px 19px 16px;border-radius:5px;box-shadow:15px 15px 0 #e8ede6;transform:rotate(-1.5deg)}.visual-top,.visual-bottom{display:flex;align-items:center;justify-content:space-between;font-family:monospace;font-size:9px;letter-spacing:.5px;gap:8px}.visual-badge{border:1px solid #bacdc3;padding:3px 7px;border-radius:3px}.system-svg{width:100%;margin:12px 0}.visual-bottom{border-top:1px solid #ccd9cc;padding-top:13px}.visual-bottom i{display:inline-block;width:6px;height:6px;background:var(--coral);border-radius:50%;margin-right:7px}.visual-caption{font-size:10px;color:var(--muted);margin:9px 0 0}.expertise-strip{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.expertise-strip .container{display:grid;grid-template-columns:repeat(4,1fr);padding:22px 0;gap:20px}.expertise-strip span{font-size:13px;color:var(--muted);display:flex;align-items:center;gap:12px}.expertise-strip span:before{content:'+';font-size:20px;color:var(--teal)}.section{padding-top:100px;padding-bottom:100px}h2{font-size:clamp(28px,3vw,40px);line-height:1.45;letter-spacing:-1.5px;margin:0;font-weight:700}.about{display:grid;grid-template-columns:1fr 1fr;gap:35px 75px}.about-copy{padding-top:28px;color:var(--muted);font-size:15px}.about-copy p{margin:0 0 20px}.facts{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr 1.4fr;border-top:1px solid var(--line);padding-top:30px;margin-top:20px;gap:25px}.facts div{display:flex;flex-direction:column;border-right:1px solid var(--line);padding-right:15px}.facts div:last-child{border:0}.facts strong{font-size:36px;letter-spacing:-1px;line-height:1.5;font-weight:600}.facts div:last-child strong{font-size:25px;line-height:2.16}.facts span{font-size:12px;color:var(--muted)}.capabilities{background:#edf1ed}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:50px;margin-bottom:44px}.section-heading>p{font-size:14px;color:var(--muted);max-width:340px;margin:0}.capabilities-list{display:grid;grid-template-columns:repeat(6,1fr);gap:0 30px}.capability{grid-column:span 2;border-top:1px solid #c8d3cb;padding:28px 0;display:flex;gap:20px}.capability:nth-child(n+4){grid-column:span 3}.number{font-family:monospace;font-size:12px;color:var(--teal);padding-top:3px}.micro{font-size:10px;font-weight:700;letter-spacing:1.2px;color:var(--teal);margin:0 0 12px}.capability h3,.project h3{font-size:21px;line-height:1.45;letter-spacing:-.6px;margin:0 0 14px}.capability p:not(.micro){font-size:14px;color:var(--muted);margin-bottom:22px}.tech{font-family:monospace;font-size:10px;line-height:1.8;color:var(--teal);overflow-wrap:anywhere;word-break:normal}.featured{background:#244849;color:#f7f9f6;display:grid;grid-template-columns:1.1fr 1fr;gap:50px;border-radius:5px;padding:46px;margin-bottom:42px}.featured .eyebrow{color:#a9ccc2}.featured h3{font-size:34px;line-height:1.4;margin:0 0 22px;letter-spacing:-1.1px}.featured-copy>p:not(.eyebrow){font-size:14px;color:#d2dfd8}.status{display:inline-block;padding:4px 9px;font-size:10px;border:1px solid #c5d3c9;border-radius:3px;color:var(--teal)}.featured .status{color:#cde4d7;border-color:#648780;margin-top:10px}.featured .feature-detail{font-size:12px!important;line-height:1.9}.featured .tech{font-size:10px!important;color:#b7d0c7!important;margin-top:23px}.route-visual{align-self:center;background:#335858;border:1px solid #66817a;border-radius:5px;padding:17px;color:#d4e3db;min-width:0}.route-top{display:flex;justify-content:space-between;font:10px monospace;letter-spacing:1px}.route-top span{color:#f19c8d}.route-map{position:relative;margin:18px 0;background:repeating-linear-gradient(0deg,transparent,transparent 25px,#486969 26px),repeating-linear-gradient(90deg,transparent,transparent 25px,#486969 26px);aspect-ratio:360/280;border:1px solid #64827a}.route-map svg{position:relative;z-index:2;width:100%;height:100%}.room{position:absolute;border:1px solid #6d8780;background:#3d6160}.room-one{top:8%;left:7%;width:30%;height:50%}.room-two{bottom:8%;right:7%;width:35%;height:45%}.room-three{top:8%;right:7%;width:28%;height:16%}.map-start,.map-end{position:absolute;font-size:10px;z-index:3}.map-start{left:9%;bottom:8%}.map-end{right:7%;top:35%;color:#ffb2a7}.route-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;font-size:10px}.route-steps b{color:#ffab9f;display:block;font-family:monospace}.route-visual>p{font-size:9px;margin:15px 0 0;color:#c0d2c9}.projects-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}.project{border-top:1px solid var(--line);padding-top:25px;display:flex;align-items:flex-start;flex-direction:column}.project>p:not(.micro):not(.tech){font-size:14px;color:var(--muted);margin:20px 0}.project .tech{margin-top:auto;padding-top:5px}.project h3{font-size:20px}.contact{background:#eaf0e9;border-top:1px solid var(--line)}.contact-inner{display:grid;grid-template-columns:1fr 1fr;gap:80px}.contact h2{margin-bottom:23px}.contact p:not(.eyebrow){font-size:14px;color:var(--muted)}.contact .button{margin-top:18px}.contact-details{padding-top:10px}.contact-details h3{font-size:20px;margin:0 0 20px}dl{margin:0}dl>div{display:grid;grid-template-columns:70px 1fr;gap:20px;padding:16px 0;border-top:1px solid #cbd6cc;font-size:14px}dt{color:var(--muted);font-size:12px}dd{margin:0}dd a:hover{text-decoration:underline}address{font-style:normal;font-size:13px}.footer{padding-top:35px;padding-bottom:35px;display:flex;justify-content:space-between;gap:25px}.footer img{width:109px;display:block}.footer p{font-size:11px;color:var(--muted);margin-bottom:0}.footer-end{display:flex;align-items:flex-end;gap:28px;font-size:10px;color:var(--muted)}html[lang=en] h1{font-size:clamp(34px,3.5vw,48px);letter-spacing:-1.8px}html[lang=en] h2{letter-spacing:-1px}html[lang=en] .navigation{gap:22px}
@media(min-width:1500px){.hero{padding-top:110px;padding-bottom:90px}}@media(max-width:1000px){.container{width:calc(100% - 56px)}.hero{gap:25px;padding-top:60px}.header-inner{gap:20px}.navigation{gap:20px}.brand img{width:130px}h1{font-size:36px}.featured{gap:25px;padding:30px}.featured h3{font-size:29px}.contact-inner{gap:40px}.projects-grid{grid-template-columns:repeat(2,1fr)}.capabilities-list{grid-template-columns:repeat(2,1fr)}.capability,.capability:nth-child(n+4){grid-column:span 1}.capability:last-child{grid-column:span 2}.system-visual{padding:15px}.visual-badge{display:none}}
@media(max-width:760px){html{scroll-padding-top:85px}.container{width:calc(100% - 40px)}.header-inner{height:72px}.brand img{width:125px}.header-actions{gap:20px}.language{padding-left:0;border:0}.menu-toggle{display:flex;flex-direction:column;gap:6px;width:32px;height:32px;align-items:center;justify-content:center;border:0;background:transparent;cursor:pointer}.menu-toggle span{width:22px;height:2px;background:var(--ink);transition:transform .2s}.menu-toggle[aria-expanded=true] span:first-child{transform:translateY(4px) rotate(45deg)}.menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-4px) rotate(-45deg)}.navigation{display:none;position:absolute;left:0;right:0;top:72px;background:var(--paper);padding:20px;border-bottom:1px solid var(--line);margin:0;gap:0!important}.navigation.open{display:flex;flex-direction:column}.navigation a{padding:12px 0}.hero{grid-template-columns:1fr;padding-top:48px;padding-bottom:42px;gap:40px}.hero h1{font-size:clamp(30px,6.6vw,43px);letter-spacing:-1.6px}html[lang=en] h1{font-size:clamp(31px,7vw,44px)}.intro{font-size:14px}.eyebrow{font-size:10px;margin-bottom:19px}.hero-foot{margin-top:30px;font-size:9px}.buttons{gap:20px;margin-top:26px}.system-visual{transform:none;max-width:500px;width:100%;margin:auto;box-shadow:7px 7px 0 #e8ede6}.system-svg{max-height:320px}.expertise-strip .container{grid-template-columns:repeat(2,1fr);gap:12px;padding:17px 0}.expertise-strip span{font-size:11px}.section{padding-top:62px;padding-bottom:62px}.about{grid-template-columns:1fr;gap:15px}.about-copy{padding-top:10px;font-size:14px}.facts{grid-template-columns:1fr 1fr;gap:24px;margin-top:0}.facts div:nth-child(2){border:0}.facts div:last-child{grid-column:1/-1;border-top:1px solid var(--line);padding-top:18px}.facts strong{font-size:32px}.facts div:last-child strong{font-size:23px}.section-heading{display:block;margin-bottom:32px}.section-heading>p{margin-top:18px}.capabilities-list{grid-template-columns:1fr}.capability,.capability:nth-child(n+4),.capability:last-child{grid-column:span 1}.capability{padding:23px 0;gap:17px}.capability h3{font-size:20px}.capability p:not(.micro){margin-bottom:12px}.featured{grid-template-columns:1fr;padding:26px 22px;gap:26px}.featured h3{font-size:29px}.route-visual{max-width:430px;width:100%;margin:auto}.projects-grid{grid-template-columns:1fr;gap:26px}.project h3{font-size:21px}.project>p:not(.micro):not(.tech){margin:15px 0}.contact-inner{grid-template-columns:1fr;gap:35px}.footer{flex-direction:column;gap:26px}.footer-end{justify-content:space-between;gap:15px;flex-wrap:wrap}dl>div{grid-template-columns:58px 1fr;gap:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
@media print{.header{position:static}.menu-toggle,.buttons,.contact .button,.footer-end>a{display:none}.section{padding:25px 0}.container{width:95%}.featured{break-inside:avoid}.project{break-inside:avoid}.navigation{display:flex}.system-visual{box-shadow:none;transform:none}body{background:white}}
/* Business categories and grouped project portfolio */
.business-categories{display:grid;grid-template-columns:1fr 1fr;gap:40px}.business-category{border-top:1px solid #c8d3cb;padding-top:28px}.business-category h3{font-size:25px;letter-spacing:-.7px;margin:0 0 14px}.business-category>p:not(.micro){font-size:14px;color:var(--muted)}.business-category ul{list-style:none;margin:25px 0 0;padding:0}.business-category li{padding:18px 0;border-top:1px solid #d2ddd3}.business-category h4{font-size:16px;margin:0 0 7px}.business-category li p{font-size:14px;color:var(--muted);margin:0}.project-group-title{font-size:20px;margin:38px 0 23px;letter-spacing:-.5px}.own-projects{margin-bottom:55px}.footer .legal{font-size:11px;line-height:1.9}.legal span{padding:0 7px;color:#a1b1a8}@media(max-width:760px){.business-categories{grid-template-columns:1fr;gap:30px}.business-category h3{font-size:23px}.project-group-title{font-size:18px}.own-projects{margin-bottom:40px}}
.diagram-legend{display:flex;align-items:center;flex-wrap:wrap;gap:14px;font-family:var(--sans);font-size:11px;letter-spacing:0}.diagram-legend span{display:inline-flex;align-items:center;gap:5px}.diagram-legend svg{flex-shrink:0}
/* Company, services and directions pages */
.navigation a[aria-current=page]{color:var(--coral)}.page-intro{font-size:16px;color:var(--muted);max-width:660px}.company-info{padding-bottom:80px;max-width:850px}.company-info .contact-details{max-width:700px}.company-registration{font-size:13px;margin:25px 0;color:var(--muted)}.service-summaries{display:grid;grid-template-columns:repeat(3,1fr);gap:25px}.service-summary{border-top:1px solid #c8d3cb;padding:22px 0;display:grid;grid-template-columns:1fr auto;gap:8px}.service-summary .micro{grid-column:1/-1}.service-summary h3{font-size:19px;line-height:1.5;margin:0}.service-summary:hover h3{color:var(--coral)}.service-details{margin:45px 0}.service-detail{display:grid;grid-template-columns:1fr 1fr;gap:50px;border-top:1px solid var(--line);padding:32px 0;align-items:center}.service-detail h2{font-size:25px}.service-detail p:not(.micro){font-size:14px;color:var(--muted)}.work-gallery{display:flex;flex-wrap:wrap;align-items:flex-start;gap:12px;margin-top:18px;width:100%}.work-image{margin:0;flex:1 1 100px;max-width:320px;min-width:0}.work-image a{display:flex;align-items:center;justify-content:center;height:150px;background:#eef1eb;border:1px solid #d4ded4;border-radius:3px;padding:8px}.work-image img{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}.work-image figcaption{font-size:10px;margin-top:6px;line-height:1.6;color:var(--muted)}.featured .work-image a{background:#e9eee8}.featured .work-image figcaption{color:#c8dcd0}.projects-grid .work-gallery{margin-top:auto;padding-top:16px}.service-detail .work-gallery{margin:0}.service-detail .work-image a{height:180px}.location-layout{display:grid;grid-template-columns:.85fr 1.15fr;gap:50px;margin-top:40px}.location-copy h2{font-size:24px;margin-bottom:18px}.location-copy address{font-size:15px}.transport{margin:28px 0}.transport>div{grid-template-columns:85px 1fr}.travel-note{font-size:11px;color:var(--muted)}.map-panel iframe{display:block;width:100%;height:410px;border:1px solid var(--line);border-radius:4px;background:#edf1ed}.map-panel>p{font-size:11px;color:var(--muted)}
@media(min-width:761px) and (max-width:1100px){.navigation,html[lang=en] .navigation{gap:12px;font-size:12px}.header-inner{gap:15px}.language{padding-left:12px}.brand img{width:110px}}
@media(max-width:760px){.service-summaries{grid-template-columns:1fr 1fr;gap:18px}.service-summary h3{font-size:16px}.service-detail,.location-layout{grid-template-columns:1fr;gap:20px}.service-detail h2{font-size:22px}.service-detail .work-image a{height:150px}.map-panel iframe{height:330px}.company-info{padding-bottom:60px}.transport>div{grid-template-columns:65px 1fr}.work-image a{height:140px}}
@media(max-width:380px){.service-summaries{grid-template-columns:1fr}.work-gallery{gap:8px}.work-image{flex-basis:85px}}
/* Combined company introduction and directions */
.company-intro-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:start}.company-subtitle{font-size:20px;line-height:1.7;max-width:400px;color:var(--muted)}.company-intro .about-copy{padding-top:0}.company-photo-strip{display:grid;grid-template-columns:1fr 1.4fr .8fr;gap:22px;margin-top:45px}.company-photo-strip figure{margin:0;min-width:0}.company-photo-strip a{height:190px;display:flex;align-items:center;justify-content:center;background:#eef1eb;border:1px solid var(--line);border-radius:4px;padding:12px}.company-photo-strip img{width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain}.company-photo-strip figcaption{font-size:11px;color:var(--muted);margin-top:8px}.company-overview{padding:65px 0;background:#edf1ed;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.company-overview-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px}.company-overview-grid>div>p:not(.eyebrow){font-size:14px;color:var(--muted);max-width:380px;margin:22px 0}.company-overview .contact-details{padding-top:0}.company-overview dt{overflow-wrap:normal}.company-overview dl>div{grid-template-columns:125px 1fr}.company-location .location-copy h3{font-size:23px;margin:0 0 18px}.company-location .map-panel iframe{height:420px}html[lang=en] .company-overview dl>div{grid-template-columns:130px 1fr}
@media(max-width:760px){.company-intro-grid,.company-overview-grid{grid-template-columns:1fr;gap:18px}.company-subtitle{font-size:18px}.company-photo-strip{grid-template-columns:1fr 1fr;gap:14px;margin-top:30px}.company-photo-strip figure:last-child{grid-column:1/-1;max-width:190px}.company-photo-strip a{height:140px}.company-overview{padding:45px 0}.company-overview-grid{gap:35px}.company-overview dl>div,html[lang=en] .company-overview dl>div{grid-template-columns:110px 1fr;gap:12px}.company-location .map-panel iframe{height:330px}}
/* Shared company details at the bottom of every page */
.company-footer{display:grid;grid-template-columns:1.2fr 1fr;gap:25px 60px;border-top:1px solid var(--line);padding-top:40px;padding-bottom:28px}.company-footer .footer-company-name{font-size:13px;font-weight:600;color:var(--ink);margin-top:18px}.company-footer address{font-size:11px;color:var(--muted);line-height:1.9;margin-top:12px}.footer-contact{padding-top:5px}.footer-contact p{display:flex;gap:15px;margin:0 0 12px;font-size:12px}.footer-contact p span{min-width:45px}.footer-contact a:hover{text-decoration:underline}.footer-contact .text-link{font-size:11px;margin-top:7px}.company-footer .footer-end{grid-column:1/-1;display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:20px;margin-top:7px}
@media(max-width:760px){.company-footer{grid-template-columns:1fr;gap:24px}.company-footer .footer-end{grid-column:1}.footer-contact{padding-top:0}}
/* Compact company images and service-specific development examples */
.company-intro .company-photo-strip{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}.company-intro .company-photo-strip figure{flex:0 1 115px;max-width:115px;min-width:0}.company-intro .company-photo-strip figure:last-child{max-width:115px}.company-intro .company-photo-strip a{height:100px;padding:5px}.company-intro .company-photo-strip figcaption{font-size:9px}.service-case,.service-detail .feature-detail{font-size:12px!important;border-left:2px solid var(--teal);padding-left:12px;margin-top:20px}.app-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.app-gallery .work-image{max-width:none}.service-detail .app-gallery .work-image a{height:160px}.additional-work{border-top:1px solid var(--line);padding-top:30px;margin-bottom:40px}.additional-work>h2{font-size:25px;margin-bottom:25px}.additional-work-grid{display:grid;grid-template-columns:1fr 1fr;gap:35px}.home-work-gallery{max-width:900px;gap:24px}.home-work-gallery .work-image a{height:170px}
@media(max-width:760px){.company-intro .company-photo-strip figure{flex-basis:calc(25% - 8px)}.company-intro .company-photo-strip a{height:85px}.app-gallery{grid-template-columns:repeat(3,1fr)}.service-detail .app-gallery .work-image a{height:130px}.additional-work-grid{grid-template-columns:1fr}.home-work-gallery{gap:12px}.home-work-gallery .work-image a{height:130px}}
/* Horizontal photo galleries */
.company-intro .company-photo-strip,.work-gallery,.app-gallery{display:flex;flex-wrap:nowrap;overflow-x:auto;gap:14px;padding-bottom:12px;scroll-snap-type:x proximity;scrollbar-width:thin;scrollbar-color:var(--teal) #e5ebe4;overscroll-behavior-x:contain}.company-intro .company-photo-strip figure,.work-gallery .work-image{flex:0 0 190px;max-width:190px;min-width:0;scroll-snap-align:start}.company-intro .company-photo-strip figure,.company-intro .company-photo-strip figure:last-child{flex:0 0 115px;max-width:115px}.service-detail .app-gallery .work-image{flex:0 0 115px;max-width:115px}.home-work-gallery{max-width:100%}.work-gallery:focus-visible,.company-photo-strip:focus-visible{outline:2px solid var(--teal);outline-offset:4px}
@media(max-width:760px){.work-gallery .work-image{flex-basis:170px;max-width:170px}.company-intro .company-photo-strip figure,.company-intro .company-photo-strip figure:last-child{flex-basis:105px;max-width:105px}.service-detail .app-gallery .work-image{flex-basis:105px;max-width:105px}}
/* Arrow-operated photo carousels: constrain grid children and hide scrollbars. */
.company-intro-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.service-detail{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.about-copy,.service-detail>div,.gallery-shell{min-width:0}.gallery-shell{width:100%;max-width:380px}.company-intro .gallery-shell{max-width:340px;margin-top:24px}.gallery-shell .company-photo-strip{margin-top:0}.work-gallery,.company-intro .company-photo-strip{width:100%;max-width:100%;scrollbar-width:none;padding-bottom:4px}.work-gallery::-webkit-scrollbar,.company-photo-strip::-webkit-scrollbar{display:none}.gallery-controls{display:flex;justify-content:flex-end;gap:8px;margin-top:10px}.gallery-controls button{display:flex;align-items:center;justify-content:center;width:34px;height:30px;padding:0;border:1px solid #b5c6be;border-radius:3px;background:var(--paper);color:var(--ink);font-size:18px;cursor:pointer}.gallery-controls button:hover:not(:disabled){background:#e5ede6;border-color:var(--teal)}.gallery-controls button:disabled{opacity:.35;cursor:default}.projects-grid .gallery-shell{margin-top:auto}.service-detail .gallery-shell .work-gallery{margin:0}
@media(max-width:760px){.company-intro-grid,.service-detail{grid-template-columns:minmax(0,1fr)}.gallery-shell{max-width:310px}.company-intro .gallery-shell{max-width:290px}.gallery-controls button{width:38px;height:34px}}
/* Indexed sliders work with mouse buttons without native horizontal scrolling. */
.photo-slider{width:100%;max-width:320px;min-width:0}.company-intro .photo-slider{max-width:260px;margin-top:24px}.photo-viewport{overflow:hidden;width:100%;touch-action:pan-y}.photo-slider .work-gallery,.company-intro .photo-slider .company-photo-strip{display:flex;flex-wrap:nowrap;gap:14px;width:100%;max-width:none;overflow:visible;margin:0;padding:0;scroll-snap-type:none;transition:transform .25s ease}.photo-slider .work-gallery .work-image,.company-intro .photo-slider .company-photo-strip figure,.company-intro .photo-slider .company-photo-strip figure:last-child,.service-detail .photo-slider .app-gallery .work-image{flex:0 0 calc((100% - (var(--photo-slots) - 1)*14px)/var(--photo-slots));max-width:none;min-width:0}.photo-slider .gallery-controls{align-items:center;justify-content:space-between}.gallery-position{font:11px var(--sans);color:var(--muted)}.projects-grid .photo-slider{margin-top:auto}.service-detail .photo-slider .work-gallery{margin:0}@media(prefers-reduced-motion:reduce){.photo-slider .work-gallery,.company-intro .photo-slider .company-photo-strip{transition:none}}
/* Mouse and touch dragging, with ordinary image clicks preserved. */
.photo-viewport,.photo-viewport a{cursor:grab}.photo-viewport{user-select:none;-webkit-user-select:none}.photo-viewport img{-webkit-user-drag:none}.photo-viewport.is-dragging,.photo-viewport.is-dragging a{cursor:grabbing}.photo-viewport.is-dragging .work-gallery,.company-intro .photo-viewport.is-dragging .company-photo-strip{transition:none}
/* Larger company gallery spanning the introduction width. */
.company-intro-grid .about-copy{display:contents}.company-intro-grid .about-copy>p,.company-intro-grid .about-copy>.text-link{grid-column:2}.company-intro-grid>div:first-child{grid-column:1;grid-row:1 / span 3}.company-intro-grid{gap:18px 70px}.company-intro-grid .company-photo-strip,.company-intro-grid .photo-slider{grid-column:1/-1}.company-intro .photo-slider{max-width:860px;margin-top:28px}.company-intro .photo-slider .company-photo-strip a{height:240px;padding:12px}.company-intro .photo-slider .company-photo-strip figcaption{font-size:11px}.company-intro .company-photo-strip img{max-height:100%;max-width:100%}
@media(max-width:760px){.company-intro-grid>div:first-child{grid-column:1;grid-row:auto}.company-intro-grid .about-copy>p,.company-intro-grid .about-copy>.text-link{grid-column:1}.company-intro .photo-slider{max-width:100%}.company-intro .photo-slider .company-photo-strip a{height:180px;padding:8px}}
/* Centered, three-photo company carousel on desktop and mobile. */
.company-intro .photo-slider{max-width:1000px;margin:28px auto 0}.company-intro .photo-slider .gallery-controls{justify-content:center;gap:22px}.company-intro .photo-slider .company-photo-strip a{height:230px}.company-intro .photo-slider .company-photo-strip figure{text-align:center}
@media(max-width:760px){.company-intro .photo-slider{max-width:100%}.company-intro .photo-slider .company-photo-strip a{height:140px;padding:5px}.company-intro .photo-slider .company-photo-strip{gap:10px}.company-intro .photo-slider .company-photo-strip figure,.company-intro .photo-slider .company-photo-strip figure:last-child{flex-basis:calc((100% - 20px)/3)}.company-intro .photo-slider .company-photo-strip figcaption{font-size:9px}}
/* Main development gallery fills the entire content width. */
.home-photo-slider{width:100%;max-width:none}.home-photo-slider .home-work-gallery{width:100%;max-width:none}.home-photo-slider .home-work-gallery .work-image a{height:210px}.home-photo-slider .gallery-controls{justify-content:center;gap:24px}
@media(max-width:760px){.home-photo-slider{max-width:none}.home-photo-slider .home-work-gallery .work-image a{height:165px}}
/* Service galleries fill their column instead of stopping at 320px. */
.service-detail>.photo-slider{width:100%;max-width:none;justify-self:stretch}.service-detail>.work-gallery{width:100%;max-width:none}.service-detail .photo-slider .work-image a{height:220px}.service-detail .photo-slider .app-gallery .work-image a{height:220px}.service-detail .gallery-controls{justify-content:center;gap:22px}
@media(max-width:760px){.service-detail .photo-slider .work-image a,.service-detail .photo-slider .app-gallery .work-image a{height:180px}}
