/* File: directory.css | Purpose: Shared fonts and public app directory styling.
Does: Keep the directory responsive, quiet, and readable in both palettes.
2026-11-03 | Cxder | Add editorial app cards and subtle interactive details. */
@font-face{font-family:'IBM Plex Sans';src:url('/fonts/sans.woff2') format('woff2');font-weight:400;font-display:swap}@font-face{font-family:'IBM Plex Mono';src:url('/fonts/mono.woff2') format('woff2');font-weight:400;font-display:swap}
.directory{--bg:#F8FAF7;--panel:#fff;--sand:#EEEDE5;--foam:#B9DED6;--text:#173F52;--muted:#53676c;--line:#d4ddd7;--accent:#187F87;background:var(--bg);color:var(--text);font:16px/1.6 'IBM Plex Sans',sans-serif;margin:0}
.directory[data-theme=dark],html[data-theme=dark] .directory{--bg:#0b141b;--panel:#12232c;--sand:#192c35;--foam:#244b50;--text:#edf5f4;--muted:#adc3ca;--line:#344e59;--accent:#8ddbd0}
.directory *{box-sizing:border-box}.directory a{color:inherit;text-decoration:none}.directory button{font:inherit;color:inherit;border:1px solid var(--line);border-radius:6px;background:transparent;padding:7px 12px;cursor:pointer}.directory header,.directory main,.directory footer{max-width:1120px;margin:auto}.directory header{display:flex;align-items:center;justify-content:space-between;padding:24px 0;border-bottom:1px solid var(--line)}.wordmark{font:24px 'IBM Plex Mono',monospace;letter-spacing:-1px}.wordmark span{color:var(--accent)}.directory nav{display:flex;gap:24px;align-items:center;font-size:13px}.intro{padding:64px 0 40px}.eyebrow{font:11px/1.5 'IBM Plex Mono',monospace;letter-spacing:.1em;color:var(--muted)}.intro h1{font-size:clamp(36px,5vw,60px);font-weight:400;letter-spacing:-2px;line-height:1.15;margin:20px 0}.intro h1 span{color:var(--accent)}.intro>p:last-child{color:var(--muted);margin:0}.app-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.app-grid article{border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--panel);transition:transform .18s,border-color .18s}.app-grid article:hover{transform:translateY(-3px);border-color:var(--accent)}.app-art{height:240px;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden;background:var(--sand)}.cards-art{background:var(--foam)}.paper{width:220px;height:172px;border:1px solid var(--line);border-radius:6px;background:var(--panel);position:absolute;padding:20px;display:flex;flex-direction:column;justify-content:space-between;box-shadow:0 8px 25px #173f5210;transition:transform .18s}.paper.back{transform:rotate(-9deg) translate(-12px,-2px);background:var(--sand)}.paper.front{transform:rotate(4deg)}.paper span{font:9px 'IBM Plex Mono',monospace;letter-spacing:.07em;color:var(--muted)}.paper strong{font-size:25px;font-weight:400;line-height:1.2}.cards-art:hover .front{transform:rotate(0) translateY(-3px)}.clip-lines{width:80%;display:grid;gap:20px}.clip-lines>span{font:11px 'IBM Plex Mono',monospace;color:var(--muted)}.clip-lines i{font-style:normal;color:var(--accent);padding:0 8px}.clip-lines strong{font-size:30px;line-height:1.2;font-weight:400}.filename{background:var(--panel);border:1px solid var(--line);border-radius:4px;padding:10px 14px}.cursor{color:var(--accent)}.art-number{position:absolute;bottom:16px;right:20px;font:11px 'IBM Plex Mono',monospace;color:var(--muted)}.app-copy{padding:24px}.card-label{display:flex;align-items:center;justify-content:space-between;gap:12px}.access{font-size:11px;color:var(--muted);border:1px solid var(--line);border-radius:20px;padding:2px 8px}.app-copy h2{font-size:24px;font-weight:400;line-height:1.3;margin:16px 0 12px}.app-copy h2 a{display:flex;justify-content:space-between;gap:16px}.app-copy h2 span{color:var(--accent);transition:transform .18s}.app-grid article:hover h2 span{transform:translate(2px,-2px)}.app-copy p{font-size:14px;color:var(--muted);min-height:45px;margin:0 0 24px}.app-bottom{border-top:1px solid var(--line);padding-top:16px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:11px;color:var(--muted)}.app-bottom a:hover,.directory footer a:hover{text-decoration:underline}.directory-note{font-size:12px;color:var(--muted);margin:24px 0 48px}.directory footer{display:flex;justify-content:space-between;padding:24px 0 32px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}.directory :focus-visible{outline:2px solid var(--accent);outline-offset:2px}
@media(max-width:1180px){.directory header,.directory main,.directory footer{margin-left:24px;margin-right:24px}}@media(max-width:680px){.app-grid{grid-template-columns:1fr;gap:20px}.intro{padding:40px 0 28px}.intro h1{letter-spacing:-1px}.directory nav{gap:12px}.wordmark{font-size:20px}.app-art{height:210px}.app-copy{padding:20px}.directory footer{gap:16px}.app-copy p{min-height:0}}@media(prefers-reduced-motion:reduce){.directory *{transition:none!important;transform:none!important}}

.directory .signin-link{display:flex;align-items:center;gap:8px;border:1px solid var(--line);padding:8px 16px;border-radius:4px;white-space:nowrap}.directory .signin-link:hover{background:var(--sand);border-color:var(--text)}.directory .nav-divider{height:20px;width:1px;background:var(--line);flex-shrink:0}.directory nav{flex-wrap:wrap;justify-content:flex-end}@media(max-width:420px){.directory header{gap:16px}.directory nav{gap:8px}}

/* Cxder: Matching site/app navigation; auth and theme controls stay together. */
.shared-topbar{--bar-border:var(--border,#d4ddd7);--bar-ink:var(--marine,#173F52);--bar-bg:#fff;--bar-hover:var(--sand,#EEEDE5)}
html[data-theme=dark] .shared-topbar{--bar-border:#344e59;--bar-ink:#edf5f4;--bar-bg:#0b141b;--bar-hover:#192c35}
.shared-topbar.shared-topbar{height:96px;max-width:none;margin:0;padding:0;border-bottom:1px solid var(--bar-border);background:var(--bar-bg);color:var(--bar-ink)}
.shared-topbar .header-inner{flex:1;min-width:0;max-width:1120px;height:100%;margin:0 auto;display:flex;align-items:center;gap:24px;justify-content:space-between}
.shared-topbar .nav{display:flex;align-items:center;justify-content:flex-end;gap:24px;font-size:14px;flex-wrap:nowrap;margin-left:auto}
.shared-topbar .nav>a{padding:6px 0;white-space:nowrap;text-decoration:none;color:inherit}
.shared-topbar .nav>a:hover,.shared-topbar .nav>a.current{color:var(--teal,var(--accent,#187F87))}
.shared-topbar .nav-divider{width:1px;height:20px;margin:0;background:var(--bar-border)}
.shared-topbar .header-actions{display:flex;align-items:center;gap:12px;flex-shrink:0}
.shared-topbar .header-actions .nav-signin,.shared-topbar .header-actions .theme-toggle{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--bar-border);border-radius:4px;padding:8px 16px;background:transparent;color:inherit;font:14px/1.6 'IBM Plex Sans',sans-serif;white-space:nowrap;margin:0;text-decoration:none;min-height:40px;cursor:pointer}
.shared-topbar .header-actions .theme-toggle{font-size:12px;padding:8px 10px;background:var(--bar-hover);min-width:78px}
.shared-topbar .header-actions a:hover,.shared-topbar .header-actions button:hover{background:var(--bar-hover);border-color:var(--bar-ink)}
.shared-topbar .menu-button{display:none!important}
.shared-topbar [hidden]{display:none!important}
@media(max-width:1180px){.shared-topbar .header-inner{margin:0 24px;gap:16px}.shared-topbar .nav{gap:16px}}
@media(max-width:960px){
.shared-topbar.shared-topbar{height:80px;position:relative;z-index:20}
.shared-topbar .logo img{width:64px;height:64px}.shared-topbar .x303-app-brand img{width:96px;height:64px}
.shared-topbar .menu-button{display:inline-flex!important;align-items:center;justify-content:center;margin-left:auto;width:36px;height:36px;border:1px solid var(--bar-border);background:transparent;color:inherit;border-radius:4px;cursor:pointer}
.shared-topbar .nav{display:none;position:absolute;top:80px;left:0;right:0;margin:0;padding:16px 24px 24px;background:var(--bar-bg);border-bottom:1px solid var(--bar-border);box-shadow:0 8px 12px #173f5208}
.shared-topbar .nav.open{display:flex;flex-direction:column;align-items:stretch;gap:0}
.shared-topbar .nav>a{padding:12px 0}.shared-topbar .nav>a.current:after{display:none}
.shared-topbar .nav-divider{width:100%;height:1px;margin:8px 0}
}
@media(max-width:480px){.shared-topbar .header-inner{margin:0 12px;gap:8px}.shared-topbar .header-actions{gap:6px}.shared-topbar .header-actions .nav-signin{padding:8px 10px;font-size:12px}.shared-topbar .header-actions .theme-toggle{min-width:66px;padding:8px}.shared-topbar .x303-app-brand img{width:80px}.shared-topbar .menu-button{width:32px}}
@media print{.shared-topbar.shared-topbar{display:none}}

.shared-topbar .nav-ideas{display:flex;align-items:center;gap:8px}

/* 2026-11-05 | Cxder | Illustrate the wiki course outline using the directory palette. */
.wiki-art{background:var(--foam)}.wiki-outline{width:80%;display:grid;gap:12px}.wiki-outline strong{font-size:30px;line-height:1.2;font-weight:400}.wiki-topic-lines{display:grid;gap:4px;font:10px/1.5 'IBM Plex Mono',monospace;color:var(--muted);border-left:1px solid var(--accent);padding-left:12px}
