/* [WP-BOT] North Tyne Sites style copies – shared structure. Each style sets the tokens and its own detailing in style.css. */
:root{--max:1200px;--gutter:28px;--sec-y:112px;--header-h:72px;
  --s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px;--s7:48px;--s8:64px;--s9:96px}
html{background:var(--bg);scroll-padding-top:calc(var(--header-h) + 12px)}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
body{background:var(--bg);color:var(--text);font-family:var(--body);font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}
h1,h2,h3,h4,.wp-block-heading{font-family:var(--display);color:var(--text);line-height:1.05;text-wrap:balance}
p{text-wrap:pretty}
a{color:var(--accent-text);text-underline-offset:3px;text-decoration-thickness:1px}
a:hover{color:var(--text)}
::selection{background:var(--accent);color:var(--on-accent,#fff)}
:focus-visible{outline:2px solid var(--focus);outline-offset:3px;border-radius:var(--focus-radius,4px)}
img{max-width:100%;height:auto}
.screen-reader-text{border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute !important;width:1px;word-wrap:normal !important}

/* template spacing */
.wp-site-blocks{min-height:100vh;display:flex;flex-direction:column;padding:0 !important}
.wp-site-blocks > main{flex:1}
main.wp-block-group{margin:0 !important;padding:0 !important}
main.wp-block-group > .wp-block-group{padding:0 !important;margin:0 !important}
main .wp-block-post-title{display:none}
main .entry-content,.wp-block-post-content{margin:0 !important}
.wp-block-post-content > *{margin-block:0 !important}
:where(.wp-site-blocks) > *{margin-block-start:0}
.ntsf-footer{margin-top:0 !important}
.wp-block-post-content > .wp-block-block{max-width:none !important;margin:0 !important}

/* header */
.ntsf-header{position:sticky;top:0;z-index:100;padding:12px var(--gutter)}
.ntsf-header-inner{max-width:var(--max);margin:0 auto;width:100%;gap:20px;min-height:48px}
.ntsf-logo{display:block;line-height:0}
.ntsf-logo img{display:block;height:44px;width:auto}
.ntsf-header-right{gap:28px !important}
.ntsf-nav{font-size:15px;gap:26px !important}
.ntsf-nav a{text-decoration:none}
.ntsf-nav .is-menu-open .wp-block-navigation__responsive-container-content,.ntsf-nav .is-menu-open .wp-block-navigation__container{align-items:flex-start !important;justify-content:flex-start !important}
.ntsf-nav .is-menu-open .wp-block-navigation__responsive-container-content{padding-top:56px}
.ntsf-nav .is-menu-open .wp-block-navigation__container{gap:6px !important;width:100%}
.ntsf-nav .is-menu-open .wp-block-navigation-item{width:100%}
.ntsf-nav .is-menu-open .wp-block-navigation-item a{display:block;width:100%;padding:14px 0}
.ntsf-nav .wp-block-navigation__responsive-container.is-menu-open{padding:28px}

/* buttons */
.wp-block-button .wp-element-button,.ntsf-btn{font-family:var(--btn-font,var(--body));font-size:15px;line-height:1.2;padding:14px 26px;cursor:pointer;
  transition:background-color .18s,border-color .18s,color .18s,box-shadow .22s,transform .18s}
.ntsf-btn-primary .wp-element-button,.ntsf-btn{background:var(--btn-bg) !important;color:var(--btn-text) !important;border:var(--btn-border-w,1px) solid var(--btn-bg)}
.ntsf-btn-primary .wp-element-button:hover,.ntsf-btn:hover{background:var(--btn-bg-hover) !important;border-color:var(--btn-bg-hover)}
.ntsf-btn-ghost .wp-element-button{background:transparent !important;color:var(--text) !important;border:var(--btn-border-w,1px) solid var(--ghost-border) !important}
.ntsf-btn-ghost .wp-element-button:hover{border-color:var(--text) !important}
.ntsf-header-cta .wp-element-button{padding:10px 18px;font-size:14px}
.wp-block-buttons{gap:12px}

/* typography helpers */
.ntsf-mono{font-family:var(--label);font-size:13px !important;margin:0 0 16px !important;color:var(--accent-text)}
.ntsf-big{font-size:clamp(2.2rem,4.4vw,3.6rem) !important;margin:0 0 .5em}
.ntsf-lead{font-size:clamp(1.2rem,2vw,1.5rem);line-height:1.5;color:var(--muted);margin:0}
.ntsf-lead-sm{font-size:1.1rem;color:var(--muted);margin:0}
.ntsf-small{color:var(--muted);font-size:.9rem}

/* sections */
.ntsf-sec{padding:var(--sec-y) var(--gutter) !important;position:relative}
.ntsf-wrap{max-width:var(--max);margin:0 auto !important;position:relative;z-index:1}
.ntsf-split{gap:64px !important}
.ntsf-hero{overflow:hidden}
.ntsf-hero-cols{align-items:center !important;gap:56px !important}
.ntsf-hero-sub{margin:0 0 34px}
.ntsf-window{overflow:hidden;position:relative}
.ntsf-window-bar{display:flex;align-items:center;gap:10px;position:relative}
.ntsf-window-url{margin:0 !important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.ntsf-mark{margin:0 !important;display:flex;justify-content:center}
.ntsf-mark img{width:100%;max-width:300px;height:auto;aspect-ratio:1}
.ntsf-strip-list{list-style:none;padding:0;margin:0 !important;display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px 28px}
.ntsf-statement .ntsf-split{align-items:flex-end}
.ntsf-cards{gap:18px !important;margin:40px 0 36px !important}
.ntsf-card,.ntsf-panel,.ntsf-step{position:relative}
.ntsf-card h3{font-size:1.45rem;margin:0 0 10px}
.ntsf-card p:not(.ntsf-mono){color:var(--muted);font-size:.98rem;margin:0}
.ntsf-card-num{margin-bottom:34px !important}
.ntsf-steps{gap:18px !important;margin-top:36px !important}
.ntsf-step-text{margin:0}
.ntsf-reach-grid{gap:18px !important}
.ntsf-panel h3{font-size:2rem;margin:0 0 12px}
.ntsf-panel p:not(.ntsf-mono){color:var(--muted);margin:0 0 6px}
.ntsf-chips{list-style:none;padding:0;margin:16px 0 0 !important;display:flex;flex-wrap:wrap;gap:8px}
.ntsf-chips li{line-height:1.2;display:inline-flex;align-items:center;gap:8px}
.ntsf-faq-item{padding:0;margin:0 0 10px !important}
.ntsf-faq-item summary{cursor:pointer;list-style:none;position:relative;padding:20px 56px 20px 22px}
.ntsf-faq-item summary::-webkit-details-marker{display:none}
.ntsf-faq-item summary:after{content:"+";position:absolute;right:20px;top:50%;transform:translateY(-50%);width:26px;height:26px;display:grid;place-items:center}
.ntsf-faq-item[open] summary:after{content:"−"}
.ntsf-faq-item p{margin:0;padding:0 22px 20px;color:var(--muted)}
.ntsf-cta{padding-top:40px !important}
.ntsf-cta-inner{position:relative;overflow:hidden;padding:56px}
.ntsf-cta-cols{align-items:flex-end !important;position:relative;gap:40px !important}
.ntsf-cta h2{font-size:clamp(2.2rem,4.4vw,3.6rem);margin:0 0 14px}
.ntsf-cta p{margin:0}
.ntsf-cta-phone{margin-top:14px !important;font-size:.95rem}
.ntsf-cta .wp-block-buttons a{text-decoration:none}

/* title band (inner pages) + its bridge mark, which morphs from the home hero mark */
.ntsf-title{overflow:hidden;padding-top:96px !important;padding-bottom:72px !important}
.ntsf-title .ntsf-wrap{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:48px;align-items:end}
.ntsf-title .ntsf-wrap > *{grid-column:1}
.ntsf-title .ntsf-kicker{justify-self:start}
.ntsf-title .nts-title-mark{grid-column:2;grid-row:1 / span 3;align-self:center;margin:0 !important;width:180px}
.nts-title-mark img{display:block;width:100%;height:auto;aspect-ratio:1}
.ntsf-title h1{font-size:clamp(2.8rem,6vw,5rem);margin:20px 0 0}
.ntsf-title-sub{font-size:1.2rem;color:var(--muted);margin:16px 0 0;max-width:36em}

.ntsf-features .ntsf-wrap > *{margin:0 !important}
.ntsf-feature{padding:44px 0}
.ntsf-feature h2{font-size:clamp(1.8rem,3vw,2.5rem);margin:0}
.ntsf-feature p:not(.ntsf-mono){color:var(--muted);margin:0;font-size:1.05rem}

/* contact + form */
.ntsf-contact{padding-top:64px !important}
.ntsf-contact-cols{gap:28px !important}
.ntsf-contact-side > * + *{margin-top:18px !important}
.ntsf-contact-list,.ntsf-next-list{margin:0;padding:0}
.ntsf-contact-list{list-style:none}
.ntsf-contact-list li{padding:12px 0;border-bottom:1px solid var(--line)}
.ntsf-contact-list li:last-child{border:0;color:var(--muted)}
.ntsf-next-list{padding-left:1.2em;color:var(--muted)}
.ntsf-next-list li{margin-bottom:10px}
.ntsf-next-list li::marker{color:var(--accent-text)}
.ntsf-form-card{padding:36px}
.ntsf-form{display:flex;flex-direction:column;gap:20px;font-size:15px}
.ntsf-form fieldset{border:0;padding:0;margin:0}
.ntsf-form legend{font-weight:600;margin-bottom:8px;padding:0}
.ntsf-frow{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px}
.ntsf-frow label{min-width:0;font-size:13px}
.ntsf-form label{display:flex;flex-direction:column;gap:8px;font-weight:600}
.ntsf-req{font-weight:400;color:var(--muted)}
.ntsf-help{font-size:13px;color:var(--muted);font-weight:400;line-height:1.5}
.ntsf-form input,.ntsf-form textarea{width:100%;min-width:0;box-sizing:border-box;background:var(--field-bg);border:1px solid var(--field-border);color:var(--text);padding:13px 14px;font:inherit;font-weight:400;font-size:16px;transition:border-color .15s,box-shadow .15s}
.ntsf-form input:focus,.ntsf-form textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-ring)}
.ntsf-form [aria-invalid="true"]{border-color:var(--error)}
.ntsf-err{color:var(--error);font-size:13px;font-weight:500}
.ntsf-btn{align-self:flex-start;font-size:16px}
.ntsf-form-small{font-size:13px;color:var(--muted);margin:0}
.ntsf-hp{position:absolute !important;left:-9999px;width:1px;height:1px;overflow:hidden}
.ntsf-notice{border:1px solid var(--accent);padding:16px 18px;margin-bottom:18px}
.ntsf-notice-err{border-color:var(--error)}

/* privacy */
.ntsf-privacy{padding-top:56px !important}
.ntsf-privacy .ntsf-wrap{max-width:800px}
.ntsf-privacy h2{font-size:1.7rem;margin:2.2em 0 .5em;padding-top:1em;border-top:1px solid var(--line)}
.ntsf-privacy h3{font-size:1.25rem;margin:1.5em 0 .4em}

/* 404 */
.ntsf-404{text-align:center;overflow:hidden}
.wp-site-blocks main .ntsf-404.ntsf-sec{padding:150px var(--gutter) !important}
.ntsf-404 h1{font-size:clamp(3rem,8vw,6rem);margin:18px 0 12px}
.ntsf-404 .ntsf-title-sub{margin:0 auto}
.ntsf-404 .wp-block-buttons{margin-top:30px}
.ntsf-404-links{list-style:none;padding:0;display:flex;justify-content:center;flex-wrap:wrap;gap:24px;margin-top:36px}

/* footer */
.ntsf-footer{padding:72px var(--gutter) 28px !important;font-size:15px}
.ntsf-footer-cols{max-width:var(--max);margin:0 auto !important;gap:48px !important}
.ntsf-footer-logo{display:inline-block;line-height:0}
.ntsf-footer-logo img{height:56px;width:auto;display:block;margin-bottom:18px}
.ntsf-footer h3{font-size:12px;margin:0 0 16px}
.ntsf-footer-list{list-style:none;padding:0;margin:0}
.ntsf-footer-list li{margin-bottom:10px}
.ntsf-footer-list a{text-decoration:none}
.ntsf-footer-area{max-width:28em}
.ntsf-footer-bottom{max-width:var(--max);margin:48px auto 0 !important;padding-top:20px;font-size:13px}
.ntsf-footer-bottom p{margin:0}

/* integrations */
.ntsf-int-intro{color:var(--muted);font-size:1.1rem;max-width:44rem;margin:14px 0 0 !important}
.ntsf-int-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:40px 0 22px !important}
.ntsf-int-grid > *,.ntsf-int-notes > *{margin:0 !important}
.ntsf-int-grid,.ntsf-int-notes{align-items:stretch}
.ntsf-int-tag{margin:0 0 14px !important;font-size:12px !important}
.ntsf-int-notes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:0 0 34px !important}
.ntsf-int-note{margin:0 !important;padding:18px 20px 18px 62px;color:var(--muted);position:relative}
.ntsf-int-note strong{color:var(--text);font-weight:600}
.ntsf-int-note:after{content:"";position:absolute;left:24px;top:50%;margin-top:-9px;width:18px;height:18px;background:var(--accent-text);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 20h4L19 9l-4-4L4 16v4z'/%3E%3Cpath d='M13.5 6.5l4 4'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 20h4L19 9l-4-4L4 16v4z'/%3E%3Cpath d='M13.5 6.5l4 4'/%3E%3C/svg%3E") center/contain no-repeat}
.ntsf-int-note-api:after{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 3v5M15 3v5'/%3E%3Cpath d='M6 8h12v3a6 6 0 0 1-12 0V8z'/%3E%3Cpath d='M12 17v4'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 3v5M15 3v5'/%3E%3Cpath d='M6 8h12v3a6 6 0 0 1-12 0V8z'/%3E%3Cpath d='M12 17v4'/%3E%3C/svg%3E")}

/* "What we build" slider – structure (each style lays out the slide itself) */
.nts-sl-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px 40px;flex-wrap:wrap;margin-bottom:36px}
.nts-sl-intro{max-width:46rem}
.nts-sl-intro .ntsf-big{margin:0 0 .3em}
.nts-sl-lead{color:var(--muted);margin:0;font-size:1.05rem}
.nts-sl-ctrls{display:flex;align-items:center;gap:10px}
.nts-sl-count{margin:0 12px 0 0;font-family:var(--label);font-variant-numeric:tabular-nums;color:var(--muted);white-space:nowrap}
.nts-sl-cur{color:var(--text)}
.nts-sl-btn{display:grid;place-items:center;width:48px;height:48px;padding:0;cursor:pointer;font:inherit;font-size:18px;line-height:1;background:transparent;color:var(--text);transition:background-color .18s,border-color .18s,color .18s,transform .18s}
.nts-sl-ico{display:block;width:12px;height:14px;border-left:4px solid currentColor;border-right:4px solid currentColor;box-sizing:border-box}
.nts-sl-pause.is-paused .nts-sl-ico{width:0;height:0;border-style:solid;border-width:7px 0 7px 12px;border-color:transparent transparent transparent currentColor;margin-left:3px}
.nts-slider{position:relative;overflow:clip;overflow-clip-margin:10px}
.nts-sl-track{list-style:none;margin:0;padding:0;display:grid;grid-auto-flow:column;grid-auto-columns:100%;gap:var(--sl-gap,24px);overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.nts-sl-track::-webkit-scrollbar{display:none}
.nts-sl-track:focus-visible{outline-offset:6px}
.nts-sl-slide{scroll-snap-align:start;min-width:0}
.nts-sl-fig{margin:0;height:100%}
.nts-sl-media{position:relative;overflow:hidden;aspect-ratio:16/10;line-height:0}
.nts-sl-media img{display:block;width:100%;height:100%;object-fit:cover;object-position:top center}
.nts-sl-mobile .nts-sl-media img{object-fit:contain;object-position:center}
.nts-sl-badge{position:absolute;bottom:14px;left:14px;line-height:1.2;white-space:nowrap}
.nts-sl-type{margin:0 0 10px;display:flex;align-items:center;gap:10px}
.nts-sl-title{margin:0 0 10px}
.nts-sl-text{margin:0 0 10px}
.nts-sl-shown{margin:0 0 18px;font-size:.9rem;color:var(--muted)}
.nts-sl-link{text-decoration:none;font-weight:600}
.nts-sl-dots{display:flex;flex-wrap:wrap;gap:4px;margin-top:22px}
.nts-sl-dot{width:32px;height:32px;padding:0;border:0;background:transparent;cursor:pointer;position:relative}
.nts-sl-dot:before{content:"";position:absolute;left:4px;right:4px;top:50%;height:3px;margin-top:-1.5px;background:var(--line-strong);transition:background-color .2s}
.nts-sl-dot[aria-current]:before{background:var(--accent)}
.nts-sl-dot:hover:before{background:var(--muted)}

/* ------------------------------------------------------------------ smooth navigation */
@media (prefers-reduced-motion:no-preference){
  @view-transition{navigation:auto}
  .ntsf-header{view-transition-name:nts-header}
  .nts-vt-mark{view-transition-name:nts-mark}
  .ntsf-footer{view-transition-name:nts-footer}
  ::view-transition-group(*){animation-duration:.5s;animation-timing-function:cubic-bezier(.2,.75,.15,1)}
  ::view-transition-old(root){animation:.22s ease-in both nts-vt-out}
  ::view-transition-new(root){animation:.42s cubic-bezier(.2,.75,.15,1) .06s both nts-vt-in}
  ::view-transition-old(nts-footer),::view-transition-new(nts-footer){animation-duration:.25s}
  @keyframes nts-vt-out{to{opacity:0;transform:translateY(-10px)}}
  @keyframes nts-vt-in{from{opacity:0;transform:translateY(18px)}}
  html.nts-fade body{animation:nts-fade-in .3s ease-out both}
  html.nts-fade.nts-leaving body{opacity:0;transition:opacity .17s ease-in}
  @keyframes nts-fade-in{from{opacity:0}}
  .nts-rv{opacity:0;transform:translateY(18px);transition:opacity .6s ease-out,transform .7s cubic-bezier(.2,.75,.15,1)}
  .nts-rv.is-in{opacity:1;transform:none}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*:before,*:after{animation:none !important;transition:none !important}
  .ntsf-card:hover,.ntsf-pf-card:hover,.wp-element-button:hover,.ntsf-btn:hover,.nts-sl-btn:hover{transform:none !important}
}

/* ------------------------------------------------------------------ responsive structure */
@media (min-width:782px){
  .ntsf-hero-cols > .wp-block-column:first-child{flex:0 0 58% !important}
  .ntsf-faq-cols > .wp-block-column:first-child{flex:0 0 34% !important}
  .ntsf-feature-cols > .wp-block-column:first-child{flex:0 0 38% !important}
  .ntsf-contact-cols > .wp-block-column:first-child{flex:0 0 58% !important}
  .ntsf-cta-cols > .wp-block-column:last-child{flex:0 0 28% !important}
  .ntsf-split > .wp-block-column:last-child,.ntsf-hero-cols > .wp-block-column:last-child,.ntsf-cta-cols > .wp-block-column:first-child{flex:1 1 0 !important}
  .ntsf-steps{grid-template-columns:repeat(4,minmax(0,1fr)) !important}
  .ntsf-reach-grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important}
  .ntsf-cards{grid-template-columns:repeat(4,minmax(0,1fr)) !important}
}
@media (min-width:600px) and (max-width:1100px){
  .ntsf-steps,.ntsf-cards{grid-template-columns:repeat(2,minmax(0,1fr)) !important}
  .ntsf-int-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:781px){
  :root{--gutter:20px;--sec-y:72px;--header-h:60px}
  body{font-size:16px}
  .ntsf-split,.ntsf-hero-cols{gap:32px !important}
  .ntsf-header{padding:10px 16px}
  .ntsf-logo img{height:34px}
  .ntsf-header-right{gap:12px !important}
  .ntsf-header-cta .wp-element-button{padding:8px 14px;font-size:13px}
  .ntsf-strip-list{justify-content:flex-start;gap:8px 18px}
  .ntsf-cta-inner{padding:34px 24px}
  .ntsf-form-card{padding:22px}
  .ntsf-frow{grid-template-columns:1fr}
  .ntsf-feature{padding:32px 0}
  .ntsf-title{padding-top:56px !important;padding-bottom:44px !important}
  .ntsf-title .ntsf-wrap{grid-template-columns:minmax(0,1fr) 84px;column-gap:16px}
  .ntsf-title .nts-title-mark{width:84px;align-self:start;margin-top:4px !important}
  .nts-sl-head{margin-bottom:24px}
  .nts-sl-count{display:none}
  .nts-sl-btn{width:44px;height:44px}
  .nts-sl-dots{gap:0}
  .nts-sl-dot{width:28px;height:28px}
}
@media (max-width:599px){.ntsf-int-grid,.ntsf-int-notes{grid-template-columns:1fr}.ntsf-int-grid{gap:12px;margin-top:30px !important}}
/* backdrop-filter creates a containing block for the fixed mobile overlay: drop it on small screens / when open */
@media (max-width:781px){.ntsf-header{backdrop-filter:none !important;-webkit-backdrop-filter:none !important}}
.ntsf-header:has(.is-menu-open){backdrop-filter:none !important;-webkit-backdrop-filter:none !important}

/* ------------------------------------------------------------------ portfolio (admin preview only; hidden until a real, approved project exists) */
.ntsf-work{border-top:1px solid var(--line)}
.ntsf-work .ntsf-wrap > *{margin-block-start:0}
.ntsf-work-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex-wrap:wrap;margin-bottom:34px}
.ntsf-work-head .ntsf-big{margin:0 0 .3em}
.ntsf-work-all{margin:0}
.ntsf-pf-note{border:1px dashed var(--line-strong);background:var(--surface);color:var(--text);border-radius:14px;padding:12px 16px;font-size:.92rem;margin:0 0 26px}
.ntsf-pf-note strong{color:var(--badge-bg)}
.ntsf-pf-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.ntsf-pf-grid-archive{gap:24px}
.ntsf-pf-card{display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;transition:border-color .2s,transform .2s,box-shadow .2s}
.ntsf-pf-card:hover{border-color:var(--accent);transform:translateY(-3px);box-shadow:var(--shadow-card,none)}
.ntsf-pf-shot{position:relative;display:block;aspect-ratio:16/10;overflow:hidden;border-bottom:1px solid var(--line);background:var(--bg)}
.ntsf-pf-shot img{width:100%;height:100%;object-fit:cover;object-position:top center;display:block;transition:transform .5s ease}
.ntsf-pf-card:hover .ntsf-pf-shot img{transform:scale(1.03)}
.ntsf-pf-noshot{display:grid;place-items:center;height:100%;font-family:var(--label);font-size:12px;color:var(--muted)}
.ntsf-pf-badge{display:inline-block;font-family:var(--label);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--badge-text);background:var(--badge-bg);border-radius:999px;padding:4px 10px;font-weight:500}
.ntsf-pf-shot .ntsf-pf-badge{position:absolute;top:12px;left:12px;box-shadow:var(--shadow-card,none)}
.ntsf-pf-body{padding:22px 24px 24px;display:flex;flex-direction:column;flex:1}
.ntsf-pf-chips{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px}
.ntsf-pf-chip{font-family:var(--label);font-size:12px;letter-spacing:.04em;color:var(--accent-text);border:1px solid var(--line-strong);background:var(--accent);border-radius:999px;padding:3px 10px}
.ntsf-pf-name{font-family:var(--display);font-size:1.4rem !important;letter-spacing:-.02em;line-height:1.2;margin:0 0 8px}
.ntsf-pf-name a{color:var(--text);text-decoration:none}
.ntsf-pf-name a:hover{color:var(--accent-text)}
.ntsf-pf-sum{color:var(--muted);font-size:.97rem;margin:0 0 18px}
.ntsf-pf-actions{display:flex;flex-wrap:wrap;gap:10px 20px;margin:auto 0 0}
.ntsf-pf-link{font-family:var(--display);font-weight:600;color:var(--accent-text);text-decoration:none;border-bottom:1px solid var(--line-strong);padding-bottom:2px}
.ntsf-pf-link:hover{color:var(--text);border-color:var(--text)}
.ntsf-pf-link-ghost{color:var(--text);border-color:var(--line)}
.ntsf-pf-filter ul{list-style:none;display:flex;flex-wrap:wrap;gap:10px;padding:0;margin:0 0 30px}
.ntsf-pf-filter a{display:inline-block;font-family:var(--label);font-size:13px;color:var(--muted);text-decoration:none;border:1px solid var(--line);border-radius:999px;padding:7px 14px;background:var(--surface)}
.ntsf-pf-filter a:hover{border-color:var(--accent-text);color:var(--on-accent)}
.ntsf-pf-filter a[aria-current]{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.ntsf-pf-title .ntsf-pf-chips{margin:18px 0 0}
.ntsf-pf-title h1{margin-top:14px}
.ntsf-pf-crumb{margin:0}
.ntsf-pf-crumb a{text-decoration:none;text-transform:none}
.ntsf-pf-shots{display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:40px;align-items:end;margin-bottom:56px}
.ntsf-pf-shots figure{margin:0}
.ntsf-pf-shots figcaption{margin:14px 0 0 !important;color:var(--muted);text-transform:none}
.ntsf-pf-desktop .ntsf-window{animation:none;border:1px solid var(--line);border-radius:var(--radius)}
.ntsf-pf-desktop .ntsf-pf-crop{display:block;width:100%;height:auto;aspect-ratio:16/10;object-fit:cover;object-position:top}
.ntsf-pf-phone{border:1px solid var(--line);border-radius:34px;padding:9px;background:var(--surface);box-shadow:var(--shadow-card,none)}
.ntsf-pf-phone .ntsf-pf-crop{display:block;width:100%;height:auto;aspect-ratio:390/844;object-fit:cover;object-position:top;border-radius:26px}
.ntsf-pf-detail{display:grid;grid-template-columns:320px minmax(0,1fr);gap:56px;align-items:start}
.ntsf-pf-facts{margin:0;border-top:1px solid var(--line)}
.ntsf-pf-facts > div{display:grid;grid-template-columns:110px 1fr;gap:12px;padding:14px 0;border-bottom:1px solid var(--line)}
.ntsf-pf-facts dt{font-family:var(--label);font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--accent-text);padding-top:3px}
.ntsf-pf-facts dd{margin:0}
.ntsf-pf-facts a{color:var(--text)}
.ntsf-pf-text{color:var(--muted);font-size:1.05rem}
.ntsf-pf-text p{margin:0 0 18px}
.ntsf-pf-quote{border-left:3px solid var(--accent);margin:8px 0 26px;padding:6px 0 6px 20px;color:var(--text);font-size:1.2rem}
.ntsf-pf-quote cite{display:block;font-family:var(--label);font-size:12px;font-style:normal;color:var(--muted);margin-top:8px;text-transform:uppercase}
.ntsf-pf-buttons{gap:12px;margin-top:8px}
.ntsf-pf-main{margin:0 !important;padding:0 !important}
@media (prefers-reduced-motion:reduce){.ntsf-pf-card:hover{transform:none}.ntsf-pf-card:hover .ntsf-pf-shot img{transform:none}}
@media (max-width:1000px){.ntsf-pf-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ntsf-pf-detail{grid-template-columns:1fr;gap:28px}}
@media (max-width:781px){
  .ntsf-pf-grid,.ntsf-pf-grid-archive{grid-template-columns:1fr;gap:16px}
  .ntsf-work-head{margin-bottom:24px}
  .ntsf-pf-body{padding:18px 18px 20px}
  .ntsf-pf-shots{grid-template-columns:1fr;gap:28px}
  .ntsf-pf-mobile{max-width:230px;margin:0 auto !important}
}
@media (min-width:782px){.ntsf-pf-grid:has(> :nth-child(2):last-child){grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}}
.ntsf-pf-badge-pending{background:var(--surface-2);color:var(--text)}

