*{box-sizing:border-box;margin:0;padding:0;text-rendering:optimizeLegibility;-webkit-font-smoothing: antialiased;outline:none}
::-webkit-input-placeholder {color:inherit;font: inherit;}
::-moz-placeholder {color:inherit;font: inherit;}
::placeholder {color:inherit;font: inherit;}
:-ms-input-placeholder {color:inherit;font: inherit;}
:-moz-placeholder {color:inherit;font: inherit;}

h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{text-wrap: balance;}

h1, .h1 {font-size:min(3.5rem, 3.5vw);line-height: 1;hyphens: auto;}
h2, .h2 {font-size:min(2.5rem, 2.5vw);line-height: 1;}
h3, .h3 {font-size:min(1.75rem, 1.75vw);line-height: 1;}
h4, .h4 {font-size:min(1.25rem, 1.25vw);line-height: 1;}
h5, .h5{font-size:min(1rem, 1vw);line-height: 1.1;}
h6, .h6 {font-size:min(.8rem, .8vw);line-height: 1.25;}

.p0 {
  font-size: clamp(2.75rem, 5vw, 4.5rem); /* 44–72px */
  line-height: 1.05;
  letter-spacing: -0.035em;
}

.p1 {
  font-size: clamp(2.25rem, 3.4vw, 3rem); /* 36–48px */
  line-height: 1.1;
  letter-spacing: -0.03em;
}

.p2 {
  font-size: clamp(1.75rem, 2.5vw, 2.25rem); /* 28–36px */
  line-height: 1.15;
  letter-spacing: -0.02em;
}

.p3 {
  font-size: clamp(1.5rem, 2vw, 1.75rem); /* 24–28px */
  line-height: 1.2;
  letter-spacing: -0.015em;
}

.p4 {
  font-size: clamp(1.125rem, 1.45vw, 1.3125rem); /* 18–21px */
  line-height: 1.3;
}

.p5 {
  font-size: 1rem; /* 16px */
  line-height: 1.5;
}

.p6 {
  font-size: 0.75rem; /* 12px */
  line-height: 1.45;
}

/* More readable text blocks */
p {
  max-width: 70ch;
  margin-block: 0 1em;
}

/* Paragraphs and longer text */
p, li {
  text-wrap: pretty;
}

/* Prevent oversized display text on narrow screens */
@media (max-width: 480px) {
  .p0 {
    letter-spacing: -0.025em;
  }
}

strong, .strong {font-weight: 600;}
small, .small {font-size:.9rem;}

a {color:inherit;text-decoration: none;}
a.ul {text-decoration: underline;text-decoration-color:color-mix(in srgb, currentColor 25%, transparent);text-decoration-thickness: .05em;text-underline-offset: .1em;transition: text-decoration-color .25s;}
a.ul:hover, a.ul.active {text-decoration-color:inherit;}
a.tick {transition: translate .5s;display:inline-block}
a.tick:hover {translate:.25em}
a.zoom {transition: scale .5s;display:inline-block;}
a.zoom:hover {scale:1.01}

