.dropdown{position:relative;display:inline-block}.dropdown-button{background:transparent;border:none;padding:.6rem 1rem;font-family:var(--font-mono);font-size:.78rem;font-weight:500;text-transform:uppercase;letter-spacing:.12em;cursor:pointer;display:flex;align-items:center;gap:.5rem;transition:color .2s ease;color:var(--text)}.dropdown-button:hover{background-color:none}.dropdown-button .icon{transition:transform .3s ease}.dropdown-button .icon.rotate{transform:rotate(180deg)}.dropdown-content{position:absolute;background:var(--surface);border:1px solid var(--border-subtle);border-radius:4px;box-shadow:0 4px 12px #0000000f;list-style:none;padding:.4rem 0;margin:0;z-index:1000;min-width:180px;animation:fadeIn .2s ease}.dropdown-content li{padding:0}.dropdown-content a{display:block;padding:.6rem 1rem;font-family:var(--font-mono);font-size:.78rem;font-weight:500;text-transform:uppercase;letter-spacing:.12em;color:var(--text);text-decoration:none;transition:background-color .15s ease,color .15s ease}.dropdown-content a:hover{background-color:#0c0c0c0a;color:var(--accent)}@keyframes fadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.navbar{position:absolute;top:0;left:0;width:100%;padding:1.5rem 3rem;display:flex;justify-content:space-evenly;align-items:center;background-color:transparent;z-index:1000}.navbar-on-hero .dropdown-button{color:#fff}.navbar-on-hero .hamburger span{background-color:#fff}.navbar-on-hero .navbar-links.open .dropdown-button{color:var(--text)}.navbar-on-hero .hamburger.active span{background-color:var(--text)}.navbar-links{display:flex;gap:2rem;align-items:center}.hamburger{display:none}@media(max-width:768px){.navbar{justify-content:flex-end}.hamburger{display:none;position:relative;width:30px;height:22px;cursor:pointer;display:flex;flex-direction:column;justify-content:space-between;background:transparent;border:none;padding:0;z-index:1100}.hamburger span{height:4px;background-color:var(--text);border-radius:2px;transition:all .3s ease}.hamburger.active span:nth-child(1){transform:translateY(9px) rotate(45deg)}.hamburger.active span:nth-child(2){opacity:0}.hamburger.active span:nth-child(3){transform:translateY(-9px) rotate(-45deg)}.navbar-links{position:fixed;top:0;left:0;height:100vh;width:100vw;background-color:var(--bg);flex-direction:column;justify-content:center;align-items:center;gap:2.5rem;transform:translate(100%);transition:transform .3s ease;z-index:999}.navbar-links.open{transform:translate(0)}.navbar-links a,.navbar-links button{font-size:1.5rem;text-decoration:none}}.social-icons{display:flex;flex-direction:row;align-items:center;gap:18px;margin:0}.icon{font-size:18px;color:var(--text-muted);transition:color .2s ease,transform .2s ease;cursor:pointer;display:inline-flex}.icon:hover{transform:translateY(-1px)}.icon.youtube:hover{color:red}.icon.github:hover{color:var(--text)}.icon.spotify:hover{color:#1db954}.hero{height:100vh;background:url() center center/cover no-repeat;display:flex;align-items:center;justify-content:center;text-align:center;position:relative;color:#fff}.hero h1{font-size:5rem;margin-bottom:.5rem}.hero p{font-size:1.25rem;margin-bottom:2rem}.hero:after{content:"";position:absolute;inset:0;background:#0006;z-index:0}.hero-content{z-index:1}.hero-button{display:inline-block;margin-top:1rem;padding:.75rem 1.5rem;border-radius:6px;background:#fff;color:#111;text-decoration:none;font-weight:700;transition:background .3s ease}.footer{background-color:var(--bg);border-top:1px solid var(--border-subtle);padding:.85rem 2rem}.footer-inner{max-width:1200px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.footer-copy{font-family:var(--font-mono);font-size:.72rem;font-weight:500;text-transform:uppercase;letter-spacing:.14em;color:var(--text-muted);margin:0}.footer-right{display:flex;align-items:center;gap:1.5rem}.footer-email{font-family:var(--font-mono);font-size:.72rem;font-weight:500;letter-spacing:.08em;color:var(--text-muted);text-decoration:none;transition:color .2s ease}.footer-email:hover{color:var(--accent)}@media(max-width:700px){.footer-inner{justify-content:center;text-align:center}.footer-right{flex-direction:column;gap:.6rem}}.not-found{display:flex;flex-direction:column;align-items:center;justify-content:center;height:80vh;text-align:center;color:#666}.not-found h1{font-size:6rem;margin-bottom:1rem}.not-found a{margin-top:2rem;color:#00aced;text-decoration:none;font-weight:700}.thumbnail{display:block;width:100%;border-radius:12px;overflow:hidden;background-color:var(--surface);text-decoration:none;color:var(--text);transition:transform .25s ease,box-shadow .25s ease}.thumbnail img{display:block;width:100%;height:auto;object-fit:contain}.gallery-grid.square .thumbnail img{aspect-ratio:1 / 1;height:auto;object-fit:cover}.gallery-grid.text .thumbnail img{display:none}.gallery-grid.text .thumbnail{border:1px solid var(--border-subtle);border-radius:4px;transition:border-color .2s ease}.gallery-grid.text .thumbnail-text{padding:1.5rem}.gallery-grid.text .thumbnail-title{font-family:var(--font-display);font-size:1.5rem;font-weight:500;letter-spacing:-.01em;margin:0 0 .5rem}.gallery-grid.text .thumbnail-description{font-family:var(--font-sans);font-size:.95rem;line-height:1.5;color:var(--text-muted);opacity:1}.gallery-grid.text .thumbnail:hover{transform:none;box-shadow:none;border-color:var(--accent)}.thumbnail-text{padding:12px}.thumbnail-title{font-size:1rem;margin:0 0 4px}.thumbnail-description{font-size:.85rem;opacity:.8}.thumbnail:hover{transform:translateY(-2px);box-shadow:0 12px 30px #0000001a}.gallery-wrapper{min-height:100vh;padding:32px;background-color:var(--bg)}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem;padding:1rem}@media(max-width:768px){.gallery-wrapper{padding:0}.gallery-grid{display:flex;overflow-x:auto;gap:1rem;padding:1rem;scroll-snap-type:x mandatory}.gallery-grid>*{flex:0 0 80%;scroll-snap-align:start}.gallery-grid::-webkit-scrollbar{display:none}.gallery-grid{-ms-overflow-style:none;scrollbar-width:none}.gallery-grid.text{display:flex;flex-direction:column;overflow-x:visible;scroll-snap-type:none}.gallery-grid.text>*{flex:0 0 auto}}.tool-page{padding:7rem 2rem 4rem;min-height:100vh;background-color:var(--bg);color:var(--text)}.tool-page-header{max-width:900px;margin:0 auto 3rem;text-align:center}.tool-page-eyebrow{font-family:var(--font-mono);font-size:.75rem;font-weight:500;letter-spacing:.15em;text-transform:uppercase;color:var(--text-muted);margin-bottom:1rem}.tool-page-title{font-family:var(--font-display);font-size:clamp(2.25rem,4.5vw,3.5rem);font-weight:500;line-height:1.05;letter-spacing:-.025em;color:var(--text)}@media(max-width:768px){.tool-page{padding:5rem 1.25rem 3rem}.tool-page-header{margin-bottom:2rem}}.rudiment-body{text-align:center}.button-rudiment{margin-top:1rem;padding:.75rem 1.75rem;font-family:var(--font-mono);font-size:.8rem;font-weight:500;text-transform:uppercase;letter-spacing:.12em;cursor:pointer;background-color:var(--accent);color:#fff;border:none;border-radius:2px;transition:background-color .2s}.button-rudiment:hover{background-color:var(--accent-hover)}.sequence-output-rudiment{margin-top:2rem;font-family:var(--font-mono);font-size:1.5rem;background-color:var(--surface);padding:1rem 2rem;border:1px solid var(--border-subtle);border-radius:4px;display:inline-block;word-wrap:break-word}.sequence-output-rudiment span.S1,.sequence-output-rudiment span.S2,.sequence-output-rudiment span.S3,.sequence-output-rudiment span.S4{color:#f1c40f;font-weight:700}.sequence-output-rudiment span.D1,.sequence-output-rudiment span.D2,.sequence-output-rudiment span.D3,.sequence-output-rudiment span.D4{color:#3498db;font-weight:700}.sequence-output-rudiment span.P1,.sequence-output-rudiment span.P2,.sequence-output-rudiment span.P3,.sequence-output-rudiment span.P4{color:#e67e22;font-weight:700}.sequence-output-rudiment span.Dr{color:#22e69e;font-weight:700}.sequence-output-rudiment span.Fl{color:#478c4a;font-weight:700}.legend-rudiment{margin-top:2rem;max-width:800px;margin-left:auto;margin-right:auto;background-color:var(--surface);padding:1.5rem 2rem;border:1px solid var(--border-subtle);border-radius:4px;display:grid;grid-template-columns:repeat(2,1fr);column-gap:2rem;row-gap:.5rem}.legend-rudiment h2{grid-column:span 2;text-align:center;margin-top:0;color:var(--text)}.legend-rudiment ul{grid-column:span 2;list-style-type:none;padding-left:0;margin:0;display:grid;grid-template-columns:1fr 1fr;column-gap:2rem;row-gap:.5rem}.legend-rudiment li{margin-bottom:.5rem;text-align:left}.checkbox-label{display:inline-flex;align-items:center;cursor:pointer;font-size:1rem;-webkit-user-select:none;user-select:none;margin-bottom:1rem}.rudiment-body input[type=checkbox]{appearance:none;-webkit-appearance:none;width:20px;height:20px;border:2px solid var(--border-subtle);border-radius:4px;margin-right:.5rem;background-color:transparent;position:relative;cursor:pointer;transition:all .2s}.rudiment-body input[type=checkbox]:hover{background-color:var(--accent-hover)}.rudiment-body input[type=checkbox]:checked{background-color:var(--accent);border-color:var(--accent)}.handind-body{text-align:center}.left-pattern-input{margin:1rem 0}.left-pattern-input input{padding:.5rem;font-family:var(--font-mono);font-size:1rem;border-radius:2px;border:1px solid var(--border-subtle);background-color:var(--surface);color:var(--text);margin-left:.5rem;width:300px}.handind-button{margin-top:1rem;padding:.75rem 1.75rem;font-family:var(--font-mono);font-size:.8rem;font-weight:500;text-transform:uppercase;letter-spacing:.12em;cursor:pointer;background-color:var(--accent);border:none;border-radius:2px;color:#fff;transition:background-color .2s}.handind-button:hover{background-color:var(--accent-hover)}.handind-sequence{margin-top:2rem;display:flex;flex-direction:column;gap:2rem}.bar{background-color:var(--surface);padding:1rem;border:1px solid var(--border-subtle);border-radius:4px}.bar-title{font-weight:700;margin-bottom:.5rem;text-align:left}.hand-row{display:flex;align-items:center;margin-bottom:.5rem}.hand-label{width:120px;font-weight:700;text-align:left}.hand-notes{display:flex;gap:.25rem;flex-wrap:wrap}.note{width:20px;height:20px;border-radius:4px;display:flex;align-items:center;justify-content:center;font-size:.75rem;color:#fff}.left-note{background-color:#3498db}.right-note{background-color:#f1c40f}.note.rest{background-color:#222}.note.accent{background-color:#e74c3c;font-weight:700}.note.ghost{background-color:#888;opacity:.5}.probabilities-input{margin:1rem auto;text-align:left;max-width:500px;padding:1rem;background-color:var(--surface);border:1px solid var(--border-subtle);border-radius:4px;color:var(--text)}.probabilities-input h3{text-align:center;margin-bottom:1rem}.probability-input-row{display:flex;justify-content:center;gap:.5rem;margin-bottom:.5rem}.probability-input-row label{width:20px}.probability-input-row input{width:60px;padding:.2rem;font-family:var(--font-mono);border-radius:2px;border:1px solid var(--border-subtle);background-color:var(--surface);color:var(--text);text-align:right}.probability-input-row span{width:20px}.form-compound{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;max-width:800px;margin:0 auto;background-color:var(--surface);padding:1.5rem;border:1px solid var(--border-subtle);border-radius:4px}.field-compound{display:flex;flex-direction:column;align-items:flex-start;text-align:left}.field-compound label{font-family:var(--font-mono);font-size:.72rem;font-weight:500;text-transform:uppercase;letter-spacing:.12em;color:var(--text-muted);margin-bottom:.5rem}.field-compound input,.field-compound select{width:100%;padding:.5rem .75rem;font-family:var(--font-sans);font-size:1rem;border:1px solid var(--border-subtle);border-radius:2px;background-color:var(--surface);color:var(--text);box-sizing:border-box}.field-compound input:focus,.field-compound select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px #2a4d4c40}.button-compound{grid-column:1 / -1;justify-self:center;margin-top:.5rem;padding:.75rem 1.75rem;font-family:var(--font-mono);font-size:.8rem;font-weight:500;text-transform:uppercase;letter-spacing:.12em;cursor:pointer;background-color:var(--accent);color:#fff;border:none;border-radius:2px;transition:background-color .2s}.button-compound:hover{background-color:var(--accent-hover)}.results-compound{margin-top:2rem;max-width:900px;margin-left:auto;margin-right:auto}.summary-compound{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;background-color:var(--surface);padding:1.5rem;border:1px solid var(--border-subtle);border-radius:4px}.summary-item{display:flex;flex-direction:column;align-items:center;padding:.5rem}.summary-label{font-family:var(--font-mono);font-size:.72rem;font-weight:500;text-transform:uppercase;letter-spacing:.12em;color:var(--text-muted);margin-bottom:.5rem}.summary-value{font-family:var(--font-mono);font-size:1.5rem;font-weight:500;color:var(--text)}.schedule-compound{margin-top:2rem;background-color:var(--surface);padding:1.5rem;border:1px solid var(--border-subtle);border-radius:4px}.schedule-compound h2{margin-top:0;color:var(--text)}.table-wrapper-compound{overflow-x:auto}.schedule-compound table{width:100%;border-collapse:collapse;color:var(--text)}.schedule-compound td{font-family:var(--font-mono);font-size:.9rem}.schedule-compound th,.schedule-compound td{padding:.5rem .75rem;border-bottom:1px solid var(--border-subtle);text-align:right}.schedule-compound th:first-child,.schedule-compound td:first-child{text-align:left}.schedule-compound th{color:var(--text);font-weight:700;text-transform:uppercase;font-size:.8rem;letter-spacing:.05em}.schedule-compound tbody tr:hover{background-color:#1f2e290d}.controls-poly{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1rem;max-width:700px;margin:0 auto;background-color:var(--surface);padding:1.25rem 1.5rem;border:1px solid var(--border-subtle);border-radius:4px;align-items:end}.field-poly{display:flex;flex-direction:column;align-items:flex-start;text-align:left}.field-poly label{font-family:var(--font-mono);font-size:.72rem;font-weight:500;text-transform:uppercase;letter-spacing:.12em;color:var(--text-muted);margin-bottom:.5rem}.field-poly input,.field-poly select{width:100%;padding:.5rem .75rem;font-family:var(--font-sans);font-size:1rem;border:1px solid var(--border-subtle);border-radius:2px;background-color:var(--surface);color:var(--text);box-sizing:border-box}.field-poly input:focus,.field-poly select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px #2a4d4c40}.button-poly{padding:.6rem 1.5rem;font-family:var(--font-mono);font-size:.8rem;font-weight:500;text-transform:uppercase;letter-spacing:.12em;cursor:pointer;background-color:var(--accent);color:#fff;border:none;border-radius:2px;transition:background-color .2s;height:42px}.button-poly:hover{background-color:var(--accent-hover)}.presets-poly{margin:1rem auto 0;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:.5rem;color:var(--text-muted);font-family:var(--font-mono);font-size:.72rem;font-weight:500;text-transform:uppercase;letter-spacing:.12em}.preset-poly{padding:.35rem .75rem;font-family:var(--font-mono);font-size:.85rem;cursor:pointer;background-color:#1f2e290d;color:var(--text);border:none;border-radius:4px;transition:all .15s}.preset-poly:hover{background-color:var(--border-subtle);transform:translateY(-1px)}.svg-poly{width:100%;max-width:460px;height:auto;margin:1.5rem auto 0;display:block;background-color:var(--surface);border:1px solid var(--border-subtle);border-radius:4px}.legend-poly{margin-top:1rem;display:flex;flex-direction:column;align-items:center;gap:.4rem;color:var(--text);font-family:var(--font-mono);font-size:.85rem}.legend-poly>div{display:flex;align-items:center;gap:.5rem}.dot-poly{display:inline-block;width:14px;height:14px;border-radius:50%;border:1px solid rgba(0,0,0,.2)}.metronome-body{max-width:480px;margin:0 auto;display:flex;flex-direction:column;align-items:center;gap:1.5rem}.metro-section{width:100%;display:flex;flex-direction:column;align-items:center;gap:1.25rem}.metro-divider{width:100%;border:none;border-top:1px solid var(--border-subtle);margin:0}.beat-row{display:flex;gap:1rem;justify-content:center;align-items:center;min-height:40px}.beat-dot{width:14px;height:14px;border-radius:50%;background-color:transparent;border:1px solid var(--border-subtle);transition:background-color .05s ease,transform .05s ease,border-color .05s ease}.beat-dot.downbeat{border-color:var(--text-muted)}.beat-dot.active{background-color:var(--accent);border-color:var(--accent);transform:scale(1.4)}.bpm-display{display:flex;flex-direction:column;align-items:center;gap:.35rem}.bpm-value{font-family:var(--font-mono);font-size:4.5rem;font-weight:500;line-height:1;color:var(--text);font-variant-numeric:tabular-nums;background:transparent;border:none;text-align:center;width:4ch;padding:0;cursor:text;-moz-appearance:textfield}.bpm-value::-webkit-outer-spin-button,.bpm-value::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.bpm-value:focus{outline:none;color:var(--accent)}.bpm-row{width:100%;display:flex;align-items:center;gap:.85rem}.bpm-row-label{font-family:var(--font-mono);font-size:.72rem;font-weight:500;text-transform:uppercase;letter-spacing:.12em;color:var(--text-muted);min-width:60px}.bpm-slider{flex:1;accent-color:var(--accent);cursor:pointer}.tones-row{width:100%;display:flex;align-items:end;gap:1rem;margin-top:.25rem}.tones-row .field-metronome{flex:1;min-width:0}.tones-row select,.tones-row input[type=number]{width:100%;min-width:0}.time-sig-field input[type=number]{padding:.5rem .75rem;font-family:var(--font-mono);font-size:1rem;font-variant-numeric:tabular-nums;border:1px solid var(--border-subtle);border-radius:2px;background-color:var(--surface);color:var(--text);height:42px;text-align:center}.time-sig-field input[type=number]:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px #1a4d4c33}.volume-row{width:100%;display:flex;align-items:center;gap:.85rem}.volume-label{font-family:var(--font-mono);font-size:.72rem;font-weight:500;text-transform:uppercase;letter-spacing:.12em;color:var(--text-muted);min-width:60px}.volume-slider{flex:1;accent-color:var(--accent);cursor:pointer}.volume-value{font-family:var(--font-mono);font-size:.85rem;font-variant-numeric:tabular-nums;color:var(--text);min-width:28px;text-align:right}.field-metronome{display:flex;flex-direction:column;align-items:flex-start}.field-metronome label{font-family:var(--font-mono);font-size:.72rem;font-weight:500;text-transform:uppercase;letter-spacing:.12em;color:var(--text-muted);margin-bottom:.5rem}.field-metronome select{padding:.5rem .75rem;font-family:var(--font-sans);font-size:1rem;border:1px solid var(--border-subtle);border-radius:2px;background-color:var(--surface);color:var(--text);min-width:140px;height:42px}.field-metronome select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px #1a4d4c33}.button-metronome{padding:0 1.75rem;font-family:var(--font-mono);font-size:.8rem;font-weight:500;text-transform:uppercase;letter-spacing:.12em;cursor:pointer;background-color:var(--accent);color:#fff;border:none;border-radius:2px;transition:background-color .2s ease;height:42px;min-width:100px}.button-metronome:hover{background-color:var(--accent-hover)}@keyframes playerFadeUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.player.animate-in{animation:playerFadeUp .6s ease-out forwards}.player{padding:2rem;max-width:1000px;margin:0 auto;border:1px solid var(--border-subtle);border-radius:4px;background-color:var(--surface);color:var(--text)}.player-columns{display:flex;gap:2.5rem;align-items:flex-start}.left-column{flex:1;text-align:center}.right-column{flex:1}.header-text h2{font-family:var(--font-display);font-size:1.75rem;letter-spacing:-.015em;margin:0 0 .35rem}.header-text p{font-family:var(--font-mono);font-size:.72rem;font-weight:500;text-transform:uppercase;letter-spacing:.14em;color:var(--text-muted);margin:0 0 1.5rem}.album-container{margin-bottom:1.5rem}.album-art{width:260px;height:260px;object-fit:cover;border-radius:2px;border:1px solid var(--border-subtle)}.song-info{margin-bottom:1rem}.song-title{font-family:var(--font-display);font-size:1.25rem;font-weight:500;margin:0}.controls{margin:.25rem 0 .5rem}.play-button{font-size:1.1rem;width:52px;height:52px;border-radius:50%;border:none;background-color:var(--accent);color:#fff;cursor:pointer;padding-bottom:3px;padding-left:3px;transition:background-color .2s ease}.play-button:hover{background-color:var(--accent-hover)}.play-button.pausing{padding-left:0;padding-bottom:5px}.timeline,.volume-control{display:flex;align-items:center;gap:10px;width:100%;margin-top:.75rem}.timeline .slider,.volume-control input[type=range]{flex:1;accent-color:var(--accent)}.time-label{font-family:var(--font-mono);font-size:.72rem;color:var(--text-muted);white-space:nowrap}.volume-control>span:first-child{font-size:.9rem;color:var(--text-muted)}.playlist-container{background:transparent;padding:0 0 0 1.5rem;border-left:1px solid var(--border-subtle)}.playlist-container h4{font-family:var(--font-mono);font-size:.72rem;font-weight:500;text-transform:uppercase;letter-spacing:.14em;color:var(--text-muted);margin:0 0 .75rem}.playlist-list{overflow-y:auto;max-height:440px;list-style:none;padding:0;margin:0}.playlist-item{padding:.65rem .5rem;cursor:pointer;display:flex;gap:.85rem;align-items:baseline;border-bottom:1px solid var(--border-subtle);border-left:2px solid transparent;transition:background-color .15s ease,color .15s ease,border-color .15s ease}.playlist-item:hover{background-color:#0c0c0c0a}.playlist-item.active{border-left-color:var(--accent);color:var(--accent);background-color:transparent}.song-number{font-family:var(--font-mono);font-size:.72rem;color:var(--text-muted);min-width:22px;text-align:right}.playlist-item.active .song-number{color:var(--accent)}.song-name{font-family:var(--font-sans);font-size:.95rem}@media(max-width:768px){.player-columns{flex-direction:column}.playlist-container{border-left:none;padding-left:0;border-top:1px solid var(--border-subtle);padding-top:1.5rem}}.text-section-wrapper{min-height:50vh;background-color:var(--surface);padding-left:128px;padding-right:128px;padding-top:32px;text-align:center;color:var(--text)}.lightbox-overlay{position:fixed;inset:0;background-color:#0c0c0ceb;display:flex;align-items:center;justify-content:center;z-index:1000;padding:40px 80px}.lightbox-image{max-width:100%;max-height:100%;object-fit:contain;display:block}.lightbox-close,.lightbox-nav{position:absolute;background:none;border:none;color:var(--bg);cursor:pointer;font-family:var(--font-sans);line-height:1;padding:8px 12px;opacity:.55;transition:opacity .15s ease}.lightbox-close:hover,.lightbox-nav:hover,.lightbox-close:focus-visible,.lightbox-nav:focus-visible{opacity:1;outline:none}.lightbox-close{top:16px;right:20px;font-size:32px}.lightbox-nav{top:50%;transform:translateY(-50%);font-size:48px}.lightbox-prev{left:16px}.lightbox-next{right:16px}.lightbox-counter{position:absolute;bottom:20px;left:50%;transform:translate(-50%);font-family:var(--font-mono);font-size:12px;letter-spacing:.08em;color:var(--bg);opacity:.55}@media(max-width:768px){.lightbox-overlay{padding:16px}.lightbox-nav{font-size:36px;padding:6px 8px}.lightbox-prev{left:4px}.lightbox-next{right:4px}.lightbox-close{top:8px;right:12px;font-size:28px}}.masonry-wrapper{max-width:1600px;margin:0 auto;padding:40px 20px}.my-masonry-grid{display:flex;margin-left:-25px;width:auto}.my-masonry-grid_column{padding-left:25px;background-clip:padding-box}.masonry-item{margin-bottom:25px}:root{--bg: #faf8f3;--surface: #ffffff;--alt-surface: #f5f0e6;--gradient-stop: #f0eadc;--text: #0c0c0c;--text-muted: #6b6b6b;--accent: #1a4d4c;--accent-hover: #2a6e6b;--border: #e8e3d8;--border-subtle: rgba(12, 12, 12, .08);--font-display: "IBM Plex Serif", Georgia, "Times New Roman", serif;--font-sans: "Inter", "Segoe UI", system-ui, -apple-system, sans-serif;--font-mono: "IBM Plex Mono", "JetBrains Mono", "SFMono-Regular", Menlo, Consolas, monospace}*{margin:0;padding:0;box-sizing:border-box}body{margin:0;padding:0;scroll-behavior:smooth;font-family:var(--font-sans);font-size:16px;line-height:1.6;background-color:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3{font-family:var(--font-display);font-weight:500;letter-spacing:-.02em;color:inherit}h1{font-size:clamp(2.5rem,5vw,4rem);line-height:1.05}h2{font-size:clamp(2rem,3.5vw,3rem);line-height:1.15;letter-spacing:-.025em}h3{font-size:1.25rem;line-height:1.3}code,kbd,samp,pre{font-family:var(--font-mono);font-size:.95em}
