/* WordPress block compatibility, without replacing editor-defined column widths. */
html{scrollbar-gutter:stable}
@supports not (scrollbar-gutter:stable){html{overflow-y:scroll}}
.site-header .site-nav,.site-header .portfolio-menu{gap:28px;align-items:center}
.site-header .site-nav a{display:inline-flex;align-items:center;padding-left:13px;font-weight:400;white-space:nowrap}
@media(max-width:760px){.site-header .site-nav,.site-header .portfolio-menu{gap:12px 20px}}
/* Indicators sit outside text flow, so active navigation never changes link widths. */
.site-header .site-nav a{position:relative}
.site-header .site-nav a::before{content:"";position:absolute;display:block;left:0;top:calc(50% - 2.5px);width:5px;height:5px;margin:0;border-radius:50%;background:var(--gold);opacity:0;pointer-events:none;transition:opacity 500ms ease,box-shadow 500ms ease}
.site-header .site-nav :is(a[aria-current="page"],.current-menu-item>a,.current-menu-ancestor>a)::before{opacity:1;box-shadow:0 0 9px 2px rgb(230 189 120 / 45%);animation:sp-nav-light-in 500ms ease both}
@keyframes sp-nav-light-in{from{opacity:0;box-shadow:0 0 0 0 rgb(230 189 120 / 0%)}to{opacity:1;box-shadow:0 0 9px 2px rgb(230 189 120 / 45%)}}
@media(prefers-reduced-motion:reduce){.site-header .site-nav a::before{transition:none}.site-header .site-nav :is(a[aria-current="page"],.current-menu-item>a,.current-menu-ancestor>a)::before{animation:none}}
.reading.portfolio-reading :is(video,iframe[src*="youtube"],iframe[src*="vimeo"]){box-shadow:0 10px 28px rgb(0 0 0 / 44%),0 3px 8px rgb(0 0 0 / 28%);border-radius:8px}
/* Match image depth to the code panels throughout detail pages. */
:is(.single-post,.portfolio-about) .reading.portfolio-reading img{box-shadow:0 10px 28px rgb(0 0 0 / 44%),0 3px 8px rgb(0 0 0 / 28%)}
.reading.portfolio-reading .sp-comparison-images{box-shadow:0 10px 28px rgb(0 0 0 / 44%),0 3px 8px rgb(0 0 0 / 28%)}
.reading.portfolio-reading .sp-comparison-images img{box-shadow:none}
/* A language label occupies its own row, including its padding. */
.reading.portfolio-reading .wp-block-kevinbatdorf-code-block-pro>span:not(.code-block-pro-copy-button){display:flex;position:relative;box-sizing:border-box;width:100%;line-height:1.5;min-height:37px;flex-shrink:0}
.reading.portfolio-reading .wp-block-kevinbatdorf-code-block-pro{position:relative;--sp-copy-top:8px}
.reading.portfolio-reading .wp-block-kevinbatdorf-code-block-pro:has(>span:not(.code-block-pro-copy-button)){--sp-copy-top:45px}
.reading.portfolio-reading .wp-block-kevinbatdorf-code-block-pro .code-block-pro-copy-button{position:absolute!important;top:var(--sp-copy-top)!important;right:8px!important;left:auto!important;width:auto!important;min-height:0!important;margin:0!important;padding:6px!important;border:0!important;border-radius:5px;background:#24292e!important;line-height:1!important;z-index:2}
/* Resource guide: separate each recommendation and reuse the warm outline buttons. */
.portfolio-learning-guide .reading.portfolio-reading hr+.wp-block-columns{margin-top:32px;margin-bottom:32px;align-items:flex-start}
.portfolio-learning-guide .reading.portfolio-reading hr+:is(h2,h3){margin-top:36px}
.portfolio-learning-guide .reading.portfolio-reading .wp-block-column>p:first-child:has(>strong:only-child){font-size:21px;line-height:1.4;margin-bottom:18px}
.portfolio-learning-guide .reading.portfolio-reading .wp-block-button__link{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:10px 16px;border:1px solid rgb(230 189 120 / 42%);border-radius:8px!important;background:var(--surface);color:var(--gold);font-family:inherit;font-size:14px;line-height:1.5;text-decoration:none;box-shadow:0 3px 10px rgb(0 0 0 / 18%);transition:background-color 220ms ease,border-color 220ms ease,box-shadow 280ms ease}
.portfolio-learning-guide .reading.portfolio-reading .wp-block-button__link strong{color:inherit;font-weight:600}
.portfolio-learning-guide .reading.portfolio-reading .wp-block-button__link:is(:hover,:focus-visible){background:#26231e;border-color:var(--gold);box-shadow:0 0 20px rgb(230 189 120 / 13%)}
.portfolio-learning-guide .reading.portfolio-reading .wp-block-buttons{gap:12px;margin-top:20px}
@media(prefers-reduced-motion:reduce){.portfolio-learning-guide .reading.portfolio-reading .wp-block-button__link{transition:none}}
.home .now .beyond-copy p{max-width:none}
.reading.portfolio-reading li{margin-bottom:12px}
.portfolio-reading .wp-block-image.aligncenter img,.portfolio-reading .wp-block-image .aligncenter img{display:block;margin-inline:auto}
.single-post.postid-3761 .portfolio-reading .wp-block-column:has(> .wp-block-image){align-self:center}
.single-post.postid-3761 .portfolio-reading .wp-block-column:has(> .wp-block-image)>.wp-block-columns:has(> .wp-block-column:empty){display:none}
.single-post.postid-3761 .portfolio-reading .wp-block-image img{display:block;margin-inline:auto}
.articles-page .project-card .card-action{justify-content:flex-start;gap:6px}
.sp-comparison-images{position:relative;overflow:hidden;border-radius:10px;border:1px solid var(--line)}
.portfolio-reading .sp-comparison-images img{display:block;width:100%;margin:0}
.portfolio-reading .sp-comparison-images .sp-comparison-after{position:absolute;inset:0;height:100%;object-fit:cover;clip-path:inset(0 calc(100% - var(--reveal)) 0 0)}
.sp-comparison-divider{position:absolute;top:0;bottom:0;left:var(--reveal);width:2px;background:var(--gold);box-shadow:0 0 10px #000}
.sp-comparison label{display:block;font-size:14px;margin-top:14px;color:var(--text)}
.sp-comparison input{display:block;width:100%;margin:10px 0;accent-color:var(--gold);cursor:ew-resize}
.sp-comparison figcaption{display:flex;justify-content:space-between;gap:16px;font-size:12px;color:var(--muted)}
/* Respect each provider's shape instead of squeezing store widgets into video frames. */
.portfolio-reading iframe[src*="store.steampowered.com/widget/"]{display:block;width:100%;max-width:646px;height:190px;aspect-ratio:auto;margin-inline:auto;background:var(--reading-surface,#1a1c1f);color-scheme:normal}
.portfolio-reading iframe.juxtapose{display:block;width:100%;height:auto;aspect-ratio:16/9;min-height:280px;border-radius:10px;overflow:hidden}
.portfolio-atan .portfolio-reading>.wp-block-columns:has(iframe[src*="store.steampowered.com"]){display:grid;grid-template-columns:minmax(0,1fr) 180px;gap:28px 40px;align-items:center}
.portfolio-atan .portfolio-reading>.wp-block-columns:has(iframe[src*="store.steampowered.com"])>.wp-block-column:last-child{grid-column:1/-1}
.portfolio-atan .portfolio-reading>.wp-block-columns:has(iframe[src*="store.steampowered.com"]) figure{margin:0}
/* About: a focused introduction, balanced story columns and a quieter photo grid. */
.portfolio-about .portfolio-reading>h1{font-size:clamp(2rem,3vw,2.5rem);margin-bottom:36px}
.portfolio-about .portfolio-reading>h1+hr,.portfolio-about .portfolio-reading>.wp-block-spacer{display:none}
.portfolio-about .portfolio-reading>.wp-block-columns{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:48px;align-items:start;margin:36px 0}
.portfolio-about .portfolio-reading>.wp-block-columns.are-vertically-aligned-center{grid-template-columns:280px minmax(0,1fr);gap:56px;align-items:center;margin-top:0}
.portfolio-about .portfolio-reading>.are-vertically-aligned-center h2{margin-top:0;color:var(--gold)!important;text-shadow:0 0 22px rgb(230 189 120 / 18%)}
.portfolio-about .portfolio-reading>.are-vertically-aligned-center figure{margin:0}
.portfolio-about .portfolio-reading>.are-vertically-aligned-center img{width:260px!important;display:block;margin:auto;border-radius:50%;border:1px solid rgb(230 189 120 / 25%);box-shadow:0 12px 32px rgb(0 0 0 / 30%)}
.portfolio-about .portfolio-reading>.are-vertically-aligned-center p:last-child{margin-bottom:0}
.portfolio-about .portfolio-reading>.are-vertically-aligned-center a[href$=".pdf"]{display:inline-flex;align-items:center;padding:9px 16px;border:1px solid rgb(230 189 120 / 42%);border-radius:8px;text-decoration:none;font-size:14px;background:var(--surface);transition:background-color 200ms ease,box-shadow 250ms ease}
.portfolio-about .portfolio-reading>.are-vertically-aligned-center a[href$=".pdf"]:hover{background:#26231e;box-shadow:0 0 20px rgb(230 189 120 / 13%)}
.portfolio-about .portfolio-reading figure img{border-radius:12px}
.portfolio-about .portfolio-reading figcaption{font-size:13px;line-height:1.5;color:var(--muted);margin-top:10px;text-align:left}
.portfolio-about .portfolio-reading>.wp-block-columns:not(.are-vertically-aligned-center) figure{margin-top:0}
.portfolio-about .portfolio-reading .wp-block-columns .wp-block-columns{gap:20px;margin:0}
.portfolio-about .portfolio-reading li{margin-bottom:12px}
@media(max-width:760px){.portfolio-about .portfolio-reading>.wp-block-columns,.portfolio-about .portfolio-reading>.wp-block-columns.are-vertically-aligned-center{grid-template-columns:1fr;gap:28px}.portfolio-about .portfolio-reading>.are-vertically-aligned-center img{width:200px!important}.portfolio-atan .portfolio-reading>.wp-block-columns:has(iframe[src*="store.steampowered.com"]){grid-template-columns:1fr}.portfolio-atan .portfolio-reading>.wp-block-columns:has(iframe[src*="store.steampowered.com"]) img{max-width:180px;display:block;margin:auto}}
.portfolio-menu{display:flex;flex-wrap:wrap;gap:24px;list-style:none;margin:0;padding:0}
.portfolio-menu li{margin:0;padding:0}
.portfolio-menu .current-menu-item>a{color:var(--gold)}
.admin-bar .site-header{top:32px}
@media(max-width:782px){.admin-bar .site-header{top:46px}}
.portfolio-reading .has-text-color:is(h1,h2,h3,h4,h5,h6){color:var(--reading-emphasis)!important}
.portfolio-reading :is(strong,b) mark{background:transparent!important;color:inherit!important}
.portfolio-reading code mark,.portfolio-reading a mark{background:transparent!important;color:inherit!important}
.portfolio-reading .wp-block-spacer{max-height:48px}
.portfolio-reading figure{max-width:100%}
.portfolio-reading .wp-block-image img{height:auto;max-width:100%}
.portfolio-reading .aligncenter{margin-inline:auto}
.portfolio-reading .alignright{margin-left:auto}
.portfolio-reading .wp-block-table{overflow-x:auto}
.portfolio-reading table{width:100%;border-collapse:collapse}
.portfolio-reading :is(td,th){padding:12px;border:1px solid var(--line);text-align:left}
.portfolio-reading blockquote{border-left:3px solid var(--gold);margin:24px 0;padding:8px 24px}
.portfolio-reading .wp-block-embed__wrapper iframe{max-width:100%}
.portfolio-reading .wp-block-columns{display:flex;flex-wrap:nowrap}
.portfolio-reading .wp-block-column{min-width:0;flex-grow:1}
.portfolio-reading .wp-block-columns.reading-intro{display:grid;grid-template-columns:minmax(0,1fr) 33%}
.portfolio-reading .reading-intro>.wp-block-column{width:auto!important;flex-basis:auto!important}
.portfolio-reading .reading-intro img{width:100%!important;height:auto!important}
.portfolio-reading .page-links,.navigation.pagination{display:flex;justify-content:center;gap:16px;margin:32px 0}
.comments-area input:not([type=checkbox]),.comments-area textarea{max-width:100%;background:var(--surface);border:1px solid var(--line);border-radius:8px;color:var(--text);padding:10px;font:inherit}
.comments-area label{display:block}
.comments-area input[type=submit]{cursor:pointer;color:var(--gold)}
.articles-page .project-card:has(.article-preview:empty) .article-preview{background:radial-gradient(ellipse at center,rgb(230 189 120 / 12%),transparent 75%)}
@media(max-width:760px){.portfolio-reading .wp-block-columns{flex-wrap:wrap}.portfolio-reading .wp-block-column{flex-basis:100%!important}.portfolio-reading .wp-block-columns.reading-intro{grid-template-columns:1fr}.portfolio-menu{gap:10px 20px}}
