.projects-shell{background:#fff;color:#000;font-family:PingFang SC,Noto Sans CJK SC,Microsoft YaHei,Arial,Helvetica,sans-serif;height:100vh;min-height:690px;overflow:hidden;position:relative;width:100%}.projects-shell a{color:inherit;text-decoration:none}.projects-shell button{background:transparent;border:0;border-radius:0;color:inherit;cursor:pointer;font:inherit}.projects-shell .sector-label,.projects-shell .text-button,.projects-shell .view-project{display:inline-block;font-weight:700;line-height:1.05;position:relative}.projects-shell .sector-label:after,.projects-shell .text-button:after,.projects-shell .view-project:after{background:currentColor;bottom:-7px;content:"";height:1px;left:0;position:absolute;transform:scaleX(.35);transform-origin:left center;transition:transform .18s ease;width:100%}.projects-shell .sector-label.active:after,.projects-shell .sector-label:hover:after,.projects-shell .text-button:hover:after,.projects-shell .view-project:hover:after{transform:scaleX(1)}.projects-shell .edge-control{pointer-events:auto;position:fixed;top:calc(var(--app-bar-height, 4rem) + 24px);z-index:25}.projects-shell .edge-control-left{left:76px}.projects-shell .edge-control-right{right:76px}.projects-shell .text-button{font-size:24px;padding:0}.projects-shell .ring-view{cursor:grab;inset:0;overflow:hidden;position:absolute}.projects-shell .ring-view.is-dragging{cursor:grabbing}.projects-shell .project-ring{height:100%;left:50%;min-height:680px;min-width:0;outline:none;position:absolute;top:50%;transform:translate(-50%,-50%);transform-style:preserve-3d;width:100%;z-index:4}.projects-shell .ring-canvas{display:block;height:100%;width:100%}.projects-shell .project-preview{left:50%;pointer-events:none;position:absolute;text-align:center;top:50%;transform:translate(-50%,-50%);width:min(36vw,380px);z-index:12}.projects-shell .project-preview h1{font-size:clamp(24px,2.05vw,30px);font-weight:700;letter-spacing:0;line-height:1.08;margin:0 auto 30px;max-width:560px}.projects-shell .project-preview.is-brand{transform:translate(-50%,-50%);width:min(72vw,900px)}.projects-shell .brand-logo{display:none;height:auto;margin:0 auto;width:min(38vw,520px)}.projects-shell .project-preview.is-brand .brand-logo{display:block}.projects-shell .project-preview.is-brand .preview-image-link,.projects-shell .project-preview.is-brand .view-project,.projects-shell .project-preview.is-brand h1,.projects-shell .project-preview.is-brand p{display:none}.projects-shell .preview-image-link{aspect-ratio:16/9;background:#eee;display:block;pointer-events:auto;width:100%}.projects-shell .preview-image-link img{display:block;height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.projects-shell .project-preview p{font-size:16px;font-weight:700;margin:15px 0 0;position:relative;z-index:2}.projects-shell .view-project{display:none;font-size:18px;margin-top:24px;pointer-events:auto}.projects-shell .sector-labels{inset:0;pointer-events:none;position:absolute;z-index:15}.projects-shell .sector-label{font-size:clamp(15px,1.2vw,19px);padding:3px 0;pointer-events:auto;position:absolute;white-space:nowrap;z-index:2}.projects-shell .sector-label sup{font-size:9px;margin-left:3px}.projects-shell .sector-label:before{background:#000;border-radius:50%;content:"";height:18px;left:-10px;opacity:0;position:absolute;top:-2px;transform:scale(.55);transition:opacity .14s ease,transform .14s ease;width:18px}.projects-shell .sector-label.active:before{opacity:1;transform:scale(1)}.projects-shell .grid-view{background:#fff;inset:150px 0 28px 26px;overflow-y:auto;position:absolute;z-index:18}.projects-shell .grid-list{display:grid;gap:28px 18px;grid-template-columns:repeat(4,minmax(0,1fr));padding-bottom:42px;padding-right:26px}.projects-shell .grid-card{display:block}.projects-shell .grid-media{aspect-ratio:16/10;background:#eee;overflow:hidden;width:100%}.projects-shell .grid-card img{display:block;height:100%;-o-object-fit:cover;object-fit:cover;transition:transform .22s ease;width:100%}.projects-shell .grid-card:hover img{transform:scale(1.1)}.projects-shell .grid-card span{display:block;font-size:17px;font-weight:700;line-height:1.12;margin-top:9px}.projects-shell .grid-card em{color:#555;display:block;font-size:13px;font-style:normal;font-weight:400;margin-top:3px}.projects-shell .filter-panel{background:#000;color:#fff;height:min(82vh,760px);inset:auto 0 0;position:fixed;transform:translateY(101%);transition:transform .43s cubic-bezier(.7,0,.15,1);z-index:60}.projects-shell .filter-panel.is-open{transform:translateY(0)}.projects-shell .filter-panel-inner{height:100%;overflow-y:auto;padding:28px}.projects-shell .filter-head{display:flex;justify-content:space-between;margin-bottom:28px}.projects-shell .invert{color:#fff}.projects-shell .filter-group{border-top:1px solid hsla(0,0%,100%,.35)}.projects-shell .filter-group:last-child{border-bottom:1px solid hsla(0,0%,100%,.35)}.projects-shell .filter-toggle{align-items:center;display:flex;justify-content:space-between;padding:22px 0;text-align:left;width:100%}.projects-shell .filter-toggle span{font-size:clamp(32px,5.4vw,86px);font-weight:700;line-height:.95}.projects-shell .filter-toggle b{font-size:28px;font-weight:700}.projects-shell .filter-options{display:grid;gap:13px 20px;grid-template-columns:repeat(4,minmax(0,1fr));max-height:0;overflow:hidden;transition:max-height .26s ease,padding .26s ease}.projects-shell .filter-group.is-open .filter-options{max-height:420px;padding:0 0 28px}.projects-shell .filter-option{align-items:center;color:#fff;cursor:pointer;display:flex;font-size:16px;gap:9px;min-height:26px}.projects-shell .filter-option input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:1px solid #fff;border-radius:0;height:16px;margin:0;width:16px}.projects-shell .filter-option input:checked{background:#fff;box-shadow:inset 0 0 0 3px #000}.projects-shell .filter-option small{opacity:.65}@media (max-width:900px){.projects-shell{min-height:100svh}.projects-shell .edge-control{top:calc(var(--app-bar-height, 4rem) + 18px)}.projects-shell .edge-control-left{left:44px}.projects-shell .edge-control-right{right:44px}.projects-shell .text-button{font-size:18px}.projects-shell .project-ring{height:86vh;min-height:330px;min-width:0;transform:translate(-50%,-50%);width:150vw}.projects-shell .project-preview{transform:translate(-50%,-36%);width:min(78vw,330px)}.projects-shell .project-preview h1{font-size:clamp(27px,7.4vw,36px);margin-bottom:20px}.projects-shell .project-preview p{font-size:16px;margin-top:13px}.projects-shell .sector-labels{display:none}.projects-shell .grid-view{inset:126px 0 24px 18px}.projects-shell .grid-list{gap:22px 12px;grid-template-columns:repeat(1,minmax(0,1fr));padding-right:18px}.projects-shell .filter-panel{height:88vh}.projects-shell .filter-panel-inner{padding:22px 18px}.projects-shell .filter-options{grid-template-columns:repeat(1,minmax(0,1fr))}}
