:root{--bg:#f6f5ef;--paper:#fff;--ink:#183c32;--soft:#5f7066;--line:#dce2d7;--leaf:#e6eddf;--gold:#f1dfaa;--peach:#f5ded1;--blue:#e0edf0;--accent:#bc5c3b;--radius:18px}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.65 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}a{color:inherit;text-underline-offset:3px}a:hover{color:#9a442d}a:focus-visible,input:focus-visible,summary:focus-visible,button:focus-visible{outline:3px solid var(--accent);outline-offset:4px}button,input{font:inherit}img{max-width:100%;height:auto}.wrap{max-width:1480px;margin:auto;padding:0 32px}.skip{position:absolute;top:-80px;left:15px;z-index:10;background:var(--ink);color:white;padding:10px}.skip:focus{top:10px}.topline{border-bottom:1px solid var(--line);font-size:11px;letter-spacing:.06em;padding:7px 0;color:var(--soft)}header{display:flex;align-items:center;justify-content:space-between;gap:25px;padding:23px 0}.logo{font-size:28px;font-weight:850;letter-spacing:-1.2px;text-decoration:none}.logo em{color:#738750;font-style:normal}nav{display:flex;flex-wrap:wrap;gap:22px;font-size:13px}nav a{text-decoration:none}nav a:hover{text-decoration:underline}.tag{font-size:11px;letter-spacing:.13em;text-transform:uppercase;color:#6f7e56;font-weight:750}.hero{padding:30px 0 24px;display:flex;gap:35px;align-items:end;justify-content:space-between}.hero h1{font-size:clamp(35px,4vw,58px);line-height:1.08;letter-spacing:-2px;margin:10px 0 17px;max-width:860px}.hero h1 em{font-family:Georgia,serif;font-weight:400}.hero p{color:var(--soft);max-width:730px;margin:0;font-size:16px}.seal{border:1px solid var(--line);border-radius:100px;text-align:center;padding:22px;flex:0 0 160px;font-size:12px;line-height:1.5}.seal b{display:block;font-size:25px}.ad{position:relative;border:1px solid #d9dfd1;border-radius:14px;background:linear-gradient(135deg,#e7eddf,#f0f1e8);overflow:hidden;display:flex;flex-direction:column;justify-content:center;text-align:center;padding:29px 15px 20px;min-height:160px}.ad-label{position:absolute;top:9px;left:12px;font-size:9px;letter-spacing:.12em;color:#55624d}.ad .art{font-size:39px;display:block;margin:18px 0}.ad b{font:27px/1.2 Georgia,serif;display:block;position:relative}.ad p{font-size:12px;color:#52604e;margin:13px 0}.ad a{align-self:center;font-size:11px;text-decoration:none;border:1px solid #9aa88b;padding:7px 12px;border-radius:30px;background:#ffffff69}.ad a:hover{background:white}.ad::before{content:"";position:absolute;width:150px;height:150px;border-radius:50%;background:#ffffff42;right:-70px;top:-70px;pointer-events:none}.ad.honey{background:linear-gradient(135deg,#f4e8be,#f3eedb)}.ad.water{background:linear-gradient(135deg,#dcebed,#eef2ed)}.ad.spark{background:linear-gradient(135deg,#f3ddd2,#f4e9df)}.leader{min-height:95px;max-width:1100px;margin:22px auto 26px;padding:23px 23px 15px;display:grid;grid-template-columns:1fr auto;gap:20px;align-items:center;text-align:left}.leader b{font-size:24px}.leader p{margin:4px 0 0}.leader a{white-space:nowrap}.perimeter{display:grid;grid-template-columns:160px minmax(0,1fr) 160px;gap:25px;align-items:start}.rail{display:grid;gap:24px}.rail .ad:first-child{min-height:440px}.rail .ad:last-child{min-height:270px}.content{min-width:0}.section-head{display:flex;justify-content:space-between;align-items:center;gap:15px;margin:0 0 20px}h2{font-size:27px;line-height:1.25;letter-spacing:-.8px;margin:0 0 15px}.section-head h2{margin:0}.search{display:block;width:225px;max-width:100%;background:#fff;border:1px solid var(--line);border-radius:9px;padding:9px 12px;font-size:13px}.apps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}.app{background:white;border:1px solid var(--line);border-radius:var(--radius);padding:24px;display:flex;flex-direction:column;min-height:315px;box-shadow:0 4px 18px #213c2210}.app:hover{border-color:#9caf91}.app .icon{background:var(--leaf);width:55px;height:55px;border-radius:15px;display:grid;place-items:center;font-size:28px;margin-bottom:16px}.honey .icon{background:var(--gold)}.water .icon{background:var(--blue)}.spark .icon{background:var(--peach)}.app h3{font-size:22px;letter-spacing:-.6px;margin:0 0 4px;line-height:1.3}.app .category{font-size:11px;color:var(--soft);margin-bottom:13px}.app p{font-size:13px;color:var(--soft);margin:0 0 20px;flex:1}.app-actions{display:flex;justify-content:space-between;gap:12px;align-items:center;border-top:1px solid var(--line);padding-top:15px}.launch{display:inline-flex;justify-content:center;align-items:center;gap:15px;text-decoration:none;background:var(--ink);color:#fff;border-radius:9px;padding:10px 14px;font-size:12px;font-weight:700}.launch:hover{background:#2a5748;color:white}.detail-link{font-size:12px}.notice{font-size:12px;color:var(--soft);border-left:3px solid #9cb17e;padding-left:12px;margin:22px 0 32px}.mobile-ad{display:none}.guides{margin:38px 0 32px}.guide-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.guide{padding:17px 0;border-top:2px solid #bac9ad}.guide h3{font:23px/1.3 Georgia,serif;margin:10px 0 12px}.guide h3 a{text-decoration:none}.guide p{font-size:13px;color:var(--soft);margin:0 0 10px}.guide>a{font-size:12px;font-weight:700}.about{border:1px solid var(--line);border-radius:var(--radius);padding:25px;background:#eeefe5;margin:30px 0}.about p{font-size:14px;margin:10px 0;color:var(--soft)}.faq{margin:30px 0}.faq details{border-bottom:1px solid var(--line);padding:14px 0}.faq summary{cursor:pointer;font-size:14px;font-weight:650}.faq p{font-size:13px;color:var(--soft)}footer{display:flex;gap:30px;justify-content:space-between;flex-wrap:wrap;border-top:1px solid var(--line);padding:25px 0 32px;font-size:12px;color:var(--soft);margin-top:25px}.footer-links{display:flex;flex-wrap:wrap;gap:18px}footer p{margin:7px 0}.reading{max-width:860px;margin:28px auto 45px;background:white;border:1px solid var(--line);border-radius:22px;padding:42px}.reading h1{font-size:clamp(30px,4vw,43px);line-height:1.15;letter-spacing:-1.2px;margin:12px 0 22px}.reading h2{font-size:23px;margin:30px 0 12px}.reading p,.reading li{color:#42584e}.reading .lead{font-size:18px;color:#51675a}.reading ul{padding-left:22px}.reading li{margin:9px 0}.reading .launch{margin:10px 0 25px}.crumb{font-size:12px;color:var(--soft)}.feature-list{display:grid;grid-template-columns:1fr 1fr;gap:12px;list-style:none;padding:0!important}.feature-list li{border:1px solid var(--line);border-radius:10px;padding:13px;font-size:13px;margin:0;background:var(--bg)}.contact{padding:23px;border:1px solid #b9cba9;background:var(--leaf);border-radius:14px;margin:25px 0}.contact a{font-size:21px;overflow-wrap:anywhere}.muted{font-size:12px;color:var(--soft)}.badge{display:inline-block;border:1px solid var(--line);border-radius:20px;padding:4px 9px;font-size:11px}.empty{background:white;padding:20px;border:1px solid var(--line);border-radius:12px}.network-list{padding:0;list-style:none}.network-list li{padding:15px;border:1px solid var(--line);margin:12px 0;border-radius:12px}.network-list h3{margin:0 0 5px}.network-list p{font-size:14px;margin:8px 0}button{cursor:pointer}.return{display:block;text-align:center;margin:25px 0}[hidden]{display:none!important}@media(min-width:1700px){.wrap{max-width:1620px}.perimeter{grid-template-columns:200px minmax(0,1fr) 200px;gap:30px}.rail .ad b{font-size:32px}}@media(max-width:1080px){.apps{grid-template-columns:repeat(2,minmax(0,1fr))}.wrap{padding:0 22px}.perimeter{grid-template-columns:125px minmax(0,1fr) 125px;gap:16px}.ad b{font-size:23px}.app{padding:20px}.section-head{align-items:start;flex-direction:column}.search{width:100%}}@media(max-width:800px){.perimeter{display:block}.rail{display:none}.mobile-ad{display:flex;margin:28px 0;min-height:145px}.leader{min-height:110px}.hero{display:block}.seal{display:none}.hero h1{max-width:620px}.section-head{flex-direction:row;align-items:center}.search{width:230px}.reading{padding:28px}.leader b{font-size:22px}.leader a{white-space:normal}.topline{font-size:10px}}@media(max-width:520px){.wrap{padding:0 17px}header{padding:19px 0;align-items:start;gap:12px;flex-direction:column}.logo{font-size:26px}nav{gap:17px;font-size:12px}.hero{padding-top:17px}.hero h1{font-size:37px;letter-spacing:-1.5px}.hero p{font-size:14px}.leader{display:flex;min-height:125px;text-align:center;padding:28px 16px 17px;gap:10px;margin-top:20px}.leader b{font-size:22px}.leader p{font-size:11px}.leader a{font-size:11px;padding:6px 12px}.apps{grid-template-columns:1fr;gap:12px}.app{padding:20px;min-height:240px}.app h3{font-size:18px;line-height:1.2}.app p{font-size:12px;margin-bottom:13px}.app .category{font-size:10px}.app-actions{flex-direction:row;align-items:center;gap:10px}.launch{font-size:11px;padding:9px 9px;gap:7px}.detail-link{text-align:center;font-size:11px}.section-head{flex-direction:column;align-items:stretch}.section-head h2{font-size:24px}.search{width:100%}.guide-grid{grid-template-columns:1fr}.guide h3{font-size:24px}.reading{padding:23px 19px;margin-top:18px}.reading h1{font-size:31px}.feature-list{grid-template-columns:1fr}.reading .lead{font-size:16px}footer{gap:15px}.footer-links{gap:14px}.notice{font-size:11px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* No vacant ad frames or reserved gaps while network ads are inactive. */
.perimeter{display:block}.rail,.mobile-ad{display:none}
.tips-next{border:1px solid var(--line);background:var(--paper);color:var(--ink);border-radius:9px;padding:9px 14px;font-size:13px;white-space:nowrap}.tips-next:hover{background:var(--leaf)}[data-tip-grid]{grid-template-columns:repeat(3,minmax(0,1fr))}[data-tip-grid]>*{min-width:0;overflow-wrap:anywhere}@media(max-width:800px){[data-tip-grid]{grid-template-columns:1fr}}

.projects-home{margin:30px 0 40px}.projects-home h1{font-size:clamp(27px,3vw,38px);line-height:1.2;letter-spacing:-1px;margin:0}.projects-home .section-head{margin-bottom:24px}

.topline .wrap{overflow-wrap:normal;line-height:1.6;text-wrap:balance}

/* One native, keyboard-accessible link stretches over the whole project card. */
.app{position:relative}.app .launch::after{content:"";position:absolute;inset:0;border-radius:var(--radius)}.app:has(.launch:hover){box-shadow:0 6px 20px #183c3222}.app:has(.launch:focus-visible){outline:3px solid var(--accent);outline-offset:4px}
