/* User-supplied brand assets, portrait, theme switching and progressive projects. */
html[data-theme=dark]{color-scheme:dark;--paper:#151c18;--ink:#eef3e8;--muted:#b2beae;--green:#d3ed8c;--line:#354338}html[data-theme=light]{color-scheme:light}.theme-transition body,.theme-transition header,.theme-transition section,.theme-transition footer,.theme-transition a,.theme-transition button,.theme-transition p{transition:background-color .55s ease,color .55s ease,border-color .55s ease}.theme-toggle{display:flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:8px 12px;border:1px solid var(--line);border-radius:25px;background:transparent;color:var(--ink);font-size:12px}.theme-icon{font-size:21px;line-height:1}.theme-toggle.clicked .theme-icon{animation:theme-spin .55s ease}.right{gap:16px}.tool-brand{display:flex;align-items:center;gap:10px;white-space:nowrap}.tool-brand img{width:34px;height:34px;object-fit:contain}.tool-brand:last-of-type img{background:#fff;border-radius:6px;padding:3px}.profile-photo{position:relative;background:linear-gradient(135deg,#e2edce,#b7cf94);border-radius:8px;overflow:hidden;align-self:start;aspect-ratio:1/1.1}.profile-photo>img{display:block;width:100%;height:100%;object-fit:cover;object-position:center top}.profile-photo>span{position:absolute;bottom:0;left:0;right:0;display:flex;justify-content:space-between;padding:20px 24px;color:#fff;font-size:10px;letter-spacing:2px;background:linear-gradient(transparent,#122019aa)}.projects{grid-template-columns:repeat(4,minmax(0,1fr));gap:32px 22px}.project-title{margin-top:16px;gap:8px}.project-title h3{font-size:21px}.project p{font-size:12px;line-height:1.7}.project small{font-size:9px}.demo-note{font-size:10px}.demo-label{font-size:8px;left:10px;bottom:10px;padding:6px 8px}.project[hidden],.load-more[hidden]{display:none!important}.load-more-wrap{text-align:center;margin-top:42px}.project-count{font-size:12px}.load-more{cursor:pointer;border:0;display:inline-flex;align-items:center;gap:22px;margin-top:8px}.load-more:hover span{transform:translateY(3px)}.load-more span{transition:transform .2s}.project-reveal{animation:project-enter .5s both;animation-delay:var(--reveal-delay,0ms)}.project:focus{outline:none}.project:focus-visible{outline:2px solid #839f56;outline-offset:8px}.button,.contact,.project-link{transition:transform .2s,background-color .2s,color .2s}.button:active,.contact:active,.project-link:active{transform:scale(.96)}html[data-theme=dark] .button{background:var(--green);color:#1c2722}html[data-theme=dark] .button:hover{background:#e3f5bb}html[data-theme=dark] .cta{background:#222e25;color:var(--ink)}html[data-theme=dark] .cta .light{color:var(--ink);background:transparent}html[data-theme=dark] em{color:#bfdc90}html[data-theme=dark] .project-image{background:#26372b}html[data-theme=dark] .demo-label{color:#1c2722}html[data-theme=dark] .language button{color:var(--muted)}html[data-theme=dark] .profile-photo{background:linear-gradient(135deg,#344830,#74945c)}html[data-theme=dark] .tool-brand:nth-of-type(2) img{background:#fff;border-radius:50%}.tools{flex-wrap:wrap}.hero-bottom{position:relative}@keyframes theme-spin{from{transform:rotate(-120deg) scale(.65);opacity:.3}to{transform:rotate(0) scale(1);opacity:1}}@keyframes project-enter{from{opacity:0;transform:translateY(25px)}to{opacity:1;transform:translateY(0)}}@media(max-width:1000px){.projects{grid-template-columns:repeat(2,minmax(0,1fr))}.tools-end{display:none}.about{gap:45px}.contact{display:none}}@media(max-width:600px){.right{gap:10px}.theme-label{display:none}.theme-toggle{width:38px;min-height:38px;padding:6px}.projects{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 12px}.project-title h3{font-size:clamp(15px,4vw,20px);overflow-wrap:anywhere}.project-title{margin-top:12px}.project small{overflow-wrap:anywhere}.demo-label{font-size:8px;left:6px;bottom:6px;padding:5px 6px}.project p{font-size:14px}.tool-brand img{width:28px;height:28px}.tools b{font-size:14px}.tools{gap:16px}.about{gap:30px}.profile-photo{max-width:450px;width:100%}.hero h1{font-size:clamp(39px,12vw,54px)}}@media(prefers-reduced-motion:reduce){.theme-transition *, .project-reveal,.theme-toggle.clicked .theme-icon{animation:none!important;transition:none!important}.button:active,.contact:active,.project-link:active{transform:none}}
