*{box-sizing:border-box}body{margin:0;background:#fff;color:#232323;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:14px;line-height:1.55}a{color:inherit;text-underline-offset:3px}a:hover{color:#555}a:focus-visible,button:focus-visible{outline:2px solid #285ea6;outline-offset:4px}.top-bar,.container,footer{width:calc(100% - 64px);max-width:1160px;margin:auto}.top-bar{padding:35px 0 26px;border-bottom:1px solid #e6e6e6;display:flex;align-items:baseline;gap:24px;flex-wrap:wrap}.top-bar h1{font-size:20px;font-weight:600;letter-spacing:-.5px;margin:0}.email{font-size:12px;color:#666;text-decoration:none}.nav-secondary{display:flex;gap:20px;margin-left:auto;font-size:12px}.nav-secondary a{text-decoration:none}.container{padding:12px 0 40px}.project-section{margin:25px 0 44px}h2{font-size:13px;font-weight:600;margin:0 0 18px;color:#555}.projects{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px 24px}.project-card{min-width:0}.project-card img{width:100%;height:210px;object-fit:contain;background:#f5f5f5;display:block;border:1px solid #eee;border-radius:3px}.project-info{padding-top:12px}.project-info h3{font-size:16px;font-weight:600;line-height:1.35;margin:0 0 4px;letter-spacing:-.2px}.project-info p{font-size:12px;color:#616161;margin:8px 0;max-width:55ch}.project-info .year{font-size:11px;color:#777;margin:0 0 8px}.year i{font-style:normal}.project-info .keywords{font-size:11px;color:#777}.btn-group{display:flex;flex-wrap:wrap;gap:10px 16px;margin-top:12px}.btn,button.btn{font:inherit;font-size:12px;line-height:1.6;padding:0;border:0;background:none;color:#232323;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.btn:hover{color:#555}footer{padding:20px 0 30px;border-top:1px solid #e6e6e6;color:#888;font-size:11px}.modal{position:fixed;inset:0;background:#0008;display:none;align-items:center;justify-content:center;z-index:1000}.modal-content{position:relative;background:white;padding:36px;max-width:600px;width:90%;max-height:80vh;overflow:auto;border-radius:4px}.close-btn{position:absolute;right:12px;top:8px;border:0;background:none;font-size:24px;cursor:pointer}@media(max-width:900px){.projects{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.top-bar,.container,footer{width:calc(100% - 36px)}.top-bar{padding:24px 0 20px;gap:8px 16px}.top-bar h1{width:100%}.nav-secondary{margin-left:0;gap:14px}.email{margin-right:auto}.projects{grid-template-columns:1fr;gap:28px}.project-card img{height:230px}.project-section{margin:20px 0 34px}.project-info p{font-size:13px}.project-info h3{font-size:17px}}
/* Project index exploration: names first, details on demand. */
.top-bar,.container,footer{max-width:1080px}.top-bar{border:0;padding-top:52px}.container{padding-top:24px}.projects{display:block;max-width:640px}.project-section{margin:0 0 30px}h2{font-size:11px;font-weight:400;color:#777;margin-bottom:8px}.project-row{border-bottom:1px solid #ededed}.project-row summary{display:flex;align-items:baseline;gap:16px;list-style:none;cursor:pointer;padding:13px 0;outline-offset:4px}.project-row summary::-webkit-details-marker{display:none}.project-row summary:focus-visible{outline:2px solid #285ea6}.project-row summary h3{font-size:15px;font-weight:400;margin:0;flex:1}.project-row summary .year{font-size:11px;color:#777;margin:0;white-space:nowrap}.marker{font-size:15px;color:#888;width:12px;text-align:center}.project-row[open] .marker{font-size:0}.project-row[open] .marker:after{content:'−';font-size:15px}.project-row summary img{display:none;position:fixed;left:calc(50% + 160px);top:240px;width:min(29vw,340px);height:300px;object-fit:contain;background:#fafafa;pointer-events:none;z-index:5}.project-row summary:hover h3,.project-row summary:focus-visible h3{text-decoration:underline;text-underline-offset:4px}.project-info{padding:0 24px 18px 0;max-width:520px}.project-info p{font-size:13px}.project-info .keywords{font-size:11px}.btn-group{margin-top:10px}footer{border:0;font-size:10px;color:#999}@media(hover:hover) and (min-width:1000px){.project-row summary:hover img,.project-row summary:focus-visible img{display:block}}@media(max-width:999px){.projects{max-width:none}.project-row[open] summary{flex-wrap:wrap}.project-row[open] summary img{display:block;position:static;width:100%;height:200px;margin-top:12px}.top-bar{padding-top:28px}.container{padding-top:24px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto}}
