/*
  Shenali de Fonseka — theme stylesheet
  Colours, type and spacing come from tokens.css (= brand/design-tokens.css). Every element rule is
  scoped under .site (the page wrapper) so nothing leaks into Concrete's toolbar and editing panels.
  Breakpoints: phone < 640px, tablet 640–1023px, desktop >= 1024px, wide >= 1440px.
*/

/* ---------------------------------------------------------------- fonts (SIL OFL 1.1, self-hosted) */
@font-face{font-family:"Jost";src:url(../fonts/jost/jost-latin-wght-normal.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Jost";src:url(../fonts/jost/jost-latin-ext-wght-normal.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Jost";src:url(../fonts/jost/jost-latin-wght-italic.woff2) format("woff2");font-weight:100 900;font-style:italic;font-display:swap}
@font-face{font-family:"Source Serif 4";src:url(../fonts/source-serif-4/source-serif-4-latin-opsz-normal.woff2) format("woff2");font-weight:200 900;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Source Serif 4";src:url(../fonts/source-serif-4/source-serif-4-latin-ext-opsz-normal.woff2) format("woff2");font-weight:200 900;font-style:normal;font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Source Serif 4";src:url(../fonts/source-serif-4/source-serif-4-latin-opsz-italic.woff2) format("woff2");font-weight:200 900;font-style:italic;font-display:swap}

@font-face{font-family:"Yaldevi";src:url(../fonts/yaldevi/yaldevi-sinhala-wght-normal.woff2) format("woff2");font-weight:200 700;font-style:normal;font-display:swap;unicode-range:U+0964-0965,U+0D81-0DF4,U+1CF2,U+200C-200D,U+25CC,U+111E1-111F4}
@font-face{font-family:"Noto Serif Sinhala";src:url(../fonts/noto-serif-sinhala/noto-serif-sinhala-sinhala-wght-normal.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap;unicode-range:U+0964-0965,U+0D81-0DF4,U+1CF2,U+200C-200D,U+25CC,U+111E1-111F4}

/* ---------------------------------------------------------------- page */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{margin:0;background:var(--color-bg);color:var(--color-ink);transition:background-color 300ms var(--ease-out),color 300ms var(--ease-out)}
@media (prefers-reduced-motion:reduce){body{transition:none}}
.site{font-family:var(--font-text);font-size:var(--text-md);line-height:var(--leading-text);font-optical-sizing:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--color-ink);background:var(--color-bg);min-height:100vh;display:flex;flex-direction:column;overflow-x:clip}
.site main{flex:1 0 auto;outline:none}
.site *,.site *::before,.site *::after{box-sizing:border-box}
.site img,.site svg,.site video{display:block;max-width:100%;height:auto}
.site a{color:var(--color-accent-strong);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.2em;transition:color var(--duration-fast) var(--ease-out),text-decoration-color var(--duration-fast)}
.site a:hover{color:var(--color-ink)}
.site :focus-visible{outline:var(--focus-ring);outline-offset:var(--focus-offset)}
.site button{font:inherit;color:inherit;background:none;border:0;padding:0;margin:0;cursor:pointer}
.site hr{border:0;border-top:1px solid var(--color-line);margin:var(--space-7) 0}
.site ::selection{background:var(--color-accent-strong);color:var(--color-on-accent)}
.site .visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.site .skip-link{position:absolute;left:var(--gutter);top:-200px;background:var(--color-ink);color:var(--color-bg);padding:var(--space-3) var(--space-4);font-family:var(--font-display);font-size:var(--text-sm);text-decoration:none;z-index:1000}
.site .skip-link:focus{top:var(--space-3)}

/* ---------------------------------------------------------------- type */
.site h1,.site h2,.site h3,.site h4{font-family:var(--font-display);font-weight:var(--weight-display);line-height:var(--leading-snug);letter-spacing:var(--tracking-display);margin:0 0 var(--space-4);text-wrap:balance;color:var(--color-ink)}
.site h1{font-size:var(--text-2xl);font-weight:var(--weight-display-light);line-height:var(--leading-tight);letter-spacing:-.02em}
.site h2{font-size:var(--text-xl);font-weight:var(--weight-display-light)}
.site h3{font-size:var(--text-lg);font-weight:var(--weight-display)}
.site h4{font-size:var(--text-md);font-weight:var(--weight-display-medium)}
.site p{margin:0 0 var(--space-4);max-width:var(--measure);text-wrap:pretty}
.site .lead{font-size:var(--text-lg);line-height:1.5;max-width:46ch;color:var(--color-ink);font-weight:350}
.site .label,.site .section-label{font-family:var(--font-display);font-weight:var(--weight-display-medium);font-size:var(--text-xs);line-height:1.4;letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--color-ink-2);margin:0 0 var(--space-4)}
.site .label a{color:inherit;text-decoration:none}
.site .label a:hover{color:var(--color-ink);text-decoration:underline}
.site .section-label{display:block;border-top:1px solid var(--color-line);padding-top:var(--space-4);margin-bottom:var(--space-7);letter-spacing:var(--tracking-caps);font-size:var(--text-xs)}
.site .small{font-size:var(--text-sm);color:var(--color-ink-2)}
.site strong,.site b{font-weight:var(--weight-text-strong)}
.site em,.site i{font-style:italic}
.site figcaption,.site .caption{font-family:var(--font-display);font-size:var(--text-sm);line-height:1.45;color:var(--color-ink-3);letter-spacing:.01em;margin-top:var(--space-3)}
.site .draft-note{font-family:var(--font-display);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--color-accent-strong);border-left:2px solid var(--color-accent);padding:var(--space-1) 0 var(--space-1) var(--space-3);margin:var(--space-5) 0}
.site .placeholder{font-family:var(--font-mono);font-size:.85em;background:var(--color-bg-2);outline:1px dashed var(--color-accent);outline-offset:1px;padding:0 .25em;color:var(--color-ink);white-space:normal;word-break:break-word}

