/* 기존 서비스 사이트의 서체·무채색·여백·프로젝트 레이아웃을 재사용합니다. */
@font-face{font-family:Caveat;src:url('../fonts/Caveat-Variable.ttf') format('truetype');font-weight:400 700;font-display:swap}
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.personal-site .portfolio-cover{padding-block:65px 65px;text-align:center}
.personal-site .portfolio-cover h1{font-family:Caveat,cursive;font-size:clamp(76px,13vw,172px);font-weight:400;letter-spacing:-.025em;line-height:1.2}
.personal-site .portfolio-signature{font-family:Caveat,cursive;font-size:34px;font-weight:600;letter-spacing:.01em}
.personal-site .site-footer{justify-content:center;padding-block:35px}
.personal-site .portfolio-copyright{font-size:12px;line-height:1.7;font-weight:400;letter-spacing:.015em;color:#777;text-align:center}
.personal-site #experience{padding-block:70px 90px}
.personal-site #experience>.section-heading{margin-bottom:40px}
.career-table-scroll{width:100%;overflow-x:auto;overscroll-behavior-x:contain}
.career-table{width:100%;min-width:750px;border-collapse:collapse;table-layout:fixed;text-align:left;font-size:16px}
.career-table th,.career-table td{border:0;border-right:1px solid #eaeaea;border-bottom:1px solid #eaeaea;padding:24px;line-height:1.8;vertical-align:middle;font-weight:400}
.career-table tr>*:first-child{width:27%;padding-left:0}.career-table tr>*:nth-child(2){width:15%}.career-table tr>*:nth-child(3){width:24%}.career-table tr>*:nth-child(4){width:15%}.career-table tr>*:last-child{width:19%;border-right:0;padding-right:0}
.career-table thead th{font-size:12px;color:#777;font-weight:500;padding-block:0 18px}.career-table tbody th{font-weight:550}.career-table tbody tr:last-child>*{border-bottom:0}.unconfirmed{color:#aaa}
.career-table-note{font-size:12px;line-height:1.9;color:#777;margin-top:25px}.personal-site .print-cover .portfolio-signature{font-size:70px}.print-cover .career-table{min-width:0;font-size:11px}.print-cover .career-table th,.print-cover .career-table td{padding:14px 10px}.print-cover .career-table tr>*:first-child{padding-left:0}.print-cover .career-table tr>*:last-child{padding-right:0}.print-cover .career-table thead th{font-size:10px}.print-cover .career-table-note{font-size:10px}
.career-summary{cursor:pointer}.career-summary:hover,.career-summary.is-expanded{background:#f7f7f7}
.career-toggle{display:flex;align-items:center;gap:10px;width:100%;padding:0;border:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}
.career-chevron{flex:0 0 16px;color:#888;transition:transform .16s ease}.career-toggle[aria-expanded="true"] .career-chevron{transform:rotate(90deg);color:#222}
.career-toggle:focus-visible{outline:2px solid #777;outline-offset:5px;border-radius:2px}
.career-table .career-detail[hidden]{display:none}
.career-table .career-detail>td{width:auto;padding:25px 28px;background:#fafafa;border-right:0}
.career-duties{margin:0;font-size:15px;color:#333;line-height:1.95;word-break:keep-all}
@media(prefers-reduced-motion:reduce){.career-chevron{transition:none}}
@media(max-width:700px){.personal-site .portfolio-cover{padding-block:50px 50px}.personal-site .portfolio-cover h1{font-size:clamp(68px,16vw,110px)}.personal-site #experience{padding-block:45px 55px}.career-table{font-size:14px;min-width:690px}.career-table th,.career-table td{padding:19px}.career-table-note{font-size:11px}.personal-site #experience>.section-heading{margin-bottom:30px}.print-cover .career-table{min-width:650px}}
@media print{.print-cover .career-table-scroll{overflow:visible}.print-cover .career-table{min-width:0}}
.personal-site .site-header{height:80px}.personal-site .hero{padding-block:100px 105px}.personal-site .hero h1{font-size:clamp(36px,4.4vw,58px);line-height:1.38}.personal-site .hero-description{font-size:19px;margin-top:28px;color:#555}.personal-site .hero .actions{margin-top:32px}.personal-site .hero .eyebrow{font-size:12px;margin-bottom:25px}.personal-site .work-section>.wrap{max-width:1160px;padding-block:40px 100px}.personal-site .work-section .section-heading{display:flex;margin-bottom:38px;align-items:center}.personal-site .work-section h2,.personal-section>.section-heading h2{font-size:38px;letter-spacing:-.035em}.personal-site .section-heading>p{color:#666}.personal-site .project-grid{gap:64px 38px}.personal-site .project-card{display:block}.personal-site .project-card>.project-visual{height:295px;padding:18px;border:1px solid #e5e5e5;border-radius:8px}.personal-site .project-card>.project-visual img{border:0;border-radius:0}.personal-site .project-card>.project-visual.desktop img{max-height:100%}.personal-site .project-caption{padding-top:24px}.personal-site .project-caption h3{font-size:25px;line-height:1.45;margin:14px 0}.personal-site .project-caption .project-lead{font-size:16px;line-height:1.85;color:#444}.personal-site .project-caption .project-stage{font-size:12px;color:#777;margin-top:17px}.personal-site .project-more{margin-top:18px;font-size:13px}.project-card:hover h3{text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:1px}.personal-site .industry-tag{border:0;padding:0;color:#777}.personal-section{padding-block:100px}.personal-section h2{font-size:42px;line-height:1.5}.section-intro{font-size:19px;line-height:1.9;margin-top:28px;color:#555;max-width:750px}.decision-list{display:grid;grid-template-columns:1fr;gap:35px;margin-top:55px}.decision-list article{position:relative;padding-left:42px}.decision-list article>span{position:absolute;left:0;top:5px;font-size:12px;color:#777}.decision-list h3{font-size:23px;line-height:1.5}.decision-list p{margin-top:12px;font-size:17px;line-height:1.85;color:#555}.experience-list{margin-top:55px;display:grid;gap:50px}.company-heading{display:flex;gap:17px;align-items:center;flex-wrap:wrap}.company-heading h3{font-size:23px;line-height:1.5}.company-logo{width:38px;height:38px;object-fit:contain}.company-logo.hackers{width:108px;height:32px}.company-logo.hackers+h3{font-size:20px}.career-duration{margin-left:auto;font-size:14px;color:#666}.career-role{font-weight:600;margin-top:20px}.experience-item>p:not(.career-role){max-width:760px;font-size:16px;line-height:1.85;color:#555;margin-top:12px}.career-links{display:flex;gap:12px 23px;flex-wrap:wrap;margin-top:18px;font-size:13px;color:#555}.career-links a:hover{text-decoration:underline}.institution{display:flex;align-items:center;gap:25px;margin-top:22px}.institution-logo{width:150px;height:48px;object-fit:contain}.institution p{font-size:14px;line-height:1.9}.institution p span{color:#777;font-size:12px}.learning-note{font-size:15px;color:#666;margin-top:55px}.personal-site .site-footer{margin-top:40px}.personal-site .case-hero{max-width:1160px;padding-block:45px 40px}.personal-site .case-hero h1{font-size:clamp(27px,3.2vw,42px);line-height:1.4;max-width:1000px}.personal-case-lead{font-size:21px;line-height:1.85;color:#444;margin-top:23px;max-width:900px}.personal-results{padding-block:30px 55px;border-top:1px solid #ddd}.result-label{font-size:13px;font-weight:500;letter-spacing:0;color:#666;line-height:1.6;margin:0 0 30px}.result-screens{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:35px}.result-screens figure{margin:0}.result-screens li{min-width:0}.screen-button{display:flex;align-items:center;justify-content:center;width:100%;height:290px;padding:12px;border:1px solid #e7e7e7;border-radius:6px;background:#fff;cursor:zoom-in}.screen-button img{max-height:100%;width:100%;object-fit:contain}.result-screens figcaption{display:flex;gap:12px;align-items:center;margin-top:18px;font-size:15px}.result-screens figcaption strong{font-weight:550}.result-screens figcaption>span:last-child{margin-left:auto;color:#777}.small-index{font-size:12px;color:#777;letter-spacing:.04em}.result-screens li>p{font-size:14px;line-height:1.8;color:#666;margin:10px 0 0 30px}.result-screens.schedule{grid-template-columns:repeat(3,minmax(0,1fr))}.result-screens.schedule .screen-button{height:360px}.notification-flow{display:grid;grid-template-columns:1fr 1fr;gap:35px;margin-top:45px}.notification-flow article{display:flex;align-items:center;gap:20px}.notification-flow h3{font-size:15px;font-weight:600;line-height:1.6}.flow-arrow{font-size:22px;color:#999}.notification-targets{display:grid;gap:15px}.notification-targets p{display:flex;align-items:center;gap:12px;font-size:13px}.notification-targets small{display:block;font-size:12px;color:#777;line-height:1.7}.gallery-note{font-size:12px;color:#777;margin-top:30px;line-height:1.8}.personal-case-body{border-top:1px solid #ddd;padding-block:35px 0}.personal-meta{display:flex;gap:25px 45px;flex-wrap:wrap;margin:25px 0 50px}.personal-meta dt{font-size:12px;color:#777;margin-bottom:9px}.personal-meta dd{font-size:14px;margin:0}.personal-case-body .case-problem-solution{margin-bottom:70px}.case-problem-solution h3{font-size:13px;color:#777;font-weight:500;margin-bottom:15px}.case-problem-solution p{font-size:18px;line-height:1.9}.personal-site .case-section{border:0;padding:0;margin-bottom:60px}.personal-site .case-section h2{font-size:29px;line-height:1.5}.personal-site .case-section>p{font-size:18px;line-height:1.95;margin-top:18px}.personal-site .case-section>p.small-index{font-size:12px;margin:0 0 14px}.personal-site .case-section ul{font-size:15px;line-height:2;color:#555;margin-top:18px;padding-left:20px}.personal-site .case-section>p.case-limitation{font-size:15px;color:#777}.personal-next{padding-block:30px 60px}.personal-next>.eyebrow{display:block;font-size:12px;color:#777;margin-bottom:18px}.personal-next>a:not(.text-link){display:block;font-size:27px;font-weight:600;line-height:1.6}.personal-next>.text-link{margin-top:30px}.personal-demos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px}.personal-demos article{display:grid;grid-template-columns:1fr 200px;align-items:center;gap:25px}.personal-demos h3{font-size:22px;line-height:1.5;margin-top:16px}.personal-demos p{font-size:15px;line-height:1.9;color:#555;margin-top:15px}.personal-demos video{display:block;width:100%;height:auto;aspect-ratio:786/1702;background:#fff}.screen-dialog{width:min(1250px,95vw);max-height:94vh;padding:60px 24px 20px;border:1px solid #ddd;border-radius:8px}.screen-dialog::backdrop{background:rgb(0 0 0/.75)}.screen-dialog img{width:100%;max-height:74vh;object-fit:contain}.dialog-close{position:absolute;right:15px;top:10px;min-height:36px;padding:5px 15px}.screen-dialog p{font-size:13px;color:#666;margin-top:15px;text-align:center}.print-toolbar{display:flex;justify-content:space-between;align-items:center;padding-block:35px;gap:25px}.print-toolbar p{font-size:14px;color:#555}.print-toolbar small{font-size:12px}.submission{background:#f4f4f4;padding:35px 20px}.print-sheet{position:relative;background:white;width:min(210mm,100%);min-height:297mm;padding:18mm;margin:0 auto 30px}.print-sheet h1{font-size:29px;line-height:1.45}.print-intro,.print-lead{font-size:15px;line-height:1.9;margin-top:20px}.print-cover h2{font-size:23px;margin-top:40px}.print-cover .experience-list{gap:32px;margin-top:30px}.print-cover .company-heading h3{font-size:18px}.print-cover .company-logo.hackers+h3{font-size:16px}.print-cover .career-duration{font-size:12px}.print-cover .career-role{margin-top:12px;font-size:14px}.print-cover .experience-item>p:not(.career-role){font-size:13px}.print-cover .career-links{display:none}.print-cover .institution{gap:15px}.print-cover .institution p{font-size:12px}.print-cover .institution p span{font-size:11px}.print-images{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:25px 0}.print-images figure{margin:0}.print-images img{width:100%;height:58mm;object-fit:contain}.print-images.mobile img,.print-images.schedule img{height:75mm}.print-images figcaption{font-size:11px;color:#777;text-align:center;margin-top:8px}.print-facts{display:grid;gap:17px;margin:25px 0}.print-facts>div{display:grid;grid-template-columns:35px 1fr;gap:15px}.print-facts dt{font-size:11px;color:#777;padding-top:3px}.print-facts dd{font-size:13px;line-height:1.85;margin:0}.print-footnote{font-size:10px;color:#777;line-height:1.8;margin-top:14px}.print-detail-link{display:inline-block;font-size:11px;margin-top:18px}.print-page{position:absolute;bottom:10mm;right:18mm;font-size:10px;color:#888}
@media(max-width:1000px){.personal-demos{grid-template-columns:1fr;max-width:720px;margin-inline:auto}.personal-demos article{grid-template-columns:1fr 240px}.notification-flow{gap:28px}.notification-flow article{gap:12px;align-items:flex-start}}
@media(max-width:700px){.personal-site .site-header{height:70px;padding-inline:22px}.personal-site .site-header nav{gap:17px;font-size:10px}.personal-site .nav-contact{padding:8px;border:0}.personal-site .nav-contact span{margin-left:0}.personal-site .brand{font-size:20px}.personal-site .wrap{width:calc(100% - 44px)}.personal-site .hero{padding-block:65px 75px;text-align:center}.personal-site .hero h1{font-size:35px}.personal-site .hero h1 br{display:block}.personal-site .hero-description{font-size:16px;line-height:1.9}.personal-site .hero-description br{display:none}.personal-site .hero .actions{justify-content:center;gap:25px}.personal-site .text-link{font-size:12px;gap:12px}.personal-site .work-section>.wrap{padding-block:25px 55px}.personal-site .work-section h2,.personal-section>.section-heading h2{font-size:29px}.personal-site .work-section .section-heading,.personal-section>.section-heading{display:block;margin-bottom:30px}.personal-site .section-heading>p{margin-top:15px;font-size:13px}.personal-site .project-grid{grid-template-columns:1fr;gap:45px}.personal-site .project-card>.project-visual{height:260px;padding:15px}.personal-site .project-caption h3{font-size:24px}.personal-site .project-caption .project-lead{font-size:15px}.personal-section{padding-block:65px}.personal-section h2{font-size:31px;line-height:1.5}.section-intro{font-size:17px}.decision-list{gap:30px;margin-top:38px}.decision-list h3{font-size:21px}.decision-list p{font-size:15px}.company-heading{gap:12px}.company-heading h3{font-size:20px}.company-logo.hackers{width:78px}.company-logo.hackers+h3{font-size:17px}.career-duration{font-size:12px}.experience-list{gap:38px;margin-top:35px}.experience-item>p:not(.career-role){font-size:15px}.institution{flex-wrap:wrap;gap:15px}.institution-logo{width:125px}.learning-note{font-size:13px;line-height:1.9}.personal-site .site-footer{flex-wrap:wrap;gap:15px}.personal-site .site-footer>span{margin-left:0}.personal-site .case-hero{padding-block:28px 30px}.personal-site .case-hero h1{font-size:28px}.personal-case-lead{font-size:18px;line-height:1.9}.personal-results{padding-top:25px}.result-screens,.result-screens.schedule{grid-template-columns:1fr;gap:30px}.screen-button{height:245px}.result-screens.schedule .screen-button{height:380px}.result-screens.schedule .screen-button img{width:auto}.notification-flow{grid-template-columns:1fr;gap:30px}.notification-flow article{align-items:center;justify-content:space-between}.notification-flow h3{font-size:14px}.notification-targets small{font-size:11px}.personal-meta{display:grid;gap:22px;margin-bottom:35px}.case-problem-solution{grid-template-columns:1fr;gap:28px}.case-problem-solution p{font-size:17px}.personal-site .case-section h2{font-size:25px}.personal-site .case-section>p{font-size:17px}.personal-site .case-section{margin-bottom:45px}.personal-next>a:not(.text-link){font-size:24px}.personal-demos article{grid-template-columns:minmax(0,1fr) 160px;gap:18px}.personal-demos h3{font-size:19px}.personal-demos p{font-size:13px}.print-toolbar{align-items:flex-start;flex-direction:column}.submission{padding:15px 0}.print-sheet{padding:25px 22px;min-height:auto;margin-bottom:15px;padding-bottom:55px}.print-sheet h1{font-size:24px}.print-images img{height:120px}.print-images.mobile img,.print-images.schedule img{height:220px}.print-facts>div{grid-template-columns:28px 1fr;gap:12px}.print-cover .company-heading{gap:10px}.print-cover .company-heading h3{font-size:16px}.print-cover .company-logo.hackers{width:70px}.print-cover .company-logo.hackers+h3{font-size:15px}.print-cover .institution{flex-wrap:wrap}}
.company-logo.consumer{width:153px;height:32px}.company-logo.consumer+h3{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
@media(max-width:700px){.personal-site .site-header nav>a:first-child{display:inline}.personal-site .site-header nav{gap:14px}.personal-site .site-header nav .nav-contact{padding-inline:0}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
@page{size:A4;margin:0}
@media print{html,body{background:#fff!important;scroll-padding-top:0}.site-header,.site-footer,.skip-link,.print-toolbar,dialog,.print-detail-link{display:none!important}.submission{background:white;padding:0}.print-sheet{width:210mm;height:297mm;min-height:0;padding:18mm;margin:0;break-after:page;break-inside:avoid;overflow:visible}.print-sheet:last-child{break-after:auto}.print-sheet h1{font-size:29px}.print-images img{height:58mm}.print-images.mobile img,.print-images.schedule img{height:75mm}.print-cover .experience-list{gap:32px}.print-cover .company-heading h3{font-size:18px}.print-cover .company-logo.hackers{width:90px}.print-cover .company-logo.hackers+h3{font-size:16px}.print-facts>div{grid-template-columns:35px 1fr;gap:15px}a{color:inherit}video{display:none}}
/* 프로젝트 상세: 데스크톱 한 화면, 모바일 세로 읽기 */
.project-sheet{max-width:1400px;padding-top:24px}
.sheet-heading{margin-bottom:22px}.sheet-heading .back-link{font-size:12px;margin:0;display:inline-block}.sheet-title{display:flex;gap:20px;align-items:center;margin-top:16px}.sheet-title h1{font-size:clamp(24px,2.3vw,34px);line-height:1.3;letter-spacing:-.045em}.sheet-title .industry-tag{font-size:12px;white-space:nowrap}
.sheet-columns{display:grid;grid-template-columns:minmax(0,1.32fr) minmax(0,1fr);gap:48px}
.sheet-output,.sheet-story{min-width:0;border-top:1px solid #dedede;padding-top:14px}
.sheet-label{font-size:12px;line-height:1.5;font-weight:500;color:#777;margin:0 0 17px}
.sheet-lead{font-size:clamp(17px,1.55vw,22px);font-weight:550;line-height:1.65;letter-spacing:-.035em;word-break:keep-all}
.sheet-metrics{display:grid;gap:17px;margin:22px 0}.sheet-metrics>div{display:flex;flex-direction:column-reverse;gap:3px}.sheet-metrics dd{margin:0;font-size:clamp(21px,2vw,29px);font-weight:650;line-height:1.25;letter-spacing:-.045em}.sheet-metrics dt{font-size:12px;color:#777;line-height:1.6}
.sheet-approach{font-size:14px;line-height:1.85;color:#4a4a4a;word-break:keep-all}.sheet-role{margin-top:18px}.sheet-role p:first-child{font-size:12px;font-weight:550;color:#444}.sheet-role p+p{font-size:11px;color:#888;line-height:1.65;margin-top:5px}
.screen-selectors{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:14px}.screen-selectors button{border:0;border-radius:4px;background:#f3f3f3;padding:8px 12px;min-height:34px;font:inherit;font-size:12px;color:#666;cursor:pointer}.screen-selectors button[aria-pressed=true]{background:#202020;color:white}.screen-selectors button:focus-visible{outline:2px solid #777;outline-offset:3px}
.sheet-stage{display:grid;gap:16px}.sheet-screen{margin:0;min-width:0;text-align:center}.sheet-screen[hidden]{display:none}.sheet-zoom{width:100%;height:350px;padding:0;display:block;border:0;background:#fafafa;cursor:zoom-in}.sheet-zoom img{display:block;width:100%;height:100%;object-fit:contain}.sheet-screen figcaption{font-size:11px;color:#777;line-height:1.6;margin-top:10px}.sheet-note{font-size:10px;color:#888;line-height:1.6;margin-top:13px}
.sheet-gallery.mobile .sheet-stage{grid-template-columns:1fr 1fr;gap:18px}.sheet-screen video{display:block;width:100%;height:350px;object-fit:contain;background:white}.sheet-notifications{display:flex;align-items:center;gap:8px;margin-top:15px;font-size:10px;color:#666;flex-wrap:wrap}.sheet-notifications img{width:19px;height:19px;object-fit:contain}.sheet-notifications img:not(:first-of-type){margin-left:8px}
.sheet-navigation{display:flex;justify-content:space-between;gap:24px;margin-top:22px;font-size:12px;color:#666;line-height:1.8}.sheet-navigation a:hover{text-decoration:underline;text-underline-offset:4px}
.personal-site:has(.project-sheet) .site-footer{border:0;margin-top:0;padding-block:12px}.personal-site:has(.project-sheet) .portfolio-signature{font-size:25px;line-height:1.3}
@media(min-width:1000px) and (min-height:680px){
  .project-sheet{min-height:calc(100svh - 57px);display:flex;flex-direction:column;padding-top:22px;padding-bottom:0}
  .sheet-columns{flex:1}.sheet-navigation{padding-block:10px;margin-top:12px}
  .sheet-zoom,.sheet-screen video{height:clamp(320px,calc(100svh - 320px),650px)}
}
@media(min-width:1000px) and (max-height:780px){
  .sheet-columns{gap:35px}.sheet-heading{margin-bottom:16px}.sheet-title{margin-top:10px}.sheet-label{margin-bottom:12px}.sheet-lead{font-size:18px;line-height:1.55}.sheet-metrics{gap:13px;margin-block:17px}.sheet-metrics dd{font-size:24px}.sheet-approach{font-size:13px;line-height:1.75}.sheet-role{margin-top:13px}.sheet-role p+p{font-size:10px}.sheet-notifications{margin-top:12px}
}
@media(max-width:999px){
  .sheet-columns{grid-template-columns:1fr;gap:30px}.sheet-title{align-items:flex-start;flex-direction:column;gap:10px}.sheet-heading{margin-bottom:24px}.sheet-zoom{height:clamp(240px,55vw,480px)}.sheet-screen video{height:clamp(270px,65vw,460px)}.sheet-lead{font-size:20px}.sheet-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.sheet-metrics dd{font-size:23px}.sheet-navigation{margin-block:35px 12px}.sheet-approach{font-size:15px}.sheet-role p+p{font-size:12px}.sheet-note{font-size:11px}
}
@media print{.project-sheet{min-height:0}.screen-selectors,.sheet-navigation{display:none}.sheet-screen[hidden]{display:block}.sheet-columns{display:block}.sheet-story{margin-top:25px}.sheet-screen video{display:block}.sheet-output,.sheet-story{break-inside:avoid}}
@media(min-width:1000px) and (min-height:680px){.sheet-zoom,.sheet-screen video{height:clamp(280px,calc(100svh - 390px),650px)}}
/* 간결한 프로젝트 표와 이미지 확대 도구 */
.project-facts{width:100%;border-collapse:collapse;text-align:left;table-layout:fixed;font-size:14px;line-height:1.75}
.project-facts th,.project-facts td{border:0;border-bottom:1px solid #e9e9e9;padding:17px 0;vertical-align:baseline}
.project-facts th{width:64px;font-size:12px;font-weight:500;color:#888;padding-right:15px}.project-facts td{font-weight:450;word-break:keep-all}.project-facts td p{margin:0}.project-facts td p+p{margin-top:5px}.project-facts tr:first-child>*{padding-top:4px}.project-facts tr:last-child>*{border-bottom:0}.project-facts tr:has(th) td p:first-child{color:#222}
.sheet-zoom{position:relative}.zoom-icon{position:absolute;right:12px;top:12px;width:33px;height:33px;display:grid;place-items:center;border:1px solid #e6e6e6;border-radius:50%;background:rgb(255 255 255/.9);color:#777}.sheet-zoom:hover .zoom-icon,.sheet-zoom:focus-visible .zoom-icon{color:#111;border-color:#999}.sheet-zoom:focus-visible{outline:2px solid #555;outline-offset:4px}
.sheet-gallery.mobile .sheet-stage{grid-template-columns:1fr}.sheet-gallery.mobile .sheet-screen{width:100%}.sheet-screen video{margin:auto}
.career-badge{display:inline-block;vertical-align:middle;margin-left:8px;padding:2px 7px;border:1px solid #e8e8e8;border-radius:4px;font-size:10px;font-weight:400;color:#777;white-space:nowrap}
@media(min-width:1000px) and (min-height:680px){.sheet-zoom,.sheet-screen video{height:clamp(330px,calc(100svh - 310px),680px)}}
@media(min-width:1000px) and (max-height:780px){.project-facts th,.project-facts td{padding-block:13px}.project-facts{font-size:13px}.project-facts tr:first-child>*{padding-top:4px}}
@media(max-width:999px){.project-facts{font-size:14px}.sheet-gallery.mobile video{height:clamp(350px,100vw,580px)}.career-badge{display:block;width:max-content;margin:5px 0 0}}
.personal-site #how-i-work,.personal-site #contact{padding-block:65px}.personal-site #how-i-work h2,.personal-site #contact h2{font-size:38px;letter-spacing:-.035em}.personal-site #how-i-work .section-heading,.personal-site #contact .section-heading{margin-bottom:35px}.work-method{width:100%;border-collapse:collapse;line-height:1.8;font-size:17px}.work-method th,.work-method td{padding:25px 0;text-align:left;border-bottom:1px solid #e9e9e9}.work-method tr:last-child>*{border:0}.work-method th{width:240px;font-weight:550}.work-method th span{color:#999;font-size:12px;margin-right:28px}.personal-email{font-size:clamp(18px,2.5vw,30px);line-height:1.6;overflow-wrap:anywhere}.personal-email span{margin-left:18px;color:#777}.personal-email:hover{text-decoration:underline;text-underline-offset:7px}
@media(max-width:700px){.personal-site #how-i-work,.personal-site #contact{padding-block:40px}.personal-site #how-i-work h2,.personal-site #contact h2{font-size:29px}.work-method{font-size:14px}.work-method th{width:112px}.work-method th span{display:block;margin-right:0}.work-method td{padding-left:14px}}
.project-facts{font-size:15px}.project-facts th{font-size:13px;padding-left:10px;padding-right:8px}
.project-facts .project-result>th,.project-facts .project-result>td{background:#f4f4f4;color:#222;font-weight:700}
.project-facts .project-result:first-child>*{padding-top:14px}
.project-facts .project-result>td{padding-right:14px}
.project-facts .project-result p{font-weight:700}
@media(min-width:1000px) and (max-height:780px){.project-facts{font-size:15px}}
@media(max-width:700px){.project-facts{font-size:14px}}
/* 개인 소개 섹션의 공통 위계 */
.personal-site #experience,.personal-site #how-i-work,.personal-site #contact{padding-block:64px}
.personal-site #experience>.section-heading,.personal-site #how-i-work>.section-heading,.personal-site #contact>.section-heading{margin:0 0 32px;display:block}
.personal-site #experience h2,.personal-site #how-i-work h2,.personal-site #contact h2{font-size:38px;line-height:1.3;font-weight:600;letter-spacing:-.035em}
.personal-site .personal-email{font-size:15px;line-height:1.8;font-weight:400;color:#555}.personal-email span{font-size:13px;margin-left:8px}
.philosophy-layout{display:flex;align-items:flex-start;gap:64px;max-width:960px}
.philosophy-portrait{display:block;width:112px;height:112px;flex:0 0 112px;object-fit:cover;object-position:center 35%;border-radius:50%;border:1px solid #d8d8d8;filter:grayscale(1)}
.philosophy-quote{position:relative;margin:0;min-width:0;padding-top:38px;max-width:760px}
.quote-mark{position:absolute;top:-17px;left:-4px;font-family:Georgia,serif;font-size:76px;line-height:1;color:#a5a5a5;user-select:none}.quote-mark.quote-close{position:static;display:block;text-align:right;height:35px;margin-top:14px}
.philosophy-quote>p{font-size:25px;font-weight:500;line-height:1.7;letter-spacing:-.03em;word-break:keep-all}.philosophy-quote>p.philosophy-explanation{font-size:16px;font-weight:400;line-height:1.9;color:#555;margin-top:20px}
@media(max-width:700px){.personal-site #experience,.personal-site #how-i-work,.personal-site #contact{padding-block:44px}.personal-site #experience h2,.personal-site #how-i-work h2,.personal-site #contact h2{font-size:29px}.personal-site .personal-email{font-size:14px}.philosophy-layout{flex-direction:column;gap:22px}.philosophy-portrait{width:88px;height:88px;flex-basis:88px}.philosophy-quote>p{font-size:21px}.philosophy-quote>p.philosophy-explanation{font-size:15px}}
.philosophy-person{flex:0 0 112px;width:112px;margin:0;text-align:center}.philosophy-person figcaption{margin-top:12px;font-size:11px;line-height:1.5;font-weight:500;letter-spacing:.08em;color:#555;white-space:nowrap}.philosophy-quote>p.philosophy-explanation{white-space:pre-line}
@media(max-width:700px){.philosophy-person{flex-basis:auto;width:88px}.philosophy-person figcaption{font-size:10px;letter-spacing:.045em}}
.philosophy-person figcaption{justify-content:center}
.philosophy-quote>p.philosophy-explanation+p.philosophy-explanation{margin-top:22px}
@media(max-width:700px){.philosophy-layout{gap:32px}}

/* Only the descriptor scrambles; the greeting and name remain readable. */
.personal-site .intro-cover{padding-block:98px 88px}
.personal-site .intro-cover h1{font-family:inherit;font-size:clamp(30px,3.5vw,46px);font-weight:500;letter-spacing:-.045em;line-height:1.65;min-height:3.3em;word-break:keep-all}
.intro-greeting{font-weight:400}
.intro-line{display:inline-flex;align-items:baseline;justify-content:center;gap:.25em;max-width:100%}
.intro-name{white-space:nowrap}
.intro-term{display:inline-block;flex-shrink:0;white-space:nowrap;text-align:left;overflow:hidden;vertical-align:bottom;transition:width 500ms cubic-bezier(.22,.61,.36,1)}
.intro-measure{position:absolute;left:0;top:0;visibility:hidden;white-space:pre;pointer-events:none}
.intro-term .scramble-symbol{color:#888}
@media(max-width:700px){.personal-site .intro-cover{padding-block:66px 55px}.personal-site .intro-cover h1{font-size:clamp(23px,5.8vw,36px);min-height:4.95em}.intro-line{display:inline-flex;flex-direction:column;align-items:center;gap:0}.intro-name{display:block}}
@media(prefers-reduced-motion:reduce){.intro-term{transition:none}}

/* Give each home section a distinct pause while keeping its contents together. */
@media screen{
  .personal-site #projects>.wrap{padding-block:96px 112px}
  .personal-site #experience,.personal-site #how-i-work,.personal-site #contact{padding-block:112px}
}
@media screen and (min-width:701px){
  .personal-site .intro-cover{min-height:100svh;display:flex;align-items:center;justify-content:center;padding-block:80px}
  .personal-site .intro-cover h1{width:100%}
}
@media screen and (max-width:700px){
  .personal-site #projects>.wrap{padding-block:64px 72px}
  .personal-site #experience,.personal-site #how-i-work,.personal-site #contact{padding-block:72px}
}
