.content[data-v-0b0285cc]{display:flex;flex-direction:column;align-items:center;gap:.75rem;width:var(--page-width)}.name[data-v-0b0285cc]{font-size:1.25rem;font-weight:700;cursor:pointer;text-decoration:none;color:#000}.panda-placeholder[data-v-0b0285cc]{opacity:0;visibility:hidden}.panda[data-v-0b0285cc]{opacity:0;transition:opacity .3s ease}.name:hover .panda[data-v-0b0285cc]{opacity:1}hr[data-v-0b0285cc]{border:none;border-top:1px solid rgba(0,0,0,.35);width:var(--page-width)}nav[data-v-0b0285cc]{display:flex;gap:1.5rem}nav a[data-v-0b0285cc]{color:#888;cursor:pointer;text-decoration:none;font-size:1.1rem;font-weight:500}nav a.router-link-exact-active[data-v-0b0285cc]{color:#000}nav a[data-v-0b0285cc]:not(.router-link-exact-active):hover{color:#111;text-decoration:underline;text-decoration-color:#00000059;text-underline-offset:5px}.bio-wrapper[data-v-bbf68081]{width:var(--page-width);margin-top:.5rem}.bio-wrapper[data-v-bbf68081]:after{content:"";display:table;clear:both}.bio[data-v-bbf68081]{padding-top:2rem}.ascii[data-v-bbf68081]{float:left;margin:0 1.5rem .5rem 0;font-family:monospace;font-size:1rem;line-height:1.2;color:#555}.bio p[data-v-bbf68081]{font-size:1rem;color:#333;line-height:1.6;margin-bottom:.6rem}.bio p[data-v-bbf68081]:last-child{margin-bottom:0}.bio a[data-v-bbf68081]{color:#000;font-weight:500;text-decoration:underline;text-decoration-color:#00000059;text-underline-offset:5px}.bio a[data-v-bbf68081]:hover{text-decoration-color:#000000b3}@media (max-width: 480px){.ascii[data-v-bbf68081]{float:none;display:block;margin:0 0 1rem;font-size:.7rem}}.page[data-v-66f91e14]{width:var(--page-width);display:flex;flex-direction:column;gap:1.5rem}h2[data-v-66f91e14]{font-size:1rem;font-weight:700;margin-bottom:.4rem;color:#000}ul[data-v-66f91e14]{list-style:none;padding-left:1.1rem;display:flex;flex-direction:column;gap:.3rem}li[data-v-66f91e14]{font-size:1rem;color:#333;line-height:1.6}li[data-v-66f91e14]:before{content:"▸";margin-right:.6rem;margin-left:-1.1rem;color:#000;font-size:.7rem;vertical-align:middle;position:relative;top:-3px}.toggle[data-v-66f91e14]{cursor:pointer;text-decoration:underline;text-decoration-color:#00000059;text-underline-offset:5px;font-weight:500}.toggle[data-v-66f91e14]:hover{text-decoration-color:#000000b3}.dropdown[data-v-66f91e14]{margin-top:.4rem;margin-left:.1rem;padding:.5rem .75rem;border-left:2px solid rgba(0,0,0,.15);color:#555;font-size:.95rem}.dropdown p[data-v-66f91e14]{margin:0;line-height:1.6}.muted[data-v-66f91e14]{color:#888}.label[data-v-66f91e14]{font-weight:600}.cv-note[data-v-66f91e14]{font-size:1rem;color:#555;line-height:1.6}.cv-note a[data-v-66f91e14]{color:#000;font-weight:500;text-decoration:underline;text-decoration-color:#00000059;text-underline-offset:5px}.cv-note a[data-v-66f91e14]:hover{text-decoration-color:#000000b3}.page[data-v-78a817ac]{width:var(--page-width);display:flex;flex-direction:column;gap:1.5rem}.projects[data-v-78a817ac]{display:flex;flex-direction:column;gap:1.8rem}.project-header[data-v-78a817ac]{display:flex;align-items:baseline;gap:.75rem;flex-wrap:wrap}.project-title[data-v-78a817ac]{font-size:1rem;font-weight:500;color:#000;text-decoration:underline;text-decoration-color:#00000059;text-underline-offset:5px;cursor:pointer}.project-title[data-v-78a817ac]:hover{text-decoration-color:#000000b3}.project-date[data-v-78a817ac]{font-size:.85rem;color:#888}.project-desc[data-v-78a817ac]{margin-top:.25rem;font-size:.85rem;color:#999;line-height:1.5}.page[data-v-d50340b1]{width:var(--page-width);display:flex;flex-direction:column;gap:1.5rem}.tags[data-v-d50340b1]{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}.tag[data-v-d50340b1]{padding:.25rem .65rem;border-radius:999px;border:1px solid transparent;font-size:.85rem;cursor:pointer;background:#f0f0f0;color:#555;transition:opacity .15s;font-family:inherit;font-weight:500}.tag[data-v-d50340b1]:hover{opacity:.75}.tags-label[data-v-d50340b1]{font-size:.85rem;color:#888}.tag.all[data-v-d50340b1]{background:#e8e8e8;color:#444}.tag.quant[data-v-d50340b1]{background:#d4e8fb;color:#2a5f8a}.tag.coding[data-v-d50340b1]{background:#d6f0e0;color:#2a6644}.tag.review[data-v-d50340b1]{background:#f5dff5;color:#7a3d7a}.tag.active[data-v-d50340b1]{border-color:currentColor}.posts[data-v-d50340b1]{display:flex;flex-direction:column;gap:1.8rem}.post-header[data-v-d50340b1]{display:flex;align-items:baseline;gap:.75rem;flex-wrap:wrap}.post-title[data-v-d50340b1]{font-size:1rem;font-weight:500;color:#000;text-decoration:underline;text-decoration-color:#00000059;text-underline-offset:5px;cursor:pointer}.post-title[data-v-d50340b1]:hover{text-decoration-color:#000000b3}.post-date[data-v-d50340b1]{font-size:.85rem;color:#888}.post-desc[data-v-d50340b1]{margin-top:.25rem;font-size:.85rem;color:#999;line-height:1.5}.post-tag[data-v-d50340b1]{font-size:.75rem;padding:.15rem .5rem;border-radius:999px;position:relative;top:-2px}.post-tag.quant[data-v-d50340b1]{background:#d4e8fb;color:#2a5f8a}.post-tag.coding[data-v-d50340b1]{background:#d6f0e0;color:#2a6644}.post-tag.review[data-v-d50340b1]{background:#f5dff5;color:#7a3d7a}.muted[data-v-d50340b1]{font-size:.9rem;color:#aaa}.page[data-v-e95d7d65]{width:var(--page-width);display:flex;flex-direction:column;gap:2.5rem}.month-label[data-v-e95d7d65]{font-size:.9rem;font-weight:500;color:#888;margin-bottom:.5rem}.calendar[data-v-e95d7d65]{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.day-header[data-v-e95d7d65]{font-size:.7rem;color:#bbb;text-align:center;padding-bottom:.25rem;font-weight:500}.cell[data-v-e95d7d65]{aspect-ratio:1;border:1px solid rgba(0,0,0,.08);border-radius:4px;display:flex;flex-direction:column;align-items:flex-start;padding:.25rem;position:relative;overflow:hidden;background:#fafafa}.cell.empty[data-v-e95d7d65]{background:transparent;border-color:transparent}.cell.today[data-v-e95d7d65]{border-color:#00000059}.cell.has-photo[data-v-e95d7d65]{cursor:pointer;border-color:transparent}.cell.has-photo[data-v-e95d7d65]:hover{border-color:#00000080}.day-num[data-v-e95d7d65]{font-size:.65rem;color:#ccc;font-weight:500;line-height:1;z-index:1}.cell.today .day-num[data-v-e95d7d65]{color:#000}.thumb[data-v-e95d7d65]{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;opacity:.85}.lightbox[data-v-e95d7d65]{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.6);display:flex;align-items:center;justify-content:center;z-index:100}.lightbox-inner[data-v-e95d7d65]{background:#fff;border-radius:6px;padding:1.5rem;display:flex;flex-direction:column;align-items:center;gap:.75rem;max-width:min(90vw,32rem);position:relative}.lightbox-inner img[data-v-e95d7d65]{width:100%;border-radius:4px}.lightbox-date[data-v-e95d7d65]{font-size:.8rem;color:#aaa;text-align:center}.lightbox-caption[data-v-e95d7d65]{font-size:.85rem;color:#555;text-align:center;line-height:1.5}.close[data-v-e95d7d65]{position:absolute;top:.75rem;right:.75rem;background:none;border:none;font-size:1rem;cursor:pointer;color:#888;font-family:inherit}.close[data-v-e95d7d65]:hover{color:#000}.nav-btn[data-v-e95d7d65]{position:absolute;top:50%;transform:translateY(-50%);background:none;border:none;font-size:1.5rem;cursor:pointer;color:#888;font-family:inherit;padding:0 .25rem;line-height:1}.nav-btn[data-v-e95d7d65]:hover{color:#000}.nav-btn.prev[data-v-e95d7d65]{left:-1.5rem}.nav-btn.next[data-v-e95d7d65]{right:-1.5rem}.muted[data-v-e95d7d65]{font-size:.9rem;color:#aaa}.page[data-v-42a8c90b]{width:var(--page-width);display:flex;flex-direction:column;gap:1.5rem}.tags[data-v-42a8c90b]{display:flex;gap:.5rem;flex-wrap:wrap}.tags-label[data-v-42a8c90b]{font-size:.85rem;color:#888;align-self:center}.tag[data-v-42a8c90b]{padding:.25rem .65rem;border-radius:999px;border:1px solid transparent;font-size:.85rem;cursor:pointer;background:#f0f0f0;color:#555;transition:opacity .15s}.tag[data-v-42a8c90b]:hover{opacity:.75}.tag.all[data-v-42a8c90b]{background:#e8e8e8;color:#444}.tag.guitar[data-v-42a8c90b]{background:#fde8d4;color:#8a4a2a}.tag.climbing[data-v-42a8c90b]{background:#d6f0e0;color:#2a6644}.tag.active[data-v-42a8c90b]{border-color:currentColor;opacity:1}.grid[data-v-42a8c90b]{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem}.reel-card[data-v-42a8c90b]{display:flex;flex-direction:column;gap:.5rem}.reel-cover[data-v-42a8c90b]{display:block;position:relative;width:100%;aspect-ratio:9 / 16;background:#f0f0f0;border-radius:10px;overflow:hidden;text-decoration:none}.reel-cover iframe[data-v-42a8c90b]{position:absolute;top:-54px;left:-22.5%;width:145%;height:calc(100% + 54px);border:none;pointer-events:none}.mask-bottom[data-v-42a8c90b]{position:absolute;left:0;right:0;bottom:0;height:0px;background:#fff;z-index:1;pointer-events:none}.reel-footer[data-v-42a8c90b]{display:flex;flex-direction:column;gap:.2rem;margin-top:4px;position:relative;z-index:2}.reel-meta[data-v-42a8c90b]{display:flex;align-items:center;gap:.5rem}.reel-title[data-v-42a8c90b]{font-size:.85rem;font-weight:500;color:#222}.reel-date[data-v-42a8c90b]{font-size:.8rem;color:#aaa}.reel-tag[data-v-42a8c90b]{font-size:.75rem;padding:.15rem .5rem;border-radius:999px;white-space:nowrap}.reel-tag.guitar[data-v-42a8c90b]{background:#fde8d4;color:#8a4a2a}.reel-tag.climbing[data-v-42a8c90b]{background:#d6f0e0;color:#2a6644}.page[data-v-7142f19a]{width:var(--page-width);display:flex;flex-direction:column;gap:1.25rem}.admin-header[data-v-7142f19a]{display:flex;align-items:baseline;justify-content:space-between}.section-title[data-v-7142f19a]{font-size:1rem;font-weight:700}.signout[data-v-7142f19a]{font-size:.8rem;color:#aaa;background:none;border:none;cursor:pointer;font-family:inherit}.signout[data-v-7142f19a]:hover{color:#000}.login[data-v-7142f19a],.form[data-v-7142f19a]{display:flex;flex-direction:column;gap:.6rem}.tabs[data-v-7142f19a]{display:flex;gap:1rem}.tabs button[data-v-7142f19a]{background:none;border:none;font-family:inherit;font-size:.95rem;color:#888;cursor:pointer;padding:0;font-weight:500}.tabs button.active[data-v-7142f19a]{color:#000;text-decoration:underline;text-underline-offset:4px}input[data-v-7142f19a],textarea[data-v-7142f19a],select[data-v-7142f19a]{font-family:inherit;font-size:.95rem;font-weight:500;border:1px solid rgba(0,0,0,.2);border-radius:4px;padding:.5rem .65rem;width:100%;outline:none;color:#000}input[data-v-7142f19a]:focus,textarea[data-v-7142f19a]:focus,select[data-v-7142f19a]:focus{border-color:#00000080}textarea[data-v-7142f19a]{resize:vertical}button[type=submit][data-v-7142f19a],.login button[data-v-7142f19a]{font-family:inherit;font-size:.95rem;font-weight:500;background:#000;color:#fff;border:none;border-radius:4px;padding:.5rem 1rem;cursor:pointer;align-self:flex-start}button[type=submit][data-v-7142f19a]:disabled,.login button[data-v-7142f19a]:disabled{opacity:.5;cursor:default}.msg[data-v-7142f19a]{font-size:.85rem;color:#888}.error[data-v-7142f19a]{font-size:.85rem;color:#c00}.duplicate[data-v-7142f19a]{display:flex;flex-direction:column;gap:.5rem}.duplicate p[data-v-7142f19a]{font-size:.85rem;color:#888}.duplicate-actions[data-v-7142f19a]{display:flex;gap:.5rem}.duplicate-actions button[data-v-7142f19a]{font-family:inherit;font-size:.9rem;font-weight:500;border:none;border-radius:4px;padding:.4rem .9rem;cursor:pointer;background:#000;color:#fff}.duplicate-actions button.cancel[data-v-7142f19a]{background:#f0f0f0;color:#555}:root{--page-width: min(35rem, 100%)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}::selection{background:#fff2cc}body{font-family:Manrope,sans-serif;background:#fff;color:#000;font-weight:400}.container{display:flex;justify-content:center;padding:4rem 1.5rem 2rem}.page{width:var(--page-width);margin-top:1rem}