/* ---------------------------------------------------------------- layout */
.site .container{width:100%;max-width:calc(var(--content-max) + 2 * var(--gutter));margin-inline:auto;padding-inline:var(--gutter)}
.site .section{padding-block:var(--section-gap) 0}
.site .prose{max-width:var(--measure)}
.site .prose > :first-child{margin-top:0}
.site .prose h2{font-size:var(--text-xl);margin:var(--space-8) 0 var(--space-4)}
.site .prose h3{font-size:var(--text-lg);margin:var(--space-7) 0 var(--space-3)}
.site .prose ul,.site .prose ol{padding-left:1.25em;margin:0 0 var(--space-5);max-width:var(--measure)}
.site .prose li{margin-bottom:var(--space-2);padding-left:.2em}
.site .prose li::marker{color:var(--color-ink-3)}
.site .prose blockquote{margin:var(--space-7) 0;padding:0 0 0 var(--space-5);border-left:1px solid var(--color-ink);font-family:var(--font-display);font-weight:var(--weight-display-light);font-size:var(--text-lg);line-height:1.4}
.site .prose table{border-collapse:collapse;width:100%;font-size:var(--text-sm);margin:0 0 var(--space-6)}
.site .prose th,.site .prose td{text-align:left;padding:var(--space-3) var(--space-4) var(--space-3) 0;border-bottom:1px solid var(--color-line);vertical-align:top}
.site .prose th{font-family:var(--font-display);font-weight:var(--weight-display-medium);font-size:var(--text-xs);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--color-ink-2)}
.site .prose img{margin:var(--space-6) 0}
.site .img-frame{background:var(--color-bg-2);overflow:hidden}
.site .img-frame img{width:100%}

/* ---------------------------------------------------------------- header */
.site .site-header{position:relative;z-index:30}
.site .site-header-inner{display:flex;align-items:center;justify-content:space-between;gap:var(--space-5);padding-block:var(--space-4)}
.site .brand{display:inline-flex;align-items:center;gap:var(--space-3);color:var(--color-ink);text-decoration:none;flex:0 0 auto;padding-block:var(--space-1)}
.site .brand:hover{color:var(--color-ink)}
.site .brand svg{height:38px;width:auto;flex:0 0 auto}
.site .brand .logo-name{height:36px}
.site .site-actions{display:flex;align-items:center;gap:var(--space-2)}
@media (min-width:1024px){
  .site .site-header-inner{padding-block:var(--space-6)}
  .site .brand{gap:var(--space-4)}
  .site .brand svg{height:50px}
  .site .brand .logo-name{height:48px}
  .site .site-actions{gap:var(--space-6)}
}
.site .theme-toggle,.site .menu-toggle{font-family:var(--font-display);font-weight:var(--weight-display-medium);font-size:var(--text-xs);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--color-ink-2);display:inline-flex;align-items:center;gap:var(--space-2);min-height:44px;min-width:44px;justify-content:center;padding-inline:var(--space-2)}
.site .theme-toggle:hover,.site .menu-toggle:hover{color:var(--color-ink)}
.site .theme-dot{width:12px;height:12px;border:1px solid currentColor;border-radius:50%;background:linear-gradient(90deg,currentColor 50%,transparent 50%);transition:transform var(--duration-base) var(--ease-out)}
:root[data-theme="dark"] .site .theme-dot{transform:rotate(180deg)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .site .theme-dot{transform:rotate(180deg)}}
.site .theme-label{display:none}
@media (min-width:1024px){.site .theme-label{display:inline}.site .menu-toggle{display:none}}

/* navigation: inline on desktop, a full-screen panel on phones and tablets */
.site .site-nav ul{list-style:none;margin:0;padding:0}
.site .site-nav a{text-decoration:none}
.site .site-nav-head,.site .site-nav-foot{display:none}
@media (min-width:1024px){
  .site .site-nav ul{display:flex;gap:var(--space-6);align-items:center}
  .site .site-nav a{font-family:var(--font-display);font-weight:var(--weight-display-medium);font-size:var(--text-xs);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--color-ink-2);padding-block:var(--space-2);position:relative;display:inline-block}
  .site .site-nav a::after{content:"";position:absolute;left:0;right:100%;bottom:2px;border-top:1px solid currentColor;transition:right var(--duration-base) var(--ease-out)}
  .site .site-nav a:hover,.site .site-nav [aria-current="page"],.site .site-nav .nav-path-selected>a{color:var(--color-ink)}
  .site .site-nav a:hover::after,.site .site-nav [aria-current="page"]::after,.site .site-nav .nav-path-selected>a::after{right:0}
}
@media (max-width:1023.98px){
  .site .site-nav{position:fixed;inset:0;z-index:900;background:var(--color-bg);display:flex;flex-direction:column;padding:var(--space-4) var(--gutter) var(--space-6);overflow-y:auto;visibility:hidden;opacity:0;transition:opacity var(--duration-base) var(--ease-out),visibility 0s linear var(--duration-base)}
  .site .site-nav[data-open="true"]{visibility:visible;opacity:1;transition:opacity var(--duration-base) var(--ease-out),visibility 0s}
  .site .site-nav-head{display:flex;justify-content:space-between;align-items:center;min-height:54px}
  .site .site-nav-head .label{margin:0}
  .site .site-nav ul{margin-top:var(--space-7);flex:1}
  .site .site-nav li{border-bottom:1px solid var(--color-line)}
  .site .site-nav li:first-child{border-top:1px solid var(--color-line)}
  .site .site-nav a{display:flex;justify-content:space-between;align-items:baseline;font-family:var(--font-display);font-weight:var(--weight-display-light);font-size:clamp(1.9rem,8vw,2.6rem);line-height:1.15;letter-spacing:-.015em;color:var(--color-ink);padding-block:var(--space-4)}
  .site .site-nav a::after{content:attr(data-index);font-size:var(--text-xs);font-weight:var(--weight-display-medium);letter-spacing:var(--tracking-caps);color:var(--color-ink-3)}
  .site .site-nav [aria-current="page"],.site .site-nav .nav-path-selected>a{color:var(--color-accent-strong)}
  .site .site-nav-foot{display:grid;gap:var(--space-2);padding-top:var(--space-7);font-family:var(--font-display);font-size:var(--text-sm);color:var(--color-ink-2)}
  .site .site-nav-foot a{color:var(--color-ink-2);font-size:var(--text-sm);font-weight:var(--weight-display);letter-spacing:0;padding:0;display:inline;text-decoration:underline}
  .site .site-nav-foot a::after{content:none}
  .site .site-nav-close{font-family:var(--font-display);font-weight:var(--weight-display-medium);font-size:var(--text-xs);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--color-ink-2);min-height:44px;min-width:44px}
  .ccm-toolbar-visible .site .site-nav{top:48px}
}
body[data-menu-open="true"]{overflow:hidden}

