/** * Content */ body { background-color: #fff; color: #000; } a:active { opacity: 0.7; } .page a.active { color: rgba(0, 0, 0, 0.85); } i, em { font-style: italic; } b, strong { font-weight: bolder; } sub, sup { position: relative; vertical-align: baseline; } sub { top: 0.3em; } sup { top: -0.4em; } s { text-decoration: line-through; } img { border: 0; padding: 0; } ul, ol { margin: 0; padding: 0 0 0 4.5rem; } ol>li { padding-left: 0.75rem; } blockquote { margin: 0; padding: 0 0 0 2em; } hr { background: rgba(0, 0, 0, .25); border: 0; height: 1px; display: block; } .content img { float: none; margin-bottom: 0.5rem; vertical-align: bottom; } .gallery_image_caption { margin-top: 1.2em; margin-bottom: 0.5rem; font-size: 1.1rem; font-weight: 400; color: rgba(0, 0, 0, 0.65); font-family: "Inter", Icons; font-style: normal; line-height: 1.3; text-align: left; letter-spacing: 0.01em; } /** * Loading Animation */ .loading[data-loading] { position: fixed; bottom: 8px; left: 8px; } /** * Editor styles */ [data-predefined-style="true"] bodycopy { font-size: 1.4rem; font-weight: 400; color: rgba(0, 0, 0, 0.65); font-family: "Inter", Icons; font-style: normal; line-height: 1.4; } [data-predefined-style="true"] bodycopy a { color: rgba(0, 0, 0, 0.65); padding-bottom: 0em; border-bottom: 1px solid rgba(0, 0, 0, 1); text-decoration: underline; } [data-predefined-style="true"] bodycopy a:hover { } bodycopy a.image-link, bodycopy a.icon-link, bodycopy a.image-link:hover, bodycopy a.icon-link:hover { border-bottom: 0; padding-bottom: 0; } [data-predefined-style="true"] h1 { font-family: "Inter", Icons; font-style: normal; font-weight: 500; padding: 0; margin: 0; font-size: 5.2rem; line-height: 1.1; color: rgba(0, 0, 0, 0.85); } [data-predefined-style="true"] h1 a { color: rgba(0, 0, 0, 0.85); border-bottom: none; } [data-predefined-style="true"] h2 { font-family: "Playfair Display", Icons; font-style: normal; font-weight: 400; padding: 0; margin: 0; color: rgba(0, 0, 0, 0.85); font-size: 2.2rem; line-height: 1.3; letter-spacing: 0.05em; } [data-predefined-style="true"] h2 a { color: rgba(0, 0, 0, 0.85); } [data-predefined-style="true"] small { display: inline-block; font-size: 1.3rem; line-height: 1.3; font-family: "Inter", Icons; font-style: normal; font-weight: 400; color: rgba(0, 0, 0, 0.65); letter-spacing: 0.01em; ; } [data-predefined-style="true"] small a { color: rgba(0, 0, 0, 0.85); border-bottom-width: 0em; } /** * Breakpoints */ [data-css-preset] .page { background-color: initial /*!page_bgcolor*/; } .mobile .page, [data-css-preset].mobile .page { position: relative; min-height: 10px; max-width: 100%; width: 100%; background-color: transparent /*!page_bgcolor*/; } [data-css-preset] .container { margin-left: auto /*!content_center*/; margin-right: auto /*!content_center*/; text-align: left /*!text_left*/; } [data-css-preset] body { background-color: rgb(255, 255, 255) /*!body_bgcolor*/; } [data-css-preset] .container_width { width: 97% /*!content_center*/; } [data-css-preset] .content_padding { padding-top: 2rem /*!main_margin*/; padding-bottom: 2rem /*!main_margin*/; padding-left: 2rem /*!main_margin*/; padding-right: 2rem /*!main_margin*/; } [data-css-preset] text-limit { display: inline-block /*!text_width*/; max-width: 66rem/*!text_width*/; } [data-css-preset] .backdrop { width: 100% /*!background_cover*/; } /** * Thumbnails */ div[thumbnails] { justify-content: flex-start; } [data-css-preset] .thumbnails { background-color: rgba(0, 0, 0, 0)/*!thumbnails_bgcolor*/; } [data-css-preset] .thumbnails_width { width: 100%/*!thumbnails_width*/; } [data-css-preset] [thumbnails-pad] { padding: 0.75rem/*!thumbnails_padding*/; } [data-css-preset] [thumbnails-gutter] { margin: -1.5rem/*!thumbnails_padding*/; } [data-css-preset] [responsive-layout] [thumbnails-pad] { padding: 0.5rem/*!responsive_thumbnails_padding*/; } [data-css-preset] [responsive-layout] [thumbnails-gutter] { margin: -1rem/*!responsive_thumbnails_padding*/; } .thumbnails .thumb_image { outline: 0px solid rgba(0,0,0,.12); outline-offset: -1px; } .thumbnails .title { margin-top: .8rem; margin-bottom: .2rem; font-size: 1.4rem; font-weight: 500; color: rgba(0, 0, 0, 0.85); font-family: "Inter", Icons; font-style: normal; line-height: 1.3; } .thumbnails .tags { margin-top: 1rem; margin-bottom: 0.5rem; font-size: 1.3rem; font-weight: 400; color: rgba(0, 0, 0, 0.4); font-family: "Inter", Icons; font-style: normal; line-height: 1.3; } .thumbnails .tags a { border-bottom: 0; color: rgba(0, 0, 0, 0.35); text-decoration: none; } .thumbnails .has_title .tags { margin-top: 0rem; } /** * Site Menu */ [data-css-preset] #site_menu_button { color: rgba(0, 0, 0, 1); line-height: 1; font-size: 28px /*!site_menu_button*/; padding: 0.5px; line-height: 0.5; background: rgba(33, 32, 46, 0); position: fixed; top: 3rem /*!site_menu_button*/; right: 3rem /*!site_menu_button*/; } body.mobile #site_menu_button { margin: -6px; font-size: 34px; } #site_menu_button.custom_icon { width: 40px; height: auto; max-width: 100% } #site_menu_button.active { display: none; } /** * Site Menu */ #site_menu { font-family: "Inter", Icons; background: rgba(20, 20, 20, 1); font-size: 17px; font-style: normal; font-weight: 400; line-height: 3; padding: 70px 30px 90px 50px; max-width: 400px; min-width: 300px; text-align: left; display: flex; justify-content: flex-start; } body.mobile #site_menu { width: 100%; } #site_menu .page-link a { color: rgba(255, 255, 255, 1); } #site_menu .set-link > a { color: rgba(255, 255, 255, 1); font-weight: bold; } #site_menu a:active { opacity: .7; } #site_menu a.active { opacity: .4; } #site_menu .close { display: none; color: rgba(255, 255, 255, 0.4); line-height: .85em; font-size: 45px; } body.mobile #site_menu .close { display: block; font-size: 50px; line-height: 1em; } #site_menu .break { height: 28px; } #site_menu .indent { margin-left: 28px; } /** * Shop Button */ [data-css-preset] #shop_button { color: rgba(0, 0, 0, 0.85); background: transparent; font-size: 32px; font-style: normal; font-weight: 400; line-height: 1.; position: fixed; padding: 6px; top: 1.5rem /*!shop_button*/; right: 2.5rem /*!shop_button*/; } #shop_button.text { font-family: "Inter", Icons; font-size: 2.2rem; padding: 0; font-weight: 500; color: rgba(0, 0, 0, 0.85); font-style: normal; line-height: 1.2; } #shop_button.custom_icon { width: 40px; height: auto; } body.mobile #shop_button:not(.text) { margin: -6px; font-size: 36px; } /** * Shop Product Widget */ .shop_product { width: 100%; max-width: 22rem; position: relative; display: block; } .shop_product .price { font-family: "Inter", Icons; font-size: 1.4rem; line-height: 1; color: rgba(0, 0, 0, 0.65); display: block; margin-bottom: 1rem; font-style: normal; font-weight: 400; } .shop_product .dropdown { font-family: "Inter", Icons; font-size: 1.4rem; display: inline-block; width: 100%; border: 1px solid rgba(0,0,0,.2); background: white; margin-bottom: 1rem; line-height: 1.2; padding: .7rem 2.5rem .7rem 1rem; font-style: normal; font-weight: 400; color: rgba(0, 0, 0, 0.65); } .shop_product .button { font-family: "Inter", Icons; font-size: 1.4rem; background: rgba(0, 0, 0, 0.7); color: rgba(255,255,255,1); flex: 0 0 50%; text-align: left; display: inline-block; line-height: 1; padding: .8rem 1rem; font-style: normal; font-weight: 500; } /** * Image Zoom */ .content img.image-zoom:active { opacity: .7; } /** * Quick View */ [data-css-preset] .quick-view { padding-top: 2.5rem /*!quick_view_padding*/; padding-bottom: 2.5rem /*!quick_view_padding*/; padding-left: 2.5rem /*!quick_view_padding*/; padding-right: 2.5rem /*!quick_view_padding*/; height: 100% /*!quick_view_height*/; width: 100% /*!quick_view_width*/; } body.mobile .quick-view { width: 100%; height: 100%; margin: 0; } [data-css-preset] .quick-view-background { background: rgba(0, 0, 0, 0.8) /*!quick_view_bgcolor*/; } .quick-view-caption { font-family: "Inter", Icons; transition: 100ms opacity ease-in-out; position: absolute; bottom: 0; left: 0; right: 0; margin: 3.5rem 0; text-align: center; font-size: 1.1rem; font-style: normal; font-weight: 400; } .quick-view-caption span { padding: 0.5rem 1rem; display: inline-block; background: rgba(0,0,0,0.5); color: white; } /** * Quick View Navigation */ .quick-view-navigation .left-arrow { left: 10px; } .quick-view-navigation .right-arrow { right: 10px; } .quick-view-navigation .left-arrow, .quick-view-navigation .right-arrow { /* Change height/width together to scale */ height: 36px; width: 36px; } .quick-view-navigation .left-arrow .inner-color, .quick-view-navigation .right-arrow .inner-color { stroke: #fff; stroke-width: 1.5px; } .quick-view-navigation .left-arrow .outer-color, .quick-view-navigation .right-arrow .outer-color { stroke: #000; stroke-width: 2.5px; opacity: 0.6; } .quick-view-navigation .close-button { top: 10px; right: 10px; /* Change height/width together to scale */ width: 36px; height: 36px; } .quick-view-navigation .close-button .inner-color { stroke: #fff; stroke-width: 1.5px; } .quick-view-navigation .close-button .outer-color { stroke: #000; stroke-width: 2.5px; opacity: 0.6; } /** * Image Gallery Navigation Arrows */ .image-gallery-navigation .left-arrow, .image-gallery-navigation .right-arrow { /* Change height/width together to scale */ height: 36px; width: 36px; } .image-gallery-navigation .left-arrow .inner-color, .image-gallery-navigation .right-arrow .inner-color { stroke: rgba(0, 0, 0, 0.85); stroke-width: 1.5px; } .image-gallery-navigation .left-arrow .outer-color, .image-gallery-navigation .right-arrow .outer-color { stroke: #000; stroke-width: 2.5px; opacity: 0; } /** * Wallpaper Backdrop Navigation Arrows */ .wallpaper-navigation .left-arrow, .wallpaper-navigation .right-arrow { /* Change height/width together to scale */ width: 36px; height: 36px; } .wallpaper-navigation .left-arrow .inner-color, .wallpaper-navigation .right-arrow .inner-color { stroke: #fff; stroke-width: 1.5px; } .wallpaper-navigation .left-arrow .outer-color, .wallpaper-navigation .right-arrow .outer-color { stroke: #000; stroke-width: 2.5px; opacity: 0.6; } /** * Feed */ .feed .content_container .page { border-top: 0px dashed rgba(0, 0, 0, 0.2); } .feed .content_container .page_container:first-child .page { border-top: 0; } /** * Audio Player */ .audio-player { max-width: 26rem; height: 3.3rem; outline: 1px solid rgba(0,0,0,0.15); color: rgba(0, 0, 0, 0.6); background: transparent; font-size: 1.2rem; line-height: 1.3; font-family: "Inter", Icons; font-style: normal; font-weight: 400; text-align: left; margin: 1px 1px 1em 1px; } body.mobile .audio-player { max-width: 100%; } .audio-player .separator { width: 1px; background-color: rgba(0,0,0,0.15); } .audio-player .button { background: transparent; cursor: pointer; fill: rgba(0, 0, 0, 0.85); } .audio-player .icon { fill: rgba(0, 0, 0, 0.85); padding: 30%; width: 100%; margin: auto; } .audio-player .buffer { background: rgba(0,0,0,0.03); } .audio-player .progress { background: rgba(0,0,0,0.1); } .audio-player .progress-indicator { border: 1px solid rgba(0, 0, 0, 0.7); width: 1px; height: 100%; right: 0; position: absolute; cursor: ew-resize; } .audio-player .note-icon { height: 100%; width: 3.8rem; padding: 1rem; fill: rgba(0, 0, 0, 0.5); } .audio-player .current-time { padding-left: 1rem; } .audio-player .total-time { padding-right: 1rem; }

/* Outbound venture CTAs ("Learn more about X") are marked up inside <small>, so they
   inherited fine-print sizing. They are the primary action on a venture page. */
[data-predefined-style="true"] small a[target="_blank"],
[data-predefined-style="true"] a[target="_blank"] small{font-size:1.45rem;line-height:1.45}

/* ===== Mobile app shell — added 2026-08-23. Every rule is scoped to body.mobile
   (or the .pinned bands, which only exist once per page), so desktop rendering
   is untouched by construction. ===== */

/* Inline-sized images (Cargo exports fixed px) overflow small screens; the
   index headline gap was one such image, 1340x538 on a 393px viewport. */
body.mobile .page_content img{max-width:100%!important;height:auto!important;
  border-radius:14px;transition:transform .18s ease}
body.mobile .pinned .page_content img{border-radius:0}
body.mobile .page_content .image-link:active img{transform:scale(.97)}

/* App bar: the Cargo pinned_top band becomes a fixed, blurred iOS-style bar. */
body.mobile .pinned_top .page_container{position:fixed!important;top:0;left:0;right:0;
  z-index:60;background:rgba(255,255,255,.86);
  -webkit-backdrop-filter:saturate(1.8) blur(16px);backdrop-filter:saturate(1.8) blur(16px);
  box-shadow:0 1px 0 rgba(0,0,0,.06);padding-top:env(safe-area-inset-top)}

/* Menu overlay: bigger type, breathing room, safe-area padding. */
body.mobile #site_menu_panel{padding:28px!important;
  padding-top:calc(28px + env(safe-area-inset-top))!important}
