@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-cyrillic-ext-400-normal-g30qAdWV.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-cyrillic-400-normal-DZqxrq2p.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-greek-400-normal-_efipK4i.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-vietnamese-400-normal-DG4YqDda.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-latin-ext-400-normal-C5H60-Va.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-latin-400-normal-CDDApCn2.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-cyrillic-ext-500-normal-Cs5J6C77.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-cyrillic-500-normal-CocWQlwt.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-greek-500-normal-JMMifIXV.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-vietnamese-500-normal-e4dixQRQ.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-latin-ext-500-normal-DakdToA3.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-latin-500-normal-6ng42L7E.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-cyrillic-ext-600-normal-DUMzJB7m.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-cyrillic-600-normal-71GNu3SW.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-greek-600-normal-DzTrcv_p.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-vietnamese-600-normal-DpPYBSTl.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-latin-ext-600-normal-DOrvGEcy.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-latin-600-normal-CuJfVYMP.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans Condensed;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-condensed-cyrillic-ext-500-normal-BeBjlrOh.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans Condensed;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-condensed-vietnamese-500-normal-CkG7ISwK.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans Condensed;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-condensed-latin-ext-500-normal--oYb3bSD.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:IBM Plex Sans Condensed;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-condensed-latin-500-normal-BqaLkUoX.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-sans-condensed-cyrillic-ext-700-normal-Cq09-7_W.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-sans-condensed-vietnamese-700-normal-BHzPe_nH.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-sans-condensed-latin-ext-700-normal-CXZ_9bG9.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:IBM Plex Sans Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-sans-condensed-latin-700-normal-D8r4s4aS.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BqneJy0T.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-500-normal-Bq9vWWag.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-vietnamese-500-normal-DZ4AoWbu.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-ext-500-normal-CAhNIIs5.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--ink:#0b0b0b;--ink-2:#2b2b2b;--muted:#545454;--line:#d4d4d4;--paper:#fff;--accent:#cf142b;--selected:#fcf1f2;--warning:#a3111f;--code:#f2f2f2;--cjk:"Noto Sans SC";--body:"IBM Plex Sans", var(--cjk), sans-serif;--display:"IBM Plex Sans Condensed", var(--cjk), sans-serif;--mono:"IBM Plex Mono", var(--cjk), monospace;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--stuck-heading-line:36px}:root[lang=zh-Hant]{--cjk:"Noto Sans TC"}:root[lang=ja]{--cjk:"Noto Sans JP";word-break:auto-phrase}:root[lang=ko]{--cjk:"Noto Sans KR";word-break:keep-all}*{box-sizing:border-box}body{background:var(--paper);color:var(--ink);font-family:var(--body);-webkit-text-size-adjust:100%;margin:0}a{color:var(--ink)}a:hover{color:var(--accent)}button{font:inherit;color:inherit}:focus-visible,.upload:has(+input:focus-visible),.download:has(+input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.page{flex-direction:column;max-width:1280px;margin:0 auto;padding:24px clamp(16px,4vw,56px) 64px;display:flex}.button{border:1px solid var(--ink);background:var(--paper);min-height:44px;color:var(--ink);cursor:pointer;border-radius:0;padding:0 16px;font-size:14px;font-weight:500}.button.small{min-height:40px;padding:0 12px;font-size:13px}.button[aria-pressed=true]{background:var(--ink);color:var(--paper)}.download{background:var(--ink);min-height:60px;color:var(--paper);text-align:left;cursor:pointer;border:0;border-radius:0;padding:0 28px;font-size:22px;font-weight:700}.download:disabled{background:var(--line);color:var(--muted);cursor:not-allowed}.download[aria-busy=true]{cursor:progress}.download.outline{border:1px solid var(--ink);background:var(--paper);color:var(--ink)}.download.outline:disabled{border-color:var(--line);background:var(--paper)}.download.secondary{border:1px solid var(--ink);min-height:44px;color:var(--ink);background:0 0;padding:0 20px;font-size:16px}label.download{align-items:center;display:inline-flex}label.download[aria-disabled=true]{background:var(--line);color:var(--muted);cursor:progress}.download.secondary:disabled{border-color:var(--line);background:0 0}.button,.download,.camera{transition:background-color .12s}@media (hover:hover){.button:not(:disabled):not([aria-pressed=true]):not(.primary):not(.danger):hover,.download.outline:not(:disabled):hover,.download.secondary:not(:disabled):hover,.camera:not(:has(input:checked)):not(:has(input:disabled)):hover{background:var(--code)}.download:not(.outline):not(.secondary):not(:disabled):hover,.button.primary:not(:disabled):hover{background:var(--ink-2)}.module:hover .module-name,.effect-row .row-body:hover .row-name{text-decoration:underline}}.button:not(:disabled):not([aria-pressed=true]):not(.primary):not(.danger):active,.download.outline:not(:disabled):active,.download.secondary:not(:disabled):active,.camera:not(:has(input:checked)):not(:has(input:disabled)):active{background:var(--line)}.download:not(.outline):not(.secondary):not(:disabled):active,.button.primary:not(:disabled):active{background:var(--muted)}.browser-banner{background:var(--ink);color:var(--paper);text-align:center;text-wrap:balance;padding:12px clamp(16px,4vw,56px);font-size:14px;line-height:1.5}.app-promo{z-index:10;padding:10px 8px calc(10px + env(safe-area-inset-bottom)) 16px;border-top:1px solid var(--ink);background:var(--paper);align-items:center;gap:12px;display:flex;position:fixed;bottom:0;left:0;right:0}.app-promo-space{height:calc(96px + env(safe-area-inset-bottom))}.app-promo img{flex:none;width:40px;height:40px}.app-promo-text{flex-direction:column;flex:1;min-width:0;font-size:13px;line-height:1.35;display:flex}.app-promo-text strong{font-size:15px}.app-promo-text span{color:var(--muted)}.app-promo-text small{color:var(--muted);font-size:11px}.app-promo .button{flex:none;align-items:center;text-decoration:none;display:inline-flex}.app-promo-close{width:32px;height:44px;color:var(--muted);cursor:pointer;background:0 0;border:0;flex:none;place-items:center;padding:0;display:grid}.languages{justify-content:flex-end;align-items:center;gap:12px;display:flex}.github{justify-content:center;align-items:center;width:44px;height:44px;display:inline-flex}.language-select{display:block;position:relative}.languages .language-select .button{appearance:none;border:1px solid var(--ink);padding-right:36px}.language-select:after{content:"";pointer-events:none;border-bottom:1.5px solid;border-right:1.5px solid;width:6px;height:6px;position:absolute;top:50%;right:16px;transform:translateY(-75%)rotate(45deg)}.masthead{padding-bottom:40px}.masthead-top{justify-content:space-between;align-items:center;gap:16px;display:flex}.masthead-title{align-items:flex-start;gap:6px;display:flex}.masthead-version{border:1px solid var(--ink);font-family:var(--mono);color:var(--ink);padding:1px 5px;font-size:12px;text-decoration:none}.masthead-version:hover{background:var(--ink);color:var(--paper)}.masthead h1{letter-spacing:-.01em;margin:0;font-family:IBM Plex Sans Condensed,sans-serif;font-size:36px;font-weight:700;line-height:1}.masthead-nav{gap:24px;margin-right:8px;font-size:14px;display:flex}.masthead-nav a{white-space:nowrap;text-decoration:none}.masthead-home{color:inherit;text-decoration:none}.masthead h1 .dot{--dot-end:35.5%;background:linear-gradient(var(--accent) var(--dot-end), var(--ink) var(--dot-end));color:#0000;-webkit-background-clip:text;background-clip:text}.landing-copy .lead{font-family:var(--display);max-width:16em;margin:0;font-size:clamp(30px,4.2vw,56px);font-weight:700;line-height:1.12}.landing-copy .lead-line{display:block}@media (width<=900px){.masthead-nav:not(.masthead-back){display:none}}@media (width<=560px){.masthead h1{font-size:30px}}.landing-hero{grid-template-columns:minmax(0,5fr) minmax(0,6fr);align-items:center;gap:32px 56px;padding-bottom:48px;display:grid}.landing-copy{flex-direction:column;gap:28px;display:flex}.landing-action{flex-direction:column;align-items:flex-start;gap:10px;max-width:34em;display:flex}.landing-install{align-items:center;text-decoration:none;display:inline-flex}.landing-install:hover{color:var(--paper);background:var(--ink-2)}.landing-looks{flex-direction:column;gap:10px;min-width:0;display:flex}.landing-looks-meta{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 16px;display:flex}.landing-look-name{font-family:var(--display);margin:0;font-size:22px;font-weight:700}.landing-strip{grid-template-columns:repeat(5,minmax(0,84px));gap:4px;display:grid}.landing-film{text-align:center;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:0;flex-direction:column;align-items:center;gap:6px;min-width:0;padding:8px 2px;font-size:12px;line-height:1.25;display:flex}.landing-film:hover{border-color:var(--line)}.landing-film[aria-pressed=true]{border-color:var(--accent);background:var(--selected)}.landing-text{max-width:62ch;color:var(--ink-2);margin:0;line-height:1.6}.landing-choices{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.landing-choices-label{margin-right:8px;font-size:14px}.landing-ratio{font-family:var(--mono)}.landing-framing{flex-direction:column;gap:16px;display:flex}.landing-framing-views{grid-template-columns:minmax(0,3fr) minmax(0,2fr);align-items:start;gap:24px;display:grid}.landing-framing-views figure,.landing-screens figure,.landing-detail{margin:0}.landing-framing-views figcaption{color:var(--muted);margin-top:8px;font-size:13px}.landing-framing-views figcaption b{color:var(--ink);font-weight:600}.landing-display{aspect-ratio:3/2;background:#000;position:relative;overflow:hidden}.landing-display img,.landing-shot img,.landing-zoom img{object-fit:cover;width:100%;height:100%;display:block}.landing-crop{outline:1px solid #ffffffe6;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 200vmax #0000009e}.landing-crop svg{width:100%;height:100%;position:absolute;inset:0}.landing-crop line{stroke:#ffffffd9;stroke-width:1px;vector-effect:non-scaling-stroke}.landing-shot{background:#000;overflow:hidden}.landing-details{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:32px;display:grid}.landing-detail figcaption{flex-direction:column;gap:10px;margin-top:12px;display:flex}.landing-detail h3,.landing-facts h3{font-family:var(--display);margin:0;font-size:19px;font-weight:700}.landing-detail p{color:var(--ink-2);margin:0;font-size:14px;line-height:1.6}.landing-detail .note{color:var(--muted)}.landing-detail .button.small{padding:0 8px}.landing-zoom{aspect-ratio:4/3;background:#000;overflow:hidden}.landing-screens{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px;display:grid}.landing-screens img{width:100%;height:auto;display:block}.landing-screens figcaption{margin-top:10px;font-size:14px}.landing-facts{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px 24px;margin:0;padding:0;list-style:none;display:grid}.landing-facts li{padding-right:20px}.landing-facts p{color:var(--ink-2);margin:6px 0 0;font-size:14px;line-height:1.6}.landing-start{font-family:var(--display);letter-spacing:-.01em;margin:0;padding:72px 0 28px;scroll-margin-top:16px;font-size:clamp(30px,3vw,40px);font-weight:700;line-height:1.1}@media (width<=860px){.landing-hero,.landing-framing-views{grid-template-columns:minmax(0,1fr)}}.section{border-top:2px solid var(--ink);flex-wrap:wrap;gap:24px;padding:28px 0 40px;display:flex}.section>h2{z-index:5;font-family:var(--display);flex:0 0 200px;align-self:flex-start;margin:0;scroll-margin-top:46px;font-size:26px;font-weight:700;position:sticky;top:16px}@media (width<=900px){.section>h2{line-height:var(--stuck-heading-line);background:var(--paper);flex-basis:100%;margin:-12px 0;padding:12px 0;top:0}}.section-body{flex-direction:column;flex:999 640px;gap:24px;min-width:0;display:flex}.note{max-width:72ch;color:var(--muted);margin:0;font-size:13px;line-height:1.6}.note-group{flex-direction:column;gap:4px;display:flex}.status{color:var(--ink-2);margin:0;font-size:14px;line-height:1.6}.load-error{align-items:flex-start;gap:12px}.status.error,.note.error{color:var(--warning)}.cameras{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}@media (width<=560px){.cameras{grid-template-columns:minmax(0,1fr)}}.camera{border:1px solid var(--ink);cursor:pointer;align-items:flex-start;gap:12px;padding:16px;display:flex}.camera:has(input:checked){border:2px solid var(--accent);padding:15px}.camera:has(input:disabled){border-color:var(--line);color:var(--muted);cursor:not-allowed}.camera input{width:18px;height:18px;accent-color:var(--accent);flex:none;margin:2px 0 0}.camera-text{flex-direction:column;gap:6px;min-width:0;display:flex}.camera-name{font-size:18px;font-weight:600}.camera-firmware{font-family:var(--mono);color:var(--muted);font-size:12px}.camera-status{flex-wrap:wrap;align-items:center;gap:4px 8px;display:flex}.badge{background:var(--paper);color:var(--ink-2);border:1px dashed var(--muted);align-self:flex-start;padding:2px 8px;font-size:12px}.badge.supported{background:var(--ink);color:var(--paper);border-color:var(--ink)}.preview-row{flex-wrap:wrap;align-items:flex-start;gap:24px;display:flex}.viewer{flex-direction:column;flex:520px;gap:10px;min-width:0;display:flex}.frame{aspect-ratio:3/2;background:#c9c4ba;position:relative;overflow:hidden}.frame img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.frame-placeholder{font-family:var(--mono);color:var(--ink-2);justify-content:center;align-items:center;font-size:13px;display:flex;position:absolute;inset:0}.image-comparison{width:100%;height:100%}.frame[aria-busy=true] .comparison-effect{opacity:.6}.image-comparison .__rcs-handle-arrow{width:.5rem!important;height:.5rem!important}.image-comparison [data-rcs=handle-root]:focus-visible{outline:none}.image-comparison [data-rcs=handle-root]:focus-visible .__rcs-handle-button{outline:2px solid var(--accent);outline-offset:2px}.comparison-effect{z-index:1;transition:opacity .12s}.tag{z-index:2;pointer-events:none;color:var(--paper);background:#0b0b0bc7;padding:4px 8px;font-size:12px;position:absolute;top:10px;right:10px}.preview-side{flex-direction:column;flex:0 300px;gap:16px;min-width:0;display:flex}.field{flex-direction:column;gap:8px;display:flex}.field-label{color:var(--muted);font-size:13px}.previewing{font-family:var(--display);font-size:26px;font-weight:700}.upload{border:1px solid var(--ink);cursor:pointer;justify-content:center;align-items:center;gap:8px;min-height:48px;font-size:15px;font-weight:500;display:inline-flex}.toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.toolbar p{margin:0;font-size:16px}.toolbar .count{color:var(--accent);font-family:IBM Plex Mono,monospace;font-weight:500}.toolbar>div{gap:8px;display:flex}.table-box{border-top:1px solid var(--ink);position:relative;overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:600px;font-size:14px}th{color:var(--muted);text-align:left;padding:10px 8px;font-size:12px;font-weight:400}td{vertical-align:middle;padding:14px 8px;line-height:1.5}tbody tr{border-bottom:1px solid var(--line)}tbody tr:has(input:checked){background:var(--selected)}td input[type=checkbox]{width:20px;height:20px;accent-color:var(--accent);cursor:pointer;margin:0}.effect-name{cursor:pointer;font-size:16px;font-weight:600}.effect-stock{font-family:var(--mono);color:var(--muted);white-space:nowrap;font-size:12px;display:block}.effect-icon{width:48px;height:48px;display:block}.effect-icon.pixels{image-rendering:pixelated}.effect-icon text{text-anchor:middle;font-family:IBM Plex Sans Condensed,sans-serif;font-weight:700}.cover-brand{font-size:8px}.cover-name{letter-spacing:.2px;font-size:6.6px}.cover-number{letter-spacing:-.3px;font-size:14px}.cover-name-large{letter-spacing:-.2px;font-size:12px}.modules{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:0 32px;display:grid}.module{border-bottom:1px solid var(--line);cursor:pointer;align-items:flex-start;gap:12px;padding:14px 0;display:flex}.module-file{flex:none;margin-left:auto}.module input{width:20px;height:20px;accent-color:var(--accent);cursor:pointer;flex:none;margin:2px 0 0}.module-text{flex-direction:column;gap:4px;min-width:0;display:flex}.module-name{font-size:16px;font-weight:600}.module-description{color:var(--ink-2);font-size:15px;line-height:1.6}.module:has(input:not(:checked)) .module-description{color:var(--muted)}.module-warning{color:var(--warning);font-size:14px;line-height:1.6}.effect-source{overflow-wrap:anywhere;display:block}.row-actions{flex-direction:column;gap:8px;display:flex}.button.primary{background:var(--ink);color:var(--paper)}.button:disabled{border-color:var(--line);background:var(--paper);color:var(--muted);cursor:not-allowed}.dialog{border:1px solid var(--ink);background:var(--paper);width:min(720px,100vw - 32px);max-height:calc(100dvh - 32px);color:var(--ink);border-radius:0;padding:0}.dialog::backdrop{background:#00000073}.dialog-head{z-index:1;border-bottom:1px solid var(--ink);background:var(--paper);justify-content:space-between;align-items:center;gap:16px;padding:16px 24px;display:flex;position:sticky;top:0}.dialog-title{font-family:var(--display);margin:0;font-size:22px;font-weight:700}.dialog-body{flex-direction:column;gap:20px;padding:24px;display:flex}.dialog-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.dialog .upload[aria-disabled=true]{color:var(--muted);border-color:var(--line);cursor:not-allowed}.import-file-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;padding:0 12px;overflow:hidden}.import-fields{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;display:grid}.import-text{border:1px solid var(--ink);background:var(--paper);min-width:0;max-width:100%;min-height:44px;font:inherit;color:var(--ink);border-radius:0;padding:0 12px;font-size:15px}.import-text[aria-invalid=true]{border-color:var(--warning)}.import-icon{border:0;border-top:1px solid var(--line);grid-template-columns:auto 1fr;gap:8px 24px;margin:0;padding:16px 0 0;display:grid}.import-icon legend{padding:0 0 8px}.import-icon-preview .effect-icon{width:120px}.import-icon-fields{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));align-content:start;gap:12px;display:grid}.import-icon-fields>.check,.import-icon-fields>.note{grid-column:1/-1}.import-icon-edit summary{cursor:pointer;font-size:14px}.import-icon-edit[open] summary{margin-bottom:12px}.import-icon-error{grid-column:1/-1}.check{cursor:pointer;align-items:center;gap:8px;font-size:14px;display:flex}.check input{width:18px;height:18px;accent-color:var(--accent);margin:0}.hald summary{cursor:pointer;font-size:14px}.hald[open]{flex-direction:column;align-items:flex-start;gap:12px;display:flex}.import-done{align-items:center;gap:20px;display:flex}.import-done .effect-icon{flex:none;width:96px}.import-done-name{font-family:var(--display);margin:0 0 4px;font-size:22px;font-weight:700}.import-result{flex-direction:column;gap:8px;display:flex}.import-warnings{color:var(--ink-2);margin:0;padding-left:20px;font-size:14px;line-height:1.6}@media (width<=560px){.import-icon{gap:8px 16px}.import-icon-preview .effect-icon{width:80px}}.package{flex-wrap:wrap;flex:999 640px;align-items:flex-start;gap:32px;min-width:0;display:flex}.package dl{flex:320px;grid-template-columns:140px minmax(0,1fr);row-gap:10px;margin:0;font-size:15px;line-height:1.5;display:grid}.package dt{color:var(--muted)}.package dd{margin:0}.package .package-note{color:var(--muted);grid-column:1/-1;margin-top:6px;font-size:14px}.package-action{flex-direction:column;flex:0 320px;gap:12px;display:flex}.package-links{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.package-links .button{align-items:center;text-decoration:none;display:inline-flex}.steps{flex-direction:column;flex:999 640px;gap:12px;min-width:0;margin:0;padding-left:24px;font-size:16px;line-height:1.6;display:flex}.section-body>.steps,.section-body>.package-action{flex:none}.section-body>.package-action{align-items:flex-start}code{background:var(--code);padding:1px 5px;font-family:IBM Plex Mono,monospace;font-size:14px}.footer{border-top:1px solid var(--ink);color:var(--muted);flex-direction:column;gap:16px;padding-top:20px;font-size:14px;display:flex}.footer-links{flex-wrap:wrap;gap:12px 48px;display:flex}.footer-links ul{flex-wrap:wrap;gap:12px 24px;margin:0;padding:0;list-style:none;display:flex}.footer-meta{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px 24px;display:flex}.footer-meta p{max-width:72ch;margin:0}.footer-meta a{color:var(--muted)}.import-progress{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px 12px;display:grid}.import-progress .status{grid-column:1/-1}.import-progress progress{appearance:none;border:1px solid var(--ink);background:var(--paper);width:100%;height:8px;accent-color:var(--accent)}.import-progress progress::-webkit-progress-bar{background:var(--paper)}.import-progress progress::-webkit-progress-value{background:var(--accent)}.import-progress progress::-moz-progress-bar{background:var(--accent)}.import-percent{font-family:var(--mono);color:var(--muted);text-align:right;min-width:4ch;font-size:12px}.import-about{border-top:1px solid var(--line);gap:6px;margin-top:4px;padding-top:12px;display:grid}.import-about strong{color:var(--ink-2);font-weight:600}.card{flex-direction:column;gap:14px;max-width:720px;display:flex}.card-lead{margin:0;font-size:16px;line-height:1.6}.card-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.card-actions .download{width:auto}.card-actions.pair{grid-auto-columns:1fr;grid-auto-flow:column;width:fit-content;display:grid}@media (width<=640px){.card-actions.pair{grid-auto-flow:row;width:auto}}.card-facts{grid-template-columns:140px minmax(0,1fr);row-gap:8px;margin:0;font-size:15px;line-height:1.5;display:grid}.card-facts dt{color:var(--muted)}.card-facts dd{overflow-wrap:anywhere;margin:0}.card-status:empty{display:none}.card-changes{flex-wrap:wrap;align-items:flex-start;gap:32px;display:flex}.card-changes .card-facts{flex:320px}.change{vertical-align:2px;white-space:nowrap;border:1px solid;margin-left:8px;padding:1px 6px;font-size:12px;font-weight:600;line-height:1.4;display:inline-block}.change.add{color:var(--ink)}.change.remove{color:var(--warning)}.link-button{color:var(--ink-2);font:inherit;cursor:pointer;background:0 0;border:0;align-self:flex-start;padding:0;font-size:14px;text-decoration:underline}.link-button:disabled{color:var(--muted);cursor:default}.mode-text{color:var(--ink-2);font-size:15px;line-height:1.5}.camera:has(input:disabled) .mode-text{color:var(--muted)}.card-done{flex-direction:column;gap:14px;display:flex}.card-done-title{font-family:var(--display);margin:0;font-size:22px;font-weight:700}.card-done .steps{flex:none}.card-block{flex-direction:column;gap:10px;display:flex}.card-block+.card-block{border-top:1px solid var(--line);padding-top:18px}.card-heading{margin:0;font-size:16px;font-weight:600}.card-check{cursor:pointer;align-items:center;gap:10px;font-size:15px;display:flex}.card-check input{width:18px;height:18px;accent-color:var(--accent);margin:0}.card-confirm{flex-direction:column;gap:10px;display:flex}.button.danger{border-color:var(--warning);background:var(--warning);color:var(--paper)}.card-cameras{flex-wrap:wrap;gap:6px;display:inline-flex}.dialog.confirm{width:min(460px,100vw - 32px)}.effects-list{border-top:1px solid var(--ink);margin:0;padding:0;list-style:none}.effect-row{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:0 12px;display:flex}.effect-row[data-checked]{background:var(--selected)}.effect-row[data-previewed]{box-shadow:inset 0 0 0 2px var(--ink)}.row-check{width:20px;height:20px;accent-color:var(--accent);cursor:pointer;flex:none;margin:0}.row-body{min-width:0;color:inherit;font:inherit;text-align:left;background:0 0;border:0;flex:1;align-items:center;gap:12px;padding:8px 0;display:flex}button.row-body{cursor:pointer}.row-body:focus-visible{outline-offset:-2px}.row-body .effect-icon{flex:none;width:40px;height:40px}.row-text{flex-direction:column;gap:2px;min-width:0;display:flex}.row-name{font-size:15px;font-weight:600;line-height:1.3}.row-meta{color:var(--muted);font-size:12px}.effect-row .change{background:var(--paper);flex:none;margin-left:0}.row-remove{color:var(--ink-2);font:inherit;cursor:pointer;background:0 0;border:0;flex:none;padding:8px 0;font-size:12px;text-decoration:underline}.import-row{padding-left:44px}.import-mark{border:1px dashed var(--ink-2);width:40px;height:40px;color:var(--ink-2);flex:none;justify-content:center;align-items:center;font-size:22px;line-height:1;display:flex}.import-row .row-body:hover .row-name{text-decoration:underline}.native-lock{fill:none;width:20px;height:20px;stroke:var(--ink-2);stroke-width:1.5px;stroke-linecap:round;flex:none}.native-item .effect-icon{opacity:.55}.native-stack{opacity:.55;flex:none;display:flex}.native-stack-cover{display:flex;position:relative}.native-stack-cover+.native-stack-cover{margin-left:-34px}.native-stack-cover:first-child{z-index:3;box-shadow:2px 0 0 var(--paper)}.native-stack-cover:nth-child(2){z-index:2;box-shadow:2px 0 0 var(--paper)}.native-chevron{border-right:1.5px solid var(--ink-2);border-bottom:1.5px solid var(--ink-2);flex:none;width:8px;height:8px;margin-left:auto;transform:translateY(-2px)rotate(45deg)}.native-group .row-body[aria-expanded=true] .native-chevron{transform:translateY(2px)rotate(-135deg)}.native-action{flex:none}.native-row .row-body:hover .row-name{text-decoration:underline}.native-item{padding-left:44px}.native-item .row-body{padding:4px 0}.native-item .effect-icon{width:32px;height:32px}.native-item .row-name{font-weight:400}.native-dialog[data-dragging]{outline:2px dashed var(--accent);outline-offset:-8px}.native-steps{gap:20px;margin:0;padding-left:20px;display:grid}.native-steps>li>*+*{margin-top:10px}.native-steps>li::marker{font-weight:600}.native-steps a.button,.native-steps button.upload{align-items:center;width:fit-content;text-decoration:none;display:flex}.native-steps button.upload{background:var(--paper);color:var(--ink);padding:0 20px}.native-steps button.upload:disabled{border-color:var(--line);color:var(--muted);cursor:not-allowed}.native-status{flex-direction:column;gap:8px;display:flex}.native-reading{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.native-done{flex-wrap:wrap;gap:12px 24px;margin:0;padding:0;list-style:none;display:flex}.native-done li{align-items:center;gap:12px;display:flex}.native-done .effect-icon{flex:none;width:56px}.native-done .import-done-name{margin:0;font-size:18px}.effects-pick{flex-direction:column;gap:24px;min-width:0;display:flex}@media (width<=1023.98px){.effects-body .preview-row{display:contents}.effects-body .viewer{z-index:4;background:var(--paper);flex:none;align-self:center;width:min(100%,60svh);padding-bottom:8px;position:sticky;top:16px}}@media (width<=900px){.effects-body .viewer{top:calc(var(--stuck-heading-line) + 24px)}}@media (width>=1024px){.effects-body{grid-template-columns:minmax(0,3fr) minmax(0,2fr);align-items:start;display:grid}.effects-body .preview-row{flex-flow:column;position:sticky;top:16px}.effects-body .viewer,.effects-body .preview-side{flex:none;width:100%}.effects-body .toolbar>div{flex-wrap:wrap}}.previewing-look{color:var(--ink-2);font-size:14px;line-height:1.5}.photo-field{border-top:1px solid var(--line);padding-top:16px}.frame[aria-busy=true] .image-comparison{filter:brightness(.7);transition:filter .12s}.frame-status{z-index:3;max-width:calc(100% - 32px);color:var(--paper);white-space:nowrap;text-overflow:ellipsis;pointer-events:none;background:#0b0b0bd1;align-items:center;gap:10px;padding:8px 14px;font-size:13px;display:inline-flex;position:absolute;bottom:16px;left:50%;overflow:hidden;transform:translate(-50%)}.spinner{border:2px solid;border-right-color:#0000;border-radius:50%;flex:none;width:14px;height:14px;animation:.7s linear infinite spin}.frame-placeholder .spinner{margin-right:10px}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spinner{animation-duration:2s}}.section-body.faq{border-top:none;max-width:760px}.faq details{border-bottom:1px solid var(--line)}.faq summary{cursor:pointer;justify-content:space-between;gap:16px;padding:14px 0;font-size:16px;font-weight:600;line-height:1.5;list-style:none;display:flex}.faq summary::-webkit-details-marker{display:none}.faq summary:after{content:"+";font-family:var(--mono);color:var(--muted);flex:none;font-weight:400}.faq details[open] summary:after{content:"−"}.faq p{color:var(--ink-2);margin:0 0 16px;font-size:15px;line-height:1.7}.not-found{max-width:640px;margin:0 auto;padding:64px 24px}.not-found h1{font-family:var(--display);margin:0 0 16px;font-size:48px;font-weight:700}.fastboot p{margin:0}.fastboot-lead{max-width:30em;font-family:var(--display);text-wrap:balance;font-size:26px;font-weight:600;line-height:1.3}@media (width<=560px){.fastboot-lead{font-size:22px}}.fastboot-text,.fastboot .steps{text-wrap:pretty;max-width:40em;font-size:16px;line-height:1.7}.ricoh-links{flex-wrap:wrap;gap:8px;margin:10px 0 0;padding:0;list-style:none;display:flex}.ricoh-links a.button{align-items:center;text-decoration:none;display:inline-flex}.fastboot .steps .package-action{align-items:flex-start;margin-top:12px}.fastboot label.download{padding-block:12px;line-height:1.25}.fastboot-warning{border:1px solid var(--warning);background:var(--selected);max-width:40em;color:var(--warning);padding:12px 16px;font-size:15px;font-weight:600;line-height:1.6}.fastboot-names{flex-direction:column;gap:8px;margin-top:10px;font-size:15px;display:flex}.fastboot-files{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.fastboot-files li{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;gap:4px 16px;padding:8px 0;display:flex}.fastboot-files code{font-size:16px;font-weight:600}.fastboot-screen{max-width:360px;margin:12px 0 4px}.fastboot-screen img{background:#000;width:100%;height:auto;display:block}.fastboot-screen figcaption{color:var(--muted);margin-top:6px;font-size:13px}.fastboot-help{list-style:outside}.fastboot-working{align-items:center;gap:10px;display:flex}.compare{border-collapse:collapse;width:100%;min-width:0;max-width:880px;font-size:15px;line-height:1.55}.compare th,.compare td{border-bottom:1px solid var(--line);color:var(--ink);text-align:left;vertical-align:top;padding:12px 16px 12px 0;line-height:1.55}.compare thead th{border-bottom:1px solid var(--ink);padding-top:0;font-size:15px;font-weight:600}.compare thead td{border-bottom:1px solid var(--ink)}.compare tbody th{width:24%;font-size:15px;font-weight:600}.compare tbody td:first-of-type{width:32%;color:var(--muted)}@media (width<=560px){.compare,.compare tbody{display:block}.compare thead{display:none}.compare tr{border-bottom:1px solid var(--line);padding:14px 0;display:block}.compare tbody th,.compare tbody td,.compare tbody td:first-of-type{border:0;width:auto;padding:0;display:block}.compare tbody th{padding-bottom:8px}.compare tbody td+td{margin-top:8px}.compare td:before{content:attr(data-label);color:var(--muted);font-size:13px;line-height:1.5;display:block}}