/* ---------------------------------------------------------------- images: hero and figures */
.site .hero{margin:0 auto;max-width:1680px}
.site .hero img{width:100%;background:var(--color-bg-2)}
.site .hero figcaption{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--space-2) var(--space-5);max-width:calc(var(--content-max) + 2 * var(--gutter));margin:var(--space-3) auto 0;padding-inline:var(--gutter);font-size:var(--text-xs);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--color-ink-2)}
.site .hero figcaption a{color:inherit;text-decoration:none;border-bottom:1px solid var(--color-line)}
.site .hero figcaption a:hover{color:var(--color-ink);border-color:var(--color-ink)}
.site .figure{margin:0 0 var(--space-6)}
.site .figure img{width:100%}
.site .figure-portrait{margin:0;max-width:320px}
.site .figure-portrait img{width:100%;filter:none}

/* image loading: a quiet fade for images below the fold (set by site.js) */
.js .site img.will-fade{opacity:0;transition:opacity var(--duration-slow) var(--ease-out)}
.js .site img.will-fade.is-loaded{opacity:1}
/* one-time reveal of sections and cards as they enter the viewport (set by site.js) */
.js .site .will-reveal{opacity:0;transform:translateY(12px);transition:opacity var(--duration-slow) var(--ease-out),transform var(--duration-slow) var(--ease-out)}
.js .site .will-reveal.is-visible{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.js .site img.will-fade,.js .site .will-reveal{opacity:1;transform:none;transition:none}}
.site.is-editing img.will-fade,.site.is-editing .will-reveal{opacity:1!important;transform:none!important}

/* ---------------------------------------------------------------- home */
.site .home-opening{margin-bottom:var(--space-8)}
.site .home-statement{display:grid;gap:var(--space-6);padding-block:var(--space-6) var(--space-4)}
.site .home-statement h1,.site .home-statement h2{font-size:var(--text-3xl);font-weight:var(--weight-display-light);line-height:1.02;letter-spacing:-.025em;max-width:13ch;margin:0}
.site .home-statement-text p{max-width:44ch}
.site .home-statement-text p:first-child{font-size:var(--text-lg);line-height:1.5}
@media (min-width:1024px){
  .site .home-opening{margin-bottom:var(--space-9)}
  .site .home-statement{grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--grid-gap);align-items:end;padding-block:var(--space-4) var(--space-6)}
  .site .home-statement-title{grid-column:1 / span 7}
  .site .home-statement-text{grid-column:8 / span 5;padding-bottom:var(--space-2)}
}
.site .home-studio-grid{display:grid;gap:var(--space-6)}
@media (min-width:640px){.site .home-studio-grid{grid-template-columns:minmax(180px,4fr) 7fr;gap:var(--space-7);align-items:start}}
@media (min-width:1024px){.site .home-studio-grid{grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--grid-gap)}.site .home-studio-image{grid-column:1 / span 3}.site .home-studio-text{grid-column:5 / span 7}}
.site .home-studio-text h3{font-size:var(--text-xl);font-weight:var(--weight-display-light);max-width:24ch}

/* ---------------------------------------------------------------- project cards */
.site .project-card{display:block;color:inherit;text-decoration:none;position:relative}
.site .project-card .img-frame{position:relative}
.site .project-card img{transition:transform 1400ms var(--ease-out)}
.site .project-card:hover img{transform:scale(1.02)}
@media (prefers-reduced-motion:reduce){.site .project-card img{transition:none}.site .project-card:hover img{transform:none}}
.site .project-card-text{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-2);padding-top:var(--space-4)}
.site .project-card-title{font-family:var(--font-display);font-weight:var(--weight-display);font-size:var(--text-lg);line-height:1.2;margin:0;color:var(--color-ink);transition:color var(--duration-fast)}
.site .project-card .meta{order:-1;font-family:var(--font-display);font-weight:var(--weight-display-medium);font-size:var(--text-xs);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--color-ink-2)}
.site .project-card .summary{margin:0;color:var(--color-ink-2);max-width:46ch;font-size:var(--text-sm);line-height:1.55}
.site .project-card:hover .project-card-title{color:var(--color-accent-strong)}
.site .project-card .view{font-family:var(--font-display);font-weight:var(--weight-display-medium);font-size:var(--text-xs);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--color-ink);margin-top:var(--space-2);display:inline-flex;gap:var(--space-2);align-items:center}
.site .project-card .view::after{content:"";width:24px;border-top:1px solid currentColor;transition:width var(--duration-base) var(--ease-out)}
.site .project-card:hover .view::after{width:40px}

/* home: editorial stagger of three */
.site .featured{display:grid;gap:var(--space-8);grid-template-columns:minmax(0,1fr)}
@media (min-width:640px){
  .site .featured{grid-template-columns:repeat(8,minmax(0,1fr));gap:var(--space-8) var(--grid-gap)}
  .site .featured .project-card:nth-child(3n+1){grid-column:1 / -1}
  .site .featured .project-card:nth-child(3n+2){grid-column:1 / span 4}
  .site .featured .project-card:nth-child(3n+3){grid-column:5 / span 4;margin-top:var(--space-9)}
}
@media (min-width:1024px){
  .site .featured{grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--space-10) var(--grid-gap)}
  .site .featured .project-card:nth-child(3n+1){grid-column:1 / span 8}
  .site .featured .project-card:nth-child(3n+2){grid-column:9 / span 4;margin-top:var(--space-10)}
  .site .featured .project-card:nth-child(3n+3){grid-column:3 / span 7;margin-top:0}
}

/* projects page: lead card, then two columns */
.site .project-grid{display:grid;gap:var(--space-8);grid-template-columns:minmax(0,1fr)}
@media (min-width:640px){.site .project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-8) var(--grid-gap)}.site .project-grid .project-card:first-child{grid-column:1 / -1}}
@media (min-width:1024px){.site .project-grid{gap:var(--space-9) var(--space-6)}}
.site .project-grid .project-card[hidden],.site .earlier-work tr[hidden]{display:none}

