.project-module__clhhDG__page{padding:0}.project-module__clhhDG__projectHeader{gap:1rem;max-width:1100px;margin:0 auto 2rem;display:grid}.project-module__clhhDG__titleRow{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:1rem;display:flex}.project-module__clhhDG__title{font-family:var(--font-display);margin:0;font-size:clamp(2rem,4vw,3rem);line-height:1.05}.project-module__clhhDG__year{color:var(--ink-65);white-space:nowrap;margin:0;font-size:.95rem}.project-module__clhhDG__desc{color:var(--ink-80);max-width:110ch;margin:0;font-size:1.05rem;line-height:1.6}.project-module__clhhDG__meta{color:var(--ink-65);margin:0}.project-module__clhhDG__tags{flex-wrap:wrap;gap:.5rem;display:flex}.project-module__clhhDG__tag{border:1px solid var(--ink-20);color:var(--ink-65);border-radius:999px;padding:.25rem .6rem;font-size:.9rem}.project-module__clhhDG__section{border-top:1px solid var(--ink-12);margin-top:2.5rem;padding-top:2.5rem}.project-module__clhhDG__p{color:var(--ink-80);max-width:75ch;margin:0}.project-module__clhhDG__topBar{background-color:var(--ink-12);justify-content:space-between;align-items:center;gap:1rem;margin-bottom:2.5rem;padding:1rem;display:flex}.project-module__clhhDG__topBarInner{justify-content:space-between;align-items:center;width:100%;max-width:1100px;margin:0 auto;display:flex}.project-module__clhhDG__backLink{color:var(--ink-70);align-items:center;gap:.35rem;font-weight:500;text-decoration:none;display:inline-flex}.project-module__clhhDG__backLink:hover{color:var(--ink)}.project-module__clhhDG__backArrow{font-size:1.1em}.project-module__clhhDG__actionLinks{gap:.6rem;display:flex}.project-module__clhhDG__actionLink{border:1px solid var(--ink-20);background-color:var(--bg);color:var(--ink);border-radius:999px;padding:.45rem .85rem;font-size:.9rem;font-weight:600;text-decoration:none}.project-module__clhhDG__actionLinkPrimary{background:var(--ink);color:#fff;border-radius:999px;padding:.45rem .95rem;font-size:.9rem;font-weight:600;text-decoration:none}.project-module__clhhDG__actionLink:hover{border-color:var(--ink-40)}.project-module__clhhDG__actionLinkPrimary:hover{opacity:.9}.project-module__clhhDG__cover{max-width:1100px;margin:0 auto 2.5rem}.project-module__clhhDG__coverImg{border:1px solid var(--ink-12);border-radius:18px;width:100%;height:auto;display:block}.project-module__clhhDG__detailsSection{background:var(--ink);border-top:1px solid var(--ink-12);border-bottom:1px solid var(--ink-12);color:#ffffffeb;width:100%;margin-top:3rem;padding:2.5rem 0}.project-module__clhhDG__detailsInner{max-width:1100px;margin:0 auto;padding:0 2rem}.project-module__clhhDG__h2{font-family:var(--font-display);margin:0 0 1rem}.project-module__clhhDG__list{gap:.5rem;margin:0;padding-left:1.2rem;display:grid}.project-module__clhhDG__techSection{background-color:var(--ink);padding:1rem 0}.project-module__clhhDG__techInner{max-width:1100px;margin:0 auto;padding:0 2rem}.project-module__clhhDG__gallerySection{padding:2.5rem 0 4rem}.project-module__clhhDG__galleryInner{max-width:1100px;margin:0 auto;padding:0 2rem}.project-module__clhhDG__galleryGrid{grid-template-columns:1fr;gap:1rem;margin-top:1.25rem;display:grid}@media (min-width:720px){.project-module__clhhDG__galleryGrid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1080px){.project-module__clhhDG__galleryGrid{grid-template-columns:repeat(3,minmax(0,1fr))}}.project-module__clhhDG__galleryItem{margin:0}.project-module__clhhDG__galleryButton{cursor:zoom-in;text-align:left;background:0 0;border:0;width:100%;padding:0}.project-module__clhhDG__galleryImg{border:1px solid var(--ink-12);border-radius:16px;width:100%;height:auto;display:block}.project-module__clhhDG__caption{color:var(--ink-70);max-width:60ch;margin-top:.55rem;font-size:.92rem;line-height:1.35}
.TechIcons-module__bcaLoW__row{flex-wrap:wrap;gap:.5rem;display:flex}.TechIcons-module__bcaLoW__badge{border:1px solid var(--ink-12);background:var(--bg);color:var(--ink);border-radius:999px;align-items:center;gap:.5rem;padding:.35rem .65rem;font-size:.9rem;display:inline-flex}.TechIcons-module__bcaLoW__icon{border:1px solid var(--ink-12);width:1.6rem;height:1.6rem;color:var(--ink-65);border-radius:999px;place-items:center;font-size:.8rem;font-weight:700;display:inline-grid}.TechIcons-module__bcaLoW__label{color:var(--ink-80);font-weight:600}
.LightboxGallery-module__asnaPq__grid{grid-template-columns:1fr;gap:1rem;margin-top:1.25rem;display:grid}@media (min-width:720px){.LightboxGallery-module__asnaPq__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1080px){.LightboxGallery-module__asnaPq__grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.LightboxGallery-module__asnaPq__item{margin:0}.LightboxGallery-module__asnaPq__thumbBtn{cursor:zoom-in;text-align:left;background:0 0;border:0;width:100%;padding:0}.LightboxGallery-module__asnaPq__thumbImg{border:1px solid var(--ink-12);border-radius:16px;width:100%;height:auto;display:block}.LightboxGallery-module__asnaPq__caption{color:var(--ink-70);margin-top:.55rem;font-size:.92rem;line-height:1.35}.LightboxGallery-module__asnaPq__overlay{z-index:1000;background:#000000a6;place-items:center;padding:1.5rem;display:grid;position:fixed;inset:0}.LightboxGallery-module__asnaPq__dialog{background:#fffffffa;border:1px solid #ffffff40;border-radius:18px;width:min(1100px,100%);padding:1rem;position:relative}.LightboxGallery-module__asnaPq__closeBtn{appearance:none;cursor:pointer;font:inherit;background:0 0;border:0;font-size:1.2rem;line-height:1;position:absolute;top:.75rem;right:.75rem}.LightboxGallery-module__asnaPq__stage{margin-top:1.5rem}.LightboxGallery-module__asnaPq__fullImg{border-radius:14px;width:100%;height:auto;display:block}.LightboxGallery-module__asnaPq__fullCaption{color:#000000b8;margin-top:.75rem;font-size:.95rem;line-height:1.4}.LightboxGallery-module__asnaPq__controls{justify-content:space-between;margin-top:.75rem;display:flex}.LightboxGallery-module__asnaPq__navBtn{appearance:none;cursor:pointer;font:inherit;background:#fffc;border:1px solid #0000002e;border-radius:999px;padding:.45rem .75rem}.LightboxGallery-module__asnaPq__codeCaption{font-family:var(--font-mono);opacity:.85;font-size:.85rem}
