: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:16.875px/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:12.375px;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:31.5px;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:14.625px}nav a{text-decoration:none}nav a:hover{text-decoration:underline}.tag{font-size:12.375px;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(39.375px,4.5vw,65.25px);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:18px}.seal{border:1px solid var(--line);border-radius:100px;text-align:center;padding:22px;flex:0 0 160px;font-size:13.5px;line-height:1.5}.seal b{display:block;font-size:28.125px}.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:10.125px;letter-spacing:.12em;color:#55624d}.ad .art{font-size:43.875px;display:block;margin:18px 0}.ad b{font:30.375px/1.2 Georgia,serif;display:block;position:relative}.ad p{font-size:13.5px;color:#52604e;margin:13px 0}.ad a{align-self:center;font-size:12.375px;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:27px}.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:30.375px;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:14.625px}.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:31.5px;margin-bottom:16px}.honey .icon{background:var(--gold)}.water .icon{background:var(--blue)}.spark .icon{background:var(--peach)}.app h3{font-size:24.75px;letter-spacing:-.6px;margin:0 0 4px;line-height:1.3}.app .category{font-size:12.375px;color:var(--soft);margin-bottom:13px}.app p{font-size:14.625px;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:13.5px;font-weight:700}.launch:hover{background:#2a5748;color:white}.detail-link{font-size:13.5px}.notice{font-size:13.5px;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:25.875px/1.3 Georgia,serif;margin:10px 0 12px}.guide h3 a{text-decoration:none}.guide p{font-size:14.625px;color:var(--soft);margin:0 0 10px}.guide>a{font-size:13.5px;font-weight:700}.about{border:1px solid var(--line);border-radius:var(--radius);padding:25px;background:#eeefe5;margin:30px 0}.about p{font-size:15.75px;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:15.75px;font-weight:650}.faq p{font-size:14.625px;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:13.5px;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(33.75px,4.5vw,48.375px);line-height:1.15;letter-spacing:-1.2px;margin:12px 0 22px}.reading h2{font-size:25.875px;margin:30px 0 12px}.reading p,.reading li{color:#42584e}.reading .lead{font-size:20.25px;color:#51675a}.reading ul{padding-left:22px}.reading li{margin:9px 0}.reading .launch{margin:10px 0 25px}.crumb{font-size:13.5px;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:14.625px;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:23.625px;overflow-wrap:anywhere}.muted{font-size:13.5px;color:var(--soft)}.badge{display:inline-block;border:1px solid var(--line);border-radius:20px;padding:4px 9px;font-size:12.375px}.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:15.75px;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:36px}}@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:25.875px}.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:24.75px}.leader a{white-space:normal}.topline{font-size:11.25px}}@media(max-width:520px){.wrap{padding:0 17px}header{padding:19px 0;align-items:start;gap:12px;flex-direction:column}.logo{font-size:29.25px}nav{gap:17px;font-size:13.5px}.hero{padding-top:17px}.hero h1{font-size:41.625px;letter-spacing:-1.5px}.hero p{font-size:15.75px}.leader{display:flex;min-height:125px;text-align:center;padding:28px 16px 17px;gap:10px;margin-top:20px}.leader b{font-size:24.75px}.leader p{font-size:12.375px}.leader a{font-size:12.375px;padding:6px 12px}.apps{grid-template-columns:1fr;gap:12px}.app{padding:20px;min-height:240px}.app h3{font-size:20.25px;line-height:1.2}.app p{font-size:13.5px;margin-bottom:13px}.app .category{font-size:11.25px}.app-actions{flex-direction:row;align-items:center;gap:10px}.launch{font-size:12.375px;padding:9px 9px;gap:7px}.detail-link{text-align:center;font-size:12.375px}.section-head{flex-direction:column;align-items:stretch}.section-head h2{font-size:27px}.search{width:100%}.guide-grid{grid-template-columns:1fr}.guide h3{font-size:27px}.reading{padding:23px 19px;margin-top:18px}.reading h1{font-size:34.875px}.feature-list{grid-template-columns:1fr}.reading .lead{font-size:18px}footer{gap:15px}.footer-links{gap:14px}.notice{font-size:12.375px}}@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:14.625px;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(30.375px,3.375vw,42.75px);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}

/* Compact project tiles: the complete text stays beside the icon at every size. */
.apps{gap:12px}
.app{--radius:10px;display:grid;grid-template-columns:44px minmax(0,1fr);grid-template-rows:auto auto 1fr auto;column-gap:12px;padding:14px;min-height:0}
.app .icon{grid-column:1;grid-row:1 / span 4;align-self:start;width:44px;height:44px;border-radius:8px;font-size:28.125px;margin:0}
.app h3,.app .category,.app p,.app-actions{grid-column:2}
.app h3{font-size:22.5px;line-height:1.25;margin:0}
.app .category{font-size:12.375px;margin:2px 0 6px}
.app p{font-size:14.625px;margin:0}
.app-actions{margin-top:10px;padding-top:8px;gap:8px}
.app .launch{font-size:13.5px;padding:7px 10px;gap:8px;border-radius:6px}
@media(max-width:520px){.app{grid-template-columns:40px minmax(0,1fr);column-gap:10px;padding:12px}.app .icon{width:40px;height:40px;font-size:25.875px}.app h3{font-size:20.25px}.app .category{font-size:11.25px;margin-bottom:4px}.app p{font-size:13.5px}.app-actions{margin-top:8px;padding-top:6px}}

/* A discreet daily dialect edition, shared from the serverblog database. */
.server-note{font-size:13.5px;line-height:1.4;color:var(--soft);border-top:1px solid var(--line);padding-top:8px;margin:14px 0 8px;overflow-wrap:break-word;hyphens:auto}.server-note p{margin:4px 0;text-align:justify}.server-note .server-note-label{font-weight:600;text-align:left}
.server-note-bar{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.server-note-left{display:flex;align-items:center;flex-wrap:wrap;gap:5px 12px;min-width:0}.dialect-guess{display:flex;align-items:center;flex-wrap:wrap;gap:4px;margin:0}.dialect-guess label{white-space:nowrap}.dialect-guess input{width:125px;min-width:0;border:1px solid var(--line);border-radius:3px;padding:2px 5px;background:var(--paper);color:var(--ink);font:inherit}.dialect-guess button{font:inherit;padding:2px 6px;border:1px solid var(--line);border-radius:3px;background:var(--paper);color:var(--ink)}.dialect-guess button:disabled{cursor:default;opacity:.6}.server-note-records{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:2px 12px;flex:0 0 auto;text-align:right}.server-note-records span{white-space:nowrap}.server-note .dialect-status{min-height:0;text-align:left}.dialect-status:empty{display:none}@media(max-width:520px){.server-note-left{max-width:calc(100% - 105px)}.dialect-guess label{flex-basis:100%}.dialect-guess input{width:105px;max-width:100%}.server-note-records{max-width:100px}}

.server-note [data-daily-dialect-text] p{text-align:justify;hyphens:auto}

/* Typography step: +12.5% (2026-11-12); layout dimensions unchanged. */