/* filters (built by site.js from the projects on the page) */
.site .project-filters{display:grid;gap:var(--space-3);margin-bottom:var(--space-7)}
.js .site .project-filters{min-height:calc(2 * 45px + 2 * var(--space-3) + 1.5rem)}
.site .filters{display:flex;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;gap:var(--space-5);align-items:center;margin:0;border-bottom:1px solid var(--color-line);height:45px}
.site .filters::-webkit-scrollbar{display:none}
.site .filters .label{margin:0 var(--space-2) 0 0;min-width:4.5rem}
.site .filter{flex:0 0 auto;white-space:nowrap;font-family:var(--font-display);font-weight:var(--weight-display-medium);font-size:var(--text-xs);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--color-ink-2);min-height:44px;padding-inline:var(--space-1);position:relative}
.site .filter::after{content:"";position:absolute;left:var(--space-1);right:100%;bottom:8px;border-top:1px solid currentColor;transition:right var(--duration-base) var(--ease-out)}
.site .filter:hover{color:var(--color-ink)}
.site .filter[aria-pressed="true"]{color:var(--color-ink)}
.site .filter[aria-pressed="true"]::after{right:var(--space-1)}
.site .filter .count{color:var(--color-ink-3);margin-left:.35em;font-weight:var(--weight-display)}
.site .filter-status{font-family:var(--font-display);font-size:var(--text-sm);color:var(--color-ink-3);margin:0;min-height:1.5rem;line-height:1.5rem}

@media (max-width:639.98px){
  .site .filters{margin-inline:calc(-1 * var(--gutter));padding-inline:var(--gutter);gap:var(--space-4)}
  .site .filters .label{flex:0 0 auto;min-width:0}
}
/* portrait covers: true proportions, never taller than the screen */
.site .cover-portrait img{width:auto;max-width:100%;max-height:min(88vh,1100px);margin-inline:auto}
.site .article-cover.cover-portrait{max-width:none}

/* earlier work table */
.site .earlier-work table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}
.site .earlier-work th,.site .earlier-work td{text-align:left;padding:var(--space-3) var(--space-4) var(--space-3) 0;border-bottom:1px solid var(--color-line);vertical-align:baseline}
.site .earlier-work th{font-family:var(--font-display);font-weight:var(--weight-display-medium);font-size:var(--text-xs);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--color-ink-2)}
.site .earlier-work td:first-child{font-family:var(--font-display);color:var(--color-ink-2);white-space:nowrap;width:5.5rem}
.site .earlier-work td:nth-child(2){font-family:var(--font-display);font-size:var(--text-md);color:var(--color-ink)}
@media (max-width:639.98px){
  .site .earlier-work thead{display:none}
  .site .earlier-work tr{display:grid;grid-template-columns:4.5rem 1fr;gap:var(--space-1) var(--space-3);padding-block:var(--space-4);border-bottom:1px solid var(--color-line)}
  .site .earlier-work td{border:0;padding:0}
  .site .earlier-work td:first-child{grid-row:span 3}
  .site .earlier-work td:nth-child(n+3){grid-column:2;color:var(--color-ink-2)}
}
.site .earlier-work .prose{max-width:none}

/* ---------------------------------------------------------------- page heads */
.site .page-head{padding-block:var(--space-6) var(--space-7)}
.site .page-head h1{max-width:18ch}
.site .page-intro p:first-child,.site .page-intro .lead{font-size:var(--text-lg);line-height:1.5;max-width:46ch}
@media (min-width:1024px){.site .page-head{padding-block:var(--space-7) var(--space-9)}}
.site .page-body{display:grid;gap:var(--space-7)}
@media (min-width:1024px){.site .page-body.has-aside{grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--grid-gap)}.site .page-body.has-aside .page-aside{grid-column:1 / span 4}.site .page-body.has-aside .page-main{grid-column:6 / span 7}}
.site .page-after{padding-top:var(--section-gap)}
.site .page-aside .figure-portrait{max-width:280px}

/* ---------------------------------------------------------------- project page */
.site .project-head{display:grid;gap:var(--space-6)}
@media (min-width:1024px){.site .project-head{grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--grid-gap);align-items:end}.site .project-title{grid-column:1 / span 7}.site .project-head .facts{grid-column:9 / span 4}.site .project-head .edit-hint{grid-column:1 / -1}}
.site .project-title h1{font-size:var(--text-3xl);letter-spacing:-.025em;line-height:1.02;max-width:12ch}
.site .facts{margin:0;border-top:1px solid var(--color-ink)}
.site .facts div{display:grid;grid-template-columns:7.5rem 1fr;gap:var(--space-4);padding-block:var(--space-3);border-bottom:1px solid var(--color-line)}
.site .facts dt{font-family:var(--font-display);font-weight:var(--weight-display-medium);font-size:var(--text-xs);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--color-ink-2);padding-top:.2em}
.site .facts dd{margin:0;font-size:var(--text-sm);line-height:1.5}
.site .project-cover{margin:0 auto var(--section-gap);max-width:1680px}
.site .project-cover img{width:100%;background:var(--color-bg-2)}
.site .project-story{display:grid;gap:var(--space-4)}
@media (min-width:1024px){.site .project-story{grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--grid-gap)}.site .project-story .section-label{grid-column:1 / span 3;border:0;padding-top:.35em;margin:0}.site .project-story .prose{grid-column:5 / span 7}}
.site .project-story .prose h2{font-size:var(--text-lg);font-weight:var(--weight-display);margin:var(--space-7) 0 var(--space-3)}
.site .project-story .prose h2:first-child{margin-top:0}
.site .project-gallery{margin-top:var(--section-gap)}
.site .project-after:empty{display:none}

/* contextual call to action on project pages */
.site .project-cta{margin-top:var(--section-gap);border-top:1px solid var(--color-line);border-bottom:1px solid var(--color-line);padding-block:var(--space-7);display:grid;gap:var(--space-5)}
@media (min-width:1024px){.site .project-cta{grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--grid-gap);align-items:center}.site .project-cta-text{grid-column:1 / span 6}.site .project-cta-actions{grid-column:8 / span 5;justify-content:flex-end}}
.site .project-cta-title{font-family:var(--font-display);font-weight:var(--weight-display-light);font-size:var(--text-xl);line-height:1.2;margin:0 0 var(--space-2);max-width:22ch}
.site .project-cta-text p{margin:0;color:var(--color-ink-2)}
.site .project-cta-actions{display:flex;flex-wrap:wrap;gap:var(--space-3)}

/* next project */
.site .next-project{padding-block:var(--section-gap)}
.site .next-project a{display:grid;gap:var(--space-5);text-decoration:none;color:inherit}
@media (min-width:1024px){.site .next-project a{grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--grid-gap);align-items:center}.site .next-project-text{grid-column:1 / span 5}.site .next-project-image{grid-column:7 / span 6}}
.site .next-project-title{font-family:var(--font-display);font-weight:var(--weight-display-light);font-size:var(--text-2xl);line-height:1.05;letter-spacing:-.02em;margin:0 0 var(--space-4);max-width:none;color:var(--color-ink);transition:color var(--duration-fast)}
.site .next-project a:hover .next-project-title{color:var(--color-accent-strong)}
.site .next-project img{transition:transform 1400ms var(--ease-out)}
.site .next-project a:hover img{transform:scale(1.02)}

