:root{color-scheme:light dark;--paper:#faf9f5;--surface:#f1f0ec;--ink:#20211f;--muted:#666862;--line:#dedfd8;--accent:#b33b15;--focus:#b33b15}@media (prefers-color-scheme:dark){:root{--paper:#0e110e;--surface:#1a1e1a;--ink:#f0f1ed;--muted:#a6aba2;--line:#30362e;--accent:#ff916b;--focus:#ff916b}}*,: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:88px;display:flex;justify-content:space-between;gap:24px;border-bottom:1px solid var(--line)}.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,.home-page,.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}.tools-section{margin-top:80px;padding-top:48px;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;padding:24px;border:1px solid var(--line);border-radius:12px;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){.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,.home-page,.text-page{padding-block:44px 56px}.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{margin-top:56px;padding-top:32px}.tool-card{padding:20px 16px;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{gap: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}}