:root{--bg:#fafafa;--surface:#fff;--text:#0a0a0a;--text-soft:#0a0a0a9e;--text-muted:#0a0a0a94;--line:#00000014;--line-strong:#0000002e;--accent:#c2410c;--mono:ui-monospace, "SF Mono", "JetBrains Mono", "Cascadia Mono", Menlo, monospace;--container:1060px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--bg);min-width:320px;color:var(--text);font-family:var(--mono);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-size:15px;line-height:1.55}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}a:focus-visible{outline:2px solid var(--text);outline-offset:4px}::selection{background:var(--text);color:var(--bg)}.container{width:min(calc(100% - 2rem), var(--container));margin:0 auto}main{flex-direction:column;min-height:100vh;display:flex}.ticker{border-bottom:1px solid var(--line);background:#00000006;overflow:hidden}.ticker-track{white-space:nowrap;font-family:var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--text-soft);gap:3rem;width:max-content;padding:.7rem 0;font-size:.74rem;animation:38s linear infinite ticker-scroll;display:flex}.ticker-track span{align-items:center;gap:3rem;display:inline-flex}.ticker-track span:after{content:"✦";color:var(--accent);font-size:.7rem}@keyframes ticker-scroll{to{transform:translate(-50%)}}.ticker:hover .ticker-track{animation-play-state:paused}.apps-section{flex:1;padding:clamp(3.5rem,8vw,7rem) 0 clamp(3rem,6vw,5rem)}.site-intro{grid-template-columns:minmax(0,1fr) minmax(16rem,.42fr);align-items:end;column-gap:clamp(2rem,8vw,7rem);padding-bottom:clamp(3rem,7vw,5.5rem);display:grid}.intro-kicker{color:var(--accent);letter-spacing:.16em;text-transform:uppercase;grid-column:1/-1;margin:0 0 1rem;font-size:.72rem;font-weight:600}.site-intro h1{letter-spacing:-.04em;max-width:18ch;margin:0;font-size:clamp(1.55rem,3.2vw,2.35rem);font-weight:600;line-height:1.12}.site-intro h1 span{color:var(--text-soft)}.intro-copy{color:var(--text-soft);margin:0 0 .35rem;font-size:clamp(.92rem,1.4vw,1.05rem);line-height:1.7}.section-label-row{border-top:1px solid var(--line-strong);color:var(--text-muted);letter-spacing:.15em;text-transform:uppercase;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;padding-top:.9rem;font-size:.7rem;display:flex}.section-label-row h2{font:inherit;margin:0}.apps-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;display:grid}.app-card{border:1px solid var(--line);color:var(--text);background:0 0;flex-direction:column;align-items:flex-start;gap:1.25rem;padding:1.75rem 1.75rem 1.5rem;transition:background .2s;display:flex;position:relative}.app-card:hover{background:#00000009}.app-no{font-family:var(--mono);letter-spacing:.14em;color:var(--accent);font-size:.68rem;position:absolute;top:1.1rem;right:1.25rem}.app-icon{object-fit:cover;background:var(--bg);border-radius:14px;width:64px;height:64px;box-shadow:0 1px 2px #0000000f,0 12px 28px -16px #0000002e}.app-meta{flex-direction:column;gap:.3rem;height:100%;display:flex}.app-name{letter-spacing:-.01em;margin:0;font-size:1.05rem;font-weight:600}.app-tag{color:var(--text-soft);margin:0;font-size:.86rem;line-height:1.55}.app-action{color:var(--text-muted);letter-spacing:.1em;text-transform:uppercase;align-items:center;gap:.45rem;margin-top:auto;padding-top:1.25rem;font-size:.7rem;font-weight:600;transition:color .18s;display:inline-flex}.app-action:after{content:"↗";font-size:.78rem;transition:transform .18s}.app-card:hover .app-action{color:var(--accent)}.app-card:hover .app-action:after{transform:translate(2px,-2px)}.minor-section{padding:0 0 clamp(2.5rem,6vw,4rem)}.minor-heading{font-size:.72rem;font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--text-muted);align-items:center;gap:.6rem;margin:0 0 1rem;font-weight:500;display:inline-flex}.minor-heading:before{content:"";background:var(--accent);width:18px;height:1px}.minor-list{border-top:1px solid var(--line);grid-template-columns:repeat(2,minmax(0,1fr));gap:0;margin:0;padding:0;list-style:none;display:grid}.minor-item{margin:0}.minor-link{border-bottom:1px solid var(--line);flex-direction:column;gap:.3rem;padding:1.1rem 1.15rem;transition:background .2s;display:flex}.minor-list .minor-item:nth-child(odd) .minor-link{border-right:1px solid var(--line)}.minor-link:hover{background:#00000009}.minor-name{letter-spacing:-.005em;align-items:center;gap:.4rem;margin:0;font-size:.92rem;font-weight:600;display:inline-flex}.minor-name:after{content:"↗";color:var(--text-muted);font-size:.78rem;transition:transform .24s,color .24s}.minor-link:hover .minor-name:after{color:var(--accent);transform:translate(2px,-2px)}.minor-tag{color:var(--text-soft);margin:0;font-size:.78rem;line-height:1.5}@media (width<=880px){.site-intro{grid-template-columns:1fr}.intro-copy{max-width:34rem;margin-top:1.5rem}.apps-grid{grid-template-columns:1fr;max-width:480px;margin:0 auto}.app-card{flex-direction:row;align-items:center;gap:1.25rem;padding:1.4rem}.app-no{top:.6rem;right:.8rem}.app-icon{border-radius:12px;flex-shrink:0;width:56px;height:56px}.app-meta{flex:1}.minor-section .container{max-width:480px}.minor-list{grid-template-columns:1fr}.minor-list .minor-item:nth-child(odd) .minor-link{border-right:none}}.site-footer{border-top:1px solid var(--line);margin-top:auto;padding:2rem 0 2.5rem}.footer-row{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--text-soft);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;font-size:.72rem;display:flex}.footer-row a{color:var(--text-soft);transition:color .15s}.footer-row a:hover{color:var(--text)}.author-link{color:var(--text);align-items:center;gap:.35rem;font-weight:500;display:inline-flex}.author-link:after{content:"↗";color:var(--text-muted);font-size:.78rem}.footer-sep{color:var(--text-muted);margin:0 .45rem}@media (width<=880px){.apps-grid{grid-template-columns:1fr;max-width:480px;margin:0 auto}.app-card{flex-direction:row;align-items:center;gap:1.25rem;padding:1.4rem}.app-no{top:.6rem;right:.8rem}.app-icon{border-radius:12px;flex-shrink:0;width:56px;height:56px}.app-meta{flex:1}}@media (width<=520px){.site-intro h1{font-size:clamp(1.4rem,7vw,1.85rem)}.app-action{padding-top:.65rem}.footer-row{flex-direction:column;align-items:flex-start;gap:.6rem}}@media (prefers-reduced-motion:reduce){.ticker-track{animation:none}}
