.comment-bubble-button{position:fixed;bottom:calc(32px + env(safe-area-inset-bottom));right:24px;width:48px;height:48px;border-radius:50%;border:none;background:0 0;color:#1a1a1a;padding:0;cursor:pointer;z-index:95;display:flex;align-items:center;justify-content:center;transition:transform .15s ease;-webkit-tap-highlight-color:transparent}.comment-bubble-button:hover{transform:scale(1.05)}.comment-bubble-button:active{transform:scale(.95)}.comment-bubble-button svg{width:48px;height:48px}@media (max-width:599px){.comment-bubble-button{bottom:max(88px,calc(env(safe-area-inset-bottom) + 78px))}}@media (max-width:375px){.comment-bubble-button{bottom:max(98px,calc(env(safe-area-inset-bottom) + 88px));right:16px}}.comment-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.7);z-index:200;display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;visibility:hidden;transition:opacity .2s ease,visibility .2s ease}.comment-modal-overlay.visible{opacity:1;visibility:visible}.comment-modal{background:var(--color-background,#fefefe);border:1.5px solid var(--color-text-primary);max-width:300px;width:100%;padding:24px;padding-bottom:12px;position:relative;box-shadow:0 2px 12px rgba(0,0,0,.08)}.comment-modal-close{position:absolute;top:12px;right:12px;width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:0 0;border:none;font-family:'Courier New','Courier Prime',monospace;font-size:18px;color:var(--color-text-secondary,#666);cursor:pointer;z-index:10;transition:color .15s ease}.comment-modal-close:hover{color:var(--color-text-primary,#333)}.comment-modal-title{font-family:'Courier New',Courier,monospace;font-size:12px;font-weight:700;letter-spacing:1px;text-transform:uppercase;margin:0 0 20px 0;color:var(--color-text-primary,#333)}.comment-form{display:flex;flex-direction:column;gap:8px}.comment-form textarea{width:100%;padding:12px;font-family:'Courier New','Courier Prime',monospace;font-size:14px;border:1.5px solid var(--color-text-primary);background:var(--color-background,#fefefe);color:var(--color-text-primary,#333);transition:border-color .15s ease;box-sizing:border-box;min-height:120px;resize:vertical}.comment-form textarea:focus{outline:0;border-color:var(--color-text-secondary,#666)}.comment-form textarea::placeholder{color:var(--color-text-tertiary,#999);text-transform:uppercase;letter-spacing:.12em}.comment-submit{background:0 0;color:var(--color-text-primary);border:1.5px solid var(--color-text-primary);padding:3px 12px;margin-top:24px;font-family:'Courier New','Courier Prime',monospace;font-size:9px;font-weight:400;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;transition:color .15s ease}.comment-submit:hover:not(:disabled){color:#1a1a1a}.comment-submit:disabled{opacity:.25;cursor:not-allowed}.comment-status{font-family:'Courier New','Courier Prime',monospace;font-size:10px;letter-spacing:.12em;text-transform:uppercase;text-align:center;min-height:18px;color:var(--color-text-primary)}.comment-status.success{color:var(--color-text-primary)}.comment-status.error{color:#d42b2b}[data-theme=dark] .comment-modal{background:var(--color-background,#1a1a1a);border-color:var(--color-border);box-shadow:0 2px 12px rgba(0,0,0,.3)}[data-theme=dark] .comment-form textarea{background:var(--color-background,#1a1a1a);border-color:var(--color-border);color:var(--color-text-primary,#f5f5f5)}[data-theme=dark] .comment-submit{color:var(--color-text-primary);border-color:var(--color-border)}[data-theme=dark] .comment-submit:hover:not(:disabled){color:#fff}[data-theme=dark] .comment-bubble-button{color:#f5f5f5}@media (max-width:768px){.comment-modal{max-height:60vh;overflow-y:auto}.comment-form textarea{min-height:100px}}@media (max-width:599px){.comment-modal-overlay{padding:16px;align-items:center;justify-content:center}.comment-modal{width:90%;max-width:360px;padding:20px}}