/* scrollable device frames (single project pages) */
.ntsf-pf-frame{position:relative}
.ntsf-pf-scroll{overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;touch-action:pan-y;background:var(--bg);scrollbar-width:thin;scrollbar-color:var(--line-strong) var(--surface)}
.ntsf-pf-scroll::-webkit-scrollbar{width:8px}
.ntsf-pf-scroll::-webkit-scrollbar-track{background:var(--surface)}
.ntsf-pf-scroll::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:8px;border:2px solid transparent;background-clip:padding-box}
.ntsf-pf-scroll::-webkit-scrollbar-thumb:hover{background-color:var(--accent-text)}
.ntsf-pf-scroll:focus-visible{outline:2px solid var(--accent-text);outline-offset:-2px}
.ntsf-pf-scroll img{display:block;width:100%;height:auto;max-width:none}
.ntsf-pf-desktop .ntsf-pf-scroll{aspect-ratio:16/10}
.ntsf-pf-phone .ntsf-pf-scroll{aspect-ratio:9/19.5;border-radius:26px}
.ntsf-pf-hint{position:absolute;left:50%;bottom:16px;transform:translateX(-50%);font-family:var(--label);font-size:12px;letter-spacing:.04em;white-space:nowrap;color:var(--text);background:var(--bg);border:1px solid var(--line-strong);border-radius:999px;padding:6px 12px;pointer-events:none;box-shadow:var(--shadow-card,none);transition:opacity .5s ease}
.ntsf-pf-phone .ntsf-pf-hint{bottom:22px;font-size:11px;padding:5px 10px}
.ntsf-pf-frame.is-scrolled .ntsf-pf-hint{opacity:0}
@media (prefers-reduced-motion:reduce){.ntsf-pf-scroll{scroll-behavior:auto}}

