:root{--window-bg:#fafafb;--window-fg:rgb(0 0 6 / 0.8);--view-bg:#ffffff;--headerbar-bg:#ffffff;--headerbar-shade:rgb(0 0 6 / 0.12);--card-bg:#ffffff;--card-shadow:0 0 0 1px rgb(0 0 6 / 0.03), 0 1px 3px 1px rgb(0 0 6 / 0.07), 0 2px 6px 2px rgb(0 0 6 / 0.03);--border:rgb(0 0 6 / 0.12);--hover:rgb(0 0 6 / 0.04);--active:rgb(0 0 6 / 0.08);--button-bg:rgb(0 0 6 / 0.08);--button-hover:rgb(0 0 6 / 0.12);--accent-bg:#3584e4;--accent-fg:#ffffff;--accent:#1c71d8;--success:#1b8553;--warning:#9c6e03;--focus-ring:rgb(53 132 228 / 0.5);--dim:0.55;--radius-card:12px;--radius-button:9px;--headerbar-h:47px;--font:"Adwaita Sans", "Cantarell", "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--mono:"Adwaita Mono", "Source Code Pro", "DejaVu Sans Mono", ui-monospace, monospace}@media(prefers-color-scheme:dark){:root{--window-bg:#222226;--window-fg:#ffffff;--view-bg:#1d1d20;--headerbar-bg:#2e2e32;--headerbar-shade:rgb(0 0 6 / 0.36);--card-bg:rgb(255 255 255 / 0.08);--card-shadow:0 0 0 1px rgb(0 0 6 / 0.09), 0 1px 3px 1px rgb(0 0 6 / 0.18), 0 2px 6px 2px rgb(0 0 6 / 0.09);--border:rgb(255 255 255 / 0.10);--hover:rgb(255 255 255 / 0.04);--active:rgb(255 255 255 / 0.08);--button-bg:rgb(255 255 255 / 0.10);--button-hover:rgb(255 255 255 / 0.15);--accent:#78aeed;--success:#8ff0a4;--warning:#f8e45c}}*,*::before,*::after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--headerbar-h) + 64px);scroll-behavior:smooth}body{margin:0;min-height:100vh;display:flex;flex-direction:column;background:var(--window-bg);color:var(--window-fg);font:15px/1.5 var(--font);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}main{flex:1;padding-bottom:36px}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px;border-radius:6px}.symbolic{flex:none;display:block}.title-1{font-size:28px;font-weight:800;line-height:1.2;margin:0}.heading{font-size:15px;font-weight:700;margin:0}.caption{font-size:13px}.dim-label{opacity:var(--dim)}.clamp{width:100%;max-width:calc(760px + 2 * 18px);margin:0 auto;padding:0 18px}.clamp-wide{max-width:calc(1040px + 2 * 18px)}.headerbar{position:sticky;top:0;z-index:20;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;min-height:var(--headerbar-h);padding:6px;padding-top:max(6px,env(safe-area-inset-top));background:var(--headerbar-bg);box-shadow:0 1px var(--headerbar-shade)}.hb-start,.hb-end{display:flex;align-items:center;gap:6px}.hb-end{justify-content:flex-end}.hb-title{display:none;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:center;max-width:60vw}.brand{display:flex;align-items:center;gap:9px;padding:4px 8px;border-radius:var(--radius-button);color:inherit;font-weight:700}.brand:hover{text-decoration:none;background:var(--hover)}.brand-logo{display:flex}.brand-logo img{display:block;height:28px;width:auto;max-width:180px;object-fit:contain;object-position:left center}.brand-icon{display:grid;place-items:center;width:24px;height:24px;border-radius:7px;background:linear-gradient(#62a0ea,#1c71d8);color:#fff;font-weight:800;font-size:14px}.flat-button{display:grid;place-items:center;min-width:34px;height:34px;padding:0 8px;border-radius:var(--radius-button);color:inherit}.flat-button:hover{background:var(--hover);text-decoration:none}.flat-button:active{background:var(--active)}.back{display:none}.viewswitcher{display:flex;gap:4px}.viewswitcher a,.viewswitcherbar a{display:flex;align-items:center;gap:8px;padding:6px 14px;border-radius:var(--radius-button);color:inherit;font-weight:700}.viewswitcher a:hover,.viewswitcherbar a:hover{background:var(--hover);text-decoration:none}.viewswitcher a[aria-current=page]{background:var(--active)}.viewswitcherbar{display:none}.status-page{text-align:center;padding:56px 18px 24px;max-width:640px;margin:0 auto}.status-page.compact{padding-top:36px}.avatar{display:block;width:128px;height:128px;margin:0 auto 24px;border-radius:50%;object-fit:cover;color:transparent;overflow:hidden;background:linear-gradient(135deg,#99c1f1,#3584e4);box-shadow:0 0 0 1px var(--border)}.status-page.compact .avatar{width:96px;height:96px;margin-bottom:18px}.profile-links{display:flex;flex-wrap:wrap;justify-content:center;gap:4px;margin-top:14px}.profile-links .flat-button{display:inline-flex;align-items:center;gap:8px;padding:0 12px;font-weight:700;font-size:14px}.status-sub{font-size:17px;margin:8px 0 0;opacity:.75}.status-body{margin-top:14px;opacity:var(--dim)}.status-body p{margin:0}.button-row{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-top:26px}.pill{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:8px 28px;border-radius:9999px;background:var(--button-bg);color:inherit;font-weight:700}.pill:hover{background:var(--button-hover);text-decoration:none}.pill.suggested{background:var(--accent-bg);color:var(--accent-fg)}.pill.suggested:hover{background:color-mix(in srgb,var(--accent-bg),white 10%)}.pref-group{margin-top:36px}.pref-group-header{margin:0 0 12px;padding:0 2px}.pref-group-header p{margin:2px 0 0;font-size:14px}.card{background:var(--card-bg);border-radius:var(--radius-card);box-shadow:var(--card-shadow)}.activatable{transition:background-color 120ms ease-out;color:inherit}.activatable:hover{text-decoration:none;background-image:linear-gradient(var(--hover),var(--hover))}.activatable:active{background-image:linear-gradient(var(--active),var(--active))}.tile-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:12px}.tile-grid-narrow{grid-template-columns:1fr}.app-tile{display:flex;gap:14px;align-items:flex-start;padding:16px}.app-tile-text{display:flex;flex-direction:column;gap:3px;min-width:0}.app-tile-title{font-weight:700;font-size:15px}.app-tile-summary{font-size:14px;opacity:.7;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.app-tile-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:6px}.app-icon{flex:none;display:grid;place-items:center;box-shadow:inset 0 -3px rgb(0 0 0/.18),0 1px 2px rgb(0 0 0/.2)}.app-icon span{filter:drop-shadow(0 1px 1px rgb(0 0 0/.25));line-height:1}.app-icon-small{width:56px;height:56px;border-radius:14px;font-size:28px}.app-icon-large{width:128px;height:128px;border-radius:30px;font-size:64px;box-shadow:inset 0 -6px rgb(0 0 0/.18),0 2px 6px rgb(0 0 0/.2)}.c-blue{background:linear-gradient(#99c1f1,#3584e4)}.c-green{background:linear-gradient(#8ff0a4,#2ec27e)}.c-purple{background:linear-gradient(#dc8add,#9141ac)}.c-orange{background:linear-gradient(#ffbe6f,#ff7800)}.c-red{background:linear-gradient(#f66151,#e01b24)}.c-yellow{background:linear-gradient(#f9f06b,#f6d32d)}.c-slate{background:linear-gradient(#c0bfbc,#77767b)}.app-icon-img{flex:none;display:block;object-fit:contain;box-shadow:none;background:0 0;border-radius:0}.app-icon-img.app-icon-small{width:56px;height:56px}.app-icon-img.app-icon-large{width:128px;height:128px}.badge{display:inline-block;padding:1px 9px;border-radius:9999px;font-size:12px;font-weight:700;text-transform:capitalize}.badge-success{color:var(--success);background:color-mix(in srgb,var(--success) 14%,transparent)}.badge-warning{color:var(--warning);background:color-mix(in srgb,var(--warning) 16%,transparent)}.badge-accent{color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,transparent)}.page-header{padding:36px 0 4px}.page-header p{margin:6px 0 0}.category-bar{position:sticky;top:var(--headerbar-h);z-index:10;padding:10px 0;background:color-mix(in srgb,var(--window-bg) 88%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.linked{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;padding:2px}.linked::-webkit-scrollbar{display:none}.toggle{flex:none;padding:6px 14px;border-radius:9999px;background:var(--button-bg);color:inherit;font-weight:700;font-size:14px}.toggle:hover{background:var(--button-hover);text-decoration:none}.app-header{display:flex;gap:28px;align-items:center;padding:40px 0 8px}.app-header-text p{margin:6px 0 0;font-size:17px}.app-header .button-row{justify-content:flex-start;margin-top:18px}.clamp-project{max-width:calc(860px + 2 * 18px)}.screenshots{margin-top:28px;container-type:inline-size}.form-desktop{--shot-h:min(62.5cqi, 540px)}.form-phone{--shot-h:min(70svh, 600px)}.carousel-frame{position:relative}.carousel{position:relative;display:flex;gap:12px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;scrollbar-width:none;padding:6px 0}.carousel::-webkit-scrollbar{display:none}.slide{flex:0 0 100%;min-width:0;margin:0;height:var(--shot-h);display:flex;align-items:center;justify-content:center;scroll-snap-align:start;scroll-snap-stop:always}a.slide{cursor:zoom-in}.slide img{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;border-radius:var(--radius-card);box-shadow:var(--card-shadow);user-select:none;-webkit-user-select:none;-webkit-user-drag:none}@container(min-width:600px){.form-phone .slide { flex-basis: calc((100% - 24px) / 3); }
}.placeholder-frame{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;height:100%;max-width:100%;border:2px dashed var(--border);border-radius:var(--radius-card);font-size:14px;font-weight:700;text-align:center;padding:12px}.form-desktop .placeholder-frame{aspect-ratio:16/10}.form-phone .placeholder-frame{aspect-ratio:9/19}.placeholder-frame>*{opacity:var(--dim)}.placeholder-frame .symbolic{width:32px;height:32px}.placeholder-frame code{font-family:var(--mono);font-size:12px;font-weight:400;word-break:break-all}.carousel-nav{position:absolute;top:50%;z-index:1;translate:0 -50%;display:grid;place-items:center;width:40px;height:40px;border:0;border-radius:50%;background:rgb(0 0 6/.65);color:#fff;cursor:pointer;opacity:0;transition:opacity 150ms ease-out}.carousel-nav.prev{left:10px}.carousel-nav.next{right:10px}.carousel-frame:hover .carousel-nav,.carousel-nav:focus-visible{opacity:1}.carousel-nav:disabled{opacity:0!important;pointer-events:none}.carousel-nav[hidden],.carousel-dots[hidden]{display:none}@media(hover:none),(pointer:coarse){.carousel-nav{display:none}}.carousel-dots{display:flex;justify-content:center;flex-wrap:wrap;margin-top:6px}.carousel-dots button{display:grid;place-items:center;width:24px;height:24px;padding:0;border:0;background:0 0;color:inherit;cursor:pointer}.carousel-dots button::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor;opacity:.25;transition:opacity 150ms,transform 150ms}.carousel-dots button[aria-current=true]::before{opacity:.85;transform:scale(1.2)}.lightbox{width:100vw;height:100vh;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;background:rgb(0 0 6/.94);color:#fff;overflow:hidden}.lightbox::backdrop{background:0 0}html:has(.lightbox[open]){overflow:hidden}.lightbox-root{display:flex;flex-direction:column;height:100%;padding:max(56px,env(safe-area-inset-top))0 max(10px,env(safe-area-inset-bottom))}.lightbox .carousel-frame{flex:1;min-height:0}.lightbox .carousel{height:100%;padding:0}.lightbox .slide{height:100%;flex-basis:100%;padding:0 12px}.lightbox .slide img{box-shadow:none;border-radius:8px}.lightbox .carousel-nav{opacity:1;background:rgb(255 255 255/.15)}.lightbox-close{position:absolute;top:max(8px,env(safe-area-inset-top));right:8px;margin:0}.lightbox-close .flat-button{width:44px;height:44px;border:0;background:0 0;color:#fff;cursor:pointer}.lightbox-close .flat-button:hover{background:rgb(255 255 255/.12)}.row-url{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:60%}.boxed-list{background:var(--card-bg);border-radius:var(--radius-card);box-shadow:var(--card-shadow);overflow:hidden}.row{display:flex;align-items:center;gap:12px;min-height:50px;padding:8px 14px;color:inherit}.row+.row{box-shadow:inset 0 1px var(--border)}.row-title{flex:1}.row-suffix{text-align:right}.row>.symbolic:last-child{opacity:var(--dim)}.row-wrap{flex-wrap:wrap;padding-top:12px;padding-bottom:12px}.row-wrap .row-title{flex:1 0 100%}.tags{list-style:none;display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0}.tags li{font-family:var(--mono);font-size:12px;padding:3px 9px;border-radius:6px;background:var(--button-bg)}.prose{margin-top:24px;font-size:15.5px;line-height:1.6}.prose h2{font-size:20px;font-weight:800;margin:32px 0 8px}.prose ul{padding-left:22px}.prose li{margin:4px 0}.prose li::marker{color:var(--accent)}.prose code{font-family:var(--mono);font-size:.88em;background:var(--button-bg);padding:1px 6px;border-radius:6px}.prose pre{background:var(--view-bg);border-radius:var(--radius-card);box-shadow:var(--card-shadow);padding:14px 16px;overflow-x:auto}.prose pre code{background:0 0;padding:0}.site-footer{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 18px;padding:24px 18px 28px;font-size:13px;opacity:var(--dim);text-align:center}.footer-links{display:flex;flex-wrap:wrap;justify-content:center;gap:14px}.footer-links a{color:inherit}@media(max-width:550px){body{font-size:15px}.headerbar{grid-template-columns:minmax(0,1fr)auto minmax(0,1fr)}.viewswitcher{display:none}.hb-title{display:block}.brand-name{display:none}.brand{padding:5px}.back{display:grid}.back+.brand{display:none}.viewswitcherbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:20;padding:4px 4px max(4px,env(safe-area-inset-bottom));background:var(--headerbar-bg);box-shadow:0 -1px var(--headerbar-shade)}.viewswitcherbar a{flex:1;flex-direction:column;gap:2px;padding:6px 4px;font-size:12px}.viewswitcherbar a[aria-current=page]{color:var(--accent)}body{padding-bottom:calc(60px + env(safe-area-inset-bottom))}.clamp{padding:0 12px}.status-page{padding-top:32px}.avatar,.status-page.compact .avatar{width:96px;height:96px}.title-1{font-size:24px}.button-row{flex-direction:column;align-items:stretch}.pill{justify-content:center}.tile-grid{grid-template-columns:1fr;gap:10px}.app-tile{padding:12px;gap:12px}.app-icon-small{width:48px;height:48px;border-radius:12px;font-size:24px}.app-header{flex-direction:column;text-align:center;gap:16px;padding-top:24px}.app-icon-large{width:96px;height:96px;border-radius:24px;font-size:48px}.app-header .button-row{justify-content:center}.app-icon-img.app-icon-small{width:48px;height:48px}.app-icon-img.app-icon-large{width:96px;height:96px}.row-url{max-width:50%}.brand-logo img{max-width:30vw}.category-bar{padding:8px 0}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}