/* ---------------------------------------------------------------- gallery */
.site .gallery{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--space-8) var(--grid-gap);margin:0;padding:0;list-style:none}
.site .gallery figure{margin:0;min-width:0}
.site .gallery .g-full{grid-column:1 / -1}
.site .gallery .g-wide{grid-column:2 / span 10}
.site .gallery .g-pair-a{grid-column:2 / span 5}
.site .gallery .g-pair-b{grid-column:7 / span 5;margin-top:var(--space-9)}
.site .gallery .g-solo-left{grid-column:2 / span 5}
.site .gallery .g-solo-right{grid-column:7 / span 5}
.site .gallery-open{display:block;width:100%;cursor:zoom-in;position:relative}
.site .gallery-open img{width:100%;background:var(--color-bg-2)}
.site .gallery figcaption{max-width:52ch}
.site .gallery-meta{display:none}
@media (min-width:640px) and (max-width:1023.98px){
  .site .gallery{gap:var(--space-7) var(--grid-gap)}
  .site .gallery .g-wide{grid-column:1 / -1}
  .site .gallery .g-pair-a,.site .gallery .g-solo-left{grid-column:1 / span 6}
  .site .gallery .g-pair-b,.site .gallery .g-solo-right{grid-column:7 / span 6;margin-top:var(--space-8)}
}
/* phone: a swipeable strip at true proportions (landscapes by width, portraits narrower), snapping to each photo */
@media (max-width:639.98px){
  .site .gallery{display:flex;align-items:flex-start;gap:var(--space-3);overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;margin-inline:calc(-1 * var(--gutter));padding-inline:var(--gutter);scroll-padding-inline:var(--gutter);scrollbar-width:none}
  .site .gallery::-webkit-scrollbar{display:none}
  .site .gallery figure{flex:0 0 auto;scroll-snap-align:start;margin:0!important;width:84vw}
  .site .gallery figure.is-portrait{width:62vw}
  .site .gallery-open img{width:100%;height:auto}
  .site .gallery figcaption{font-size:var(--text-xs);max-width:none}
  .site .gallery-meta{display:flex;justify-content:space-between;align-items:center;margin-top:var(--space-3);font-family:var(--font-display);font-size:var(--text-xs);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--color-ink-3)}
  .site .gallery-meta .gallery-progress{flex:1;margin-left:var(--space-4);height:1px;background:var(--color-line);position:relative;overflow:hidden}
  .site .gallery-meta .gallery-progress span{position:absolute;left:0;top:0;bottom:0;background:var(--color-ink);width:0;transition:width 200ms linear}
}

/* lightbox (a native dialog; dark in both themes so photos read at their true colours) */
.lightbox{border:0;padding:0;margin:0;max-width:100vw;max-height:100dvh;width:100vw;height:100dvh;background:#141210;color:#EFEAE2;overflow:hidden}
.lightbox::backdrop{background:#141210}
.lightbox[open]{display:grid;grid-template-rows:auto minmax(0,1fr) auto}
.lightbox .lb-top{display:flex;justify-content:space-between;align-items:center;padding:var(--space-3) var(--gutter);font-family:var(--font-display);font-size:var(--text-xs);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:#B5AEA4}
.lightbox .lb-stage{position:relative;display:grid;place-items:center;min-height:0;padding:0 var(--gutter);touch-action:pan-y pinch-zoom}
.lightbox .lb-stage img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;user-select:none;-webkit-user-drag:none;transition:opacity 250ms var(--ease-out),transform 250ms var(--ease-out)}
.lightbox .lb-stage img.is-changing{opacity:0}
.lightbox .lb-cap{padding:var(--space-3) var(--gutter) var(--space-5);font-family:var(--font-display);font-size:var(--text-sm);line-height:1.45;color:#B5AEA4;min-height:3.25rem;max-width:72ch}
.lightbox button{font:inherit;color:#EFEAE2;background:none;border:0;cursor:pointer;font-family:var(--font-display);font-weight:500;font-size:var(--text-xs);letter-spacing:var(--tracking-caps);text-transform:uppercase;min-height:44px;min-width:44px}
.lightbox button:focus-visible{outline:2px solid #9DB8A8;outline-offset:2px}
.lightbox .lb-prev,.lightbox .lb-next{position:absolute;top:0;bottom:0;width:min(18%,180px);display:flex;align-items:center;opacity:.7;transition:opacity var(--duration-fast)}
.lightbox .lb-prev{left:0;justify-content:flex-start;padding-left:var(--gutter)}
.lightbox .lb-next{right:0;justify-content:flex-end;padding-right:var(--gutter)}
.lightbox .lb-prev:hover,.lightbox .lb-next:hover{opacity:1}
@media (max-width:639.98px){.lightbox .lb-prev,.lightbox .lb-next{width:22%;font-size:0}.lightbox .lb-prev::before{content:"‹";font-size:2rem}.lightbox .lb-next::before{content:"›";font-size:2rem}}
html.lightbox-open,html.lightbox-open body{overflow:hidden}

/* ---------------------------------------------------------------- quote and call to action blocks */
.site .quote-block{margin:var(--section-gap) 0;max-width:52rem}
.site .quote-block blockquote{margin:0;padding:0;border:0}
.site .quote-block .quote-text{font-family:var(--font-display);font-weight:var(--weight-display-light);font-size:var(--text-xl);line-height:1.3;letter-spacing:-.01em;max-width:32ch;margin:0 0 var(--space-4);text-indent:-.4em}
.site .quote-block figcaption{font-family:var(--font-display);font-size:var(--text-xs);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--color-ink-2);margin:0}
.site .quote-block figcaption span{color:var(--color-ink-3)}
.site .cta-block{border-top:1px solid var(--color-line);padding-block:var(--section-gap) 0;display:grid;gap:var(--space-5)}
@media (min-width:1024px){.site .cta-block{grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--grid-gap);align-items:end}.site .cta-block .cta-title{grid-column:1 / span 7}.site .cta-block .cta-body{grid-column:8 / span 5}}
.site .cta-title{font-family:var(--font-display);font-weight:var(--weight-display-light);font-size:var(--text-2xl);line-height:1.05;letter-spacing:-.02em;max-width:16ch;margin:0}
.site .cta-body p{color:var(--color-ink-2)}
.site .cta-actions{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-5)}
.site .home-contact{padding-top:var(--section-gap)}

/* buttons and arrow links */
.site .button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-3);font-family:var(--font-display);font-weight:var(--weight-display-medium);font-size:var(--text-xs);letter-spacing:var(--tracking-caps);text-transform:uppercase;text-decoration:none;color:var(--color-ink);border:1px solid var(--color-ink);padding:14px 22px;min-height:48px;transition:background-color var(--duration-fast),color var(--duration-fast),border-color var(--duration-fast)}
.site .button:hover{background:var(--color-ink);color:var(--color-bg)}
.site .button-primary{background:var(--color-ink);color:var(--color-bg)}
.site .button-primary:hover{background:var(--color-accent-strong);border-color:var(--color-accent-strong);color:var(--color-on-accent)}
.site .arrow-link{display:inline-flex;align-items:center;gap:var(--space-3);font-family:var(--font-display);font-weight:var(--weight-display-medium);font-size:var(--text-xs);letter-spacing:var(--tracking-caps);text-transform:uppercase;text-decoration:none;color:var(--color-ink);min-height:44px}
.site .arrow-link::after{content:"";width:28px;border-top:1px solid currentColor;transition:width var(--duration-base) var(--ease-out)}
.site .arrow-link:hover{color:var(--color-accent-strong)}
.site .arrow-link:hover::after{width:44px}

