- {/* Breadcrumb */}
-
)}
>
);
diff --git a/src/css/common.css b/src/css/common.css
index ab82693..5eb7590 100644
--- a/src/css/common.css
+++ b/src/css/common.css
@@ -1,14 +1,14 @@
:root{
---header-height:96px;
---color-primary:#3A4081;
---color-primary-hover:#2F5DAA;
---color-primary-light:#6B78B5;
---color-primary-soft:rgba(58,64,129,.08);
---color-primary-soft-strong:rgba(58,64,129,.12);
---color-primary-soft-border:rgba(58,64,129,.16);
---color-primary-border:rgba(58,64,129,.2);
---color-primary-border-strong:rgba(58,64,129,.24);
---color-primary-shadow:rgba(58,64,129,.18);
+ --header-height:96px;
+ --color-primary:#3A4081;
+ --color-primary-hover:#2F5DAA;
+ --color-primary-light:#6B78B5;
+ --color-primary-soft:rgba(58,64,129,.08);
+ --color-primary-soft-strong:rgba(58,64,129,.12);
+ --color-primary-soft-border:rgba(58,64,129,.16);
+ --color-primary-border:rgba(58,64,129,.2);
+ --color-primary-border-strong:rgba(58,64,129,.24);
+ --color-primary-shadow:rgba(58,64,129,.18);
}
html{scrollbar-gutter:inherit;}
@@ -46,95 +46,150 @@ body{overflow-x:hidden;}
.sub-fade-in{opacity:0;transform:translateY(24px);transition:opacity .5s ease,transform .5s ease;}
.sub-fade-in.is-visible{opacity:1;transform:translateY(0);}
-/*sub about*/
-.about-overview{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center;margin-top:80px;}
-.about-overview-text .sub-section-lead{max-width:100%;}
-.about-overview-stats{display:grid;grid-template-columns:1fr 1fr;gap:2px;border:1px solid rgba(17,17,17,.08);border-radius:20px;overflow:hidden;}
-.about-stat{padding:32px 28px;background:#fafafa;}
-.about-stat:nth-child(1){background:var(--color-primary);}
-.about-stat:nth-child(1) .about-stat-num,.about-stat:nth-child(1) .about-stat-unit,.about-stat:nth-child(1) .about-stat-label{color:#fff;}
-.about-stat:nth-child(1) .about-stat-label{color:rgba(255,255,255,.7);}
-.about-stat-num{font-size:40px;font-weight:800;letter-spacing:-.04em;color:#0d1117;line-height:1;}
-.about-stat-unit{font-size:20px;font-weight:700;color:#0d1117;margin-left:2px;}
-.about-stat-label{display:block;margin-top:8px;font-size:13px;font-weight:500;color:rgba(17,17,17,.45);letter-spacing:.01em;}
-.about-values{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:48px;}
-.about-value-card{padding:36px 32px;background:#fff;border:1px solid rgba(17,17,17,.07);border-radius:20px;transition:border-color .25s ease,transform .25s ease,box-shadow .25s ease;}
-.about-value-card:hover{border-color:rgba(58,64,129,.2);transform:translateY(-4px);box-shadow:0 20px 40px rgba(58,64,129,.08);}
-.about-value-icon{width:48px;height:48px;margin-bottom:20px;border-radius:14px;background:rgba(58,64,129,.07);display:flex;align-items:center;justify-content:center;}
-.about-value-icon svg{width:24px;height:24px;stroke:var(--color-primary);fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;}
-.about-value-card h3{margin:0 0 10px;font-size:18px;font-weight:800;letter-spacing:-.02em;color:#0d1117;}
-.about-value-card p{margin:0;font-size:14px;line-height:1.75;color:rgba(17,17,17,.55);word-break:keep-all;}
-.about-awards{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-top:48px;}
-.about-award-item{display:flex;align-items:flex-start;gap:16px;padding:24px;background:#fff;border:1px solid rgba(17,17,17,.07);border-radius:16px;}
-.about-award-dot{flex-shrink:0;width:8px;height:8px;border-radius:50%;background:var(--color-primary);margin-top:6px;}
-.about-award-item h4{margin:0 0 4px;font-size:15px;font-weight:700;color:#0d1117;letter-spacing:-.01em;}
-.about-award-item p{margin:0;font-size:13px;color:rgba(17,17,17,.5);line-height:1.6;}
+/*about page*/
+.sh{height:520px;position:relative;overflow:hidden;background:#050c1f;}
+.sh-bg{position:absolute;inset:-8%;background-size:cover;background-position:center;background-repeat:no-repeat;transform:scale(1.12);transition:transform 2s cubic-bezier(.16,1,.3,1);will-change:transform;}
+.sh-bg--zoomed{transform:scale(1);}
+.sh-glow{position:absolute;inset:0;background:radial-gradient(ellipse 65% 55% at 68% 42%,rgba(58,64,129,.32) 0%,transparent 62%);pointer-events:none;}
+.sh-dim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(5,12,31,.05) 0%,rgba(5,12,31,.55) 100%);pointer-events:none;}
+.sh-line{position:absolute;bottom:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(107,120,181,.5) 25%,rgba(58,64,129,.85) 50%,rgba(107,120,181,.5) 75%,transparent);transform:scaleX(0);transform-origin:center;transition:transform 1.8s cubic-bezier(.16,1,.3,1);}
+.sh-line--drawn{transform:scaleX(1);}
+.sh-inner{position:relative;z-index:2;max-width:1440px;margin:0 auto;padding:0 80px;height:100%;display:flex;flex-direction:column;justify-content:center;}
+.sh-bc{display:flex;align-items:center;gap:0;margin-bottom:36px;position:relative;z-index:20;}
+.sh-bc-static{font-size:12px;font-weight:500;color:rgba(255,255,255,.28);}
+.sh-bc-sep{font-size:11px;color:rgba(255,255,255,.15);margin:0 7px;}
+.sh-bc-drop{position:relative;}
+.sh-bc-btn{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:600;color:rgba(255,255,255,.52);cursor:pointer;padding:5px 10px;border-radius:7px;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.06);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:background .2s,border-color .2s;}
+.sh-bc-btn:hover{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.18);}
+.sh-bc-arrow{transition:transform .22s ease;color:rgba(255,255,255,.32);}
+.sh-bc-arrow--open{transform:rotate(180deg);}
+.sh-bc-menu{position:absolute;top:calc(100% + 8px);left:0;min-width:172px;background:rgba(8,14,38,.94);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border:1px solid rgba(107,120,181,.18);border-radius:12px;padding:6px;z-index:100;animation:shMenuIn .18s ease;}
-/*sub history*/
-.history-timeline{position:relative;margin-top:56px;}
-.history-year-group{margin-bottom:64px;}
-.history-year-group:last-child{margin-bottom:0;}
-.history-year{display:inline-flex;align-items:center;justify-content:center;height:40px;padding:0 20px;margin-bottom:28px;background:var(--color-primary);border-radius:999px;font-size:16px;font-weight:800;color:#fff;letter-spacing:-.01em;}
-.history-items{display:grid;grid-template-columns:1fr;gap:0;border-left:2px solid rgba(58,64,129,.12);margin-left:12px;padding-left:32px;}
-.history-item{position:relative;padding:0 0 28px;}
-.history-item:last-child{padding-bottom:0;}
-.history-item::before{content:"";position:absolute;left:-38px;top:6px;width:10px;height:10px;border-radius:50%;background:#fff;border:2px solid var(--color-primary);}
-.history-item-month{display:inline-block;margin-bottom:6px;font-size:12px;font-weight:700;letter-spacing:.12em;color:var(--color-primary);}
-.history-item-text{font-size:15px;font-weight:500;color:#0d1117;line-height:1.6;letter-spacing:-.01em;word-break:keep-all;}
-
-/*sub partners*/
-.partners-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:48px;}
-.partner-card{display:flex;flex-direction:column;align-items:center;justify-content:center;height:120px;padding:24px;background:#fff;border:1px solid rgba(17,17,17,.08);border-radius:16px;transition:border-color .25s ease,transform .25s ease,box-shadow .25s ease;}
-.partner-card:hover{border-color:rgba(58,64,129,.2);transform:translateY(-3px);box-shadow:0 16px 32px rgba(58,64,129,.07);}
-.partner-card-name{font-size:14px;font-weight:700;color:rgba(17,17,17,.6);text-align:center;line-height:1.4;letter-spacing:-.01em;word-break:keep-all;}
-.partner-card-type{margin-top:4px;font-size:11px;font-weight:500;color:rgba(17,17,17,.35);letter-spacing:.06em;text-transform:uppercase;}
+@keyframes shMenuIn{
+ from{opacity:0;transform:translateY(-6px) scale(.97);}
+ to{opacity:1;transform:translateY(0) scale(1);}
+}
-/*sub location*/
-.location-wrap{display:grid;grid-template-columns:1fr 480px;gap:48px;align-items:start;margin-top:48px;}
-.location-map{border-radius:20px;overflow:hidden;background:#e8eaf0;aspect-ratio:16/10;border:1px solid rgba(17,17,17,.08);}
-.location-map iframe{width:100%;height:100%;border:0;display:block;}
-.location-info-card{background:#fff;border:1px solid rgba(17,17,17,.08);border-radius:20px;padding:36px 32px;}
-.location-info-card h3{margin:0 0 24px;font-size:20px;font-weight:800;letter-spacing:-.03em;color:#0d1117;}
-.location-info-list{list-style:none;padding:0;margin:0;}
-.location-info-item{display:flex;gap:14px;padding:16px 0;border-bottom:1px solid rgba(17,17,17,.06);}
-.location-info-item:last-child{border-bottom:0;padding-bottom:0;}
-.location-info-icon{flex-shrink:0;width:36px;height:36px;border-radius:10px;background:rgba(58,64,129,.07);display:flex;align-items:center;justify-content:center;}
-.location-info-icon svg{width:18px;height:18px;stroke:var(--color-primary);fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;}
-.location-info-label{display:block;margin-bottom:4px;font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:rgba(17,17,17,.35);}
-.location-info-value{font-size:14px;font-weight:500;color:#0d1117;line-height:1.6;word-break:keep-all;}
-.location-info-value a{color:var(--color-primary);text-decoration:none;transition:opacity .2s;}
-.location-info-value a:hover{opacity:.7;}
-.location-transport{margin-top:40px;}
-.location-transport-title{margin:0 0 20px;font-size:15px;font-weight:700;color:#0d1117;letter-spacing:-.01em;}
-.location-transport-list{list-style:none;padding:0;margin:0;display:grid;gap:12px;}
-.location-transport-item{display:flex;align-items:flex-start;gap:12px;padding:16px;background:#f5f6fa;border-radius:12px;}
-.location-transport-badge{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;height:24px;padding:0 10px;border-radius:6px;font-size:11px;font-weight:700;letter-spacing:.04em;background:var(--color-primary);color:#fff;}
-.location-transport-text{font-size:13px;color:rgba(17,17,17,.65);line-height:1.6;word-break:keep-all;}
+.sh-bc-menu-item{display:flex;align-items:center;gap:8px;padding:9px 12px;font-size:13px;font-weight:500;color:rgba(255,255,255,.5);border-radius:8px;cursor:pointer;transition:background .18s,color .18s;text-decoration:none;}
+.sh-bc-menu-item:hover{background:rgba(58,64,129,.3);color:#fff;}
+.sh-bc-menu-item--cur{color:#fff;font-weight:700;background:rgba(58,64,129,.22);}
+.sh-bc-menu-dot{width:5px;height:5px;border-radius:50%;background:rgba(255,255,255,.2);flex-shrink:0;}
+.sh-bc-menu-item--cur .sh-bc-menu-dot{background:#6B78B5;}
+.sh-bc-now{font-size:12px;font-weight:600;color:rgba(255,255,255,.62);}
+.sh-title{font-size:clamp(40px,5.5vw,70px);font-weight:800;line-height:1.06;letter-spacing:-.05em;margin-bottom:22px;}
+.sh-fill{display:block;background:linear-gradient(90deg,#fff 0%,#fff 50%,rgba(255,255,255,.15) 50%);background-size:202% 100%;background-position:100% 0;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;opacity:0;transform:translateX(-28px);transition:background-position 2.6s cubic-bezier(.16,1,.3,1),opacity .75s cubic-bezier(.16,1,.3,1),transform .75s cubic-bezier(.16,1,.3,1);}
+.sh-fill--on{background-position:0% 0;opacity:1;transform:translateX(0);}
+.sh-fill:nth-child(2){transition-delay:0s,0.28s,0.28s;}
+.sh-desc{font-size:clamp(14px,1.3vw,16px);line-height:1.75;color:rgba(255,255,255,.4);max-width:480px;word-break:keep-all;opacity:0;transform:translateY(14px);transition:opacity .8s ease,transform .8s ease;}
+.sh-desc--on{opacity:1;transform:translateY(0);}
+.sh-nav{position:sticky;top:var(--header-height);z-index:50;background:rgba(255,255,255,.3);backdrop-filter:blur(10px) saturate(160%);-webkit-backdrop-filter:blur(10px) saturate(160%);border-bottom:1px solid rgba(17,17,17,.06);box-shadow:0 10px 30px rgba(15,23,42,.04);}
+.sh-nav-inner{max-width:1440px;margin:0 auto;padding:0 40px;display:flex;align-items:center;}
+.sh-nav-tab{position:relative;display:inline-flex;align-items:center;height:52px;padding:0 20px;font-size:14px;font-weight:700;color:rgba(17,17,17,.45);text-decoration:none;transition:color .3s ease,transform .3s ease;letter-spacing:-.02em;white-space:nowrap;}
+.sh-nav-tab::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--color-primary);border-radius:999px;transform:scaleX(0);transform-origin:center;transition:transform .32s ease;}
+.sh-nav-tab:hover{color:var(--color-primary);}
+.sh-nav-tab--active{color:var(--color-primary);}
+.sh-nav-tab--active::after{transform:scaleX(1);}
+.ab-stats{background:#f2f3fa;padding:100px 80px;}
+.ab-stats-inner{max-width:1440px;margin:0 auto;}
+.ab-stats-ew{font-size:11px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:rgba(58,64,129,.38);display:block;margin-bottom:52px;}
+.ab-stats-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid rgba(58,64,129,.1);}
+.ab-si{padding-top:40px;padding-right:40px;border-right:1px solid rgba(58,64,129,.08);}
+.ab-si:last-child{border-right:0;}
+.ab-si:not(:first-child){padding-left:40px;}
+.ab-si-num{display:block;font-size:clamp(48px,5.5vw,80px);font-weight:800;letter-spacing:-.05em;line-height:1;color:#3A4081;}
+.ab-si-lbl{display:block;margin-top:10px;font-size:13px;font-weight:500;color:rgba(17,17,17,.32);}
+.ab-si-bar{display:block;height:2px;width:0;margin-top:18px;background:linear-gradient(90deg,#3A4081,#6B78B5,#a0b0e8);border-radius:2px;transition:width 1.2s cubic-bezier(.16,1,.3,1);}
+.ab-vid{height:480px;position:relative;overflow:hidden;background:#040912;}
+.ab-vid-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform-origin:center;will-change:transform;}
+.ab-vid-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(4,9,18,.15) 0%,rgba(4,9,18,.65) 100%);}
+.ab-vid-txt{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;z-index:2;padding:0 40px;will-change:transform,opacity;}
+.ab-vid-kicker{font-size:11px;font-weight:700;letter-spacing:.26em;text-transform:uppercase;color:rgba(255,255,255,.32);margin-bottom:20px;}
+.ab-vid-title{font-size:clamp(36px,5.5vw,64px);font-weight:800;line-height:1.08;letter-spacing:-.05em;color:#fff;margin-bottom:18px;}
+.ab-vid-desc{font-size:16px;line-height:1.75;color:rgba(255,255,255,.42);word-break:keep-all;}
+.ab-phil{background:#050c1f;padding:140px 80px;}
+.ab-phil-inner{max-width:1440px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:100px;align-items:center;}
+.ab-phil-ew{font-size:11px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:rgba(255,255,255,.18);display:block;margin-bottom:30px;}
+.ab-phil-line{display:block;font-size:clamp(40px,5vw,64px);font-weight:800;line-height:1.1;letter-spacing:-.04em;color:rgba(255,255,255,.7);}
+.ab-phil-line--pt{background:linear-gradient(90deg,#6B78B5,#94a8e8,#bcceff);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;}
+.ab-phil-img-wrap{position:relative;border-radius:20px;overflow:hidden;}
+.ab-phil-img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;filter:brightness(.78);}
+.ab-phil-badge{position:absolute;bottom:20px;left:20px;padding:12px 18px;background:rgba(255,255,255,.06);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.1);border-radius:12px;}
+.ab-phil-badge span{display:block;font-size:10px;color:rgba(255,255,255,.38);margin-bottom:3px;letter-spacing:.06em;}
+.ab-phil-badge strong{display:block;font-size:14px;font-weight:700;color:#fff;}
+.ab-phil-body{font-size:15px;line-height:1.95;color:rgba(255,255,255,.33);margin-top:32px;word-break:keep-all;}
+.ab-vals{background:#fff;padding:140px 80px;}
+.ab-vals-inner{max-width:1440px;margin:0 auto;}
+.ab-vals-ew{font-size:11px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:rgba(58,64,129,.45);display:block;margin-bottom:12px;}
+.ab-vals-title{font-size:clamp(36px,4vw,56px);font-weight:800;letter-spacing:-.04em;color:#0d1117;margin-bottom:80px;}
+.ab-vals-list{display:grid;grid-template-columns:1fr;gap:0;}
+.ab-val-item{display:grid;grid-template-columns:72px 1fr 360px;gap:48px;align-items:center;padding:52px 0;border-top:1px solid rgba(17,17,17,.06);}
+.ab-val-item:last-child{border-bottom:1px solid rgba(17,17,17,.06);}
+.ab-val-num{font-size:12px;font-weight:700;letter-spacing:.14em;color:rgba(17,17,17,.15);}
+.ab-val-name{font-size:clamp(20px,2vw,28px);font-weight:800;letter-spacing:-.03em;color:#0d1117;margin:0 0 12px;}
+.ab-val-desc{font-size:14px;line-height:1.85;color:rgba(17,17,17,.44);max-width:400px;word-break:keep-all;margin:0;}
+.ab-val-img-wrap{border-radius:14px;overflow:hidden;}
+.ab-val-img{width:100%;aspect-ratio:16/9;object-fit:cover;display:block;transition:transform .7s cubic-bezier(.16,1,.3,1);}
+.ab-val-item:hover .ab-val-img{transform:scale(1.05);}
+.ab-awds{background:#f2f3fa;padding:140px 80px;}
+.ab-awds-inner{max-width:1440px;margin:0 auto;}
+.ab-awds-ew{font-size:11px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:rgba(58,64,129,.45);display:block;margin-bottom:12px;}
+.ab-awds-title{font-size:clamp(36px,4vw,56px);font-weight:800;letter-spacing:-.04em;color:#0d1117;margin-bottom:64px;}
+.ab-awds-list{list-style:none;padding:0;margin:0;}
+.ab-awd-row{display:grid;grid-template-columns:72px 1px 1fr;gap:36px;align-items:center;padding:34px 0;border-top:1px solid rgba(58,64,129,.09);}
+.ab-awd-row:last-child{border-bottom:1px solid rgba(58,64,129,.09);}
+.ab-awd-yr{font-size:13px;font-weight:700;color:rgba(58,64,129,.4);letter-spacing:.06em;}
+.ab-awd-bar{width:1px;height:40px;background:linear-gradient(180deg,transparent,rgba(58,64,129,.28),transparent);}
+.ab-awd-name{display:block;font-size:17px;font-weight:700;color:#0d1117;letter-spacing:-.02em;margin-bottom:5px;}
+.ab-awd-org{font-size:13px;color:rgba(17,17,17,.3);}
+.ab-cta{padding:160px 80px;text-align:center;background:#050c1f;position:relative;overflow:hidden;}
+.ab-cta-bg{position:absolute;inset:-8%;background:linear-gradient(135deg,rgba(5,12,31,.96) 0%,rgba(5,12,31,.82) 35%,rgba(8,18,52,.68) 65%,rgba(5,12,31,.88) 100%),url('/images/hero2.png') center/cover no-repeat;filter:blur(3px);}
+.ab-cta-glow{position:absolute;inset:0;background:radial-gradient(ellipse 70% 60% at 50% 50%,rgba(58,64,129,.38),transparent 65%);}
+.ab-cta-inner{position:relative;z-index:1;max-width:1440px;margin:0 auto;display:flex;flex-direction:column;align-items:center;}
+.ab-cta-chip{display:inline-block;padding:6px 16px;border-radius:999px;border:1px solid rgba(107,120,181,.28);background:rgba(58,64,129,.14);font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.46);margin-bottom:28px;}
+.ab-cta-title{font-size:clamp(40px,5vw,64px);font-weight:800;line-height:1.1;letter-spacing:-.05em;color:#fff;margin-bottom:20px;}
+.ab-cta-desc{font-size:16px;line-height:1.75;color:rgba(255,255,255,.42);margin-bottom:52px;word-break:keep-all;}
+.ab-cta-btns{display:flex;align-items:center;gap:14px;}
+.ab-cta-btn{display:inline-flex;align-items:center;justify-content:center;height:56px;padding:0 40px;border-radius:999px;font-size:15px;font-weight:700;text-decoration:none;transition:transform .25s,box-shadow .25s,background .25s;}
+.ab-cta-btn--w{background:#fff;color:#3A4081;}
+.ab-cta-btn--w:hover{transform:translateY(-3px);box-shadow:0 20px 48px rgba(0,0,0,.3);}
+.ab-cta-btn--g{background:rgba(255,255,255,.08);color:#fff;border:1px solid rgba(255,255,255,.18);}
+.ab-cta-btn--g:hover{background:rgba(255,255,255,.15);transform:translateY(-3px);}
@media (max-width:1280px){
- .sub-hero-inner,.sub-content{padding-left:48px;padding-right:48px;}
- .sub-nav{padding-left:48px;padding-right:48px;}
- .about-values{grid-template-columns:repeat(2,1fr);}
- .about-overview{gap:48px;}
- .partners-grid{grid-template-columns:repeat(3,1fr);}
+ .sh-inner,.ab-stats,.ab-phil,.ab-vals,.ab-awds,.ab-cta{padding-left:48px;padding-right:48px;}
+ .sh-nav-inner{padding-left:48px;padding-right:48px;}
+ .ab-val-item{grid-template-columns:60px 1fr 280px;gap:36px;}
+ .ab-phil-inner{gap:64px;}
+}
+
+@media (max-width:1024px){
+ .sh-inner,.ab-stats,.ab-phil,.ab-vals,.ab-awds,.ab-cta{padding-left:32px;padding-right:32px;}
+ .sh-nav-inner{padding-left:32px;padding-right:32px;}
+ .ab-stats-grid{grid-template-columns:repeat(2,1fr);}
+ .ab-si{padding-bottom:40px;border-bottom:1px solid rgba(58,64,129,.08);}
+ .ab-si:nth-child(2n){border-right:0;}
+ .ab-si:nth-child(3),.ab-si:nth-child(4){border-bottom:0;}
+ .ab-phil-inner{grid-template-columns:1fr;gap:56px;}
+ .ab-val-item{grid-template-columns:52px 1fr;gap:24px;}
+ .ab-val-img-wrap{display:none;}
+ .ab-awd-row{gap:20px;}
}
@media (max-width:1024px){
- .sub-hero-inner,.sub-content{padding-left:32px;padding-right:32px;}
- .sub-nav{padding-left:32px;padding-right:32px;}
- .about-overview{grid-template-columns:1fr;gap:48px;}
- .about-awards{grid-template-columns:1fr;}
- .location-wrap{grid-template-columns:1fr;}
- .location-map{aspect-ratio:16/9;}
+ .sh-nav{top:82px;}
+ .sh-nav-inner{padding-left:20px;padding-right:20px;}
}
@media (max-width:768px){
- .sub-hero-inner{padding:calc(var(--header-height) + 36px) 20px 40px;}
- .sub-content{padding:48px 20px 80px;}
- .sub-nav{padding:0 20px;}
- .about-values{grid-template-columns:1fr;}
- .about-overview-stats{grid-template-columns:1fr 1fr;}
- .partners-grid{grid-template-columns:repeat(2,1fr);}
- .history-year-group{margin-bottom:48px;}
- .location-info-card{padding:24px 20px;}
-}
\ No newline at end of file
+ .sh{height:440px;}
+ .sh-inner{padding-left:20px;padding-right:20px;}
+ .sh-nav-inner{padding-left:20px;padding-right:20px;}
+ .sh-nav-tab{padding:0 12px;font-size:13px;}
+ .ab-stats,.ab-phil,.ab-vals,.ab-awds{padding:80px 20px;}
+ .ab-cta{padding:100px 20px;}
+ .ab-stats-grid{grid-template-columns:1fr 1fr;}
+ .ab-val-item{padding:36px 0;grid-template-columns:40px 1fr;gap:16px;}
+ .ab-awd-row{grid-template-columns:56px 1px 1fr;padding:24px 0;}
+ .ab-cta-btns{flex-direction:column;width:100%;}
+ .ab-cta-btn{width:100%;max-width:320px;}
+}
diff --git a/src/css/header.css b/src/css/header.css
index 67fca05..5a6eaad 100644
--- a/src/css/header.css
+++ b/src/css/header.css
@@ -1,8 +1,9 @@
/*header.*/
-.pal-header{position:fixed;top:0;left:0;right:0;z-index:1000;background:transparent;transition:box-shadow .35s ease;}
-.pal-header::before{content:"";position:absolute;left:0;top:0;width:100%;height:100%;background:rgba(255,255,255,.9);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);opacity:0;pointer-events:none;transition:opacity .35s ease;}
+.pal-header{position:fixed;top:0;left:0;right:0;z-index:1000;background:transparent;transition:box-shadow .45s cubic-bezier(.22,1,.36,1);}
+.pal-header::before{content:"";position:absolute;left:0;top:0;width:100%;height:100%;background:rgba(255,255,255,.3);backdrop-filter:blur(10px) saturate(160%);-webkit-backdrop-filter:blur(10px) saturate(160%);opacity:0;pointer-events:none;transition:opacity .45s cubic-bezier(.22,1,.36,1),background .45s cubic-bezier(.22,1,.36,1),backdrop-filter .45s cubic-bezier(.22,1,.36,1);}
.pal-header.is-scrolled::before,.pal-header.is-open::before,.pal-header.is-mobile-open::before{opacity:1;}
-.pal-header.is-scrolled,.pal-header.is-open,.pal-header.is-mobile-open{box-shadow:0 18px 40px rgba(15,23,42,.08);}
+.pal-header.is-scrolled,.pal-header.is-open,.pal-header.is-mobile-open{box-shadow:0 10px 30px rgba(15,23,42,.04);}
+
.pal-header-inner{position:relative;display:flex;align-items:center;justify-content:space-between;max-width:1440px;height:96px;margin:0 auto;padding:0 40px;z-index:2;}
.pal-header-logo{flex:0 0 auto;margin:0;font-size:0;line-height:1;}
diff --git a/src/pages/company/AboutPage.jsx b/src/pages/company/AboutPage.jsx
index a4697b0..3d7993c 100644
--- a/src/pages/company/AboutPage.jsx
+++ b/src/pages/company/AboutPage.jsx
@@ -1,157 +1,246 @@
+import { useEffect, useRef } from "react";
+import { Link } from "react-router-dom";
+import { gsap } from "gsap";
+import { ScrollTrigger } from "gsap/ScrollTrigger";
import SubHero from "../../components/SubHero";
-import useFadeIn from "../../hooks/useFadeIn";
+
+gsap.registerPlugin(ScrollTrigger);
const COMPANY_NAV = [
- { label: "회사소개", to: "/company/about" },
- { label: "연혁", to: "/company/history" },
+ { label: "회사소개", to: "/company/about" },
+ { label: "연혁", to: "/company/history" },
{ label: "고객 및 협력사", to: "/company/partners" },
{ label: "찾아오시는 길", to: "/company/location" },
];
+const STATS = [
+ { num: 2010, suffix: "", label: "설립연도" },
+ { num: 50, suffix: "+", label: "완료 프로젝트" },
+ { num: 15, suffix: "+", label: "주요 고객사" },
+ { num: 10, suffix: "+", label: "R&D 전문인력" },
+];
+
const VALUES = [
- {
- title: "기술 혁신",
- desc: "항공 데이터와 UTM 기술의 경계를 지속적으로 확장하며, 미래 모빌리티 시대를 선도합니다.",
- icon: (
-
- ),
- },
- {
- title: "신뢰와 책임",
- desc: "공공·항공 분야의 핵심 인프라를 다루는 만큼, 모든 서비스에 안전과 신뢰를 최우선으로 합니다.",
- icon: (
-
- ),
- },
- {
- title: "파트너십",
- desc: "고객사와 장기 파트너로서 구축부터 운영·유지보수까지 전 과정을 함께합니다.",
- icon: (
-
- ),
- },
- {
- title: "전문성",
- desc: "항공 IT 분야 10년 이상의 전문 인력이 SI, R&D, 솔루션 개발을 일관되게 수행합니다.",
- icon: (
-
- ),
- },
- {
- title: "지속 성장",
- desc: "UAM·UATM 등 차세대 항공 기술을 선행 연구하며, 산업 변화에 능동적으로 대응합니다.",
- icon: (
-
- ),
- },
- {
- title: "사회적 가치",
- desc: "안전한 하늘길과 신뢰 가능한 IT 인프라를 통해 사회 전반에 기여하는 기업으로 성장합니다.",
- icon: (
-
- ),
- },
+ { num: "01", title: "기술 혁신", desc: "항공 데이터와 UTM 기술의 경계를 지속적으로 확장하며 미래 모빌리티 시대를 선도합니다.", img: "/images/img1.jpg" },
+ { num: "02", title: "신뢰와 책임", desc: "공공·항공 분야의 핵심 인프라를 다루는 만큼 모든 서비스에 안전과 신뢰를 최우선으로 합니다.", img: "/images/img2.jpg" },
+ { num: "03", title: "파트너십", desc: "고객사와 장기 파트너로서 구축부터 운영·유지보수까지 전 과정을 함께합니다.", img: "/images/img3.jpg" },
+ { num: "04", title: "전문성", desc: "항공 IT 분야 10년 이상의 전문 인력이 SI, R&D, 솔루션 개발을 일관되게 수행합니다.", img: "/images/img4.jpg" },
];
const AWARDS = [
- { title: "인천 항공산업 선도기업 유망기업 선정", desc: "인천시 · 인천테크노파크" },
- { title: "소프트웨어 품질인증 GS 인증 획득", desc: "한국정보통신기술협회(TTA)" },
- { title: "기업부설연구소 인정", desc: "한국산업기술진흥협회" },
- { title: "조달청 우수제품 지정", desc: "비행상황관제 시스템" },
+ { year: "2022", title: "인천 항공산업 선도기업 유망기업 선정", org: "인천시 · 인천테크노파크" },
+ { year: "2021", title: "소프트웨어 품질인증 GS 인증 획득", org: "한국정보통신기술협회(TTA)" },
+ { year: "2021", title: "기업부설연구소 인정", org: "한국산업기술진흥협회" },
+ { year: "2020", title: "조달청 우수제품 지정", org: "비행상황관제 시스템" },
];
+function animateCount(el, target, suffix, duration = 1600) {
+ const from = target > 100 ? target - 4 : 0;
+ let start = null;
+ const step = ts => {
+ if (!start) start = ts;
+ const p = Math.min((ts - start) / duration, 1);
+ const ease = 1 - Math.pow(1 - p, 3);
+ el.textContent = Math.floor(from + (target - from) * ease) + suffix;
+ if (p < 1) requestAnimationFrame(step);
+ };
+ requestAnimationFrame(step);
+}
+
export default function AboutPage() {
- const ref = useFadeIn();
+ const videoRef = useRef(null);
+ const videoSecRef = useRef(null);
+ const statRefs = useRef([]);
+ const statDone = useRef(false);
+
+ useEffect(() => {
+ const ctx = gsap.context(() => {
+ // 영상 패럴랙스
+ gsap.to(videoRef.current, {
+ scale: 1.1,
+ scrollTrigger: { trigger: videoSecRef.current, start: "top top", end: "bottom top", scrub: 2 },
+ });
+ gsap.to(".ab-vid-txt", {
+ y: -80, opacity: 0,
+ scrollTrigger: { trigger: videoSecRef.current, start: "top top", end: "55% top", scrub: 1 },
+ });
+
+ // 철학 텍스트 라인
+ gsap.fromTo(".ab-phil-line",
+ { opacity: 0, x: -40 },
+ { opacity: 1, x: 0, stagger: 0.18, duration: 1, ease: "power3.out",
+ scrollTrigger: { trigger: ".ab-phil", start: "top 68%" } }
+ );
+ // 철학 오른쪽
+ gsap.fromTo(".ab-phil-right",
+ { opacity: 0, x: 50 },
+ { opacity: 1, x: 0, duration: 1.1, ease: "power3.out",
+ scrollTrigger: { trigger: ".ab-phil", start: "top 68%" } }
+ );
+ gsap.fromTo(".ab-phil-body",
+ { opacity: 0, y: 24 },
+ { opacity: 1, y: 0, duration: 0.8, ease: "power2.out",
+ scrollTrigger: { trigger: ".ab-phil", start: "top 55%" } }
+ );
+
+ // 핵심가치
+ gsap.fromTo(".ab-val-item",
+ { opacity: 0, y: 40 },
+ { opacity: 1, y: 0, stagger: 0.1, duration: 0.7, ease: "power3.out",
+ scrollTrigger: { trigger: ".ab-vals", start: "top 72%" } }
+ );
+
+ // 수상
+ gsap.fromTo(".ab-awd-row",
+ { opacity: 0, y: 22 },
+ { opacity: 1, y: 0, stagger: 0.1, duration: 0.6, ease: "power2.out",
+ scrollTrigger: { trigger: ".ab-awds", start: "top 76%" } }
+ );
+
+ // CTA
+ gsap.fromTo(".ab-cta-inner > *",
+ { opacity: 0, y: 28 },
+ { opacity: 1, y: 0, stagger: 0.14, duration: 0.8, ease: "power2.out",
+ scrollTrigger: { trigger: ".ab-cta", start: "top 75%" } }
+ );
+
+ // stats fade
+ gsap.fromTo(".ab-si",
+ { opacity: 0, y: 32 },
+ { opacity: 1, y: 0, stagger: 0.1, duration: 0.7, ease: "power3.out",
+ scrollTrigger: {
+ trigger: ".ab-stats",
+ start: "top 78%",
+ onEnter: () => {
+ if (statDone.current) return;
+ statDone.current = true;
+ statRefs.current.forEach((el, i) => {
+ if (!el) return;
+ setTimeout(() => animateCount(el, STATS[i].num, STATS[i].suffix), i * 80);
+ });
+ }
+ }
+ }
+ );
+ });
+
+ return () => ctx.revert();
+ }, []);
return (
-
+
-
-
- {/* 회사 개요 */}
-
-
-
-
About PAL Networks
-
항공산업의 기술혁신을
-선도하는 파트너
-
- 팔네트웍스(PAL Networks)는 2010년 설립 이후 항공 예약 플랫폼, 비행상황관제 시스템, UTM(무인항공기 교통관리) 솔루션 등 항공 IT 분야의 핵심 기술을 개발·운영해 온 전문 기업입니다.
-
-
- 공공·민간 고객사의 시스템 구축부터 장기 운영·유지보수까지 전 과정을 책임지며, 인천광역시 로봇랜드에 본사를 두고 항공 미래 모빌리티(UAM/UATM) 기술을 선행 연구하고 있습니다.
-
-
-
-
-
-
2010
-
설립연도
+ {/* 수치 */}
+
+
+
PAL Networks in Numbers
+
+ {STATS.map((s, i) => (
+
+ statRefs.current[i] = el}>{s.num}{s.suffix}
+ {s.label}
+
-
- 50+
- 완료 프로젝트
-
-
- 15+
- 주요 고객사
-
-
- 10+
- R&D 전문 인력
+ ))}
+
+
+
+
+ {/* 영상 */}
+
+
+
+
+
PAL Networks × UAM
+
미래의 하늘을
설계합니다
+
도심항공교통(UAM)의 안전한 운항을 위한
통합 관제 기술을 연구·개발합니다
+
+
+
+ {/* 철학 */}
+
+
+
+ Our Philosophy
+ 항공산업의
+ 기술혁신을
+ 선도합니다.
+
+
+
+

+
+ 2010년 설립 이후
+ 항공 IT 한 길
+
팔네트웍스는 2010년 설립 이후 항공 예약 플랫폼, 비행상황관제 시스템, UTM 솔루션까지 항공 IT 분야의 핵심 기술을 꾸준히 개발해왔습니다. 인천광역시 로봇랜드에서 UAM/UATM 미래 기술을 선행 연구하고 있습니다.
-
-
- {/* 핵심 가치 */}
-
- Core Values
- 우리가 지키는 6가지 가치
-
- {VALUES.map((v, i) => (
-
-
{v.icon}
-
{v.title}
-
{v.desc}
+
+
+
+ {/* 핵심가치 */}
+
+
+
Core Values
+
우리가 지키는 가치
+
+ {VALUES.map(v => (
+
+
{v.num}
+
+
+

+
))}
-
+
+
- {/* 인증 및 수상 */}
-
- Certifications & Awards
- 인증 및 수상 이력
-
+ {/* 수상 */}
+
+
+
Certifications & Awards
+
인증 및 수상
+
{AWARDS.map((a, i) => (
-
-
+
-
+ {a.year}
+
-
{a.title}
-
{a.desc}
+
{a.title}
+
{a.org}
-
+
))}
-
-
+
+
+
-
+ {/* CTA */}
+
+
+
+
+
Contact Us
+
팔네트웍스와
함께하세요
+
파트너십 문의, 채용, 사업 협력 등 무엇이든 편하게 연락주세요.
+
+ 문의하기
+ 채용 안내
+
+
+
);
}