.App{text-align:center}.App-logo{height:40vmin;pointer-events:none}@media (prefers-reduced-motion:no-preference){.App-logo{animation:App-logo-spin 20s linear infinite}}.App-header{align-items:center;background-color:#282c34;color:#fff;display:flex;flex-direction:column;font-size:calc(10px + 2vmin);justify-content:center;min-height:100vh}.App-link{color:#61dafb}@keyframes App-logo-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}body{background-color:#bde6f1;color:#fff;font-family:Edu VIC WA NT Beginner,cursive;margin:0;text-align:center}h1{margin-bottom:2rem}hr{border:3px dotted #eaf6f6;border-bottom:none;margin:25px auto;width:4%}.landing{text-align:center}.programmer{margin:0}.pro{text-decoration:underline}.intro{margin:0 auto}.rel-courses{line-height:1.5}.list-title,.rel-courses{list-style-type:none;padding:0}.projects{margin:0 auto}.icon{width:15%}.hobby-row{margin:0 auto;width:50%}.hobby-row h3{text-align:center}.hobby-odd .hobby-text{text-align:left}.hobby-even .hobby-text{text-align:right}.hobby-icon{width:20%}.hobby-odd img{float:left;margin-right:1rem}.hobby-even img{float:right}.hobby-row.hobby-even{margin-top:5rem}.footer{clear:right}.navbar{background-color:#eeab44;box-shadow:0 4px 6px #0000001a;left:0;padding:15px 0;position:sticky;top:0;width:100%;z-index:100}.nav-container{align-items:center;display:flex;justify-content:space-between;margin:0 auto;max-width:1200px;padding:0 20px}.nav-logo{color:#fff;font-size:24px;font-weight:700;text-decoration:none}.nav-links{display:flex;gap:20px;list-style:none;margin:0;padding:0}.nav-links li{display:inline}.nav-links a{color:#fff;font-size:18px;font-weight:700;text-decoration:none;transition:color .3s ease}.nav-links a:hover{color:#94d2bd}.gallery-page{margin:0 auto;max-width:1200px;padding:20px}.album-list{grid-gap:20px;display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));margin-bottom:40px}.album-item{border-radius:8px;overflow:hidden;transition:transform .2s}.album-item:hover{transform:translateY(-5px)}.gallery-modal{align-items:center;background:#000000e6;display:flex;height:100%;justify-content:center;left:0;position:fixed;top:0;width:100%;z-index:1000}.gallery-close{color:#fff;cursor:pointer;font-size:30px;position:absolute;right:20px;top:20px;z-index:1001}.gallery-title{color:#fff;margin-bottom:20px;text-align:center}.gallery-nav{background:#ffffffe6;border-radius:50%;cursor:pointer;font-size:24px;padding:10px;position:absolute;top:50%}.gallery-prev{left:20px}.gallery-next{right:20px}.gallery-image{display:block;height:auto;margin:0 auto;max-width:90%}.photo-info{color:#fff;padding:20px;text-align:center}.album-list{display:flex;flex-wrap:wrap;gap:20px;justify-content:center}.album{cursor:pointer;text-align:center;transition:transform .2s ease-in-out;width:800px}.album:hover{transform:scale(1.05)}.album-cover{border-radius:8px;height:200px;object-fit:cover;width:100%}.container{color:#fff;margin:20px auto;max-width:800px;padding:30px}.header{margin-bottom:30px;text-align:center}.stats{gap:2rem;margin-bottom:2rem}.stat-item{background-color:#eeab44;border-radius:5px;color:#fff;padding:1rem;text-align:center}.flight-log{display:flex;flex-direction:column;gap:1rem}.flight-entry{background-color:#eeab44;border-radius:5px;box-shadow:0 2px 4px #0000001a;color:#fff;padding:1.5rem}.flight-date{font-weight:700;margin-bottom:.5rem}.aircraft,.dual-received,.instructor,.pic-time,.route,.total-time{color:#fff;margin-bottom:.5rem}.flight-entry .dual-received,.flight-entry .pic-time,.flight-entry .total-time{font-style:italic}.terminal{background:#000;border:2px solid #32cd32;color:#32cd32;display:flex;flex-direction:column;font-family:Courier New,monospace;height:550px;margin:3rem auto;max-width:800px;overflow:hidden;padding:10px;width:100%}.terminal-header{font-weight:700;margin-bottom:5px}.terminal-body{flex-grow:1;overflow-y:auto;padding-right:10px;scrollbar-color:#32cd32 #000;scrollbar-width:thin}.terminal-body::-webkit-scrollbar{width:8px}.terminal-body::-webkit-scrollbar-thumb{background:#32cd32;border-radius:5px}.terminal-body::-webkit-scrollbar-track{background:#000}.terminal-input-line{align-items:center;display:flex}.terminal-symbol{margin-right:5px}.terminal-input{background:none;border:none;color:#32cd32;font-size:16px;outline:none;width:100%}.terminal-output{font-family:monospace;white-space:pre}.tech-thumbnail{border-radius:8px;box-shadow:0 4px 6px #0000001a;height:150px;object-fit:cover;transition:box-shadow .3s ease;width:150px}.tech-thumbnail:hover{box-shadow:0 8px 12px #0003;transform:scale(1.05);transition:box-shadow .3s ease,transform .2s ease}.Utilities{align-items:center;display:flex;flex-direction:column;padding:1rem}.utilities-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));justify-content:center;max-width:1000px;width:100%}.utility-item{text-align:center}@media (max-width:480px){.utilities-grid{gap:1rem;grid-template-columns:1fr}.tech-thumbnail{max-width:100%}}.pomodoro-container{background:#e0e0e0;border-radius:1.5rem;box-shadow:4px 4px 16px #bebebe,-4px -4px 16px #fff;margin:0 auto;max-width:500px;padding:2rem;transition:background .3s ease,box-shadow .3s ease;width:100%}.pomodoro-container.dark{background:#1e1e1e;box-shadow:4px 4px 16px #111,-4px -4px 16px #2a2a2a}.pomodoro-card{align-items:center;background:inherit;border-radius:1.5rem;box-shadow:inherit;display:flex;flex-direction:column;padding:2rem;transition:background .3s ease}.pomodoro-title{color:#444;font-size:1.75rem;font-weight:700;margin-bottom:1.5rem}.pomodoro-title.dark{color:#eee}.pomodoro-timer{color:#6366f1;font-size:4rem;font-weight:800;margin:2rem 0;text-shadow:2px 2px 4px #d1d5db}.pomodoro-timer.dark{text-shadow:2px 2px 4px #111}.pomodoro-controls{display:flex;gap:1.25rem;margin-bottom:1.5rem}.pomodoro-button{background:#f0f0f0;border:none;border-radius:999px;box-shadow:4px 4px 8px #bebebe,-4px -4px 8px #fff;color:#333;cursor:pointer;font-size:1rem;font-weight:600;padding:.75rem 1.25rem;transition:all .3s ease}.pomodoro-button:hover{background:#e5e5e5}.pomodoro-button.dark{background:#2e2e2e;box-shadow:4px 4px 8px #1c1c1c,-4px -4px 8px #3c3c3c;color:#eee}.pomodoro-button.dark:hover{background:#3a3a3a}.pomodoro-mode-button{background:#f3f4f6;border:none;border-radius:1rem;box-shadow:4px 4px 8px #bebebe,-4px -4px 8px #fff;color:#444;cursor:pointer;font-size:.9rem;font-weight:500;padding:.5rem 1rem;transition:all .3s ease}.pomodoro-mode-button.active{background:#6366f1;box-shadow:4px 4px 8px #4f46e5,-4px -4px 8px #7c3aed;color:#fff}.pomodoro-mode-button.dark{background:#2a2a2a;box-shadow:4px 4px 8px #1c1c1c,-4px -4px 8px #3c3c3c;color:#ccc}.pomodoro-mode-button.active.dark{background:#8b5cf6;box-shadow:4px 4px 8px #7c3aed,-4px -4px 8px #a78bfa;color:#fff}.pomodoro-settings{grid-gap:1rem;display:grid;font-size:.9rem;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));margin-top:2rem;width:100%}.pomodoro-settings-label{color:#555;display:block;font-weight:600;margin-bottom:.25rem}.pomodoro-slider{appearance:none;background:#ddd;border-radius:10px;box-shadow:inset 4px 4px 8px #bebebe,inset -4px -4px 8px #fff;cursor:pointer;height:14px;transition:background .3s ease;width:100%}.pomodoro-slider:hover{background:#ccc}.pomodoro-slider:focus{background:#bbb;outline:none}.pomodoro-slider::-webkit-slider-thumb{-webkit-appearance:none;background:#6366f1;border-radius:50%;box-shadow:4px 4px 8px #4f46e5,-4px -4px 8px #7c3aed;cursor:pointer;height:28px;margin-top:-7px;-webkit-transition:background .3s ease,box-shadow .3s ease;transition:background .3s ease,box-shadow .3s ease;width:28px}.pomodoro-slider::-webkit-slider-thumb:hover{background:#4f46e5;box-shadow:6px 6px 12px #3b36c2,-6px -6px 12px #9259f5}.pomodoro-slider::-moz-range-thumb{background:#6366f1;border-radius:50%;box-shadow:4px 4px 8px #4f46e5,-4px -4px 8px #7c3aed;cursor:pointer;height:28px;-moz-transition:background .3s ease,box-shadow .3s ease;transition:background .3s ease,box-shadow .3s ease;width:28px}.pomodoro-slider::-moz-range-thumb:hover{background:#4f46e5;box-shadow:6px 6px 12px #3b36c2,-6px -6px 12px #9259f5}.password-generator{background-color:#fff;border-radius:12px;box-shadow:0 2px 12px #0000001a;margin:2rem auto;max-width:500px;padding:2rem}.title-section{margin-bottom:1.5rem;text-align:center}.title{color:#333;font-size:1.75rem;margin-bottom:.25rem}.subtitle{color:#666;font-size:.9rem}.display-section{margin-bottom:1.5rem}.password-input-wrapper{align-items:center;border:1px solid #ccc;border-radius:8px;display:flex;overflow:hidden;position:relative}.password-input{background-color:#f9f9f9;border:none;color:#333;flex:1 1;font-size:1rem;outline:none;padding:.75rem 1rem}.input-actions{align-items:center;background-color:#f1f1f1;border-left:1px solid #ccc;display:flex;padding:0 .5rem}.icon-button{background:none;border:none;color:#666;cursor:pointer;padding:.5rem;transition:color .2s ease}.icon-button:hover{color:#000}.copied-icon{color:green}.strength-wrapper{margin-top:.75rem}.strength-header{display:flex;font-size:.85rem;justify-content:space-between;margin-bottom:.25rem}.strength-label{color:#555;font-weight:700}.strength-value{font-weight:700;text-transform:uppercase}.strength-bar-background{background-color:#eee;border-radius:4px;height:8px;overflow:hidden;width:100%}.strength-bar{height:8px;transition:width .3s ease}.strength-weak{background-color:#e63946;color:#e63946}.strength-medium{background-color:#f4a261;color:#f4a261}.strength-strong{background-color:#2a9d8f;color:#2a9d8f}.slider-section{margin-bottom:1.5rem}.slider-header{display:flex;font-size:.9rem;justify-content:space-between;margin-bottom:.25rem}.slider{appearance:none;background:#ccc;border-radius:3px;height:6px;outline:none;width:100%}.slider::-webkit-slider-thumb{appearance:none;background:#07f;border-radius:50%;cursor:pointer;height:14px;-webkit-transition:background .2s ease;transition:background .2s ease;width:14px}.slider::-webkit-slider-thumb:hover{background:#005fcc}.options-section{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1.5rem}.option-item{color:#444;font-size:.9rem;justify-content:space-between}.generate-button,.option-item{align-items:center;display:flex}.generate-button{background-color:#07f;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1rem;gap:.5rem;justify-content:center;padding:.75rem;transition:background .3s ease;width:100%}.generate-button:hover{background-color:#005fcc}.copied-notification{color:green;font-size:.9rem;margin-top:1rem;text-align:center}.diff-container{font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:14px;min-height:100vh;transition:background-color .3s ease,color .3s ease}.diff-container.light{background-color:#bde6f1;color:#333}.diff-container.dark{background-color:#1a1a1a;color:#e0e0e0}.header{align-items:center;border-bottom:2px solid var(--border);display:flex;flex-wrap:wrap;gap:15px;justify-content:space-between;padding:20px}.title{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#4a9eff,currentColor);-webkit-background-clip:text;font-size:28px;font-weight:700}.theme-toggle{align-items:center;border:1px solid var(--border);border-radius:6px;cursor:pointer;display:flex;gap:10px;padding:8px 12px}.theme-toggle input{height:16px;width:16px}.textarea-wrapper{grid-gap:10px;border-radius:12px;display:grid;gap:10px;grid-template-columns:1fr 1fr;margin:20px;overflow:hidden}.textarea-header{border-bottom:1px solid var(--border);font-size:12px;font-weight:600;letter-spacing:.5px;padding:12px 16px;text-transform:uppercase}.code-input{background-color:var(--input-bg);border:none;color:var(--input-text);font-family:inherit;font-size:inherit;height:220px;line-height:1.6;outline:none;padding:16px;resize:vertical;width:100%}.diff-grid{grid-gap:2px;border:1px solid var(--border);border-radius:12px;display:grid;gap:2px;grid-template-columns:1fr 1fr;margin:20px;max-height:600px;overflow:hidden}.diff-column{max-height:500px;overflow-y:auto}.diff-header{background-color:var(--header-bg);font-size:12px;font-weight:600;letter-spacing:.5px;padding:12px 16px;position:sticky;text-transform:uppercase;top:0;z-index:1}.diff-line{border-bottom:1px solid var(--border);display:flex;font-size:13px;line-height:22px;min-height:22px;overflow-y:auto}.line-number{border-right:1px solid var(--border);flex-shrink:0;font-size:11px;padding:0 10px;text-align:right;-webkit-user-select:none;user-select:none;width:60px}.line-content{flex:1 1;overflow-x:auto;padding:0 14px;white-space:pre}.diff-line.same{background-color:var(--same)}.diff-line.added{background-color:var(--added);color:var(--added-text)}.diff-line.removed{background-color:var(--removed);color:var(--removed-text)}.diff-line.empty{background-color:var(--empty);color:var(--empty-text)}.stats{display:flex;flex-wrap:wrap;font-size:13px;gap:20px;padding:16px 20px}.stat{align-items:center;display:flex;gap:6px}.dot{border-radius:50%;display:inline-block;height:8px;width:8px}.dot.same{background-color:var(--same)}.dot.added{background-color:var(--added)}.dot.removed{background-color:var(--removed)}.empty-state{font-size:16px;opacity:.6;padding:60px 20px;text-align:center}.diff-container.light{--border:#ddd;--same:#fff;--added:#d4edda;--added-text:#267f00;--removed:#f8d7da;--removed-text:#b31d28;--empty:#f8f9fa;--empty-text:#999;--header-bg:#f5f5f5;--input-bg:#fafafa;--input-text:#333}.diff-container.dark{--border:#333;--same:#2d2d2d;--added:#1e4d3e;--added-text:#b5f4cb;--removed:#4d1e1e;--removed-text:#f4b5b5;--empty:#3a3a3a;--empty-text:#777;--header-bg:#252525;--input-bg:#2d2d2d;--input-text:#e0e0e0}.transcribe-container{margin:0 auto;max-width:800px;padding:2rem}.transcribe-title,.upload-section{margin-bottom:2rem;text-align:center}.upload-section{border:2px dashed #ccc;border-radius:8px;padding:2rem}.file-input-label{cursor:pointer}.file-input{margin-bottom:1rem}.file-formats{color:#666;font-size:.9em}.pdf-info{color:#888;font-size:.8em}.webcam-section{border:2px solid #e0e0e0;border-radius:8px;margin-bottom:2rem;padding:2rem;text-align:center}.webcam-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem}.webcam-header h3{margin:0}.webcam-toggle-btn{background-color:#6c757d;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:.9em;padding:.5rem 1rem;transition:background-color .2s}.webcam-toggle-btn:hover{background-color:#5a6268}.webcam-toggle-btn.active{background-color:#dc3545}.webcam-toggle-btn.active:hover{background-color:#c82333}.webcam-error{color:red;margin-bottom:1rem}.webcam{border:1px solid #ddd;border-radius:4px;margin-bottom:1rem}.capture-btn{background-color:#007bff;border:none;border-radius:4px;color:#fff;cursor:pointer;padding:.5rem 1rem}.capture-btn.disabled{background-color:#ccc;cursor:not-allowed}.loading-section{background-color:#f8f9fa;border-radius:4px;margin-bottom:2rem;padding:1rem;text-align:center}.progress-bar{background-color:#e0e0e0;border-radius:4px;height:8px;overflow:hidden;width:100%}.progress-fill{background-color:#007bff;height:100%;transition:width .3s ease}.results-section{border:1px solid #ddd;border-radius:4px;margin-bottom:2rem;padding:1rem}.results-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem}.results-title{margin:0}.results-actions{display:flex;gap:.5rem}.play-btn{background-color:#17a2b8;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:.8em;padding:.25rem .5rem;transition:background-color .2s}.play-btn:hover{background-color:#138496}.play-btn.playing{background-color:#dc3545}.play-btn.playing:hover{background-color:#c82333}.play-btn:disabled{background-color:#6c757d;cursor:not-allowed}.copy-btn{background-color:#28a745}.clear-btn,.copy-btn{border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:.8em;padding:.25rem .5rem}.clear-btn{background-color:#6c757d}.extracted-text{border:1px solid #e9ecef;border-radius:4px;color:#333;font-size:.9em;line-height:1.4;max-height:400px;overflow:auto;padding:1rem;white-space:pre-wrap}.text-stats{color:#666;font-size:.8em;margin-top:1rem}.error-section{background-color:#f8d7da;border:1px solid #f5c6cb;border-radius:4px;color:#dc3545;margin-bottom:1rem;padding:.75rem}.instructions-section{background-color:#f8f9fa;border:1px solid #e9ecef;border-radius:4px;color:#666;font-size:.9em;padding:1rem}.instructions-title{margin-top:0}.instructions-list{margin-bottom:0}
/*# sourceMappingURL=main.4cf72cf0.css.map*/