:root{font-family:Segoe UI,system-ui,sans-serif;line-height:1.5;font-weight:400;color:#e5e7eb;background-color:#1a1a1a;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;min-width:320px;min-height:100vh}:root{--dark: #0b0d10;--dark-2: #11151b;--grey: #9aa4b2;--light: #e7eaf0;--light-2: #f1f5f9;--red: #e11d48;--red-hover: #fb7185;--red-dim: rgba(225, 29, 72, .15);--border: rgba(255,255,255,.08);--error: #ef4444;--success: #22c55e}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:var(--dark);color:var(--light);font-family:Segoe UI,system-ui,sans-serif}#root{min-height:100vh}@media(min-width:900px){html{font-size:80%}}@keyframes pageReveal{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes contentRise{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes mediaReveal{0%{opacity:0;transform:translateY(12px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes heroDrift{0%{transform:scale(1)}to{transform:scale(1.04)}}@keyframes lightboxFade{0%{opacity:0}to{opacity:1}}@keyframes lightboxImage{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}a{color:var(--red);text-decoration:none}a:hover{color:var(--red-hover);text-decoration:underline}.btn{display:inline-block;padding:.75rem 1.5rem;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:background .2s,color .2s}.btn-primary{background:var(--red);color:var(--dark)}.btn-primary:hover:not(:disabled){background:var(--red-hover);color:var(--dark)}.btn-secondary{background:var(--dark-2);color:var(--light);border:1px solid var(--grey)}.btn-secondary:hover{background:var(--grey);color:var(--light)}.btn-sm{padding:.35rem .75rem;font-size:.875rem}.btn-link{background:none;color:var(--red);cursor:pointer;font:inherit;padding:0}.btn-link:hover{text-decoration:underline}.hero{position:relative;min-height:100vh;display:flex;align-items:center;justify-content:center;overflow:hidden}.hero-header{position:absolute;top:0;left:0;right:0;z-index:2;display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem}.hero-logo{font-weight:700;font-size:1.25rem;color:var(--light)}.hero-logo:hover{color:var(--red);text-decoration:none}.hero-nav{display:flex;gap:1.5rem}.hero-nav a{color:var(--light-2)}.hero-nav a:hover{color:var(--red)}.hero-bg{position:absolute;inset:0;background:var(--dark) url(/hero-bg.png) center center / cover no-repeat;transform-origin:center;animation:heroDrift 18s ease-in-out infinite alternate}.hero-bg:after{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,#1a1a1a80,#1a1a1abf,#1a1a1ae6);pointer-events:none}.hero-content{position:relative;z-index:1;text-align:center;padding:2rem;animation:contentRise .65s ease-out both}.hero-title{font-size:clamp(2.5rem,8vw,4rem);font-weight:700;margin:0 0 .5rem;letter-spacing:-.02em}.hero-subtitle{font-size:1.25rem;color:var(--grey);margin:0 0 2rem}.page{min-height:100vh;padding:0 1.5rem 2rem;animation:pageReveal .45s ease-out both}.page.center{display:flex;align-items:center;justify-content:center}.page-header{position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;background:#0000008c;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border)}.logo-link{font-weight:700;font-size:1.25rem;color:var(--light)}.logo-link:hover{color:var(--red)}.page-header nav{display:flex;gap:1.5rem;align-items:center}.page-header nav a,.page-header nav .btn-link{color:var(--grey)}.page-header nav a:hover{color:var(--light)}.page-header nav a.active{color:var(--red)}.page-header nav a.active:hover{color:var(--red-hover)}.hero-banner{position:relative;min-height:52vh;display:flex;align-items:flex-end;justify-content:center;overflow:hidden;border-bottom:1px solid var(--border)}.hero-banner-bg{position:absolute;inset:0;background:center / cover no-repeat;background-color:#050607;filter:saturate(1.05) contrast(1.05);transform-origin:center;animation:heroDrift 20s ease-in-out infinite alternate}.hero-banner-overlay{position:absolute;inset:0;background:radial-gradient(900px 450px at 20% 10%,rgba(239,68,68,.18),transparent 55%),linear-gradient(to bottom,#00000040,#000000b8 55%,#000000eb)}.hero-banner-inner{position:relative;z-index:1;width:100%;max-width:1100px;padding:28px 18px 30px;animation:contentRise .6s ease-out both}.hero-banner-title{margin:0 0 6px;color:var(--light);font-size:clamp(2rem,4vw,3.2rem);letter-spacing:-.02em}.hero-banner-subtitle{margin:0;color:var(--grey);max-width:760px;line-height:1.6}.portfolio-wrap{max-width:1500px;margin:0 auto;padding:26px 18px 70px}.project-section{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr);align-items:start;gap:22px;padding:18px;margin:18px 0;border-radius:16px;border:1px solid var(--border);background:#ffffff05;transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease,background .25s ease}.project-section:hover{transform:translateY(-3px);border-color:#e11d4847;background:#ffffff08;box-shadow:0 18px 38px #00000038}.project-section-clickable{cursor:pointer}.project-section-clickable:focus-visible{outline:2px solid var(--red);outline-offset:4px;border-color:#e11d488c}.project-section-clickable .project-actions .btn{position:relative;z-index:1}.project-section.alt{grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr)}.project-media-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;align-content:start}.project-media-tile{aspect-ratio:16 / 9;border-radius:8px;overflow:hidden;background:var(--dark-2);box-shadow:0 8px 22px #00000047;animation:mediaReveal .5s ease-out both}.project-media-tile.single{grid-column:1 / -1}.project-media-more{display:grid;place-items:center;align-content:center;gap:3px;color:var(--light);border:1px solid rgba(225,29,72,.36);background:linear-gradient(135deg,#e11d484d,#9aa4b229),var(--dark-2)}.project-media-more span{font-size:1.65rem;font-weight:800;line-height:1}.project-media-more small{color:var(--light-2);font-size:.78rem;font-weight:700;line-height:1;text-transform:uppercase}.project-media-tile img,.project-media-tile video,.project-media-tile iframe,.project-media-tile .card-placeholder{width:100%;height:100%;display:block;object-fit:cover;border:0}.project-media-tile img,.project-media-tile video{transition:transform .35s ease,filter .35s ease}.project-section:hover .project-media-tile img,.project-section:hover .project-media-tile video{transform:scale(1.035);filter:brightness(1.07)}.project-media-grid>:nth-child(2),.entry-photos>:nth-child(2){animation-delay:.04s}.project-media-grid>:nth-child(3),.entry-photos>:nth-child(3){animation-delay:.08s}.project-media-grid>:nth-child(4),.entry-photos>:nth-child(4){animation-delay:.12s}.project-media-grid>:nth-child(5),.entry-photos>:nth-child(5){animation-delay:.16s}.project-media-grid>:nth-child(6),.entry-photos>:nth-child(6){animation-delay:.2s}.project-meta h2{margin:0 0 8px;font-size:1.35rem}.project-meta p{margin:0 0 10px;color:var(--light-2);line-height:1.7}.project-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}.project-summary-text{color:var(--light-2);line-height:1.75;white-space:pre-wrap}.section-entry-list{margin-top:22px;text-align:left}.section-entry-list .project-section{margin:18px 0 0}.page-content-section,.portfolio-page-section{position:relative;padding-bottom:30px;margin-bottom:38px}.page-content-section:after,.portfolio-page-section:after{content:"";display:block;width:min(100%,960px);height:1px;margin:30px auto 0;background:linear-gradient(90deg,transparent,rgba(154,164,178,.22),rgba(225,29,72,.34),rgba(154,164,178,.22),transparent)}@media(max-width:920px){.project-section,.project-section.alt{grid-template-columns:1fr}.project-media-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.portfolio-tabs{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin:0 0 18px;padding:14px 0;background:#0b0d10f0;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border)}@media(min-width:761px){.portfolio-tabs{position:sticky;top:64px;z-index:40}}.tab-btn{padding:10px 12px;border-radius:999px;border:1px solid var(--border);background:#ffffff05;color:var(--grey);cursor:pointer;font:inherit}.tab-btn:hover{color:var(--light);border-color:#e11d4873}.tab-btn.active{color:var(--light);border-color:#e11d48bf;background:#e11d481f}.project-details{margin-top:14px;padding-top:14px;border-top:1px solid var(--border);display:grid;gap:14px}.details-text{color:var(--light-2);line-height:1.75;white-space:pre-wrap}.details-media{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}.details-media img{width:100%;height:auto;border-radius:12px;background:var(--dark-2);box-shadow:0 6px 18px #00000040}.details-video,.details-youtube{border-radius:12px;overflow:hidden;background:var(--dark);box-shadow:0 6px 18px #00000040}.details-video video{display:block;width:100%;max-height:60vh}.details-youtube .youtube-embed{border-radius:0}.portfolio-main h2,.admin-form h2,.admin-login h2{margin:0 0 .5rem;font-size:1.75rem}.admin-hint{font-size:.85rem;color:var(--grey);margin:0 0 1rem;line-height:1.5}.admin-hint code{background:var(--dark-2);padding:.15rem .4rem;border-radius:4px;font-size:.8rem}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem}.card{background:var(--dark-2);border-radius:12px;overflow:hidden;transition:transform .2s,box-shadow .2s;color:inherit;display:block}.card:hover{transform:translateY(-4px);box-shadow:0 12px 24px #0000004d;text-decoration:none;color:inherit}.card-media{aspect-ratio:16/10;background:var(--dark);overflow:hidden}.card-media img{width:100%;height:100%;object-fit:cover}.card-placeholder{width:100%;height:100%;background:linear-gradient(135deg,var(--dark-2) 0%,var(--grey) 100%);opacity:.5}.card-body{padding:1rem 1.25rem}.card-body h3{margin:0 0 .5rem;font-size:1.125rem}.skill-tags{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.5rem}.skill-tags li{background:var(--red-dim);color:var(--red);padding:.25rem .6rem;border-radius:999px;font-size:.8rem}.page-entry .page-header{margin-bottom:0}.entry{width:min(1160px,100%);margin:0 auto;padding-bottom:3rem;animation:pageReveal .45s ease-out both}.entry-hero{position:relative;min-height:clamp(300px,34vw,430px);background:linear-gradient(135deg,var(--dark-2) 0%,var(--dark) 100%);background-size:cover;background-position:center;display:flex;align-items:flex-end;padding:clamp(1.75rem,3vw,3rem);margin:0 0 2.2rem;border:1px solid var(--border);border-top:0;border-radius:0 0 8px 8px;overflow:hidden;animation:mediaReveal .55s ease-out both}.entry-hero-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(26,26,26,.95) 0%,rgba(26,26,26,.4) 50%,transparent 100%);pointer-events:none}.entry-hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.entry-hero-content{position:relative;z-index:1;width:100%;animation:contentRise .65s ease-out .08s both}.entry-back{display:inline-block;margin-bottom:1rem;color:var(--light-2);font-size:.95rem}.entry-back:hover{color:var(--red);text-decoration:none}.entry-title{margin:0 0 .75rem;font-size:clamp(1.75rem,4vw,2.5rem);font-weight:700;letter-spacing:-.02em;line-height:1.2}.entry-skills-hero{margin:0}.entry-body{padding:0}.entry-section{margin-bottom:clamp(2rem,4vw,3.4rem);animation:contentRise .5s ease-out both}.entry-section:nth-of-type(2){animation-delay:.08s}.entry-section:nth-of-type(3){animation-delay:.16s}.entry-section-title{margin:0;font-size:1.1rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--red)}.entry-section-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:0 0 1rem;padding-bottom:.75rem;border-bottom:1px solid var(--border)}.entry-section-meta{flex:0 0 auto;color:var(--grey);font-size:.88rem;font-weight:700;letter-spacing:.02em}.entry-description-card{position:relative;display:grid;gap:1rem;background:linear-gradient(135deg,#11151bf5,#0d1014f5),var(--dark-2);border:1px solid var(--border);border-left:4px solid var(--red);border-radius:8px;padding:clamp(1.25rem,2.2vw,1.8rem);box-shadow:0 18px 45px #00000038}.entry-description{color:var(--light-2);max-width:92ch;line-height:1.78;white-space:pre-wrap;margin:0}.entry-photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem}.entry-gallery-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.15rem}.entry-gallery-item{display:grid;min-width:0;gap:.7rem;align-items:start;animation:mediaReveal .45s ease-out both}.entry-gallery-item.has-copy{grid-column:1 / -1;grid-template-columns:minmax(310px,.92fr) minmax(0,1fr);gap:clamp(1rem,2.4vw,2rem);align-items:center;padding:clamp(.8rem,1.5vw,1rem);border:1px solid var(--border);border-radius:8px;background:linear-gradient(135deg,#11151bc7,#090b0e9e),#11151b7a;box-shadow:0 12px 34px #0000002e}.entry-gallery-item.has-copy:last-child{padding-bottom:clamp(.8rem,1.5vw,1rem)}.entry-gallery-item.title-only,.entry-gallery-item.visual-only{grid-template-columns:1fr;padding:.65rem;border:1px solid var(--border);border-radius:8px;background:#11151b61}.entry-gallery-item.title-only .entry-gallery-copy{max-width:none;gap:0}.entry-gallery-item.title-only .entry-gallery-copy h3{font-size:1rem;line-height:1.25;color:var(--light-2)}.entry-gallery-media{width:100%;aspect-ratio:16 / 9}.entry-gallery-media .entry-photo-button,.entry-gallery-media .entry-gallery-video,.entry-gallery-media .entry-video-button{width:100%;height:100%}.entry-gallery-media .entry-photo-button img,.entry-gallery-media .entry-gallery-video video,.entry-gallery-media .entry-video-button video{width:100%;height:100%;object-fit:cover}.entry-gallery-copy{display:grid;gap:.65rem;max-width:68ch}.entry-gallery-copy h3{margin:0;font-size:clamp(1.15rem,2vw,1.55rem);line-height:1.2}.entry-gallery-copy p{margin:0;color:var(--light-2);line-height:1.72;white-space:pre-wrap}.entry-gallery-read-more{justify-self:start;border:1px solid rgba(225,29,72,.55);border-radius:999px;padding:.5rem .85rem;color:var(--red-hover);background:#e11d481f;font:inherit;font-weight:700;cursor:pointer;transition:transform .18s ease,border-color .18s ease,background .18s ease,color .18s ease}.entry-gallery-read-more:hover{transform:translateY(-1px);border-color:var(--red);color:var(--light);background:#e11d4847}.entry-gallery-read-more:focus-visible{outline:2px solid var(--red);outline-offset:3px}.entry-photo-button{display:block;width:100%;padding:0;border:0;border-radius:7px;background:transparent;cursor:zoom-in;overflow:hidden;animation:mediaReveal .45s ease-out both;transition:transform .2s ease}.entry-photo-button:focus-visible{outline:2px solid var(--red);outline-offset:3px}.entry-photo-button img{width:100%;height:auto;display:block;border-radius:7px;background:var(--dark-2);box-shadow:0 4px 12px #0000004d;transition:transform .2s ease,filter .2s ease}.entry-photo-button:hover{transform:translateY(-3px)}.entry-photo-button:hover img{transform:scale(1.025);filter:brightness(1.08)}.entry-gallery-video,.entry-video-button{width:100%;border-radius:7px;overflow:hidden;background:var(--dark-2);box-shadow:0 4px 12px #0000004d;animation:mediaReveal .45s ease-out both;transition:transform .2s ease,box-shadow .2s ease}.entry-video-button{position:relative;display:block;padding:0;border:0;cursor:zoom-in;color:var(--light)}.entry-gallery-video:hover,.entry-video-button:hover{transform:translateY(-3px);box-shadow:0 12px 24px #00000059}.entry-gallery-video video,.entry-video-button video{width:100%;aspect-ratio:16 / 9;display:block;object-fit:cover}.entry-video-overlay{position:absolute;right:12px;bottom:12px;display:inline-flex;align-items:center;min-height:34px;padding:.35rem .7rem;border:1px solid rgba(225,29,72,.55);border-radius:999px;color:var(--light);background:#050607c2;font-weight:800;font-size:.78rem;letter-spacing:.02em;text-transform:uppercase;pointer-events:none}.entry-media-grid{display:flex;flex-direction:column;gap:1.5rem}.entry-video-wrap,.entry-youtube-wrap{border-radius:12px;overflow:hidden;background:var(--dark);box-shadow:0 4px 16px #00000040}.entry-video-wrap video{display:block;width:100%;max-height:70vh}.entry-youtube-wrap .youtube-embed{border-radius:0}.youtube-embed{position:relative;padding-bottom:56.25%;height:0;overflow:hidden;background:var(--dark)}.youtube-embed iframe{position:absolute;top:0;left:0;width:100%;height:100%}.youtube-title{margin:.5rem 1rem 0;font-size:.9rem;color:var(--grey)}.entry-actions{margin-top:2.5rem;padding-top:1.5rem;border-top:1px solid var(--dark-2)}.entry-lightbox{position:fixed;inset:0;z-index:9999;width:100vw;height:100vh;height:100svh;height:100dvh;display:grid;grid-template-columns:minmax(48px,96px) minmax(0,1fr) minmax(48px,96px);align-items:center;gap:12px;padding:72px clamp(14px,3vw,40px) 70px;background:radial-gradient(900px 520px at 50% 52%,rgba(225,29,72,.08),transparent 68%),#000000eb;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);animation:lightboxFade .18s ease-out both;touch-action:pan-y;overflow:hidden}.entry-lightbox-figure{width:min(1640px,100%);min-width:0;margin:0 auto;display:grid;justify-items:center;gap:16px;position:relative;z-index:1}.entry-lightbox-figure.has-copy{grid-template-columns:minmax(0,1.2fr) minmax(280px,.38fr);align-items:center;justify-items:stretch;gap:clamp(20px,3.2vw,46px)}.entry-lightbox-media{min-width:0;display:grid;justify-items:center;position:relative}.entry-lightbox-media img,.entry-lightbox-media video{max-width:100%;max-height:calc(100vh - 170px);object-fit:contain;border:1px solid rgba(255,255,255,.12);border-radius:10px;background:#050607b8;box-shadow:0 26px 80px #0000009e,0 0 0 1px #ffffff0a;animation:lightboxImage .22s ease-out both}.entry-lightbox-media video{width:min(100%,1100px);background:#000}.entry-lightbox-figure.has-copy .entry-lightbox-media img,.entry-lightbox-figure.has-copy .entry-lightbox-media video{max-height:calc(100vh - 170px)}.entry-lightbox-count{color:var(--light-2);font-size:.9rem;font-weight:800;letter-spacing:.04em}.entry-lightbox-copy{display:grid;justify-items:start;align-self:center;gap:.9rem;max-height:calc(100vh - 180px);overflow:auto;padding:1.15rem 1.2rem;border:1px solid rgba(255,255,255,.09);border-left:3px solid var(--red);border-radius:10px;background:#0c0f14d1;box-shadow:0 18px 55px #0000005c;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--light-2);text-align:left}.entry-lightbox-copy strong{color:var(--light);font-size:clamp(1.3rem,2.2vw,1.9rem);line-height:1.15}.entry-lightbox-copy p{margin:0;color:var(--light-2);line-height:1.7;white-space:pre-wrap}.entry-lightbox-footer{position:absolute;z-index:10002;left:50%;bottom:22px;transform:translate(-50%);display:inline-flex;align-items:center;min-height:36px;padding:.35rem .8rem;border:1px solid rgba(255,255,255,.12);border-radius:999px;background:#0c0f14d1;box-shadow:0 12px 35px #00000061;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);pointer-events:none}.entry-lightbox-close,.entry-lightbox-nav{border:1px solid rgba(255,255,255,.18);color:var(--light);background:#11151be0;cursor:pointer;transition:transform .18s ease,border-color .18s ease,background .18s ease}.entry-lightbox-close:hover,.entry-lightbox-nav:hover{border-color:#e11d48bf;background:#e11d4833;transform:translateY(-1px)}.entry-lightbox-close:focus-visible,.entry-lightbox-nav:focus-visible{outline:2px solid var(--red);outline-offset:3px}.entry-lightbox-close{position:absolute;z-index:10002;top:18px;right:22px;width:44px;height:44px;display:grid;place-items:center;padding:0;border-radius:999px;font:inherit;font-size:1.7rem;line-height:1;box-shadow:0 10px 28px #0000005c}.entry-lightbox-nav{position:relative;z-index:10001;width:52px;height:52px;display:grid;place-items:center;justify-self:center;border-radius:999px;font-size:2rem;line-height:1;box-shadow:0 12px 34px #0000005c}@media(max-width:640px){.entry-lightbox{position:fixed;inset:0;z-index:9999;width:100vw;min-height:100vh;min-height:100svh;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:0 14px 54px;background:#050607;-webkit-backdrop-filter:none;backdrop-filter:none;overflow:hidden}.entry-lightbox-figure{width:100%;height:100%;min-height:0;margin:0;display:grid;grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) auto;align-items:center;justify-items:center;gap:12px;padding:calc(env(safe-area-inset-top) + 70px) 0 calc(env(safe-area-inset-bottom) + 18px);pointer-events:auto}.entry-lightbox-figure.has-copy{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) auto;gap:12px}.entry-lightbox-media{width:100%;min-height:0}.entry-lightbox-nav{position:absolute;z-index:10001;top:50%;width:44px;height:44px;border-radius:999px;background:#11151bb8;transform:translateY(-50%)}.entry-lightbox-nav.prev{left:calc(env(safe-area-inset-left) + 12px)}.entry-lightbox-nav.next{right:calc(env(safe-area-inset-right) + 12px)}.entry-lightbox-nav:hover{transform:translateY(-50%)}.entry-lightbox-close{z-index:10002;top:calc(env(safe-area-inset-top) + 12px);right:calc(env(safe-area-inset-right) + 12px);background:#11151bf2;box-shadow:0 8px 22px #00000073}.entry-lightbox-media img,.entry-lightbox-media video{max-width:calc(100vw - 28px);max-height:calc(100vh - 180px);max-height:calc(100svh - 180px);max-height:calc(100dvh - 180px);width:auto;height:auto;display:block;object-fit:contain}.entry-lightbox-figure.has-copy .entry-lightbox-media img,.entry-lightbox-figure.has-copy .entry-lightbox-media video{max-height:calc(100vh - 330px);max-height:calc(100svh - 330px);max-height:calc(100dvh - 330px)}.entry-lightbox-copy{width:calc(100vw - 28px);max-height:32vh;max-height:32svh;padding:.9rem;border-left-width:2px;border-radius:8px;pointer-events:auto}.entry-lightbox-copy strong{font-size:1.15rem}.entry-lightbox-copy p{line-height:1.6}.entry-lightbox-footer{left:50%;bottom:calc(env(safe-area-inset-bottom) + 14px);transform:translate(-50%)}}.admin-entries{max-width:100%}.admin-entry-list{list-style:none;margin:0;padding:0;display:grid;gap:.45rem}.admin-entry-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.55rem;border:1px solid var(--dark-2);border-radius:6px;background:#ffffff05}.admin-entry-row:last-child{border-bottom:1px solid var(--dark-2)}.admin-entry-title{flex:1;color:var(--light);font-weight:500}.admin-entry-title:hover{color:var(--red);text-decoration:none}.page-section-list{list-style:none;margin:0 0 1.25rem;padding:0;display:grid;gap:.45rem}.page-section-group{margin-bottom:1rem}.page-section-group h3{margin:0 0 .5rem;color:var(--light);font-size:1.05rem}.page-section-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto auto;align-items:center;gap:.45rem;padding:.55rem;border:1px solid var(--dark-2);border-radius:6px;background:#ffffff05}.page-section-row:last-child{border-bottom:1px solid var(--dark-2)}.page-section-summary{min-width:0;display:grid;gap:.2rem}.page-section-summary strong,.page-section-summary span,.page-section-summary small{overflow-wrap:anywhere}.page-section-summary span{color:var(--grey);font-size:.9rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.page-section-summary small{color:var(--grey)}.page-section-form{margin-top:1rem}.page-section-form h3{margin:0 0 1rem;font-size:1.15rem}.page-section-entry-picker{margin:.5rem 0 0;padding:0;border:0}.page-section-entry-picker legend{margin-bottom:.75rem;color:var(--light);font-weight:700}.page-section-entry-manager{display:grid;grid-template-columns:minmax(280px,.82fr) minmax(340px,1.18fr);gap:.85rem;align-items:start}.page-section-entry-order,.page-section-entry-choices{min-width:0;padding:.85rem;border:1px solid var(--border);border-radius:8px;background:#ffffff06}.page-section-entry-panel-heading{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.7rem}.page-section-entry-panel-heading strong{color:var(--light)}.page-section-entry-panel-heading span{color:var(--grey);font-size:.82rem}.page-section-entry-order-list{display:grid;gap:.55rem;margin:0;padding:0;list-style:none}.page-section-entry-order-item{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.6rem;align-items:center;padding:.65rem;border:1px solid var(--border);border-radius:8px;background:#00000029}.page-section-entry-order-number{width:1.7rem;height:1.7rem;display:inline-grid;place-items:center;border-radius:999px;background:var(--red-dim);color:var(--red-hover);font-weight:800;font-size:.85rem}.page-section-entry-order-title{min-width:0;color:var(--light);font-weight:700;overflow-wrap:anywhere}.page-section-entry-order-actions{grid-column:2;display:flex;flex-wrap:wrap;gap:.4rem}.page-section-entry-order-actions .btn{padding:.3rem .55rem}.page-section-entry-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.65rem}.page-section-entry-option{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:.55rem;align-items:center;padding:.7rem .75rem;border:1px solid var(--border);border-radius:8px;background:#ffffff05}.page-section-entry-option.selected{border-color:#e11d488c;background:#e11d481a}.page-section-entry-option input{margin:0}.page-section-entry-option span{min-width:0;color:var(--light);overflow-wrap:anywhere}.page-section-entry-option small{color:var(--red);font-size:.75rem}.section-form-row{display:grid;grid-template-columns:minmax(120px,180px) minmax(0,1fr);gap:1rem;align-items:center}.checkbox-label{display:flex!important;align-items:center;gap:.5rem;margin-top:1.15rem}.checkbox-label input{margin:0}@media(max-width:640px){.page-section-row{grid-template-columns:1fr;align-items:stretch}.section-form-row{grid-template-columns:1fr}.checkbox-label{margin-top:0}}.admin-login{max-width:480px;margin:0 auto}.admin-form{width:min(1760px,calc(100% - 32px));max-width:none;margin:0 auto;padding:16px 0 32px;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:1rem;align-items:start}.pre-line{white-space:pre-line}.form-wide{max-width:none}.admin-section{margin-bottom:0;padding:1rem;background:#0d1117b8;border:1px solid var(--border);border-radius:8px;scroll-margin-top:92px}.admin-section h2{margin:0 0 .75rem;font-size:1.28rem}.admin-section-title-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:1rem}.admin-section-title-row h2{margin:0}.entry-form-top-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.75rem;align-items:end}.entry-title-field,.entry-feature-toggle{margin-top:0;margin-bottom:.8rem}.entry-feature-toggle{min-height:42px;padding:.55rem .75rem;border:1px solid var(--dark-2);border-radius:8px;background:#ffffff06;white-space:nowrap}.entry-form-two-column{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:.85rem;align-items:start}.entry-form-two-column>label{margin-bottom:.85rem}.upload-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.entry-submit-row{display:flex;flex-wrap:wrap;gap:.65rem;align-items:center;margin-top:.35rem}.admin-dashboard{grid-column:1 / -1;display:grid;grid-template-columns:minmax(260px,.45fr) minmax(0,1fr);gap:1rem;align-items:end;margin-bottom:0;padding:1rem;background:#0d1117c7;border:1px solid var(--border);border-radius:8px;scroll-margin-top:92px}.admin-dashboard h1{margin:0 0 .35rem;font-size:2rem}.admin-dashboard-copy p{margin-bottom:0}#portfolio-entry-form{grid-column:span 8;order:2}#portfolio-entries{grid-column:span 4;order:3}#page-sections{grid-column:span 8;order:4}#contact-inbox{grid-column:span 4;order:5}#site-copy{grid-column:span 8;order:6}#hero-images{grid-column:span 4;order:7}#cv-download{grid-column:span 4;order:8}#about-main{grid-column:span 4;order:9}#account{grid-column:span 4;order:10}.admin-nav-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(126px,1fr));gap:.55rem;margin-top:0}.admin-nav-grid a{display:flex;align-items:center;min-height:36px;padding:.48rem .65rem;color:var(--light);background:var(--dark-2);border:1px solid var(--border);border-radius:6px;font-size:.88rem}.admin-nav-grid a:hover{border-color:var(--red);color:var(--red)}.form-grid.two-column{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem 1rem;align-items:start}.site-copy-form textarea{min-height:74px}.admin-form .form label{margin-bottom:.72rem;font-size:.9rem}.admin-form .form input[type=text],.admin-form .form input[type=password],.admin-form .form input[type=url],.admin-form .form input[type=number],.admin-form .form textarea,.admin-form .form select{height:38px;margin-top:.25rem;padding:.48rem .62rem;border-radius:6px;font-size:.92rem}.admin-form .form textarea{min-height:84px}.admin-form .btn{padding:.58rem .9rem;border-radius:6px;font-size:.92rem}.admin-form .btn-sm{padding:.32rem .55rem;font-size:.8rem}.form label{display:block;margin-bottom:1rem;font-weight:500;color:var(--light-2)}.form input[type=text],.form input[type=password],.form input[type=url],.form input[type=number],.form textarea,.form select{display:block;height:42px;width:100%;margin-top:.35rem;padding:.6rem .75rem;background:var(--dark-2);border:1px solid var(--grey);border-radius:8px;color:var(--light);font:inherit}.form input:focus,.form textarea:focus{outline:none;border-color:var(--red);box-shadow:0 0 0 2px var(--red-dim)}.form textarea{height:auto;min-height:110px;resize:vertical}.form input[type=file]{margin-top:.35rem;color:var(--grey)}.form input[type=checkbox]{accent-color:var(--red)}.form button[type=submit]{margin-top:.5rem}.form .error{color:var(--error);margin:.5rem 0 0}.form .success{color:var(--success);margin:.5rem 0 0}.muted{color:var(--grey)}.error{color:var(--error)}fieldset.youtube-links{border:1px solid var(--dark-2);border-radius:8px;padding:1rem;margin-bottom:1rem}fieldset.youtube-links legend,fieldset.category-checkboxes legend{padding:0 .5rem;color:var(--grey)}fieldset.category-checkboxes{border:1px solid var(--dark-2);border-radius:8px;padding:1rem;margin-bottom:1rem}fieldset.category-checkboxes-compact{padding:.8rem .9rem;margin-bottom:.85rem}.category-checkbox-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.6rem 1rem}.category-checkboxes-compact .category-checkbox-grid{grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:.45rem .75rem}.category-checkbox-grid .checkbox-label{margin-bottom:0}.youtube-row{display:flex;gap:.5rem;align-items:center;margin-bottom:.75rem}.youtube-row input[type=url]{flex:1;min-width:0}.youtube-row input[type=text]{flex:0 0 140px}.btn:disabled{opacity:.6;cursor:not-allowed}.page-header{gap:1rem}.page-header nav{flex-wrap:wrap;justify-content:flex-end}.hero-title,.hero-banner-title,.entry-title,.entry-section-title,.section-kicker{letter-spacing:0}.hero-title{font-size:4rem}.hero-banner-inner{text-align:center}.hero-banner-title{font-size:3.2rem}.hero-banner-subtitle{margin:0 auto}.portfolio-wrap{text-align:center}.portfolio-tabs{justify-content:center}.project-section,.project-section.alt{grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr);max-width:1100px;margin:18px auto;border-radius:8px;text-align:left}.project-media-grid{width:100%}.project-meta{display:flex;flex-direction:column;align-items:flex-start;text-align:left}.project-actions,.project-meta .skill-tags{justify-content:flex-start}.project-summary-text{text-align:left}.section-entry-list{--section-entry-gap: 18px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--section-entry-gap);align-items:stretch;width:100%}.section-entry-list .project-section{width:100%;max-width:none;height:100%;margin:0;grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr);gap:12px;padding:14px}.section-entry-list .project-section:last-child:nth-child(odd){grid-column:1 / -1;justify-self:center;width:calc((100% - var(--section-entry-gap)) / 2)}.section-entry-list .project-media-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.section-entry-list .project-media-tile{border-radius:6px}.section-entry-list .project-meta{min-height:0;gap:10px}.project-meta{height:100%}.project-actions{margin-top:auto}.project-card-footer{width:100%;padding-top:10px}.project-category-tags{justify-content:flex-start}.project-category-tags li{color:var(--red-hover);background:#e11d4826}@media(max-width:920px){.project-section,.project-section.alt,.section-entry-list{grid-template-columns:1fr}.section-entry-list .project-section:last-child:nth-child(odd){grid-column:auto;width:100%}.project-media-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:520px){.project-media-grid{grid-template-columns:1fr}}.details-text{text-align:left}.card,.details-media img,.details-video,.details-youtube,.entry-description-card,.entry-photos img,.entry-video-wrap,.entry-youtube-wrap{border-radius:8px}.landing-page{min-height:100vh;background:var(--dark)}.home-hero{position:relative;min-height:52vh;display:flex;align-items:flex-end;justify-content:center;overflow:hidden;border-bottom:1px solid var(--border)}.home-hero-bg{position:absolute;inset:0;background:center / cover no-repeat;background-color:#050607}.home-hero-overlay{position:absolute;inset:0;background:linear-gradient(to bottom,#00000038,#000000c7),radial-gradient(720px 420px at 60% 35%,rgba(225,29,72,.2),transparent 60%)}.home-hero-content{position:relative;z-index:1;width:min(1100px,calc(100% - 36px));padding:28px 0 30px;text-align:center}.home-hero-content h1{margin:0 0 12px;font-size:4.2rem;line-height:1.05;letter-spacing:0}.home-hero-content p{max-width:760px;margin:0 auto 24px;color:var(--light-2);font-size:1.15rem;line-height:1.7}.home-actions,.about-actions,.contact-actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}.home-main,.about-page,.contact-page{width:min(1100px,calc(100% - 36px));margin:0 auto;padding:42px 0 76px}.home-intro-section,.featured-work-section,.content-section{margin:0 auto 42px;text-align:center}.home-intro-section{max-width:820px}.home-intro-section p,.content-section p{margin:0 auto 16px;max-width:820px;color:var(--light-2);line-height:1.8;white-space:pre-wrap}.home-intro-section.content-align-left>p{margin-left:0;margin-right:auto;text-align:left}.home-intro-section.content-align-center>p{text-align:center}.home-intro-section.content-align-right>p{margin-left:auto;margin-right:0;text-align:right}.home-intro-section.content-align-justify>p{text-align:justify;text-align-last:left}.home-section-heading h2,.content-section h2{margin:0 0 12px;font-size:2rem;line-height:1.2;letter-spacing:0}.content-section .page-section-title{text-align:center;white-space:pre-line;font-weight:800;line-height:1.25}.content-section.content-align-left,.content-section.content-align-left .page-section-title,.content-section.content-align-left p,.content-section.content-align-left .formatted-text{text-align:left}.content-section.content-align-center,.content-section.content-align-center .page-section-title,.content-section.content-align-center p,.content-section.content-align-center .formatted-text{text-align:center}.content-section.content-align-right,.content-section.content-align-right .page-section-title,.content-section.content-align-right p,.content-section.content-align-right .formatted-text{text-align:right}.content-section.content-align-justify p,.content-section.content-align-justify .formatted-text{text-align:justify;text-align-last:left}.content-section.content-align-left p,.content-section.content-align-left .formatted-text{margin-left:0;margin-right:auto}.content-section.content-align-right p,.content-section.content-align-right .formatted-text{margin-left:auto;margin-right:0}.content-section .formatted-text{max-width:820px;margin:0 auto 16px;color:var(--light-2);line-height:1.8}.formatted-text-paragraph{margin:0 0 16px}.formatted-text-list{display:grid;gap:.55rem;margin:22px 0 18px;padding:0;list-style:none}.content-align-center .formatted-text-list{width:fit-content;max-width:100%;margin-left:auto;margin-right:auto;text-align:left}.formatted-text-list li{position:relative;padding-left:1.35rem;transition:transform .18s ease,color .18s ease}.formatted-text-list li:before{content:"";position:absolute;left:0;top:.85em;width:.48rem;height:.48rem;border-radius:999px;background:linear-gradient(135deg,var(--red),var(--grey));box-shadow:0 0 0 3px #e11d481a;transform:translateY(-50%);transition:transform .18s ease,box-shadow .18s ease}.formatted-text-list li:hover{transform:translate(2px);color:var(--light)}.formatted-text-list li:hover:before{transform:translateY(-50%) scale(1.2);box-shadow:0 0 0 5px #e11d4824}.formatted-text strong{color:var(--light);font-weight:800}.page-section-summary strong{white-space:pre-line}.section-kicker{margin:0 0 6px;color:var(--red);font-weight:700;text-transform:uppercase;letter-spacing:0}.text-link{display:inline-block;color:var(--light);font-weight:700}.featured-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px;margin-top:20px}.featured-tile{display:grid;color:inherit;background:#ffffff08;border:1px solid var(--border);border-radius:8px;overflow:hidden}.featured-tile:hover{color:inherit;text-decoration:none;border-color:#e11d488c}.featured-media{aspect-ratio:16 / 10;background:var(--dark-2);overflow:hidden}.featured-media img{width:100%;height:100%;display:block;object-fit:cover}.featured-copy{display:grid;gap:4px;padding:12px;text-align:left}.featured-copy span{color:var(--red);font-size:.8rem}.featured-copy strong{color:var(--light);line-height:1.35}.about-skills{margin-top:18px}.contact-page{display:grid;grid-template-columns:minmax(280px,.8fr) minmax(360px,1fr);gap:36px;align-items:start}.contact-intro{display:grid;gap:18px}.contact-intro,.contact-intro .content-section{text-align:left}.contact-intro .content-section p,.contact-intro .content-section h2{margin-left:0}.contact-method-card,.contact-form-panel{border:1px solid var(--border);border-radius:8px;background:#ffffff0d;box-shadow:0 18px 42px #00000038}.contact-method-card{padding:18px}.contact-method-card p{margin:10px 0 0;color:var(--light-2);line-height:1.65}.contact-email-link{display:inline-block;margin-top:2px;color:var(--light);font-size:1.15rem;font-weight:800;overflow-wrap:anywhere}.contact-email-link:hover{color:var(--red-hover)}.contact-form-panel{padding:22px}.contact-form-header{margin-bottom:18px}.contact-form-header h2{margin:0 0 8px;font-size:2rem;line-height:1.2}.contact-form-header p:last-child{margin:0;color:var(--light-2);line-height:1.65}.contact-form{display:grid;gap:14px}.contact-form label{margin-bottom:0}.contact-form textarea{min-height:168px}.contact-form-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.contact-form-actions .btn{min-height:44px}.contact-status{margin:0}.contact-actions{grid-column:1 / -1}.admin-heading-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.admin-heading-stack{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap}.media-order-heading{align-items:flex-start}.status-pill{display:inline-flex;align-items:center;justify-content:center;min-height:26px;padding:0 10px;border-radius:999px;background:var(--red-dim);color:var(--red-hover);font-size:.8rem;font-weight:700}.hero-image-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(128px,1fr));gap:.6rem;margin-bottom:.8rem}.hero-image-item{display:grid;gap:.35rem;font-size:.85rem}.hero-image-item img{width:100%;aspect-ratio:16 / 9;object-fit:cover;border-radius:8px;border:1px solid var(--border);background:var(--dark-2)}.hero-upload-form{margin-top:.5rem}#hero-images .hero-upload-form,#cv-download .cv-upload-form{display:grid;grid-template-columns:minmax(110px,.45fr) minmax(0,1fr);gap:0 .65rem;align-items:end}#hero-images .hero-upload-form .error,#hero-images .hero-upload-form .success,#hero-images .hero-upload-form button,#cv-download .cv-upload-form .error,#cv-download .cv-upload-form .success,#cv-download .cv-upload-form button{grid-column:1 / -1}#hero-images .hero-upload-form button,#cv-download .cv-upload-form button,.page-section-form button{justify-self:start}.cv-current-file{margin:0 0 .75rem;color:var(--light-2);line-height:1.5}.page-section-form{display:grid;grid-template-columns:minmax(120px,.32fr) minmax(0,1fr) minmax(130px,.34fr);gap:0 .75rem}.page-section-content-field{grid-column:1 / -1;margin-bottom:.72rem}.field-label-row{display:flex;align-items:center;justify-content:space-between;gap:.65rem;margin-bottom:.25rem}.field-actions{display:flex;flex-wrap:wrap;gap:.45rem;justify-content:flex-end}.form .field-label-row label{margin:0}.page-section-content-field textarea{margin-top:0}.page-section-form h3,.page-section-form .page-section-entry-picker,.page-section-form .checkbox-label,.page-section-form .error,.page-section-form .success,.page-section-form button{grid-column:1 / -1}.existing-media-manager{display:grid;gap:.75rem;margin:.8rem 0;padding:.85rem;border:1px solid var(--border);border-radius:8px;background:#ffffff06}.admin-entry-list,.page-section-groups,.contact-message-list{max-height:520px;overflow:auto;padding-right:.25rem}.admin-entry-list,.page-section-list,.contact-message-list{scrollbar-width:thin;scrollbar-color:rgba(154,164,178,.35) transparent}.existing-media-manager h3{font-size:1.05rem}.existing-media-manager h3,.existing-media-block p{margin:0}.existing-media-block{display:grid;gap:.6rem}.existing-media-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.75rem}.media-order-grid{grid-template-columns:1fr;gap:.65rem}.existing-media-card{display:grid;gap:.4rem;padding:.5rem;background:var(--dark-2);border:1px solid var(--border);border-radius:8px}.media-order-card{position:relative;grid-template-columns:minmax(140px,180px) minmax(0,1fr) minmax(82px,auto);align-items:stretch;gap:.7rem;padding:.6rem}.media-order-preview{position:relative;min-width:0}.media-order-index{position:absolute;top:.45rem;left:.45rem;z-index:1;min-width:23px;min-height:23px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:#000000b3;color:var(--light);font-size:.72rem;font-weight:700}.existing-media-card img,.existing-media-card video{width:100%;aspect-ratio:16 / 9;object-fit:cover;border-radius:6px;background:#050607}.media-order-details{min-width:0;display:grid;gap:.55rem}.media-order-file-row{display:flex;align-items:center;gap:.55rem;min-width:0}.media-order-placeholder{width:100%;aspect-ratio:16 / 9;display:grid;place-items:center;border-radius:6px;background:linear-gradient(135deg,#e11d482e,#ffffff0a);color:var(--grey);font-weight:700}.existing-media-card span,.selected-file-list{color:var(--grey);font-size:.8rem}.existing-media-card span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.media-order-kind{color:var(--red-hover);font-size:.68rem;font-weight:700;text-transform:uppercase}.media-caption-fields{display:grid;grid-template-columns:minmax(180px,.45fr) minmax(240px,1fr);gap:.55rem}.media-caption-fields label{display:grid;gap:.25rem;margin:0;color:var(--grey);font-size:.76rem;font-weight:700}.media-caption-fields input,.media-caption-fields textarea{width:100%;margin:0;padding:.45rem .55rem;border:1px solid rgba(154,164,178,.55);border-radius:6px;background:#0b0d10;color:var(--light);font:inherit;font-size:.82rem}.media-caption-fields textarea{min-height:72px;resize:vertical}.media-caption-fields input:focus,.media-caption-fields textarea:focus{outline:none;border-color:var(--red);box-shadow:0 0 0 2px var(--red-dim)}.media-order-actions{display:grid;grid-template-columns:1fr;align-content:center;gap:.3rem}.media-order-actions .btn-sm{width:100%;padding-inline:.35rem;min-height:31px;font-size:.76rem}.media-order-actions .btn-sm:last-child{grid-column:auto}.form label.media-replace-control{display:inline-flex;align-items:center;justify-content:center;margin:0;color:var(--light);text-align:center}.media-replace-control input{display:none}.media-detail-card{grid-template-columns:minmax(126px,160px) minmax(0,1fr) minmax(82px,auto)}.media-detail-actions{align-content:end}.timeline-copy-grid textarea{min-height:74px}.media-hero-pill{min-height:22px;padding:0 8px;font-size:.72rem}@media(max-width:900px){.media-order-card,.media-detail-card,.media-caption-fields{grid-template-columns:1fr}.media-order-actions{grid-template-columns:repeat(3,minmax(0,1fr))}}.selected-file-list{margin:-.4rem 0 1rem;padding-left:1.2rem}.contact-message-list{list-style:none;margin:0;padding:0;display:grid;gap:12px}.contact-message-row{padding:.7rem;border:1px solid var(--border);border-radius:6px;background:#ffffff06}.contact-message-row.unread{border-color:#e11d4880;background:#e11d4812}.contact-message-head,.contact-message-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px}.contact-message-head span,.contact-message-meta{color:var(--grey);font-size:.9rem}.contact-message-meta{margin:.35rem 0}.contact-message-body{margin:0 0 .65rem;color:var(--light-2);line-height:1.55;white-space:pre-wrap}@media(max-width:640px),(max-aspect-ratio:3 / 4){.portfolio-wrap{padding:18px 10px 48px}.project-section,.project-section.alt{grid-template-columns:1fr;gap:12px;margin:12px auto;padding:10px}.project-media-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.project-media-grid.media-count-1{grid-template-columns:1fr}.project-media-grid.media-count-2,.project-media-grid.media-count-4{grid-template-columns:repeat(2,minmax(0,1fr))}.project-media-grid.media-count-3,.project-media-grid.media-count-5,.project-media-grid.media-count-6{grid-template-columns:repeat(3,minmax(0,1fr))}.project-media-tile{aspect-ratio:4 / 3;border-radius:6px}.project-media-tile.single{grid-column:1 / -1;aspect-ratio:16 / 9}.project-meta{gap:8px}.project-meta h2{margin-bottom:2px;font-size:1.18rem;line-height:1.25}.project-meta .skill-tags{gap:6px;margin-bottom:4px!important}.project-meta .skill-tags li{padding:4px 8px;font-size:.78rem}.project-summary-text{font-size:.95rem;line-height:1.55}.project-actions .btn{min-height:40px;padding:.55rem .85rem}.entry-gallery-item{grid-template-columns:1fr;gap:.75rem}.entry-gallery-list{grid-template-columns:1fr}.entry-gallery-item.has-copy{grid-template-columns:1fr;gap:.75rem}.entry-gallery-copy{max-width:none}}@media(max-width:1180px){.admin-form{width:min(1180px,calc(100% - 28px));grid-template-columns:repeat(6,minmax(0,1fr))}.admin-dashboard{grid-template-columns:1fr}#portfolio-entry-form,#portfolio-entries,#page-sections,#contact-inbox,#site-copy,#hero-images,#cv-download,#about-main,#account{grid-column:1 / -1}}@media(max-width:760px){.page-header{align-items:flex-start;flex-direction:column}.page-header nav{justify-content:flex-start;gap:.8rem}.admin-dashboard,.admin-section{padding:1rem}.admin-form{width:min(100% - 18px,760px);gap:.75rem;padding-top:.75rem}.admin-nav-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-section-title-row,.entry-submit-row{align-items:stretch}.admin-section-title-row{flex-direction:column}.entry-form-top-row,.entry-form-two-column,.upload-fields,#hero-images .hero-upload-form,#cv-download .cv-upload-form,.page-section-form,.page-section-entry-manager{grid-template-columns:1fr}.page-section-entry-order-actions{grid-column:1 / -1}.entry-feature-toggle{white-space:normal}.media-order-grid,.form-grid.two-column{grid-template-columns:1fr}.hero-title,.hero-banner-title,.home-hero-content h1,.entry-title{font-size:2.35rem}.entry-hero{min-height:260px;padding:1.25rem}.entry-section-heading{align-items:flex-start;flex-direction:column;gap:.35rem}.home-hero{min-height:52vh}.contact-page{grid-template-columns:1fr}.home-intro-section.content-align-justify>p,.content-section.content-align-justify p,.content-section.content-align-justify .formatted-text,.content-section.content-align-justify .formatted-text-list,.content-section.content-align-justify .formatted-text-list li{text-align:left;text-align-last:auto}.youtube-row{flex-direction:column;align-items:stretch}.youtube-row input[type=text]{flex-basis:auto}}.media-timeline-manager{display:grid;gap:.75rem;margin:.8rem 0;padding:.85rem;border:1px solid var(--border);border-radius:8px;background:#ffffff06}.media-timeline-manager h3,.media-timeline-manager p{margin:0}.media-timeline-list{display:grid;gap:.75rem}.media-timeline-card{display:grid;gap:.65rem;padding:.75rem;border:1px solid rgba(154,164,178,.18);border-radius:8px;background:#080a0d9e}.media-timeline-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.media-timeline-picker{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:.55rem}.media-timeline-option{display:grid;grid-template-columns:auto 58px minmax(0,1fr);align-items:center;gap:.5rem;margin:0;padding:.45rem;border:1px solid rgba(154,164,178,.2);border-radius:7px;background:#11151bd1;color:var(--light-2);cursor:pointer;transition:border-color .18s ease,background .18s ease}.media-timeline-option.selected{border-color:#e11d48b8;background:#e11d481a}.media-timeline-option input{margin:0}.media-timeline-thumb{width:58px;aspect-ratio:16 / 9;display:grid;place-items:center;overflow:hidden;border-radius:5px;background:#050607;color:var(--grey);font-size:.72rem;text-transform:uppercase}.media-timeline-thumb img,.media-timeline-thumb video{width:100%;height:100%;display:block;object-fit:cover}.media-timeline-option>span:last-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.82rem}.gallery-placement-manager{display:grid;gap:.65rem;margin:.8rem 0;padding:.85rem;border:1px solid var(--border);border-radius:8px;background:#ffffff06}.gallery-placement-manager h3,.gallery-placement-manager p{margin:0}.gallery-placement-list{display:grid;gap:.5rem}.gallery-placement-row{display:grid;grid-template-columns:30px minmax(96px,132px) minmax(0,1fr) auto;align-items:center;gap:.65rem;padding:.48rem;border:1px solid rgba(154,164,178,.18);border-radius:8px;background:#11151bbd}.gallery-placement-row.is-timeline{border-color:#e11d4857;background:linear-gradient(135deg,#e11d481a,#11151bbd)}.gallery-placement-index{width:26px;height:26px;display:grid;place-items:center;border-radius:999px;background:#00000094;color:var(--light);font-size:.75rem;font-weight:800}.gallery-placement-thumb,.gallery-placement-thumb-stack{width:100%;min-height:58px;border-radius:6px;background:#050607;overflow:hidden}.gallery-placement-thumb{display:grid;place-items:center;aspect-ratio:16 / 9;color:var(--grey);font-size:.72rem;text-transform:uppercase}.gallery-placement-thumb img,.gallery-placement-thumb video,.gallery-placement-thumb-stack img,.gallery-placement-thumb-stack video{width:100%;height:100%;display:block;object-fit:cover}.gallery-placement-thumb-stack{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px}.gallery-placement-thumb-stack span,.gallery-placement-thumb-stack small{min-width:0;min-height:0;display:grid;place-items:center;background:#ffffff0a;color:var(--grey);font-size:.68rem;text-align:center}.gallery-placement-more{color:var(--light)!important;font-weight:800;background:#e11d4840!important}.gallery-placement-copy{min-width:0;display:grid;gap:.18rem}.gallery-placement-copy strong{overflow:hidden;color:var(--light);font-size:.9rem;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.gallery-placement-copy span{overflow:hidden;color:var(--grey);font-size:.76rem;text-overflow:ellipsis;white-space:nowrap}.gallery-placement-actions{display:flex;gap:.35rem}.entry-gallery-timeline{grid-column:1 / -1;display:grid;gap:.85rem;padding:clamp(.75rem,1.5vw,1rem);border:1px solid var(--border);border-radius:8px;background:linear-gradient(135deg,#11151bbf,#090b0e8a),#11151b66;box-shadow:0 12px 34px #00000029;animation:mediaReveal .45s ease-out both}.entry-timeline-copy{max-width:78ch}.entry-timeline-copy h3{margin:0 0 .35rem;font-size:clamp(1.2rem,2vw,1.55rem);line-height:1.2}.entry-timeline-copy p{margin:0;color:var(--light-2);line-height:1.65;white-space:pre-wrap}.entry-timeline-shell{display:grid;grid-template-columns:42px minmax(0,1fr) 42px;align-items:center;gap:.65rem}.entry-timeline-shell.is-static{grid-template-columns:minmax(0,1fr)}.entry-timeline-track{min-width:0;display:flex;gap:.75rem;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-padding-inline:.25rem;padding:.15rem .1rem .45rem;scrollbar-width:thin;scrollbar-color:rgba(225,29,72,.58) rgba(255,255,255,.06)}.entry-timeline-shell.is-static .entry-timeline-track{display:grid;justify-content:center;overflow:visible;scroll-snap-type:none;padding:.15rem .1rem 0;scrollbar-width:none}.entry-timeline-shell.is-static .entry-timeline-track::-webkit-scrollbar{display:none}.entry-gallery-timeline.timeline-count-1 .entry-timeline-track{grid-template-columns:minmax(220px,min(100%,430px))}.entry-gallery-timeline.timeline-count-2 .entry-timeline-track{grid-template-columns:repeat(2,minmax(220px,380px))}.entry-gallery-timeline.timeline-count-3 .entry-timeline-track{grid-template-columns:repeat(3,minmax(0,1fr))}.entry-timeline-track::-webkit-scrollbar{height:8px}.entry-timeline-track::-webkit-scrollbar-track{background:#ffffff0f;border-radius:999px}.entry-timeline-track::-webkit-scrollbar-thumb{background:#e11d489e;border-radius:999px}.entry-timeline-card{position:relative;flex:0 0 clamp(220px,28vw,380px);aspect-ratio:16 / 9;min-width:0;padding:0;border:1px solid rgba(255,255,255,.08);border-radius:8px;overflow:hidden;background:var(--dark-2);color:var(--light);cursor:zoom-in;scroll-snap-align:start;box-shadow:0 8px 24px #0000003d;transition:transform .2s ease,border-color .2s ease,filter .2s ease}.entry-timeline-shell.is-static .entry-timeline-card{width:100%;flex-basis:auto}.entry-timeline-card:hover{transform:translateY(-2px);border-color:#e11d489e;filter:brightness(1.05)}.entry-timeline-card:focus-visible,.entry-timeline-nav:focus-visible{outline:2px solid var(--red);outline-offset:3px}.entry-timeline-card img,.entry-timeline-card video{width:100%;height:100%;display:block;object-fit:cover}.entry-timeline-card-label,.entry-timeline-video-label{position:absolute;z-index:1;display:inline-flex;align-items:center;max-width:calc(100% - 20px);min-height:30px;padding:.28rem .62rem;border:1px solid rgba(255,255,255,.12);border-radius:999px;background:#050607c7;color:var(--light);font-size:.76rem;font-weight:800;line-height:1.1;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;pointer-events:none}.entry-timeline-card-label{left:10px;bottom:10px}.entry-timeline-video-label{right:10px;bottom:10px;text-transform:uppercase}.entry-timeline-nav{width:42px;height:42px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.14);border-radius:999px;background:#11151be0;color:var(--light);font:inherit;font-size:1.45rem;cursor:pointer;transition:transform .18s ease,border-color .18s ease,background .18s ease}.entry-timeline-nav:hover{transform:translateY(-1px);border-color:#e11d48b8;background:#e11d482e}@media(max-width:760px){.media-timeline-picker{grid-template-columns:1fr}.gallery-placement-row{grid-template-columns:28px minmax(84px,118px) minmax(0,1fr)}.gallery-placement-actions{grid-column:2 / -1;justify-content:flex-end}.entry-timeline-shell{grid-template-columns:36px minmax(0,1fr) 36px;gap:.45rem}.entry-timeline-nav{width:36px;height:36px;font-size:1.2rem}.entry-timeline-card{flex-basis:min(78vw,320px)}.entry-gallery-timeline.timeline-count-2 .entry-timeline-track,.entry-gallery-timeline.timeline-count-3 .entry-timeline-track{grid-template-columns:1fr}}.admin-page{padding-inline:.75rem}.admin-status-strip{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:.65rem}.admin-status-strip span{display:inline-flex;align-items:baseline;gap:.35rem;min-height:28px;padding:.25rem .6rem;border:1px solid rgba(154,164,178,.18);border-radius:999px;background:#ffffff09;color:var(--grey);font-size:.8rem}.admin-status-strip strong{color:var(--light);font-size:.95rem}.admin-section-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.5rem}.admin-list-tools{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.5rem;align-items:center;margin-bottom:.65rem}.admin-list-tools input{width:100%;height:36px;padding:.46rem .62rem;border:1px solid rgba(154,164,178,.45);border-radius:6px;background:var(--dark-2);color:var(--light);font:inherit;font-size:.88rem}.admin-list-tools input:focus{outline:none;border-color:var(--red);box-shadow:0 0 0 2px var(--red-dim)}.admin-list-tools span{color:var(--grey);font-size:.78rem;white-space:nowrap}.admin-section{box-shadow:0 12px 34px #00000029}.admin-entry-row,.page-section-row,.contact-message-row{transition:border-color .18s ease,background .18s ease,transform .18s ease}.admin-entry-row:hover,.page-section-row:hover,.contact-message-row:hover{border-color:#e11d4857;background:#ffffff0a}@media(min-width:1000px){.media-order-grid,.media-timeline-list{grid-template-columns:repeat(auto-fit,minmax(520px,1fr))}.media-timeline-card{align-self:start}}@media(min-width:1181px){.admin-form{width:min(1920px,calc(100% - 20px));grid-template-columns:repeat(16,minmax(0,1fr));gap:.85rem}.admin-dashboard{position:sticky;top:68px;z-index:35;grid-column:1 / -1;grid-template-columns:minmax(280px,.34fr) minmax(0,1fr);align-items:center;padding:.85rem 1rem;background:#080a0de0;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.admin-dashboard h1{font-size:1.62rem}.admin-dashboard-copy{min-width:0}.admin-nav-grid{grid-template-columns:repeat(9,minmax(105px,1fr));gap:.45rem}.admin-nav-grid a{min-height:34px;padding:.42rem .58rem;font-size:.82rem}#portfolio-entry-form{grid-column:span 11;order:2}#portfolio-entries{grid-column:span 5;order:3;position:sticky;top:182px;max-height:calc(100vh - 194px);overflow:hidden}#portfolio-entries .admin-entry-list{max-height:calc(100vh - 278px)}#page-sections{grid-column:span 11;order:4}#contact-inbox{grid-column:span 5;order:5;position:sticky;top:182px;max-height:calc(100vh - 194px);overflow:hidden}#contact-inbox .contact-message-list{max-height:calc(100vh - 292px)}#site-copy{grid-column:span 10;order:6}#hero-images{grid-column:span 6;order:7}#cv-download{grid-column:span 5;order:8}#about-main{grid-column:span 6;order:9}#account{grid-column:span 5;order:10}.admin-section{padding:.85rem}.admin-section h2{font-size:1.16rem}.admin-entry-row{padding:.46rem}}@media(min-width:1500px){.media-order-card{grid-template-columns:minmax(128px,152px) minmax(0,1fr) minmax(72px,auto);gap:.58rem}.media-caption-fields{grid-template-columns:minmax(150px,.4fr) minmax(220px,1fr);gap:.45rem}.media-order-actions .btn-sm{min-height:29px}}@media(max-width:1180px){.admin-status-strip{margin-top:.75rem}}.admin-workspace-panel:not(.is-active){display:none!important}.admin-nav-grid button{display:grid;align-content:center;gap:.15rem;min-height:44px;padding:.5rem .68rem;color:var(--light);text-align:left;background:var(--dark-2);border:1px solid var(--border);border-radius:6px;font:inherit;cursor:pointer;transition:border-color .18s ease,background .18s ease,color .18s ease}.admin-nav-grid button span{font-size:.9rem;font-weight:800;line-height:1.1}.admin-nav-grid button small{color:var(--grey);font-size:.72rem;line-height:1.25}.admin-nav-grid button:hover,.admin-nav-grid button.active{border-color:#e11d48d1;background:#e11d481f;color:var(--light)}.admin-nav-grid button.active small{color:var(--red-hover)}@media(min-width:1181px){.admin-form{width:min(1960px,calc(100% - 28px));grid-template-columns:repeat(16,minmax(0,1fr));gap:.9rem}.admin-dashboard{position:static!important;top:auto!important;grid-column:1 / -1;grid-template-columns:minmax(280px,.34fr) minmax(0,1fr);align-items:center;padding:.9rem 1rem;background:#0d1117c7;-webkit-backdrop-filter:none;backdrop-filter:none}.admin-dashboard h1{font-size:1.55rem}.admin-nav-grid{grid-template-columns:repeat(5,minmax(150px,1fr))}#portfolio-entry-form{grid-column:1 / span 11;order:2}#portfolio-entries{grid-column:12 / span 5;order:3;position:static!important;top:auto!important;max-height:none!important;overflow:visible!important}#portfolio-entries .admin-entry-list{max-height:720px}#page-sections{grid-column:1 / -1;order:2}#site-copy{grid-column:1 / span 9;order:2}#about-main{grid-column:10 / span 7;order:2}#hero-images{grid-column:1 / span 8;order:3}#cv-download{grid-column:9 / span 4;order:3}#account{grid-column:1 / span 6;order:2}#contact-inbox{grid-column:1 / span 10;order:2;position:static!important;top:auto!important;max-height:none!important;overflow:visible!important}#contact-inbox .contact-message-list{max-height:720px}}@media(max-width:760px){.admin-nav-grid button{min-height:40px}.admin-nav-grid button small{display:none}}@media(min-width:900px){.hero-banner-inner{max-width:880px;padding:22px 14px 24px}.hero-banner-subtitle,.home-hero-content p{max-width:608px}.portfolio-wrap{max-width:1200px;padding:21px 14px 56px}.project-section,.project-section.alt{grid-template-columns:minmax(0,1.1fr) minmax(256px,.9fr);max-width:880px;gap:18px;padding:14px;margin:14px auto}.project-media-grid{gap:6px}.page-content-section,.portfolio-page-section{padding-bottom:24px;margin-bottom:30px}.page-content-section:after,.portfolio-page-section:after{width:min(100%,768px);margin-top:24px}.section-entry-list{--section-entry-gap: 14px;margin-top:18px}.section-entry-list .project-section{gap:10px;padding:12px}.section-entry-list .project-media-grid{gap:5px}.entry{width:min(928px,100%)}.entry-hero{min-height:clamp(240px,27vw,344px);margin-bottom:1.75rem}.entry-gallery-list{gap:.9rem}.entry-gallery-item.has-copy{grid-template-columns:minmax(248px,.92fr) minmax(0,1fr)}.entry-gallery-timeline{gap:.68rem}.entry-timeline-shell{grid-template-columns:34px minmax(0,1fr) 34px}.entry-timeline-nav{width:34px;height:34px}.entry-timeline-card{flex-basis:clamp(176px,22.4vw,304px)}.entry-gallery-timeline.timeline-count-1 .entry-timeline-track{grid-template-columns:minmax(176px,min(100%,344px))}.entry-gallery-timeline.timeline-count-2 .entry-timeline-track{grid-template-columns:repeat(2,minmax(176px,304px))}.home-hero-content,.home-main,.about-page,.contact-page{width:min(880px,calc(100% - 30px))}.home-main,.about-page,.contact-page{padding:34px 0 60px}.home-intro-section,.home-intro-section p,.content-section p{max-width:656px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.001ms!important}.hero-bg,.hero-banner-bg,.project-section:hover,.entry-photo-button:hover,.entry-gallery-video:hover,.entry-lightbox-close:hover,.entry-lightbox-nav:hover{transform:none!important}}