/* ---------------------------------------------------------------- lists: steps, press, plain, FAQ */
.site .prose ol.steps,.site ol.steps{list-style:none;padding:0;margin:var(--space-6) 0;counter-reset:step;max-width:none;display:grid;gap:0;border-top:1px solid var(--color-line)}
.site ol.steps li{counter-increment:step;display:grid;grid-template-columns:3.5rem 1fr;gap:var(--space-4);padding:var(--space-5) 0;margin:0;border-bottom:1px solid var(--color-line)}
.site ol.steps li::before{content:counter(step,decimal-leading-zero);font-family:var(--font-display);font-weight:var(--weight-display-light);font-size:var(--text-lg);color:var(--color-ink-3);line-height:1.3}
.site ol.steps li strong:first-child{display:block;font-family:var(--font-display);font-weight:var(--weight-display);font-size:var(--text-lg);margin-bottom:var(--space-1)}
.site ul.press-list,.site .prose ul.press-list{list-style:none;padding:0;margin:0;border-top:1px solid var(--color-line);max-width:none}
.site ul.press-list li{padding:var(--space-4) 0;margin:0;border-bottom:1px solid var(--color-line)}
.site ul.press-list li strong:first-child{display:inline-block;min-width:9rem;font-family:var(--font-display);font-weight:var(--weight-display-medium);font-size:var(--text-xs);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--color-ink-2)}
.site ul.plain-list,.site .prose ul.plain-list{list-style:none;padding:0;columns:2 14rem;column-gap:var(--grid-gap)}
.site ul.plain-list li{break-inside:avoid;padding:var(--space-2) 0;border-bottom:1px solid var(--color-line);margin:0}
.site .faq{border-top:1px solid var(--color-line);max-width:var(--measure)}
.site .faq details{border-bottom:1px solid var(--color-line)}
.site .faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:var(--space-4);align-items:baseline;padding:var(--space-4) 0;font-family:var(--font-display);font-size:var(--text-lg);font-weight:var(--weight-display);line-height:1.3;min-height:44px}
.site .faq summary::-webkit-details-marker{display:none}
.site .faq summary::after{content:"+";font-weight:var(--weight-display-light);color:var(--color-ink-2);transition:transform var(--duration-base) var(--ease-out)}
.site .faq details[open] summary::after{transform:rotate(45deg)}
.site .faq .faq-answer{padding:0 0 var(--space-5)}
.site .faq .faq-answer p:last-child{margin-bottom:0}

/* studio in numbers */
.site ul.numbers,.site .prose ul.numbers{list-style:none;padding:0;margin:var(--space-7) 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;border-top:1px solid var(--color-line);max-width:none}
.site ul.numbers li{padding:var(--space-4) var(--space-4) var(--space-4) 0;margin:0;border-bottom:1px solid var(--color-line);display:grid;gap:var(--space-1)}
.site ul.numbers strong{font-family:var(--font-display);font-weight:var(--weight-display-light);font-size:var(--text-2xl);line-height:1;letter-spacing:-.02em}
.site ul.numbers span{font-family:var(--font-display);font-size:var(--text-xs);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--color-ink-2)}

/* journal */
.site .article-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--color-line)}
.site .article-list li{display:grid;gap:var(--space-2) var(--space-6);padding-block:var(--space-6);border-bottom:1px solid var(--color-line)}
@media (min-width:1024px){.site .article-list li{grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--grid-gap);align-items:baseline}.site .article-list time{grid-column:1 / span 2}.site .article-list .article-list-text{grid-column:3 / span 6}.site .article-list .article-list-image{grid-column:10 / span 3}}
.site .article-list time{font-family:var(--font-display);font-weight:var(--weight-display-medium);font-size:var(--text-xs);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--color-ink-2)}
.site .article-list h3{margin:0 0 var(--space-2);font-weight:var(--weight-display);font-size:var(--text-xl)}
.site .article-list h3 a{color:inherit;text-decoration:none}
.site .article-list h3 a:hover{color:var(--color-accent-strong)}
.site .article-list p{margin:0;color:var(--color-ink-2)}
.site .article-list-image{width:fit-content;max-width:min(100%,280px)}
.site .home-journal .article-list{border-top:0}
.site .home-journal .article-list li:first-child{padding-top:0}
.site .article-list-image img{max-height:340px;width:auto;max-width:100%}
.site .article-cover{margin-block:0 var(--section-gap)}
.site .article-body{margin-inline:auto}
@media (min-width:1024px){.site .article-body{margin-left:calc(100% / 12 * 4)}}