body.mobile #site_menu_panel a{font-size:32px;line-height:2.1;letter-spacing:.02em}

/* Text links become tappable pills (image links excluded). 44px targets. */
body.mobile .page_content a:not(.image-link){display:inline-block;padding:11px 18px;
  margin:6px 8px 6px 0;border:1.5px solid currentColor;border-radius:999px;
  background-image:none!important;font-weight:500;font-size:15px;line-height:1.2;
  -webkit-user-select:none;user-select:none}
body.mobile .page_content a:not(.image-link):active{transform:scale(.96);opacity:.75}

/* Footer: one calm centered block with a safe-area inset. */
body.mobile .pinned_bottom small{font-size:13px;line-height:2.4;display:block;
  padding:10px 16px calc(12px + env(safe-area-inset-bottom))}

/* get-in-touch: the headline used to sit raw on the photo layer (z-1 under the
   text page). A frosted panel keeps the photo mood and makes the text legible. */
body.mobile [data-id="17332734"] div:has(> h1){background:rgba(255,255,255,.88);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  border-radius:18px;padding:22px;margin:0 2px}

body.mobile{-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%}

/* ---- app-shell fixes, round 2 (2026-08-23) ---- */
/* get-in-touch: headline was breaking mid-word inside the frosted panel */
[data-predefined-style="true"] body.mobile [data-id="17332734"] h1{font-size:min(4.6rem,10.8vw)}
/* trim the <br> stack inside the panel, and the white-on-white F6S logo */
body.mobile [data-id="17332734"] div:has(> h1) > br{display:none}
body.mobile [data-id="17332734"] div:has(> h1) img{display:none}
/* footer sat in a ~35% grid column on mobile: stack it full-width, calm the rhythm */
body.mobile .pinned_bottom [grid-col]{width:100%!important}
body.mobile .pinned_bottom .page_content br{display:none}
body.mobile .pinned_bottom small{line-height:1.9}
body.mobile .pinned_bottom a:not(.image-link){padding:7px 14px}
/* index: the top "image" is a white canvas with a hairline divider — dead
   weight on a phone. Hide it and the blank lines around it. */
