.ct-portfolio,.ct-portfolio *,.ct-dashboard,.ct-dashboard *{box-sizing:border-box}.ct-portfolio{--ct-blue:#00a8df;--ct-ink:#263238;--ct-muted:#64727a;--ct-line:#e2e9ec;--ct-soft:#f5f8fa;padding:88px 24px;background:#fff;color:var(--ct-ink);font-family:inherit}.ct-portfolio__wrap{width:min(1180px,100%);margin:0 auto}.ct-portfolio__header{max-width:720px;margin:0 auto 44px;text-align:center}.ct-portfolio__eyebrow{margin:0 0 12px;color:var(--ct-blue);font-size:13px;font-weight:800;letter-spacing:2px;text-transform:uppercase}.ct-portfolio__header h2{margin:0 0 14px;color:var(--ct-ink);font-size:clamp(32px,4vw,46px);line-height:1.15}.ct-portfolio__header>p:last-child{margin:0;color:var(--ct-muted);font-size:17px;line-height:1.7}.ct-portfolio__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.ct-project-card{overflow:hidden;border:1px solid var(--ct-line);border-radius:12px;background:#fff;box-shadow:0 12px 34px rgba(38,50,56,.07);animation:ct-card-in .35s ease both}.ct-project-card__image{position:relative;aspect-ratio:16/10;overflow:hidden;background:#e9eef0}.ct-project-card__image>img{display:block;width:100%;height:100%;object-fit:cover;transition:opacity .18s ease}.ct-project-card__stage{position:absolute;left:14px;bottom:14px;padding:8px 12px;border-radius:999px;background:rgba(32,42,48,.86);color:#fff;font-size:12px;font-weight:700}.ct-project-card__arrow{position:absolute;top:50%;display:grid;place-items:center;width:42px;height:42px;transform:translateY(-50%);border:0;border-radius:50%;background:rgba(255,255,255,.94);color:var(--ct-ink);font-size:28px;line-height:1;cursor:pointer;box-shadow:0 4px 15px rgba(0,0,0,.13)}.ct-project-card__arrow--prev{left:12px}.ct-project-card__arrow--next{right:12px}.ct-project-card__thumbs{display:flex;gap:9px;padding:12px 14px 0}.ct-project-card__thumb{position:relative;flex:1;min-width:0;overflow:hidden;padding:0;border:2px solid transparent;border-radius:7px;background:#fff;cursor:pointer;opacity:.7}.ct-project-card__thumb.is-active{border-color:var(--ct-blue);opacity:1}.ct-project-card__thumb img{display:block;width:100%;height:68px;object-fit:cover}.ct-project-card__thumb span{display:block;padding:5px 3px;color:var(--ct-ink);font-size:11px;font-weight:700;text-align:center}.ct-project-card__body{padding:20px 20px 22px}.ct-project-card__type{display:inline-block;margin-bottom:8px;color:#1288ae;font-size:11px;font-weight:800;letter-spacing:1.2px;text-transform:uppercase}.ct-project-card__body h3{margin:0 0 8px;color:var(--ct-ink);font-size:21px;line-height:1.25}.ct-project-card__location{margin:0 0 12px;color:var(--ct-muted);font-size:13px}.ct-project-card__location span{color:var(--ct-blue);font-size:16px}.ct-project-card__description{color:#58666d;font-size:14px;line-height:1.7}.ct-project-card__description>:last-child{margin-bottom:0}.ct-project-card__empty{display:grid;place-items:center;aspect-ratio:16/10;background:var(--ct-soft);color:var(--ct-muted);font-size:14px}.ct-portfolio__empty{padding:46px 20px;border:1px dashed #c9d5da;border-radius:12px;background:var(--ct-soft);text-align:center}.ct-portfolio__empty-mark{display:grid;place-items:center;width:48px;height:48px;margin:0 auto 14px;border-radius:50%;background:#e4f6fb;color:var(--ct-blue);font-size:27px}.ct-portfolio__empty h3{margin:0 0 8px;color:var(--ct-ink);font-size:21px}.ct-portfolio__empty p{margin:0;color:var(--ct-muted);font-size:15px}.ct-portfolio__loader{display:none;align-items:center;justify-content:center;gap:10px;padding:26px;color:var(--ct-muted);font-size:13px}.ct-portfolio__loader.is-visible{display:flex}.ct-portfolio__spinner{width:20px;height:20px;border:2px solid #dce8ec;border-top-color:var(--ct-blue);border-radius:50%;animation:ct-spin .7s linear infinite}.ct-portfolio__load-button{display:block;margin:28px auto 0;padding:13px 22px;border:0;border-radius:7px;background:var(--ct-blue);color:#fff;font-weight:700;cursor:pointer}.ct-portfolio__load-button[hidden]{display:none}.ct-portfolio__load-button:disabled{opacity:.55;cursor:wait}@keyframes ct-spin{to{transform:rotate(360deg)}}@keyframes ct-card-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
.ct-dashboard{--ct-blue:#00a8df;--ct-ink:#263238;--ct-muted:#64727a;--ct-line:#e2e9ec;--ct-soft:#f5f8fa;padding:48px 20px;background:var(--ct-soft);color:var(--ct-ink);font-family:inherit}.ct-dashboard__wrap{width:min(1050px,100%);margin:0 auto}.ct-dashboard__header{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:26px}.ct-dashboard__header h2{margin:0 0 8px;font-size:clamp(28px,4vw,38px);color:var(--ct-ink)}.ct-dashboard__header p:last-child{margin:0;color:var(--ct-muted)}.ct-dashboard__button{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:0 20px;border:0;border-radius:7px;background:var(--ct-blue);color:#fff!important;font:inherit;font-weight:750;text-decoration:none!important;cursor:pointer}.ct-dashboard__button:hover{background:#078ab4;color:#fff!important}.ct-dashboard__button--light{border:1px solid var(--ct-line);background:#fff;color:var(--ct-ink)!important}.ct-dashboard__form,.ct-dashboard__existing,.ct-dashboard__notice{padding:clamp(20px,4vw,34px);border:1px solid var(--ct-line);border-radius:12px;background:#fff;box-shadow:0 10px 28px rgba(38,50,56,.05)}.ct-dashboard__success{margin-bottom:18px;padding:14px 16px;border:1px solid #b9e4ce;border-radius:8px;background:#f0fbf5;color:#17633a}.ct-dashboard__fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.ct-dashboard__fields label,.ct-dashboard__uploads label{display:grid;gap:7px;color:var(--ct-ink);font-size:13px;font-weight:700}.ct-dashboard__fields input,.ct-dashboard__fields textarea{width:100%;min-height:45px;padding:11px 13px;border:1px solid #d5e0e4;border-radius:7px;background:#fbfcfd;font:inherit;font-weight:400}.ct-dashboard__fields textarea{min-height:110px;resize:vertical}.ct-dashboard__wide{grid-column:1/-1}.ct-dashboard__uploads{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:22px}.ct-dashboard__uploads label{min-height:118px;align-content:center;padding:16px;border:1px dashed #bacbd1;border-radius:8px;background:#f8fbfc}.ct-dashboard__uploads input{max-width:100%;font-size:12px;font-weight:400}.ct-dashboard__actions{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:22px}.ct-dashboard__publish{display:flex;align-items:center;gap:9px;color:var(--ct-muted);font-size:13px}.ct-dashboard__existing{margin-top:24px}.ct-dashboard__existing h3{margin:0 0 16px;font-size:20px}.ct-dashboard__list{display:grid;gap:8px}.ct-dashboard__row{display:grid;grid-template-columns:90px 1fr auto;align-items:center;gap:12px;padding:12px;border:1px solid var(--ct-line);border-radius:7px}.ct-dashboard__row a{color:#1188af;font-weight:700;text-decoration:none}.ct-dashboard__status{font-size:12px;color:var(--ct-muted)}.ct-dashboard__status--publish{color:#187443}.ct-dashboard__notice{text-align:center}.ct-dashboard__notice .ct-dashboard__button{margin-top:10px}
@media(max-width:900px){.ct-portfolio__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}}
@media(max-width:600px){.ct-portfolio{padding:64px 18px}.ct-portfolio__grid{grid-template-columns:1fr;gap:18px}.ct-portfolio__header{margin-bottom:30px}.ct-project-card__body{padding:18px}.ct-project-card__thumb img{height:60px}.ct-dashboard{padding:32px 14px}.ct-dashboard__header{align-items:flex-start;flex-direction:column}.ct-dashboard__fields,.ct-dashboard__uploads{grid-template-columns:1fr}.ct-dashboard__wide{grid-column:auto}.ct-dashboard__actions{align-items:stretch;flex-direction:column}.ct-dashboard__actions .ct-dashboard__button{width:100%}.ct-dashboard__row{grid-template-columns:1fr auto}.ct-dashboard__row .ct-dashboard__status{grid-column:1/-1}}
.ct-project-card{cursor:pointer;transition:transform .24s ease,box-shadow .24s ease}.ct-project-card:hover{transform:translateY(-5px);box-shadow:0 20px 46px rgba(24,42,52,.14)}.ct-project-card__open{display:inline-flex;align-items:center;gap:9px;margin-top:15px;padding:0;border:0;background:transparent;color:#078db8;font:inherit;font-size:13px;font-weight:800;cursor:pointer}.ct-project-card__open span{font-size:17px;transition:transform .2s ease}.ct-project-card__open:hover span{transform:translate(3px,-2px)}
body.ct-modal-open{overflow:hidden}.ct-project-modal,.ct-project-modal *{box-sizing:border-box}.ct-project-modal[hidden]{display:none}.ct-project-modal{position:fixed;z-index:999999;inset:0;display:grid;place-items:center;padding:28px;font-family:inherit}.ct-project-modal__backdrop{position:absolute;inset:0;background:rgba(10,20,27,.78);backdrop-filter:blur(8px);animation:ct-modal-fade .2s ease both}.ct-project-modal__dialog{position:relative;z-index:1;width:min(1120px,100%);max-height:min(850px,92vh);overflow:auto;border:1px solid rgba(255,255,255,.6);border-radius:20px;background:#fff;box-shadow:0 35px 100px rgba(0,0,0,.38);animation:ct-modal-rise .28s cubic-bezier(.2,.8,.2,1) both}.ct-project-modal__close{position:absolute;z-index:3;top:14px;right:14px;display:grid;place-items:center;width:44px;height:44px;border:1px solid rgba(20,35,43,.1);border-radius:50%;background:rgba(255,255,255,.94);color:#243239;font-size:28px;line-height:1;cursor:pointer;box-shadow:0 5px 18px rgba(0,0,0,.12);transition:transform .2s ease,background .2s ease}.ct-project-modal__close:hover{transform:rotate(90deg);background:#fff}.ct-project-modal__layout{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);min-height:540px}.ct-project-modal__media{display:flex;flex-direction:column;justify-content:center;min-width:0;padding:28px;background:linear-gradient(145deg,#15242c,#263a43)}.ct-project-modal__stage{position:relative;display:grid;place-items:center;min-height:360px;max-height:650px;aspect-ratio:4/3;overflow:hidden;border-radius:13px;background:#10191e}.ct-project-modal__stage img{display:block;width:100%;height:100%;max-height:650px;object-fit:contain}.ct-project-modal__counter{position:absolute;right:14px;bottom:14px;padding:7px 11px;border:1px solid rgba(255,255,255,.15);border-radius:999px;background:rgba(10,18,22,.72);color:#fff;font-size:12px;font-weight:700}.ct-project-modal__nav{position:absolute;top:50%;display:grid;place-items:center;width:44px;height:44px;transform:translateY(-50%);border:1px solid rgba(255,255,255,.55);border-radius:50%;background:rgba(255,255,255,.93);color:#243239;font-size:29px;line-height:1;cursor:pointer;box-shadow:0 5px 20px rgba(0,0,0,.2)}.ct-project-modal__nav[hidden]{display:none}.ct-project-modal__nav--prev{left:14px}.ct-project-modal__nav--next{right:14px}.ct-project-modal__thumbs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:14px}.ct-project-modal__thumb{height:84px;overflow:hidden;padding:0;border:2px solid transparent;border-radius:9px;background:#10191e;opacity:.68;cursor:pointer;transition:opacity .2s,border-color .2s,transform .2s}.ct-project-modal__thumb:hover{transform:translateY(-2px);opacity:1}.ct-project-modal__thumb.is-active{border-color:#15b6e9;opacity:1}.ct-project-modal__thumb img{display:block;width:100%;height:100%;object-fit:cover}.ct-project-modal__info{align-self:center;padding:clamp(34px,5vw,64px) clamp(28px,4vw,54px)}.ct-project-modal__type{margin:0 0 14px;color:#079bc8;font-size:12px;font-weight:850;letter-spacing:2px;text-transform:uppercase}.ct-project-modal__info h2{margin:0 0 20px;color:#202d33;font-size:clamp(29px,3.1vw,42px);line-height:1.12;letter-spacing:-.7px}.ct-project-modal__meta{display:flex;flex-wrap:wrap;gap:9px 18px;margin-bottom:25px;padding-bottom:21px;border-bottom:1px solid #e4ecef;color:#64727a;font-size:13px}.ct-project-modal__description{color:#536168;font-size:15px;line-height:1.8}.ct-project-modal__description p{margin:0 0 14px}.ct-project-modal__description>:last-child{margin-bottom:0}.ct-project-modal__description ul,.ct-project-modal__description ol{padding-left:22px}.ct-project-modal__description li{margin:0 0 7px}@keyframes ct-modal-fade{from{opacity:0}to{opacity:1}}@keyframes ct-modal-rise{from{opacity:0;transform:translateY(18px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}
@media(max-width:760px){.ct-project-modal{padding:12px}.ct-project-modal__dialog{max-height:94vh;border-radius:15px}.ct-project-modal__layout{grid-template-columns:1fr;min-height:0}.ct-project-modal__media{padding:18px 14px 14px}.ct-project-modal__stage{min-height:220px;max-height:48vh}.ct-project-modal__stage img{max-height:48vh}.ct-project-modal__thumbs{gap:7px;margin-top:10px}.ct-project-modal__thumb{height:65px}.ct-project-modal__info{padding:25px 22px 30px}.ct-project-modal__info h2{padding-right:28px}.ct-project-modal__close{top:9px;right:9px;width:40px;height:40px}}
@media(prefers-reduced-motion:reduce){.ct-project-modal__backdrop,.ct-project-modal__dialog,.ct-project-card{animation:none!important;transition:none!important}}
.ct-project-card__stage,.ct-project-card__thumb span{display:none!important}.ct-project-modal__counter{font-variant-numeric:tabular-nums}.ct-portfolio .ct-project-card__arrow{position:absolute!important;top:50%!important;z-index:2;display:grid!important;place-items:center!important;width:44px!important;height:44px!important;margin:0!important;padding:0!important;transform:translateY(-50%)!important;border:0!important;border-radius:50%!important;background:rgba(255,255,255,.96)!important;color:#263238!important;font-size:0!important;line-height:0!important;box-shadow:0 5px 18px rgba(0,0,0,.18)!important}.ct-portfolio .ct-project-card__arrow--prev{left:14px!important;right:auto!important}.ct-portfolio .ct-project-card__arrow--next{right:14px!important;left:auto!important}.ct-portfolio .ct-project-card__arrow:before,.ct-project-modal__nav:before{content:"";display:block;width:9px;height:9px;border-top:2px solid #263238;border-right:2px solid #263238}.ct-portfolio .ct-project-card__arrow--prev:before,.ct-project-modal__nav--prev:before{transform:rotate(-135deg);margin-left:4px}.ct-portfolio .ct-project-card__arrow--next:before,.ct-project-modal__nav--next:before{transform:rotate(45deg);margin-right:4px}.ct-project-modal__nav{display:grid;place-items:center;padding:0!important;line-height:0!important;font-size:0!important}.ct-project-modal__nav--prev{left:15px}.ct-project-modal__nav--next{right:15px}.ct-project-modal__nav--prev:before{margin-left:4px}.ct-project-modal__nav--next:before{margin-right:4px}