/* ---------------------------------------------------------------- contact and forms */
.site .contact-grid{display:grid;gap:var(--space-8)}
@media (min-width:1024px){.site .contact-grid{grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--grid-gap)}.site .contact-details{grid-column:1 / span 4}.site .contact-form{grid-column:6 / span 7}}
.site .contact-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--color-line)}
.site .contact-list li{display:grid;grid-template-columns:6.5rem 1fr;gap:var(--space-4);padding-block:var(--space-3);border-bottom:1px solid var(--color-line);margin:0;font-size:var(--text-sm)}
.site .contact-list li > :first-child{font-family:var(--font-display);font-weight:var(--weight-display-medium);font-size:var(--text-xs);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--color-ink-2);padding-top:.2em}
.site .contact-list a{word-break:break-word}
.site .form{display:grid;gap:var(--space-5)}
.site .form-row{display:grid;gap:var(--space-5)}
@media (min-width:640px){.site .form-row{grid-template-columns:1fr 1fr}}
.site .field{display:grid;gap:var(--space-2);min-width:0;margin:0;padding:0;border:0}
.site .field label,.site .field legend{font-family:var(--font-display);font-weight:var(--weight-display-medium);font-size:var(--text-xs);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--color-ink-2)}
.site .field .optional{text-transform:none;letter-spacing:0;color:var(--color-ink-3);font-weight:var(--weight-display)}
.site .field input[type="text"],.site .field input[type="email"],.site .field input[type="tel"],.site .field select,.site .field textarea{width:100%;font:inherit;font-size:16px;line-height:1.4;color:var(--color-ink);background:var(--color-bg);border:1px solid var(--color-line);border-bottom-color:var(--color-ink-3);padding:12px 14px;min-height:50px;border-radius:0;-webkit-appearance:none;appearance:none;transition:border-color var(--duration-fast)}
.site .field select{background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%);background-position:calc(100% - 20px) 50%,calc(100% - 15px) 50%;background-size:5px 5px;background-repeat:no-repeat;padding-right:40px}
.site .field textarea{min-height:9rem;resize:vertical}
.site .field input:focus,.site .field select:focus,.site .field textarea:focus{outline:var(--focus-ring);outline-offset:0;border-color:var(--color-accent)}
.site .field [aria-invalid="true"]{border-color:#A2503F}
:root[data-theme="dark"] .site .field [aria-invalid="true"]{border-color:#D98A79}
.site .field .hint,.site .field .error{font-size:var(--text-sm);margin:0}
.site .field .hint{color:var(--color-ink-3)}
.site .field .error{color:#A2503F}
:root[data-theme="dark"] .site .field .error{color:#D98A79}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .site .field .error{color:#D98A79}}
.site .field-check{display:grid;grid-template-columns:auto 1fr;gap:var(--space-3);align-items:start;font-size:var(--text-sm);line-height:1.5}
.site .field-check input{width:22px;height:22px;margin:1px 0 0;accent-color:var(--color-accent-strong)}
.site .form-actions{display:flex;flex-wrap:wrap;gap:var(--space-4);align-items:center}
.site .form-note{font-size:var(--text-sm);color:var(--color-ink-3);margin:0}
.site .form-message{border-left:2px solid var(--color-accent);padding:var(--space-2) 0 var(--space-2) var(--space-4);margin:0 0 var(--space-5)}
.site .form-message.is-error{border-color:#A2503F}
.site .form-message h2{font-size:var(--text-xl);margin-bottom:var(--space-2)}
.site .hp-field{position:absolute!important;left:-10000px!important;top:auto;width:1px;height:1px;overflow:hidden}

/* ---------------------------------------------------------------- footer */
.site .site-footer{margin-top:var(--section-gap);background:var(--color-bg-2);transition:background-color 300ms var(--ease-out);font-family:var(--font-display);font-size:var(--text-sm)}
.site .footer-grid{display:grid;gap:var(--space-7);padding-block:var(--space-8) var(--space-7)}
@media (min-width:640px){.site .footer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1024px){.site .footer-grid{grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--grid-gap);padding-block:var(--space-9) var(--space-8)}.site .footer-brand{grid-column:1 / span 3}.site .footer-about{grid-column:4 / span 3}.site .footer-contact{grid-column:7 / span 3}.site .footer-links{grid-column:10 / span 3}}
.site .footer-brand{color:var(--color-ink);display:inline-block;width:92px}
.site .footer-brand svg{width:92px;height:auto}
/* Sinhala: the Sinhala faces take over through the font stacks; a touch more line height for the taller script */
.site:lang(si),:lang(si) .site{line-height:1.75}
:lang(si) .site h1,:lang(si) .site h2,:lang(si) .site .home-statement h1,:lang(si) .site .project-title h1{line-height:1.25;letter-spacing:0}
:lang(si) .site .home-statement h1,:lang(si) .site .project-title h1,:lang(si) .site .landing-head h1{font-size:calc(var(--text-3xl) * .74)}
:lang(si) .site h1{font-size:calc(var(--text-2xl) * .82)}
:lang(si) .site .cta-title,:lang(si) .site .next-project-title{font-size:calc(var(--text-2xl) * .8);line-height:1.25}
:lang(si) .site .site-nav a,:lang(si) .site .label,:lang(si) .site .section-label,:lang(si) .site .filter,:lang(si) .site .button,:lang(si) .site .arrow-link{font-size:var(--text-sm)}
:lang(si) .site .label,:lang(si) .site .section-label,:lang(si) .site .site-nav a,:lang(si) .site .filter,:lang(si) .site .arrow-link,:lang(si) .site .button{letter-spacing:.02em}
.site .site-footer p{max-width:30ch;color:var(--color-ink-2);margin-bottom:var(--space-3);font-size:var(--text-sm);line-height:1.55}
.site .site-footer h2,.site .site-footer h3{font-size:var(--text-xs);font-weight:var(--weight-display-medium);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--color-ink-2);margin:0 0 var(--space-4)}
.site .site-footer a{color:var(--color-ink);text-decoration:none;border-bottom:1px solid var(--color-line)}
.site .site-footer a:hover{border-color:var(--color-ink)}
.site .site-footer ul{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-2)}
.site .footer-bottom{border-top:1px solid var(--color-line);padding-block:var(--space-4) var(--space-5);display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-6);justify-content:space-between;align-items:center;font-size:var(--text-xs);letter-spacing:.04em;color:var(--color-ink-3)}
.site .footer-bottom p{margin:0;max-width:none;font-size:var(--text-xs);color:var(--color-ink-3)}
.site .footer-bottom a{color:var(--color-ink-2);border-bottom:1px solid transparent}
.site .footer-bottom a:hover{color:var(--color-ink);border-bottom-color:currentColor}
.site .footer-bottom button{text-decoration:underline;text-underline-offset:.2em;color:var(--color-ink-2);min-height:32px}
.site .made-by{order:99;flex-basis:100%;text-align:left}
@media (min-width:1024px){.site .made-by{flex-basis:auto;order:0}}

/* ---------------------------------------------------------------- enquiry, landing, language */
.site .enquiry-title{font-size:var(--text-xl);margin-bottom:var(--space-3)}
.site .enquiry-intro{color:var(--color-ink-2)}
.site .quick-contact{display:flex;flex-wrap:wrap;gap:var(--space-3);margin:0 0 var(--space-7)}
.site .quick-contact .button{flex:1 1 auto;min-width:8rem}
@media (min-width:640px){.site .quick-contact .button{flex:0 0 auto}}
.site .landing-head h1{font-size:var(--text-3xl);letter-spacing:-.025em;line-height:1.02;max-width:12ch}
.site .landing-grid{display:grid;gap:var(--space-8)}
@media (min-width:1024px){.site .landing-grid{grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--grid-gap)}.site .landing-form{grid-column:1 / span 7}.site .landing-aside{grid-column:9 / span 4}}
.site .landing-aside:empty{display:none}
.site .lang-switch{font-family:var(--font-display);font-weight:var(--weight-display-medium);font-size:var(--text-sm);color:var(--color-ink-2);text-decoration:none;min-height:44px;display:inline-flex;align-items:center;padding-inline:var(--space-2)}
.site .lang-switch:hover{color:var(--color-ink)}
.site .lang-switch:lang(si){font-family:"Yaldevi",var(--font-display);font-size:var(--text-sm)}
.site .site-nav-foot .lang-switch{padding:0;min-height:0;margin-top:var(--space-3);font-size:var(--text-md);color:var(--color-ink);text-decoration:underline}
.site .lang-switch-wrap{display:none}
@media (min-width:1024px){.site .lang-switch-wrap{display:inline-flex}}
.site.is-minimal .lang-switch-wrap{display:inline-flex}
.site .header-back{margin-right:var(--space-2)}
@media (max-width:639.98px){.site .header-back{font-size:0;gap:0}.site .header-back::before{content:"←";font-size:var(--text-md)}.site .header-back::after{display:none}}
.site .client-login a{color:var(--color-ink-3)}

