/* Shared Nil OS surfaces. Pixel chrome contains unaltered, full-quality work. */
.pixel-icon { width:32px; height:32px; image-rendering:pixelated; flex-shrink:0; }
.pixel-meta { font:12px/1.6 var(--font-mono); letter-spacing:.04em; }
.pixel-badge { display:inline-block; border:1px solid var(--brand-graphite); padding:4px 7px; font:12px/1.4 var(--font-mono); background:var(--brand-paper); color:var(--brand-ink); }
.pixel-actions,.skill-tags { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin:16px 0; }
.pixel-toolbar { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px; padding:8px; flex-shrink:0; border-bottom:1px solid var(--brand-graphite); }
.pixel-address { display:flex; align-items:center; gap:8px; margin:6px; padding:6px 8px; box-shadow:var(--inset); background:var(--brand-paper); font:12px/1.6 var(--font-mono); min-width:0; }
.pixel-address > span:last-child { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.app-scroll { flex:1; min-height:0; overflow:auto; overscroll-behavior:contain; padding:24px; background:var(--brand-paper); color:var(--brand-ink); font:16px/1.6 var(--font-body); }
.app-scroll h1,.app-scroll h2,.app-scroll h3 { line-height:1.15; overflow-wrap:anywhere; }
.app-scroll h1,.app-scroll h2 { font-family:var(--font-display); font-weight:600; }
.app-scroll h1 { font-size:48px; }
.app-scroll h2 { font-size:32px; }
.app-scroll h3 { font-size:20px; }
.app-scroll p { margin:0 0 16px; }
.app-scroll a { color:var(--brand-ink); text-decoration:underline; text-underline-offset:3px; }
.app-scroll ul { padding-left:22px; }
.app-scroll li { margin-bottom:8px; }
.window .classic-button,.pixel-tabs button,.journal-nav button { border-radius:0; min-height:32px; font-family:var(--font-body); }
.window-controls button { border-radius:0; font-family:var(--font-mono); }
.window [data-window-action="desktop"],.mobile-desktop-label { display:none; }
.popup-menu.window { min-height:0; }
.window :is(button,a,input,textarea,summary,[tabindex="0"]):focus-visible { outline:2px solid var(--brand-red); outline-offset:2px; }
.window :is(input[type="checkbox"],input[type="radio"]) { accent-color:var(--brand-ink); }
.window :is(input,textarea,select) { border-radius:0; }
.window { scrollbar-color:var(--brand-graphite) var(--brand-paper); scrollbar-width:auto; }
.window ::-webkit-scrollbar { width:14px; height:14px; }
.window ::-webkit-scrollbar-track { background:repeating-conic-gradient(#d7d3c9 0% 25%,var(--brand-paper) 0% 50%) 0/2px 2px; }
.window ::-webkit-scrollbar-thumb { background:var(--brand-paper); border:1px solid var(--brand-ink); box-shadow:inset 1px 1px white,inset -1px -1px var(--brand-graphite); }
.window ::-webkit-scrollbar-corner { background:var(--brand-paper); }
.window :is(.project-page-gallery img,.photo-full img) { image-rendering:auto; border-radius:0; }
.pixel-tabs { display:flex; overflow-x:auto; flex-shrink:0; padding:8px 8px 0; gap:3px; background:var(--brand-surface); }
.pixel-tabs button { padding:8px 12px; white-space:nowrap; box-shadow:var(--bevel); color:var(--brand-ink); background:var(--brand-surface); border:1px solid var(--brand-graphite); }
.pixel-tabs [aria-selected="true"] { background:var(--brand-paper); border-bottom-color:var(--brand-paper); font-weight:600; }
.resume-window { width:min(940px,calc(100vw - 160px)); height:min(780px,calc(100dvh - 120px)); left:150px; top:36px; min-width:320px; container-type:inline-size; }
.profile-header { display:flex; align-items:flex-start; gap:24px; margin-bottom:24px; }
.profile-header h2 { margin:6px 0 12px; }
.profile-header p { margin-bottom:8px; }
.pixel-portrait { width:192px; height:192px; flex:0 0 192px; object-fit:contain; image-rendering:pixelated; border:1px solid var(--brand-ink); padding:3px; box-shadow:2px 2px var(--brand-graphite); }
.profile-facts { display:grid; grid-template-columns:auto 1fr; gap:8px 20px; border-block:1px solid var(--brand-graphite); padding:16px 0; }
.profile-facts dd { margin:0; overflow-wrap:anywhere; }
.profile-note { border-block:1px solid var(--brand-graphite); padding:16px 0 0; margin:20px 0; }
.about-window { width:min(720px,calc(100vw - 180px)); height:min(700px,calc(100dvh - 120px)); container-type:inline-size; }
.about-profile { line-height:1.7; }
.resume-timeline { border-left:2px solid var(--brand-graphite); margin-left:6px; }
.resume-timeline details { position:relative; padding:0 0 16px 20px; }
.resume-timeline details::before { content:""; position:absolute; left:-5px; top:10px; width:8px; height:8px; background:var(--brand-ink); }
.resume-timeline summary { display:grid; gap:4px; list-style:none; border:1px solid var(--brand-graphite); padding:12px 34px 12px 12px; position:relative; }
.resume-timeline summary::after { content:"+"; position:absolute; right:12px; top:12px; font:18px var(--font-mono); }
.resume-timeline details[open] summary::after { content:"−"; }
.resume-timeline summary::-webkit-details-marker { display:none; }
.timeline-date { font:12px/1.6 var(--font-mono); }
.timeline-details { padding:8px 12px; border:1px solid var(--brand-graphite); border-top:0; }
.timeline-details ul { margin-top:8px; }
.education-list > section { border-bottom:1px solid var(--brand-graphite); padding:8px 0 16px; }
.skill-tags [aria-pressed="true"] { background:var(--brand-ink); color:var(--brand-paper); box-shadow:var(--inset); }
.skill-result:not(:empty) { margin-top:24px; border-top:1px solid var(--brand-graphite); padding-top:16px; }
.skill-result h4 { font:12px var(--font-mono); text-transform:uppercase; }
.skill-result section { border-bottom:1px dotted var(--brand-graphite); margin-bottom:16px; }
.classic-resume { font:15px/1.6 var(--font-body); max-width:850px; margin:auto; }
.classic-resume header { border-bottom:2px solid var(--brand-ink); margin-bottom:24px; }
.classic-resume h1 { font:600 40px/1.1 var(--font-display); margin:0 0 12px; }
.classic-resume h2 { font-size:24px; border-bottom:1px solid var(--brand-graphite); padding-bottom:6px; margin:24px 0 16px; }
.classic-resume h3 { font:600 18px/1.3 var(--font-body); margin:0 0 4px; }
.classic-job { margin-bottom:20px; }
.classic-job p,.classic-education p { margin:0 0 5px; }
.classic-education { margin-bottom:18px; }
.classic-resume-secondary { display:grid; grid-template-columns:1fr 1fr; gap:32px; }
.classic-resume footer { border-top:1px solid var(--brand-graphite); padding-top:16px; margin-top:24px; }
#resume-print-root { display:none; }
.journal-shell { display:flex; flex-direction:column; min-height:0; flex:1; }
.journal-nav { display:flex; flex-wrap:wrap; gap:1px; padding:6px; border-bottom:1px solid var(--brand-ink); }
.journal-nav button { background:var(--brand-surface); color:var(--brand-ink); padding:7px 10px; border:1px solid var(--brand-graphite); }
.journal-nav [aria-pressed="true"] { background:var(--brand-ink); color:var(--brand-paper); }
.work-window { width:min(1040px,calc(100vw - 160px)); height:min(800px,calc(100dvh - 115px)); }
.journal-page { padding:0 32px 32px; }
.journal-heading { padding:32px 0 24px; border-bottom:2px solid var(--brand-ink); margin-bottom:28px; }
.journal-heading h1 { font-size:clamp(40px,8cqw,72px); margin:8px 0 20px; }
.journal-heading p:last-child { max-width:42em; }
.journal-section-label { font:12px/1.5 var(--font-mono) !important; letter-spacing:.06em; margin:28px 0 16px; }
.journal-entry { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.2fr); gap:24px; padding:24px 0; border-bottom:1px solid var(--brand-graphite); }
.journal-entry button { text-align:left; color:var(--brand-ink); }
.journal-entry h2,.journal-entry h3 { margin:8px 0 16px; }
.journal-entry h2 button,.journal-entry h3 button { background:transparent; font:inherit; padding:0; line-height:inherit; }
.journal-entry h2 button:hover,.journal-entry h3 button:hover { text-decoration:underline; }
.journal-cover { padding:3px; box-shadow:var(--inset); background:var(--brand-paper); align-self:start; }
.journal-cover img { width:100%; height:auto; display:block; image-rendering:auto; }
.journal-featured { grid-template-columns:1fr; gap:12px; padding-top:0; }
.journal-featured .journal-cover img { aspect-ratio:1.6; object-fit:cover; }
.journal-entry .pixel-actions { margin:0 0 12px; }
.journal-entry-copy > p { font-size:16px; line-height:1.6; }
.journal-archive { padding:28px 0 0; }
.journal-archive h2 { font-size:28px; }
.journal-archive button { display:flex; justify-content:space-between; gap:16px; width:100%; text-align:left; padding:14px 0; border-bottom:1px dotted var(--brand-graphite); background:transparent; color:var(--brand-ink); }
.journal-archive button span { font:12px/1.6 var(--font-mono); white-space:nowrap; }
.request-panel { padding:16px 0; }
.contact-utility { text-align:left; }
.contact-utility > h2 { font-size:42px; }
.contact-utility section { border-top:1px solid var(--brand-graphite); margin-top:24px; padding-top:16px; }
.contact-utility h3 { margin:0 0 16px; }
.contact-email { overflow-wrap:anywhere; }
.copy-status { font:12px/1.6 var(--font-mono); }
.social-link { display:inline-flex; gap:12px; align-items:center; padding:8px 12px; border:1px solid var(--brand-graphite); }
#window-contact { width:min(520px,calc(100vw - 180px)); height:min(690px,calc(100dvh - 115px)); }
.photography-window,.photo-viewer-window { width:min(1000px,calc(100vw - 160px)); height:min(780px,calc(100dvh - 120px)); left:130px; top:30px; container-type:inline-size; }
.photo-archive h1 { margin:8px 0 16px; }
.photo-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin:24px 0; }
.photo-file { padding:5px; background:var(--brand-paper); color:var(--brand-ink); box-shadow:var(--bevel); text-align:left; border:1px solid var(--brand-graphite); }
.photo-file img { width:100%; height:auto; aspect-ratio:1; object-fit:cover; image-rendering:auto; display:block; }
.photo-file > span { display:block; padding:10px 4px; font:12px/1.5 var(--font-mono); overflow-wrap:anywhere; }
.photo-full { padding:0; background:var(--brand-ink); display:flex; align-items:flex-start; justify-content:center; }
.photo-full img { display:block; max-width:100%; width:auto; height:auto; object-fit:contain; }
.photo-full img[hidden] { display:none; }
.photo-full [data-photo-error] { color:var(--brand-paper); padding:24px; }
@container (max-width:600px) {
  .profile-header { flex-direction:column; gap:16px; }
  .pixel-portrait { width:96px; height:96px; flex-basis:96px; }
  .classic-resume-secondary,.journal-entry { grid-template-columns:1fr; }
  .journal-page { padding-inline:20px; }
  .photo-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .profile-facts { grid-template-columns:1fr; }
  .journal-archive button { flex-direction:column; gap:4px; }
}
/* Touch mode uses one dominant app, and an explicit Desktop control. */
@media (max-width:900px),(pointer:coarse) {
  .desktop-icons { display:flex !important; flex-direction:row !important; flex-wrap:nowrap !important; top:8px !important; left:6px !important; right:6px !important; width:auto !important; max-height:92px; gap:8px; overflow-x:auto; }
  .desktop-icon { min-width:80px; min-height:80px; flex:0 0 80px; }
  .desktop-icons .recycle-icon { position:static !important; display:flex !important; }
  .window.mobile-app { left:max(6px,calc((100vw - 960px)/2)) !important; top:104px !important; width:min(960px,calc(100vw - 12px)) !important; height:calc(100dvh - 160px) !important; min-height:0; }
  .window .titlebar { min-height:44px; height:44px; }
  .window [data-window-action="desktop"] { display:block; width:auto; min-width:72px; font:14px var(--font-body); padding:0 8px; }
  .window [data-window-action="maximize"],.window [data-window-action="minimize"] { display:none; }
  .window-controls { flex-shrink:0; }
  .window-controls button { width:40px; height:36px; }
  .window .classic-button,.journal-nav button,.pixel-tabs button,.skill-tags button { min-height:44px; }
  .app-scroll { padding:20px; }
  .journal-page { padding:0 20px 24px; }
  .photo-full { padding:0; }
  .quick-desktop { display:flex; align-items:center; width:auto; gap:4px; }
  .mobile-desktop-label { display:inline; font-size:12px; }
  .pixel-toolbar { gap:6px; }
  .start-menu { max-height:calc(100dvh - 64px); overflow:auto; }
}
@media (max-width:600px) {
  .window.mobile-app { top:4px !important; height:calc(100dvh - 56px) !important; }
  .window .titlebar > div:first-child h1,.window .titlebar > div:first-child h2 { font-size:14px; }
  .pixel-tabs button { padding-inline:10px; }
  .pixel-address { font-size:11px; }
  .profile-header { flex-direction:column; }
  .journal-nav button { flex:1 1 auto; font-size:13px; }
  .journal-page { padding-inline:16px; }
  .photo-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
  .photo-full { padding:0; }
  .photo-viewer-window .pixel-toolbar .classic-button { padding-inline:6px; font-size:13px; }
  .profile-facts { grid-template-columns:1fr; }
  .classic-resume-secondary { grid-template-columns:1fr; }
}
@media print {
  html,body.printing-resume { height:auto !important; overflow:visible !important; background:white !important; }
  body.printing-resume > :not(#resume-print-root) { display:none !important; }
  body.printing-resume #resume-print-root { display:block !important; position:static; color:#000; background:#fff; }
  #resume-print-root .classic-resume { font:10pt/1.4 Arial,sans-serif; max-width:none; }
  #resume-print-root h1 { font:bold 24pt/1.1 Arial,sans-serif; }
  #resume-print-root h2 { font:bold 13pt Arial,sans-serif; margin:16pt 0 8pt; break-after:avoid; }
  #resume-print-root h3 { font:bold 11pt Arial,sans-serif; }
  #resume-print-root p { margin:0 0 6pt; }
  #resume-print-root ul { margin:6pt 0 10pt; padding-left:15pt; }
  #resume-print-root .classic-job,#resume-print-root .classic-education { break-inside:avoid; }
  #resume-print-root .classic-resume-secondary { display:block; }
  #resume-print-root a { color:#000; text-decoration:none; }
  @page { size:A4; margin:14mm; }
}

/* Resume is readable before enhancement; the app reuses that same window. */
.resume-shell { display:flex; flex-direction:column; flex:1; min-height:0; overflow:hidden; }
.resume-static { flex:1; min-height:0; overflow:auto; }
