.public-cv{grid-template-rows:auto 1fr auto;grid-template-columns:minmax(0,1fr);min-height:100dvh;display:grid}.public-cv-brand{align-items:center;gap:var(--space-2);min-width:0;min-height:44px;color:var(--ink);text-decoration:none;display:inline-flex}.public-cv-brand:hover{color:var(--ink)}.public-cv-brand svg{flex:none;width:24px;height:24px}.public-cv-brand-name{font-family:var(--font-serif);font-size:var(--text-lg);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.public-cv-brand-tag{border:1px solid var(--border-strong);border-radius:var(--radius-sm);flex:none;padding:1px 6px}.public-cv-desk{padding:var(--space-8) var(--gutter) var(--space-9);background-image:radial-gradient(circle at 1px 1px, oklch(70% .02 var(--hue-paper) / .4) 1px, transparent 0);background-size:18px 18px;justify-content:center;display:flex}.public-cv-sheet{flex:none}.public-cv-footer{justify-content:space-between;gap:var(--space-2) var(--space-6);max-width:calc(210mm + 2 * var(--gutter));width:100%;padding:0 var(--gutter) var(--space-8);font-size:var(--text-sm);color:var(--ink-muted);flex-wrap:wrap;margin:0 auto;display:flex}.public-cv-footer p{margin:0}.page-actions{align-items:center;gap:var(--space-2);flex:none;display:flex}.actions-menu{inset:auto;top:calc(var(--topbar-h) + var(--space-1));right:var(--gutter);width:min(280px,100vw - 32px);padding:var(--space-2);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);color:var(--ink);box-shadow:var(--shadow-overlay);margin:0;position:fixed}.actions-menu:popover-open{animation:dialog-in var(--dur) var(--ease-out);gap:2px;display:grid}.menu-item{align-items:center;gap:var(--space-2);width:100%;min-height:var(--control-h);padding:0 var(--space-3);border-radius:var(--radius-md);color:var(--ink);font-size:var(--text-base);text-align:left;cursor:pointer;background:0 0;border:0;text-decoration:none;display:flex}.menu-item:hover,.menu-item:focus-visible{background:var(--surface-sunken);color:var(--ink)}.menu-item svg{width:16px;height:16px;color:var(--ink-subtle);flex:none}.menu-group{margin:var(--space-2) var(--space-3) 2px;font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-subtle)}.action-toast{left:50%;bottom:calc(var(--space-6) + env(safe-area-inset-bottom));z-index:var(--z-toast);max-width:calc(100vw - 32px);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--ink);color:var(--on-accent);font-size:var(--text-sm);box-shadow:var(--shadow-overlay);animation:action-toast 3.6s var(--ease-out) forwards;margin:0;position:fixed;transform:translate(-50%)}@keyframes action-toast{0%{opacity:0;transform:translate(-50%,8px)}6%,85%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%)}}@media (prefers-reduced-motion:reduce){.action-toast{animation:3.6s linear forwards action-toast-static}@keyframes action-toast-static{0%,95%{opacity:1}to{opacity:0}}}@media screen and (max-width:860px){.public-cv-desk{padding:var(--space-4) var(--space-3) var(--space-8)}.cv-sheet.public-cv-sheet{width:100%;max-width:210mm;min-height:0;padding:var(--space-6) var(--space-5);border-radius:var(--radius-md);flex:1}.public-cv-sheet .cv{--cv-size:15px;--cv-leading:1.45}.public-cv-sheet .cv-name{font-size:22px}.public-cv-sheet .cv-section-title{font-size:17px}.public-cv-sheet .cv-bullets{text-align:left}.public-cv-sheet .cv-contact{flex-direction:column;align-items:center}.public-cv-sheet .cv-contact a{padding:4px 0;display:inline-block}}@media screen and (max-width:560px){.page-actions .btn{min-height:44px}.public-cv-sheet .cv-entry-head{flex-direction:column;gap:0}.public-cv-sheet .cv-entry-date{color:#444;font-size:.9em}.public-cv-sheet .cv-skills,.public-cv-sheet .cv-skills tbody,.public-cv-sheet .cv-skills tr,.public-cv-sheet .cv-skills th,.public-cv-sheet .cv-skills td{width:auto;display:block}.public-cv-sheet .cv-skills th{border-bottom:0;padding-bottom:0;font-weight:700}.public-cv-brand-tag,.hide-xs{display:none}}@media print{.public-cv{display:block}.public-cv-desk{background:0 0;padding:0;display:block}.public-cv-sheet{border-radius:0}}
