:root{--ink:#20231f;--paper:#f1f0e9;--muted:#777b71;--line:#d4d6cb;--accent:#dce8b9;--dark:#171a17}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit}button,input,textarea,select{font:inherit}button,a,input,textarea,select{touch-action:manipulation}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #67843c;outline-offset:6px}header{display:flex;align-items:center;justify-content:space-between;padding:27px 5%;gap:20px}.wordmark{text-decoration:none;font-size:26px;font-weight:700;letter-spacing:-1.2px;display:inline-flex;align-items:center;gap:10px}.brand-icon{display:grid;place-items:center;width:28px;height:31px;color:var(--paper);background:var(--ink);border-radius:7px;font-style:italic;font-family:Georgia,serif;font-size:32px}.brand-dot{font-size:10px;align-self:flex-start;margin-top:3px;letter-spacing:0}nav{display:flex;align-items:center;gap:32px}nav a{text-decoration:none;font-size:13px}nav a:hover{text-decoration:underline;text-underline-offset:5px}.nav-cta{border:1px solid var(--ink);border-radius:40px;padding:12px 20px}.hero{display:grid;grid-template-columns:1fr 1.05fr;min-height:690px}.hero-copy{padding:80px 8% 30px 10%;display:flex;flex-direction:column;align-items:flex-start}.eyebrow{font-size:10px;letter-spacing:2px;line-height:1.7;font-weight:600;margin:0 0 36px;display:flex;align-items:center;gap:10px}.status-dot{display:inline-block;flex-shrink:0;width:6px;height:6px;border-radius:100%;background:#768953}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(56px,6.6vw,106px);letter-spacing:-6px;line-height:.99;font-weight:500;margin-bottom:28px}em{font-family:Georgia,'Times New Roman',serif;font-weight:400;letter-spacing:-.065em}p{font-size:16px;line-height:1.65}h2{font-size:clamp(40px,5.4vw,78px);line-height:1.07;letter-spacing:-3.8px;font-weight:500;margin-bottom:30px}h3{font-size:42px;font-weight:500;letter-spacing:-2px;line-height:1.1;margin:0}.hero-description{font-size:16px;max-width:340px;color:#65695f;margin-bottom:30px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:32px;padding:18px 25px;border:1px solid var(--ink);background:var(--ink);color:var(--paper);border-radius:40px;text-decoration:none;font-size:13px;cursor:pointer;transition:background .2s,transform .2s}.button:hover{background:#3c4436;transform:translateY(-2px)}.button:disabled{opacity:.65;cursor:wait;transform:none}.tiny{font-size:10px;letter-spacing:.3px;color:var(--muted);margin:15px 0}.hero-index{display:flex;gap:25px;margin-top:auto;padding-top:60px;font-size:8px;letter-spacing:1.4px}.hero-photo{margin:0;position:relative;overflow:hidden;background:#c0beb3}.hero-photo>img{width:100%;height:100%;position:absolute;object-fit:cover;object-position:52% center;filter:none}.hero-photo:after{content:'';position:absolute;inset:65% 0 0;background:linear-gradient(transparent,#0008);pointer-events:none}.hero-photo figcaption{position:absolute;bottom:30px;left:30px;right:30px;display:flex;justify-content:space-between;color:#fff;font-size:8px;letter-spacing:1.5px;z-index:1;gap:15px}.photo-stamp{position:absolute;top:27px;right:27px;border:1px solid #ffffff80;color:white;padding:12px;font-size:20px}.photo-stamp span{font-size:6px;letter-spacing:1px}.manifesto-bar{padding:24px 5%;display:flex;justify-content:space-between;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:9px;letter-spacing:2px;gap:20px}.section{padding:100px 8%}.intro{padding-bottom:80px}.intro-bottom{display:grid;grid-template-columns:1fr 1fr;margin-top:60px;gap:50px}.section-number{font-size:9px;letter-spacing:1.5px;color:var(--muted)}.intro-bottom p{max-width:470px;color:#686d61;margin-bottom:0}.features{padding-top:0}.feature-row{display:grid;grid-template-columns:60px 1fr 1fr;gap:30px;padding:45px 0;border-top:1px solid var(--line)}.feature-row p{color:#686d61;max-width:430px;margin-bottom:24px}.feature-tag{font-size:8px;letter-spacing:1.4px}.darkroom{background:var(--dark);color:var(--paper);display:grid;grid-template-columns:1fr 1fr;gap:90px;align-items:center}.darkroom .eyebrow{color:var(--accent)}.darkroom p{color:#aeb4a4;max-width:360px}.text-link{font-size:13px;text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:6px;display:inline-block}.viewfinder{height:390px;border:1px solid #818c7155;position:relative;overflow:hidden;background:#373b33}.viewfinder img{width:100%;height:100%;object-fit:cover;filter:none;opacity:1}.viewfinder-label{position:absolute;left:20px;top:20px;font-size:9px;letter-spacing:1px;color:#fff}.viewfinder p{position:absolute;bottom:18px;left:20px;margin:0;font-size:9px;letter-spacing:1.5px;color:#fff}.frame-corners{position:absolute;inset:65px 45px;border:1px solid #ffffff70}.frame-corners:after{content:'+';position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);color:white;font-weight:300;font-size:30px}.closing{text-align:center}.closing .eyebrow{justify-content:center}.closing .button{margin-top:10px}.closing .tiny{margin-top:20px}footer{background:#e5e6dc;padding:50px 5% 25px}.footer-top{display:flex;align-items:flex-start;justify-content:space-between;gap:25px;padding-bottom:50px}.footer-top p{font-size:24px;line-height:1.1;letter-spacing:-1px}.footer-top .text-link{margin-top:4px}.footer-bottom{border-top:1px solid #c9cdbf;padding-top:24px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:20px;font-size:9px;color:#6b7064}.footer-bottom nav{justify-content:center}.footer-bottom nav{gap:22px}.footer-bottom a{font-size:10px}.page-heading{padding-bottom:50px}.page-heading h1,.contact-intro h1,.legal-wrap h1{font-size:clamp(54px,6vw,88px);letter-spacing:-4px}.page-heading p:not(.eyebrow){color:var(--muted)}.support-layout{padding-top:20px;display:grid;grid-template-columns:1fr 1fr;gap:80px}.support-layout h2,.form-panel h2{font-size:36px;letter-spacing:-1.5px}.faq details{border-top:1px solid var(--line);padding:23px 0}.faq details:last-child{border-bottom:1px solid var(--line)}.faq summary{cursor:pointer;font-size:15px;line-height:1.4;padding-right:10px}.faq p{font-size:14px;color:#696e62;margin:20px 0 0}.form-panel{background:#e6e8df;padding:35px;border:1px solid #d6dacd}.form-panel>p{font-size:14px;color:#686e5f}.contact-layout{display:grid;grid-template-columns:1fr 1fr;gap:100px}.contact-intro>p:not(.eyebrow){max-width:340px;color:#696e62}.contact-aside{display:flex;gap:14px;align-items:baseline;margin-top:60px;font-size:9px;letter-spacing:1.5px;line-height:1.8}.contact-aside small{letter-spacing:0;font-size:11px;color:var(--muted)}.contact-form{margin-top:30px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}label{display:block;font-size:11px;line-height:1.5;margin-bottom:20px}input,textarea,select{display:block;width:100%;margin-top:8px;background:#f4f5ef;border:1px solid #c7cdbd;border-radius:2px;padding:13px;font-size:14px;color:var(--ink)}textarea{resize:vertical;min-height:120px}input:focus,textarea:focus,select:focus{outline:2px solid #819065;outline-offset:2px}.form-note{font-size:11px;color:#6b7162;line-height:1.6}.contact-form .button{margin-top:10px}.form-status{margin:20px 0 0;font-size:14px}.form-status:empty{display:none}.form-status[data-state="success"]{border-left:3px solid #536c37;padding:12px 16px;background:#dce6cc}.form-status[data-state="error"]{border-left:3px solid #934a37;padding:12px 16px;background:#eddfd7}.honeypot{position:absolute;left:-9999px}.legal-wrap{max-width:850px;margin:0 auto;padding:80px 30px 100px}.legal-wrap h2{font-size:25px;letter-spacing:-.6px;margin:40px 0 15px}.legal-wrap p{font-size:15px;color:#5b6254}.legal-date{font-size:12px!important;border-bottom:1px solid var(--line);padding-bottom:25px;margin-bottom:35px}.skip-link{position:fixed;top:-80px;left:20px;z-index:100;background:var(--ink);color:white;padding:15px}.skip-link:focus{top:10px}
@media(min-width:1600px){body{max-width:1920px;margin:auto}.hero-copy{padding-left:12%}}@media(max-width:1000px){header{padding:22px 5%}.hero{min-height:620px}.hero-copy{padding:60px 8% 25px 10%}h1{letter-spacing:-3.5px}.hero-index{gap:12px}.section{padding:75px 6%}.features{padding-top:0}.support-layout{gap:30px}.contact-layout{gap:40px}.darkroom{gap:40px}.viewfinder{height:330px}.feature-row{grid-template-columns:30px 1fr 1fr;gap:20px}.feature-row h3{font-size:35px}.form-panel{padding:25px}.footer-bottom>span:last-child{display:none}}@media(max-width:680px){header{gap:10px;padding:20px 6%}.wordmark{font-size:23px}header nav{gap:12px}header nav>a:first-child{display:none}header nav a{font-size:11px}.nav-cta{padding:10px 14px}.hero{display:flex;flex-direction:column}.hero-copy{padding:50px 6% 30px}.hero h1{font-size:64px}.hero-photo{height:440px}.hero-description{max-width:310px}.hero-index{margin-top:0;padding-top:35px;gap:28px}.eyebrow{font-size:8px;letter-spacing:1.4px;margin-bottom:28px}.hero-photo figcaption{left:20px;right:20px;font-size:7px}.manifesto-bar{padding:18px 6%;font-size:7px;letter-spacing:1.3px}.manifesto-bar span:last-child{display:none}.section{padding:65px 6%}h2{font-size:43px;letter-spacing:-2px}.intro-bottom{grid-template-columns:1fr;gap:22px;margin-top:35px}.features{padding-top:0}.feature-row{grid-template-columns:25px 1fr;padding:32px 0;gap:16px}.feature-row>div{grid-column:2}.feature-row h3{font-size:36px}.darkroom,.contact-layout,.support-layout{grid-template-columns:1fr;gap:45px}.viewfinder{height:350px}.closing h2{font-size:44px}.footer-top{flex-wrap:wrap;gap:30px;padding-bottom:30px}.footer-top p{font-size:22px}.footer-top .text-link{width:fit-content}.footer-bottom{display:grid;grid-template-columns:1fr;gap:18px;justify-items:start}.footer-bottom nav{gap:20px}.form-row{grid-template-columns:1fr;gap:0}.form-panel{padding:24px}.contact-aside{margin-top:35px}.page-heading{padding-bottom:25px}.support-layout{padding-top:20px}.legal-wrap{padding:55px 6% 70px}.legal-wrap h1{font-size:58px}.contact-intro h1,.page-heading h1{font-size:60px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
.hero-photo>img,.viewfinder img{filter:none}.viewfinder img{opacity:1}
.preset-section{border-bottom:1px solid var(--line)}.preset-heading{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:end;margin-bottom:45px}.preset-heading h2{margin-bottom:0}.preset-heading>p{max-width:440px;color:#686d61;margin:0 0 6px}.preset-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:36px 24px}.preset-card{margin:0}.preset-card img{display:block;width:100%;height:auto;background:#d4d6cb}.preset-card figcaption{display:flex;justify-content:space-between;padding-top:15px;font-size:11px;font-weight:600;letter-spacing:1px}.preset-card figcaption span:last-child{color:var(--muted);font-size:9px;font-weight:400}.preset-note{font-size:11px;color:var(--muted);margin:35px 0 0;max-width:670px}@media(max-width:800px){.preset-heading{grid-template-columns:1fr;gap:25px}.preset-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:26px 16px}}@media(max-width:420px){.preset-grid{grid-template-columns:1fr}}
.grain-detail{margin-top:15px;border-top:1px solid var(--line);padding-top:12px}.grain-detail summary{cursor:pointer;font-size:12px}.grain-detail p{font-size:11px;color:var(--muted);margin:12px 0}.grain-crop{max-width:100%;overflow:auto;margin-bottom:12px}.preset-card .grain-crop img{width:320px;height:320px;max-width:none;object-fit:none}.grain-detail a{font-size:12px;text-underline-offset:3px}
.grain-crop img{filter:none;opacity:1;image-rendering:pixelated}.grain-crop{min-height:320px}.preset-card{min-width:0}.preset-card>img{position:static;visibility:visible;opacity:1}
.preset-photo{position:relative;overflow:hidden}.preset-photo>img{display:block;width:100%;height:auto}.fv-frame-lines{position:absolute;inset:0 26px;z-index:1;pointer-events:none}.fv-frame-lines svg{display:block;width:100%;height:100%;overflow:visible}.fv-rangefinder-patch{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:max(13%,46px);height:max(4.5%,28px);background:rgba(255,255,255,.16)}
@media(hover:hover){.hero-photo:hover .fv-frame-lines,.preset-photo:hover .fv-frame-lines,.viewfinder:hover .fv-frame-lines{opacity:0}}
.footer-credit{justify-self:end;display:flex;flex-direction:column;align-items:flex-end;gap:6px;color:#6b7064;font-size:9px;letter-spacing:2px;text-transform:uppercase;text-align:right}.footer-credit img{display:block;width:130px;height:auto}
@media(max-width:680px){.footer-credit{align-items:flex-start;text-align:left}.footer-credit img{width:110px}}
/* One photographic reveal; the final layout also works without JavaScript. */
.hero-story{padding:0 4% 32px}.hero-story .hero{position:relative;min-height:0;height:clamp(540px,78vh,850px);grid-template-columns:47% 53%}
.hero-story .hero-copy{padding:50px 10% 50px 0;justify-content:center}.hero-story h1{font-size:clamp(50px,5.7vw,88px);letter-spacing:-.055em}.hero-story .hero-photo{border-radius:2px}.hero-story .hero-photo>img{object-position:52% 45%}
.hero-motion{height:calc(100vh + 70vh);padding-top:0;padding-bottom:0}.hero-motion .hero{position:sticky;top:var(--hero-header-height,100px);height:calc(100vh - var(--hero-header-height,100px) - 12px)}
.hero-motion .hero-photo{position:absolute;right:0;top:0;bottom:0;width:var(--hero-photo-width,100%)}
.hero-motion .hero-copy{opacity:var(--hero-copy-opacity,0);transform:translateY(var(--hero-copy-shift,24px));align-self:center}
.hero-motion .hero-photo .fv-frame-lines{opacity:var(--hero-brackets-opacity,1)}
.hero-motion .hero-photo figcaption{bottom:30px}.hero-motion:not(.hero-developed) .hero-photo>img{filter:blur(3px) contrast(.85);opacity:.75}.hero-motion.hero-developed .hero-photo>img{filter:none;opacity:1;transition:filter 1.1s ease-out,opacity 1.1s ease-out}
.hero-keyboard .hero-copy{opacity:1;transform:none;z-index:3;background:var(--paper)}.hero-keyboard .hero-photo{width:53%}
@media(min-width:901px){body.home>header{position:sticky;top:0;z-index:10;background:var(--paper)}}
/* The animated hero frame follows scroll, not hover. Gallery hover is unchanged. */
.hero-motion .hero-photo:hover .fv-frame-lines{opacity:var(--hero-brackets-opacity,1)}
.hero-motion{height:calc(100vh + 70vh + var(--hero-header-height,100px) + 12px)}
@media(max-width:900px){.hero-story{padding:0 5% 40px}.hero-story .hero{display:flex;flex-direction:column;height:auto}.hero-story .hero-photo{order:-1;height:auto;aspect-ratio:1.365;flex-shrink:0;width:100%}.hero-story .hero-copy{padding:36px 0 0}.hero-story h1{font-size:clamp(48px,9vw,76px)}.hero-story .hero-description{max-width:480px}.hero-story .hero-photo figcaption{bottom:18px}}
@media(prefers-reduced-motion:reduce){.hero-story .hero-photo>img{filter:none!important;opacity:1!important;transition:none!important}}
.preset-photo{cursor:zoom-in;-webkit-tap-highlight-color:transparent}.preset-photo img{touch-action:manipulation}
.lightbox{position:fixed;inset:0;z-index:1000;background:rgba(12,13,11,.9);opacity:0;transition:opacity .3s ease}
.lightbox.is-open{opacity:1}
.lightbox-img{position:fixed;top:0;left:0;transform-origin:top left;display:block;max-width:none;background:#0d0e0c;box-shadow:0 30px 80px rgba(0,0,0,.5);will-change:transform}
body.lightbox-open{overflow:hidden}
@media(prefers-reduced-motion:reduce){.lightbox{transition:none}}
/* Supplied vector wordmark alongside the existing F icon. */
.wordmark{flex-shrink:0}.brand-icon{flex-shrink:0}.brand-logo{display:block;width:145px;height:auto}
.brand-app-icon{display:block;width:40px;height:40px;object-fit:contain;border-radius:10px;background:none}
@media(max-width:680px){header .wordmark{gap:8px}header .brand-logo{width:115px}}
@media(max-width:380px){header .brand-logo{width:100px}header nav{gap:8px}header .nav-cta{padding:10px}}
