.modal-component-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;animation:modalFadeIn .3s ease}.modal-component-backdrop--default,.modal-component-backdrop--project{background:rgba(0,0,0,.85);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.modal-component-backdrop--poem{background:rgba(0,0,0,.92);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);padding:2rem}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}.modal-component{background:var(--bg-dark);border-radius:24px;width:100%;max-height:90vh;display:flex;flex-direction:column;position:relative;border:1px solid hsla(0,0%,100%,.1);box-shadow:0 25px 50px rgba(0,0,0,.5);animation:modalSlideUp .3s ease;overflow:hidden}.modal-component--poem{background:linear-gradient(180deg,#1a1a1a,#0d0d0d);border-radius:16px;max-height:85vh;border:1px solid hsla(0,0%,100%,.08);box-shadow:0 30px 60px rgba(0,0,0,.6),0 0 0 1px hsla(0,0%,100%,.05);animation:modalSlideUpPoem .4s cubic-bezier(.16,1,.3,1)}@keyframes modalSlideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes modalSlideUpPoem{0%{opacity:0;transform:translateY(30px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-component-header{display:flex;align-items:center;gap:1rem;padding:1.25rem 1.5rem;border-bottom:1px solid hsla(0,0%,100%,.1);flex-shrink:0}.modal-component-header--project{background:linear-gradient(135deg,rgba(59,130,246,.15),rgba(139,92,246,.1))}.modal-component-header--poem{display:none}.modal-component-close{background:hsla(0,0%,100%,.1);border:none;color:var(--text-secondary);width:36px;height:36px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1.1rem;transition:all .3s ease;flex-shrink:0;margin-left:auto}.modal-component-close:hover{background:hsla(0,0%,100%,.2);color:var(--text-primary)}.modal-component-close--floating{position:absolute;top:1.25rem;right:1.25rem;margin-left:0;border:1px solid hsla(0,0%,100%,.1);font-size:1.25rem;z-index:10}.modal-component-close--floating:hover{transform:rotate(90deg)}.modal-component-close--poem{background:hsla(0,0%,100%,.08)}.modal-component-body{padding:1.5rem 2rem 2rem;overflow-y:auto;flex:1 1}.modal-component-body--project{scrollbar-width:none;-ms-overflow-style:none}.modal-component-body--project::-webkit-scrollbar{display:none}.modal-component-body--poem{padding:3rem;scrollbar-width:none;-ms-overflow-style:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.modal-component-body--poem::-webkit-scrollbar{display:none}.modal-component-body.swipe-left{animation:swipeInFromRight .3s ease-out}.modal-component-body.swipe-right{animation:swipeInFromLeft .3s ease-out}@keyframes swipeInFromRight{0%{opacity:0;transform:translateX(50px)}to{opacity:1;transform:translateX(0)}}@keyframes swipeInFromLeft{0%{opacity:0;transform:translateX(-50px)}to{opacity:1;transform:translateX(0)}}.modal-component-nav{position:absolute;top:50%;transform:translateY(-50%);background:hsla(0,0%,100%,.1);border:1px solid hsla(0,0%,100%,.2);color:var(--text-primary);width:48px;height:48px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1.25rem;transition:all .3s ease;z-index:10}.modal-component-nav:hover{background:rgba(59,130,246,.2);border-color:rgba(59,130,246,.4);color:var(--primary-color);transform:translateY(-50%) scale(1.1)}.modal-component-nav--prev{left:1rem}.modal-component-nav--next{right:1rem}.modal-component-nav--override{position:absolute;top:50%;z-index:10;border:none;width:auto;height:auto;border-radius:0}.modal-component-nav--override,.modal-component-nav--override:hover{transform:translateY(-50%);background:none}@media (max-width:768px){.modal-component-nav--override{display:none}}.modal-component-nav--decorative{width:56px;height:56px;background:linear-gradient(135deg,rgba(30,30,30,.95),hsla(0,0%,8%,.98));border:2px solid rgba(59,130,246,.3);color:var(--color-blue);font-size:1.75rem;transition:all .4s cubic-bezier(.175,.885,.32,1.275);box-shadow:0 4px 20px rgba(0,0,0,.4),0 0 30px rgba(59,130,246,.1),inset 0 1px 0 hsla(0,0%,100%,.05);overflow:hidden}.modal-component-nav--decorative .nav-icon{position:relative;z-index:2;transition:transform .3s ease}.modal-component-nav--decorative .nav-pulse{position:absolute;top:50%;left:50%;width:100%;height:100%;border-radius:50%;background:radial-gradient(circle,rgba(59,130,246,.4) 0,transparent 70%);transform:translate(-50%,-50%) scale(0);opacity:0;transition:all .5s ease}.modal-component-nav--decorative:hover{background:linear-gradient(135deg,#282828,#191919);border-color:var(--color-blue);color:var(--color-blue-light);transform:translateY(-50%) scale(1.15);box-shadow:0 8px 30px rgba(0,0,0,.5),0 0 40px rgba(59,130,246,.3),inset 0 1px 0 hsla(0,0%,100%,.1)}.modal-component-nav--decorative:hover .nav-pulse{transform:translate(-50%,-50%) scale(1.5);opacity:1;animation:pulseGlow 1.5s ease-in-out infinite}@keyframes pulseGlow{0%,to{transform:translate(-50%,-50%) scale(1);opacity:.5}50%{transform:translate(-50%,-50%) scale(1.5);opacity:0}}.modal-component-nav--decorative:active{transform:translateY(-50%) scale(1.05);transition:transform .1s ease}.modal-component-nav--decorative.modal-component-nav--prev:hover .nav-icon{transform:translateX(-3px);animation:arrowBounceLeft .6s ease infinite}.modal-component-nav--decorative.modal-component-nav--next:hover .nav-icon{transform:translateX(3px);animation:arrowBounceRight .6s ease infinite}@keyframes arrowBounceLeft{0%,to{transform:translateX(-3px)}50%{transform:translateX(-8px)}}@keyframes arrowBounceRight{0%,to{transform:translateX(3px)}50%{transform:translateX(8px)}}.modal-component-nav--poem.modal-component-nav--prev{left:calc(50% - 330px)}.modal-component-nav--poem.modal-component-nav--next{right:calc(50% - 330px)}@media (max-width:900px){.modal-component-nav--poem.modal-component-nav--prev{left:1rem}.modal-component-nav--poem.modal-component-nav--next{right:1rem}}.modal-component-footer{display:flex;align-items:center;justify-content:center;gap:1.5rem;padding:1rem 1.5rem;border-top:1px solid hsla(0,0%,100%,.1);background:rgba(0,0,0,.2);flex-shrink:0}.modal-component-footer--project{display:none}.modal-component-footer--poem{padding-top:1.5rem;border-top:1px solid hsla(0,0%,100%,.08);margin-top:2rem;background:transparent}.modal-component-footer-nav{background:hsla(0,0%,100%,.08);border:1px solid hsla(0,0%,100%,.15);color:var(--text-secondary);width:36px;height:36px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:.9rem;transition:all .3s ease}.modal-component-footer-nav:hover:not(:disabled){background:rgba(59,130,246,.15);border-color:rgba(59,130,246,.3);color:var(--primary-color)}.modal-component-footer-nav:disabled{opacity:.3;cursor:not-allowed}.modal-component-footer--poem .modal-component-footer-nav{display:none;width:44px;height:44px;background:rgba(59,130,246,.15);border:1px solid rgba(59,130,246,.3);color:var(--color-blue);font-size:1.5rem}.modal-component-footer--poem .modal-component-footer-nav:not(:disabled):active{background:rgba(59,130,246,.3);transform:scale(.95)}.modal-component-footer-center{display:flex;flex-direction:column;align-items:center;gap:.5rem;flex:1 1}.modal-component-counter{font-size:.9rem;font-weight:500;color:var(--text-secondary);min-width:50px;text-align:center}.modal-component-footer--poem .modal-component-counter{font-family:Lato,sans-serif;font-weight:300;color:var(--text-muted)}@media (max-width:768px){.modal-component{max-height:85vh;border-radius:20px}.modal-component-header{padding:1rem 1.25rem;gap:.75rem}.modal-component-close{width:32px;height:32px;font-size:1rem}.modal-component-body{padding:1.25rem 1.5rem 1.5rem}.modal-component-nav--project{display:none}.modal-component-footer--project{display:flex;position:fixed;bottom:0;left:0;right:0;background:linear-gradient(0deg,hsla(0,0%,6%,.98) 0,hsla(0,0%,6%,.95));backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);z-index:100;padding-bottom:calc(.85rem + env(safe-area-inset-bottom))}.modal-component-body--project{padding-bottom:80px}.modal-component-footer{padding:.85rem 1.25rem}.modal-component-footer-nav{width:32px;height:32px;font-size:.8rem}.modal-component-counter{font-size:.85rem}}@media (max-width:600px){.modal-component-backdrop--poem{padding:0;align-items:flex-end}.modal-component--poem{max-height:95vh;height:95vh;border-radius:20px 20px 0 0;max-width:100%;animation:modalSlideUpMobile .4s cubic-bezier(.16,1,.3,1)}@keyframes modalSlideUpMobile{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.modal-component--poem:before{content:"";position:absolute;top:8px;left:50%;transform:translateX(-50%);width:36px;height:4px;background:hsla(0,0%,100%,.3);border-radius:2px;z-index:20}.modal-component--poem .modal-component-body{padding:1.5rem 1.25rem 100px;max-height:95vh}.modal-component--poem .modal-component-close--floating,.modal-component-nav--poem{display:none}.modal-component-footer--poem{position:fixed;bottom:0;left:0;right:0;flex-direction:row;justify-content:space-between;padding:.75rem 1rem calc(.75rem + env(safe-area-inset-bottom));margin-top:0;border-top:1px solid hsla(0,0%,100%,.1);background:linear-gradient(0deg,hsla(0,0%,5%,.98) 0,hsla(0,0%,5%,.95));backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);z-index:100;gap:.5rem}.modal-component-footer--poem .modal-component-footer-center{flex-direction:row;gap:.75rem;flex:0 1;justify-content:flex-start}.modal-component-footer--poem .modal-component-footer-nav{display:flex}.modal-component-footer--poem .modal-component-counter{font-size:.85rem;font-weight:500;min-width:55px}}@media (max-width:480px){.modal-component-header{padding:.85rem 1rem;gap:.6rem}.modal-component-close{width:28px;height:28px;font-size:.9rem}.modal-component-body{padding:1rem 1.25rem 1.25rem}.modal-component-body--project{padding-bottom:90px}.modal-component-footer{padding:.75rem 1rem;gap:1rem}.modal-component-footer-nav{width:30px;height:30px}.modal-component-counter{font-size:.8rem}}@media (max-width:400px){.modal-component--poem{height:100vh;max-height:100vh;border-radius:0}.modal-component--poem:before{display:none}.modal-component--poem .modal-component-body{padding:1.25rem 1rem 90px;max-height:100vh}.modal-component-footer--poem{padding:.5rem .75rem calc(.5rem + env(safe-area-inset-bottom));gap:.5rem}.modal-component-footer--poem .modal-component-footer-nav{width:40px;height:40px;font-size:1.3rem}.modal-component-footer--poem .modal-component-counter{font-size:.7rem}}