:root{--bg:#191927;--panel:#222334;--panel2:#292b3e;--ink:#f5f7fb;--muted:#a7adbb;--line:#37394d;--accent:#00bcd4;--accent2:#42d7e9;--sidebar:220px;--radius:3px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.6 "Segoe UI",Arial,sans-serif}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar);padding:35px 28px;background:#151521;border-right:1px solid #242536;z-index:20;display:flex;flex-direction:column;align-items:center}.brand img{width:104px;height:auto;filter:drop-shadow(0 8px 24px #0008)}nav{width:100%;margin-top:52px}nav a{display:block;padding:13px 6px;color:#a6abb8;text-transform:uppercase;letter-spacing:.13em;font-size:.78rem;font-weight:700;border-bottom:1px solid #272838;transition:.2s}nav a:hover,nav a.active{color:#fff;padding-left:14px;border-color:var(--accent)}.socials{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:auto;width:100%}.socials a{display:grid;place-items:center;height:34px;border:1px solid #333548;color:#8f96a6;font-size:.68rem;font-weight:800;transition:.2s}.socials a:hover{border-color:var(--accent);color:var(--accent)}main{margin-left:var(--sidebar);min-height:100vh}.featured{position:relative;height:min(74vh,780px);min-height:550px;overflow:hidden}.featured>img{width:100%;height:100%;object-fit:cover;object-position:center 48%}.featured-shade{position:absolute;inset:0;background:linear-gradient(90deg,#0e0f19e8 0%,#11121ea0 42%,#12131f25 75%),linear-gradient(0deg,var(--bg) 0%,transparent 42%)}.featured-copy{position:absolute;left:7vw;bottom:10%;max-width:650px}.eyebrow{text-transform:uppercase;color:var(--accent);font-size:.72rem;letter-spacing:.2em;font-weight:800;margin:0 0 12px}.featured h1{font-size:clamp(3rem,7vw,6.8rem);line-height:.92;text-transform:uppercase;letter-spacing:.015em;margin:0;max-width:9ch;text-shadow:0 5px 35px #000}.featured-copy>p:not(.eyebrow){max-width:560px;color:#c4c8d1;font-size:1.06rem}.button{display:inline-flex;gap:14px;align-items:center;margin-top:18px;background:var(--accent);color:#11121b;padding:14px 20px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;font-size:.72rem;transition:.2s}.button:hover{background:var(--accent2);transform:translateY(-2px)}.portfolio-section{padding:70px clamp(24px,6vw,86px) 100px}.section-head{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:28px}.section-head h2{font-size:clamp(2.2rem,4vw,4rem);line-height:1;margin:0;text-transform:uppercase;letter-spacing:.02em}.search{display:flex;align-items:center;gap:10px;border:1px solid var(--line);background:var(--panel);padding:0 15px;height:44px;min-width:240px}.search span{font-size:1.4rem;color:var(--muted)}.search input{border:0;outline:0;background:transparent;color:#fff;width:100%;font:inherit}.search input::placeholder{color:#7f8595}.filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:30px}.filter{border:1px solid var(--line);background:transparent;color:var(--muted);padding:9px 14px;cursor:pointer;text-transform:uppercase;letter-spacing:.08em;font-size:.68rem;font-weight:800}.filter:hover,.filter.active{background:var(--accent);border-color:var(--accent);color:#10111a}.portfolio-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:start}.project{position:relative;min-height:260px;overflow:hidden;background:var(--panel);cursor:pointer;border:0;padding:0;color:inherit;text-align:left}.project:nth-child(6n+1),.project:nth-child(6n+5){grid-row:span 2;min-height:534px}.project img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .55s ease,filter .35s}.project::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#10111bef 0%,#10111b30 58%,transparent);transition:.3s}.project-copy{position:absolute;z-index:2;inset:auto 22px 19px}.project h3{font-size:1.02rem;margin:0;text-transform:uppercase;letter-spacing:.035em}.project p{margin:3px 0 0;color:#aeb3c0;font-size:.76rem;text-transform:uppercase;letter-spacing:.1em}.project:hover img{transform:scale(1.06);filter:saturate(1.15)}.project:hover::after{background:linear-gradient(0deg,#10111b 0%,#10111b33 75%,transparent)}.project[hidden]{display:none}.no-results{color:var(--muted);padding:50px 0;text-align:center}footer{border-top:1px solid var(--line);padding:30px clamp(24px,6vw,86px);display:flex;justify-content:space-between;color:#818797;font-size:.82rem}footer a{color:#fff;font-weight:700}.project-dialog{width:min(920px,92vw);padding:0;background:var(--panel);color:#fff;border:1px solid var(--line);box-shadow:0 30px 100px #000b}.project-dialog::backdrop{background:#0d0e16d9;backdrop-filter:blur(5px)}.dialog-close{position:absolute;right:12px;top:10px;z-index:3;border:0;background:#10111dcc;color:#fff;width:38px;height:38px;font-size:1.7rem;cursor:pointer}.dialog-image{width:100%;max-height:55vh;object-fit:cover;background:#10111b}.dialog-copy{padding:28px 32px 34px}.dialog-copy h2{margin:0;font-size:2rem;text-transform:uppercase}.dialog-description{color:#b5bac5;max-width:70ch}.menu-toggle{display:none}.page-shell{padding:80px clamp(24px,7vw,100px);min-height:100vh}.page-title{font-size:clamp(3rem,7vw,7rem);text-transform:uppercase;line-height:.9;margin:8px 0 55px}.split{display:grid;grid-template-columns:minmax(260px,.8fr) 1.2fr;gap:clamp(36px,8vw,120px);align-items:center}.portrait{max-height:680px;width:100%;object-fit:cover}.lead{font-size:clamp(1.35rem,2.5vw,2rem);line-height:1.35}.muted{color:var(--muted)}.skills{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:35px}.skill{background:var(--panel);padding:18px;border-left:3px solid var(--accent)}.services-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.service-card{border:1px solid var(--line);padding:34px;background:var(--panel)}.service-card h2{text-transform:uppercase}.tag-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:25px}.tag{border:1px solid var(--line);padding:6px 10px;color:var(--muted);font-size:.78rem}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.contact-card{background:var(--panel);padding:30px;border-top:3px solid var(--accent)}.contact-card h2{margin:0 0 10px;text-transform:uppercase}.testimonials{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:55px}.quote{padding:25px;background:var(--panel);border:1px solid var(--line)}.quote p{color:#c5c9d2}.quote strong{display:block;color:var(--accent);text-transform:uppercase;font-size:.72rem;letter-spacing:.1em}
@media(max-width:1050px){:root{--sidebar:0px}.sidebar{transform:translateX(-100%);width:240px;transition:.25s}.sidebar.open{transform:none}.menu-toggle{display:grid;position:fixed;left:14px;top:14px;z-index:40;width:44px;height:44px;background:#151521;border:1px solid #35374a;padding:10px;place-content:center;gap:5px}.menu-toggle span{display:block;width:22px;height:2px;background:#fff}.featured-copy{left:7vw}.portfolio-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.project:nth-child(6n+1),.project:nth-child(6n+5){min-height:480px}.page-shell{padding-top:90px}}@media(max-width:680px){.featured{min-height:600px;height:80vh}.featured-shade{background:linear-gradient(0deg,var(--bg) 0%,#11121e88 65%,#11121e33)}.featured-copy{left:24px;right:24px;bottom:9%}.featured h1{font-size:3.2rem}.portfolio-section{padding-left:16px;padding-right:16px}.section-head{align-items:stretch;flex-direction:column}.search{min-width:0}.portfolio-grid{grid-template-columns:1fr;gap:10px}.project,.project:nth-child(6n+1),.project:nth-child(6n+5){min-height:330px;grid-row:auto}.split,.services-grid,.contact-grid,.testimonials{grid-template-columns:1fr}.page-shell{padding-left:20px;padding-right:20px}.skills{grid-template-columns:1fr}footer{flex-direction:column;gap:10px}.dialog-copy{padding:24px 20px}}
.steam-widget-wrap{padding:28px clamp(24px,6vw,86px) 0}.steam-widget{display:block;width:100%;height:190px;border:0;background:#222734}.socials{grid-template-columns:repeat(4,1fr)}.socials a svg{width:17px;height:17px;fill:currentColor}.project.review-card{background:linear-gradient(145deg,#27293d,#191a28);border:1px solid var(--line)}.project.review-card::before{content:'“';position:absolute;right:18px;top:-18px;color:#ffffff10;font:900 9rem/1 Georgia,serif}.project.review-card img{opacity:.15;filter:grayscale(1)}.dialog-media{background:#10111b}.dialog-videos[hidden]{display:none}.dialog-video-item{position:relative;border-bottom:1px solid var(--line)}.dialog-video{display:block;width:100%;aspect-ratio:16/9;border:0}.video-link{display:block;padding:12px 18px;color:var(--accent);font-weight:800;font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;background:#171824}.direct-video{border-bottom:1px solid var(--line)}.dialog-gallery{position:relative}.dialog-gallery[hidden]{display:none}.dialog-image{max-height:62vh}.gallery-prev,.gallery-next{position:absolute;top:50%;transform:translateY(-50%);width:42px;height:52px;border:0;background:#10111bc7;color:#fff;font-size:2rem;cursor:pointer}.gallery-prev{left:10px}.gallery-next{right:10px}.dialog-gallery.single .gallery-prev,.dialog-gallery.single .gallery-next{display:none}.dialog-description{white-space:pre-line}.dialog-pdf[hidden]{display:none}
.page-shell{width:100%;max-width:1780px;margin-inline:auto}.portfolio-section,.steam-widget-wrap,footer{width:100%;max-width:2200px;margin-inline:auto}body{overflow-x:hidden}.about-split{align-items:start}.portrait-frame{margin:0;width:100%;max-width:640px}.portrait{width:100%;height:auto;max-height:none;object-fit:contain;aspect-ratio:auto}.about-copy{min-width:0}.signature{width:min(240px,60%);height:auto;margin:28px 0 8px}.service-gallery{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;margin:-20px 0 46px}.service-gallery img{width:100%;aspect-ratio:1;object-fit:cover}.section-title{font-size:clamp(2.4rem,4vw,4.5rem);line-height:1;text-transform:uppercase;margin:0}.faq-section,.review-section{margin-top:90px}.faq-list{border-top:1px solid var(--line);margin-top:30px}.faq-item{border-bottom:1px solid var(--line)}.faq-item summary{list-style:none;cursor:pointer;padding:24px 52px 24px 0;font-weight:800;font-size:clamp(1rem,1.25vw,1.25rem);position:relative}.faq-item summary::-webkit-details-marker{display:none}.faq-item summary::after{content:'+';position:absolute;right:10px;color:var(--accent);font-size:1.6rem;top:17px}.faq-item[open] summary::after{content:'−'}.faq-answer{color:var(--muted);max-width:78ch;padding:0 52px 25px 0}.review-heading{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:30px}.review-count{color:var(--muted);white-space:nowrap}.review-count strong{font-size:2rem;color:var(--accent)}.review-carousel{display:grid;grid-template-columns:46px minmax(0,1fr) 46px;align-items:center;gap:14px}.review-viewport{overflow:hidden}.review-track{display:flex;transition:transform .45s ease}.review-slide{min-width:calc(33.333% - 10px);margin-right:15px;padding:28px;background:var(--panel);border:1px solid var(--line);min-height:260px;display:flex;flex-direction:column}.review-stars{color:#ffd052;letter-spacing:.12em}.review-slide blockquote{margin:18px 0 24px;color:#d2d5dc;flex:1}.review-slide strong{color:var(--accent);text-transform:uppercase;font-size:.75rem;letter-spacing:.08em}.review-slide small{display:block;color:var(--muted)}.review-arrow{height:58px;border:1px solid var(--line);background:var(--panel);color:#fff;font-size:2rem;cursor:pointer}.review-arrow:hover{border-color:var(--accent);color:var(--accent)}.review-dots{display:flex;justify-content:center;gap:7px;margin-top:22px}.review-dots button{width:8px;height:8px;padding:0;border:0;border-radius:50%;background:#515469;cursor:pointer}.review-dots button.active{background:var(--accent)}
@media(min-width:2200px){body{font-size:18px}.sidebar{width:260px}:root{--sidebar:260px}.page-shell{padding-left:120px;padding-right:120px}.featured-copy{left:max(8vw,160px)}.portfolio-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.project,.project:nth-child(6n+1),.project:nth-child(6n+5){min-height:360px;grid-row:auto}.featured-copy,.about-copy,.service-card,.contact-card,.faq-section,.review-section{visibility:visible;opacity:1}}
@media(max-width:900px){.service-gallery{grid-template-columns:repeat(4,1fr)}.review-slide{min-width:calc(50% - 8px)}}
@media(max-width:680px){.service-gallery{grid-template-columns:repeat(3,1fr);margin-top:0}.review-heading{align-items:start;flex-direction:column}.review-carousel{grid-template-columns:1fr}.review-arrow{position:absolute;z-index:2;width:42px;margin-top:210px}.review-next{right:20px}.review-prev{left:20px}.review-slide{min-width:100%;margin-right:0;min-height:290px}.faq-section,.review-section{margin-top:65px}.faq-item summary{padding-right:40px}.faq-answer{padding-right:0}.page-title{overflow-wrap:anywhere}}

/* Preserve each portfolio image's full aspect ratio inside the popup. */
.dialog-gallery{display:grid;place-items:center;background:#10111b}
.dialog-image{width:auto;max-width:100%;height:auto;max-height:62vh;object-fit:contain}
