.inbox-page{background:var(--bg-primary);grid-template-columns:240px 1fr;min-height:calc(100vh - 60px);margin-top:60px;display:grid}.inbox-sidebar{background:var(--bg-subtle);border-right:1px solid var(--border-soft);flex-direction:column;gap:.5rem;padding:1rem .5rem;transition:width .2s,padding .2s;display:flex;overflow-y:auto}.inbox-sidebar.closed{display:none}.inbox-compose-btn{background:var(--accent);color:#fff;cursor:pointer;font-size:.95rem;font-weight:600;font-family:var(--font-body);box-shadow:var(--shadow-sm);border:none;border-radius:12px;align-items:center;gap:.75rem;margin:0 .5rem .75rem;padding:.85rem 1.25rem;transition:background .15s,box-shadow .15s,transform .1s;display:flex}.inbox-compose-btn:hover{background:var(--accent-hover);box-shadow:var(--shadow-md);transform:translateY(-1px)}.compose-icon{font-size:1.3rem;line-height:1}.inbox-categories{flex-direction:column;gap:2px;display:flex}.inbox-category{color:var(--text-secondary);cursor:pointer;text-align:left;font-size:.88rem;font-family:var(--font-body);background:0 0;border:none;border-radius:0 999px 999px 0;align-items:center;gap:.75rem;margin:0 .25rem;padding:.6rem 1.25rem;transition:background .15s,color .15s;display:flex;position:relative}.inbox-category:hover{background:var(--accent-softer);color:var(--text-primary)}.inbox-category.active{background:var(--accent-soft);color:var(--accent);font-weight:600}.category-icon{text-align:center;flex-shrink:0;width:20px;font-size:1rem}.category-label{flex:1}.category-badge{color:#fff;background:#ef4444;border-radius:9px;justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 5px;font-size:.7rem;font-weight:700;display:flex}.category-badge.draft-badge{background:var(--text-tertiary)}.inbox-main{background:var(--bg-primary);flex-direction:column;min-height:0;display:flex;overflow:hidden}.inbox-page.sidebar-collapsed{grid-template-columns:1fr}.inbox-toolbar{border-bottom:1px solid var(--border-soft);background:var(--bg-primary);flex-shrink:0;align-items:center;gap:.75rem;padding:.6rem 1rem;display:flex}.inbox-hamburger{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:50%;padding:.4rem;font-size:1.2rem;line-height:1;transition:background .15s,color .15s}.inbox-hamburger:hover{background:var(--accent-softer);color:var(--accent)}.inbox-search-form{background:var(--bg-subtle);border:1px solid var(--border-soft);border-radius:999px;flex:1;align-items:center;max-width:600px;padding:0 .5rem;transition:border-color .15s,box-shadow .15s,background .15s;display:flex;overflow:hidden}.inbox-search-form:focus-within{border-color:var(--accent);background:var(--bg-primary);box-shadow:0 0 0 3px var(--accent-soft)}.inbox-search-input{color:var(--text-primary);font-family:var(--font-body);background:0 0;border:none;outline:none;flex:1;padding:.5rem .75rem;font-size:.9rem}.inbox-search-input::placeholder{color:var(--text-tertiary)}.inbox-search-clear,.inbox-search-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;padding:.4rem .6rem;font-size:1rem;transition:color .15s}.inbox-search-clear:hover,.inbox-search-btn:hover{color:var(--accent)}.inbox-refresh-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:50%;padding:.4rem;font-size:1.3rem;line-height:1;transition:background .15s,color .15s}.inbox-refresh-btn:hover{background:var(--accent-softer);color:var(--accent)}.inbox-content{flex-direction:column;flex:1;display:flex;overflow-y:auto}.search-results-bar{background:var(--accent-softer);border-bottom:1px solid var(--border-soft);color:var(--text-secondary);justify-content:space-between;align-items:center;padding:.5rem 1.5rem;font-size:.85rem;display:flex}.email-list-view{flex-direction:column;flex:1;display:flex;overflow-y:auto}.email-list{flex:1;overflow-y:auto}.email-row{border-bottom:1px solid var(--border-soft);cursor:pointer;background:var(--bg-primary);align-items:center;gap:.75rem;padding:.7rem 1.5rem;transition:background .12s;display:flex}.email-row:hover{background:var(--bg-subtle)}.email-row.unread{background:var(--accent-softer)}.email-row.unread:hover{background:var(--accent-soft)}.email-row.unread .email-sender,.email-row.unread .email-subject{color:var(--text-heading);font-weight:600}.email-row.draft-row{background:#fef3c7}.email-row.draft-row:hover{background:#fde68a}.email-draft-label{color:#b45309;flex-shrink:0;width:40px;font-size:.8rem;font-weight:600}.draft-delete-btn{opacity:0;flex-shrink:0;font-size:1.1rem;transition:opacity .15s}.email-row:hover .draft-delete-btn{opacity:1}.email-star{cursor:pointer;color:var(--text-tertiary);background:0 0;border:none;flex-shrink:0;padding:0;font-size:1.1rem;line-height:1;transition:color .15s}.email-star:hover,.email-star.starred{color:#f59e0b}.email-sender{width:180px;color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;flex-shrink:0;font-size:.88rem;overflow:hidden}.email-subject{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:.88rem;overflow:hidden}.email-attachment-icon{color:var(--text-tertiary);flex-shrink:0;font-size:.85rem}.email-date{color:var(--text-tertiary);text-align:right;flex-shrink:0;width:70px;font-size:.78rem}.email-pagination{border-top:1px solid var(--border-soft);background:var(--bg-primary);justify-content:center;align-items:center;gap:1rem;padding:.75rem;display:flex}.email-page-info{color:var(--text-secondary);font-size:.85rem}.email-loading,.email-empty{text-align:center;color:var(--text-tertiary);padding:3rem;font-style:italic}.email-detail-view{background:var(--bg-primary);flex-direction:column;flex:1;display:flex;overflow-y:auto}.email-detail-toolbar{border-bottom:1px solid var(--border-soft);background:var(--bg-primary);flex-shrink:0;justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 1.5rem;display:flex}.email-detail-toolbar h3{color:var(--text-heading);font-size:1rem;font-weight:600}.email-nav-buttons{gap:.25rem;display:flex}.email-detail-actions{align-items:center;gap:.5rem;display:flex}.email-detail-header{border-bottom:1px solid var(--border-soft);padding:1.5rem}.email-detail-subject{color:var(--text-heading);letter-spacing:-.01em;margin-bottom:.75rem;font-size:1.4rem;font-weight:700}.email-detail-meta{color:var(--text-secondary);flex-direction:column;gap:.25rem;font-size:.88rem;display:flex}.email-detail-meta strong{color:var(--text-primary);font-weight:600}.email-attachments{border-bottom:1px solid var(--border-soft);color:var(--text-secondary);background:var(--bg-subtle);flex-wrap:wrap;align-items:center;gap:.5rem;padding:.75rem 1.5rem;font-size:.85rem;display:flex}.email-attachment-link{background:var(--accent-soft);color:var(--accent);border:1px solid #0000;border-radius:999px;padding:.25rem .7rem;font-size:.8rem;font-weight:500;text-decoration:none;transition:background .15s;display:inline-block}.email-attachment-link:hover{background:var(--accent);color:#fff}.email-detail-body{flex:1;padding:1.5rem;overflow-y:auto}.email-html-frame{background:#fff;border:none;border-radius:8px;width:100%;min-height:300px}.email-text-body{font-family:var(--font-body);color:var(--text-primary);white-space:pre-wrap;word-wrap:break-word;font-size:.95rem;line-height:1.75}.email-compose-view{background:var(--bg-primary);flex-direction:column;flex:1;display:flex;overflow-y:auto}.email-compose-form{flex-direction:column;flex:1;gap:.75rem;padding:1.5rem;display:flex}.email-compose-field{align-items:center;gap:.75rem;display:flex}.email-compose-field span{width:60px;color:var(--text-secondary);text-align:right;flex-shrink:0;font-size:.85rem;font-weight:500}.email-compose-field input,.email-compose-field select{background:var(--bg-input);border:1px solid var(--border-soft);color:var(--text-primary);font-family:var(--font-body);border-radius:8px;outline:none;flex:1;padding:.55rem .8rem;font-size:.9rem;transition:border-color .15s,box-shadow .15s}.email-compose-field input:focus,.email-compose-field select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.email-compose-field select{cursor:pointer;appearance:none}.email-compose-body{background:var(--bg-input);border:1px solid var(--border-soft);color:var(--text-primary);font-family:var(--font-body);resize:vertical;border-radius:8px;outline:none;flex:1;min-height:200px;padding:.85rem;font-size:.9rem;line-height:1.6;transition:border-color .15s,box-shadow .15s}.email-compose-body:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.email-error{color:#b91c1c;background:#fee2e2;border:1px solid #fecaca;border-radius:8px;padding:.6rem .85rem;font-size:.85rem}.draft-saved-indicator{color:var(--text-tertiary);margin-left:auto;font-size:.8rem;font-style:italic}.mail-link{align-items:center;text-decoration:none;display:inline-flex;position:relative}.unread-badge{color:#fff;background:#ef4444;border-radius:8px;justify-content:center;align-items:center;min-width:16px;height:16px;padding:0 4px;font-size:.65rem;font-weight:700;line-height:1;display:flex;position:absolute;top:-6px;right:-10px}.contact-page{background:var(--bg-subtle);justify-content:center;align-items:center;min-height:calc(100vh - 60px);margin-top:60px;padding:2rem;display:flex}.contact-page-card{background:var(--bg-primary);border:1px solid var(--border-soft);width:100%;max-width:500px;box-shadow:var(--shadow-md);border-radius:20px;padding:2.5rem}.contact-page-title{font-family:var(--font-display);color:var(--text-heading);letter-spacing:-.02em;margin-bottom:.5rem;font-size:2rem;font-weight:800}.contact-page-subtitle{color:var(--text-secondary);margin-bottom:2rem;font-size:.95rem;line-height:1.55}.contact-form{flex-direction:column;gap:.75rem;display:flex}.contact-input,.contact-textarea{background:var(--bg-input);border:1px solid var(--border-soft);color:var(--text-primary);font-family:var(--font-body);border-radius:8px;outline:none;padding:.65rem .85rem;font-size:.9rem;transition:border-color .15s,box-shadow .15s}.contact-input:focus,.contact-textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.contact-textarea{resize:vertical;min-height:120px;line-height:1.6}.contact-submit-btn{background:var(--accent);color:#fff;cursor:pointer;font-size:.95rem;font-weight:600;font-family:var(--font-body);box-shadow:var(--shadow-sm);border:none;border-radius:10px;margin-top:.5rem;padding:.8rem;transition:background .15s,box-shadow .15s,transform .15s}.contact-submit-btn:hover{background:var(--accent-hover);box-shadow:var(--shadow-md);transform:translateY(-1px)}.contact-submit-btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none;transform:none}.contact-success{text-align:center;color:var(--text-primary);padding:2rem 0}.contact-success p{margin-bottom:1rem;font-size:1.1rem}.contact-reset-btn{background:var(--bg-primary);border:1px solid var(--accent);color:var(--accent);cursor:pointer;font-size:.85rem;font-family:var(--font-body);border-radius:8px;padding:.55rem 1.1rem;font-weight:500;transition:background .15s}.contact-reset-btn:hover{background:var(--accent-softer)}.contact-page-links{border-top:1px solid var(--border-soft);flex-direction:column;gap:.5rem;margin-top:2rem;padding-top:1.5rem;display:flex}.contact-page-link{color:var(--text-secondary);align-items:center;gap:.75rem;padding:.4rem 0;font-size:.9rem;text-decoration:none;transition:color .15s;display:flex}.contact-page-link:hover{color:var(--accent)}.contact-link-icon{text-align:center;width:24px;font-size:1.1rem}@media (width<=768px){.inbox-page{grid-template-columns:1fr}.inbox-sidebar{z-index:100;width:240px;box-shadow:var(--shadow-lg);transition:transform .2s;position:fixed;top:60px;bottom:0;left:0;transform:translate(-100%)}.inbox-sidebar.open{transform:translate(0)}.inbox-main{grid-column:1}.email-sender{width:120px}.email-compose-field{flex-direction:column;align-items:stretch}.email-compose-field span{text-align:left;width:auto}.contact-page{padding:1rem}.contact-page-card{padding:1.5rem}}.opportunities-page{max-width:1280px;font-family:var(--font-body,"Inter", system-ui, sans-serif);color:var(--text-primary,#1e293b);margin:0 auto;padding:2.5rem 1.5rem 4rem}.opp-header{margin-bottom:2rem}.opp-header h1{letter-spacing:-.025em;color:var(--text-heading,#0f172a);margin-bottom:.5rem;font-size:1.875rem;font-weight:700;line-height:1.2}.opp-subtitle{color:var(--text-secondary,#475569);max-width:70ch;font-size:.9rem;line-height:1.55}.opp-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin-top:1.25rem;display:grid}@media (width>=768px){.opp-stats{grid-template-columns:repeat(4,minmax(0,1fr))}}.opp-stat{border:1px solid var(--border-card,#e5e7eb);background:var(--bg-card,#fff);border-radius:.5rem;padding:.6rem .75rem}.opp-stat-label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-tertiary,#94a3b8);margin-bottom:.15rem;font-size:.7rem}.opp-stat-value{font-family:var(--font-mono,ui-monospace, monospace);color:var(--text-heading,#0f172a);font-size:1.25rem;font-weight:600}.opp-filter-bar{border:1px solid var(--border-card,#e5e7eb);background:var(--bg-card,#fff);border-radius:.5rem;grid-template-columns:1fr;gap:.75rem;margin-bottom:.75rem;padding:1rem;display:grid}@media (width>=768px){.opp-filter-bar{grid-template-columns:repeat(6,minmax(0,1fr))}}.opp-field{flex-direction:column;font-size:.85rem;display:flex}.opp-field-label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-tertiary,#94a3b8);margin-bottom:.25rem;font-size:.7rem}.opp-field input[type=text],.opp-field input[type=number],.opp-field input[type=date],.opp-field input:not([type]){border:1px solid var(--border-input,#e5e7eb);background:var(--bg-input,#fff);color:inherit;border-radius:.375rem;padding:.35rem .5rem;font-family:inherit;font-size:.875rem}.opp-field input[type=range]{accent-color:var(--accent,#2563eb);margin-top:.4rem}.opp-field-check{flex-direction:row;align-items:center;gap:.5rem;padding-top:1rem}.opp-field-check input[type=checkbox]{width:1rem;height:1rem;accent-color:var(--accent,#2563eb)}.opp-status{color:var(--text-secondary,#475569);margin-bottom:.5rem;font-size:.825rem}.opp-mono{font-family:var(--font-mono,ui-monospace, monospace)}.opp-table-scroll{border:1px solid var(--border-card,#e5e7eb);background:var(--bg-card,#fff);border-radius:.5rem;overflow-x:auto}.opp-table{border-collapse:collapse;width:100%;font-size:.875rem}.opp-table thead{background:var(--bg-subtle,#f8fafc)}.opp-table th{text-align:left;color:var(--text-heading,#0f172a);white-space:nowrap;padding:.5rem .75rem;font-weight:600}.opp-col-desc{min-width:280px}.opp-table tbody tr{border-top:1px solid var(--border-soft,#e5e7eb);vertical-align:top}.opp-row-auto{border-left:4px solid #f59e0b}.opp-table td{padding:.6rem .75rem}.opp-position a{color:var(--accent,#2563eb);font-weight:500;text-decoration:none}.opp-position a:hover{text-decoration:underline}.opp-paycell{white-space:nowrap}.opp-pay-net{font-family:var(--font-mono,ui-monospace, monospace);font-weight:600}.opp-pay-raw{color:var(--text-tertiary,#94a3b8);margin-top:.15rem;font-size:.75rem}.opp-nowrap{white-space:nowrap}.opp-small{font-size:.825rem}.opp-urgent{color:#dc2626;font-weight:600}.opp-source{color:var(--text-tertiary,#94a3b8);margin-top:.25rem;font-size:.7rem}.opp-empty{text-align:center;color:var(--text-tertiary,#94a3b8);padding:2rem 0}.sort-header{cursor:pointer;font:inherit;color:inherit;background:0 0;border:0;align-items:center;gap:.25rem;margin:0;padding:0;font-weight:600;display:inline-flex}.sort-header:hover{text-decoration:underline}.sort-arrow{opacity:.55;font-size:.7rem}.pill{font-size:.7rem;font-family:var(--font-mono,ui-monospace, monospace);white-space:nowrap;border-radius:9999px;padding:.15rem .5rem;font-weight:600;line-height:1.4;display:inline-block}.pill-green{color:#14532d;background:#dcfce7}.pill-yellow{color:#713f12;background:#fef3c7}.pill-red{color:#7f1d1d;background:#fee2e2}.pill-blue{color:#1e3a8a;background:#dbeafe}.opp-pill-inline{margin-left:.4rem;padding:.05rem .4rem;font-size:.65rem}.opp-legend{color:var(--text-tertiary,#94a3b8);flex-wrap:wrap;gap:1.25rem;margin-top:.75rem;font-size:.75rem;display:flex}.opp-legend-swatch{vertical-align:middle;background:#f59e0b;width:.6rem;height:.6rem;margin-right:.25rem;display:inline-block}.opp-footer{color:var(--text-tertiary,#94a3b8);margin-top:3rem;font-size:.75rem;line-height:1.65}.opp-footer p+p{margin-top:.5rem}.budget-body{overscroll-behavior-y:none;background:#f4f6fb}.bud-app{--bud-accent:#2563eb;--bud-accent-dark:#1d4ed8;--bud-ink:#0f172a;--bud-ink-soft:#475569;--bud-ink-faint:#94a3b8;--bud-line:#e6eaf2;--bud-surface:#fff;--bud-danger:#dc2626;--bud-tabbar:62px;min-height:100dvh;color:var(--bud-ink);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;background:#f4f6fb;font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif}.bud-screen{max-width:560px;padding:max(18px, env(safe-area-inset-top)) 16px calc(var(--bud-tabbar) + 28px + env(safe-area-inset-bottom));flex-direction:column;gap:18px;margin:0 auto;display:flex}.bud-header{justify-content:space-between;align-items:flex-start;gap:12px;padding-top:6px;display:flex}.bud-eyebrow{letter-spacing:.09em;text-transform:uppercase;color:var(--bud-ink-faint);margin:0 0 2px;font-size:.72rem;font-weight:600}.bud-header h1{letter-spacing:-.02em;color:var(--bud-ink);margin:0;font-size:1.6rem;font-weight:700}.bud-subheader{grid-template-columns:40px 1fr auto;align-items:center;gap:8px;padding-top:4px;display:grid}.bud-subheader h1{letter-spacing:-.015em;text-align:center;text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:1.22rem;font-weight:700;overflow:hidden}.bud-subheader-action{text-align:right;min-width:40px;font-size:.95rem}.bud-icon-btn{border:1px solid var(--bud-line);background:var(--bud-surface);width:40px;height:40px;color:var(--bud-ink-soft);cursor:pointer;border-radius:12px;flex:none;place-items:center;display:grid}.bud-icon-btn:active{transform:scale(.96)}.bud-icon-btn svg{width:20px;height:20px}.bud-app svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round}.bud-balance{color:#fff;background:linear-gradient(150deg,#3b82f6 0%,#1d4ed8 100%);border-radius:22px;flex-direction:column;justify-content:center;gap:6px;min-height:150px;padding:22px 20px 20px;display:flex;box-shadow:0 14px 30px #1d4ed83d}.bud-balance.over{background:linear-gradient(150deg,#f97316 0%,#dc2626 100%);box-shadow:0 14px 30px #dc26263d}.bud-balance-loading{place-items:center;min-height:96px;display:grid}.bud-balance-label{letter-spacing:.04em;text-transform:uppercase;color:#fffc;margin:0;font-size:.82rem;font-weight:600}.bud-balance-amount{letter-spacing:-.035em;font-variant-numeric:tabular-nums;margin:0;font-size:2.6rem;font-weight:800;line-height:1.05}.bud-progress{background:#ffffff47;border-radius:999px;height:8px;margin-top:8px;overflow:hidden}.bud-progress span{background:#fff;border-radius:999px;height:100%;transition:width .35s;display:block}.bud-balance-meta{color:#ffffffe6;font-variant-numeric:tabular-nums;justify-content:space-between;margin:4px 0 0;font-size:.88rem;font-weight:500;display:flex}.bud-card{background:var(--bud-surface);border:1px solid var(--bud-line);border-radius:18px;flex-direction:column;gap:12px;padding:16px;display:flex}.bud-card-title,.bud-section-title{letter-spacing:.08em;text-transform:uppercase;color:var(--bud-ink-faint);margin:0;font-size:.78rem;font-weight:700}.bud-add-row{grid-template-columns:1fr 108px;gap:10px;display:grid}.bud-input{box-sizing:border-box;width:100%;font:inherit;border:1px solid var(--bud-line);color:var(--bud-ink);background:#fbfcfe;border-radius:13px;outline:none;padding:13px 14px;font-size:16px}.bud-input::placeholder{color:var(--bud-ink-faint)}.bud-input:focus{border-color:var(--bud-accent);background:#fff;box-shadow:0 0 0 3px #2563eb24}.bud-add-row-2{grid-template-columns:1fr 118px}.bud-date-field{border:1px solid var(--bud-line);color:var(--bud-ink-faint);background:#fbfcfe;border-radius:13px;align-items:center;gap:6px;min-width:0;padding:0 10px 0 12px;display:flex;position:relative}.bud-date-field.compact{border-color:var(--bud-accent);background:#fff;border-radius:9px;padding:0 6px 0 8px}.bud-date-field:focus-within{border-color:var(--bud-accent);background:#fff;box-shadow:0 0 0 3px #2563eb24}.bud-date-field svg{flex:none;width:18px;height:18px}.bud-date-field.compact svg{width:15px;height:15px}.bud-date-cal{cursor:pointer;border-radius:8px;flex:none;place-items:center;width:30px;height:30px;display:grid;position:relative}.bud-date-cal:active{background:var(--bud-accent-softer,#eff6ff)}.bud-date-native{opacity:0;cursor:pointer;border:none;width:100%;height:100%;padding:0;position:absolute;inset:0}.bud-date-input{width:100%;min-width:0;font:inherit;font-variant-numeric:tabular-nums;color:var(--bud-ink);background:0 0;border:none;outline:none;flex:1;padding:13px 0;font-size:16px}.bud-date-field.compact .bud-date-input{max-width:108px;padding:4px 0;font-size:15px}.bud-followup{background:var(--accent-softer,#eff6ff);border:1px solid #dbeafe;border-radius:13px;flex-direction:column;gap:7px;margin-top:-2px;padding:12px;display:flex}.bud-followup>span{color:var(--bud-ink-soft);font-size:.86rem;font-weight:600}.bud-followup em{color:var(--bud-ink-faint);font-style:normal;font-weight:500}.bud-followup .bud-date-field{background:#fff}.bud-add-note{color:var(--bud-accent);margin:-4px 0 0;font-size:.82rem}.bud-input-price{text-align:right;font-variant-numeric:tabular-nums;font-weight:600}.bud-search{background:#fff}.bud-textarea{resize:vertical;min-height:110px;line-height:1.5}.bud-form{flex-direction:column;gap:16px;display:flex}.bud-field{flex-direction:column;gap:7px;display:flex}.bud-field>span{color:var(--bud-ink-soft);font-size:.86rem;font-weight:600}.bud-field em{color:var(--bud-ink-faint);font-style:normal;font-weight:500}.bud-form-error{color:var(--bud-danger);margin:0;font-size:.86rem}.bud-btn{font:inherit;cursor:pointer;border:1px solid #0000;border-radius:13px;justify-content:center;align-items:center;gap:8px;padding:13px 18px;font-size:1rem;font-weight:600;text-decoration:none;transition:background .15s,transform 60ms;display:inline-flex}.bud-btn:active{transform:scale(.985)}.bud-btn[disabled]{opacity:.6;cursor:default}.bud-btn-primary{background:var(--bud-accent);color:#fff}.bud-btn-primary:hover{background:var(--bud-accent-dark)}.bud-btn-quiet{border-color:var(--bud-line);color:var(--bud-ink-soft);background:#fff}.bud-btn-danger{background:var(--bud-danger);color:#fff}.bud-btn-ghost{color:#fff;background:#ffffff29;border-color:#ffffff73;align-self:flex-start}.bud-btn-block{width:100%}.bud-link{color:var(--bud-accent);font-weight:600;text-decoration:none}.bud-danger-row{grid-template-columns:1fr 1fr;gap:10px;display:grid}.bud-section{flex-direction:column;gap:10px;display:flex}.bud-section-head{justify-content:space-between;align-items:baseline;display:flex}.bud-section-head h2{letter-spacing:.08em;text-transform:uppercase;color:var(--bud-ink-faint);margin:0;font-size:.78rem;font-weight:700}.bud-list{background:var(--bud-surface);border:1px solid var(--bud-line);border-radius:18px;margin:0;padding:0;list-style:none;overflow:hidden}.bud-item{border-bottom:1px solid var(--bud-line);align-items:center;gap:10px;padding:13px 14px;display:flex}.bud-item:last-child{border-bottom:none}.bud-item-main{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.bud-item-name{text-overflow:ellipsis;white-space:nowrap;font-size:.98rem;font-weight:600;overflow:hidden}.bud-item-date{font:inherit;color:var(--bud-ink-faint);cursor:pointer;text-align:left;text-underline-offset:3px;background:0 0;border:none;border-radius:6px;align-self:flex-start;margin:-3px 0;padding:3px 5px 3px 0;font-size:.78rem;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.bud-item-date:disabled{cursor:default;text-decoration:none}.bud-item-date.pending{color:var(--bud-accent);font-weight:600}.bud-item-date-error{color:var(--bud-danger);font-size:.74rem}.bud-item-price{font-variant-numeric:tabular-nums;color:var(--bud-ink);font-weight:700}.bud-item-x{width:30px;height:30px;color:var(--bud-ink-faint);cursor:pointer;background:#f1f4f9;border:none;border-radius:9px;flex:none;place-items:center;display:grid}.bud-item-x svg{width:15px;height:15px}.bud-item-confirm{gap:6px;display:flex}.bud-mini{font:inherit;border:1px solid var(--bud-line);color:var(--bud-ink-soft);cursor:pointer;background:#fff;border-radius:9px;padding:7px 10px;font-size:.8rem;font-weight:600}.bud-mini.danger{background:var(--bud-danger);border-color:var(--bud-danger);color:#fff}.bud-empty{text-align:center;color:var(--bud-ink-faint);margin:0;padding:18px 4px;font-size:.92rem}.bud-month{background:var(--bud-surface);border:1px solid var(--bud-line);border-radius:18px;overflow:hidden}.bud-month-head{width:100%;font:inherit;text-align:left;cursor:pointer;color:inherit;background:0 0;border:none;justify-content:space-between;align-items:center;gap:10px;padding:14px;display:flex}.bud-month-title{min-width:0}.bud-month-title h2{white-space:nowrap;align-items:center;gap:7px;margin:0 0 3px;font-size:1.02rem;font-weight:700;display:flex}.bud-month-title p{color:var(--bud-ink-faint);margin:0;font-size:.82rem}.bud-pill.upcoming{color:var(--bud-ink-soft);background:#f1f5f9}.bud-month-right{flex:none}.bud-pill{letter-spacing:.06em;text-transform:uppercase;color:var(--bud-accent);background:#eff6ff;border-radius:999px;padding:3px 7px;font-size:.64rem;font-weight:700}.bud-month-right{align-items:center;gap:6px;display:flex}.bud-month-left{white-space:nowrap;color:#059669;font-variant-numeric:tabular-nums;font-size:.82rem;font-weight:600}.bud-month-left.over{color:var(--bud-danger)}.bud-month .bud-list{border:none;border-top:1px solid var(--bud-line);border-radius:0}.bud-chev{width:20px;height:20px;color:var(--bud-ink-faint);transition:transform .2s}.bud-chev.open{transform:rotate(180deg)}.bud-chev.right{flex:none}.bud-recipes{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.bud-recipe-card{background:var(--bud-surface);border:1px solid var(--bud-line);color:inherit;border-radius:16px;grid-template-columns:1fr 20px;grid-template-areas:"name chev""meta chev";align-items:center;gap:2px 10px;padding:15px 14px;text-decoration:none;display:grid}.bud-recipe-name{grid-area:name;font-size:1.02rem;font-weight:700}.bud-recipe-meta{color:var(--bud-ink-faint);grid-area:meta;font-size:.82rem}.bud-recipe-card .bud-chev{grid-area:chev}.bud-ingredients{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.bud-check{background:var(--bud-surface);border:1px solid var(--bud-line);width:100%;font:inherit;text-align:left;color:var(--bud-ink);cursor:pointer;border-radius:13px;align-items:flex-start;gap:11px;padding:11px 12px;font-size:.97rem;display:flex}.bud-check-box{color:#0000;border:1.6px solid #cbd5e1;border-radius:7px;flex:none;place-items:center;width:21px;height:21px;margin-top:1px;display:grid}.bud-check-box svg{stroke-width:2.6px;width:13px;height:13px}.bud-check.on{color:var(--bud-ink-faint);text-decoration:line-through}.bud-check.on .bud-check-box{background:var(--bud-accent);border-color:var(--bud-accent);color:#fff}.bud-steps{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.bud-steps li{background:var(--bud-surface);border:1px solid var(--bud-line);border-radius:14px;gap:12px;padding:13px 14px;font-size:.97rem;line-height:1.5;display:flex}.bud-step-num{width:24px;height:24px;color:var(--bud-accent);background:#eff6ff;border-radius:999px;flex:none;place-items:center;font-size:.8rem;font-weight:700;display:grid}.bud-fab{right:max(18px,50vw - 264px);bottom:calc(var(--bud-tabbar) + 18px + env(safe-area-inset-bottom));background:var(--bud-accent);color:#fff;z-index:20;border-radius:999px;place-items:center;width:54px;height:54px;text-decoration:none;display:grid;position:fixed;box-shadow:0 10px 22px #2563eb59}.bud-fab svg{stroke-width:2.2px;width:24px;height:24px}.bud-tabs{z-index:30;padding:7px 8px calc(7px + env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--bud-line);background:#ffffffeb;justify-content:center;gap:4px;display:flex;position:fixed;bottom:0;left:0;right:0}.bud-tab{max-width:160px;color:var(--bud-ink-faint);border-radius:12px;flex-direction:column;flex:1 1 0;align-items:center;gap:3px;padding:6px 4px;font-size:.7rem;font-weight:600;text-decoration:none;display:flex}.bud-tab svg{width:23px;height:23px}.bud-tab.active{color:var(--bud-accent)}.bud-sheet-backdrop{z-index:40;background:#0f172a6b;justify-content:center;align-items:flex-end;animation:.16s bud-fade;display:flex;position:fixed;inset:0}.bud-sheet{width:100%;max-width:560px;padding:10px 18px calc(20px + env(safe-area-inset-bottom));background:#fff;border-radius:22px 22px 0 0;flex-direction:column;gap:12px;animation:.2s cubic-bezier(.2,.8,.3,1) bud-rise;display:flex}.bud-sheet-grip{background:#dbe2ec;border-radius:999px;align-self:center;width:38px;height:4px;margin-bottom:4px}.bud-sheet h2{margin:0;font-size:1.15rem;font-weight:700}.bud-sheet-sub{color:var(--bud-ink-soft);margin:0;font-size:.88rem}.bud-amount-field{align-items:center;gap:8px;display:flex}.bud-amount-field>span{color:var(--bud-ink-faint);font-size:1.35rem;font-weight:700}.bud-amount-field .bud-input{font-variant-numeric:tabular-nums;font-size:1.35rem;font-weight:700}.bud-sheet-actions{grid-template-columns:1fr 1fr;gap:10px;margin-top:4px;display:grid}@keyframes bud-rise{0%{opacity:.6;transform:translateY(18px)}to{opacity:1;transform:none}}@keyframes bud-fade{0%{opacity:0}to{opacity:1}}.bud-banner{color:#9a3412;background:#fff7ed;border:1px solid #fed7aa;border-radius:12px;margin:0;padding:10px 13px;font-size:.86rem}.bud-banner-error{color:#991b1b;background:#fef2f2;border-color:#fecaca}.bud-loading{place-items:center;padding:40px 0;display:grid}.bud-spinner{border:2.5px solid #dbe2ec;border-top-color:var(--bud-accent);border-radius:999px;width:26px;height:26px;animation:.7s linear infinite bud-spin}.bud-spinner.light{border-color:#fff #ffffff59 #ffffff59}@keyframes bud-spin{to{transform:rotate(360deg)}}.bud-gate{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;min-height:100dvh;padding:32px 24px;display:flex}.bud-gate-icon{border-radius:22px;box-shadow:0 10px 24px #1d4ed838}.bud-gate h1{margin:8px 0 0;font-size:1.5rem;font-weight:700}.bud-gate p{color:var(--bud-ink-soft);max-width:30ch;margin:0 0 8px}@media (prefers-reduced-motion:reduce){.bud-app *,.bud-sheet,.bud-sheet-backdrop{transition:none!important;animation:none!important}}.bud-categories{flex-direction:column;gap:10px;display:flex}.bud-cat{background:var(--bud-surface);border:1px solid var(--bud-line);border-radius:18px;overflow:hidden}.bud-cat.open{border-color:color-mix(in srgb, var(--chip) 40%, var(--bud-line))}.bud-cat-head{width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:10px;padding:14px;display:flex}.bud-cat-dot{background:var(--chip,var(--bud-accent));border-radius:999px;flex:none;width:10px;height:10px}.bud-cat-title{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.bud-cat-name{text-overflow:ellipsis;white-space:nowrap;font-size:1.02rem;font-weight:700;overflow:hidden}.bud-cat-sub{color:var(--bud-ink-faint);font-variant-numeric:tabular-nums;font-size:.8rem}.bud-cat-right{flex:none;align-items:center;gap:6px;display:flex}.bud-cat-amount{color:#059669;font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.86rem;font-weight:700}.bud-cat-amount.over{color:var(--bud-danger)}.bud-cat-bar{background:#eef1f6;border-radius:999px;height:5px;margin:0 14px 12px;overflow:hidden}.bud-cat-bar span{background:var(--chip,var(--bud-accent));border-radius:999px;height:100%;transition:width .35s;display:block}.bud-cat-bar.over span{background:var(--bud-danger)}.bud-list.flush{border:none;border-top:1px solid var(--bud-line);border-radius:0}.bud-empty.small{padding:12px 4px;font-size:.86rem}.bud-item-main{min-width:0;font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:none;flex-direction:column;flex:1;gap:3px;padding:0;display:flex}.bud-item-sub{color:var(--bud-ink-faint);align-items:center;gap:6px;font-size:.78rem;display:flex}.bud-item-sub .pending{color:var(--bud-accent);font-weight:600}.bud-item-chip{letter-spacing:.02em;color:var(--chip);background:color-mix(in srgb, var(--chip) 12%, #fff);border-radius:999px;padding:2px 7px;font-size:.68rem;font-weight:700}.bud-chips{flex-wrap:wrap;gap:7px;display:flex}.bud-chip{font:inherit;border:1px solid var(--bud-line);color:var(--bud-ink-soft);cursor:pointer;background:#fbfcfe;border-radius:999px;padding:8px 13px;font-size:.86rem;font-weight:600}.bud-chip.on{border-color:var(--chip);background:color-mix(in srgb, var(--chip) 12%, #fff);color:var(--chip)}.bud-note{color:var(--bud-ink-soft);margin:0;font-size:.88rem;line-height:1.5}.bud-cat-edit{background:var(--bud-surface);border:1px solid var(--bud-line);border-radius:16px;flex-direction:column;gap:10px;padding:12px 14px;display:flex}.bud-cat-edit-head{align-items:center;gap:9px;display:flex}.bud-cat-edit-name{min-width:0;font:inherit;text-align:left;color:var(--bud-ink);cursor:pointer;text-underline-offset:3px;background:0 0;border:none;flex:1;padding:2px 0;font-size:1rem;font-weight:700;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.bud-input-inline{flex:1;padding:7px 10px;font-size:16px;font-weight:600}.bud-cat-edit-body{align-items:center;gap:12px;display:flex}.bud-amount-field.small{flex:none;width:132px}.bud-amount-field.small .bud-input{padding:10px 12px;font-size:16px}.bud-cat-edit-meta{color:var(--bud-ink-faint);font-size:.82rem}.bud-cat-edit-meta em{font-style:normal}.bud-cat-edit-meta .saved{color:#059669;font-weight:600}.bud-other-note p{color:var(--bud-ink-soft);margin:0;font-size:.88rem;line-height:1.55}.bud-other-note .bud-card-title{text-transform:none;letter-spacing:0;color:var(--bud-ink);align-items:center;gap:8px;font-size:1rem;display:flex}.bud-breakdown{border-top:1px solid var(--bud-line);background:#fbfcfe;flex-direction:column;gap:7px;margin:0;padding:10px 14px 12px;list-style:none;display:flex}.bud-breakdown li{align-items:center;gap:8px;font-size:.86rem;display:flex}.bud-breakdown-name{color:var(--bud-ink-soft);flex:1}.bud-breakdown-amount{font-variant-numeric:tabular-nums;font-weight:600}.bud-field-row{grid-template-columns:1fr 1fr;gap:10px;display:grid}.bud-field-row .bud-field{min-width:0}.bud-sheet-delete{font:inherit;color:var(--bud-danger);cursor:pointer;background:0 0;border:none;padding:6px;font-size:.9rem;font-weight:600}.bud-sheet{max-height:92dvh;overflow-y:auto}.bud-cat-amount.neutral{color:var(--bud-ink-soft)}.bud-breakdown-tag{color:var(--bud-ink-faint);margin-left:7px;font-size:.72rem;font-style:normal}.bud-drag-handle{width:30px;height:30px;color:var(--bud-ink-faint);cursor:grab;touch-action:none;background:0 0;border:none;border-radius:8px;flex:none;place-items:center;margin-left:-4px;display:grid}.bud-drag-handle:active{cursor:grabbing;background:#f1f4f9}.bud-drag-handle svg{width:17px;height:17px}.bud-cat-edit.dragging{z-index:5;box-shadow:var(--bud-shadow-lg);border-color:color-mix(in srgb, var(--chip) 45%, var(--bud-line));position:relative}.bud-once-badge{letter-spacing:.05em;text-transform:uppercase;color:var(--chip,var(--bud-accent));background:color-mix(in srgb, var(--chip,var(--bud-accent)) 13%, #fff);vertical-align:2px;border-radius:999px;flex:none;margin-left:7px;padding:2px 6px;font-size:.62rem;font-weight:700}.bud-toggle{cursor:pointer;color:var(--bud-ink);align-items:flex-start;gap:10px;font-size:.88rem;display:flex}.bud-toggle input{opacity:0;width:0;height:0;position:absolute}.bud-toggle-box{color:#0000;background:#fff;border:1.6px solid #cbd5e1;border-radius:7px;flex:none;place-items:center;width:21px;height:21px;margin-top:1px;display:grid}.bud-toggle-box svg{stroke-width:2.6px;width:13px;height:13px}.bud-toggle input:checked+.bud-toggle-box{background:var(--bud-accent);border-color:var(--bud-accent);color:#fff}.bud-toggle input:focus-visible+.bud-toggle-box{box-shadow:0 0 0 3px #2563eb40}.bud-toggle em{color:var(--bud-ink-faint);margin-top:2px;font-size:.8rem;font-style:normal;display:block}.facecards-body{overscroll-behavior-y:none;background:#f4f6fb}.fc-app{--fc-accent:#2563eb;--fc-accent-dark:#1d4ed8;--fc-ink:#0f172a;--fc-ink-soft:#475569;--fc-ink-faint:#94a3b8;--fc-line:#e6eaf2;--fc-surface:#fff;--fc-danger:#dc2626;--fc-right:#16a34a;--fc-tabbar:62px;min-height:100dvh;color:var(--fc-ink);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;background:#f4f6fb;font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif}.fc-screen{max-width:560px;padding:max(18px, env(safe-area-inset-top)) 16px calc(var(--fc-tabbar) + 28px + env(safe-area-inset-bottom));flex-direction:column;gap:16px;margin:0 auto;display:flex}.fc-header{justify-content:space-between;align-items:flex-start;gap:12px;padding-top:6px;display:flex}.fc-eyebrow{letter-spacing:.09em;text-transform:uppercase;color:var(--fc-ink-faint);margin:0 0 2px;font-size:.72rem;font-weight:600}.fc-header h1{letter-spacing:-.02em;margin:0;font-size:1.6rem;font-weight:700}.fc-session{flex-direction:column;align-items:flex-end;gap:1px;padding-top:4px;display:flex}.fc-session-main{font-variant-numeric:tabular-nums;font-size:1.15rem;font-weight:700}.fc-session-sub{color:var(--fc-ink-faint);font-variant-numeric:tabular-nums;font-size:.74rem;font-weight:600}.fc-face{--fc-face-ring:inset 0 0 0 1px #0f172a1f;box-shadow:var(--fc-face-ring);image-rendering:auto;background-color:#e9edf5;background-repeat:no-repeat;flex:none}.fc-face-round{border-radius:999px}.fc-face-square{border-radius:14px}.fc-segmented{background:#e8ecf5;border-radius:14px;gap:4px;padding:4px;display:flex}.fc-seg{font:inherit;color:var(--fc-ink-soft);cursor:pointer;background:0 0;border:0;border-radius:11px;flex:1 1 0;padding:9px 8px;font-size:.88rem;font-weight:600;transition:background .15s,color .15s}.fc-seg.active{background:var(--fc-surface);color:var(--fc-ink);box-shadow:0 1px 3px #0f172a1a}.fc-card{background:var(--fc-surface);border:1px solid var(--fc-line);border-radius:22px;flex-direction:column;align-items:center;gap:12px;padding:22px 16px 18px;transition:border-color .2s,box-shadow .2s;display:flex}.fc-card.right{border-color:#bbf7d0;box-shadow:0 0 0 3px #16a34a1f}.fc-card.wrong{border-color:#fecaca;box-shadow:0 0 0 3px #dc26261a}.fc-card-face{box-shadow:var(--fc-face-ring), 0 8px 24px #0f172a29}.fc-card-prompt{letter-spacing:-.015em;text-align:center;margin:0;font-size:1.28rem;font-weight:700}.fc-learned{color:var(--fc-ink-faint);cursor:pointer;justify-content:center;align-items:center;gap:9px;margin:-4px 0;padding:4px;font-size:.86rem;font-weight:600;display:flex}.fc-learned input{width:19px;height:19px;accent-color:var(--fc-accent);cursor:pointer;margin:0}.fc-card-note{color:var(--fc-right);margin:-6px 0 0;font-size:.82rem;font-weight:600}.fc-options{flex-direction:column;gap:9px;display:flex}.fc-option{font:inherit;text-align:left;border:1px solid var(--fc-line);background:var(--fc-surface);color:var(--fc-ink);cursor:pointer;border-radius:14px;padding:15px 16px;font-size:1rem;font-weight:600;transition:background .14s,border-color .14s,color .14s,opacity .14s,transform 60ms}.fc-option:active{transform:scale(.99)}.fc-option[disabled]{cursor:default}.fc-option.correct{color:#14532d;background:#ecfdf3;border-color:#86efac}.fc-option.incorrect{color:#7f1d1d;background:#fef2f2;border-color:#fca5a5}.fc-option.muted{opacity:.45}.fc-type{flex-direction:column;gap:9px;display:flex}.fc-input{font:inherit;border:1px solid var(--fc-line);background:var(--fc-surface);color:var(--fc-ink);text-align:center;border-radius:14px;padding:15px 16px;font-size:1.15rem;font-weight:600}.fc-input:focus{border-color:var(--fc-accent);outline:none;box-shadow:0 0 0 3px #2563eb24}.fc-input.correct{color:#14532d;background:#ecfdf3;border-color:#86efac}.fc-input.incorrect{color:#7f1d1d;background:#fef2f2;border-color:#fca5a5}.fc-after{gap:9px;display:flex}.fc-after .fc-btn{flex:1 1 0}.fc-btn{font:inherit;cursor:pointer;border:1px solid #0000;border-radius:13px;justify-content:center;align-items:center;gap:8px;padding:13px 18px;font-size:1rem;font-weight:600;text-decoration:none;transition:background .15s,transform 60ms;display:inline-flex}.fc-btn:active{transform:scale(.985)}.fc-btn[disabled]{opacity:.6;cursor:default}.fc-btn-primary{background:var(--fc-accent);color:#fff}.fc-btn-primary:hover{background:var(--fc-accent-dark)}.fc-btn-quiet{border-color:var(--fc-line);color:var(--fc-ink-soft);background:#fff}.fc-btn-danger{background:var(--fc-danger);color:#fff}.fc-search{font:inherit;border:1px solid var(--fc-line);background:var(--fc-surface);color:var(--fc-ink);-webkit-appearance:none;border-radius:13px;padding:12px 14px;font-size:1rem}.fc-search:focus{border-color:var(--fc-accent);outline:none;box-shadow:0 0 0 3px #2563eb24}.fc-chips{scrollbar-width:none;gap:7px;margin:-2px -16px;padding:2px 16px;display:flex;overflow-x:auto}.fc-chips::-webkit-scrollbar{display:none}.fc-chip{font:inherit;border:1px solid var(--fc-line);background:var(--fc-surface);color:var(--fc-ink-soft);cursor:pointer;border-radius:999px;flex:none;padding:8px 13px;font-size:.82rem;font-weight:600}.fc-chip.active{background:var(--fc-accent);border-color:var(--fc-accent);color:#fff}.fc-grid{grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:14px 10px;margin:0;padding:0;list-style:none;display:grid}.fc-grid-item{text-align:center;flex-direction:column;align-items:center;gap:5px;display:flex;position:relative}.fc-grid-item .fc-face{box-shadow:var(--fc-face-ring), 0 3px 10px #0f172a1f}.fc-grid-name{font-size:.86rem;font-weight:700;line-height:1.15}.fc-grid-last{color:var(--fc-ink-soft);font-size:.76rem;font-weight:500;line-height:1.15}.fc-grid-item .fc-dot{border:2px solid #f4f6fb;position:absolute;top:61px;right:calc(50% - 36px)}.fc-panel{background:var(--fc-surface);border:1px solid var(--fc-line);border-radius:18px;flex-direction:column;gap:12px;padding:16px;display:flex}.fc-panel-title{letter-spacing:.08em;text-transform:uppercase;color:var(--fc-ink-faint);margin:0;font-size:.78rem;font-weight:700}.fc-bigstat{align-items:baseline;gap:8px;display:flex}.fc-bigstat strong{letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:2.1rem;font-weight:700}.fc-bigstat span{color:var(--fc-ink-soft);font-size:.94rem}.fc-bar{background:#eaeef6;border-radius:999px;height:9px;overflow:hidden}.fc-bar-fill{background:linear-gradient(90deg,#3b82f6,#1d4ed8);border-radius:999px;height:100%;transition:width .3s;display:block}.fc-legend{color:var(--fc-ink-soft);flex-direction:column;gap:7px;margin:0;padding:0;font-size:.9rem;list-style:none;display:flex}.fc-legend li{align-items:center;gap:8px;display:flex}.fc-legend b{color:var(--fc-ink);font-variant-numeric:tabular-nums;margin-left:auto}.fc-dot{background:#cbd5e1;border-radius:999px;flex:none;width:10px;height:10px}.fc-dot.learning{background:#f59e0b}.fc-dot.known{background:var(--fc-right)}.fc-dot.retired{background:var(--fc-accent)}.fc-card .fc-fineprint{text-align:center}.fc-fineprint{color:var(--fc-ink-faint);margin:0;font-size:.82rem;line-height:1.45}.fc-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.fc-list-row{border-top:1px solid var(--fc-line);align-items:center;gap:11px;padding:8px 0;display:flex}.fc-list-row:first-child{border-top:0}.fc-list-name{font-size:.98rem;font-weight:600}.fc-list-score{color:var(--fc-ink-faint);font-variant-numeric:tabular-nums;margin-left:auto;font-size:.85rem;font-weight:600}.fc-link-btn{font:inherit;color:var(--fc-accent);cursor:pointer;background:0 0;border:0;margin-left:auto;padding:6px 2px;font-size:.85rem;font-weight:600}.fc-link{color:var(--fc-accent);font-weight:600}.fc-empty{color:var(--fc-ink-faint);margin:0;padding:6px 0;font-size:.92rem}.fc-tabs{z-index:30;padding:7px 8px calc(7px + env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--fc-line);background:#ffffffeb;justify-content:center;gap:4px;display:flex;position:fixed;bottom:0;left:0;right:0}.fc-tab{max-width:160px;color:var(--fc-ink-faint);border-radius:12px;flex-direction:column;flex:1 1 0;align-items:center;gap:3px;padding:6px 4px;font-size:.7rem;font-weight:600;text-decoration:none;display:flex}.fc-tab svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:23px;height:23px}.fc-tab.active{color:var(--fc-accent)}.fc-loading{place-items:center;padding:40px 0;display:grid}.fc-spinner{border:2.5px solid #dbe2ec;border-top-color:var(--fc-accent);border-radius:999px;width:26px;height:26px;animation:.7s linear infinite fc-spin}@keyframes fc-spin{to{transform:rotate(360deg)}}.fc-gate{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;min-height:100dvh;padding:32px 24px;display:flex}.fc-gate-icon{border-radius:22px;box-shadow:0 10px 24px #1d4ed838}.fc-gate h1{margin:8px 0 0;font-size:1.5rem;font-weight:700}.fc-gate p{color:var(--fc-ink-soft);max-width:30ch;margin:0 0 8px}@media (prefers-reduced-motion:reduce){.fc-app *{transition:none!important;animation:none!important}}:root{--bg-primary:#fff;--bg-subtle:#f8fafc;--bg-card:#fff;--bg-input:#fff;--border-card:#e5e7eb;--border-soft:#e5e7eb;--border-strong:#cbd5e1;--border-input:#e5e7eb;--accent:#2563eb;--accent-hover:#1d4ed8;--accent-soft:#dbeafe;--accent-softer:#eff6ff;--text-heading:#0f172a;--text-primary:#1e293b;--text-secondary:#475569;--text-tertiary:#94a3b8;--card-1:#eef2ff;--card-2:#ecfeff;--card-3:#fef3c7;--card-4:#fce7f3;--card-5:#dcfce7;--card-border-1:#c7d2fe;--card-border-2:#a5f3fc;--card-border-3:#fde68a;--card-border-4:#fbcfe8;--card-border-5:#bbf7d0;--shadow-sm:0 1px 2px #0f172a0d;--shadow-md:0 4px 12px #0f172a14;--shadow-lg:0 12px 32px #0f172a1a;--font-body:"Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--font-display:"Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:ui-monospace, "JetBrains Mono", Menlo, monospace}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font-body);background:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.65}.nav{z-index:100;-webkit-backdrop-filter:saturate(180%)blur(14px);border-bottom:1px solid var(--border-soft);background:#ffffffd9;justify-content:space-between;align-items:center;padding:1rem 2rem;display:flex;position:fixed;top:0;left:0;right:0}.nav-brand{font-family:var(--font-display);color:var(--text-heading);cursor:pointer;letter-spacing:-.01em;font-size:1rem;font-weight:700;text-decoration:none}.nav-links{align-items:center;gap:.25rem;display:flex}.nav-links button{color:var(--text-secondary);font-family:var(--font-body);cursor:pointer;background:0 0;border:none;border-radius:8px;padding:.45rem .85rem;font-size:.9rem;font-weight:500;transition:color .15s,background .15s}.nav-links button:hover{color:var(--accent);background:var(--accent-softer)}.nav-btn{background:var(--accent);color:#fff;font-size:.85rem;font-weight:600;font-family:var(--font-body);cursor:pointer;box-shadow:var(--shadow-sm);border:none;border-radius:8px;margin-left:.4rem;padding:.45rem 1rem;text-decoration:none;transition:background .15s,box-shadow .15s,transform .15s;display:inline-block}.nav-btn:hover{background:var(--accent-hover);box-shadow:var(--shadow-md)}.nav-user{align-items:center;gap:.5rem;display:flex}.editing-badge{color:var(--accent);background:var(--accent-soft);letter-spacing:.02em;border-radius:999px;padding:.2rem .6rem;font-size:.7rem;font-weight:600}.hero{align-items:center;min-height:100vh;padding:8rem 2rem 4rem;display:flex;position:relative;overflow:hidden}.hero-grid{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);align-items:center;gap:4rem;width:100%;max-width:1200px;margin:0 auto;display:grid}.hero-text{text-align:left;flex-direction:column;align-items:flex-start;display:flex}.hero-title{font-family:var(--font-display);color:var(--text-heading);letter-spacing:-.035em;-webkit-text-fill-color:currentColor;background:0 0;margin-bottom:1.25rem;font-size:clamp(3rem,8vw,6rem);font-weight:800;line-height:1.02}.hero-subtitle{color:var(--text-secondary);max-width:50ch;margin-bottom:2rem;font-size:clamp(1.05rem,1.5vw,1.25rem);font-weight:400;line-height:1.6}.hero-cta button{background:var(--accent);color:#fff;font-size:.95rem;font-weight:600;font-family:var(--font-body);cursor:pointer;box-shadow:var(--shadow-sm);border:none;border-radius:10px;padding:.85rem 1.75rem;transition:background .15s,transform .15s,box-shadow .15s}.hero-cta button:hover{background:var(--accent-hover);box-shadow:var(--shadow-md);transform:translateY(-1px)}.hero-media{place-self:center end}.section{max-width:1100px;margin:0 auto;padding:5rem 2rem}.section-title{font-family:var(--font-display);color:var(--text-heading);letter-spacing:-.02em;margin-bottom:2.5rem;font-size:clamp(1.75rem,3vw,2.25rem);font-weight:700;display:inline-block;position:relative}.section-title:after{content:"";background:var(--accent);border-radius:2px;width:48px;height:3px;position:absolute;bottom:-10px;left:0}.section-header-row{flex-wrap:wrap;align-items:center;gap:.6rem;margin-bottom:2.5rem;display:flex}.section-header-row .section-title{margin-bottom:0}.section-header-row .visibility-toggle{font-size:1rem;line-height:1}.is-hidden{opacity:.5;transition:opacity .18s}.is-hidden:hover{opacity:.7}.section.is-hidden,.section.is-hidden.visible{opacity:.5}.section.is-hidden:hover,.section.is-hidden.visible:hover{opacity:.7}.hidden-marker{color:var(--text-tertiary);letter-spacing:0;text-transform:none;margin-left:.2em;font-size:.78em;font-style:italic;font-weight:500}.section-header-row .hidden-marker{vertical-align:middle;margin-left:-.2em;font-size:.55em}.nav-link-hidden{opacity:.6}.hidden-marker-nav{color:var(--text-tertiary);margin-left:.2em;font-size:.85em;font-style:italic}.projects-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem;margin-bottom:2rem;display:grid}.project-card{background:var(--card-1);border:1px solid var(--card-border-1);box-shadow:var(--shadow-sm);border-radius:16px;flex-direction:column;padding:1.5rem;transition:transform .18s,box-shadow .18s;display:flex;position:relative;overflow:hidden}.project-card:nth-child(5n+1){background:var(--card-1);border-color:var(--card-border-1)}.project-card:nth-child(5n+2){background:var(--card-2);border-color:var(--card-border-2)}.project-card:nth-child(5n+3){background:var(--card-3);border-color:var(--card-border-3)}.project-card:nth-child(5n+4){background:var(--card-4);border-color:var(--card-border-4)}.project-card:nth-child(5n+5){background:var(--card-5);border-color:var(--card-border-5)}.project-card:hover{box-shadow:var(--shadow-md);transform:translateY(-3px)}.project-card-header{justify-content:space-between;align-items:flex-start;gap:.5rem;margin-bottom:.6rem;display:flex}.project-card-header h3{color:var(--text-heading);letter-spacing:-.01em;font-size:1.15rem;font-weight:700}.project-desc{color:var(--text-secondary);margin-bottom:1rem;font-size:.92rem;line-height:1.55}.project-tags{flex-wrap:wrap;gap:.4rem;margin-bottom:1rem;display:flex}.tag{color:var(--text-primary);background:#ffffffb3;border:1px solid #0f172a0f;border-radius:999px;padding:.2rem .65rem;font-size:.72rem;font-weight:500}.project-links{flex-wrap:wrap;gap:1rem;margin-top:auto;display:flex}.project-links a{color:var(--accent);font-size:.88rem;font-weight:600;text-decoration:none;transition:color .15s}.project-links a:hover{color:var(--accent-hover);text-underline-offset:3px;text-decoration:underline}.project-actions{border-top:1px solid #0f172a12;justify-content:flex-end;gap:.3rem;margin-top:1rem;padding-top:.75rem;display:flex;position:relative}.color-picker-popover{z-index:20;background:var(--bg-primary);border:1px solid var(--border-soft);box-shadow:var(--shadow-lg);border-radius:12px;flex-direction:column;gap:.65rem;min-width:240px;padding:.85rem;display:flex;position:absolute;bottom:calc(100% + .5rem);right:0}.color-picker-row{align-items:center;gap:.65rem;display:flex}.color-picker-swatch{border:1px solid var(--card-border-1);border-radius:50%;flex-shrink:0;width:32px;height:32px}.color-picker-label{color:var(--text-secondary);font-size:.85rem;font-weight:500}.color-picker-slider{appearance:none;cursor:pointer;background:linear-gradient(90deg,#f76e6e,#f7f76e,#6ef76e,#6ef7f7,#6e6ef7,#f76ef7,#f76e6e);border-radius:999px;outline:none;width:100%;height:14px;margin:0;padding:0}.color-picker-slider::-webkit-slider-runnable-track{background:0 0;border-radius:999px;height:14px}.color-picker-slider::-webkit-slider-thumb{appearance:none;border:2px solid var(--text-heading);cursor:grab;width:18px;height:18px;box-shadow:var(--shadow-sm);background:#fff;border-radius:50%;margin-top:-2px}.color-picker-slider::-moz-range-track{background:0 0;border-radius:999px;height:14px}.color-picker-slider::-moz-range-thumb{border:2px solid var(--text-heading);cursor:grab;width:18px;height:18px;box-shadow:var(--shadow-sm);background:#fff;border-radius:50%}.color-picker-actions{justify-content:flex-end;gap:.4rem;display:flex}.color-picker-actions .cancel-btn{padding:.35rem .8rem;font-size:.8rem}.color-picker-actions .cancel-btn:disabled{opacity:.5;cursor:not-allowed}.about-content{max-width:700px}.about-text{color:var(--text-primary);white-space:pre-wrap;font-size:1.1rem;line-height:1.85}.resume-content{text-align:center}.resume-viewer{border:1px solid var(--border-soft);box-shadow:var(--shadow-md);border-radius:16px;margin-bottom:1.5rem;overflow:hidden}.resume-viewer iframe{background:var(--bg-subtle);border:none;width:100%;height:600px;display:block}.download-btn{background:var(--accent);color:#fff;box-shadow:var(--shadow-sm);border-radius:10px;margin-bottom:1.5rem;padding:.75rem 1.5rem;font-weight:600;text-decoration:none;transition:background .15s,transform .15s,box-shadow .15s;display:inline-block}.download-btn:hover{background:var(--accent-hover);box-shadow:var(--shadow-md);transform:translateY(-1px)}.placeholder-text{color:var(--text-tertiary);padding:3rem 0;font-style:italic}.resume-edit{margin-top:1rem}.resume-url-form{flex-wrap:wrap;justify-content:center;align-items:center;gap:.5rem;display:flex}.resume-url-form input{width:300px}.contact-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.25rem;display:grid}.contact-item{background:var(--card-3);border:1px solid var(--card-border-3);text-align:center;box-shadow:var(--shadow-sm);border-radius:16px;flex-direction:column;padding:1.5rem;transition:transform .18s,box-shadow .18s;display:flex}.contact-item:nth-child(5n+1){background:var(--card-3);border-color:var(--card-border-3)}.contact-item:nth-child(5n+2){background:var(--card-5);border-color:var(--card-border-5)}.contact-item:nth-child(5n+3){background:var(--card-1);border-color:var(--card-border-1)}.contact-item:nth-child(5n+4){background:var(--card-4);border-color:var(--card-border-4)}.contact-item:nth-child(5n+5){background:var(--card-2);border-color:var(--card-border-2)}.contact-item:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.contact-item.dragging{opacity:.5}.contact-item-header{justify-content:center;align-items:center;gap:.5rem;margin-bottom:.5rem;display:flex}.contact-actions{border-top:1px solid #0f172a12;justify-content:center;gap:.25rem;margin-top:1rem;padding-top:.75rem;display:flex;position:relative}.contact-label{font-family:var(--font-body);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.08em;font-size:.75rem;font-weight:600}.contact-link{color:var(--accent);word-break:break-all;margin-top:auto;font-size:.95rem;font-weight:500;text-decoration:none;transition:color .15s}.contact-link:hover{color:var(--accent-hover);text-underline-offset:3px;text-decoration:underline}.contact-form{background:var(--bg-primary);border:1px solid var(--border-soft);max-width:500px;box-shadow:var(--shadow-sm);border-radius:16px;flex-direction:column;gap:.75rem;margin-top:1.5rem;padding:1.5rem;display:flex}.contact-form h3{color:var(--text-heading);margin:0 0 .5rem;font-weight:700}.contact-form input{background:var(--bg-input);border:1px solid var(--border-soft);color:var(--text-primary);font-size:.9rem;font-family:var(--font-body);border-radius:8px;padding:.65rem .85rem;transition:border-color .15s,box-shadow .15s}.contact-form input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.editable{cursor:pointer;border-radius:6px;transition:outline .15s;position:relative}.editable:hover{outline:1px dashed var(--accent);outline-offset:4px}.editable-input,.editable-textarea{background:var(--bg-input);border:1px solid var(--accent);width:100%;color:var(--text-primary);font-family:var(--font-body);font-size:inherit;box-shadow:0 0 0 3px var(--accent-soft);border-radius:8px;outline:none;padding:.5rem}.editable-textarea{resize:vertical;min-height:120px;line-height:1.8}.add-btn{background:var(--bg-primary);border:1px dashed var(--border-strong);color:var(--text-secondary);cursor:pointer;font-size:.9rem;font-weight:500;font-family:var(--font-body);border-radius:10px;padding:.65rem 1.5rem;transition:border-color .15s,color .15s,background .15s;display:inline-block}.add-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-softer)}.icon-btn{background:var(--bg-primary);border:1px solid var(--border-soft);color:var(--text-secondary);cursor:pointer;font-size:.85rem;font-family:var(--font-body);border-radius:8px;align-items:center;gap:.3rem;padding:.35rem .7rem;text-decoration:none;transition:border-color .15s,color .15s,background .15s;display:inline-flex}.icon-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-softer)}.icon-btn.danger:hover{color:#dc2626;background:#fee2e2;border-color:#dc2626}.cancel-btn{background:var(--bg-primary);border:1px solid var(--border-soft);color:var(--text-secondary);cursor:pointer;font-family:var(--font-body);border-radius:8px;padding:.55rem 1.1rem;font-size:.9rem;transition:border-color .15s,color .15s}.cancel-btn:hover{border-color:var(--text-primary);color:var(--text-primary)}.project-form{background:var(--bg-primary);border:1px solid var(--border-soft);box-shadow:var(--shadow-sm);border-radius:16px;margin-top:1.5rem;padding:1.5rem}.project-form h3{color:var(--text-heading);margin-bottom:1rem;font-size:1.1rem;font-weight:700}.project-form input,.project-form textarea{background:var(--bg-input);border:1px solid var(--border-soft);width:100%;color:var(--text-primary);font-family:var(--font-body);border-radius:8px;outline:none;margin-bottom:.8rem;padding:.65rem .85rem;font-size:.9rem;transition:border-color .15s,box-shadow .15s}.project-form input:focus,.project-form textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.form-actions{gap:.5rem;display:flex}.form-actions button[type=submit]{background:var(--accent);color:#fff;font-weight:600;font-family:var(--font-body);cursor:pointer;box-shadow:var(--shadow-sm);border:none;border-radius:8px;padding:.55rem 1.5rem;font-size:.9rem;transition:background .15s,box-shadow .15s}.form-actions button[type=submit]:hover{background:var(--accent-hover);box-shadow:var(--shadow-md)}.attachments-manager{border-top:1px solid var(--border-soft);margin-top:.5rem;margin-bottom:.8rem;padding-top:1rem}.attachments-manager h4{color:var(--text-heading);margin-bottom:.6rem;font-size:.95rem;font-weight:600}.attachments-list{margin:0 0 .8rem;padding:0;list-style:none}.attachment-item{color:var(--text-secondary);align-items:center;gap:.5rem;padding:.4rem 0;font-size:.85rem;display:flex}.attachment-item .attachment-label{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.attachment-actions{gap:.5rem;display:flex}.file-upload-btn,.link-add-btn{border:1px solid var(--border-soft);background:var(--bg-primary);color:var(--text-secondary);cursor:pointer;font-size:.8rem;font-family:var(--font-body);border-radius:8px;padding:.45rem .85rem;transition:border-color .15s,color .15s,background .15s}.file-upload-btn:hover,.link-add-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-softer)}.footer{text-align:center;border-top:1px solid var(--border-soft);color:var(--text-tertiary);margin-top:2rem;padding:2.5rem 2rem;font-size:.85rem}.section{opacity:0;transition:opacity .6s ease-out,transform .6s ease-out;transform:translateY(30px)}.section.visible{opacity:1;transform:translateY(0)}.drag-handle{cursor:grab;color:var(--text-tertiary);-webkit-user-select:none;user-select:none;flex-shrink:0;padding:.2rem .4rem;font-size:1rem;transition:color .15s}.drag-handle:hover{color:var(--accent)}.drag-handle:active{cursor:grabbing}.project-card.dragging{box-shadow:0 12px 32px #2563eb2e}.custom-section-header{align-items:flex-start;gap:.8rem;margin-bottom:2.5rem;display:flex}.reorder-overlay{z-index:200;background:#0f172a80;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.reorder-panel{background:var(--bg-primary);border:1px solid var(--border-soft);width:100%;max-width:420px;max-height:80vh;box-shadow:var(--shadow-lg);border-radius:16px;padding:1.5rem;overflow-y:auto}.reorder-panel-header{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.reorder-panel-header h3{color:var(--text-heading);font-size:1.1rem;font-weight:700}.reorder-list{flex-direction:column;gap:.5rem;margin-bottom:1rem;display:flex}.reorder-item{background:var(--bg-subtle);border:1px solid var(--border-soft);cursor:default;border-radius:10px;align-items:center;gap:.8rem;padding:.65rem .85rem;display:flex}.reorder-item-title{color:var(--text-primary);flex:1;font-size:.9rem;font-weight:500}.reorder-item-type{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em;font-size:.7rem;font-weight:600}.reorder-panel-actions{gap:.5rem;margin-bottom:1rem;display:flex}.reorder-panel-actions button:first-child{background:var(--accent);color:#fff;font-weight:600;font-family:var(--font-body);cursor:pointer;box-shadow:var(--shadow-sm);border:none;border-radius:8px;padding:.55rem 1.5rem;transition:background .15s,box-shadow .15s}.reorder-panel-actions button:first-child:hover{background:var(--accent-hover);box-shadow:var(--shadow-md)}.reorder-panel-actions button:first-child:disabled{opacity:.6;cursor:not-allowed}.reorder-divider{border:none;border-top:1px solid var(--border-soft);margin:1rem 0}.add-section-form{flex-direction:column;gap:.6rem;display:flex}.add-section-form input,.add-section-form textarea{background:var(--bg-input);border:1px solid var(--border-soft);width:100%;color:var(--text-primary);font-family:var(--font-body);border-radius:8px;outline:none;padding:.65rem .85rem;font-size:.9rem;transition:border-color .15s,box-shadow .15s}.add-section-form input:focus,.add-section-form textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.upload-zone{border:2px dashed var(--border-strong);text-align:center;color:var(--text-secondary);cursor:pointer;background:var(--bg-subtle);border-radius:16px;max-width:400px;margin:1rem auto;padding:2rem;transition:border-color .15s,background .15s,color .15s}.upload-zone:hover,.upload-zone.drag-over{border-color:var(--accent);background:var(--accent-softer);color:var(--accent)}.upload-icon{margin-bottom:.5rem;font-size:2rem}.url-fallback-btn{color:var(--text-tertiary);cursor:pointer;font-size:.8rem;font-family:var(--font-body);background:0 0;border:none;padding:.3rem;text-decoration:underline;transition:color .15s}.url-fallback-btn:hover{color:var(--accent)}.hero-image{justify-content:center;display:flex}.hero-image img{object-fit:cover;box-shadow:var(--shadow-lg);border-radius:16px}.hero-image-portrait img{width:auto;max-width:100%;max-height:460px}.hero-image-landscape img{max-width:100%;height:auto;max-height:380px}.hero-image-circle img{object-fit:cover;border-radius:50%;width:280px;height:280px}.hero-upload-controls{flex-direction:column;align-items:flex-start;gap:.8rem;margin-top:1.5rem;display:flex}.display-mode-picker{gap:1rem;display:flex}.display-mode-picker label{color:var(--text-secondary);cursor:pointer;align-items:center;gap:.3rem;font-size:.85rem;display:flex}.display-mode-picker input[type=radio]{accent-color:var(--accent)}.mail-link{text-decoration:none;position:relative}.unread-badge{color:#fff;background:#ef4444;border-radius:10px;padding:.1rem .35rem;font-size:.65rem;font-weight:700;line-height:1;position:absolute;top:-6px;right:-8px}.crop-modal-overlay{z-index:1000;background:#0f172ab3;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.crop-modal{background:var(--bg-primary);border:1px solid var(--border-soft);width:100%;max-width:600px;box-shadow:var(--shadow-lg);border-radius:16px;padding:1.5rem}.crop-container{background:var(--bg-subtle);border-radius:12px;width:100%;height:400px;position:relative;overflow:hidden}.crop-controls{color:var(--text-secondary);align-items:center;gap:.75rem;margin-top:1rem;font-size:.85rem;display:flex}.crop-zoom-slider{accent-color:var(--accent);flex:1}.crop-actions{justify-content:flex-end;gap:.75rem;margin-top:1rem;display:flex}@media (width<=900px){.hero{min-height:auto;padding:7rem 1.5rem 3rem}.hero-grid{grid-template-columns:1fr;gap:2.5rem}.hero-text{order:2}.hero-media{order:1;justify-self:center}.hero-upload-controls{align-items:center}}@media (width<=768px){.nav{padding:.8rem 1rem}.nav-links button{display:none}.section{padding:3.5rem 1.5rem}.projects-grid{grid-template-columns:1fr}.resume-viewer iframe{height:400px}.hero-image-portrait img{max-height:320px}.hero-image-circle img{width:200px;height:200px}}@media (width<=480px){.contact-grid{grid-template-columns:1fr}}
