html{font-size:16px}body{background:#e4e8eb;color:#242424;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.45;margin:0;padding:0}#page{background:#fff;box-shadow:0 12px 40px rgba(0,0,0,.16);margin:0 auto;max-width:480px;min-height:100vh;width:100%}#site-title,#site-description{position:absolute!important;clip:rect(1px,1px,1px,1px)}#branding{border-top:0;padding-bottom:0}#branding img{background:#111;display:block;height:auto;width:100%}#access{background:linear-gradient(#232323,#050505);box-shadow:0 1px 2px rgba(0,0,0,.4);float:none;margin:0;width:100%}#access div.menu{display:block;margin:0;padding:.55rem .85rem .75rem}#access ul{display:flex;float:none;gap:.35rem;list-style:none;margin:0;overflow-x:auto;padding:0 0 .45rem;scrollbar-width:thin;white-space:nowrap}#access li{float:none;position:static}#access a{border-radius:999px;color:#eee;display:block;font-size:.82rem;line-height:1;padding:.55rem .7rem;text-decoration:none}#access .current-menu-item>a,#access a:hover,#access a:focus{background:#f9f9f9;color:#222;font-weight:700}.legacy-contact-bar{border-top:1px solid rgba(255,255,255,.14);display:grid;gap:.2rem;padding-top:.55rem}.legacy-contact-bar a{color:white;font-size:.78rem;line-height:1.25;margin:0;text-decoration:none}#main{clear:both;padding:1.25rem 1rem 0}#primary,#content{float:none;margin:0;width:100%}.singular #content,.left-sidebar.singular #content{margin:0;width:auto}.singular .entry-header,.singular .entry-content,.singular footer.entry-meta,.singular #comments-title{margin:0;width:100%}.hentry,.no-results{border-bottom:0;margin:0;padding:0 0 1.4rem}.entry-title{font-size:1.55rem;line-height:1.18;padding:.25rem 0 1rem}.entry-content{font-size:1rem;line-height:1.58;padding:0}.entry-content p{margin:0 0 1rem}.entry-content ul{list-style:disc;margin:0 0 1rem 1.25rem}.entry-content img{height:auto;max-width:100%}.entry-content [style*="margin-top:-"],.entry-content [style*="margin-top: -"]{margin-top:0!important}.entry-content [style*="width:85%"]{box-sizing:border-box;width:100%!important}.entry-content [style*="left:-75px"],.entry-content [style*="left:-155px"],.entry-content [style*="left:-154px"],.entry-content [style*="left:-150px"],.entry-content [style*="left:-200px"]{left:0!important}.entry-content [style*="width:800px"],.entry-content [style*="width:1000px"]{box-sizing:border-box;width:100%!important}.entry-content [style*="font-size:24px"]{font-size:1.5rem!important;line-height:1.2}.entry-content [style*="font-size:18px"]{font-size:1.08rem!important;line-height:1.35}.portfolio_content{border-bottom:1px solid #ddd;clear:both;margin-bottom:1.25rem;padding-bottom:1.25rem}.portfolio_thumb{float:none;margin:0 0 .8rem}.portfolio_thumb img{border-radius:6px;height:auto;max-width:100%;width:100%}.portfolio_short_content{max-width:none!important;width:auto!important}.read_more{margin-right:0!important}.legacy-testimonials{border-top:1px solid #ddd;margin-top:2rem;padding-top:1rem}.legacy-testimonials:before{color:#666;content:"Testimonials shortcode recovered from WordPress; final static rendering still needs testimonial layout."}.restored-page h2{font-size:1.15rem;line-height:1.25;margin:1.35rem 0 .6rem}.legacy-warning{color:#666;font-style:italic}.ssBlackBlock{background:#111;border-radius:6px;color:#fff;display:block;font-size:1.15rem;line-height:1.35;margin:1.1rem 0;padding:1rem;text-align:center}.ssBlackBlock a{color:#fff}.lesson-section{border-left:4px solid #3e7ca7;margin:1.1rem 0;padding-left:1rem}.tech-stack-list li,.legacy-note-list li{margin-bottom:.35rem}#colophon{padding:0 1rem 1.25rem}#site-generator{border-top:1px solid #ddd;color:#666;font-size:.78rem;line-height:1.4;padding:1rem 0;text-align:center}#site-generator a{margin:0 .35rem}@media (min-width:760px){body{padding:2rem}#page{border-radius:2px;max-width:760px}#access div.menu{align-items:center;display:flex;gap:1rem;justify-content:space-between;padding:.5rem 1.25rem}#access ul{flex:1 1 auto;overflow:visible;padding:0}.legacy-contact-bar{border-top:0;display:grid;flex:0 0 auto;gap:.35rem;padding-top:0;text-align:right}#main{padding:2.25rem 3rem 0}.entry-content{font-size:1.02rem}.portfolio_content .entry{display:grid;gap:1rem;grid-template-columns:minmax(190px,260px) 1fr}.portfolio_thumb{margin:0}.portfolio_thumb img{width:100%}}
/* --- overrides to match the live 2022 site --- */
@media (min-width:760px){#page{max-width:1000px}#access div.menu{padding:.5rem 1.25rem}#access ul{flex-wrap:wrap;white-space:normal}.entry-content{font-size:1.08rem}}
/* top-of-page whitespace cut to ~25% (Bruce) */
#main{padding-top:.2rem}
@media (min-width:760px){#main{padding:.3rem 3rem 0}}
.entry-title{margin-top:-.85rem;padding-top:0}
.page-welcome .entry-content > p:first-child{margin-top:-.85rem!important}
/* content authored against WP: neutralize negative-margin tuck hacks, keep lists tight */
.entry-content [style*="margin:-"],.entry-content [style*="margin: -"],.entry-content [style*="margin-left:-"],.entry-content [style*="margin-left: -"]{margin-top:.15rem!important;margin-left:1.4rem!important;margin-bottom:.5rem!important}
.entry-content ul,.entry-content ol{margin:.15rem 0 1rem 1.4rem}
.entry-content li{margin-bottom:.3rem}
/* Lessons Learned drop-down lists: the page's embedded stylesheet pulls them
   -20px left (WP-era tuck); position them normally relative to the black
   blocks/content edge. Higher specificity beats the embedded rule. */
.entry-content ul.ssDropDown{margin:.35rem 0 1rem 1.4rem}
/* section labels: tight against their list below, blank line above (Bruce) */
.entry-content p:not(.ssDropDown):has(+ ul),.entry-content p:not(.ssDropDown):has(+ ol){margin-top:1.4rem;margin-bottom:.15rem}
.entry-content > p:first-child{margin-top:0}
a{color:blueviolet}
a:hover,a:focus{color:blue;text-decoration:none}
#site-generator a{color:#666}
/* menu bar: flat style of the responsive theme (extracted from the running WP site) */
#access{background:linear-gradient(#585858,#3d3d3d);box-shadow:none}
#access div.menu{display:block;margin:0;padding:0}
@media (min-width:760px){#access div.menu{display:block;padding:0}}
#access ul{display:flex;flex-wrap:nowrap;gap:0;list-style:none;margin:0;overflow-x:auto;padding:0;white-space:nowrap}
@media (min-width:980px){#access a{padding:0 14px}}
@media (min-width:760px) and (max-width:979px){#access a{font-size:12px;padding:0 9px}}
#access li{margin:0}
#access a{border-radius:0;color:#fff;display:block;font-size:13px;font-weight:400;line-height:45px;padding:0 15px;text-decoration:none}
#access a:hover,#access a:focus{background:linear-gradient(gray,#363636);color:#fff;font-weight:400}
#access .current-menu-item>a{background:#343434;color:#fff;font-weight:400}
.page-welcome .entry-content p.ssBlackBlock{margin:.75rem auto 1.25rem}
.ssBlackBlock{background:#000;border-radius:15px;color:#fff;display:block;margin:.75rem auto 1.25rem;max-width:100%;padding:10px 14px;text-align:left;width:365px}
.ssBlackBlock a{color:#fff}
.ssWide{max-width:unset;width:85%}
.entry-content .ssBlackBlock{font-size:1.05rem;line-height:1.35}
/* contact page (was .page-id-58 in WP custom CSS) */
.page-contact-information div.part-1{align-items:center;display:flex;gap:14px;justify-content:center;line-height:normal;margin:10px auto}
.page-contact-information div.marvin{display:inline-block;vertical-align:top}
.page-contact-information div.marvin img{height:70px;width:auto}
.page-contact-information div.info{display:inline-block;font-size:.92em}
.page-contact-information .badge-base a{color:blueviolet}
.LI-profile-badge,.badge-base{display:block;margin:0 auto;max-width:250px;text-align:center}
/* portfolio index, matching 2022: full-width image FIRST, text under it,
   Completed/link/description, Technologies line carries the 3px separator */
.portfolio-subtitle{font-size:1.3rem;font-weight:700;margin:0 0 1.25rem;text-align:center}
.portfolio_content{border-bottom:0;clear:both;margin-bottom:1.5rem;padding-bottom:0}
.portfolio_content .entry{display:block}
@media (min-width:760px){.portfolio_content .entry{display:block;grid-template-columns:none}}
.portfolio_thumb{float:none;margin:0 0 .9rem}
.portfolio_thumb img{border:1px solid #ccc;border-radius:0;height:auto;width:100%}
.portfolio_short_content{float:none;margin:0;max-width:none!important;width:100%!important}
.item_title a{font-size:1.3rem;font-weight:700;line-height:1.2}
.portfolio-completed,.portfolio-link{margin:0 0 .35rem}
.portfolio-tech{border-bottom:3px solid #000;color:#333;font-size:.9rem;line-height:1.45;margin-top:.75rem;padding-bottom:1rem}
.single-portfolio .portfolio-tech{border-bottom:0;padding-bottom:0}
.portfolio-tech strong{color:#000}
.group-count{font-weight:700;margin:.35rem 0}
.portfolio_content.no-tech{border-bottom:3px solid #000;padding-bottom:1.25rem}
.group-intro{margin-bottom:1.25rem}
.group-intro-date{margin:.25rem 0 .75rem}
.back-link{margin:1.5rem 0 0}
.portfolio-group .entry-title{margin-bottom:.25rem}
/* testimonials slider (replica of the WP bxSlider fade widget) + galleries */
.testimonials-slider{margin-top:1.25rem}
.tw-viewport{position:relative}
.tw-slide{background:#f4f4f5;border-left:4px solid #000;border-radius:6px;box-sizing:border-box;left:0;margin:0;opacity:0;padding:.5rem .75rem;position:absolute;top:0;transition:opacity .45s ease;visibility:hidden;width:100%}
.tw-slide.active{opacity:1;position:relative;visibility:visible}
.tw-slide blockquote{font-family:inherit;font-style:normal;margin:.4rem 0 .4rem;padding:0 .5rem}
.tw-slide blockquote p{font-family:inherit;font-style:normal}
.tw-slide blockquote p:first-of-type::before{content:"\201C\00a0"}
.tw-slide blockquote p:last-of-type::after{content:"\00a0\201D"}
.tw-slide .credit{margin:0 1rem;text-align:right}
.tw-controls{margin:.35rem 1rem 1rem;text-align:right}
.tw-controls a{font-size:.9rem;margin-left:1.1rem}
.detail-cta{border-top:1px solid #ddd;margin-top:1.75rem;padding-top:1.25rem;text-align:center}
.detail-cta p{margin:0 0 .7rem}
.cta-pill{background:#fff;border:1px solid #000;border-radius:6px;color:#000;font-weight:700;padding:4px 12px;text-decoration:underline blueviolet double;-webkit-text-decoration:underline blueviolet double}
.cta-pill:hover,.cta-pill:focus{background:#f4f4f5;color:#000}
.cta-pill-normal{font-weight:400}
.cta-pill-normal strong{font-weight:700}
.cta-contact{font-size:.95rem;margin:.75rem 0 0}
.detail-gallery{border-top:1px solid #ddd;margin-top:1.5rem;padding-top:1rem}
.detail-gallery h2{font-size:1.2rem;margin:0 0 .8rem}
.gallery-grid{display:grid;gap:.75rem;grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}
.gallery-shot img{border:1px solid #ddd;border-radius:6px;display:block;height:auto;width:100%}
