:root{--paper:#f5efe2;--ink:#2b2620;--muted:#6b6256;--accent:#c83e26;--line:#d9d0bf;font-family:'Space Grotesk',system-ui,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none;scroll-behavior:smooth;scroll-padding-top:30px}*{box-sizing:border-box}body{margin:0}a{color:inherit;text-decoration:none}button{font:inherit}::selection{background:var(--accent);color:white}:focus-visible{outline:3px solid var(--accent);outline-offset:6px}.wrap{max-width:1200px;margin:auto;padding:0 42px}.skip{position:absolute;top:-100px;left:20px;padding:12px;background:var(--ink);color:white;z-index:10}.skip:focus{top:12px}header{display:flex;align-items:center;gap:32px;padding:26px 0;border-bottom:1px solid var(--line)}.wordmark{font-size:2.35rem;font-weight:700;letter-spacing:-.1em;line-height:1}.wordmark span,.footer-name span{color:var(--accent)}nav{display:flex;gap:25px;margin-left:auto;font-size:.875rem;font-weight:500}nav a:hover{color:var(--accent)}.languages{display:flex;border:1px solid var(--line);padding:4px;border-radius:30px}.languages button{border:none;background:transparent;color:var(--muted);font-family:'JetBrains Mono',monospace;font-size:.875rem;min-width:42px;min-height:34px;border-radius:24px;cursor:pointer}.languages button[aria-pressed=true]{background:var(--ink);color:var(--paper)}.hero{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:end;padding:57px 0 58px}.eyebrow{font-family:'JetBrains Mono',monospace;font-size:.75rem;letter-spacing:.09em;color:var(--accent);font-weight:500;margin-bottom:23px}h1{font-size:clamp(5rem,9.2vw,7.8rem);font-weight:700;line-height:.98;letter-spacing:-.065em;margin:0}h1>span{color:var(--accent)}.intro{padding-bottom:6px;max-width:475px}.intro>p:first-child{font-size:1.6rem;line-height:1.45;letter-spacing:-.025em;font-weight:500;margin:0 0 16px}.intro>p:nth-child(2){font-size:1rem;line-height:1.7;color:var(--muted);margin:0}.socials{display:flex;flex-wrap:wrap;gap:8px;margin-top:26px}.socials a{font-family:'JetBrains Mono',monospace;font-size:.8125rem;padding:10px 13px;border:1px solid var(--line);border-radius:24px;transition:background .18s,color .18s}.socials a:hover{background:var(--ink);color:var(--paper);border-color:var(--ink)}.socials a span{margin-left:7px}.block{padding-top:30px;margin-bottom:36px;border-top:1px solid var(--line)}.section-head{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:22px}.section-title{display:flex;align-items:baseline;gap:14px}.section-title h2{font-size:1.85rem;letter-spacing:-.035em;line-height:1.15;margin:0;font-weight:600}.index{color:var(--accent);font-family:'JetBrains Mono',monospace;font-size:.8125rem}.section-head>span{font-family:'JetBrains Mono',monospace;font-size:.75rem;color:var(--muted);letter-spacing:.03em;white-space:nowrap}.app-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.app-card{background:var(--card);color:#fff;border-radius:18px;padding:23px;display:flex;flex-direction:column;min-height:284px;transition:transform .2s,box-shadow .2s}.app-card:hover{transform:translateY(-5px);box-shadow:0 12px 24px #2b262020}.app-card:focus-visible{outline-color:var(--ink);outline-offset:5px}.card-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:26px}.card-top img{border-radius:14px;object-fit:cover;box-shadow:0 2px 6px #0002;flex-shrink:0}.card-top>span{font-family:'JetBrains Mono',monospace;font-size:.75rem;border:1px solid #ffffff45;border-radius:15px;padding:5px 8px;line-height:1.35;text-align:right}.app-card h3{font-size:1.65rem;line-height:1.15;font-weight:600;letter-spacing:-.035em;margin:0 0 11px}.app-card p{font-size:1rem;line-height:1.55;margin:0 0 25px;color:#fffffff0}.card-bottom{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:auto;border-top:1px solid #ffffff35;padding-top:13px;font-family:'JetBrains Mono',monospace;font-size:.75rem;flex-wrap:wrap}.store{font-weight:500}.store>span{font-size:1rem;margin-left:4px}.hotel-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.hotel-grid .app-card{padding:20px;min-height:306px}.hotel-grid .card-top{margin-bottom:24px}.hotel-grid .card-top img{width:52px;height:52px;border-radius:12px}.hotel-grid .card-top>span{font-size:.75rem;padding:4px 7px}.hotel-grid h3{font-size:1.45rem}.hotel-grid .card-bottom{font-size:.75rem}.repo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:30px}.repo{border-bottom:1px solid var(--line);padding:21px 0;display:flex;align-items:start;gap:12px;transition:color .18s;min-width:0}.repo:hover{color:var(--accent)}.repo-main{min-width:0;flex:1}.repo h3{font-size:1rem;line-height:1.4;margin:0 0 7px;font-weight:600;overflow-wrap:anywhere}.repo-symbol{color:var(--accent);margin-right:8px}.repo p{font-size:.875rem;line-height:1.55;color:var(--muted);margin:0;max-width:370px}.repo-language{font-family:'JetBrains Mono',monospace;color:var(--muted);font-size:.75rem;white-space:nowrap;padding-top:3px}.repo-language>span{margin-left:6px}.github-all{display:inline-block;margin-top:22px;font-size:.875rem;font-weight:500;border-bottom:1px solid var(--ink);padding:0 0 5px}.github-all:hover{color:var(--accent);border-color:var(--accent)}footer{display:flex;align-items:center;gap:20px;border-top:1px solid var(--line);padding:30px 0 40px;margin-top:54px;font-size:.8125rem;color:var(--muted)}.footer-name{font-size:1.2rem;font-weight:600;color:var(--ink);letter-spacing:-.03em}footer>a:last-child{margin-left:auto;font-family:'JetBrains Mono',monospace}footer a:hover{color:var(--accent)}
@media(min-width:1400px){.hero{padding-top:66px;padding-bottom:66px}}
@media(max-width:980px){.wrap{padding:0 28px}.hero{gap:30px}.intro>p:first-child{font-size:1.3rem}.hotel-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hotel-grid .app-card{min-height:280px}.app-card{padding:20px}.card-top{align-items:flex-start;flex-wrap:wrap}.app-card h3{font-size:1.4rem}.socials a{padding:9px 11px}.repo-grid{column-gap:22px}}
@media(max-width:720px){.hero{grid-template-columns:1fr;gap:30px;padding:38px 0 38px}h1{font-size:6.3rem}.intro{max-width:100%;padding:0}.intro>p:first-child{font-size:1.35rem;max-width:510px}.app-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.repo-grid{grid-template-columns:1fr}.repo p{max-width:none}.eyebrow{margin-bottom:20px}.section-title h2{font-size:1.55rem}.section-title{gap:10px}.section-head{gap:10px}.section-head>span{font-size:.75rem}header{gap:16px}nav{gap:16px}.languages button{min-width:34px}}
@media(max-width:480px){.wrap{padding:0 20px}header{padding:20px 0;flex-wrap:wrap}.wordmark{font-size:2rem}.languages{margin-left:auto}nav{order:3;width:100%;margin:2px 0 0;justify-content:space-between;padding-top:10px;font-size:.875rem}h1{font-size:5.7rem}.hero{padding-top:32px}.eyebrow{font-size:.75rem;letter-spacing:.03em}.app-grid,.hotel-grid{grid-template-columns:1fr;gap:14px}.app-card,.hotel-grid .app-card{min-height:252px;padding:22px}.app-card h3,.hotel-grid h3{font-size:1.65rem}.card-top{margin-bottom:24px;align-items:center;flex-wrap:nowrap}.card-top img,.hotel-grid .card-top img{width:60px;height:60px;border-radius:14px}.card-top>span{font-size:.8125rem}.section-head{align-items:baseline;flex-wrap:wrap}.section-title h2{font-size:1.6rem}.section-head>span{padding-left:28px}.card-bottom{font-size:.8125rem}.app-card p{margin-bottom:22px}.block{margin-bottom:30px;padding-top:24px}.repo{padding:19px 0;gap:8px}.repo h3{font-size:.9375rem}.repo-language{font-size:.75rem}footer{flex-wrap:wrap;gap:14px}footer>a:last-child{width:100%;margin:0}.socials{gap:7px}.socials a{font-size:.75rem;padding:11px}.intro>p:first-child{font-size:1.3rem}}
@media(prefers-reduced-motion:reduce){:root{scroll-behavior:auto}*{transition:none!important}.app-card:hover{transform:none}}

.more-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.more-grid a{border:1px solid var(--line);border-radius:12px;padding:17px;display:flex;flex-wrap:wrap;gap:10px;font-size:.8125rem;color:var(--muted)}.more-grid strong{width:100%;font-size:1rem;font-weight:500;color:var(--ink)}.more-grid a:hover{border-color:var(--accent)}@media(max-width:720px){.more-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:480px){.more-grid{grid-template-columns:1fr}}
