@font-face{font-family:"Anime Ace 2.0 BB";src:url(/fonts/AnimeAce20BB-Bold.woff2)format("woff2"),url(/fonts/AnimeAce20BB-Bold.woff)format("woff");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:"Anime Ace 2.0 BB";src:url(/fonts/AnimeAce20BB.woff2)format("woff2"),url(/fonts/AnimeAce20BB.woff)format("woff");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:"Anime Ace 2.0 BB";src:url(/fonts/AnimeAce20BB-Italic.woff2)format("woff2"),url(/fonts/AnimeAce20BB-Italic.woff)format("woff");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:BadaBoom BB;src:url(/fonts/BadaBoomBB.woff2)format("woff2"),url(/fonts/BadaBoomBB.woff)format("woff");font-weight:400;font-style:normal;font-display:swap}*{box-sizing:border-box;margin:0;padding:0;font-family:"Anime Ace 2.0 BB"}html,body{overflow:hidden}#experience-wrapper{width:100vw;height:100vh;position:fixed}#experience-canvas{width:100%;height:100%}.corner-info{pointer-events:none;z-index:3;-webkit-user-select:none;user-select:none;flex-direction:column;gap:4px;display:flex;position:absolute;top:24px;left:24px}.corner-info__text{color:var(--color-corner-text);font-size:12px;font-weight:700;line-height:1.2;transition:color .8s}.corner-info__clock{color:var(--color-corner-text);opacity:.8;font-size:10px;font-weight:700;line-height:1.2;transition:color .8s}#ui-chad{clip-path:inset(0 calc(100% - var(--slider-x)) 0 0);--color-modal-bg:#000;--color-modal-text:#fff;--color-preloader-bg:#282828;--color-progress-bg:#4e4e4e;--color-progress-bar:#ead83a;--color-corner-text:#fff}body.night-theme #ui-chad{--color-modal-bg:#0a0f2e;--color-modal-text:#a0b4d6;--color-preloader-bg:#0a0f2e;--color-progress-bg:#1a2a4a;--color-progress-bar:#4a6fa5;--color-corner-text:#a0b4d6}#ui-capybara{clip-path:inset(0 0 0 var(--slider-x));--color-modal-bg:#fff;--color-modal-text:#000;--color-preloader-bg:#f7bf76;--color-progress-bg:#e0a855;--color-progress-bar:#fff;--color-corner-text:#000}body.night-theme #ui-capybara{--color-modal-bg:#0d1b2a;--color-modal-text:#a0b4d6;--color-preloader-bg:#0d1b2a;--color-progress-bg:#1a2a4a;--color-progress-bar:#2a4a8c;--color-corner-text:#a0b4d6}:root{--color-slider-line:#fff;--color-slider-handle:#fff}body.night-theme{--color-slider-line:#4a6fa5;--color-slider-handle:#1a2a6c}.ui-panel{pointer-events:none;z-index:1000000;position:fixed;inset:0}.ui-panel button,.ui-panel .modal{pointer-events:all}.modal{z-index:10000001;background-color:var(--color-modal-bg);width:300px;height:300px;color:var(--color-modal-text);opacity:0;pointer-events:none;visibility:hidden;transition:background-color .8s,color .8s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.modal__title{text-align:start;flex-direction:row;justify-content:flex-start;padding-top:12px;font-size:18px;font-weight:700;display:flex}.modal__paragraph{font-size:14px}.modal-open{pointer-events:auto;visibility:visible}.modal__wrapper{flex-direction:column;justify-content:space-between;align-items:start;gap:8px;width:100%;height:100%;padding:60px 40px;display:flex;position:relative}.modal__border{pointer-events:none;z-index:0;width:calc(100% + 8px);height:calc(100% + 8px);position:absolute;inset:-4px}.modal__wrapper>:not(.modal__border):not(.modal__close-button){z-index:1;position:relative}.modal__close-button{color:var(--color-close-button);background:0 0;border:none;justify-content:center;align-items:center;padding:0;transition:color .8s;display:flex;position:absolute;top:12px;left:12px}.modal__close-button svg{width:24px;height:24px}.modal__close-button:hover{cursor:pointer}.modal--resume{width:80vw;min-width:320px;max-width:1000px;height:85vh;min-height:420px;max-height:800px}.modal__wrapper--resume{gap:10px;padding:50px 36px 20px}.resume-viewer{opacity:.85;border:2px solid;border-radius:2px;flex:1;width:100%;min-height:0;transition:opacity .3s}.resume-viewer:hover{opacity:1}.resume-download-btn{color:var(--color-modal-bg);background:var(--color-modal-text);cursor:pointer;outline:3px solid var(--color-modal-text);outline-offset:2px;border:3px solid;border-radius:4px;justify-content:center;align-self:center;align-items:center;gap:8px;margin-top:6px;padding:10px 24px;font-family:"Anime Ace 2.0 BB";font-size:14px;font-weight:700;text-decoration:none;transition:background .8s,color .8s,transform .2s;display:inline-flex}.resume-download-btn:hover{transform:scale(1.05)}.resume-download-btn:active{transform:scale(.97)}.resume-download-btn__icon{flex-shrink:0}.hover-tooltip{color:#fff;pointer-events:none;z-index:10000002;opacity:0;white-space:nowrap;outline-offset:1px;background:#000;border:3px solid #fff;border-radius:4px;outline:2px solid #000;padding:6px 14px;font-family:"Anime Ace 2.0 BB";font-size:12px;font-weight:700;transition:opacity .15s,transform .15s,background .8s,color .8s;position:fixed;transform:translateY(4px)}.hover-tooltip--visible{opacity:1;transform:translateY(0)}body.night-theme #ui-chad .hover-tooltip{color:#a0b4d6;background:#0a0f2e;border-color:#a0b4d6;outline-color:#0a0f2e}.modal--project{width:80vw;min-width:320px;max-width:900px;height:85vh;min-height:420px;max-height:700px}.modal__wrapper--project{gap:6px;padding:50px 36px 20px}.project-meta{color:var(--color-modal-text);opacity:.7;text-align:center;border-bottom:1px dashed;padding-bottom:4px;font-family:"Anime Ace 2.0 BB";font-size:11px;font-weight:700}.project-tech{flex-wrap:wrap;justify-content:center;gap:6px;padding:8px 0;display:flex}.project-tech span{opacity:.85;white-space:nowrap;border:1.5px solid;border-radius:3px;padding:3px 10px;font-family:"Anime Ace 2.0 BB";font-size:10px;font-weight:700}.project-body{flex:1;min-height:0;padding-right:4px;overflow-y:auto}.project-body__heading{border-left:3px solid;margin:10px 0 4px;padding:3px 8px;font-family:"Anime Ace 2.0 BB";font-size:13px;font-weight:700}.project-body__heading:first-child{margin-top:0}.project-body__text{opacity:.85;padding:0 4px;font-family:"Anime Ace 2.0 BB";font-size:12px;line-height:1.7}.modal--awards{width:80vw;min-width:320px;max-width:1000px;height:85vh;min-height:420px;max-height:800px}.modal__wrapper--awards{gap:10px;padding:50px 36px 20px}.awards-tabs{gap:0;display:flex}.awards-tab{color:var(--color-modal-text);cursor:pointer;opacity:.5;background:0 0;border:2px solid;border-bottom:none;border-radius:4px 4px 0 0;flex:1;padding:8px 16px;font-family:"Anime Ace 2.0 BB";font-size:12px;font-weight:700;transition:opacity .2s,background .8s,color .8s}.awards-tab:hover{opacity:.75}.awards-tab--active{opacity:1;background:var(--color-modal-text);color:var(--color-modal-bg)}.awards-gallery,.awards-categories{display:none}.awards-gallery.awards-view--active,.awards-categories.awards-view--active{display:flex}.awards-gallery{flex:1;width:100%;min-height:0;padding-right:6px;overflow-y:auto}.awards-gallery__grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px;display:grid}.award-card{background:0 0;border:2px solid;border-radius:3px;flex-direction:column;align-items:center;gap:6px;padding:8px;transition:transform .2s;display:flex}.award-card:hover{transform:scale(1.03)}.award-card img{aspect-ratio:1.4;object-fit:cover;opacity:.9;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;pointer-events:auto;border:1px solid;width:100%;transition:opacity .2s}.award-detail-overlay__image{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.award-card:hover img{opacity:1}.award-card__label{color:var(--color-modal-text);text-align:center;font-family:"Anime Ace 2.0 BB";font-size:10px;font-weight:700;line-height:1.3}.awards-categories{flex-direction:column;flex:1;gap:14px;width:100%;min-height:0;padding-right:6px;overflow-y:auto}.awards-category__header{border:2px solid;border-radius:3px;margin-bottom:6px;padding:6px 12px;font-family:"Anime Ace 2.0 BB";font-size:14px;font-weight:700}.awards-category__list{flex-direction:column;gap:4px;padding:0 4px;list-style:none;display:flex}.awards-category__item{opacity:.85;border-bottom:1px dashed;justify-content:space-between;align-items:center;padding:5px 10px;font-family:"Anime Ace 2.0 BB";font-size:11px;display:flex}.awards-category__item:last-child{border-bottom:none}.awards-category__name{font-weight:700}.awards-category__level{white-space:nowrap;border:1.5px solid;border-radius:3px;padding:2px 8px;font-size:10px;font-weight:700}.level-diamond{color:#b8860b;border-color:#b8860b}.level-gold{color:#c0392b;border-color:#c0392b}.level-silver{color:#5d6d7e;border-color:#5d6d7e}.award-detail-overlay{z-index:10000010;pointer-events:none;opacity:0;justify-content:center;align-items:center;transition:opacity .25s;display:flex;position:fixed;inset:0}.award-detail-overlay--open{pointer-events:all;opacity:1}.award-detail-overlay__bg{background:#000000d9;position:absolute;inset:0}.award-detail-overlay__content{background:var(--color-modal-bg);border:3px solid var(--color-modal-text);outline:2px solid var(--color-modal-bg);outline-offset:2px;border-radius:2px;flex-direction:column;align-items:center;gap:12px;max-width:90vw;max-height:90vh;padding:16px;transition:background .8s,border-color .8s;display:flex;position:relative}.award-detail-overlay__image{object-fit:contain;opacity:.95;border:1px solid;max-width:85vw;max-height:75vh}.award-detail-overlay__label{color:var(--color-modal-text);text-align:center;font-family:"Anime Ace 2.0 BB";font-size:13px;font-weight:700;transition:color .8s}.award-detail-overlay__close{background:var(--color-modal-bg);border:3px solid var(--color-modal-text);cursor:pointer;color:var(--color-modal-text);border-radius:50%;justify-content:center;align-items:center;padding:4px;transition:background .8s,color .8s,border-color .8s,transform .15s;display:flex;position:absolute;top:-14px;right:-14px}.award-detail-overlay__close:hover{transform:scale(1.1)}@media (width<=768px){.modal--resume,.modal--awards,.modal--project{width:92vw;max-width:none;height:80vh;max-height:none}.modal__wrapper--resume,.modal__wrapper--awards,.modal__wrapper--project{padding:44px 20px 14px}.resume-download-btn{padding:8px 18px;font-size:12px}.awards-gallery__grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}.awards-category__header{font-size:12px}}@media (width<=480px){.modal--resume,.modal--awards,.modal--project{width:96vw;min-width:280px;height:78vh;min-height:380px}.modal__wrapper--resume,.modal__wrapper--awards,.modal__wrapper--project{gap:6px;padding:40px 14px 10px}.resume-download-btn{gap:4px;padding:6px 14px;font-size:11px}.resume-download-btn__icon{width:14px;height:14px}.awards-gallery__grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px}.award-card__label{font-size:9px}.awards-category__header{font-size:11px}.awards-category__item{font-size:10px}}#compare-slider{cursor:ew-resize;z-index:10000001;touch-action:none;flex-direction:column;align-items:center;width:40px;height:100%;display:flex;position:fixed;top:0;left:50%;transform:translate(-50%)}#compare-slider__line{pointer-events:none;background:#000;width:3px;height:100%;transition:background .8s;position:absolute;top:0;left:50%;transform:translate(-50%)}#compare-slider__handle{background:var(--color-slider-handle);pointer-events:none;-webkit-user-select:none;user-select:none;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;font-size:18px;display:none;position:absolute;top:50%;transform:translateY(-50%)}.preloader{background:var(--color-preloader-bg);z-index:15;justify-content:center;align-items:center;transition:background .8s;display:flex;position:absolute;inset:0}.preloader__inner{flex-direction:column;align-items:center;gap:12px;display:flex}.preloader__progress-wrapper{background:var(--color-progress-bg);border-radius:50px;outline:3px solid #000;width:250px;height:10px;transition:background .8s}.preloader__progress-bar{background:var(--color-progress-bar);border-radius:50px;width:0%;height:100%;transition:width .3s,background .8s}.night-toggle{cursor:pointer;pointer-events:all;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;display:flex;position:absolute;top:24px;right:24px}.night-toggle__track{background:#f0c040;border-radius:999px;outline:3px solid #000;width:52px;height:28px;transition:background .4s;position:relative;inset:-2px}.night-toggle__track--night{background:#1a2a6c;outline:3px solid #000;inset:-2px}.night-toggle__thumb{background:#fff;border-radius:50%;outline:3px solid #000;width:20px;height:20px;transition:transform .4s;position:absolute;top:4px;left:4px}.night-toggle__thumb--night{transform:translate(24px)}