body.mobile [local-style="17303379"] img[src*="868bcf42"]{display:none}
body.mobile [local-style="17303379"] [data-marker-id="2"] div > br{display:none}

/* The page's inline block styles this h1 later in the cascade; the html prefix
   out-specifies it. Also restore rhythm the removed <br>s used to provide. */
html[data-predefined-style="true"] body.mobile [data-id="17332734"] h1{
  font-size:min(4.2rem,10vw);line-height:1.12;margin-bottom:16px}
body.mobile [data-id="17332734"] div:has(> h1) small{display:block;margin:12px 0 2px}

/* Footer is a Cargo overlay pinned over the document bottom; on phones it was
   covering the last portfolio tile. In flow, it can never cover content. */
body.mobile .pinned_bottom{height:auto!important}
body.mobile .pinned_bottom .page_container{position:static!important}

/* ===== 2026-08-23 evening pass: typography, motion, footer, intents, dark ===== */

/* homepage lede: same words, staged — first sentence carries the weight */
[data-predefined-style="true"] .page p.body-lead.lede-xl{
  font-size:clamp(21px,2.05vw,30px);line-height:1.42;font-weight:500;
  letter-spacing:-.012em;margin:0 0 .9em}
/* mobile already enlarges body-lead (~28px); the statement must stay on top */
[data-predefined-style="true"] body.mobile .page p.body-lead.lede-xl{
  font-size:min(8.4vw,33px);line-height:1.32}
