*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{font-size:10px}body{font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:1.2rem;color:#111;background:#fff;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}img{display:block;width:100%;height:100%;object-fit:cover}@font-face{font-family:Balegiano;src:url(/fonts/BelgianoSerif.woff) format("woff")}*{word-break:keep-all}.layout{display:flex;min-height:100vh}.sidebar{position:fixed;top:0;left:0;width:300px;height:100vh;padding:24px 20px;display:flex;flex-direction:column;z-index:100;background:#fff}.sidebar__logo{font-family:Balegiano;font-size:2rem;letter-spacing:.05em;text-transform:uppercase;margin-bottom:auto}.sidebar__nav{display:flex;flex-direction:column;gap:20px;margin-top:40px}.sidebar__nav a{font-size:1.5rem;color:#aaa;transition:color .2s}.sidebar__nav a.active,.sidebar__nav a:hover{color:#111}.sidebar__project-name{font-size:2rem;font-weight:500;margin-bottom:10px;margin-top:40px}.sidebar__project-category{font-size:1.1rem;color:#888;margin-bottom:16px}.sidebar__project-desc{font-size:1.1rem;color:#444;line-height:1.6;margin-bottom:20px}.sidebar__project-period{font-size:1.1rem;color:#888;margin-bottom:20px}.sidebar__view-link{font-size:1.2rem;color:#111;border-bottom:1px solid #111;padding-bottom:1px;display:inline-block;transition:opacity .2s}.sidebar__view-link:hover{opacity:.5}.sidebar__bottom{margin-top:auto}.sidebar__social{display:flex;gap:12px;margin-bottom:8px;align-items:center}.sidebar__social a{font-size:1.5rem;color:#111;display:flex;align-items:center;transition:opacity .2s}.sidebar__social a:hover{opacity:.4}.sidebar__copyright{font-size:1rem;color:#aaa}.main{margin-left:300px;flex:1 1;padding:0}.project-list{display:grid;flex-direction:column;grid-template-columns:repeat(1,1fr);grid-gap:10px;gap:10px}.project-card{display:block;position:relative;overflow:hidden;cursor:pointer}.project-card__image{width:100%;aspect-ratio:16/6;overflow:hidden;background:#f0f0f0}.project-card__image img{transition:transform .5s ease}.project-card:hover .project-card__image img{transform:scale(1.03)}.project-card__info{display:flex;justify-content:space-between;align-items:center;padding:12px 12px 32px 0;border-bottom:1px solid #eee}.project-card__title{font-size:1.3rem;font-weight:400;color:#111}.project-card__date{font-size:1.1rem;color:#aaa}.project-list__more{display:flex;justify-content:center;padding:48px 0 24px}.project-list__more-btn{min-width:120px;padding:12px 32px;border:1px solid #111;background:transparent;color:#111;font-size:1rem;letter-spacing:.08em;cursor:pointer;transition:background .2s,color .2s}.project-list__more-btn:hover:not(:disabled){background:#111;color:#fff}.project-list__more-btn:disabled{cursor:default;border-color:#ccc;color:#ccc}.project-list__dots{display:inline-flex;align-items:center;gap:6px}.project-list__dots span{display:inline-block;width:6px;height:6px;border-radius:50%;background:currentColor;animation:dot-bounce 1.2s ease-in-out infinite}.project-list__dots span:nth-child(2){animation-delay:.2s}.project-list__dots span:nth-child(3){animation-delay:.4s}@keyframes dot-bounce{0%,80%,to{transform:scale(.6);opacity:.4}40%{transform:scale(1);opacity:1}}.detail{position:relative}.detail__close{position:fixed;top:24px;right:24px;width:40px;height:40px;border-radius:50%;background:#fff;border:1px solid #ddd;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:1.6rem;color:#111;z-index:200;transition:background .2s}.detail__close:hover{background:#f5f5f5}.gallery-section{margin-bottom:40px}.gallery-section__full{width:100%;aspect-ratio:16/9;overflow:hidden;background:#f0f0f0}.gallery-section__grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:6px;gap:6px;background:#f0f0f0}.gallery-section__grid-item{aspect-ratio:4/3;overflow:hidden;background:#eee}.gallery-section__caption{padding:12px 0 0;font-size:1.1rem;color:#555;line-height:1.7;white-space:pre-line}.page-content{padding:60px 48px;max-width:600px}.page-content h1{font-size:2rem;font-weight:500;margin-bottom:24px}.page-content p{font-size:1.3rem;color:#444;line-height:1.8;margin-bottom:16px}.page-content a{border-bottom:1px solid #111}@media (max-width:768px){.sidebar{position:relative;width:100%;height:auto;padding:20px;border-bottom:1px solid #eee}.layout{flex-direction:column}.main{margin-left:0}.detail__close{top:16px;right:16px}.gallery-section__grid{grid-template-columns:1fr}}