/* A small, unboxed scene at the end of the academic page. */
.contribution-world {
  --cw-paper:var(--luka-bg); --cw-text:#3c5548; --cw-muted:#6d7770;
  --cw-border:#e3e7e3; --cw-zero:#e4ebe0; --cw-1:#b3cb91;
  --cw-2:#7fa76e; --cw-3:#4f805b; --cw-4:#315e46;
  padding-top:24px; border-top:1px solid var(--cw-border);
  color:var(--cw-text); font:12px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
[data-theme="dark"] .contribution-world {
  --cw-paper:var(--luka-bg); --cw-text:#cfddd2; --cw-muted:#a1ada6;
  --cw-border:#36433f; --cw-zero:#35473b;
}
.contribution-world [hidden] { display:none !important; }
.world-heading { display:flex; align-items:baseline; justify-content:space-between; gap:14px; }
body.theme-luka .world-heading .section-title { margin:0; font:400 22px/1.4 Georgia,"Times New Roman",serif; }
body.theme-luka .world-account { color:var(--cw-muted); font-size:11px; white-space:nowrap; }
.world-toolbar { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:18px; }
.world-years { display:flex; gap:15px; }
.contribution-world button { font:inherit; cursor:pointer; touch-action:manipulation; color:inherit; }
.world-years button { padding:4px 1px; background:none; border:0; border-bottom:1px solid transparent; color:var(--cw-muted); font-size:11px; }
.world-years button[aria-pressed="true"] { border-bottom-color:var(--cw-text); color:var(--cw-text); }
.contribution-world button:hover { color:var(--luka-accent); }
.contribution-world button:disabled { cursor:default; opacity:.45; }
.world-icon-button { display:grid; place-items:center; width:32px; height:32px; padding:7px; background:none; border:0; border-radius:3px; color:var(--cw-muted) !important; }
.world-icon-button svg { width:17px; height:17px; fill:none; stroke:currentColor; stroke-width:1.3; stroke-linecap:round; stroke-linejoin:round; }
.world-icon-button:hover,.world-icon-button[aria-pressed="true"] { color:var(--cw-text) !important; background:var(--cw-zero); }
.world-sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.world-stage { position:relative; height:390px; isolation:isolate; }
#world-canvas { display:block; width:100%; height:100%; touch-action:none; cursor:grab; outline-offset:-3px; }
#world-canvas:active { cursor:grabbing; }
#world-canvas:focus-visible { outline:1px solid var(--cw-3); }
.world-camera { position:absolute; right:0; top:20px; display:flex; flex-direction:column; gap:4px; }
.world-camera button,.world-pad button { display:grid; place-items:center; width:30px; height:30px; padding:0; border:0; border-radius:2px; color:var(--cw-muted); background:var(--cw-paper); font-size:18px; }
.world-camera { opacity:.45; transition:opacity .2s; }
.world-stage:hover .world-camera,.world-stage:focus-within .world-camera { opacity:1; }
.world-camera button:hover,.world-pad button:hover { background:var(--cw-zero); }
.world-actions { display:flex; justify-content:space-between; align-items:center; gap:12px; }
#world-summary { font-size:12px; font-variant-numeric:tabular-nums; }
.world-playback { display:flex; align-items:center; gap:8px; }
.world-motion { width:27px; height:27px; padding:0; border:1px solid var(--cw-border); border-radius:50%; background:none; font-size:11px !important; }
.world-tooltip { position:absolute; top:14px; left:0; padding:5px 8px; background:var(--cw-paper); color:var(--cw-text); border:1px solid var(--cw-border); pointer-events:none; font-size:11px; }
.contribution-world[data-view="calendar"] .world-tooltip { top:auto; bottom:0; }
.world-loading { position:absolute; inset:0; display:grid; place-items:center; color:var(--cw-muted); font:italic 15px Georgia,serif; padding:30px; text-align:center; }
.world-mission { position:absolute; right:0; bottom:10px; color:var(--cw-muted); font-size:11px; background:var(--cw-paper); padding:3px 7px; }
.world-mission>span:first-child { color:#a87836; }
.world-pad { position:absolute; right:0; bottom:45px; display:grid; grid-template-columns:repeat(3,30px); gap:3px; }
.world-pad button:first-child { grid-column:2; }.world-pad button:nth-child(2) { grid-column:1; }
.world-calendar { position:absolute; inset:15px 0; overflow:auto; padding:5px; }
.world-calendar-grid { display:grid; grid-template-rows:repeat(7,17px); grid-auto-flow:column; grid-auto-columns:17px; gap:4px; padding-bottom:8px; }
.world-day { border:0; border-radius:2px; background:var(--cw-zero); padding:0; min-width:0; }
.world-day:hover { outline:1px solid var(--cw-4); outline-offset:1px; }
.world-day[data-level="1"] { background:var(--cw-1); }.world-day[data-level="2"] { background:var(--cw-2); }.world-day[data-level="3"] { background:var(--cw-3); }.world-day[data-level="4"] { background:var(--cw-4); }
.world-calendar p { font-size:11px; color:var(--cw-muted); }
@media(max-width:600px) {
  .world-stage { height:310px; margin:0 -8px; }
  body.theme-luka .world-heading .section-title { font-size:20px; }
  .world-years { gap:13px; }
  .world-camera { right:8px; opacity:.7; }
  .world-tooltip { max-width:calc(100% - 40px); left:8px; }
  .world-pad,.world-mission { right:8px; }
}
@media(max-width:360px) { .world-years { gap:9px; }.world-account { font-size:10px !important; } }
@media(prefers-reduced-motion:reduce) { .contribution-world * { transition:none !important; animation:none !important; } }
@media print { .world-camera,.world-pad,.world-playback,.world-toolbar,.world-mission { display:none !important; } }