[data-predefined-style="true"] body.mobile .page p.body-lead.lede-rest{
  font-size:17px;line-height:1.65}
.lede-rest{margin:0 0 .9em}

/* desktop hover: content image links lift; header logo exempt */
@media (hover:hover) and (prefers-reduced-motion:no-preference){
  body:not(.mobile) .page_content .image-link img{
    transition:transform .28s cubic-bezier(.2,.7,.2,1), box-shadow .28s ease}
  body:not(.mobile) .page_content .image-link:hover img{
    transform:translateY(-4px);box-shadow:0 14px 34px rgba(0,0,0,.16)}
  body:not(.mobile) .pinned .image-link:hover img{transform:none;box-shadow:none}
}

/* one-time headline reveal */
@media (prefers-reduced-motion:no-preference){
  [data-predefined-style="true"] .content_container h1{
    animation:lytrise .6s cubic-bezier(.2,.7,.2,1) both}
  @keyframes lytrise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
}

/* footer in flow on every viewport, with real columns */
.pinned_bottom{height:auto!important}
.pinned_bottom .page_container{position:static!important;background:#f4f4f2}
.footcols{display:grid;gap:28px 40px;grid-template-columns:repeat(2,minmax(0,1fr));
  max-width:640px;margin:0 auto;padding:36px 22px 8px;text-align:left}
.fc{display:flex;flex-direction:column;gap:7px;font-size:13px;line-height:1.5}
.fh{font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:#6b6b66;margin-bottom:5px}
.fc a{text-decoration:none;color:#454540;background-image:none!important;
  border:0!important;display:inline-block;width:fit-content;padding:0}
.fc a:hover{color:#111;text-decoration:underline}
.pinned_bottom small{display:block;text-align:center;padding:14px 16px 26px;color:#454540}
body.mobile .footcols{grid-template-columns:1fr 1fr}
/* the mobile pill rule must not restyle footer/intent links */
body.mobile .footcols a{display:block;padding:8px 0;margin:0;border:0;border-radius:0;font-size:14px}

/* get-in-touch intents */
.intents{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 16px}
a.intent{display:inline-block;padding:10px 18px;border:1.5px solid currentColor;
  border-radius:999px;text-decoration:none!important;font-size:14px;font-weight:500;
  background-image:none!important;box-shadow:none!important}
a.intent, a.intent:visited{color:inherit}
a.intent:hover{background:rgba(0,0,0,.06)}
a.intent:active{transform:scale(.96)}

/* ===== dark mode: system-aware, main site only ===== */
@media (prefers-color-scheme: dark){
  html[data-predefined-style="true"]{background:#121316;color-scheme:dark}
  html[data-predefined-style="true"] body{background:#121316!important;color:#e7e6e3}
  html[data-predefined-style="true"] .page_background{background-color:#121316!important}
  /* the shell sheets pin text to black at several tiers; override each in dark */
  html[data-predefined-style="true"] :is(h1,h2,h3,h4,h5){color:#e9e8e5!important}
  html[data-predefined-style="true"] .page :is(p,div,li,blockquote){color:rgba(238,237,233,.88)!important}
  html[data-predefined-style="true"] .page :is(small,span,a){color:rgba(238,237,233,.8)!important}
  html[data-predefined-style="true"] hr{border-color:rgba(255,255,255,.16)}
  /* wordmark + hamburger are near-black artwork: invert only in the top band */
  html[data-predefined-style="true"] .pinned_top img{filter:invert(1) hue-rotate(180deg)}
  html[data-predefined-style="true"] #site_menu_button{color:#e7e6e3}
  /* mobile app bar + frosted panel, dark variants */
  body.mobile .pinned_top .page_container{background:rgba(18,19,22,.82)!important;
    box-shadow:0 1px 0 rgba(255,255,255,.08)}
  body.mobile [data-id="17332734"] div:has(> h1){background:rgba(20,21,25,.84)!important}
  /* footer band */
  .pinned_bottom .page_container{background:#17181b}
  a.intent:hover{background:rgba(255,255,255,.08)}
  @media (hover:hover){
    body:not(.mobile) .page_content .image-link:hover img{box-shadow:0 14px 34px rgba(0,0,0,.55)}
  }
}

/* iPhone fixes 2026-08-23: content cleared the old overlay bar by luck of a
   spacer image; with the spacer gone it slid under the fixed bar. Give the
   whole document the bar's height. And pin the icon glyphs to the Icons font —
   iOS otherwise renders legacy PUA codepoints as emoji (the autumn leaf). */
body.mobile{padding-top:calc(59px + env(safe-area-inset-top))}
[data-predefined-style="true"] .page span[aria-hidden="true"]{
  font-family:Icons,"Inter",sans-serif}
