/* Research archive: quiet typography, generous images, precise dividers. */
:root{--ink:#202329;--muted:#7b7e84;--line:#e5e6e8;--green:#354d80;--paper:#fafafa}
body{background:var(--paper);color:var(--ink);font-family:Pretendard,"Segoe UI","Malgun Gothic",sans-serif;-webkit-font-smoothing:antialiased;letter-spacing:-.025em}
header{height:76px;padding:0 max(32px,calc((100vw - 1344px)/2));display:flex;align-items:center;background:#fff;border-bottom:1px solid var(--line)}
.brand{display:inline-flex;gap:12px;align-items:center;font-size:17px;letter-spacing:-.05em;font-weight:650}
.brand:before{content:"";display:block;width:14px;height:14px;border:1.5px solid #354d80;box-shadow:4px -4px 0 -1px #fff,4px -4px 0 0 #354d80;margin-right:4px}
main{max-width:1408px;padding:48px 32px 88px}
.eyebrow{display:none}
h1,.workspace h1{font-size:34px;line-height:1.3;font-weight:600;letter-spacing:-.055em;margin:0}
#projectHome{counter-reset:projects}
#projectHome>h1{padding-bottom:24px;border-bottom:1px solid #30343b}
.project-grid{gap:32px;margin-top:32px}
.project-card{position:relative;counter-increment:projects;border:1px solid var(--line);border-radius:3px;background:#fff;transition:border-color .2s}
.project-card:hover{box-shadow:none;border-color:#8c99af}
.project-card:before{content:"0" counter(projects);position:absolute;top:22px;left:24px;font-size:12px;letter-spacing:.04em;color:#9a9ca1;font-variant-numeric:tabular-nums}
.project-card .cover{height:310px;padding:28px 55px 10px;background:#fff}
.project-card .cover img{transition:transform .3s}
.project-card:hover .cover img{transform:scale(1.025)}
.project-info{margin:0 24px;padding:20px 0 22px;border-top:1px solid #ececef}
.project-info>span.muted{font-size:10px;letter-spacing:.08em;color:#858a93}
.project-info h2{font-size:24px;letter-spacing:-.055em;font-weight:550;margin:8px 0 22px}
.project-info .muted:last-child{font-size:12px;color:#747982}
.project-info .muted:last-child span:last-child{color:#354d80}
#projectHome>div.muted{font-size:10px;text-align:right;color:#96999f}
.workspace{grid-template-columns:196px minmax(0,1fr);gap:48px}
.sidebar{padding-right:24px;border-right:1px solid var(--line)}
.back{font-size:12px;color:#6e7480}
.project-image{height:150px;margin-top:25px;border-radius:3px;border:1px solid #ececef;padding:12px}
.sidebar h2{font-size:19px;font-weight:600;letter-spacing:-.045em;margin:18px 0 8px}
#projectCode{font-size:11px;letter-spacing:.06em;font-variant-numeric:tabular-nums}
.sidebar nav{gap:4px;margin-top:28px}
.sidebar nav a{font-size:13px;padding:12px 10px;border-radius:2px;color:#767b84;border-left:2px solid transparent}
.sidebar nav a:hover{color:var(--ink);background:#f0f1f3}
.sidebar nav a[aria-current=page]{background:#edf0f6;color:#354d80;border-left-color:#354d80;font-weight:600}
.toolbar{gap:14px;margin:26px 0 24px;padding-bottom:24px;border-bottom:1px solid var(--line)}
.toolbar input{flex:1;min-width:180px;max-width:400px;border:1px solid #dedfe3;border-radius:5px;padding:12px 15px;background:white;font-size:13px;outline:none}
.toolbar input:focus{border-color:#5c7196;box-shadow:0 0 0 3px #354d800c}
.count{font-size:12px;color:#898d95;white-space:nowrap}
.import-button{margin-left:auto;background:#293b5b;border-radius:5px;font-size:13px;padding:12px 16px;font-weight:500}
.import-button:hover{background:#384e73}
.workspace .grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:20px}
.card{border-radius:3px;border:1px solid #e3e5e9;transition:border-color .2s;background:#fff}
.card:hover{transform:none;box-shadow:none;border-color:#8795ad}
.thumb{height:250px;padding:18px 12px 12px}
.card-drawing{height:82px;border-top:0;background:#fafafa;margin:0 14px;padding:9px 12px;border-radius:2px}
.meta{padding:20px 18px}
.id{font-size:12px;font-weight:650;letter-spacing:.06em;color:#465e87;font-variant-numeric:tabular-nums}
.name{font-size:16px;line-height:1.5;font-weight:550;letter-spacing:-.025em;margin:6px 0 14px;overflow-wrap:anywhere}
.meta>.muted{font-size:11px;color:#9599a0}
.queue-status{font-size:11px;color:#858b96;line-height:1.7}
.queue-status:empty{display:none}
dialog{border:1px solid #dcdfe4;border-radius:6px;box-shadow:0 24px 100px #18202f24}
dialog::backdrop{background:#20263380;backdrop-filter:blur(3px)}
.dialog-head{padding:16px 22px;background:#fcfcfd}
.close{border-radius:4px;background:transparent;color:#707783}
.close:hover{background:#eceef2}
.panel{padding:28px;gap:36px;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr)}
.panel>section:last-child{border-left:1px solid var(--line);padding-left:28px}
.part-name{font-size:25px;font-weight:550;letter-spacing:-.04em;margin:10px 0 32px}
.switch{border:0;background:#eceef2;border-radius:5px;padding:3px;gap:2px}
.switch button{background:transparent;font-size:12px;padding:8px 16px}
.switch button[aria-pressed=true]{background:white;color:#293b5b;box-shadow:0 1px 3px #24314a12}
.viewer{height:480px}
.angles{gap:8px;border-top:1px solid #eef0f2;padding-top:14px}
.angles button{border-radius:3px;border-color:#e5e7eb}
.angles button.selected{border-color:#5c7196;background:#f9fafc}
.angles span{font-size:10px;color:#777f8b}
.drawing{border-radius:3px;border-color:#e5e7eb;padding:20px;height:280px}
.drawing-head h3{font-size:12px;color:#737b86}
.image-note{font-size:10px;color:#9297a0}
.empty-panel{border-radius:3px;padding:48px 32px;background:white}
.empty-panel h2{font-size:18px;letter-spacing:-.04em}
.empty-panel p{font-size:13px;color:#8b9098}
.manual-title{font-size:15px;font-weight:500;color:#747c88;margin:20px 0}
.manual-actions a,.manual-paging button{border-radius:4px;font-size:12px;padding:10px 14px}
.manual-viewer,.manual-photo{border-radius:3px;border-color:#dfe2e7}
.manual-paging{font-size:12px;font-variant-numeric:tabular-nums}
.import-body{padding:24px 28px}.import-actions button{border-radius:4px;background:white;font-size:13px}
.import-table{font-size:12px}.import-table th{font-weight:500;color:#78808d;background:#f7f8fa}
.import-feedback{color:#53627a}.import-footer{padding-top:20px;border-top:1px solid var(--line)}
button:focus-visible,a:focus-visible{outline:2px solid #526e9c;outline-offset:3px}
@media(min-width:1500px){.thumb{height:280px}}
@media(max-width:1000px){.workspace{grid-template-columns:170px minmax(0,1fr);gap:28px}.project-card .cover{height:260px}.toolbar{gap:10px}.toolbar input{max-width:none}.toolbar .import-button{margin-left:0}.panel{gap:24px}}
@media(max-width:850px){header{height:64px;padding:0 24px}main{padding:32px 24px 64px}.workspace{grid-template-columns:1fr;gap:32px}.sidebar{padding:0;border:0}.sidebar h2{margin-top:16px}.sidebar nav{border-bottom:1px solid var(--line);padding-bottom:12px}.sidebar nav a{border-left:0;border-bottom:2px solid transparent}.sidebar nav a[aria-current=page]{border-left:0;border-bottom-color:#354d80}.project-grid{gap:20px}.project-card .cover{padding:28px 24px 12px}.project-info{margin:0 20px}}
@media(max-width:760px){.panel{grid-template-columns:1fr;padding:20px}.panel>section:last-child{border-left:0;border-top:1px solid var(--line);padding:24px 0 0}.viewer{height:350px}.workspace h1,h1{font-size:29px}.project-info h2{font-size:21px}}
@media(max-width:520px){header{padding:0 20px}main{padding:28px 20px 56px}.brand{font-size:16px}.project-grid{grid-template-columns:1fr;gap:24px}.project-card .cover{height:260px}.toolbar input{flex-basis:100%;order:0}.toolbar .count{order:1}.toolbar .import-button{order:2;margin-left:auto}.workspace .grid{grid-template-columns:1fr}.thumb{height:300px}.project-info h2{margin-bottom:18px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;scroll-behavior:auto!important}}

/* Compact parts index; full-size images remain available in the detail viewer. */
.workspace #grid{grid-template-columns:repeat(10,minmax(0,1fr));gap:8px}
#grid .card{min-width:0}
#grid .thumb{height:auto;aspect-ratio:1/1;padding:6px}
#grid .card-drawing{height:38px;margin:0 5px;padding:4px}
#grid .meta{padding:10px 7px 11px}
#grid .id{font-size:11px;letter-spacing:.02em}
#grid .name{font-size:11px;line-height:1.4;font-weight:500;margin:5px 0 6px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.8em}
#grid .meta>.muted{font-size:10px}
#grid .empty{grid-column:1/-1}
@media(max-width:1199px){.workspace #grid{grid-template-columns:repeat(8,minmax(0,1fr))}}
@media(max-width:1000px){.workspace #grid{grid-template-columns:repeat(6,minmax(0,1fr))}}
@media(max-width:600px){.workspace #grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:380px){.workspace #grid{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* Four projects in one compact row on desktop. */
#projects{grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
#projects .project-card{min-width:0}
#projects .project-card .cover{height:210px;padding:30px 20px 12px}
#projects .project-card:before{top:15px;left:16px;font-size:11px}
#projects .project-info{margin:0 16px;padding:16px 0 18px}
#projects .project-info h2{font-size:19px;line-height:1.45;margin:8px 0 16px}
#projects .project-info .muted:last-child{font-size:11px;gap:8px;flex-wrap:wrap}
@media(max-width:850px){#projects{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){#projects{gap:12px}#projects .project-card .cover{height:155px;padding:28px 10px 10px}#projects .project-info{margin:0 12px}#projects .project-info h2{font-size:16px}#projects .project-info>span.muted{font-size:9px}}
@media(max-width:360px){#projects{grid-template-columns:1fr}}

#researchIntro{max-width:880px;margin:0 0 48px;padding:4px 0 0}
.research-label{font-size:11px;font-weight:600;color:#526482;letter-spacing:.04em;margin-bottom:12px}
#researchTitle{font-size:26px;font-weight:550;letter-spacing:-.045em;line-height:1.5;margin:0 0 16px;word-break:keep-all}
#researchIntro p{max-width:780px;font-size:14px;line-height:1.9;color:#707783;margin:0;word-break:keep-all;overflow-wrap:break-word}
.research-people{display:flex;flex-wrap:wrap;gap:12px 30px;margin-top:22px;font-size:12px;color:#353c47}
.research-role{color:#8a9099;margin-right:10px}
@media(max-width:600px){#researchIntro{margin-bottom:34px}#researchTitle{font-size:22px}#researchIntro p{font-size:13px;line-height:1.8}}

/* Tighter vertical rhythm on the project overview. */
header{height:58px}
main:has(#projectHome:not([hidden])){padding-top:24px;padding-bottom:40px}
#researchIntro{margin-bottom:24px;padding-top:0}
.research-label{margin-bottom:6px}
#researchTitle{font-size:24px;line-height:1.35;margin-bottom:10px}
#researchIntro p{line-height:1.65}
.research-people{margin-top:12px}
#projectHome>h1{font-size:28px;padding-bottom:12px}
#projects{margin-top:18px}
@media(max-width:600px){header{height:54px}main:has(#projectHome:not([hidden])){padding-top:18px}#researchIntro{margin-bottom:20px}#researchTitle{font-size:21px}#projectHome>h1{font-size:25px}}

/* Official SNU image contains the blue emblem at left and a construction
   diagram at right. Show only the emblem region without modifying the file. */
.brand:before{width:34px;height:40px;flex:0 0 34px;margin-right:0;border:0;box-shadow:none;background:url('catalog_data/branding/snu-emblem.png') no-repeat left center;background-size:auto 40px}