/* ---------------------------------------------------------------- misc pages */
.site .not-found{padding-block:var(--space-8) var(--space-6)}
.site .not-found h1{max-width:16ch}
.site .not-found-links{list-style:none;margin:var(--space-7) 0 0;padding:0;display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-7)}
.site .legal-text{max-width:68ch}
.site .legal-text h2{font-size:var(--text-lg);font-weight:var(--weight-display);margin-top:var(--space-7)}
.site .single-page{max-width:40rem}
.site .client-section{padding-top:var(--space-8)}

/* ---------------------------------------------------------------- login (Concrete's form, in the site's style) */
.site .single-page{max-width:34rem;padding-block:var(--space-8) var(--space-6)}
.site .login-page h1,.site .single-page h1{font-size:var(--text-2xl);margin-bottom:var(--space-6)}
.site .single-page h1 strong{font-weight:var(--weight-display-light)}
.site .concrete-login-form .form-group,.site .concrete-login-form .row,.site .concrete-login-form .mb-3{display:grid;gap:var(--space-2);margin:0 0 var(--space-5)}
.site .concrete-login-form label,.site .concrete-login-form .col-form-label{font-family:var(--font-display);font-weight:var(--weight-display-medium);font-size:var(--text-xs);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--color-ink-2)}
.site .concrete-login-form .form-check-label{text-transform:none;letter-spacing:0;font-size:var(--text-sm);font-family:var(--font-text)}
.site .concrete-login-form .form-control{width:100%;font:inherit;font-size:16px;color:var(--color-ink);background:var(--color-bg);border:1px solid var(--color-line);border-bottom-color:var(--color-ink-3);padding:12px 14px;min-height:50px;border-radius:0}
.site .concrete-login-form .form-control:focus{outline:var(--focus-ring);outline-offset:0;border-color:var(--color-accent)}
.site .concrete-login-form .input-group{display:flex}
.site .concrete-login-form .input-group button{display:none}
.site .concrete-login-form .btn{display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:var(--weight-display-medium);font-size:var(--text-xs);letter-spacing:var(--tracking-caps);text-transform:uppercase;text-decoration:none;border:1px solid var(--color-ink);padding:14px 22px;min-height:48px;background:none;color:var(--color-ink);cursor:pointer}
.site .concrete-login-form .btn-primary{background:var(--color-ink);color:var(--color-bg)}
.site .concrete-login-form .btn-primary:hover{background:var(--color-accent-strong);border-color:var(--color-accent-strong);color:var(--color-on-accent)}
.site .concrete-login-form .form-check{display:flex;gap:var(--space-2);align-items:center}
.site .concrete-login-form input[type=checkbox]{width:20px;height:20px;accent-color:var(--color-accent-strong)}
.site .concrete-login-form a{color:var(--color-ink-2)}
.site .concrete-login-form .col-sm-3,.site .concrete-login-form .col-sm-9,.site .concrete-login-form .col-sm-12{width:auto}
.site .concrete-login-form .text-end,.site .concrete-login-form .text-right{text-align:left}
.site .alert{border-left:2px solid var(--color-accent);padding:var(--space-3) var(--space-4);margin:0 0 var(--space-5);background:var(--color-bg-2)}
.site .alert-danger{border-color:#A2503F}

/* ---------------------------------------------------------------- Concrete edit mode */
.site .edit-hint{grid-column:1 / -1;font-family:var(--font-display);font-size:var(--text-sm);background:var(--color-bg-2);border-left:2px solid var(--color-accent);padding:var(--space-3) var(--space-4);margin:var(--space-4) 0 0;max-width:none;color:var(--color-ink)}
.site.is-editing .site-nav{position:static!important;visibility:visible!important;opacity:1!important;background:none!important;padding:0!important;display:block!important}
.site.is-editing .gallery{display:grid}
.site.is-editing .ccm-area{min-height:40px}

/* ---------------------------------------------------------------- print: text and photographs only */
@media print{
  .site .site-header .site-actions,.site .skip-link,.site .theme-reset,.site .project-cta,.site .next-project,.site .quick-contact,.site .project-filters,.site .gallery-meta,.site form,.site .cta-actions{display:none!important}
  .site{background:#fff;color:#000}
  .site .gallery{display:block}.site .gallery figure{break-inside:avoid;margin:0 0 12pt!important}
  .site a{color:#000}
  .js .site .will-reveal,.js .site img.will-fade{opacity:1!important;transform:none!important}
}
