.face-tracker{position:relative;overflow:hidden}.face-video{width:102%;height:104%;object-fit:contain}.face-container{height:360px;width:350px}@media (max-width: 768px){.face-container{height:280px;width:280px}.face-video{height:110%}}@media (max-width: 480px){.face-container{height:240px;width:240px}}.face-image{width:100%;height:100%;object-fit:contain;transition:opacity .1s ease-out}.face-loading{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:#666;font-size:14px}.face-tracker-error{display:flex;align-items:center;justify-content:center;height:200px;color:#e74c3c;background:#fdf2f2;border:1px solid #f5c6cb;border-radius:4px;padding:20px}.face-debug{position:absolute;top:10px;left:10px;background:#000c;color:#fff;padding:2px 12px;border-radius:4px;font-family:monospace;font-size:12px;line-height:1.4}@media (max-width: 768px){.face-tracker{min-height:250px}}.header-container{height:370px;max-width:600px;display:flex;flex-flow:column;justify-content:space-between}.header-container .bio{line-height:2rem}@media (max-width: 768px){.header-container{height:auto;max-width:100%;gap:24px}.header-container .bio{line-height:1.6rem;font-size:.95rem}.header-container .bio br{display:none}.header-container h1{font-size:1.5rem;line-height:1.8rem}}@media (max-width: 480px){.header-container .bio{font-size:.9rem;line-height:1.5rem}.header-container h1{font-size:1.3rem;line-height:1.6rem}}.header-container .button{position:relative;border:2px solid black;width:180px;height:50px;display:flex;justify-content:center;align-items:center;text-decoration:none;color:#000;cursor:pointer;overflow:hidden;isolation:isolate;transition:transform .15s ease,box-shadow .15s ease,color .3s ease}.header-container .button:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:#000;transform:scaleX(0);transform-origin:left;transition:transform .3s ease;z-index:-1}.header-container .button:hover{color:#fff}.header-container .button:hover:before{transform:scaleX(1)}.header-container .button:active{transform:translateY(2px)}.footer{position:fixed;bottom:0;left:0;right:0;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:12px 20px;z-index:100;color:#000;font-size:.5rem}.footer-content{display:flex;flex-direction:column;align-items:center;gap:4px;max-width:1200px;margin:0 auto}.footer-link{display:flex;align-items:center}.github-link{display:flex;align-items:center;gap:8px;color:#000;text-decoration:none;transition:opacity .2s ease}.github-link:hover{opacity:.5}.github-icon{width:16px;height:16px}@media (max-width: 768px){.footer{padding:10px 16px}.github-link{font-size:13px}.github-icon{width:14px;height:14px}}.app{width:100vw;height:100vh;margin:0;padding:0 0 80px;display:flex;flex-flow:row-reverse;align-items:center;justify-content:center;gap:180px;box-sizing:border-box}.face-tracker-container{display:flex;flex-flow:row wrap;gap:20px;align-items:center;justify-content:center}@media (max-width: 1024px){.app{gap:80px}}@media (max-width: 768px){.app{flex-direction:column;height:auto;min-height:100vh;padding:20px 20px 80px;gap:40px;justify-content:flex-start}.face-tracker-container{order:-1}}.overlay{position:absolute;top:0;right:0;bottom:0;left:0;mix-blend-mode:multiply}::selection{color:#fff;background-color:#000}@font-face{font-family:e-Ukraine;src:url(/fonts/e-Ukraine.otf) format("opentype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:UAFSans;src:url(/fonts/UAFSans.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}*{margin:0;padding:0;box-sizing:border-box}body{font-family:e-Ukraine,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{width:100%;height:100%}