a.button{padding:.5em 1em;display:inline-block;width:auto;min-width:10rem;color:inherit;font-size:1.25rem;transition:all .5s;cursor:pointer;font-weight:500;letter-spacing:-.05em;border-radius:2rem;border:2px solid;text-align: center;}
a.button:hover{background:#000;color:#fff;}
a.button.small {padding:.5rem;font-size:1rem;}
.col:has(.more) {position:relative;}
a.more{position: absolute;right:0;bottom:0;}
a.tooltip {position:relative}
a.tooltip:before {position:absolute;content:attr(data-tt);left:0;top:100%;background:rgb(0 0 0 /75%);color:#fff;padding:.25em;pointer-events:none;opacity:0;transition:opacity .5s;}
a.tooltip:hover:before {opacity:1;}
a.arw {padding-left:1rem;position:relative;}
a.arw:before {content: '';position: absolute;width: .4em;height: .4em;transform: rotate(-135deg);margin-left: -1rem;top: .6rem;border-left: 1px solid;border-bottom: 1px solid;}
a.download {display:inline-block;min-width:80%;}
a.file{margin: 1rem 0;padding: 0.25em 0.57em;border: 1px solid;display: inline-block;transition:scale .25s;}
a.file:hover{scale:1.05}

a figure{overflow:hidden;margin-bottom:.5rem;}
a figure img{display:block;transition:scale .5s;}
a figure:hover img{scale:1.01;}

hr {border:none;border-bottom:1px solid;margin:.5rem 0;}
hr.inset {margin:.5rem;}
hr.naked {margin:0;}

figure {position:relative;container-type: inline-size;}
figure img, figure video {max-width: 100%;display: block;object-fit: contain}

figure img{transition:opacity 2s;width:100%;}
figure picture{overflow:hidden;}

figure figcaption {padding:.25em 0;/*font-size: 0.8rem;*/}
figure figcaption strong{font-weight:300;}
figure figcaption .author{	position: absolute;	left: 100%;top: 0;rotate: -90deg;white-space: nowrap;transform-origin: left top;font-size:.75rem;padding-top:.5em;}
figure.nocaption figcaption {display:none;s}
figure.portrait {aspect-ratio:3/4;}
figure.fit {width:100%;height:100%;}
figure.fix img{width:100%;height:100%;object-fit:cover;}
figure.fix.fit img{width:100%;height:100%;}
figure.fix.contain img{object-fit:contain;background:linear-gradient(45deg, #f0f0f0, #fff);}

figure.circled img {aspect-ratio:1/1;border-radius:100%;overflow:hidden}
figure.circled.half {width:50%;}
figure.circled.third {width:33.33%;}
figure.circled picture img{width:100%;height:100%;object-fit:cover;}

figure.grey img {filter: grayscale(1);transition: .5s;}
figure.grey img:hover {filter: grayscale(0)}
figure.desaturated img {filter: grayscale(.5);transition: .5s;}
figure.desaturated img:hover {filter: grayscale(0)}
figure.greyed {	background: linear-gradient(45deg, #f0f0f0, #fff);}
figure.greyed img{	mix-blend-mode: multiply;}

figure.shaded img{box-shadow: 0 0 1em rgb(0 0 0 / 10%)}
iframe {border:0;width:100%;aspect-ratio:1.6}
figure.zoom img{transition:scale 2s;}
figure.zoom:hover img{scale:1.01}
figure:has(.lazy) {background:linear-gradient(0deg, transparent, #f0f0f0);filter:blur(10rem)}
figure:has(.loaded) {background:none;filter:blur(0)}
img.lazy {opacity:0;scale:.5;translate:0 50%;transition:scale .25s, opacity 2s, translate .5s;}
img.loaded {opacity:1;scale:1;translate:0}

ul {list-style:none;}
ul.inline{display:block;}
ul.inline li{padding-left:20px;margin:5px 0;background:url(/lib/gfx/arw.svg) no-repeat 0 7px;}



.regular {font-weight: 400 !important;}
.stronger {font-weight: 900;}

.bullet{position:relative;display:block;margin:1em 0;padding-left:2em;font-style:normal;}
.bullet:before{position:absolute;translate:-1.25em;content:'●';}

.r50 {aspect-ratio:2;}
.r60 {aspect-ratio:10/6;}
.r75 {aspect-ratio:4/3;}
.r100 {aspect-ratio:1;}
.r150 {aspect-ratio:2/1;}
.r169 {aspect-ratio:16/9;}

.darken {filter:brightness(.75)}
.ellipsis, .lps, .elps{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display: block;}
.up {text-transform:uppercase}

.grid, .row {display: grid;grid-template-columns: repeat(12, minmax(0, 1fr));gap: 1rem;}
.grid, .row > * { grid-column: span 12;}

.col.m1  { grid-column: span 1; }
.col.m2  { grid-column: span 2; }
.col.m3  { grid-column: span 3; }
.col.m4  { grid-column: span 4; }
.col.m5  { grid-column: span 5; }
.col.m6  { grid-column: span 6; }
.col.m7  { grid-column: span 7; }
.col.m8  { grid-column: span 8; }
.col.m9  { grid-column: span 9; }
.col.m10 { grid-column: span 10; }
.col.m11 { grid-column: span 11; }
.col.m12 { grid-column: span 12; }

.offset-m0  { grid-column-start: 1; }
.offset-m1  { grid-column-start: 2; }
.offset-m2  { grid-column-start: 3; }
.offset-m3  { grid-column-start: 4; }
.offset-m4  { grid-column-start: 5; }
.offset-m5  { grid-column-start: 6; }
.offset-m6  { grid-column-start: 7; }
.offset-m7  { grid-column-start: 8; }
.offset-m8  { grid-column-start: 9; }
.offset-m9  { grid-column-start: 10; }
.offset-m10 { grid-column-start: 11; }
.offset-m11 { grid-column-start: 12; }

.cc {max-width: var(--content-width);margin:1rem auto;padding:1rem}

.c0 {max-width: 60rem;margin:1rem auto;padding:1rem}
.c2 {margin:0 auto;max-width:80rem;padding:1rem;}
.c3 {margin:0 auto;max-width:100rem;padding:1rem;}
.c4 {width:50%;margin:0 auto;padding:1rem;}
.c5 {width:33.33333%;display:inline-block;}

.col-2 {column-count: 2}
.col-3 {column-count: 3}

.pr {padding-right:1em;}
.read {max-width:40em}
.read.c {margin:0 auto;}
.mb0 {display:block;margin-bottom:.5rem;}
.mb {display:block;margin-bottom:1rem;}
.mb2 {display:block;margin-bottom:2rem;}
.mb3 {display:block;margin-bottom:3rem;}
.mb4 {display:block;margin-bottom:4rem;}

.bx {width:.9em;height:.9em;display:inline-block;vertical-align:middle;margin-right:.25em;}

.social-icon { width: 1em; height: 1em; vertical-align: -0.125em;}

.hpn {hyphens: auto;}
.lo {text-transform:lowercase;}
.mr {margin-right:1em;}
.pd0 {padding:.5rem;}
.pd {padding:1rem;}
.pd2 {padding:2rem;}
.pd3 {padding:3rem;}
.pd4 {padding:4rem;}
.pv00 {padding:.25rem 0;}
.pv0 {padding:.5rem 0;}
.pv {padding:1rem 0;}
.pv2 {padding:2rem 0;}
.pv3 {padding:3rem 0;}
.ph0 {padding:0 .5rem ;}
.ph {padding:0 1rem ;}
.ph2 {padding:0 2rem;}
.ph3 {padding:0 3rem;}
.spacer {height:4rem;}
.spacer-0 {height:2rem;}
.spacer-2 {height:8rem;}

.max-3 {max-height:4em;overflow: hidden;mask-image: linear-gradient(to bottom, black 50%, transparent 100%);}
.max-12 {height:12em;overflow: hidden;mask-image: linear-gradient(to bottom, black 50%, transparent 100%);transition:height 2s;}
.max-12:hover {height:18em;mask-image: linear-gradient(to bottom, black 90%, transparent 100%)}

.lft {text-align: left;}
.rgt {text-align: right;}
.ctr {text-align: center;}

.bb {border-bottom:1px solid;}
.wfg {color:#fff;}
.bfg {color:#000;}
.dfg {color:#232323;}
.wbg {background:#fff;}
.bbg {background:#000;}
.dbg {background:#232323;}

.lfg {color:#e3dfd3;}
.lbg {background:#e3dfd3;}
.ll {border-left:1px solid;}
.tc {display: grid;grid-template-rows: 1.6em 0fr;transition: all .25s linear;}
.tc.active{grid-template-rows: 1.6em 1fr;margin-bottom:1rem;}

.tc .t {border-bottom:1px solid;position:relative;transition: translate .5s;cursor:pointer;user-select:none;line-height:1.5;padding-right:2em;}
.tc .t:hover {background:var(--fg);color:var(--bg)}
.tc .t:after {	content: '';position: absolute;	width: 0.4em;height: 0.4em;border-top: 1px solid;border-right: 1px solid;right: .25em;rotate: 45deg;	top: .5em;transition:rotate .5s;}
.tc.active > .t:after {rotate: 135deg;}

.tc .c {overflow:hidden;}
.hide-desktop {display:none}
.hide-mobile {display:block}

.tt {padding: .25em 0 .25em 10em;position: relative}
.tt:before {position:absolute;content:attr(data-title);left:1em;text-transform: lowercase;}

.vv {padding-left:10em;position: relative;margin:.25em 0}
.vv:before {position: absolute;left:0;font-size:80%; max-width:10em;content:attr(data-title)}

.up-right-arrow {
  display: inline-block;
  width: .5em;
  height: .5em;
  background-color: currentColor;

  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cpath d='M5 5H95V95M5 95L95 5' fill='none' stroke='black' stroke-width='10' stroke-linecap='square' stroke-linejoin='miter'/%3E%3C/svg%3E")
  center / 100% 100% no-repeat;

  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cpath d='M5 5H95V95M5 95L95 5' fill='none' stroke='black' stroke-width='10' stroke-linecap='square' stroke-linejoin='miter'/%3E%3C/svg%3E")
  center / 100% 100% no-repeat;
}

@media (max-width: 740px) {
  h1, .h1 {font-size:2.5rem;line-height: 1;}
  h2, .h2, .p0 {font-size:2rem;line-height: 1;}
  h3, .h3 {font-size:1.5rem;line-height: 1;}
  h4, .h4 {font-size:1.25rem;line-height: 1.25;}
  h5, .h5{font-size:1rem;line-height: 1.1;}
  h6, .h6 {font-size:.75rem;line-height: 1.25;}

  .p0 {font-size:3rem;line-height: 1.2;}
  .p1 {font-size:2rem;line-height: 1.2;}
  .p2 {font-size:1.5rem;line-height: 1.2;}
  .p3 {font-size:1.5rem;line-height: 1.2;}
  .p4 {font-size:1.25rem;line-height: 1.2;}
  .p5 {font-size:1rem;line-height: 1.2;}
  .p6 {font-size:1rem;line-height: 1.2;}

  .cc {padding:.5rem}
  .grid > * { grid-column: span 12;}
  .col.s1  { grid-column: span 1; }
  .col.s2  { grid-column: span 2; }
  .col.s3  { grid-column: span 3; }
  .col.s4  { grid-column: span 4; }
  .col.s5  { grid-column: span 5; }
  .col.s6  { grid-column: span 6; }
  .col.s7  { grid-column: span 7; }
  .col.s8  { grid-column: span 8; }
  .col.s9  { grid-column: span 9; }
  .col.s10 { grid-column: span 10; }
  .col.s11 { grid-column: span 11; }
  .col.s12 { grid-column: span 12; }

  .hide-desktop {display:block}
  .hide-mobile {display: none;}
}

/* =========================================================
   TAP AND FOCUS
   No blue flash when tapping on a phone. The focus outline only for
   keyboard users (Tab), never removed: they need it to see where they are.
========================================================= */

* { -webkit-tap-highlight-color: transparent; }
:focus:not(:focus-visible) { outline: none; }
:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }
