/* Shared site layer — keeps the original monochrome editorial art direction. */
:root {
  --paper: #dadada;
  --ink: #111;
  --white: #f4f4f4;
  --muted: #858585;
  --hairline: rgba(255,255,255,.16);
  --glass: linear-gradient(135deg, rgba(255,255,255,.20), rgba(255,255,255,.055));
}
html { scroll-padding-top: 104px; }
a:focus-visible, button:focus-visible { outline: 2px solid currentColor; outline-offset: 4px; }

/* Homepage additions */
.work-preview {
  padding: 0 69rem 140rem;
  background: #000;
  color: var(--white);
}
.work-preview-inner { max-width: 1302rem; margin: 0 auto; }
.work-preview-top { display:flex; align-items:flex-end; justify-content:space-between; gap:30rem; margin:0 0 32rem; }
.section-kicker { display:block; color:#858585; font-size:12rem; letter-spacing:.12em; font-weight:600; margin-bottom:12rem; }
.work-preview-title { margin:0; max-width:720rem; font-family:var(--archivo); font-size:66rem; line-height:.94; letter-spacing:-.065em; font-weight:570; }
.text-link { display:inline-flex; align-items:center; gap:10rem; padding:12rem 0; color:#f4f4f4; font-size:13rem; font-weight:550; border-bottom:1px solid rgba(255,255,255,.35); white-space:nowrap; }
.text-link .ui-icon { width:15rem; height:15rem; transition:transform .18s ease; }
.text-link:hover .ui-icon { transform:translate(2rem,-2rem); }
.work-grid { display:grid; grid-template-columns:1fr 1fr; gap:14rem; }
.work-card { min-width:0; display:flex; flex-direction:column; color:#f4f4f4; border:1px solid rgba(255,255,255,.14); border-radius:10rem; overflow:hidden; background:#0b0b0b; transition:transform .24s ease,border-color .24s ease; }
.work-card:hover { transform:translateY(-4rem); border-color:rgba(255,255,255,.38); }
.work-card-visual { height:330rem; overflow:hidden; position:relative; background:#1a1a1a; }
.work-card-visual img { display:block; width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.work-card:hover .work-card-visual img { transform:scale(1.035); }
.work-card-visual::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(0,0,0,.04),transparent 42%,rgba(0,0,0,.28)); pointer-events:none; }
.work-card-badge { position:absolute; z-index:1; top:16rem; left:16rem; border:1px solid rgba(255,255,255,.34); border-radius:999rem; padding:8rem 12rem; background:rgba(12,12,12,.36); color:#fff; font-size:10rem; letter-spacing:.08em; backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); }
.work-card-bottom { display:flex; justify-content:space-between; align-items:flex-end; gap:20rem; padding:22rem 22rem 24rem; }
.work-card-type { color:#929292; font-size:11rem; letter-spacing:.08em; text-transform:uppercase; }
.work-card-title { margin:8rem 0 7rem; font-family:var(--archivo); font-size:35rem; line-height:1; letter-spacing:-.055em; font-weight:580; }
.work-card-description { max-width:470rem; margin:0; color:#a7a7a7; font-size:13rem; line-height:1.5; }
.round-link { width:42rem; height:42rem; flex:0 0 auto; display:grid; place-items:center; border:1px solid rgba(255,255,255,.3); border-radius:50%; background:var(--glass); box-shadow:inset 0 1px 0 rgba(255,255,255,.17); }
.round-link .ui-icon { width:17rem; height:17rem; }
.home-footer { background:#000; padding:0 69rem 50rem; }
.home-footer .site-footer-inner { max-width:1302rem; margin:auto; }

/* Internal pages */
.subpage { min-height:100vh; background:#000; color:var(--white); overflow-x:hidden; }
.site-header-wrap { position:sticky; z-index:30; top:14rem; padding:14rem 4.8vw 0; pointer-events:none; }
.site-header { max-width:1326rem; min-height:60rem; margin:0 auto; padding:5rem 6rem 5rem 8rem; display:flex; align-items:center; justify-content:space-between; gap:20rem; pointer-events:auto; border:1px solid rgba(255,255,255,.18); border-radius:999rem; background:linear-gradient(135deg,rgba(255,255,255,.17),rgba(255,255,255,.055)); box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 12rem 34rem rgba(0,0,0,.16); backdrop-filter:blur(16px) saturate(125%); -webkit-backdrop-filter:blur(16px) saturate(125%); }
.site-wordmark { display:flex; align-items:center; gap:10rem; min-width:180rem; font-family:var(--archivo); font-size:17rem; font-weight:680; letter-spacing:-.035em; }
.site-mark { width:25rem; height:25rem; display:block; }
.site-nav-pill { position:relative; display:flex; align-items:center; gap:2rem; padding:4rem; border:1px solid rgba(255,255,255,.13); border-radius:999rem; background:rgba(255,255,255,.07); isolation:isolate; }
.site-nav-indicator { position:absolute; z-index:-1; top:4rem; left:4rem; height:36rem; width:70rem; border-radius:999rem; background:#f4f4f4; transition:transform .28s cubic-bezier(.2,.75,.25,1),width .28s cubic-bezier(.2,.75,.25,1); }
.site-nav-link { min-width:70rem; height:36rem; display:flex; align-items:center; justify-content:center; padding:0 12rem; border-radius:999rem; color:#c5c5c5; font-size:12rem; font-weight:550; transition:color .2s ease; white-space:nowrap; }
.site-nav-link.is-active { color:#111; }
.site-header-cta,.glass-button { position:relative; display:inline-flex; align-items:center; justify-content:center; gap:10rem; min-height:42rem; padding:0 18rem; border:1px solid rgba(255,255,255,.32); border-radius:999rem; color:#fff; background:linear-gradient(135deg,rgba(255,255,255,.19),rgba(255,255,255,.055)); box-shadow:inset 0 1px 0 rgba(255,255,255,.24),0 6rem 20rem rgba(0,0,0,.16); backdrop-filter:blur(12px) saturate(130%); -webkit-backdrop-filter:blur(12px) saturate(130%); font-size:12rem; font-weight:560; transition:transform .18s ease,border-color .18s ease,background .18s ease; }
.site-header-cta::before,.glass-button::before { content:""; position:absolute; inset:1px 1px auto; height:48%; border-radius:inherit; background:linear-gradient(180deg,rgba(255,255,255,.18),transparent); pointer-events:none; }
.site-header-cta:hover,.glass-button:hover { transform:translateY(-2rem); border-color:rgba(255,255,255,.55); background:linear-gradient(135deg,rgba(255,255,255,.26),rgba(255,255,255,.08)); }
.site-header-cta .ui-icon,.glass-button .ui-icon { width:15rem; height:15rem; position:relative; }
.page-main { width:100%; }
.page-wrap { width:calc(100% - 9.6vw); max-width:1302rem; margin:0 auto; }
.page-hero { padding:112rem 0 74rem; border-bottom:1px solid rgba(255,255,255,.13); }
.page-kicker { display:flex; align-items:center; gap:10rem; color:#929292; font-size:11rem; font-weight:600; letter-spacing:.13em; text-transform:uppercase; }
.page-kicker::before { content:""; width:7rem; height:7rem; border-radius:50%; background:#f4f4f4; }
.page-title { max-width:1060rem; margin:22rem 0 20rem; font-family:var(--archivo); font-size:clamp(58rem,8vw,124rem); font-weight:560; line-height:.89; letter-spacing:-.07em; }
.page-title em { color:#777; font-style:normal; }
.page-lede { max-width:620rem; margin:0; color:#aaa; font-size:16rem; line-height:1.55; letter-spacing:-.02em; }
.page-meta-row { display:flex; flex-wrap:wrap; gap:10rem 28rem; margin-top:34rem; color:#949494; font-size:11rem; letter-spacing:.06em; text-transform:uppercase; }
.page-meta-row span { display:inline-flex; align-items:center; gap:8rem; }
.page-meta-row span::before { content:""; width:4rem; height:4rem; border-radius:50%; background:#777; }
.content-section { padding:78rem 0; border-bottom:1px solid rgba(255,255,255,.13); }
.content-section-head { display:grid; grid-template-columns:.55fr 1.45fr; gap:40rem; margin-bottom:32rem; }
.content-section-label { color:#888; font-size:11rem; letter-spacing:.12em; text-transform:uppercase; }
.content-section-title { max-width:720rem; margin:0; font-family:var(--archivo); font-size:49rem; font-weight:530; line-height:.99; letter-spacing:-.055em; }
.content-section-copy { max-width:650rem; margin:15rem 0 0; color:#aaa; font-size:14rem; line-height:1.65; }
.project-list { display:grid; grid-template-columns:1fr 1fr; gap:16rem; padding:68rem 0 110rem; }
.project-list-card { display:flex; min-width:0; flex-direction:column; border:1px solid rgba(255,255,255,.15); border-radius:10rem; overflow:hidden; background:#0b0b0b; transition:transform .2s ease,border-color .2s ease; }
.project-list-card:hover { transform:translateY(-4rem); border-color:rgba(255,255,255,.42); }
.project-list-image { height:400rem; position:relative; overflow:hidden; background:#1c1c1c; }
.project-list-image img { width:100%; height:100%; display:block; object-fit:cover; transition:transform .45s ease; }
.project-list-card:hover .project-list-image img { transform:scale(1.035); }
.project-list-image::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(0,0,0,.05),transparent 50%,rgba(0,0,0,.35)); }
.project-list-index { position:absolute; z-index:1; top:16rem; left:16rem; padding:8rem 11rem; border:1px solid rgba(255,255,255,.35); border-radius:999rem; background:rgba(0,0,0,.35); color:#fff; font-size:10rem; letter-spacing:.1em; }
.project-list-body { padding:22rem; }
.project-list-meta { color:#888; font-size:10rem; letter-spacing:.1em; text-transform:uppercase; }
.project-list-title { margin:9rem 0; font-family:var(--archivo); font-size:38rem; font-weight:560; line-height:1; letter-spacing:-.06em; }
.project-list-copy { max-width:510rem; margin:0; color:#a7a7a7; font-size:13rem; line-height:1.55; }
.project-list-link { display:inline-flex; align-items:center; gap:9rem; margin-top:21rem; font-size:12rem; font-weight:560; }
.project-list-link .ui-icon { width:15rem; height:15rem; }
.detail-hero { padding:82rem 0 44rem; }
.detail-image { height:470rem; margin:0 0 26rem; overflow:hidden; border-radius:9rem; background:#191919; }
.detail-image img { width:100%; height:100%; display:block; object-fit:cover; }
.detail-image-caption { display:flex; justify-content:space-between; gap:20rem; color:#858585; font-size:10rem; letter-spacing:.08em; text-transform:uppercase; }
.detail-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:12rem; margin-top:35rem; }
.detail-meta-card { min-height:116rem; padding:18rem; border:1px solid rgba(255,255,255,.15); border-radius:8rem; background:linear-gradient(145deg,rgba(255,255,255,.075),rgba(255,255,255,.02)); }
.detail-meta-card span { display:block; color:#818181; font-size:10rem; letter-spacing:.1em; text-transform:uppercase; }
.detail-meta-card strong { display:block; margin-top:17rem; color:#eee; font-family:var(--archivo); font-size:24rem; line-height:1.08; font-weight:550; }
.case-copy { max-width:760rem; margin-left:auto; color:#aaa; font-size:15rem; line-height:1.72; }
.case-copy p { margin:0 0 17rem; }
.case-bullets { display:grid; grid-template-columns:repeat(2,1fr); gap:1px; margin:30rem 0 0; border:1px solid rgba(255,255,255,.14); background:rgba(255,255,255,.14); }
.case-bullet { min-height:110rem; padding:20rem; background:#050505; }
.case-bullet strong { display:block; margin-bottom:9rem; color:#f4f4f4; font-size:14rem; font-weight:600; }
.case-bullet span { display:block; color:#929292; font-size:12rem; line-height:1.5; }
.service-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:12rem; padding:68rem 0 110rem; }
.service-card { min-height:240rem; padding:25rem; border:1px solid rgba(255,255,255,.15); border-radius:9rem; background:linear-gradient(145deg,rgba(255,255,255,.075),rgba(255,255,255,.015)); }
.service-number { color:#777; font-family:var(--archivo); font-size:13rem; }
.service-icon { display:grid; place-items:center; width:38rem; height:38rem; margin:25rem 0 18rem; border:1px solid rgba(255,255,255,.2); border-radius:50%; color:#eee; background:var(--glass); }
.service-icon .ui-icon { width:17rem; height:17rem; }
.service-title { margin:0 0 10rem; font-family:var(--archivo); font-size:31rem; font-weight:560; line-height:1; letter-spacing:-.05em; }
.service-copy { max-width:410rem; margin:0; color:#999; font-size:13rem; line-height:1.55; }
.about-layout { display:grid; grid-template-columns:.85fr 1.15fr; align-items:start; gap:70rem; padding:72rem 0 110rem; }
.about-portrait { position:sticky; top:105rem; min-height:470rem; overflow:hidden; border-radius:8rem; background:#777f85; }
.about-portrait img { width:100%; height:100%; min-height:470rem; display:block; object-fit:cover; object-position:center; }
.about-copy-large { margin:0 0 27rem; color:#eee; font-family:var(--archivo); font-size:40rem; line-height:1.04; letter-spacing:-.05em; }
.about-paragraph { margin:0 0 17rem; color:#a5a5a5; font-size:14rem; line-height:1.68; }
.timeline { margin-top:42rem; border-top:1px solid rgba(255,255,255,.18); }
.timeline-item { display:grid; grid-template-columns:150rem 1fr; gap:20rem; padding:20rem 0; border-bottom:1px solid rgba(255,255,255,.14); }
.timeline-date { color:#868686; font-size:11rem; letter-spacing:.07em; }
.timeline-title { margin:0 0 6rem; font-size:15rem; font-weight:600; }
.timeline-description { margin:0; color:#979797; font-size:12rem; line-height:1.5; }
.contact-layout { display:grid; grid-template-columns:1.1fr .9fr; gap:65rem; padding:75rem 0 110rem; }
.contact-big-link { display:inline-flex; align-items:center; gap:12rem; margin-top:30rem; padding-bottom:12rem; border-bottom:1px solid rgba(255,255,255,.42); font-family:var(--archivo); font-size:clamp(24rem,3.6vw,48rem); letter-spacing:-.04em; }
.contact-big-link .ui-icon { width:22rem; height:22rem; }
.contact-side { padding:24rem; border:1px solid rgba(255,255,255,.16); border-radius:10rem; background:linear-gradient(145deg,rgba(255,255,255,.07),rgba(255,255,255,.02)); }
.contact-side h2 { margin:0 0 22rem; font-family:var(--archivo); font-size:28rem; font-weight:550; letter-spacing:-.04em; }
.contact-row { display:flex; align-items:center; gap:13rem; padding:14rem 0; border-top:1px solid rgba(255,255,255,.13); color:#ccc; font-size:13rem; }
.contact-row .ui-icon { width:17rem; height:17rem; color:#888; }
.contact-row span { color:#777; margin-left:auto; font-size:10rem; text-transform:uppercase; letter-spacing:.08em; }
.site-footer { padding:0 4.8vw 30rem; background:#000; }
.site-footer-inner { max-width:1302rem; margin:0 auto; padding:26rem 0 0; border-top:1px solid rgba(255,255,255,.16); }
.site-footer-top { display:flex; justify-content:space-between; align-items:flex-start; gap:35rem; }
.footer-brand { font-family:var(--archivo); font-size:22rem; font-weight:650; letter-spacing:-.04em; }
.footer-note { max-width:280rem; margin:9rem 0 0; color:#818181; font-size:11rem; line-height:1.5; }
.footer-nav { display:flex; flex-wrap:wrap; gap:12rem 22rem; color:#aaa; font-size:12rem; }
.footer-nav a:hover { color:#fff; }
.footer-bottom { display:flex; justify-content:space-between; gap:20rem; margin-top:42rem; color:#6f6f6f; font-size:10rem; letter-spacing:.06em; text-transform:uppercase; }
.footer-socials { display:flex; gap:9rem; }
.footer-socials a { width:28rem; height:28rem; display:grid; place-items:center; border:1px solid rgba(255,255,255,.16); border-radius:50%; color:#ccc; background:var(--glass); }
.footer-socials .ui-icon { width:13rem; height:13rem; }
.page-end-cta { display:flex; justify-content:space-between; align-items:center; gap:25rem; margin:0 0 80rem; padding:30rem; border:1px solid rgba(255,255,255,.18); border-radius:10rem; background:linear-gradient(120deg,rgba(255,255,255,.09),rgba(255,255,255,.02)); }
.page-end-cta h2 { margin:0; font-family:var(--archivo); font-size:35rem; font-weight:540; letter-spacing:-.055em; }
.page-end-cta p { margin:8rem 0 0; color:#999; font-size:12rem; }

/* Small screens: one-column editorial layout, no horizontal overflow. */
@media (max-width:1100px) and (min-width:761px) {
  .site-wordmark { min-width:130rem; }
  .site-nav-link { min-width:60rem; padding:0 8rem; }
  .site-header { gap:10rem; }
  .page-wrap { width:calc(100% - 60rem); }
  .project-list-image { height:330rem; }
  .detail-image { height:380rem; }
}
@media (max-width:760px) {
  html { font-size:.2564102564vw; scroll-padding-top:80px; }
  .work-preview { padding:0 14rem 75rem; }
  .work-preview-top { align-items:flex-start; flex-direction:column; gap:10rem; margin-bottom:20rem; }
  .work-preview-title { font-size:43rem; }
  .work-grid { grid-template-columns:1fr; gap:12rem; }
  .work-card-visual { height:245rem; }
  .work-card-bottom { padding:17rem; }
  .work-card-title { font-size:30rem; }
  .work-card-description { font-size:12rem; }
  .home-footer { padding:0 14rem 28rem; }
  .site-header-wrap { position:relative; top:auto; padding:12rem 12rem 0; }
  .site-header { min-height:52rem; padding:4rem; gap:7rem; }
  .site-wordmark { min-width:0; gap:6rem; font-size:0; }
  .site-mark { width:24rem; height:24rem; }
  .site-nav-pill { flex:1; min-width:0; gap:0; padding:3rem; }
  .site-nav-indicator { top:3rem; height:32rem; }
  .site-nav-link { min-width:0; flex:1; height:32rem; padding:0 3rem; font-size:9.5rem; }
  .site-header-cta { width:36rem; min-width:36rem; min-height:36rem; padding:0; gap:0; font-size:0; }
  .site-header-cta .ui-icon { width:15rem; height:15rem; }
  .page-wrap { width:calc(100% - 34rem); }
  .page-hero { padding:76rem 0 44rem; }
  .page-title { font-size:58rem; margin:18rem 0 16rem; }
  .page-lede { font-size:14rem; }
  .page-meta-row { margin-top:24rem; gap:10rem 16rem; font-size:9rem; }
  .content-section { padding:48rem 0; }
  .content-section-head { grid-template-columns:1fr; gap:15rem; margin-bottom:22rem; }
  .content-section-title { font-size:36rem; }
  .content-section-copy { font-size:13rem; }
  .project-list { grid-template-columns:1fr; gap:12rem; padding:42rem 0 70rem; }
  .project-list-image { height:260rem; }
  .project-list-title { font-size:32rem; }
  .detail-hero { padding:48rem 0 28rem; }
  .detail-image { height:265rem; margin-bottom:18rem; }
  .detail-image-caption { font-size:8rem; }
  .detail-grid { grid-template-columns:1fr 1fr; gap:8rem; margin-top:22rem; }
  .detail-meta-card { min-height:90rem; padding:13rem; }
  .detail-meta-card strong { font-size:19rem; margin-top:12rem; }
  .case-copy { font-size:13rem; }
  .case-bullets { grid-template-columns:1fr; }
  .case-bullet { min-height:0; padding:16rem; }
  .service-grid { grid-template-columns:1fr; gap:9rem; padding:42rem 0 70rem; }
  .service-card { min-height:190rem; padding:20rem; }
  .service-icon { margin:19rem 0 14rem; }
  .about-layout { grid-template-columns:1fr; gap:28rem; padding:42rem 0 70rem; }
  .about-portrait { position:relative; top:auto; min-height:320rem; height:320rem; }
  .about-portrait img { min-height:320rem; }
  .about-copy-large { font-size:32rem; }
  .timeline { margin-top:28rem; }
  .timeline-item { grid-template-columns:86rem 1fr; gap:12rem; padding:15rem 0; }
  .contact-layout { grid-template-columns:1fr; gap:35rem; padding:45rem 0 72rem; }
  .contact-big-link { font-size:26rem; margin-top:20rem; }
  .contact-side { padding:19rem; }
  .site-footer { padding:0 17rem 24rem; }
  .site-footer-top { flex-direction:column; gap:24rem; }
  .footer-nav { gap:12rem 17rem; font-size:11rem; }
  .footer-bottom { align-items:flex-start; flex-direction:column; margin-top:26rem; }
  .page-end-cta { align-items:flex-start; flex-direction:column; margin-bottom:54rem; padding:21rem; }
  .page-end-cta h2 { font-size:29rem; }
}
@media (max-width:360px) {
  .site-nav-link { font-size:8.5rem; }
  .page-title { font-size:52rem; }
  .work-card-visual { height:220rem; }
}

/* Conserve memory/battery on constrained devices. */
.low-memory .site-header,
.low-memory .site-header-cta,
.low-memory .glass-button,
.low-memory .work-card-badge,
.low-memory .footer-socials a { backdrop-filter:none !important; -webkit-backdrop-filter:none !important; }
.low-memory .site-header { background:linear-gradient(135deg,rgba(36,36,36,.96),rgba(10,10,10,.92)); }
.low-memory .site-header-cta,.low-memory .glass-button { background:linear-gradient(135deg,#303030,#151515); }
.low-memory .work-card,.low-memory .project-list-card,.low-memory .trust-card { transition-duration:.12s; }
.low-memory .work-card-visual img,.low-memory .project-list-image img { transition:none; }
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto !important; }
  *,*::before,*::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
}
/* Five-item homepage navigation sizing. */
.portfolio-home .nav-pill { min-width:425rem; }
.portfolio-home .nav-link { min-width:0; flex:1 1 0; padding:0 8rem; }
.portfolio-home .nav-indicator { width:76rem; }
@media (max-width:760px) {
  .portfolio-home .nav-pill { min-width:0; width:auto; flex:1; margin-right:8rem; }
  .portfolio-home .nav-link { min-width:0; flex:1 1 0; padding:0 3rem; font-size:9rem; }
  .portfolio-home .nav-indicator { height:34rem; }
}

/* Project screenshots */
.detail-image.is-shot { height:auto; display:flex; justify-content:center; align-items:center; padding:28rem; background:#101010; border:1px solid rgba(255,255,255,.12); }
.detail-image.is-shot img { width:auto; height:auto; max-width:100%; max-height:760rem; display:block; object-fit:contain; border-radius:6rem; }
.project-list-image img { object-position:center top; }
.project-list-status { display:inline-block; margin-left:10rem; padding:3rem 8rem; border:1px solid rgba(255,255,255,.28); border-radius:999rem; color:#d8d8d8; font-size:9rem; letter-spacing:.1em; text-transform:uppercase; vertical-align:middle; }
@media (max-width:760px) {
  .detail-image.is-shot { height:auto; padding:10rem; }
  .detail-image.is-shot img { max-height:620rem; }
}


html{font-size:min(.0694444444vw,1.333px);background:#000;scroll-behavior:smooth}body{margin:0;min-width:320px;background:#000;color:#f4f4f4;font-family:"Inter Tight",Arial,sans-serif;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}a{color:inherit;text-decoration:none}.ui-icon{width:16rem;height:16rem;display:inline-block;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle}.svg-defs{position:absolute;width:0;height:0;overflow:hidden}@media(max-width:760px){html{font-size:.2564102564vw}}