/* Marfeldt design tokens.
   Colours and fonts come from Elementor > Site Settings (Global Colors / Global Fonts,
   entries starting with "MF"). The values after the comma are fallbacks. */
body{
  --mf-ink:var(--e-global-color-mfink,#0B0C0B);
  --mf-ink-2:var(--e-global-color-mfink2,#141614);
  --mf-line:var(--e-global-color-mfline,#2A2D2A);
  --mf-bone:var(--e-global-color-mfbone,#ECE8E0);
  --mf-soft:var(--e-global-color-mfsoft,#BDBAB3);
  --mf-fog:var(--e-global-color-mffog,#8F948F);
  --mf-ice:var(--e-global-color-mfice,#C4CCB1);
  --mf-rust:var(--e-global-color-mfrust,#D9A45B);
  --mf-display:var(--e-global-typography-mfdisplay-font-family,"Archivo Expanded"),"Arial Black",sans-serif;
  --mf-serif:var(--e-global-typography-mfserif-font-family,"Cormorant Garamond"),Georgia,"Times New Roman",serif;
  --mf-mono:var(--e-global-typography-mfmono-font-family,"JetBrains Mono"),ui-monospace,Menlo,monospace;
  --mf-sans:var(--e-global-typography-mfbody-font-family,"Hanken Grotesk"),system-ui,-apple-system,sans-serif;
  --mf-dk:.58;          /* size multiplier for the wide display face */
  --mf-sw:400;          /* serif weight */
  --mf-gutter:clamp(16px,4vw,64px);
  color-scheme:dark;
}
body.mfw{background:var(--mf-ink);color:var(--mf-bone);font-family:var(--mf-sans);-webkit-font-smoothing:antialiased;overflow-x:clip}
.mfw a{color:inherit}
.mfw :focus-visible{outline:2px solid var(--mf-ice);outline-offset:4px}

/* shared type helpers, usable as CSS classes on any Elementor widget */
.mf-disp,.mf-disp *{font-family:var(--mf-display);font-weight:900;text-transform:uppercase;letter-spacing:-.005em}
.mf-ser,.mf-ser *{font-family:var(--mf-serif);font-style:italic;font-weight:var(--mf-sw);text-transform:none;letter-spacing:-.015em}
.mf-mono,.mf-mono *{font-family:var(--mf-mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase}
.mf-sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* film grain */
.mf-grain{position:fixed;inset:-64px;will-change:transform;background-size:160px 160px;pointer-events:none;z-index:9990;opacity:.07;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  animation:mf-grain 1.2s steps(6) infinite}
/* the grain moves as one layer (no repaint), in the same steps as before */
@keyframes mf-grain{0%{transform:translate(0,0)}20%{transform:translate(-43px,29px)}40%{transform:translate(31px,-58px)}60%{transform:translate(-61px,-17px)}80%{transform:translate(47px,41px)}100%{transform:translate(0,0)}}
@media (prefers-reduced-motion: reduce){.mf-grain{animation:none}}

/* Marfeldt section widgets sit edge to edge: no Elementor widget spacing around them */
.elementor-widget[class*="elementor-widget-mf-"]{margin-block-end:0!important;--kit-widget-spacing:0px}
.elementor-widget[class*="elementor-widget-mf-"]>.elementor-widget-container{margin:0;padding:0}

/* Film-cut page transitions (browsers that support cross-page view transitions) */
@media (prefers-reduced-motion: no-preference){
  @view-transition{navigation:auto}
  html{background:#0B0C0B}
  ::view-transition-old(root){animation:mf-vt-out .38s cubic-bezier(.7,0,.3,1) both}
  ::view-transition-new(root){animation:mf-vt-in .7s .12s cubic-bezier(.2,.8,.2,1) both}
}
@keyframes mf-vt-out{to{opacity:0;transform:scale(.985);filter:brightness(.3)}}
@keyframes mf-vt-in{from{clip-path:inset(100% 0 0 0);opacity:.6}to{clip-path:inset(0 0 0 0);opacity:1}}

/* Signature that writes itself in when it comes into view (Martin's After Effects animation) */
.mf-sig{display:block;width:min(230px,60%);margin-top:4px;line-height:0}
.mf-sig svg{display:block;width:100%;height:auto;overflow:visible}
.mf-sig path{fill:none;stroke:var(--mf-bone);stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:100;stroke-dashoffset:100}
@media (prefers-reduced-motion: reduce){.mf-sig path{stroke-dashoffset:0!important;animation:none!important}}

/* Cookie consent */
.mf-consent{position:fixed;left:clamp(12px,2vw,24px);bottom:clamp(12px,2vw,24px);z-index:9994;max-width:380px;padding:18px 18px 16px;background:rgba(20,22,20,.96);border:1px solid var(--mf-line);box-shadow:0 20px 50px rgba(0,0,0,.5);color:var(--mf-soft);font-family:var(--mf-sans);font-size:15px;line-height:1.5;opacity:0;transform:translateY(12px);transition:opacity .4s,transform .5s cubic-bezier(.2,.8,.2,1)}
.mf-consent[hidden]{display:none}
.mf-consent.on{opacity:1;transform:none}
.mf-consent p{margin:0 0 14px}
.mf-consent a{color:var(--mf-ice)}
.mf-consent .b{display:flex;gap:8px}
.mf-consent button,.mf-consent button:focus,body.mfw .mf-consent button{height:40px;padding:0 16px;margin:0;border:1px solid var(--mf-line);border-radius:0;background:transparent;color:var(--mf-bone);font-family:var(--mf-mono);font-size:11px;font-weight:400;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;box-shadow:none}
.mf-consent button[data-c="granted"]{background:var(--mf-bone);color:var(--mf-ink);border-color:var(--mf-bone)}
.mf-consent button:hover{border-color:var(--mf-rust);color:var(--mf-rust);background:transparent}
.mf-consent-open,.mf-consent-open:focus{padding:0;margin:0;background:none;border:0;cursor:pointer;font:inherit;letter-spacing:inherit;text-transform:inherit;color:inherit}
.mf-consent-open:hover{color:var(--mf-rust);background:none}

/* keep the consent buttons in the site style (the old theme styles every button) */
body.mfw .mf-consent button,body.mfw .mf-consent button:focus{height:40px!important;padding:0 16px!important;margin:0!important;background:transparent!important;background-image:none!important;border:1px solid var(--mf-line)!important;border-radius:0!important;box-shadow:none!important;text-shadow:none!important;color:var(--mf-bone)!important;font-family:var(--mf-mono)!important;font-size:11px!important;font-weight:400!important;letter-spacing:.12em!important;line-height:1!important;text-transform:uppercase!important}
body.mfw .mf-consent button[data-c="granted"]{background:var(--mf-bone)!important;color:var(--mf-ink)!important;border-color:var(--mf-bone)!important}
body.mfw .mf-consent button:hover{background:transparent!important;border-color:var(--mf-rust)!important;color:var(--mf-rust)!important}
body.mfw .mf-totop-btn{background-image:none!important;border-radius:0!important;box-shadow:none!important}

/* shared buttons and page headings (used on every page, not only where pages.css loads) */
/* ================= shared ================= */
body.mfw .mf-p-head{padding:clamp(128px,20vh,200px) var(--mf-gutter) clamp(32px,5vh,56px);display:grid;grid-template-columns:minmax(0,1fr);gap:24px;align-items:end}
body.mfw .mf-p-title{margin:0;padding-top:.06em;font-family:var(--mf-display);font-weight:900;text-transform:uppercase;font-size:calc(var(--mf-dk) * clamp(60px,11vw,190px));line-height:.9;letter-spacing:-.01em;color:var(--mf-bone)}
body.mfw .mf-p-title .mf-ser{display:block;font-size:calc(.38em / var(--mf-dk));line-height:1.1;color:var(--mf-ice);margin-bottom:.1em}
body.mfw .mf-p-intro{margin:0;max-width:52ch;color:var(--mf-soft);font-family:var(--mf-sans);font-size:18px;line-height:1.55}
@media (min-width:1000px){body.mfw .mf-p-head{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr)}}
body.mfw .mf-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
body.mfw .mf-cbtn,body.mfw .mf-cbtn:hover,body.mfw .mf-cbtn:focus{height:38px;padding:0 14px;margin:0;background:transparent;border:1px solid var(--mf-line);border-radius:0;font-family:var(--mf-mono);font-size:11px;font-weight:400;letter-spacing:.1em;text-transform:uppercase;color:var(--mf-bone);cursor:pointer;display:inline-flex;align-items:center;text-decoration:none;box-shadow:none;transition:border-color .25s,color .25s}
body.mfw .mf-cbtn:hover{border-color:var(--mf-rust);color:var(--mf-rust)}
body.mfw .mf-send,body.mfw .mf-send:focus{display:inline-flex;align-items:center;gap:14px;height:52px;padding:0 26px;margin:0;background:var(--mf-bone);color:var(--mf-ink);border:0;border-radius:0;font-family:var(--mf-mono);font-size:12px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;cursor:pointer;box-shadow:none;transition:background .3s,gap .3s,color .3s}
body.mfw .mf-send:hover{background:var(--mf-rust);color:var(--mf-ink);gap:20px}
body.mfw .mf-send.is-big,body.mfw .mf-send.is-big:focus{height:60px;padding:0 30px}
body.mfw .mf-send svg{width:18px;height:18px}
body.mfw .mf-send[disabled]{opacity:.6;cursor:wait}
body.mfw .fmsg{min-height:1.4em;font-family:var(--mf-sans);font-size:16px;color:var(--mf-ice)}
body.mfw .fmsg.is-err{color:var(--mf-rust)}
/* page headings with an info panel and a living background (Locations, Stories) */
body.mfw .mf-ph{position:relative;isolation:isolate;overflow:hidden;gap:28px 56px!important;padding-bottom:clamp(36px,6vh,64px)!important}
@media (min-width:1000px){body.mfw .mf-ph{grid-template-columns:minmax(0,1.35fr) minmax(340px,.9fr)!important}}
body.mfw .mf-ph-bg{position:absolute;inset:0;z-index:-1;pointer-events:none;-webkit-mask-image:linear-gradient(180deg,#000 50%,transparent 100%);mask-image:linear-gradient(180deg,#000 50%,transparent 100%)}
body.mfw .mf-ph-bg::after{content:"";position:absolute;inset:0;background:radial-gradient(260px circle at var(--mx,-999px) var(--my,-999px),rgba(236,232,224,.06),transparent 70%)}
body.mfw .mf-ph-topo{position:absolute;left:0;top:0}
body.mfw .mf-ph-map{position:absolute;right:-1%;top:4%;height:110%;width:auto;max-width:64%;opacity:.55}
body.mfw .mf-ph-map path{fill:rgba(236,232,224,.025);stroke:rgba(236,232,224,.2);stroke-width:1;vector-effect:non-scaling-stroke}
body.mfw .mf-ph-map circle{fill:var(--mf-rust);opacity:.25;animation:mf-ph-pin 6s ease-in-out infinite;animation-delay:var(--d,0s)}
@keyframes mf-ph-pin{0%,100%{opacity:.2}50%{opacity:.85}}
body.mfw .mf-ph-l{position:relative}
body.mfw .mf-ph-r{position:relative;display:flex;flex-direction:column;gap:22px;padding-top:22px;border-top:1px solid var(--mf-line)}
body.mfw .mf-ph-r .mf-p-intro{font-size:17px;color:#D9D5CC}
body.mfw .mf-ph-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(80px,1fr));margin:0;gap:0}
body.mfw .mf-ph-stats > div{padding:0 0 0 16px;border-left:1px solid var(--mf-line)}
body.mfw .mf-ph-stats > div:first-child{padding-left:0;border-left:0}
body.mfw .mf-ph-stats dt{font-family:var(--mf-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--mf-fog);white-space:nowrap}
body.mfw .mf-ph-stats dd{margin:6px 0 0;font-family:var(--mf-display);font-weight:900;font-size:calc(var(--mf-dk) * clamp(32px,3vw,46px));line-height:1;color:var(--mf-bone);font-variant-numeric:tabular-nums}
body.mfw .mf-ph-latest,body.mfw .mf-ph-latest:hover{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;padding:10px 14px 10px 10px;border:1px solid var(--mf-line);background:rgba(20,22,20,.6);color:var(--mf-bone);text-decoration:none;transition:border-color .25s,background-color .25s}
body.mfw .mf-ph-latest img{width:72px;height:52px;object-fit:cover;display:block;border-radius:0;filter:grayscale(.3);transition:filter .4s}
body.mfw .mf-ph-latest span{display:flex;flex-direction:column;gap:3px;min-width:0}
body.mfw .mf-ph-latest em{font-style:normal;font-family:var(--mf-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--mf-rust)}
body.mfw .mf-ph-latest b{font-weight:500;font-size:15px;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body.mfw .mf-ph-latest i{font-style:normal;color:var(--mf-fog);transition:transform .25s,color .25s}
body.mfw .mf-ph-latest:hover{border-color:var(--mf-soft);background:rgba(28,30,28,.8)}
body.mfw .mf-ph-latest:hover img{filter:none}
body.mfw .mf-ph-latest:hover i{transform:translateX(4px);color:var(--mf-bone)}
/* arrival */
body.mfw .mf-ph .mf-p-title,body.mfw .mf-ph-r > *{transition:opacity .9s ease,transform 1s cubic-bezier(.2,.8,.2,1)}
body.mfw .mf-ph:not(.ph-in) .mf-p-title{opacity:0;transform:translateY(34px)}
body.mfw .mf-ph:not(.ph-in) .mf-ph-r > *{opacity:0;transform:translateY(18px)}
body.mfw .mf-ph-r > :nth-child(2){transition-delay:.15s}
body.mfw .mf-ph-r > :nth-child(3){transition-delay:.3s}
body.mfw .mf-ph-r{transition:border-color 1.2s ease .2s}
body.mfw .mf-ph:not(.ph-in) .mf-ph-r{border-color:transparent}
/* filter rows with a small label */
body.mfw .mf-chips .lab{display:inline-flex;align-items:center;min-width:62px;height:38px;font-family:var(--mf-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--mf-fog)}
@media (max-width:700px){body.mfw .mf-ph-map{max-width:none;width:120%;height:auto;right:-30%;top:auto;bottom:10%;opacity:.35}
body.mfw .mf-ph-stats dd{font-size:30px}
body.mfw .mf-chips .lab{min-width:auto;margin-right:6px;flex:none}}
@media (prefers-reduced-motion:reduce){body.mfw .mf-ph-map circle{animation:none}
body.mfw .mf-ph .mf-p-title,body.mfw .mf-ph-r > *{transition:none}}
body.mfw .mf-ph-map path{stroke:rgba(236,232,224,.32);fill:rgba(236,232,224,.035)}
@media (max-width:700px){body.mfw .mf-ph-stats{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:18px}
body.mfw .mf-ph-stats > div:nth-child(odd){padding-left:0;border-left:0}
body.mfw .mf-ph-stats dt{white-space:normal}}

/* photo protection: no long-press menu on phones, no dragging photos out of the page */
body.mfw img,body.mfw picture,body.mfw video,body.mfw canvas{-webkit-touch-callout:none;-webkit-user-drag:none;user-drag:none;-webkit-user-select:none;user-select:none}
body.mfw.elementor-editor-active img{-webkit-user-drag:auto;user-select:auto}
.mf-protect-tip{position:fixed;left:50%;bottom:28px;z-index:10000;transform:translate(-50%,12px);padding:10px 16px;background:rgba(12,14,13,.94);border:1px solid rgba(236,232,224,.18);color:#ECE8E0;font-family:var(--mf-mono,monospace);font-size:11px;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .25s,transform .25s}
.mf-protect-tip.on{opacity:1;transform:translate(-50%,0)}
@media (max-width:600px){.mf-protect-tip{white-space:normal;width:calc(100% - 40px);text-align:center}}
