@charset "UTF-8";:root{color-scheme:light dark;--paper:#ffffff;--surface:#f5f5f7;--ink:#1d1d1f;--muted:#626269;--line:#e4e4e8;--accent:#b33b15;--focus:#b33b15;--action:#0065c7;--action-fill:#0071e3;--action-hover:#0065cc;--action-ink:#ffffff}@media (prefers-color-scheme:dark){:root{--paper:#0b0b0c;--surface:#18181a;--ink:#f5f5f7;--muted:#aeaeb5;--line:#343438;--accent:#ff916b;--focus:#ff916b;--action:#75baff}}*,:after,:before{box-sizing:border-box}html{scroll-padding-top:24px}body{margin:0;background:var(--paper);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}a{color:inherit;text-underline-offset:4px}button,input,select{font:inherit}button,select{color:inherit}button,select,summary{cursor:pointer}button{background:none}img,svg{display:block;max-width:100%}img{height:auto}figure,h1,h2,h3,p{margin:0}h1,h2,h3{line-height:1.2;font-weight:600;text-wrap:balance}h1{font-size:clamp(40px,5vw,64px);letter-spacing:-.055em}h2{font-size:28px;letter-spacing:-.035em}h3{font-size:18px;letter-spacing:-.02em}p{overflow-wrap:anywhere}:focus-visible{outline:2px solid var(--focus);outline-offset:5px;border-radius:4px}::selection{background:var(--ink);color:var(--paper)}.shell{width:min(1080px,calc(100% - 64px));margin-inline:auto}.skip-link:not(:focus),.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.skip-link:focus{position:fixed;top:12px;left:12px;z-index:10;padding:12px 20px;background:var(--paper)}.header{min-height:76px;display:flex;justify-content:space-between;gap:24px}.header,.wordmark{align-items:center}.wordmark{display:inline-flex;gap:10px;font-size:17px;font-weight:600;letter-spacing:-.025em;text-decoration:none;white-space:nowrap}.wordmark-mark{width:26px;color:var(--accent)}.wordmark-mark svg{width:100%;height:auto}.footer nav,.header nav{display:flex;flex-wrap:wrap;align-items:center;gap:24px}.footer nav a,.header nav a{display:inline-flex;align-items:center;min-height:44px;color:var(--muted);text-decoration:none;font-size:14px}.footer nav a:hover,.header nav a:hover{color:var(--ink);text-decoration:underline}.footer{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px 32px;padding-block:28px;border-top:1px solid var(--line);color:var(--muted);font-size:13px}.app-detail,.directory,.text-page{padding-block:72px 80px}.page-header{margin-bottom:48px}.page-intro,.page-lead{color:var(--muted);font-size:18px;line-height:1.6;max-width:60ch;margin-top:24px}.collection-filters{justify-content:space-between;gap:12px 20px;margin-bottom:28px}.collection-filters,.filter-nav{display:flex;align-items:center;flex-wrap:wrap}.filter-nav{gap:4px}.filter-button{border:0;border-radius:7px;min-height:44px;padding:8px 16px;font-size:14px;color:var(--muted)}.filter-button:hover{background:var(--surface);color:var(--ink)}.filter-button[aria-pressed=true]{background:var(--ink);color:var(--paper)}select{max-width:100%;min-height:44px;padding:8px 32px 8px 12px;border:1px solid var(--line);border-radius:7px;background-color:var(--paper);font-size:14px}.app-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px 24px}.app-card{display:flex;flex-direction:column;min-width:0;text-decoration:none;border-radius:12px}.card-art{position:relative;aspect-ratio:4/3;overflow:hidden;border-radius:12px;background:var(--surface);border:1px solid var(--line)}.card-art img{width:100%;height:100%}.card-monogram{display:grid;place-content:center;height:100%;color:var(--muted);font-size:64px;font-weight:500}.card-copy{display:flex;flex-direction:column;flex:1 1;gap:10px;padding:18px 0 0}.card-title-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.card-title-row h2{font-size:17px;text-wrap:auto}.card-copy p{font-size:14px;line-height:1.65;color:var(--muted)}.card-copy .card-platforms{margin-top:auto;padding-top:4px;font-size:12px}.link-arrow{color:var(--muted);flex-shrink:0}.app-card:hover h2,.tool-card:hover h3{text-decoration:underline;text-underline-offset:4px}.app-card:hover .link-arrow,.tool-card:hover .link-arrow{color:var(--accent)}.empty-state{padding:48px 0;color:var(--muted)}.empty-state .text-link{margin-top:12px}.home-page{width:min(1600px,calc(100% - 24px));margin-inline:auto;padding-bottom:56px}.product-panel{min-width:0;overflow:hidden;background:var(--surface);text-align:center}.product-panel-copy{padding:36px 24px 24px}.product-panel h2{font-size:clamp(28px,3vw,40px);letter-spacing:-.045em}.product-panel-copy>p{margin-top:10px;font-size:19px;line-height:1.4;letter-spacing:-.025em}.product-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:12px 24px;margin-top:18px}.product-actions a,.showcase-directory a{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;color:var(--action);font-size:15px;text-decoration:none}.product-actions a:hover,.showcase-directory a:hover{text-decoration:underline}.product-actions .product-primary{padding:10px 22px;border-radius:24px;color:var(--action-ink);background:var(--action-fill)}.product-actions .product-primary:hover{background:var(--action-hover);text-decoration:none}.product-panel-image{position:relative;width:calc(100% - 48px);max-width:640px;aspect-ratio:16/10;margin-inline:auto;overflow:hidden;border-radius:12px 12px 0 0}.product-panel-image img{object-fit:cover}.product-panel-featured .product-panel-copy{padding-block:52px 30px}.product-panel-featured h1{font-size:clamp(44px,5.5vw,72px)}.product-panel-featured .product-panel-copy>p{font-size:clamp(20px,2.5vw,28px)}.product-panel-featured .product-panel-image{width:calc(100% - 80px);max-width:1100px;aspect-ratio:1800/991}.product-panels{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:12px}.product-panels:empty{display:none}.product-panels .product-panel:only-child{grid-column:1/-1}.showcase-directory{display:flex;justify-content:center;padding:28px 20px}.compact-apps{padding-top:48px}.compact-app-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:28px 16px;list-style:none;margin:24px 0 0;padding:0}.compact-app-grid>li{min-width:0}.compact-app{display:flex;flex-direction:column;align-items:center;gap:16px;height:100%;padding:16px 8px;text-align:center;text-decoration:none;border-radius:10px}.compact-app-icon{display:block;flex-shrink:0;width:64px;height:64px;object-fit:cover;border-radius:14px}.compact-app-monogram{display:grid;place-content:center;background:var(--surface);color:var(--muted);font-size:28px}.compact-app h3{font-size:16px;line-height:1.35;letter-spacing:-.02em}.compact-app p{margin-top:6px;color:var(--muted);font-size:14px;line-height:1.5}.compact-app:hover h3{text-decoration:underline;text-underline-offset:4px}.tools-section{padding-top:36px;border-top:1px solid var(--line);scroll-margin-top:32px}.tools-section>h2{margin-bottom:24px}.tool-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.tool-card{display:flex;align-items:center;gap:18px;min-width:0;padding:8px 0;text-decoration:none}.tool-symbol{display:grid;place-content:center;width:48px;height:48px;border-radius:10px;flex-shrink:0;background:var(--surface);color:var(--ink);font-family:ui-monospace,monospace;font-size:22px;letter-spacing:-.06em}.tool-card p{margin-top:6px;color:var(--muted);font-size:14px}.tool-card .link-arrow{margin-left:auto}.text-page{max-width:760px;min-height:65vh}.prose{max-width:65ch}.prose ol,.prose p+p,.prose ul{margin-top:20px}.prose h2,.prose h3{margin-block:32px 16px}.prose a{color:var(--accent)}.biography{font-size:17px}.detail-section{padding-top:40px;margin-top:48px;border-top:1px solid var(--line)}.detail-section>h2{margin-bottom:28px}.legal-links,.page-links{display:flex;flex-wrap:wrap;align-items:center;gap:12px 28px}.page-links{margin-top:48px;padding-top:24px;border-top:1px solid var(--line)}.legal-links a,.page-links a{display:inline-flex;align-items:center;gap:8px;min-height:44px;font-size:14px;text-decoration:none}.legal-links a:hover,.page-links a:hover{text-decoration:underline}.button{display:inline-flex;justify-content:center;align-items:center;min-height:44px;padding:10px 20px;border:1px solid var(--ink);border-radius:8px;background:var(--ink);color:var(--paper);font-size:14px;font-weight:500;line-height:1.5;text-decoration:none}.button:hover{opacity:.85}.button.secondary{background:transparent;color:var(--ink);border-color:var(--line)}.button.secondary:hover{background:var(--surface);opacity:1}.text-link{padding:0;border:0;color:var(--ink);text-decoration:underline;font-size:14px}details{border-bottom:1px solid var(--line)}summary{padding:20px 0;font-weight:500}details>p{padding-bottom:24px;color:var(--muted)}.timeline-card{display:grid;grid-template-columns:200px minmax(0,1fr);gap:32px;padding-block:24px;border-bottom:1px solid var(--line)}.timeline-card:first-child{padding-top:0}.timeline-card:last-child{border-bottom:0}.timeline-meta{display:flex;flex-direction:column;gap:8px;color:var(--muted);font-size:14px}.timeline-card p{margin-top:12px;color:var(--muted);font-size:15px}.education-list>div{padding-block:20px;border-bottom:1px solid var(--line)}.education-list>div:first-child{padding-top:0}.education-list>div:last-child{border-bottom:0}.education-list p{margin-top:8px;color:var(--muted);font-size:14px}.stack-list section{padding-block:28px;border-bottom:1px solid var(--line)}.stack-list section:first-child{padding-top:0}.stack-list section:last-child{border-bottom:0}.stack-list h2{font-size:20px}.stack-list p{margin-top:12px;color:var(--muted)}.contact-address{display:inline-block;max-width:100%;overflow-wrap:anywhere;font-size:clamp(20px,4vw,28px);letter-spacing:-.025em}.contact-subject{display:grid;gap:8px;margin-top:32px;max-width:360px}.contact-subject label{font-size:14px}.contact-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}.copy-status{margin-top:16px}.back-link,.copy-status{color:var(--muted);font-size:14px}.back-link{display:inline-flex;align-items:center;min-height:44px;margin-bottom:28px;text-decoration:none}.back-link:hover{color:var(--ink);text-decoration:underline}.detail-hero{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:48px}.detail-hero.no-image{grid-template-columns:minmax(0,680px)}.detail-hero h1{font-size:clamp(36px,4vw,52px)}.app-icon{width:72px;height:72px;margin-bottom:24px;border-radius:16px}.detail-art{overflow:hidden;border-radius:12px;background:var(--surface);border:1px solid var(--line)}.platform-tags{display:flex;flex-wrap:wrap;gap:16px;margin-top:24px;color:var(--muted);font-size:14px}.purchase-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}.purchase-actions:empty{display:none}.purchase-note{margin-top:12px;color:var(--muted);font-size:14px}.app-specs{display:flex;flex-wrap:wrap;gap:24px 48px;margin:40px 0 0;padding-block:24px;border-block:1px solid var(--line)}.app-specs dt{color:var(--muted);font-size:13px}.app-specs dd{margin:4px 0 0;font-size:15px}.release-notes-box{margin-top:32px;padding:24px;border:1px solid var(--line);border-radius:12px}.release-header{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px}.release-version-pill{font-weight:500}.release-date{color:var(--muted);font-size:13px}.release-notes-text{margin-top:12px;white-space:pre-line;color:var(--muted);font-size:14px}.feature-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}.feature p{margin-top:12px;color:var(--muted);font-size:15px}.faq-section{display:grid;grid-template-columns:1fr 2fr;gap:40px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:24px}.gallery-controls{display:flex;gap:8px}.gallery-controls button{width:44px;height:44px;border:1px solid var(--line);border-radius:8px}.gallery-controls button:hover{background:var(--surface)}.screenshot-track{display:flex;align-items:flex-start;gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;padding:8px 8px 20px;margin-inline:-8px}.screenshot-card{flex:0 0 240px;max-width:85%;padding:0;border:1px solid var(--line);border-radius:12px;overflow:hidden;scroll-snap-align:start}.screenshot-card.is-desktop{flex-basis:520px}.screenshot-card.is-tablet{flex-basis:480px}.screenshot-card img{width:100%}.screenshot-dialog{width:min(1100px,calc(100% - 32px));max-height:94svh;padding:20px;border:1px solid var(--line);border-radius:14px;background:var(--paper);color:var(--ink)}.screenshot-dialog::backdrop{background:rgb(0 0 0/.75)}.lightbox-header{display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:14px;margin-bottom:12px}.lightbox-header button,.lightbox-main button{width:44px;height:44px;padding:0;color:var(--ink);border:1px solid var(--line);border-radius:8px;font-size:28px}.lightbox-header button:hover,.lightbox-main button:hover{background:var(--surface)}.lightbox-main{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;gap:16px;align-items:center}.lightbox-main img{max-height:75svh;width:auto;object-fit:contain;justify-self:center}@media (max-width:900px){.compact-app-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.app-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.detail-hero{gap:28px}.feature-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.tool-grid{grid-template-columns:1fr;gap:16px}}@media (max-width:600px){.shell{width:calc(100% - 40px)}.header{min-height:auto;padding-block:20px 12px;flex-wrap:wrap;gap:12px}.header nav{justify-content:space-between;gap:20px;width:100%}.header nav a{font-size:14px}.app-detail,.directory,.text-page{padding-block:44px 56px}.home-page{width:calc(100% - 16px);padding-bottom:40px}.product-panel-copy{padding:28px 16px 20px}.product-panel-copy>p{font-size:18px}.product-panel-image{width:calc(100% - 32px)}.product-panel-featured .product-panel-copy{padding:36px 16px 28px}.product-panel-featured .product-panel-image{width:calc(100% - 32px);aspect-ratio:1800/991}.product-panel-featured .product-panel-image img{object-position:50% 50%}.product-panels{grid-template-columns:1fr;gap:8px;margin-top:8px}.showcase-directory{padding-block:20px}.home-page>.shell{width:calc(100% - 24px)}.compact-apps{padding-top:32px}.compact-app-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 12px;margin-top:20px}.compact-app{padding:12px 4px;gap:12px}.compact-app-icon{width:56px;height:56px;border-radius:12px}.page-header{margin-bottom:32px}.page-intro,.page-lead{font-size:17px}.collection-filters{align-items:stretch;gap:12px}.filter-nav{flex:1 0 100%}.filter-button{flex:1 1;padding-inline:12px}.collection-filters select{width:100%}.app-grid{grid-template-columns:1fr;gap:32px}.card-copy{gap:8px;padding-top:16px}.card-title-row h2{font-size:18px}.tools-section{padding-top:28px}.tool-card{gap:14px}.tool-symbol{width:40px;height:40px;font-size:20px}.tool-card h3{font-size:17px}.footer{align-items:flex-start;padding-block:24px;gap:8px}.footer nav,.footer p{width:100%}.footer nav{display:grid;grid-template-columns:repeat(3,max-content);gap:4px 24px}.detail-hero,.faq-section,.feature-grid,.timeline-card{grid-template-columns:1fr}.timeline-card{gap:16px}.timeline-meta{gap:4px}.detail-section{margin-top:32px;padding-top:32px}.faq-section{gap:20px}.detail-hero{gap:32px}.detail-hero.no-image{grid-template-columns:1fr}.screenshot-dialog{padding:12px}.lightbox-main{grid-template-columns:36px minmax(0,1fr) 36px;gap:6px}.lightbox-main button{width:36px}}@media (prefers-reduced-motion:reduce){*,:after,:before{scroll-behavior:auto!important;animation:none!important;transition:none!important}}.store-artwork{display:flex;justify-content:center;gap:12px;width:100%;height:100%;padding:12px}.store-artwork>div{position:relative;width:100%;height:100%;min-width:0}.store-artwork-phones>div{max-width:32%}.store-artwork img{object-fit:contain}.screenshot-card img{height:auto}.screenshot-gallery-section .section-heading{gap:16px;flex-wrap:wrap}.screenshot-gallery-section select{min-height:44px;padding:8px 32px 8px 12px;border:1px solid var(--line);border-radius:8px;background:var(--paper);color:var(--ink);font:inherit}.store-description summary{cursor:pointer;min-height:44px;display:list-item}.store-description p{margin-top:16px;white-space:pre-line;color:var(--muted)}@media (max-width:600px){.store-artwork{gap:6px;padding:6px}}.release-header{cursor:pointer;min-height:44px}.release-header:after{content:"+";margin-left:auto}.release-notes-box[open]>.release-header:after{content:"−"}