:root{--bg:#15171b;--bg-alt:#1c1f25;--card:#20242b;--line:#343941;--text:#eceef1;--muted:#a2a8b2;--sub:#747d89;--soft:#bcc2cc;--accent:#e6e9ee;--wrap:1160px}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:94px}body{margin:0;background:var(--bg);color:var(--text);font-family:Pretendard,'Noto Sans KR','Apple SD Gothic Neo','Malgun Gothic',system-ui,sans-serif;line-height:1.7;word-break:keep-all;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit}button,a,summary{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid #c8d2e4;outline-offset:4px}::selection{background:#ccd2db;color:#17191d}.container{width:min(calc(100% - 80px),var(--wrap));margin-inline:auto}.section{padding-block:112px}.section-alt{background:var(--bg-alt)}.skip-link{position:absolute;left:15px;top:-70px;padding:12px 18px;background:white;color:#15171b;z-index:300}.skip-link:focus{top:12px}.site-header{position:sticky;top:0;z-index:100;background:rgba(21,23,27,.94);border-bottom:1px solid #30343a;backdrop-filter:blur(18px)}.header-inner{height:81px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:inline-flex;align-items:center;gap:12px}.brand-mark{display:grid;place-items:center;width:40px;height:40px;background:#d6dbe4;color:#121416;font-family:Arial,sans-serif;font-weight:900;font-size:25px;line-height:1}.brand-dot{color:#777f8b}.brand-copy{display:flex;flex-direction:column;line-height:1.35;letter-spacing:.09em;font-size:11px}.brand-copy small{font-size:8px;letter-spacing:.17em;color:#a6adb8;margin-top:4px}.main-nav{display:flex;align-items:center;gap:31px}.main-nav a{font-family:Arial,sans-serif;font-size:11px;font-weight:700;letter-spacing:.11em;color:#b3b9c2;transition:color .2s}.main-nav a:hover,.main-nav a.active{color:#fff}.main-nav .nav-contact{padding:12px 15px;border:1px solid #60656e;color:white}.nav-contact span{margin-left:7px}.nav-toggle{display:none}.hero{padding-top:99px;padding-bottom:55px;display:grid;grid-template-columns:1.05fr .95fr;column-gap:55px;min-height:665px;align-items:center}.hero-content{min-width:0}.eyebrow,.mini-label,.section-no,.project-index,.architecture-title,.photo-slot figcaption,.project-type,.timeline-meta{letter-spacing:.13em;font-size:10px;font-weight:750;font-family:Arial,sans-serif}.eyebrow{display:flex;align-items:center;gap:10px;color:#b2bac4;white-space:nowrap}.status-dot{width:7px;height:7px;background:#d0d5df;display:inline-block;border-radius:50%;box-shadow:0 0 0 4px #d0d5df12}.eyebrow-line{height:1px;width:19px;background:#4d545d}.hero-kicker{font-size:16px;letter-spacing:-.03em;color:#b4bac5;margin:36px 0 8px}.hero h1{font-family:Arial,'Malgun Gothic',sans-serif;font-size:clamp(39px,4.75vw,65px);letter-spacing:-.048em;line-height:1.13;margin:0;font-weight:900}.hero .muted-head{color:#9da4af}.outline-head{-webkit-text-stroke:1.3px #c4c9d2;color:transparent;letter-spacing:-.04em}.hero-description{font-size:15px;line-height:2;color:#a6aeb9;max-width:514px;margin:29px 0}.hero-description strong{font-weight:600;color:#e2e5eb}.hero-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:33px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:25px;border:1px solid #4a505a;padding:15px 21px;min-height:51px;font-size:12px;font-weight:750;transition:background .2s,transform .2s}.button:hover{transform:translateY(-2px)}.button-primary{background:#dce0e7;color:#16191d;border-color:#dce0e7}.button-primary:hover{background:#fff}.button-secondary{background:transparent;color:#e2e5ea}.button-secondary:hover{background:#282c33}.hero-tags{display:flex;flex-wrap:wrap;gap:7px;margin-top:38px}.hero-tags span,.chip-list span{font:700 10px Arial,sans-serif;letter-spacing:.045em;padding:7px 9px;border:1px solid #424750;color:#a5adb7}.hero-visual{position:relative;min-height:430px;border:1px solid #40444e;background:radial-gradient(circle at 68% 26%,#383d46 0%,#22252b 38%,#1a1d22 76%);overflow:hidden;box-shadow:20px 24px 60px #08090a30}.hero-visual:before{content:'';position:absolute;inset:0;background-image:linear-gradient(#ffffff0c 1px,transparent 1px),linear-gradient(90deg,#ffffff0c 1px,transparent 1px);background-size:27px 27px;mask-image:linear-gradient(180deg,#000,#0006)}.visual-topline,.visual-footer{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;background:#15171b88;padding:15px 20px;border-bottom:1px solid #55586266;color:#aeb6c0;font:700 10px Arial,sans-serif;letter-spacing:.1em}.tiny-cube{width:6px;height:6px;background:#dce1e8;display:inline-block;margin-right:5px;transform:rotate(45deg)}.serial{color:#6d7683}.visual-main{position:relative;padding:29px 46px 25px}.visual-label{font:700 10px Arial,sans-serif;letter-spacing:.17em;color:#99a2ae}.warehouse-illustration{position:relative;width:270px;margin:24px auto 10px;padding:15px 15px 0 27px}.warehouse-topline{position:absolute;top:0;left:37px;right:20px;height:2px;background:#8e98a8}.rack{display:grid;grid-template-columns:repeat(5,1fr);gap:4px}.rack span{height:36px;display:grid;place-items:center;border:1px solid #77808b90;background:#393f4870;color:#aeb6c1;font:700 11px Arial,sans-serif}.rack span:nth-child(3n+1){background:#9da9b828;border-color:#aeb6c1a8}.axis-x{position:absolute;left:25px;right:15px;top:85px;height:1px;background:#c3ccd9}.axis-y{position:absolute;left:102px;top:0;bottom:0;width:1px;background:#c3ccd9}.axis-carriage{position:absolute;top:67px;left:84px;width:36px;height:36px;border:2px solid #e6ebf4;background:#8c98a844;display:grid;place-items:center;color:white;font-size:26px;font-weight:300}.axis-caption{position:absolute;bottom:-28px;left:35px;color:#c0cad6;font:700 9px Arial,sans-serif}.axis-caption-y{position:absolute;top:10px;left:0;color:#c0cad6;font:700 9px Arial,sans-serif;writing-mode:vertical-lr;transform:rotate(180deg)}.visual-footer{border-top:1px solid #55586266;border-bottom:0;padding:21px;gap:10px}.visual-footer div{display:flex;flex-direction:column;gap:5px}.visual-footer small{font-size:8px;color:#8894a3}.visual-footer strong{font-size:10px;color:#e3e6ed}.visual-footer .visual-footer-indicator{font-size:9px;color:#b9c5d2;flex-direction:row;align-items:center}.visual-footer-indicator span{display:inline-block;width:6px;height:6px;background:#cbd4e0;border-radius:50%}.visual-corner{width:12px;height:12px;position:absolute;border-color:#e0e6ee;z-index:1}.visual-corner.tl{top:0;left:0;border-left:2px solid;border-top:2px solid}.visual-corner.tr{top:0;right:0;border-right:2px solid;border-top:2px solid}.visual-corner.bl{bottom:0;left:0;border-left:2px solid;border-bottom:2px solid}.visual-corner.br{bottom:0;right:0;border-right:2px solid;border-bottom:2px solid}.hero-bottomline{grid-column:1/-1;display:flex;justify-content:space-between;color:#777f8c;font:700 10px Arial,sans-serif;letter-spacing:.16em;border-top:1px solid #343943;padding-top:24px;margin-top:62px}.section-heading{margin-bottom:42px}.section-no{color:#99a2ad;display:inline-block;margin-bottom:22px}.section-heading h2{font-size:clamp(32px,4vw,52px);line-height:1.29;letter-spacing:-.055em;margin:0 0 16px;font-weight:790}.section-heading h2 span{color:#929aa6}.section-heading>p{font-size:14px;color:#939caa;line-height:1.85;margin:0}.about-layout{display:grid;grid-template-columns:1fr 1fr;gap:60px;border-top:1px solid var(--line);padding-top:39px}.mini-label{color:#89939f}.about-lead>p{font-size:14px;color:#aab2bd;line-height:2.05}.about-lead>p:first-of-type{color:#e4e7ed;font-size:22px;font-weight:700;letter-spacing:-.04em;margin:21px 0}.about-lead p strong{color:#e7e9ef}.about-signature{margin-top:27px;color:#858e99;font:800 12px Arial,sans-serif;letter-spacing:.12em}.about-signature span{color:#dfe3eb;margin:0 10px}.metrics{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid #454b55;border-left:1px solid #454b55}.metric{display:flex;flex-direction:column;justify-content:center;min-height:147px;padding:20px 24px;border-right:1px solid #454b55;border-bottom:1px solid #454b55}.metric>strong{font:800 44px Arial,sans-serif;letter-spacing:-.07em}.metric>strong>span{font:700 16px 'Malgun Gothic',sans-serif;letter-spacing:0}.metric>span{font-size:12px;color:#a3adb8}.metric-statement>span{font:700 10px Arial,sans-serif;letter-spacing:.14em}.metric-statement strong{font:700 20px/1.5 'Malgun Gothic',sans-serif;letter-spacing:-.04em;margin-top:8px}.projects-heading{margin-bottom:40px}.project{padding:39px;border:1px solid #424852;background:#1b1e23;margin-bottom:32px}.project-two{margin-bottom:0}.project-heading{display:flex;justify-content:space-between;gap:20px}.project-index{display:flex;align-items:center;gap:10px;color:#d7dce4}.index-square{display:inline-block;background:#dce1e8;width:8px;height:8px}.project-type{margin-left:12px;color:#798391}.project-heading h3{font-size:clamp(26px,3vw,38px);letter-spacing:-.055em;line-height:1.34;margin:22px 0}.project-heading p{color:#a9b2bd;font-size:14px;line-height:1.9;max-width:720px}.project-no{font:800 67px Arial,sans-serif;color:#424954;white-space:nowrap;line-height:1}.project-no span{font:700 11px Arial,sans-serif;color:#969eaa}.chip-list{display:flex;flex-wrap:wrap;gap:7px;margin:21px 0 30px}.architecture{border:1px solid #39414b;background:#181c21;padding:20px;margin-bottom:21px}.architecture-title{display:flex;justify-content:space-between;gap:8px;color:#d0d5df}.architecture-title span{font-family:'Malgun Gothic',sans-serif;letter-spacing:0;color:#8d98a6;font-weight:500}.architecture-flow{display:flex;align-items:center;justify-content:center;gap:11px;margin:26px 0 19px}.flow-box{border:1px solid #626b77;background:#252b33;min-width:165px;min-height:64px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:9px;text-align:center}.flow-box small{color:#8d9bac;font:700 8px Arial,sans-serif;letter-spacing:.16em}.flow-box b{font:800 12px Arial,sans-serif;color:#e0e5ed;letter-spacing:.045em;margin-top:6px}.flow-active{background:#d4d9e1;border-color:#d4d9e1}.flow-active small,.flow-active b{color:#1b2027}.flow-arrow{font-size:20px;color:#bbc4d0}.architecture-subflow{display:flex;justify-content:center;gap:17px;align-items:center;border-top:1px solid #363c45;padding-top:16px;font:700 10px Arial,sans-serif;letter-spacing:.07em}.architecture-subflow span{color:#788595}.architecture-subflow b{color:#d5dce6}.project-gallery{display:grid;grid-template-columns:1fr 1fr;gap:17px}.photo-slot{margin:0;position:relative}.photo-slot>img{position:absolute;inset:0 0 29px;width:100%;height:calc(100% - 29px);object-fit:cover;display:none}.photo-slot.has-image>img{display:block}.photo-slot.has-image .placeholder{visibility:hidden}.placeholder{height:213px;background:linear-gradient(125deg,#282d35,#20242b);border:1px dashed #626b77;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:7px;text-align:center;color:#d8dce4}.placeholder-plus{border:1px solid #626b77;border-radius:50%;font:300 25px Arial,sans-serif;width:37px;height:37px;line-height:36px}.placeholder b{font-size:13px}.placeholder small{font:11px Arial,sans-serif;color:#909ba8}.photo-slot figcaption{margin-top:10px;color:#8a94a3}.project-expand{margin-top:27px;border-top:1px solid #3f444f}.project-expand summary{padding:19px 2px;display:flex;justify-content:space-between;cursor:pointer;list-style:none;font-size:13px;font-weight:750;color:#dce1e8}.project-expand summary::-webkit-details-marker{display:none}.expand-sign{font:26px/1 Arial,sans-serif;font-weight:300}.project-expand[open] .expand-sign{transform:rotate(45deg)}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px;padding-top:8px}.detail-grid h4{font-size:14px;margin:0 0 12px;color:#d5dbe4}.detail-grid ul{margin:0;padding-left:19px;color:#abb5c2;font-size:13px;line-height:2.1}.detail-note{font-size:11px;color:#8994a2;margin:21px 0 2px}.skills-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.skill-card{min-height:235px;border:1px solid #444b56;padding:25px 22px;background:#20242b}.skill-icon{display:inline-grid;place-items:center;width:34px;height:34px;border:1px solid #67717e;font:800 12px Arial,sans-serif;color:#d7dce5}.skill-card h3{font:800 14px Arial,sans-serif;letter-spacing:.03em;margin:33px 0 11px}.skill-card p{font-size:12px;line-height:2;color:#a7b0bc;margin:0}.timeline{border-top:1px solid #40464e}.timeline-item{display:grid;grid-template-columns:210px 1fr;gap:25px;padding:29px 3px;border-bottom:1px solid #40464e}.timeline-meta{color:#8a94a2;padding-top:8px}.timeline-item h3{font-size:19px;margin:0 0 8px;letter-spacing:-.03em}.timeline-item h3 span{font-size:14px;color:#9ea6b1;font-weight:500;margin-left:12px}.timeline-item p{font-size:13px;color:#a6aeb9;margin:0}.section-contact{background:linear-gradient(120deg,#2b3038,#1d2026)}.contact-layout{display:grid;grid-template-columns:1.25fr .75fr;gap:50px;align-items:center}.section-contact h2{font:800 clamp(37px,4.6vw,60px)/1.14 Arial,sans-serif;letter-spacing:-.05em;margin:0}.section-contact h2 span{color:#a5aeba}.section-contact p{font-size:14px;color:#b3bbc7}.contact-card{padding:27px;background:#191c21;border:1px solid #535c67}.contact-card>.mini-label{display:block;margin-bottom:18px}.contact-row{display:flex;justify-content:space-between;gap:10px;border-top:1px solid #343a43;padding:13px 0;font-size:12px}.contact-row span{font:700 10px Arial,sans-serif;letter-spacing:.08em;color:#818c99}.contact-row strong{font-size:12px;font-weight:600}.contact-card .full{margin-top:13px;width:100%}.contact-card>small{display:block;margin-top:11px;color:#8793a1;font-size:10px}.site-footer{background:#111317;border-top:1px solid #333941}.footer-inner{min-height:95px;display:flex;gap:20px;justify-content:space-between;align-items:center;font:700 10px Arial,sans-serif;letter-spacing:.09em}.footer-inner span,.footer-inner p{color:#818b99}.footer-inner a:hover{text-decoration:underline}
@media(max-width:1050px){.hero{column-gap:25px}.hero-visual{min-height:414px}.visual-main{padding-left:20px;padding-right:20px}.main-nav{gap:18px}.section{padding-block:85px}.skills-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:770px){.container{width:min(calc(100% - 38px),var(--wrap))}.header-inner{height:69px}.nav-toggle{display:flex;flex-direction:column;gap:5px;justify-content:center;border:1px solid #5c636d;background:transparent;width:42px;height:39px;padding:10px;cursor:pointer}.nav-toggle span{width:100%;height:2px;background:#e1e5eb;display:block}.main-nav{position:absolute;top:69px;left:0;right:0;display:none;background:#1b1e24;border-bottom:1px solid #4b535c;padding:17px 20px 22px;flex-direction:column;align-items:stretch;gap:3px}.main-nav.is-open{display:flex}.main-nav a{padding:13px;font-size:12px}.main-nav .nav-contact{margin-top:8px;text-align:center}.hero{display:block;min-height:unset;padding-top:70px}.hero-visual{margin-top:43px;min-height:418px}.hero h1{font-size:clamp(34px,7.4vw,55px)}.hero-kicker{font-size:13px}.eyebrow{font-size:8px}.hero-bottomline{margin-top:33px}.about-layout,.contact-layout{grid-template-columns:1fr;gap:29px}.project{padding:24px}.project-heading h3{font-size:26px}.project-no{font-size:40px}.project-type{font-size:9px}.architecture-flow{gap:7px}.flow-box{min-width:0;flex:1}.flow-box b{font-size:10px}.flow-arrow{font-size:14px}.project-gallery{gap:10px}.placeholder{height:190px}.detail-grid{gap:18px}.timeline-item{grid-template-columns:140px 1fr}.section-contact h2{font-size:44px}}
@media(max-width:500px){.section{padding-block:70px}.hero{padding-top:52px;padding-bottom:27px}.hero h1{font-size:clamp(32px,9.4vw,45px)}.hero-description{font-size:13px}.hero-actions{flex-direction:column}.button{width:100%}.hero-visual{min-height:385px}.visual-main{padding:22px 13px}.warehouse-illustration{transform:scale(.9);transform-origin:top center;margin-bottom:-5px}.visual-footer{padding:15px;gap:5px}.visual-footer strong{font-size:9px}.visual-footer .visual-footer-indicator{font-size:0}.hero-bottomline{font-size:8px}.section-heading h2{font-size:31px}.metrics{grid-template-columns:1fr 1fr}.metric{padding:15px;min-height:123px}.metric>strong{font-size:32px}.metric-statement strong{font-size:16px}.project-index{gap:6px;font-size:9px}.project-type{display:none}.project-heading h3{font-size:24px}.project-heading p{font-size:12px}.project-no{font-size:36px}.architecture{padding:12px 9px}.architecture-flow{gap:4px}.flow-box{padding:8px 4px;min-height:59px}.flow-box b{font-size:9px}.flow-box small{font-size:7px}.flow-arrow{font-size:13px}.architecture-subflow{flex-direction:column;gap:4px;font-size:9px}.project-gallery{grid-template-columns:1fr;gap:18px}.placeholder{height:188px}.detail-grid{grid-template-columns:1fr}.skills-grid{grid-template-columns:1fr}.skill-card{min-height:unset}.skill-card h3{margin-top:18px}.timeline-item{grid-template-columns:1fr;gap:2px}.timeline-item h3 span{display:block;margin:2px 0}.contact-card{padding:22px}.section-contact h2{font-size:37px}.footer-inner{flex-direction:column;gap:8px;justify-content:center;text-align:center;padding-block:18px}.footer-inner p{margin:0}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.button{transition:none}}

/* Portfolio Final PPT extension — original dark & gray tokens and hero unchanged */
.program-line{display:grid;grid-template-columns:180px 1fr;gap:20px;margin-top:36px;padding:17px 0;border-top:1px solid var(--line);color:#acb5c2;font-size:12px}.program-line span{font:800 10px Arial,sans-serif;letter-spacing:.12em;color:#dee2e8}.program-line p{margin:0}
.project-overview-grid{display:grid;grid-template-columns:1fr 1fr;gap:19px}.overview-tile{border:1px solid #424852;background:#1c2026;display:block;transition:border-color .2s,transform .2s}.overview-tile:hover{border-color:#a8b3c1;transform:translateY(-3px)}.overview-img{aspect-ratio:1.9;overflow:hidden;background:#f0f0f0}.overview-img img{width:100%;height:100%;object-fit:cover;display:block}.overview-body{padding:25px 26px 30px}.overview-body .section-no{margin-bottom:12px}.overview-body h3{font-size:clamp(21px,2.5vw,29px);line-height:1.36;letter-spacing:-.045em;margin:0 0 11px}.overview-body p{font-size:12px;color:#a7b0bc;line-height:1.9;min-height:45px}.overview-link{display:inline-block;margin-top:17px;color:#e1e6ed;font-size:12px;border-bottom:1px solid #737c89;padding-bottom:5px;font-weight:750}
.case-banner{border:1px solid #404753;background:#1a1e24;display:grid;grid-template-columns:1fr 1.1fr;align-items:center;gap:28px;padding:22px;margin-bottom:21px}.case-banner-copy{padding:18px 16px}.case-banner-copy h3{font-size:clamp(25px,2.6vw,37px);line-height:1.4;letter-spacing:-.045em;margin:15px 0}.case-banner-copy>p{font-size:13px;line-height:2;color:#aab4c0}.case-banner>img{display:block;width:100%;max-height:400px;object-fit:contain;background:#ecedf0;cursor:zoom-in}.case-banner .chip-list{margin:20px 0}.case-banner .button{margin-top:8px}
.steps-line{display:grid;grid-template-columns:repeat(5,1fr);border:1px solid #434a56;background:#222730;margin:0 0 62px}.steps-line span{padding:18px 6px;text-align:center;font-size:11px;color:#c8d1db;border-right:1px solid #424b57;font-weight:700}.steps-line span:last-child{border-right:0}
.case-row{padding:49px 0;border-top:1px solid #3e444c;display:grid;grid-template-columns:.92fr 1.08fr;gap:55px;align-items:center}.case-row.reverse{grid-template-columns:1.08fr .92fr}.case-row.reverse .case-copy{order:2}.case-row.reverse .case-figure{order:1}.case-copy{min-width:0}.case-number{display:block;color:#abb7c5;letter-spacing:.13em;font-size:10px;font-weight:800;font-family:Arial,sans-serif}.case-copy h3{font-size:clamp(24px,2.8vw,35px);line-height:1.35;letter-spacing:-.05em;margin:18px 0}.case-copy>p{font-size:14px;line-height:1.95;color:#aab3c0}.case-copy .button{margin-top:19px}.simple-points{padding-left:20px;color:#aeb7c2;line-height:2;font-size:13px}.kv-strip{margin:20px 0;display:flex;gap:10px;flex-wrap:wrap}.kv-strip>span{font:800 11px Arial,sans-serif;border:1px solid #464e5a;padding:11px;color:#e6eaf0}.kv-strip b{display:block;font:500 11px 'Malgun Gothic',sans-serif;color:#a5b1be;margin-top:4px}.case-figure{margin:0;min-width:0;border:1px solid #424a56;background:#eceef1;padding:12px;display:grid;gap:10px}.case-figure img{display:block;min-width:0;width:100%;max-height:430px;object-fit:contain;cursor:zoom-in}.case-figure.pair{grid-template-columns:repeat(2,minmax(0,1fr));align-items:center}.case-figure.pair img{max-height:310px}.case-figure.mosaic{grid-template-columns:repeat(2,minmax(0,1fr));align-items:center}.case-figure.mosaic img:first-child{grid-row:span 2;max-height:340px}.case-figure.mosaic img:nth-child(3){grid-column:2}.case-figure figcaption{grid-column:1/-1;color:#657283;font:800 9px Arial,sans-serif;letter-spacing:.12em;padding:8px 3px 1px}
.spec-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px;margin:18px 0}.spec-grid div{border:1px solid #444b56;padding:10px 15px}.spec-grid small{display:block;color:#a7b1bd;font-size:11px}.spec-grid strong{font:800 23px Arial,sans-serif;color:#eceff3}
.trouble-section{padding-top:90px}.trouble-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.trouble-card{background:#20242b;border:1px solid #454b55;padding:21px;display:flex;flex-direction:column;gap:12px;min-width:0}.trouble-card h3{font-size:18px;letter-spacing:-.03em;margin:0}.trouble-card p{font-size:12px;line-height:1.85;color:#abb6c3;margin:0}.trouble-card strong{font-size:12px;color:#e3e8ef}.trouble-card img{width:100%;aspect-ratio:1.5;object-fit:contain;background:#f6f7f8;margin-top:auto;cursor:zoom-in}
.image-viewer{width:min(96vw,1260px);max-height:95vh;position:fixed;background:#15171b;color:#c4cad4;border:1px solid #626e7c;padding:30px 20px 12px;overflow:auto}.image-viewer::backdrop{background:#000d}.image-viewer img{display:block;max-width:100%;max-height:78vh;object-fit:contain;margin:auto;background:#fff}.image-viewer p{text-align:center;font-size:11px;color:#8f98a6}.image-close{position:sticky;top:0;float:right;margin:-15px -6px 9px 0;color:white;background:#31363f;border:1px solid #59616b;padding:6px 12px;cursor:pointer}
@media(max-width:900px){.case-row,.case-row.reverse,.case-banner{grid-template-columns:1fr;gap:24px}.case-row.reverse .case-copy,.case-row.reverse .case-figure{order:initial}.case-banner>img{max-height:340px}.trouble-grid{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.project-overview-grid{grid-template-columns:1fr}.case-row{padding:32px 0}.program-line{grid-template-columns:1fr;gap:5px}.trouble-grid{grid-template-columns:1fr}.case-figure.pair{grid-template-columns:1fr 1fr}.steps-line{grid-template-columns:repeat(2,1fr)}.steps-line span:last-child{grid-column:1/-1}.overview-img{aspect-ratio:1.85}.image-viewer{padding:27px 8px 12px}}


/* 2026-10-29 | 메인 포트폴리오 이미지 정렬 보정 — 원본 디자인/기능 유지
   모든 사진은 실제 픽셀을 재단하지 않고 같은 크기의 프레임 안에 비율 유지(Contain)합니다. */
:root {
  --aligned-photo-height: 292px;
  --aligned-card-image-height: 188px;
  --aligned-photo-background: #f0f2f5;
  --aligned-photo-border: #d8dee6;
}
/* 프로젝트 개요 카드: 같은 16:9 영역, 이미지 잘림 방지 */
.project-overview-grid .overview-img {
  aspect-ratio: 16 / 9;
  background: var(--aligned-photo-background);
  display: grid;
  place-items: center;
}
.project-overview-grid .overview-img img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
}
/* 각 프로젝트의 메인 장비 이미지도 동일한 크기의 프레임을 사용 */
.case-banner > img {
  display: block;
  width: 100%;
  height: var(--aligned-photo-height);
  min-height: 0;
  max-height: none;
  object-fit: contain;
  object-position: center;
  background: var(--aligned-photo-background);
  border: 1px solid var(--aligned-photo-border);
}
/* 센서, 래더, HMI, SCADA, 서보 등 상세 이미지의 행 높이와 격자 통일 */
.case-row .case-figure,
.case-row .case-figure.pair,
.case-row .case-figure.mosaic {
  display: grid;
  grid-template-rows: var(--aligned-photo-height) auto;
  gap: 10px;
  align-items: stretch;
  background: #edf0f3;
  padding: 12px;
}
.case-row .case-figure { grid-template-columns: minmax(0, 1fr); }
.case-row .case-figure.pair { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.case-row .case-figure.mosaic { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.case-row .case-figure img,
.case-row .case-figure.pair img,
.case-row .case-figure.mosaic img,
.case-row .case-figure.mosaic img:first-child,
.case-row .case-figure.mosaic img:nth-child(3) {
  display: block;
  width: 100%;
  height: var(--aligned-photo-height);
  min-width: 0;
  min-height: 0;
  max-height: none;
  grid-column: auto;
  grid-row: 1;
  align-self: center;
  justify-self: stretch;
  border: 1px solid var(--aligned-photo-border);
  background: #f7f8fa;
  object-fit: contain;
  object-position: center;
}
.case-row .case-figure figcaption,
.case-row .case-figure.pair figcaption,
.case-row .case-figure.mosaic figcaption {
  grid-column: 1 / -1;
  grid-row: 2;
  align-self: center;
  margin: 0;
  padding: 5px 3px 1px;
}
/* 트러블슈팅 래더 3장: 패널 너비·이미지 높이 완전 통일 */
.trouble-grid .trouble-card img {
  width: 100%;
  height: var(--aligned-card-image-height);
  min-height: 0;
  max-height: none;
  aspect-ratio: auto;
  object-fit: contain;
  object-position: center;
  border: 1px solid var(--aligned-photo-border);
  background: #f7f8fa;
}
/* 태블릿에서도 동일한 기준, 지나치게 좁은 이미지 칸 방지 */
@media (max-width: 900px) {
  :root { --aligned-photo-height: 274px; }
}
@media (max-width: 600px) {
  :root { --aligned-photo-height: 245px; --aligned-card-image-height: 178px; }
  .case-row .case-figure.pair {
    grid-template-columns: 1fr;
    grid-template-rows: var(--aligned-photo-height) var(--aligned-photo-height) auto;
  }
  .case-row .case-figure.pair img:nth-of-type(1) { grid-row: 1; }
  .case-row .case-figure.pair img:nth-of-type(2) { grid-row: 2; }
  .case-row .case-figure.pair figcaption { grid-row: 3; }
  .case-row .case-figure.mosaic {
    grid-template-columns: 1fr;
    grid-template-rows: repeat(3, var(--aligned-photo-height)) auto;
  }
  .case-row .case-figure.mosaic img:nth-of-type(1) { grid-row: 1; }
  .case-row .case-figure.mosaic img:nth-of-type(2) { grid-row: 2; }
  .case-row .case-figure.mosaic img:nth-of-type(3) { grid-row: 3; }
  .case-row .case-figure.mosaic figcaption { grid-row: 4; }
}
