:root{--paper: #ffffff;--ink: #161616;--sub: #4f4f4f;--label: #2e2e2e;--rule: #d2d2cd;--tint: #efefec;--focus: #2f5bd3;--accent: #1b4f5a;--side-width: 232px;--measure: 720px}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--paper);color:var(--ink);font-family:Pretendard,Apple SD Gothic Neo,sans-serif;font-size:16px;line-height:1.7;letter-spacing:-.003em;word-break:keep-all;overflow-wrap:break-word}a{color:inherit;text-underline-offset:3px;text-decoration-thickness:1px}a:hover{text-decoration-color:var(--sub)}:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:2px}.shell{display:grid;grid-template-columns:var(--side-width) minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;padding:36px 24px 24px 28px;border-right:1px solid var(--rule);font-size:14px;line-height:1.55}.sidebar .name{font-size:19px;font-weight:700;letter-spacing:-.02em;text-decoration:none}.sidebar .role{color:var(--sub);margin:2px 0 28px}.nav{list-style:none;margin:0;padding:0;overflow-y:auto}.nav>li+li{margin-top:14px}.nav a{text-decoration:none;color:var(--sub)}.nav a:hover,.nav a[aria-current=page]{color:var(--ink)}.nav a[aria-current=page]{font-weight:600;color:var(--accent)}.nav .top{font-weight:600;color:var(--ink)}.nav ul{list-style:none;margin:8px 0 0;padding:0 0 0 10px;border-left:1px solid var(--rule)}.nav ul li+li{margin-top:6px}.nav .project{color:var(--label);font-weight:500;cursor:pointer;list-style:none;display:flex;align-items:center;gap:6px}.nav .project::-webkit-details-marker{display:none}.nav .project:before{content:"▸";font-size:11px;color:var(--sub);transition:transform .15s}.nav details[open]>.project:before{transform:rotate(90deg)}.nav .project:hover{color:var(--ink)}.nav ul ul{margin:6px 0 4px 5px;padding-left:14px;font-size:13.5px}.nav .planned{color:#9a9a96}.side-foot{margin-top:auto;padding-top:20px}.print-btn{display:inline-flex;align-items:center;gap:8px;padding:6px 10px 6px 8px;border:1px solid var(--rule);border-radius:6px;background:var(--paper);color:var(--sub);font:inherit;font-size:13px;cursor:pointer}.print-btn:hover{color:var(--ink);border-color:var(--sub)}.print-btn svg{width:16px;height:16px}.main{padding:56px 48px 96px}.main>*{max-width:var(--measure)}.page-title{font-size:30px;line-height:1.3;letter-spacing:-.02em;margin:0 0 12px}.lead{color:var(--sub);margin:0 0 40px}.downloads{display:flex;flex-wrap:wrap;gap:8px 16px;margin:0 0 40px;font-size:14px}.tags{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0 0;padding:0;list-style:none}.tags li{font-size:12.5px;line-height:1.5;color:var(--sub);background:var(--tint);padding:1px 8px;border-radius:3px}.project-block{padding:28px 0 8px;border-top:1px solid var(--ink)}.project-block+.project-block{margin-top:32px}.project-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 14px;margin:0 0 4px}.project-head h2{font-size:20px;letter-spacing:-.015em;margin:0}.project-meta{color:var(--sub);font-size:14px;margin:0 0 20px}.case-card{padding:18px 0 20px;border-top:1px solid var(--rule)}.case-card h3{font-size:18px;line-height:1.45;letter-spacing:-.012em;margin:0}.case-card h3 a{text-decoration:none}.case-card h3 a:hover{text-decoration:underline}.case-card ul.points{margin:12px 0 0;padding-left:18px;color:var(--label);font-size:15px}.case-card ul.points li+li{margin-top:4px}.case-card .more{display:inline-block;margin-top:12px;font-size:14px;color:var(--sub)}.group-label{font-size:13px;font-weight:600;color:var(--sub);letter-spacing:.02em;margin:24px 0 4px}.case-row{display:block;padding:12px 0 14px;border-top:1px solid var(--rule);text-decoration:none}.case-row .row-title{display:block;font-size:16.5px;font-weight:600;line-height:1.45}.case-row .row-summary{display:block;margin-top:4px;font-size:14.5px;color:var(--sub)}.case-row:hover .row-title{text-decoration:underline}.case-card.planned h3{color:#8a8a86;font-weight:600}.case-card.planned .note{margin:6px 0 0;font-size:14px;color:#8a8a86}.case-head{margin:0 0 40px}.case-project{font-size:14px;color:var(--sub);margin:0 0 14px}.case-project a{color:var(--label)}.case-title{font-size:32px;line-height:1.32;letter-spacing:-.025em;margin:0}.case-kind{margin-left:8px;padding:1px 8px;border:1px solid var(--accent);border-radius:3px;font-size:12.5px;color:var(--accent)}.case-summary{margin:12px 0 0;color:var(--sub)}.case-foot{margin-top:64px;padding-top:20px;border-top:1px solid var(--rule);font-size:14px}.prose h2{display:flex;align-items:center;gap:9px;font-size:22px;letter-spacing:-.015em;margin:48px 0 14px;padding-bottom:6px;border-bottom:1px solid var(--ink)}.prose h2:before{content:"";flex:none;width:3px;height:18px;border-radius:1px;background:var(--accent)}.prose h3{font-size:17.5px;letter-spacing:-.01em;color:var(--label);margin:32px 0 10px}.prose p{margin:0 0 12px}.prose ul{margin:0 0 12px;padding-left:20px}.prose li+li{margin-top:6px}.prose li::marker{color:#8a8a8a}.prose strong{font-weight:650}.prose table{width:100%;border-collapse:collapse;margin:8px 0 20px;font-size:14.5px;line-height:1.55}.prose th,.prose td{text-align:left;vertical-align:top;padding:8px 10px;border-bottom:1px solid var(--rule)}.prose th{font-weight:600;color:var(--label);background:var(--tint)}.prose td:first-child{min-width:6.5em}.prose .choice th:last-child,.prose .choice td:last-child{background:#edf4f4}.prose .choice th:last-child{color:var(--accent);box-shadow:inset 0 3px 0 var(--accent)}.prose .choice td:last-child{font-weight:600}.prose pre{margin:12px 0 20px;padding:14px 16px;border-radius:6px;overflow-x:auto;font-size:13px;line-height:1.6}.prose :not(pre)>code{font-size:.9em;padding:1px 5px;border-radius:3px;background:var(--tint)}.prose details.fold{margin:12px 0 20px;border:1px solid var(--rule);border-radius:6px;padding:0 14px}.prose details.fold>summary{cursor:pointer;padding:10px 0;font-size:14.5px;font-weight:600;color:var(--label);list-style:none}.prose details.fold>summary::-webkit-details-marker{display:none}.prose details.fold>summary:before{content:"▸";display:inline-block;width:1.1em;color:var(--sub);transition:transform .15s}.prose details.fold[open]>summary:before{transform:rotate(90deg)}.prose details.fold[open]{padding-bottom:4px}@media print{.prose details.fold>summary:before{content:none}}.prose figure.fig,.overview figure.fig{margin:20px 0 28px;overflow-x:auto}.prose figure.fig img,.overview figure.fig img{display:block;width:100%;min-width:560px;height:auto}.overview{margin:0 0 40px}.overview figure.fig{margin:0}.prose figcaption{margin-top:8px;font-size:13.5px;color:var(--sub)}.table-wrap{overflow-x:auto}.prose blockquote{margin:16px 0 20px;padding:12px 16px;border:1px dashed var(--rule);border-radius:4px;color:var(--sub);font-size:14.5px}.prose blockquote p:last-child{margin-bottom:0}.resume-paper{max-width:681px}@media(max-width:860px){.shell{grid-template-columns:1fr}.sidebar{position:static;height:auto;border-right:0;border-bottom:1px solid var(--rule);padding:20px 16px}.sidebar .role{margin-bottom:16px}.nav ul{display:none}.nav{display:flex;gap:20px}.nav>li+li{margin-top:0}.side-foot{display:none}.main{padding:32px 16px 64px}.page-title,.case-title{font-size:25px}}@page{size:A4;margin:14mm 15mm}@page resume{size:A4;margin:40pt 42pt}@media print{*{print-color-adjust:exact;-webkit-print-color-adjust:exact}body{font-size:10pt;line-height:1.6}.sidebar,.print-btn,.downloads,.case-foot,.no-print{display:none!important}.shell{display:block}.main{padding:0}.main>*{max-width:none}.page-title,.case-title{font-size:19pt}.prose h2{font-size:13.5pt;margin-top:22pt}.prose h3{font-size:11.5pt;margin-top:16pt}.prose table{font-size:9pt;line-height:1.45}.prose th,.prose td{padding:4pt 7pt}.prose details.fold>summary,.prose details.fold>p{break-after:avoid}.prose table{break-inside:avoid}.prose table:has(tbody tr:nth-child(6)){break-inside:auto}.prose tr{break-inside:avoid}.prose thead{display:table-header-group}.table-wrap{overflow:visible}h1,h2,h3,.case-head{break-after:avoid}li,figure,blockquote,.case-card,.prose pre{break-inside:avoid}.prose h2+p,.prose h3+p{break-after:avoid}.prose pre{font-size:7.5pt;line-height:1.4;padding:8pt 11pt;white-space:pre-wrap;overflow-wrap:anywhere;overflow:visible}.prose figure.fig{margin:10pt 0 14pt;overflow:visible}.prose figure.fig img{width:86%;min-width:0;margin:0 auto}a{text-decoration:none}.print-case+.print-case{break-before:page}.page-resume .shell{page:resume}.page-resume .resume-paper{max-width:none}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
