@keyframes ch-pop{to{opacity:1}}
:is(html:has(.dev-info),body:has(.dev-info),html:has(.waka),body:has(.waka)){height:auto;min-height:100dvh;overflow-y:auto}
:is(body:has(.dev-info),body:has(.waka)){align-items:flex-start}
body:has(.dev-info) .hub{max-width:860px}
.dev-info{flex-wrap:wrap;justify-content:center;gap:.5rem;margin:0 auto;padding-bottom:4.5rem;display:flex}
.tech-icon{width:30px;height:30px;transition:transform .15s,filter .15s;display:inline-block;position:relative}
.tech-icon:before{content:"";-webkit-mask:var(--si) center / contain no-repeat;-webkit-mask:var(--si) center / contain no-repeat;mask:var(--si) center / contain no-repeat;background-color:currentColor;position:absolute;inset:0}
.tech-icon:hover{filter:drop-shadow(0 4px 8px);transform:translateY(-2px)scale(1.12)}
.tech-icon:after{content:attr(aria-label);background:var(--bg-deep);color:var(--text);white-space:nowrap;pointer-events:none;opacity:0;z-index:10;border:1px solid;border-radius:6px;padding:.25rem .5rem;font-size:.72rem;line-height:1;transition:opacity .15s,transform .15s;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)translateY(4px)}
.tech-icon:hover:after{opacity:1;transform:translate(-50%)translateY(0)}
.tech-icon{color:var(--text)}
.tech-stack .dev-info{justify-content:flex-start;padding-bottom:0}
.waka{z-index:1;width:100%;max-width:640px;margin:0 auto;padding-bottom:4.5rem;position:relative}
.waka .hub-header{margin-bottom:1.5rem}
.waka-meta{letter-spacing:.03em;color:var(--text-muted);margin:.5rem 0 0;font-size:.72rem}
.waka-section{background:var(--surface);border:1px solid var(--surface-hi);border-radius:16px;margin-bottom:.7rem;padding:.85rem 1.25rem .95rem}
.waka-section .section-title{text-align:left;margin-bottom:1rem;font-size:.82rem}
.waka-total{text-align:center}
.waka-total-num{color:var(--accent);font-size:2.1rem;font-weight:700;line-height:1.1}
.waka-total-sub{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:1.1rem;font-size:.78rem}
.waka-week{justify-content:space-between;align-items:flex-end;gap:.5rem;height:120px;display:flex}
.waka-day{flex-direction:column;flex:1 1 0;align-items:center;gap:.4rem;height:100%;display:flex}
.waka-day-track{background:var(--surface-hi);border-radius:7px;flex:1;align-items:flex-end;width:100%;max-width:34px;display:flex;overflow:hidden}
.waka-day-fill{background:var(--accent);border-radius:7px 7px 0 0;width:100%;min-height:3px;transition:height .5s}
.waka-day-label{color:var(--text-muted);font-size:.66rem}
.waka-bars{flex-direction:column;gap:.6rem;display:flex}
.waka-bar-row{grid-template-columns:7.5rem 1fr auto;align-items:center;gap:.7rem;display:grid}
.waka-bar-name{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:.82rem;overflow:hidden}
.waka-bar-track{background:var(--surface-hi);border-radius:999px;height:9px;overflow:hidden}
.waka-bar-fill{background:var(--accent);border-radius:999px;width:0;height:100%;transition:width .6s;display:block}
.waka-bar-val{color:var(--text-muted);white-space:nowrap;font-variant-numeric:tabular-nums;font-size:.74rem}
.waka-grid2{grid-template-columns:1fr 1fr;gap:1.1rem;display:grid}
.waka-grid2 .waka-section{margin-bottom:0}
.waka-empty{color:var(--text-muted);margin:0;font-size:.85rem;line-height:1.5}
.waka-credit{text-align:center;color:var(--text-muted);margin:1.4rem 0 0;font-size:.72rem}
.waka-empty a,.waka-credit a{color:var(--accent);text-decoration:none}
.waka-empty a:hover,.waka-credit a:hover{text-decoration:underline}
details.waka-section{padding-bottom:.85rem;transition:padding-bottom .15s}
details.waka-section[open]{padding-bottom:1.15rem}
summary.section-title{cursor:url(https://m.doughmination.gay/img/cursor/pointer_0.png),pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:0;list-style:none;transition:margin-bottom .15s,color .15s;display:flex}
summary.section-title::-webkit-details-marker{display:none}
summary.section-title::marker{content:""}
summary.section-title:hover{color:var(--accent)}
summary.section-title:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:6px}
summary.section-title:after{content:"";border-bottom:2px solid;border-right:2px solid;flex:none;width:.5rem;height:.5rem;margin-right:.15rem;transition:transform .2s;transform:rotate(45deg)}
details.waka-section[open]>summary.section-title{margin-bottom:.75rem}
details.waka-section[open]>summary.section-title:after{transform:rotate(-135deg)}
.hw-item{color:var(--text);text-decoration:none}
.hw-intro{color:var(--text-muted);margin:0 0 .9rem;font-size:.8rem}
.hw-list{flex-direction:column;gap:.55rem;margin:0;display:flex}
.hw-row{grid-template-columns:8rem 1fr;align-items:baseline;gap:.7rem;display:grid}
.hw-row dt{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);font-size:.72rem}
.hw-row dd{color:var(--text);margin:0;font-size:.88rem}
.ch-root{--ch-cell:13px;--ch-gap:3px;--ch-weekday-w:30px;--contrib-0:#232a33;--contrib-1:#173f2c;--contrib-2:#1e7349;--contrib-3:#34ab68;--contrib-4:#5ce897;--ch-muted:#8b95a1;--ch-text:#d3dae2;width:100%;max-width:100%;color:var(--ch-text);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;display:block}
.ch-count{color:var(--ch-muted);font-variant-numeric:tabular-nums;margin:0 0 14px;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:13px}
.ch-scroll{scrollbar-width:thin;scrollbar-color:var(--ch-muted) transparent;padding-bottom:4px;overflow-x:auto}
.ch-scroll::-webkit-scrollbar{height:8px}
.ch-scroll::-webkit-scrollbar-thumb{background:var(--ch-muted);border-radius:4px}
.ch-scroll::-webkit-scrollbar-track{background:0 0}
.ch-months{grid-auto-flow:column;grid-auto-columns:var(--ch-cell);gap:var(--ch-gap);margin-left:calc(var(--ch-weekday-w) + var(--ch-gap));height:14px;color:var(--ch-muted);margin-bottom:6px;font-size:11px;display:grid}
.ch-months span{white-space:nowrap;line-height:14px}
.ch-body{gap:var(--ch-gap);display:flex}
.ch-weekdays{grid-template-rows:repeat(7, var(--ch-cell));gap:var(--ch-gap);width:var(--ch-weekday-w);color:var(--ch-muted);font-size:10px;display:grid}
.ch-weekdays span{line-height:var(--ch-cell)}
.ch-grid{grid-template-rows:repeat(7, var(--ch-cell));grid-auto-flow:column;grid-auto-columns:var(--ch-cell);gap:var(--ch-gap);display:grid}
.ch-day{width:var(--ch-cell);height:var(--ch-cell);outline-offset:-1px;opacity:0;border-radius:3px;outline:1px solid #ffffff0a;animation:.4s forwards ch-pop}
.ch-day:hover{outline:1px solid var(--ch-text)}
.ch-day.l0{background:var(--contrib-0)}
.ch-day.l1{background:var(--contrib-1)}
.ch-day.l2{background:var(--contrib-2)}
.ch-day.l3{background:var(--contrib-3)}
.ch-day.l4{background:var(--contrib-4)}
.ch-legend{color:var(--ch-muted);align-items:center;gap:6px;margin-top:14px;font-size:11px;display:flex}
.ch-legend .ch-day{opacity:1;animation:none}
@media (max-width:560px){.waka-bar-row{grid-template-columns:5.5rem 1fr auto}.waka-grid2{grid-template-columns:1fr;gap:0}.waka-grid2 .waka-section{margin-bottom:1.1rem}.hw-row{grid-template-columns:6rem 1fr}}
@media (prefers-reduced-motion:reduce){.ch-day{opacity:1;animation:none}}
