/* Physical desk skin. Shared content and behaviour stay in existing components.
   Illumination comes from the upper left. Colour families tint reusable assets. */
:root{
 --surface-seed:#b1b6b2;--paper-seed:#e7deca;
 --hardware-bright:color-mix(in srgb,var(--metal-seed),#fffdf1 82%);--hardware-mid:var(--metal-seed);--hardware-dark:color-mix(in srgb,var(--metal-seed),#101d24 52%);
 --profile-ink:var(--ink-seed);--stationery-seed:#f4edda;--stationery-ink:#20313b;--note-seed:#f4dfad;--note-ink:#29313a;
 --wall-top:color-mix(in srgb,var(--surface-seed),white 12%);--wall-bottom:color-mix(in srgb,var(--surface-seed),#463322 15%);
 --casing-seed:#e2ded2;--profile-seed:#e9dfcb;--screen-seed:#f8f1e3;--screen-ink:#193349;
 --wood-seed:#e6c99a;--wood-tint:var(--wood-seed);--wood-finish:#f4deb9bd;--scene-shadow:#221a1070;--scene-contact:#1d160f85;
 --wood-texture:url('./assets/desk-walnut.webp');--wall-texture:url('./assets/desk-plaster.webp');--cork-texture:url('./assets/desk-cork.webp');
 --control:color-mix(in srgb,var(--paper-seed),var(--metal-seed) 15%);
}
:root[data-theme=dark]{
 --surface-seed:#46545a;--paper-seed:#5b6870;--ink-seed:#fffaf0;--accent-seed:#d5f1ff;--muted:color-mix(in srgb,var(--ink-seed),var(--paper-seed) 10%);--cork-seed:#976c43;--wood-seed:#493024;--metal-seed:#657781;
 --action-seed:#f18c37;--action-on:#21180e;--hardware-bright:color-mix(in srgb,var(--metal-seed),#f4f4e9 57%);--hardware-dark:color-mix(in srgb,var(--metal-seed),#101d24 69%);
 --stationery-seed:#e7ddc6;--stationery-ink:#1d303c;--note-seed:#e7ce96;--note-ink:#22313a;
 --wall-top:color-mix(in srgb,var(--surface-seed),#adbac2 11%);--wall-bottom:color-mix(in srgb,var(--surface-seed),#071115 12%);--casing-seed:#4d5e67;--profile-seed:#645f53;--screen-seed:#e7e3d5;--screen-ink:#153047;
 --wood-tint:var(--wood-seed);--wood-finish:#23170d55;--scene-shadow:#0009;--scene-contact:#000b;--control:#3f515b;
}
/* Calendar and monitor finishes are independent of paper and cabinet paint.
   The theme samples inherit the same tokens as the actual desk. */
:root,[data-theme-preview=ivory]{--calendar-seed:#b6c8d4;--monitor-seed:#b4afa7;--calendar-ink:#203442;--monitor-ink:#203442}
:root[data-palette=plum],[data-theme-preview=plum]{--calendar-seed:#d1bbaa;--monitor-seed:#9caebf;--calendar-ink:#203442;--monitor-ink:#203442}
:root[data-palette=moss],[data-theme-preview=moss]{--calendar-seed:#b3c9bf;--monitor-seed:#b6a493;--calendar-ink:#203442;--monitor-ink:#203442}
:root[data-theme=dark],:root[data-theme=dark] [data-theme-preview=ivory]{--calendar-seed:#304c61;--monitor-seed:#444440;--calendar-ink:#fffaf0;--monitor-ink:#fffaf0}
:root[data-theme=dark][data-palette=plum],:root[data-theme=dark] [data-theme-preview=plum]{--calendar-seed:#715341;--monitor-seed:#283c51;--calendar-ink:#fffaf0;--monitor-ink:#fffaf0}
:root[data-theme=dark][data-palette=moss],:root[data-theme=dark] [data-theme-preview=moss]{--calendar-seed:#354e43;--monitor-seed:#493a30;--calendar-ink:#fffaf0;--monitor-ink:#fffaf0}
.calendar-object{
 --paper:var(--calendar-seed);--paper2:color-mix(in srgb,var(--calendar-seed),var(--calendar-ink) 10%);
 --ink:var(--calendar-ink);--muted:color-mix(in srgb,var(--calendar-ink),var(--calendar-seed) 12%);
 --line:color-mix(in srgb,var(--calendar-ink),var(--calendar-seed) 50%);--panel:var(--calendar-seed);
 --blue:var(--calendar-ink);--blue-hover:var(--calendar-ink);--accent-on:var(--calendar-seed);
 --control:color-mix(in srgb,var(--calendar-seed),var(--calendar-ink) 8%);color:var(--calendar-ink)
}
.monitor-object{--ink:var(--monitor-ink);color:var(--monitor-ink)}
/* Wall, rear desk edge, working surface and solid desk front. */
body{background-color:var(--wall-bottom);background-image:radial-gradient(ellipse at 18% 0%,#fff2,transparent 66%),linear-gradient(105deg,var(--wall-top),var(--wall-bottom));background-attachment:fixed;isolation:isolate}
body::after{content:'';position:fixed;inset:0;z-index:-2;pointer-events:none;background:var(--wall-texture) repeat;background-size:480px;mix-blend-mode:soft-light;opacity:.22}
body[data-view=desk]::before{content:'';position:fixed;z-index:-1;pointer-events:none;top:66dvh;bottom:0;left:0;right:0;background-color:var(--wood-tint);background-image:linear-gradient(180deg,#fff2 0px,#21140970 3px,#1c100c36 16px,transparent 70px,#ffffff10 80%,#22100625),linear-gradient(var(--wood-finish),var(--wood-finish)),var(--wood-texture);background-size:100% 100%,100% 100%,960px 480px;background-blend-mode:normal,normal,luminosity;border-top:6px solid color-mix(in srgb,var(--wood-seed),#be8856 30%);border-bottom:14px solid color-mix(in srgb,var(--wood-seed),black 30%);box-shadow:0 -2px 0 #fff2,0 -5px 9px #0003,inset 0 -2px 0 #ffffff45,inset 0 -7px 9px #0004}
body .topbar{min-height:64px;background:linear-gradient(180deg,color-mix(in srgb,var(--surface-seed),white 12%),var(--surface-seed));box-shadow:inset 0 1px #fff4,0 2px 4px #0002;border-bottom:1px solid #0004}
.topbar .wordmark{font-family:'Public Sans',sans-serif;font-weight:900;letter-spacing:-3px;color:var(--orange);font-size:40px;text-shadow:0 1px #fff2}.topbar .wordmark span{color:inherit}
body[data-view=desk] #main{padding:32px 44px 43px;max-width:1840px}
body[data-view=desk] .desk-expanded{gap:38px 32px;grid-template-columns:minmax(0,.87fr) minmax(0,1.58fr) minmax(0,1fr);grid-template-rows:minmax(0,1.13fr) minmax(0,1fr)}
body[data-view=desk] .desk-expanded::before{display:none}
body[data-view=desk] .object h2,.calendar-top h2,.compact-calendar-header h2{font-family:'Public Sans',sans-serif;font-weight:900;letter-spacing:-1.15px;line-height:1.13;text-shadow:0 1px 0 #ffffff28}
.desk-expanded .profile-content h2,.desk-expanded .cv-content h2{font-size:29px}.desk-expanded .profile-content{padding:24px 23px 23px}.desk-expanded .profile-content .bio{-webkit-line-clamp:4}
.profile-object{transform:rotate(-.7deg)}
.profile-object .material-base,.compact-profile .material-base{background-color:var(--paper);background-image:linear-gradient(125deg,#ffffff20,transparent 60%,#00000009);background-size:100% 100%;background-repeat:no-repeat;border-radius:0;border:1px solid color-mix(in srgb,var(--paper),black 19%);box-shadow:0 1px 0 color-mix(in srgb,var(--paper),white 30%),1px 3px 1px #574a352c,3px 9px 9px var(--scene-shadow),8px 16px 24px #0002}
.profile-object,.compact-profile{--paper:var(--profile-seed);--ink:var(--profile-ink);color:var(--profile-ink)}
[data-theme=dark] .profile-object,[data-theme=dark] .compact-profile{--paper2:color-mix(in srgb,var(--profile-seed),white 10%);--muted:color-mix(in srgb,var(--profile-ink),var(--profile-seed) 15%);--control:#434944}
.washi{height:30px;opacity:.94;background-color:#cfb994;background-image:repeating-conic-gradient(#9d7b512f 0% 25%,transparent 0% 50%);background-size:12px 15px;box-shadow:inset 0 0 0 1px #fff2,0 1px 1px #0002}
.washi-left{transform:rotate(-39deg);width:75px;left:-13px}.washi-right{transform:rotate(27deg);width:72px;right:-12px}
.monogram{border-radius:5px;background:linear-gradient(135deg,color-mix(in srgb,var(--blue),var(--paper) 75%),color-mix(in srgb,var(--blue),var(--paper) 55%));box-shadow:inset 0 1px 1px #fff6,1px 2px 2px #0002;font-family:'Public Sans',sans-serif;font-weight:750}
/* Ring binder: rounded backing, inset paper block, punched holes and metal. */
.calendar-object .material-base{inset:-10px -12px -12px;border:1px solid var(--hardware-dark);border-radius:23px;background:linear-gradient(125deg,var(--hardware-bright),var(--casing-seed) 9% 83%,var(--hardware-mid));box-shadow:inset 2px 2px 2px #fff8,inset -2px -3px 3px #0005,0 3px 0 var(--hardware-dark),2px 6px 3px #0004,5px 12px 12px var(--scene-shadow),10px 20px 26px #0002}
.calendar-content{background:linear-gradient(120deg,#ffffff18,transparent 70%),var(--paper);border-radius:13px;border:1px solid color-mix(in srgb,var(--paper),black 45%);box-shadow:0 -2px 1px #0006,inset 1px 1px 1px #ffffff45,0 1px 0 var(--hardware-bright),0 3px 0 color-mix(in srgb,var(--paper),black 16%),0 5px 0 var(--hardware-mid)}
.desk-expanded .calendar-content{padding:29px 20px 21px}
/* A bent wire loop returns behind the sheet; its front enters a small punch. */
.binding{--ring-width:14px;--ring-height:44px;--ring-tube:3px;--hole-width:12px;--hole-height:8px;top:-24px;left:5%;right:5%;height:var(--ring-height)}
.binding i{position:relative;isolation:isolate;display:block;flex-shrink:0;width:var(--ring-width);height:var(--ring-height);border:0;border-radius:0;transform:none;background:none;box-shadow:none}
.binding i::before{content:'';position:absolute;z-index:1;inset:0 1px 3px 2px;padding:var(--ring-tube);border-radius:52% 48% 48% 52% / 28% 28% 16% 18%;background:linear-gradient(95deg,#28363e 2%,#72818a 18%,#f5f5ec 38%,#bec9ca 53%,#51616a 76%,#202c34 94%);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude;clip-path:polygon(0 0,100% 0,100% 100%,50% 100%,50% 42%,0 42%);filter:drop-shadow(1px 1px 1px #0006)}
.binding .ring-front{position:absolute;z-index:2;top:4px;bottom:4px;left:calc(50% + 1px);width:calc(var(--ring-tube) + 1px);border-radius:40% 50% 50% 45% / 16% 14% 9% 9%;background:linear-gradient(90deg,#eff2ed,#bdc7c8 34%,#657780 67%,#2a3941);box-shadow:1px 1px 1px #0005}
.binding i::after{content:'';position:absolute;z-index:0;left:calc(50% + 2px);bottom:0;width:var(--hole-width);height:var(--hole-height);margin:0;transform:translateX(-50%);border:1px solid color-mix(in srgb,var(--paper),black 32%);border-radius:50%;background:radial-gradient(ellipse at 56% 66%,#202526,#090f13 68%);box-shadow:inset 0 1px 2px #000c,0 1px 0 color-mix(in srgb,var(--paper),white 28%)}
.calendar-shortcut .binding i{background:linear-gradient(90deg,#53616a,#eff0e8 40%,#68787e);border:1px solid #59666b;border-radius:3px}
.calendar-shortcut .binding i::before,.calendar-shortcut .ring-front{display:none}
.desk-expanded .calendar-top h2{font-size:clamp(24px,2.05vw,32px)}.calendar-top .expand-mark{font-size:13px}.calendar-top .eyebrow{color:var(--muted)}
.month-grid{border-radius:4px;box-shadow:inset 1px 1px 3px #0002,0 1px #fff4}.day.has-event span{box-shadow:inset 0 1px #fff4,0 1px 2px #0003}
.appointment.day-agenda{border:1px solid color-mix(in srgb,var(--paper),black 25%);border-top:1px solid color-mix(in srgb,var(--paper),white 40%);border-radius:5px;background:linear-gradient(140deg,color-mix(in srgb,var(--paper),white 7%),var(--paper));box-shadow:inset 0 1px 1px #fff3,0 2px 2px #0003,3px 5px 6px #0002;padding:13px}
.day-agenda .agenda-card h3{font-family:'Public Sans',sans-serif;font-weight:800;letter-spacing:-.6px}.calendar-bottom{padding-inline:4px}
/* Cork and warm pinned stationery keep their own material in both themes. */
/* One cork finish, identical scale and wash on the desk, collection and specimen. */
.jobs-object .material-base,.compact-jobs .material-base,.collection-jobs{
 background-color:var(--cork-seed);
 background-image:linear-gradient(color-mix(in srgb,var(--cork-seed) 56%,transparent),color-mix(in srgb,var(--cork-seed) 56%,transparent)),var(--cork-texture);
 background-size:auto,230px;background-blend-mode:normal,luminosity;
 border:6px solid var(--hardware-mid);
 border-top-color:color-mix(in srgb,var(--hardware-mid),var(--hardware-bright) 28%);
 border-bottom-color:color-mix(in srgb,var(--hardware-mid),var(--hardware-dark) 16%);
 border-radius:5px;
 box-shadow:inset 0 0 0 1px #36261880,inset 1px 2px 3px #27190d60,0 0 0 1px var(--hardware-dark),0 -1px 0 1px color-mix(in srgb,var(--hardware-bright),transparent 40%),0 2px 0 var(--hardware-dark),2px 5px 6px var(--scene-shadow);
}
.frame-screw{top:1px;width:5px;height:5px;background:linear-gradient(135deg,#d7dfdc 0%,#97a1a3 39%,#59696f 44% 52%,#d9dfda 58%,#6b797e 100%);border:1px solid #566268;box-shadow:0 1px 1px #0005;transform:rotate(12deg)}
.screw-left{left:1px}.screw-right{right:1px}
.screw-bottom-left{top:auto;bottom:1px;left:1px}.screw-bottom-right{top:auto;bottom:1px;right:1px}
.collection-jobs>.screw-left{top:-5px;left:-5px}.collection-jobs>.screw-right{top:-5px;right:-5px}
.collection-jobs>.screw-bottom-left{bottom:-5px;left:-5px}.collection-jobs>.screw-bottom-right{bottom:-5px;right:-5px}
.desk-expanded .jobs-content{padding:15px 18px 20px}
.pinned-heading,.files-caption{background:linear-gradient(165deg,#f0eee4,#b8bfbe 75%,#e0e2dc);color:#263239;border:1px solid #666e6e;border-radius:5px;transform:none;box-shadow:inset 0 0 0 2px #ffffffa0,0 0 0 2px #9da4a2,0 3px 3px #0006;position:relative}
.pinned-heading::before,.pinned-heading::after,.files-caption::before,.files-caption::after{content:'';position:absolute;top:6px;bottom:6px;width:5px;left:5px;background:radial-gradient(circle at 40% 40%,#ffffff,#727a7c 60%,#384449 75%) top/5px 5px no-repeat,radial-gradient(circle at 40% 40%,#ffffff,#727a7c 60%,#384449 75%) bottom/5px 5px no-repeat}
.pinned-heading::after,.files-caption::after{left:auto;right:5px}
.desk-expanded .pinned-heading{font-size:24px;padding:5px 23px;margin-bottom:18px}
.job-note,[data-theme=dark] .job-note{--ink:var(--note-ink);--blue:#24576c;background-color:var(--note-seed);background-image:linear-gradient(165deg,#fff5,transparent 45%,#9b71241a);color:var(--note-ink);border:1px solid #91784840;border-radius:0;box-shadow:0 1px 1px #0003,2px 6px 5px #25130470,5px 11px 13px #25130430}
.job-note::before{width:15px;height:15px;top:3px;box-shadow:1px 4px 3px #0007,inset 0 1px 1px #fff8}
.desk-expanded .job-note{padding:21px 12px 10px;transform:rotate(-3deg)}
.desk-expanded .job-note:nth-child(2){transform:rotate(2.5deg);margin:4px 0 0 6px;background-color:color-mix(in srgb,var(--note-seed),white 22%)}
.job-note strong{font-family:'Public Sans',sans-serif;font-weight:800;letter-spacing:-.5px}.desk-expanded .job-note .stamp{margin-top:8px;color:#24576c;font-size:11px}
.job-note:hover{box-shadow:0 2px 2px #0004,3px 9px 8px #25130470}.jobs-content .empty{background:var(--stationery-seed);color:var(--stationery-ink)}
/* Independent sheet layers and a supporting tray. */
.cv-object,.compact-cvs{--paper:var(--stationery-seed);--ink:var(--stationery-ink);--paper2:color-mix(in srgb,var(--stationery-seed),#8b7557 16%);--line:#9c948277;--muted:#53606a;--blue:#205d7a;--control:#e4ddcb}
.cv-object .material-base{inset:9px -6px -7px;border:2px solid var(--hardware-dark);border-radius:5px 5px 9px 9px;background:linear-gradient(110deg,var(--hardware-bright),var(--hardware-mid) 8% 94%,var(--hardware-dark));box-shadow:inset 0 0 0 2px #ffffff65,0 4px 0 var(--hardware-dark),1px 7px 3px #0007,5px 13px 15px var(--scene-shadow)}
.cv-content{transform:rotate(.6deg);background:linear-gradient(115deg,#fff8,transparent 60%,#b79a6420),var(--stationery-seed);border:1px solid #b7aa905f;border-radius:0;box-shadow:0 1px 0 #fff6,1px 3px 2px #49352255,0 5px 0 -1px var(--paper),1px 6px 0 #8e80684a}
.paper-underlay,.stack-sheet{position:absolute;pointer-events:none;border:1px solid #a18e6e66;background:var(--stationery-seed);box-shadow:0 1px 1px #422e1a30,0 3px 0 -1px #eee4ce,0 4px 0 -1px #998b7470;z-index:-1}
.paper-underlay{inset:-2px 5px 8px 4px;transform:rotate(-2.1deg)}.stack-sheet-middle{inset:4px 2px 3px -3px;transform:rotate(1.8deg);z-index:-2}.stack-sheet-back{inset:1px 0 -1px 2px;transform:rotate(-.9deg);z-index:-2}
.desk-expanded .cv-content{padding:17px 22px 20px}.desk-expanded .cv-content h2{margin-bottom:12px}.cv-sheet h3{font-family:'Public Sans',sans-serif;font-weight:800}
/* Painted monitor housing, dark gasket, glass and grounded feet. */
.monitor-object .material-base{border-radius:28px 28px 26px 26px;border:1px solid var(--hardware-dark);background:linear-gradient(135deg,color-mix(in srgb,var(--monitor-seed),white 42%) 0%,var(--monitor-seed) 17% 73%,color-mix(in srgb,var(--monitor-seed),black 24%));box-shadow:inset 2px 3px 2px #fff8,inset -3px -5px 3px #0004,0 4px 0 var(--hardware-mid),0 8px 0 var(--hardware-dark),3px 11px 5px #0005,7px 19px 17px var(--scene-shadow)}
.monitor-screen{--ink:var(--screen-ink);--muted:#4c5b63;--blue:#126084;--line:#8e969555;color:var(--screen-ink);border-color:#404a4d;border-radius:15px;background:var(--screen-seed);box-shadow:0 0 0 1px var(--hardware-dark),0 1px 0 2px #ffffff80,inset 3px 5px 8px #14232980,inset -1px -1px 4px #13202950}
.monitor-screen::after{content:'';pointer-events:none;position:absolute;inset:0;background:linear-gradient(125deg,#fff3,transparent 27% 68%,#fff1);border-radius:8px}
.monitor-label,[data-theme=dark] .monitor-label{color:var(--ink);font-size:14px;font-weight:800;letter-spacing:0;padding-left:6px}
.desk-expanded .monitor-object{padding:15px 24px 19px;height:calc(100% - 15px);margin-bottom:15px}.desk-expanded .monitor-screen{border-width:9px;border-radius:14px;padding:15px 18px}
.mini-copy h3{font-family:'Public Sans',sans-serif;font-weight:800;letter-spacing:-1px}.mini-art{background:#b1c3c6!important;border-radius:2px;box-shadow:inset 0 1px #fff4}.mini-art::after{background:linear-gradient(125deg,#d39c78,#b65d31)!important;box-shadow:0 -3px 5px #6d3a1f30}
.monitor-controls::after{background:#739544;width:9px;height:9px;box-shadow:0 0 0 2px #2c352f,0 0 0 3px #fff4,inset 1px 1px 1px #dbe7ae,0 0 4px #b7ce6266}
.monitor-foot{display:none}.monitor-feet{position:absolute;left:8%;right:8%;bottom:-20px;height:20px;display:flex;justify-content:space-between;z-index:-3;pointer-events:none}.monitor-feet i{width:30px;border:1px solid #525c60;border-radius:0 0 8px 8px;background:linear-gradient(90deg,var(--hardware-mid),var(--hardware-bright) 26%,var(--hardware-mid) 72%,var(--hardware-dark));box-shadow:0 4px 4px #0006}
/* Shallow cabinet perspective keeps every drawer readable. */
.files-object>.material-base,.compact-files>.material-base{background:linear-gradient(115deg,color-mix(in srgb,var(--casing-seed),white 24%),var(--casing-seed) 35%,color-mix(in srgb,var(--casing-seed),black 15%));border:1px solid var(--hardware-dark);border-radius:5px;box-shadow:inset 2px 1px 2px #fff8,inset -2px -2px 2px #0004,0 3px 0 var(--hardware-dark),2px 7px 4px #0006,7px 15px 17px var(--scene-shadow)}
.cabinet-side{position:absolute;inset:2px auto 1px -4px;width:5px;z-index:-3;background:linear-gradient(90deg,var(--hardware-mid),var(--hardware-dark));transform:none;transform-origin:right top;border-radius:3px 0 0 3px;box-shadow:-2px 4px 5px #0003;pointer-events:none}
.cabinet-roof{position:absolute;top:-3px;left:-3px;right:0;height:4px;z-index:-3;background:linear-gradient(var(--hardware-bright),var(--hardware-mid));transform:none;border:1px solid var(--hardware-mid);border-radius:2px;pointer-events:none}
.files-caption{left:auto;top:auto;font-family:'Public Sans',sans-serif!important;font-weight:850;font-size:23px;padding:3px 24px}.desk-expanded .files-object{padding:12px 12px 14px;gap:8px;height:100%}.desk-expanded .files-caption{font-size:22px;margin-bottom:1px}
.drawer,.compact-drawer{border:1px solid var(--hardware-dark);border-radius:3px;background:linear-gradient(115deg,color-mix(in srgb,var(--casing-seed),white 23%),var(--casing-seed) 65%,color-mix(in srgb,var(--casing-seed),black 6%));box-shadow:inset 1px 1px 1px #fff7,inset -1px -2px 1px #0003,0 2px 1px #131d2466}
.drawer span,.compact-drawer-label{background:linear-gradient(#eeece2,#c2c7c2);color:#25333a;border:1px solid #5a6467;border-radius:3px;outline:1px solid #ffffff90;box-shadow:inset 0 1px 1px #fff,0 2px 3px #0004;font-weight:750;width:76%;font-size:14px}
.drawer::after,.compact-drawer::after{background:linear-gradient(#646e70,#f5f4ea 25%,#a4b0b2 46%,#657378 73%,#c6ccca);border:1px solid #46545c;border-radius:5px;height:10px;width:43%;box-shadow:0 3px 2px #0008,0 1px 0 2px #819093,inset 0 1px #fff9}
.drawer:hover{transform:translateY(2px);box-shadow:inset 1px 1px #fff6,0 -4px 0 #142029,1px 4px 4px #0004}
.desk-expanded .drawer{padding:5px 8px 7px;gap:1px}.desk-expanded .drawer::after{height:8px;margin-top:5px}.desk-expanded .file-actions{margin:5px 4px 0;gap:15px}.desk-expanded .file-actions .ui-button{font-size:12px!important}
/* Compact objects preserve the same materials and construction. */
@media(max-width:1199px){
 body[data-view=desk] #main{padding:33px 29px 31px;min-height:620px}body[data-view=desk]::before{top:74dvh}
 .desk-compact{gap:20px 18px;min-height:556px}.compact-calendar .calendar-content{padding:27px 17px 17px;gap:8px}.compact-calendar-header h2{font-size:27px}
 .compact-calendar .compact-agenda{box-shadow:none;border:0;border-radius:0;background:none;padding:0}.compact-calendar-actions{padding:3px 4px 0}.compact-calendar-actions .ui-button{font-size:12px!important;min-height:31px!important;padding:5px 8px!important}
 .compact-cvs .material-base{background:var(--stationery-seed);box-shadow:1px 3px 1px #806e5c70,2px 5px 0 #e3d8bf,3px 7px 0 #95846c,5px 12px 12px var(--scene-shadow)}.compact-cvs .stack-sheet{inset:1px 1px 0;transform:rotate(-2deg)}
 .compact-jobs h2,.compact-jobs>p,.compact-jobs .compact-open{background:var(--note-seed);color:var(--note-ink)}.compact-profile .washi{height:17px;width:40px}
 .compact-pages .monitor-screen{border-width:6px;border-radius:8px;color:var(--screen-ink)}.compact-pages .monitor-feet{height:13px;bottom:-13px}.compact-pages .monitor-feet i{width:20px}
 .compact-files h2{background:linear-gradient(#eeece2,#bec5c3);color:#27343c;border:1px solid #7c8688;border-radius:3px;box-shadow:inset 0 1px #fff9,0 2px 2px #0005;font-size:19px;padding:2px 12px}
 .compact-files .cabinet-side{width:3px;left:-2px}.compact-files .cabinet-roof{height:3px;top:-2px;left:-1px}.compact-files .compact-open{color:var(--blue)}
}
@media(min-width:1200px) and (max-height:850px){
 body[data-view=desk] #main{padding:31px 37px 34px}body[data-view=desk] .desk-expanded{gap:34px 29px;grid-template-rows:minmax(0,1.3fr) minmax(0,1fr)}
 .desk-expanded .calendar-content{padding:27px 15px 16px}.desk-expanded .calendar-top{margin-bottom:8px}.desk-expanded .calendar-body{gap:12px}.desk-expanded .calendar-bottom{margin-top:13px}.desk-expanded .calendar-top h2{font-size:25px}.desk-expanded .calendar-top .eyebrow{font-size:11px}
 .desk-expanded .profile-content{padding:24px 19px 20px}.desk-expanded .profile-content h2{font-size:27px;margin-bottom:16px}.desk-expanded .profile-content .bio{-webkit-line-clamp:3;font-size:13px}.desk-expanded .profile-content .identity h3{font-size:16px}.desk-expanded .identity p{font-size:13px}
 .desk-expanded .job-note{padding:18px 10px 9px}.desk-expanded .job-note strong{font-size:17px}.desk-expanded .job-notes{gap:12px}.desk-expanded .jobs-content{padding:14px 16px 20px}.desk-expanded .pinned-heading{font-size:22px;margin-bottom:14px}.desk-expanded .job-note .stamp{font-size:10px;margin-top:5px}
 .desk-expanded .cv-content{padding:17px 18px}.desk-expanded .cv-content h2{font-size:26px;margin-bottom:10px}.desk-expanded .cv-sheet h3{font-size:19px}.desk-expanded .cv-sheet .rule{margin:8px 0}
 .desk-expanded .monitor-object{padding:12px 20px 18px}.desk-expanded .monitor-screen{padding:10px 14px;border-width:7px}.desk-expanded .monitor-label{padding-bottom:6px}.desk-expanded .mini-copy h3{font-size:26px}
 .desk-expanded .files-object{gap:6px;padding:9px 11px 12px}.desk-expanded .files-caption{font-size:20px}.desk-expanded .drawer{padding:3px 7px 5px}.desk-expanded .drawer span{font-size:12px}.desk-expanded .drawer::after{height:7px;margin-top:3px}
 body .desk .ui-button{font-size:12px!important;min-height:33px!important;padding:6px 8px!important}
}
@media(max-width:767px){
 body .topbar{min-height:61px;padding:8px 19px}.topbar .wordmark{font-size:34px}body[data-view=desk] #main{padding:31px 22px 24px;min-height:606px}
 .desk-compact{gap:18px 14px;grid-template-rows:minmax(326px,1.4fr) minmax(88px,.48fr) minmax(100px,.55fr);min-height:551px}.compact-calendar .calendar-content{padding:25px 12px 15px;gap:6px}
 .compact-calendar-header h2{font-size:23px}.compact-calendar-header .text-action{font-size:12px}.calendar-object .material-base{inset:-7px -7px -9px;border-radius:18px}
 .binding{--ring-width:12px;--ring-height:37px;--ring-tube:2.5px;--hole-width:10px;--hole-height:7px;top:-21px}
 .compact-object h2{font-size:21px}.compact-files h2{font-size:18px}.compact-jobs .material-base{border-width:5px}.compact-jobs{padding:10px}
 .compact-pages .monitor-label{font-size:12px;letter-spacing:-.25px}.compact-pages .monitor-screen{padding:6px 8px}.compact-drawer-label{width:90%;font-size:12px}.compact-files{padding:8px}
}
@media(max-width:359px){
 body[data-view=desk] #main{padding-inline:17px}.compact-calendar-header h2{font-size:21px}.compact-calendar .calendar-content{padding-inline:10px}
 .compact-object h2{font-size:19px}.compact-profile h2{font-size:17px}.compact-files h2{font-size:17px;padding-inline:8px}.compact-calendar-actions .ui-button{font-size:11px!important;padding:5px 6px!important}
}
/* Foreground colours follow the local material, including light inserts at night. */
.cv-object,.compact-cvs{color:var(--stationery-ink)}
.monitor-screen{--control:#e4dfd0}
/* Calendar spacing is determined by its content rather than stretched outer rows. */
.desk-expanded .calendar-month{height:100%}
.desk-expanded .month-grid{flex:1 1 auto}

body[data-view=desk] .object .monitor-label{letter-spacing:0;font-weight:750}
@media(max-height:739px) and (max-width:1199px){
 .compact-calendar .calendar-content{padding-top:23px;padding-bottom:12px;gap:4px}
 .compact-calendar-header .text-action{min-height:28px;padding-block:3px}
 .desk-week-day{min-height:44px}
 .compact-agenda .agenda-scroll{padding-right:6px;padding-bottom:8px}
 .compact-agenda .agenda-card-bottom{margin-top:6px}
}
/* Keep small headings legible while leaving space for the action housings. */
@media(max-height:739px) and (max-width:1199px){
 .compact-agenda .agenda-empty{font-size:13px;line-height:1.35}
 .compact-agenda .agenda-next-label{margin-bottom:5px!important}
 .compact-agenda .agenda-role{font-size:12px}
}
@media(max-width:767px) and (max-height:739px){
 .desk-compact{grid-template-rows:minmax(346px,1.4fr) minmax(80px,.48fr) minmax(92px,.55fr);gap:16px 14px;min-height:550px}
}


@media(max-width:767px) and (max-height:739px){
 .compact-profile,.compact-cvs{padding-block:7px;gap:2px}
 .compact-jobs{padding-block:6px;gap:1px}
}

/* Keep recognizable object proportions instead of filling every empty grid cell. */
.desk-expanded .job-notes{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:auto;align-content:center;align-items:center;gap:14px;flex:1}
.desk-expanded .job-note{aspect-ratio:1;min-height:0;height:auto;max-width:190px;width:100%;padding:23px 9px 10px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:5px;justify-self:center}
.desk-expanded .job-note:nth-child(2){margin:15px 0 0;transform:rotate(2deg)}
.desk-expanded .job-note strong{font-size:clamp(16px,1.35vw,20px);line-height:1.15;margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.desk-expanded .job-note .job-role{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:13px;line-height:1.3}
.desk-expanded .job-note .stamp{font-size:11px;margin:0;max-width:100%;line-height:1.2}
.desk-monitor-slot{grid-area:monitor;min-width:0;min-height:0;container-type:size;display:grid;place-items:end center}
.desk-monitor-slot>.monitor-object{grid-area:auto;justify-self:center;align-self:end;width:min(100cqw,calc((100cqh - 17px)*1.6));height:auto;aspect-ratio:1.6;min-height:0;max-width:100%;margin:0 0 17px;padding:12px 18px 15px;grid-template-rows:auto minmax(0,1fr) auto}
.desk-monitor-slot .mini-hero{display:block;padding-top:8px}
.desk-monitor-slot .mini-copy{width:100%;max-width:none}
.desk-monitor-slot .mini-copy h3{font-size:clamp(20px,2.2vw,30px);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.desk-monitor-slot .monitor-screen{min-height:0}
.desk-monitor-slot .monitor-label{font-size:13px;padding-bottom:7px}
.desk-monitor-slot .monitor-controls{padding-top:9px;gap:12px;flex-wrap:wrap}
.desk-monitor-slot .monitor-controls .ui-button{font-size:12px!important;padding:5px 8px!important;min-height:32px!important}
@media(min-width:1200px){
 body[data-view=desk] #main{padding-block:31px 32px;min-height:676px}
 body[data-view=desk] .desk-expanded{grid-template-rows:minmax(366px,1.25fr) minmax(217px,1fr);gap:30px 29px}
 .desk-expanded .calendar-body{grid-template-columns:minmax(0,1.18fr) minmax(0,1fr);align-items:start;min-height:227px}
 .desk-expanded .calendar-content{padding:25px 16px 15px}
 .desk-expanded .calendar-top{margin-bottom:8px}
 .desk-expanded .calendar-bottom{margin-top:10px}
 .desk-expanded .calendar-month{height:auto;min-height:227px}
 .desk-expanded .month-grid{flex:1 0 144px;grid-template-rows:repeat(6,minmax(24px,1fr));overflow:visible}
 .desk-expanded .day{height:auto;min-height:24px}
 .desk-expanded .month-heading{margin-bottom:4px}
 .desk-expanded .calendar-legend{white-space:nowrap}
}
@media(max-width:1199px){
 .desk-monitor-slot>.compact-pages{grid-template-rows:auto minmax(0,1fr);padding:8px 10px 11px;gap:0;max-width:360px}
 .desk-monitor-slot .compact-pages .monitor-label{font-size:13px;padding:0 0 4px}
 .desk-monitor-slot .compact-pages .monitor-screen{padding:5px 7px;border-width:5px;border-radius:9px;gap:3px}
 .desk-monitor-slot .compact-pages .monitor-screen>strong{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;font-size:clamp(14px,2vw,21px);line-height:1.18}
 .desk-monitor-slot .compact-pages .monitor-screen>p{font-size:12px;line-height:1.3}
 .compact-pages .material-base{border-radius:14px 14px 17px 17px}
 .desk-compact{grid-template-rows:minmax(316px,1.4fr) minmax(80px,.48fr) minmax(119px,.55fr);min-height:551px;gap:16px 14px}
 body[data-view=desk] #main{min-height:606px}
}
/* A publication keeps its own colours. Only an explicit Both setting follows the desk. */
[data-publication]{--publication-paper:#f7f1e4;--publication-ink:#203340;--publication-muted:#4f6068;--publication-accent:#225c79;color-scheme:light}
[data-publication=dark],:root[data-theme=dark] [data-publication=both]{--publication-paper:#293b46;--publication-ink:#f7f1e4;--publication-muted:#bdcbd1;--publication-accent:#a8d7ea;color-scheme:dark}
[data-publication]{--paper:var(--publication-paper);--paper2:color-mix(in srgb,var(--publication-paper),var(--publication-ink) 10%);--ink:var(--publication-ink);--muted:var(--publication-muted);--blue:var(--publication-accent);--line:color-mix(in srgb,var(--publication-ink),transparent 72%);--stationery-seed:var(--publication-paper);--stationery-ink:var(--publication-ink);--screen-seed:var(--publication-paper);--screen-ink:var(--publication-ink);color:var(--publication-ink)}
.monitor-screen[data-publication]{background:var(--publication-paper);color:var(--publication-ink);--control:color-mix(in srgb,var(--publication-paper),var(--publication-ink) 10%)}
.cv-object[data-publication],.compact-cvs[data-publication]{color:var(--publication-ink)}
.cv-card[data-publication],.cv-card[data-publication]::after{background:var(--publication-paper);color:var(--publication-ink)}
/* Multiple appointments stay visible; a genuinely busy day can extend the desk. */
body[data-view=desk]:has(.day-agenda.has-overflow) #main{height:auto;min-height:calc(100dvh - var(--topbar-height,64px))}
body[data-view=desk]:has(.day-agenda.has-overflow) .desk-expanded{grid-template-rows:auto 290px}
body[data-view=desk]:has(.day-agenda.has-overflow) .desk-compact{grid-template-rows:auto 95px 155px}

/* CV thumbnails match the document preview and PDF palette exactly. */
:is(.cv-object,.compact-cvs,.cv-card)[data-publication]{--publication-paper:#fff;--publication-ink:#19232b;--publication-muted:#4e5860;--publication-accent:#235b72}
:is(.cv-object,.compact-cvs,.cv-card)[data-publication=dark],:root[data-theme=dark] :is(.cv-object,.compact-cvs,.cv-card)[data-publication=both]{--publication-paper:#283541;--publication-ink:#f5f1e7;--publication-muted:#c6ccd1;--publication-accent:#9fcee3}
.cv-object[data-publication] .cv-content{background:var(--publication-paper)}

@media(max-width:1199px){
 .compact-agenda .agenda-scroll{padding:0}
 .compact-agenda.has-many .agenda-card{padding-block:4px}
 .compact-agenda.has-many .agenda-card:first-child{padding-top:0}
}

/* Compose the compact desk as a three-over-two group. Its width follows the
   available height, so both lower objects keep their shape and share a baseline. */
@media(max-width:1199px){
 .desk-compact{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(316px,1.2fr) minmax(219px,1fr);grid-template-areas:'calendar' 'objects';gap:16px;min-height:551px}
 .compact-objects{grid-area:objects;min-width:0;min-height:0;container-type:size;display:grid;place-items:stretch center}
 .compact-object-grid{--object-gap:16px;container-type:inline-size;min-width:0;width:min(100cqw,calc(100cqh * 2 - 57.6px));height:100%;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));grid-template-rows:minmax(80px,1fr) auto;grid-template-areas:'profile profile jobs jobs cvs cvs' 'monitor monitor monitor files files files';gap:var(--object-gap)}
 .compact-object-grid>.compact-profile,.compact-object-grid>.compact-jobs,.compact-object-grid>.compact-cvs{transform:none;justify-content:flex-start;align-items:flex-start;padding:14px 12px;gap:4px}
 .compact-object-grid>.compact-object h2{font-size:23px;line-height:1.15;letter-spacing:-.6px;margin:0;padding:0;transform:none}
 .compact-object-grid>.compact-object>p{font-size:14px;line-height:1.35;padding:0;margin:0}
 .compact-object-grid>.compact-object>.compact-open{font-size:13px;line-height:1.3;padding:0;margin:0}
 .compact-object-grid>.desk-monitor-slot{height:calc((100cqw - var(--object-gap))*.3125 + 13px);place-items:start stretch}
 .compact-object-grid>.desk-monitor-slot>.compact-pages{width:100%;max-width:none;aspect-ratio:8/5;height:auto;min-height:0;align-self:start;justify-self:stretch;margin:0 0 13px;padding:9px 10px 11px}
 .compact-object-grid .compact-pages .monitor-label{font-size:13px;line-height:1.15;padding-bottom:5px;white-space:nowrap}
 .compact-object-grid .compact-pages .monitor-screen>strong{font-size:clamp(14px,7cqw,21px);line-height:1.2}
 .compact-object-grid .compact-pages .monitor-feet{bottom:-13px;height:13px}
 .compact-object-grid>.compact-files{height:calc((100cqw - var(--object-gap))*.3125 + 13px);padding:9px 10px 10px;gap:6px;transform:none}
 .compact-object-grid>.compact-files h2{font-size:19px;padding:2px 12px;line-height:1.15}
 .compact-object-grid>.compact-files .compact-open{align-self:center;line-height:1.3}
 body[data-view=desk]:has(.day-agenda.has-overflow) .desk-compact{grid-template-rows:auto 270px}
 .compact-agenda:not(.has-many) .agenda-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 16px;align-items:center}
 .compact-agenda:not(.has-many) .agenda-card-top{grid-column:1;grid-row:1;justify-content:flex-start;gap:16px;flex-wrap:wrap}
 .compact-agenda:not(.has-many) .agenda-role{grid-column:1;grid-row:2;margin:0!important}
 .compact-agenda:not(.has-many) .agenda-card-bottom{display:contents}
 .compact-agenda:not(.has-many) .agenda-card .priority{grid-column:2;grid-row:1/3;align-self:center}
}
@media(max-width:479px){
 .compact-object-grid{--object-gap:14px;width:100%}
 .compact-object-grid>.compact-profile,.compact-object-grid>.compact-jobs,.compact-object-grid>.compact-cvs{padding:10px 9px;gap:3px}
 .compact-object-grid>.compact-object h2{font-size:20px}
 .compact-object-grid>.compact-object>p{font-size:13px;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis;display:block}
 .compact-object-grid>.compact-object>.compact-open{font-size:12px}
 .compact-object-grid>.desk-monitor-slot,.compact-object-grid>.compact-files{height:calc((100cqw - var(--object-gap))*.375 + 13px)}
 .compact-object-grid>.desk-monitor-slot>.compact-pages{padding:7px 8px 9px;aspect-ratio:4/3}
 .compact-object-grid .compact-pages .monitor-label{font-size:12px;padding-bottom:4px}
 .compact-object-grid .compact-pages .monitor-screen{padding:4px 6px;border-width:4px}
 .compact-object-grid>.compact-files{padding:7px 8px 9px;gap:4px}
 .compact-object-grid>.compact-files h2{font-size:18px;padding:1px 9px}
 .compact-object-grid .compact-pages .monitor-screen>p{font-size:12px}
}
@media(min-width:480px) and (max-width:1199px) and (min-height:740px){
 .desk-compact:has(.compact-agenda.has-many):not(:has(.compact-agenda.has-overflow)){grid-template-rows:minmax(360px,1.2fr) minmax(219px,1fr)}
}
@media(max-width:359px){
 .compact-object-grid>.compact-object h2{font-size:17px;letter-spacing:-.6px}
 .compact-object-grid>.compact-profile,.compact-object-grid>.compact-jobs,.compact-object-grid>.compact-cvs{padding:14px 8px 6px}
 .compact-object-grid>.compact-profile .washi{width:29px;height:14px;top:-5px}
 .compact-object-grid .compact-pages .monitor-screen>strong{-webkit-line-clamp:1;font-size:14px}
 .compact-object-grid .compact-pages .monitor-screen>p{font-size:12px}
}


