/* Mini-app pages (/app/ and /app/<slug>/), rendered by build-app-pages.cjs on the shared glintos.css. */
.app-page .header nav{display:flex;gap:28px;font-size:13px}
.app-page .header nav a[aria-current=page]{color:#35312d;text-decoration:underline;text-underline-offset:5px}
.app-main{padding-block:8px 96px}
.app-crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:0 10px;margin:26px 0 0;padding:0;list-style:none;font-size:12px;color:#77726c}
.app-crumbs li{display:flex;align-items:center;gap:10px}
.app-crumbs li+li::before{content:'/';color:#b3aea8}
.app-crumbs a{display:inline-flex;align-items:center;min-height:44px;text-decoration:underline;text-underline-offset:3px}
.app-hero{display:grid;grid-template-columns:auto minmax(0,1fr);gap:0 40px;align-items:center;padding:30px 0 60px}
.app-hero-icon{display:block;align-self:start;margin-top:40px;width:120px;height:120px;filter:drop-shadow(0 16px 24px #3e39332e)}
.app-hero .eyebrow{color:#77726c}
.app-hero h1{font-size:clamp(44px,5.4vw,72px);font-weight:600;letter-spacing:-.045em;line-height:1.04;margin:14px 0 18px;color:#2d2c2b}
.app-hero h1 .headline-accent{color:#8d8986}
.app-lede{font-size:19px;line-height:1.6;color:#6f6c69;max-width:660px;margin:0}
.app-glance{display:flex;flex-wrap:wrap;gap:8px;margin:26px 0 0;padding:0;list-style:none}
.app-glance a{display:inline-flex;align-items:center;gap:9px;min-height:40px;padding:8px 15px;border:1px solid #ffffffe6;border-radius:99px;background:linear-gradient(145deg,#ffffffb8,#ffffff6b);box-shadow:inset 0 1px 0 #fff,0 6px 16px #47423f08;font-size:13px;color:#4a4743}
.app-glance a:hover{background:#fff}
.app-glance small{font:10px/1 var(--mono);letter-spacing:.9px;color:#77726c;text-transform:uppercase}
.app-section{padding-block:46px;border-top:1px solid #d3d1cf8c;scroll-margin-top:100px}
.app-section h2{font-size:clamp(30px,3.3vw,40px);font-weight:550;letter-spacing:-1.3px;line-height:1.12;margin:0 0 22px;color:#2d2c2b}
.app-section h2 span{color:#8d8986}
.app-prose{max-width:780px}
.app-prose p{font-size:16px;line-height:1.85;color:#5f5b57;margin:0 0 16px}
.app-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:16px}
.app-card{padding:22px 24px;border:1px solid #ffffffdc;border-radius:22px;background:linear-gradient(145deg,#ffffff8f,#ffffff42);box-shadow:inset 0 1px 0 #fff,0 10px 30px #47423f07}
.app-card h3{font-size:16px;font-weight:600;line-height:1.4;margin:0 0 8px;color:#3d3a37}
.app-card p{font-size:14px;line-height:1.75;color:#6a6662;margin:0}
.app-card p+p{margin-top:10px}
.app-card .app-index{display:block;font:10px/1 var(--mono);letter-spacing:1px;color:#8f8a84;margin-bottom:12px}
.app-split{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.app-controls{width:100%;max-width:780px;border-collapse:collapse;font-size:15px}
.app-controls th,.app-controls td{padding:15px 14px;border-bottom:1px solid #d3d1cf8c;text-align:left;vertical-align:top;line-height:1.65}
.app-controls th{width:34%;font-weight:600;color:#3d3a37}
.app-controls td{color:#5f5b57}
.app-controls tr:first-child>*{border-top:1px solid #d3d1cf8c}
.app-gesture{display:inline-flex;align-items:center;gap:10px}
.app-gesture svg{width:20px;height:20px;flex:none;color:#6b655e}
.app-aside{font-size:13px;line-height:1.8;color:#6f6c69;margin:16px 0 0;max-width:780px}
.app-aside a{text-decoration:underline;text-underline-offset:3px}
.app-req{margin:0;padding:6px 30px;border:1px solid #ffffffdc;border-radius:28px;background:linear-gradient(145deg,#ffffff8c,#ffffff3d);box-shadow:inset 0 1px 0 #fff,0 12px 35px #47423f06}
.app-req>div{display:grid;grid-template-columns:170px minmax(0,1fr);gap:4px 28px;padding:20px 0;border-top:1px solid #d3d1cf80}
.app-req>div:first-child{border-top:0}
.app-req dt{font:11px/1.6 var(--mono);letter-spacing:1px;text-transform:uppercase;color:#77726c;padding-top:3px}
.app-req dd{margin:0}
.app-req strong{display:block;font-size:16px;font-weight:600;line-height:1.5;color:#3d3a37}
.app-req p{font-size:14px;line-height:1.75;color:#67635f;margin:6px 0 0}
.app-req .is-none strong{color:#7c7873;font-weight:550}
.app-steps{counter-reset:step;list-style:none;margin:0;padding:0;max-width:780px}
.app-steps li{counter-increment:step;position:relative;padding:0 0 22px 52px;font-size:16px;line-height:1.75;color:#5f5b57}
.app-steps li::before{content:counter(step,decimal-leading-zero);position:absolute;left:0;top:-2px;display:grid;place-items:center;width:34px;height:34px;border:1px solid #d3d1cf;border-radius:50%;font:10px var(--mono);color:#6f6c69;background:#ffffff8c}
.app-steps li:not(:last-child)::after{content:'';position:absolute;left:17px;top:38px;bottom:4px;width:1px;background:#d3d1cf}
.app-list{list-style:none;margin:0;padding:0;max-width:780px}
.app-list li{position:relative;padding:0 0 14px 24px;font-size:15px;line-height:1.8;color:#5f5b57}
.app-list li::before{content:'';position:absolute;left:2px;top:11px;width:7px;height:7px;border-radius:50%;background:#a7a29c}
.app-faq{max-width:860px;padding:4px 30px;border:1px solid #ffffffed;border-radius:28px;background:linear-gradient(145deg,#ffffffac,#ffffff69);box-shadow:inset 0 1px 0 #fff,0 14px 38px #47423f05}
.app-faq details{border-bottom:1px solid #d2cfcb80}
.app-faq details:last-child{border-bottom:0}
.app-faq summary{display:flex;justify-content:space-between;align-items:center;gap:22px;min-height:66px;padding:20px 0;cursor:pointer;list-style:none;font-size:15px;line-height:1.5;font-weight:550;color:#413e3b}
.app-faq summary::-webkit-details-marker{display:none}
.app-faq summary>span{display:grid;place-items:center;width:26px;height:26px;flex:none;color:#6f6c69;transition:transform .18s ease}
.app-faq summary svg{display:block;width:20px;height:20px}
.app-faq details[open] summary>span{transform:rotate(45deg)}
.app-faq details p{font-size:14px;line-height:1.85;color:#6f6c69;margin:0;padding:0 48px 22px 0}
.app-related{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.app-tile{position:relative;display:flex;gap:16px;align-items:flex-start;padding:20px 22px;border:1px solid #ffffffdc;border-radius:22px;background:linear-gradient(145deg,#ffffff8f,#ffffff42);box-shadow:inset 0 1px 0 #fff,0 10px 30px #47423f07;transition:background .2s}
.app-tile:hover{background:#ffffffc7}
.app-tile img{width:44px;height:44px;flex:none}
.app-tile h3{font-size:15px;font-weight:600;line-height:1.4;margin:0 0 5px;color:#3d3a37}
.app-tile h3 a::after{content:'';position:absolute;inset:0;border-radius:22px}
.app-tile h3 a:focus-visible{outline:none}
.app-tile:has(a:focus-visible){outline:3px solid #5c5955;outline-offset:2px}
.app-tile p{font-size:13px;line-height:1.65;color:#6a6662;margin:0}
.app-note{margin-top:46px;padding-top:26px;border-top:1px solid #d3d1cf8c;font-size:12px;line-height:1.8;color:#6f6c69;max-width:860px}
.app-note p{margin:0 0 8px}
.app-note a{text-decoration:underline;text-underline-offset:3px}
.app-cta{display:flex;flex-wrap:wrap;align-items:center;gap:14px 26px;margin-top:30px}
.app-cta .text-button{min-height:44px}
/* /app/ index */
.app-index-hero{padding:30px 0 40px;max-width:820px}
.app-index-hero h1{font-size:clamp(46px,6vw,80px);font-weight:600;letter-spacing:-.045em;line-height:1.03;margin:14px 0 18px;color:#2d2c2b}
.app-index-hero h1 .headline-accent{color:#8d8986}
.app-group{padding-block:34px;border-top:1px solid #d3d1cf8c}
.app-group h2{font-size:24px;font-weight:600;letter-spacing:-.6px;margin:0 0 18px;color:#2d2c2b}
.app-group .app-related{grid-template-columns:repeat(auto-fill,minmax(270px,1fr))}
/* Detail sections use the full content width, like the cards and the requirements panel; on wide screens the
   prose and the bullet lists flow into two columns so lines stay a readable length. */
.app-prose,.app-controls,.app-aside,.app-steps,.app-list,.app-faq,.app-note{max-width:none}
.app-controls th{width:28%}
.app-lede{max-width:760px}
@media(min-width:1101px){.app-prose,.app-list{columns:2;column-gap:64px}.app-prose p,.app-list li{break-inside:avoid}.app-prose p:first-child{margin-top:0}}
@media(max-width:1100px){.app-related{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:850px){.app-page .header nav{display:none}}
@media(max-width:760px){.app-main{padding-bottom:70px}.app-hero{grid-template-columns:1fr;padding:18px 0 44px}.app-hero-icon{width:88px;height:88px;margin:0 0 18px}.app-hero h1{font-size:clamp(38px,10vw,50px);letter-spacing:-.04em}.app-lede{font-size:16px}.app-section{padding-block:36px}.app-section h2{font-size:30px;letter-spacing:-1px}.app-prose p{font-size:15px}.app-cards,.app-split,.app-related{grid-template-columns:1fr}.app-req{padding:2px 22px;border-radius:24px}.app-req>div{grid-template-columns:1fr;gap:6px;padding:18px 0}.app-controls{font-size:14px}.app-controls th{width:42%}.app-controls th,.app-controls td{padding:13px 8px}.app-faq{padding:2px 22px;border-radius:24px}.app-faq details p{padding-right:0}.app-steps li{font-size:15px}.app-list li{font-size:14px}.app-index-hero h1{font-size:clamp(40px,11vw,54px)}.app-glance a{font-size:12px}}
@media(prefers-reduced-motion:reduce){.app-faq summary>span,.app-tile{transition:none}}
