.jumbotron{border-top-left-radius:0!important;border-top-right-radius:0!important}.container{position:relative}.jumbotron-header{position:sticky;top:0;z-index:100;display:flex;align-items:center;justify-content:center;gap:1.5rem;margin-bottom:0;padding:2.5rem 0;min-height:150px;background:#e9ecef;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}.jumbotron-right{position:absolute;right:0;display:flex;flex-direction:column;align-items:center;gap:.5rem;flex-shrink:0;padding:1.5rem}.jumbotron-right .img-thumbnail{margin:0}.github-link{display:flex;align-items:center;gap:.5rem;font-size:.9rem;color:#6c757d;text-decoration:none;width:100%;justify-content:flex-start}.github-link:hover{color:#495057;text-decoration:underline}.github-icon{flex-shrink:0;width:16px;height:16px}.jumbotron-header h1{margin:0;font-weight:600;letter-spacing:-.02em;text-align:center;padding:0 1rem}@media (max-width: 768px){.jumbotron{margin-left:calc(-50vw + 50%);margin-right:calc(-50vw + 50%);width:100vw;max-width:100vw;padding-left:1rem;padding-right:1rem}.jumbotron .lead{font-size:1rem}.jumbotron .text-muted{font-size:.9rem}.jumbotron-header{flex-direction:column;padding:1.5rem 1rem;min-height:auto;gap:1rem;margin-left:calc(-50vw + 50%);margin-right:calc(-50vw + 50%);width:100vw;max-width:100vw}.jumbotron-header h1{font-size:1.5rem;padding:0;order:1;text-align:center}.jumbotron-right{position:static;transform:none;order:2;padding:.5rem 0;flex-direction:row;gap:1rem}.jumbotron-right .img-thumbnail{display:none}.jumbotron-right .github-link{width:auto}}@media (min-width: 768px){.jumbotron-header h1{padding-right:200px}}.timeline{position:relative;margin:2rem 0;padding-left:0;list-style:none}.timeline:before{content:"";position:absolute;left:.5rem;top:0;bottom:0;width:6px;background:#0000001a;border-radius:3px}.timeline-item{position:relative;margin-bottom:1rem;background:#fff;border:1px solid rgba(0,0,0,.075);border-radius:.5rem;box-shadow:0 1px 2px #0000000a;padding:1rem 1.25rem;margin-left:2rem}.timeline-item:before{content:none}.timeline-item:after{content:"";position:absolute;left:-1.125rem;top:1.25rem;width:1.125rem;height:2px;background:#0000001a}.timeline-year{position:relative;margin:2rem 0 1rem 2rem;font-weight:700;color:#6c757d;font-size:1.25rem;text-transform:uppercase;letter-spacing:.05em}.timeline-year:before{content:none}.timeline-year:after{content:"";position:absolute;left:-1.125rem;top:50%;width:1.125rem;height:2px;background:#0000001a;transform:translateY(-50%)}.timeline-item .badge{margin-right:.25rem;background:#f1f3f5;color:#343a40;border-radius:999px;padding:.25rem .5rem;font-weight:500}.timeline-item.list-group-item{border-color:#00000013}.timeline-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.timeline-title{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.timeline-title h3{margin:0}.timeline-category{background:#fff3cd;color:#b76e00;border-radius:999px;padding:.125rem .6rem;font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;font-weight:600}.timeline-category--theme{background:#e0f7ff;color:#036b9c}.timeline-date{background:#e7f1ff;color:#0d6efd;border-radius:999px;padding:.125rem .5rem;font-size:.8rem}.timeline-note{margin-top:2rem;margin-left:2rem;font-size:.85rem;color:#6c757d;font-style:italic}.timeline-filter{margin:2rem 0;padding:1.5rem;background:#f8f9fa;border-radius:.5rem;border:1px solid rgba(0,0,0,.075)}.timeline-filter-label{font-weight:600;color:#495057;margin-bottom:.75rem;font-size:.9rem;text-transform:uppercase;letter-spacing:.05em}.timeline-filter-toggles{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;justify-content:space-between}.timeline-filter-toggles-left{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}.timeline-filter-toggle{display:flex;align-items:center;gap:.5rem;cursor:pointer;-webkit-user-select:none;user-select:none}.timeline-filter-toggle input[type=checkbox]{width:1.25rem;height:1.25rem;cursor:pointer;accent-color:#0d6efd}.timeline-filter-toggle-label{font-size:.9rem;color:#495057;font-weight:500}.timeline-filter-toggle:hover .timeline-filter-toggle-label{color:#212529}.timeline-filter-toggle--show-all{margin-left:auto;padding-left:1rem;border-left:1px solid rgba(0,0,0,.1)}.timeline-filter-toggle--disabled{opacity:.5;cursor:not-allowed}.timeline-filter-toggle--disabled:hover .timeline-filter-toggle-label{color:#495057}.ludum-dare-theme{display:inline-flex;align-items:center;gap:.5rem;margin:.75rem 0;padding:.5rem 1rem;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:.5rem;box-shadow:0 4px 12px #667eea4d;color:#fff;font-weight:500}.ludum-dare-theme-label{font-size:.75rem;text-transform:uppercase;letter-spacing:.1em;opacity:.9;font-weight:600}.ludum-dare-theme-value{font-size:1rem;font-weight:700;text-shadow:0 1px 2px rgba(0,0,0,.2)}.status-pill{display:inline-flex;align-items:center;padding:.25rem .75rem;border-radius:999px;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;box-shadow:0 2px 6px #00000026;transition:all .2s ease}.status-pill--recommended{background:linear-gradient(135deg,#f093fb,#f5576c);color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.2)}.status-pill--recommended:hover{transform:translateY(-1px);box-shadow:0 4px 10px #f5576c66}.status-pill--playable{background:linear-gradient(135deg,#4facfe,#00f2fe);color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.2)}.status-pill--playable:hover{transform:translateY(-1px);box-shadow:0 4px 10px #4facfe66}.status-pill--low-effort{background:#e9ecef;color:#6c757d;text-shadow:none}.status-pill--low-effort:hover{transform:translateY(-1px);box-shadow:0 4px 10px #6c757d33}.portfolio-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a99;display:flex;align-items:center;justify-content:center;padding:1.5rem;z-index:1050}.portfolio-modal{position:relative;width:100%;max-width:960px;max-height:90vh;display:flex;flex-direction:column;background:#fff;border-radius:.75rem;box-shadow:0 20px 45px #0f172a40;overflow:hidden}.portfolio-modal-header{position:sticky;top:0;z-index:10;background:#fff;border-bottom:1px solid rgba(0,0,0,.08);padding:2rem 3.5rem 2rem 2rem;flex-shrink:0}.portfolio-modal-header-content{display:flex;flex-direction:column;gap:.5rem}.portfolio-modal-header h2{margin:0;margin-bottom:.5rem}.portfolio-modal-close{position:absolute;top:1rem;right:1rem;border:none;background:transparent;font-size:2rem;line-height:1;color:#6c757d;cursor:pointer;padding:.25rem;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;transition:color .2s ease}.portfolio-modal-close:hover{color:#495057}.portfolio-modal-meta{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.portfolio-modal-body{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:1.25rem;padding:2rem}.portfolio-modal-badges{display:flex;flex-wrap:wrap;gap:.5rem}.portfolio-modal-gallery{position:relative;display:flex;flex-direction:column;align-items:center;gap:.75rem}.portfolio-gallery-figure{position:relative;margin:0;width:100%;border-radius:.5rem;overflow:hidden;border:1px solid rgba(0,0,0,.08);background:#f8f9fa}.portfolio-modal-gallery img{display:block;width:100%;height:auto}.portfolio-modal-gallery figcaption{font-size:.8rem;color:#6c757d;padding:.5rem .75rem}.gallery-nav{position:absolute;top:50%;transform:translateY(-50%);border:none;background:transparent;color:#fff;width:4rem;height:4rem;border-radius:999px;display:flex;align-items:center;justify-content:center;font-size:4rem;cursor:pointer;transition:all .2s ease;padding:0;z-index:10;text-shadow:0 2px 8px rgba(0,0,0,.8),0 0 2px rgba(0,0,0,.9);outline:none}.gallery-nav:focus{outline:none}.gallery-nav--prev{left:1rem}.gallery-nav--next{right:1rem}.gallery-nav:hover{color:#fff;transform:translateY(-50%) scale(1.15);text-shadow:0 3px 12px rgba(0,0,0,.9),0 0 3px rgba(0,0,0,1)}.gallery-indicator{position:absolute;bottom:1rem;left:50%;transform:translate(-50%);background:#ffffffe6;padding:.25rem .75rem;border-radius:999px;font-size:.85rem;color:#495057;font-weight:500;box-shadow:0 2px 8px #00000026}.portfolio-modal-footer{flex-shrink:0;display:flex;justify-content:flex-end;align-items:center;gap:.75rem;flex-wrap:wrap;padding:2rem;border-top:1px solid rgba(0,0,0,.08)}.link-dead-note{color:#dc3545;font-style:italic;font-size:.85rem}.portfolio-link-dead{cursor:not-allowed;pointer-events:none;color:#6c757d;border-color:#ced4da;background-color:transparent}@media (max-width: 768px){.portfolio-modal-backdrop{padding:0}.portfolio-modal{width:100%;max-width:100%;max-height:100vh;height:100vh;border-radius:0}}
