.gh-page-projects{--ink:var(--page-panel-ink);--muted:var(--page-panel-muted);--line:var(--page-border);--paper:var(--page-bg);--accent:#aa8968;width:100%;min-height:calc(100vh - 100px);margin:0;background:var(--paper);color:var(--ink)}body.theme-dark .gh-page-projects{--accent:#c49b70}.gh-page-projects *{box-sizing:border-box}.projects-shell{width:min(1500px,100%);margin:auto;padding:48px 7vw 70px}.projects-intro{margin-bottom:38px}.projects-kicker{margin:0 0 22px;font:700 12px/1 var(--font-mono);letter-spacing:.14em;color:var(--accent)}.projects-intro h1{margin:0;color:var(--ink);font:500 clamp(48px,6vw,84px)/.9 var(--font-heading,var(--font-sans));letter-spacing:-.065em}.projects-subtitle{margin:20px 0 0;color:var(--muted);font:400 17px/1.4 var(--font-sans);letter-spacing:-.02em}.projects-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;transition:opacity .24s ease,filter .24s ease}.projects-grid.is-dimmed{opacity:.26;filter:saturate(.35)}.project-card{min-width:0;height:clamp(270px,28vw,390px);transform:translateY(var(--card-offset));transition:transform .28s ease,opacity .24s ease}.project-card:hover{transform:translateY(calc(var(--card-offset) - 4px))}.project-card__button{position:relative;display:block;width:100%;height:100%;padding:0;border:1px solid var(--line);border-radius:7px;overflow:hidden;background:var(--paper);color:#fff;text-align:left;cursor:pointer}.project-card__button img,.project-card__scrim{position:absolute;inset:0;width:100%;height:100%}.project-card__button img{object-fit:cover;filter:saturate(.8)}.project-card__scrim{background:linear-gradient(180deg,rgba(4,7,12,.06),rgba(4,7,12,.15) 38%,rgba(4,7,12,.88))}.project-card__body{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;align-items:flex-start;gap:8px;padding:20px}.project-status{display:inline-flex;align-items:center;min-height:25px;padding:0 10px;border-radius:999px;background:#303746;color:#fff;font:700 10px/1 var(--font-mono);letter-spacing:.03em;text-transform:uppercase}.project-status--live{background:#566653}.project-status--paused{background:#6d6458}.project-status--archived{background:#666}.project-card strong{font:600 clamp(20px,2.1vw,30px)/1 var(--font-sans);letter-spacing:-.045em}.project-card__body>span:not(.project-status):not(.project-card__open){font:400 13px/1.2 var(--font-sans);opacity:.9}.project-card__open{margin-top:8px;color:#d0ad83;font:700 11px/1 var(--font-mono);letter-spacing:.08em;text-transform:uppercase}.projects-details{position:fixed;z-index:20;inset:50% auto auto 50%;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(300px,.9fr);width:min(1050px,calc(100% - 80px));max-height:min(680px,calc(100vh - 120px));padding:10px;border:1px solid var(--line);border-radius:8px;background:var(--paper);box-shadow:0 28px 90px rgba(0,0,0,.28);opacity:0;transform:translate(-50%,-46%) scale(.97);transition:opacity .24s ease,transform .24s ease}.projects-details.is-open{opacity:1;transform:translate(-50%,-50%) scale(1)}.projects-details__close{position:absolute;z-index:2;top:18px;right:18px;width:34px;height:34px;border:1px solid var(--line);border-radius:50%;background:color-mix(in srgb,var(--paper) 82%,transparent);color:var(--ink);font-size:24px;line-height:1;cursor:pointer}.projects-details__media{min-height:480px;border-radius:4px;overflow:hidden;background:#111}.projects-details__media img{width:100%;height:100%;display:block;object-fit:cover}.projects-details__body{display:flex;flex-direction:column;justify-content:center;padding:38px 38px 30px}.projects-details__eyebrow{display:flex;align-items:center;gap:12px;margin-bottom:24px;color:var(--muted);font:500 12px/1 var(--font-mono);text-transform:uppercase}.projects-details h2{margin:0;color:var(--ink);font:500 clamp(30px,4vw,54px)/.95 var(--font-heading,var(--font-sans));letter-spacing:-.06em}.projects-details__description{margin:22px 0 28px;color:var(--muted);font:400 14px/1.55 var(--font-sans)}.projects-details__meta{margin:0;padding-top:18px;border-top:1px solid var(--line);font:400 12px/1.3 var(--font-sans)}.projects-details__meta div{display:flex;justify-content:space-between;gap:15px;padding:7px 0}.projects-details__meta dt{color:var(--muted);text-transform:uppercase}.projects-details__meta dd{margin:0;color:var(--ink);text-align:right}.projects-details__technologies{display:flex;flex-wrap:wrap;gap:7px;margin:18px 0 0;padding:0;list-style:none}.projects-details__technologies li{padding:6px 9px;border:1px solid var(--line);border-radius:999px;color:var(--muted);font:11px/1 var(--font-mono)}.projects-details__actions{margin-top:24px}.projects-details__actions a{color:var(--ink);font:700 12px/1 var(--font-mono);text-decoration:none;text-transform:uppercase}.projects-details__note{color:var(--muted);font:11px/1 var(--font-mono);text-transform:uppercase}@media(max-width:720px){.projects-shell{padding:30px 17px 48px}.projects-intro{margin-bottom:28px}.projects-grid{grid-template-columns:1fr;gap:12px}.project-card{height:280px;transform:none}.project-card:hover{transform:translateY(-3px)}.projects-details{inset:0;width:100%;height:100%;max-height:none;display:flex;flex-direction:column;overflow:auto;border:0;border-radius:0;padding:8px;transform:translateY(10px);transition:opacity .24s ease,transform .24s ease}.projects-details.is-open{transform:translateY(0)}.projects-details__media{height:48vh;min-height:260px;flex:none}.projects-details__body{padding:25px 18px 30px}.projects-details h2{font-size:40px}}
/* Row widths are intentionally dynamic; the cards stay level vertically. */
.projects-grid{display:flex;flex-direction:column;gap:14px}
.projects-row{display:flex;align-items:stretch;gap:14px;width:100%;height:clamp(270px,28vw,390px)}
.projects-row .project-card{width:calc(50% - 7px);height:100%;transform:none}
.projects-row .project-card:first-child{width:calc(50% + var(--row-offset,0px) - 7px)}
.projects-row .project-card:last-child{width:calc(50% - var(--row-offset,0px) - 7px)}
.projects-row .project-card:hover{transform:translateY(-4px)}
.project-card{position:relative}
.project-card__button{position:absolute;inset:0;z-index:1}
.project-card__button img,.project-card__scrim,.project-card__body{pointer-events:none}
.project-card__body .project-status{position:absolute;top:20px;right:20px;margin:0}
@media(max-width:720px){.projects-grid{gap:12px}.projects-row{flex-direction:column;height:auto;gap:12px}.projects-row .project-card,.projects-row .project-card:first-child,.projects-row .project-card:last-child{width:100%;height:280px}.projects-row .project-card:hover{transform:translateY(-3px)}}
.projects-row .project-card:hover,.projects-row .project-card:focus-within{transform:translateY(-4px)}
.projects-row .project-card__button{transition:box-shadow .28s ease}
.projects-row .project-card:hover .project-card__button,.projects-row .project-card:focus-within .project-card__button{box-shadow:0 18px 42px rgba(0,0,0,.18)}
.projects-row .project-card.is-hovered{transform:translateY(-4px)}
.projects-row .project-card.is-hovered .project-card__button{box-shadow:0 18px 42px rgba(0,0,0,.18)}
.gh-page-projects [hidden]{display:none!important}
@media(max-width:720px){.projects-row .project-card:hover,.projects-row .project-card:focus-within{transform:translateY(-3px)}}
@media(max-width:720px){.projects-row .project-card.is-hovered{transform:translateY(-3px)}}
.projects-panel-open{overflow:hidden}
.projects-details{display:grid;grid-template-columns:1fr;width:min(640px,calc(100% - 40px));max-height:min(620px,calc(100vh - 80px));padding:0;overflow:hidden;border-radius:12px;background:var(--paper);}
.projects-details__media{height:220px;min-height:0}.projects-details__body{min-height:0;overflow:hidden;padding:20px 24px 22px}.projects-details__eyebrow{margin:0 0 12px}.projects-details h2{font-size:clamp(28px,4vw,42px)}.projects-details__description{margin:12px 0 16px;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.projects-details__actions{margin:0 0 16px}.projects-details__actions:empty{display:none}.projects-details__actions a{color:var(--accent)}.projects-details__articles{border-top:1px solid var(--line);padding-top:14px}.projects-details__articles h3{margin:0 0 9px;font:700 11px/1 var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.projects-details__article-list{max-height:155px;overflow-y:auto;border:1px solid var(--line);border-radius:5px}.projects-details__article-list a{display:grid;grid-template-columns:1fr auto;gap:3px 10px;padding:10px 12px;border-bottom:1px solid var(--line);color:var(--ink);text-decoration:none;font:600 12px/1.2 var(--font-sans)}.projects-details__article-list a:last-child{border-bottom:0}.projects-details__article-list small{color:var(--muted);font:10px/1 var(--font-mono)}.projects-details__article-list b{grid-column:2;grid-row:1/3;color:var(--accent);font-size:16px}.projects-details__close{top:14px;right:14px}
@media(min-width:721px) and (max-width:1279px){.projects-details{width:72vw;max-height:70vh}.projects-details__media{height:170px}.projects-details__article-list{max-height:125px}}
@media(max-width:720px){.projects-details{inset:50% auto auto 50%;width:92vw;height:auto;max-height:82vh;display:flex;transform:translate(-50%,-46%) scale(.97);border:1px solid var(--line);border-radius:12px}.projects-details.is-open{transform:translate(-50%,-50%) scale(1)}.projects-details__media{height:auto;aspect-ratio:16/9;flex:none}.projects-details__body{padding:17px 18px 20px}.projects-details h2{font-size:32px}.projects-details__description{-webkit-line-clamp:3}.projects-details__article-list{max-height:130px}}
.projects-details{width:min(560px,calc(100% - 40px));padding:11px;border-radius:14px;background:var(--paper);border:1px solid color-mix(in srgb,var(--ink) 22%,transparent);box-shadow:0 22px 60px rgba(0,0,0,.25)}
.projects-details__media{height:210px;border-radius:10px;background:#111}
.projects-details__body{position:relative;padding:25px 9px 8px;justify-content:flex-start;overflow:visible}
.projects-details__eyebrow{position:absolute;top:-12px;left:9px;margin:0}.projects-details__eyebrow .project-status{font-size:9px;min-height:21px;padding:0 9px;box-shadow:0 2px 8px rgba(0,0,0,.12)}
.projects-details h2{font-size:29px;line-height:1.05;letter-spacing:-.045em}.projects-details__description{margin:9px 0 14px;font-size:12px;line-height:1.45;max-width:42ch}
.projects-details__actions{margin:0 0 15px}.projects-details__actions a{display:inline-flex;align-items:center;gap:9px;color:var(--accent);font-size:11px}.projects-details__actions a span{display:inline-grid;place-items:center;width:24px;height:24px;border:1px solid currentColor;border-radius:50%;font-size:15px}
.projects-details__articles{padding-top:13px}.projects-details__articles h3{font-size:10px;margin-bottom:8px}.projects-details__article-list{max-height:148px;border-radius:5px}.projects-details__article-list a{min-height:37px;padding:8px 10px;font-size:11px}.projects-details__article-list b{font-size:14px}
body.theme-dark .projects-details{background:#080c12;color:#f4f5f7;border-color:rgba(255,255,255,.25)}body.theme-light .projects-details{background:#fbfaf8;color:#151515;border-color:rgba(20,20,20,.2)}
@media(min-width:721px) and (max-width:1279px){.projects-details{width:72vw;max-height:70vh}.projects-details__media{height:155px}}
@media(max-width:720px){.projects-details{width:92vw;max-height:82vh;padding:8px;border-radius:13px}.projects-details__media{height:auto;aspect-ratio:16/9;border-radius:9px}.projects-details__body{padding:12px 9px 8px}.projects-details h2{font-size:27px}.projects-details__article-list{max-height:130px}}
.projects-details{width:460px!important;height:auto!important;min-height:0!important;max-height:720px!important;grid-template-columns:1fr!important}
.projects-details:focus{outline:none}
.projects-details__close{display:flex;align-items:center;justify-content:center;gap:12px;top:9px;right:9px;width:auto;height:34px;padding:0 14px;border:1px solid rgba(255,255,255,.4);border-radius:999px;background:rgba(0,0,0,.82);color:#fff;font:700 10px/1 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;backdrop-filter:blur(14px)}
.projects-details__close::before{content:'CLOSE';order:0}.projects-details__close{font-size:0}.projects-details__close::after{content:'×';order:1;font:400 22px/1 var(--font-sans)}
.projects-details__media{height:240px!important;aspect-ratio:auto!important}
@media(min-width:721px) and (max-width:1279px){.projects-details{width:420px!important;min-height:560px!important;max-height:70vh!important}.projects-details__media{height:190px!important}}
@media(max-width:720px){.projects-details{width:92vw!important;max-height:82vh!important}.projects-details__media{height:auto!important;aspect-ratio:16/9!important}}
.projects-details{width:380px!important;max-height:min(720px,calc(100vh - 48px))!important;padding:8px;border-radius:24px;overflow:hidden}
.projects-details__media{height:200px!important;border-radius:14px}
.projects-details__body{padding:28px 16px 16px!important}
.projects-details__eyebrow{top:-10px;left:16px}.projects-details__eyebrow .project-status{padding:6px 10px;min-height:22px;font-size:9px;background:rgba(0,0,0,.82);border:1px solid rgba(255,255,255,.35)}
.projects-details h2{display:none}.projects-details__description{font-size:14px;line-height:1.65;margin:0 0 24px;max-width:none}
.projects-details__actions{padding-bottom:18px;margin-bottom:17px;border-bottom:1px solid var(--line)}
.projects-details__articles{flex:1;min-height:0;padding-top:0}.projects-details__articles h3{margin:0 0 10px;font-size:10px}.projects-details__article-list{max-height:180px;padding:5px;border-radius:8px;background:color-mix(in srgb,var(--paper) 75%,transparent)}.projects-details__article-list a{min-height:38px;padding:8px 7px;border-bottom:1px solid color-mix(in srgb,var(--line) 70%,transparent)}
body.theme-dark .projects-details{background:#090d13;border-color:rgba(255,255,255,.28)}body.theme-light .projects-details{background:#f5f4f1;border-color:rgba(255,255,255,.8)}
@media(min-width:721px) and (max-width:1279px){.projects-details{width:380px!important;max-height:70vh!important}}
@media(max-width:720px){.projects-details{width:92vw!important;padding:8px}.projects-details__media{height:auto!important;aspect-ratio:16/9}.projects-details__body{padding:25px 14px 14px!important}.projects-details__article-list{max-height:150px}}
/* Match the supplied component reference: visible close label and readable article rows. */
.projects-details__close::before{font:700 10px/1 var(--font-mono)!important;letter-spacing:.08em}
.projects-details__article-list{max-height:210px!important;padding:5px!important}
.projects-details__article-list a{min-height:50px!important;padding:11px 10px!important;font-size:13px!important}
.projects-details__article-list small{font-size:10px!important}
.projects-details__article-list b{font-size:17px!important}
/* Latest interaction: open an intentionally empty window sized from the clicked card. */
.gh-page-projects .projects-details{width:var(--projects-panel-width,380px)!important;height:auto!important;min-height:0!important;max-height:none!important;grid-template-columns:1fr!important;padding:0 0 15px!important;overflow:hidden!important}
.gh-page-projects .projects-details__media{position:relative;display:block!important;width:calc(100% - 20px);height:auto!important;min-height:0;margin:10px;border-radius:14px;background:#111;overflow:visible}
.gh-page-projects .projects-details__media img{display:block;width:100%;height:auto;border-radius:14px;object-fit:cover}
.gh-page-projects .projects-details__body{display:block!important;padding:15px 25px 0!important;overflow:visible!important}
.gh-page-projects .projects-details__body>*:not(.projects-details__description):not(.projects-details__actions){display:none!important}
.gh-page-projects .projects-details__description{display:block!important;width:100%;max-width:none;margin:0;color:var(--muted);font:400 14px/1.5 var(--font-sans);letter-spacing:-.01em}
.gh-page-projects .projects-details__actions{display:block!important;margin:20px 0 0!important;padding:0!important;border:0!important}
.gh-page-projects .projects-details__actions:empty{display:none!important}
.gh-page-projects .projects-details__open-link{display:inline-flex;align-items:center;gap:12px;color:var(--accent)!important;font:600 12px/1 var(--font-sans)!important;letter-spacing:.08em;text-decoration:none;text-transform:uppercase;transition:opacity .2s ease}
.gh-page-projects .projects-details__open-link:hover{opacity:.8}
.gh-page-projects .projects-details__open-icon{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid color-mix(in srgb,var(--accent) 30%,transparent);border-radius:50%;color:var(--accent);transition:background-color .2s ease}
.gh-page-projects .projects-details__open-link:hover .projects-details__open-icon{background:color-mix(in srgb,var(--accent) 12%,transparent)}
.gh-page-projects .projects-details__open-icon svg{width:16px;height:16px;display:block}
.gh-page-projects .project-status--always{background:#6f5a48}
.gh-page-projects .projects-details__close{top:50%;right:50%;transform:translate(50%,-50%);width:44px;height:44px;padding:0;border-radius:50%;font-size:0}
.gh-page-projects .projects-details__close::before{display:none}
.gh-page-projects .projects-details__close::after{font-size:28px}
body.theme-dark .gh-page-projects .projects-details{background:#090d13;border-color:rgba(255,255,255,.28)}
body.theme-light .gh-page-projects .projects-details{background:#f5f4f1;border-color:rgba(20,20,20,.2)}
@media(max-width:720px){.gh-page-projects .projects-details{max-width:calc(100vw - 24px)!important}.gh-page-projects .projects-details__close{width:42px;height:42px}}
.gh-page-projects .projects-details__close{top:10px;right:10px;transform:none;width:auto;height:30px!important;padding:0 12px;border:1px solid color-mix(in srgb,var(--ink) 35%,transparent);border-radius:999px;background:color-mix(in srgb,var(--paper) 88%,transparent);color:var(--ink);font-size:0;line-height:1;gap:0!important;align-items:center!important;cursor:pointer;backdrop-filter:blur(10px)}
.gh-page-projects .projects-details__close::before{display:inline;content:'CLOSE';font:700 10px/1 var(--font-mono);letter-spacing:.08em;vertical-align:middle}
.gh-page-projects .projects-details__close::after{display:inline;content:'×';margin-left:10px;font:400 22px/1 var(--font-sans);line-height:1;vertical-align:middle;position:relative;top:-2px}
.gh-page-projects .project-card .project-status,.gh-page-projects .projects-details__status{box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 24%,transparent),0 0 16px color-mix(in srgb,var(--accent) 18%,transparent)}
.gh-page-projects .projects-details__status{position:absolute;z-index:2;left:15px;bottom:-15px;height:30px;min-height:30px;padding:0 12px;border:1px solid color-mix(in srgb,var(--ink) 35%,transparent);border-radius:999px;background:color-mix(in srgb,var(--paper) 88%,transparent);color:var(--ink);font:700 10px/1 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;display:inline-flex;align-items:center;white-space:nowrap;backdrop-filter:blur(10px)}
